Difference between revisions of "Set unit untargetable based on 19f0d8 routine"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with "<font face='Courier New'> 0019f01c: 27bdffd8 addiu r29,r29,0xffd8 0019f020: afb3001c sw r19,0x001c(r29) 0019f024: 00009821 addu r19,r0,r0 0019f028: afb00010 sw r16,0x001...")
 
Line 1: Line 1:
 
<font face='Courier New'>
 
<font face='Courier New'>
+
Set unit untargetable based on 19f0d8 routine <font face='Courier New'>
0019f01c: 27bdffd8 addiu r29,r29,0xffd8
+
 
0019f020: afb3001c sw r19,0x001c(r29)
+
  0019f01c: 27bdffd8 addiu r29,r29,0xffd8
0019f024: 00009821 addu r19,r0,r0
+
  0019f020: afb3001c sw r19,0x001c(r29)
0019f028: afb00010 sw r16,0x0010(r29)
+
  0019f024: 00009821 addu r19,r0,r0
0019f02c: 00008021 addu r16,r0,r0
+
  0019f028: afb00010 sw r16,0x0010(r29)
0019f030: afb40020 sw r20,0x0020(r29)
+
  0019f02c: 00008021 addu r16,r0,r0
0019f034: 3c14801a lui r20,0x801a
+
  0019f030: afb40020 sw r20,0x0020(r29)
0019f038: 2694f3c4 addiu r20,r20,0xf3c4
+
  0019f034: 3c14801a lui r20,0x801a
0019f03c: afb20018 sw r18,0x0018(r29)
+
  0019f038: 2694f3c4 addiu r20,r20,0xf3c4
0019f040: 02809021 addu r18,r20,r0
+
  0019f03c: afb20018 sw r18,0x0018(r29)
0019f044: afbf0024 sw r31,0x0024(r29)
+
  0019f040: 02809021 addu r18,r20,r0
0019f048: afb10014 sw r17,0x0014(r29)
+
  0019f044: afbf0024 sw r31,0x0024(r29)
0019f04c: 02908821 addu r17,r20,r16
+
  0019f048: afb10014 sw r17,0x0014(r29)
0019f050: 92220c8d lbu r2,0x0c8d(r17)
+
  0019f04c: 02908821 addu r17,r20,r16
0019f054: 00000000 nop
+
  0019f050: 92220c8d lbu r2,0x0c8d(r17)               load targetable unit list
0019f058: 10400011 beq r2,r0,0x0019f0a0
+
  0019f054: 00000000 nop
0019f05c: 00000000 nop
+
  0019f058: 10400011 beq r2,r0,0x0019f0a0             branch if unit is not targetable
0019f060: 8e82000c lw r2,0x000c(r20)
+
  0019f05c: 00000000 nop
0019f064: 00000000 nop
+
  0019f060: 8e82000c lw r2,0x000c(r20)               load AI ability flags
0019f068: 30420002 andi r2,r2,0x0002
+
  0019f064: 00000000 nop
0019f06c: 1040000b beq r2,r0,0x0019f09c
+
  0019f068: 30420002 andi r2,r2,0x0002
0019f070: 00000000 nop
+
  0019f06c: 1040000b beq r2,r0,0x0019f09c             branch if not target enemies
0019f074: 92421834 lbu r2,0x1834(r18)
+
  0019f070: 00000000 nop
0019f078: 00000000 nop
+
  0019f074: 92421834 lbu r2,0x1834(r18)               load enemy flag
0019f07c: 10400007 beq r2,r0,0x0019f09c
+
  0019f078: 00000000 nop
0019f080: 00000000 nop
+
  0019f07c: 10400007 beq r2,r0,0x0019f09c             branch if ally
0019f084: 0c067c36 jal 0x0019f0d8
+
  0019f080: 00000000 nop
0019f088: 02002021 addu r4,r16,r0
+
  0019f084: 0c067c36 jal 0x0019f0d8
0019f08c: 10400003 beq r2,r0,0x0019f09c
+
  0019f088: 02002021 addu r4,r16,r0
0019f090: 00000000 nop
+
  0019f08c: 10400003 beq r2,r0,0x0019f09c
0019f094: 08067c28 j 0x0019f0a0
+
  0019f090: 00000000 nop
0019f098: a2200c8d sb r0,0x0c8d(r17)
+
  0019f094: 08067c28 j 0x0019f0a0
0019f09c: 34130001 ori r19,r0,0x0001
+
  0019f098: a2200c8d sb r0,0x0c8d(r17)                 store unit untargetable
0019f0a0: 26100001 addiu r16,r16,0x0001
+
  0019f09c: 34130001 ori r19,r0,0x0001
0019f0a4: 2a020015 slti r2,r16,0x0015
+
  0019f0a0: 26100001 addiu r16,r16,0x0001
0019f0a8: 1440ffe8 bne r2,r0,0x0019f04c
+
  0019f0a4: 2a020015 slti r2,r16,0x0015
