Decompile func0001b400

This commit is contained in:
Ryan Dwyer 2021-04-30 23:01:27 +10:00
parent ddf1bd9552
commit 012cfb0c44
9 changed files with 169 additions and 615 deletions

View File

@ -1556,11 +1556,15 @@ void bbikeTick(void)
Mtxf sp164;
Mtxf sp124;
Mtxf spe4;
f32 spd4[4];
f32 spc4[4];
u32 stack3;
struct coord spd4;
u32 stack4;
struct coord spc4;
f32 spb4[4];
f32 spa4[4];
f32 sp94[4];
u32 stack5;
struct coord spa4;
u32 stack6;
struct coord sp94;
f32 sp84[4];
struct coord pos;
f32 breathing;
@ -1687,10 +1691,10 @@ void bbikeTick(void)
func00015d54(obj->realrot, &sp124);
func00015f04(1.0f / obj->model->scale, &sp124);
func00016374(hoverpropGetTurnAngle(obj), &spe4);
func0f097044(&spe4, spd4);
func0f097044(&sp124, spc4);
func0f0976c0(spc4, spd4);
func0f0972b8(spd4, spc4, 0.8f, spb4);
func0f097044(&spe4, &spd4);
func0f097044(&sp124, &spc4);
func0f0976c0(&spc4, &spd4);
func0f0972b8(&spd4, &spc4, 0.8f, spb4);
func0f096ed4(spb4, &sp124);
func000159fc(&sp124, &sp164);
@ -1718,10 +1722,10 @@ void bbikeTick(void)
-1, 0, 0, 0, NULL, -1, NULL, -1, -1, -1, -1);
}
func0f097044(&g_Vars.currentplayer->bondentermtx, spa4);
func0f097044(&sp164, sp94);
func0f0976c0(sp94, spa4);
func0f0972b8(spa4, sp94, 1.0f - g_Vars.currentplayer->bondentert2, sp84);
func0f097044(&g_Vars.currentplayer->bondentermtx, &spa4);
func0f097044(&sp164, &sp94);
func0f0976c0(&sp94, &spa4);
func0f0972b8(&spa4, &sp94, 1.0f - g_Vars.currentplayer->bondentert2, sp84);
func0f096ed4(sp84, &sp164);
}

View File

