From 2bde8fbe5db48969b47324b86c39272d3e335c2d Mon Sep 17 00:00:00 2001 From: xxAtrain223 Date: Mon, 31 Mar 2025 23:18:07 -0500 Subject: [PATCH] Use GetDungeonFromScene (#5271) * Use GetDungeonFromScene. * Remove SceneToDungeon map. --- soh/soh/Enhancements/randomizer/logic.cpp | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/soh/soh/Enhancements/randomizer/logic.cpp b/soh/soh/Enhancements/randomizer/logic.cpp index 43ff3ce56..a567cd789 100644 --- a/soh/soh/Enhancements/randomizer/logic.cpp +++ b/soh/soh/Enhancements/randomizer/logic.cpp @@ -2104,30 +2104,16 @@ namespace Rando { } } - std::unordered_map SceneToDungeon = { - { SceneID::SCENE_DEKU_TREE, DungeonKey::DEKU_TREE }, - { SceneID::SCENE_DODONGOS_CAVERN, DungeonKey::DODONGOS_CAVERN }, - { SceneID::SCENE_JABU_JABU, DungeonKey::JABU_JABUS_BELLY }, - { SceneID::SCENE_FOREST_TEMPLE, DungeonKey::FOREST_TEMPLE }, - { SceneID::SCENE_FIRE_TEMPLE, DungeonKey::FIRE_TEMPLE }, - { SceneID::SCENE_WATER_TEMPLE, DungeonKey::WATER_TEMPLE }, - { SceneID::SCENE_SPIRIT_TEMPLE, DungeonKey::SPIRIT_TEMPLE }, - { SceneID::SCENE_SHADOW_TEMPLE, DungeonKey::SHADOW_TEMPLE }, - { SceneID::SCENE_BOTTOM_OF_THE_WELL, DungeonKey::BOTTOM_OF_THE_WELL }, - { SceneID::SCENE_ICE_CAVERN, DungeonKey::ICE_CAVERN }, - { SceneID::SCENE_GERUDO_TRAINING_GROUND, DungeonKey::GERUDO_TRAINING_GROUND }, - { SceneID::SCENE_INSIDE_GANONS_CASTLE, DungeonKey::GANONS_CASTLE }, - }; - // Get the swch bit positions for the dungeon const std::vector& GetDungeonSmallKeyDoors(SceneID sceneId) { static const std::vector emptyVector; - auto foundDungeon = SceneToDungeon.find(static_cast(sceneId)); - if (foundDungeon == SceneToDungeon.end()) { + + auto dungeonInfo = Rando::Context::GetInstance()->GetDungeons()->GetDungeonFromScene(sceneId); + if (dungeonInfo == nullptr) { return emptyVector; } - bool masterQuest = Rando::Context::GetInstance()->GetDungeon(foundDungeon->second)->IsMQ(); + bool masterQuest = dungeonInfo->IsMQ(); // Create a unique key for the dungeon and master quest uint8_t key = sceneId | (masterQuest << 7);