From f201a494d261ec2b4824bf1b2cce31d73bcb71da Mon Sep 17 00:00:00 2001 From: Archez Date: Fri, 28 Jun 2024 17:48:24 -0400 Subject: [PATCH] Fix: Clean up flags when using debug warp (#728) * Fix: Clean up flags when using debug warp * comments --- .../overlays/gamestates/ovl_select/z_select.c | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/mm/src/overlays/gamestates/ovl_select/z_select.c b/mm/src/overlays/gamestates/ovl_select/z_select.c index b0ffbc4ef..9e68cf8cd 100644 --- a/mm/src/overlays/gamestates/ovl_select/z_select.c +++ b/mm/src/overlays/gamestates/ovl_select/z_select.c @@ -20,13 +20,33 @@ void MapSelect_LoadConsoleLogo(MapSelectState* this) { void MapSelect_LoadGame(MapSelectState* this, u32 entrance, s32 spawn) { if (gSaveContext.fileNum == 0xFF) { Sram_InitDebugSave(); + + // #region 2S2H [Debug] Clear all flags when using debug file slot. + // This is mostly copied from Sram_OpenSave. + for (size_t i = 0; i < ARRAY_COUNT(gSaveContext.eventInf); i++) { + gSaveContext.eventInf[i] = 0; + } + + for (size_t i = 0; i < ARRAY_COUNT(gSaveContext.cycleSceneFlags); i++) { + gSaveContext.cycleSceneFlags[i].chest = gSaveContext.save.saveInfo.permanentSceneFlags[i].chest; + gSaveContext.cycleSceneFlags[i].switch0 = gSaveContext.save.saveInfo.permanentSceneFlags[i].switch0; + gSaveContext.cycleSceneFlags[i].switch1 = gSaveContext.save.saveInfo.permanentSceneFlags[i].switch1; + gSaveContext.cycleSceneFlags[i].clearedRoom = gSaveContext.save.saveInfo.permanentSceneFlags[i].clearedRoom; + gSaveContext.cycleSceneFlags[i].collectible = gSaveContext.save.saveInfo.permanentSceneFlags[i].collectible; + } + // #endregion } + // #region 2S2H [Debug] Clear some potential lingering flags + CLEAR_EVENTINF(EVENTINF_17); + CLEAR_EVENTINF(EVENTINF_TRIGGER_DAYTELOP); + // #endregion + gSaveContext.buttonStatus[EQUIP_SLOT_B] = BTN_ENABLED; gSaveContext.buttonStatus[EQUIP_SLOT_C_LEFT] = BTN_ENABLED; gSaveContext.buttonStatus[EQUIP_SLOT_C_DOWN] = BTN_ENABLED; gSaveContext.buttonStatus[EQUIP_SLOT_C_RIGHT] = BTN_ENABLED; - // #region 2S2H + // #region 2S2H [Dpad] gSaveContext.shipSaveContext.dpad.status[EQUIP_SLOT_D_RIGHT] = BTN_ENABLED; gSaveContext.shipSaveContext.dpad.status[EQUIP_SLOT_D_LEFT] = BTN_ENABLED; gSaveContext.shipSaveContext.dpad.status[EQUIP_SLOT_D_DOWN] = BTN_ENABLED;