@ -12131,8 +12131,10 @@ void bmoveUpdateHead(f32 arg0, f32 arg1, f32 arg2, Mtxf *arg3, f32 arg4)
f32 sp244 = 0;
Mtxf sp180;
Mtxf sp116;
f32 sp100[4];
f32 sp84[4];
u32 stack;
struct coord sp100;
u32 stack2;
struct coord sp84;
f32 sp68[4];
if (g_Vars.currentplayer->isdead == false) {
@ -12168,10 +12170,10 @@ void bmoveUpdateHead(f32 arg0, f32 arg1, f32 arg2, Mtxf *arg3, f32 arg4)
func000159fc(&sp116, &sp180);
if (arg3) {
func0f097044(&sp180, sp100);
func0f097044(arg3, sp84);
func0f0976c0(sp100, sp84);
func0f0972b8(sp100, sp84, arg4, sp68);
func0f097044(&sp180, &sp100);
func0f097044(arg3, &sp84);
func0f0976c0(&sp100, &sp84);
func0f0972b8(&sp100, &sp84, arg4, sp68);
func0f096ed4(sp68, &sp180);
}

View File

@ -4,13 +4,13 @@
#include "data.h"
#include "types.h"
u32 func0f096ca0(void);
void func0f096ca0(struct coord *arg0, struct coord *arg1);
void func0f096ed4(f32 *arg0, Mtxf *arg1);
void func0f097044(Mtxf *matrix, f32 *arg1);
void func0f097044(Mtxf *matrix, struct coord *arg1);
u32 func0f097264(void);
void func0f0972b8(f32 *arg0, f32 *arg1, f32 arg2, f32 *arg3);
void func0f0972b8(struct coord *arg0, struct coord *arg1, f32 arg2, f32 *arg3);
u32 func0f097518(void);
void func0f0976c0(f32 *arg0, f32 *arg1);
void func0f0976c0(struct coord *arg0, struct coord *arg1);
void func0f097738(f32 *arg0, f32 *arg1, f32 *arg2);
#endif

View File

@ -25,7 +25,7 @@ void func00015e80(f32 mult, f32 *matrix);
u32 func00015ea8(void);
void func00015edc(f32 mult, f32 *matrix);
void func00015f04(f32 scale, Mtxf *arg1);
u32 func00015f4c(void);
void func00015f4c(f32 scale, Mtxf *arg1);
void func00015f88(f32 arg0, Mtxf *arg1);
u32 func00015fd0(void);
void func00016054(Mtxf *matrix, Mtxf *arg1);

View File

@ -8,7 +8,7 @@ void func00016110(f32 *matrix1, f32 *matrix2);
u32 func00016140(void);
void func000161b0(f32 *matrix, f32 src[3], f32 dest[3]);
void func00016208(f32 *matrix, struct coord *coord);
void func00016248(struct coord *coord, f32 angle, f32 *matrix);
void func00016248(struct coord *coord, f32 angle, Mtxf *matrix);
void func000162e8(f32 angle, Mtxf *matrix);
void func00016374(f32 angle, Mtxf *matrix);
void func00016400(f32 angle, Mtxf *matrix);

View File

@ -9,7 +9,7 @@ void func0001a518(void *callback);
s32 func0001a524(struct modelnode *node, s32 arg1);
Mtxf *func0001a5cc(struct model *model, struct modelnode *node, s32 arg2);
Mtxf *func0001a60c(struct model *model);
struct modelnode *func0001a634(struct model *model, s32 arg1);
struct modelnode *func0001a634(struct model *model, s32 mtxindex);
struct modelnode *func0001a740(struct modelnode *node);
struct modelnode *func0001a784(struct modelnode *node);
struct modelnode *func0001a7cc(struct modelnode *node);

View File

@ -469,9 +469,12 @@ struct model;
struct anim {
/*0x00*/ s16 animnum;
/*0x02*/ s16 animnum2;
/*0x04*/ u32 unk04;
/*0x04*/ u8 unk04;
/*0x05*/ u8 unk05;
/*0x06*/ u8 unk06;
/*0x07*/ u8 unk07;
/*0x08*/ s8 flip;
/*0x09*/ u8 flip2;
/*0x09*/ s8 flip2;
/*0x0a*/ u8 looping;
/*0x0b*/ u8 average;
/*0x0c*/ f32 frame;
@ -517,7 +520,8 @@ struct modeltype {
};
struct modelrodata_chrinfo { // type 0x01
u32 modeltype;
u16 unk00;
s16 mtxindex;
f32 unk04;
u16 rwdataindex;
};

View File

@ -88,30 +88,30 @@ void func00016208(f32 *matrix, struct coord *coord)
coord->z = tmp[2];
}
void func00016248(struct coord *coord, f32 angle, f32 *matrix)
void func00016248(struct coord *coord, f32 angle, Mtxf *matrix)
{
f32 cos = cosf(angle);
f32 sin = sinf(angle);
matrix[0] = cos;
matrix[1] = 0;
matrix[2] = -sin;
matrix[3] = 0;
matrix->m[0][0] = cos;
matrix->m[0][1] = 0;
matrix->m[0][2] = -sin;
matrix->m[0][3] = 0;
matrix[4] = 0;
matrix[5] = 1;
matrix[6] = 0;
matrix[7] = 0;
matrix->m[1][0] = 0;
matrix->m[1][1] = 1;
matrix->m[1][2] = 0;
matrix->m[1][3] = 0;
matrix[8] = sin;
matrix[9] = 0;
matrix[10] = cos;
matrix[11] = 0;
matrix->m[2][0] = sin;
matrix->m[2][1] = 0;
matrix->m[2][2] = cos;
matrix->m[2][3] = 0;
matrix[12] = coord->x;
matrix[13] = coord->y;
matrix[14] = coord->z;
matrix[15] = 1;
matrix->m[3][0] = coord->x;
matrix->m[3][1] = coord->y;
matrix->m[3][2] = coord->z;
matrix->m[3][3] = 1;
}
#if VERSION < VERSION_NTSC_1_0

View File

@ -44,7 +44,7 @@ s32 func0001a524(struct modelnode *node, s32 arg1)
switch (node->type & 0xff) {
case MODELNODETYPE_CHRINFO:
rodata1 = node->rodata;
return (s16) rodata1->chrinfo.modeltype;
return rodata1->chrinfo.mtxindex;
case MODELNODETYPE_POSITION:
rodata2 = node->rodata;
return rodata2->position.pieces[arg1 == 0x200 ? 2 : (arg1 == 0x100 ? 1 : 0)];
@ -75,7 +75,7 @@ Mtxf *func0001a60c(struct model *model)
return func0001a5cc(model, model->filedata->rootnode, 0);
}
struct modelnode *func0001a634(struct model *model, s32 arg1)
struct modelnode *func0001a634(struct model *model, s32 mtxindex)
{
struct modelnode *node = model->filedata->rootnode;
union modelrodata *rodata1;
@ -86,21 +86,21 @@ struct modelnode *func0001a634(struct model *model, s32 arg1)
switch (node->type & 0xff) {
case MODELNODETYPE_CHRINFO:
rodata1 = node->rodata;
if (arg1 == (s16)rodata1->chrinfo.modeltype) {
if (mtxindex == rodata1->chrinfo.mtxindex) {
return node;
}
break;
case MODELNODETYPE_POSITION:
rodata2 = node->rodata;
if (arg1 == rodata2->position.pieces[0]
|| arg1 == rodata2->position.pieces[1]
|| arg1 == rodata2->position.pieces[2]) {
if (mtxindex == rodata2->position.pieces[0]
|| mtxindex == rodata2->position.pieces[1]
|| mtxindex == rodata2->position.pieces[2]) {
return node;
}
break;
case MODELNODETYPE_POSITIONHELD:
rodata3 = node->rodata;
if (arg1 == rodata3->positionheld.unk0c) {
if (mtxindex == rodata3->positionheld.unk0c) {
return node;
}
break;
@ -636,572 +636,116 @@ void func0001b3bc(struct model *model)
}
}
void func0001b400(struct objticksp476 *arg0, struct model *model, struct modelnode *node)
{
struct anim *anim = model->anim;
union modelrodata *rodata = node->rodata;
union modelrwdata *rwdata = modelGetNodeRwData(model, node);
f32 scale = model->scale;
struct coord *sp254 = &rwdata->chrinfo.pos;
f32 sp250 = rwdata->chrinfo.unk14;
Mtxf *sp24c;
u32 stack1;
Mtxf *mtx = &model->matrices[rodata->chrinfo.mtxindex];
s32 sp240 = rodata->chrinfo.unk00;
struct modeltype *type = model->filedata->type;
struct coord sp230;
struct coord sp224;
struct coord sp218;
Mtxf sp1d8;
Mtxf sp198;
Mtxf sp158;
f32 sp154;
struct coord sp148;
struct coord sp13c;
struct coord sp130;
struct coord sp124;
struct coord sp118;
struct coord sp10c;
u8 stack2[0x4];
struct coord spfc;
u8 stack3[0x4];
struct coord spec;
u8 stack4[0xc];
f32 spdc;
struct coord spd0;
struct coord spc4;
struct coord spb8;
Mtxf sp78;
Mtxf sp38;
if (rodata->chrinfo.mtxindex);
if (node->parent) {
sp24c = func0001a5cc(model, node->parent, 0);
} else {
sp24c = arg0->matrix;
}
func00024050(sp240, anim->flip, type, anim->animnum, anim->unk04, &sp230, &sp224, &sp218);
if (g_Vars.in_cutscene && anim->speed > 0) {
#if VERSION >= VERSION_PAL_FINAL
GLOBAL_ASM(
glabel func0001b400
.late_rodata
glabel var70053f98pf
.word 0x3c23d70a
.text
/* 1b19c: 27bdfd98 */ addiu $sp,$sp,-616
/* 1b1a0: afbf002c */ sw $ra,0x2c($sp)
/* 1b1a4: afb00028 */ sw $s0,0x28($sp)
/* 1b1a8: afa40268 */ sw $a0,0x268($sp)
/* 1b1ac: 8cb00020 */ lw $s0,0x20($a1)
/* 1b1b0: 8cc80004 */ lw $t0,0x4($a2)
/* 1b1b4: 00a03825 */ move $a3,$a1
/* 1b1b8: 00a02025 */ move $a0,$a1
/* 1b1bc: 00c02825 */ move $a1,$a2
/* 1b1c0: afa7026c */ sw $a3,0x26c($sp)
/* 1b1c4: afa60270 */ sw $a2,0x270($sp)
/* 1b1c8: 0c0069eb */ jal modelGetNodeRwData
/* 1b1cc: afa80260 */ sw $t0,0x260($sp)
/* 1b1d0: 8fa7026c */ lw $a3,0x26c($sp)
/* 1b1d4: afa2025c */ sw $v0,0x25c($sp)
/* 1b1d8: 244e0008 */ addiu $t6,$v0,0x8
/* 1b1dc: c4e40014 */ lwc1 $f4,0x14($a3)
/* 1b1e0: afae0254 */ sw $t6,0x254($sp)
/* 1b1e4: 8fa80260 */ lw $t0,0x260($sp)
/* 1b1e8: e7a40258 */ swc1 $f4,0x258($sp)
/* 1b1ec: c4460014 */ lwc1 $f6,0x14($v0)
/* 1b1f0: 8fa60270 */ lw $a2,0x270($sp)
/* 1b1f4: 8fac0268 */ lw $t4,0x268($sp)
/* 1b1f8: e7a60250 */ swc1 $f6,0x250($sp)
/* 1b1fc: 85030002 */ lh $v1,0x2($t0)
/* 1b200: 8cef000c */ lw $t7,0xc($a3)
/* 1b204: 00e02025 */ move $a0,$a3
/* 1b208: 0003c180 */ sll $t8,$v1,0x6
/* 1b20c: 01f8c821 */ addu $t9,$t7,$t8
/* 1b210: afb90244 */ sw $t9,0x244($sp)
/* 1b214: 95090000 */ lhu $t1,0x0($t0)
/* 1b218: afa90240 */ sw $t1,0x240($sp)
/* 1b21c: 8cea0008 */ lw $t2,0x8($a3)
/* 1b220: 8d4b0004 */ lw $t3,0x4($t2)
/* 1b224: afab023c */ sw $t3,0x23c($sp)
/* 1b228: 8cc50008 */ lw $a1,0x8($a2)
/* 1b22c: 50a00006 */ beqzl $a1,.PF0001b248
/* 1b230: 8d8d0000 */ lw $t5,0x0($t4)
/* 1b234: 0c0068d7 */ jal func0001a5cc
/* 1b238: 00003025 */ move $a2,$zero
/* 1b23c: 10000003 */ b .PF0001b24c
/* 1b240: afa2024c */ sw $v0,0x24c($sp)
/* 1b244: 8d8d0000 */ lw $t5,0x0($t4)
.PF0001b248:
/* 1b248: afad024c */ sw $t5,0x24c($sp)
.PF0001b24c:
/* 1b24c: 920e0004 */ lbu $t6,0x4($s0)
/* 1b250: 82050008 */ lb $a1,0x8($s0)
/* 1b254: 86070000 */ lh $a3,0x0($s0)
/* 1b258: 27af0230 */ addiu $t7,$sp,0x230
/* 1b25c: 27b80224 */ addiu $t8,$sp,0x224
/* 1b260: 27b90218 */ addiu $t9,$sp,0x218
/* 1b264: afb9001c */ sw $t9,0x1c($sp)
/* 1b268: afb80018 */ sw $t8,0x18($sp)
/* 1b26c: afaf0014 */ sw $t7,0x14($sp)
/* 1b270: 8fa40240 */ lw $a0,0x240($sp)
/* 1b274: 8fa6023c */ lw $a2,0x23c($sp)
/* 1b278: 0c008e54 */ jal func00024050
/* 1b27c: afae0010 */ sw $t6,0x10($sp)
/* 1b280: 3c09800a */ lui $t1,0x800a
/* 1b284: 8d29a9dc */ lw $t1,-0x5624($t1)
/* 1b288: 51200013 */ beqzl $t1,.PF0001b2d8
/* 1b28c: c6020010 */ lwc1 $f2,0x10($s0)
/* 1b290: c600001c */ lwc1 $f0,0x1c($s0)
/* 1b294: 44804000 */ mtc1 $zero,$f8
/* 1b298: 00000000 */ nop
/* 1b29c: 4600403c */ c.lt.s $f8,$f0
/* 1b2a0: 00000000 */ nop
/* 1b2a4: 4502000c */ bc1fl .PF0001b2d8
/* 1b2a8: c6020010 */ lwc1 $f2,0x10($s0)
/* 1b2ac: c60a0010 */ lwc1 $f10,0x10($s0)
/* 1b2b0: 3c017005 */ lui $at,0x7005
/* 1b2b4: c4323f98 */ lwc1 $f18,0x3f98($at)
/* 1b2b8: 46005403 */ div.s $f16,$f10,$f0
/* 1b2bc: 0fc25dec */ jal floorf
/* 1b2c0: 46128300 */ add.s $f12,$f16,$f18
/* 1b2c4: c604001c */ lwc1 $f4,0x1c($s0)
/* 1b2c8: 46040082 */ mul.s $f2,$f0,$f4
/* 1b2cc: 10000003 */ b .PF0001b2dc
/* 1b2d0: 44803000 */ mtc1 $zero,$f6
/* 1b2d4: c6020010 */ lwc1 $f2,0x10($s0)
.PF0001b2d8:
/* 1b2d8: 44803000 */ mtc1 $zero,$f6
.PF0001b2dc:
/* 1b2dc: 8fa40240 */ lw $a0,0x240($sp)
/* 1b2e0: 8fa6023c */ lw $a2,0x23c($sp)
/* 1b2e4: 46061032 */ c.eq.s $f2,$f6
/* 1b2e8: 27ab0148 */ addiu $t3,$sp,0x148
/* 1b2ec: 27ac013c */ addiu $t4,$sp,0x13c
/* 1b2f0: 27ad0130 */ addiu $t5,$sp,0x130
/* 1b2f4: 45030011 */ bc1tl .PF0001b33c
/* 1b2f8: 44804000 */ mtc1 $zero,$f8
/* 1b2fc: 920a0005 */ lbu $t2,0x5($s0)
/* 1b300: 82050008 */ lb $a1,0x8($s0)
/* 1b304: 86070000 */ lh $a3,0x0($s0)
/* 1b308: e7a20154 */ swc1 $f2,0x154($sp)
/* 1b30c: afad001c */ sw $t5,0x1c($sp)
/* 1b310: afac0018 */ sw $t4,0x18($sp)
/* 1b314: afab0014 */ sw $t3,0x14($sp)
/* 1b318: 0c008e54 */ jal func00024050
/* 1b31c: afaa0010 */ sw $t2,0x10($sp)
/* 1b320: c7a20154 */ lwc1 $f2,0x154($sp)
/* 1b324: 27a40230 */ addiu $a0,$sp,0x230
/* 1b328: 27a50148 */ addiu $a1,$sp,0x148
/* 1b32c: 44061000 */ mfc1 $a2,$f2
/* 1b330: 0c006b83 */ jal func0001b07c
/* 1b334: 00000000 */ nop
/* 1b338: 44804000 */ mtc1 $zero,$f8
.PF0001b33c:
/* 1b33c: c60a0054 */ lwc1 $f10,0x54($s0)
/* 1b340: 8fa6023c */ lw $a2,0x23c($sp)
/* 1b344: 27af0124 */ addiu $t7,$sp,0x124
/* 1b348: 460a4032 */ c.eq.s $f8,$f10
/* 1b34c: 27b80118 */ addiu $t8,$sp,0x118
/* 1b350: 27b9010c */ addiu $t9,$sp,0x10c
/* 1b354: 27a40230 */ addiu $a0,$sp,0x230
/* 1b358: 45010055 */ bc1t .PF0001b4b0
/* 1b35c: 00000000 */ nop
/* 1b360: 920e0006 */ lbu $t6,0x6($s0)
/* 1b364: 82050009 */ lb $a1,0x9($s0)
/* 1b368: 86070002 */ lh $a3,0x2($s0)
/* 1b36c: afb9001c */ sw $t9,0x1c($sp)
/* 1b370: afb80018 */ sw $t8,0x18($sp)
/* 1b374: afaf0014 */ sw $t7,0x14($sp)
/* 1b378: 8fa40240 */ lw $a0,0x240($sp)
/* 1b37c: 0c008e54 */ jal func00024050
/* 1b380: afae0010 */ sw $t6,0x10($sp)
/* 1b384: 44808000 */ mtc1 $zero,$f16
/* 1b388: c6120034 */ lwc1 $f18,0x34($s0)
/* 1b38c: 8fa40240 */ lw $a0,0x240($sp)
/* 1b390: 8fa6023c */ lw $a2,0x23c($sp)
/* 1b394: 46128032 */ c.eq.s $f16,$f18
/* 1b398: 27aa00d0 */ addiu $t2,$sp,0xd0
/* 1b39c: 27ab00c4 */ addiu $t3,$sp,0xc4
/* 1b3a0: 27ac00b8 */ addiu $t4,$sp,0xb8
/* 1b3a4: 4503000e */ bc1tl .PF0001b3e0
/* 1b3a8: 860d0000 */ lh $t5,0x0($s0)
/* 1b3ac: 92090007 */ lbu $t1,0x7($s0)
/* 1b3b0: 82050009 */ lb $a1,0x9($s0)
/* 1b3b4: 86070002 */ lh $a3,0x2($s0)
/* 1b3b8: afac001c */ sw $t4,0x1c($sp)
/* 1b3bc: afab0018 */ sw $t3,0x18($sp)
/* 1b3c0: afaa0014 */ sw $t2,0x14($sp)
/* 1b3c4: 0c008e54 */ jal func00024050
/* 1b3c8: afa90010 */ sw $t1,0x10($sp)
/* 1b3cc: 27a40124 */ addiu $a0,$sp,0x124
/* 1b3d0: 27a500d0 */ addiu $a1,$sp,0xd0
/* 1b3d4: 0c006b83 */ jal func0001b07c
/* 1b3d8: 8e060034 */ lw $a2,0x34($s0)
/* 1b3dc: 860d0000 */ lh $t5,0x0($s0)
.PF0001b3e0:
/* 1b3e0: 2403000c */ li $v1,0xc
/* 1b3e4: 3c028006 */ lui $v0,0x8006
/* 1b3e8: 01a30019 */ multu $t5,$v1
/* 1b3ec: 8c42ecbc */ lw $v0,-0x1344($v0)
/* 1b3f0: 27a40124 */ addiu $a0,$sp,0x124
/* 1b3f4: 00007012 */ mflo $t6
/* 1b3f8: 004e7821 */ addu $t7,$v0,$t6
/* 1b3fc: 91f8000b */ lbu $t8,0xb($t7)
/* 1b400: 33190002 */ andi $t9,$t8,0x2
/* 1b404: 13200018 */ beqz $t9,.PF0001b468
/* 1b408: 00000000 */ nop
/* 1b40c: 86090002 */ lh $t1,0x2($s0)
/* 1b410: 8fae025c */ lw $t6,0x25c($sp)
/* 1b414: 27a50078 */ addiu $a1,$sp,0x78
/* 1b418: 01230019 */ multu $t1,$v1
/* 1b41c: 00005012 */ mflo $t2
/* 1b420: 004a5821 */ addu $t3,$v0,$t2
/* 1b424: 916c000b */ lbu $t4,0xb($t3)
/* 1b428: 318d0002 */ andi $t5,$t4,0x2
/* 1b42c: 15a0000e */ bnez $t5,.PF0001b468
/* 1b430: 00000000 */ nop
/* 1b434: 0c005841 */ jal func00016374
/* 1b438: c5cc0014 */ lwc1 $f12,0x14($t6)
/* 1b43c: 27a40124 */ addiu $a0,$sp,0x124
/* 1b440: 0c005887 */ jal func0001648c
/* 1b444: 27a50038 */ addiu $a1,$sp,0x38
/* 1b448: 27a40078 */ addiu $a0,$sp,0x78
/* 1b44c: 0c00565c */ jal func00015be0
/* 1b450: 27a50038 */ addiu $a1,$sp,0x38
/* 1b454: 27a40038 */ addiu $a0,$sp,0x38
/* 1b458: 0fc25bd9 */ jal func0f097044
/* 1b45c: 27a500ec */ addiu $a1,$sp,0xec
/* 1b460: 10000004 */ b .PF0001b474
/* 1b464: 27a40230 */ addiu $a0,$sp,0x230
.PF0001b468:
/* 1b468: 0fc25af0 */ jal func0f096ca0
/* 1b46c: 27a500ec */ addiu $a1,$sp,0xec
/* 1b470: 27a40230 */ addiu $a0,$sp,0x230
.PF0001b474:
/* 1b474: 0fc25af0 */ jal func0f096ca0
/* 1b478: 27a500fc */ addiu $a1,$sp,0xfc
/* 1b47c: 27a400fc */ addiu $a0,$sp,0xfc
/* 1b480: 0fc25d78 */ jal func0f0976c0
/* 1b484: 27a500ec */ addiu $a1,$sp,0xec
/* 1b488: 27a400fc */ addiu $a0,$sp,0xfc
/* 1b48c: 27a500ec */ addiu $a1,$sp,0xec
/* 1b490: 8e060054 */ lw $a2,0x54($s0)
/* 1b494: 0fc25c76 */ jal func0f0972b8
/* 1b498: 27a700dc */ addiu $a3,$sp,0xdc
/* 1b49c: 27a400dc */ addiu $a0,$sp,0xdc
/* 1b4a0: 0fc25b7d */ jal func0f096ed4
/* 1b4a4: 27a501d8 */ addiu $a1,$sp,0x1d8
/* 1b4a8: 10000004 */ b .PF0001b4bc
/* 1b4ac: 86180000 */ lh $t8,0x0($s0)
.PF0001b4b0:
/* 1b4b0: 0c005887 */ jal func0001648c
/* 1b4b4: 27a501d8 */ addiu $a1,$sp,0x1d8
/* 1b4b8: 86180000 */ lh $t8,0x0($s0)
.PF0001b4bc:
/* 1b4bc: 3c0f8006 */ lui $t7,0x8006
/* 1b4c0: 8defecbc */ lw $t7,-0x1344($t7)
/* 1b4c4: 0018c880 */ sll $t9,$t8,0x2
/* 1b4c8: 0338c823 */ subu $t9,$t9,$t8
/* 1b4cc: 0019c880 */ sll $t9,$t9,0x2
/* 1b4d0: 01f94821 */ addu $t1,$t7,$t9
/* 1b4d4: 912a000b */ lbu $t2,0xb($t1)
/* 1b4d8: 8fa40254 */ lw $a0,0x254($sp)
/* 1b4dc: 8fac025c */ lw $t4,0x25c($sp)
/* 1b4e0: 314b0002 */ andi $t3,$t2,0x2
/* 1b4e4: 51600006 */ beqzl $t3,.PF0001b500
/* 1b4e8: c5800018 */ lwc1 $f0,0x18($t4)
/* 1b4ec: 0c00591b */ jal func000166dc
/* 1b4f0: 27a50198 */ addiu $a1,$sp,0x198
/* 1b4f4: 10000011 */ b .PF0001b53c
/* 1b4f8: 27b00158 */ addiu $s0,$sp,0x158
/* 1b4fc: c5800018 */ lwc1 $f0,0x18($t4)
.PF0001b500:
/* 1b500: 44802000 */ mtc1 $zero,$f4
/* 1b504: c7ac0250 */ lwc1 $f12,0x250($sp)
/* 1b508: 46002032 */ c.eq.s $f4,$f0
/* 1b50c: 00000000 */ nop
/* 1b510: 45030006 */ bc1tl .PF0001b52c
/* 1b514: 8fa40254 */ lw $a0,0x254($sp)
/* 1b518: 44060000 */ mfc1 $a2,$f0
/* 1b51c: 0c006b5e */ jal func0001afe8
/* 1b520: c58e001c */ lwc1 $f14,0x1c($t4)
/* 1b524: e7a00250 */ swc1 $f0,0x250($sp)
/* 1b528: 8fa40254 */ lw $a0,0x254($sp)
.PF0001b52c:
/* 1b52c: 8fa50250 */ lw $a1,0x250($sp)
/* 1b530: 0c0057f6 */ jal func00016248
/* 1b534: 27a60198 */ addiu $a2,$sp,0x198
/* 1b538: 27b00158 */ addiu $s0,$sp,0x158
.PF0001b53c:
/* 1b53c: 02003025 */ move $a2,$s0
/* 1b540: 27a40198 */ addiu $a0,$sp,0x198
/* 1b544: 0c00565d */ jal func00015be4
/* 1b548: 27a501d8 */ addiu $a1,$sp,0x1d8
/* 1b54c: 3c013f80 */ lui $at,0x3f80
/* 1b550: 44814000 */ mtc1 $at,$f8
/* 1b554: c7a60258 */ lwc1 $f6,0x258($sp)
/* 1b558: 02002825 */ move $a1,$s0
/* 1b55c: 46083032 */ c.eq.s $f6,$f8
/* 1b560: 00000000 */ nop
/* 1b564: 45030004 */ bc1tl .PF0001b578
/* 1b568: 8fa4024c */ lw $a0,0x24c($sp)
/* 1b56c: 0c005737 */ jal func00015f4c
/* 1b570: 46003306 */ mov.s $f12,$f6
/* 1b574: 8fa4024c */ lw $a0,0x24c($sp)
.PF0001b578:
/* 1b578: 8fa60244 */ lw $a2,0x244($sp)
/* 1b57c: 8fa50244 */ lw $a1,0x244($sp)
/* 1b580: 10800005 */ beqz $a0,.PF0001b598
/* 1b584: 00000000 */ nop
/* 1b588: 0c00565d */ jal func00015be4
/* 1b58c: 02002825 */ move $a1,$s0
/* 1b590: 10000004 */ b .PF0001b5a4
/* 1b594: 8fbf002c */ lw $ra,0x2c($sp)
.PF0001b598:
/* 1b598: 0c0056aa */ jal func00015d18
/* 1b59c: 02002025 */ move $a0,$s0
/* 1b5a0: 8fbf002c */ lw $ra,0x2c($sp)
.PF0001b5a4:
/* 1b5a4: 8fb00028 */ lw $s0,0x28($sp)
/* 1b5a8: 27bd0268 */ addiu $sp,$sp,0x268
/* 1b5ac: 03e00008 */ jr $ra
/* 1b5b0: 00000000 */ nop
);
sp154 = floorf(anim->frac / anim->speed + 0.01f) * anim->speed;
#else
GLOBAL_ASM(
glabel func0001b400
/* 1b400: 27bdfd98 */ addiu $sp,$sp,-616
/* 1b404: afbf002c */ sw $ra,0x2c($sp)
/* 1b408: afb00028 */ sw $s0,0x28($sp)
/* 1b40c: afa40268 */ sw $a0,0x268($sp)
/* 1b410: 8cb00020 */ lw $s0,0x20($a1)
/* 1b414: 8cc80004 */ lw $t0,0x4($a2)
/* 1b418: 00a03825 */ or $a3,$a1,$zero
/* 1b41c: 00a02025 */ or $a0,$a1,$zero
/* 1b420: 00c02825 */ or $a1,$a2,$zero
/* 1b424: afa7026c */ sw $a3,0x26c($sp)
/* 1b428: afa60270 */ sw $a2,0x270($sp)
/* 1b42c: 0c006a87 */ jal modelGetNodeRwData
/* 1b430: afa80260 */ sw $t0,0x260($sp)
/* 1b434: 8fa7026c */ lw $a3,0x26c($sp)
/* 1b438: afa2025c */ sw $v0,0x25c($sp)
/* 1b43c: 244e0008 */ addiu $t6,$v0,0x8
/* 1b440: c4e40014 */ lwc1 $f4,0x14($a3)
/* 1b444: afae0254 */ sw $t6,0x254($sp)
/* 1b448: 8fa80260 */ lw $t0,0x260($sp)
/* 1b44c: e7a40258 */ swc1 $f4,0x258($sp)
/* 1b450: c4460014 */ lwc1 $f6,0x14($v0)
/* 1b454: 8fa60270 */ lw $a2,0x270($sp)
/* 1b458: 8fac0268 */ lw $t4,0x268($sp)
/* 1b45c: e7a60250 */ swc1 $f6,0x250($sp)
/* 1b460: 85030002 */ lh $v1,0x2($t0)
/* 1b464: 8cef000c */ lw $t7,0xc($a3)
/* 1b468: 00e02025 */ or $a0,$a3,$zero
/* 1b46c: 0003c180 */ sll $t8,$v1,0x6
/* 1b470: 01f8c821 */ addu $t9,$t7,$t8
/* 1b474: afb90244 */ sw $t9,0x244($sp)
/* 1b478: 95090000 */ lhu $t1,0x0($t0)
/* 1b47c: afa90240 */ sw $t1,0x240($sp)
/* 1b480: 8cea0008 */ lw $t2,0x8($a3)
/* 1b484: 8d4b0004 */ lw $t3,0x4($t2)
/* 1b488: afab023c */ sw $t3,0x23c($sp)
/* 1b48c: 8cc50008 */ lw $a1,0x8($a2)
/* 1b490: 50a00006 */ beqzl $a1,.L0001b4ac
/* 1b494: 8d8d0000 */ lw $t5,0x0($t4)
/* 1b498: 0c006973 */ jal func0001a5cc
/* 1b49c: 00003025 */ or $a2,$zero,$zero
/* 1b4a0: 10000003 */ b .L0001b4b0
/* 1b4a4: afa2024c */ sw $v0,0x24c($sp)
/* 1b4a8: 8d8d0000 */ lw $t5,0x0($t4)
.L0001b4ac:
/* 1b4ac: afad024c */ sw $t5,0x24c($sp)
.L0001b4b0:
/* 1b4b0: 920e0004 */ lbu $t6,0x4($s0)
/* 1b4b4: 82050008 */ lb $a1,0x8($s0)
/* 1b4b8: 86070000 */ lh $a3,0x0($s0)
/* 1b4bc: 27af0230 */ addiu $t7,$sp,0x230
/* 1b4c0: 27b80224 */ addiu $t8,$sp,0x224
/* 1b4c4: 27b90218 */ addiu $t9,$sp,0x218
/* 1b4c8: afb9001c */ sw $t9,0x1c($sp)
/* 1b4cc: afb80018 */ sw $t8,0x18($sp)
/* 1b4d0: afaf0014 */ sw $t7,0x14($sp)
/* 1b4d4: 8fa40240 */ lw $a0,0x240($sp)
/* 1b4d8: 8fa6023c */ lw $a2,0x23c($sp)
/* 1b4dc: 0c009014 */ jal func00024050
/* 1b4e0: afae0010 */ sw $t6,0x10($sp)
/* 1b4e4: 3c09800a */ lui $t1,%hi(g_Vars+0x4cc)
/* 1b4e8: 8d29a48c */ lw $t1,%lo(g_Vars+0x4cc)($t1)
/* 1b4ec: 51200010 */ beqzl $t1,.L0001b530
/* 1b4f0: c6020010 */ lwc1 $f2,0x10($s0)
/* 1b4f4: c600001c */ lwc1 $f0,0x1c($s0)
/* 1b4f8: 44804000 */ mtc1 $zero,$f8
/* 1b4fc: 00000000 */ nop
/* 1b500: 4600403c */ c.lt.s $f8,$f0
/* 1b504: 00000000 */ nop
/* 1b508: 45020009 */ bc1fl .L0001b530
/* 1b50c: c6020010 */ lwc1 $f2,0x10($s0)
/* 1b510: c60a0010 */ lwc1 $f10,0x10($s0)
/* 1b514: 0fc25e24 */ jal floorf
/* 1b518: 46005303 */ div.s $f12,$f10,$f0
/* 1b51c: c610001c */ lwc1 $f16,0x1c($s0)
/* 1b520: 46100082 */ mul.s $f2,$f0,$f16
/* 1b524: 10000003 */ b .L0001b534
/* 1b528: 44809000 */ mtc1 $zero,$f18
/* 1b52c: c6020010 */ lwc1 $f2,0x10($s0)
.L0001b530:
/* 1b530: 44809000 */ mtc1 $zero,$f18
.L0001b534:
/* 1b534: 8fa40240 */ lw $a0,0x240($sp)
/* 1b538: 8fa6023c */ lw $a2,0x23c($sp)
/* 1b53c: 46121032 */ c.eq.s $f2,$f18
/* 1b540: 27ab0148 */ addiu $t3,$sp,0x148
/* 1b544: 27ac013c */ addiu $t4,$sp,0x13c
/* 1b548: 27ad0130 */ addiu $t5,$sp,0x130
/* 1b54c: 45030011 */ bc1tl .L0001b594
/* 1b550: 44802000 */ mtc1 $zero,$f4
/* 1b554: 920a0005 */ lbu $t2,0x5($s0)
/* 1b558: 82050008 */ lb $a1,0x8($s0)
/* 1b55c: 86070000 */ lh $a3,0x0($s0)
/* 1b560: e7a20154 */ swc1 $f2,0x154($sp)
/* 1b564: afad001c */ sw $t5,0x1c($sp)
/* 1b568: afac0018 */ sw $t4,0x18($sp)
/* 1b56c: afab0014 */ sw $t3,0x14($sp)
/* 1b570: 0c009014 */ jal func00024050
/* 1b574: afaa0010 */ sw $t2,0x10($sp)
/* 1b578: c7a20154 */ lwc1 $f2,0x154($sp)
/* 1b57c: 27a40230 */ addiu $a0,$sp,0x230
/* 1b580: 27a50148 */ addiu $a1,$sp,0x148
/* 1b584: 44061000 */ mfc1 $a2,$f2
/* 1b588: 0c006c1f */ jal func0001b07c
/* 1b58c: 00000000 */ nop
/* 1b590: 44802000 */ mtc1 $zero,$f4
.L0001b594:
/* 1b594: c6060054 */ lwc1 $f6,0x54($s0)
/* 1b598: 8fa6023c */ lw $a2,0x23c($sp)
/* 1b59c: 27af0124 */ addiu $t7,$sp,0x124
/* 1b5a0: 46062032 */ c.eq.s $f4,$f6
/* 1b5a4: 27b80118 */ addiu $t8,$sp,0x118
/* 1b5a8: 27b9010c */ addiu $t9,$sp,0x10c
/* 1b5ac: 27a40230 */ addiu $a0,$sp,0x230
/* 1b5b0: 45010055 */ bc1t .L0001b708
/* 1b5b4: 00000000 */ nop
/* 1b5b8: 920e0006 */ lbu $t6,0x6($s0)
/* 1b5bc: 82050009 */ lb $a1,0x9($s0)
/* 1b5c0: 86070002 */ lh $a3,0x2($s0)
/* 1b5c4: afb9001c */ sw $t9,0x1c($sp)
/* 1b5c8: afb80018 */ sw $t8,0x18($sp)
/* 1b5cc: afaf0014 */ sw $t7,0x14($sp)
/* 1b5d0: 8fa40240 */ lw $a0,0x240($sp)
/* 1b5d4: 0c009014 */ jal func00024050
/* 1b5d8: afae0010 */ sw $t6,0x10($sp)
/* 1b5dc: 44804000 */ mtc1 $zero,$f8
/* 1b5e0: c60a0034 */ lwc1 $f10,0x34($s0)
/* 1b5e4: 8fa40240 */ lw $a0,0x240($sp)
/* 1b5e8: 8fa6023c */ lw $a2,0x23c($sp)
/* 1b5ec: 460a4032 */ c.eq.s $f8,$f10
/* 1b5f0: 27aa00d0 */ addiu $t2,$sp,0xd0
/* 1b5f4: 27ab00c4 */ addiu $t3,$sp,0xc4
/* 1b5f8: 27ac00b8 */ addiu $t4,$sp,0xb8
/* 1b5fc: 4503000e */ bc1tl .L0001b638
/* 1b600: 860d0000 */ lh $t5,0x0($s0)
/* 1b604: 92090007 */ lbu $t1,0x7($s0)
/* 1b608: 82050009 */ lb $a1,0x9($s0)
/* 1b60c: 86070002 */ lh $a3,0x2($s0)
/* 1b610: afac001c */ sw $t4,0x1c($sp)
/* 1b614: afab0018 */ sw $t3,0x18($sp)
/* 1b618: afaa0014 */ sw $t2,0x14($sp)
/* 1b61c: 0c009014 */ jal func00024050
/* 1b620: afa90010 */ sw $t1,0x10($sp)
/* 1b624: 27a40124 */ addiu $a0,$sp,0x124
/* 1b628: 27a500d0 */ addiu $a1,$sp,0xd0
/* 1b62c: 0c006c1f */ jal func0001b07c
/* 1b630: 8e060034 */ lw $a2,0x34($s0)
/* 1b634: 860d0000 */ lh $t5,0x0($s0)
.L0001b638:
/* 1b638: 2403000c */ addiu $v1,$zero,0xc
/* 1b63c: 3c028006 */ lui $v0,%hi(g_Anims)
/* 1b640: 01a30019 */ multu $t5,$v1
/* 1b644: 8c42f00c */ lw $v0,%lo(g_Anims)($v0)
/* 1b648: 27a40124 */ addiu $a0,$sp,0x124
/* 1b64c: 00007012 */ mflo $t6
/* 1b650: 004e7821 */ addu $t7,$v0,$t6
/* 1b654: 91f8000b */ lbu $t8,0xb($t7)
/* 1b658: 33190002 */ andi $t9,$t8,0x2
/* 1b65c: 13200018 */ beqz $t9,.L0001b6c0
/* 1b660: 00000000 */ nop
/* 1b664: 86090002 */ lh $t1,0x2($s0)
/* 1b668: 8fae025c */ lw $t6,0x25c($sp)
/* 1b66c: 27a50078 */ addiu $a1,$sp,0x78
/* 1b670: 01230019 */ multu $t1,$v1
/* 1b674: 00005012 */ mflo $t2
/* 1b678: 004a5821 */ addu $t3,$v0,$t2
/* 1b67c: 916c000b */ lbu $t4,0xb($t3)
/* 1b680: 318d0002 */ andi $t5,$t4,0x2
/* 1b684: 15a0000e */ bnez $t5,.L0001b6c0
/* 1b688: 00000000 */ nop
/* 1b68c: 0c0058dd */ jal func00016374
/* 1b690: c5cc0014 */ lwc1 $f12,0x14($t6)
/* 1b694: 27a40124 */ addiu $a0,$sp,0x124
/* 1b698: 0c005923 */ jal func0001648c
/* 1b69c: 27a50038 */ addiu $a1,$sp,0x38
/* 1b6a0: 27a40078 */ addiu $a0,$sp,0x78
/* 1b6a4: 0c0056f8 */ jal func00015be0
/* 1b6a8: 27a50038 */ addiu $a1,$sp,0x38
/* 1b6ac: 27a40038 */ addiu $a0,$sp,0x38
/* 1b6b0: 0fc25c11 */ jal func0f097044
/* 1b6b4: 27a500ec */ addiu $a1,$sp,0xec
/* 1b6b8: 10000004 */ b .L0001b6cc
/* 1b6bc: 27a40230 */ addiu $a0,$sp,0x230
.L0001b6c0:
/* 1b6c0: 0fc25b28 */ jal func0f096ca0
/* 1b6c4: 27a500ec */ addiu $a1,$sp,0xec
/* 1b6c8: 27a40230 */ addiu $a0,$sp,0x230
.L0001b6cc:
/* 1b6cc: 0fc25b28 */ jal func0f096ca0
/* 1b6d0: 27a500fc */ addiu $a1,$sp,0xfc
/* 1b6d4: 27a400fc */ addiu $a0,$sp,0xfc
/* 1b6d8: 0fc25db0 */ jal func0f0976c0
/* 1b6dc: 27a500ec */ addiu $a1,$sp,0xec
/* 1b6e0: 27a400fc */ addiu $a0,$sp,0xfc
/* 1b6e4: 27a500ec */ addiu $a1,$sp,0xec
/* 1b6e8: 8e060054 */ lw $a2,0x54($s0)
/* 1b6ec: 0fc25cae */ jal func0f0972b8
/* 1b6f0: 27a700dc */ addiu $a3,$sp,0xdc
/* 1b6f4: 27a400dc */ addiu $a0,$sp,0xdc
/* 1b6f8: 0fc25bb5 */ jal func0f096ed4
/* 1b6fc: 27a501d8 */ addiu $a1,$sp,0x1d8
/* 1b700: 10000004 */ b .L0001b714
/* 1b704: 86180000 */ lh $t8,0x0($s0)
.L0001b708:
/* 1b708: 0c005923 */ jal func0001648c
/* 1b70c: 27a501d8 */ addiu $a1,$sp,0x1d8
/* 1b710: 86180000 */ lh $t8,0x0($s0)
.L0001b714:
/* 1b714: 3c0f8006 */ lui $t7,%hi(g_Anims)
/* 1b718: 8deff00c */ lw $t7,%lo(g_Anims)($t7)
/* 1b71c: 0018c880 */ sll $t9,$t8,0x2
/* 1b720: 0338c823 */ subu $t9,$t9,$t8
/* 1b724: 0019c880 */ sll $t9,$t9,0x2
/* 1b728: 01f94821 */ addu $t1,$t7,$t9
/* 1b72c: 912a000b */ lbu $t2,0xb($t1)
/* 1b730: 8fa40254 */ lw $a0,0x254($sp)
/* 1b734: 8fac025c */ lw $t4,0x25c($sp)
/* 1b738: 314b0002 */ andi $t3,$t2,0x2
/* 1b73c: 51600006 */ beqzl $t3,.L0001b758
/* 1b740: c5800018 */ lwc1 $f0,0x18($t4)
/* 1b744: 0c0059b7 */ jal func000166dc
/* 1b748: 27a50198 */ addiu $a1,$sp,0x198
/* 1b74c: 10000011 */ b .L0001b794
/* 1b750: 27b00158 */ addiu $s0,$sp,0x158
/* 1b754: c5800018 */ lwc1 $f0,0x18($t4)
.L0001b758:
/* 1b758: 44808000 */ mtc1 $zero,$f16
/* 1b75c: c7ac0250 */ lwc1 $f12,0x250($sp)
/* 1b760: 46008032 */ c.eq.s $f16,$f0
/* 1b764: 00000000 */ nop
/* 1b768: 45030006 */ bc1tl .L0001b784
/* 1b76c: 8fa40254 */ lw $a0,0x254($sp)
/* 1b770: 44060000 */ mfc1 $a2,$f0
/* 1b774: 0c006bfa */ jal func0001afe8
/* 1b778: c58e001c */ lwc1 $f14,0x1c($t4)
/* 1b77c: e7a00250 */ swc1 $f0,0x250($sp)
/* 1b780: 8fa40254 */ lw $a0,0x254($sp)
.L0001b784:
/* 1b784: 8fa50250 */ lw $a1,0x250($sp)
/* 1b788: 0c005892 */ jal func00016248
/* 1b78c: 27a60198 */ addiu $a2,$sp,0x198
/* 1b790: 27b00158 */ addiu $s0,$sp,0x158
.L0001b794:
/* 1b794: 02003025 */ or $a2,$s0,$zero
/* 1b798: 27a40198 */ addiu $a0,$sp,0x198
/* 1b79c: 0c0056f9 */ jal func00015be4
/* 1b7a0: 27a501d8 */ addiu $a1,$sp,0x1d8
/* 1b7a4: 3c013f80 */ lui $at,0x3f80
/* 1b7a8: 44812000 */ mtc1 $at,$f4
/* 1b7ac: c7b20258 */ lwc1 $f18,0x258($sp)
/* 1b7b0: 02002825 */ or $a1,$s0,$zero
/* 1b7b4: 46049032 */ c.eq.s $f18,$f4
/* 1b7b8: 00000000 */ nop
/* 1b7bc: 45030004 */ bc1tl .L0001b7d0
/* 1b7c0: 8fa4024c */ lw $a0,0x24c($sp)
/* 1b7c4: 0c0057d3 */ jal func00015f4c
/* 1b7c8: 46009306 */ mov.s $f12,$f18
/* 1b7cc: 8fa4024c */ lw $a0,0x24c($sp)
.L0001b7d0:
/* 1b7d0: 8fa60244 */ lw $a2,0x244($sp)
/* 1b7d4: 8fa50244 */ lw $a1,0x244($sp)
/* 1b7d8: 10800005 */ beqz $a0,.L0001b7f0
/* 1b7dc: 00000000 */ nop
/* 1b7e0: 0c0056f9 */ jal func00015be4
/* 1b7e4: 02002825 */ or $a1,$s0,$zero
/* 1b7e8: 10000004 */ b .L0001b7fc
/* 1b7ec: 8fbf002c */ lw $ra,0x2c($sp)
.L0001b7f0:
/* 1b7f0: 0c005746 */ jal func00015d18
/* 1b7f4: 02002025 */ or $a0,$s0,$zero
/* 1b7f8: 8fbf002c */ lw $ra,0x2c($sp)
.L0001b7fc:
/* 1b7fc: 8fb00028 */ lw $s0,0x28($sp)
/* 1b800: 27bd0268 */ addiu $sp,$sp,0x268
/* 1b804: 03e00008 */ jr $ra
/* 1b808: 00000000 */ nop
);
sp154 = floorf(anim->frac / anim->speed) * anim->speed;
#endif
} else {
sp154 = anim->frac;
}
if (sp154 != 0.0f) {
func00024050(sp240, anim->flip, type, anim->animnum, anim->unk05, &sp148, &sp13c, &sp130);
func0001b07c(&sp230, &sp148, sp154);
}
if (anim->fracmerge != 0.0f) {
func00024050(sp240, anim->flip2, type, anim->animnum2, anim->unk06, &sp124, &sp118, &sp10c);
if (anim->frac2 != 0.0f) {
func00024050(sp240, anim->flip2, type, anim->animnum2, anim->unk07, &spd0, &spc4, &spb8);
func0001b07c(&sp124, &spd0, anim->frac2);
}
if ((g_Anims[anim->animnum].flags & ANIMFLAG_02) && (g_Anims[anim->animnum2].flags & ANIMFLAG_02) == 0) {
func00016374(rwdata->chrinfo.unk14, &sp78);
func0001648c(&sp124, &sp38);
func00015be0(&sp78, &sp38);
func0f097044(&sp38, &spec);
} else {
func0f096ca0(&sp124, &spec);
}
func0f096ca0(&sp230, &spfc);
func0f0976c0(&spfc, &spec);
func0f0972b8(&spfc, &spec, anim->fracmerge, &spdc);
func0f096ed4(&spdc, &sp1d8);
} else {
func0001648c(&sp230, &sp1d8);
}
if (g_Anims[anim->animnum].flags & ANIMFLAG_02) {
func000166dc(sp254, &sp198);
} else {
if (rwdata->chrinfo.unk18 != 0.0f) {
sp250 = func0001afe8(sp250, rwdata->chrinfo.unk1c, rwdata->chrinfo.unk18);
}
func00016248(sp254, sp250, &sp198);
}
func00015be4(&sp198, &sp1d8, &sp158);
if (scale != 1.0f) {
func00015f4c(scale, &sp158);
}
if (sp24c) {
func00015be4(sp24c, &sp158, mtx);
} else {
func00015d18(&sp158, mtx);
}
}
GLOBAL_ASM(
glabel func0001b80c