From e7cae9bfd64a6309fb75eed07f24c13f42dc6b24 Mon Sep 17 00:00:00 2001 From: Demur Rumed Date: Tue, 20 May 2025 01:13:21 +0000 Subject: [PATCH] No Dampe Fire --- soh/soh/Enhancements/Cheats/NoDampeFire.cpp | 23 +++++++++++++++++++++ soh/soh/SohGui/SohMenuEnhancements.cpp | 3 +++ 2 files changed, 26 insertions(+) create mode 100644 soh/soh/Enhancements/Cheats/NoDampeFire.cpp diff --git a/soh/soh/Enhancements/Cheats/NoDampeFire.cpp b/soh/soh/Enhancements/Cheats/NoDampeFire.cpp new file mode 100644 index 000000000..df2be3227 --- /dev/null +++ b/soh/soh/Enhancements/Cheats/NoDampeFire.cpp @@ -0,0 +1,23 @@ +#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" +#include "soh/ShipInit.hpp" + +extern "C" { +extern PlayState* gPlayState; +#include "src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.h" +} + +#define CVAR_NO_DAMPE_FIRE_NAME CVAR_CHEAT("NoDampeFire") +#define CVAR_NO_DAMPE_FIRE_DEFAULT 0 +#define CVAR_NO_DAMPE_FIRE_VALUE CVarGetInteger(CVAR_NO_DAMPE_FIRE_NAME, CVAR_NO_DAMPE_FIRE_DEFAULT) + +void OnHonoTrapInit(void* actor) { + if (gPlayState->sceneNum == SCENE_WINDMILL_AND_DAMPES_GRAVE) { + Actor_Kill((Actor*)actor); + } +} + +void RegisterNoDampeFire() { + COND_ID_HOOK(OnActorInit, ACTOR_EN_HONOTRAP, CVAR_NO_DAMPE_FIRE_VALUE, OnHonoTrapInit); +} + +static RegisterShipInitFunc initFunc(RegisterNoDampeFire, { CVAR_NO_DAMPE_FIRE_NAME }); diff --git a/soh/soh/SohGui/SohMenuEnhancements.cpp b/soh/soh/SohGui/SohMenuEnhancements.cpp index edfb1052f..db063420a 100644 --- a/soh/soh/SohGui/SohMenuEnhancements.cpp +++ b/soh/soh/SohGui/SohMenuEnhancements.cpp @@ -1615,6 +1615,9 @@ void SohMenu::AddMenuEnhancements() { .Options(CheckboxOptions().Tooltip( "Keese and Guay no longer target you and simply ignore you as if you were wearing the " "Skull Mask.")); + AddWidget(path, "No Dampe Fire", WIDGET_CVAR_CHECKBOX) + .CVar(CVAR_CHEAT("NoDampeFire")) + .Options(CheckboxOptions().Tooltip("Dampe won't drop fireballs during race.")); AddWidget(path, "Glitch Aids", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Easy Frame Advancing with Pause", WIDGET_CVAR_CHECKBOX)