Difference between revisions of "Check if any units are in range (0019b30c)"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
m (Dokurider moved page 0019b30c - 0019b4f0 to Check if any units are in range (0019b30c): Renaming and adding new documentation)
m (Corrected a comment (The Tri Attack routine is actually the Height/Depth Check))
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
<font face='Courier New'>
+
Check if any units are in range
+
 
  0019af18: 3c02801a lui r2,0x801a
+
  0019b30c: 3c02801a lui r2,0x801a
  0019af1c: 90420d7b lbu r2,0x0d7b(r2) load ??
+
  0019b310: 90420d7b lbu r2,0x0d7b(r2)
  0019af20: 27bdffd8 addiu r29,r29,0xffd8
+
  0019b314: 27bdffe8 addiu r29,r29,0xffe8
  0019af24: afb20018 sw r18,0x0018(r29)
+
  0019b318: afb00010 sw r16,0x0010(r29)
  0019af28: 3c12801a lui r18,0x801a
+
  0019b31c: 3c10801a lui r16,0x801a
  0019af2c: 2652f3c4 addiu r18,r18,0xf3c4
+
  0019b320: 2610f3c4 addiu r16,r16,0xf3c4
  0019af30: afbf0020 sw r31,0x0020(r29)
+
  0019b324: 10400008 beq r2,r0,0x0019b348 Branch if No Action Taken
0019af34: afb3001c sw r19,0x001c(r29)
+
  0019b328: afbf0014 sw r31,0x0014(r29)
0019af38: afb10014 sw r17,0x0014(r29)
+
 
0019af3c: 1040000d beq r2,r0,0x0019af74 branch if loaded byte = 0
+
  0019b32c: 3c02801a lui r2,0x801a
  0019af40: afb00010 sw r16,0x0010(r29)
+
  0019b330: 8c42f398 lw r2,-0x0c68(r2)
  0019af44: 3c03801a lui r3,0x801a
+
  0019b334: 00000000 nop
  0019af48: 90630034 lbu r3,0x0034(r3)
+
  0019b338: 10400030 beq r2,r0,0x0019b3fc
  0019af4c: 00000000 nop
+
  0019b33c: 00000000 nop
  0019af50: 2c620009 sltiu r2,r3,0x0009
+
 
0019af54: 104000da beq r2,r0,0x0019b2c0
+
  0019b340: 08066d1e j 0x0019b478
  0019af58: 00031080 sll r2,r3,0x02
+
  0019b344: 00000000 nop
0019af5c: 3c018019 lui r1,0x8019
+
 
0019af60: 00220821 addu r1,r1,r2
+
  0019b348: 3c04fdff lui r4,0xfdff
0019af64: 8c223db0 lw r2,0x3db0(r1)
+
  0019b34c: 3484ffff ori r4,r4,0xffff
0019af68: 00000000 nop
+
  0019b350: 3c02801a lui r2,0x801a
  0019af6c: 00400008 jr r2
+
  0019b354: 8c420078 lw r2,0x0078(r2)
  0019af70: 00000000 nop
+
  0019b358: 3c03801a lui r3,0x801a
0019af74: 0c0076ea jal 0x0001dba8
+
  0019b35c: 906301f1 lbu r3,0x01f1(r3)
  0019af78: 34040001 ori r4,r0,0x0001
+
  0019b360: 00441024 and r2,r2,r4
  0019af7c: 284201b9 slti r2,r2,0x01b9
+
  0019b364: 00031880 sll r3,r3,0x02
  0019af80: 104000d4 beq r2,r0,0x0019b2d4
+
  0019b368: 00701821 addu r3,r3,r16
  0019af84: 34020007 ori r2,r0,0x0007
+
  0019b36c: 3c01801a lui r1,0x801a
0019af88: 8e42000c lw r2,0x000c(r18)
+
  0019b370: ac220078 sw r2,0x0078(r1) Remove Physical Follow Target Spell?
  0019af8c: 00000000 nop
+
  0019b374: 8c620cc4 lw r2,0x0cc4(r3)
0019af90: 044100d5 bgez r2,0x0019b2e8
+
  0019b378: 3c01801a lui r1,0x801a
  0019af94: a24019b7 sb r0,0x19b7(r18)
