Difference between revisions of "Check if Unit will get his Turn without Status"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with "<font face='Courier New'> 0019efb0: 27bdffe0 addiu r29,r29,0xffe0 0019efb4: afb10014 sw r17,0x0014(r29) 0019efb8: 00808821 addu r17,r4,r0 0019efbc: afb00010 sw r16,0x001...")
 
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
<font face='Courier New'>
+
'''BATTLE.BIN''' :  -
   
+
Check if Charm Don't Move or Don't act will fade before Active turn of Unit
  0019efb0: 27bdffe0 addiu r29,r29,0xffe0
+
------------------------------------------------------------------------------------------
  0019efb4: afb10014 sw r17,0x0014(r29)
+
Parameter : r4 = Unit Battle data pointer
  0019efb8: 00808821 addu r17,r4,r0
+
            r5 = Status ID
  0019efbc: afb00010 sw r16,0x0010(r29)
+
Return : r2 = 0x00 if Unit status will fade before active Turn
  0019efc0: 00a08021 addu r16,r5,r0
+
          r2 = 0x01 If Unit will get his turn with Charm, don't Move or Don't Act
  0019efc4: 34020022 ori r2,r0,0x0022
+
          r2 = 0x01 if passed status ID is invalid
  0019efc8: 12020005 beq r16,r2,0x0019efe0
+
  ------------------------------------------------------------------------------------------
  0019efcc: afbf0018 sw r31,0x0018(r29)
+
  0019efb0: 27bdffe0 addiu r29,r29,-0x0020    |
  0019efd0: 2602ffdc addiu r2,r16,0xffdc
+
  0019efb4: afb10014 sw r17,0x0014(r29)       |
  0019efd4: 2c420002 sltiu r2,r2,0x0002
+
  0019efb8: 00808821 addu r17,r4,r0           |{{f/std|Unit Battle data poiner}}
  0019efd8: 1040000a beq r2,r0,0x0019f004
+
  0019efbc: afb00010 sw r16,0x0010(r29)       |
  0019efdc: 34020001 ori r2,r0,0x0001
+
  0019efc0: 00a08021 addu r16,r5,r0           |{{f/std|Desired Status ID}}
  0019efe0: 0c0666e6 jal 0x00199b98
+
  0019efc4: 34020022 ori r2,r0,0x0022         |
  0019efe4: 02202021 addu r4,r17,r0
+
  0019efc8: 12020005 beq r16,r2,0x0019efe0     {{f/Cond|If Status ID is Not Charm}}
  0019efe8: 02301821 addu r3,r17,r16
+
  0019efcc: afbf0018 sw r31,0x0018(r29)           |
  0019efec: 90630045 lbu r3,0x0045(r3)
+
  0019efd0: 2602ffdc addiu r2,r16,-0x0024          |{{f/std|Status ID - 0x24}}
  0019eff0: 00000000 nop
+
  0019efd4: 2c420002 sltiu r2,r2,0x0002           |{{f/std|0x1 if Status ID is Don't move or Don't Act}}
  0019eff4: 0062182a slt r3,r3,r2
+
  0019efd8: 1040000a beq r2,r0,0x0019f004         {{f/Cond|If Status ID is NOT [Don't Move] or [Don't Act]}} {{f/loc|Exit routine return 0x01}}
  0019eff8: 14600002 bne r3,r0,0x0019f004
+
  0019efdc: 34020001 ori r2,r0,0x0001                 |
  0019effc: 00001021 addu r2,r0,r0
+
                                            {{f/sec|[Charm] [Don't Move] [Don't Act]}}
  0019f000: 34020001 ori r2,r0,0x0001
