diff options
| -rw-r--r-- | mm/2s2h/Rando/MiscBehavior/OnCycleSave.cpp | 13 | ||||
| -rw-r--r-- | mm/2s2h/Rando/StaticData/Checks.cpp | 2 |
2 files changed, 12 insertions, 3 deletions
diff --git a/mm/2s2h/Rando/MiscBehavior/OnCycleSave.cpp b/mm/2s2h/Rando/MiscBehavior/OnCycleSave.cpp index 2dda00f7d..473a61c70 100644 --- a/mm/2s2h/Rando/MiscBehavior/OnCycleSave.cpp +++ b/mm/2s2h/Rando/MiscBehavior/OnCycleSave.cpp @@ -87,8 +87,17 @@ void Rando::MiscBehavior::AfterEndOfCycleSave() { ~(1 << (randoStaticCheck.flag & 0x1F)); } break; - // most of the others are handled by the game, with the exception of PERSISTENT_CYCLE_FLAGS_SET, not - // sure if any of these cases affect us yet so ignoring for now + case FLAG_CYCL_SCENE_COLLECTIBLE: + // Clear the flag without triggering hook + if (gPlayState->sceneId == randoStaticCheck.sceneId) { + gPlayState->actorCtx.sceneFlags.collectible[(randoStaticCheck.flag & ~0x1F) >> 5] &= + ~(1 << (randoStaticCheck.flag & 0x1F)); + } + gSaveContext.save.saveInfo.permanentSceneFlags[randoStaticCheck.sceneId].collectible &= + ~(1 << (randoStaticCheck.flag & 0x1F)); + gSaveContext.cycleSceneFlags[randoStaticCheck.sceneId].collectible &= + ~(1 << (randoStaticCheck.flag & 0x1F)); + break; } } diff --git a/mm/2s2h/Rando/StaticData/Checks.cpp b/mm/2s2h/Rando/StaticData/Checks.cpp index 3bc91fcea..31b6ca31a 100644 --- a/mm/2s2h/Rando/StaticData/Checks.cpp +++ b/mm/2s2h/Rando/StaticData/Checks.cpp @@ -51,7 +51,7 @@ std::map<RandoCheckId, RandoStaticCheck> Checks = { RC(RC_CLOCK_TOWN_GREAT_FAIRY_ALT, RCTYPE_NPC, SCENE_YOUSEI_IZUMI, FLAG_NONE, 0x00, RI_MASK_GREAT_FAIRY), RC(RC_CLOCK_TOWN_GREAT_FAIRY, RCTYPE_NPC, SCENE_YOUSEI_IZUMI, FLAG_NONE, 0x00, RI_PROGRESSIVE_MAGIC), RC(RC_CLOCK_TOWN_LAUNDRY_GURU_GURU, RCTYPE_NPC, SCENE_ALLEY, FLAG_WEEK_EVENT_REG, WEEKEVENTREG_38_40, RI_MASK_BREMEN), - RC(RC_CLOCK_TOWN_NORTH_BOMB_LADY, RCTYPE_NPC, SCENE_BACKTOWN, FLAG_CYCL_SCENE_COLLECTIBLE, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_RECEIVED_BLAST_MASK, RI_MASK_BLAST), + RC(RC_CLOCK_TOWN_NORTH_BOMB_LADY, RCTYPE_NPC, SCENE_BACKTOWN, FLAG_WEEK_EVENT_REG, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_RECEIVED_BLAST_MASK, RI_MASK_BLAST), RC(RC_CLOCK_TOWN_NORTH_TINGLE_MAP_01, RCTYPE_TINGLE_SHOP, SCENE_BACKTOWN, FLAG_NONE, 0x00, RI_TINGLE_MAP_CLOCK_TOWN), RC(RC_CLOCK_TOWN_NORTH_TINGLE_MAP_02, RCTYPE_TINGLE_SHOP, SCENE_BACKTOWN, FLAG_NONE, 0x00, RI_TINGLE_MAP_WOODFALL), RC(RC_CLOCK_TOWN_NORTH_TREE_PIECE_OF_HEART, RCTYPE_HEART, SCENE_BACKTOWN, FLAG_CYCL_SCENE_COLLECTIBLE, 0x0A, RI_HEART_PIECE), |