+
  0019b37c: ac22f3dc sw r2,-0x0c24(r1)
  0019af98: 30420800 andi r2,r2,0x0800
+
  0019b380: 0c066ec8 jal 0x0019bb20 Check Map for Crystal/Treasure
  0019af9c: 1040000e beq r2,r0,0x0019afd8
+
  0019b384: 00000000 nop
0019afa0: 00000000 nop
+
  0019b388: 3c02801a lui r2,0x801a
0019afa4: 925019b8 lbu r16,0x19b8(r18)
+
  0019b38c: 8c42f3d0 lw r2,-0x0c30(r2)
0019afa8: 0c0088c3 jal 0x0002230c
+
  0019b390: 00000000 nop
0019afac: 00000000 nop
+
  0019b394: 30421000 andi r2,r2,0x1000
0019afb0: 00401821 addu r3,r2,r0
+
  0019b398: 10400021 beq r2,r0,0x0019b420 Branch if Follow Target
0019afb4: 04610003 bgez r3,0x0019afc4
+
  0019b39c: 34020005 ori r2,r0,0x0005
  0019afb8: 000211c3 sra r2,r2,0x07
+
 
0019afbc: 2462007f addiu r2,r3,0x007f
+
  0019b3a0: 3c02801a lui r2,0x801a
0019afc0: 000211c3 sra r2,r2,0x07
+
  0019b3a4: 8442f3c6 lh r2,-0x0c3a(r2) Load Ability ID
0019afc4: 000211c0 sll r2,r2,0x07
+
  0019b3a8: 00000000 nop
0019afc8: 00621023 subu r2,r3,r2
+
  0019b3ac: 000218c0 sll r3,r2,0x03
0019afcc: 0202102a slt r2,r16,r2
+
  0019b3b0: 00621823 subu r3,r3,r2
  0019afd0: 144000c6 bne r2,r0,0x0019b2ec
+
  0019b3b4: 00031840 sll r3,r3,0x01
  0019afd4: 00001021 addu r2,r0,r0
+
  0019b3b8: 3c018006 lui r1,0x8006
0019afd8: 92420000 lbu r2,0x0000(r18)
+
  0019b3bc: 00230821 addu r1,r1,r3
  0019afdc: 96430002 lhu r3,0x0002(r18)
+
  0019b3c0: 9022fbf3 lbu r2,-0x040d(r1) Load Ability Data 2
0019afe0: 92440006 lbu r4,0x0006(r18)
+
  0019b3c4: 00000000 nop
0019afe4: 00008021 addu r16,r0,r0
+
  0019b3c8: 30420001 andi r2,r2,0x0001
0019afe8: a242001d sb r2,0x001d(r18)
+
  0019b3cc: 14400014 bne r2,r0,0x0019b420 Branch if Ability can Target Self
0019afec: a643001e sh r3,0x001e(r18)
+
  0019b3d0: 34020005 ori r2,r0,0x0005
  0019aff0: a2440024 sb r4,0x0024(r18)
+
 
  0019aff4: 02501021 addu r2,r18,r16
+
  0019b3d4: 3c03801a lui r3,0x801a
0019aff8: 90430c78 lbu r3,0x0c78(r2)
+
  0019b3d8: 906301f2 lbu r3,0x01f2(r3)
  0019affc: 26100001 addiu r16,r16,0x0001
+
  0019b3dc: 34020001 ori r2,r0,0x0001
  0019b000: a0430c8d sb r3,0x0c8d(r2)
+
  0019b3e0: 3c01801a lui r1,0x801a
  0019b004: 2a020015 slti r2,r16,0x0015
+
  0019b3e4: a022f3d8 sb r2,-0x0c28(r1)
  0019b008: 1440fffb bne r2,r0,0x0019aff8
+
  0019b3e8: 34020006 ori r2,r0,0x0006
0019b00c: 02501021 addu r2,r18,r16
+
  0019b3ec: 3c01801a lui r1,0x801a
0019b010: 8e43000c lw r3,0x000c(r18)
+
  0019b3f0: a022f3ea sb r2,-0x0c16(r1)
  0019b014: 00000000 nop
