Matches for code_80281FA0.c (#272)

* Matches for code_80281FA0.c
This commit is contained in:
MegaMech
2022-11-07 02:04:33 -07:00
committed by GitHub
parent 6d03e5bf05
commit 5f88765dd4
26 changed files with 1140 additions and 2092 deletions
+41
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
File diff suppressed because it is too large Load Diff
+31 -39
View File
@@ -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