See if elemental ability can be used

From Final Fantasy Hacktics Wiki
Revision as of 19:05, 8 May 2024 by Orkney (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
BATTLE.BIN :  - See if elemental ability can be used 
------------------------------------------------------------------------------------------
Parameter : r4 = Pointer to Some coordinates
Return : r2 = 0x01 if Considered Ability matches terrain type
         r2 = 0x00 if wrong Ability for terrain type
------------------------------------------------------------------------------------------
0019b754: 90830002 lbu r3,0x0002(r4)         |Y coordinates
0019b758: 3c02801a lui r2,0x801a             |
0019b75c: 904201fe lbu r2,0x01fe(r2)         |Map Max X
0019b760: 00000000 nop                       |
0019b764: 00620018 mult r3,r2                |
0019b768: 90820001 lbu r2,0x0001(r4)         |Elevation
0019b76c: 90840000 lbu r4,0x0000(r4)         |X coordinates
0019b770: 00021200 sll r2,r2,0x08            |
0019b774: 00001812 mflo r3                   |Y*Max X
0019b778: 00431021 addu r2,r2,r3             |
0019b77c: 00441021 addu r2,r2,r4             |Tile ID X + YMax X + 0x100 if High elevation
0019b780: 000210c0 sll r2,r2,0x03            |8 bytes per tile
0019b784: 3c018019 lui r1,0x8019             |
0019b788: 00220821 addu r1,r1,r2             |
0019b78c: 9022f8cc lbu r2,-0x0734(r1)        |Tile Type 0x8018f8cc + Tile Offset
0019b790: 3c03801a lui r3,0x801a             |
0019b794: 8463f3c6 lh r3,-0x0c3a(r3)         |Ability ID 8019f3c4 + 0x02
0019b798: 3042003f andi r2,r2,0x003f         |
0019b79c: 3c018006 lui r1,0x8006             |
0019b7a0: 00220821 addu r1,r1,r2             |
0019b7a4: 9022e9d0 lbu r2,-0x1630(r1)        |Load Ability ID matching Terrain Type 0x8005e9d0
0019b7a8: 00000000 nop                       |
0019b7ac: 00431026 xor r2,r2,r3              |0 if Abilities match
0019b7b0: 03e00008 jr r31                    |
0019b7b4: 2c420001 sltiu r2,r2,0x0001        |1 if considered ability match terrain type

Return locations

BATTLE.BIN
 0019b59c: AI_Depth_Elemental_Monster_Skill_Use_Check_(0019b4f4)
 0019c650: Evaluate_Linear_Ability_Behaviors