From c93eb1db6b4322d343120bd7d2bfe15e5bae78bd Mon Sep 17 00:00:00 2001 From: RandomityGuy <31925790+RandomityGuy@users.noreply.github.com> Date: Sun, 12 Feb 2023 21:45:51 +0530 Subject: [PATCH] fix few more parsing bugs --- src/MarbleWorld.hx | 5 +++-- src/Marbleland.hx | 4 ++-- src/ResourceLoader.hx | 11 ++++++++++- src/mis/MisParser.hx | 4 ++-- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/MarbleWorld.hx b/src/MarbleWorld.hx index e182d7ef..6838b244 100644 --- a/src/MarbleWorld.hx +++ b/src/MarbleWorld.hx @@ -182,6 +182,7 @@ class MarbleWorld extends Scheduler { public var _ready:Bool = false; var _loadBegin:Bool = false; + var _loaded:Bool = false; var _loadingLength:Int = 0; @@ -1315,12 +1316,12 @@ class MarbleWorld extends Scheduler { }); #end } else { - if (this._resourcesLoaded < _loadingLength || !this._loadBegin) + if (!this._loadBegin) return; if (!_ready && !postInited) { postInited = true; Console.log("Finished loading, starting mission"); - postInit(); + haxe.Timer.delay(() -> postInit(), 5); // delay this a bit } } } diff --git a/src/Marbleland.hx b/src/Marbleland.hx index a169c4d8..a9465a38 100644 --- a/src/Marbleland.hx +++ b/src/Marbleland.hx @@ -50,7 +50,7 @@ class Marbleland { mission.title = missionData.name; mission.artist = missionData.artist != null ? missionData.artist : "Unknown Author"; mission.description = missionData.desc != null ? missionData.desc : ""; - mission.qualifyTime = missionData.qualifyingTime != null ? missionData.qualifyingTime / 1000 : Math.POSITIVE_INFINITY; + mission.qualifyTime = (missionData.qualifyingTime != null && missionData.qualifyingTime != 0) ? missionData.qualifyingTime / 1000 : Math.POSITIVE_INFINITY; mission.goldTime = missionData.goldTime != null ? missionData.goldTime / 1000 : 0; mission.game = missionData.modification; if (missionData.modification == 'platinum') @@ -97,7 +97,7 @@ class Marbleland { } public static function download(id:Int, cb:Array->Void) { - Http.get('https://marbleblast.vani.ga/api/custom/${id}.zip?assuming=none', (zipData -> { + Http.get('https://marbleland.vani.ga/api/level/${id}/zip?assuming=none', (zipData -> { var reader = new Reader(new BytesInput(zipData)); var entries:Array = null; try { diff --git a/src/ResourceLoader.hx b/src/ResourceLoader.hx index ae16b274..a12731e9 100644 --- a/src/ResourceLoader.hx +++ b/src/ResourceLoader.hx @@ -437,6 +437,15 @@ class ResourceLoader { #if (js || android) path = StringTools.replace(path, "data/", ""); #end + if (zipFilesystem.exists(path.toLowerCase() + ".jpg")) { + return [path + ".jpg"]; + } + if (zipFilesystem.exists(path.toLowerCase() + ".png")) { + return [path + ".png"]; + } + if (zipFilesystem.exists(path.toLowerCase() + ".bmp")) { + return [path + ".bmp"]; + } var files = fileSystem.dir(Path.directory(path)); // FileSystem.readDirectory(Path.directory(path)); var names = []; var fname = Path.withoutDirectory(path).toLowerCase(); @@ -452,7 +461,7 @@ class ResourceLoader { zipFilesystem.clear(); // We are only allowed to load one zip for (entry in entries) { var fname = entry.fileName.toLowerCase(); - // fname = "data/" + fname; + fname = "data/" + fname; if (exists(fname)) continue; Console.log("Loaded zip entry: " + fname); diff --git a/src/mis/MisParser.hx b/src/mis/MisParser.hx index 4f8351d0..e20a9137 100644 --- a/src/mis/MisParser.hx +++ b/src/mis/MisParser.hx @@ -298,9 +298,9 @@ class MisParser { /** Resolves a TorqueScript rvalue expression. Currently only supports the concatenation @ operator. */ function resolveExpression(expr:String) { - var parts = Util.splitIgnoreStringLiterals(expr, ' @ ').map(x -> { + var parts = Util.splitIgnoreStringLiterals(expr, '@').map(x -> { x = StringTools.trim(x); - if (StringTools.startsWith(x, '$ ') && this.variables[x] != null) { + if (StringTools.startsWith(x, '$') && this.variables[x] != null) { // Replace the variable with its value x = this.resolveExpression(this.variables[x]); } else if (StringTools.startsWith(x, '"') && StringTools.endsWith(x, '"')) {