mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-06-21 02:46:49 +00:00
GameSettings: ensure savegameID is either a file name or undefined.
The current code could end up with savegameID being undefined, false, a filename string, or null depending on the code path taken. Adapt C++ in consequence.
This commit is contained in:
committed by
wraitii
parent
fba5a23aad
commit
a8fc3cf254
@@ -20,7 +20,7 @@ class GameSettings
|
||||
});
|
||||
|
||||
Object.defineProperty(this, "savegameID", {
|
||||
"value": !!savegameID,
|
||||
"value": savegameID,
|
||||
});
|
||||
|
||||
// Load all possible civ data - don't presume that some will be available.
|
||||
|
||||
@@ -30,7 +30,7 @@ class SetupWindow
|
||||
|
||||
const mapCache = new MapCache();
|
||||
g_GameSettings = new GameSettings();
|
||||
g_GameSettings.init(mapCache, g_IsController ? savedGame : null);
|
||||
g_GameSettings.init(mapCache, g_IsController ? savedGame : undefined);
|
||||
|
||||
|
||||
let netMessages = new NetMessages();
|
||||
|
||||
@@ -319,7 +319,7 @@ async function handleAuthenticated(message, loadSavedGame)
|
||||
}
|
||||
g_IsConnecting = false;
|
||||
|
||||
const savegameID = loadSavedGame ? await Engine.PushGuiPage("page_loadgame.xml") : null;
|
||||
const savegameID = loadSavedGame ? await Engine.PushGuiPage("page_loadgame.xml") : undefined;
|
||||
|
||||
if (loadSavedGame && !savegameID)
|
||||
{
|
||||
@@ -329,7 +329,7 @@ async function handleAuthenticated(message, loadSavedGame)
|
||||
}
|
||||
|
||||
Engine.SwitchGuiPage("page_gamesetup.xml", {
|
||||
"savedGame": savegameID ?? message.savedGame,
|
||||
"savedGame": savegameID, // Undefined or the savegame ID
|
||||
"serverName": g_ServerName,
|
||||
"hasPassword": g_ServerHasPassword
|
||||
});
|
||||
|
||||
@@ -283,7 +283,7 @@ void StartNetworkGame(const ScriptInterface& scriptInterface, JS::HandleValue sa
|
||||
JS::RootedValue attribs(rq.cx, attribs1);
|
||||
std::string attributesAsString{Script::StringifyJSON(rq, &attribs)};
|
||||
|
||||
if (savegame.isFalse())
|
||||
if (savegame.isUndefined())
|
||||
{
|
||||
g_NetClient->SendStartGameMessage(attributesAsString);
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user