diff --git a/src/game/data/data_020df0.c b/src/game/data/data_020df0.c index 249a177e9..6f8b2ef1d 100644 --- a/src/game/data/data_020df0.c +++ b/src/game/data/data_020df0.c @@ -6851,7 +6851,7 @@ u32 var8007f898 = 0x00000000; u32 var8007f89c = 0x00000000; u32 var8007f8a0 = 0x3e19999a; u32 var8007f8a4 = 0x40400000; -u32 var8007f8a8 = 0x41400000; +f32 var8007f8a8 = 12; u32 var8007f8ac = 0x00000008; u32 var8007f8b0 = 0x43340000; u32 var8007f8b4 = 0x40a00000; diff --git a/src/game/splat.c b/src/game/splat.c index 1c26f162e..676088bfa 100644 --- a/src/game/splat.c +++ b/src/game/splat.c @@ -56,7 +56,7 @@ void splatTick(struct prop *prop) if (thudframe != -1.0f && modelGetCurAnimFrame(chr->model) < thudframe) { osSyncPrintf("SPLAT : Not Dead Enough %s%s%f", "", "", modelGetCurAnimFrame(chr->model)); } else if (chr->tickssincesplat > 30 && chr->deaddropsplatsadded < 6) { - chr->deaddropsplatsadded += func0f148f18(1, 1.1f, prop, 0, 0, 0, isskedar, 1, 150, unk350, random() & 8); + chr->deaddropsplatsadded += func0f148f18(1, 1.1f, prop, NULL, 0, 0, isskedar, 1, 150, unk350, random() & 8); } } else { u32 value = chr->bulletstaken * chr->tickssincesplat; @@ -74,7 +74,7 @@ void splatTick(struct prop *prop) } if (addmore) { - chr->woundedsplatsadded += func0f148f18(1, 0.3f, prop, 0, 0, 0, isskedar, 2, 80, unk350, 0); + chr->woundedsplatsadded += func0f148f18(1, 0.3f, prop, NULL, 0, 0, isskedar, 2, 80, unk350, 0); } } @@ -90,7 +90,7 @@ void splatTick(struct prop *prop) chr->tickssincesplat += g_Vars.lvupdate240_60; } -void func0f148e54(struct prop *prop, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) +void func0f148e54(struct prop *prop, struct splat *arg1, struct coord *arg2, struct coord *arg3, s32 arg4, s32 arg5, s32 arg6) { struct chrdata *chr = prop->chr; @@ -107,253 +107,94 @@ void func0f148e54(struct prop *prop, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 } } -const char var7f1b5fd0[] = "splat.c"; -const char var7f1b5fd8[] = "splat.c"; +s32 func0f148f18(s32 qty, f32 arg1, struct prop *prop, struct splat *arg3, struct coord *arg4, struct coord *arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 arg10) +{ + s32 i; + s32 j; + struct splat stacksplat; + struct splat *splat = arg7 == 0 ? arg3 : &stacksplat; + f32 spfc[3]; + f32 spf0[3]; + f32 spe4[3]; + f32 spa4[16]; + s32 numdropped = 0; + f32 dist; + + if (arg7 == 0) { + dist = coordsGetDistance(&splat->unk01c, arg5); + + for (i = 0; i < 3; i++) { + spfc[i] = ((f32 *)&splat->unk028)[i]; + spf0[i] = ((f32 *)&splat->unk00c)[i]; + ((f32 *)&splat->unk01c)[i] = ((f32 *)arg5)[i]; + ((f32 *)&splat->unk000)[i] = ((f32 *)arg4)[i]; + } + } else { + f32 extraheight; + + if (prop->type == PROPTYPE_CHR) { + extraheight = 50; + } else { + extraheight = 0; + } + + dist = 0.7f; + + splat->unk028.x = 0; spfc[0] = 0; + splat->unk028.y = -1; spfc[1] = -1; + splat->unk028.z = 0; spfc[2] = 0; + + splat->unk00c.x = 0; spf0[0] = 0; + splat->unk00c.y = -1; spf0[1] = -1; + splat->unk00c.z = 0; spf0[2] = 0; + + splat->unk01c.x = prop->pos.x; + splat->unk01c.y = prop->pos.y + extraheight; + splat->unk01c.z = prop->pos.z; + + splat->unk000.x = prop->pos.x; + splat->unk000.y = prop->pos.y + extraheight; + splat->unk000.z = prop->pos.z; + } + + for (i = 0; i < qty; i++) { + for (j = 0; j < 3; j++) { + f32 rand = random() * (1.0f / U32_MAX); + spe4[j] = (rand * var8007f8a8 + rand * var8007f8a8 - var8007f8a8) * 0.017453292384744f; + } + + func0001648c(spe4, spa4); + func00015b14(spa4, spfc, &splat->unk028); + func00015b14(spa4, spf0, &splat->unk00c); + func0f177164(&splat->unk028, &splat->unk028, 403, "splat.c"); + func0f177164(&splat->unk00c, &splat->unk00c, 404, "splat.c"); + + if (func0f149274(arg1, prop, splat, dist, arg6, arg7, arg8, arg9, arg10)) { + numdropped++; + } + } + + if (numdropped) { + struct chrdata *chr = prop->chr; + + chr->tickssincesplat = 0; + chr->lastdroppos.x = prop->pos.x; + chr->lastdroppos.y = prop->pos.y; + chr->lastdroppos.z = prop->pos.z; + } + + return numdropped; +} + const char var7f1b5fe0[] = "Splat : Out of range\n"; const char var7f1b5ff8[] = "Splat_ResetChr : Reset One Char : chrdata = %x\n"; GLOBAL_ASM( -glabel func0f148f18 +glabel func0f149274 .late_rodata -glabel var7f1b6028 -.word 0x3f333333 -glabel var7f1b602c -.word 0x3c8efa35 glabel var7f1b6030 .word 0x497423f0 .text -/* f148f18: 27bdfaa8 */ addiu $sp,$sp,-1368 -/* f148f1c: 8fae0574 */ lw $t6,0x574($sp) -/* f148f20: f7ba0048 */ sdc1 $f26,0x48($sp) -/* f148f24: 4485d000 */ mtc1 $a1,$f26 -/* f148f28: afbf0074 */ sw $ra,0x74($sp) -/* f148f2c: afbe0070 */ sw $s8,0x70($sp) -/* f148f30: afb7006c */ sw $s7,0x6c($sp) -/* f148f34: afb60068 */ sw $s6,0x68($sp) -/* f148f38: afb50064 */ sw $s5,0x64($sp) -/* f148f3c: afb40060 */ sw $s4,0x60($sp) -/* f148f40: afb3005c */ sw $s3,0x5c($sp) -/* f148f44: afb20058 */ sw $s2,0x58($sp) -/* f148f48: afb10054 */ sw $s1,0x54($sp) -/* f148f4c: afb00050 */ sw $s0,0x50($sp) -/* f148f50: f7b80040 */ sdc1 $f24,0x40($sp) -/* f148f54: f7b60038 */ sdc1 $f22,0x38($sp) -/* f148f58: f7b40030 */ sdc1 $f20,0x30($sp) -/* f148f5c: 15c00003 */ bnez $t6,.L0f148f6c -/* f148f60: afa40558 */ sw $a0,0x558($sp) -/* f148f64: 10000002 */ b .L0f148f70 -/* f148f68: 00e0b825 */ or $s7,$a3,$zero -.L0f148f6c: -/* f148f6c: 27b7010c */ addiu $s7,$sp,0x10c -.L0f148f70: -/* f148f70: 8faf0574 */ lw $t7,0x574($sp) -/* f148f74: 0000f025 */ or $s8,$zero,$zero -/* f148f78: 8fb0056c */ lw $s0,0x56c($sp) -/* f148f7c: 15e00029 */ bnez $t7,.L0f149024 -/* f148f80: 26e4001c */ addiu $a0,$s7,0x1c -/* f148f84: 02002825 */ or $a1,$s0,$zero -/* f148f88: 0fc5dd18 */ jal coordsGetDistance -/* f148f8c: afa60560 */ sw $a2,0x560($sp) -/* f148f90: 46000606 */ mov.s $f24,$f0 -/* f148f94: 27a400fc */ addiu $a0,$sp,0xfc -/* f148f98: 02e01025 */ or $v0,$s7,$zero -/* f148f9c: 27a300f0 */ addiu $v1,$sp,0xf0 -/* f148fa0: 02002825 */ or $a1,$s0,$zero -/* f148fa4: 8fa60568 */ lw $a2,0x568($sp) -/* f148fa8: 27a700fc */ addiu $a3,$sp,0xfc -/* f148fac: 24630004 */ addiu $v1,$v1,0x4 -/* f148fb0: 1067000f */ beq $v1,$a3,.L0f148ff0 -/* f148fb4: c4560028 */ lwc1 $f22,0x28($v0) -.L0f148fb8: -/* f148fb8: e4960000 */ swc1 $f22,0x0($a0) -/* f148fbc: c454000c */ lwc1 $f20,0xc($v0) -/* f148fc0: 24630004 */ addiu $v1,$v1,0x4 -/* f148fc4: 24840004 */ addiu $a0,$a0,0x4 -/* f148fc8: e474fff8 */ swc1 $f20,-0x8($v1) -/* f148fcc: c4b40000 */ lwc1 $f20,0x0($a1) -/* f148fd0: c456002c */ lwc1 $f22,0x2c($v0) -/* f148fd4: 24420004 */ addiu $v0,$v0,0x4 -/* f148fd8: e4540018 */ swc1 $f20,0x18($v0) -/* f148fdc: c4d40000 */ lwc1 $f20,0x0($a2) -/* f148fe0: 24a50004 */ addiu $a1,$a1,0x4 -/* f148fe4: 24c60004 */ addiu $a2,$a2,0x4 -/* f148fe8: 1467fff3 */ bne $v1,$a3,.L0f148fb8 -/* f148fec: e454fffc */ swc1 $f20,-0x4($v0) -.L0f148ff0: -/* f148ff0: e4960000 */ swc1 $f22,0x0($a0) -/* f148ff4: c454000c */ lwc1 $f20,0xc($v0) -/* f148ff8: 24840004 */ addiu $a0,$a0,0x4 -/* f148ffc: 24420004 */ addiu $v0,$v0,0x4 -/* f149000: e474fffc */ swc1 $f20,-0x4($v1) -/* f149004: c4b40000 */ lwc1 $f20,0x0($a1) -/* f149008: 24a50004 */ addiu $a1,$a1,0x4 -/* f14900c: 24c60004 */ addiu $a2,$a2,0x4 -/* f149010: e4540018 */ swc1 $f20,0x18($v0) -/* f149014: c4d4fffc */ lwc1 $f20,-0x4($a2) -/* f149018: e454fffc */ swc1 $f20,-0x4($v0) -/* f14901c: 1000002c */ b .L0f1490d0 -/* f149020: 8fb90558 */ lw $t9,0x558($sp) -.L0f149024: -/* f149024: 90d80000 */ lbu $t8,0x0($a2) -/* f149028: 24010003 */ addiu $at,$zero,0x3 -/* f14902c: 17010005 */ bne $t8,$at,.L0f149044 -/* f149030: 3c014248 */ lui $at,0x4248 -/* f149034: 44816000 */ mtc1 $at,$f12 -/* f149038: 44800000 */ mtc1 $zero,$f0 -/* f14903c: 10000005 */ b .L0f149054 -/* f149040: 3c01bf80 */ lui $at,0xbf80 -.L0f149044: -/* f149044: 44800000 */ mtc1 $zero,$f0 -/* f149048: 00000000 */ nop -/* f14904c: 46000306 */ mov.s $f12,$f0 -/* f149050: 3c01bf80 */ lui $at,0xbf80 -.L0f149054: -/* f149054: 44811000 */ mtc1 $at,$f2 -/* f149058: 3c017f1b */ lui $at,%hi(var7f1b6028) -/* f14905c: c4386028 */ lwc1 $f24,%lo(var7f1b6028)($at) -/* f149060: e6e00028 */ swc1 $f0,0x28($s7) -/* f149064: e7a000fc */ swc1 $f0,0xfc($sp) -/* f149068: e6e2002c */ swc1 $f2,0x2c($s7) -/* f14906c: e7a20100 */ swc1 $f2,0x100($sp) -/* f149070: e6e00030 */ swc1 $f0,0x30($s7) -/* f149074: e7a00104 */ swc1 $f0,0x104($sp) -/* f149078: e6e0000c */ swc1 $f0,0xc($s7) -/* f14907c: e7a000f0 */ swc1 $f0,0xf0($sp) -/* f149080: e6e20010 */ swc1 $f2,0x10($s7) -/* f149084: e7a200f4 */ swc1 $f2,0xf4($sp) -/* f149088: e6e00014 */ swc1 $f0,0x14($s7) -/* f14908c: e7a000f8 */ swc1 $f0,0xf8($sp) -/* f149090: c4d00008 */ lwc1 $f16,0x8($a2) -/* f149094: e6f0001c */ swc1 $f16,0x1c($s7) -/* f149098: c4d2000c */ lwc1 $f18,0xc($a2) -/* f14909c: 460c9100 */ add.s $f4,$f18,$f12 -/* f1490a0: e6e40020 */ swc1 $f4,0x20($s7) -/* f1490a4: c4c60010 */ lwc1 $f6,0x10($a2) -/* f1490a8: e6e60024 */ swc1 $f6,0x24($s7) -/* f1490ac: c4c80008 */ lwc1 $f8,0x8($a2) -/* f1490b0: e6e80000 */ swc1 $f8,0x0($s7) -/* f1490b4: c4ca000c */ lwc1 $f10,0xc($a2) -/* f1490b8: 460c5400 */ add.s $f16,$f10,$f12 -/* f1490bc: e6f00004 */ swc1 $f16,0x4($s7) -/* f1490c0: c4d20010 */ lwc1 $f18,0x10($a2) -/* f1490c4: e6f20008 */ swc1 $f18,0x8($s7) -/* f1490c8: afa60560 */ sw $a2,0x560($sp) -/* f1490cc: 8fb90558 */ lw $t9,0x558($sp) -.L0f1490d0: -/* f1490d0: 8fa60560 */ lw $a2,0x560($sp) -/* f1490d4: 0000a025 */ or $s4,$zero,$zero -/* f1490d8: 1b20004b */ blez $t9,.L0f149208 -/* f1490dc: 26f50028 */ addiu $s5,$s7,0x28 -/* f1490e0: 3c017f1b */ lui $at,%hi(var7f1b602c) -/* f1490e4: c436602c */ lwc1 $f22,%lo(var7f1b602c)($at) -/* f1490e8: 3c012f80 */ lui $at,0x2f80 -/* f1490ec: 3c118008 */ lui $s1,%hi(var8007f8a8) -/* f1490f0: 4481a000 */ mtc1 $at,$f20 -/* f1490f4: 2631f8a8 */ addiu $s1,$s1,%lo(var8007f8a8) -/* f1490f8: 26f6000c */ addiu $s6,$s7,0xc -/* f1490fc: afa60560 */ sw $a2,0x560($sp) -/* f149100: 27b300a4 */ addiu $s3,$sp,0xa4 -/* f149104: 27b200f0 */ addiu $s2,$sp,0xf0 -/* f149108: 27b000e4 */ addiu $s0,$sp,0xe4 -.L0f14910c: -/* f14910c: 0c004b70 */ jal random -/* f149110: 00000000 */ nop -/* f149114: 44822000 */ mtc1 $v0,$f4 -/* f149118: c6200000 */ lwc1 $f0,0x0($s1) -/* f14911c: 04410005 */ bgez $v0,.L0f149134 -/* f149120: 468021a0 */ cvt.s.w $f6,$f4 -/* f149124: 3c014f80 */ lui $at,0x4f80 -/* f149128: 44814000 */ mtc1 $at,$f8 -/* f14912c: 00000000 */ nop -/* f149130: 46083180 */ add.s $f6,$f6,$f8 -.L0f149134: -/* f149134: 46143282 */ mul.s $f10,$f6,$f20 -/* f149138: 26100004 */ addiu $s0,$s0,0x4 -/* f14913c: 46005082 */ mul.s $f2,$f10,$f0 -/* f149140: 46021400 */ add.s $f16,$f2,$f2 -/* f149144: 46008481 */ sub.s $f18,$f16,$f0 -/* f149148: 46169102 */ mul.s $f4,$f18,$f22 -/* f14914c: 1612ffef */ bne $s0,$s2,.L0f14910c -/* f149150: e604fffc */ swc1 $f4,-0x4($s0) -/* f149154: 27a400e4 */ addiu $a0,$sp,0xe4 -/* f149158: 0c005923 */ jal func0001648c -/* f14915c: 02602825 */ or $a1,$s3,$zero -/* f149160: 02602025 */ or $a0,$s3,$zero -/* f149164: 27a500fc */ addiu $a1,$sp,0xfc -/* f149168: 0c0056c5 */ jal func00015b14 -/* f14916c: 02a03025 */ or $a2,$s5,$zero -/* f149170: 02602025 */ or $a0,$s3,$zero -/* f149174: 27a500f0 */ addiu $a1,$sp,0xf0 -/* f149178: 0c0056c5 */ jal func00015b14 -/* f14917c: 02c03025 */ or $a2,$s6,$zero -/* f149180: 3c077f1b */ lui $a3,%hi(var7f1b5fd0) -/* f149184: 24e75fd0 */ addiu $a3,$a3,%lo(var7f1b5fd0) -/* f149188: 02a02025 */ or $a0,$s5,$zero -/* f14918c: 02a02825 */ or $a1,$s5,$zero -/* f149190: 0fc5dc59 */ jal func0f177164 -/* f149194: 24060193 */ addiu $a2,$zero,0x193 -/* f149198: 3c077f1b */ lui $a3,%hi(var7f1b5fd8) -/* f14919c: 24e75fd8 */ addiu $a3,$a3,%lo(var7f1b5fd8) -/* f1491a0: 02c02025 */ or $a0,$s6,$zero -/* f1491a4: 02c02825 */ or $a1,$s6,$zero -/* f1491a8: 0fc5dc59 */ jal func0f177164 -/* f1491ac: 24060194 */ addiu $a2,$zero,0x194 -/* f1491b0: 8fa80570 */ lw $t0,0x570($sp) -/* f1491b4: 8fa90574 */ lw $t1,0x574($sp) -/* f1491b8: 8faa0578 */ lw $t2,0x578($sp) -/* f1491bc: 8fab057c */ lw $t3,0x57c($sp) -/* f1491c0: 8fac0580 */ lw $t4,0x580($sp) -/* f1491c4: 4407c000 */ mfc1 $a3,$f24 -/* f1491c8: 4600d306 */ mov.s $f12,$f26 -/* f1491cc: 8fa50560 */ lw $a1,0x560($sp) -/* f1491d0: 02e03025 */ or $a2,$s7,$zero -/* f1491d4: afa80010 */ sw $t0,0x10($sp) -/* f1491d8: afa90014 */ sw $t1,0x14($sp) -/* f1491dc: afaa0018 */ sw $t2,0x18($sp) -/* f1491e0: afab001c */ sw $t3,0x1c($sp) -/* f1491e4: 0fc5249d */ jal func0f149274 -/* f1491e8: afac0020 */ sw $t4,0x20($sp) -/* f1491ec: 10400002 */ beqz $v0,.L0f1491f8 -/* f1491f0: 8fad0558 */ lw $t5,0x558($sp) -/* f1491f4: 27de0001 */ addiu $s8,$s8,0x1 -.L0f1491f8: -/* f1491f8: 26940001 */ addiu $s4,$s4,0x1 -/* f1491fc: 568dffc3 */ bnel $s4,$t5,.L0f14910c -/* f149200: 27b000e4 */ addiu $s0,$sp,0xe4 -/* f149204: 8fa60560 */ lw $a2,0x560($sp) -.L0f149208: -/* f149208: 53c0000a */ beqzl $s8,.L0f149234 -/* f14920c: 8fbf0074 */ lw $ra,0x74($sp) -/* f149210: 8cc20004 */ lw $v0,0x4($a2) -/* f149214: a4400336 */ sh $zero,0x336($v0) -/* f149218: c4c80008 */ lwc1 $f8,0x8($a2) -/* f14921c: e448033c */ swc1 $f8,0x33c($v0) -/* f149220: c4c6000c */ lwc1 $f6,0xc($a2) -/* f149224: e4460340 */ swc1 $f6,0x340($v0) -/* f149228: c4ca0010 */ lwc1 $f10,0x10($a2) -/* f14922c: e44a0344 */ swc1 $f10,0x344($v0) -/* f149230: 8fbf0074 */ lw $ra,0x74($sp) -.L0f149234: -/* f149234: 03c01025 */ or $v0,$s8,$zero -/* f149238: 8fbe0070 */ lw $s8,0x70($sp) -/* f14923c: d7b40030 */ ldc1 $f20,0x30($sp) -/* f149240: d7b60038 */ ldc1 $f22,0x38($sp) -/* f149244: d7b80040 */ ldc1 $f24,0x40($sp) -/* f149248: d7ba0048 */ ldc1 $f26,0x48($sp) -/* f14924c: 8fb00050 */ lw $s0,0x50($sp) -/* f149250: 8fb10054 */ lw $s1,0x54($sp) -/* f149254: 8fb20058 */ lw $s2,0x58($sp) -/* f149258: 8fb3005c */ lw $s3,0x5c($sp) -/* f14925c: 8fb40060 */ lw $s4,0x60($sp) -/* f149260: 8fb50064 */ lw $s5,0x64($sp) -/* f149264: 8fb60068 */ lw $s6,0x68($sp) -/* f149268: 8fb7006c */ lw $s7,0x6c($sp) -/* f14926c: 03e00008 */ jr $ra -/* f149270: 27bd0558 */ addiu $sp,$sp,0x558 -); - -GLOBAL_ASM( -glabel func0f149274 /* f149274: 27bdfa18 */ addiu $sp,$sp,-1512 /* f149278: afbf001c */ sw $ra,0x1c($sp) /* f14927c: e7ac05e8 */ swc1 $f12,0x5e8($sp) diff --git a/src/include/game/data/data_020df0.h b/src/include/game/data/data_020df0.h index 23e0fb93b..c44d5bae6 100644 --- a/src/include/game/data/data_020df0.h +++ b/src/include/game/data/data_020df0.h @@ -193,7 +193,7 @@ extern u32 var8007f870; extern u32 var8007f874; extern u32 var8007f878; extern u32 var8007f87c; -extern u32 var8007f8a8; +extern f32 var8007f8a8; extern u32 var8007f8dc; extern u32 var8007f8e8; extern u32 var8007f8ec; diff --git a/src/include/game/splat.h b/src/include/game/splat.h index 64610a06d..854888ba4 100644 --- a/src/include/game/splat.h +++ b/src/include/game/splat.h @@ -4,9 +4,9 @@ #include "types.h" void splatTick(struct prop *prop); -void func0f148e54(struct prop *prop, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6); -s32 func0f148f18(s32 arg0, f32 arg1, struct prop *prop, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 arg10); -u32 func0f149274(void); +void func0f148e54(struct prop *prop, struct splat *arg1, struct coord *arg2, struct coord *arg3, s32 arg4, s32 arg5, s32 arg6); +s32 func0f148f18(s32 qty, f32 arg1, struct prop *prop, struct splat *arg3, struct coord *arg4, struct coord *arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 arg10); +bool func0f149274(f32 arg0, struct prop *prop, struct splat *arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8); void func0f149864(void); u32 func0f14986c(void); void chrInitSplats(struct chrdata *chr); diff --git a/src/include/lib/lib_159b0.h b/src/include/lib/lib_159b0.h index 2b108086c..eb2c11a70 100644 --- a/src/include/lib/lib_159b0.h +++ b/src/include/lib/lib_159b0.h @@ -7,7 +7,7 @@ void func000159b0(f32 *matrix); void func000159fc(f32 *matrix, f32 *arg1); void func00015a00(f32 *matrix, f32 *arg1, f32 *arg2); void func00015b10(f32 *matrix, struct coord *coord); -void func00015b14(f32 *matrix, struct coord *coord, s32 arg2); +void func00015b14(f32 *matrix, f32 *coord, struct coord *arg2); void func00015b64(f32 *arg0, struct coord *coord); void func00015b68(f32 *matrix, f32 *arg1, struct coord *arg2); void func00015be0(f32 *matrix1, f32 *matrix2); diff --git a/src/include/lib/lib_16110.h b/src/include/lib/lib_16110.h index d2adef946..6711a0888 100644 --- a/src/include/lib/lib_16110.h +++ b/src/include/lib/lib_16110.h @@ -12,7 +12,7 @@ u32 func00016248(void); void func000162e8(f32 arg0, f32 *matrix); void func00016374(f32 arg0, f32 *matrix); void func00016400(f32 arg0, f32 *matrix); -u32 func0001648c(void); +void func0001648c(f32 *matrix, f32 *arg1); u32 func000165d8(void); u32 func000166a4(void); u32 func000166dc(void); diff --git a/src/include/types.h b/src/include/types.h index 3bc3b3278..12d7eba30 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -6403,4 +6403,272 @@ struct var800ab718 { u32 unk10; }; +struct splat { + /*0x000*/ struct coord unk000; + /*0x00c*/ struct coord unk00c; + /*0x018*/ u32 unk018; + /*0x01c*/ struct coord unk01c; + /*0x028*/ struct coord unk028; + /*0x034*/ u32 unk034; + /*0x038*/ u32 unk038; + /*0x03c*/ u32 unk03c; + /*0x040*/ u32 unk040; + /*0x044*/ u32 unk044; + /*0x048*/ u32 unk048; + /*0x04c*/ u32 unk04c; + /*0x050*/ u32 unk050; + /*0x054*/ u32 unk054; + /*0x058*/ u32 unk058; + /*0x05c*/ u32 unk05c; + /*0x060*/ u32 unk060; + /*0x064*/ u32 unk064; + /*0x068*/ u32 unk068; + /*0x06c*/ u32 unk06c; + /*0x070*/ u32 unk070; + /*0x074*/ u32 unk074; + /*0x078*/ u32 unk078; + /*0x07c*/ u32 unk07c; + /*0x080*/ u32 unk080; + /*0x084*/ u32 unk084; + /*0x088*/ u32 unk088; + /*0x08c*/ u32 unk08c; + /*0x090*/ u32 unk090; + /*0x094*/ u32 unk094; + /*0x098*/ u32 unk098; + /*0x09c*/ u32 unk09c; + /*0x0a0*/ u32 unk0a0; + /*0x0a4*/ u32 unk0a4; + /*0x0a8*/ u32 unk0a8; + /*0x0ac*/ u32 unk0ac; + /*0x0b0*/ u32 unk0b0; + /*0x0b4*/ u32 unk0b4; + /*0x0b8*/ u32 unk0b8; + /*0x0bc*/ u32 unk0bc; + /*0x0c0*/ u32 unk0c0; + /*0x0c4*/ u32 unk0c4; + /*0x0c8*/ u32 unk0c8; + /*0x0cc*/ u32 unk0cc; + /*0x0d0*/ u32 unk0d0; + /*0x0d4*/ u32 unk0d4; + /*0x0d8*/ u32 unk0d8; + /*0x0dc*/ u32 unk0dc; + /*0x0e0*/ u32 unk0e0; + /*0x0e4*/ u32 unk0e4; + /*0x0e8*/ u32 unk0e8; + /*0x0ec*/ u32 unk0ec; + /*0x0f0*/ u32 unk0f0; + /*0x0f4*/ u32 unk0f4; + /*0x0f8*/ u32 unk0f8; + /*0x0fc*/ u32 unk0fc; + /*0x100*/ u32 unk100; + /*0x104*/ u32 unk104; + /*0x108*/ u32 unk108; + /*0x10c*/ u32 unk10c; + /*0x110*/ u32 unk110; + /*0x114*/ u32 unk114; + /*0x118*/ u32 unk118; + /*0x11c*/ u32 unk11c; + /*0x120*/ u32 unk120; + /*0x124*/ u32 unk124; + /*0x128*/ u32 unk128; + /*0x12c*/ u32 unk12c; + /*0x130*/ u32 unk130; + /*0x134*/ u32 unk134; + /*0x138*/ u32 unk138; + /*0x13c*/ u32 unk13c; + /*0x140*/ u32 unk140; + /*0x144*/ u32 unk144; + /*0x148*/ u32 unk148; + /*0x14c*/ u32 unk14c; + /*0x150*/ u32 unk150; + /*0x154*/ u32 unk154; + /*0x158*/ u32 unk158; + /*0x15c*/ u32 unk15c; + /*0x160*/ u32 unk160; + /*0x164*/ u32 unk164; + /*0x168*/ u32 unk168; + /*0x16c*/ u32 unk16c; + /*0x170*/ u32 unk170; + /*0x174*/ u32 unk174; + /*0x178*/ u32 unk178; + /*0x17c*/ u32 unk17c; + /*0x180*/ u32 unk180; + /*0x184*/ u32 unk184; + /*0x188*/ u32 unk188; + /*0x18c*/ u32 unk18c; + /*0x190*/ u32 unk190; + /*0x194*/ u32 unk194; + /*0x198*/ u32 unk198; + /*0x19c*/ u32 unk19c; + /*0x1a0*/ u32 unk1a0; + /*0x1a4*/ u32 unk1a4; + /*0x1a8*/ u32 unk1a8; + /*0x1ac*/ u32 unk1ac; + /*0x1b0*/ u32 unk1b0; + /*0x1b4*/ u32 unk1b4; + /*0x1b8*/ u32 unk1b8; + /*0x1bc*/ u32 unk1bc; + /*0x1c0*/ u32 unk1c0; + /*0x1c4*/ u32 unk1c4; + /*0x1c8*/ u32 unk1c8; + /*0x1cc*/ u32 unk1cc; + /*0x1d0*/ u32 unk1d0; + /*0x1d4*/ u32 unk1d4; + /*0x1d8*/ u32 unk1d8; + /*0x1dc*/ u32 unk1dc; + /*0x1e0*/ u32 unk1e0; + /*0x1e4*/ u32 unk1e4; + /*0x1e8*/ u32 unk1e8; + /*0x1ec*/ u32 unk1ec; + /*0x1f0*/ u32 unk1f0; + /*0x1f4*/ u32 unk1f4; + /*0x1f8*/ u32 unk1f8; + /*0x1fc*/ u32 unk1fc; + /*0x200*/ u32 unk200; + /*0x204*/ u32 unk204; + /*0x208*/ u32 unk208; + /*0x20c*/ u32 unk20c; + /*0x210*/ u32 unk210; + /*0x214*/ u32 unk214; + /*0x218*/ u32 unk218; + /*0x21c*/ u32 unk21c; + /*0x220*/ u32 unk220; + /*0x224*/ u32 unk224; + /*0x228*/ u32 unk228; + /*0x22c*/ u32 unk22c; + /*0x230*/ u32 unk230; + /*0x234*/ u32 unk234; + /*0x238*/ u32 unk238; + /*0x23c*/ u32 unk23c; + /*0x240*/ u32 unk240; + /*0x244*/ u32 unk244; + /*0x248*/ u32 unk248; + /*0x24c*/ u32 unk24c; + /*0x250*/ u32 unk250; + /*0x254*/ u32 unk254; + /*0x258*/ u32 unk258; + /*0x25c*/ u32 unk25c; + /*0x260*/ u32 unk260; + /*0x264*/ u32 unk264; + /*0x268*/ u32 unk268; + /*0x26c*/ u32 unk26c; + /*0x270*/ u32 unk270; + /*0x274*/ u32 unk274; + /*0x278*/ u32 unk278; + /*0x27c*/ u32 unk27c; + /*0x280*/ u32 unk280; + /*0x284*/ u32 unk284; + /*0x288*/ u32 unk288; + /*0x28c*/ u32 unk28c; + /*0x290*/ u32 unk290; + /*0x294*/ u32 unk294; + /*0x298*/ u32 unk298; + /*0x29c*/ u32 unk29c; + /*0x2a0*/ u32 unk2a0; + /*0x2a4*/ u32 unk2a4; + /*0x2a8*/ u32 unk2a8; + /*0x2ac*/ u32 unk2ac; + /*0x2b0*/ u32 unk2b0; + /*0x2b4*/ u32 unk2b4; + /*0x2b8*/ u32 unk2b8; + /*0x2bc*/ u32 unk2bc; + /*0x2c0*/ u32 unk2c0; + /*0x2c4*/ u32 unk2c4; + /*0x2c8*/ u32 unk2c8; + /*0x2cc*/ u32 unk2cc; + /*0x2d0*/ u32 unk2d0; + /*0x2d4*/ u32 unk2d4; + /*0x2d8*/ u32 unk2d8; + /*0x2dc*/ u32 unk2dc; + /*0x2e0*/ u32 unk2e0; + /*0x2e4*/ u32 unk2e4; + /*0x2e8*/ u32 unk2e8; + /*0x2ec*/ u32 unk2ec; + /*0x2f0*/ u32 unk2f0; + /*0x2f4*/ u32 unk2f4; + /*0x2f8*/ u32 unk2f8; + /*0x2fc*/ u32 unk2fc; + /*0x300*/ u32 unk300; + /*0x304*/ u32 unk304; + /*0x308*/ u32 unk308; + /*0x30c*/ u32 unk30c; + /*0x310*/ u32 unk310; + /*0x314*/ u32 unk314; + /*0x318*/ u32 unk318; + /*0x31c*/ u32 unk31c; + /*0x320*/ u32 unk320; + /*0x324*/ u32 unk324; + /*0x328*/ u32 unk328; + /*0x32c*/ u32 unk32c; + /*0x330*/ u32 unk330; + /*0x334*/ u32 unk334; + /*0x338*/ u32 unk338; + /*0x33c*/ u32 unk33c; + /*0x340*/ u32 unk340; + /*0x344*/ u32 unk344; + /*0x348*/ u32 unk348; + /*0x34c*/ u32 unk34c; + /*0x350*/ u32 unk350; + /*0x354*/ u32 unk354; + /*0x358*/ u32 unk358; + /*0x35c*/ u32 unk35c; + /*0x360*/ u32 unk360; + /*0x364*/ u32 unk364; + /*0x368*/ u32 unk368; + /*0x36c*/ u32 unk36c; + /*0x370*/ u32 unk370; + /*0x374*/ u32 unk374; + /*0x378*/ u32 unk378; + /*0x37c*/ u32 unk37c; + /*0x380*/ u32 unk380; + /*0x384*/ u32 unk384; + /*0x388*/ u32 unk388; + /*0x38c*/ u32 unk38c; + /*0x390*/ u32 unk390; + /*0x394*/ u32 unk394; + /*0x398*/ u32 unk398; + /*0x39c*/ u32 unk39c; + /*0x3a0*/ u32 unk3a0; + /*0x3a4*/ u32 unk3a4; + /*0x3a8*/ u32 unk3a8; + /*0x3ac*/ u32 unk3ac; + /*0x3b0*/ u32 unk3b0; + /*0x3b4*/ u32 unk3b4; + /*0x3b8*/ u32 unk3b8; + /*0x3bc*/ u32 unk3bc; + /*0x3c0*/ u32 unk3c0; + /*0x3c4*/ u32 unk3c4; + /*0x3c8*/ u32 unk3c8; + /*0x3cc*/ u32 unk3cc; + /*0x3d0*/ u32 unk3d0; + /*0x3d4*/ u32 unk3d4; + /*0x3d8*/ u32 unk3d8; + /*0x3dc*/ u32 unk3dc; + /*0x3e0*/ u32 unk3e0; + /*0x3e4*/ u32 unk3e4; + /*0x3e8*/ u32 unk3e8; + /*0x3ec*/ u32 unk3ec; + /*0x3f0*/ u32 unk3f0; + /*0x3f4*/ u32 unk3f4; + /*0x3f8*/ u32 unk3f8; + /*0x3fc*/ u32 unk3fc; + /*0x400*/ u32 unk400; + /*0x404*/ u32 unk404; + /*0x408*/ u32 unk408; + /*0x40c*/ u32 unk40c; + /*0x410*/ u32 unk410; + /*0x414*/ u32 unk414; + /*0x418*/ u32 unk418; + /*0x41c*/ u32 unk41c; + /*0x420*/ u32 unk420; + /*0x424*/ u32 unk424; + /*0x428*/ u32 unk428; + /*0x42c*/ u32 unk42c; + /*0x430*/ u32 unk430; + /*0x434*/ u32 unk434; + /*0x438*/ u32 unk438; + /*0x43c*/ u32 unk43c; + /*0x440*/ u32 unk440; +}; + #endif