Difference between revisions of "Knockback with bows?"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
m (links)
m
 
Line 3: Line 3:
 
  0006dc8c: 27bdffe8 addiu r29,r29,0xffe8
 
  0006dc8c: 27bdffe8 addiu r29,r29,0xffe8
 
  0006dc90: afb00010 sw r16,0x0010(r29)
 
  0006dc90: afb00010 sw r16,0x0010(r29)
  0006dc94: 00808021 addu r16,r4,r0
+
  0006dc94: 00808021 addu r16,r4,r0                     Target misc data
 
  0006dc98: afbf0014 sw r31,0x0014(r29)
 
  0006dc98: afbf0014 sw r31,0x0014(r29)
 
  0006dc9c: 8e040134 lw r4,0x0134(r16)
 
  0006dc9c: 8e040134 lw r4,0x0134(r16)
Line 11: Line 11:
 
  0006dcac: a202009c sb r2,0x009c(r16)
 
  0006dcac: a202009c sb r2,0x009c(r16)
 
  0006dcb0: 02002021 addu r4,r16,r0
 
  0006dcb0: 02002021 addu r4,r16,r0
  0006dcb4: a2020119 sb r2,0x0119(r16)
+
  0006dcb4: a2020119 sb r2,0x0119(r16)                   store movement flags
  0006dcb8: 2402fcff addiu r2,r0,0xfcff
+
  0006dcb8: 2402fcff addiu r2,r0,0xfcff                 0xfffffcff
  0006dcbc: 8e03009c lw r3,0x009c(r16)
+
  0006dcbc: 8e03009c lw r3,0x009c(r16)                   No. tiles to move + the data for movement for the unit
  0006dcc0: 2405dfff addiu r5,r0,0xdfff
+
  0006dcc0: 2405dfff addiu r5,r0,0xdfff                 0xffffdfff
  0006dcc4: 00621824 and r3,r3,r2
+
  0006dcc4: 00621824 and r3,r3,r2                       removes 0x0200 & 0x0100 flags
  0006dcc8: 2402fbff addiu r2,r0,0xfbff
+
  0006dcc8: 2402fbff addiu r2,r0,0xfbff                
  0006dccc: 00621824 and r3,r3,r2
+
  0006dccc: 00621824 and r3,r3,r2                       removes 0x0400 flag (removes number of tiles to jump over, just about)
 
  0006dcd0: 2402f7ff addiu r2,r0,0xf7ff
 
  0006dcd0: 2402f7ff addiu r2,r0,0xf7ff
  0006dcd4: 00621824 and r3,r3,r2
+
  0006dcd4: 00621824 and r3,r3,r2                       removes 0x8000 flag (removes move south)
 
  0006dcd8: 2402efff addiu r2,r0,0xefff
 
  0006dcd8: 2402efff addiu r2,r0,0xefff
  0006dcdc: 00621824 and r3,r3,r2
+
  0006dcdc: 00621824 and r3,r3,r2                       removes 0x1000 flag (removes another number of tiles to jump over bit)
  0006dce0: 92020082 lbu r2,0x0082(r16)
+
  0006dce0: 92020082 lbu r2,0x0082(r16)                 load unit's map level
  0006dce4: 00652824 and r5,r3,r5
+
  0006dce4: 00652824 and r5,r3,r5                       removes 0x2000 flag (removes move to higher elevation)
  0006dce8: ae03009c sw r3,0x009c(r16)
+
  0006dce8: ae03009c sw r3,0x009c(r16)                   restore
 
  0006dcec: 30420001 andi r2,r2,0x0001
 
  0006dcec: 30420001 andi r2,r2,0x0001
 
  0006dcf0: 00021340 sll r2,r2,0x0d
 
  0006dcf0: 00021340 sll r2,r2,0x0d
  0006dcf4: 00a22825 or r5,r5,r2
