From 38a2029cecd2b720c14eb19a949d6b99daf06da2 Mon Sep 17 00:00:00 2001 From: Kiloku Date: Wed, 12 Feb 2025 23:02:07 -0300 Subject: [PATCH] Add Frame Advance feature --- src/port/mods/PortEnhancements.c | 6 ++++++ src/port/ui/ImguiUI.cpp | 8 ++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/port/mods/PortEnhancements.c b/src/port/mods/PortEnhancements.c index 14431076..3c38a290 100644 --- a/src/port/mods/PortEnhancements.c +++ b/src/port/mods/PortEnhancements.c @@ -166,14 +166,20 @@ void OnGameUpdatePost(IEvent* event) { void OnPlayUpdateEvent(IEvent* event){ bool debugPaused = CVarGetInteger("gDebugPause", 0); + bool shouldRepause = false; if (CVarGetInteger("gLToDebugPause", 0)){ if (gControllerPress[0].button & L_TRIG) { CVarSetInteger("gDebugPause", !debugPaused); + shouldRepause = debugPaused && CVarGetInteger("gLToFrameAdvance", 0); } } else { CVarSetInteger("gDebugPause", 0); //Unpause if we disable the shortcut } + event->cancelled = CVarGetInteger("gDebugPause", 0); + if (shouldRepause){ + CVarSetInteger("gDebugPause", 1); + } } void RefillBoostMeter(Player* player) { diff --git a/src/port/ui/ImguiUI.cpp b/src/port/ui/ImguiUI.cpp index 63eb520a..829b45ec 100644 --- a/src/port/ui/ImguiUI.cpp +++ b/src/port/ui/ImguiUI.cpp @@ -718,8 +718,12 @@ void DrawDebugMenu() { .tooltip = "Jump to credits at the main menu" }); - UIWidgets::CVarCheckbox("Press L to Debug Pause", "gLToDebugPause"); - + UIWidgets::CVarCheckbox("Press L to toggle Debug Pause", "gLToDebugPause"); + if (CVarGetInteger("gLToDebugPause", 0)){ + ImGui::Dummy(ImVec2(22.0f, 0.0f)); + ImGui::SameLine(); + UIWidgets::CVarCheckbox("Pressing L again advances one frame instead", "gLToFrameAdvance"); + } if (CVarGetInteger(StringHelper::Sprintf("gCheckpoint.%d.Set", gCurrentLevel).c_str(), 0)) { if (UIWidgets::Button("Clear Checkpoint")) {