Originally Posted by
ShoniShilent
ok,
FOUND THIS FUNCTION CODE AREA WHICH AT 564445:
00564430 /. 55 PUSH EBP
00564431 |. 8BEC MOV EBP,ESP
00564433 |. 51 PUSH ECX
00564434 |. 56 PUSH ESI
00564435 |. 8B75 08 MOV ESI,[ARG.1]
00564438 |. 6A 01 PUSH 1 ; /Arg2 = 00000001
0056443A |. 56 PUSH ESI ; |Arg1
0056443B |. E8 D0922400 CALL WoW.007AD710 ; \WoW.007AD710
00564440 |. 83C4 08 ADD ESP,8
00564443 |. 85C0 TEST EAX,EAX
00564445 |. 74 7C JE SHORT WoW.005644C3
JUMPS TO HERE:
005644C3 |> \68 20009600 PUSH WoW.00960020 ; /Arg2 = 00960020 ASCII "Usage: UnitReaction("unit", "otherUnit")"
005644C8 |. 56 PUSH ESI ; |Arg1
005644C9 |. E8 12AA2400 CALL WoW.007AEEE0 ; \WoW.007AEEE0
005644CE |. 83C4 08 ADD ESP,8
005644D1 |. 33C0 XOR EAX,EAX
005644D3 |. 5E POP ESI
005644D4 |. 8BE5 MOV ESP,EBP
005644D6 |. 5D POP EBP
005644D7 \. C3 RETN
and just above the code location at 564445:
i see the folling code:
0056437E |> \3BC3 CMP EAX,EBX
00564380 |.^ 0F84 3BFFFFFF JE WoW.005642C1
00564386 |. 8B0D 90EBFC00 MOV ECX,DWORD PTR DS:[FCEB90]
0056438C |. 3BC1 CMP EAX,ECX
0056438E |.^ 0F8C 2DFFFFFF JL WoW.005642C1
00564394 |. 3B05 8CEBFC00 CMP EAX,DWORD PTR DS:[FCEB8C]
0056439A |.^ 0F8F 21FFFFFF JG WoW.005642C1
005643A0 |. 2BC1 SUB EAX,ECX
005643A2 |. 8B0D A0EBFC00 MOV ECX,DWORD PTR DS:[FCEBA0]
005643A8 |. 8B0481 MOV EAX,DWORD PTR DS:[ECX+EAX*4]
could 0fceb90 = player factionid ?
and fceb8c = max factions
and fceba0 = start of the factions list Unknowned is talking about?
005643A2 |. 8B0D A0EBFC00 MOV ECX,DWORD PTR DS:[FCEBA0]
fceba0 points to (on my machine): 03928FB0
and reading from [03928FB0] points to:
03928FB0 28 92 B9 03
which is 03b99228
which appears to be the location of the data discussed in Unknowned's posting:
which appears as:
03B99228 01 00 00 00 01 00 00 00 48 00 00 00 03 00 00 00 ......H......
03B99238 02 00 00 00 0C 00 00 00 00 00 00 00 00 00 00 00 ...............
03B99248 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03B99258 00 00 00 00 00 00 00 00 02 00 00 00 02 00 00 00 ..............
03B99268 48 00 00 00 05 00 00 00 04 00 00 00 0A 00 00 00 H.............
03B99278 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03B99288 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03B99298 03 00 00 00 03 00 00 00 48 00 00 00 03 00 00 00 ......H......
03B992A8 02 00 00 00 0C 00 00 00 00 00 00 00 00 00 00 00 ...............
03B992B8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03B992C8 00 00 00 00 00 00 00 00 04 00 00 00 04 00 00 00 ..............
03B992D8 48 00 00 00 03 00 00 00 02 00 00 00 0C 00 00 00 H.............
03B992E8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03B992F8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03B99308 05 00 00 00 05 00 00 00 48 00 00 00 05 00 00 00 ......H......
03B99318 04 00 00 00 0A 00 00 00 00 00 00 00 00 00 00 00 ...............
03B99328 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03B99338 00 00 00 00 00 00 00 00 06 00 00 00 06 00 00 00 ..............
03B99348 48 00 00 00 05 00 00 00 04 00 00 00 0A 00 00 00 H.............
03B99358 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03B99368 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03B99378 07 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 ..............
03B99388 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03B99398 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03B993A8 00 00 00 00 00 00 00 00 0A 00 00 00 28 00 00 00 ............(...
you can clearly see the hex 48 at location(s) 3b99230 and 3b99268 which correspond to the '72' in the list from the DBC, etc.
however, i need to know of a way to convert 4 bytes 00 00 00 03 (or '3') into bit mask such as 0011 in the same list
(or 00 00 00 0c to 1100, etc.). it appears each faction record is 56 bytes long (or 14 LONGS)
i think i am on to this at this point, but need a help to deal with flags or bitmasks so i can break this data down from it's LONG form into a bit pattern mask.
does this seem like i am getting there? any more help? any ideas how to 'check' the data to convert to bitmask (i.e. 0011 instead of 0x00000003)
i posted all of this because i didn't want people to think i am a total leech or didn't try to do some of this work on my own. thanks again for the help to this point and i look for more responses, ideas, help-