Able to move/act checks (Menu)

From Final Fantasy Hacktics Wiki
Revision as of 09:38, 1 August 2023 by Orkney (talk | contribs)
Jump to navigation Jump to search
BATTLE.BIN - Able_to_move/act_checks_(Menu%3F)
---------------------------------------------------------------------------------------
Parameter : r4 = Unit pointer	

Returns : r2 = 0x00 
          r2 = 0x01 if Unit has acted/moved and can't do anything else
---------------------------------------------------------------------------------------
00183d10: 27bdffe8 addiu r29,r29,-0x0018
00183d14: afb00010 sw r16,0x0010(r29)
00183d18: afbf0014 sw r31,0x0014(r29)
00183d1c: 0c0604c3 jal 0x0018130c           |-->Weapon Guard Usability returns r2 = 0x00 if unit can act/react
00183d20: 00808021 addu r16,r4,r0           |Unit battle data pointer
00183d24: 9204005c lbu r4,0x005c(r16)       |Load Current Status 5
00183d28: 92030187 lbu r3,0x0187(r16)       |Load Movement Taken
00183d2c: 92050188 lbu r5,0x0188(r16)       |Load Action Taken
00183d30: 30840008 andi r4,r4,0x0008        |check [Don't move]
00183d34: 00642025 or r4,r3,r4              |Movement Taken/disallowed flag
00183d38: 00a23025 or r6,r5,r2              |Action Taken/disallowed flag
00183d3c: 00001021 addu r2,r0,r0            |default returned value
00183d40: 00651825 or r3,r3,r5              |Action/Movement Taken
00183d44: 10800005 beq r4,r0,0x00183d5c     #If Unit can't move
00183d48: 00602821 addu r5,r3,r0            |Action/Movement Taken flag
00183d4c: 30c300ff andi r3,r6,0x00ff            |
00183d50: 10600002 beq r3,r0,0x00183d5c         #If unit can't act
00183d54: 00000000 nop                              |
00183d58: 0005102b sltu r2,r0,r5                    |r2 = 0x1 if unit has moved/acted 
00183d5c: 8fbf0014 lw r31,0x0014(r29)       END
00183d60: 8fb00010 lw r16,0x0010(r29)
00183d64: 27bd0018 addiu r29,r29,0x0018
00183d68: 03e00008 jr r31
00183d6c: 00000000 nop

Return location

Battle.bin
00182e30: In_between_turn_control_routine
00183c48: Set_move/act_flags