+
  0019b3f4: 3c01801a lui r1,0x801a
  0019b018: 30628000 andi r2,r3,0x8000
+
  0019b3f8: a023f3eb sb r3,-0x0c15(r1)
  0019b01c: 10400024 beq r2,r0,0x0019b0b0
+
  0019b3fc: 0c065bbd jal 0x00196ef4 Check if Highest Target Priority
  0019b020: 30624000 andi r2,r3,0x4000
+
  0019b400: 00000000 nop
  0019b024: 92440e2e lbu r4,0x0e2e(r18)
+
  0019b404: 2403ffff addiu r3,r0,0xffff
  0019b028: 92420e2d lbu r2,0x0e2d(r18)
+
  0019b408: 14430005 bne r2,r3,0x0019b420 Branch if ability isn't the highest target priority
  0019b02c: 34030006 ori r3,r0,0x0006
+
  0019b40c: 34020005 ori r2,r0,0x0005
  0019b030: a2430026 sb r3,0x0026(r18)
+
 
0019b034: 00021080 sll r2,r2,0x02
+
  0019b410: 3c01801a lui r1,0x801a
  0019b038: 00521021 addu r2,r2,r18
+
  0019b414: ac20f398 sw r0,-0x0c68(r1)
0019b03c: a2440027 sb r4,0x0027(r18)
+
  0019b418: 08066d38 j 0x0019b4e0 Exit and choose Ability
0019b040: 8c420cc4 lw r2,0x0cc4(r2)
+
  0019b41c: 2402ffff addiu r2,r0,0xffff
  0019b044: 0c066ec8 jal 0x0019bb20
+
 
0019b048: ae420018 sw r2,0x0018(r18)
+
  0019b420: a2020026 sb r2,0x0026(r16) 5 = Not the highest Priority (not preferred?)
0019b04c: 92420000 lbu r2,0x0000(r18)
+
  0019b424: 3c01801a lui r1,0x801a
  0019b050: 3c018006 lui r1,0x8006
+
  0019b428: ac20f398 sw r0,-0x0c68(r1)
  0019b054: 00220821 addu r1,r1,r2
+
  0019b42c: 8e030e30 lw r3,0x0e30(r16)
  0019b058: 90235cb4 lbu r3,0x5cb4(r1)
+
  0019b430: 34020001 ori r2,r0,0x0001
  0019b05c: 34020003 ori r2,r0,0x0003
+
  0019b434: a2020014 sb r2,0x0014(r16)
0019b060: 14620008 bne r3,r2,0x0019b084
+
  0019b438: ae030c74 sw r3,0x0c74(r16)
0019b064: 00000000 nop
+
 
  0019b068: 0c066eef jal 0x0019bbbc
+
  0019b43c: 92030026 lbu r3,0x0026(r16)
0019b06c: 00000000 nop
+
  0019b440: 34020006 ori r2,r0,0x0006
0019b070: 2403ffff addiu r3,r0,0xffff
+
  0019b444: 14620002 bne r3,r2,0x0019b450 Branch if Ability Follows Target?
0019b074: 1443009c bne r2,r3,0x0019b2e8
+
  0019b448: 34040001 ori r4,r0,0x0001
0019b078: 34020006 ori r2,r0,0x0006
+
 
  0019b07c: 08066cb6 j 0x0019b2d8
+
  0019b44c: 34040003 ori r4,r0,0x0003
0019b080: a2420c70 sb r2,0x0c70(r18)
+
  0019b450: 0c06723b jal 0x0019c8ec Check if Linear Attack hits anything
0019b084: 0c067950 jal 0x0019e540
+
  0019b454: 00002821 addu r5,r0,r0
0019b088: 00000000 nop
+
  0019b458: 26040bdc addiu r4,r16,0x0bdc
0019b08c: 10400097 beq r2,r0,0x0019b2ec
+
  0019b45c: 26050b4c addiu r5,r16,0x0b4c
  0019b090: 00001021 addu r2,r0,r0
+
  0019b460: 0c066ac2 jal 0x0019ab08 Transfer Halfword Values
0019b094: 0c065bbd jal 0x00196ef4
+
  0019b464: 34060048 ori r6,r0,0x0048
