mirror of
https://github.com/n64decomp/mk64
synced 2026-06-27 09:23:22 -04:00
@@ -39,6 +39,47 @@ typedef struct {
|
||||
/* 0xB4 */ f32 unk_B4;
|
||||
} Camera; /* size = 0xB8 */
|
||||
|
||||
// The camera used for cutscenes appears to
|
||||
// use a slightly different struct.
|
||||
// Or even no struct at all.
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3f pos;
|
||||
/* 0x0C */ Vec3f lookAt;
|
||||
// This is expected to be a normalized vector, indicates what direction is "up" for the camera
|
||||
/* 0x18 */ f32 unk18;
|
||||
/* 0x1C */ u8 cutscene; // ?
|
||||
/* 0x20 */ f32 unk20[10]; // ???
|
||||
// I think these are the "nautical angles" between pos and lookAt
|
||||
// rot[0] = pitch, rot[1] = yaw, rot[2] = roll?
|
||||
/* 0x24 */ Vec3s rot;
|
||||
/* 0x2A */ s16 rotZ;
|
||||
/* 0x2C */ s16 unk_2C;
|
||||
/* 0x2E */ s16 unk_2E;
|
||||
/* 0x30 */ Vec3f unk_30;
|
||||
/* 0x3C */ Vec3f unk_3C;
|
||||
/* 0x48 */ s32 unk_48;
|
||||
/* 0x4C */ s32 unk_4C;
|
||||
/* 0x50 */ s32 unk_50;
|
||||
/* 0x54 */ UnkActorInner unk_54;
|
||||
// When you hit a wall (or another driver) the camera's pos and lookAt bounce up and down. This is the velocity(?) of that bouncing
|
||||
/* 0x94 */ f32 unk_94;
|
||||
/* 0x98 */ s16 unk_98;
|
||||
/* 0x9A */ s16 unk_9A;
|
||||
// Timer for wall-hit bounce. Counts up instead of down
|
||||
/* 0x9C */ s16 unk_9C;
|
||||
/* 0x9E */ s16 pad_9E;
|
||||
/* 0xA0 */ f32 unk_A0;
|
||||
/* 0xA4 */ s32 unk_A4;
|
||||
/* 0xA8 */ s32 unk_A8;
|
||||
/* 0xAC */ s16 unk_AC;
|
||||
// Id of the player the camera is following.
|
||||
/* 0xAE */ s16 playerId;
|
||||
// Seems related to camera movement during drifting
|
||||
/* 0xB0 */ s16 unk_B0;
|
||||
/* 0xB2 */ s16 unk_B2;
|
||||
/* 0xB4 */ f32 unk_B4;
|
||||
} CinematicCamera; /* size = 0xB8 */
|
||||
|
||||
void func_8001CA10(Camera*);
|
||||
void func_8001CA24(Player*, f32);
|
||||
void func_8001CA78(Player*, Camera*, Vec3f, f32*, f32*, f32*, s16, s8);
|
||||
|
||||
+6
-4
@@ -1906,13 +1906,15 @@ void func_8004B7DC(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s
|
||||
GLOBAL_ASM("asm/non_matchings/code_800431B0/func_8004B7DC.s")
|
||||
#endif
|
||||
|
||||
void func_8004B7DC(s32, s32, s32, s32, s32, s32, s32);
|
||||
|
||||
void func_8004B950(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
|
||||
func_8004B7DC(arg0, arg1, arg2, arg3, 0, 0, arg4);
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
void func_8004B7DC(s32, s32, s32, s32, s32, s32, s32); // extern
|
||||
//void func_8004B7DC(s32, s32, s32, s32, s32, s32, s32); // extern
|
||||
|
||||
void func_8004B97C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
|
||||
s32 sp2C;
|
||||
@@ -1924,17 +1926,17 @@ void func_8004B97C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
|
||||
if (-arg2 < arg0) {
|
||||
phi_v0 = 0;
|
||||
if (-arg3 < arg1) {
|
||||
sp2C = arg0;
|
||||
//sp2C = arg0;
|
||||
phi_v1 = 0;
|
||||
if (arg0 < 0) {
|
||||
sp2C = 0;
|
||||
arg0 = 0;
|
||||
phi_v1 = -arg0;
|
||||
}
|
||||
if (arg1 < 0) {
|
||||
phi_a1 = 0;
|
||||
phi_v0 = -arg1;
|
||||
}
|
||||
func_8004B7DC(sp2C, phi_a1, arg2 - phi_v1, arg3 - phi_v0, phi_v1, phi_v0, arg4);
|
||||
func_8004B7DC(arg0, phi_a1, arg2 - phi_v1, arg3 - phi_v0, phi_v1, phi_v0, arg4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -8050,7 +8050,7 @@ block_6:
|
||||
func_800C98B8(temp_t0->unk_004, &temp_t0->unk_038, 0x19036045U);
|
||||
}
|
||||
} else {
|
||||
temp_v0 = D_802876D2;
|
||||
temp_v0 = gCutsceneShotTimer;
|
||||
if ((temp_v0 < 0xBF) && ((temp_v0 % 88) == 0x0000001E)) {
|
||||
func_800C98B8(temp_t0->unk_004, &temp_t0->unk_038, 0x19036045U);
|
||||
}
|
||||
@@ -9099,7 +9099,7 @@ void func_80082870(void) {
|
||||
D_80183E40.unk8 = 0.0f;
|
||||
if (gGamestate != 9) {
|
||||
func_800C98B8(temp_s1->unk_004, &D_80183E40, 0x19017043U);
|
||||
} else if (D_802876D2 < 0x97) {
|
||||
} else if (gCutsceneShotTimer < 0x97) {
|
||||
func_800C98B8(D_80165C18[D_80183F2C].unk_004, &D_80183E40, 0x19017043U);
|
||||
}
|
||||
}
|
||||
|
||||
+969
-451
File diff suppressed because it is too large
Load Diff
+31
-39
@@ -20,12 +20,12 @@ s32 func_80282200(s16*, s16, s16);
|
||||
s32 func_802822AC(f32*, f32, f32);
|
||||
s32 func_80282364(s16*, s16, s16);
|
||||
void func_8028240C();
|
||||
void func_80282434(s32);
|
||||
void func_80282434(Camera*);
|
||||
void func_80282454(Vec3f, Vec3f, f32*, s16*, s16*);
|
||||
void func_80282504(Vec3f, Vec3f, f32, s16, s16);
|
||||
void func_802825C8(Vec3f, Vec3f, Vec3f, Vec3s);
|
||||
s32 func_80282D90(Camera*, s32, s32, s32);
|
||||
void func_80282E58(Camera*, s32, s32);
|
||||
//s32 func_80282D90(Camera*, struct struct_80282C40*, struct struct_80282C40*, s32);
|
||||
//void func_80282E58(Camera*, s16*, s32);
|
||||
void func_80282F00(s16*, s16);
|
||||
void func_80283240(s16);
|
||||
s32 func_802832C4(void (*)(s32), Camera*, s16, s16);
|
||||
@@ -50,7 +50,7 @@ void func_80283BA4(s32);
|
||||
void func_80283BF0(s32);
|
||||
void func_80283C14(s32);
|
||||
void func_80283C38(s32);
|
||||
void func_80283C58(s32);
|
||||
void func_80283C58(CinematicCamera*);
|
||||
void func_80283C78(s32);
|
||||
void func_80283CA8(s32);
|
||||
void func_80283CD0(s32);
|
||||
@@ -65,7 +65,7 @@ void func_80283FF4(Camera*);
|
||||
void func_80284068(Camera*);
|
||||
void func_802840C8(Camera*);
|
||||
void func_80284154(Camera*);
|
||||
void func_80284184();
|
||||
void func_80284184(Camera*);
|
||||
void func_802841E8(Camera*);
|
||||
void func_8028422C(Camera*);
|
||||
void func_802842A8(s32);
|
||||
@@ -91,42 +91,34 @@ extern f32 D_802856B4;
|
||||
extern f32 D_802856B8;
|
||||
extern f32 D_802856BC;
|
||||
extern f32 D_802856C0;
|
||||
extern s32 D_802856DC;
|
||||
extern s32 D_80285718;
|
||||
extern s32 D_80285754;
|
||||
extern s32 D_80285784;
|
||||
extern s32 D_802857B4;
|
||||
extern s32 D_802857CC;
|
||||
extern s32 D_802857F0;
|
||||
extern s32 D_80285850;
|
||||
extern s32 D_802858B0;
|
||||
extern s32 D_802858C8;
|
||||
extern s32 D_80285910;
|
||||
extern s32 D_80285928;
|
||||
extern s32 D_80285940;
|
||||
extern s32 D_80285A10;
|
||||
extern s32 D_80285A4C;
|
||||
extern s32 D_80285A88;
|
||||
extern s32 D_80285AB8;
|
||||
extern s32 D_80285AE8;
|
||||
extern s32 D_80285B00;
|
||||
extern s32 D_80285B18;
|
||||
extern s32 D_80285B54;
|
||||
extern s32 D_80285B90;
|
||||
extern s32 D_80285BA8;
|
||||
extern s32 D_80285C38;
|
||||
extern s32 D_80285C74;
|
||||
//extern struct struct_80282C40 D_802856DC[];
|
||||
//extern s32 D_80285718[];
|
||||
//extern s32 D_80285754[];
|
||||
//extern s32 D_80285784[];
|
||||
//extern s32 D_802857B4[];
|
||||
//extern s32 D_802857CC[];
|
||||
//extern s32 D_802857F0;
|
||||
//extern s32 D_80285850;
|
||||
//extern s32 D_802858B0;
|
||||
//extern s32 D_802858C8;
|
||||
//extern s32 D_80285910;
|
||||
//extern s32 D_80285928;
|
||||
//extern s32 D_80285940;
|
||||
//extern s32 D_80285A10;
|
||||
//extern s32 D_80285A4C;
|
||||
//extern s32 D_80285A88;
|
||||
//extern s32 D_80285AB8;
|
||||
//extern s32 D_80285AE8;
|
||||
//extern s32 D_80285B00;
|
||||
//extern s32 D_80285B18;
|
||||
//extern s32 D_80285B54;
|
||||
//extern s32 D_80285B90;
|
||||
//extern s32 D_80285BA8;
|
||||
//extern s32 D_80285C38;
|
||||
//extern s32 D_80285C74;
|
||||
extern s16 D_80285D14;
|
||||
extern s16 D_802876D0;
|
||||
extern s16 D_802876D2;
|
||||
extern s32 D_802876D4;
|
||||
extern s32 D_802876D8;
|
||||
extern s32 D_802876E0;
|
||||
extern s32 D_80287818;
|
||||
extern s32 D_80287998;
|
||||
extern f32 D_80287B18;
|
||||
extern s16 D_80287B1C;
|
||||
extern s16 D_80287B1E;
|
||||
extern s8 D_80287B20;
|
||||
//extern struct credits_data_1FA0 *D_802876E0;
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user