Difference between revisions of "0019db80 - 0019dca8"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Replaced with the correct routine)
(Added Documentation)
Line 1: Line 1:
 
<font face='Courier New'>
 
<font face='Courier New'>
 
   
 
   
 +
Set Critical based on Movement Taken
 +
 
  0019db80: 3c03801a lui r3,0x801a
 
  0019db80: 3c03801a lui r3,0x801a
  0019db84: 8c63f3dc lw r3,-0x0c24(r3)
+
  0019db84: 8c63f3dc lw r3,-0x0c24(r3) Load Suggested? Coordinates
 
  0019db88: 3c02801a lui r2,0x801a
 
  0019db88: 3c02801a lui r2,0x801a
  0019db8c: 8c4201f4 lw r2,0x01f4(r2)
+
  0019db8c: 8c4201f4 lw r2,0x01f4(r2) Load Acting Unit's Coordinate
 
  0019db90: 27bdffe8 addiu r29,r29,0xffe8
 
  0019db90: 27bdffe8 addiu r29,r29,0xffe8
 
  0019db94: afb00010 sw r16,0x0010(r29)
 
  0019db94: afb00010 sw r16,0x0010(r29)
 
  0019db98: 3c10801a lui r16,0x801a
 
  0019db98: 3c10801a lui r16,0x801a
  0019db9c: 2610f3c4 addiu r16,r16,0xf3c4
+
  0019db9c: 2610f3c4 addiu r16,r16,0xf3c4 Get AI Data Pointer
  0019dba0: 1062003d beq r3,r2,0x0019dc98
+
  0019dba0: 1062003d beq r3,r2,0x0019dc98 Exit if Coordinates match
 
  0019dba4: afbf0014 sw r31,0x0014(r29)
 
  0019dba4: afbf0014 sw r31,0x0014(r29)
  0019dba8: 0c067c96 jal 0x0019f258
+
  0019dba8: 0c067c96 jal 0x0019f258 Store Unit Coordinates
 
  0019dbac: 26040018 addiu r4,r16,0x0018
 
  0019dbac: 26040018 addiu r4,r16,0x0018
 +
 
  0019dbb0: 3c03801a lui r3,0x801a
 
  0019dbb0: 3c03801a lui r3,0x801a
  0019dbb4: 90630083 lbu r3,0x0083(r3)
+
  0019dbb4: 90630083 lbu r3,0x0083(r3) Load ?
 
  0019dbb8: 34020001 ori r2,r0,0x0001
 
  0019dbb8: 34020001 ori r2,r0,0x0001
  0019dbbc: 1462001b bne r3,r2,0x0019dc2c
+
  0019dbbc: 1462001b bne r3,r2,0x0019dc2c Branch if ? True
 
  0019dbc0: 00000000 nop
 
  0019dbc0: 00000000 nop
 +
 +
Reset HP/MP/Critical Statuses
 
  0019dbc4: 3c03801a lui r3,0x801a
 
  0019dbc4: 3c03801a lui r3,0x801a
  0019dbc8: 8c630bbc lw r3,0x0bbc(r3)
+
  0019dbc8: 8c630bbc lw r3,0x0bbc(r3) Load Acting Unit's Data Pointer
 
  0019dbcc: 00000000 nop
 
  0019dbcc: 00000000 nop
  0019dbd0: 9462002a lhu r2,0x002a(r3)
+
  0019dbd0: 9462002a lhu r2,0x002a(r3) Load Max HP
 
  0019dbd4: 00000000 nop
 
  0019dbd4: 00000000 nop
  0019dbd8: a4620028 sh r2,0x0028(r3)
+
  0019dbd8: a4620028 sh r2,0x0028(r3) Save to Current HP
 
  0019dbdc: 3c03801a lui r3,0x801a
 
  0019dbdc: 3c03801a lui r3,0x801a
  0019dbe0: 8c630bbc lw r3,0x0bbc(r3)
+
  0019dbe0: 8c630bbc lw r3,0x0bbc(r3) Load Acting Unit's Data Pointer
 
  0019dbe4: 00000000 nop
 
  0019dbe4: 00000000 nop
  0019dbe8: 9462002e lhu r2,0x002e(r3)
