Ticket #3355: t3355_move_starting_resources_v1.patch

File t3355_move_starting_resources_v1.patch, 7.6 KB (added by elexis, 9 years ago)
  • binaries/data/mods/public/gui/common/settings.js

     
    3030function loadAvailableSettings()
    3131{
    3232    var settings = {};
    3333
    3434    settings.Ceasefire = loadCeasefire();
    3535    if (!settings.Ceasefire)
    3636        return undefined;
    3737
     38    settings.StartingResources = loadAvailableSettingsFile("starting_resources.json");
     39    if (!settings.StartingResources)
     40        return undefined;
     41
    3842    return settings;
    3943}
    4044
    4145/**
     46 * Returns an array of objects reflecting all possible values for a given setting.
     47 *
     48 * @param {string} filename
     49 * @see simulation/data/settings/
     50 * @returns {Array|undefined}
     51 */
     52function loadAvailableSettingsFile(filename)
     53{
     54    var json = Engine.ReadJSONFile(g_SettingsDirectory + filename);
     55
     56    if (!json || !json.Data)
     57    {
     58        error("Couldn't load " + filename + "!");
     59        return undefined;
     60    }
     61
     62    if (json.TranslatedKeys)
     63        translateObjectKeys(json, json.TranslatedKeys);
     64
     65    return json.Data;
     66}
     67
     68/**
    4269 * Loads available ceasefire settings.
    4370 *
    4471 * @returns {Array|undefined}
    4572 */
    4673function loadCeasefire()
    4774{
    4875    var json = Engine.ReadJSONFile(g_SettingsDirectory + "ceasefire.json");
    4976
  • binaries/data/mods/public/gui/gamesetup/gamesetup.js

     
    55
    66const VICTORY_DEFAULTIDX = 1;
    77
    88// TODO: Move these somewhere like simulation\data\game_types.json, Atlas needs them too
    99// Translation: Type of victory condition.
    1010const POPULATION_CAP = ["50", "100", "150", "200", "250", "300", translate("Unlimited")];
    1111const POPULATION_CAP_DATA = [50, 100, 150, 200, 250, 300, 10000];
    1212const POPULATION_CAP_DEFAULTIDX = 5;
    13 // Translation: Amount of starting resources.
    14 const STARTING_RESOURCES = [translateWithContext("startingResources", "Very Low"), translateWithContext("startingResources", "Low"), translateWithContext("startingResources", "Medium"), translateWithContext("startingResources", "High"), translateWithContext("startingResources", "Very High"), translateWithContext("startingResources", "Deathmatch")];
    15 const STARTING_RESOURCES_DATA = [100, 300, 500, 1000, 3000, 50000];
    16 const STARTING_RESOURCES_DEFAULTIDX = 1;
    1713
     14const g_StartingResources = prepareForDropdown(g_Settings ? g_Settings.StartingResources : undefined);
    1815const g_Ceasefire = prepareForDropdown(g_Settings ? g_Settings.Ceasefire : undefined);
    1916
    2017////////////////////////////////////////////////////////////////////////////////////////////////
    2118
    2219// Is this is a networked game, or offline
    2320var g_IsNetworked;
    2421
    2522// Is this user in control of game settings (i.e. is a network server, or offline player)
     
    208205        populationCaps.onSelectionChange = function() {
    209206            if (this.selected != -1)
    210207                g_GameAttributes.settings.PopulationCap = POPULATION_CAP_DATA[this.selected];
    211208
    212209            updateGameAttributes();
    213210        }
    214211
    215212        var startingResourcesL = Engine.GetGUIObjectByName("startingResources");
    216         startingResourcesL.list = STARTING_RESOURCES;
    217         startingResourcesL.list_data = STARTING_RESOURCES_DATA;
    218         startingResourcesL.selected = STARTING_RESOURCES_DEFAULTIDX;
     213        startingResourcesL.list = g_StartingResources.Title;
     214        startingResourcesL.list_data = g_StartingResources.Resources;
     215        startingResourcesL.selected = g_StartingResources.Default;
    219216        startingResourcesL.onSelectionChange = function() {
    220217            if (this.selected != -1)
    221                 g_GameAttributes.settings.StartingResources = STARTING_RESOURCES_DATA[this.selected];
     218                g_GameAttributes.settings.StartingResources = g_StartingResources.Resources[this.selected];
    222219
    223220            updateGameAttributes();
    224221        }
    225222
    226223        var ceasefireL = Engine.GetGUIObjectByName("ceasefire");
    227224        ceasefireL.list = g_Ceasefire.Title;
    228225        ceasefireL.list_data = g_Ceasefire.Duration;
    229226        ceasefireL.selected = g_Ceasefire.Default;
     
    12501247
    12511248    observerLateJoin.checked = g_GameAttributes.settings.ObserverLateJoin;
    12521249    observerLateJoinText.caption = observerLateJoin.checked ? translate("Yes") : translate("No");
    12531250
    12541251    gameSpeedText.caption = g_GameSpeeds.names[speedIdx];
    12551252    gameSpeedBox.selected = speedIdx;
    12561253    populationCap.selected = (mapSettings.PopulationCap !== undefined && POPULATION_CAP_DATA.indexOf(mapSettings.PopulationCap) != -1 ? POPULATION_CAP_DATA.indexOf(mapSettings.PopulationCap) : POPULATION_CAP_DEFAULTIDX);
    12571254    populationCapText.caption = POPULATION_CAP[populationCap.selected];
    1258     startingResources.selected = (mapSettings.StartingResources !== undefined && STARTING_RESOURCES_DATA.indexOf(mapSettings.StartingResources) != -1 ? STARTING_RESOURCES_DATA.indexOf(mapSettings.StartingResources) : STARTING_RESOURCES_DEFAULTIDX);
    1259     startingResourcesText.caption = STARTING_RESOURCES[startingResources.selected];
     1255    startingResources.selected = mapSettings.StartingResources !== undefined && g_StartingResources.Resources.indexOf(mapSettings.StartingResources) != -1 ? g_StartingResources.Resources.indexOf(mapSettings.StartingResources) : g_StartingResources.Default;
     1256    startingResourcesText.caption = g_StartingResources.Title[startingResources.selected];
    12601257    ceasefire.selected = mapSettings.Ceasefire !== undefined && g_Ceasefire.Duration.indexOf(mapSettings.Ceasefire) != -1 ? g_Ceasefire.Duration.indexOf(mapSettings.Ceasefire) : g_Ceasefire.Default;
    12611258    ceasefireText.caption = g_Ceasefire.Title[ceasefire.selected];
    12621259
    12631260    // Update map preview
    12641261    Engine.GetGUIObjectByName("mapPreview").sprite = "cropped:(0.78125,0.5859375)session/icons/mappreview/" + getMapPreview(mapName);
    12651262
    12661263    // Hide/show settings depending on whether we can change them or not
    12671264    var updateDisplay = function(guiObjChg, guiObjDsp, chg) {
  • binaries/data/mods/public/l10n/messages.json

     
    460460                    "keywords": [
    461461                        "Name"
    462462                    ]
    463463                }
    464464            },
    465465            {
    466466                "extractor": "json",
    467467                "filemasks": [
     468                    "simulation/data/settings/starting_resources.json"
     469                ],
     470                "options": {
     471                    "keywords": ["Title"],
     472                    "context": "startingResources"
     473                 }
     474             },
     475            {
     476                "extractor": "json",
     477                "filemasks": [
    468478                    "simulation/data/map_sizes.json"
    469479                ],
    470480                "options": {
    471481                    "keywords": [
    472482                        "Name",
    473483                        "LongName"
    474484                    ]
    475485                }
  • binaries/data/mods/public/simulation/data/settings/starting_resources.json

     
     1{
     2    "TranslatedKeys": { "Title": "startingResources" },
     3    "Data":
     4    [
     5        {
     6            "Resources": 100,
     7            "Title": "Very Low"
     8        },
     9        {
     10            "Resources": 300,
     11            "Title": "Low",
     12            "Default": true
     13        },
     14        {
     15            "Resources": 500,
     16            "Title": "Medium"
     17        },
     18        {
     19            "Resources": 1000,
     20            "Title": "High"
     21        },
     22        {
     23            "Resources": 3000,
     24            "Title": "Very High"
     25        },
     26        {
     27            "Resources": 50000,
     28            "Title": "Deathmatch"
     29        }
     30    ]
     31}