From 1e6141cdff0b2a1fde4ec648beedfc8646105dab 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 | 8 ++++++-- src/Settings.hx | 7 ++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/MarbleWorld.hx b/src/MarbleWorld.hx index 61b8ec2a..fbd6d3ac 100644 --- a/src/MarbleWorld.hx +++ b/src/MarbleWorld.hx @@ -992,12 +992,16 @@ class MarbleWorld extends Scheduler { var realDt = dt; - if ((Key.isDown(Settings.controlsSettings.rewind) || MarbleGame.instance.touchInput.rewindButton.pressed) + if ((Key.isDown(Settings.controlsSettings.rewind) + || MarbleGame.instance.touchInput.rewindButton.pressed + || Gamepad.isDown(Settings.gamepadSettings.rewind)) && Settings.optionsSettings.rewindEnabled && !this.isWatching) { this.rewinding = true; } else { - if ((Key.isReleased(Settings.controlsSettings.rewind) || !MarbleGame.instance.touchInput.rewindButton.pressed) + if ((Key.isReleased(Settings.controlsSettings.rewind) + || !MarbleGame.instance.touchInput.rewindButton.pressed + || Gamepad.isReleased(Settings.gamepadSettings.rewind)) && this.rewinding) { if (this.isRecording) { this.replay.spliceReplay(timeState.currentAttemptTime); diff --git a/src/Settings.hx b/src/Settings.hx index 554561c1..01f6e722 100644 --- a/src/Settings.hx +++ b/src/Settings.hx @@ -93,6 +93,7 @@ typedef GamepadSettings = { var axisDeadzone:Float; var respawn:Array; var blast:Array; + var rewind:Array; } typedef PlayStatistics = { @@ -178,7 +179,8 @@ class Settings { invertYAxis: false, axisDeadzone: 0.15, respawn: ["back"], - blast: ["X", "LB", "RB"] + blast: ["X", "LB", "RB"], + rewind: ["Y"], } public static var playStatistics:PlayStatistics = { @@ -389,6 +391,9 @@ class Settings { if (json.gamepad != null) { gamepadSettings = json.gamepad; } + if (gamepadSettings.rewind == null) { + gamepadSettings.rewind = ["Y"]; + } if (json.stats != null) { playStatistics = json.stats; }