+
  0006dcf4: 00a22825 or r5,r5,r2                         if moving to higher elevation, restore higher elevation bit
  0006dcf8: 0c01b0af jal 0x0006c2bc
+
  0006dcf8: 0c01b0af jal 0x0006c2bc                     [[0006c2bc - 0006c31c]] returns move direction for knocked back units
  0006dcfc: ae05009c sw r5,0x009c(r16)
+
  0006dcfc: ae05009c sw r5,0x009c(r16)                   restore. again.
 
  0006dd00: 00401821 addu r3,r2,r0
 
  0006dd00: 00401821 addu r3,r2,r0
 
  0006dd04: 34020001 ori r2,r0,0x0001
 
  0006dd04: 34020001 ori r2,r0,0x0001
  0006dd08: 1062001c beq r3,r2,0x0006dd7c
+
  0006dd08: 1062001c beq r3,r2,0x0006dd7c               branch if returns 1
 
  0006dd0c: 28620002 slti r2,r3,0x0002
 
  0006dd0c: 28620002 slti r2,r3,0x0002
  0006dd10: 10400005 beq r2,r0,0x0006dd28
+
  0006dd10: 10400005 beq r2,r0,0x0006dd28               branch if returns 2 or 3
 
  0006dd14: 00000000 nop
 
  0006dd14: 00000000 nop
  0006dd18: 1060000e beq r3,r0,0x0006dd54
+
  0006dd18: 1060000e beq r3,r0,0x0006dd54               branch if returns 0
 
  0006dd1c: 3c03ffff lui r3,0xffff
 
  0006dd1c: 3c03ffff lui r3,0xffff
  0006dd20: 0801b765 j 0x0006dd94
+
  0006dd20: 0801b765 j 0x0006dd94                       if error
  0006dd24: 34028000 ori r2,r0,0x8000
+
  0006dd24: 34028000 ori r2,r0,0x8000                   move south
 +
 
 
  0006dd28: 34020002 ori r2,r0,0x0002
 
  0006dd28: 34020002 ori r2,r0,0x0002
  0006dd2c: 10620006 beq r3,r2,0x0006dd48
+
  0006dd2c: 10620006 beq r3,r2,0x0006dd48               branch if returns 2
 
  0006dd30: 00000000 nop
 
  0006dd30: 00000000 nop
 
  0006dd34: 34020003 ori r2,r0,0x0003
 
  0006dd34: 34020003 ori r2,r0,0x0003
  0006dd38: 1062000b beq r3,r2,0x0006dd68
+
  0006dd38: 1062000b beq r3,r2,0x0006dd68               branch if returns 3
 
  0006dd3c: 3c03ffff lui r3,0xffff
 
  0006dd3c: 3c03ffff lui r3,0xffff
 
  0006dd40: 0801b765 j 0x0006dd94
 
  0006dd40: 0801b765 j 0x0006dd94
  0006dd44: 34028000 ori r2,r0,0x8000
+
  0006dd44: 34028000 ori r2,r0,0x8000                   move south
 +
 
 
  0006dd48: 8e02009c lw r2,0x009c(r16)
 
  0006dd48: 8e02009c lw r2,0x009c(r16)
 
  0006dd4c: 0801b763 j 0x0006dd8c
 
  0006dd4c: 0801b763 j 0x0006dd8c
  0006dd50: 3442c000 ori r2,r2,0xc000
+
  0006dd50: 3442c000 ori r2,r2,0xc000                   if returns 2, enable move north
 +
 
 
  0006dd54: 8e02009c lw r2,0x009c(r16)
 
  0006dd54: 8e02009c lw r2,0x009c(r16)
 
  0006dd58: 34633fff ori r3,r3,0x3fff
 
  0006dd58: 34633fff ori r3,r3,0x3fff
 
  0006dd5c: 00431024 and r2,r2,r3
 
  0006dd5c: 00431024 and r2,r2,r3
  0006dd60: 0801b763 j 0x0006dd8c
