summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchartergirl64 <chartergirl64@gmail.com>2026-03-29 03:32:40 -0400
committerGitHub <noreply@github.com>2026-03-29 07:32:40 +0000
commit0b3ebd584d1e8d5b7669f3f3ba09e110dd8e9e17 (patch)
tree6f7af872c9e758b0f0deeef696fefbc6682b8e6d
parent1be7533675660ec7c33fe303d707e8bac486a4ac (diff)
[bug fix] Changes item tracker capacity to recognize progressive chu bag limits (#6436)
-rw-r--r--soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp b/soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp
index c2d6cf3be..0ccc205a6 100644
--- a/soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp
+++ b/soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp
@@ -537,11 +537,24 @@ ItemTrackerNumbers GetItemCurrentAndMax(ItemTrackerItem item) {
: 500;
result.currentAmmo = gSaveContext.rupees;
break;
- case ITEM_BOMBCHU:
- result.currentCapacity = INV_CONTENT(ITEM_BOMBCHU) == ITEM_BOMBCHU ? 50 : 0;
+ case ITEM_BOMBCHU: {
+ auto bombchuBag = RAND_GET_OPTION(RSK_BOMBCHU_BAG);
+
+ uint8_t capacity = 0;
+
+ if (INV_CONTENT(ITEM_BOMBCHU) == ITEM_BOMBCHU) {
+ if (bombchuBag.Is(RO_BOMBCHU_BAG_PROGRESSIVE)) {
+ capacity = OTRGlobals::Instance->gRandoContext->GetBombchuCapacity();
+ } else {
+ capacity = 50;
+ }
+ }
+
+ result.currentCapacity = capacity;
result.maxCapacity = 50;
result.currentAmmo = AMMO(ITEM_BOMBCHU);
break;
+ }
case ITEM_BEAN:
result.currentCapacity = INV_CONTENT(ITEM_BEAN) == ITEM_BEAN ? 10 : 0;
result.maxCapacity = 10;
@@ -702,7 +715,7 @@ void DrawItemCount(ItemTrackerItem item, bool hideMax) {
bool shouldDisplayAmmo = trackerNumberDisplayMode == ITEM_TRACKER_NUMBER_AMMO ||
trackerNumberDisplayMode == ITEM_TRACKER_NUMBER_CURRENT_AMMO_ONLY ||
// These items have a static capacity, so display ammo instead
- item.id == ITEM_BOMBCHU || item.id == ITEM_BEAN || item.id == QUEST_SKULL_TOKEN ||
+ item.id == ITEM_BEAN || item.id == QUEST_SKULL_TOKEN ||
item.id == ITEM_HEART_CONTAINER || item.id == ITEM_HEART_PIECE;
bool shouldDisplayMax = !(trackerNumberDisplayMode == ITEM_TRACKER_NUMBER_CURRENT_CAPACITY_ONLY ||