summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKiloku <mateus.sateles@protonmail.com>2025-01-04 23:57:13 -0300
committerAlejandro Asenjo Nitti <96613413+sonicdcer@users.noreply.github.com>2025-01-08 14:28:49 -0500
commit0deeddf8cb31ce07c525a1ec8a08159c26bc8eaf (patch)
tree1526c929a31188e3739c70d4b8e6ec6717f4d1a6
parent76dab3e20dc0ddb6b07031be28584367f422db4f (diff)
Add specific charge button option
-rw-r--r--src/engine/fox_play.c13
-rw-r--r--src/overlays/ovl_i3/fox_aq.c4
-rw-r--r--src/port/ui/ImguiUI.cpp7
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."
});