From d888ddec4cd0813cb1ddc363862ae804972dfe33 Mon Sep 17 00:00:00 2001 From: clasher113 <61116084+clasher113@users.noreply.github.com> Date: Sat, 12 Apr 2025 20:30:55 +0300 Subject: [PATCH] fix: pause menu on hudVisible=false (#512) * fix: pause menu on hudVisible=false --- src/frontend/hud.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/frontend/hud.cpp b/src/frontend/hud.cpp index f39c72c7..ced38093 100644 --- a/src/frontend/hud.cpp +++ b/src/frontend/hud.cpp @@ -314,6 +314,7 @@ void Hud::updateWorldGenDebug() { void Hud::update(bool visible) { const auto& chunks = *player.chunks; + bool is_menu_open = menu.hasOpenPage(); debugPanel->setVisible( debug && visible && !(inventoryOpen && inventoryView == nullptr) @@ -322,13 +323,13 @@ void Hud::update(bool visible) { if (!visible && inventoryOpen) { closeInventory(); } - if (pause && !menu.hasOpenPage()) { + if (pause && !is_menu_open) { setPause(false); } if (!gui.isFocusCaught()) { processInput(visible); } - if ((menu.hasOpenPage() || inventoryOpen) == input.getCursor().locked) { + if ((is_menu_open || inventoryOpen) == input.getCursor().locked) { input.toggleCursor(); } @@ -349,6 +350,8 @@ void Hud::update(bool visible) { contentAccessPanel->setSize(glm::vec2(caSize.x, windowSize.y)); contentAccess->setMinSize(glm::vec2(1, windowSize.y)); hotbarView->setVisible(visible && !(secondUI && !inventoryView)); + darkOverlay->setVisible(is_menu_open); + menu.setVisible(is_menu_open); if (visible) { for (auto& element : elements) { @@ -360,7 +363,7 @@ void Hud::update(bool visible) { } cleanup(); - debugMinimap->setVisible(debug && showGeneratorMinimap); + debugMinimap->setVisible(debug && showGeneratorMinimap && visible); if (debug && showGeneratorMinimap) { updateWorldGenDebug(); } @@ -593,10 +596,6 @@ void Hud::setDebug(bool flag) { void Hud::draw(const DrawContext& ctx){ const auto& viewport = ctx.getViewport(); - bool is_menu_open = menu.hasOpenPage(); - darkOverlay->setVisible(is_menu_open); - menu.setVisible(is_menu_open); - updateElementsPosition(viewport); uicamera->setFov(viewport.y);