diff --git a/soh/soh/Enhancements/randomizer/location_access/overworld/market.cpp b/soh/soh/Enhancements/randomizer/location_access/overworld/market.cpp index 0b010c8a7..af406f8bf 100644 --- a/soh/soh/Enhancements/randomizer/location_access/overworld/market.cpp +++ b/soh/soh/Enhancements/randomizer/location_access/overworld/market.cpp @@ -39,7 +39,7 @@ void RegionTable_Init_Market() { EventAccess(&logic->CanEmptyBigPoes, []{return logic->IsAdult;}), }, { //Locations - LOCATION(RC_MARKET_10_BIG_POES, logic->IsAdult && logic->BigPoeKill), + LOCATION(RC_MARKET_10_BIG_POES, logic->IsAdult && (logic->BigPoeKill || logic->BigPoes > ctx->GetOption(RSK_BIG_POE_COUNT).Get())), LOCATION(RC_MARKET_GS_GUARD_HOUSE, logic->IsChild), LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_1, logic->IsChild && logic->CanBreakPots()), LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_2, logic->IsChild && logic->CanBreakPots()), diff --git a/soh/soh/Enhancements/randomizer/logic.cpp b/soh/soh/Enhancements/randomizer/logic.cpp index fa9c8d8e5..9e1b1cf85 100644 --- a/soh/soh/Enhancements/randomizer/logic.cpp +++ b/soh/soh/Enhancements/randomizer/logic.cpp @@ -1694,6 +1694,9 @@ namespace Rando { if (BottleRandomizerGetToItemID.contains(randoGet)) { itemId = BottleRandomizerGetToItemID[randoGet]; } + if (randoGet == RG_BOTTLE_WITH_BIG_POE) { + BigPoes++; + } mSaveContext->inventory.items[slot] = itemId; } break; case RG_RUTOS_LETTER: @@ -2255,7 +2258,8 @@ namespace Rando { IsChild = false; IsAdult = false; //CanPlantBean = false; - BigPoeKill = false; + BigPoeKill = false; + BigPoes = 0; BaseHearts = ctx->GetOption(RSK_STARTING_HEARTS).Get() + 1; diff --git a/soh/soh/Enhancements/randomizer/logic.h b/soh/soh/Enhancements/randomizer/logic.h index ea9d51801..77d6b2573 100644 --- a/soh/soh/Enhancements/randomizer/logic.h +++ b/soh/soh/Enhancements/randomizer/logic.h @@ -36,7 +36,6 @@ class Logic { // Adult logic bool FreedEpona = false; - //bool BigPoe = false; //unused // Trade Quest Events bool WakeUpAdultTalon = false; @@ -101,6 +100,7 @@ class Logic { bool IsChild = false; bool IsAdult = false; bool BigPoeKill = false; + uint8_t BigPoes = 0; uint8_t BaseHearts = 0; // Bridge and LACS Requirements