Difference between revisions of "Find Positive Priority Target within 3 Range (0019689c)"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Uploaded the correct routine)
m
Line 1: Line 1:
0019689c: 3c03801a lui r3,0x801a
+
0019689c: 3c03801a lui r3,0x801a
001968a0: 8c6301f8 lw r3,0x01f8(r3) Acting Unit's AI Decision Pointer
+
001968a0: 8c6301f8 lw r3,0x01f8(r3) Acting Unit's AI Decision Pointer
001968a4: 27bdffe8 addiu r29,r29,0xffe8
+
001968a4: 27bdffe8 addiu r29,r29,0xffe8
001968a8: afbf0010 sw r31,0x0010(r29)
+
001968a8: afbf0010 sw r31,0x0010(r29)
  
001968ac: 90620005 lbu r2,0x0005(r3) Load Main Target ID
+
001968ac: 90620005 lbu r2,0x0005(r3) Load Main Target ID
001968b0: 00000000 nop
+
001968b0: 00000000 nop
001968b4: 00021100 sll r2,r2,0x04
+
001968b4: 00021100 sll r2,r2,0x04
001968b8: 3c01801a lui r1,0x801a
+
001968b8: 3c01801a lui r1,0x801a
001968bc: 00220821 addu r1,r1,r2
+
001968bc: 00220821 addu r1,r1,r2
001968c0: 90220bf8 lbu r2,0x0bf8(r1) Load Enemy Flag
+
001968c0: 90220bf8 lbu r2,0x0bf8(r1) Load Enemy Flag
001968c4: 00000000 nop
+
001968c4: 00000000 nop
001968c8: 10400009 beq r2,r0,0x001968f0 Branch if Ally
+
001968c8: 10400009 beq r2,r0,0x001968f0 Branch if Ally
001968cc: 00000000 nop
+
001968cc: 00000000 nop
  
001968d0: 90620006 lbu r2,0x0006(r3) Load AI Targeting Flags
+
001968d0: 90620006 lbu r2,0x0006(r3) Load AI Targeting Flags
001968d4: 00000000 nop
+
001968d4: 00000000 nop
001968d8: 30420001 andi r2,r2,0x0001
+
001968d8: 30420001 andi r2,r2,0x0001
001968dc: 10400004 beq r2,r0,0x001968f0 Branch if unit has indirect/arcing attack?
+
001968dc: 10400004 beq r2,r0,0x001968f0 Branch if unit has indirect/arcing attack?
  
001968e0: 28820003 slti r2,r4,0x0003
+
001968e0: 28820003 slti r2,r4,0x0003
001968e4: 10400002 beq r2,r0,0x001968f0 Branch if Range is greater or equal than 3
+
001968e4: 10400002 beq r2,r0,0x001968f0 Branch if Range is greater or equal than 3
001968e8: 00000000 nop
+
001968e8: 00000000 nop
001968ec: 34040003 ori r4,r0,0x0003 Always look for targets at least in 3 range or greater
+
001968ec: 34040003 ori r4,r0,0x0003 Always look for targets at least in 3 range or greater
  
001968f0: 0c065a42 jal 0x00196908 Get Positive Priority
+
001968f0: 0c065a42 jal 0x00196908 Get Positive Priority
001968f4: 00000000 nop
+
001968f4: 00000000 nop
001968f8: 8fbf0010 lw r31,0x0010(r29)
+
001968f8: 8fbf0010 lw r31,0x0010(r29)
001968fc: 27bd0018 addiu r29,r29,0x0018
+
001968fc: 27bd0018 addiu r29,r29,0x0018
00196900: 03e00008 jr r31
+
00196900: 03e00008 jr r31
00196904: 00000000 nop
+
00196904: 00000000 nop

Revision as of 00:44, 9 March 2017

0019689c: 3c03801a lui r3,0x801a
001968a0: 8c6301f8 lw r3,0x01f8(r3)				Acting Unit's AI Decision Pointer
001968a4: 27bdffe8 addiu r29,r29,0xffe8
001968a8: afbf0010 sw r31,0x0010(r29)
001968ac: 90620005 lbu r2,0x0005(r3)			Load Main Target ID		
001968b0: 00000000 nop
001968b4: 00021100 sll r2,r2,0x04
001968b8: 3c01801a lui r1,0x801a
001968bc: 00220821 addu r1,r1,r2
001968c0: 90220bf8 lbu r2,0x0bf8(r1)			Load Enemy Flag		
001968c4: 00000000 nop
001968c8: 10400009 beq r2,r0,0x001968f0			Branch if Ally
001968cc: 00000000 nop
001968d0: 90620006 lbu r2,0x0006(r3)			Load AI Targeting Flags
001968d4: 00000000 nop
001968d8: 30420001 andi r2,r2,0x0001
001968dc: 10400004 beq r2,r0,0x001968f0			Branch if unit has indirect/arcing attack?
001968e0: 28820003 slti r2,r4,0x0003
001968e4: 10400002 beq r2,r0,0x001968f0			Branch if Range is greater or equal than 3
001968e8: 00000000 nop
001968ec: 34040003 ori r4,r0,0x0003				Always look for targets at least in 3 range or greater
001968f0: 0c065a42 jal 0x00196908				Get Positive Priority
001968f4: 00000000 nop
001968f8: 8fbf0010 lw r31,0x0010(r29)
001968fc: 27bd0018 addiu r29,r29,0x0018
00196900: 03e00008 jr r31
00196904: 00000000 nop