aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Common/UI/UILayer.cpp
diff options
context:
space:
mode:
authorLoki Rautio <lokirautio@gmail.com>2026-03-04 03:56:03 -0600
committerLoki Rautio <lokirautio@gmail.com>2026-03-04 03:56:03 -0600
commit42aec6dac53dffa6afe072560a7e1d4986112538 (patch)
tree0836426857391df1b6a83f6368a183f83ec9b104 /Minecraft.Client/Common/UI/UILayer.cpp
parentc9d58eeac7c72f0b3038e084667b4d89a6249fce (diff)
parentef9b6fd500dfabd9463267b0dd9e29577eea8a2b (diff)
Merge branch 'main' into pr/win64-world-saves
# Conflicts: # Minecraft.Client/MinecraftServer.cpp # README.md
Diffstat (limited to 'Minecraft.Client/Common/UI/UILayer.cpp')
-rw-r--r--Minecraft.Client/Common/UI/UILayer.cpp47
1 files changed, 45 insertions, 2 deletions
diff --git a/Minecraft.Client/Common/UI/UILayer.cpp b/Minecraft.Client/Common/UI/UILayer.cpp
index e6f87f81..13b26c84 100644
--- a/Minecraft.Client/Common/UI/UILayer.cpp
+++ b/Minecraft.Client/Common/UI/UILayer.cpp
@@ -189,7 +189,7 @@ void UILayer::ReloadAll(bool force)
int lowestRenderable = 0;
for(;lowestRenderable < m_sceneStack.size(); ++lowestRenderable)
{
- m_sceneStack[lowestRenderable]->reloadMovie();
+ m_sceneStack[lowestRenderable]->reloadMovie(force);
}
}
}
@@ -253,6 +253,18 @@ bool UILayer::NavigateToScene(int iPad, EUIScene scene, void *initData)
case eUIScene_AnvilMenu:
newScene = new UIScene_AnvilMenu(iPad, initData, this);
break;
+ case eUIScene_HopperMenu:
+ newScene = new UIScene_HopperMenu(iPad, initData, this);
+ break;
+ case eUIScene_BeaconMenu:
+ newScene = new UIScene_BeaconMenu(iPad, initData, this);
+ break;
+ case eUIScene_HorseMenu:
+ newScene = new UIScene_HorseInventoryMenu(iPad, initData, this);
+ break;
+ case eUIScene_FireworksMenu:
+ newScene = new UIScene_FireworksMenu(iPad, initData, this);
+ break;
// Help and Options
case eUIScene_HelpAndOptionsMenu:
@@ -282,6 +294,9 @@ bool UILayer::NavigateToScene(int iPad, EUIScene scene, void *initData)
case eUIScene_HowToPlayMenu:
newScene = new UIScene_HowToPlayMenu(iPad, initData, this);
break;
+ case eUIScene_LanguageSelector:
+ newScene = new UIScene_LanguageSelector(iPad, initData, this);
+ break;
case eUIScene_HowToPlay:
newScene = new UIScene_HowToPlay(iPad, initData, this);
break;
@@ -313,6 +328,10 @@ bool UILayer::NavigateToScene(int iPad, EUIScene scene, void *initData)
newScene = new UIScene_InGameInfoMenu(iPad, initData, this);
break;
case eUIScene_InGameHostOptionsMenu:
+ if (IsSceneInStack(eUIScene_InGameHostOptionsMenu)) {
+ app.DebugPrintf("Skipped eUIScene_InGameHostOptionsMenu, we have already this tab!");
+ return false;
+ }
newScene = new UIScene_InGameHostOptionsMenu(iPad, initData, this);
break;
case eUIScene_InGamePlayerOptionsMenu:
@@ -382,6 +401,9 @@ bool UILayer::NavigateToScene(int iPad, EUIScene scene, void *initData)
case eUIScene_EULA:
newScene = new UIScene_EULA(iPad, initData, this);
break;
+ case eUIScene_NewUpdateMessage:
+ newScene = new UIScene_NewUpdateMessage(iPad, initData, this);
+ break;
// Other
case eUIScene_Keyboard:
@@ -696,6 +718,12 @@ bool UILayer::updateFocusState(bool allowedFocus /* = false */)
m_scenesToDestroy.push_back(scene);
#endif
}
+
+ if (scene->getSceneType() == eUIScene_SettingsOptionsMenu)
+ {
+ scene->loseFocus();
+ m_scenesToDestroy.push_back(scene);
+ }
}
/// UPDATE STACK STATES
@@ -719,6 +747,12 @@ bool UILayer::updateFocusState(bool allowedFocus /* = false */)
case eUIScene_DispenserMenu:
case eUIScene_BrewingStandMenu:
case eUIScene_EnchantingMenu:
+ case eUIScene_TradingMenu:
+ case eUIScene_HopperMenu:
+ case eUIScene_HorseMenu:
+ case eUIScene_FireworksMenu:
+ case eUIScene_BeaconMenu:
+ case eUIScene_AnvilMenu:
m_bContainerMenuDisplayed=true;
// Intentional fall-through
@@ -782,7 +816,7 @@ void UILayer::handleInput(int iPad, int key, bool repeat, bool pressed, bool rel
}
// Fix for PS3 #444 - [IN GAME] If the user keeps pressing CROSS while on the 'Save Game' screen the title will crash.
- handled = handled || scene->hidesLowerScenes();
+ handled = handled || scene->hidesLowerScenes() || scene->blocksInput();
if(handled ) break;
}
@@ -819,6 +853,15 @@ void UILayer::HandleDLCLicenseChange()
}
#endif
+void UILayer::HandleMessage(EUIMessage message, void *data)
+{
+ for(AUTO_VAR(it,m_sceneStack.rbegin()); it != m_sceneStack.rend(); ++it)
+ {
+ UIScene *topScene = *it;
+ topScene->HandleMessage(message, data);
+ }
+}
+
bool UILayer::IsFullscreenGroup()
{
return m_parentGroup->IsFullscreenGroup();