From c4f5bc15ba7dce18d02c11eef04abaadb976dd3e Mon Sep 17 00:00:00 2001
From: Tacoman369 <90735287+Tacoman369@users.noreply.github.com>
Date: Sun, 31 May 2026 17:17:03 -0500
Subject: [PATCH 1/8] Menu Update 1
Separates Items into separate categories based on impact to the game as well as creates new sub menu for ItemShuffle to contain the new menus. Dungeon settings, Item Pool Settings, and Starting Inventory menus were also moved into the new Item Shuffle menu so all item related settings are under one menu
---
source/include/settings.hpp | 1 +
source/settings.cpp | 130 ++++++++++++++++++++++++------------
2 files changed, 90 insertions(+), 41 deletions(-)
diff --git a/source/include/settings.hpp b/source/include/settings.hpp
index 9887a05..29865d6 100644
--- a/source/include/settings.hpp
+++ b/source/include/settings.hpp
@@ -569,6 +569,7 @@ namespace Settings {
extern Menu gameSettings;
extern Option RepeatableItemsOnTokens;
+ extern std::vector
shuffleItemsMenu;
}
diff --git a/source/settings.cpp b/source/settings.cpp
index 204036c..d7fb0f1 100644
--- a/source/settings.cpp
+++ b/source/settings.cpp
@@ -99,6 +99,7 @@ namespace Settings {
//Option LogicGrottosWithoutAgony = LogicTrick(" Grotto Access\n w/o Shard of Agony", LogicGrottosWithoutAgonyDesc);
std::vector trickOptions = {
&ToggleAllTricks
+
//&LogicGrottosWithoutAgony,
};
/*To-Do Glitches*/
@@ -199,7 +200,7 @@ namespace Settings {
&StartingNutCapacity,
};
std::vector startingInventoryInventory = {
- &StartingOcarina,
+ //&StartingOcarina,
&StartingNotebook,
&StartingBombBag,
&StartingBombchus,
@@ -264,8 +265,8 @@ namespace Settings {
};
std::vector startingInventoryUpgrades = {
- &StartingKokiriSword,
- &StartingShield,
+ //&StartingKokiriSword,
+ //&StartingShield,
&StartingWallet,
&StartingHealth,
&StartingMagicMeter,
@@ -310,29 +311,58 @@ namespace Settings {
Option ShuffleBombersNotebook = Option::Bool("Shuffle Notebook", {"Off", "On"}, {shuffleBombersNotebookDesc});
Option ShuffleMoonItems = Option::Bool("Shuffle Moon Items", {"Off", "On"}, {shuffleMoonItemsDesc});
Option ShuffleFierceDeity = Option::Bool("Shuffle Fierce Deity", {"Off", "On"}, {shuffleFierceDeityDesc});
- std::vector shuffleItemOptions = {
- &ShuffleMainInventory,
- //&ShuffleKokiriSword, --redundant
- //&ShuffleStartingShield, --redundant
- &ShuffleMasks,
- &ShuffleTransformation,
- &ShufflePiecesOfHeart,
- &ShuffleSongs,
- &ShuffleSoaring,
- &ShuffleSongOfTime,
- //&Shopsanity,
- &Tokensanity,
- &ShuffleMerchants,
- &ShuffleTradeItems,
- &ShuffleGFRewards,
- //&ShuffleCows,
- //&ShuffleOcarinas,
- &ShuffleTingleMaps,
- //&ShuffleMagicBeans,
- &ShuffleBombersNotebook,
- &ShuffleMoonItems,
- &ShuffleFierceDeity,
+ // std::vector shuffleItemOptions = {
+ // &ShuffleMainInventory,
+ // //&ShuffleKokiriSword, --redundant
+ // //&ShuffleStartingShield, --redundant
+ // &ShuffleMasks,
+ // &ShuffleTransformation,
+ // &ShufflePiecesOfHeart,
+ // &ShuffleSongs,
+ // &ShuffleSoaring,
+ // &ShuffleSongOfTime,
+ // //&Shopsanity,
+ // &Tokensanity,
+ // &ShuffleMerchants,
+ // &ShuffleTradeItems,
+ // &ShuffleGFRewards,
+ // //&ShuffleCows,
+ // //&ShuffleOcarinas,
+ // &ShuffleTingleMaps,
+ // //&ShuffleMagicBeans,
+ // &ShuffleBombersNotebook,
+ // &ShuffleMoonItems,
+ // &ShuffleFierceDeity,
+ // };
+
+ //New Menus - Splitting options for smaller menus
+ std::vector shuffleMajorItems = {
+ &ShuffleMainInventory,
+ &ShuffleMasks,
+ &ShuffleTransformation,
+ &StartingKokiriSword,
+ &StartingShield,
+ &StartingOcarina,
+ &ShufflePiecesOfHeart,
+ &ShuffleSongs,
+ &ShuffleSoaring,
+ &ShuffleSongOfTime,
+ &Tokensanity,
+ //&Shopsanity,
+ &ShuffleGFRewards,
};
+
+ std::vector shuffleSideQuestItems = {
+ &ShuffleMerchants,
+ &ShuffleTradeItems,
+ &ShuffleTingleMaps,
+ &ShuffleBombersNotebook,
+ //&ShuffleCows,
+ //&ShuffleMagicBeans,
+ &ShuffleMoonItems,
+ &ShuffleFierceDeity,
+ };
+
//Shuffle Dungeon Items
Option RandomizeDungeon = Option::U8("Randomize Settings", { "No","Yes"}, { dungeonRandomize}, OptionCategory::Toggle);
Option MapsAndCompasses = Option::U8("Maps/Compasses", { "Vanilla", "Start With", "Own Dungeon", "Any Dungeon", "Overworld", "Anywhere" }, { mapCompassVanilla, mapCompassStartWith, mapCompassOwnDungeon, mapCompassAnyDungeon, mapCompassOverworld, mapCompassAnywhere }, OptionCategory::Setting, (u8)MapsAndCompassesSetting::MAPSANDCOMPASSES_VANILLA);
@@ -604,6 +634,17 @@ namespace Settings {
&startingInventoryRemainsMenu,
&startingInventoryTokensMenu,
};
+ Menu shuffleMajorItemsMenu = Menu::SubMenu("Major Items", &shuffleMajorItems);
+ Menu shuffleSideQuestMenu = Menu::SubMenu("Side Quest Items", &shuffleSideQuestItems);
+ std::vector shuffleItemsMenu = {
+ &shuffleMajorItemsMenu,
+ &shuffleSideQuestMenu,
+ &shuffleDungeon,
+ &itemPool,
+ &startingInventory,
+
+ };
+
//Menu mainSettings = Menu::SubMenu("Main Settings", &mainSettingsOptions);
Menu comfort = Menu::SubMenu("Comfort Settings", &comfortOptions);
Menu restorationSettings = Menu::SubMenu("Restoration Settings", &restorationOptions);
@@ -611,20 +652,21 @@ namespace Settings {
Menu settingsPresets = Menu::SubMenu("Settings Presets", &settingsPresetItems);
Menu cosmetics = Menu::SubMenu("Cosmetic Settings", &cosmeticOptions);
Menu generateRandomizer = Menu::Action ("Generate Randomizer", GENERATE_MODE);
- Menu shuffleItems = Menu::SubMenu("Item Shuffle Settings", &shuffleItemOptions);
+ Menu shuffleItems = Menu::SubMenu("Item Shuffle Settings", &shuffleItemsMenu, false);
Menu shuffleDungeon = Menu::SubMenu("Dungeon Settings", &dungeonSettingsOptions);
Menu itemPool = Menu::SubMenu("Item Pool Settings", &itemPoolSettingsOptions);
Menu detailLogic = Menu::SubMenu("Detailed Logic Settings", &detailLogicSettings);
Menu customInputs = Menu::SubMenu("Custom Button Mapping", &customButtons);
+
//adding a menu with no options crashes, might fix later
std::vector mainMenu = {
&logicSettings,
&gameSettings,
&shuffleItems,
- &shuffleDungeon,
- &itemPool,
- &startingInventory,
+ //&shuffleDungeon,
+ //&itemPool,
+ //&startingInventory,
&detailLogic,
&comfort,
&restorationSettings,
@@ -1095,7 +1137,10 @@ namespace Settings {
for (auto op : glitchOptions) {
op->SetToDefault();
}
- for (auto op : shuffleItemOptions) {
+ for (auto op : shuffleMajorItems) {
+ op->SetToDefault();
+ }
+ for (auto op : shuffleSideQuestItems) {
op->SetToDefault();
}
for (auto op : otherSettingsOptions) {
@@ -1592,26 +1637,29 @@ namespace Settings {
}
//Show or Hide Shuffle Song of Soaring / Song of Time if Song Shuffle is on / off
- if (ShuffleSongs.Value() == u8(0)) {
+ if (ShuffleSongs.Value() == 0) {
ShuffleSoaring.Hide();
ShuffleSongOfTime.Hide();
}
- else {
- ShuffleSoaring.Unhide();
- ShuffleSoaring.Unlock();
- ShuffleSongOfTime.Unhide();
- ShuffleSongOfTime.Unlock();
- }
//if starting with Song of Soaring or Song of Time set settings to Vanilla and hide and lock
- if (StartingSongOfSoaring.Value() == u8(1)) {
+ if (StartingSongOfSoaring.Value() == 1) {
ShuffleSoaring.SetSelectedIndex(0);
- ShuffleSoaring.Hide();
ShuffleSoaring.Lock();
+ ShuffleSoaring.Hide();
}
- if (StartingSongOfTime.Value() == u8(1)) {
+ else {
+ ShuffleSoaring.Unhide();
+ ShuffleSoaring.Unlock();
+ }
+ if (StartingSongOfTime.Value() == 1) {
ShuffleSongOfTime.SetSelectedIndex(0);
- ShuffleSongOfTime.Hide();
ShuffleSongOfTime.Lock();
+ ShuffleSongOfTime.Hide();
+ }
+ //If not starting with Song of Soaring or Song of Time unlock and unhide them
+ else {
+ ShuffleSongOfTime.Unhide();
+ ShuffleSongOfTime.Unlock();
}
ResolveExcludedLocationConflicts();
From 756da575b2e524b66996cea59c3934c731e57684 Mon Sep 17 00:00:00 2001
From: Tacoman369 <90735287+Tacoman369@users.noreply.github.com>
Date: Sun, 31 May 2026 17:26:43 -0500
Subject: [PATCH 2/8] Update settings.cpp
---
source/settings.cpp | 38 ++++++++++++++++++++++----------------
1 file changed, 22 insertions(+), 16 deletions(-)
diff --git a/source/settings.cpp b/source/settings.cpp
index d7fb0f1..6688394 100644
--- a/source/settings.cpp
+++ b/source/settings.cpp
@@ -1637,30 +1637,36 @@ namespace Settings {
}
//Show or Hide Shuffle Song of Soaring / Song of Time if Song Shuffle is on / off
- if (ShuffleSongs.Value() == 0) {
- ShuffleSoaring.Hide();
- ShuffleSongOfTime.Hide();
- }
+ if (ShuffleSongs.Value() == 0) {
+ ShuffleSoaring.SetSelectedIndex(0);
+ ShuffleSoaring.Lock();
+ ShuffleSongOfTime.SetSelectedIndex(0);
+ ShuffleSongOfTime.Lock();
+ }
+ else {
+ ShuffleSoaring.Unlock();
+ ShuffleSongOfTime.Unlock();
+ }
//if starting with Song of Soaring or Song of Time set settings to Vanilla and hide and lock
if (StartingSongOfSoaring.Value() == 1) {
- ShuffleSoaring.SetSelectedIndex(0);
+ //ShuffleSoaring.SetSelectedIndex(0);
ShuffleSoaring.Lock();
- ShuffleSoaring.Hide();
- }
- else {
- ShuffleSoaring.Unhide();
- ShuffleSoaring.Unlock();
+ //ShuffleSoaring.Hide();
}
+ // else {
+ // ShuffleSoaring.Unhide();
+ // ShuffleSoaring.Unlock();
+ // }
if (StartingSongOfTime.Value() == 1) {
- ShuffleSongOfTime.SetSelectedIndex(0);
+ //ShuffleSongOfTime.SetSelectedIndex(0);
ShuffleSongOfTime.Lock();
- ShuffleSongOfTime.Hide();
+ //ShuffleSongOfTime.Hide();
}
//If not starting with Song of Soaring or Song of Time unlock and unhide them
- else {
- ShuffleSongOfTime.Unhide();
- ShuffleSongOfTime.Unlock();
- }
+ // else {
+ // ShuffleSongOfTime.Unhide();
+ // ShuffleSongOfTime.Unlock();
+ // }
ResolveExcludedLocationConflicts();
}
From 6f6cb8508dc38a5e3828b44ba66a12bb02b02901 Mon Sep 17 00:00:00 2001
From: Tacoman369 <90735287+Tacoman369@users.noreply.github.com>
Date: Thu, 4 Jun 2026 10:50:13 -0500
Subject: [PATCH 3/8] Update settings.cpp
---
source/settings.cpp | 36 +++++-------------------------------
1 file changed, 5 insertions(+), 31 deletions(-)
diff --git a/source/settings.cpp b/source/settings.cpp
index 6688394..b556178 100644
--- a/source/settings.cpp
+++ b/source/settings.cpp
@@ -1636,37 +1636,11 @@ namespace Settings {
LanguageSelect.SetSelectedIndex(LANGUAGE_NONE);
}
- //Show or Hide Shuffle Song of Soaring / Song of Time if Song Shuffle is on / off
- if (ShuffleSongs.Value() == 0) {
- ShuffleSoaring.SetSelectedIndex(0);
- ShuffleSoaring.Lock();
- ShuffleSongOfTime.SetSelectedIndex(0);
- ShuffleSongOfTime.Lock();
- }
- else {
- ShuffleSoaring.Unlock();
- ShuffleSongOfTime.Unlock();
- }
- //if starting with Song of Soaring or Song of Time set settings to Vanilla and hide and lock
- if (StartingSongOfSoaring.Value() == 1) {
- //ShuffleSoaring.SetSelectedIndex(0);
- ShuffleSoaring.Lock();
- //ShuffleSoaring.Hide();
- }
- // else {
- // ShuffleSoaring.Unhide();
- // ShuffleSoaring.Unlock();
- // }
- if (StartingSongOfTime.Value() == 1) {
- //ShuffleSongOfTime.SetSelectedIndex(0);
- ShuffleSongOfTime.Lock();
- //ShuffleSongOfTime.Hide();
- }
- //If not starting with Song of Soaring or Song of Time unlock and unhide them
- // else {
- // ShuffleSongOfTime.Unhide();
- // ShuffleSongOfTime.Unlock();
- // }
+ //There was code here to force set Song of Soaring and Song of Time to off if the overarching SongSanity setting was set to off.
+ //I chose not to include it because it allows for the choice to randomize only those two songs outside of the other songs grouped
+ //into Songsanity since they are already coded in item_pool.cpp to be added to the pool separately based on these settings anyways
+ //so locking them out just removes that choice which is less fun than allowing it.
+
ResolveExcludedLocationConflicts();
}
From 0a154c08fd1e6f4dcba3ff6009977121237168cf Mon Sep 17 00:00:00 2001
From: Tacoman369 <90735287+Tacoman369@users.noreply.github.com>
Date: Sat, 6 Jun 2026 20:12:31 -0500
Subject: [PATCH 4/8] LogicFixes
-Removes forced Green Rupees on Deku Mask and Bombers Notebook locations when starting with Song of Healing (no longer needed as the SoH cutscene will always play and give a reward now that songsanity is implemented)
- Adds SoT requirement to enter the moon (guarantees ability to exit)
- Hides the new Upright Death Armos Room Chest from the Spoiler Log as it exists only for the override to be created for no logic runs.
---
source/item_pool.cpp | 10 +++++-----
source/location_access.cpp | 2 +-
source/spoiler_log.cpp | 5 +++++
3 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/source/item_pool.cpp b/source/item_pool.cpp
index 6ccc0f9..ef54d97 100644
--- a/source/item_pool.cpp
+++ b/source/item_pool.cpp
@@ -1017,11 +1017,11 @@ void GenerateItemPool() {
else {
PlaceVanillaSongs();
}
-
- if (StartingSongOfHealing.Value() == u8(1)){//if starting with song of healing fill deku mask and notebook spots as they are unobtainable
- PlaceItemInLocation(HMS_DEKU_MASK, GREEN_RUPEE);
- PlaceItemInLocation(HMS_BOMBERS_NOTEBOOK, GREEN_RUPEE);
- }
+ //No Longer Needed since Song of Healing is now randomized and the check is always obtainable even when starting with SoH
+ // if (StartingSongOfHealing.Value() == u8(1)){//if starting with song of healing fill deku mask and notebook spots as they are unobtainable
+ // PlaceItemInLocation(HMS_DEKU_MASK, GREEN_RUPEE);
+ // PlaceItemInLocation(HMS_BOMBERS_NOTEBOOK, GREEN_RUPEE);
+ // }
//GREAT FAIRY SHUFFLE
if(ShuffleGFRewards.Is((u8)GreatFairyRewardShuffleSetting::GFREWARDSHUFFLE_VANILLA)){
diff --git a/source/location_access.cpp b/source/location_access.cpp
index 1a2c5ef..f526a0d 100644
--- a/source/location_access.cpp
+++ b/source/location_access.cpp
@@ -597,7 +597,7 @@ void AreaTable_Init() {
{
//Exits
Entrance(S_CLOCK_TOWN, {[]{return true;}}),
- Entrance(THE_MOON_TREE_ROOM, {[]{return CanGoToMoon;}}),
+ Entrance(THE_MOON_TREE_ROOM, {[]{return CanGoToMoon && CanPlay(SongOfTime);}}),
});
areaTable[LAUNDRY_POOL] = Area("Laundry Pool", "Laundry Pool", LAUNDRY_POOL, {
diff --git a/source/spoiler_log.cpp b/source/spoiler_log.cpp
index 40d38e0..0a89e1a 100644
--- a/source/spoiler_log.cpp
+++ b/source/spoiler_log.cpp
@@ -283,6 +283,11 @@ static void WriteIngameSpoilerLog() {
if (Location(key)->IsCategory(Category::cZoraEgg)) {
continue;
}
+ //Don't show the Stone Tower Upright Death Armos Room Chest as it is only created for no logic playthroughs incase the player does a Goron Missile to obtain the chest earlier than intended.
+ //It contains the same item as the normal Stone Tower Temple Death Armos Room Chest so it does not need to be shown in the spoiler log.
+ if (key == STONE_TOWER_TEMPLE_UPRIGHT_DEATH_ARMOS_ROOM_CHEST) {
+ continue;
+ }
From 067ff38ec2dd3ae476765fc62e0f2981132a17f1 Mon Sep 17 00:00:00 2001
From: Tacoman369 <90735287+Tacoman369@users.noreply.github.com>
Date: Sat, 6 Jun 2026 20:17:13 -0500
Subject: [PATCH 5/8] Update Z3DR
---
Z3DR | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Z3DR b/Z3DR
index 0a68f83..fb27ac2 160000
--- a/Z3DR
+++ b/Z3DR
@@ -1 +1 @@
-Subproject commit 0a68f8318eb45ba7fa32706ff3988fd0f6851648
+Subproject commit fb27ac2d80c4c6c348ef98e23fed41c0821bbb0f
From 0bf67a55bfa66f1bc60d586a2e811a9f2ea83f08 Mon Sep 17 00:00:00 2001
From: Tacoman369 <90735287+Tacoman369@users.noreply.github.com>
Date: Sat, 13 Jun 2026 16:23:14 -0500
Subject: [PATCH 6/8] ChestAnims
- Enables the Chest Animations setting
- Fixes vanilla item for WFT Map Chest
---
source/item_location.cpp | 2 +-
source/settings.cpp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/source/item_location.cpp b/source/item_location.cpp
index f59a39c..4828e30 100644
--- a/source/item_location.cpp
+++ b/source/item_location.cpp
@@ -271,7 +271,7 @@ void LocationTable_Init() {
//Woodfall Temple
locationTable[WOODFALL_TEMPLE_HEROS_BOW_CHEST] = ItemLocation::Chest (0x1B, 0x1B, true, "Woodfall Temple Hero's Bow Chest", WOODFALL_TEMPLE_HEROS_BOW_CHEST, PROGRESSIVE_BOW, {Category::cWoodfall, Category::cWoodfallTemple,Category::cChest ,Category::cDayOne, Category::cMainInventory}, SpoilerCollectionCheckGroup::GROUP_DUNGEON_WOODFALL_TEMPLE );
- locationTable[WOODFALL_TEMPLE_MAP_CHEST] = ItemLocation::Chest (0x1B, 0x1D, true, "Woodfall Temple Map Chest", WOODFALL_TEMPLE_MAP_CHEST, WOODFALL_MAP, {Category::cWoodfall, Category::cWoodfallTemple,Category::cVanillaMap,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_DUNGEON_WOODFALL_TEMPLE );
+ locationTable[WOODFALL_TEMPLE_MAP_CHEST] = ItemLocation::Chest (0x1B, 0x1D, true, "Woodfall Temple Map Chest", WOODFALL_TEMPLE_MAP_CHEST, WOODFALL_TEMPLE_MAP, {Category::cWoodfall, Category::cWoodfallTemple,Category::cVanillaMap,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_DUNGEON_WOODFALL_TEMPLE );
locationTable[WOODFALL_TEMPLE_COMPASS_CHEST] = ItemLocation::Chest (0x1B, 0x1C, true, "Woodfall Temple Compass Chest", WOODFALL_TEMPLE_COMPASS_CHEST, WOODFALL_TEMPLE_COMPASS, {Category::cWoodfall, Category::cWoodfallTemple,Category::cVanillaCompass,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_DUNGEON_WOODFALL_TEMPLE );
locationTable[WOODFALL_TEMPLE_BOSS_KEY_CHEST] = ItemLocation::Chest (0x1B, 0x1E, true, "Woodfall Temple Boss Key Chest", WOODFALL_TEMPLE_BOSS_KEY_CHEST, WOODFALL_TEMPLE_BOSS_KEY, {Category::cWoodfall, Category::cWoodfallTemple,Category::cVanillaBossKey,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_DUNGEON_WOODFALL_TEMPLE );
locationTable[WOODFALL_TEMPLE_SMALL_KEY_CHEST] = ItemLocation::Chest (0x1B, 0x01, true, "Woodfall Temple Small Key Chest", WOODFALL_TEMPLE_SMALL_KEY_CHEST, WOODFALL_TEMPLE_SMALL_KEY, {Category::cWoodfall, Category::cWoodfallTemple,Category::cVanillaSmallKey,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_DUNGEON_WOODFALL_TEMPLE );
diff --git a/source/settings.cpp b/source/settings.cpp
index 708cf9b..c73d63f 100644
--- a/source/settings.cpp
+++ b/source/settings.cpp
@@ -419,7 +419,7 @@ namespace Settings {
&HintDistribution,
&CompassShowWoTH,
&DamageMultiplier,
- //&ChestAnimations,
+ &ChestAnimations,
&ChestSize,
//&ChangeOverworldItems,
//&MenuOpeningButton,
From 54fd53d88753f9e35934e3ece234eaec65decbf6 Mon Sep 17 00:00:00 2001
From: Tacoman369 <90735287+Tacoman369@users.noreply.github.com>
Date: Sat, 13 Jun 2026 16:25:18 -0500
Subject: [PATCH 7/8] update z3dr
update z3dr
---
.gitmodules | 2 +-
Z3DR | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.gitmodules b/.gitmodules
index a0bdeab..12a5f3b 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,4 +1,4 @@
[submodule "Z3DR"]
path = Z3DR
url = https://github.com/Z3DR/mm3dr.git
- branch = dev
\ No newline at end of file
+ branch = dev
diff --git a/Z3DR b/Z3DR
index fb27ac2..2ec4b39 160000
--- a/Z3DR
+++ b/Z3DR
@@ -1 +1 @@
-Subproject commit fb27ac2d80c4c6c348ef98e23fed41c0821bbb0f
+Subproject commit 2ec4b39b0189eea05618032152b26bf07643f07e
From b6cfcf06d6556c0cb677c5f538e338bd7bcfb1f5 Mon Sep 17 00:00:00 2001
From: Tacoman369 <90735287+Tacoman369@users.noreply.github.com>
Date: Mon, 15 Jun 2026 20:40:02 -0500
Subject: [PATCH 8/8] Update item_location.cpp
Having category::cNull caused this location to always be in sphere 1. changed the categories so it would show up in the stone tower section though its hidden anyways
---
source/item_location.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/item_location.cpp b/source/item_location.cpp
index 4828e30..fcfc23c 100644
--- a/source/item_location.cpp
+++ b/source/item_location.cpp
@@ -302,7 +302,7 @@ void LocationTable_Init() {
locationTable[STONE_TOWER_TEMPLE_BRIDGE_SWITCH_CHEST] = ItemLocation::Chest (0x16, 0x01, true, "Stone Tower Temple Bridge Switch Chest", STONE_TOWER_TEMPLE_BRIDGE_SWITCH_CHEST, STONE_TOWER_TEMPLE_SMALL_KEY, {Category::cStoneTowerTemple, Category::cVanillaSmallKey,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_DUNGEON_STONE_TOWER );
locationTable[STONE_TOWER_TEMPLE_UPDRAFT_ROOM_CHEST] = ItemLocation::Chest (0x18, 0x04, true, "Stone Tower Temple Updraft Room Chest", STONE_TOWER_TEMPLE_UPDRAFT_ROOM_CHEST, STONE_TOWER_TEMPLE_SMALL_KEY, {Category::cStoneTowerTemple, Category::cVanillaSmallKey,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_DUNGEON_STONE_TOWER );
locationTable[STONE_TOWER_TEMPLE_DEATH_ARMOS_ROOM_CHEST] = ItemLocation::Chest (0x18, 0x05, true, "Stone Tower Temple Death Armos Room Chest", STONE_TOWER_TEMPLE_DEATH_ARMOS_ROOM_CHEST, STONE_TOWER_TEMPLE_SMALL_KEY, {Category::cStoneTowerTemple, Category::cVanillaSmallKey,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_DUNGEON_STONE_TOWER );
- locationTable[STONE_TOWER_TEMPLE_UPRIGHT_DEATH_ARMOS_ROOM_CHEST] = ItemLocation::Chest (0x16, 0x05, true, "Stone Tower Temple Upright Death Armos Room Chest", STONE_TOWER_TEMPLE_UPRIGHT_DEATH_ARMOS_ROOM_CHEST, STONE_TOWER_TEMPLE_SMALL_KEY, {Category::cNull}, SpoilerCollectionCheckGroup::GROUP_NO_GROUP);
+ locationTable[STONE_TOWER_TEMPLE_UPRIGHT_DEATH_ARMOS_ROOM_CHEST] = ItemLocation::Chest (0x16, 0x05, true, "Stone Tower Temple Upright Death Armos Room Chest", STONE_TOWER_TEMPLE_UPRIGHT_DEATH_ARMOS_ROOM_CHEST, STONE_TOWER_TEMPLE_SMALL_KEY, {Category::cStoneTowerTemple, Category::cVanillaSmallKey,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_NO_GROUP);
locationTable[STONE_TOWER_TEMPLE_LIGHT_ARROW_CHEST] = ItemLocation::Chest (0x16, 0x1B, true, "Stone Tower Temple Light Arrow Chest", STONE_TOWER_TEMPLE_LIGHT_ARROW_CHEST, LIGHT_ARROWS, {Category::cStoneTowerTemple,Category::cChest ,Category::cDayOne, Category::cMainInventory}, SpoilerCollectionCheckGroup::GROUP_DUNGEON_STONE_TOWER );
locationTable[STONE_TOWER_TEMPLE_GIANTS_MASK_CHEST] = ItemLocation::Chest (0x36, 0x00, false, "Stone Tower Temple Giant's Mask Chest", STONE_TOWER_TEMPLE_GIANTS_MASK_CHEST, GIANTS_MASK, {Category::cStoneTowerTemple,Category::cChest, Category::cVanillaMask ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_DUNGEON_STONE_TOWER );