From 6f374db2adbc21d07d7a86d24398680757ba3b46 Mon Sep 17 00:00:00 2001 From: RandomityGuy <31925790+RandomityGuy@users.noreply.github.com> Date: Thu, 4 Jul 2024 23:23:57 +0530 Subject: [PATCH] add version check and attempt mobile controls fixes --- data/ui/touch/video-camera.png | Bin 0 -> 6546 bytes src/Main.hx | 2 ++ src/MarbleGame.hx | 2 ++ src/MarbleWorld.hx | 3 +++ src/gui/VersionGui.hx | 14 ++++++++++++++ src/net/NetCommands.hx | 5 +++++ src/touch/BlastButton.hx | 4 +++- 7 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 data/ui/touch/video-camera.png diff --git a/data/ui/touch/video-camera.png b/data/ui/touch/video-camera.png new file mode 100644 index 0000000000000000000000000000000000000000..23130bf8cdab267f67190de7a1a6f511b8e2f632 GIT binary patch literal 6546 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 { + var mdtext = res.toString(); + var firstline = mdtext.split("\n")[0]; + firstline = StringTools.replace(firstline, "#", ""); + firstline = StringTools.trim(firstline); + if (firstline != MarbleGame.currentVersion) { + // We need to update lol + var mbo = new MessageBoxOkDlg("New version available! Please update your game."); + MarbleGame.canvas.pushDialog(mbo); + } + }, (e) -> {}); + } } diff --git a/src/net/NetCommands.hx b/src/net/NetCommands.hx index 94d0d8c6..a9dcbbe6 100644 --- a/src/net/NetCommands.hx +++ b/src/net/NetCommands.hx @@ -17,6 +17,7 @@ import src.MissionList; import src.Console; import src.Marbleland; import src.Settings; +import src.Util; @:build(net.RPCMacro.build()) class NetCommands { @@ -242,6 +243,10 @@ class NetCommands { if (MarbleGame.canvas.children[MarbleGame.canvas.children.length - 1] is MPPreGameDlg) { MarbleGame.canvas.popDialog(MarbleGame.canvas.children[MarbleGame.canvas.children.length - 1]); MarbleGame.instance.world.setCursorLock(true); + if (Util.isTouchDevice()) { + MarbleGame.canvas.render(MarbleGame.canvas.scene2d); + MarbleGame.instance.touchInput.setControlsEnabled(true); + } MarbleGame.instance.world.marble.camera.stopOverview(); } diff --git a/src/touch/BlastButton.hx b/src/touch/BlastButton.hx index 689047bd..14f8b137 100644 --- a/src/touch/BlastButton.hx +++ b/src/touch/BlastButton.hx @@ -1,5 +1,6 @@ package touch; +import src.MarbleGame; import touch.TouchInput.Touch; import h3d.Vector; import hxd.Window; @@ -8,7 +9,8 @@ import src.Settings; class BlastButton extends TouchButton { public function new() { - super(ResourceLoader.getImage("data/ui/touch/explosion.png").resource, + var mode = MarbleGame.instance.world != null ? @:privateAccess MarbleGame.instance.world.marble.camera.spectate : false; + super(ResourceLoader.getImage(mode ? "data/ui/touch/video-camera.png" : "data/ui/touch/explosion.png").resource, new Vector(Settings.touchSettings.blastButtonPos[0], Settings.touchSettings.blastButtonPos[1]), Settings.touchSettings.blastButtonSize); this.setEnabled(false); }