Index: binaries/data/mods/public/gui/session/hotkeys/misc.xml
===================================================================
--- binaries/data/mods/public/gui/session/hotkeys/misc.xml
+++ binaries/data/mods/public/gui/session/hotkeys/misc.xml
@@ -96,4 +96,11 @@
toggleRangeOverlay("Aura");
+
+
Index: binaries/data/mods/public/gui/session/input.js
===================================================================
--- binaries/data/mods/public/gui/session/input.js
+++ binaries/data/mods/public/gui/session/input.js
@@ -820,13 +820,8 @@
Engine.RewindTimeWarp();
}
- if (ev.hotkey == "session.showstatusbars")
+ if (ev.hotkey == "session.highlightguarding")
{
- g_ShowAllStatusBars = (ev.type == "hotkeydown");
- recalculateStatusBarDisplay();
- }
- else if (ev.hotkey == "session.highlightguarding")
- {
g_ShowGuarding = (ev.type == "hotkeydown");
updateAdditionalHighlight();
}
Index: binaries/data/mods/public/gui/session/session.js
===================================================================
--- binaries/data/mods/public/gui/session/session.js
+++ binaries/data/mods/public/gui/session/session.js
@@ -10,6 +10,11 @@
const g_VictoryDurations = prepareForDropdown(g_Settings && g_Settings.VictoryDurations);
/**
+ * Refresh statusbars this often.
+ */
+const STATUSBAR_UPDATE_MS = 100
+
+/**
* Colors to flash when pop limit reached.
*/
var g_DefaultPopulationColor = "white";
@@ -722,7 +727,7 @@
return;
let now = new Date();
- let tickLength = new Date() - lastTickTime;
+ let tickLength = now - lastTickTime;
lastTickTime = now;
handleNetMessages();
@@ -739,6 +744,9 @@
if (Engine.GetPlayerID() != -1)
Engine.GuiInterfaceCall("DisplayRallyPoint", { "entities": g_Selection.toList() });
}
+ // If showing all status bars, recalculate every 100msec.
+ else if (g_ShowAllStatusBars && (now % STATUSBAR_UPDATE_MS - tickLength <= 0))
+ recalculateStatusBarDisplay();
updateTimers();
@@ -745,7 +753,7 @@
updateMenuPosition(tickLength);
// When training is blocked, flash population (alternates color every 500msec)
- Engine.GetGUIObjectByName("resourcePop").textcolor = g_IsTrainingBlocked && Date.now() % 1000 < 500 ? g_PopulationAlertColor : g_DefaultPopulationColor;
+ Engine.GetGUIObjectByName("resourcePop").textcolor = g_IsTrainingBlocked && now % 1000 < 500 ? g_PopulationAlertColor : g_DefaultPopulationColor;
Engine.GuiInterfaceCall("ClearRenamedEntities");
}