Ticket #1187: Ticket#1187_V4.patch

File Ticket#1187_V4.patch, 3.1 KB (added by James, 12 years ago)

This one works quite well, allowing for new units entering screen, but is a little bit hackish (not pretty)

  • binaries/data/config/default.cfg

     
    190190hotkey.timewarp.fastforward = Space         ; If timewarp mode enabled, speed up the game
    191191hotkey.timewarp.rewind = Backspace          ; If timewarp mode enabled, go back to earlier point in the game
    192192
     193
    193194; > OVERLAY KEYS
    194195hotkey.fps.toggle = "Alt+F"                  ; Toggle frame counter
    195196hotkey.session.devcommands.toggle = "Alt+D"  ; Toggle developer commands panel
    196197hotkey.session.gui.toggle = "Alt+G"          ; Toggle visibility of session GUI
    197198hotkey.menu.toggle = "F10"                   ; Toggle in-game menu
    198199hotkey.timeelapsedcounter.toggle = "F12"     ; Toggle time elapsed counter
     200hotkey.healthbars.toggle = Tab               ; Toggle display of health bars
    199201
     202
    200203; > HOTKEYS ONLY
    201204hotkey.chat = Return                        ; Toggle chat window
    202205
  • binaries/data/mods/public/gui/session/input.js

     
    3333var placementPosition = undefined;
    3434var placementEntity = undefined;
    3535
     36var entsOnScreenHealth = {};
     37var entsOnScreenArrayHealth = [];
     38var showHealth = false;
     39
    3640var mouseX = 0;
    3741var mouseY = 0;
    3842var mouseIsOverObject = false;
     
    7175    }
    7276
    7377    Engine.SetCursor("arrow-default");
     78    if(showHealth)
     79    {
     80            entsOnScreenHealth = Engine.PickFriendlyEntitiesOnScreen(Engine.GetPlayerID());
     81            entsOnScreenArrayHealth.push(entsOnScreenHealth);
     82            for(var i=0; i<= entsOnScreenArrayHealth.length; i++)
     83            {
     84                Engine.GuiInterfaceCall("SetStatusBars", { "entities":entsOnScreenArrayHealth[i], "enabled":true }); // show status bars for all friendly units on screen
     85            }
     86    }
    7487}
    7588
    7689function updateBuildingPlacementPreview()
     
    413426
    414427    if (!queued)
    415428        resetPlacementEntity();
    416 
    417429    return true;
    418430}
    419431
     
    714726        else if (ev.type == "hotkeyup" && ev.hotkey == "timewarp.rewind")
    715727            Engine.RewindTimeWarp();
    716728    }
     729   
     730    // Handle the hotkey to show all status bars from friendly units
     731    if(ev.type == "hotkeydown" && ev.hotkey == "healthbars.toggle")
     732    {
     733        showHealth = true;
     734    }
     735    // Hide status bars again when key is released
     736    else if(ev.type == "hotkeyup" && ev.hotkey == "healthbars.toggle")
     737    {
     738            showHealth = false;
     739            var selected = g_Selection.toList();
     740            var highlighted = Engine.PickEntitiesAtPoint(mouseX, mouseY);
     741            for (var i=0; i<= entsOnScreenArrayHealth.length; i++)
     742            {   
     743                Engine.GuiInterfaceCall("SetStatusBars", { "entities":entsOnScreenArrayHealth[i], "enabled":false }); // Hide all status bars
     744            }
     745            Engine.GuiInterfaceCall("SetStatusBars", { "entities":highlighted, "enabled":true }); //Replace status bars selected/highlighted units
     746            Engine.GuiInterfaceCall("SetStatusBars", { "entities":selected, "enabled":true });
     747            entsOnScreenArrayHealth = [];
     748            enstOnScreenHealth = {};
     749    }
     750   
    717751
    718752    // State-machine processing:
    719753