0019b098: 00000000 nop
+
  0019b468: 0c066d3d jal 0x0019b4f4 Height/Depth Check
  0019b09c: 2403ffff addiu r3,r0,0xffff
+
  0019b46c: 26040e30 addiu r4,r16,0x0e30
  0019b0a0: 1443008f bne r2,r3,0x0019b2e0
+
  0019b470: 1040000a beq r2,r0,0x0019b49c Branch if ability can't be used
  0019b0a4: 34020008 ori r2,r0,0x0008
+
  0019b474: 00000000 nop
  0019b0a8: 08066cb6 j 0x0019b2d8
+
 
  0019b0ac: a2420c70 sb r2,0x0c70(r18)
+
  0019b478: 0c067367 jal 0x0019cd9c Check if any units are in range?
  0019b0b0: 10400008 beq r2,r0,0x0019b0d4
+
  0019b47c: 00000000 nop
  0019b0b4: 00000000 nop
+
  0019b480: 2403ffff addiu r3,r0,0xffff
0019b0b8: 0c066dee jal 0x0019b7b8
+
  0019b484: 14430005 bne r2,r3,0x0019b49c Branch if no units are in range/RNG said no
0019b0bc: 00000000 nop
+
  0019b488: 34020001 ori r2,r0,0x0001
0019b0c0: 2403ffff addiu r3,r0,0xffff
+
 
0019b0c4: 14430003 bne r2,r3,0x0019b0d4
+
  0019b48c: 3c01801a lui r1,0x801a
0019b0c8: 2402ffff addiu r2,r0,0xffff
+
  0019b490: ac22f398 sw r2,-0x0c68(r1)
0019b0cc: 08066cbb j 0x0019b2ec
+
  0019b494: 08066d38 j 0x0019b4e0 Exit and Chose Ability
  0019b0d0: a2400c70 sb r0,0x0c70(r18)
+
  0019b498: 2402ffff addiu r2,r0,0xffff
0019b0d4: 0c067950 jal 0x0019e540
+
 
0019b0d8: 00000000 nop
+
  0019b49c: 3c02801a lui r2,0x801a
0019b0dc: 10400083 beq r2,r0,0x0019b2ec
+
  0019b4a0: 8c42f398 lw r2,-0x0c68(r2)
0019b0e0: 00001021 addu r2,r0,r0
+
  0019b4a4: 00000000 nop
0019b0e4: 92420e2e lbu r2,0x0e2e(r18)
+
  0019b4a8: 14400008 bne r2,r0,0x0019b4cc <Find Highest Target Priority> if True
  0019b0e8: 00000000 nop
+
  0019b4ac: 24420001 addiu r2,r2,0x0001
0019b0ec: 02421021 addu r2,r18,r2
+
 
  0019b0f0: 90420c8d lbu r2,0x0c8d(r2)
+
  0019b4b0: 8e030018 lw r3,0x0018(r16)
  0019b0f4: 00000000 nop
+
  0019b4b4: a2000014 sb r0,0x0014(r16)
0019b0f8: 10400006 beq r2,r0,0x0019b114
+
  0019b4b8: ae030c74 sw r3,0x0c74(r16)
0019b0fc: 00000000 nop
+
  0019b4bc: 3c01801a lui r1,0x801a
0019b100: 0c066cc3 jal 0x0019b30c
+
  0019b4c0: ac22f398 sw r2,-0x0c68(r1)
  0019b104: 00000000 nop
+
  0019b4c4: 08066d0f j 0x0019b43c Jump back to 0x0026 check
  0019b108: 2403ffff addiu r3,r0,0xffff
+
  0019b4c8: 00000000 nop
  0019b10c: 10430071 beq r2,r3,0x0019b2d4
+
 
  0019b110: 34020001 ori r2,r0,0x0001
+
  <Find Highest Target Priority>
  0019b114: 92440e2e lbu r4,0x0e2e(r18)
+
  0019b4cc: 0c067c96 jal 0x0019f258 Store units coordinates
  0019b118: 0c067976 jal 0x0019e5d8
+
  0019b4d0: 26040e30 addiu r4,r16,0x0e30
0019b11c: 34050001 ori r5,r0,0x0001
+
  0019b4d4: 0c065bf1 jal 0x00196fc4 Compare and Set Highest Unit Target Priority
