diff --git a/Minecraft.Client/Platform/Common/UI/UIScene_Intro.cpp b/Minecraft.Client/Platform/Common/UI/UIScene_Intro.cpp index d7f4c8c7d..7e6bb2b1e 100644 --- a/Minecraft.Client/Platform/Common/UI/UIScene_Intro.cpp +++ b/Minecraft.Client/Platform/Common/UI/UIScene_Intro.cpp @@ -172,3 +172,22 @@ void UIScene_Intro::handleGainFocus(bool navBack) ui.NavigateToScene(0,eUIScene_MainMenu); } } + +#ifdef __linux__ +void UIScene_Intro::tick() +{ + // Call base tick first (processes Iggy ticking) + UIScene::tick(); + + // Auto-skip the intro after 60 ticks (~2 seconds at 30fps) + // since we have no SWF renderer to play the intro animation + s_introTickCount++; + if(s_introTickCount == 60 && !m_bIgnoreNavigate) + { + fprintf(stderr, "[Linux] Auto-skipping intro -> MainMenu after %d ticks\n", s_introTickCount); + m_bIgnoreNavigate = true; + // Skip straight to MainMenu, bypassing SaveMessage (no SWF interaction possible) + ui.NavigateToScene(0, eUIScene_MainMenu); + } +} +#endif \ No newline at end of file diff --git a/Minecraft.Client/Platform/Common/UI/UIScene_Intro.h b/Minecraft.Client/Platform/Common/UI/UIScene_Intro.h index e1c492a8a..2c595c368 100644 --- a/Minecraft.Client/Platform/Common/UI/UIScene_Intro.h +++ b/Minecraft.Client/Platform/Common/UI/UIScene_Intro.h @@ -45,6 +45,10 @@ public: virtual void handleAnimationEnd(); virtual void handleGainFocus(bool navBack); +#ifdef __linux__ + virtual void tick(); +#endif + #ifdef __PSVITA__ virtual void handleTouchInput(unsigned int iPad, S32 x, S32 y, int iId, bool bPressed, bool bRepeat, bool bReleased); #endif diff --git a/Minecraft.Client/Platform/Common/UI/UIScene_MainMenu.cpp b/Minecraft.Client/Platform/Common/UI/UIScene_MainMenu.cpp index 2f05e367e..78a9b592e 100644 --- a/Minecraft.Client/Platform/Common/UI/UIScene_MainMenu.cpp +++ b/Minecraft.Client/Platform/Common/UI/UIScene_MainMenu.cpp @@ -1802,6 +1802,20 @@ void UIScene_MainMenu::tick() { UIScene::tick(); +#ifdef __linux__ + { + static int s_mainMenuTickCount = 0; + s_mainMenuTickCount++; + if(s_mainMenuTickCount % 60 == 1) { fprintf(stderr, "[MM] tick %d\n", s_mainMenuTickCount); fflush(stderr); } + if(s_mainMenuTickCount == 90) // ~3 seconds at 30fps + { + fprintf(stderr, "[Linux] Auto-starting trial world from MainMenu after %d ticks\n", s_mainMenuTickCount); + LoadTrial(); + return; + } + } +#endif + #if defined(__PS3__) || defined (__ORBIS__) || defined(__PSVITA__) if(m_bLaunchFullVersionPurchase) {