+
  0019efe0: 0c0666e6 jal 0x00199b98           |{{f/jal|Calculate_Clockticks_Until_Unit_Acts|Calculate_Clockticks_Until_Unit_Acts}}
 +
  0019efe4: 02202021 addu r4,r17,r0           |
 +
  0019efe8: 02301821 addu r3,r17,r16           |
 +
  0019efec: 90630045 lbu r3,0x0045(r3)         |{{f/load|Considered Status CT}}
 +
  0019eff0: 00000000 nop                       |
 +
  0019eff4: 0062182a slt r3,r3,r2             |{{f/std|0x1 if Status CT < Unit Turn}}
 +
  0019eff8: 14600002 bne r3,r0,0x0019f004     {{f/Cond|If Status will fade before unit active Turn}} {{f/loc|Exit routine return 0x00}}
 +
  0019effc: 00001021 addu r2,r0,r0             |
 +
  0019f000: 34020001 ori r2,r0,0x0001         |{{f/loc|Else return 0x01}}
 
  0019f004: 8fbf0018 lw r31,0x0018(r29)
 
  0019f004: 8fbf0018 lw r31,0x0018(r29)
 
  0019f008: 8fb10014 lw r17,0x0014(r29)
 
  0019f008: 8fb10014 lw r17,0x0014(r29)
Line 28: Line 36:
 
  0019f014: 03e00008 jr r31
 
  0019f014: 03e00008 jr r31
 
  0019f018: 00000000 nop
 
  0019f018: 00000000 nop
</font>
+
===Return locations===
 +
'''BATTLE.BIN'''
 +
  0019e928: [[AI_Ability_Use_Decisions]]  r5 = 0x22
 +
  0019ede8: [[AI_Ability_Use_Decisions]]

Latest revision as of 15:42, 31 March 2024

BATTLE.BIN :  - 
Check if Charm Don't Move or Don't act will fade before Active turn of Unit
------------------------------------------------------------------------------------------
Parameter : r4 = Unit Battle data pointer
            r5 = Status ID
Return : r2 = 0x00 if Unit status will fade before active Turn
         r2 = 0x01 If Unit will get his turn with Charm, don't Move or Don't Act
         r2 = 0x01 if passed status ID is invalid
------------------------------------------------------------------------------------------
0019efb0: 27bdffe0 addiu r29,r29,-0x0020     |
0019efb4: afb10014 sw r17,0x0014(r29)        |
0019efb8: 00808821 addu r17,r4,r0            |Unit Battle data poiner
0019efbc: afb00010 sw r16,0x0010(r29)        |
0019efc0: 00a08021 addu r16,r5,r0            |Desired Status ID
0019efc4: 34020022 ori r2,r0,0x0022          |
0019efc8: 12020005 beq r16,r2,0x0019efe0     #If Status ID is Not Charm
0019efcc: afbf0018 sw r31,0x0018(r29)            |
0019efd0: 2602ffdc addiu r2,r16,-0x0024          |Status ID - 0x24
0019efd4: 2c420002 sltiu r2,r2,0x0002            |0x1 if Status ID is Don't move or Don't Act
0019efd8: 1040000a beq r2,r0,0x0019f004          #If Status ID is NOT [Don't Move] or [Don't Act] Exit routine return 0x01
0019efdc: 34020001 ori r2,r0,0x0001                  |
                                            [Charm] [Don't Move] [Don't Act]
0019efe0: 0c0666e6 jal 0x00199b98            |-->Calculate_Clockticks_Until_Unit_Acts
0019efe4: 02202021 addu r4,r17,r0            |
0019efe8: 02301821 addu r3,r17,r16           |
0019efec: 90630045 lbu r3,0x0045(r3)         |Considered Status CT
0019eff0: 00000000 nop                       |
0019eff4: 0062182a slt r3,r3,r2              |0x1 if Status CT < Unit Turn
0019eff8: 14600002 bne r3,r0,0x0019f004      #If Status will fade before unit active Turn Exit routine return 0x00
0019effc: 00001021 addu r2,r0,r0             |
0019f000: 34020001 ori r2,r0,0x0001          |Else return 0x01
0019f004: 8fbf0018 lw r31,0x0018(r29)
0019f008: 8fb10014 lw r17,0x0014(r29)
0019f00c: 8fb00010 lw r16,0x0010(r29)
0019f010: 27bd0020 addiu r29,r29,0x0020
0019f014: 03e00008 jr r31
0019f018: 00000000 nop

Return locations

BATTLE.BIN
 0019e928: AI_Ability_Use_Decisions   r5 = 0x22
 0019ede8: AI_Ability_Use_Decisions