Decompile anim00024050

This commit is contained in:
Ryan Dwyer
2022-07-16 23:38:57 +10:00
parent 1dd535a833
commit 72287c59b5
2 changed files with 187 additions and 567 deletions
+3 -3
View File
@@ -17,9 +17,9 @@ bool anim000239e0(s16 animnum, s32 frame);
u8 anim00023ab0(s16 animnum, s32 framenum);
void anim00023d0c(void);
void anim00023d38(s16 animnum);
u32 anim00023f50(u8 *arg0, u8 arg1, u32 arg2);
u32 anim00023fe0(u8 *arg0, u8 arg1, s32 arg2);
void anim00024050(s32 arg0, s32 arg1, struct skeleton *skel, s32 animnum, u32 arg4, struct coord *arg5, struct coord *arg6, struct coord *arg7);
s32 anim00023f50(u8 *arg0, u8 arg1, u32 arg2);
s32 anim00023fe0(u8 *arg0, u8 arg1, s32 arg2);
void anim00024050(s32 arg0, bool flip, struct skeleton *skel, s16 animnum, u8 arg4, struct coord *arg5, struct coord *arg6, struct coord *arg7);
u16 anim0002485c(s32 arg0, bool arg1, struct skeleton *skel, s16 animnum, s32 loopframe, s16 *arg5, s32 arg6);
f32 anim00024b64(u32 arg0, u32 arg1, struct skeleton *skel, s16 animnum, u32 arg4, struct coord *coord, u32 arg6);
f32 anim00024c14(s32 arg0, s16 animnum, u8 arg2);
+184 -564
View File
@@ -712,7 +712,7 @@ glabel anim00023f50
// return result;
//}
u32 anim00023fe0(u8 *arg0, u8 arg1, s32 arg2)
s32 anim00023fe0(u8 *arg0, u8 arg1, s32 arg2)
{
u16 result = anim00023f50(arg0, arg1, arg2);
@@ -723,569 +723,189 @@ u32 anim00023fe0(u8 *arg0, u8 arg1, s32 arg2)
return result;
}
GLOBAL_ASM(
glabel anim00024050
.late_rodata
glabel var70054690
.word 0x3a83126f
glabel var70054694
.word 0x3a83126f
glabel var70054698
.word 0x3a83126f
glabel var7005469c
.word 0x40c907a9
glabel var700546a0
.word 0x40c907a9
glabel var700546a4
.word 0x40c907a9
.text
/* 24050: 27bdff98 */ addiu $sp,$sp,-104
/* 24054: 93b9007b */ lbu $t9,0x7b($sp)
/* 24058: 3c18800a */ lui $t8,%hi(var8009a874)
/* 2405c: 8f18a874 */ lw $t8,%lo(var8009a874)($t8)
/* 24060: 00194080 */ sll $t0,$t9,0x2
/* 24064: afbf001c */ sw $ra,0x1c($sp)
/* 24068: afb10018 */ sw $s1,0x18($sp)
/* 2406c: afb00014 */ sw $s0,0x14($sp)
/* 24070: afa40068 */ sw $a0,0x68($sp)
/* 24074: afa5006c */ sw $a1,0x6c($sp)
/* 24078: afa70074 */ sw $a3,0x74($sp)
/* 2407c: 03084821 */ addu $t1,$t8,$t0
/* 24080: 8d2a0000 */ lw $t2,0x0($t1)
/* 24084: 00077400 */ sll $t6,$a3,0x10
/* 24088: 000e3c03 */ sra $a3,$t6,0x10
/* 2408c: 10a00006 */ beqz $a1,.L000240a8
/* 24090: afaa0054 */ sw $t2,0x54($sp)
/* 24094: 8ccc0004 */ lw $t4,0x4($a2)
/* 24098: 00047040 */ sll $t6,$a0,0x1
/* 2409c: 018e7821 */ addu $t7,$t4,$t6
/* 240a0: 91f90001 */ lbu $t9,0x1($t7)
/* 240a4: afb90068 */ sw $t9,0x68($sp)
.L000240a8:
/* 240a8: 3c188006 */ lui $t8,%hi(g_Anims)
/* 240ac: 8f18f00c */ lw $t8,%lo(g_Anims)($t8)
/* 240b0: 00074080 */ sll $t0,$a3,0x2
/* 240b4: 01074023 */ subu $t0,$t0,$a3
/* 240b8: 00084080 */ sll $t0,$t0,0x2
/* 240bc: 3c0b8006 */ lui $t3,%hi(var8005f010)
/* 240c0: 03081021 */ addu $v0,$t8,$t0
/* 240c4: 9049000a */ lbu $t1,0xa($v0)
/* 240c8: 8d6bf010 */ lw $t3,%lo(var8005f010)($t3)
/* 240cc: 3c0a800a */ lui $t2,%hi(var8009a888)
/* 240d0: a3a90053 */ sb $t1,0x53($sp)
/* 240d4: 00eb6821 */ addu $t5,$a3,$t3
/* 240d8: 91ac0000 */ lbu $t4,0x0($t5)
/* 240dc: 8d4aa888 */ lw $t2,%lo(var8009a888)($t2)
/* 240e0: 8fb80068 */ lw $t8,0x68($sp)
/* 240e4: 000c7080 */ sll $t6,$t4,0x2
/* 240e8: 014e7821 */ addu $t7,$t2,$t6
/* 240ec: 8df00000 */ lw $s0,0x0($t7)
/* 240f0: 94590008 */ lhu $t9,0x8($v0)
/* 240f4: 00008825 */ or $s1,$zero,$zero
/* 240f8: 00002025 */ or $a0,$zero,$zero
/* 240fc: 1b000043 */ blez $t8,.L0002420c
/* 24100: 03302821 */ addu $a1,$t9,$s0
/* 24104: 0205082b */ sltu $at,$s0,$a1
/* 24108: 50200041 */ beqzl $at,.L00024210
/* 2410c: 0205082b */ sltu $at,$s0,$a1
/* 24110: 92030000 */ lbu $v1,0x0($s0)
.L00024114:
/* 24114: 26100001 */ addiu $s0,$s0,0x1
/* 24118: 30680008 */ andi $t0,$v1,0x8
/* 2411c: 1100000b */ beqz $t0,.L0002414c
/* 24120: 30790002 */ andi $t9,$v1,0x2
/* 24124: 92090002 */ lbu $t1,0x2($s0)
/* 24128: 920d0005 */ lbu $t5,0x5($s0)
/* 2412c: 920a0008 */ lbu $t2,0x8($s0)
/* 24130: 02295821 */ addu $t3,$s1,$t1
/* 24134: 920f000b */ lbu $t7,0xb($s0)
/* 24138: 016d6021 */ addu $t4,$t3,$t5
/* 2413c: 018a7021 */ addu $t6,$t4,$t2
/* 24140: 2610000c */ addiu $s0,$s0,0xc
/* 24144: 10000014 */ b .L00024198
/* 24148: 01cf8821 */ addu $s1,$t6,$t7
.L0002414c:
/* 2414c: 13200009 */ beqz $t9,.L00024174
/* 24150: 306c0020 */ andi $t4,$v1,0x20
/* 24154: 92180002 */ lbu $t8,0x2($s0)
/* 24158: 92090005 */ lbu $t1,0x5($s0)
/* 2415c: 920d0008 */ lbu $t5,0x8($s0)
/* 24160: 02384021 */ addu $t0,$s1,$t8
/* 24164: 01095821 */ addu $t3,$t0,$t1
/* 24168: 26100009 */ addiu $s0,$s0,0x9
/* 2416c: 1000000a */ b .L00024198
/* 24170: 016d8821 */ addu $s1,$t3,$t5
.L00024174:
/* 24174: 51800009 */ beqzl $t4,.L0002419c
/* 24178: 30680001 */ andi $t0,$v1,0x1
/* 2417c: 920a0000 */ lbu $t2,0x0($s0)
/* 24180: 920f0005 */ lbu $t7,0x5($s0)
/* 24184: 9218000a */ lbu $t8,0xa($s0)
/* 24188: 022a7021 */ addu $t6,$s1,$t2
/* 2418c: 01cfc821 */ addu $t9,$t6,$t7
/* 24190: 2610000f */ addiu $s0,$s0,0xf
/* 24194: 03388821 */ addu $s1,$t9,$t8
.L00024198:
/* 24198: 30680001 */ andi $t0,$v1,0x1
.L0002419c:
/* 2419c: 11000009 */ beqz $t0,.L000241c4
/* 241a0: 306f0040 */ andi $t7,$v1,0x40
/* 241a4: 92090002 */ lbu $t1,0x2($s0)
/* 241a8: 920d0005 */ lbu $t5,0x5($s0)
/* 241ac: 920a0008 */ lbu $t2,0x8($s0)
/* 241b0: 02295821 */ addu $t3,$s1,$t1
/* 241b4: 016d6021 */ addu $t4,$t3,$t5
/* 241b8: 26100009 */ addiu $s0,$s0,0x9
/* 241bc: 10000005 */ b .L000241d4
/* 241c0: 018a8821 */ addu $s1,$t4,$t2
.L000241c4:
/* 241c4: 306e0010 */ andi $t6,$v1,0x10
/* 241c8: 11c00002 */ beqz $t6,.L000241d4
/* 241cc: 00000000 */ nop
/* 241d0: 26310060 */ addiu $s1,$s1,0x60
.L000241d4:
/* 241d4: 11e00004 */ beqz $t7,.L000241e8
/* 241d8: 30780080 */ andi $t8,$v1,0x80
/* 241dc: 92190000 */ lbu $t9,0x0($s0)
/* 241e0: 26100005 */ addiu $s0,$s0,0x5
/* 241e4: 02398821 */ addu $s1,$s1,$t9
.L000241e8:
/* 241e8: 13000002 */ beqz $t8,.L000241f4
/* 241ec: 8fa80068 */ lw $t0,0x68($sp)
/* 241f0: 26310060 */ addiu $s1,$s1,0x60
.L000241f4:
/* 241f4: 24840001 */ addiu $a0,$a0,0x1
/* 241f8: 0088082a */ slt $at,$a0,$t0
/* 241fc: 10200003 */ beqz $at,.L0002420c
/* 24200: 0205082b */ sltu $at,$s0,$a1
/* 24204: 5420ffc3 */ bnezl $at,.L00024114
/* 24208: 92030000 */ lbu $v1,0x0($s0)
.L0002420c:
/* 2420c: 0205082b */ sltu $at,$s0,$a1
.L00024210:
/* 24210: 1020017f */ beqz $at,.L00024810
/* 24214: 8fa3007c */ lw $v1,0x7c($sp)
/* 24218: 92020000 */ lbu $v0,0x0($s0)
/* 2421c: 26100001 */ addiu $s0,$s0,0x1
/* 24220: 8fa40054 */ lw $a0,0x54($sp)
/* 24224: 304b0002 */ andi $t3,$v0,0x2
/* 24228: 11600039 */ beqz $t3,.L00024310
/* 2422c: afa20028 */ sw $v0,0x28($sp)
/* 24230: 92050002 */ lbu $a1,0x2($s0)
/* 24234: 02203025 */ or $a2,$s1,$zero
/* 24238: 0c008ff8 */ jal anim00023fe0
/* 2423c: a3a5005b */ sb $a1,0x5b($sp)
/* 24240: 920d0001 */ lbu $t5,0x1($s0)
/* 24244: 920a0000 */ lbu $t2,0x0($s0)
/* 24248: 93a5005b */ lbu $a1,0x5b($sp)
/* 2424c: 01a26021 */ addu $t4,$t5,$v0
/* 24250: 000a7200 */ sll $t6,$t2,0x8
/* 24254: 018e7821 */ addu $t7,$t4,$t6
/* 24258: 000fcc00 */ sll $t9,$t7,0x10
/* 2425c: 0019c403 */ sra $t8,$t9,0x10
/* 24260: 44982000 */ mtc1 $t8,$f4
/* 24264: 8fa80080 */ lw $t0,0x80($sp)
/* 24268: 02258821 */ addu $s1,$s1,$a1
/* 2426c: 468021a0 */ cvt.s.w $f6,$f4
/* 24270: 02203025 */ or $a2,$s1,$zero
/* 24274: e5060000 */ swc1 $f6,0x0($t0)
/* 24278: 92050005 */ lbu $a1,0x5($s0)
/* 2427c: 8fa40054 */ lw $a0,0x54($sp)
/* 24280: 0c008ff8 */ jal anim00023fe0
/* 24284: a3a5005b */ sb $a1,0x5b($sp)
/* 24288: 92090004 */ lbu $t1,0x4($s0)
/* 2428c: 920d0003 */ lbu $t5,0x3($s0)
/* 24290: 93a5005b */ lbu $a1,0x5b($sp)
/* 24294: 01225821 */ addu $t3,$t1,$v0
/* 24298: 000d5200 */ sll $t2,$t5,0x8
/* 2429c: 016a6021 */ addu $t4,$t3,$t2
/* 242a0: 000c7400 */ sll $t6,$t4,0x10
/* 242a4: 000e7c03 */ sra $t7,$t6,0x10
/* 242a8: 448f4000 */ mtc1 $t7,$f8
/* 242ac: 8fa70080 */ lw $a3,0x80($sp)
/* 242b0: 02258821 */ addu $s1,$s1,$a1
/* 242b4: 468042a0 */ cvt.s.w $f10,$f8
/* 242b8: 02203025 */ or $a2,$s1,$zero
/* 242bc: e4ea0004 */ swc1 $f10,0x4($a3)
/* 242c0: 92050008 */ lbu $a1,0x8($s0)
/* 242c4: 8fa40054 */ lw $a0,0x54($sp)
/* 242c8: 0c008ff8 */ jal anim00023fe0
/* 242cc: a3a5005b */ sb $a1,0x5b($sp)
/* 242d0: 92190007 */ lbu $t9,0x7($s0)
/* 242d4: 92080006 */ lbu $t0,0x6($s0)
/* 242d8: 93a5005b */ lbu $a1,0x5b($sp)
/* 242dc: 0322c021 */ addu $t8,$t9,$v0
/* 242e0: 00084a00 */ sll $t1,$t0,0x8
/* 242e4: 03096821 */ addu $t5,$t8,$t1
/* 242e8: 000d5c00 */ sll $t3,$t5,0x10
/* 242ec: 000b5403 */ sra $t2,$t3,0x10
/* 242f0: 448a8000 */ mtc1 $t2,$f16
/* 242f4: 8fa70080 */ lw $a3,0x80($sp)
/* 242f8: 44800000 */ mtc1 $zero,$f0
/* 242fc: 468084a0 */ cvt.s.w $f18,$f16
/* 24300: 26100009 */ addiu $s0,$s0,0x9
/* 24304: 02258821 */ addu $s1,$s1,$a1
/* 24308: 10000064 */ b .L0002449c
/* 2430c: e4f20008 */ swc1 $f18,0x8($a3)
.L00024310:
/* 24310: 8fac0028 */ lw $t4,0x28($sp)
/* 24314: 8faf0028 */ lw $t7,0x28($sp)
/* 24318: 8fa70080 */ lw $a3,0x80($sp)
/* 2431c: 318e0020 */ andi $t6,$t4,0x20
/* 24320: 11c0004f */ beqz $t6,.L00024460
/* 24324: 31ed0008 */ andi $t5,$t7,0x8
/* 24328: 92050000 */ lbu $a1,0x0($s0)
/* 2432c: 8fa40054 */ lw $a0,0x54($sp)
/* 24330: 02203025 */ or $a2,$s1,$zero
/* 24334: 0c008fd4 */ jal anim00023f50
/* 24338: a3a5005b */ sb $a1,0x5b($sp)
/* 2433c: 92190001 */ lbu $t9,0x1($s0)
/* 24340: 920f0004 */ lbu $t7,0x4($s0)
/* 24344: 92090002 */ lbu $t1,0x2($s0)
/* 24348: 920a0003 */ lbu $t2,0x3($s0)
/* 2434c: 00194600 */ sll $t0,$t9,0x18
/* 24350: 01e8c021 */ addu $t8,$t7,$t0
/* 24354: 00096c00 */ sll $t5,$t1,0x10
/* 24358: 030d5821 */ addu $t3,$t8,$t5
/* 2435c: 000a6200 */ sll $t4,$t2,0x8
/* 24360: 016c7021 */ addu $t6,$t3,$t4
/* 24364: 01c2c821 */ addu $t9,$t6,$v0
/* 24368: 44992000 */ mtc1 $t9,$f4
/* 2436c: 3c017005 */ lui $at,%hi(var70054690)
/* 24370: c4284690 */ lwc1 $f8,%lo(var70054690)($at)
/* 24374: 468021a0 */ cvt.s.w $f6,$f4
/* 24378: 93a5005b */ lbu $a1,0x5b($sp)
/* 2437c: 8fa70080 */ lw $a3,0x80($sp)
/* 24380: 02258821 */ addu $s1,$s1,$a1
/* 24384: 02203025 */ or $a2,$s1,$zero
/* 24388: 46083282 */ mul.s $f10,$f6,$f8
/* 2438c: e4ea0000 */ swc1 $f10,0x0($a3)
/* 24390: 92050005 */ lbu $a1,0x5($s0)
/* 24394: 8fa40054 */ lw $a0,0x54($sp)
/* 24398: 0c008fd4 */ jal anim00023f50
/* 2439c: a3a5005b */ sb $a1,0x5b($sp)
/* 243a0: 92080006 */ lbu $t0,0x6($s0)
/* 243a4: 920f0009 */ lbu $t7,0x9($s0)
/* 243a8: 920d0007 */ lbu $t5,0x7($s0)
/* 243ac: 920c0008 */ lbu $t4,0x8($s0)
/* 243b0: 00084e00 */ sll $t1,$t0,0x18
/* 243b4: 01e9c021 */ addu $t8,$t7,$t1
/* 243b8: 000d5400 */ sll $t2,$t5,0x10
/* 243bc: 030a5821 */ addu $t3,$t8,$t2
/* 243c0: 000c7200 */ sll $t6,$t4,0x8
/* 243c4: 016ec821 */ addu $t9,$t3,$t6
/* 243c8: 03224021 */ addu $t0,$t9,$v0
/* 243cc: 44888000 */ mtc1 $t0,$f16
/* 243d0: 3c017005 */ lui $at,%hi(var70054694)
/* 243d4: c4244694 */ lwc1 $f4,%lo(var70054694)($at)
/* 243d8: 468084a0 */ cvt.s.w $f18,$f16
/* 243dc: 93a5005b */ lbu $a1,0x5b($sp)
/* 243e0: 8fa70080 */ lw $a3,0x80($sp)
/* 243e4: 02258821 */ addu $s1,$s1,$a1
/* 243e8: 02203025 */ or $a2,$s1,$zero
/* 243ec: 46049182 */ mul.s $f6,$f18,$f4
/* 243f0: e4e60004 */ swc1 $f6,0x4($a3)
/* 243f4: 9205000a */ lbu $a1,0xa($s0)
/* 243f8: 8fa40054 */ lw $a0,0x54($sp)
/* 243fc: 0c008fd4 */ jal anim00023f50
/* 24400: a3a5005b */ sb $a1,0x5b($sp)
/* 24404: 9209000b */ lbu $t1,0xb($s0)
/* 24408: 920f000e */ lbu $t7,0xe($s0)
/* 2440c: 920a000c */ lbu $t2,0xc($s0)
/* 24410: 920e000d */ lbu $t6,0xd($s0)
/* 24414: 00096e00 */ sll $t5,$t1,0x18
/* 24418: 01edc021 */ addu $t8,$t7,$t5
/* 2441c: 000a6400 */ sll $t4,$t2,0x10
/* 24420: 030c5821 */ addu $t3,$t8,$t4
/* 24424: 000eca00 */ sll $t9,$t6,0x8
/* 24428: 01794021 */ addu $t0,$t3,$t9
/* 2442c: 01024821 */ addu $t1,$t0,$v0
/* 24430: 44894000 */ mtc1 $t1,$f8
/* 24434: 3c017005 */ lui $at,%hi(var70054698)
/* 24438: c4304698 */ lwc1 $f16,%lo(var70054698)($at)
/* 2443c: 468042a0 */ cvt.s.w $f10,$f8
/* 24440: 93a5005b */ lbu $a1,0x5b($sp)
/* 24444: 8fa70080 */ lw $a3,0x80($sp)
/* 24448: 44800000 */ mtc1 $zero,$f0
/* 2444c: 2610000f */ addiu $s0,$s0,0xf
/* 24450: 02258821 */ addu $s1,$s1,$a1
/* 24454: 46105482 */ mul.s $f18,$f10,$f16
/* 24458: 10000010 */ b .L0002449c
/* 2445c: e4f20008 */ swc1 $f18,0x8($a3)
.L00024460:
/* 24460: 44800000 */ mtc1 $zero,$f0
/* 24464: 51a0000b */ beqzl $t5,.L00024494
/* 24468: e4e00008 */ swc1 $f0,0x8($a3)
/* 2446c: 920a0002 */ lbu $t2,0x2($s0)
/* 24470: 920c0005 */ lbu $t4,0x5($s0)
/* 24474: 920b0008 */ lbu $t3,0x8($s0)
/* 24478: 9208000b */ lbu $t0,0xb($s0)
/* 2447c: 022ac021 */ addu $t8,$s1,$t2
/* 24480: 030c7021 */ addu $t6,$t8,$t4
/* 24484: 01cbc821 */ addu $t9,$t6,$t3
/* 24488: 2610000c */ addiu $s0,$s0,0xc
/* 2448c: 03288821 */ addu $s1,$t9,$t0
/* 24490: e4e00008 */ swc1 $f0,0x8($a3)
.L00024494:
/* 24494: e4e00004 */ swc1 $f0,0x4($a3)
/* 24498: e4e00000 */ swc1 $f0,0x0($a3)
.L0002449c:
/* 2449c: 8fa90028 */ lw $t1,0x28($sp)
/* 244a0: 8fa80028 */ lw $t0,0x28($sp)
/* 244a4: 8fa40054 */ lw $a0,0x54($sp)
/* 244a8: 312f0001 */ andi $t7,$t1,0x1
/* 244ac: 11e0007d */ beqz $t7,.L000246a4
/* 244b0: 31190010 */ andi $t9,$t0,0x10
/* 244b4: 92050002 */ lbu $a1,0x2($s0)
/* 244b8: 02203025 */ or $a2,$s1,$zero
/* 244bc: 0c008fd4 */ jal anim00023f50
/* 244c0: a3a5005b */ sb $a1,0x5b($sp)
/* 244c4: a7a2005c */ sh $v0,0x5c($sp)
/* 244c8: 920a0000 */ lbu $t2,0x0($s0)
/* 244cc: 920e0001 */ lbu $t6,0x1($s0)
/* 244d0: 93b90053 */ lbu $t9,0x53($sp)
/* 244d4: 000ac200 */ sll $t8,$t2,0x8
/* 244d8: 00586021 */ addu $t4,$v0,$t8
/* 244dc: 93a5005b */ lbu $a1,0x5b($sp)
/* 244e0: 24080010 */ addiu $t0,$zero,0x10
/* 244e4: 018e5821 */ addu $t3,$t4,$t6
/* 244e8: 3169ffff */ andi $t1,$t3,0xffff
/* 244ec: 01191823 */ subu $v1,$t0,$t9
/* 244f0: a7ab005c */ sh $t3,0x5c($sp)
/* 244f4: 00697804 */ sllv $t7,$t1,$v1
/* 244f8: a7af005c */ sh $t7,0x5c($sp)
/* 244fc: 02258821 */ addu $s1,$s1,$a1
/* 24500: 92050005 */ lbu $a1,0x5($s0)
/* 24504: afa30024 */ sw $v1,0x24($sp)
/* 24508: 02203025 */ or $a2,$s1,$zero
/* 2450c: 8fa40054 */ lw $a0,0x54($sp)
/* 24510: 0c008fd4 */ jal anim00023f50
/* 24514: a3a5005b */ sb $a1,0x5b($sp)
/* 24518: a7a2005e */ sh $v0,0x5e($sp)
/* 2451c: 920d0003 */ lbu $t5,0x3($s0)
/* 24520: 920e0004 */ lbu $t6,0x4($s0)
/* 24524: 8fb90024 */ lw $t9,0x24($sp)
/* 24528: 000dc200 */ sll $t8,$t5,0x8
/* 2452c: 00586021 */ addu $t4,$v0,$t8
/* 24530: 93a5005b */ lbu $a1,0x5b($sp)
/* 24534: 018e4021 */ addu $t0,$t4,$t6
/* 24538: 310bffff */ andi $t3,$t0,0xffff
/* 2453c: a7a8005e */ sh $t0,0x5e($sp)
/* 24540: 032b4804 */ sllv $t1,$t3,$t9
/* 24544: a7a9005e */ sh $t1,0x5e($sp)
/* 24548: 02258821 */ addu $s1,$s1,$a1
/* 2454c: 92050008 */ lbu $a1,0x8($s0)
/* 24550: 02203025 */ or $a2,$s1,$zero
/* 24554: 8fa40054 */ lw $a0,0x54($sp)
/* 24558: 0c008fd4 */ jal anim00023f50
/* 2455c: a3a5005b */ sb $a1,0x5b($sp)
/* 24560: a7a20060 */ sh $v0,0x60($sp)
/* 24564: 920d0006 */ lbu $t5,0x6($s0)
/* 24568: 920c0007 */ lbu $t4,0x7($s0)
/* 2456c: 97a9005c */ lhu $t1,0x5c($sp)
/* 24570: 000d5200 */ sll $t2,$t5,0x8
/* 24574: 8fa80024 */ lw $t0,0x24($sp)
/* 24578: 004ac021 */ addu $t8,$v0,$t2
/* 2457c: 3c014780 */ lui $at,0x4780
/* 24580: 030c7021 */ addu $t6,$t8,$t4
/* 24584: 93a5005b */ lbu $a1,0x5b($sp)
/* 24588: 44892000 */ mtc1 $t1,$f4
/* 2458c: 44811000 */ mtc1 $at,$f2
/* 24590: 31cbffff */ andi $t3,$t6,0xffff
/* 24594: 3c017005 */ lui $at,%hi(var7005469c)
/* 24598: 44800000 */ mtc1 $zero,$f0
/* 2459c: a7ae0060 */ sh $t6,0x60($sp)
/* 245a0: 010bc804 */ sllv $t9,$t3,$t0
/* 245a4: c42c469c */ lwc1 $f12,%lo(var7005469c)($at)
/* 245a8: 8fa3007c */ lw $v1,0x7c($sp)
/* 245ac: a7b90060 */ sh $t9,0x60($sp)
/* 245b0: 02258821 */ addu $s1,$s1,$a1
/* 245b4: 05210005 */ bgez $t1,.L000245cc
/* 245b8: 468021a0 */ cvt.s.w $f6,$f4
/* 245bc: 3c014f80 */ lui $at,0x4f80
/* 245c0: 44814000 */ mtc1 $at,$f8
/* 245c4: 00000000 */ nop
/* 245c8: 46083180 */ add.s $f6,$f6,$f8
.L000245cc:
/* 245cc: 460c3282 */ mul.s $f10,$f6,$f12
/* 245d0: 46025403 */ div.s $f16,$f10,$f2
/* 245d4: e4700000 */ swc1 $f16,0x0($v1)
/* 245d8: 8fad006c */ lw $t5,0x6c($sp)
/* 245dc: 97a2005e */ lhu $v0,0x5e($sp)
/* 245e0: 97ae005e */ lhu $t6,0x5e($sp)
/* 245e4: 51a0001a */ beqzl $t5,.L00024650
/* 245e8: 448e4000 */ mtc1 $t6,$f8
/* 245ec: 10400009 */ beqz $v0,.L00024614
/* 245f0: 3c0f0001 */ lui $t7,0x1
/* 245f4: 01e25023 */ subu $t2,$t7,$v0
/* 245f8: 448a9000 */ mtc1 $t2,$f18
/* 245fc: 00000000 */ nop
/* 24600: 46809120 */ cvt.s.w $f4,$f18
/* 24604: 460c2202 */ mul.s $f8,$f4,$f12
/* 24608: 46024183 */ div.s $f6,$f8,$f2
/* 2460c: 10000002 */ b .L00024618
/* 24610: e4660004 */ swc1 $f6,0x4($v1)
.L00024614:
/* 24614: e4600004 */ swc1 $f0,0x4($v1)
.L00024618:
/* 24618: 97a20060 */ lhu $v0,0x60($sp)
/* 2461c: 3c180001 */ lui $t8,0x1
/* 24620: 10400008 */ beqz $v0,.L00024644
/* 24624: 03026023 */ subu $t4,$t8,$v0
/* 24628: 448c5000 */ mtc1 $t4,$f10
/* 2462c: 00000000 */ nop
/* 24630: 46805420 */ cvt.s.w $f16,$f10
/* 24634: 460c8482 */ mul.s $f18,$f16,$f12
/* 24638: 46029103 */ div.s $f4,$f18,$f2
/* 2463c: 10000051 */ b .L00024784
/* 24640: e4640008 */ swc1 $f4,0x8($v1)
.L00024644:
/* 24644: 1000004f */ b .L00024784
/* 24648: e4600008 */ swc1 $f0,0x8($v1)
/* 2464c: 448e4000 */ mtc1 $t6,$f8
.L00024650:
/* 24650: 3c014f80 */ lui $at,0x4f80
/* 24654: 05c10004 */ bgez $t6,.L00024668
/* 24658: 468041a0 */ cvt.s.w $f6,$f8
/* 2465c: 44815000 */ mtc1 $at,$f10
/* 24660: 00000000 */ nop
/* 24664: 460a3180 */ add.s $f6,$f6,$f10
.L00024668:
/* 24668: 460c3402 */ mul.s $f16,$f6,$f12
/* 2466c: 3c014f80 */ lui $at,0x4f80
/* 24670: 46028483 */ div.s $f18,$f16,$f2
/* 24674: e4720004 */ swc1 $f18,0x4($v1)
/* 24678: 97ab0060 */ lhu $t3,0x60($sp)
/* 2467c: 448b2000 */ mtc1 $t3,$f4
/* 24680: 05610004 */ bgez $t3,.L00024694
/* 24684: 46802220 */ cvt.s.w $f8,$f4
/* 24688: 44815000 */ mtc1 $at,$f10
/* 2468c: 00000000 */ nop
/* 24690: 460a4200 */ add.s $f8,$f8,$f10
.L00024694:
/* 24694: 460c4182 */ mul.s $f6,$f8,$f12
/* 24698: 46023403 */ div.s $f16,$f6,$f2
/* 2469c: 10000039 */ b .L00024784
/* 246a0: e4700008 */ swc1 $f16,0x8($v1)
.L000246a4:
/* 246a4: 13200034 */ beqz $t9,.L00024778
/* 246a8: 8fa3007c */ lw $v1,0x7c($sp)
/* 246ac: 8fa40054 */ lw $a0,0x54($sp)
/* 246b0: 24050020 */ addiu $a1,$zero,0x20
/* 246b4: 0c008fd4 */ jal anim00023f50
/* 246b8: 02203025 */ or $a2,$s1,$zero
/* 246bc: 27b00038 */ addiu $s0,$sp,0x38
/* 246c0: afa20038 */ sw $v0,0x38($sp)
/* 246c4: 8fa3007c */ lw $v1,0x7c($sp)
/* 246c8: c6120000 */ lwc1 $f18,0x0($s0)
/* 246cc: 26310020 */ addiu $s1,$s1,0x20
/* 246d0: 02203025 */ or $a2,$s1,$zero
/* 246d4: e4720000 */ swc1 $f18,0x0($v1)
/* 246d8: 8fa40054 */ lw $a0,0x54($sp)
/* 246dc: 0c008fd4 */ jal anim00023f50
/* 246e0: 24050020 */ addiu $a1,$zero,0x20
/* 246e4: afa20038 */ sw $v0,0x38($sp)
/* 246e8: 8fa3007c */ lw $v1,0x7c($sp)
/* 246ec: c6040000 */ lwc1 $f4,0x0($s0)
/* 246f0: 26310020 */ addiu $s1,$s1,0x20
/* 246f4: 02203025 */ or $a2,$s1,$zero
/* 246f8: e4640004 */ swc1 $f4,0x4($v1)
/* 246fc: 8fa40054 */ lw $a0,0x54($sp)
/* 24700: 0c008fd4 */ jal anim00023f50
/* 24704: 24050020 */ addiu $a1,$zero,0x20
/* 24708: afa20038 */ sw $v0,0x38($sp)
/* 2470c: 8fa3007c */ lw $v1,0x7c($sp)
/* 24710: c60a0000 */ lwc1 $f10,0x0($s0)
/* 24714: 44800000 */ mtc1 $zero,$f0
/* 24718: 26310020 */ addiu $s1,$s1,0x20
/* 2471c: e46a0008 */ swc1 $f10,0x8($v1)
/* 24720: 8fa9006c */ lw $t1,0x6c($sp)
/* 24724: 51200018 */ beqzl $t1,.L00024788
/* 24728: 8fad0028 */ lw $t5,0x28($sp)
/* 2472c: c4620004 */ lwc1 $f2,0x4($v1)
/* 24730: 3c017005 */ lui $at,%hi(var700546a0)
/* 24734: 46020032 */ c.eq.s $f0,$f2
/* 24738: 00000000 */ nop
/* 2473c: 45030005 */ bc1tl .L00024754
/* 24740: c4620008 */ lwc1 $f2,0x8($v1)
/* 24744: c42c46a0 */ lwc1 $f12,%lo(var700546a0)($at)
/* 24748: 46026201 */ sub.s $f8,$f12,$f2
/* 2474c: e4680004 */ swc1 $f8,0x4($v1)
/* 24750: c4620008 */ lwc1 $f2,0x8($v1)
.L00024754:
/* 24754: 3c017005 */ lui $at,%hi(var700546a4)
/* 24758: c42c46a4 */ lwc1 $f12,%lo(var700546a4)($at)
/* 2475c: 46020032 */ c.eq.s $f0,$f2
/* 24760: 00000000 */ nop
/* 24764: 45030008 */ bc1tl .L00024788
/* 24768: 8fad0028 */ lw $t5,0x28($sp)
/* 2476c: 46026181 */ sub.s $f6,$f12,$f2
/* 24770: 10000004 */ b .L00024784
/* 24774: e4660008 */ swc1 $f6,0x8($v1)
.L00024778:
/* 24778: e4600008 */ swc1 $f0,0x8($v1)
/* 2477c: e4600004 */ swc1 $f0,0x4($v1)
/* 24780: e4600000 */ swc1 $f0,0x0($v1)
.L00024784:
/* 24784: 8fad0028 */ lw $t5,0x28($sp)
.L00024788:
/* 24788: 8fa40054 */ lw $a0,0x54($sp)
/* 2478c: 8fb00084 */ lw $s0,0x84($sp)
/* 24790: 31af0080 */ andi $t7,$t5,0x80
/* 24794: 11e00018 */ beqz $t7,.L000247f8
/* 24798: 3c013f80 */ lui $at,0x3f80
/* 2479c: 24050020 */ addiu $a1,$zero,0x20
/* 247a0: 0c008fd4 */ jal anim00023f50
/* 247a4: 02203025 */ or $a2,$s1,$zero
/* 247a8: afa20034 */ sw $v0,0x34($sp)
/* 247ac: 8fb00084 */ lw $s0,0x84($sp)
/* 247b0: c7b00034 */ lwc1 $f16,0x34($sp)
/* 247b4: 26310020 */ addiu $s1,$s1,0x20
/* 247b8: 02203025 */ or $a2,$s1,$zero
/* 247bc: e6100000 */ swc1 $f16,0x0($s0)
/* 247c0: 8fa40054 */ lw $a0,0x54($sp)
/* 247c4: 0c008fd4 */ jal anim00023f50
/* 247c8: 24050020 */ addiu $a1,$zero,0x20
/* 247cc: afa20034 */ sw $v0,0x34($sp)
/* 247d0: c7b20034 */ lwc1 $f18,0x34($sp)
/* 247d4: 26260020 */ addiu $a2,$s1,0x20
/* 247d8: 24050020 */ addiu $a1,$zero,0x20
/* 247dc: e6120004 */ swc1 $f18,0x4($s0)
/* 247e0: 0c008fd4 */ jal anim00023f50
/* 247e4: 8fa40054 */ lw $a0,0x54($sp)
/* 247e8: afa20034 */ sw $v0,0x34($sp)
/* 247ec: c7a40034 */ lwc1 $f4,0x34($sp)
/* 247f0: 10000015 */ b .L00024848
/* 247f4: e6040008 */ swc1 $f4,0x8($s0)
.L000247f8:
/* 247f8: 44811000 */ mtc1 $at,$f2
/* 247fc: 00000000 */ nop
/* 24800: e6020008 */ swc1 $f2,0x8($s0)
/* 24804: e6020004 */ swc1 $f2,0x4($s0)
/* 24808: 1000000f */ b .L00024848
/* 2480c: e6020000 */ swc1 $f2,0x0($s0)
.L00024810:
/* 24810: 8fa70080 */ lw $a3,0x80($sp)
/* 24814: 8fb00084 */ lw $s0,0x84($sp)
/* 24818: 44800000 */ mtc1 $zero,$f0
/* 2481c: 3c013f80 */ lui $at,0x3f80
/* 24820: 44811000 */ mtc1 $at,$f2
/* 24824: e4600008 */ swc1 $f0,0x8($v1)
/* 24828: e4600004 */ swc1 $f0,0x4($v1)
/* 2482c: e4600000 */ swc1 $f0,0x0($v1)
/* 24830: e4e00000 */ swc1 $f0,0x0($a3)
/* 24834: e4e00004 */ swc1 $f0,0x4($a3)
/* 24838: e4e00008 */ swc1 $f0,0x8($a3)
/* 2483c: e6020000 */ swc1 $f2,0x0($s0)
/* 24840: e6020004 */ swc1 $f2,0x4($s0)
/* 24844: e6020008 */ swc1 $f2,0x8($s0)
.L00024848:
/* 24848: 8fbf001c */ lw $ra,0x1c($sp)
/* 2484c: 8fb00014 */ lw $s0,0x14($sp)
/* 24850: 8fb10018 */ lw $s1,0x18($sp)
/* 24854: 03e00008 */ jr $ra
/* 24858: 27bd0068 */ addiu $sp,$sp,0x68
);
void anim00024050(s32 arg0, bool flip, struct skeleton *skel, s16 animnum, u8 arg4, struct coord *arg5, struct coord *arg6, struct coord *arg7)
{
s32 i;
u16 sp5c[3];
u8 sp5b;
u8 *sp54 = var8009a874[arg4];
u8 bitsperentry;
u8 *ptr;
u8 *end;
s32 sum;
u32 stack;
if (flip) {
arg0 = skel->things[arg0][1];
}
bitsperentry = g_Anims[animnum].initialposbitsperentry;
ptr = (u8 *)var8009a888[var8005f010[animnum]];
sum = 0;
end = ptr + g_Anims[animnum].headerlen;
for (i = 0; i < arg0 && ptr < end; i++) {
u8 flags = *ptr;
ptr++;
if (flags & 0x08) {
sum += ptr[2] + ptr[5] + ptr[8] + ptr[11];
ptr += 12;
} else if (flags & 0x02) {
sum += ptr[2] + ptr[5] + ptr[8];
ptr += 9;
} else if (flags & 0x20) {
sum += ptr[0] + ptr[5] + ptr[10];
ptr += 15;
}
if (flags & 0x01) {
sum += ptr[2] + ptr[5] + ptr[8];
ptr += 9;
} else if (flags & 0x10) {
sum += 96;
}
if (flags & 0x40) {
sum += ptr[0];
ptr += 5;
}
if (flags & 0x80) {
sum += 0x60;
}
}
if (ptr < end) {
u8 flags = *ptr;
ptr++;
if (flags & 0x02) {
sp5b = ptr[2];
arg6->x = (s16) (anim00023fe0(sp54, sp5b, sum) + (ptr[0] << 8) + ptr[1]);
sum += sp5b;
sp5b = ptr[5];
arg6->y = (s16) (anim00023fe0(sp54, sp5b, sum) + (ptr[3] << 8) + ptr[4]);
sum += sp5b;
sp5b = ptr[8];
arg6->z = (s16) (anim00023fe0(sp54, sp5b, sum) + (ptr[6] << 8) + ptr[7]);
sum += sp5b;
ptr += 9;
} else if (flags & 0x20) {
sp5b = ptr[0];
arg6->x = (anim00023f50(sp54, sp5b, sum) + ((ptr[1] << 24) + (ptr[2] << 16) + (ptr[3] << 8) + ptr[4])) * 0.001f;
sum += sp5b;
sp5b = ptr[5];
arg6->y = (anim00023f50(sp54, sp5b, sum) + ((ptr[6] << 24) + (ptr[7] << 16) + (ptr[8] << 8) + ptr[9])) * 0.001f;
sum += sp5b;
sp5b = ptr[10];
arg6->z = (anim00023f50(sp54, sp5b, sum) + ((ptr[11] << 24) + (ptr[12] << 16) + (ptr[13] << 8) + ptr[14])) * 0.001f;
sum += sp5b;
ptr += 15;
} else {
if (flags & 0x08) {
sum += ptr[2] + ptr[5] + ptr[8] + ptr[11];
ptr += 12;
}
arg6->x = arg6->y = arg6->z = 0.0f;
}
if (flags & 0x01) {
sp5b = ptr[2];
sp5c[0] = anim00023f50(sp54, sp5b, sum);
sp5c[0] += (ptr[0] << 8) + ptr[1];
sp5c[0] <<= 16 - bitsperentry;
sum += sp5b;
sp5b = ptr[5];
sp5c[1] = anim00023f50(sp54, sp5b, sum);
sp5c[1] += (ptr[3] << 8) + ptr[4];
sp5c[1] <<= 16 - bitsperentry;
sum += sp5b;
sp5b = ptr[8];
sp5c[2] = anim00023f50(sp54, sp5b, sum);
sp5c[2] += (ptr[6] << 8) + ptr[7];
sp5c[2] <<= 16 - bitsperentry;
sum += sp5b;
arg5->x = sp5c[0] * M_BADTAU / 65536.0f;
if (flip) {
if (sp5c[1] != 0) {
arg5->y = (0x10000 - sp5c[1]) * M_BADTAU / 65536.0f;
} else {
arg5->y = 0.0f;
}
if (sp5c[2] != 0) {
arg5->z = (0x10000 - sp5c[2]) * M_BADTAU / 65536.0f;
} else {
arg5->z = 0.0f;
}
} else {
arg5->y = sp5c[1] * M_BADTAU / 65536.0f;
arg5->z = sp5c[2] * M_BADTAU / 65536.0f;
}
} else if (flags & 0x10) {
s32 sp38;
sp38 = anim00023f50(sp54, 32, sum);
arg5->x = *(f32 *)&sp38;
sum += 32;
sp38 = anim00023f50(sp54, 32, sum);
arg5->y = *(f32 *)&sp38;
sum += 32;
sp38 = anim00023f50(sp54, 32, sum);
arg5->z = *(f32 *)&sp38;
sum += 32;
if (flip) {
if (arg5->y != 0.0f) {
arg5->y = M_BADTAU - arg5->y;
}
if (arg5->z != 0.0f) {
arg5->z = M_BADTAU - arg5->z;
}
}
} else {
arg5->x = arg5->y = arg5->z = 0.0f;
}
if (flags & 0x80) {
s32 sp34;
sp34 = anim00023f50(sp54, 32, sum);
arg7->x = *(f32 *)&sp34;
sum += 32;
sp34 = anim00023f50(sp54, 32, sum);
arg7->y = *(f32 *)&sp34;
sum += 32;
sp34 = anim00023f50(sp54, 32, sum);
arg7->z = *(f32 *)&sp34;
} else {
arg7->x = arg7->y = arg7->z = 1.0f;
}
return;
}
arg5->x = arg5->y = arg5->z = 0.0f;
arg6->x = arg6->y = arg6->z = 0.0f;
arg7->x = arg7->y = arg7->z = 1.0f;
}
u16 anim0002485c(s32 arg0, bool arg1, struct skeleton *skel, s16 animnum, s32 loopframe, s16 *arg5, bool arg6)
{