Fix engine.js startGame() when loading from directory

This commit is contained in:
Leon Krause 2018-03-27 11:25:03 +02:00
parent d373029382
commit 3014e48ec5
1 changed files with 14 additions and 3 deletions

View File

@ -14,6 +14,13 @@
var loadingFiles = {}; var loadingFiles = {};
function getPathLeaf(path) {
while (path.endsWith('/'))
path = path.slice(0, -1);
return path.slice(path.lastIndexOf('/') + 1);
}
function getBasePath(path) { function getBasePath(path) {
if (path.endsWith('/')) if (path.endsWith('/'))
@ -25,8 +32,7 @@
function getBaseName(path) { function getBaseName(path) {
path = getBasePath(path); return getPathLeaf(getBasePath(path));
return path.slice(path.lastIndexOf('/') + 1);
} }
Engine = function Engine() { Engine = function Engine() {
@ -123,7 +129,12 @@
this.startGame = function(mainPack) { this.startGame = function(mainPack) {
executableName = getBaseName(mainPack); executableName = getBaseName(mainPack);
return Promise.all([this.init(getBasePath(mainPack)), this.preloadFile(mainPack)]).then( 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, [])
); );
}; };