From 0a839d8f8d6175cac313b70dadf1d4e7ccde0b72 Mon Sep 17 00:00:00 2001 From: RandomityGuy <31925790+RandomityGuy@users.noreply.github.com> Date: Sat, 15 Jul 2023 21:16:00 +0530 Subject: [PATCH] add version checking and better changelog --- CHANGELOG.md | 84 +++++------------------------------------- src/Main.hx | 2 + src/MarbleGame.hx | 3 +- src/gui/MainMenuGui.hx | 3 +- src/gui/VersionGui.hx | 16 +++++++- 5 files changed, 31 insertions(+), 77 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 70e59fa2..8fc47bd4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,74 +1,10 @@ -# 1.5.2 -- Updated Marbleland integration link to the new site. - -# 1.5.1 -This update fixes the following bugs: -- Fixed a bug concerning moving platform collisions. -- Made moving platforms rewind correctly in case of traplaunches. - -# 1.5.0 -This update brings the following big changes: -- Added Rewind capabilities. Open options to configure it. -- Added capability to play locally installed custom levels. Install your customs in platinum/data/missions. -- Improved traplaunches, now they should be much more easier to do. -- Buffed nuke a bit, hold jump key to make it blast much stronger. -- Minor physics improvements. -- Minor performance improvements. - -# 1.4.0 -This update adds all the playable MBG, MBP, MBU custom levels via Marbleland integration. Play the entire custom level archive without manually installing with, with a single click. -- Added controller support. (Thanks thearst3rd) -- Improved replay saving flow. -- Improved marble physics a bit. -- Cleaned up some UI. -- Fixed collision detection bugs. -- Fixed various graphical bugs. -- Fixed item hitboxes being too small. -# 1.3.3 -This update addresses the following issues: -- FOV is now based on horizontal FOV instead of vertical, matching with- original MB. -- Fixed the marble getting stuck in the corners. -- Fixed black screen on opening the game for the first time on MacOS - -# 1.3.2 -This is the first build of MBHaxe Platinum that has Mac support. -- MBU interior shaders now match more closely to those of MBU in Xbox. -- Added Console for debug purposes. Press Tilde ~ to bring it up. -- Added replay browser for native. -- Reduced lag caused by end pad. -- Fixed inactive button hover sounds. -- Fixed OOB animation timings. -- Added HighDPI/Retina support. -- Fixed the color bugs regarding text input. -- Minor graphical changes to match original. -- Minor performance and physics improvements. -- Fixed tornado rendering. - -# 1.3.1 -This release fixes a lot of bugs that were reported and adds in minor improvements: -- Fixed Pad animations not working -- Fixed bugs relating to powerup pickup on respawn. -- Fixed marble not using the hitbox of the rotated hitbox for item pickups. -- Marble finish animation now matches more closely with the original. -- Fixed camera keys not working. -- Added keyboard shortcuts to certain buttons on certain dialog boxes. -- Timer now becomes green on finishing, to match original. -- Fixed double click sound on selecting level category. -- Hypercube now uses MBG gameplay logic. -- Added Time Travel Bonus messages to HUD. -- Fixed lag caused by GJK/Startpad/Endpad. -- Fixed being able to press the end game buttons while typing the name. The- input box will be focused. -- Fixed option sliders not updating values - -# 1.3.0 -- Added Marble Blast Ultra levels as per Platinum. -- Added Ultra Marbles as per Platinum and their shaders. -- Added shaders for Ultra levels closely matching original MBU. (This may- lag mobile devices) -- Fixed lot of marble physics bugs, they should now be smoother. -- Minor performance improvements. -- Added restart button to touch controls. - -# 1.2.0 -- Implemented most Marble Blast Platinum 1.7.42 (except Ultra) -- Marble reflections -- Optimized resource loading and performance +# 1.0.0 +Initial Release of Marble Blast Ultra Haxe Port. +Differences from OpenMBU/MBU Xbox: +- No Multiplayer support, for the forseeable future. +- No leaderboards support yet, not until OpenMBU gets leaderboards. +- Replay recording and watching support, even for Gem Hunt. +- Rewind TAS support. +- Minor shader differences. +- Options may differ slightly. +Please report any bugs. \ No newline at end of file diff --git a/src/Main.hx b/src/Main.hx index ff1a3ab3..ffb0e7de 100644 --- a/src/Main.hx +++ b/src/Main.hx @@ -1,5 +1,6 @@ package; +import gui.VersionGui; import gui.PresentsGui; import src.Debug; import src.Marbleland; @@ -93,6 +94,7 @@ class Main extends hxd.App { marbleGame.startPreviewWorld(() -> { marbleGame.setPreviewMission('urban', () -> { MarbleGame.canvas.setContent(new MainMenuGui()); + VersionGui.checkVersion(); }); }); }, 100); diff --git a/src/MarbleGame.hx b/src/MarbleGame.hx index 397a9d52..23311b46 100644 --- a/src/MarbleGame.hx +++ b/src/MarbleGame.hx @@ -32,9 +32,10 @@ import src.PreviewWorld; @:publicFields class MarbleGame { static var canvas:Canvas; - static var instance:MarbleGame; + static var currentVersion = "1.0.0"; + var world:MarbleWorld; var previewWorld:PreviewWorld; diff --git a/src/gui/MainMenuGui.hx b/src/gui/MainMenuGui.hx index ce09ae76..711c4285 100644 --- a/src/gui/MainMenuGui.hx +++ b/src/gui/MainMenuGui.hx @@ -11,6 +11,7 @@ import src.Util; import src.Replay; import src.Marbleland; import src.MissionList; +import src.MarbleGame; class MainMenuGui extends GuiImage { var innerCtrl:GuiControl; @@ -135,7 +136,7 @@ class MainMenuGui extends GuiImage { versionText.vertSizing = Bottom; versionText.position = new Vector(502, 61); versionText.extent = new Vector(97, 72); - versionText.text.text = "
1.0.0
"; + versionText.text.text = '${MarbleGame.currentVersion}
'; versionText.text.filter = new DropShadow(1.414, 0.785, 0x3333337F, 1, 0, 0.7, 1, true); this.addChild(versionText); diff --git a/src/gui/VersionGui.hx b/src/gui/VersionGui.hx index 85c80bcd..ae5ef9ab 100644 --- a/src/gui/VersionGui.hx +++ b/src/gui/VersionGui.hx @@ -111,7 +111,7 @@ class VersionGui extends GuiImage { wndTxt.scrollable = true; textCtrl.addChild(wndTxt); - Http.get("https://raw.githubusercontent.com/RandomityGuy/MBHaxe/master/CHANGELOG.md", (res) -> { + Http.get("https://raw.githubusercontent.com/RandomityGuy/MBHaxe/mbu-port/CHANGELOG.md", (res) -> { var mdtext = res.toString(); var res = ""; wndTxt.text.text = ""; @@ -132,6 +132,20 @@ class VersionGui extends GuiImage { }); } + public static function checkVersion() { + Http.get("https://raw.githubusercontent.com/RandomityGuy/MBHaxe/mbu-port/CHANGELOG.md", (res) -> { + 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) -> {}); + } + override function onResize(width:Int, height:Int) { var offsetX = (width - 1280) / 2; var offsetY = (height - 720) / 2;