Move the game loading out of the SavegameLoader
Accepted By: elexis Differential Revision: https://code.wildfiregames.com/D5130 This was SVN commit r27867.
This commit is contained in:
parent
13c169025c
commit
3ea20662f7
@ -19,15 +19,40 @@ class CampaignMenu extends AutoWatcher
|
||||
this.levelSelection.onMouseLeftDoubleClickItem = () => this.startScenario();
|
||||
Engine.GetGUIObjectByName('startButton').onPress = () => this.startScenario();
|
||||
Engine.GetGUIObjectByName('backToMain').onPress = () => this.goBackToMainMenu();
|
||||
Engine.GetGUIObjectByName('savedGamesButton').onPress = () => Engine.PushGuiPage('page_loadgame.xml', {
|
||||
'campaignRun': this.run.filename
|
||||
});
|
||||
Engine.GetGUIObjectByName('savedGamesButton').onPress = Engine.PushGuiPage.bind(Engine,
|
||||
'page_loadgame.xml', { "campaignRun": this.run.filename }, this.loadSavegame.bind(this));
|
||||
|
||||
this.mapCache = new MapCache();
|
||||
|
||||
this._ready = true;
|
||||
}
|
||||
|
||||
loadSavegame(gameId)
|
||||
{
|
||||
if (!gameId)
|
||||
return;
|
||||
|
||||
const metadata = Engine.StartSavedGame(gameId);
|
||||
if (!metadata)
|
||||
{
|
||||
error("Could not load saved game: " + gameId);
|
||||
return;
|
||||
}
|
||||
|
||||
Engine.SwitchGuiPage("page_loading.xml", {
|
||||
"attribs": metadata.initAttributes,
|
||||
"playerAssignments": {
|
||||
"local": {
|
||||
"name":
|
||||
metadata.initAttributes.settings.PlayerData[metadata.playerID]?.Name ??
|
||||
singleplayerName(),
|
||||
"player": metadata.playerID
|
||||
}
|
||||
},
|
||||
"savedGUIData": metadata.gui
|
||||
});
|
||||
}
|
||||
|
||||
goBackToMainMenu()
|
||||
{
|
||||
this.run.save();
|
||||
|
@ -27,7 +27,7 @@ class SavegameLoader
|
||||
|
||||
if (sameEngineVersion && sameMods)
|
||||
{
|
||||
this.reallyLoadGame(gameId);
|
||||
Engine.PopGuiPage(gameId);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -59,29 +59,6 @@ class SavegameLoader
|
||||
message,
|
||||
translate("Warning"),
|
||||
[translate("No"), translate("Yes")],
|
||||
[undefined, () => { this.reallyLoadGame(gameId); }]);
|
||||
}
|
||||
|
||||
reallyLoadGame(gameId)
|
||||
{
|
||||
let metadata = Engine.StartSavedGame(gameId);
|
||||
if (!metadata)
|
||||
{
|
||||
error("Could not load saved game: " + gameId);
|
||||
return;
|
||||
}
|
||||
|
||||
let pData = metadata.initAttributes.settings.PlayerData[metadata.playerID];
|
||||
|
||||
Engine.SwitchGuiPage("page_loading.xml", {
|
||||
"attribs": metadata.initAttributes,
|
||||
"playerAssignments": {
|
||||
"local": {
|
||||
"name": pData ? pData.Name : singleplayerName(),
|
||||
"player": metadata.playerID
|
||||
}
|
||||
},
|
||||
"savedGUIData": metadata.gui
|
||||
});
|
||||
[undefined, Engine.PopGuiPage.bind(Engine, gameId)]);
|
||||
}
|
||||
}
|
||||
|
@ -102,9 +102,31 @@ var g_MainMenuItems = [
|
||||
{
|
||||
"caption": translate("Load Game"),
|
||||
"tooltip": translate("Load a saved game."),
|
||||
"onPress": () => {
|
||||
Engine.PushGuiPage("page_loadgame.xml");
|
||||
}
|
||||
"onPress": Engine.PushGuiPage.bind(Engine, "page_loadgame.xml", {}, (gameId) =>
|
||||
{
|
||||
if (!gameId)
|
||||
return;
|
||||
|
||||
const metadata = Engine.StartSavedGame(gameId);
|
||||
if (!metadata)
|
||||
{
|
||||
error("Could not load saved game: " + gameId);
|
||||
return;
|
||||
}
|
||||
|
||||
Engine.SwitchGuiPage("page_loading.xml", {
|
||||
"attribs": metadata.initAttributes,
|
||||
"playerAssignments": {
|
||||
"local": {
|
||||
"name": metadata.initAttributes.settings.
|
||||
PlayerData[metadata.playerID]?.Name ??
|
||||
singleplayerName(),
|
||||
"player": metadata.playerID
|
||||
}
|
||||
},
|
||||
"savedGUIData": metadata.gui
|
||||
});
|
||||
})
|
||||
},
|
||||
{
|
||||
"caption": translate("Continue Campaign"),
|
||||
|
Loading…
Reference in New Issue
Block a user