mirror of
https://github.com/RandomityGuy/MBHaxe.git
synced 2025-10-30 08:11:25 +00:00
rewind options
This commit is contained in:
parent
dba7ff7328
commit
45b11aa19b
5 changed files with 94 additions and 13 deletions
BIN
data/ui/options/rwnd_tab.png
Normal file
BIN
data/ui/options/rwnd_tab.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
BIN
data/ui/options/rwnd_timescale.png
Normal file
BIN
data/ui/options/rwnd_timescale.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
BIN
data/ui/options/rwnd_txt.png
Normal file
BIN
data/ui/options/rwnd_txt.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.1 KiB |
|
|
@ -34,6 +34,7 @@ typedef OptionsSettings = {
|
||||||
var vsync:Bool;
|
var vsync:Bool;
|
||||||
var fovX:Int;
|
var fovX:Int;
|
||||||
var rewindEnabled:Bool;
|
var rewindEnabled:Bool;
|
||||||
|
var rewindTimescale:Float;
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef ControlsSettings = {
|
typedef ControlsSettings = {
|
||||||
|
|
@ -94,6 +95,7 @@ class Settings {
|
||||||
soundVolume: 0.7,
|
soundVolume: 0.7,
|
||||||
fovX: 90,
|
fovX: 90,
|
||||||
rewindEnabled: false,
|
rewindEnabled: false,
|
||||||
|
rewindTimescale: 1,
|
||||||
vsync: #if js true #end
|
vsync: #if js true #end
|
||||||
#if hl
|
#if hl
|
||||||
false
|
false
|
||||||
|
|
@ -259,6 +261,8 @@ class Settings {
|
||||||
optionsSettings.fovX = 90;
|
optionsSettings.fovX = 90;
|
||||||
if (optionsSettings.rewindEnabled == false #if js || optionsSettings.rewindEnabled == null #end)
|
if (optionsSettings.rewindEnabled == false #if js || optionsSettings.rewindEnabled == null #end)
|
||||||
optionsSettings.rewindEnabled = false;
|
optionsSettings.rewindEnabled = false;
|
||||||
|
if (optionsSettings.rewindTimescale == 0 #if js || optionsSettings.rewindTimescale == null #end)
|
||||||
|
optionsSettings.rewindTimescale = 1;
|
||||||
controlsSettings = json.controls;
|
controlsSettings = json.controls;
|
||||||
if (json.touch != null) {
|
if (json.touch != null) {
|
||||||
touchSettings = json.touch;
|
touchSettings = json.touch;
|
||||||
|
|
@ -283,6 +287,9 @@ class Settings {
|
||||||
if (optionsSettings.rewindEnabled == null) {
|
if (optionsSettings.rewindEnabled == null) {
|
||||||
optionsSettings.rewindEnabled = false;
|
optionsSettings.rewindEnabled = false;
|
||||||
}
|
}
|
||||||
|
if (optionsSettings.rewindTimescale == null) {
|
||||||
|
optionsSettings.rewindTimescale = 1;
|
||||||
|
}
|
||||||
#end
|
#end
|
||||||
progression = json.progression;
|
progression = json.progression;
|
||||||
highscoreName = json.highscoreName;
|
highscoreName = json.highscoreName;
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,10 @@ class OptionsDlg extends GuiImage {
|
||||||
controlsTab.position = new Vector(315, 15);
|
controlsTab.position = new Vector(315, 15);
|
||||||
controlsTab.extent = new Vector(149, 65);
|
controlsTab.extent = new Vector(149, 65);
|
||||||
|
|
||||||
|
var rewindTab = new GuiImage(ResourceLoader.getResource("data/ui/options/rwnd_tab.png", ResourceLoader.getImage, this.imageResources).toTile());
|
||||||
|
rewindTab.position = new Vector(459, 76);
|
||||||
|
rewindTab.extent = new Vector(59, 162);
|
||||||
|
|
||||||
var boxFrame = new GuiImage(ResourceLoader.getResource("data/ui/options/options_base.png", ResourceLoader.getImage, this.imageResources).toTile());
|
var boxFrame = new GuiImage(ResourceLoader.getResource("data/ui/options/options_base.png", ResourceLoader.getImage, this.imageResources).toTile());
|
||||||
boxFrame.position = new Vector(25, 14);
|
boxFrame.position = new Vector(25, 14);
|
||||||
boxFrame.extent = new Vector(470, 422);
|
boxFrame.extent = new Vector(470, 422);
|
||||||
|
|
@ -65,6 +69,7 @@ class OptionsDlg extends GuiImage {
|
||||||
|
|
||||||
tabs.addChild(audioTab);
|
tabs.addChild(audioTab);
|
||||||
tabs.addChild(controlsTab);
|
tabs.addChild(controlsTab);
|
||||||
|
tabs.addChild(rewindTab);
|
||||||
tabs.addChild(boxFrame);
|
tabs.addChild(boxFrame);
|
||||||
tabs.addChild(graphicsTab);
|
tabs.addChild(graphicsTab);
|
||||||
|
|
||||||
|
|
@ -367,19 +372,7 @@ Extensions: EAX 2.0, EAX 3.0, EAX Unified, and EAX-AC3";
|
||||||
Settings.applySettings();
|
Settings.applySettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
// CONTROLS PANEL
|
// REWIND PANEL
|
||||||
var controlsPane = new GuiControl();
|
|
||||||
controlsPane.position = new Vector(44, 58);
|
|
||||||
controlsPane.extent = new Vector(459, 339);
|
|
||||||
// MARBLE PANEL
|
|
||||||
var marbleControlsPane = new GuiImage(ResourceLoader.getResource("data/ui/options/cntrl_marb_bse.png", ResourceLoader.getImage, this.imageResources)
|
|
||||||
.toTile());
|
|
||||||
marbleControlsPane.position = new Vector(0, 5);
|
|
||||||
marbleControlsPane.extent = new Vector(438, 320);
|
|
||||||
controlsPane.addChild(marbleControlsPane);
|
|
||||||
|
|
||||||
var cameraControlsPane:GuiImage = null;
|
|
||||||
var mouseControlsPane:GuiImage = null;
|
|
||||||
|
|
||||||
function getConflictingBinding(bindingName:String, key:Int) {
|
function getConflictingBinding(bindingName:String, key:Int) {
|
||||||
if (Settings.controlsSettings.forward == key && bindingName != "Move Forward")
|
if (Settings.controlsSettings.forward == key && bindingName != "Move Forward")
|
||||||
|
|
@ -404,6 +397,8 @@ Extensions: EAX 2.0, EAX 3.0, EAX Unified, and EAX-AC3";
|
||||||
return "Use PowerUp";
|
return "Use PowerUp";
|
||||||
if (Settings.controlsSettings.freelook == key && bindingName != "Free Look")
|
if (Settings.controlsSettings.freelook == key && bindingName != "Free Look")
|
||||||
return "Free Look";
|
return "Free Look";
|
||||||
|
if (Settings.controlsSettings.rewind == key && bindingName != "Rewind")
|
||||||
|
return "Rewind";
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
@ -432,6 +427,66 @@ Extensions: EAX 2.0, EAX 3.0, EAX Unified, and EAX-AC3";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var rewindPane = new GuiControl();
|
||||||
|
rewindPane.position = new Vector(41, 91);
|
||||||
|
rewindPane.extent = new Vector(425, 281);
|
||||||
|
|
||||||
|
var rwndTimescaleSlide = new GuiImage(ResourceLoader.getResource("data/ui/options/rwnd_timescale.png", ResourceLoader.getImage, this.imageResources)
|
||||||
|
.toTile());
|
||||||
|
rwndTimescaleSlide.position = new Vector(29, 44);
|
||||||
|
rwndTimescaleSlide.extent = new Vector(381, 33);
|
||||||
|
rewindPane.addChild(rwndTimescaleSlide);
|
||||||
|
|
||||||
|
var rwndTxt = new GuiImage(ResourceLoader.getResource("data/ui/options/rwnd_txt.png", ResourceLoader.getImage, this.imageResources).toTile());
|
||||||
|
rwndTxt.position = new Vector(32, 83);
|
||||||
|
rwndTxt.extent = new Vector(146, 261);
|
||||||
|
rewindPane.addChild(rwndTxt);
|
||||||
|
|
||||||
|
var rewindTimescaleKnob = new GuiSlider(ResourceLoader.getResource("data/ui/options/aud_mus_knb.png", ResourceLoader.getImage, this.imageResources)
|
||||||
|
.toTile());
|
||||||
|
rewindTimescaleKnob.position = new Vector(144, 44);
|
||||||
|
rewindTimescaleKnob.extent = new Vector(250, 34);
|
||||||
|
rewindTimescaleKnob.sliderValue = (Settings.optionsSettings.rewindTimescale - 0.1) / (1 - 0.1);
|
||||||
|
rewindTimescaleKnob.pressedAction = (sender) -> {
|
||||||
|
Settings.optionsSettings.rewindTimescale = cast(0.1 + rewindTimescaleKnob.sliderValue * (1 - 0.1));
|
||||||
|
}
|
||||||
|
rewindPane.addChild(rewindTimescaleKnob);
|
||||||
|
|
||||||
|
var rewindBtn = new GuiButtonText(loadButtonImages("data/ui/options/cntr_rwnd"), arial14);
|
||||||
|
rewindBtn.position = new Vector(112, 76);
|
||||||
|
rewindBtn.setExtent(new Vector(118, 48));
|
||||||
|
rewindBtn.txtCtrl.text.text = Util.getKeyForButton2(Settings.controlsSettings.rewind);
|
||||||
|
rewindBtn.pressedAction = (sender) -> {
|
||||||
|
remapFunc("Rewind", (key) -> Settings.controlsSettings.rewind = key, rewindBtn);
|
||||||
|
}
|
||||||
|
rewindPane.addChild(rewindBtn);
|
||||||
|
|
||||||
|
var rwndEnableButton = new GuiButton(loadButtonImages("data/ui/options/graf_chkbx"));
|
||||||
|
rwndEnableButton.position = new Vector(142, 116);
|
||||||
|
rwndEnableButton.extent = new Vector(46, 54);
|
||||||
|
rwndEnableButton.buttonType = Toggle;
|
||||||
|
rwndEnableButton.pressedAction = (sender) -> {
|
||||||
|
Settings.optionsSettings.rewindEnabled = rwndEnableButton.pressed;
|
||||||
|
}
|
||||||
|
rewindPane.addChild(rwndEnableButton);
|
||||||
|
if (Settings.optionsSettings.rewindEnabled) {
|
||||||
|
rwndEnableButton.pressed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// CONTROLS PANEL
|
||||||
|
var controlsPane = new GuiControl();
|
||||||
|
controlsPane.position = new Vector(44, 58);
|
||||||
|
controlsPane.extent = new Vector(459, 339);
|
||||||
|
// MARBLE PANEL
|
||||||
|
var marbleControlsPane = new GuiImage(ResourceLoader.getResource("data/ui/options/cntrl_marb_bse.png", ResourceLoader.getImage, this.imageResources)
|
||||||
|
.toTile());
|
||||||
|
marbleControlsPane.position = new Vector(0, 5);
|
||||||
|
marbleControlsPane.extent = new Vector(438, 320);
|
||||||
|
controlsPane.addChild(marbleControlsPane);
|
||||||
|
|
||||||
|
var cameraControlsPane:GuiImage = null;
|
||||||
|
var mouseControlsPane:GuiImage = null;
|
||||||
|
|
||||||
var moveForward = new GuiButtonText(loadButtonImages("data/ui/options/cntr_mrb_fw"), arial14);
|
var moveForward = new GuiButtonText(loadButtonImages("data/ui/options/cntr_mrb_fw"), arial14);
|
||||||
moveForward.position = new Vector(82, 104);
|
moveForward.position = new Vector(82, 104);
|
||||||
moveForward.setExtent(new Vector(117, 51));
|
moveForward.setExtent(new Vector(117, 51));
|
||||||
|
|
@ -663,6 +718,12 @@ Extensions: EAX 2.0, EAX 3.0, EAX Unified, and EAX-AC3";
|
||||||
graphicsTabBtn.pressedAction = (sender) -> setTab("Graphics");
|
graphicsTabBtn.pressedAction = (sender) -> setTab("Graphics");
|
||||||
mainPane.addChild(graphicsTabBtn);
|
mainPane.addChild(graphicsTabBtn);
|
||||||
|
|
||||||
|
var rewindTabBtn = new GuiButton([transparentTile, transparentTile, transparentTile]);
|
||||||
|
rewindTabBtn.position = new Vector(480, 76);
|
||||||
|
rewindTabBtn.extent = new Vector(48, 160);
|
||||||
|
rewindTabBtn.pressedAction = (sender) -> setTab("Rewind");
|
||||||
|
mainPane.addChild(rewindTabBtn);
|
||||||
|
|
||||||
// Touch Controls buttons???
|
// Touch Controls buttons???
|
||||||
if (Util.isTouchDevice()) {
|
if (Util.isTouchDevice()) {
|
||||||
var touchControlsTxt = new GuiText(domcasual24);
|
var touchControlsTxt = new GuiText(domcasual24);
|
||||||
|
|
@ -686,14 +747,17 @@ Extensions: EAX 2.0, EAX 3.0, EAX Unified, and EAX-AC3";
|
||||||
setTab = function(tab:String) {
|
setTab = function(tab:String) {
|
||||||
tabs.removeChild(audioTab);
|
tabs.removeChild(audioTab);
|
||||||
tabs.removeChild(controlsTab);
|
tabs.removeChild(controlsTab);
|
||||||
|
tabs.removeChild(rewindTab);
|
||||||
tabs.removeChild(boxFrame);
|
tabs.removeChild(boxFrame);
|
||||||
tabs.removeChild(graphicsTab);
|
tabs.removeChild(graphicsTab);
|
||||||
mainPane.removeChild(graphicsPane);
|
mainPane.removeChild(graphicsPane);
|
||||||
mainPane.removeChild(audioPane);
|
mainPane.removeChild(audioPane);
|
||||||
mainPane.removeChild(controlsPane);
|
mainPane.removeChild(controlsPane);
|
||||||
|
mainPane.removeChild(rewindPane);
|
||||||
if (tab == "Graphics") {
|
if (tab == "Graphics") {
|
||||||
tabs.addChild(audioTab);
|
tabs.addChild(audioTab);
|
||||||
tabs.addChild(controlsTab);
|
tabs.addChild(controlsTab);
|
||||||
|
tabs.addChild(rewindTab);
|
||||||
tabs.addChild(boxFrame);
|
tabs.addChild(boxFrame);
|
||||||
tabs.addChild(graphicsTab);
|
tabs.addChild(graphicsTab);
|
||||||
mainPane.addChild(graphicsPane);
|
mainPane.addChild(graphicsPane);
|
||||||
|
|
@ -701,6 +765,7 @@ Extensions: EAX 2.0, EAX 3.0, EAX Unified, and EAX-AC3";
|
||||||
if (tab == "Audio") {
|
if (tab == "Audio") {
|
||||||
tabs.addChild(graphicsTab);
|
tabs.addChild(graphicsTab);
|
||||||
tabs.addChild(controlsTab);
|
tabs.addChild(controlsTab);
|
||||||
|
tabs.addChild(rewindTab);
|
||||||
tabs.addChild(boxFrame);
|
tabs.addChild(boxFrame);
|
||||||
tabs.addChild(audioTab);
|
tabs.addChild(audioTab);
|
||||||
mainPane.addChild(audioPane);
|
mainPane.addChild(audioPane);
|
||||||
|
|
@ -708,10 +773,19 @@ Extensions: EAX 2.0, EAX 3.0, EAX Unified, and EAX-AC3";
|
||||||
if (tab == "Controls") {
|
if (tab == "Controls") {
|
||||||
tabs.addChild(audioTab);
|
tabs.addChild(audioTab);
|
||||||
tabs.addChild(graphicsTab);
|
tabs.addChild(graphicsTab);
|
||||||
|
tabs.addChild(rewindTab);
|
||||||
tabs.addChild(boxFrame);
|
tabs.addChild(boxFrame);
|
||||||
tabs.addChild(controlsTab);
|
tabs.addChild(controlsTab);
|
||||||
mainPane.addChild(controlsPane);
|
mainPane.addChild(controlsPane);
|
||||||
}
|
}
|
||||||
|
if (tab == "Rewind") {
|
||||||
|
tabs.addChild(audioTab);
|
||||||
|
tabs.addChild(graphicsTab);
|
||||||
|
tabs.addChild(controlsTab);
|
||||||
|
tabs.addChild(boxFrame);
|
||||||
|
tabs.addChild(rewindTab);
|
||||||
|
mainPane.addChild(rewindPane);
|
||||||
|
}
|
||||||
this.render(MarbleGame.canvas.scene2d);
|
this.render(MarbleGame.canvas.scene2d);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue