From f4445fd7094c968378a7394289f777521573da33 Mon Sep 17 00:00:00 2001 From: Tropical <42101043+tropicaaal@users.noreply.github.com> Date: Thu, 12 Mar 2026 11:08:55 -0500 Subject: [PATCH] Revert "refactor: get rid of tutorial level autoload" This reverts commit 3c066dcff831f35196cadc1c16ae6c421b464869. --- .../Platform/Common/UI/UIScene_Intro.cpp | 19 +++++++++++++++++++ .../Platform/Common/UI/UIScene_Intro.h | 4 ++++ .../Platform/Common/UI/UIScene_MainMenu.cpp | 14 ++++++++++++++ 3 files changed, 37 insertions(+) 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) {