diff --git a/binaries/data/mods/public/gui/civinfo/civinfo.js b/binaries/data/mods/public/gui/civinfo/civinfo.js index 07491bc04b..21228b2949 100644 --- a/binaries/data/mods/public/gui/civinfo/civinfo.js +++ b/binaries/data/mods/public/gui/civinfo/civinfo.js @@ -1,7 +1,7 @@ /** - * Load playable civs. + * Display selectable civs only. */ -const g_CivData = loadCivData(true); +const g_CivData = loadCivData(true, false); /** * Initialize the dropdown containing all the available civs. diff --git a/binaries/data/mods/public/gui/common/functions_civinfo.js b/binaries/data/mods/public/gui/common/functions_civinfo.js index 9e9f1ca54a..bb4f01bf51 100644 --- a/binaries/data/mods/public/gui/common/functions_civinfo.js +++ b/binaries/data/mods/public/gui/common/functions_civinfo.js @@ -3,15 +3,16 @@ * * @param selectableOnly {boolean} - Only load those which can be selected * in the gamesetup. Scenario maps might set non-selectable civs. + * @param gaia {boolean} - Whether to include gaia as a mock civ. */ -function loadCivData(selectableOnly = false) +function loadCivData(selectableOnly, gaia) { - var civData = {}; - var civFiles = Engine.BuildDirEntList("simulation/data/civs/", "*.json", false); + let civData = {}; + let civFiles = Engine.BuildDirEntList("simulation/data/civs/", "*.json", false); for (let filename of civFiles) { - var data = Engine.ReadJSONFile(filename); + let data = Engine.ReadJSONFile(filename); if (!data) continue; @@ -26,5 +27,8 @@ function loadCivData(selectableOnly = false) error(filename + " doesn't contain " + prop); } + if (gaia) + civData.gaia = { "Code": "gaia", "Name": translate("Gaia") }; + return civData; } diff --git a/binaries/data/mods/public/gui/gamesetup/gamesetup.js b/binaries/data/mods/public/gui/gamesetup/gamesetup.js index 8b1869df8e..f73c51b82d 100644 --- a/binaries/data/mods/public/gui/gamesetup/gamesetup.js +++ b/binaries/data/mods/public/gui/gamesetup/gamesetup.js @@ -10,6 +10,12 @@ const g_StartingResources = prepareForDropdown(g_Settings && g_Settings.Starting const g_VictoryConditions = prepareForDropdown(g_Settings && g_Settings.VictoryConditions); const g_VictoryDurations = prepareForDropdown(g_Settings && g_Settings.VictoryDurations); +/** + * Offer users to select playable civs only. + * Load unselectable civs as they could appear in scenario maps. + */ +const g_CivData = loadCivData(false, false); + /** * Highlight the "random" dropdownlist item. */ @@ -56,12 +62,6 @@ var g_PlayerTeamList = prepareForDropdown([{ ) ); -/** - * Offer users to select playable civs only. - * Load unselectable civs as they could appear in scenario maps. - */ -var g_CivData = loadCivData(); - /** * Number of relics: [1, ..., NumCivs] */ diff --git a/binaries/data/mods/public/gui/reference/common/core.js b/binaries/data/mods/public/gui/reference/common/core.js index 18c5508305..0d0ffe8ca7 100644 --- a/binaries/data/mods/public/gui/reference/common/core.js +++ b/binaries/data/mods/public/gui/reference/common/core.js @@ -1,14 +1,6 @@ var g_SelectedCiv = ""; var g_CallbackSet = false; -/** - * Initialises civ data. Not done automatically in case a page doesn't want it. - */ -function init_civs() -{ - g_CivData = loadCivData(true); -} - function closePage() { if (g_CallbackSet) diff --git a/binaries/data/mods/public/gui/reference/common/load.js b/binaries/data/mods/public/gui/reference/common/load.js index 0dab63ac6e..aadec1480e 100644 --- a/binaries/data/mods/public/gui/reference/common/load.js +++ b/binaries/data/mods/public/gui/reference/common/load.js @@ -8,9 +8,9 @@ const g_AuraPath = "simulation/data/auras/"; * Raw Data Caches. */ var g_AuraData = {}; -var g_CivData = {}; var g_TemplateData = {}; var g_TechnologyData = {}; +var g_CivData = loadCivData(true, false); /** * Parsed Data Stores. diff --git a/binaries/data/mods/public/gui/reference/structree/structree.js b/binaries/data/mods/public/gui/reference/structree/structree.js index 867f1d1fc7..cde4e4ce7f 100644 --- a/binaries/data/mods/public/gui/reference/structree/structree.js +++ b/binaries/data/mods/public/gui/reference/structree/structree.js @@ -18,8 +18,6 @@ function init(data = {}) if (data.callback) g_CallbackSet = true; - init_civs(); - let civList = Object.keys(g_CivData).map(civ => ({ "name": g_CivData[civ].Name, "code": civ, diff --git a/binaries/data/mods/public/gui/replaymenu/replay_menu.js b/binaries/data/mods/public/gui/replaymenu/replay_menu.js index b98d19df86..9998a8010b 100644 --- a/binaries/data/mods/public/gui/replaymenu/replay_menu.js +++ b/binaries/data/mods/public/gui/replaymenu/replay_menu.js @@ -6,7 +6,7 @@ const g_EngineInfo = Engine.GetEngineInfo(); /** * Needed for formatPlayerInfo to show the player civs in the details. */ -const g_CivData = loadCivData(); +const g_CivData = loadCivData(false, false); /** * Used for creating the mapsize filter. diff --git a/binaries/data/mods/public/gui/savedgames/load.js b/binaries/data/mods/public/gui/savedgames/load.js index 197d2e88be..afd0cb73d5 100644 --- a/binaries/data/mods/public/gui/savedgames/load.js +++ b/binaries/data/mods/public/gui/savedgames/load.js @@ -3,7 +3,7 @@ var g_SavedGamesMetadata = []; /** * Needed for formatPlayerInfo to show the player civs in the details. */ -const g_CivData = loadCivData(); +const g_CivData = loadCivData(false, false); function init() { diff --git a/binaries/data/mods/public/gui/session/session.js b/binaries/data/mods/public/gui/session/session.js index 67e65e66cd..0c10a349ba 100644 --- a/binaries/data/mods/public/gui/session/session.js +++ b/binaries/data/mods/public/gui/session/session.js @@ -1,5 +1,7 @@ const g_IsReplay = Engine.IsVisualReplay(); +const g_CivData = loadCivData(false, true); + const g_Ceasefire = prepareForDropdown(g_Settings && g_Settings.Ceasefire); const g_GameSpeeds = prepareForDropdown(g_Settings && g_Settings.GameSpeeds.filter(speed => !speed.ReplayOnly || g_IsReplay)); const g_MapSizes = prepareForDropdown(g_Settings && g_Settings.MapSizes); @@ -103,11 +105,6 @@ var g_LastTickTime = Date.now(); */ const g_StatusBarUpdate = 200; -/** - * Not constant as we add "gaia". - */ -var g_CivData = {}; - /** * For restoring selection, order and filters when returning to the replay menu */ @@ -277,9 +274,6 @@ function init(initData, hotloadData) updatePlayerData(); - g_CivData = loadCivData(); - g_CivData.gaia = { "Code": "gaia", "Name": translate("Gaia") }; - g_BarterSell = g_ResourceData.GetCodes()[0]; initializeMusic(); // before changing the perspective diff --git a/binaries/data/mods/public/gui/summary/summary.js b/binaries/data/mods/public/gui/summary/summary.js index 4854869990..5ed2fcd5fe 100644 --- a/binaries/data/mods/public/gui/summary/summary.js +++ b/binaries/data/mods/public/gui/summary/summary.js @@ -1,3 +1,5 @@ +const g_CivData = loadCivData(false, false); + const g_MaxHeadingTitle= 9; // const for filtering long collective headings @@ -97,9 +99,11 @@ var g_SummaryTypes = { } }; -const g_InfinitySymbol = "\u221E"; +/** + * Translation: Unicode encoded infinity symbol indicating a division by zero in the summary screen. + */ +var g_InfinitySymbol = translate("\u221E"); -var g_CivData = loadCivData(); var g_Teams = []; // TODO set g_PlayerCount as playerCounters.length