diff options
author | Leon Krause <lk@leonkrause.com> | 2018-05-10 13:43:58 +0200 |
---|---|---|
committer | Leon Krause <lk@leonkrause.com> | 2018-05-10 15:08:19 +0200 |
commit | 96f907c023b687206df6233be383d724e2810088 (patch) | |
tree | 0ed4590505d8858abff0dfc76eb3c2eb02d495c3 | |
parent | 32eb3e1b7d2aa6010f154d8b4850357f5a11662a (diff) |
Accept non-default main packs in engine.js startGame()
Allows using startGame() with main packs exported as .zip, but also any
other custom extension, for example if a web game host does not allow
the .pck filename extension.
-rw-r--r-- | misc/dist/html/default.html | 4 | ||||
-rw-r--r-- | platform/javascript/engine.js | 6 |
2 files changed, 7 insertions, 3 deletions
diff --git a/misc/dist/html/default.html b/misc/dist/html/default.html index 4e3515a7b6..9aef77b1d2 100644 --- a/misc/dist/html/default.html +++ b/misc/dist/html/default.html @@ -229,7 +229,7 @@ $GODOT_HEAD_INCLUDE (function() { - const BASENAME = '$GODOT_BASENAME'; + const MAIN_PACK = '$GODOT_BASENAME.pck'; const DEBUG_ENABLED = $GODOT_DEBUG_ENABLED; const INDETERMINATE_STATUS_STEP_MS = 100; @@ -380,7 +380,7 @@ $GODOT_HEAD_INCLUDE } else { setStatusMode('indeterminate'); engine.setCanvas(canvas); - engine.startGame(BASENAME + '.pck').then(() => { + engine.startGame(MAIN_PACK).then(() => { setStatusMode('hidden'); initializing = false; }, displayFailureNotice); diff --git a/platform/javascript/engine.js b/platform/javascript/engine.js index 0c1337cc3b..1d78f28bb6 100644 --- a/platform/javascript/engine.js +++ b/platform/javascript/engine.js @@ -130,13 +130,17 @@ this.startGame = function(mainPack) { executableName = getBaseName(mainPack); + var mainArgs = []; + if (!getPathLeaf(mainPack).endsWith('.pck')) { + mainArgs = ['--main-pack', getPathLeaf(mainPack)]; + } return Promise.all([ // Load from directory, this.init(getBasePath(mainPack)), // ...but write to root where the engine expects it. this.preloadFile(mainPack, getPathLeaf(mainPack)) ]).then( - Function.prototype.apply.bind(synchronousStart, this, []) + Function.prototype.apply.bind(synchronousStart, this, mainArgs) ); }; |