Complex Height Data from unit misc data and coordinates

From Final Fantasy Hacktics Wiki
Revision as of 16:35, 11 June 2016 by Emmy (talk | contribs)
Jump to navigation Jump to search

0007d0d4: 27bdffd8 addiu r29,r29,0xffd8
0007d0d8: afb20020 sw r18,0x0020(r29)
0007d0dc: 00809021 addu r18,r4,r0		r18 = Unit's Misc Data Pointer
0007d0e0: afb1001c sw r17,0x001c(r29)
0007d0e4: 00a08821 addu r17,r5,r0		r17 = Stack Pointer
0007d0e8: afbf0024 sw r31,0x0024(r29)
0007d0ec: afb00018 sw r16,0x0018(r29)
0007d0f0: 9245011e lbu r5,0x011e(r18)		Load ? Unit ID
0007d0f4: 00000000 nop
0007d0f8: 10a00012 beq r5,r0,0x0007d144		Branch if ? Unit ID = 0
0007d0fc: 27a40010 addiu r4,r29,0x0010		r4 = Stack Pointer + 0x10
0007d100: 0c05f056 jal 0x0017c158		Calculate Height Data
0007d104: 24a5ffff addiu r5,r5,0xffff		r5 = ? Unit ID - 1
0007d108: 93a20013 lbu r2,0x0013(r29)		Load Unit ID
0007d10c: 00000000 nop
0007d110: 30420080 andi r2,r2,0x0080
0007d114: 1440000b bne r2,r0,0x0007d144		Branch if Unit is dead
0007d118: 00000000 nop
0007d11c: 93a20016 lbu r2,0x0016(r29)		Load Final Height
0007d120: 00000000 nop
0007d124: 00021023 subu r2,r0,r2		-Height
0007d128: 00021fc2 srl r3,r2,0x1f		(will be 1 if negative)
0007d12c: 00431021 addu r2,r2,r3		-Height + 1
0007d130: 00021043 sra r2,r2,0x01		(-Height + 1) / 2
0007d134: 00021840 sll r3,r2,0x01		(-Height + 1) / 2 * 2
0007d138: 00621821 addu r3,r3,r2		(-Height + 1) / 2 * 3
0007d13c: 0801f455 j 0x0007d154
0007d140: 00038080 sll r16,r3,0x02		r16 = (-Height + 1) / 2 * 12
0007d144: 92250002 lbu r5,0x0002(r17)		Load Unit's Map Level
0007d148: 0c01f203 jal 0x0007c80c              0007c80c - 0007cff4 - Slope calculations? (HUGE)
0007d14c: 02202021 addu r4,r17,r0		r4 = Stack Pointer
0007d150: 00408021 addu r16,r2,r0
0007d154: 8e420134 lw r2,0x0134(r18)
0007d158: 00000000 nop
0007d15c: 10400052 beq r2,r0,0x0007d2a8
0007d160: 3c079249 lui r7,0x9249
0007d164: 96220000 lhu r2,0x0000(r17)
0007d168: 34e72493 ori r7,r7,0x2493
0007d16c: 00021400 sll r2,r2,0x10
0007d170: 00022c03 sra r5,r2,0x10
0007d174: 00a70018 mult r5,r7
0007d178: 96230004 lhu r3,0x0004(r17)
0007d17c: 00002010 mfhi r4
0007d180: 00031c00 sll r3,r3,0x10
0007d184: 00033403 sra r6,r3,0x10
0007d188: 00c70018 mult r6,r7
0007d18c: 000217c3 sra r2,r2,0x1f
0007d190: 00031fc3 sra r3,r3,0x1f
0007d194: 00852021 addu r4,r4,r5
0007d198: 00042103 sra r4,r4,0x04
0007d19c: 00822023 subu r4,r4,r2
0007d1a0: 00042400 sll r4,r4,0x10
0007d1a4: 00042403 sra r4,r4,0x10
0007d1a8: 00002810 mfhi r5
0007d1ac: 00a62821 addu r5,r5,r6
0007d1b0: 00052903 sra r5,r5,0x04
0007d1b4: 00a32823 subu r5,r5,r3
0007d1b8: 00052c00 sll r5,r5,0x10
0007d1bc: 86260002 lh r6,0x0002(r17)
0007d1c0: 0c060fed jal 0x00183fb4               Deals with map coordinates 1
0007d1c4: 00052c03 sra r5,r5,0x10
0007d1c8: 00408821 addu r17,r2,r0
0007d1cc: 92220003 lbu r2,0x0003(r17)
0007d1d0: 00000000 nop
0007d1d4: 304200e0 andi r2,r2,0x00e0
0007d1d8: 10400033 beq r2,r0,0x0007d2a8
0007d1dc: 00000000 nop
0007d1e0: 8e440134 lw r4,0x0134(r18)
0007d1e4: 0c05fc08 jal 0x0017f020               Float/Float/Fly movements
0007d1e8: 00000000 nop
0007d1ec: 00402021 addu r4,r2,r0
0007d1f0: 30820040 andi r2,r4,0x0040
0007d1f4: 964301dc lhu r3,0x01dc(r18)
0007d1f8: 92450006 lbu r5,0x0006(r18)
0007d1fc: 14400020 bne r2,r0,0x0007d280
0007d200: 00031842 srl r3,r3,0x01
0007d204: 30820020 andi r2,r4,0x0020
0007d208: 1440001d bne r2,r0,0x0007d280
0007d20c: 24a2ff64 addiu r2,r5,0xff64
0007d210: 2c420002 sltiu r2,r2,0x0002
0007d214: 1040000b beq r2,r0,0x0007d244
0007d218: 30820010 andi r2,r4,0x0010
0007d21c: 92230003 lbu r3,0x0003(r17)
0007d220: 26040004 addiu r4,r16,0x0004
0007d224: 00031942 srl r3,r3,0x05
0007d228: 00031040 sll r2,r3,0x01
0007d22c: 00431021 addu r2,r2,r3
0007d230: 96430074 lhu r3,0x0074(r18)
0007d234: 00021080 sll r2,r2,0x02
0007d238: 00431021 addu r2,r2,r3
0007d23c: 0801f4ae j 0x0007d2b8
0007d240: 00828023 subu r16,r4,r2
0007d244: 14400004 bne r2,r0,0x0007d258
0007d248: 00000000 nop
0007d24c: 3402001a ori r2,r0,0x001a
0007d250: 14620006 bne r3,r2,0x0007d26c
0007d254: 00000000 nop
0007d258: 92220003 lbu r2,0x0003(r17)
0007d25c: 00000000 nop
0007d260: 00021142 srl r2,r2,0x05
0007d264: 0801f4a3 j 0x0007d28c
0007d268: 2442ffff addiu r2,r2,0xffff
0007d26c: 3402009e ori r2,r0,0x009e
0007d270: 10a20003 beq r5,r2,0x0007d280
0007d274: 3402009b ori r2,r0,0x009b
0007d278: 14a2000b bne r5,r2,0x0007d2a8
0007d27c: 00000000 nop
0007d280: 92220003 lbu r2,0x0003(r17)
0007d284: 00000000 nop
0007d288: 00021142 srl r2,r2,0x05
0007d28c: 00021840 sll r3,r2,0x01
0007d290: 00621821 addu r3,r3,r2
0007d294: 96420074 lhu r2,0x0074(r18)
0007d298: 00031880 sll r3,r3,0x02
0007d29c: 00621821 addu r3,r3,r2
0007d2a0: 0801f4ae j 0x0007d2b8
0007d2a4: 02038023 subu r16,r16,r3
0007d2a8: 96420074 lhu r2,0x0074(r18)
0007d2ac: 00000000 nop
0007d2b0: 02021023 subu r2,r16,r2
0007d2b4: 00408021 addu r16,r2,r0
0007d2b8: 00101400 sll r2,r16,0x10
0007d2bc: 00021403 sra r2,r2,0x10
0007d2c0: 8fbf0024 lw r31,0x0024(r29)
0007d2c4: 8fb20020 lw r18,0x0020(r29)
0007d2c8: 8fb1001c lw r17,0x001c(r29)
0007d2cc: 8fb00018 lw r16,0x0018(r29)
0007d2d0: 27bd0028 addiu r29,r29,0x0028
0007d2d4: 03e00008 jr r31
0007d2d8: 00000000 nop