0019b120: 8e43000c lw r3,0x000c(r18)
+
  0019b4d8: 00000000 nop
  0019b124: 00000000 nop
+
  <Exit>
  0019b128: 30631000 andi r3,r3,0x1000
+
0019b4dc: 00001021 addu r2,r0,r0
0019b12c: 10600056 beq r3,r0,0x0019b288
+
  0019b4e0: 8fbf0014 lw r31,0x0014(r29)
0019b130: a2420e4c sb r2,0x0e4c(r18)
+
  0019b4e4: 8fb00010 lw r16,0x0010(r29)
0019b134: 34020006 ori r2,r0,0x0006
+
  0019b4e8: 27bd0018 addiu r29,r29,0x0018
  0019b138: a2420026 sb r2,0x0026(r18)
+
  0019b4ec: 03e00008 jr r31
0019b13c: 8e42000c lw r2,0x000c(r18)
+
  0019b4f0: 00000000 nop
  0019b140: 3c030100 lui r3,0x0100
 
  0019b144: 00431024 and r2,r2,r3
 
0019b148: 1040000c beq r2,r0,0x0019b17c
 
0019b14c: 3c030200 lui r3,0x0200
 
0019b150: 8e420cb4 lw r2,0x0cb4(r18)
 
  0019b154: 00000000 nop
 
0019b158: 00431025 or r2,r2,r3
 
0019b15c: ae420cb4 sw r2,0x0cb4(r18)
 
  0019b160: 0c066fcb jal 0x0019bf2c
 
0019b164: 00000000 nop
 
0019b168: 2403ffff addiu r3,r0,0xffff
 
0019b16c: 14430042 bne r2,r3,0x0019b278
 
0019b170: 34020002 ori r2,r0,0x0002
 
  0019b174: 08066cb6 j 0x0019b2d8
 
0019b178: a2420c70 sb r2,0x0c70(r18)
 
0019b17c: 00008021 addu r16,r0,r0
 
0019b180: 02508821 addu r17,r18,r16
 
0019b184: 92220c8d lbu r2,0x0c8d(r17)
 
  0019b188: 92230c8d lbu r3,0x0c8d(r17)
 
0019b18c: 00000000 nop
 
  0019b190: 10600006 beq r3,r0,0x0019b1ac
 
0019b194: a2220ca2 sb r2,0x0ca2(r17)
 
  0019b198: 0c067c36 jal 0x0019f0d8
 
0019b19c: 02002021 addu r4,r16,r0
 
0019b1a0: 14400002 bne r2,r0,0x0019b1ac
 
  0019b1a4: 00000000 nop
 
0019b1a8: a2200c8d sb r0,0x0c8d(r17)
 
0019b1ac: 26100001 addiu r16,r16,0x0001
 
0019b1b0: 2a020015 slti r2,r16,0x0015
 
  0019b1b4: 1440fff3 bne r2,r0,0x0019b184
 
0019b1b8: 02508821 addu r17,r18,r16
 
  0019b1bc: 8e420cb4 lw r2,0x0cb4(r18)
 
0019b1c0: 3c030200 lui r3,0x0200
 
0019b1c4: 00431025 or r2,r2,r3
 
  0019b1c8: ae420cb4 sw r2,0x0cb4(r18)
 
0019b1cc: 0c066fcb jal 0x0019bf2c
 
  0019b1d0: 00000000 nop
 
0019b1d4: 2403ffff addiu r3,r0,0xffff
 
0019b1d8: 14430003 bne r2,r3,0x0019b1e8
 
0019b1dc: 00008021 addu r16,r0,r0
 
  0019b1e0: 08066cb5 j 0x0019b2d4
 
0019b1e4: 34020003 ori r2,r0,0x0003
 
  0019b1e8: 34130001 ori r19,r0,0x0001
 
0019b1ec: 02508821 addu r17,r18,r16
 
0019b1f0: 92220ca2 lbu r2,0x0ca2(r17)
 
  0019b1f4: 00000000 nop
 
  0019b1f8: 10400008 beq r2,r0,0x0019b21c
 
  0019b1fc: 00000000 nop
 
