Set and Validate Arc Trajectory

From Final Fantasy Hacktics Wiki
Revision as of 21:32, 2 January 2022 by Orkney (talk | contribs) (link)
Jump to navigation Jump to search
001aff18: 27bdff30 addiu r29,r29,0xff30
001aff1c: afb500bc sw r21,0x00bc(r29)
001aff20: 0080a821 addu r21,r4,r0		r21 = Attacker ID
001aff24: afb000a8 sw r16,0x00a8(r29)
001aff28: 00a08021 addu r16,r5,r0		r16 = Unit's Target X Data Pointer
001aff2c: afb400b8 sw r20,0x00b8(r29)
001aff30: 00c0a021 addu r20,r6,r0		r20 = Tile ID
001aff34: afbf00cc sw r31,0x00cc(r29)
001aff38: afbe00c8 sw r30,0x00c8(r29)
001aff3c: afb700c4 sw r23,0x00c4(r29)
001aff40: afb600c0 sw r22,0x00c0(r29)
001aff44: afb300b4 sw r19,0x00b4(r29)
001aff48: afb200b0 sw r18,0x00b0(r29)
001aff4c: afb100ac sw r17,0x00ac(r29)
001aff50: 3c01801c lui r1,0x801c
001aff54: ac358b60 sw r21,-0x74a0(r1)		Store Attacker ID
001aff58: afb50078 sw r21,0x0078(r29)		Store Attacker ID
001aff5c: 0c023727 jal 0x0008dc9c		Find Unit's Misc Data Pointer and Load Spritesheet Value
001aff60: afb40088 sw r20,0x0088(r29)		Store Tile ID
001aff64: 3c035555 lui r3,0x5555
001aff68: 34635556 ori r3,r3,0x5556
001aff6c: 00021040 sll r2,r2,0x01		Value * 2
001aff70: 00430018 mult r2,r3			Value * 2 / 3
001aff74: 000217c3 sra r2,r2,0x1f
001aff78: 00001810 mfhi r3
001aff7c: 00621823 subu r3,r3,r2
001aff80: 2402ffff addiu r2,r0,0xffff		r2 = -1
001aff84: 12820005 beq r20,r2,0x001aff9c	Branch if Tile ID doesn't exist
001aff88: afa3007c sw r3,0x007c(r29)		Store Value * 2 / 3
001aff8c: 0c023727 jal 0x0008dc9c		Find Unit's Misc Data Pointer and Load Spritesheet Value
001aff90: 02802021 addu r4,r20,r0		r4 = Tile ID
001aff94: 0806bfe8 j 0x001affa0
001aff98: afa2008c sw r2,0x008c(r29)		Store Spritesheet Value
001aff9c: afa0008c sw r0,0x008c(r29)		Store Spritesheet Value = 0
001affa0: 02a02021 addu r4,r21,r0		r4 = Attacker ID
001affa4: 2405ffff addiu r5,r0,0xffff		r5 = -1
001affa8: 0c06bddc jal 0x001af770
001affac: 27a60090 addiu r6,r29,0x0090		r6 = Stack Pointer + 0x90
001affb0: 3c05801c lui r5,0x801c
001affb4: 24a5925c addiu r5,r5,0x925c		r5 = ? Pointer
001affb8: 0c02311a jal 0x0008c468
001affbc: 02a02021 addu r4,r21,r0		r4 = Attacker ID
001affc0: 3c02801c lui r2,0x801c
001affc4: 9442925e lhu r2,-0x6da2(r2)
001affc8: 97a3007c lhu r3,0x007c(r29)
001affcc: 00000000 nop
001affd0: 00431023 subu r2,r2,r3
001affd4: 3c01801c lui r1,0x801c
001affd8: a422925e sh r2,-0x6da2(r1)
001affdc: 2402ffff addiu r2,r0,0xffff
001affe0: 16820022 bne r20,r2,0x001b006c
001affe4: 00000000 nop
001affe8: 86040000 lh r4,0x0000(r16)
001affec: 86050004 lh r5,0x0004(r16)
001afff0: 86060002 lh r6,0x0002(r16)
001afff4: 0c060fed jal 0x00183fb4		Get Tile's Data Pointer
001afff8: 00000000 nop
001afffc: 86040000 lh r4,0x0000(r16)
001b0000: 00000000 nop
001b0004: 000418c0 sll r3,r4,0x03
001b0008: 00641823 subu r3,r3,r4
001b000c: 00031880 sll r3,r3,0x02
001b0010: 2463000e addiu r3,r3,0x000e
001b0014: 3c01801c lui r1,0x801c
001b0018: a4239264 sh r3,-0x6d9c(r1)
001b001c: 86040004 lh r4,0x0004(r16)
001b0020: 00000000 nop
001b0024: 000418c0 sll r3,r4,0x03
001b0028: 00641823 subu r3,r3,r4
001b002c: 00031880 sll r3,r3,0x02
001b0030: 2463000e addiu r3,r3,0x000e
001b0034: 3c01801c lui r1,0x801c
001b0038: a4239268 sh r3,-0x6d98(r1)
001b003c: 90430003 lbu r3,0x0003(r2)
001b0040: 90440002 lbu r4,0x0002(r2)
001b0044: 00031942 srl r3,r3,0x05
001b0048: 00832021 addu r4,r4,r3
001b004c: 00041040 sll r2,r4,0x01
001b0050: 00441021 addu r2,r2,r4
001b0054: 00021080 sll r2,r2,0x02
001b0058: 00021023 subu r2,r0,r2
001b005c: 3c01801c lui r1,0x801c
001b0060: a4229266 sh r2,-0x6d9a(r1)
001b0064: 0806c01f j 0x001b007c
001b0068: 00000000 nop
001b006c: 3c05801c lui r5,0x801c
001b0070: 24a59264 addiu r5,r5,0x9264
001b0074: 0c02311a jal 0x0008c468
001b0078: 02802021 addu r4,r20,r0
001b007c: 3c05801c lui r5,0x801c
001b0080: 84a59264 lh r5,-0x6d9c(r5)
001b0084: 3c02801c lui r2,0x801c
001b0088: 8442925c lh r2,-0x6da4(r2)
001b008c: 00000000 nop
001b0090: 00a22823 subu r5,r5,r2
001b0094: 00a50018 mult r5,r5
001b0098: 3c03801c lui r3,0x801c
001b009c: 84639268 lh r3,-0x6d98(r3)
001b00a0: 3c02801c lui r2,0x801c
001b00a4: 84429260 lh r2,-0x6da0(r2)
001b00a8: 00002012 mflo r4
001b00ac: 00621823 subu r3,r3,r2
001b00b0: 00000000 nop
001b00b4: 00630018 mult r3,r3
001b00b8: 3c06801c lui r6,0x801c
001b00bc: 84c69266 lh r6,-0x6d9a(r6)
001b00c0: 3c02801c lui r2,0x801c
001b00c4: 8442925e lh r2,-0x6da2(r2)
001b00c8: afa50060 sw r5,0x0060(r29)
001b00cc: afa30068 sw r3,0x0068(r29)
001b00d0: 00461023 subu r2,r2,r6
001b00d4: afa20064 sw r2,0x0064(r29)
001b00d8: 00001012 mflo r2
001b00dc: 00822021 addu r4,r4,r2
001b00e0: 0c00709a jal 0x0001c268
001b00e4: 00042300 sll r4,r4,0x0c
001b00e8: 8fa50060 lw r5,0x0060(r29)
001b00ec: 8fa40068 lw r4,0x0068(r29)
001b00f0: afa2006c sw r2,0x006c(r29)
001b00f4: 0c00763a jal 0x0001d8e8                 Get_Angle_Value_via_ArcTan_Table 
001b00f8: 00042023 subu r4,r0,r4
001b00fc: 27a40060 addiu r4,r29,0x0060
001b0100: 27b20094 addiu r18,r29,0x0094
001b0104: 02402821 addu r5,r18,r0
001b0108: 27b00098 addiu r16,r29,0x0098
001b010c: 02003021 addu r6,r16,r0
001b0110: 0c06bcf7 jal 0x001af3dc
001b0114: a7a2002a sh r2,0x002a(r29)
001b0118: 14400004 bne r2,r0,0x001b012c
001b011c: 02002821 addu r5,r16,r0
001b0120: 34021000 ori r2,r0,0x1000
001b0124: afa20098 sw r2,0x0098(r29)
001b0128: afa20094 sw r2,0x0094(r29)
001b012c: 3c04801c lui r4,0x801c
001b0130: 2484925c addiu r4,r4,0x925c
001b0134: 27b1006c addiu r17,r29,0x006c
001b0138: 02203021 addu r6,r17,r0
001b013c: 27b00028 addiu r16,r29,0x0028
001b0140: 8fa20090 lw r2,0x0090(r29)
001b0144: 02003821 addu r7,r16,r0
001b0148: 0c06bece jal 0x001afb38
001b014c: afa20010 sw r2,0x0010(r29)
001b0150: 3c1e801c lui r30,0x801c
001b0154: 27de8b7c addiu r30,r30,0x8b7c
001b0158: 8fc30000 lw r3,0x0000(r30)
001b015c: 8fc40004 lw r4,0x0004(r30)
001b0160: 8fc50008 lw r5,0x0008(r30)
001b0164: 8fc6000c lw r6,0x000c(r30)
001b0168: afa30040 sw r3,0x0040(r29)
001b016c: afa40044 sw r4,0x0044(r29)
001b0170: afa50048 sw r5,0x0048(r29)
001b0174: afa6004c sw r6,0x004c(r29)
001b0178: 3c17801c lui r23,0x801c
001b017c: 26f78b8c addiu r23,r23,0x8b8c
001b0180: 8ae30003 lwl r3,0x0003(r23)
001b0184: 9ae30000 lwr r3,0x0000(r23)
001b0188: 8ae40007 lwl r4,0x0007(r23)
001b018c: 9ae40004 lwr r4,0x0004(r23)
001b0190: aba3005b swl r3,0x005b(r29)
001b0194: bba30058 swr r3,0x0058(r29)
001b0198: aba4005f swl r4,0x005f(r29)
001b019c: bba4005c swr r4,0x005c(r29)
001b01a0: 00401821 addu r3,r2,r0
001b01a4: 3c13801c lui r19,0x801c
001b01a8: 8e738b64 lw r19,-0x749c(r19)
001b01ac: 3c02801c lui r2,0x801c
001b01b0: 8c428b64 lw r2,-0x749c(r2)
001b01b4: 3c08801c lui r8,0x801c
001b01b8: 8d08bf3c lw r8,-0x40c4(r8)
001b01bc: 2416ffff addiu r22,r0,0xffff
001b01c0: 14560003 bne r2,r22,0x001b01d0
001b01c4: afa800a0 sw r8,0x00a0(r29)
001b01c8: 3c16801c lui r22,0x801c
001b01cc: 8ed68b94 lw r22,-0x746c(r22)
001b01d0: 10600004 beq r3,r0,0x001b01e4
001b01d4: 02801021 addu r2,r20,r0
001b01d8: 8fa30098 lw r3,0x0098(r29)
001b01dc: 0806c109 j 0x001b0424
001b01e0: 00000000 nop
001b01e4: 3c04801c lui r4,0x801c
001b01e8: 2484925c addiu r4,r4,0x925c
001b01ec: 02402821 addu r5,r18,r0
001b01f0: 02203021 addu r6,r17,r0
001b01f4: 02003821 addu r7,r16,r0
001b01f8: 8fa20090 lw r2,0x0090(r29)
001b01fc: 2411ffff addiu r17,r0,0xffff
001b0200: 0c06bece jal 0x001afb38
001b0204: afa20010 sw r2,0x0010(r29)
001b0208: 8fc30000 lw r3,0x0000(r30)
001b020c: 8fc40004 lw r4,0x0004(r30)
001b0210: 8fc50008 lw r5,0x0008(r30)
001b0214: 8fc6000c lw r6,0x000c(r30)
001b0218: afa30030 sw r3,0x0030(r29)
001b021c: afa40034 sw r4,0x0034(r29)
001b0220: afa50038 sw r5,0x0038(r29)
001b0224: afa6003c sw r6,0x003c(r29)
001b0228: 8ae30003 lwl r3,0x0003(r23)
001b022c: 9ae30000 lwr r3,0x0000(r23)
001b0230: 8ae40007 lwl r4,0x0007(r23)
001b0234: 9ae40004 lwr r4,0x0004(r23)
001b0238: aba30053 swl r3,0x0053(r29)
001b023c: bba30050 swr r3,0x0050(r29)
001b0240: aba40057 swl r4,0x0057(r29)
001b0244: bba40054 swr r4,0x0054(r29)
001b0248: 00401821 addu r3,r2,r0
001b024c: 3c10801c lui r16,0x801c
001b0250: 8e108b64 lw r16,-0x749c(r16)
001b0254: 3c02801c lui r2,0x801c
001b0258: 8c428b64 lw r2,-0x749c(r2)
001b025c: 3c12801c lui r18,0x801c
001b0260: 8e52bf3c lw r18,-0x40c4(r18)
001b0264: 14510003 bne r2,r17,0x001b0274
001b0268: 00000000 nop
001b026c: 3c11801c lui r17,0x801c
001b0270: 8e318b94 lw r17,-0x746c(r17)
001b0274: 10600004 beq r3,r0,0x001b0288
001b0278: 02801021 addu r2,r20,r0
001b027c: 8fa30094 lw r3,0x0094(r29)
001b0280: 0806c109 j 0x001b0424
001b0284: 00000000 nop
001b0288: 0c0602bf jal 0x00180afc		Get Unit's Data Pointer
001b028c: 02a02021 addu r4,r21,r0
001b0290: 2408ffff addiu r8,r0,0xffff
001b0294: 1268001f beq r19,r8,0x001b0314
001b0298: 0040a021 addu r20,r2,r0
001b029c: 0c0602bf jal 0x00180afc		Get Unit's Data Pointer
001b02a0: 02602021 addu r4,r19,r0
001b02a4: 92830005 lbu r3,0x0005(r20)
001b02a8: 904201ba lbu r2,0x01ba(r2)
001b02ac: 30630030 andi r3,r3,0x0030
001b02b0: 30420030 andi r2,r2,0x0030
001b02b4: 10620018 beq r3,r2,0x001b0318
001b02b8: 2415ffff addiu r21,r0,0xffff
001b02bc: 8fa20040 lw r2,0x0040(r29)
001b02c0: 8fa30044 lw r3,0x0044(r29)
001b02c4: 8fa40048 lw r4,0x0048(r29)
001b02c8: 8fa5004c lw r5,0x004c(r29)
001b02cc: afc20000 sw r2,0x0000(r30)
001b02d0: afc30004 sw r3,0x0004(r30)
001b02d4: afc40008 sw r4,0x0008(r30)
001b02d8: afc5000c sw r5,0x000c(r30)
001b02dc: 8ba2005b lwl r2,0x005b(r29)
001b02e0: 9ba20058 lwr r2,0x0058(r29)
001b02e4: 8ba3005f lwl r3,0x005f(r29)
001b02e8: 9ba3005c lwr r3,0x005c(r29)
001b02ec: aae20003 swl r2,0x0003(r23)
001b02f0: bae20000 swr r2,0x0000(r23)
001b02f4: aae30007 swl r3,0x0007(r23)
001b02f8: bae30004 swr r3,0x0004(r23)
001b02fc: 8fa30098 lw r3,0x0098(r29)
001b0300: 8fa800a0 lw r8,0x00a0(r29)
001b0304: 3c01801c lui r1,0x801c
001b0308: ac338b64 sw r19,-0x749c(r1)
001b030c: 0806c107 j 0x001b041c
001b0310: 02601021 addu r2,r19,r0
001b0314: 2415ffff addiu r21,r0,0xffff
001b0318: 12150010 beq r16,r21,0x001b035c
001b031c: 00000000 nop
001b0320: 0c0602bf jal 0x00180afc		Get Unit's Data Pointer
001b0324: 02002021 addu r4,r16,r0
001b0328: 92830005 lbu r3,0x0005(r20)
001b032c: 904201ba lbu r2,0x01ba(r2)
001b0330: 30630030 andi r3,r3,0x0030
001b0334: 30420030 andi r2,r2,0x0030
001b0338: 10620011 beq r3,r2,0x001b0380
001b033c: 02001021 addu r2,r16,r0
001b0340: 8fa30094 lw r3,0x0094(r29)
001b0344: 3c01801c lui r1,0x801c
001b0348: ac32bf3c sw r18,-0x40c4(r1)
001b034c: 3c01801c lui r1,0x801c
001b0350: ac228b64 sw r2,-0x749c(r1)
001b0354: 0806c109 j 0x001b0424
001b0358: 00000000 nop
001b035c: 8fa30094 lw r3,0x0094(r29)
001b0360: 3c01801c lui r1,0x801c
001b0364: ac32bf3c sw r18,-0x40c4(r1)
001b0368: 3c01801c lui r1,0x801c
001b036c: ac308b64 sw r16,-0x749c(r1)
001b0370: 3c01801c lui r1,0x801c
001b0374: ac318b94 sw r17,-0x746c(r1)
001b0378: 0806c109 j 0x001b0424
001b037c: 2402ffff addiu r2,r0,0xffff
001b0380: 1275000a beq r19,r21,0x001b03ac
001b0384: 00000000 nop
001b0388: 8fa30094 lw r3,0x0094(r29)
001b038c: 3c01801c lui r1,0x801c
001b0390: ac32bf3c sw r18,-0x40c4(r1)
001b0394: 3c01801c lui r1,0x801c
001b0398: ac318b94 sw r17,-0x746c(r1)
001b039c: 3c01801c lui r1,0x801c
001b03a0: ac228b64 sw r2,-0x749c(r1)
001b03a4: 0806c109 j 0x001b0424
001b03a8: 00000000 nop
001b03ac: 3c05801c lui r5,0x801c
001b03b0: 24a58b7c addiu r5,r5,0x8b7c
001b03b4: 8fa20040 lw r2,0x0040(r29)
001b03b8: 8fa30044 lw r3,0x0044(r29)
001b03bc: 8fa40048 lw r4,0x0048(r29)
001b03c0: aca20000 sw r2,0x0000(r5)
001b03c4: aca30004 sw r3,0x0004(r5)
001b03c8: aca40008 sw r4,0x0008(r5)
001b03cc: 8fa2004c lw r2,0x004c(r29)
001b03d0: 00000000 nop
001b03d4: aca2000c sw r2,0x000c(r5)
001b03d8: 3c05801c lui r5,0x801c
001b03dc: 24a58b8c addiu r5,r5,0x8b8c
001b03e0: 8ba2005b lwl r2,0x005b(r29)
001b03e4: 9ba20058 lwr r2,0x0058(r29)
001b03e8: 8ba3005f lwl r3,0x005f(r29)
001b03ec: 9ba3005c lwr r3,0x005c(r29)
001b03f0: a8a20003 swl r2,0x0003(r5)
001b03f4: b8a20000 swr r2,0x0000(r5)
001b03f8: a8a30007 swl r3,0x0007(r5)
001b03fc: b8a30004 swr r3,0x0004(r5)
001b0400: 8fa30098 lw r3,0x0098(r29)
001b0404: 8fa800a0 lw r8,0x00a0(r29)
001b0408: 2402ffff addiu r2,r0,0xffff
001b040c: 3c01801c lui r1,0x801c
001b0410: ac338b64 sw r19,-0x749c(r1)
001b0414: 3c01801c lui r1,0x801c
001b0418: ac368b94 sw r22,-0x746c(r1)
001b041c: 3c01801c lui r1,0x801c
001b0420: ac28bf3c sw r8,-0x40c4(r1)
001b0424: 3c01801c lui r1,0x801c
001b0428: ac238b74 sw r3,-0x748c(r1)
001b042c: 8fbf00cc lw r31,0x00cc(r29)
001b0430: 8fbe00c8 lw r30,0x00c8(r29)
001b0434: 8fb700c4 lw r23,0x00c4(r29)
001b0438: 8fb600c0 lw r22,0x00c0(r29)
001b043c: 8fb500bc lw r21,0x00bc(r29)
001b0440: 8fb400b8 lw r20,0x00b8(r29)
001b0444: 8fb300b4 lw r19,0x00b4(r29)
001b0448: 8fb200b0 lw r18,0x00b0(r29)
001b044c: 8fb100ac lw r17,0x00ac(r29)
001b0450: 8fb000a8 lw r16,0x00a8(r29)
001b0454: 27bd00d0 addiu r29,r29,0x00d0
001b0458: 03e00008 jr r31
001b045c: 00000000 nop