From 256ab01630b4d71a64485456e08990a0b6271f22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20Dub=C3=A9?= <159546+serprex@users.noreply.github.com> Date: Fri, 17 Apr 2026 04:31:02 +0000 Subject: [PATCH] Fishing: don't say default 6/7 when minimum reduced by enhancement (#6523) --- soh/soh/Enhancements/Fishing.cpp | 21 +++++++++++++++++++ .../overlays/actors/ovl_Fishing/z_fishing.c | 6 ++++++ 2 files changed, 27 insertions(+) create mode 100644 soh/soh/Enhancements/Fishing.cpp diff --git a/soh/soh/Enhancements/Fishing.cpp b/soh/soh/Enhancements/Fishing.cpp new file mode 100644 index 0000000000..109533f984 --- /dev/null +++ b/soh/soh/Enhancements/Fishing.cpp @@ -0,0 +1,21 @@ +#include "soh/Enhancements/game-interactor/GameInteractor.h" +#include "soh/ShipInit.hpp" + +extern "C" { +#include + +f32 Fishing_GetMinimumRequiredScore(); +} + +void BuildFishingMessage(uint16_t* textId, bool* loadFromMessageTable) { + if (gSaveContext.minigameScore == 0) { + gSaveContext.minigameScore = Fishing_GetMinimumRequiredScore(); + } +} + +void RegisterFishingMessages() { + COND_ID_HOOK(OnOpenText, 0x40AE, CVarGetInteger(CVAR_ENHANCEMENT("CustomizeFishing"), 0), BuildFishingMessage); + COND_ID_HOOK(OnOpenText, 0x4080, CVarGetInteger(CVAR_ENHANCEMENT("CustomizeFishing"), 0), BuildFishingMessage); +} + +static RegisterShipInitFunc initFunc(RegisterFishingMessages, { CVAR_ENHANCEMENT("CustomizeFishing") }); diff --git a/soh/src/overlays/actors/ovl_Fishing/z_fishing.c b/soh/src/overlays/actors/ovl_Fishing/z_fishing.c index 77e16a147c..41aee59654 100644 --- a/soh/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/soh/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -432,6 +432,8 @@ static FishingEffect sFishingEffects[FISHING_EFFECT_COUNT]; static Vec3f sStreamSoundProjectedPos; static s16 sFishOnHandParams; +f32 Fishing_GetMinimumRequiredScore(); + u8 AllHyruleLoaches() { return CVarGetInteger(CVAR_ENHANCEMENT("CustomizeFishing"), 0) && CVarGetInteger(CVAR_ENHANCEMENT("AllHyruleLoaches"), 0); @@ -904,12 +906,16 @@ void Fishing_Init(Actor* thisx, PlayState* play2) { if (sLinkAge == LINK_AGE_CHILD) { if ((HIGH_SCORE(HS_FISHING) & HS_FISH_LENGTH_CHILD) != 0) { sFishingRecordLength = HIGH_SCORE(HS_FISHING) & HS_FISH_LENGTH_CHILD; + } else if (CVarGetInteger(CVAR_ENHANCEMENT("CustomizeFishing"), 0)) { + sFishingRecordLength = Fishing_GetMinimumRequiredScore(); } else { sFishingRecordLength = 40.0f; // 6 lbs } } else { if ((HIGH_SCORE(HS_FISHING) & HS_FISH_LENGTH_ADULT) != 0) { sFishingRecordLength = (HIGH_SCORE(HS_FISHING) & HS_FISH_LENGTH_ADULT) >> 0x18; + } else if (CVarGetInteger(CVAR_ENHANCEMENT("CustomizeFishing"), 0)) { + sFishingRecordLength = Fishing_GetMinimumRequiredScore(); } else { sFishingRecordLength = 45.0f; // 7 lbs }