From eeab33814dcca8165eabc9db16d03bfc65cce8bb Mon Sep 17 00:00:00 2001 From: Tyler McGavran Date: Tue, 29 Nov 2022 20:03:40 -0500 Subject: Yet more assorted matches (#278) * Yet more assorted matches Signed-off-by: Taggerung --- src/camera.c | 224 +++++++++++++++++++++++++++-------------------------------- 1 file changed, 104 insertions(+), 120 deletions(-) (limited to 'src/camera.c') diff --git a/src/camera.c b/src/camera.c index 9818fbdeb..7ea44085c 100644 --- a/src/camera.c +++ b/src/camera.c @@ -487,21 +487,18 @@ void func_8001CCEC(Player *player, Camera *camera, f32 *arg2, f32 *arg3, f32 *ar GLOBAL_ASM("asm/non_matchings/camera/func_8001CCEC.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 0927f17aac197848d4ebdf0c6bbad74b01f0851c -extern ? D_80164A90; -extern ? D_80164AA0; - -void func_8001D53C(Player *player, Camera *camera, f32 *arg2, f32 *arg3, f32 *arg4, f32 *arg5, s16 arg6, s16 arg7) { - f32 sp70; - f32 sp6C; - f32 sp68; - f32 sp64; - f32 sp60; - f32 sp5C; - f32 sp3C; - s32 sp38; - f32 var_f0; +void func_8001D53C(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *arg4, f32 *arg5, s16 arg6, s16 arg7) { + Mat3 sp74; + Vec3f sp68; + Vec3f sp5C; + f32 stackPadding0; + f32 stackPadding1; + f32 stackPadding2; + f32 stackPadding3; + f32 stackPadding4; + f32 stackPadding5; + f32 stackPadding6; + f32 thing; if (((u16) player->unk_222 == 0) && (camera->unk_A0 == 0.0f)) { camera->unk_A0 = 0.0f; @@ -511,36 +508,37 @@ void func_8001D53C(Player *player, Camera *camera, f32 *arg2, f32 *arg3, f32 *ar } else { move_f32_towards(&camera->unk_A0, 0.0f, 0.06f); } - sp3C = D_801652A0[arg7]; - sp68 = camera->unk_30[0]; - sp6C = camera->unk_30[1]; - sp70 = camera->unk_30[2]; - sp5C = camera->unk_3C[0]; - sp60 = camera->unk_3C[1] + camera->unk_A0; - sp64 = camera->unk_3C[2]; - arg2->unk0 = camera->lookAt[0]; - arg2->unk4 = (f32) camera->lookAt[1]; - arg2->unk8 = (f32) camera->lookAt[2]; - sp38 = arg7 * 4; - func_802B6540((f32 (*)[3]) &sp74[0], 0.0f, 1.0f, 0.0f, (s16) (s32) arg6); - func_802B63B8(&sp5C, (f32 (*)[3]) &sp74[0]); - arg2->unk0 += ((sp5C + player->pos[0]) - camera->lookAt[0]) * 1.0f; - arg2->unk8 = (f32) (arg2->unk8 + (((sp64 + player->pos[2]) - camera->lookAt[2]) * 1.0f)); - arg2->unk4 = (f32) (arg2->unk4 + (((sp60 + player->pos[1]) - camera->lookAt[1]) * 1.0f)); - func_802B63B8(&sp68, (f32 (*)[3]) &sp74[0]); - var_f0 = (f32) ((f64) sp6C + ((f64) player->unk_074 + 1.5)); + thing = D_801652A0[arg7]; + sp68[0] = camera->unk_30[0]; + sp68[1] = camera->unk_30[1]; + sp68[2] = camera->unk_30[2]; + sp5C[0] = camera->unk_3C[0]; + sp5C[1] = camera->unk_3C[1] + camera->unk_A0; + sp5C[2] = camera->unk_3C[2]; + arg2[0] = camera->lookAt[0]; + arg2[1] = camera->lookAt[1]; + arg2[2] = camera->lookAt[2]; + func_802B6540(sp74, 0.0f, 1.0f, 0.0f, arg6); + func_802B63B8(sp5C, sp74); + stackPadding0 = player->pos[0] + sp5C[0]; + stackPadding2 = player->pos[2] + sp5C[2]; + stackPadding1 = player->pos[1] + sp5C[1]; + arg2[0] += (stackPadding0 - camera->lookAt[0]) * 1; + arg2[2] += (stackPadding2 - camera->lookAt[2]) * 1; + arg2[1] += (stackPadding1 - camera->lookAt[1]) * 1; + func_802B63B8(sp68, sp74); + stackPadding0 = player->pos[0] + sp68[0]; + stackPadding2 = player->pos[2] + sp68[2]; + stackPadding1 = sp68[1] + (player->unk_074 + 1.5); if ((player->unk_0CA & 1) == 1) { - var_f0 = sp6C + (sp3C + 10.0f); + stackPadding1 = sp68[1] + (thing + 10.0f); } - *arg3 = sp68 + player->pos[0]; - *arg4 = var_f0; - *arg5 = sp70 + player->pos[2]; - *(&D_80164A90 + sp38) = 0.0f; - *(&D_80164AA0 + sp38) = 0.0f; + *arg3 = stackPadding0; + *arg4 = stackPadding1; + *arg5 = stackPadding2; + D_80164A90[arg7] = 0.0f; + D_80164AA0[arg7] = 0.0f; } -#else -GLOBAL_ASM("asm/non_matchings/camera/func_8001D53C.s") -#endif void func_8001D794(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *arg4, f32 *arg5, s16 arg6) { Mat3 sp6C; @@ -928,43 +926,36 @@ void func_8001E45C(Camera *camera, Player *player, s8 arg2) { GLOBAL_ASM("asm/non_matchings/camera/func_8001E45C.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -void func_8001D53C(Player *, Camera *, f32 *, f32 *, f32 *, f32 *, s32, s32); /* extern */ - void func_8001E8E8(Camera *camera, Player *player, s8 arg2) { - f32 sp8C; + f32 stackPadding0[6]; + f32 temp_f12; f32 sp88; - f32 sp84; + f32 temp_f14; + f32 stackPadding1; f32 sp7C; f32 sp78; f32 sp74; - f32 sp5C; - f32 temp_f12; - f32 temp_f14; + Vec3f stackPadding2; + Vec3f sp5C; + f32 stackPadding3[10]; camera->unk_B0 = 0; - camera->unk2C = (s16) player->unk_02C[1]; - func_8001D53C(player, camera, &sp5C, &sp7C, &sp78, &sp74, (s32) player->unk_02C[1], (s32) arg2); + camera->unk_2C = player->unk_02C[1]; + func_8001D53C(player, camera, sp5C, &sp7C, &sp78, &sp74, (s16) (s32) player->unk_02C[1], (s16) (s32) arg2); func_802ADDC8(&camera->unk_54, 5.0f, sp7C, sp78, sp74); - camera->lookAt[0] = sp5C; - camera->lookAt[1] = sp60; - camera->lookAt[2] = sp64; + camera->lookAt[0] = sp5C[0]; + camera->lookAt[1] = sp5C[1]; + camera->lookAt[2] = sp5C[2]; camera->pos[0] = sp7C; camera->pos[1] = sp78; - temp_f12 = camera->lookAt[0] - camera->pos[0]; camera->pos[2] = sp74; + temp_f12 = camera->lookAt[0] - camera->pos[0]; sp88 = camera->lookAt[1] - camera->pos[1]; - sp8C = temp_f12; temp_f14 = camera->lookAt[2] - camera->pos[2]; - sp84 = temp_f14; camera->rot[1] = atan2s(temp_f12, temp_f14); - camera->rot[0] = atan2s(sqrtf((sp8C * sp8C) + (temp_f14 * temp_f14)), sp88); + camera->rot[0] = atan2s(sqrtf((temp_f12 * temp_f12) + (temp_f14 * temp_f14)), sp88); camera->rot[2] = 0; } -#else -GLOBAL_ASM("asm/non_matchings/camera/func_8001E8E8.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de @@ -1068,36 +1059,29 @@ GLOBAL_ASM("asm/non_matchings/camera/func_8001EA0C.s") #endif #ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -void func_80019ED0(); /* extern */ -void func_8001A0A4(s16 *, Camera *, Player *, s8, s32); /* extern */ -void func_8001A0DC(s16 *, Camera *, Player *, s8, s32); /* extern */ -void func_8001A588(u16 *, Camera *, Player *, s8, s32); /* extern */ -void func_8001E0C4(Camera *, Player *, s8); /* extern */ -void func_8001E45C(Camera *, Player *, s8); /* extern */ -void func_8001E8E8(Camera *, Player *, s8); /* extern */ -void func_8001EA0C(Camera *, Player *, s8); /* extern */ -void func_8001F87C(s32); /* extern */ -extern u16 D_80152300; +//generated by m2c commit 9841ff34ca242f5f14b2eab2b54a7a65ac47d80f +? func_80019ED0(); /* extern */ +? func_8001A588(u16 *, Camera *, Player *, s8, s32); /* extern */ +? func_8001E45C(Camera *, Player *, s8); /* extern */ +? func_8001EA0C(Camera *, Player *, s8); /* extern */ extern u16 D_8015F894; extern s8 D_80164A88; extern s8 D_80164A89; void func_8001EE98(Player *player, Camera *camera, s8 arg2) { s32 sp34; - s16 *sp2C; - s16 *temp_a0; - s16 *temp_a0_2; - s16 *temp_a0_3; - s16 *temp_a0_4; - s16 *temp_a0_5; - s16 *temp_a0_6; + u16 *sp2C; + s16 temp_v0_2; s16 temp_v0_3; - s16 temp_v0_4; - s32 temp_v0; s32 var_s0; + u16 *temp_a0; + u16 *temp_a0_2; + u16 *temp_a0_3; + u16 *temp_a0_4; + u16 *temp_a0_5; + u16 *temp_a0_6; u16 *temp_a0_7; - u16 temp_v0_2; + u16 temp_v0; if (camera == camera1) { sp34 = 0; @@ -1112,86 +1096,86 @@ void func_8001EE98(Player *player, Camera *camera, s8 arg2) { if (camera == camera4) { var_s0 = 3; } - switch (gModeSelection) { /* irregular */ - case GRAND_PRIX: + switch (gModeSelection) { /* irregular */ + case 0: if (((player->unk_000 & 0x800) == 0x800) || (D_800DC51C == 1)) { - *(&D_80152300 + (var_s0 * 2)) = 3; + D_80152300[var_s0] = 3; } else if (D_800DC5FC == 1) { - func_8001A0A4((var_s0 * 2) + &D_80152300, camera, player, arg2, var_s0); + func_8001A0A4((s32) &D_80152300[var_s0], (s32) camera, (s32) player, (s32) arg2, var_s0); } else { - func_8001A0DC((var_s0 * 2) + &D_80152300, camera, player, arg2, var_s0); + func_8001A0DC((s16 *) &D_80152300[var_s0], camera, player, arg2, var_s0); } break; - case BATTLE: + case 3: if ((D_800DC51C == (u16) 1) || ((D_8015F894 == 2) && (D_80164A89 == 1))) { if (D_80164A88 == 0) { func_80019ED0(); } D_80164A88 = 1; - D_80152300.unk0 = 3; - D_80152300.unk2 = 3; - D_80152300.unk4 = 3; - D_80152300.unk6 = 3; + D_80152300->unk0 = 3; + D_80152300->unk2 = 3U; + D_80152300->unk4 = 3U; + D_80152300->unk6 = 3U; } else { D_80164A88 = 0; if (D_800DC5FC == (u16) 1) { - temp_a0 = (var_s0 * 2) + &D_80152300; + temp_a0 = &D_80152300[var_s0]; sp2C = temp_a0; - func_8001A0A4(temp_a0, camera, player, arg2, var_s0); + func_8001A0A4((s32) temp_a0, (s32) camera, (s32) player, (s32) arg2, var_s0); } else { - temp_a0_2 = (var_s0 * 2) + &D_80152300; + temp_a0_2 = &D_80152300[var_s0]; sp2C = temp_a0_2; - func_8001A0DC(temp_a0_2, camera, player, arg2, var_s0); + func_8001A0DC((s16 *) temp_a0_2, camera, player, arg2, var_s0); } *sp2C = 9; } break; - case TIME_TRIALS: + case 1: if (((gPlayerOne->unk_000 & 0x800) == 0x800) || (D_800DC51C == (u16) 1)) { - D_80152300.unk0 = 3; - *(&D_80152300 + 2) = 3; - *(&D_80152300 + 4) = 3; - *(&D_80152300 + 6) = 3; + D_80152300->unk0 = 3; + *(D_80152300 + 2) = 3; + *(D_80152300 + 4) = 3; + *(D_80152300 + 6) = 3; } else { if (D_800DC5FC == (u16) 1) { - temp_a0_3 = (var_s0 * 2) + &D_80152300; + temp_a0_3 = &D_80152300[var_s0]; sp2C = temp_a0_3; - func_8001A0A4(temp_a0_3, camera, player, arg2, var_s0); + func_8001A0A4((s32) temp_a0_3, (s32) camera, (s32) player, (s32) arg2, var_s0); } else { - temp_a0_4 = (var_s0 * 2) + &D_80152300; + temp_a0_4 = &D_80152300[var_s0]; sp2C = temp_a0_4; - func_8001A0DC(temp_a0_4, camera, player, arg2, var_s0); + func_8001A0DC((s16 *) temp_a0_4, camera, player, arg2, var_s0); } *sp2C = 1; } break; - case VERSUS: + case 2: if (((player->unk_000 & 0x800) == 0x800) || (D_800DC51C == (u16) 1) || (D_8015F894 == 2)) { - *(&D_80152300 + (var_s0 * 2)) = 3; + D_80152300[var_s0] = 3; } else { if (D_800DC5FC == (u16) 1) { - temp_a0_5 = (var_s0 * 2) + &D_80152300; + temp_a0_5 = &D_80152300[var_s0]; sp2C = temp_a0_5; - func_8001A0A4(temp_a0_5, camera, player, arg2, var_s0); + func_8001A0A4((s32) temp_a0_5, (s32) camera, (s32) player, (s32) arg2, var_s0); } else { - temp_a0_6 = (var_s0 * 2) + &D_80152300; + temp_a0_6 = &D_80152300[var_s0]; sp2C = temp_a0_6; - func_8001A0DC(temp_a0_6, camera, player, arg2, var_s0); + func_8001A0DC((s16 *) temp_a0_6, camera, player, arg2, var_s0); } *sp2C = 1; } break; } if (D_800DC5FC == 0) { - temp_a0_7 = (var_s0 * 2) + &D_80152300; - temp_v0_2 = *temp_a0_7; - switch (temp_v0_2) { /* switch 1; irregular */ + temp_a0_7 = &D_80152300[var_s0]; + temp_v0 = *temp_a0_7; + switch (temp_v0) { /* switch 1; irregular */ case 3: /* switch 1 */ func_8001A588(temp_a0_7, camera, player, arg2, var_s0); return; case 1: /* switch 1 */ - temp_v0_3 = player->unk_0CA; - if (((temp_v0_3 & 1) == 1) || ((temp_v0_3 & 2) == 2)) { + temp_v0_2 = player->unk_0CA; + if (((temp_v0_2 & 1) == 1) || ((temp_v0_2 & 2) == 2)) { func_8001E8E8(camera, player, arg2); return; } @@ -1202,8 +1186,8 @@ void func_8001EE98(Player *player, Camera *camera, s8 arg2) { func_8001F87C(var_s0); return; case 9: /* switch 1 */ - temp_v0_4 = player->unk_0CA; - if (((temp_v0_4 & 1) == 1) || ((temp_v0_4 & 2) == 2)) { + temp_v0_3 = player->unk_0CA; + if (((temp_v0_3 & 1) == 1) || ((temp_v0_3 & 2) == 2)) { func_8001E8E8(camera, player, arg2); return; } -- cgit v1.2.3