summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPepe20129 <72659707+Pepe20129@users.noreply.github.com>2025-08-13 05:39:31 +0200
committerGitHub <noreply@github.com>2025-08-12 20:39:31 -0700
commitee20f7f76222cf63f929f8d5f57764266f89ca7e (patch)
tree1d16f2ef440f77e6a6e746ea07ba37e1fc182088
parentce38e035625e6c0012ea6331c859daae09f6493a (diff)
Fix max count for TH keys (#5670)
-rw-r--r--soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp26
1 files changed, 24 insertions, 2 deletions
diff --git a/soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp b/soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp
index fcace1017..04bc783d9 100644
--- a/soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp
+++ b/soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp
@@ -449,7 +449,8 @@ ItemTrackerNumbers GetItemCurrentAndMax(ItemTrackerItem item) {
result.currentCapacity =
IS_RANDO && !Flags_GetRandomizerInf(RAND_INF_HAS_WALLET) ? 0 : CUR_CAPACITY(UPG_WALLET);
result.maxCapacity =
- OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_INCLUDE_TYCOON_WALLET) ? 999 : 500;
+ IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_INCLUDE_TYCOON_WALLET) ? 999
+ : 500;
result.currentAmmo = gSaveContext.rupees;
break;
case ITEM_BOMBCHU:
@@ -502,7 +503,28 @@ ItemTrackerNumbers GetItemCurrentAndMax(ItemTrackerItem item) {
result.maxCapacity = GERUDO_TRAINING_GROUND_SMALL_KEY_MAX;
break;
case SCENE_THIEVES_HIDEOUT:
- result.maxCapacity = GERUDO_FORTRESS_SMALL_KEY_MAX;
+ if (IS_RANDO) {
+ switch (OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_GERUDO_FORTRESS)) {
+ case RO_GF_CARPENTERS_NORMAL:
+ result.maxCapacity = GERUDO_FORTRESS_SMALL_KEY_MAX;
+ break;
+ case RO_GF_CARPENTERS_FAST:
+ result.maxCapacity = 1;
+ break;
+ case RO_GF_CARPENTERS_FREE:
+ result.maxCapacity = 0;
+ break;
+ default:
+ result.maxCapacity = 0;
+ SPDLOG_ERROR(
+ "Invalid value for RSK_GERUDO_FORTRESS: " +
+ OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_GERUDO_FORTRESS));
+ assert(false);
+ break;
+ }
+ } else {
+ result.maxCapacity = GERUDO_FORTRESS_SMALL_KEY_MAX;
+ }
break;
case SCENE_INSIDE_GANONS_CASTLE:
result.maxCapacity = GANONS_CASTLE_SMALL_KEY_MAX;