From 0deeddf8cb31ce07c525a1ec8a08159c26bc8eaf Mon Sep 17 00:00:00 2001 From: Kiloku Date: Sat, 4 Jan 2025 23:57:13 -0300 Subject: [PATCH] Add specific charge button option --- src/engine/fox_play.c | 13 ++++++++++++- src/overlays/ovl_i3/fox_aq.c | 4 ++-- src/port/ui/ImguiUI.cpp | 7 +++++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/engine/fox_play.c b/src/engine/fox_play.c index a321371a..0bffddad 100644 --- a/src/engine/fox_play.c +++ b/src/engine/fox_play.c @@ -3325,7 +3325,18 @@ bool Player_UpdateLockOn(Player* player) { s32 i; bool rapidFire = CVarGetInteger("gRapidFire", 0) == 1; - if (rapidFire ? !(gInputHold->button & A_BUTTON) : (gInputHold->button & A_BUTTON)) { + bool charging; + if (rapidFire) { + if (CVarGetInteger("gLtoCharge", 0) == 1) { + charging = (gInputHold->button & L_TRIG) && !(gInputHold->button & A_BUTTON); + } + else { + charging = !(gInputHold->button & A_BUTTON); + } + } else { + charging = (gInputHold->button & A_BUTTON); + } + if (charging) { gChargeTimers[player->num]++; if (gChargeTimers[player->num] > 21) { gChargeTimers[player->num] = 21; diff --git a/src/overlays/ovl_i3/fox_aq.c b/src/overlays/ovl_i3/fox_aq.c index fc6fa608..497417dd 100644 --- a/src/overlays/ovl_i3/fox_aq.c +++ b/src/overlays/ovl_i3/fox_aq.c @@ -1331,12 +1331,12 @@ void Aquas_BlueMarineShoot(Player* player) { bool rapidFire = CVarGetInteger("gRapidFire", 0) == 1; if (rapidFire){ - if (gInputHold->button & A_BUTTON) + if (gInputHold->button & A_BUTTON) { if (player-> shotTimer > 0) { player->shotTimer--; } - if (player->shotTimer <= 0){ + if (player->shotTimer <= 0) { Aquas_BlueMarineLaser(player); player->shotTimer = 3; } diff --git a/src/port/ui/ImguiUI.cpp b/src/port/ui/ImguiUI.cpp index 4e4d5852..d77e40d4 100644 --- a/src/port/ui/ImguiUI.cpp +++ b/src/port/ui/ImguiUI.cpp @@ -501,6 +501,13 @@ void DrawCheatsMenu() { UIWidgets::CVarCheckbox("Rapid-fire mode", "gRapidFire", { .tooltip = "Hold A to keep firing. Release A to start charging a shot." }); + if (CVarGetInteger("gRapidFire", 0) == 1) { + ImGui::Dummy(ImVec2(22.0f, 0.0f)); + ImGui::SameLine(); + UIWidgets::CVarCheckbox("Hold L to Charge", "gLtoCharge", { + .tooltip = "If you prefer to not have auto-charge." + }); + } UIWidgets::CVarCheckbox("Self destruct button", "gHit64SelfDestruct", { .tooltip = "Press Down on the D-PAD to instantly self destruct." });