Fix more possible crashes in object_helpers.c

This commit is contained in:
MysterD 2023-05-14 10:13:32 -07:00
parent c3b82a811a
commit 94aa0796d9

View file

@ -1376,7 +1376,9 @@ void cur_obj_move_after_thrown_or_dropped(f32 forwardVel, f32 velY) {
o->oPosY = o->oFloorHeight; o->oPosY = o->oFloorHeight;
} else if (o->oFloorHeight < gLevelValues.floorLowerLimitMisc) { } else if (o->oFloorHeight < gLevelValues.floorLowerLimitMisc) {
//! OoB failsafe //! OoB failsafe
if (gMarioObject) {
obj_copy_pos(o, gMarioObject); obj_copy_pos(o, gMarioObject);
}
o->oFloorHeight = find_floor_height(o->oPosX, o->oPosY, o->oPosZ); o->oFloorHeight = find_floor_height(o->oPosX, o->oPosY, o->oPosZ);
} }
@ -1926,7 +1928,7 @@ void cur_obj_start_cam_event(UNUSED struct Object *obj, s32 cameraEvent) {
} }
void set_mario_interact_hoot_if_in_range(UNUSED s32 sp0, UNUSED s32 sp4, f32 sp8) { void set_mario_interact_hoot_if_in_range(UNUSED s32 sp0, UNUSED s32 sp4, f32 sp8) {
if (!o) { return; } if (!o || !gMarioObject) { return; }
if (o->oDistanceToMario < sp8) { if (o->oDistanceToMario < sp8) {
gMarioObject->oInteractStatus = INT_STATUS_HOOT_GRABBED_BY_MARIO; gMarioObject->oInteractStatus = INT_STATUS_HOOT_GRABBED_BY_MARIO;
} }
@ -2765,7 +2767,7 @@ void stub_obj_helpers_4(void) {
} }
s32 cur_obj_is_mario_on_platform(void) { s32 cur_obj_is_mario_on_platform(void) {
if (gMarioObject->platform == o) { if (gMarioObject && gMarioObject->platform == o) {
return TRUE; return TRUE;
} }
return FALSE; return FALSE;
@ -3297,6 +3299,7 @@ void cur_obj_align_gfx_with_floor(void) {
} }
s32 mario_is_within_rectangle(s16 minX, s16 maxX, s16 minZ, s16 maxZ) { s32 mario_is_within_rectangle(s16 minX, s16 maxX, s16 minZ, s16 maxZ) {
if (!gMarioObject) { return FALSE; }
if (gMarioObject->oPosX < minX || maxX < gMarioObject->oPosX) { if (gMarioObject->oPosX < minX || maxX < gMarioObject->oPosX) {
return FALSE; return FALSE;
} }