+
  0019dbe8: 9462002e lhu r2,0x002e(r3) Load Max MP
 
  0019dbec: 00000000 nop
 
  0019dbec: 00000000 nop
  0019dbf0: a462002c sh r2,0x002c(r3)
+
  0019dbf0: a462002c sh r2,0x002c(r3) Save to curMP
 
  0019dbf4: 3c03801a lui r3,0x801a
 
  0019dbf4: 3c03801a lui r3,0x801a
  0019dbf8: 8c630bbc lw r3,0x0bbc(r3)
+
  0019dbf8: 8c630bbc lw r3,0x0bbc(r3) Load Acting Unit's Data Pointer
 
  0019dbfc: 00000000 nop
 
  0019dbfc: 00000000 nop
  0019dc00: 9062005a lbu r2,0x005a(r3)
+
  0019dc00: 9062005a lbu r2,0x005a(r3) Load Current Status 3
 
  0019dc04: 00000000 nop
 
  0019dc04: 00000000 nop
 
  0019dc08: 304200fe andi r2,r2,0x00fe
 
  0019dc08: 304200fe andi r2,r2,0x00fe
  0019dc0c: a062005a sb r2,0x005a(r3)
+
  0019dc0c: a062005a sb r2,0x005a(r3) Remove Critical
 
  0019dc10: 3c03801a lui r3,0x801a
 
  0019dc10: 3c03801a lui r3,0x801a
  0019dc14: 8c630bbc lw r3,0x0bbc(r3)
+
  0019dc14: 8c630bbc lw r3,0x0bbc(r3) Load Acting Unit's Data Pointer
 
  0019dc18: 00000000 nop
 
  0019dc18: 00000000 nop
  0019dc1c: 906201bd lbu r2,0x01bd(r3)
+
  0019dc1c: 906201bd lbu r2,0x01bd(r3) Load Inflicted Status List 3 (From Current Action Data)
 
  0019dc20: 00000000 nop
 
  0019dc20: 00000000 nop
 
  0019dc24: 304200fe andi r2,r2,0x00fe
 
  0019dc24: 304200fe andi r2,r2,0x00fe
  0019dc28: a06201bd sb r2,0x01bd(r3)
+
  0019dc28: a06201bd sb r2,0x01bd(r3) Remove Critical
 +
 +
Set Movement Taken as true if Critical/Cowardly
 
  0019dc2c: 3c02801a lui r2,0x801a
 
  0019dc2c: 3c02801a lui r2,0x801a
  0019dc30: 90420083 lbu r2,0x0083(r2)
+
  0019dc30: 90420083 lbu r2,0x0083(r2) Load ?
 
  0019dc34: 00000000 nop
 
  0019dc34: 00000000 nop
  0019dc38: 10400014 beq r2,r0,0x0019dc8c
+
  0019dc38: 10400014 beq r2,r0,0x0019dc8c Branch if ?
 
  0019dc3c: 00000000 nop
 
  0019dc3c: 00000000 nop
 
  0019dc40: 3c02801a lui r2,0x801a
 
  0019dc40: 3c02801a lui r2,0x801a
  0019dc44: 8c420bbc lw r2,0x0bbc(r2)
+
  0019dc44: 8c420bbc lw r2,0x0bbc(r2) Load Acting Unit's Data Pointer
 
  0019dc48: 00000000 nop
 
  0019dc48: 00000000 nop
  0019dc4c: 9042005a lbu r2,0x005a(r2)
+
  0019dc4c: 9042005a lbu r2,0x005a(r2) Load Current Status 3
 
  0019dc50: 00000000 nop
 
  0019dc50: 00000000 nop
 
  0019dc54: 30420001 andi r2,r2,0x0001
 
  0019dc54: 30420001 andi r2,r2,0x0001
  0019dc58: 1440000c bne r2,r0,0x0019dc8c
