MP Switch, Distribute, and Damage Split usability

From Final Fantasy Hacktics Wiki
Revision as of 20:20, 19 March 2022 by Orkney (talk | contribs)
Jump to navigation Jump to search
If Formula is not 0x07, then if unit can react, test for MP switch then Distribute and Then Damage split
Jump to ends after finding and setting one of thoses reaction. 
-----------------------------------------------------------------------------------------------------------
0018cc34: 27bdffe8 addiu r29,r29,-0x0018    |
0018cc38: 3c038019 lui r3,0x8019            |
0018cc3c: 906338e5 lbu r3,0x38e5(r3)        |r3 = Ability formula
0018cc40: 34020007 ori r2,r0,0x0007         |r2 = 0x07 (Weapon heal formula)
0018cc44: 10620020 beq r3,r2,0x0018ccc8     #If Current Ability Formula <> 0x07 /Else branch to  END
0018cc48: afbf0010 sw r31,0x0010(r29)           |
0018cc4c: 3c048019 lui r4,0x8019                |
0018cc50: 8c842d98 lw r4,0x2d98(r4)             |r4 = Targeted Unit data pointer
0018cc54: 0c063248 jal 0x0018c920               |-->Check if unit can react 1
0018cc58: 00000000 nop                          |
0018cc5c: 1440001a bne r2,r0,0x0018ccc8         #If Unit can react /Else branch to  END
0018cc60: 00000000 nop                              |
0018cc64: 3c048019 lui r4,0x8019                    |
0018cc68: 8c842d98 lw r4,0x2d98(r4)                 |r4 = Targeted Unit data pointer
0018cc6c: 00000000 nop                              |
0018cc70: 9083008d lbu r3,0x008d(r4)                |r3 = Targeted Unit 3rd reaction set
0018cc74: 00000000 nop                              |
0018cc78: 30620001 andi r2,r3,0x0001                |r2 = 0x01 If Targeted Unit uses MP switch
0018cc7c: 10400005 beq r2,r0,0x0018cc94             #If Targeted Unit uses MP switch
0018cc80: 30620002 andi r2,r3,0x0002                |r2 = 0x02 if Targeted Unit uses Distribute
0018cc84: 0c06346e jal 0x0018d1b8                       |-->MP Switch Usability
0018cc88: 00000000 nop                                  |
0018cc8c: 08063332 j 0x0018ccc8                         >>jump to  END
0018cc90: 00000000 nop                                  |
0018cc94: 10400005 beq r2,r0,0x0018ccac             #Else If Targeted Unit uses Distribute
0018cc98: 00000000 nop                                  |
0018cc9c: 0c0634aa jal 0x0018d2a8                       |-->Distribute Usability
0018cca0: 00000000 nop                                  |
0018cca4: 08063332 j 0x0018ccc8                         >>jump to  END
0018cca8: 00000000 nop                                  |
0018ccac: 9082008e lbu r2,0x008e(r4)                |r2 = Targeted Unit 4th reaction set
0018ccb0: 00000000 nop                              |
0018ccb4: 30420080 andi r2,r2,0x0080                |r2 = 0x80 if Targeted Unit uses Damage split
0018ccb8: 10400003 beq r2,r0,0x0018ccc8             #If Targeted Unit uses Damage splite
0018ccbc: 00000000 nop                                  |
0018ccc0: 0c0634c6 jal 0x0018d318                       |-->Damage Split Usability
0018ccc4: 00000000 nop                                  |
0018ccc8: 8fbf0010 lw r31,0x0010(r29)       END
0018cccc: 27bd0018 addiu r29,r29,0x0018     
0018ccd0: 03e00008 jr r31                   
0018ccd4: 00000000 nop                      

Return location

Battle.bin
0018bfd4: Main_Reaction_Routine_-_performs_ability_effects