Difference between revisions of "Check if map allows use and find Highest Target (00196ef4)"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with "<font face='Courier New'> 00196e20: 27bdffe0 addiu r29,r29,0xffe0 00196e24: afb00010 sw r16,0x0010(r29) 00196e28: 00808021 addu r16,r4,r0 00196e2c: afb10014 sw r17,0x001...")
 
(Updated documentation)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
<font face='Courier New'>
+
Check if Highest Target Priority
+
 
  00196e20: 27bdffe0 addiu r29,r29,0xffe0
+
  00196ef4: 3c02801a lui r2,0x801a
  00196e24: afb00010 sw r16,0x0010(r29)
+
  00196ef8: 90420d7b lbu r2,0x0d7b(r2)
  00196e28: 00808021 addu r16,r4,r0
+
  00196efc: 27bdffe8 addiu r29,r29,0xffe8
  00196e2c: afb10014 sw r17,0x0014(r29)
+
  00196f00: afb00010 sw r16,0x0010(r29)
  00196e30: 00a08821 addu r17,r5,r0
+
  00196f04: 3c10801a lui r16,0x801a
  00196e34: 2604001c addiu r4,r16,0x001c
+
  00196f08: 2610f3c4 addiu r16,r16,0xf3c4
  00196e38: 2625001c addiu r5,r17,0x001c
+
  00196f0c: 10400008 beq r2,r0,0x00196f30
  00196e3c: afbf001c sw r31,0x001c(r29)
+
  00196f10: afbf0014 sw r31,0x0014(r29)
00196e40: 0c065b6c jal 0x00196db0
+
 
  00196e44: afb20018 sw r18,0x0018(r29)
+
  00196f14: 3c02801a lui r2,0x801a
00196e48: 3c12801a lui r18,0x801a
+
  00196f18: 9042029b lbu r2,0x029b(r2)
  00196e4c: 2652f3c4 addiu r18,r18,0xf3c4
+
  00196f1c: 00000000 nop
  00196e50: 00402021 addu r4,r2,r0
+
  00196f20: 10400009 beq r2,r0,0x00196f48 Skip next routine if 0
  00196e54: 34020002 ori r2,r0,0x0002
+
  00196f24: 00000000 nop
  00196e58: 14820003 bne r4,r2,0x00196e68
+
  00196f28: 08065be3 j 0x00196f8c Else skip to the last evaluation
  00196e5c: 34030001 ori r3,r0,0x0001
+
  00196f2c: 00000000 nop
  00196e60: 08065bb6 j 0x00196ed8
+
 
  00196e64: 34020001 ori r2,r0,0x0001
+
  00196f30: 0c066d3d jal 0x0019b4f4 Water Depth/Elemental/Monster Skill check
  00196e68: 1483001b bne r4,r3,0x00196ed8
+
  00196f34: 26040e30 addiu r4,r16,0x0e30 Point towards positions in the Targeting Matrix
  00196e6c: 00001021 addu r2,r0,r0
+
  00196f38: 1040000a beq r2,r0,0x00196f64 Branch to main evaluation if 0
  00196e70: 92030005 lbu r3,0x0005(r16)
+
  00196f3c: 34020001 ori r2,r0,0x0001
  00196e74: 92040006 lbu r4,0x0006(r16)
+
 
  00196e78: 92250004 lbu r5,0x0004(r17)
+
  00196f40: 3c01801a lui r1,0x801a
  00196e7c: 000310c0 sll r2,r3,0x03
+
  00196f44: a022f3d8 sb r2,-0x0c28(r1)
  00196e80: 00431021 addu r2,r2,r3
+
  00196f48: 0c0674c2 jal 0x0019d308 Check against and Set Highest Unit Priority
  00196e84: 00021140 sll r2,r2,0x05
+
  00196f4c: 00000000 nop
  00196e88: 00521021 addu r2,r2,r18
