Difference between revisions of "Able to move/act checks (Menu)"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
m
Line 1: Line 1:
  Able to move/act checks (Menu?)
+
  '''BATTLE.BIN''' - Able_to_move/act_checks_(Menu%3F)
  00183d10: 27bdffe8 addiu r29,r29,0xffe8
+
---------------------------------------------------------------------------------------
 +
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)
 
  00183d14: afb00010 sw r16,0x0010(r29)
 
  00183d18: afbf0014 sw r31,0x0014(r29)
 
  00183d18: afbf0014 sw r31,0x0014(r29)
  00183d1c: 0c0604c3 jal 0x0018130c [[Weapon Guard Usability]]
+
  00183d1c: 0c0604c3 jal 0x0018130c           |{{f/jal|Weapon Guard Usability|Weapon Guard Usability}} {{f/std|<nowiki>returns r2 = 0x00 if unit can act/react</nowiki>}}
  00183d20: 00808021 addu r16,r4,r0
+
  00183d20: 00808021 addu r16,r4,r0           |{{f/adr|Unit battle data pointer}}
  00183d24: 9204005c lbu r4,0x005c(r16) Load Current Status
+
  00183d24: 9204005c lbu r4,0x005c(r16)       |{{f/load|Load Current Status 5}}
  00183d28: 92030187 lbu r3,0x0187(r16) Load Movement Taken
+
  00183d28: 92030187 lbu r3,0x0187(r16)       |{{f/load|Load Movement Taken}}
  00183d2c: 92050188 lbu r5,0x0188(r16) Load Action Taken
+
  00183d2c: 92050188 lbu r5,0x0188(r16)       |{{f/load|Load Action Taken}}
  00183d30: 30840008 andi r4,r4,0x0008 r4 = 8 if Don't Move
+
  00183d30: 30840008 andi r4,r4,0x0008       |{{f/std|check [Don't move]}}
  00183d34: 00642025 or r4,r3,r4 r4 =  if Don't Move or Movement Taken
+
  00183d34: 00642025 or r4,r3,r4             |{{f/std|Movement Taken/disallowed flag}}
  00183d38: 00a23025 or r6,r5,r2 r6 =  if Don't Act or Action Taken (or if being ridden?)
+
  00183d38: 00a23025 or r6,r5,r2             |{{f/std|Action Taken/disallowed flag}}
  00183d3c: 00001021 addu r2,r0,r0
+
  00183d3c: 00001021 addu r2,r0,r0           |{{f/std|default returned value}}
  00183d40: 00651825 or r3,r3,r5 r3 =  if Movement Taken or Action Taken
+
  00183d40: 00651825 or r3,r3,r5             |{{f/std|Action/Movement Taken}}
  00183d44: 10800005 beq r4,r0,0x00183d5c branch if able to move
+
  00183d44: 10800005 beq r4,r0,0x00183d5c     {{f/Cond|If Unit can't move}}
  00183d48: 00602821 addu r5,r3,r0
+
  00183d48: 00602821 addu r5,r3,r0           |{{f/std|Action/Movement Taken flag}}
  00183d4c: 30c300ff andi r3,r6,0x00ff
+
  00183d4c: 30c300ff andi r3,r6,0x00ff           |
  00183d50: 10600002 beq r3,r0,0x00183d5c branch if able to act
+
  00183d50: 10600002 beq r3,r0,0x00183d5c         {{f/Cond|If unit can't act}}
  00183d54: 00000000 nop
+
  00183d54: 00000000 nop                             |
  00183d58: 0005102b sltu r2,r0,r5 r2=1 if action taken or movement taken?
+
  00183d58: 0005102b sltu r2,r0,r5                   |{{f/std|<nowiki>r2 = 0x1 if unit has moved/acted </nowiki>}}
  00183d5c: 8fbf0014 lw r31,0x0014(r29)
+
  00183d5c: 8fbf0014 lw r31,0x0014(r29)       END
 
  00183d60: 8fb00010 lw r16,0x0010(r29)
 
  00183d60: 8fb00010 lw r16,0x0010(r29)
 
  00183d64: 27bd0018 addiu r29,r29,0x0018
 
  00183d64: 27bd0018 addiu r29,r29,0x0018
 
  00183d68: 03e00008 jr r31
 
  00183d68: 03e00008 jr r31
 
  00183d6c: 00000000 nop
 
  00183d6c: 00000000 nop
 
+
===Return location===
 
+
'''Battle.bin'''
== Return Locations ==
+
  00182e30: [[In_between_turn_control_routine]]
 
+
  00183c48: [[Set_move/act_flags]]
  00182e28: [[In between turn control routine]]
 
  00183c40: [[Various Flags r4= data pointer]]
 

Revision as of 09:38, 1 August 2023

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