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 3f0d068ca7..3fc1c21ab2 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 f7c7346d17..c1f730c6e9 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 ff6ef257d9..46370e2991 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 eca7e7061a..d880c823ed 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 0b9177c47e..56b997c733 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 d27c70cf62..e7e312a998 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 dabe428520..166c7dcab9 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)