From 009b17ef1b33fd4d6113e55a5b4c17cf4ef6e084 Mon Sep 17 00:00:00 2001 From: Sally Knight Date: Thu, 19 Mar 2026 18:49:14 +0300 Subject: [PATCH] fix(gui): working pauses on iggy --- .../Platform/Common/UI/UIScene_PauseMenu.cpp | 16 ++++++++++++---- .../Platform/Linux/Linux_Minecraft.cpp | 7 ++++++- Minecraft.Client/UI/Screens/MessageScreen.h | 2 -- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/Minecraft.Client/Platform/Common/UI/UIScene_PauseMenu.cpp b/Minecraft.Client/Platform/Common/UI/UIScene_PauseMenu.cpp index 1ba87c37e..b82bb65ef 100644 --- a/Minecraft.Client/Platform/Common/UI/UIScene_PauseMenu.cpp +++ b/Minecraft.Client/Platform/Common/UI/UIScene_PauseMenu.cpp @@ -92,7 +92,10 @@ UIScene_PauseMenu::UIScene_PauseMenu(int iPad, void *initData, UILayer *parentLa XuiSetTimer(m_hObj,IGNORE_KEYPRESS_TIMERID,IGNORE_KEYPRESS_TIME); #endif - if( g_NetworkManager.IsLocalGame() && g_NetworkManager.GetPlayerCount() == 1 ) + // TODO: proper fix for pausing + // 4jcraft: replace IsLocalGame() with GetPlayerCount() == 1 due to + // IsLocalGame() issues on Iggy + if( /*g_NetworkManager.IsLocalGame() &&*/ g_NetworkManager.GetPlayerCount() == 1 ) { app.SetXuiServerAction(ProfileManager.GetPrimaryPad(),eXuiServerAction_PauseServer,(void *)TRUE); } @@ -364,8 +367,10 @@ void UIScene_PauseMenu::handleInput(int iPad, int key, bool repeat, bool pressed #ifdef _DURANGO //DurangoStatsDebugger::PrintStats(iPad); #endif - - if( iPad == ProfileManager.GetPrimaryPad() && g_NetworkManager.IsLocalGame() ) + // TODO: proper fix for pausing + // 4jcraft: replace IsLocalGame() with GetPlayerCount() == 1 due to + // IsLocalGame() issues on Iggy + if( iPad == ProfileManager.GetPrimaryPad() && /*g_NetworkManager.IsLocalGame()*/g_NetworkManager.GetPlayerCount() == 1 ) { app.SetXuiServerAction(ProfileManager.GetPrimaryPad(),eXuiServerAction_PauseServer,(void *)FALSE); } @@ -509,7 +514,10 @@ void UIScene_PauseMenu::handlePress(F64 controlId, F64 childId) switch((int)controlId) { case BUTTON_PAUSE_RESUMEGAME: - if( m_iPad == ProfileManager.GetPrimaryPad() && g_NetworkManager.IsLocalGame() ) + // TODO: proper fix for pausing + // 4jcraft: replace IsLocalGame() with GetPlayerCount() == 1 due to + // IsLocalGame() issues on Iggy + if( m_iPad == ProfileManager.GetPrimaryPad() && /*g_NetworkManager.IsLocalGame()*/g_NetworkManager.GetPlayerCount() == 1 ) { app.SetXuiServerAction(ProfileManager.GetPrimaryPad(),eXuiServerAction_PauseServer,(void *)FALSE); } diff --git a/Minecraft.Client/Platform/Linux/Linux_Minecraft.cpp b/Minecraft.Client/Platform/Linux/Linux_Minecraft.cpp index dd6ec8a82..0a4f3bfc7 100644 --- a/Minecraft.Client/Platform/Linux/Linux_Minecraft.cpp +++ b/Minecraft.Client/Platform/Linux/Linux_Minecraft.cpp @@ -950,7 +950,12 @@ return -1; pMinecraft->run_middle(); #endif app.SetAppPaused( - g_NetworkManager.IsLocalGame() && + // TODO: proper fix for pausing + // 4jcraft: IsLocalGame() doesn't seem to work properly on Iggy + // UI, this should work even in multiplayer scenarios though + // since it checks for the player count anyway + // + // g_NetworkManager.IsLocalGame() && g_NetworkManager.GetPlayerCount() == 1 && ui.IsPauseMenuDisplayed(ProfileManager.GetPrimaryPad())); } else { diff --git a/Minecraft.Client/UI/Screens/MessageScreen.h b/Minecraft.Client/UI/Screens/MessageScreen.h index 160e7b1dc..42a75aa78 100644 --- a/Minecraft.Client/UI/Screens/MessageScreen.h +++ b/Minecraft.Client/UI/Screens/MessageScreen.h @@ -1,8 +1,6 @@ #pragma once #include "../Screen.h" -// 4jcraft addition - class MessageScreen : public Screen { private: std::wstring message;