+
  0019dc58: 1440000c bne r2,r0,0x0019dc8c Branch if Critical
 
  0019dc5c: 34020011 ori r2,r0,0x0011
 
  0019dc5c: 34020011 ori r2,r0,0x0011
 
  0019dc60: 3c03801a lui r3,0x801a
 
  0019dc60: 3c03801a lui r3,0x801a
  0019dc64: 90630d7a lbu r3,0x0d7a(r3)
+
  0019dc64: 90630d7a lbu r3,0x0d7a(r3) Load AI/Autobattle Settings
 
  0019dc68: 00000000 nop
 
  0019dc68: 00000000 nop
  0019dc6c: 10620007 beq r3,r2,0x0019dc8c
+
  0019dc6c: 10620007 beq r3,r2,0x0019dc8c Branch if Cowardly
 
  0019dc70: 00000000 nop
 
  0019dc70: 00000000 nop
 
  0019dc74: 3c02801a lui r2,0x801a
 
  0019dc74: 3c02801a lui r2,0x801a
  0019dc78: 9442f3f6 lhu r2,-0x0c0a(r2)
+
  0019dc78: 9442f3f6 lhu r2,-0x0c0a(r2) Load ?
 
  0019dc7c: 00000000 nop
 
  0019dc7c: 00000000 nop
 
  0019dc80: 24420002 addiu r2,r2,0x0002
 
  0019dc80: 24420002 addiu r2,r2,0x0002
 
  0019dc84: 3c01801a lui r1,0x801a
 
  0019dc84: 3c01801a lui r1,0x801a
  0019dc88: a422f3f6 sh r2,-0x0c0a(r1)
+
  0019dc88: a422f3f6 sh r2,-0x0c0a(r1) Save 2 to ?
  0019dc8c: 8e0317f8 lw r3,0x17f8(r16)
+
 +
  0019dc8c: 8e0317f8 lw r3,0x17f8(r16) Load Acting Unit's Data Pointer
 
  0019dc90: 34020001 ori r2,r0,0x0001
 
  0019dc90: 34020001 ori r2,r0,0x0001
  0019dc94: a0620187 sb r2,0x0187(r3)
+
  0019dc94: a0620187 sb r2,0x0187(r3) Set Movement Taken to True
 
  0019dc98: 8fbf0014 lw r31,0x0014(r29)
 
  0019dc98: 8fbf0014 lw r31,0x0014(r29)
 
  0019dc9c: 8fb00010 lw r16,0x0010(r29)
 
  0019dc9c: 8fb00010 lw r16,0x0010(r29)
Line 76: Line 84:
 
  0019dca4: 03e00008 jr r31
 
  0019dca4: 03e00008 jr r31
 
  0019dca8: 00000000 nop
 
  0019dca8: 00000000 nop
 
 
</font>
 
</font>

Revision as of 04:40, 17 July 2020

Set Critical based on Movement Taken

0019db80: 3c03801a lui r3,0x801a
0019db84: 8c63f3dc lw r3,-0x0c24(r3)		Load Suggested? Coordinates
0019db88: 3c02801a lui r2,0x801a
0019db8c: 8c4201f4 lw r2,0x01f4(r2)			Load Acting Unit's Coordinate
0019db90: 27bdffe8 addiu r29,r29,0xffe8
0019db94: afb00010 sw r16,0x0010(r29)
0019db98: 3c10801a lui r16,0x801a
0019db9c: 2610f3c4 addiu r16,r16,0xf3c4		Get AI Data Pointer
0019dba0: 1062003d beq r3,r2,0x0019dc98		Exit if Coordinates match
0019dba4: afbf0014 sw r31,0x0014(r29)
0019dba8: 0c067c96 jal 0x0019f258			Store Unit Coordinates
0019dbac: 26040018 addiu r4,r16,0x0018
0019dbb0: 3c03801a lui r3,0x801a
0019dbb4: 90630083 lbu r3,0x0083(r3)		Load ?
0019dbb8: 34020001 ori r2,r0,0x0001
0019dbbc: 1462001b bne r3,r2,0x0019dc2c		Branch if ? True
0019dbc0: 00000000 nop

