Fixes as per Sonic (#154)

* Fix imGUI game reset button

* Fix course select cursor sound oob

* Fix cloud rendering

* Fix centering of tt race data cannot be saved by ghost

* Impl chain chomp & bats

* Fix retry crash

* DebugMode On Skips intro logo menu

* rename
This commit is contained in:
MegaMech
2025-01-13 21:15:16 -07:00
committed by GitHub
parent 389f0f4951
commit 04d56d6ba0
20 changed files with 711 additions and 355 deletions
+2 -91
View File
@@ -687,12 +687,6 @@ void load_texture_and_tlut(u8* tlut, u8* texture, s32 width, s32 height) {
rsp_load_texture(texture, width, height);
}
void func_80046F60(u8* tlut, u8* arg1, s32 arg2, s32 arg3, s32 arg4) {
gSPDisplayList(gDisplayListHead++, D_0D007D78);
gDPLoadTLUT_pal256(gDisplayListHead++, tlut);
rsp_load_texture_mask(arg1, arg2, arg3, arg4);
}
void func_80047068(u8* tlut, u8* texture, Vtx* arg2, UNUSED s32 arg3, s32 arg4, s32 width, s32 height) {
s32 heightIndex;
s32 vertexIndex = 0;
@@ -3340,7 +3334,7 @@ void func_800518F8(s32 objectIndex, s16 arg1, s16 arg2) {
func_80044DA0(gObjectList[objectIndex].activeTexture, gObjectList[objectIndex].textureWidth,
gObjectList[objectIndex].textureHeight);
}
func_80042330(arg1, arg2, 0U, gObjectList[objectIndex].sizeScaling);
func_80042330_unchanged(arg1, arg2, 0U, gObjectList[objectIndex].sizeScaling);
gSPVertex(gDisplayListHead++, gObjectList[objectIndex].vertex, 4, 0);
gSPDisplayList(gDisplayListHead++, common_rectangle_display);
}
@@ -3354,7 +3348,7 @@ void func_800519D4(s32 objectIndex, s16 arg1, s16 arg2) {
gObjectList[objectIndex].textureHeight);
}
func_8004B138(0x000000FF, 0x000000FF, 0x000000FF, gObjectList[objectIndex].primAlpha);
func_80042330(arg1, arg2, 0U, gObjectList[objectIndex].sizeScaling);
func_80042330_unchanged(arg1, arg2, 0U, gObjectList[objectIndex].sizeScaling);
gSPVertex(gDisplayListHead++, gObjectList[objectIndex].vertex, 4, 0);
gSPDisplayList(gDisplayListHead++, common_rectangle_display);
}
@@ -3522,50 +3516,6 @@ void render_object_boos(s32 arg0) {
}
}
void render_object_bat(s32 cameraId) {
s32 var_s2;
s32 objectIndex;
Camera* temp_s7;
objectIndex = indexObjectList1[0];
temp_s7 = &camera1[cameraId];
func_80046F60(gObjectList[objectIndex].activeTLUT, gObjectList[objectIndex].activeTexture, 0x00000020, 0x00000040,
5);
D_80183E80[0] = gObjectList[objectIndex].orientation[0];
D_80183E80[2] = gObjectList[objectIndex].orientation[2];
if ((D_8018CFB0 != 0) || (D_8018CFC8 != 0)) {
for (var_s2 = 0; var_s2 < 40; var_s2++) {
objectIndex = gObjectParticle2[var_s2];
if (objectIndex == -1) {
continue;
}
if ((gObjectList[objectIndex].state >= 2) && (gMatrixHudCount < 0x2EF)) {
D_80183E80[1] =
func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], temp_s7->pos);
func_800431B0(gObjectList[objectIndex].pos, D_80183E80, gObjectList[objectIndex].sizeScaling,
D_0D0062B0);
}
}
}
if ((D_8018CFE8 != 0) || (D_8018D000 != 0)) {
for (var_s2 = 0; var_s2 < 30; var_s2++) {
objectIndex = gObjectParticle3[var_s2];
if (objectIndex == -1) {
continue;
}
if ((gObjectList[objectIndex].state >= 2) && (gMatrixHudCount < 0x2EF)) {
D_80183E80[1] =
func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], temp_s7->pos);
func_800431B0(gObjectList[objectIndex].pos, D_80183E80, gObjectList[objectIndex].sizeScaling,
D_0D0062B0);
}
}
}
gSPTexture(gDisplayListHead++, 0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF);
}
void func_8005285C(s32 arg0) {
Player* temp_v0;
@@ -3992,45 +3942,6 @@ void render_object_train_penguins(s32 cameraId) {
}
}
void func_80055AB8(s32 objectIndex, s32 cameraId) {
Camera* camera;
camera = &camera1[cameraId];
if (gObjectList[objectIndex].state >= 2) {
if (is_obj_flag_status_active(objectIndex, 0x00100000) != 0) {
D_80183E40[0] = gObjectList[objectIndex].pos[0];
D_80183E40[1] = gObjectList[objectIndex].pos[1] + 16.0;
D_80183E40[2] = gObjectList[objectIndex].pos[2];
D_80183E80[0] = 0;
D_80183E80[1] =
func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos);
D_80183E80[2] = 0x8000;
func_800468E0(D_80183E40, D_80183E80, 0.54f, d_course_rainbow_road_sphere, D_0D0062B0, 0x00000020,
0x00000040, 0x00000020, 0x00000040, 5);
} else {
rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].direction_angle,
gObjectList[objectIndex].sizeScaling);
gSPDisplayList(gDisplayListHead++, D_0D0077D0);
render_animated_model((Armature*) gObjectList[objectIndex].model,
(Animation**) gObjectList[objectIndex].vertex, 0,
(s16) gObjectList[objectIndex].textureListIndex);
}
}
}
void render_object_chain_chomps(s32 cameraId) {
s32 var_s1;
s32 objectIndex;
for (var_s1 = 0; var_s1 < NUM_CHAIN_CHOMPS; var_s1++) {
objectIndex = indexObjectList2[var_s1];
func_8008A1D0(objectIndex, cameraId, 0x000005DC, 0x000009C4);
if (is_obj_flag_status_active(objectIndex, VISIBLE) != 0) {
func_80055AB8(objectIndex, cameraId);
}
}
}
void func_80055EF4(s32 objectIndex, UNUSED s32 arg1) {
Object* object;