diff --git a/src/game/bondbike.c b/src/game/bondbike.c index abb5105f4..9d141c6c4 100644 --- a/src/game/bondbike.c +++ b/src/game/bondbike.c @@ -1700,7 +1700,7 @@ void bbikeTick(void) func0f097044(&sp124, spc4); func0f0976c0(spc4, spd4); func0f0972b8(spd4, spc4, 0.8f, spb4); - func0f096ed4(spb4, &sp124); + quaternionToMtx(spb4, &sp124); mtx4MultMtx4InPlace(&sp124, &sp164); if (g_Vars.currentplayer->bondvehiclemode == VEHICLEMODE_OFF) { @@ -1731,7 +1731,7 @@ void bbikeTick(void) func0f097044(&sp164, sp94); func0f0976c0(sp94, spa4); func0f0972b8(spa4, sp94, 1.0f - g_Vars.currentplayer->bondentert2, sp84); - func0f096ed4(sp84, &sp164); + quaternionToMtx(sp84, &sp164); } g_Vars.currentplayer->bond2.unk1c.x = sp164.m[2][0]; diff --git a/src/game/bondgun.c b/src/game/bondgun.c index a48de2922..ab993b53b 100644 --- a/src/game/bondgun.c +++ b/src/game/bondgun.c @@ -11380,7 +11380,7 @@ glabel var7f1ac72c /* f09f4f4: 0fc25cae */ jal func0f0972b8 /* f09f4f8: 27a70048 */ addiu $a3,$sp,0x48 /* f09f4fc: 27a40048 */ addiu $a0,$sp,0x48 -/* f09f500: 0fc25bb5 */ jal func0f096ed4 +/* f09f500: 0fc25bb5 */ jal quaternionToMtx /* f09f504: 27a50078 */ addiu $a1,$sp,0x78 /* f09f508: c7b20098 */ lwc1 $f18,0x98($sp) /* f09f50c: c7aa009c */ lwc1 $f10,0x9c($sp) @@ -11896,7 +11896,7 @@ glabel var7f1ac72c /* f09f4f4: 0fc25cae */ jal func0f0972b8 /* f09f4f8: 27a70048 */ addiu $a3,$sp,0x48 /* f09f4fc: 27a40048 */ addiu $a0,$sp,0x48 -/* f09f500: 0fc25bb5 */ jal func0f096ed4 +/* f09f500: 0fc25bb5 */ jal quaternionToMtx /* f09f504: 27a50078 */ addiu $a1,$sp,0x78 /* f09f508: c7b20098 */ lwc1 $f18,0x98($sp) /* f09f50c: c7aa009c */ lwc1 $f10,0x9c($sp) @@ -12422,7 +12422,7 @@ glabel var7f1ac740 /* f0a00b4: 0fc25c76 */ jal func0f0972b8 /* f0a00b8: 27a700c4 */ addiu $a3,$sp,0xc4 /* f0a00bc: 27a400c4 */ addiu $a0,$sp,0xc4 -/* f0a00c0: 0fc25b7d */ jal func0f096ed4 +/* f0a00c0: 0fc25b7d */ jal quaternionToMtx /* f0a00c4: 27a500f4 */ addiu $a1,$sp,0xf4 /* f0a00c8: c7aa0114 */ lwc1 $f10,0x114($sp) /* f0a00cc: c7b00118 */ lwc1 $f16,0x118($sp) @@ -13057,7 +13057,7 @@ glabel var7f1ac740 /* f09fdb0: 0fc25cae */ jal func0f0972b8 /* f09fdb4: 27a700c4 */ addiu $a3,$sp,0xc4 /* f09fdb8: 27a400c4 */ addiu $a0,$sp,0xc4 -/* f09fdbc: 0fc25bb5 */ jal func0f096ed4 +/* f09fdbc: 0fc25bb5 */ jal quaternionToMtx /* f09fdc0: 27a500f4 */ addiu $a1,$sp,0xf4 /* f09fdc4: c7aa0114 */ lwc1 $f10,0x114($sp) /* f09fdc8: c7b00118 */ lwc1 $f16,0x118($sp) @@ -13683,7 +13683,7 @@ glabel var7f1ac740 /* f09dc24: 0fc25492 */ jal func0f0972b8 /* f09dc28: 27a700c4 */ addiu $a3,$sp,0xc4 /* f09dc2c: 27a400c4 */ addiu $a0,$sp,0xc4 -/* f09dc30: 0fc25399 */ jal func0f096ed4 +/* f09dc30: 0fc25399 */ jal quaternionToMtx /* f09dc34: 27a500f4 */ addiu $a1,$sp,0xf4 /* f09dc38: c7aa0114 */ lwc1 $f10,0x114($sp) /* f09dc3c: c7b00118 */ lwc1 $f16,0x118($sp) diff --git a/src/game/bondmove.c b/src/game/bondmove.c index 26bd2f604..52d461cff 100644 --- a/src/game/bondmove.c +++ b/src/game/bondmove.c @@ -2108,7 +2108,7 @@ void bmoveUpdateHead(f32 arg0, f32 arg1, f32 arg2, Mtxf *arg3, f32 arg4) func0f097044(arg3, sp84); func0f0976c0(sp100, sp84); func0f0972b8(sp100, sp84, arg4, sp68); - func0f096ed4(sp68, &sp180); + quaternionToMtx(sp68, &sp180); } g_Vars.currentplayer->bond2.unk1c.x = sp180.m[2][0]; diff --git a/src/game/game_096ca0.c b/src/game/game_096ca0.c index b74212ff7..60d3229e9 100644 --- a/src/game/game_096ca0.c +++ b/src/game/game_096ca0.c @@ -63,101 +63,44 @@ void quaternionSetRotationAroundZ(f32 angle, f32 quat[4]) quat[3] = sinf(angle * 0.5f); } -GLOBAL_ASM( -glabel func0f096ed4 -/* f096ed4: 27bdffb8 */ addiu $sp,$sp,-72 -/* f096ed8: f7b40008 */ sdc1 $f20,0x8($sp) -/* f096edc: c4940000 */ lwc1 $f20,0x0($a0) -/* f096ee0: c4800004 */ lwc1 $f0,0x4($a0) -/* f096ee4: c4820008 */ lwc1 $f2,0x8($a0) -/* f096ee8: 4614a102 */ mul.s $f4,$f20,$f20 -/* f096eec: c48c000c */ lwc1 $f12,0xc($a0) -/* f096ef0: 3c014000 */ lui $at,0x4000 -/* f096ef4: 46000182 */ mul.s $f6,$f0,$f0 -/* f096ef8: 46062200 */ add.s $f8,$f4,$f6 -/* f096efc: 46021282 */ mul.s $f10,$f2,$f2 -/* f096f00: 460a4100 */ add.s $f4,$f8,$f10 -/* f096f04: 460c6182 */ mul.s $f6,$f12,$f12 -/* f096f08: 44815000 */ mtc1 $at,$f10 -/* f096f0c: 3c013f80 */ lui $at,0x3f80 -/* f096f10: 46043200 */ add.s $f8,$f6,$f4 -/* f096f14: 46085183 */ div.s $f6,$f10,$f8 -/* f096f18: 46060482 */ mul.s $f18,$f0,$f6 -/* f096f1c: e7a60044 */ swc1 $f6,0x44($sp) -/* f096f20: 46061402 */ mul.s $f16,$f2,$f6 -/* f096f24: 00000000 */ nop -/* f096f28: 46066382 */ mul.s $f14,$f12,$f6 -/* f096f2c: 00000000 */ nop -/* f096f30: 4612a102 */ mul.s $f4,$f20,$f18 -/* f096f34: 00000000 */ nop -/* f096f38: 4610a282 */ mul.s $f10,$f20,$f16 -/* f096f3c: 00000000 */ nop -/* f096f40: 460ea202 */ mul.s $f8,$f20,$f14 -/* f096f44: e7a40034 */ swc1 $f4,0x34($sp) -/* f096f48: 46120182 */ mul.s $f6,$f0,$f18 -/* f096f4c: e7aa0030 */ swc1 $f10,0x30($sp) -/* f096f50: 46100102 */ mul.s $f4,$f0,$f16 -/* f096f54: e7a8002c */ swc1 $f8,0x2c($sp) -/* f096f58: 460e0282 */ mul.s $f10,$f0,$f14 -/* f096f5c: e7a60028 */ swc1 $f6,0x28($sp) -/* f096f60: 44800000 */ mtc1 $zero,$f0 -/* f096f64: 46101202 */ mul.s $f8,$f2,$f16 -/* f096f68: e7a40024 */ swc1 $f4,0x24($sp) -/* f096f6c: 44818000 */ mtc1 $at,$f16 -/* f096f70: 460e1182 */ mul.s $f6,$f2,$f14 -/* f096f74: e7aa0020 */ swc1 $f10,0x20($sp) -/* f096f78: 460e6102 */ mul.s $f4,$f12,$f14 -/* f096f7c: e7a8001c */ swc1 $f8,0x1c($sp) -/* f096f80: c7aa001c */ lwc1 $f10,0x1c($sp) -/* f096f84: e7a60018 */ swc1 $f6,0x18($sp) -/* f096f88: e7a40014 */ swc1 $f4,0x14($sp) -/* f096f8c: c7a80014 */ lwc1 $f8,0x14($sp) -/* f096f90: 44812000 */ mtc1 $at,$f4 -/* f096f94: 46085180 */ add.s $f6,$f10,$f8 -/* f096f98: 46062281 */ sub.s $f10,$f4,$f6 -/* f096f9c: e4aa0000 */ swc1 $f10,0x0($a1) -/* f096fa0: c7a4002c */ lwc1 $f4,0x2c($sp) -/* f096fa4: c7a80024 */ lwc1 $f8,0x24($sp) -/* f096fa8: 46044180 */ add.s $f6,$f8,$f4 -/* f096fac: e4a60004 */ swc1 $f6,0x4($a1) -/* f096fb0: c7a80030 */ lwc1 $f8,0x30($sp) -/* f096fb4: c7aa0020 */ lwc1 $f10,0x20($sp) -/* f096fb8: 46085101 */ sub.s $f4,$f10,$f8 -/* f096fbc: e4a40008 */ swc1 $f4,0x8($a1) -/* f096fc0: c7aa002c */ lwc1 $f10,0x2c($sp) -/* f096fc4: c7a60024 */ lwc1 $f6,0x24($sp) -/* f096fc8: c7ae0018 */ lwc1 $f14,0x18($sp) -/* f096fcc: c7ac0028 */ lwc1 $f12,0x28($sp) -/* f096fd0: 460a3201 */ sub.s $f8,$f6,$f10 -/* f096fd4: c7a20034 */ lwc1 $f2,0x34($sp) -/* f096fd8: e4a80010 */ swc1 $f8,0x10($a1) -/* f096fdc: c7a40014 */ lwc1 $f4,0x14($sp) -/* f096fe0: 46027200 */ add.s $f8,$f14,$f2 -/* f096fe4: 46046180 */ add.s $f6,$f12,$f4 -/* f096fe8: e4a80018 */ swc1 $f8,0x18($a1) -/* f096fec: 46027201 */ sub.s $f8,$f14,$f2 -/* f096ff0: 46068281 */ sub.s $f10,$f16,$f6 -/* f096ff4: e4aa0014 */ swc1 $f10,0x14($a1) -/* f096ff8: c7a60030 */ lwc1 $f6,0x30($sp) -/* f096ffc: c7a40020 */ lwc1 $f4,0x20($sp) -/* f097000: e4a80024 */ swc1 $f8,0x24($a1) -/* f097004: 46062280 */ add.s $f10,$f4,$f6 -/* f097008: e4aa0020 */ swc1 $f10,0x20($a1) -/* f09700c: c7a4001c */ lwc1 $f4,0x1c($sp) -/* f097010: e4a00030 */ swc1 $f0,0x30($a1) -/* f097014: e4a00034 */ swc1 $f0,0x34($a1) -/* f097018: 46046180 */ add.s $f6,$f12,$f4 -/* f09701c: e4a00038 */ swc1 $f0,0x38($a1) -/* f097020: e4a0000c */ swc1 $f0,0xc($a1) -/* f097024: e4a0001c */ swc1 $f0,0x1c($a1) -/* f097028: 46068281 */ sub.s $f10,$f16,$f6 -/* f09702c: e4a0002c */ swc1 $f0,0x2c($a1) -/* f097030: e4b0003c */ swc1 $f16,0x3c($a1) -/* f097034: e4aa0028 */ swc1 $f10,0x28($a1) -/* f097038: d7b40008 */ ldc1 $f20,0x8($sp) -/* f09703c: 03e00008 */ jr $ra -/* f097040: 27bd0048 */ addiu $sp,$sp,0x48 -); +void quaternionToMtx(f32 quat[4], Mtxf *mtx) +{ + f32 mult = 2.0f / (quat[0] * quat[0] + quat[1] * quat[1] + quat[2] * quat[2] + quat[3] * quat[3]); + f32 a = quat[1] * mult; + f32 b = quat[2] * mult; + f32 c = quat[3] * mult; + + f32 sp34 = quat[0] * a; + f32 sp30 = quat[0] * b; + f32 sp2c = quat[0] * c; + f32 sp28 = quat[1] * a; + f32 sp24 = quat[1] * b; + f32 sp20 = quat[1] * c; + f32 sp1c = quat[2] * b; + f32 sp18 = quat[2] * c; + f32 sp14 = quat[3] * c; + + mtx->m[0][0] = 1.0f - (sp1c + sp14); + mtx->m[0][1] = sp24 + sp2c; + mtx->m[0][2] = sp20 - sp30; + + mtx->m[1][0] = sp24 - sp2c; + mtx->m[1][1] = 1.0f - (sp28 + sp14); + mtx->m[1][2] = sp18 + sp34; + + mtx->m[2][0] = sp20 + sp30; + mtx->m[2][1] = sp18 - sp34; + mtx->m[2][2] = 1.0f - (sp28 + sp1c); + + mtx->m[3][0] = 0.0f; + mtx->m[3][1] = 0.0f; + mtx->m[3][2] = 0.0f; + + mtx->m[0][3] = 0.0f; + mtx->m[1][3] = 0.0f; + mtx->m[2][3] = 0.0f; + mtx->m[3][3] = 1.0f; +} GLOBAL_ASM( glabel func0f097044 @@ -312,7 +255,7 @@ glabel func0f097264 /* f097274: 00a02025 */ or $a0,$a1,$zero /* f097278: 00c02825 */ or $a1,$a2,$zero /* f09727c: afa70018 */ sw $a3,0x18($sp) -/* f097280: 0fc25bb5 */ jal func0f096ed4 +/* f097280: 0fc25bb5 */ jal quaternionToMtx /* f097284: afa60020 */ sw $a2,0x20($sp) /* f097288: 8fa70018 */ lw $a3,0x18($sp) /* f09728c: 8fa60020 */ lw $a2,0x20($sp) diff --git a/src/game/game_11f000.c b/src/game/game_11f000.c index f2683d79c..dbd858513 100644 --- a/src/game/game_11f000.c +++ b/src/game/game_11f000.c @@ -9894,7 +9894,7 @@ Gfx *func0f126de8(Gfx *gdl) spd0[2] = g_TeleportToUp.f[1] * f20_2; spd0[3] = g_TeleportToUp.f[2] * f20_2; - func0f096ed4(spd0, &mtx); + quaternionToMtx(spd0, &mtx); mtx4RotateVecInPlace(&mtx, &spe0); spe0.x += g_TeleportToPos.x; diff --git a/src/game/menu.c b/src/game/menu.c index ae1a44bc6..6ab8a27e1 100644 --- a/src/game/menu.c +++ b/src/game/menu.c @@ -3885,7 +3885,7 @@ glabel var7f1b3c40pf /* f0f4acc: 0fc25c76 */ jal func0f0972b8 /* f0f4ad0: 27a502ac */ addiu $a1,$sp,0x2ac /* f0f4ad4: 02202025 */ move $a0,$s1 -/* f0f4ad8: 0fc25b7d */ jal func0f096ed4 +/* f0f4ad8: 0fc25b7d */ jal quaternionToMtx /* f0f4adc: 27a50350 */ addiu $a1,$sp,0x350 /* f0f4ae0: 8e0205b0 */ lw $v0,0x5b0($s0) /* f0f4ae4: 00024b00 */ sll $t1,$v0,0xc @@ -5494,7 +5494,7 @@ glabel var7f1b2948 /* f0f4390: 0fc25cae */ jal func0f0972b8 /* f0f4394: 27a502ac */ addiu $a1,$sp,0x2ac /* f0f4398: 02202025 */ or $a0,$s1,$zero -/* f0f439c: 0fc25bb5 */ jal func0f096ed4 +/* f0f439c: 0fc25bb5 */ jal quaternionToMtx /* f0f43a0: 27a50350 */ addiu $a1,$sp,0x350 /* f0f43a4: 8e0205b0 */ lw $v0,0x5b0($s0) /* f0f43a8: 00026b00 */ sll $t5,$v0,0xc @@ -7103,7 +7103,7 @@ glabel var7f1b2948 /* f0f0ed4: 0fc25492 */ jal func0f0972b8 /* f0f0ed8: 27a502d4 */ addiu $a1,$sp,0x2d4 /* f0f0edc: 02002025 */ or $a0,$s0,$zero -/* f0f0ee0: 0fc25399 */ jal func0f096ed4 +/* f0f0ee0: 0fc25399 */ jal quaternionToMtx /* f0f0ee4: 27a50378 */ addiu $a1,$sp,0x378 /* f0f0ee8: 8e2205b0 */ lw $v0,0x5b0($s1) /* f0f0eec: 00026b00 */ sll $t5,$v0,0xc @@ -8288,7 +8288,7 @@ glabel var7f1b2948 // // quaternion0f096ca0(&sp290, &sp2ac); // func0f0972b8(sp2bc, &sp2ac, sp2d0, &sp29c); -// func0f096ed4(&sp29c, &sp350); +// quaternionToMtx(&sp29c, &sp350); // } else { // sp398.x = thing->unk520 = thing->unk548; // sp398.y = thing->unk524 = thing->unk54c; diff --git a/src/game/player.c b/src/game/player.c index c710d497f..eab0f6710 100644 --- a/src/game/player.c +++ b/src/game/player.c @@ -2211,7 +2211,7 @@ void playerTickCutscene(bool arg0) func0f097044(&sp84, sp64); func0f0976c0(sp64, sp74); func0f0972b8(sp74, sp64, sp104, sp54); - func0f096ed4(sp54, &sp11c); + quaternionToMtx(sp54, &sp11c); up.x = sp11c.m[1][0]; up.y = sp11c.m[1][1]; @@ -4095,7 +4095,7 @@ void playerTick(bool arg0) sp15c[3] = 0; func0f097738(sp15c, sp14c, sp13c); - func0f096ed4(sp13c, &sp1fc); + quaternionToMtx(sp13c, &sp1fc); mtx4RotateVecInPlace(&sp1fc, &projectile->speed); projectile->unk0b2 = 0xffff; @@ -4154,7 +4154,7 @@ void playerTick(bool arg0) mtx3ToMtx4(sp2b8, &sp1bc); func0f097044(&sp1bc, sp12c); func0f097738(sp13c, sp12c, sp11c); - func0f096ed4(sp11c, &sp17c); + quaternionToMtx(sp11c, &sp17c); mtx4ToMtx3(&sp17c, sp2b8); rocket->base.realrot[0][0] = sp2b8[0][0] * sp2a8; diff --git a/src/game/propobj.c b/src/game/propobj.c index b7f988ab9..752003304 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -24121,7 +24121,7 @@ glabel var7f1ab6dcpf /* f075404: 27a40260 */ addiu $a0,$sp,0x260 /* f075408: 27a5020c */ addiu $a1,$sp,0x20c /* f07540c: 46080282 */ mul.s $f10,$f0,$f8 -/* f075410: 0fc25b7d */ jal func0f096ed4 +/* f075410: 0fc25b7d */ jal quaternionToMtx /* f075414: e7aa026c */ swc1 $f10,0x26c($sp) /* f075418: e6140018 */ swc1 $f20,0x18($s0) /* f07541c: e6140014 */ swc1 $f20,0x14($s0) @@ -24137,7 +24137,7 @@ glabel var7f1ab6dcpf /* f075444: 0fc25d96 */ jal func0f097738 /* f075448: 27a60250 */ addiu $a2,$sp,0x250 /* f07544c: 27a40250 */ addiu $a0,$sp,0x250 -/* f075450: 0fc25b7d */ jal func0f096ed4 +/* f075450: 0fc25b7d */ jal quaternionToMtx /* f075454: 27a5020c */ addiu $a1,$sp,0x20c /* f075458: c7ae029c */ lwc1 $f14,0x29c($sp) /* f07545c: c7a6020c */ lwc1 $f6,0x20c($sp) @@ -25876,7 +25876,7 @@ glabel var7f1ab6dcpf /* f076d68: 0fc25c76 */ jal func0f0972b8 /* f076d6c: 27a700ec */ addiu $a3,$sp,0xec /* f076d70: 27a400ec */ addiu $a0,$sp,0xec -/* f076d74: 0fc25b7d */ jal func0f096ed4 +/* f076d74: 0fc25b7d */ jal quaternionToMtx /* f076d78: 27a500ac */ addiu $a1,$sp,0xac /* f076d7c: c60c00b8 */ lwc1 $f12,0xb8($s0) /* f076d80: 0c0056ed */ jal mtx00015e24 @@ -27659,7 +27659,7 @@ glabel var7f1aa438 /* f075180: 27a40260 */ addiu $a0,$sp,0x260 /* f075184: 27a5020c */ addiu $a1,$sp,0x20c /* f075188: 46060202 */ mul.s $f8,$f0,$f6 -/* f07518c: 0fc25bb5 */ jal func0f096ed4 +/* f07518c: 0fc25bb5 */ jal quaternionToMtx /* f075190: e7a8026c */ swc1 $f8,0x26c($sp) /* f075194: e6140018 */ swc1 $f20,0x18($s0) /* f075198: e6140014 */ swc1 $f20,0x14($s0) @@ -27675,7 +27675,7 @@ glabel var7f1aa438 /* f0751c0: 0fc25dce */ jal func0f097738 /* f0751c4: 27a60250 */ addiu $a2,$sp,0x250 /* f0751c8: 27a40250 */ addiu $a0,$sp,0x250 -/* f0751cc: 0fc25bb5 */ jal func0f096ed4 +/* f0751cc: 0fc25bb5 */ jal quaternionToMtx /* f0751d0: 27a5020c */ addiu $a1,$sp,0x20c /* f0751d4: c7a2029c */ lwc1 $f2,0x29c($sp) /* f0751d8: c7a4020c */ lwc1 $f4,0x20c($sp) @@ -29414,7 +29414,7 @@ glabel var7f1aa438 /* f076ae4: 0fc25cae */ jal func0f0972b8 /* f076ae8: 27a700ec */ addiu $a3,$sp,0xec /* f076aec: 27a400ec */ addiu $a0,$sp,0xec -/* f076af0: 0fc25bb5 */ jal func0f096ed4 +/* f076af0: 0fc25bb5 */ jal quaternionToMtx /* f076af4: 27a500ac */ addiu $a1,$sp,0xac /* f076af8: c60c00b8 */ lwc1 $f12,0xb8($s0) /* f076afc: 0c005789 */ jal mtx00015e24 @@ -31184,7 +31184,7 @@ glabel var7f1aa438 /* f073efc: 27a40260 */ addiu $a0,$sp,0x260 /* f073f00: 27a5020c */ addiu $a1,$sp,0x20c /* f073f04: 46060202 */ mul.s $f8,$f0,$f6 -/* f073f08: 0fc25399 */ jal func0f096ed4 +/* f073f08: 0fc25399 */ jal quaternionToMtx /* f073f0c: e7a8026c */ swc1 $f8,0x26c($sp) /* f073f10: e6140018 */ swc1 $f20,0x18($s0) /* f073f14: e6140014 */ swc1 $f20,0x14($s0) @@ -31200,7 +31200,7 @@ glabel var7f1aa438 /* f073f3c: 0fc255b2 */ jal func0f097738 /* f073f40: 27a60250 */ addiu $a2,$sp,0x250 /* f073f44: 27a40250 */ addiu $a0,$sp,0x250 -/* f073f48: 0fc25399 */ jal func0f096ed4 +/* f073f48: 0fc25399 */ jal quaternionToMtx /* f073f4c: 27a5020c */ addiu $a1,$sp,0x20c /* f073f50: c7a2029c */ lwc1 $f2,0x29c($sp) /* f073f54: c7a4020c */ lwc1 $f4,0x20c($sp) @@ -32852,7 +32852,7 @@ glabel var7f1aa438 /* f07571c: 0fc25492 */ jal func0f0972b8 /* f075720: 27a700ec */ addiu $a3,$sp,0xec /* f075724: 27a400ec */ addiu $a0,$sp,0xec -/* f075728: 0fc25399 */ jal func0f096ed4 +/* f075728: 0fc25399 */ jal quaternionToMtx /* f07572c: 27a500ac */ addiu $a1,$sp,0xac /* f075730: c60c00b8 */ lwc1 $f12,0xb8($s0) /* f075734: 0c005b45 */ jal mtx00015e24 diff --git a/src/include/game/game_096ca0.h b/src/include/game/game_096ca0.h index 650661af5..d4de8886e 100644 --- a/src/include/game/game_096ca0.h +++ b/src/include/game/game_096ca0.h @@ -5,7 +5,7 @@ #include "types.h" void quaternion0f096ca0(struct coord *arg0, f32 quat[4]); -void func0f096ed4(f32 *arg0, Mtxf *arg1); +void quaternionToMtx(f32 *arg0, Mtxf *arg1); void func0f097044(Mtxf *matrix, f32 arg1[4]); u32 func0f097264(void); void func0f0972b8(f32 arg0[4], f32 arg1[4], f32 arg2, f32 *arg3); diff --git a/src/lib/model.c b/src/lib/model.c index 33034e8ea..7f105c055 100644 --- a/src/lib/model.c +++ b/src/lib/model.c @@ -736,7 +736,7 @@ void model0001b400(struct modelrenderdata *arg0, struct model *model, struct mod quaternion0f096ca0(&sp230, spfc); func0f0976c0(spfc, spec); func0f0972b8(spfc, spec, anim->fracmerge, &spdc); - func0f096ed4(&spdc, &sp1d8); + quaternionToMtx(&spdc, &sp1d8); } else { mtx4LoadRotation(&sp230, &sp1d8); }