From 5bf9eab511477794ca67606798ea637ae2918146 Mon Sep 17 00:00:00 2001 From: Tacoman369 <90735287+Tacoman369@users.noreply.github.com> Date: Thu, 24 Sep 2026 16:32:58 -0500 Subject: [PATCH 1/6] Update item_pool.cpp Fix placement issue where an item was sent into the void due to a temporary item placement not being filled early as it should have been --- source/item_pool.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/source/item_pool.cpp b/source/item_pool.cpp index 1cd2007..ba342fe 100644 --- a/source/item_pool.cpp +++ b/source/item_pool.cpp @@ -746,6 +746,7 @@ void GenerateItemPool() { PlaceItemInLocation(SWAMP_TOURIST_CENTER_ROOF_CLEAR, BLUE_RUPEE); PlaceItemInLocation(STONE_TOWER_TEMPLE_UPRIGHT_DEATH_ARMOS_ROOM_CHEST, BLUE_RUPEE); PlaceItemInLocation(E_CLOCK_TOWN_SF, BLUE_RUPEE); + PlaceItemInLocation(W_CLOCK_TOWN_CURIOSITY_BOMB_BAG, BLUE_RUPEE); PlaceItemInLocation(S_CLOCK_TOWN_SWAMP_SCRUB_PURCHASE, BLUE_RUPEE); PlaceItemInLocation(SOUTHERN_SWAMP_GORON_SCRUB_PURCHASE, BLUE_RUPEE); PlaceItemInLocation(SOUTHERN_SWAMP_GORON_SCRUB_PURCHASE_CLEAR, BLUE_RUPEE); From 1385c1738de936ee8c37b01115fbe32f8eb51dc9 Mon Sep 17 00:00:00 2001 From: Tacoman369 <90735287+Tacoman369@users.noreply.github.com> Date: Thu, 24 Sep 2026 17:11:02 -0500 Subject: [PATCH 2/6] Hide Alt Checks Edits Spoiler log to not show locations marked with category Alternate Checks. (Exclusive to Spring Goron / Clear Swamp / Moved Scrubs) --- source/item_location.cpp | 16 ++++++++-------- source/spoiler_log.cpp | 13 +++++++------ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/source/item_location.cpp b/source/item_location.cpp index dbe1a26..bfd6eda 100644 --- a/source/item_location.cpp +++ b/source/item_location.cpp @@ -65,8 +65,8 @@ void LocationTable_Init() { locationTable[GORON_VILLAGE_SCRUB_PURCHASE_SPRING] = ItemLocation::Base (0x48, 0x1D, false, "GV Scrub Purchase (Spring)", GORON_VILLAGE_SCRUB_PURCHASE_SPRING, PROGRESSIVE_BOMB_BAG, {Category::cGoronVillage, Category::cDekuScrub,Category::cDayOne, Category::cShop, Category::cAlternateCheck, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); locationTable[GORON_VILLAGE_SCRUB_TRADE_SPRING] = ItemLocation::Base (0x48, 0x99, true, "GV Deku Scrub Merchant Trade (Spring)", GORON_VILLAGE_SCRUB_TRADE_SPRING, MOUNTAIN_TITLE, {Category::cGoronVillage, Category::cDekuScrub,Category::cDayOne, Category::cAlternateCheck, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); locationTable[GORON_VILLAGE_LEDGE_SPRING] = ItemLocation::Collectable(0x48, 0x00, false, "GV Piece of Heart (Spring)", GORON_VILLAGE_LEDGE_SPRING, PIECE_OF_HEART, {Category::cGoronVillage, Category::cVanillaHeartPiece,Category::cDayOne, Category::cAlternateCheck, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); - locationTable[GORON_VILLAGE_ZORA_SCRUB_PURCHASE] = ItemLocation::Base (0x4D, 0x5C, false, "GV Zora Scrub Purchase", GORON_VILLAGE_ZORA_SCRUB_PURCHASE, GREEN_POTION_REFILL, {Category::cGoronVillage, Category::cDekuScrub,Category::cDayOne, Category::cShop, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); - locationTable[GORON_VILLAGE_ZORA_SCRUB_PURCHASE_SPRING] = ItemLocation::Base (0x48, 0x5C, false, "GV Zora Scrub Purchase (Spring)", GORON_VILLAGE_ZORA_SCRUB_PURCHASE_SPRING, GREEN_POTION_REFILL, {Category::cGoronVillage, Category::cDekuScrub,Category::cDayOne, Category::cShop, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); + locationTable[GORON_VILLAGE_ZORA_SCRUB_PURCHASE] = ItemLocation::Base (0x4D, 0x5C, false, "GV Zora Scrub Purchase", GORON_VILLAGE_ZORA_SCRUB_PURCHASE, GREEN_POTION_REFILL, {Category::cGoronVillage, Category::cDekuScrub,Category::cDayOne, Category::cShop, Category::cMainInventory, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); + locationTable[GORON_VILLAGE_ZORA_SCRUB_PURCHASE_SPRING] = ItemLocation::Base (0x48, 0x5C, false, "GV Zora Scrub Purchase (Spring)", GORON_VILLAGE_ZORA_SCRUB_PURCHASE_SPRING, GREEN_POTION_REFILL, {Category::cGoronVillage, Category::cDekuScrub,Category::cDayOne, Category::cShop, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GORON_VILLAGE ); //Great Bay Coast locationTable[GBC_OCEAN_SPIDER_DAY1] = ItemLocation::Base (0x28, 0x48, false, "OSH Reward", GBC_OCEAN_SPIDER_DAY1, PROGRESSIVE_WALLET, {Category::cGreatBayCoast ,Category::cDayOne, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_GREAT_BAY_COAST ); @@ -198,13 +198,13 @@ void LocationTable_Init() { locationTable[SOUTHERN_SWAMP_GORON_SCRUB_PURCHASE_CLEAR] = ItemLocation::Base (0x00, 0x1D, false, "SS Goron Scrub Merchant Purchase (Cleared)", SOUTHERN_SWAMP_GORON_SCRUB_PURCHASE_CLEAR, PROGRESSIVE_BOMB_BAG, {Category::cSouthernSwamp, Category::cDekuScrub,Category::cDayOne, Category::cShop, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_SOUTHERN_SWAMP ); //Stock Pot Inn - locationTable[STOCKPOTINN_RESERVATION] = ItemLocation::Base (0x61, 0xA0, true, "SPI Reservation", STOCKPOTINN_RESERVATION, ROOM_KEY, {Category::cStockPotInn,Category::cDayOne, Category::cAnjuAndKafei}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); - locationTable[STOCKPOTINN_MIDNIGHT_MEETING] = ItemLocation::Base (0x61, 0xAA, true, "SPI Midnight Meeting", STOCKPOTINN_MIDNIGHT_MEETING, LETTER_KAFEI, {Category::cStockPotInn,Category::cDayOne, Category::cAnjuAndKafei}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); + locationTable[STOCKPOTINN_RESERVATION] = ItemLocation::Base (0x61, 0xA0, true, "SPI Reservation", STOCKPOTINN_RESERVATION, ROOM_KEY, {Category::cStockPotInn,Category::cDayOne, Category::cAnjuAndKafei}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); + locationTable[STOCKPOTINN_MIDNIGHT_MEETING] = ItemLocation::Base (0x61, 0xAA, true, "SPI Midnight Meeting", STOCKPOTINN_MIDNIGHT_MEETING, LETTER_KAFEI, {Category::cStockPotInn,Category::cDayOne, Category::cAnjuAndKafei}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); locationTable[STOCKPOTINN_TOILET_HAND] = ItemLocation::Base (0x61, 0x01, false, "SPI Toilet Hand", STOCKPOTINN_TOILET_HAND, PIECE_OF_HEART, {Category::cStockPotInn, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); locationTable[STOCKPOTINN_GRANDMA_SHORT_STORY] = ItemLocation::Base (0x61, 0x0C, false, "SPI Grandma Short Story", STOCKPOTINN_GRANDMA_SHORT_STORY, PIECE_OF_HEART, {Category::cStockPotInn, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); locationTable[STOCKPOTINN_GRANDMA_LONG_STORY] = ItemLocation::Base (0x61, 0xBA, false, "SPI Grandma Long Story", STOCKPOTINN_GRANDMA_LONG_STORY, PIECE_OF_HEART, {Category::cStockPotInn, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); locationTable[STOCKPOTINN_ANJU_AND_KAFEI] = ItemLocation::Base (0x61, 0x85, false, "SPI Anju And Kafei", STOCKPOTINN_ANJU_AND_KAFEI, COUPLES_MASK, {Category::cStockPotInn, Category::cDayThree, Category::cAnjuAndKafei}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); - locationTable[STOCKPOTINN_STAFF_ROOM_CHEST] = ItemLocation::Chest (0x61, 0x01, true, "SPI Staff Room Chest", STOCKPOTINN_STAFF_ROOM_CHEST, SILVER_RUPEE, {Category::cStockPotInn,Category::cChest ,Category::cDayThree}, SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); + locationTable[STOCKPOTINN_STAFF_ROOM_CHEST] = ItemLocation::Chest (0x61, 0x01, true, "SPI Staff Room Chest", STOCKPOTINN_STAFF_ROOM_CHEST, SILVER_RUPEE, {Category::cStockPotInn,Category::cChest ,Category::cDayThree}, SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); locationTable[STOCKPOTINN_GUEST_ROOM_CHEST] = ItemLocation::Chest (0x61, 0x00, true, "SPI Guest Room Chest", STOCKPOTINN_GUEST_ROOM_CHEST, SILVER_RUPEE, {Category::cStockPotInn,Category::cChest ,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_STOCKPOTINN ); //Stone Tower @@ -239,8 +239,8 @@ void LocationTable_Init() { locationTable[W_CLOCK_TOWN_SWORDSMANS_SCHOOL] = ItemLocation::Base (0x54, 0x0C, false, "WCT Swordsman's School", W_CLOCK_TOWN_SWORDSMANS_SCHOOL, PIECE_OF_HEART, {Category::cWestClockTown, Category::cVanillaHeartPiece,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); locationTable[W_CLOCK_TOWN_ALL_NIGHT_MASK_BUY] = ItemLocation::Base (0x0D, 0x7E, false, "WCT All-Night Mask Purchase", W_CLOCK_TOWN_ALL_NIGHT_MASK_BUY, ALL_NIGHT_MASK, {Category::cWestClockTown, Category::cVanillaMask,Category::cDayThree}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); //locationTable[W_CLOCK_TOWN_LOTTERY] = ItemLocation::Base (0x39, 0x00, true, "WCT Lottery", W_CLOCK_TOWN_LOTTERY, PURPLE_RUPEE, {Category::cWestClockTown}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); - locationTable[W_CLOCK_TOWN_BOMB_SHOP_GORON] = ItemLocation::Base (0x0D, 0x34, true, "WCT Bomb Shop Goron", W_CLOCK_TOWN_BOMB_SHOP_GORON, POWDER_KEG, {Category::cWestClockTown, Category::cMerchant,Category::cDayOne, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); - locationTable[W_CLOCK_TOWN_CURIOSITY_BOMB_BAG] = ItemLocation::Base (0x0D, 0x1D, true, "WCT Curiosity Shop Bomb Bag", W_CLOCK_TOWN_CURIOSITY_BOMB_BAG, PROGRESSIVE_BOMB_BAG, {Category::cWestClockTown, Category::cDayTwo, Category::cShop, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); + locationTable[W_CLOCK_TOWN_BOMB_SHOP_GORON] = ItemLocation::Base (0x0D, 0x34, true, "WCT Bomb Shop Goron", W_CLOCK_TOWN_BOMB_SHOP_GORON, POWDER_KEG, {Category::cWestClockTown, Category::cMerchant,Category::cDayOne, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); + locationTable[W_CLOCK_TOWN_CURIOSITY_BOMB_BAG] = ItemLocation::Base (0x0D, 0x1D, true, "WCT Curiosity Shop Bomb Bag", W_CLOCK_TOWN_CURIOSITY_BOMB_BAG, PROGRESSIVE_BOMB_BAG, {Category::cWestClockTown, Category::cDayTwo, Category::cShop, Category::cMainInventory, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); //Woodfall locationTable[WOODFALL_BRIDGE_CHEST] = ItemLocation::Chest (0x46, 0x01, true, "WF Bridge Chest", WOODFALL_BRIDGE_CHEST, PIECE_OF_HEART, {Category::cWoodfall, Category::cVanillaHeartPiece, Category::cChest, Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_WOODFALL ); locationTable[WOODFALL_BEHIND_OWL_CHEST] = ItemLocation::Chest (0x46, 0x02, true, "WF Behind Owl Chest", WOODFALL_BEHIND_OWL_CHEST, BLUE_RUPEE, {Category::cWoodfall,Category::cChest ,Category::cDayOne, Category::cNoOcarinaStart}, SpoilerCollectionCheckGroup::GROUP_WOODFALL ); @@ -265,7 +265,7 @@ void LocationTable_Init() { //locationTable[ZORA_HALL_STAGE_LIGHTS] = ItemLocation::Base (0x33, 0x00, true, "ZH Stage Lights", ZORA_HALL_STAGE_LIGHTS, BLUE_RUPEE, {Category::cZoraHall}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ZORA_HALL ); //locationTable[ZORA_HALL_BAD_PHOTO_LULU] = ItemLocation::Base (0x4C, 0x00, true, "ZH Bad Photograph of Lulu", ZORA_HALL_SCRUB_TRADE, BLUE_RUPEE, {Category::cZoraHall, Category::cDekuScrub}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ZORA_HALL ); //locationTable[ZORA_HALL_GOOD_PHOTO_LULU] = ItemLocation::Base (0x4C, 0x00, true, "ZH Good Photograph of Lulu", ZORA_HALL_SCRUB_TRADE, BLUE_RUPEE, {Category::cZoraHall, Category::cDekuScrub}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ZORA_HALL ); - locationTable[ZORA_HALL_IKANA_SCRUB_PURCHASE] = ItemLocation::Base (0x4C, 0x5D, true, "ZH Deku Scrub Merchant Purchase (Ikana)", ZORA_HALL_IKANA_SCRUB_PURCHASE, BLUE_POTION_REFILL, {Category::cZoraHall, Category::cDekuScrub,Category::cDayOne, Category::cShop}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ZORA_HALL ); + locationTable[ZORA_HALL_IKANA_SCRUB_PURCHASE] = ItemLocation::Base (0x4C, 0x5D, true, "ZH Deku Scrub Merchant Purchase (Ikana)", ZORA_HALL_IKANA_SCRUB_PURCHASE, BLUE_POTION_REFILL, {Category::cZoraHall, Category::cDekuScrub,Category::cDayOne, Category::cShop, Category::cAlternateCheck}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_ZORA_HALL ); /*------------------- --- DUNGEONS -- diff --git a/source/spoiler_log.cpp b/source/spoiler_log.cpp index ecda1b1..a3ae4fd 100644 --- a/source/spoiler_log.cpp +++ b/source/spoiler_log.cpp @@ -250,12 +250,9 @@ static void WriteIngameSpoilerLog() { if ((Settings::ShuffleSongs.Value() == u8(0)) && Location(key)->IsCategory(Category::cSong)) { continue; } - //if ((!Settings::ShuffleSongOfTime) && Location(key)->IsCategory(Category::cSong)) { - // continue; - //} - //if ((!Settings::ShuffleSoaring) && Location(key)->IsCategory(Category::cSong)) { - // continue; - //} + if ((!Settings::ShuffleSoaring) && key == SOUTHERN_SWAMP_MUSIC_STATUE) { + continue; + } // Tingle Maps if (!Settings::ShuffleTingleMaps && Location(key)->IsCategory(Category::cTingleMap)) { continue; @@ -282,6 +279,10 @@ static void WriteIngameSpoilerLog() { if (key == STONE_TOWER_TEMPLE_UPRIGHT_DEATH_ARMOS_ROOM_CHEST) { continue; } + //Hide duplicate checks (Clear Swamp / Spring Snowhead / ETC.) + if (Location(key)->IsCategory(Category::cAlternateCheck)) { + continue; + } From dd69d333aafb12780e81acf2ae91e40c4f9221a2 Mon Sep 17 00:00:00 2001 From: Tacoman369 <90735287+Tacoman369@users.noreply.github.com> Date: Thu, 24 Sep 2026 23:26:02 -0500 Subject: [PATCH 3/6] Update Z3DR --- Z3DR | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Z3DR b/Z3DR index 9801871..443539d 160000 --- a/Z3DR +++ b/Z3DR @@ -1 +1 @@ -Subproject commit 980187171e5c06006b97bdb0fe5102110ed8aa41 +Subproject commit 443539dc1247534109d4609d53d40bce3a3e4663 From ac8d2b3dee81863f174d9e8199e1ee49cb117d43 Mon Sep 17 00:00:00 2001 From: Tacoman369 <90735287+Tacoman369@users.noreply.github.com> Date: Fri, 25 Sep 2026 16:02:18 -0500 Subject: [PATCH 4/6] Update Z3DR --- Z3DR | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Z3DR b/Z3DR index 443539d..bd39ffa 160000 --- a/Z3DR +++ b/Z3DR @@ -1 +1 @@ -Subproject commit 443539dc1247534109d4609d53d40bce3a3e4663 +Subproject commit bd39ffa14e9cc9763b2220791203f5c9dfc0fdbe From 5b60453ebb74c9c592ea6acd655496dd28dfca7f Mon Sep 17 00:00:00 2001 From: Tacoman369 <90735287+Tacoman369@users.noreply.github.com> Date: Fri, 25 Sep 2026 16:23:32 -0500 Subject: [PATCH 5/6] Update Z3DR --- Z3DR | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Z3DR b/Z3DR index bd39ffa..443539d 160000 --- a/Z3DR +++ b/Z3DR @@ -1 +1 @@ -Subproject commit bd39ffa14e9cc9763b2220791203f5c9dfc0fdbe +Subproject commit 443539dc1247534109d4609d53d40bce3a3e4663 From f0a0cf1a9c9ead77c4b745ecd6f5b7cd82ac7ca2 Mon Sep 17 00:00:00 2001 From: Tacoman369 <90735287+Tacoman369@users.noreply.github.com> Date: Fri, 25 Sep 2026 16:31:17 -0500 Subject: [PATCH 6/6] Update Z3DR --- Z3DR | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Z3DR b/Z3DR index 443539d..7580c29 160000 --- a/Z3DR +++ b/Z3DR @@ -1 +1 @@ -Subproject commit 443539dc1247534109d4609d53d40bce3a3e4663 +Subproject commit 7580c290bfc84e78422d3d5c25dbca9de6757955