From dcdd60c86c0b3e3410905cf28b20c4b8d476aa97 Mon Sep 17 00:00:00 2001 From: Tacoman369 <90735287+Tacoman369@users.noreply.github.com> Date: Fri, 7 Aug 2026 00:23:11 -0500 Subject: [PATCH 1/2] Starting Stray Fairies - Adds in Starting Inventory options for Dungeon Stray Fairies - Adds in separate Starting Inventory option for Clock Tower Stray Fairy as it works differently from dungeon fairies Update Z3DR Update Z3DR - Also minor adjustment on bank reward 3 because the OceanWallet500 logic variable is not needed --- Z3DR | 2 +- source/include/settings.hpp | 4 ++++ source/item_pool.cpp | 2 +- source/location_access.cpp | 2 +- source/settings.cpp | 24 +++++++++++++++++++++++- source/starting_inventory.cpp | 4 ++++ 6 files changed, 34 insertions(+), 4 deletions(-) diff --git a/Z3DR b/Z3DR index bb96482..6bd771d 160000 --- a/Z3DR +++ b/Z3DR @@ -1 +1 @@ -Subproject commit bb96482da1d1f728020f352a67191a902ea644e0 +Subproject commit 6bd771d7807f95c4a7a8616ff20fd6a8be8db25c diff --git a/source/include/settings.hpp b/source/include/settings.hpp index a33d75d..c6fc5a9 100644 --- a/source/include/settings.hpp +++ b/source/include/settings.hpp @@ -346,6 +346,10 @@ namespace Settings { extern Option StartingTwinmoldRemains; extern Option StartingSwampToken; extern Option StartingOceanToken; + extern Option StartingWoodfallStrays; + extern Option StartingSnowheadStrays; + extern Option StartingGreatBayStrays; + extern Option StartingStoneTowerStrays; extern Option StartingStickCapacity; extern Option StartingPowderKeg; extern Option StartingPictographBox; diff --git a/source/item_pool.cpp b/source/item_pool.cpp index 9bd306d..9ad2175 100644 --- a/source/item_pool.cpp +++ b/source/item_pool.cpp @@ -1141,7 +1141,7 @@ void GenerateItemPool() { //CLOCK TOWN STRAY FAIRY (Separated because it's not in a dungeon) if (!ShuffleCTStray) { - PlaceItemInLocation(CT_STRAY_FAIRY, LAUNDRY_POOL_SF); + PlaceItemInLocation(LAUNDRY_POOL_SF, CT_STRAY_FAIRY); } else { AddItemToMainPool(CT_STRAY_FAIRY, 1); diff --git a/source/location_access.cpp b/source/location_access.cpp index ed3811a..17be4ff 100644 --- a/source/location_access.cpp +++ b/source/location_access.cpp @@ -556,7 +556,7 @@ void AreaTable_Init() { LocationAccess(S_CLOCK_TOWN_FINAL_DAY_CHEST, {[] {return Hookshot || (DekuMask && MoonsTear);}}), LocationAccess(S_CLOCK_TOWN_BANK_REWARD_1, {[] {return true;}}), LocationAccess(S_CLOCK_TOWN_BANK_REWARD_2, {[] {return AnyWallet;}}),//Adult Wallet for lenience - LocationAccess(S_CLOCK_TOWN_BANK_REWARD_3, {[] {return (OceanWallet500 || ProgressiveWallet > 1);}}),//Giant Wallet for lenience + LocationAccess(S_CLOCK_TOWN_BANK_REWARD_3, {[] {return ProgressiveWallet > 1;}}),//Giant Wallet for lenience }, { //Exits diff --git a/source/settings.cpp b/source/settings.cpp index fdbea1f..7ad350b 100644 --- a/source/settings.cpp +++ b/source/settings.cpp @@ -158,6 +158,10 @@ namespace Settings { Option StartingTwinmoldRemains = Option::U8("Twinmold's Remains", { "None", "TwinMold's R." }, { "" }); Option StartingSwampToken = Option::U8("Swamp Skulltula Tokens", {/*Options 0-30 defined in InitSettings()*/ }, { "" }, OptionCategory::Setting, 0); Option StartingOceanToken = Option::U8("Ocean Skulltula Tokens", {/*Options 0-30 defined in InitSettings()*/ }, { "" }, OptionCategory::Setting, 0); + Option StartingWoodfallStrays = Option::U8("Woodfall Stray Fairies", {/*Options 0-15 defined in InitSettings()*/ }, { "" }, OptionCategory::Setting, 0); + Option StartingSnowheadStrays = Option::U8("Snowhead Stray Fairies", {/*Options 0-15 defined in InitSettings()*/ }, { "" }, OptionCategory::Setting, 0); + Option StartingGreatBayStrays = Option::U8("Great Bay Stray Fairies", {/*Options 0-15 defined in InitSettings()*/ }, { "" }, OptionCategory::Setting, 0); + Option StartingStoneTowerStrays = Option::U8("Stone Tower Stray Fairies", {/*Options 0-15 defined in InitSettings()*/ }, { "" }, OptionCategory::Setting, 0); //Starting Masks Option StartingMaskToggle = Option::U8("Masks", { "All Off", "All On", "Choose" }, { "" }); Option StartingDekuMask = Option::U8("Deku Mask", { "None", "Deku M." }, { "" }); @@ -282,6 +286,10 @@ namespace Settings { std::vector startingInventoryTokensFairys = { &StartingSwampToken, &StartingOceanToken, + &StartingWoodfallStrays, + &StartingSnowheadStrays, + &StartingGreatBayStrays, + &StartingStoneTowerStrays, }; //Excluded Locations (Individual definitions made in ItemLocation class) @@ -832,6 +840,11 @@ namespace Settings { //Tokens ctx.startingSwampTokens = StartingSwampToken.Value(); ctx.startingOceanTokens = StartingOceanToken.Value(); + //Stray Fairies + ctx.startingWoodfallStrays = StartingWoodfallStrays.Value(); + ctx.startingSnowheadStrays = StartingSnowheadStrays.Value(); + ctx.startingGreatBayStrays = StartingGreatBayStrays.Value(); + ctx.startingStoneTowerStrays = StartingStoneTowerStrays.Value(); //Masks ctx.startingDekuMask = StartingDekuMask.Value(); ctx.startingGoronMask = StartingGoronMask.Value(); @@ -1058,10 +1071,19 @@ namespace Settings { OtokenOptions.reserve(31); for (int i = 0; i <= 30; i++) { OtokenOptions.push_back(std::to_string(i)); + } + std::vector StrayOptions; + StrayOptions.reserve(16); + for (int i = 0; i <= 15; i++) { + StrayOptions.push_back(std::to_string(i)); } StartingSwampToken.SetOptions(StokenOptions); StartingOceanToken.SetOptions(OtokenOptions); - + StartingWoodfallStrays.SetOptions(StrayOptions); + StartingSnowheadStrays.SetOptions(StrayOptions); + StartingGreatBayStrays.SetOptions(StrayOptions); + StartingStoneTowerStrays.SetOptions(StrayOptions); + //Create Location Exclude settings AddExcludedOptions(); diff --git a/source/starting_inventory.cpp b/source/starting_inventory.cpp index 3fb6fe5..bb341ec 100644 --- a/source/starting_inventory.cpp +++ b/source/starting_inventory.cpp @@ -114,6 +114,10 @@ void GenerateStartingInventory() { AddItemToInventory(TWINMOLDS_REMAINS, StartingTwinmoldRemains.Value()); AddItemToInventory(SWAMP_SKULLTULA_TOKEN, StartingSwampToken.Value()); AddItemToInventory(OCEANSIDE_SKULLTULA_TOKEN, StartingOceanToken.Value()); + AddItemToInventory(WF_STRAY_FAIRY, StartingWoodfallStrays.Value()); + AddItemToInventory(SH_STRAY_FAIRY, StartingSnowheadStrays.Value()); + AddItemToInventory(GBT_STRAY_FAIRY, StartingGreatBayStrays.Value()); + AddItemToInventory(ST_STRAY_FAIRY, StartingStoneTowerStrays.Value()); AddItemToInventory(DEKU_MASK, StartingDekuMask.Value()); AddItemToInventory(GORON_MASK, StartingGoronMask.Value()); From 82ffbaedb9c1c8a23ec22f67c1d0021d70af89d3 Mon Sep 17 00:00:00 2001 From: Phlex <3514085+PhlexPlexico@users.noreply.github.com> Date: Thu, 13 Aug 2026 10:13:39 -0600 Subject: [PATCH 2/2] Starting Stray Fairies - Adds in Starting Inventory options for Dungeon Stray Fairies - Adds in separate Starting Inventory option for Clock Tower Stray Fairy as it works differently from dungeon fairies Update Z3DR Update Z3DR - Also minor adjustment on bank reward 3 because the OceanWallet500 logic variable is not needed Update Z3DR --- Z3DR | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Z3DR b/Z3DR index 6bd771d..f0afc85 160000 --- a/Z3DR +++ b/Z3DR @@ -1 +1 @@ -Subproject commit 6bd771d7807f95c4a7a8616ff20fd6a8be8db25c +Subproject commit f0afc85893fab4c077cd3a99f295cd45ef22befd