Strike/Lunge Routine
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