+
  0006dd60: 0801b763 j 0x0006dd8c                       if returns 0, enable move south
 
  0006dd64: 34428000 ori r2,r2,0x8000
 
  0006dd64: 34428000 ori r2,r2,0x8000
 +
 
  0006dd68: 8e02009c lw r2,0x009c(r16)
 
  0006dd68: 8e02009c lw r2,0x009c(r16)
 
  0006dd6c: 34633fff ori r3,r3,0x3fff
 
  0006dd6c: 34633fff ori r3,r3,0x3fff
 
  0006dd70: 00431024 and r2,r2,r3
 
  0006dd70: 00431024 and r2,r2,r3
  0006dd74: 0801b763 j 0x0006dd8c
+
  0006dd74: 0801b763 j 0x0006dd8c                       if returns 3, enable move west
 
  0006dd78: 34424000 ori r2,r2,0x4000
 
  0006dd78: 34424000 ori r2,r2,0x4000
 +
 
  0006dd7c: 3c03ffff lui r3,0xffff
 
  0006dd7c: 3c03ffff lui r3,0xffff
 
  0006dd80: 8e02009c lw r2,0x009c(r16)
 
  0006dd80: 8e02009c lw r2,0x009c(r16)
 
  0006dd84: 34633fff ori r3,r3,0x3fff
 
  0006dd84: 34633fff ori r3,r3,0x3fff
 
  0006dd88: 00431024 and r2,r2,r3
 
  0006dd88: 00431024 and r2,r2,r3
  0006dd8c: ae02009c sw r2,0x009c(r16)
+
  0006dd8c: ae02009c sw r2,0x009c(r16)                   if returns 1, enable move east
 
  0006dd90: 34028000 ori r2,r0,0x8000
 
  0006dd90: 34028000 ori r2,r0,0x8000
  0006dd94: ae020038 sw r2,0x0038(r16)
+
  0006dd94: ae020038 sw r2,0x0038(r16)                  enable 0x8000 special movement flag (knockback?)
 
  0006dd98: 8fbf0014 lw r31,0x0014(r29)
 
  0006dd98: 8fbf0014 lw r31,0x0014(r29)
 
  0006dd9c: 8fb00010 lw r16,0x0010(r29)
 
  0006dd9c: 8fb00010 lw r16,0x0010(r29)

Latest revision as of 02:44, 3 May 2024

