Strike/Lunge Routine

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
r4 = Caster Data
r5 = Weapon Attack Flags

00179b58: 27bdffd0 addiu r29,r29,-0x0030
00179b5c: afb00010 sw r16,0x0010(r29)
00179b60: 00808021 addu r16,r4,r0					r16 = Caster Data
00179b64: afb10014 sw r17,0x0014(r29)
00179b68: 00a08821 addu r17,r5,r0					r17 = Weapon Attack Flags
00179b6c: afbf002c sw r31,0x002c(r29)
00179b70: afb60028 sw r22,0x0028(r29)
00179b74: afb50024 sw r21,0x0024(r29)
00179b78: afb40020 sw r20,0x0020(r29)
00179b7c: afb3001c sw r19,0x001c(r29)
00179b80: 0c05e5ed jal 0x001797b4					Get Caster Height From Water Support and Float
00179b84: afb20018 sw r18,0x0018(r29)
00179b88: 32310080 andi r17,r17,0x0080				r17 = Weapon Striking Flag
00179b8c: 92130047 lbu r19,0x0047(r16)				r19 = Caster X
00179b90: 92140048 lbu r20,0x0048(r16)				r20 = Caster Y
00179b94: 12200019 beq r17,r0,0x00179bfc			Branch if not Striking
00179b98: 2664ffff addiu r4,r19,-0x0001				r4 = Caster X - 1
00179b9c: 304200ff andi r2,r2,0x00ff				r2 = Height Value (return)
00179ba0: 2451fffa addiu r17,r2,-0x0006				r17 = Height - 6
00179ba4: 24520005 addiu r18,r2,0x0005				r18 = Height + 5
00179ba8: 02802821 addu r5,r20,r0					r5 = Caster Y
00179bac: 02203021 addu r6,r17,r0					r6 = Height - 6
00179bb0: 0c05e727 jal 0x00179c9c					Range Panel Validation
00179bb4: 02403821 addu r7,r18,r0					r7 = Height + 5
00179bb8: 26640001 addiu r4,r19,0x0001				r4 = Caster X + 1
00179bbc: 02802821 addu r5,r20,r0					r5 = Caster Y
00179bc0: 02203021 addu r6,r17,r0					r6 = Height - 6
00179bc4: 0c05e727 jal 0x00179c9c					Range Panel Validation
00179bc8: 02403821 addu r7,r18,r0					r7 = Height + 5
00179bcc: 02602021 addu r4,r19,r0					r4 = Caster X
00179bd0: 2685ffff addiu r5,r20,-0x0001				r5 = Caster Y - 1
00179bd4: 02203021 addu r6,r17,r0					r6 = Height - 6
00179bd8: 0c05e727 jal 0x00179c9c                   Range Panel Validation
00179bdc: 02403821 addu r7,r18,r0                   r7 = Height + 5
00179be0: 02602021 addu r4,r19,r0					r4 = Caster X
00179be4: 26850001 addiu r5,r20,0x0001              r5 = Caster Y + 1
00179be8: 02203021 addu r6,r17,r0                   r6 = Height - 6
00179bec: 0c05e727 jal 0x00179c9c                   Range Panel Validation
00179bf0: 02403821 addu r7,r18,r0                   r7 = Height + 5
00179bf4: 0805e71c j 0x00179c70						quit
00179bf8: 00000000 nop								Lunge Routine
00179bfc: 34100001 ori r16,r0,0x0001				r16 = 1
00179c00: 305600ff andi r22,r2,0x00ff				r22 = Height Value (return)
00179c04: 26d20007 addiu r18,r22,0x0007				r18 = Height + 7
00179c08: 2415fff8 addiu r21,r0,-0x0008				r21 = -8
00179c0c: 02d58821 addu r17,r22,r21					r17 = Height - 8
00179c10: 02702023 subu r4,r19,r16					r4 = Caster X - 1
00179c14: 02802821 addu r5,r20,r0					r5 = Caster Y
00179c18: 02203021 addu r6,r17,r0					r6 = Height - 8
00179c1c: 0c05e727 jal 0x00179c9c					Range Panel Validation
00179c20: 02403821 addu r7,r18,r0					r7 = Height + 7
00179c24: 02702021 addu r4,r19,r16					r4 = Caster X + 1
00179c28: 02802821 addu r5,r20,r0                   r5 = Caster Y
00179c2c: 02203021 addu r6,r17,r0                   r6 = Height - 8
00179c30: 0c05e727 jal 0x00179c9c                   Range Panel Validation
00179c34: 02403821 addu r7,r18,r0                   r7 = Height + 7
00179c38: 02602021 addu r4,r19,r0					r4 = Caster X
00179c3c: 02902823 subu r5,r20,r16                  r5 = Caster Y - 1
00179c40: 02203021 addu r6,r17,r0                   r6 = Height - 8
00179c44: 0c05e727 jal 0x00179c9c                   Range Panel Validation
00179c48: 02403821 addu r7,r18,r0                   r7 = Height + 7
00179c4c: 02602021 addu r4,r19,r0					r4 = Caster X
00179c50: 02902821 addu r5,r20,r16                  r5 = Caster Y + 1
00179c54: 02203021 addu r6,r17,r0                   r6 = Height - 8
00179c58: 0c05e727 jal 0x00179c9c                   Range Panel Validation
00179c5c: 02403821 addu r7,r18,r0                   r7 = Height + 7
00179c60: 26100001 addiu r16,r16,0x0001				r16 = 2
00179c64: 2a020003 slti r2,r16,0x0003				If r16 < 3
00179c68: 1440ffe8 bne r2,r0,0x00179c0c				Repeat for extra range
00179c6c: 26b50002 addiu r21,r21,0x0002				r21 = -6
00179c70: 8fbf002c lw r31,0x002c(r29)
00179c74: 8fb60028 lw r22,0x0028(r29)
00179c78: 8fb50024 lw r21,0x0024(r29)
00179c7c: 8fb40020 lw r20,0x0020(r29)
00179c80: 8fb3001c lw r19,0x001c(r29)
00179c84: 8fb20018 lw r18,0x0018(r29)
00179c88: 8fb10014 lw r17,0x0014(r29)
00179c8c: 8fb00010 lw r16,0x0010(r29)
00179c90: 27bd0030 addiu r29,r29,0x0030
00179c94: 03e00008 jr r31