Reset HP/MP/Critical Statuses

0019dbc4: 3c03801a lui r3,0x801a
0019dbc8: 8c630bbc lw r3,0x0bbc(r3)			Load Acting Unit's Data Pointer
0019dbcc: 00000000 nop
0019dbd0: 9462002a lhu r2,0x002a(r3)		Load Max HP
0019dbd4: 00000000 nop
0019dbd8: a4620028 sh r2,0x0028(r3)			Save to Current HP
0019dbdc: 3c03801a lui r3,0x801a
0019dbe0: 8c630bbc lw r3,0x0bbc(r3)			Load Acting Unit's Data Pointer
0019dbe4: 00000000 nop
0019dbe8: 9462002e lhu r2,0x002e(r3)		Load Max MP
0019dbec: 00000000 nop
0019dbf0: a462002c sh r2,0x002c(r3)			Save to curMP
0019dbf4: 3c03801a lui r3,0x801a
0019dbf8: 8c630bbc lw r3,0x0bbc(r3)			Load Acting Unit's Data Pointer
0019dbfc: 00000000 nop
0019dc00: 9062005a lbu r2,0x005a(r3)		Load Current Status 3
0019dc04: 00000000 nop
0019dc08: 304200fe andi r2,r2,0x00fe
0019dc0c: a062005a sb r2,0x005a(r3)			Remove Critical
0019dc10: 3c03801a lui r3,0x801a
0019dc14: 8c630bbc lw r3,0x0bbc(r3)			Load Acting Unit's Data Pointer
0019dc18: 00000000 nop
0019dc1c: 906201bd lbu r2,0x01bd(r3)		Load Inflicted Status List 3 (From Current Action Data)
0019dc20: 00000000 nop
0019dc24: 304200fe andi r2,r2,0x00fe
0019dc28: a06201bd sb r2,0x01bd(r3)			Remove Critical

Set Movement Taken as true if Critical/Cowardly

0019dc2c: 3c02801a lui r2,0x801a
0019dc30: 90420083 lbu r2,0x0083(r2)		Load ?
0019dc34: 00000000 nop
0019dc38: 10400014 beq r2,r0,0x0019dc8c		Branch if ? 
0019dc3c: 00000000 nop
0019dc40: 3c02801a lui r2,0x801a
0019dc44: 8c420bbc lw r2,0x0bbc(r2)			Load Acting Unit's Data Pointer
0019dc48: 00000000 nop
0019dc4c: 9042005a lbu r2,0x005a(r2)		Load Current Status 3
0019dc50: 00000000 nop
0019dc54: 30420001 andi r2,r2,0x0001
0019dc58: 1440000c bne r2,r0,0x0019dc8c		Branch if Critical
0019dc5c: 34020011 ori r2,r0,0x0011
0019dc60: 3c03801a lui r3,0x801a
0019dc64: 90630d7a lbu r3,0x0d7a(r3)		Load AI/Autobattle Settings
0019dc68: 00000000 nop
0019dc6c: 10620007 beq r3,r2,0x0019dc8c		Branch if Cowardly
0019dc70: 00000000 nop
0019dc74: 3c02801a lui r2,0x801a
0019dc78: 9442f3f6 lhu r2,-0x0c0a(r2)		Load ?
0019dc7c: 00000000 nop
0019dc80: 24420002 addiu r2,r2,0x0002
0019dc84: 3c01801a lui r1,0x801a
0019dc88: a422f3f6 sh r2,-0x0c0a(r1)		Save 2 to ?

0019dc8c: 8e0317f8 lw r3,0x17f8(r16)		Load Acting Unit's Data Pointer
0019dc90: 34020001 ori r2,r0,0x0001
0019dc94: a0620187 sb r2,0x0187(r3)			Set Movement Taken to True
0019dc98: 8fbf0014 lw r31,0x0014(r29)
0019dc9c: 8fb00010 lw r16,0x0010(r29)
0019dca0: 27bd0018 addiu r29,r29,0x0018
0019dca4: 03e00008 jr r31
0019dca8: 00000000 nop