From 43de303aa5e5bab0feeb16c67a7d17bcd3bd3e72 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 5 Apr 2026 03:34:19 -0700 Subject: [PATCH 1/2] Make join/load parent class respond to focus change event --- .../Common/UI/IUIScene_StartGame.cpp | 22 ++++++++++++++++--- .../Common/UI/IUIScene_StartGame.h | 7 ++++-- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/Minecraft.Client/Common/UI/IUIScene_StartGame.cpp b/Minecraft.Client/Common/UI/IUIScene_StartGame.cpp index 735da438aa..90525f3577 100644 --- a/Minecraft.Client/Common/UI/IUIScene_StartGame.cpp +++ b/Minecraft.Client/Common/UI/IUIScene_StartGame.cpp @@ -5,18 +5,21 @@ #include "Minecraft.h" #include "IUIScene_StartGame.h" -IUIScene_StartGame::IUIScene_StartGame(int iPad, UILayer *parentLayer) : UIScene(iPad, parentLayer) +IUIScene_StartGame::IUIScene_StartGame(int iPad, UILayer* parentLayer, int texturePackListID) + : UIScene(iPad, parentLayer), m_iTexturePackID(texturePackListID) { m_bIgnoreInput = false; - m_iTexturePacksNotInstalled=0; + m_iTexturePacksNotInstalled = 0; m_texturePackDescDisplayed = false; m_bShowTexturePackDescription = false; m_iSetTexturePackDescription = -1; - Minecraft *pMinecraft = Minecraft::GetInstance(); + Minecraft* pMinecraft = Minecraft::GetInstance(); m_currentTexturePackIndex = pMinecraft->skins->getTexturePackIndex(0); } +//IUIScene_StartGame::IUIScene_StartGame(int iPad, UILayer* parentLayer) : IUIScene_StartGame(iPad, parentLayer, -1) {} + void IUIScene_StartGame::HandleDLCMountingComplete() { Minecraft *pMinecraft = Minecraft::GetInstance(); @@ -131,6 +134,19 @@ void IUIScene_StartGame::handleSelectionChanged(F64 selectedId) } } +void IUIScene_StartGame::handleFocusChange(F64 controlId, F64 childId) +{ + if (static_cast(controlId) == m_iTexturePackID) { + if (m_bShowTexturePackDescription) return; +// m_iSetTexturePackDescription = 0; + + if (!m_texturePackDescDisplayed) + { + m_bShowTexturePackDescription = true; + } + } +} + void IUIScene_StartGame::UpdateTexturePackDescription(int index) { TexturePack *tp = Minecraft::GetInstance()->skins->getTexturePackByIndex(index); diff --git a/Minecraft.Client/Common/UI/IUIScene_StartGame.h b/Minecraft.Client/Common/UI/IUIScene_StartGame.h index a3361011f1..15299148f7 100644 --- a/Minecraft.Client/Common/UI/IUIScene_StartGame.h +++ b/Minecraft.Client/Common/UI/IUIScene_StartGame.h @@ -25,19 +25,22 @@ class IUIScene_StartGame : public UIScene LaunchMoreOptionsMenuInitData m_MoreOptionsParams; bool m_bIgnoreInput; + const int m_iTexturePackID; int m_iTexturePacksNotInstalled; unsigned int m_currentTexturePackIndex; bool m_bShowTexturePackDescription; bool m_texturePackDescDisplayed; int m_iSetTexturePackDescription; - IUIScene_StartGame(int iPad, UILayer *parentLayer); + IUIScene_StartGame(int iPad, UILayer* parentLayer, int texturePackListID); + // This constructor should never be used! + //IUIScene_StartGame(int iPad, UILayer* parentLayer); virtual void checkStateAndStartGame() = 0; virtual void handleSelectionChanged(F64 selectedId); - virtual void HandleDLCMountingComplete(); + virtual void handleFocusChange(F64 controlId, F64 childId); void UpdateTexturePackDescription(int index); void UpdateCurrentTexturePack(int iSlot); From 521ff0693b893118da8acf1597598df283e12932 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 5 Apr 2026 03:34:45 -0700 Subject: [PATCH 2/2] Update children to use new constructor --- Minecraft.Client/Common/UI/UIScene_CreateWorldMenu.cpp | 2 +- Minecraft.Client/Common/UI/UIScene_LoadMenu.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Minecraft.Client/Common/UI/UIScene_CreateWorldMenu.cpp b/Minecraft.Client/Common/UI/UIScene_CreateWorldMenu.cpp index ef72ec163f..f3a4bf3143 100644 --- a/Minecraft.Client/Common/UI/UIScene_CreateWorldMenu.cpp +++ b/Minecraft.Client/Common/UI/UIScene_CreateWorldMenu.cpp @@ -34,7 +34,7 @@ int UIScene_CreateWorldMenu::m_iDifficultyTitleSettingA[4]= IDS_DIFFICULTY_TITLE_HARD }; -UIScene_CreateWorldMenu::UIScene_CreateWorldMenu(int iPad, void *initData, UILayer *parentLayer) : IUIScene_StartGame(iPad, parentLayer) +UIScene_CreateWorldMenu::UIScene_CreateWorldMenu(int iPad, void *initData, UILayer *parentLayer) : IUIScene_StartGame(iPad, parentLayer, eControl_TexturePackList) { // Setup all the Iggy references we need for this scene initialiseMovie(); diff --git a/Minecraft.Client/Common/UI/UIScene_LoadMenu.cpp b/Minecraft.Client/Common/UI/UIScene_LoadMenu.cpp index d61a790227..f360cd8f0d 100644 --- a/Minecraft.Client/Common/UI/UIScene_LoadMenu.cpp +++ b/Minecraft.Client/Common/UI/UIScene_LoadMenu.cpp @@ -59,7 +59,7 @@ int UIScene_LoadMenu::LoadSaveDataThumbnailReturned(LPVOID lpParam,PBYTE pbThumb return 0; } -UIScene_LoadMenu::UIScene_LoadMenu(int iPad, void *initData, UILayer *parentLayer) : IUIScene_StartGame(iPad, parentLayer) +UIScene_LoadMenu::UIScene_LoadMenu(int iPad, void *initData, UILayer *parentLayer) : IUIScene_StartGame(iPad, parentLayer, eControl_TexturePackList) { // Setup all the Iggy references we need for this scene initialiseMovie();