diff --git a/src/decomp/game/mario_actions_automatic.c b/src/decomp/game/mario_actions_automatic.c index afbe2b7..b635d29 100644 --- a/src/decomp/game/mario_actions_automatic.c +++ b/src/decomp/game/mario_actions_automatic.c @@ -412,8 +412,7 @@ s32 act_start_hanging(struct MarioState *m) { return set_mario_action(m, ACT_GROUND_POUND, 0); } - //! Crash if Mario's referenced ceiling is NULL (same for other hanging actions) - if (m->ceil->type != SURFACE_HANGABLE) { + if (m->ceil == NULL || m->ceil->type != SURFACE_HANGABLE) { return set_mario_action(m, ACT_FREEFALL, 0); } @@ -441,7 +440,7 @@ s32 act_hanging(struct MarioState *m) { return set_mario_action(m, ACT_GROUND_POUND, 0); } - if (m->ceil->type != SURFACE_HANGABLE) { + if (m->ceil == NULL || m->ceil->type != SURFACE_HANGABLE) { return set_mario_action(m, ACT_FREEFALL, 0); } @@ -465,7 +464,7 @@ s32 act_hang_moving(struct MarioState *m) { return set_mario_action(m, ACT_GROUND_POUND, 0); } - if (m->ceil->type != SURFACE_HANGABLE) { + if (m->ceil == NULL || m->ceil->type != SURFACE_HANGABLE) { return set_mario_action(m, ACT_FREEFALL, 0); }