From e4fe289f70b2b6503a5828e061cfd4523ef8b36a Mon Sep 17 00:00:00 2001 From: Vague Rant Date: Tue, 7 Jun 2022 16:10:48 +1000 Subject: [PATCH] Restore Hover Fishing bug from 1.0 --- libultraship/libultraship/SohImGuiImpl.cpp | 2 ++ soh/soh/Enhancements/bootcommands.c | 1 + soh/src/overlays/actors/ovl_player_actor/z_player.c | 4 ++-- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libultraship/libultraship/SohImGuiImpl.cpp b/libultraship/libultraship/SohImGuiImpl.cpp index 0b64b5438..f6e41fb6e 100644 --- a/libultraship/libultraship/SohImGuiImpl.cpp +++ b/libultraship/libultraship/SohImGuiImpl.cpp @@ -950,6 +950,8 @@ namespace SohImGui { { EnhancementCheckbox("Red Ganon blood", "gRedGanonBlood"); Tooltip("Restore the original red blood from NTSC 1.0/1.1. Disable for green blood"); + EnhancementCheckbox("Fish while hovering", "gHoverFishing"); + Tooltip("Restore a bug from NTSC 1.0 that allows casting the Fishing Rod while using the Hover Boots"); ImGui::EndMenu(); } diff --git a/soh/soh/Enhancements/bootcommands.c b/soh/soh/Enhancements/bootcommands.c index 701e2f619..77dd075c5 100644 --- a/soh/soh/Enhancements/bootcommands.c +++ b/soh/soh/Enhancements/bootcommands.c @@ -26,6 +26,7 @@ void BootCommands_Init() CVar_RegisterS32("gPauseLiveLink", 0); CVar_RegisterS32("gMinimalUI", 0); CVar_RegisterS32("gRedGanonBlood", 0); + CVar_RegisterS32("gHoverFishing", 0); CVar_RegisterS32("gRumbleEnabled", 0); CVar_RegisterS32("gUniformLR", 0); CVar_RegisterS32("gTwoHandedIdle", 0); diff --git a/soh/src/overlays/actors/ovl_player_actor/z_player.c b/soh/src/overlays/actors/ovl_player_actor/z_player.c index ecf77cc2a..5ec436b05 100644 --- a/soh/src/overlays/actors/ovl_player_actor/z_player.c +++ b/soh/src/overlays/actors/ovl_player_actor/z_player.c @@ -5470,8 +5470,8 @@ s32 func_8083C6B8(GlobalContext* globalCtx, Player* this) { sp24 = this->actor.world.pos; sp24.y += 50.0f; - if (!(this->actor.bgCheckFlags & 1) || (this->actor.world.pos.z > 1300.0f) || - BgCheck_SphVsFirstPoly(&globalCtx->colCtx, &sp24, 20.0f)) { + if (CVar_GetS32("gHoverFishing", 0) ? 0 : !(this->actor.bgCheckFlags & 1) || + (this->actor.world.pos.z > 1300.0f) || BgCheck_SphVsFirstPoly(&globalCtx->colCtx, &sp24, 20.0f)) { func_80078884(NA_SE_SY_ERROR); return 0; }