0019b200: 0c067c36 jal 0x0019f0d8
 
  0019b204: 02002021 addu r4,r16,r0
 
  0019b208: 10400003 beq r2,r0,0x0019b218
 
  0019b20c: 00000000 nop
 
0019b210: 08066c87 j 0x0019b21c
 
0019b214: a2200c8d sb r0,0x0c8d(r17)
 
0019b218: a2330c8d sb r19,0x0c8d(r17)
 
0019b21c: 26100001 addiu r16,r16,0x0001
 
0019b220: 2a020015 slti r2,r16,0x0015
 
0019b224: 1440fff2 bne r2,r0,0x0019b1f0
 
0019b228: 02508821 addu r17,r18,r16
 
0019b22c: 3c03fdff lui r3,0xfdff
 
0019b230: 8e420cb4 lw r2,0x0cb4(r18)
 
0019b234: 3463ffff ori r3,r3,0xffff
 
0019b238: 00431024 and r2,r2,r3
 
0019b23c: ae420cb4 sw r2,0x0cb4(r18)
 
  0019b240: 0c066fcb jal 0x0019bf2c
 
  0019b244: 00000000 nop
 
  0019b248: 2403ffff addiu r3,r0,0xffff
 
  0019b24c: 14430003 bne r2,r3,0x0019b25c
 
  0019b250: 00008021 addu r16,r0,r0
 
0019b254: 08066cb5 j 0x0019b2d4
 
0019b258: 34020004 ori r2,r0,0x0004
 
  0019b25c: 02501021 addu r2,r18,r16
 
  0019b260: 90430ca2 lbu r3,0x0ca2(r2)
 
0019b264: 26100001 addiu r16,r16,0x0001
 
0019b268: a0430c8d sb r3,0x0c8d(r2)
 
  0019b26c: 2a020015 slti r2,r16,0x0015
 
  0019b270: 1440fffb bne r2,r0,0x0019b260
 
  0019b274: 02501021 addu r2,r18,r16
 
  0019b278: 92420005 lbu r2,0x0005(r18)
 
  0019b27c: 00000000 nop
 
  0019b280: 10400017 beq r2,r0,0x0019b2e0
 
  0019b284: 00000000 nop
 
0019b288: 0c067c07 jal 0x0019f01c
 
0019b28c: 00000000 nop
 
0019b290: 10400013 beq r2,r0,0x0019b2e0
 
0019b294: 34020005 ori r2,r0,0x0005
 
0019b298: a2420026 sb r2,0x0026(r18)
 
  0019b29c: 8e42000c lw r2,0x000c(r18)
 
  0019b2a0: 3c030100 lui r3,0x0100
 
0019b2a4: 00431024 and r2,r2,r3
 
0019b2a8: 10400005 beq r2,r0,0x0019b2c0
 
  0019b2ac: 3c030200 lui r3,0x0200
 
0019b2b0: 8e420cb4 lw r2,0x0cb4(r18)
 
  0019b2b4: 00000000 nop
 
0019b2b8: 00431025 or r2,r2,r3
 
  0019b2bc: ae420cb4 sw r2,0x0cb4(r18)
 
  0019b2c0: 0c066fcb jal 0x0019bf2c
 
  0019b2c4: 00000000 nop
 
0019b2c8: 2403ffff addiu r3,r0,0xffff
 
  0019b2cc: 14430004 bne r2,r3,0x0019b2e0
 
  0019b2d0: 34020005 ori r2,r0,0x0005
 
  0019b2d4: a2420c70 sb r2,0x0c70(r18)
 
0019b2d8: 08066cbb j 0x0019b2ec
 
0019b2dc: 2402ffff addiu r2,r0,0xffff
 
  0019b2e0: 0c065bf1 jal 0x00196fc4
 
  0019b2e4: 00000000 nop
 
  0019b2e8: 00001021 addu r2,r0,r0
 
  0019b2ec: 8fbf0020 lw r31,0x0020(r29)
 
0019b2f0: 8fb3001c lw r19,0x001c(r29)
 
0019b2f4: 8fb20018 lw r18,0x0018(r29)
 
