diff --git a/src/engine/level_script.c b/src/engine/level_script.c index 3ac827f2b..9a4ce7909 100644 --- a/src/engine/level_script.c +++ b/src/engine/level_script.c @@ -373,6 +373,11 @@ static void level_reset_globals(void) { gEnvFxBuffer = NULL; gEnvFxMode = ENVFX_MODE_NONE; + // clear area's level pool pointers + for (int i = 0; i < 8; i++) { + gAreas[i].unk04 = NULL; + } + // free models stored in dynos dynos_model_clear_pool(MODEL_POOL_LEVEL); } diff --git a/src/game/object_helpers.c b/src/game/object_helpers.c index f6e9682b2..d67a58dab 100644 --- a/src/game/object_helpers.c +++ b/src/game/object_helpers.c @@ -2627,7 +2627,7 @@ s32 cur_obj_is_mario_ground_pounding_platform(void) { if (!is_player_active(&gMarioStates[i])) { continue; } if (!gMarioStates[i].marioObj) { continue; } if (gMarioStates[i].marioObj->platform == o) { - if (determine_interaction(&gMarioStates[i], o) & INT_GROUND_POUND) { + if ((determine_interaction(&gMarioStates[i], o) & INT_GROUND_POUND) || (gMarioStates[i].action == ACT_GROUND_POUND_LAND)) { return TRUE; } }