avoid big poe collector not giving reward when handing bottle after collecting 1000 points worth of big poes on field (#7230)

This commit is contained in:
Philip Dubé
2026-09-21 13:43:09 +00:00
committed by GitHub
parent 39a8d04018
commit d54a69833f
+14 -7
View File
@@ -29,13 +29,20 @@ void RegisterBigPoeHooks() {
*should = false;
});
COND_VB_SHOULD(VB_SELL_POES_TO_POE_COLLECTOR, IS_RANDO, {
if (!Flags_GetRandomizerInf(RAND_INF_10_BIG_POES) && HIGH_SCORE(HS_POE_POINTS) >= 1000 &&
!(GET_PLAYER(gPlayState)->stateFlags1 & PLAYER_STATE1_IN_ITEM_CS)) {
EnGb* enGb = va_arg(args, EnGb*);
enGb->textId = 0x70F8;
Message_ContinueTextbox(gPlayState, enGb->textId);
enGb->actionFunc = func_80A2FB40;
*should = false;
if (!Flags_GetRandomizerInf(RAND_INF_10_BIG_POES) && HIGH_SCORE(HS_POE_POINTS) >= 1000) {
if (GET_PLAYER(gPlayState)->stateFlags1 & PLAYER_STATE1_IN_ITEM_CS) {
// Handing over bottled big poe pays out on exactly 1000 points.
// Drop to 900 so its +100 lands on payout.
if (Actor_GetPlayerExchangeItemId(gPlayState) == EXCH_ITEM_BIG_POE) {
HIGH_SCORE(HS_POE_POINTS) = 900;
}
} else {
EnGb* enGb = va_arg(args, EnGb*);
enGb->textId = 0x70F8;
Message_ContinueTextbox(gPlayState, enGb->textId);
enGb->actionFunc = func_80A2FB40;
*should = false;
}
}
});
COND_VB_SHOULD(VB_GIVE_ITEM_FROM_POE_COLLECTOR, IS_RANDO, {