Die kurze Antwort: 49681D = PartyWindow_y-Pos 496820 = PartyWindow_x-Pos 4968C0 = GaugeInterface y-Correction (large windows) 4968CE = GaugeInterface y-Correction (small windows) 4968C5 = GaugeSegments delta-y (large windows) 4968D3 = GaugeSegments delta-y (small windows) Die ausführliche Antwort: __________DrawGaugesLoop__________ 4969ED -> off_4CDB74 = InventoryDataPtr 4969F4 | mov edx,esi get PartySlot 4969F6 | c.sub_4A6014 call GetBattlerData(Hero) 4969FB | mov edi,eax memorize Ptr on BattlerData 4969FD | off_4CDD60 = BattleLayoutPtr 496A04 | mov eax,[eax+8] get the LayoutType 496A0A <<jb loc_496A1A jump on Traditional 496A0C <<jz loc_496A60 ump on Alternative 496A0F <<jz loc_496AB7 jump on Gauge 496A15 <<jmp loc_496D32 jump on invalid input ... 496AB7 >>mov eax,[esp] get FaceGraphic's y-Pos in the PartyWindow 496ABA | add eax,ebp add to height 496ABC | add eax,[ebx+18] add PartyWindow's y-Pos 496ABF | push eax memorize y-Pos (for the FaceGraphic) 496AC0 | mov ecx,esi get PartySlot 496AC2 | shl ecx,4 PartySlot_ID*16 496AC5 | lea ID*16*5 = 80 //x-Pos-Difference 496AC8 | add ecx,[ebx+14] add PartyWindow's x-Pos (when scrolling left/right) 496ACB | off_4CDB74 = InventoryDataPtr 496AD2 | mov edx,esi get PartySlot 496AD4 | c.sub_4A6AD0 print FaceGraphic 496AD9 | mov eax,edi get Ptr on BattlerData/ActorData 496ADD | call get Hero's max.HP 496AE0 | push eax memorize max.HP 496AE1 | mov eax,[edi+14] get Hero's current HP 496AE4 | lea HP x5 496AE7 | lea [HP x5] x5 496AEA | pop edx get max.HP 496AEB | mov ecx,edx ECX = max.HP 496AED | cdq initialize EDX:EAX 496AEE | idiv ecx divide [HP x25] by max.HP 496AF0 | push eax memorize HP-Bar_Width //1 pixel = 4% 496AF3 | mov edx,[ebx+14] apply PartyWindow's Position (when scrolling left/right) 496AF6 | add edx,30 x-Pos of the first Hero's HP-Bar 496AF9 | mov eax,esi get current PartySlot 496AFB | shl eax,4 PartySlot_ID*16 496AFE | lea ID*16*5 = 80 //x-Pos-Difference 496B01 | add edx,eax x-Pos (first Hero) + x-Pos-Difference 496B03 | mov ecx,[esp+8] y-Pos of the HP-Bar 496B07 | add ecx,ebp add to memorized y-Pos 496B09 | add ecx,[ebx+18] add PartyWindow's y-Pos 496B0C | off_4CDC7C = MainPtr 496B13 | mov eax,[eax+18] get Ptr on SystemGraphic 496B16 | c.sub_489C48 print HP-Bar 496B1B | mov eax,[edi+14] get Hero's current HP 496B1E | cmp eax,3E7 Are the HP above 999? 496B23 <jle loc_496B53 ump if they are not represented by 4 digits 496B25 | push eax memorize HP 496B26 | mov edx,[ebx+14] get Window's x-Pos 496B29 | add edx,28 4-Digit x-Pos 496B2C | mov eax,esi get PartySlot 496B2E | shl eax,4 PartySlot_ID*16 496B31 | lea ID*16*5 = 80 //x-Pos-Difference (4-Digit) 496B34 | add edx,eax add to x-Pos 496B36 | mov ecx,[esp+4] y-Pos of the HP-Digits (4-Digit) 496B3A | add ecx,ebp add memorized y-Pos 496B3C | add ecx,[ebx+18] add PartyWindow's y-Pos 496B3F | off_4CDC7C = MainPtr 496B46 | mov eax,[eax+18] get Ptr on SystemGraphic 496B49 | c.sub_48A01C print HP-Digits 496B4E < jmp loc_496BDC 496B53 > cmp eax,63 Does the HP consist of more than 2 digits? 496B56 < jle loc_496B83 jump if 2 digits or less 496B5C | add edx,30 3-Digit x-Pos ... 496B83 > cmp eax,9 Does the HP consist of more than 1 digit? 496B86 < jle loc_496BB3 jump if 1 digit 496B8C | add edx,38 2-Digit x-Pos ... 496BB3 > push eax memorize HP 496BB7 | add edx,40 1-Digit x-Pos ... 496BDC > mov eax,edi get Ptr on ActorData 496BE0 | call get Hero's max.MP 496BE3 | test eax,eax Are there any MP left? 496BE5 < jnz loc_496C17 ump if there are 496BEB | mov edx,[ebx+14] get Window's x-Pos 496BEE | add edx,30 apply PartyWindow's Position (when scrolling left/right) 496BF1 | mov eax,esi get PartySlot 496BF3 | shl eax,4 ID*16 496BF6 | lea ID*16*5 = 80 //x-Pos-Difference ... 496C10 | c.sub_489C48 print (empty) MP-Bar 496C15 < jmp loc_496C5B 496C17 | mov eax,edi get Ptr on ActorData 496C1B | call get max.MP 496C1E | push eax memorize max.MP 496C1F | mov eax,[edi+18] get current MP 496C25 | lea [MP x5] x5 496C28 | pop edx get max.MP 496C2C | idiv ecx divide [MP x25] by max.MP 496C2E | push eax memorize MP-Bar_Width //1 pixel = 4% 496C31 | mov edx,[ebx+14] apply PartyWindow's Position (when scrolling left/right) 496C34 | add edx,30 x-Pos of the first Hero's MP-Bar 496C3C | lea D*16*5 = 80 //x-Pos-Difference 496C49 | add ecx,[ebx+18] add PartyWindow's y-Pos 496C56 | c.sub_489C48 print MP-Bar 496C5B > mov eax,[edi+18] get Hero's current MP 496C5E | cmp eax,63 Does the MP consist of more than 2 digits? 496C61 < jle loc_496C90 jump if 2 digits or less 496C67 | add edx,30 3-Digit x-Pos ... 496C89 | c.sub_48A01C print MP-Digits 496C8E < jmp loc_496CED 496C90 > cmp eax,9 Does the MP consist of more than 1 digit? 496C93 < jle loc_496CC2 jump if 1 digit 496C99 | addd edx,38 2-Digit x-Pos ... 496CC2 > push eax memorize MP 496CC6 | add edx,40 1-Digit x-Pos ... 496CED | mov eax,493E0 get max.ATB-value (300000) 496CF8 | idiv ecx divide 300000 by 25 496CFA | push eax memorize 12000 496CFB | mov eax,[edi+44] get Hero's current ATB-value 496CFE | pop edx EDX = 12000 496D02 | idiv ecx divide Hero's ATB-value by 12000 496D04 | push eax memorize Hero's ATB% 496D07 | mov edx,[ebx+14] apply PartyWindow's Position (when scrolling left/right) 496D0A | add edx,30 x-Pos of the first Hero's ATB-Bar 496D0D | mov eax,esi get PartySlot 496D12 | lea ID*16*5 = 80 //x-Pos-Difference 496D20 | add ecx,[ebx+18] add PartyWindow's y-Pos 496D23 | off_4CDC7C = MainPtr 496D2A | mov eax,[eax+18] get Ptr on SystemGraphic 496D2D | c.sub_489C48 print ATB-Bar 496D32 >>inc esi PartySlot +1 496D33 | dec [esp+10] PartySize -1 496D37 --jnz __________________________________ 496D3D mov eax,[ebx+60] get WindowTimer(?) 496D46 idiv ecx divide WindowTimer by 40 ...
Geändert von bugmenot (12.01.2014 um 13:12 Uhr)
Foren-Regeln