0019b2f8: 8fb10014 lw r17,0x0014(r29)
 
  0019b2fc: 8fb00010 lw r16,0x0010(r29)
 
  0019b300: 27bd0028 addiu r29,r29,0x0028
 
  0019b304: 03e00008 jr r31
 
  0019b308: 00000000 nop
 
</font>
 

Latest revision as of 10:54, 24 November 2022

Check if any units are in range
0019b30c: 3c02801a lui r2,0x801a
0019b310: 90420d7b lbu r2,0x0d7b(r2)
0019b314: 27bdffe8 addiu r29,r29,0xffe8
0019b318: afb00010 sw r16,0x0010(r29)
0019b31c: 3c10801a lui r16,0x801a
0019b320: 2610f3c4 addiu r16,r16,0xf3c4
0019b324: 10400008 beq r2,r0,0x0019b348				Branch if No Action Taken
0019b328: afbf0014 sw r31,0x0014(r29)
0019b32c: 3c02801a lui r2,0x801a
0019b330: 8c42f398 lw r2,-0x0c68(r2)
0019b334: 00000000 nop
0019b338: 10400030 beq r2,r0,0x0019b3fc
0019b33c: 00000000 nop
0019b340: 08066d1e j 0x0019b478						
0019b344: 00000000 nop
0019b348: 3c04fdff lui r4,0xfdff
0019b34c: 3484ffff ori r4,r4,0xffff
0019b350: 3c02801a lui r2,0x801a
0019b354: 8c420078 lw r2,0x0078(r2)
0019b358: 3c03801a lui r3,0x801a
0019b35c: 906301f1 lbu r3,0x01f1(r3)
0019b360: 00441024 and r2,r2,r4
0019b364: 00031880 sll r3,r3,0x02
0019b368: 00701821 addu r3,r3,r16
0019b36c: 3c01801a lui r1,0x801a
0019b370: ac220078 sw r2,0x0078(r1)						Remove Physical Follow Target Spell?
0019b374: 8c620cc4 lw r2,0x0cc4(r3)
0019b378: 3c01801a lui r1,0x801a
0019b37c: ac22f3dc sw r2,-0x0c24(r1)
0019b380: 0c066ec8 jal 0x0019bb20						Check Map for Crystal/Treasure
0019b384: 00000000 nop
0019b388: 3c02801a lui r2,0x801a
0019b38c: 8c42f3d0 lw r2,-0x0c30(r2)
0019b390: 00000000 nop
0019b394: 30421000 andi r2,r2,0x1000
0019b398: 10400021 beq r2,r0,0x0019b420					Branch if Follow Target
0019b39c: 34020005 ori r2,r0,0x0005
0019b3a0: 3c02801a lui r2,0x801a
0019b3a4: 8442f3c6 lh r2,-0x0c3a(r2)					Load Ability ID
0019b3a8: 00000000 nop
0019b3ac: 000218c0 sll r3,r2,0x03
0019b3b0: 00621823 subu r3,r3,r2
0019b3b4: 00031840 sll r3,r3,0x01
0019b3b8: 3c018006 lui r1,0x8006
0019b3bc: 00230821 addu r1,r1,r3
0019b3c0: 9022fbf3 lbu r2,-0x040d(r1)					Load Ability Data 2
0019b3c4: 00000000 nop
0019b3c8: 30420001 andi r2,r2,0x0001
0019b3cc: 14400014 bne r2,r0,0x0019b420					Branch if Ability can Target Self
0019b3d0: 34020005 ori r2,r0,0x0005
0019b3d4: 3c03801a lui r3,0x801a
0019b3d8: 906301f2 lbu r3,0x01f2(r3)
0019b3dc: 34020001 ori r2,r0,0x0001
0019b3e0: 3c01801a lui r1,0x801a
0019b3e4: a022f3d8 sb r2,-0x0c28(r1)
0019b3e8: 34020006 ori r2,r0,0x0006
0019b3ec: 3c01801a lui r1,0x801a
0019b3f0: a022f3ea sb r2,-0x0c16(r1)
0019b3f4: 3c01801a lui r1,0x801a
0019b3f8: a023f3eb sb r3,-0x0c15(r1)
0019b3fc: 0c065bbd jal 0x00196ef4						Check if Highest Target Priority
0019b400: 00000000 nop
0019b404: 2403ffff addiu r3,r0,0xffff
0019b408: 14430005 bne r2,r3,0x0019b420					Branch if ability isn't the highest target priority
0019b40c: 34020005 ori r2,r0,0x0005
0019b410: 3c01801a lui r1,0x801a
0019b414: ac20f398 sw r0,-0x0c68(r1)
0019b418: 08066d38 j 0x0019b4e0							Exit and choose Ability
0019b41c: 2402ffff addiu r2,r0,0xffff
0019b420: a2020026 sb r2,0x0026(r16)					5 = Not the highest Priority (not preferred?)
0019b424: 3c01801a lui r1,0x801a
0019b428: ac20f398 sw r0,-0x0c68(r1)
0019b42c: 8e030e30 lw r3,0x0e30(r16)
0019b430: 34020001 ori r2,r0,0x0001
0019b434: a2020014 sb r2,0x0014(r16)
0019b438: ae030c74 sw r3,0x0c74(r16)
0019b43c: 92030026 lbu r3,0x0026(r16)
0019b440: 34020006 ori r2,r0,0x0006
0019b444: 14620002 bne r3,r2,0x0019b450				Branch if Ability Follows Target?
0019b448: 34040001 ori r4,r0,0x0001
0019b44c: 34040003 ori r4,r0,0x0003
0019b450: 0c06723b jal 0x0019c8ec					Check if Linear Attack hits anything
0019b454: 00002821 addu r5,r0,r0
0019b458: 26040bdc addiu r4,r16,0x0bdc
0019b45c: 26050b4c addiu r5,r16,0x0b4c
0019b460: 0c066ac2 jal 0x0019ab08					Transfer Halfword Values
0019b464: 34060048 ori r6,r0,0x0048
0019b468: 0c066d3d jal 0x0019b4f4					Height/Depth Check
0019b46c: 26040e30 addiu r4,r16,0x0e30
0019b470: 1040000a beq r2,r0,0x0019b49c				Branch if ability can't be used
0019b474: 00000000 nop
0019b478: 0c067367 jal 0x0019cd9c					Check if any units are in range?
0019b47c: 00000000 nop
0019b480: 2403ffff addiu r3,r0,0xffff
0019b484: 14430005 bne r2,r3,0x0019b49c				Branch if no units are in range/RNG said no
0019b488: 34020001 ori r2,r0,0x0001
0019b48c: 3c01801a lui r1,0x801a
0019b490: ac22f398 sw r2,-0x0c68(r1)
0019b494: 08066d38 j 0x0019b4e0						Exit and Chose Ability
0019b498: 2402ffff addiu r2,r0,0xffff
0019b49c: 3c02801a lui r2,0x801a
0019b4a0: 8c42f398 lw r2,-0x0c68(r2)
0019b4a4: 00000000 nop
0019b4a8: 14400008 bne r2,r0,0x0019b4cc				<Find Highest Target Priority> if True
0019b4ac: 24420001 addiu r2,r2,0x0001
0019b4b0: 8e030018 lw r3,0x0018(r16)
0019b4b4: a2000014 sb r0,0x0014(r16)
0019b4b8: ae030c74 sw r3,0x0c74(r16)
0019b4bc: 3c01801a lui r1,0x801a
0019b4c0: ac22f398 sw r2,-0x0c68(r1)
0019b4c4: 08066d0f j 0x0019b43c						Jump back to 0x0026 check
0019b4c8: 00000000 nop
<Find Highest Target Priority>
0019b4cc: 0c067c96 jal 0x0019f258					Store units coordinates
0019b4d0: 26040e30 addiu r4,r16,0x0e30
0019b4d4: 0c065bf1 jal 0x00196fc4					Compare and Set Highest Unit Target Priority
0019b4d8: 00000000 nop
<Exit>
0019b4dc: 00001021 addu r2,r0,r0
0019b4e0: 8fbf0014 lw r31,0x0014(r29)
0019b4e4: 8fb00010 lw r16,0x0010(r29)
0019b4e8: 27bd0018 addiu r29,r29,0x0018
0019b4ec: 03e00008 jr r31
0019b4f0: 00000000 nop