diff options
| author | Sonic Dreamcaster <alejandro.asenjo88@gmail.com> | 2025-05-20 00:44:17 -0300 |
|---|---|---|
| committer | Sonic Dreamcaster <alejandro.asenjo88@gmail.com> | 2025-05-20 00:44:17 -0300 |
| commit | 07d5640585d4a17a9637721105c3dcf3032797df (patch) | |
| tree | bb0ea351cffd8eb4961badec7a8486b5f7da89e3 /src | |
| parent | 23222922e68761c6d2aeeea276afbf8c9c672eb2 (diff) | |
interpolation tags for various objects
Diffstat (limited to 'src')
| -rw-r--r-- | src/actors/cow/render.inc.c | 6 | ||||
| -rw-r--r-- | src/code_80057C60.c | 26 | ||||
| -rw-r--r-- | src/engine/objects/GrandPrixBalloons.cpp | 29 | ||||
| -rw-r--r-- | src/engine/objects/Mole.cpp | 105 | ||||
| -rw-r--r-- | src/port/interpolation/FrameInterpolation.cpp | 4 | ||||
| -rw-r--r-- | src/port/interpolation/FrameInterpolation.h | 2 | ||||
| -rw-r--r-- | src/racing/actors.c | 21 |
7 files changed, 131 insertions, 62 deletions
diff --git a/src/actors/cow/render.inc.c b/src/actors/cow/render.inc.c index e55154c03..af15363c4 100644 --- a/src/actors/cow/render.inc.c +++ b/src/actors/cow/render.inc.c @@ -19,6 +19,9 @@ void render_actor_cow(Camera* camera, Mat4 arg1, struct Actor* arg2) { return; } + // @port: Tag the transform. + FrameInterpolation_RecordOpenChild("render_actor_cow", TAG_OBJECT(arg2)); + arg1[3][0] = arg2->pos[0]; arg1[3][1] = arg2->pos[1]; arg1[3][2] = arg2->pos[2]; @@ -42,4 +45,7 @@ void render_actor_cow(Camera* camera, Mat4 arg1, struct Actor* arg2) { break; } } + + // @port Pop the transform id. + FrameInterpolation_RecordCloseChild(); } diff --git a/src/code_80057C60.c b/src/code_80057C60.c index 23293b641..7e609859d 100644 --- a/src/code_80057C60.c +++ b/src/code_80057C60.c @@ -5101,6 +5101,13 @@ void func_80065AB0(Player* player, UNUSED s8 arg1, s16 arg2, s8 arg3) { spAC[0] = 0; spAC[1] = player->unk_048[arg3]; spAC[2] = 0; + + // // @port: Tag the transform. + FrameInterpolation_RecordOpenChild("EEEEEEEEE", player->type << 8 | arg2 | var_s0 << 16); + + // @port Skip interpolation + // FrameInterpolation_ShouldInterpolateFrame(false); + func_800652D4(spB4, spAC, player->unk_258[10 + arg2].unk_00C * player->size); if (var_s0 == 0) { gSPDisplayList(gDisplayListHead++, D_0D008DB8); @@ -5120,6 +5127,11 @@ void func_80065AB0(Player* player, UNUSED s8 arg1, s16 arg2, s8 arg3) { gSPDisplayList(gDisplayListHead++, D_0D008E48); } gMatrixEffectCount += 1; + + // @port Pop the transform id. + FrameInterpolation_RecordCloseChild(); + // @port renable interpolation + // FrameInterpolation_ShouldInterpolateFrame(true); } } #else @@ -5670,6 +5682,10 @@ void func_800691B8(Player* player, UNUSED s8 arg1, s16 arg2, s8 arg3) { sp54[1] = player->unk_048[arg3]; player->unk_258[30 + arg2].unk_03A += 0x1C71; sp54[2] = player->unk_258[30 + arg2].unk_03A; + + // @port: Tag the transform. + FrameInterpolation_RecordOpenChild("func_800691B8", TAG_OBJECT(arg2)); + func_800652D4(sp5C, sp54, player->size * 0.5); gSPDisplayList(gDisplayListHead++, D_0D008D58); gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE); @@ -5681,6 +5697,9 @@ void func_800691B8(Player* player, UNUSED s8 arg1, s16 arg2, s8 arg3) { gSPVertex(gDisplayListHead++, D_800E87C0, 4, 0); gSPDisplayList(gDisplayListHead++, D_0D008DA0); gMatrixEffectCount++; + + // @port Pop the transform id. + FrameInterpolation_RecordCloseChild(); } } @@ -5774,6 +5793,10 @@ void func_80069938(Player* player, UNUSED s8 arg1, s16 arg2, s8 arg3) { sp54[0] = 0; sp54[1] = player->unk_048[arg3]; sp54[2] = player->unk_258[30 + arg2].unk_038; + + // @port: Tag the transform. + FrameInterpolation_RecordOpenChild("func_80069938", TAG_OBJECT(arg2)); + func_800652D4(sp5C, sp54, player->unk_258[30 + arg2].unk_00C * player->size); gSPDisplayList(gDisplayListHead++, D_0D008D58); gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE); @@ -5785,6 +5808,9 @@ void func_80069938(Player* player, UNUSED s8 arg1, s16 arg2, s8 arg3) { gSPVertex(gDisplayListHead++, D_800E87C0, 4, 0); gSPDisplayList(gDisplayListHead++, D_0D008DA0); gMatrixEffectCount += 1; + + // @port Pop the transform id. + FrameInterpolation_RecordCloseChild(); } } diff --git a/src/engine/objects/GrandPrixBalloons.cpp b/src/engine/objects/GrandPrixBalloons.cpp index 253c68464..544a3e4d1 100644 --- a/src/engine/objects/GrandPrixBalloons.cpp +++ b/src/engine/objects/GrandPrixBalloons.cpp @@ -35,7 +35,7 @@ OGrandPrixBalloons::OGrandPrixBalloons(const FVector& pos) { find_unused_obj_index(&gObjectParticle3[i]); init_object(gObjectParticle3[i], 0); } - // printf("primAlfa %d\n", object->primAlpha); + // printf("primAlfa %d\n", object->primAlpha); } void OGrandPrixBalloons::Tick() { @@ -75,7 +75,7 @@ void OGrandPrixBalloons::Draw(s32 cameraId) { return; } - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007E98); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007E98); gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTOnomatopoeia); func_8004B614(0, 0, 0, 0, 0, 0, 0); gDPSetAlphaCompare(gDisplayListHead++, G_AC_THRESHOLD); @@ -86,14 +86,14 @@ void OGrandPrixBalloons::Draw(s32 cameraId) { GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)); D_80183E80[0] = 0; D_80183E80[1] = 0x8000; - rsp_load_texture((uint8_t*)gTextureBalloon1, 64, 32); + rsp_load_texture((uint8_t*) gTextureBalloon1, 64, 32); for (var_s1 = 0; var_s1 < _numBalloons; var_s1++) { objectIndex = gObjectParticle3[var_s1]; if ((objectIndex != NULL_OBJECT_ID) && (gObjectList[objectIndex].state >= 2)) { OGrandPrixBalloons::func_80053D74(objectIndex, cameraId, 0); } } - rsp_load_texture((uint8_t*)gTextureBalloon2, 64, 32); + rsp_load_texture((uint8_t*) gTextureBalloon2, 64, 32); for (var_s1 = 0; var_s1 < _numBalloons; var_s1++) { objectIndex = gObjectParticle3[var_s1]; if ((objectIndex != NULL_OBJECT_ID) && (gObjectList[objectIndex].state >= 2)) { @@ -107,22 +107,25 @@ void OGrandPrixBalloons::func_80053D74(s32 objectIndex, UNUSED s32 arg1, s32 ver Vtx* vtx = (Vtx*) LOAD_ASSET_RAW(common_vtx_hedgehog); - // @port: Tag the transform. size_t i = 0; if (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX) { object = &gObjectList[objectIndex]; - FrameInterpolation_RecordOpenChild("Balloon", TAG_ITEM_ADDR((objectIndex << 8) + i++)); //Not working properly just yet + + // @port: Tag the transform. + FrameInterpolation_RecordOpenChild("Balloon", + TAG_ITEM_ADDR((objectIndex << 32) + i++)); // Not working properly just yet + D_80183E80[2] = (s16) (object->unk_084[6] + 0x8000); rsp_set_matrix_transformation(object->pos, (u16*) D_80183E80, object->sizeScaling); set_color_render((s32) object->unk_084[0], (s32) object->unk_084[1], (s32) object->unk_084[2], (s32) object->unk_084[3], (s32) object->unk_084[4], (s32) object->unk_084[5], (s32) object->primAlpha); - gSPVertex(gDisplayListHead++, (uintptr_t)&vtx[vertexIndex], 4, 0); - gSPDisplayList(gDisplayListHead++, (Gfx*)common_rectangle_display); + gSPVertex(gDisplayListHead++, (uintptr_t) &vtx[vertexIndex], 4, 0); + gSPDisplayList(gDisplayListHead++, (Gfx*) common_rectangle_display); + + // @port Pop the transform id. FrameInterpolation_RecordCloseChild(); } - - // @port Pop the transform id. } void OGrandPrixBalloons::func_80074924(s32 objectIndex) { @@ -195,7 +198,8 @@ void OGrandPrixBalloons::func_80074924(s32 objectIndex) { void OGrandPrixBalloons::func_80074D94(s32 objectIndex) { if (gObjectList[objectIndex].unk_0AE == 1) { - //! @warning this fades out the balloons. Original game uses _numBalloons3 here but they disappear before off-screen. + //! @warning this fades out the balloons. Original game uses _numBalloons3 here but they disappear before + //! off-screen. // So _numBalloons replaces it for now. if ((_numBalloons <= gObjectList[objectIndex].offset[1]) && (s16_step_down_towards(&gObjectList[objectIndex].primAlpha, 0, 8) != 0)) { @@ -219,7 +223,8 @@ void OGrandPrixBalloons::func_80074E28(s32 objectIndex) { case 0: break; case 3: - OGrandPrixBalloons::func_80041480(&gObjectList[objectIndex].unk_084[6], -0x1000, 0x1000, &gObjectList[objectIndex].unk_084[7]); + OGrandPrixBalloons::func_80041480(&gObjectList[objectIndex].unk_084[6], -0x1000, 0x1000, + &gObjectList[objectIndex].unk_084[7]); if (gObjectList[objectIndex].unk_0AE == 0) { func_80072428(objectIndex); } diff --git a/src/engine/objects/Mole.cpp b/src/engine/objects/Mole.cpp index 06bd5f56c..91eeabebf 100644 --- a/src/engine/objects/Mole.cpp +++ b/src/engine/objects/Mole.cpp @@ -21,6 +21,7 @@ extern "C" { #include "sounds.h" #include "external.h" } +#include "port/interpolation/FrameInterpolation.h" size_t OMole::_count = 0; @@ -145,7 +146,7 @@ void OMole::func_80081AFC(s32 objectIndex, s32 arg1) { // sp2C = D_8018D1B8; // break; // } - //sp2C[object->type] = 0; + // sp2C[object->type] = 0; } break; case 0: @@ -179,20 +180,20 @@ void OMole::func_8008153C(s32 objectIndex) { } u8* mole = (u8*) LOAD_ASSET_RAW(d_course_moo_moo_farm_mole_dirt); - init_object(loopObjectIndex, 0); - gObjectList[loopObjectIndex].activeTLUT = d_course_moo_moo_farm_mole_dirt; - gObjectList[loopObjectIndex].tlutList = mole; - gObjectList[loopObjectIndex].sizeScaling = 0.15f; - gObjectList[loopObjectIndex].velocity[1] = random_int(0x000AU); - gObjectList[loopObjectIndex].velocity[1] = (gObjectList[loopObjectIndex].velocity[1] * 0.1) + 4.8; - gObjectList[loopObjectIndex].unk_034 = random_int(5U); - gObjectList[loopObjectIndex].unk_034 = (gObjectList[loopObjectIndex].unk_034 * 0.01) + 0.8; - gObjectList[loopObjectIndex].orientation[1] = (0x10000 / sp70) * var_s1; - gObjectList[loopObjectIndex].origin_pos[0] = gObjectList[objectIndex].origin_pos[0]; - gObjectList[loopObjectIndex].origin_pos[1] = gObjectList[objectIndex].origin_pos[1] - 13.0; - gObjectList[loopObjectIndex].origin_pos[2] = gObjectList[objectIndex].origin_pos[2]; - break; - } + init_object(loopObjectIndex, 0); + gObjectList[loopObjectIndex].activeTLUT = d_course_moo_moo_farm_mole_dirt; + gObjectList[loopObjectIndex].tlutList = mole; + gObjectList[loopObjectIndex].sizeScaling = 0.15f; + gObjectList[loopObjectIndex].velocity[1] = random_int(0x000AU); + gObjectList[loopObjectIndex].velocity[1] = (gObjectList[loopObjectIndex].velocity[1] * 0.1) + 4.8; + gObjectList[loopObjectIndex].unk_034 = random_int(5U); + gObjectList[loopObjectIndex].unk_034 = (gObjectList[loopObjectIndex].unk_034 * 0.01) + 0.8; + gObjectList[loopObjectIndex].orientation[1] = (0x10000 / sp70) * var_s1; + gObjectList[loopObjectIndex].origin_pos[0] = gObjectList[objectIndex].origin_pos[0]; + gObjectList[loopObjectIndex].origin_pos[1] = gObjectList[objectIndex].origin_pos[1] - 13.0; + gObjectList[loopObjectIndex].origin_pos[2] = gObjectList[objectIndex].origin_pos[2]; + break; + } } } @@ -243,21 +244,15 @@ void OMole::func_80081D34(s32 objectIndex) { } static const char* frames[] = { - gTextureMole1, - gTextureMole2, - gTextureMole3, - gTextureMole4, - gTextureMole5, - gTextureMole6, - gTextureMole7, - d_course_moo_moo_farm_mole_dirt, + gTextureMole1, gTextureMole2, gTextureMole3, gTextureMole4, + gTextureMole5, gTextureMole6, gTextureMole7, d_course_moo_moo_farm_mole_dirt, }; - void OMole::func_80081848(s32 objectIndex) { - init_texture_object(objectIndex, (u8*)d_course_moo_moo_farm_mole_tlut, (const char**) frames, 0x20U, (u16) 0x00000040); - //gObjectList[objectIndex].activeTexture = (const char*)d_course_moo_moo_farm_mole_frames; - //gObjectList[objectIndex].activeTLUT = (const char*)d_course_moo_moo_farm_mole_tlut; + init_texture_object(objectIndex, (u8*) d_course_moo_moo_farm_mole_tlut, (const char**) frames, 0x20U, + (u16) 0x00000040); + // gObjectList[objectIndex].activeTexture = (const char*)d_course_moo_moo_farm_mole_frames; + // gObjectList[objectIndex].activeTLUT = (const char*)d_course_moo_moo_farm_mole_tlut; gObjectList[objectIndex].sizeScaling = 0.15f; gObjectList[objectIndex].textureListIndex = 0; @@ -270,7 +265,6 @@ void OMole::func_80081848(s32 objectIndex) { object_next_state(objectIndex); } - void OMole::func_80081924(s32 objectIndex) { switch (gObjectList[objectIndex].unk_0AE) { case 1: @@ -307,7 +301,6 @@ void OMole::func_80081924(s32 objectIndex) { } } - void OMole::func_80081A88(s32 objectIndex) { switch (gObjectList[objectIndex].unk_0DD) { /* irregular */ case 0: @@ -333,6 +326,10 @@ void OMole::func_800821AC(s32 objectIndex, s32 arg1) { void OMole::func_80054E10(s32 objectIndex) { if (gObjectList[objectIndex].state > 0) { if (is_obj_flag_status_active(objectIndex, 0x00800000) != 0) { + + // @port: Tag the transform. + FrameInterpolation_RecordOpenChild("func_80054E10", TAG_OBJECT(&gObjectList[objectIndex])); + D_80183E50[0] = gObjectList[objectIndex].pos[0]; D_80183E50[1] = gObjectList[objectIndex].surfaceHeight + 0.8; D_80183E50[2] = gObjectList[objectIndex].pos[2]; @@ -340,6 +337,9 @@ void OMole::func_80054E10(s32 objectIndex) { D_80183E70[1] = gObjectList[objectIndex].velocity[1]; D_80183E70[2] = gObjectList[objectIndex].velocity[2]; func_8004A9B8(gObjectList[objectIndex].sizeScaling); + + // @port Pop the transform id. + FrameInterpolation_RecordCloseChild(); } } } @@ -348,8 +348,8 @@ void OMole::func_80054E10(s32 objectIndex) { void OMole::func_80054EB8() { s32 someIndex; - //for (someIndex = 0; someIndex < NUM_TOTAL_MOLES; someIndex++) { - func_80054E10(_moleIndex); + // for (someIndex = 0; someIndex < NUM_TOTAL_MOLES; someIndex++) { + func_80054E10(_moleIndex); //} } @@ -360,13 +360,20 @@ void OMole::func_80054D00(s32 objectIndex, s32 cameraId) { if (gObjectList[objectIndex].state >= 3) { func_8008A364(objectIndex, cameraId, 0x2AABU, 0x0000012C); if (is_obj_flag_status_active(objectIndex, VISIBLE) != 0) { + + // @port: Tag the transform. + FrameInterpolation_RecordOpenChild("func_80054D00", TAG_OBJECT(&gObjectList[objectIndex])); + D_80183E80[0] = (s16) gObjectList[objectIndex].orientation[0]; D_80183E80[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos); D_80183E80[2] = (u16) gObjectList[objectIndex].orientation[2]; func_80048130(gObjectList[objectIndex].pos, (u16*) D_80183E80, gObjectList[objectIndex].sizeScaling, - (u8*) gObjectList[objectIndex].activeTLUT, (u8*)gObjectList[objectIndex].activeTexture, - (Vtx*)LOAD_ASSET_RAW(D_0D0062B0), 0x00000020, 0x00000040, 0x00000020, 0x00000040, 5); + (u8*) gObjectList[objectIndex].activeTLUT, (u8*) gObjectList[objectIndex].activeTexture, + (Vtx*) LOAD_ASSET_RAW(D_0D0062B0), 0x00000020, 0x00000040, 0x00000020, 0x00000040, 5); + + // @port Pop the transform id. + FrameInterpolation_RecordCloseChild(); } } } @@ -374,22 +381,30 @@ void OMole::func_80054D00(s32 objectIndex, s32 cameraId) { void OMole::func_80054F04(s32 cameraId) { Camera* camera = &camera1[cameraId]; - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0079C8); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0079C8); load_texture_block_rgba16_mirror((u8*) LOAD_ASSET_RAW(d_course_moo_moo_farm_mole_dirt), 0x00000010, 0x00000010); -if (_idx == 0) { - for (size_t i = 0; i < gObjectParticle2_SIZE; i++) { - s32 objectIndex = gObjectParticle2[i]; - Object* object = &gObjectList[objectIndex]; - if (object->state > 0) { - func_8008A364(objectIndex, cameraId, 0x2AABU, 0x000000C8); - if ((is_obj_flag_status_active(objectIndex, VISIBLE) != 0) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { - object->orientation[1] = func_800418AC(object->pos[0], object->pos[2], camera->pos); - rsp_set_matrix_gObjectList(objectIndex); - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D006980); + if (_idx == 0) { + for (size_t i = 0; i < gObjectParticle2_SIZE; i++) { + s32 objectIndex = gObjectParticle2[i]; + Object* object = &gObjectList[objectIndex]; + if (object->state > 0) { + func_8008A364(objectIndex, cameraId, 0x2AABU, 0x000000C8); + if ((is_obj_flag_status_active(objectIndex, VISIBLE) != 0) && + (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { + + // @port: Tag the transform. + FrameInterpolation_RecordOpenChild("func_80054F04", TAG_OBJECT(object) | (i << 32)); + + object->orientation[1] = func_800418AC(object->pos[0], object->pos[2], camera->pos); + rsp_set_matrix_gObjectList(objectIndex); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D006980); + + // @port Pop the transform id. + FrameInterpolation_RecordCloseChild(); + } } } } -} gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); } diff --git a/src/port/interpolation/FrameInterpolation.cpp b/src/port/interpolation/FrameInterpolation.cpp index 767b83316..3d1512f55 100644 --- a/src/port/interpolation/FrameInterpolation.cpp +++ b/src/port/interpolation/FrameInterpolation.cpp @@ -76,7 +76,7 @@ enum class Op { SetTranslateRotate }; -typedef pair<const void*, int> label; +typedef pair<const void*, uintptr_t> label; union Data { Data() { @@ -575,7 +575,7 @@ void FrameInterpolation_StopRecord(void) { is_recording = false; } -void FrameInterpolation_RecordOpenChild(const void* a, int b) { +void FrameInterpolation_RecordOpenChild(const void* a, uintptr_t b) { if (!is_recording) return; label key = { a, b }; diff --git a/src/port/interpolation/FrameInterpolation.h b/src/port/interpolation/FrameInterpolation.h index debb5b890..06a7cf3d4 100644 --- a/src/port/interpolation/FrameInterpolation.h +++ b/src/port/interpolation/FrameInterpolation.h @@ -29,7 +29,7 @@ void FrameInterpolation_StopRecord(void); void FrameInterpolation_RecordMarker(const char* file, int line); -void FrameInterpolation_RecordOpenChild(const void* a, int b); +void FrameInterpolation_RecordOpenChild(const void* a, uintptr_t b); void FrameInterpolation_RecordCloseChild(void); diff --git a/src/racing/actors.c b/src/racing/actors.c index 65c734be3..d6fd2ade1 100644 --- a/src/racing/actors.c +++ b/src/racing/actors.c @@ -510,6 +510,7 @@ void render_cows(Camera* camera, Mat4 arg1) { gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2); var_s5 = NULL; var_s1 = var_t1; + while (var_s1->pos[0] != END_OF_SPAWN_DATA) { sp88[0] = var_s1->pos[0] * gCourseDirection; sp88[1] = var_s1->pos[1]; @@ -524,6 +525,12 @@ void render_cows(Camera* camera, Mat4 arg1) { arg1[3][0] = sp88[0]; arg1[3][1] = sp88[1]; arg1[3][2] = sp88[2]; + + // @port: Tag the transform. + FrameInterpolation_RecordOpenChild("render_actor_cow", ((var_s1->pos[0] & 0xFFFF) << 32) | + ((var_s1->pos[1] & 0xFFFF) << 16) | + (var_s1->pos[2] & 0xFFFF)); + if ((gMatrixObjectCount < MTX_OBJECT_POOL_SIZE) && (render_set_position(arg1, 0) != 0)) { switch (var_s1->someId) { case 0: @@ -545,6 +552,9 @@ void render_cows(Camera* camera, Mat4 arg1) { } else { return; } + + // @port Pop the transform id. + FrameInterpolation_RecordCloseChild(); } var_s1++; } @@ -655,6 +665,11 @@ void render_palm_trees(Camera* camera, Mat4 arg1) { continue; } + // @port: Tag the transform. + FrameInterpolation_RecordOpenChild("render_actor_cow", ((var_s1->pos[0] & 0xFFFF) << 32) | + ((var_s1->pos[1] & 0xFFFF) << 16) | + (var_s1->pos[2] & 0xFFFF)); + test &= 0xF; test = (s16) test; if (test == 6) { @@ -691,6 +706,8 @@ void render_palm_trees(Camera* camera, Mat4 arg1) { } var_s1++; } + // @port Pop the transform id. + FrameInterpolation_RecordCloseChild(); } } @@ -708,7 +725,7 @@ void render_actor_shell(Camera* camera, Mat4 matrix, struct ShellActor* shell) { //! @todo Is this making the shell spin? // Is it doing this by modifying a an address? uintptr_t phi_t3; - + // @port: Tag the transform. FrameInterpolation_RecordOpenChild("Shell", TAG_ITEM_ADDR(shell)); @@ -2657,7 +2674,7 @@ void update_course_actors(void) { } const char* get_actor_name(s32 id) { - switch(id) { + switch (id) { case ACTOR_FALLING_ROCK: return "Falling Rock"; case ACTOR_GREEN_SHELL: |
