From d42bb76023a607264c4f945514180e7c8c5a45bc Mon Sep 17 00:00:00 2001 From: kafeijao Date: Sun, 5 Mar 2023 13:47:07 +0000 Subject: [PATCH] Prevent SURFACE_HANGABLE crash (from ckosmic branch) --- src/decomp/game/mario_actions_automatic.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) 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); }