Savegame, session and gamesetup cleanup.

Don't save the player assignments to savegames as
the GUIDs are outdated and the GUI data only applies to the player that
saved the game.
Remove unneeded argument from getPlayerData.
Remove invalid (ready should be status) and unneeded playerAssignment
data when selecting a map in singleplayer mode.
Show filenames of saved games in the debug log.

This was SVN commit r18355.
This commit is contained in:
elexis 2016-06-10 13:03:13 +00:00
parent a792503cab
commit 506350d6fa
6 changed files with 23 additions and 21 deletions

View File

@ -1194,10 +1194,7 @@ function selectMap(name)
g_PlayerAssignments = {
"local": {
"name": singleplayerName(),
"player": 1,
"civ": "",
"team": -1,
"ready": 0
"player": 1
}
};

View File

@ -103,7 +103,12 @@ function reallyLoadGame(gameId)
Engine.SwitchGuiPage("page_loading.xml", {
"attribs": metadata.initAttributes,
"isNetworked" : false,
"playerAssignments": metadata.gui.playerAssignments,
"playerAssignments": {
"local": {
"name": metadata.initAttributes.settings.PlayerData[metadata.gui.assignedPlayer].Name,
"player": metadata.gui.assignedPlayer
}
},
"savedGUIData": metadata.gui
});
}

View File

@ -382,7 +382,7 @@ function handleNotifications()
*/
function updateDiplomacy()
{
g_Players = getPlayerData(g_PlayerAssignments, g_Players);
g_Players = getPlayerData(g_Players);
if (g_IsDiplomacyOpen)
openDiplomacy();

View File

@ -240,9 +240,7 @@ function init(initData, hotloadData)
g_ReplaySelectionData = initData.replaySelectionData;
g_HasRejoined = initData.isRejoining;
// Cache the player data
// (This may be updated at runtime by handleNetMessage)
g_Players = getPlayerData(g_PlayerAssignments);
g_Players = getPlayerData();
if (initData.savedGUIData)
restoreSavedGameData(initData.savedGUIData);
@ -254,7 +252,7 @@ function init(initData, hotloadData)
if (g_IsReplay)
g_PlayerAssignments.local.player = -1;
g_Players = getPlayerData(null);
g_Players = getPlayerData();
}
g_CivData = loadCivData();
@ -544,12 +542,12 @@ function getHotloadData()
return { "selection": g_Selection.selected };
}
// Return some data that will be stored in saved game files
function getSavedGameData()
{
// TODO: any other gui state?
let guid = g_IsNetworked ? Engine.GetPlayerGUID() : "local";
return {
"playerAssignments": g_PlayerAssignments,
"assignedPlayer": g_PlayerAssignments[guid].player,
"groups": g_Groups.groups
};
}

View File

@ -1,5 +1,4 @@
// Get the basic player data
function getPlayerData(playerAssignments, previousData = undefined)
function getPlayerData(previousData = undefined)
{
let players = [];
@ -32,14 +31,16 @@ function getPlayerData(playerAssignments, previousData = undefined)
});
}
if (playerAssignments)
for (let playerGuid in playerAssignments)
if (g_PlayerAssignments)
for (let guid in g_PlayerAssignments)
{
let playerAssignment = playerAssignments[playerGuid];
if (!players[playerAssignment.player])
let playerID = g_PlayerAssignments[guid].player;
if (!players[playerID])
continue;
players[playerAssignment.player].guid = playerGuid;
players[playerAssignment.player].name = playerAssignment.name;
players[playerID].guid = guid;
players[playerID].name = g_PlayerAssignments[guid].name;
}
return players;

View File

@ -131,6 +131,7 @@ Status SavedGames::Save(const std::wstring& name, const std::wstring& descriptio
OsPath realPath;
WARN_RETURN_STATUS_IF_ERR(g_VFS->GetRealPath(filename, realPath));
LOGMESSAGERENDER(g_L10n.Translate("Saved game to '%s'"), realPath.string8());
debug_printf("Saved game to '%s'\n", realPath.string8().c_str());
return INFO::OK;
}