From 23258c688c8eb4411429435d3779d7b480347c9b Mon Sep 17 00:00:00 2001 From: Tacoman369 <90735287+Tacoman369@users.noreply.github.com> Date: Sat, 28 Sep 2024 14:51:44 -0500 Subject: [PATCH] CuriosityShopBombBag (#114) Adds in Curiosity Shop Big Bomb Bag as a logical location by adding the following: - Hint Location text - Item/Hint Key - Item Location values - Item Pool (placed vanilla along with WCT Bomb Bag until shopsanity is inluded) - Location Access for logical placement --- source/hint_list.cpp | 2 ++ source/include/keys.hpp | 1 + source/item_location.cpp | 6 +++++- source/item_pool.cpp | 2 ++ source/location_access.cpp | 1 + 5 files changed, 11 insertions(+), 1 deletion(-) diff --git a/source/hint_list.cpp b/source/hint_list.cpp index 23de325..18e96bc 100644 --- a/source/hint_list.cpp +++ b/source/hint_list.cpp @@ -1552,6 +1552,8 @@ void HintTable_Init() { Text{"a shady town merchant sells", "**FRENCH**", "**SPANISH**"}}); hintTable[W_CLOCK_TOWN_BOMB_SHOP_GORON] = HintText::Sometimes({ Text{"a town goron merchant sells", "**FRENCH**", "**SPANISH**"}}); + hintTable[W_CLOCK_TOWN_CURIOSITY_BOMB_BAG] = HintText::Sometimes({ + Text{"a shady town merchant sells", "**FRENCH**", "**SPANISH**"}}); //hintTable[W_CLOCK_TOWN_LOTTERY] = HintText::Sometimes({Text{"**ENGLISH**", "**FRENCH**", "**SPANISH**"}}); hintTable[TRADING_POST_ITEM_1] = HintText::Sometimes({ Text{"a town merchant sells", "**FRENCH**", "**SPANISH**"}}); diff --git a/source/include/keys.hpp b/source/include/keys.hpp index 2bddf2c..94bdc90 100644 --- a/source/include/keys.hpp +++ b/source/include/keys.hpp @@ -465,6 +465,7 @@ typedef enum { W_CLOCK_TOWN_ALL_NIGHT_MASK_BUY, W_CLOCK_TOWN_LOTTERY, W_CLOCK_TOWN_BOMB_SHOP_GORON, + W_CLOCK_TOWN_CURIOSITY_BOMB_BAG, TRADING_POST_ITEM_1, TRADING_POST_ITEM_2, TRADING_POST_ITEM_3, diff --git a/source/item_location.cpp b/source/item_location.cpp index a5d08d5..766bfaf 100644 --- a/source/item_location.cpp +++ b/source/item_location.cpp @@ -236,7 +236,7 @@ void LocationTable_Init() { 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::cShop, Category::cMainInventory}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_W_CLOCK_TOWN ); - + locationTable[W_CLOCK_TOWN_CURIOSITY_BOMB_BAG] = ItemLocation::Base (0x0D, 0x00, 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 ); //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}, 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}, SpoilerCollectionCheckGroup::GROUP_WOODFALL ); @@ -1012,6 +1012,7 @@ std::vector overworldLocations = { W_CLOCK_TOWN_SWORDSMANS_SCHOOL, W_CLOCK_TOWN_ALL_NIGHT_MASK_BUY, W_CLOCK_TOWN_BOMB_SHOP_GORON, + W_CLOCK_TOWN_CURIOSITY_BOMB_BAG, //W_CLOCK_TOWN_LOTTERY, TRADING_POST_ITEM_1, TRADING_POST_ITEM_2, @@ -1227,6 +1228,9 @@ void CreateItemOverrides() { PlaceItemInLocation(SOUTHERN_SWAMP_SCRUB_PURCHASE_CLEAR, loc19->GetPlacedItemKey()); PlaceItemInLocation(SOUTHERN_SWAMP_SCRUB_TRADE_CLEAR, loc20->GetPlacedItemKey()); PlaceItemInLocation(SWAMP_TOURIST_CENTER_ROOF_CLEAR, loc21->GetPlacedItemKey()); + //Curiosity Shop Big Bomb Bag is same as Bomb Shop Big Bomb Bag + auto loc22 = Location(W_CLOCK_TOWN_BIG_BOMB_BAG_BUY); + PlaceItemInLocation(W_CLOCK_TOWN_CURIOSITY_BOMB_BAG, loc22->GetPlacedItemKey()); for (LocationKey locKey : allLocations) { auto loc = Location(locKey); diff --git a/source/item_pool.cpp b/source/item_pool.cpp index 04d8dfa..ef360b8 100644 --- a/source/item_pool.cpp +++ b/source/item_pool.cpp @@ -394,6 +394,7 @@ static void PlaceVanillaProgressive() { PlaceItemInLocation(ROAD_TO_SS_ARCHERY_1, PROGRESSIVE_BOW); PlaceItemInLocation(W_CLOCK_TOWN_BOMB_BAG_BUY, PROGRESSIVE_BOMB_BAG); PlaceItemInLocation(W_CLOCK_TOWN_BIG_BOMB_BAG_BUY, PROGRESSIVE_BOMB_BAG); + PlaceItemInLocation(W_CLOCK_TOWN_CURIOSITY_BOMB_BAG, PROGRESSIVE_BOMB_BAG); PlaceItemInLocation(GORON_VILLAGE_SCRUB_PURCHASE, PROGRESSIVE_BOMB_BAG); PlaceItemInLocation(N_CLOCK_TOWN_GREAT_FAIRY_DEKU, PROGRESSIVE_MAGIC_METER); PlaceItemInLocation(SNOWHEAD_GREAT_FAIRY, PROGRESSIVE_MAGIC_METER); @@ -892,6 +893,7 @@ void GenerateItemPool() { PlaceItemInLocation(WOODFALL_TEMPLE_DEKU_PRINCESS, DEKU_PRINCESS); PlaceItemInLocation(W_CLOCK_TOWN_BOMB_BAG_BUY, PROGRESSIVE_BOMB_BAG); PlaceItemInLocation(W_CLOCK_TOWN_BIG_BOMB_BAG_BUY, PROGRESSIVE_BOMB_BAG); + PlaceItemInLocation(W_CLOCK_TOWN_CURIOSITY_BOMB_BAG, PROGRESSIVE_BOMB_BAG); //temp placement until shopsanity works PlaceItemInLocation(SOUTHERN_SWAMP_SCRUB_PURCHASE, MAGIC_BEAN); diff --git a/source/location_access.cpp b/source/location_access.cpp index 42b463a..34e853e 100644 --- a/source/location_access.cpp +++ b/source/location_access.cpp @@ -531,6 +531,7 @@ void AreaTable_Init() { { //Locations LocationAccess(W_CLOCK_TOWN_ALL_NIGHT_MASK_BUY, {[] {return (ProgressiveWallet >= 2);}}), + LocationAccess(W_CLOCK_TOWN_CURIOSITY_BOMB_BAG, {[] {return AnyWallet;}}), }, { //Exits