+
  00196f50: 2403ffff addiu r3,r0,0xffff
  00196e8c: 24420174 addiu r2,r2,0x0174
+
  00196f54: 14430003 bne r2,r3,0x00196f64 Branch to main evaluation if 0
  00196e90: 00042100 sll r4,r4,0x04
+
  00196f58: 2402ffff addiu r2,r0,0xffff
  00196e94: 00822021 addu r4,r4,r2
+
 
  00196e98: 92020004 lbu r2,0x0004(r16)
+
  00196f5c: 08065bec j 0x00196fb0 Else exit and return -1 (Don't chose this move yet)
  00196e9c: 92230005 lbu r3,0x0005(r17)
+
  00196f60: a2000ed7 sb r0,0x0ed7(r16)
  00196ea0: 00822021 addu r4,r4,r2
+
 
  00196ea4: 000310c0 sll r2,r3,0x03
+
  00196f64: 8e030018 lw r3,0x0018(r16)
  00196ea8: 00431021 addu r2,r2,r3
+
  00196f68: 8e020e30 lw r2,0x0e30(r16)
  00196eac: 00021140 sll r2,r2,0x05
+
  00196f6c: 00000000 nop
  00196eb0: 00521021 addu r2,r2,r18
+
  00196f70: 1062000f beq r3,r2,0x00196fb0 Return 0 if Caster is in the same place in the matrix as he is on the map (Chose this move)
  00196eb4: 24420174 addiu r2,r2,0x0174
+
  00196f74: 00001021 addu r2,r0,r0
  00196eb8: 92230006 lbu r3,0x0006(r17)
+
 
  00196ebc: 90840000 lbu r4,0x0000(r4)
+
00196f78: 0c066d3d jal 0x0019b4f4 Water Depth/Elemental/Monster Skill check
  00196ec0: 00031900 sll r3,r3,0x04
+
  00196f7c: 26040018 addiu r4,r16,0x0018 Point towards absolute positions
  00196ec4: 00621821 addu r3,r3,r2
+
  00196f80: 1040000b beq r2,r0,0x00196fb0 Exit and return 0 if no problems (Chose this move)
  00196ec8: 00651821 addu r3,r3,r5
+
  00196f84: 00001021 addu r2,r0,r0
  00196ecc: 90620000 lbu r2,0x0000(r3)
+
 
  00196ed0: 00000000 nop
+
  00196f88: a2000014 sb r0,0x0014(r16)
  00196ed4: 0082102a slt r2,r4,r2
+
  00196f8c: 0c0674c2 jal 0x0019d308 Check against and Set Highest Unit Priority
  00196ed8: 8fbf001c lw r31,0x001c(r29)
+
00196f90: 00000000 nop
00196edc: 8fb20018 lw r18,0x0018(r29)
+
  00196f94: 2403ffff addiu r3,r0,0xffff
  00196ee0: 8fb10014 lw r17,0x0014(r29)
+
  00196f98: 14430004 bne r2,r3,0x00196fac Exit and return 0 if Highest Priority (chose this move)
  00196ee4: 8fb00010 lw r16,0x0010(r29)
+
  00196f9c: 34020001 ori r2,r0,0x0001
  00196ee8: 27bd0020 addiu r29,r29,0x0020
+
 
  00196eec: 03e00008 jr r31
+
  00196fa0: a2020ed7 sb r2,0x0ed7(r16)
  00196ef0: 00000000 nop
+
  00196fa4: 08065bec j 0x00196fb0 Exit and return -1 (don't chose this move yet)
</font>
+
  00196fa8: 2402ffff addiu r2,r0,0xffff
 +
 
 +
  00196fac: 00001021 addu r2,r0,r0
 +
  00196fb0: 8fbf0014 lw r31,0x0014(r29)
 +
  00196fb4: 8fb00010 lw r16,0x0010(r29)
 +
  00196fb8: 27bd0018 addiu r29,r29,0x0018
 +
  00196fbc: 03e00008 jr r31
 +
  00196fc0: 00000000 nop

Latest revision as of 01:39, 9 March 2017

Check if Highest Target Priority
00196ef4: 3c02801a lui r2,0x801a
00196ef8: 90420d7b lbu r2,0x0d7b(r2)
00196efc: 27bdffe8 addiu r29,r29,0xffe8
00196f00: afb00010 sw r16,0x0010(r29)
00196f04: 3c10801a lui r16,0x801a
00196f08: 2610f3c4 addiu r16,r16,0xf3c4
00196f0c: 10400008 beq r2,r0,0x00196f30
00196f10: afbf0014 sw r31,0x0014(r29)
00196f14: 3c02801a lui r2,0x801a
00196f18: 9042029b lbu r2,0x029b(r2)					
00196f1c: 00000000 nop
00196f20: 10400009 beq r2,r0,0x00196f48					Skip next routine if 0
00196f24: 00000000 nop
00196f28: 08065be3 j 0x00196f8c							Else skip to the last evaluation
00196f2c: 00000000 nop
00196f30: 0c066d3d jal 0x0019b4f4						Water Depth/Elemental/Monster Skill check
00196f34: 26040e30 addiu r4,r16,0x0e30					Point towards positions in the Targeting Matrix
00196f38: 1040000a beq r2,r0,0x00196f64					Branch to main evaluation if 0
00196f3c: 34020001 ori r2,r0,0x0001
00196f40: 3c01801a lui r1,0x801a
00196f44: a022f3d8 sb r2,-0x0c28(r1)
00196f48: 0c0674c2 jal 0x0019d308						Check against and Set Highest Unit Priority
00196f4c: 00000000 nop
00196f50: 2403ffff addiu r3,r0,0xffff
00196f54: 14430003 bne r2,r3,0x00196f64					Branch to main evaluation if 0
00196f58: 2402ffff addiu r2,r0,0xffff
00196f5c: 08065bec j 0x00196fb0							Else exit and return -1 (Don't chose this move yet)
00196f60: a2000ed7 sb r0,0x0ed7(r16)
00196f64: 8e030018 lw r3,0x0018(r16)
00196f68: 8e020e30 lw r2,0x0e30(r16)
00196f6c: 00000000 nop
00196f70: 1062000f beq r3,r2,0x00196fb0					Return 0 if Caster is in the same place in the matrix as he is on the map (Chose this move)
00196f74: 00001021 addu r2,r0,r0
00196f78: 0c066d3d jal 0x0019b4f4						Water Depth/Elemental/Monster Skill check
00196f7c: 26040018 addiu r4,r16,0x0018					Point towards absolute positions
00196f80: 1040000b beq r2,r0,0x00196fb0					Exit and return 0 if no problems (Chose this move)
00196f84: 00001021 addu r2,r0,r0
00196f88: a2000014 sb r0,0x0014(r16)
00196f8c: 0c0674c2 jal 0x0019d308						Check against and Set Highest Unit Priority
00196f90: 00000000 nop
00196f94: 2403ffff addiu r3,r0,0xffff
00196f98: 14430004 bne r2,r3,0x00196fac					Exit and return 0 if Highest Priority (chose this move)
00196f9c: 34020001 ori r2,r0,0x0001
00196fa0: a2020ed7 sb r2,0x0ed7(r16)
00196fa4: 08065bec j 0x00196fb0							Exit and return -1 (don't chose this move yet)
00196fa8: 2402ffff addiu r2,r0,0xffff
00196fac: 00001021 addu r2,r0,r0
00196fb0: 8fbf0014 lw r31,0x0014(r29)
00196fb4: 8fb00010 lw r16,0x0010(r29)
00196fb8: 27bd0018 addiu r29,r29,0x0018
00196fbc: 03e00008 jr r31
00196fc0: 00000000 nop