Ticket #1187: healthbars.2.patch

File healthbars.2.patch, 3.8 KB (added by Kieran P, 12 years ago)
  • binaries/data/config/default.cfg

    diff --git a/binaries/data/config/default.cfg b/binaries/data/config/default.cfg
    index 1ae80ba..9632c40 100644
    a b hotkey.session.devcommands.toggle = "Alt+D" ; Toggle developer commands panel  
    203203hotkey.session.gui.toggle = "Alt+G"          ; Toggle visibility of session GUI
    204204hotkey.menu.toggle = "F10"                   ; Toggle in-game menu
    205205hotkey.timeelapsedcounter.toggle = "F12"     ; Toggle time elapsed counter
     206hotkey.statusbars.toggle = Tab               ; Toggle display of status bars
    206207
    207208; > HOTKEYS ONLY
    208209hotkey.chat = Return                        ; Toggle chat window
  • binaries/data/mods/public/gui/session/input.js

    diff --git a/binaries/data/mods/public/gui/session/input.js b/binaries/data/mods/public/gui/session/input.js
    index ff39b74..05ef1ec 100644
    a b function handleInputAfterGui(ev)  
    970970            Engine.RewindTimeWarp();
    971971    }
    972972
     973    if (ev.hotkey == "statusbars.toggle")
     974    {
     975        g_ShowAllStatusBars = (ev.type == "hotkeydown");
     976        recalculateStatusBarDisplay();
     977    }
     978
    973979    // State-machine processing:
    974980
    975981    switch (inputState)
  • binaries/data/mods/public/gui/session/session.js

    diff --git a/binaries/data/mods/public/gui/session/session.js b/binaries/data/mods/public/gui/session/session.js
    index 1204df5..e9fecee 100644
    a b var g_DevSettings = {  
    1313    controlAll: false
    1414};
    1515
     16// Whether status bars should be shown for all of the player's units.
     17var g_ShowAllStatusBars = false;
     18
    1619// Indicate when one of the current player's training queues is blocked
    1720// (this is used to support population counter blinking)
    1821var g_IsTrainingBlocked = false;
    function onSimulationUpdate()  
    333336
    334337    handleNotifications();
    335338
     339    if (g_ShowAllStatusBars)
     340        recalculateStatusBarDisplay();
     341
    336342    updateGroups();
    337343    updateDebug(simState);
    338344    updatePlayerDisplay(simState);
    function updateTimeElapsedCounter(simState)  
    421427    timeElapsedCounter.caption = timeToString(simState.timeElapsed);
    422428}
    423429
     430// Toggles the display of status bars for all of the player's entities.
     431function recalculateStatusBarDisplay()
     432{
     433    if (g_ShowAllStatusBars)
     434        var entities = Engine.PickFriendlyEntitiesOnScreen(Engine.GetPlayerID());
     435    else
     436    {
     437        var selected = g_Selection.toList();
     438        for each (var ent in g_Selection.highlighted)
     439            selected.push(ent);
     440
     441        // Remove selected entities from the 'all entities' array, to avoid disabling their status bars.
     442        var entities = Engine.GuiInterfaceCall("GetPlayerEntities").filter(
     443                function(idx) { return (selected.indexOf(idx) == -1); }
     444        );
     445    }
     446
     447    Engine.GuiInterfaceCall("SetStatusBars", { "entities": entities, "enabled": g_ShowAllStatusBars });
     448}
     449
    424450// Temporarily adding this here
    425451const AMBIENT_TEMPERATE = "temperate";
    426452var currentAmbient;
  • binaries/data/mods/public/simulation/components/GuiInterface.js

    diff --git a/binaries/data/mods/public/simulation/components/GuiInterface.js b/binaries/data/mods/public/simulation/components/GuiInterface.js
    index 4ce8c71..f82c2bd 100644
    a b GuiInterface.prototype.SetStatusBars = function(player, cmd)  
    628628    }
    629629};
    630630
     631GuiInterface.prototype.GetPlayerEntities = function(player)
     632{
     633    var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
     634    return cmpRangeManager.GetEntitiesByPlayer(player);
     635};
     636
    631637/**
    632638 * Displays the rally points of a given list of entities (carried in cmd.entities).
    633639 *
    var exposedFunctions = {  
    15661572
    15671573    "SetSelectionHighlight": 1,
    15681574    "SetStatusBars": 1,
     1575    "GetPlayerEntities": 1,
    15691576    "DisplayRallyPoint": 1,
    15701577    "SetBuildingPlacementPreview": 1,
    15711578    "SetWallPlacementPreview": 1,