From 0c61b9fd07f66d08ad22f96a1211b58e874fd57d Mon Sep 17 00:00:00 2001 From: MysterD Date: Mon, 9 Aug 2021 22:43:09 -0700 Subject: [PATCH] Fixed crash when a hanging player was pushed off of the ceiling --- src/game/mario_actions_automatic.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/game/mario_actions_automatic.c b/src/game/mario_actions_automatic.c index 7b02b812..934c394a 100644 --- a/src/game/mario_actions_automatic.c +++ b/src/game/mario_actions_automatic.c @@ -415,8 +415,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); } @@ -444,7 +443,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); } @@ -468,7 +467,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); }