Ticket #1734: civinfo.patch

File civinfo.patch, 2.1 KB (added by s0600204, 11 years ago)
  • gui/civinfo/civinfo.js

     
    1515    // Cache map data
    1616    g_CivData = loadCivData();
    1717
    18     var civList = [ { "name": civ.Name, "code": civ.Code } for each (civ in g_CivData) ];
     18    var civList = [ { "name": civ.Name, "cult": civ.Culture, "code": civ.Code } for each (civ in g_CivData) ];
    1919   
    2020    // Alphabetically sort the list, ignoring case
    2121    civList.sort(sortNameIgnoreCase);
    2222
    2323    var civListNames = [ civ.name for each (civ in civList) ];
    2424    var civListCodes = [ civ.code for each (civ in civList) ];
    25 
     25    var civListCults = [ civ.cult for each (civ in civList) ];
     26   
     27    // Find Cultures, and add spaces in front of Faction names
     28    var civCultKey = [];
     29    for (c = 0; c < civListNames.length; ++c)
     30    {
     31        if (civListCults[c] == undefined)
     32        {
     33            civListCults[c] = civListCodes[c];
     34        }
     35        else if (civListCodes[c] != civListCults[c])
     36        {
     37            civListNames[c] = "    " + civListNames[c];
     38        }
     39       
     40        if (civCultKey.indexOf(civListCults[c]) < 0)
     41        {
     42            civCultKey.push(civListCults[c]);
     43        }
     44    }
     45   
     46    // Sort Civs by Culture
     47    civCultKey.sort();
     48    var civArrNames = [];
     49    var civArrCodes = [];
     50    for (k = 0; k < civCultKey.length; ++k)
     51    {
     52        civArrNames[k] = [""];
     53        civArrCodes[k] = [""];
     54        for (c = 0; c < civListNames.length; ++c)
     55        {
     56            if (civListCodes[c] == civCultKey[k])
     57            {
     58                civArrNames[k][0] = civListNames[c];
     59                civArrCodes[k][0] = civListCodes[c];
     60            }
     61            else if (civListCults[c] == civCultKey[k])
     62            {
     63                civArrNames[k].push(civListNames[c]);
     64                civArrCodes[k].push(civListCodes[c]);
     65            }
     66        }
     67    }
     68   
     69    // Join list back together
     70    civListNames = [];
     71    civListCodes = [];
     72    for (k = 0; k < civCultKey.length; ++k)
     73    {
     74        civListNames = civListNames.concat(civArrNames[k]);
     75        civListCodes = civListCodes.concat(civArrCodes[k]);
     76    }
     77   
    2678    // Set civ control
    2779    var civSelection = getGUIObjectByName("civSelection");
    2880    civSelection.list = civListNames;
    2981    civSelection.list_data = civListCodes;
    3082    civSelection.selected = 0;
     83   
    3184}
    3285
    3386// Function to make first char of string big