summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKiloku <mateus.sateles@protonmail.com>2025-02-12 23:02:07 -0300
committerLywx <kiritodev01@gmail.com>2025-02-16 19:52:24 -0600
commit38a2029cecd2b720c14eb19a949d6b99daf06da2 (patch)
tree5d99bfc92af27f31293e21b533c53329854bf766 /src
parentf90ba8d4ad50c1ec9c4b6313e5edddda879adcac (diff)
Add Frame Advance feature
Diffstat (limited to 'src')
-rw-r--r--src/port/mods/PortEnhancements.c6
-rw-r--r--src/port/ui/ImguiUI.cpp8
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")) {