Calculate Targeting for Menu Types
Jump to navigation
Jump to search
Calculate Targeting for Menu Types 0017aaf8: 27bdffc8 addiu r29,r29,0xffc8 0017aafc: 27a50010 addiu r5,r29,0x0010 r5 = Stack Pointer + 0x10 0017ab00: afbf0034 sw r31,0x0034(r29) 0017ab04: afb20030 sw r18,0x0030(r29) 0017ab08: afb1002c sw r17,0x002c(r29) 0017ab0c: 0c01788b jal 0x0005e22c Transfer Attacker/Self ID? Through Mount Data 0017ab10: afb00028 sw r16,0x0028(r29) 0017ab14: 93a30010 lbu r3,0x0010(r29) Load Unit's Attacker/Self ID? 0017ab18: 00000000 nop 0017ab1c: 2c620015 sltiu r2,r3,0x0015 0017ab20: 10400042 beq r2,r0,0x 0017ac2c Branch if Unit doesn't exist 0017ab24: 34110001 ori r17,r0,0x0001 r17 = 1 0017ab28: 000310c0 sll r2,r3,0x03 ID * 8 0017ab2c: 00431023 subu r2,r2,r3 ID * 7 0017ab30: 00021180 sll r2,r2,0x06 ID * 448 0017ab34: 3c038019 lui r3,0x8019 0017ab38: 246308cc addiu r3,r3,0x08cc 0017ab3c: 00432021 addu r4,r2,r3 r4 = Unit's Data Pointer 0017ab40: 90830001 lbu r3,0x0001(r4) Load Unit's ID 0017ab44: 340200ff ori r2,r0,0x00ff r2 = FF 0017ab48: 10620038 beq r3,r2,0x 0017ac2c Branch if Unit doesn't exist 0017ab4c: 34020006 ori r2,r0,0x0006 r2 = 6 0017ab50: 93a3001a lbu r3,0x001a(r29) Load Unit's ? 0017ab54: 00000000 nop 0017ab58: 14620006 bne r3,r2,0x 0017ab74 Branch if not using an ability with a target-specific animation? 0017ab5c: 00000000 nop 0017ab60: 93a2001b lbu r2,0x001b(r29) Load Unit's Target ID? 0017ab64: 00000000 nop 0017ab68: 2c420015 sltiu r2,r2,0x0015 0017ab6c: 10400041 beq r2,r0,0x 0017ac74 Branch if Unit doesn't exist 0017ab70: 2402ffff addiu r2,r0,0xffff r2 = -1 0017ab74: 93a20011 lbu r2,0x0011(r29) Load Unit's Skillset of Used Ability 0017ab78: 3c018006 lui r1,0x8006 0017ab7c: 00220821 addu r1,r1,r2 0017ab80: 90235cb4 lbu r3,0x5cb4(r1) Load Ability's Action Menu ID 0017ab84: 00000000 nop 0017ab88: 2c620010 sltiu r2,r3,0x0010 0017ab8c: 1040001e beq r2,r0,0x 0017ac08 Branch if Menu doesn't exist 0017ab90: 00031080 sll r2,r3,0x02 ID * 4 0017ab94: 3c018017 lui r1,0x8017 0017ab98: 00220821 addu r1,r1,r2 0017ab9c: 8c2240a8 lw r2,0x40a8(r1) Load Menu's Code Pointer 0017aba0: 00000000 nop 0017aba4: 00400008 jr r2 0017aba8: 00000000 nop
- Default/Monster*
0017abac: 97b00012 lhu r16,0x0012(r29) Load Unit's Last Attack ID 0017abb0: 0805eb05 j 0x 0017ac14 0017abb4: 34020001 ori r2,r0,0x0001 r2 = 1
- Item/Weapon Inventory/Attack/Jump/Charge*
0017abb8: 0805eb04 j 0x 0017ac10 0017abbc: 34110002 ori r17,r0,0x0002 r17 = 2; r2 = 1
- Arithmeticks*
0017abc0: 0c05ed34 jal 0x 0017b4d0 Calculator Routine 0017abc4: 27a40010 addiu r4,r29,0x0010 r4 = Stack Pointer + 0x10 0017abc8: 00409021 addu r18,r2,r0 r18 = Hit Counter 0017abcc: 0805eb04 j 0x 0017ac10 0017abd0: 00008821 addu r17,r0,r0 r17 = 0; r2 = 1
- Elements*
0017abd4: 0c05fcb6 jal 0x 0017f2d8 Get Elemental Ability ID 0017abd8: 00000000 nop 0017abdc: 0805eb04 j 0x 0017ac10 r17 = 1; r2 = 1 0017abe0: 00408021 addu r16,r2,r0 Ability ID = Elemental Ability
- Katana Inventory*
0017abe4: 93a20018 lbu r2,0x0018(r29) Load Unit's Used Item/Equip ID 0017abe8: 00000000 nop 0017abec: 2442ffda addiu r2,r2,0xffda ID - 0x26 0017abf0: 2c42000a sltiu r2,r2,0x000a 0017abf4: 1040001f beq r2,r0,0x 0017ac74 Branch if Used Item/Equip isn't a katana 0017abf8: 2402ffff addiu r2,r0,0xffff r2 = -1 0017abfc: 93a20018 lbu r2,0x0018(r29) Load Unit's Used Item/Equip ID 0017ac00: 0805eb04 j 0x 0017ac10 0017ac04: 24500026 addiu r16,r2,0x0026 Ability ID = Used Item/Equip ID + 0x26
- Defend/Change Equipment/Unknown1/Blank*
0017ac08: 0805eb1d j 0x 0017ac74 0017ac0c: 34020002 ori r2,r0,0x0002 r17 = 1; r2 = 2 0017ac10: 34020001 ori r2,r0,0x0001 r2 = 1 0017ac14: 1622000c bne r17,r2,0x 0017ac48 Branch if r17 != 1 0017ac18: 34020002 ori r2,r0,0x0002 r2 = 2 0017ac1c: 3202ffff andi r2,r16,0xffff r2 = Ability ID 0017ac20: 2c420170 sltiu r2,r2,0x0170 0017ac24: 14400003 bne r2,r0,0x 0017ac34 Branch if Ability is an Ability 0017ac28: 00000000 nop 0017ac2c: 0805eb1d j 0x 0017ac74 (Unknown2 starts here) 0017ac30: 2402ffff addiu r2,r0,0xffff r2 = -1 0017ac34: a7b00012 sh r16,0x0012(r29) 0017ac38: 0c05ee1d jal 0x 0017b874 Calculate Targeting Data 0017ac3c: 27a40010 addiu r4,r29,0x0010 r4 = Stack Pointer 0017ac40: 00409021 addu r18,r2,r0 r18 = Target Counter 0017ac44: 34020002 ori r2,r0,0x0002 r2 = 2 0017ac48: 16220004 bne r17,r2,0x 0017ac5c Branch if r17 != 2 0017ac4c: 00000000 nop 0017ac50: 0c05eded jal 0x 0017b7b4 Disable Green Panel on all but Target's Tile 0017ac54: 27a40010 addiu r4,r29,0x0010 r4 = Stack Pointer 0017ac58: 00409021 addu r18,r2,r0 0017ac5c: 16400003 bne r18,r0,0x 0017ac6c Branch if r18 != 0 (1 or -1) 0017ac60: 00121027 nor r2,r0,r18 r2 = 0 or -2 0017ac64: 0805eb1d j 0x 0017ac74 0017ac68: 34020001 ori r2,r0,0x0001 r2 = 1 0017ac6c: 2c420001 sltiu r2,r2,0x0001 r2 = 1 if r18 = -1 0017ac70: 00021023 subu r2,r0,r2 r2 = -1 (again) if r18 = -1 0017ac74: 8fbf0034 lw r31,0x0034(r29) (r2 = 0 if r18 = 1) 0017ac78: 8fb20030 lw r18,0x0030(r29) 0017ac7c: 8fb1002c lw r17,0x002c(r29) 0017ac80: 8fb00028 lw r16,0x0028(r29) 0017ac84: 27bd0038 addiu r29,r29,0x0038 0017ac88: 03e00008 jr r31 0017ac8c: 00000000 nop