0019f0ac: 26520010 addiu r18,r18,0x0010
+
  0019f0a8: 1440ffe8 bne r2,r0,0x0019f04c             do for all units
0019f0b0: 02601021 addu r2,r19,r0
+
  0019f0ac: 26520010 addiu r18,r18,0x0010
0019f0b4: 8fbf0024 lw r31,0x0024(r29)
+
  0019f0b0: 02601021 addu r2,r19,r0                   r2 = 1 if any unit is targetable
0019f0b8: 8fb40020 lw r20,0x0020(r29)
+
  0019f0b4: 8fbf0024 lw r31,0x0024(r29)
0019f0bc: 8fb3001c lw r19,0x001c(r29)
+
  0019f0b8: 8fb40020 lw r20,0x0020(r29)
0019f0c0: 8fb20018 lw r18,0x0018(r29)
+
  0019f0bc: 8fb3001c lw r19,0x001c(r29)
0019f0c4: 8fb10014 lw r17,0x0014(r29)
+
  0019f0c0: 8fb20018 lw r18,0x0018(r29)
0019f0c8: 8fb00010 lw r16,0x0010(r29)
+
  0019f0c4: 8fb10014 lw r17,0x0014(r29)
0019f0cc: 27bd0028 addiu r29,r29,0x0028
+
  0019f0c8: 8fb00010 lw r16,0x0010(r29)
0019f0d0: 03e00008 jr r31
+
  0019f0cc: 27bd0028 addiu r29,r29,0x0028
0019f0d4: 00000000 nop
+
  0019f0d0: 03e00008 jr r31
</font>
+
  0019f0d4: 00000000 nop
 +
</font></font>

Revision as of 00:32, 18 February 2015

Set unit untargetable based on 19f0d8 routine

 0019f01c: 27bdffd8 addiu r29,r29,0xffd8
 0019f020: afb3001c sw r19,0x001c(r29)
 0019f024: 00009821 addu r19,r0,r0
 0019f028: afb00010 sw r16,0x0010(r29)
 0019f02c: 00008021 addu r16,r0,r0
 0019f030: afb40020 sw r20,0x0020(r29)
 0019f034: 3c14801a lui r20,0x801a
 0019f038: 2694f3c4 addiu r20,r20,0xf3c4
 0019f03c: afb20018 sw r18,0x0018(r29)
 0019f040: 02809021 addu r18,r20,r0
 0019f044: afbf0024 sw r31,0x0024(r29)
 0019f048: afb10014 sw r17,0x0014(r29)
 0019f04c: 02908821 addu r17,r20,r16
 0019f050: 92220c8d lbu r2,0x0c8d(r17)               load targetable unit list
 0019f054: 00000000 nop
 0019f058: 10400011 beq r2,r0,0x0019f0a0              branch if unit is not targetable
 0019f05c: 00000000 nop
 0019f060: 8e82000c lw r2,0x000c(r20)                load AI ability flags
 0019f064: 00000000 nop
 0019f068: 30420002 andi r2,r2,0x0002
 0019f06c: 1040000b beq r2,r0,0x0019f09c             branch if not target enemies
 0019f070: 00000000 nop
 0019f074: 92421834 lbu r2,0x1834(r18)               load enemy flag
 0019f078: 00000000 nop
 0019f07c: 10400007 beq r2,r0,0x0019f09c             branch if ally
 0019f080: 00000000 nop
 0019f084: 0c067c36 jal 0x0019f0d8
 0019f088: 02002021 addu r4,r16,r0
 0019f08c: 10400003 beq r2,r0,0x0019f09c
 0019f090: 00000000 nop
 0019f094: 08067c28 j 0x0019f0a0
 0019f098: a2200c8d sb r0,0x0c8d(r17)                 store unit untargetable
 0019f09c: 34130001 ori r19,r0,0x0001
 0019f0a0: 26100001 addiu r16,r16,0x0001
 0019f0a4: 2a020015 slti r2,r16,0x0015
 0019f0a8: 1440ffe8 bne r2,r0,0x0019f04c              do for all units
 0019f0ac: 26520010 addiu r18,r18,0x0010
 0019f0b0: 02601021 addu r2,r19,r0                    r2 = 1 if any unit is targetable
 0019f0b4: 8fbf0024 lw r31,0x0024(r29)
 0019f0b8: 8fb40020 lw r20,0x0020(r29)
 0019f0bc: 8fb3001c lw r19,0x001c(r29)
 0019f0c0: 8fb20018 lw r18,0x0018(r29)
 0019f0c4: 8fb10014 lw r17,0x0014(r29)
 0019f0c8: 8fb00010 lw r16,0x0010(r29)
 0019f0cc: 27bd0028 addiu r29,r29,0x0028
 0019f0d0: 03e00008 jr r31
 0019f0d4: 00000000 nop