diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 9292ec5b9f..5e8a8d4022 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -2489,7 +2489,8 @@ void Actor_InitContext(PlayState* play, ActorContext* actorCtx, ActorEntry* play SavedSceneFlags* savedSceneFlags; s32 i; - savedSceneFlags = &gSaveContext.save.info.sceneFlags[play->sceneId]; + if (play->sceneId < ARRAY_COUNT(gSaveContext.save.info.sceneFlags)) + savedSceneFlags = &gSaveContext.save.info.sceneFlags[play->sceneId]; bzero(actorCtx, sizeof(ActorContext)); diff --git a/src/code/z_play.c b/src/code/z_play.c index 486fee4b8c..a6c70bfcc5 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -1992,7 +1992,9 @@ s16 func_800C09D8(PlayState* this, s16 camId, s16 uid) { } void Play_SaveSceneFlags(PlayState* this) { - SavedSceneFlags* savedSceneFlags = &gSaveContext.save.info.sceneFlags[this->sceneId]; + SavedSceneFlags* savedSceneFlags; + if (this->sceneId < ARRAY_COUNT(gSaveContext.save.info.sceneFlags)) + savedSceneFlags = &gSaveContext.save.info.sceneFlags[this->sceneId]; savedSceneFlags->chest = this->actorCtx.flags.chest; savedSceneFlags->swch = this->actorCtx.flags.swch;