From b73fe67c04a7ef0fce3ba1dd4460fb6dbb1df2a6 Mon Sep 17 00:00:00 2001 From: RandomityGuy <31925790+RandomityGuy@users.noreply.github.com> Date: Sun, 14 May 2023 19:03:27 +0530 Subject: [PATCH] rewind controller support --- src/MarbleWorld.hx | 9 ++++++--- src/Settings.hx | 7 ++++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/MarbleWorld.hx b/src/MarbleWorld.hx index 50931498..974a5cdc 100644 --- a/src/MarbleWorld.hx +++ b/src/MarbleWorld.hx @@ -915,15 +915,18 @@ class MarbleWorld extends Scheduler { var realDt = dt; - if (Key.isDown(Settings.controlsSettings.rewind) && Settings.optionsSettings.rewindEnabled && !this.isWatching) { + if ((Key.isDown(Settings.controlsSettings.rewind) || Gamepad.isDown(Settings.gamepadSettings.rewind)) + && Settings.optionsSettings.rewindEnabled + && !this.isWatching) { this.rewinding = true; } else { - this.rewinding = false; - if (Key.isReleased(Settings.controlsSettings.rewind)) { + if ((Key.isReleased(Settings.controlsSettings.rewind) || Gamepad.isReleased(Settings.gamepadSettings.rewind)) + && this.rewinding) { if (this.isRecording) { this.replay.spliceReplay(timeState.currentAttemptTime); } } + this.rewinding = false; } if (!this.isWatching) { diff --git a/src/Settings.hx b/src/Settings.hx index 3547c9f4..22043847 100644 --- a/src/Settings.hx +++ b/src/Settings.hx @@ -75,6 +75,7 @@ typedef GamepadSettings = { var invertXAxis:Bool; var invertYAxis:Bool; var axisDeadzone:Float; + var rewind:Array; } class Settings { @@ -135,7 +136,8 @@ class Settings { cameraSensitivity: 1.0, invertXAxis: false, invertYAxis: false, - axisDeadzone: 0.15 + axisDeadzone: 0.15, + rewind: ["Y"], } public static var progression = [24, 24, 52]; @@ -263,6 +265,9 @@ class Settings { if (json.gamepad != null) { gamepadSettings = json.gamepad; } + if (gamepadSettings.rewind == null) { + gamepadSettings.rewind = ["Y"]; + } if (controlsSettings.rewind == null) { controlsSettings.rewind = Key.R; }