From 9eafa852b5a539ce505600294ad2edeaa053ca05 Mon Sep 17 00:00:00 2001 From: Pepe20129 <72659707+Pepe20129@users.noreply.github.com> Date: Mon, 25 Aug 2025 21:00:59 +0200 Subject: [PATCH] Fix Dampe Going Backwards (#5731) * Add FixDampeGoingBackwards * Update SohMenuEnhancements.cpp --- soh/assets/custom/presets/Main Enhanced.json | 1 + soh/assets/custom/presets/Main Randomizer.json | 1 + soh/assets/custom/presets/Main Vanilla+.json | 1 + soh/soh/SohGui/SohMenuEnhancements.cpp | 4 ++++ soh/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c | 5 +++++ 5 files changed, 12 insertions(+) diff --git a/soh/assets/custom/presets/Main Enhanced.json b/soh/assets/custom/presets/Main Enhanced.json index 5e63d651f..eabda809f 100644 --- a/soh/assets/custom/presets/Main Enhanced.json +++ b/soh/assets/custom/presets/Main Enhanced.json @@ -16,6 +16,7 @@ "EnemySpawnsOverWaterboxes": 1, "FasterRupeeAccumulator": 1, "FixBrokenGiantsKnife": 1, + "FixDampeGoingBackwards": 1, "FixDaruniaDanceSpeed": 1, "FixDungeonMinimapIcon": 1, "FixEyesOpenWhileSleeping": 1, diff --git a/soh/assets/custom/presets/Main Randomizer.json b/soh/assets/custom/presets/Main Randomizer.json index 7ece7315a..2982a8b72 100644 --- a/soh/assets/custom/presets/Main Randomizer.json +++ b/soh/assets/custom/presets/Main Randomizer.json @@ -45,6 +45,7 @@ "FishNeverEscape": 1, "FixBrokenGiantsKnife": 1, "FixDaruniaDanceSpeed": 1, + "FixDampeGoingBackwards": 1, "FixDungeonMinimapIcon": 1, "FixFloorSwitches": 1, "FixHammerHand": 1, diff --git a/soh/assets/custom/presets/Main Vanilla+.json b/soh/assets/custom/presets/Main Vanilla+.json index 0f6c1741a..1ac97a567 100644 --- a/soh/assets/custom/presets/Main Vanilla+.json +++ b/soh/assets/custom/presets/Main Vanilla+.json @@ -17,6 +17,7 @@ "FasterRupeeAccumulator": 1, "FixBrokenGiantsKnife": 1, "FixDaruniaDanceSpeed": 1, + "FixDampeGoingBackwards": 1, "FixDungeonMinimapIcon": 1, "FixEyesOpenWhileSleeping": 1, "FixFloorSwitches": 1, diff --git a/soh/soh/SohGui/SohMenuEnhancements.cpp b/soh/soh/SohGui/SohMenuEnhancements.cpp index 488aeb720..2a40cb23c 100644 --- a/soh/soh/SohGui/SohMenuEnhancements.cpp +++ b/soh/soh/SohGui/SohMenuEnhancements.cpp @@ -942,6 +942,10 @@ void SohMenu::AddMenuEnhancements() { }) .Options(CheckboxOptions().Tooltip( "Fixes a bug where the Gravedigging Tour Heart Piece disappears if the area reloads.")); + AddWidget(path, "Fix Dampé Going Backwards", WIDGET_CVAR_CHECKBOX) + .CVar(CVAR_ENHANCEMENT("FixDampeGoingBackwards")) + .Options(CheckboxOptions().Tooltip( + "Fixes Dampé going backwards in certain circumstances when the player is going backwards.")); AddWidget(path, "Fix Raised Floor Switches", WIDGET_CVAR_CHECKBOX) .CVar(CVAR_ENHANCEMENT("FixFloorSwitches")) .Options(CheckboxOptions().Tooltip( diff --git a/soh/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c b/soh/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c index d850021a4..c62db2dd8 100644 --- a/soh/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c +++ b/soh/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c @@ -238,6 +238,11 @@ void EnPoRelay_Race(EnPoRelay* this, PlayState* play) { } else { speed = 3.5f; } + + if (CVarGetInteger(CVAR_ENHANCEMENT("FixDampeGoingBackwards"), false)) { + speed = ABS(speed); + } + multiplier = 250.0f - this->actor.xzDistToPlayer; multiplier = CLAMP_MIN(multiplier, 0.0f); speed += multiplier * 0.02f + 1.0f;