0006dc8c: 27bdffe8 addiu r29,r29,0xffe8
0006dc90: afb00010 sw r16,0x0010(r29)
0006dc94: 00808021 addu r16,r4,r0                      Target misc data
0006dc98: afbf0014 sw r31,0x0014(r29)
0006dc9c: 8e040134 lw r4,0x0134(r16)
0006dca0: 34020001 ori r2,r0,0x0001
0006dca4: ae000098 sw r0,0x0098(r16)
0006dca8: 0c05fc08 jal 0x0017f020			Float/Float/Fly_movements
0006dcac: a202009c sb r2,0x009c(r16)
0006dcb0: 02002021 addu r4,r16,r0
0006dcb4: a2020119 sb r2,0x0119(r16)                   store movement flags
0006dcb8: 2402fcff addiu r2,r0,0xfcff                  0xfffffcff
0006dcbc: 8e03009c lw r3,0x009c(r16)                   No. tiles to move + the data for movement for the unit
0006dcc0: 2405dfff addiu r5,r0,0xdfff                  0xffffdfff
0006dcc4: 00621824 and r3,r3,r2                        removes 0x0200 & 0x0100 flags
0006dcc8: 2402fbff addiu r2,r0,0xfbff                  
0006dccc: 00621824 and r3,r3,r2                        removes 0x0400 flag (removes number of tiles to jump over, just about)
0006dcd0: 2402f7ff addiu r2,r0,0xf7ff
0006dcd4: 00621824 and r3,r3,r2                        removes 0x8000 flag (removes move south)
0006dcd8: 2402efff addiu r2,r0,0xefff
0006dcdc: 00621824 and r3,r3,r2                        removes 0x1000 flag (removes another number of tiles to jump over bit)
0006dce0: 92020082 lbu r2,0x0082(r16)                  load unit's map level
0006dce4: 00652824 and r5,r3,r5                        removes 0x2000 flag (removes move to higher elevation)
0006dce8: ae03009c sw r3,0x009c(r16)                   restore
0006dcec: 30420001 andi r2,r2,0x0001
0006dcf0: 00021340 sll r2,r2,0x0d
0006dcf4: 00a22825 or r5,r5,r2                         if moving to higher elevation, restore higher elevation bit
0006dcf8: 0c01b0af jal 0x0006c2bc                      0006c2bc - 0006c31c returns move direction for knocked back units
0006dcfc: ae05009c sw r5,0x009c(r16)                   restore. again.
0006dd00: 00401821 addu r3,r2,r0
0006dd04: 34020001 ori r2,r0,0x0001
0006dd08: 1062001c beq r3,r2,0x0006dd7c                branch if returns 1
0006dd0c: 28620002 slti r2,r3,0x0002
0006dd10: 10400005 beq r2,r0,0x0006dd28                branch if returns 2 or 3
0006dd14: 00000000 nop
0006dd18: 1060000e beq r3,r0,0x0006dd54                branch if returns 0
0006dd1c: 3c03ffff lui r3,0xffff
0006dd20: 0801b765 j 0x0006dd94                        if error
0006dd24: 34028000 ori r2,r0,0x8000                    move south
0006dd28: 34020002 ori r2,r0,0x0002
0006dd2c: 10620006 beq r3,r2,0x0006dd48                branch if returns 2
0006dd30: 00000000 nop
0006dd34: 34020003 ori r2,r0,0x0003
0006dd38: 1062000b beq r3,r2,0x0006dd68                branch if returns 3
0006dd3c: 3c03ffff lui r3,0xffff
0006dd40: 0801b765 j 0x0006dd94
0006dd44: 34028000 ori r2,r0,0x8000                    move south
0006dd48: 8e02009c lw r2,0x009c(r16)
0006dd4c: 0801b763 j 0x0006dd8c
0006dd50: 3442c000 ori r2,r2,0xc000                    if returns 2, enable move north
0006dd54: 8e02009c lw r2,0x009c(r16)
0006dd58: 34633fff ori r3,r3,0x3fff
0006dd5c: 00431024 and r2,r2,r3
0006dd60: 0801b763 j 0x0006dd8c                        if returns 0, enable move south
0006dd64: 34428000 ori r2,r2,0x8000
0006dd68: 8e02009c lw r2,0x009c(r16)
0006dd6c: 34633fff ori r3,r3,0x3fff
0006dd70: 00431024 and r2,r2,r3
0006dd74: 0801b763 j 0x0006dd8c                        if returns 3, enable move west
0006dd78: 34424000 ori r2,r2,0x4000
0006dd7c: 3c03ffff lui r3,0xffff
0006dd80: 8e02009c lw r2,0x009c(r16)
0006dd84: 34633fff ori r3,r3,0x3fff
0006dd88: 00431024 and r2,r2,r3
0006dd8c: ae02009c sw r2,0x009c(r16)                   if returns 1, enable move east
0006dd90: 34028000 ori r2,r0,0x8000
0006dd94: ae020038 sw r2,0x0038(r16)                   enable 0x8000 special movement flag (knockback?)
0006dd98: 8fbf0014 lw r31,0x0014(r29)
0006dd9c: 8fb00010 lw r16,0x0010(r29)
0006dda0: 27bd0018 addiu r29,r29,0x0018
0006dda4: 03e00008 jr r31
0006dda8: 00000000 nop