diff --git a/binaries/data/mods/public/gui/campaigns/default_menu/endgame/endgame.js b/binaries/data/mods/public/gui/campaigns/default_menu/endgame/endgame.js index 113e7ae5b2..32f30805e6 100644 --- a/binaries/data/mods/public/gui/campaigns/default_menu/endgame/endgame.js +++ b/binaries/data/mods/public/gui/campaigns/default_menu/endgame/endgame.js @@ -8,4 +8,6 @@ function init(endGameData) const run = CampaignRun.getCurrentRun(); if (endGameData.won) markLevelComplete(run, endGameData.initData.levelID); + + return Promise.resolve(); } diff --git a/binaries/data/mods/public/gui/session/campaigns/CampaignSession.js b/binaries/data/mods/public/gui/session/campaigns/CampaignSession.js index c2d6238eb6..4d327922e7 100644 --- a/binaries/data/mods/public/gui/session/campaigns/CampaignSession.js +++ b/binaries/data/mods/public/gui/session/campaigns/CampaignSession.js @@ -1,9 +1,9 @@ class CampaignSession { - constructor(data, closePageCallback) + constructor(data) { this.run = new CampaignRun(data.run).load(); - registerPlayersFinishedHandler(this.onFinish.bind(this, closePageCallback)); + registerPlayersFinishedHandler(this.onFinish.bind(this)); this.endGameData = { "won": false, "initData": data, @@ -11,7 +11,7 @@ class CampaignSession }; } - onFinish(closePageCallback, players, won) + onFinish(players, won) { const playerID = Engine.GetPlayerID(); if (players.indexOf(playerID) === -1) @@ -24,7 +24,6 @@ class CampaignSession // Run the endgame script. Engine.OpenChildPage(this.getEndGame(), this.endGameData); - closePageCallback(); } getMenu() diff --git a/binaries/data/mods/public/gui/session/session.js b/binaries/data/mods/public/gui/session/session.js index 587a711ffe..afb7491080 100644 --- a/binaries/data/mods/public/gui/session/session.js +++ b/binaries/data/mods/public/gui/session/session.js @@ -277,11 +277,8 @@ function init(initData, hotloadData) restoreSavedGameData(initData.savedGUIData); } - const promise = new Promise(closePageCallback => - { - if (g_InitAttributes.campaignData) - g_CampaignSession = new CampaignSession(g_InitAttributes.campaignData, closePageCallback); - }); + if (g_InitAttributes.campaignData) + g_CampaignSession = new CampaignSession(g_InitAttributes.campaignData); const mapCache = new MapCache(); g_Cheats = new Cheats(); @@ -345,9 +342,7 @@ function init(initData, hotloadData) setTimeout(displayGamestateNotifications, 1000); - if (g_IsNetworked) - return Promise.race([promise, handleNetMessages()]); - return promise; + return g_IsNetworked ? handleNetMessages() : new Promise(() => {}); } function registerPlayersInitHandler(handler)