diff --git a/data/language/en-GB.txt b/data/language/en-GB.txt index 636b35a5b9..84f2fc1520 100644 --- a/data/language/en-GB.txt +++ b/data/language/en-GB.txt @@ -3707,6 +3707,8 @@ STR_6632 :Checking object files... STR_6633 :Checking scenario files... STR_6634 :Checking track design files... STR_6635 :Checking asset packs... +STR_6636 :Checking title sequences... +STR_6637 :Loading title sequence... ############# # Scenarios # diff --git a/src/openrct2/Context.cpp b/src/openrct2/Context.cpp index ca72ae76a1..a47cf8c9dd 100644 --- a/src/openrct2/Context.cpp +++ b/src/openrct2/Context.cpp @@ -518,8 +518,6 @@ namespace OpenRCT2 ContextInit(); - TitleSequenceManager::Scan(); - if (!gOpenRCT2Headless) { auto* preloaderScene = GetPreloaderScene(); @@ -570,7 +568,13 @@ namespace OpenRCT2 preloaderScene->UpdateCaption(STR_CHECKING_SCENARIO_FILES); _scenarioRepository->Scan(currentLanguage); - preloaderScene->UpdateCaption(STR_LOADING_GENERIC); + preloaderScene->UpdateCaption(STR_CHECKING_TITLE_SEQUENCES); + TitleSequenceManager::Scan(); + + if (preloaderScene->GetCompletionScene() == GetTitleScene()) + preloaderScene->UpdateCaption(STR_LOADING_TITLE_SEQUENCE); + else + preloaderScene->UpdateCaption(STR_LOADING_GENERIC); } public: diff --git a/src/openrct2/localisation/StringIds.h b/src/openrct2/localisation/StringIds.h index 320e318bd4..ad8cca6f7a 100644 --- a/src/openrct2/localisation/StringIds.h +++ b/src/openrct2/localisation/StringIds.h @@ -3860,6 +3860,8 @@ enum : uint16_t STR_CHECKING_SCENARIO_FILES = 6633, STR_CHECKING_TRACK_DESIGN_FILES = 6634, STR_CHECKING_ASSET_PACKS = 6635, + STR_CHECKING_TITLE_SEQUENCES = 6636, + STR_LOADING_TITLE_SEQUENCE = 6637, // Have to include resource strings (from scenarios and objects) for the time being now that language is partially working /* MAX_STR_COUNT = 32768 */ // MAX_STR_COUNT - upper limit for number of strings, not the current count strings diff --git a/src/openrct2/scenes/Scene.cpp b/src/openrct2/scenes/Scene.cpp index 6e8316548a..f300c0d02c 100644 --- a/src/openrct2/scenes/Scene.cpp +++ b/src/openrct2/scenes/Scene.cpp @@ -38,6 +38,11 @@ void Scene::FinishScene() } } +IScene* Scene::GetCompletionScene() +{ + return _nextScene; +} + void Scene::SetCompletionScene(IScene* scene) { _nextScene = scene; diff --git a/src/openrct2/scenes/Scene.h b/src/openrct2/scenes/Scene.h index 6e7c5edd12..a082717d26 100644 --- a/src/openrct2/scenes/Scene.h +++ b/src/openrct2/scenes/Scene.h @@ -27,6 +27,8 @@ namespace OpenRCT2 virtual void Load() = 0; virtual void Tick() = 0; virtual void Stop() = 0; + + virtual IScene* GetCompletionScene() = 0; virtual void SetCompletionScene(IScene* scene) = 0; }; @@ -38,6 +40,7 @@ namespace OpenRCT2 GameState_t& GetGameState() override; IContext& GetContext() override; + IScene* GetCompletionScene() override; void SetCompletionScene(IScene* scene) override; protected: