Difference between revisions of "Check target type"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Uploaded Correct Routine)
(Uploaded Some Documentation)
Line 1: Line 1:
 
<font face='Courier New'>
 
<font face='Courier New'>
 +
r4 = Unit ID
 
   
 
   
 
  00196c8c: 00041100 sll r2,r4,0x04
 
  00196c8c: 00041100 sll r2,r4,0x04
 
  00196c90: 3c01801a lui r1,0x801a
 
  00196c90: 3c01801a lui r1,0x801a
 
  00196c94: 00220821 addu r1,r1,r2
 
  00196c94: 00220821 addu r1,r1,r2
  00196c98: 90230bf7 lbu r3,0x0bf7(r1)
+
  00196c98: 90230bf7 lbu r3,0x0bf7(r1) Load AI Targeting Flags (0x07)
 
  00196c9c: 00000000 nop
 
  00196c9c: 00000000 nop
  00196ca0: 00031102 srl r2,r3,0x04
+
  00196ca0: 00031102 srl r2,r3,0x04 Remove 0x0f flags
 
  00196ca4: 30420001 andi r2,r2,0x0001
 
  00196ca4: 30420001 andi r2,r2,0x0001
  00196ca8: 1440000d bne r2,r0,0x00196ce0
+
  00196ca8: 1440000d bne r2,r0,0x00196ce0 Exit if unit can't be targeted
  00196cac: 34020001 ori r2,r0,0x0001
+
  00196cac: 34020001 ori r2,r0,0x0001 Return 1
  00196cb0: 00031142 srl r2,r3,0x05
+
  00196cb0: 00031142 srl r2,r3,0x05 Remove 0x1f flags
 
  00196cb4: 30420001 andi r2,r2,0x0001
 
  00196cb4: 30420001 andi r2,r2,0x0001
  00196cb8: 14400009 bne r2,r0,0x00196ce0
+
  00196cb8: 14400009 bne r2,r0,0x00196ce0 Exit if Unit is Dead w/o Reraise
  00196cbc: 34020001 ori r2,r0,0x0001
+
  00196cbc: 34020001 ori r2,r0,0x0001 Return 1
 
  00196cc0: 000410c0 sll r2,r4,0x03
 
  00196cc0: 000410c0 sll r2,r4,0x03
 
  00196cc4: 00441023 subu r2,r2,r4
 
  00196cc4: 00441023 subu r2,r2,r4
Line 19: Line 20:
 
  00196ccc: 3c018019 lui r1,0x8019
 
  00196ccc: 3c018019 lui r1,0x8019
 
  00196cd0: 00220821 addu r1,r1,r2
 
  00196cd0: 00220821 addu r1,r1,r2
  00196cd4: 90220925 lbu r2,0x0925(r1)
+
  00196cd4: 90220925 lbu r2,0x0925(r1) Load Unit Current Status 2
 
  00196cd8: 00000000 nop
 
  00196cd8: 00000000 nop
  00196cdc: 000211c2 srl r2,r2,0x07
+
  00196cdc: 000211c2 srl r2,r2,0x07 Check for Petrify
 
  00196ce0: 03e00008 jr r31
 
  00196ce0: 03e00008 jr r31
 
  00196ce4: 00000000 nop
 
  00196ce4: 00000000 nop
 
</font>
 
</font>

Revision as of 01:23, 29 March 2017

r4 = Unit ID

00196c8c: 00041100 sll r2,r4,0x04
00196c90: 3c01801a lui r1,0x801a
00196c94: 00220821 addu r1,r1,r2
00196c98: 90230bf7 lbu r3,0x0bf7(r1)			Load AI Targeting Flags (0x07)
00196c9c: 00000000 nop
00196ca0: 00031102 srl r2,r3,0x04				Remove 0x0f flags
00196ca4: 30420001 andi r2,r2,0x0001
00196ca8: 1440000d bne r2,r0,0x00196ce0		Exit if unit can't be targeted
00196cac: 34020001 ori r2,r0,0x0001			Return 1
00196cb0: 00031142 srl r2,r3,0x05				Remove 0x1f flags
00196cb4: 30420001 andi r2,r2,0x0001
00196cb8: 14400009 bne r2,r0,0x00196ce0		Exit if Unit is Dead w/o Reraise
00196cbc: 34020001 ori r2,r0,0x0001			Return 1
00196cc0: 000410c0 sll r2,r4,0x03
00196cc4: 00441023 subu r2,r2,r4
00196cc8: 00021180 sll r2,r2,0x06
00196ccc: 3c018019 lui r1,0x8019
00196cd0: 00220821 addu r1,r1,r2
00196cd4: 90220925 lbu r2,0x0925(r1)			Load Unit Current Status 2
00196cd8: 00000000 nop
00196cdc: 000211c2 srl r2,r2,0x07				Check for Petrify
00196ce0: 03e00008 jr r31
00196ce4: 00000000 nop