Fix Rando Give for Adult Fishing as Child Glitch (#5349)

* VBVBVB

* Update soh/soh/Enhancements/randomizer/hook_handlers.cpp

* Update soh/soh/Enhancements/randomizer/hook_handlers.cpp

* first try
This commit is contained in:
Eric Hoey 2025-04-08 11:27:08 -04:00 committed by GitHub
parent d40fa00b9e
commit 4a3d60d061
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 22 additions and 1 deletions

View file

@ -946,6 +946,14 @@ typedef enum {
// - `*VBFishingData`
VB_GIVE_RANDO_FISHING_PRIZE,
// #### `result`
// ```c
// false
// ```
// #### `args`
// - '*Fishing' (&this)
VB_GIVE_RANDO_GLITCH_FISHING_PRIZE,
// #### `result`
// ```c
// true

View file

@ -1591,6 +1591,17 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l
}
break;
}
case VB_GIVE_RANDO_GLITCH_FISHING_PRIZE: {
if (IS_RANDO) {
Fishing* fishing = va_arg(args, Fishing*);
if (!Flags_GetRandomizerInf(RAND_INF_ADULT_FISHING)) {
Flags_SetRandomizerInf(RAND_INF_ADULT_FISHING);
}
*should = true;
fishing->stateAndTimer = 0;
}
break;
}
case VB_TRADE_TIMER_EYEDROPS: {
EnMk* enMk = va_arg(args, EnMk*);
Flags_SetRandomizerInf(RAND_INF_ADULT_TRADES_LH_TRADE_FROG);

View file

@ -5170,7 +5170,9 @@ void Fishing_HandleOwnerDialog(Fishing* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play)) {
this->stateAndTimer = 24;
} else {
Actor_OfferGetItem(&this->actor, play, GI_SCALE_GOLDEN, 2000.0f, 1000.0f);
if (!GameInteractor_Should(VB_GIVE_RANDO_GLITCH_FISHING_PRIZE, false, &this)) {
Actor_OfferGetItem(&this->actor, play, GI_SCALE_GOLDEN, 2000.0f, 1000.0f);
}
}
break;