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:
parent
a792503cab
commit
506350d6fa
@ -1194,10 +1194,7 @@ function selectMap(name)
|
||||
g_PlayerAssignments = {
|
||||
"local": {
|
||||
"name": singleplayerName(),
|
||||
"player": 1,
|
||||
"civ": "",
|
||||
"team": -1,
|
||||
"ready": 0
|
||||
"player": 1
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -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
|
||||
});
|
||||
}
|
||||
|
@ -382,7 +382,7 @@ function handleNotifications()
|
||||
*/
|
||||
function updateDiplomacy()
|
||||
{
|
||||
g_Players = getPlayerData(g_PlayerAssignments, g_Players);
|
||||
g_Players = getPlayerData(g_Players);
|
||||
|
||||
if (g_IsDiplomacyOpen)
|
||||
openDiplomacy();
|
||||
|
@ -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
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user