Merge pull request #42 from kafeijao/prevent-hangable-crash
Prevent SURFACE_HANGABLE crashes
This commit is contained in:
@@ -412,8 +412,7 @@ s32 act_start_hanging(struct MarioState *m) {
|
|||||||
return set_mario_action(m, ACT_GROUND_POUND, 0);
|
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 == NULL || m->ceil->type != SURFACE_HANGABLE) {
|
||||||
if (m->ceil->type != SURFACE_HANGABLE) {
|
|
||||||
return set_mario_action(m, ACT_FREEFALL, 0);
|
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);
|
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);
|
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);
|
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);
|
return set_mario_action(m, ACT_FREEFALL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user