diff --git a/marblegame.hl b/marblegame.hl index ce966c12..c1d63f07 100644 Binary files a/marblegame.hl and b/marblegame.hl differ diff --git a/src/Main.hx b/src/Main.hx index 30d1d400..54ed460a 100644 --- a/src/Main.hx +++ b/src/Main.hx @@ -1,5 +1,6 @@ package; +import hxd.Window; import src.AudioManager; import src.Settings; import src.MarbleGame; diff --git a/src/Marble.hx b/src/Marble.hx index 19a61b53..fa0f4345 100644 --- a/src/Marble.hx +++ b/src/Marble.hx @@ -97,7 +97,7 @@ final trailParticleOptions:ParticleEmitterOptions = { lifetimeVariance: 10, acceleration: 0, colors: [new Vector(1, 1, 0, 0), new Vector(1, 1, 0, 1), new Vector(1, 1, 1, 0)], - sizes: [0.7, 0.4, 0.1], + sizes: [0.4, 0.4, 0.1], times: [0, 0.15, 1] } }; @@ -842,7 +842,7 @@ class Marble extends GameObject { var intersectT = this.getIntersectionTime(timeStep, velocity); - if (intersectT < timeStep) { + if (intersectT < timeStep && intersectT > 0.000001) { intersectT *= 0.8; // We uh tick the shit to not actually at the contact time cause bruh // intersectT /= 2; var diff = timeStep - intersectT; diff --git a/src/Settings.hx b/src/Settings.hx index 56c56dcf..46f90b57 100644 --- a/src/Settings.hx +++ b/src/Settings.hx @@ -23,6 +23,7 @@ typedef OptionsSettings = { var shadows:Bool; var musicVolume:Float; var soundVolume:Float; + var vsync:Bool; } typedef ControlsSettings = { @@ -54,6 +55,7 @@ class Settings { shadows: false, musicVolume: 0, soundVolume: 0, + vsync: true }; public static var controlsSettings:ControlsSettings = { @@ -125,6 +127,7 @@ class Settings { controlsSettings = json.controls; progression = json.progression; } + Window.getInstance().vsync = optionsSettings.vsync; } public static function init() { diff --git a/src/gui/PlayMissionGui.hx b/src/gui/PlayMissionGui.hx index fd127f2b..d875a5c1 100644 --- a/src/gui/PlayMissionGui.hx +++ b/src/gui/PlayMissionGui.hx @@ -58,7 +58,7 @@ class PlayMissionGui extends GuiImage { tabAdvanced.pressedAction = (sender) -> { currentList = MissionList.advancedMissions; currentCategory = "advanced"; - setSelectedFunc(0); + setSelectedFunc(cast Math.min(Settings.progression[2], currentList.length - 1)); setCategoryFunc("advanced"); } localContainer.addChild(tabAdvanced); @@ -69,7 +69,7 @@ class PlayMissionGui extends GuiImage { tabIntermediate.pressedAction = (sender) -> { currentList = MissionList.intermediateMissions; currentCategory = "intermediate"; - setSelectedFunc(0); + setSelectedFunc(cast Math.min(Settings.progression[1], currentList.length - 1)); setCategoryFunc("intermediate"); } localContainer.addChild(tabIntermediate); @@ -227,7 +227,7 @@ class PlayMissionGui extends GuiImage { tabBeginner.pressedAction = (sender) -> { currentList = MissionList.beginnerMissions; currentCategory = "beginner"; - setSelectedFunc(0); + setSelectedFunc(cast Math.min(Settings.progression[0], currentList.length - 1)); setCategoryFunc("beginner"); } localContainer.addChild(tabBeginner); @@ -366,6 +366,7 @@ class PlayMissionGui extends GuiImage { public override function render(scene2d:Scene) { super.render(scene2d); - setSelectedFunc(0); + setSelectedFunc(cast Math.min(currentList.length - 1, Settings.progression[["beginner", "intermediate", "advanced"].indexOf(currentCategory)])); + // setSelectedFunc(0); } }