Index: binaries/data/mods/public/gui/common/OverlayCounterManager.js =================================================================== --- binaries/data/mods/public/gui/common/OverlayCounterManager.js +++ binaries/data/mods/public/gui/common/OverlayCounterManager.js @@ -15,6 +15,7 @@ this.resizeHandlers = []; this.lastHeight = undefined; this.initSize = this.dataCounter.size; + this.hideOverlay = false; for (let name of this.availableCounterNames()) { @@ -30,6 +31,12 @@ this.dataCounter.onTick = this.onTick.bind(this); } + hide(hide) + { + this.hideOverlay = hide; + this.rebuildOverlay(); + } + /** * Mods may overwrite this to change the order of the counters shown. */ @@ -79,6 +86,17 @@ this.lastTick = now; + this.rebuildOverlay(); + } + + rebuildOverlay() + { + if (this.hideOverlay) + { + this.dataCounter.hidden = true; + return; + } + let lineCount = 0; let txt = ""; Index: binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/Panels/Buttons/LobbyButton.js =================================================================== --- binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/Panels/Buttons/LobbyButton.js +++ binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/Panels/Buttons/LobbyButton.js @@ -10,8 +10,11 @@ onPress() { - if (Engine.HasXmppClient()) - Engine.PushGuiPage("page_lobby.xml", { "dialog": true }); + if (!Engine.HasXmppClient()) + return; + + g_OverlayCounterManager.hide(true); + Engine.PushGuiPage("page_lobby.xml", { "dialog": true }, () => g_OverlayCounterManager.hide(false)); } } Index: binaries/data/mods/public/gui/pregame/MainMenuItems.js =================================================================== --- binaries/data/mods/public/gui/pregame/MainMenuItems.js +++ binaries/data/mods/public/gui/pregame/MainMenuItems.js @@ -7,7 +7,8 @@ "caption": translate("Manual"), "tooltip": translate("Open the 0 A.D. Game Manual."), "onPress": () => { - Engine.PushGuiPage("page_manual.xml"); + g_OverlayCounterManager.hide(true); + Engine.PushGuiPage("page_manual.xml", {}, () => g_OverlayCounterManager.hide(false)); } }, { @@ -176,8 +177,9 @@ "enabled": () => !!Engine.StartXmppClient, "hotkey": "lobby", "onPress": () => { - if (Engine.StartXmppClient) - Engine.PushGuiPage("page_prelobby_entrance.xml"); + g_OverlayCounterManager.hide(true); + if (Engine.StartXmppClient) + Engine.PushGuiPage("page_prelobby_entrance.xml", {}, () => g_OverlayCounterManager.hide(false)); } }, { @@ -203,24 +205,29 @@ "caption": translate("Options"), "tooltip": translate("Adjust game settings."), "onPress": () => { - Engine.PushGuiPage( - "page_options.xml", - {}, - fireConfigChangeHandlers); + g_OverlayCounterManager.hide(true); + let callback = (...args) => { + fireConfigChangeHandlers(...args); + g_OverlayCounterManager.hide(false); + }; + + Engine.PushGuiPage( "page_options.xml", {}, callback); } }, { "caption": translate("Hotkeys"), "tooltip": translate("Adjust hotkeys."), "onPress": () => { - Engine.PushGuiPage("hotkeys/page_hotkeys.xml"); + g_OverlayCounterManager.hide(true); + Engine.PushGuiPage("hotkeys/page_hotkeys.xml", {}, () => g_OverlayCounterManager.hide(false)); } }, { "caption": translate("Language"), "tooltip": translate("Choose the language of the game."), "onPress": () => { - Engine.PushGuiPage("page_locale.xml"); + g_OverlayCounterManager.hide(true); + Engine.PushGuiPage("page_locale.xml", {}, () => g_OverlayCounterManager.hide(false)); } }, { @@ -234,7 +241,8 @@ "caption": translate("Welcome Screen"), "tooltip": translate("Show the Welcome Screen again. Useful if you hid it by mistake."), "onPress": () => { - Engine.PushGuiPage("page_splashscreen.xml"); + g_OverlayCounterManager.hide(true); + Engine.PushGuiPage("page_splashscreen.xml", {}, () => g_OverlayCounterManager.hide(false)); } } ] @@ -261,7 +269,8 @@ "caption": translate("Credits"), "tooltip": translate("Show the 0 A.D. credits."), "onPress": () => { - Engine.PushGuiPage("page_credits.xml"); + g_OverlayCounterManager.hide(true); + Engine.PushGuiPage("page_credits.xml", {}, () => g_OverlayCounterManager.hide(false)); } }, { Index: binaries/data/mods/public/gui/pregame/SplashscreenHandler.js =================================================================== --- binaries/data/mods/public/gui/pregame/SplashscreenHandler.js +++ binaries/data/mods/public/gui/pregame/SplashscreenHandler.js @@ -32,6 +32,9 @@ if (Engine.ConfigDB_GetValue("user", "gui.splashscreen.enable") === "true" || Engine.ConfigDB_GetValue("user", "gui.splashscreen.version") < Engine.GetFileMTime("gui/splashscreen/splashscreen.txt")) - Engine.PushGuiPage("page_splashscreen.xml", {}); + { + g_OverlayCounterManager.hide(true); + Engine.PushGuiPage("page_splashscreen.xml", {}, () => g_OverlayCounterManager.hide(false)); + } } } Index: binaries/data/mods/public/gui/prelobby/entrance/entrance.js =================================================================== --- binaries/data/mods/public/gui/prelobby/entrance/entrance.js +++ binaries/data/mods/public/gui/prelobby/entrance/entrance.js @@ -6,12 +6,14 @@ function loginButton() { - Engine.PushGuiPage("page_prelobby_login.xml"); + g_OverlayCounterManager.hide(true); + Engine.PushGuiPage("page_prelobby_login.xml", {}, () => g_OverlayCounterManager.hide(false)); } function registerButton() { - Engine.PushGuiPage("page_prelobby_register.xml"); + g_OverlayCounterManager.hide(true); + Engine.PushGuiPage("page_prelobby_register.xml", {}, () => g_OverlayCounterManager.hide(false)); } function cancelButton() Index: binaries/data/mods/public/gui/session/MenuButtons.js =================================================================== --- binaries/data/mods/public/gui/session/MenuButtons.js +++ binaries/data/mods/public/gui/session/MenuButtons.js @@ -20,7 +20,12 @@ { closeOpenDialogs(); this.pauseControl.implicitPause(); - Engine.PushGuiPage("page_manual.xml", {}, resumeGame); + g_OverlayCounterManager.hide(true); + let callback = (...args) => { + resumeGame(...args); + g_OverlayCounterManager.hide(false); + }; + Engine.PushGuiPage("page_manual.xml", {}, callback); } }; @@ -99,7 +104,8 @@ closeOpenDialogs(); this.pauseControl.implicitPause(); - // Allows players to see their own summary. + g_OverlayCounterManager.hide(true); + // Allows players to see their own summary. // If they have shared ally vision researched, they are able to see the summary of there allies too. let simState = Engine.GuiInterfaceCall("GetExtendedSimulationState"); Engine.PushGuiPage( @@ -121,6 +127,7 @@ data => { this.summarySelection = data.summarySelection; this.pauseControl.implicitResume(); + g_OverlayCounterManager.hide(false); }); } }; @@ -149,7 +156,8 @@ if (!Engine.HasXmppClient()) return; closeOpenDialogs(); - Engine.PushGuiPage("page_lobby.xml", { "dialog": true }); + g_OverlayCounterManager.hide(true); + Engine.PushGuiPage("page_lobby.xml", { "dialog": true }, () => g_OverlayCounterManager.hide(false)); } }; @@ -166,6 +174,7 @@ { closeOpenDialogs(); this.pauseControl.implicitPause(); + g_OverlayCounterManager.hide(true); Engine.PushGuiPage( "page_options.xml", @@ -173,6 +182,7 @@ changes => { fireConfigChangeHandlers(changes); resumeGame(); + g_OverlayCounterManager.hide(false); }); } }; @@ -190,11 +200,15 @@ { closeOpenDialogs(); this.pauseControl.implicitPause(); + g_OverlayCounterManager.hide(true); Engine.PushGuiPage( "hotkeys/page_hotkeys.xml", {}, - () => { resumeGame(); }); + () => { + resumeGame(); + g_OverlayCounterManager.hide(false); + }); } };