From b803a04b16f954b3a6c5ef131d80979d7ce48376 Mon Sep 17 00:00:00 2001 From: aMannus Date: Thu, 14 Dec 2023 16:00:42 +0100 Subject: [PATCH] Add 1 new pot to the item pool --- .../3drando/hint_list/hint_list_exclude_overworld.cpp | 4 ++++ soh/soh/Enhancements/randomizer/3drando/item_pool.cpp | 1 + .../randomizer/3drando/location_access/locacc_castle_town.cpp | 1 + soh/soh/Enhancements/randomizer/location_list.cpp | 4 +++- soh/soh/Enhancements/randomizer/randomizer.cpp | 1 + soh/soh/Enhancements/randomizer/randomizerTypes.h | 2 ++ soh/soh/Enhancements/randomizer/randomizer_inf.h | 1 + 7 files changed, 13 insertions(+), 1 deletion(-) diff --git a/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_overworld.cpp b/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_overworld.cpp index 3f0d068ca..3fc1c21ab 100644 --- a/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_overworld.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_overworld.cpp @@ -1361,4 +1361,8 @@ void HintTable_Init_Exclude_Overworld() { //obscure text Text{"a #pot in a room# holds", /*french*/"a #pot in a room# holds", /*spanish*/"a #pot in a room# holds"}, }); + hintTable[RHT_SHUFFLE_POTS_MARKET_GUARD_HOUSE_2] = HintText::Exclude({ + //obscure text + Text{"a #pot in a room# holds", /*french*/"a #pot in a room# holds", /*spanish*/"a #pot in a room# holds"}, + }); } diff --git a/soh/soh/Enhancements/randomizer/3drando/item_pool.cpp b/soh/soh/Enhancements/randomizer/3drando/item_pool.cpp index f7c7346d1..c1f730c6e 100644 --- a/soh/soh/Enhancements/randomizer/3drando/item_pool.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/item_pool.cpp @@ -577,6 +577,7 @@ static void PlaceVanillaCowMilk() { static void PlaceVanillaPotContents() { auto ctx = Rando::Context::GetInstance(); ctx->PlaceItemInLocation(RC_MARKET_GUARD_HOUSE_CHILD_POT_1, RG_GREEN_RUPEE, false, true); + ctx->PlaceItemInLocation(RC_MARKET_GUARD_HOUSE_CHILD_POT_2, RG_GREEN_RUPEE, false, true); } static void SetScarceItemPool() { diff --git a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_castle_town.cpp b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_castle_town.cpp index ff6ef257d..46370e299 100644 --- a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_castle_town.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_castle_town.cpp @@ -171,6 +171,7 @@ void AreaTable_Init_CastleTown() { LocationAccess(RC_MARKET_10_BIG_POES, {[]{return IsAdult && BigPoeKill;}}), LocationAccess(RC_MARKET_GS_GUARD_HOUSE, {[]{return IsChild;}}), LocationAccess(RC_MARKET_GUARD_HOUSE_CHILD_POT_1, {[]{return CanBreakPots();}}), + LocationAccess(RC_MARKET_GUARD_HOUSE_CHILD_POT_2, {[]{return CanBreakPots();}}), }, { //Exits Entrance(RR_MARKET_ENTRANCE, {[]{return true;}}), diff --git a/soh/soh/Enhancements/randomizer/location_list.cpp b/soh/soh/Enhancements/randomizer/location_list.cpp index eca7e7061..d880c823e 100644 --- a/soh/soh/Enhancements/randomizer/location_list.cpp +++ b/soh/soh/Enhancements/randomizer/location_list.cpp @@ -209,6 +209,7 @@ std::vector Rando::StaticData::overworldLocations = { RC_MARKET_TREASURE_CHEST_GAME_ITEM_4, RC_MARKET_TREASURE_CHEST_GAME_ITEM_5, RC_MARKET_GUARD_HOUSE_CHILD_POT_1, + RC_MARKET_GUARD_HOUSE_CHILD_POT_2, // Market Shops RC_MARKET_BOMBCHU_SHOP_ITEM_1, @@ -1293,8 +1294,9 @@ void Rando::StaticData::InitLocationTable() { locationTable[RC_GV_COW] = Location::Base(RC_GV_COW, RCQUEST_BOTH, RCTYPE_COW, RCAREA_GERUDO_VALLEY, ACTOR_EN_COW, SCENE_GERUDO_VALLEY, 0x00, 0x15, "Cow", "GV Cow", RHT_GV_COW, RG_MILK, { Category::cCow }, SpoilerCollectionCheck::Cow(0x5A, 0x15), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); locationTable[RC_JABU_JABUS_BELLY_MQ_COW] = Location::Base(RC_JABU_JABUS_BELLY_MQ_COW, RCQUEST_MQ, RCTYPE_COW, RCAREA_JABU_JABUS_BELLY, ACTOR_EN_COW, SCENE_JABU_JABU, 0x00, 0x15, "MQ Cow", "Jabu Jabus Belly MQ Cow", RHT_JABU_JABUS_BELLY_MQ_COW, RG_MILK, { Category::cCow }, SpoilerCollectionCheck::Cow(0x02, 0x15), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); - // Pots Randomizer Check Randomizer Check Quest Type Area Actor ID Scene ID Params Flags Short Name Spoiler Name Hint Text Key Vanilla Item Categories Spoiler Collection Check Collection Check Group + // Pots Randomizer Check Randomizer Check Quest Type Area Actor ID Scene ID Params Flags Short Name Spoiler Name Hint Text Key Vanilla Item Categories Spoiler Collection Check Collection Check Group locationTable[RC_MARKET_GUARD_HOUSE_CHILD_POT_1] = Location::Base(RC_MARKET_GUARD_HOUSE_CHILD_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, THREE_ACTOR_PARAMS(-80, 0, -7), 0x00, "Guard House Child Pot 1", "MK Guard House Child Pot 1", RHT_SHUFFLE_POTS_MARKET_GUARD_HOUSE_1, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::Pot(0x4D, 0x00), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MARKET_GUARD_HOUSE_CHILD_POT_2] = Location::Base(RC_MARKET_GUARD_HOUSE_CHILD_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, THREE_ACTOR_PARAMS(-65, 0, -45), 0x00, "Guard House Child Pot 2", "MK Guard House Child Pot 2", RHT_SHUFFLE_POTS_MARKET_GUARD_HOUSE_2, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::Pot(0x4D, 0x00), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); /*------------------------------- --- SHOPS --- diff --git a/soh/soh/Enhancements/randomizer/randomizer.cpp b/soh/soh/Enhancements/randomizer/randomizer.cpp index 0b9177c47..56b997c73 100644 --- a/soh/soh/Enhancements/randomizer/randomizer.cpp +++ b/soh/soh/Enhancements/randomizer/randomizer.cpp @@ -1403,6 +1403,7 @@ std::map rcToRandomizerInf = { { RC_MARKET_10_BIG_POES, RAND_INF_10_BIG_POES }, { RC_KAK_100_GOLD_SKULLTULA_REWARD, RAND_INF_KAK_100_GOLD_SKULLTULA_REWARD }, { RC_MARKET_GUARD_HOUSE_CHILD_POT_1, RAND_INF_SHUFFLE_POTS_MARKET_GUARD_HOUSE_CHILD_1 }, + { RC_MARKET_GUARD_HOUSE_CHILD_POT_2, RAND_INF_SHUFFLE_POTS_MARKET_GUARD_HOUSE_CHILD_2 }, }; Rando::Location* Randomizer::GetCheckObjectFromActor(s16 actorId, s16 sceneNum, s32 actorParams = 0x00) { diff --git a/soh/soh/Enhancements/randomizer/randomizerTypes.h b/soh/soh/Enhancements/randomizer/randomizerTypes.h index d27c70cf6..e7e312a99 100644 --- a/soh/soh/Enhancements/randomizer/randomizerTypes.h +++ b/soh/soh/Enhancements/randomizer/randomizerTypes.h @@ -748,6 +748,7 @@ typedef enum { RC_MARKET_BOMBCHU_SHOP_ITEM_7, RC_MARKET_BOMBCHU_SHOP_ITEM_8, RC_MARKET_GUARD_HOUSE_CHILD_POT_1, + RC_MARKET_GUARD_HOUSE_CHILD_POT_2, RC_TOT_LIGHT_ARROWS_CUTSCENE, RC_TOT_MASTER_SWORD, RC_HC_MALON_EGG, @@ -3281,6 +3282,7 @@ typedef enum { RHT_GRANNY_DIALOG, // Shuffle Pots RHT_SHUFFLE_POTS_MARKET_GUARD_HOUSE_1, + RHT_SHUFFLE_POTS_MARKET_GUARD_HOUSE_2, RHT_MAX } RandomizerHintTextKey; diff --git a/soh/soh/Enhancements/randomizer/randomizer_inf.h b/soh/soh/Enhancements/randomizer/randomizer_inf.h index dabe42852..166c7dcab 100644 --- a/soh/soh/Enhancements/randomizer/randomizer_inf.h +++ b/soh/soh/Enhancements/randomizer/randomizer_inf.h @@ -171,6 +171,7 @@ typedef enum { RAND_INF_GANON_SOUL, RAND_INF_SHUFFLE_POTS_MARKET_GUARD_HOUSE_CHILD_1, + RAND_INF_SHUFFLE_POTS_MARKET_GUARD_HOUSE_CHILD_2, // If you add anything to this list, you need to update the size of randomizerInf in z64save.h to be ceil(RAND_INF_MAX / 16)