From d16bdd75b1ccb8a5dfd078a4adf210a32256d271 Mon Sep 17 00:00:00 2001 From: MegaMech Date: Mon, 9 Mar 2026 18:43:17 -0600 Subject: [PATCH] Fix Palm Tree Interp (#675) * Update actors.c * Update actors.c * Update SkyCloud.cpp * Update render_objects.c --- src/engine/sky/SkyCloud.cpp | 16 ++++++++-------- src/racing/actors.c | 3 +++ src/render_objects.c | 2 +- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/engine/sky/SkyCloud.cpp b/src/engine/sky/SkyCloud.cpp index 6c81cfbdd..d57133d31 100644 --- a/src/engine/sky/SkyCloud.cpp +++ b/src/engine/sky/SkyCloud.cpp @@ -28,22 +28,22 @@ SkyCloud::SkyCloud(ScreenContext* screen, u16 cloudVariant, u16 posY, u16 rotY, mRotY = rotY; mScale = (f32) scalePercent / 100.0; + // Stock if (GameEngine_ResourceGetTexTypeByName((const char*)CM_GetProps()->CloudTexture) != 1) { mTexture = ((u8*) LOAD_ASSET_RAW(CM_GetProps()->CloudTexture)) + (cloudVariant * 1024); - mTextureWidth = 64; - mTextureHeight = 32; mVtx = (Vtx*)D_0D005FB0; - } else { + } else { // Texture pack mTexture = CM_GetProps()->CloudTexture; - if (strcmp((const char*)CM_GetProps()->CloudTexture, gTextureExhaust0) == 0 || + + if ((strcmp((const char*)CM_GetProps()->CloudTexture, gTextureExhaust3) == 0) || + (strcmp((const char*)CM_GetProps()->CloudTexture, gTextureExhaust4) == 0) || + (strcmp((const char*)CM_GetProps()->CloudTexture, gTextureExhaust5) == 0)) { + mVtx = cloudvtx[cloudVariant]; + } else if (strcmp((const char*)CM_GetProps()->CloudTexture, gTextureExhaust0) == 0 || strcmp((const char*)CM_GetProps()->CloudTexture, gTextureExhaust1) == 0 || strcmp((const char*)CM_GetProps()->CloudTexture, gTextureExhaust2) == 0) { - mTextureWidth = 64; - mTextureHeight = 32; mVtx = cloudvtx2[cloudVariant]; } else { - mTextureWidth = 64; - mTextureHeight = 32; mVtx = cloudvtx2[cloudVariant]; } } diff --git a/src/racing/actors.c b/src/racing/actors.c index 5482a08ec..e24b53442 100644 --- a/src/racing/actors.c +++ b/src/racing/actors.c @@ -568,6 +568,7 @@ void render_cows(Camera* camera, Mat4 arg1) { break; } } else { + FrameInterpolation_RecordCloseChild(); return; } @@ -691,6 +692,7 @@ void render_palm_trees(Camera* camera, Mat4 arg1) { if (test == 6) { mtxf_pos_rotation_xyz(sp90, spD4, sp88); if (!(gMatrixObjectCount < MTX_OBJECT_POOL_SIZE)) { + FrameInterpolation_RecordCloseChild(); break; } render_set_position(sp90, 0); @@ -718,6 +720,7 @@ void render_palm_trees(Camera* camera, Mat4 arg1) { break; } } else { + FrameInterpolation_RecordCloseChild(); break; } var_s1++; diff --git a/src/render_objects.c b/src/render_objects.c index 2a0961a03..6489b2790 100644 --- a/src/render_objects.c +++ b/src/render_objects.c @@ -3502,7 +3502,7 @@ void func_80051C60(ScreenContext* screen, s16 arg0, s32 arg1) { D_8018D228 = 0xFF; gSPDisplayList(gDisplayListHead++, D_0D007A60); - DrawSkyActors(screen, arg0); + DrawSkyActors(screen, var_s5); } void func_80051EBC(ScreenContext* screen) {