summaryrefslogtreecommitdiff
path: root/src/camera.c
diff options
context:
space:
mode:
authorTyler McGavran <tyler.taggerung@gmail.com>2022-11-29 20:03:40 -0500
committerGitHub <noreply@github.com>2022-11-29 18:03:40 -0700
commiteeab33814dcca8165eabc9db16d03bfc65cce8bb (patch)
treed1f1e1aaa204ac2a2e200429f51adce2798e6a06 /src/camera.c
parenta75389535917d21b0c7ecca6bc0e4f0e29c1e02d (diff)
Yet more assorted matches (#278)
* Yet more assorted matches Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
Diffstat (limited to 'src/camera.c')
-rw-r--r--src/camera.c224
1 files changed, 104 insertions, 120 deletions
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;
}