From 2d4247f10e2173dd4b07c2d717be1290e2022c15 Mon Sep 17 00:00:00 2001 From: gymnast86 Date: Sat, 11 Apr 2026 09:06:29 -0700 Subject: [PATCH] fix starting with maps and compasses --- src/dusk/randomizer/logic/item_pool.cpp | 32 ++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/dusk/randomizer/logic/item_pool.cpp b/src/dusk/randomizer/logic/item_pool.cpp index b83f15178c..1498d136a6 100644 --- a/src/dusk/randomizer/logic/item_pool.cpp +++ b/src/dusk/randomizer/logic/item_pool.cpp @@ -313,10 +313,40 @@ namespace randomizer::logic::item_pool void GenerateStartingItemPool(randomizer::logic::world::World* world) { - const auto& startingItems = world->GetSettings().GetStartingInventory(); + auto startingItems = world->GetSettings().GetStartingInventory(); auto& startingItemPool = world->GetStartingItemPool(); auto& itemPool = world->GetItemPool(); + // Add Maps and Compasses to starting items if we start with them + if (world->Setting("Maps and Compasses") == "Start With") + { + std::list mapsAndCompasses = { + {"Forest Temple Compass"}, + {"Goron Mines Compass"}, + {"Lakebed Temple Compass"}, + {"Arbiters Grounds Compass"}, + {"Snowpeak Ruins Compass"}, + {"Temple of Time Compass"}, + {"City in the Sky Compass"}, + {"Palace of Twilight Compass"}, + {"Hyrule Castle Compass"}, + {"Forest Temple Dungeon Map"}, + {"Goron Mines Dungeon Map"}, + {"Lakebed Temple Dungeon Map"}, + {"Arbiters Grounds Dungeon Map"}, + {"Snowpeak Ruins Dungeon Map"}, + {"Temple of Time Dungeon Map"}, + {"City in the Sky Dungeon Map"}, + {"Palace of Twilight Dungeon Map"}, + {"Hyrule Castle Dungeon Map"}, + }; + + for (const auto& itemName : mapsAndCompasses) + { + startingItems[itemName] = 1; + } + } + // Add each item to the world's _startingItemPool and erase it from the regular _itemPool for (const auto& [itemName, count] : startingItems) {