diff --git a/src/openrct2-ui/windows/Main.cpp b/src/openrct2-ui/windows/Main.cpp index d99748a713..f13a01bbc8 100644 --- a/src/openrct2-ui/windows/Main.cpp +++ b/src/openrct2-ui/windows/Main.cpp @@ -46,6 +46,10 @@ static Widget _mainWidgets[] = { void OnDraw(DrawPixelInfo& dpi) override { + // Skip viewport render during preloader + if (GetContext()->GetActiveScene() == GetContext()->GetPreloaderScene()) + return; + ViewportRender(dpi, viewport, { { dpi.x, dpi.y }, { dpi.x + dpi.width, dpi.y + dpi.height } }); } diff --git a/src/openrct2-ui/windows/NetworkStatus.cpp b/src/openrct2-ui/windows/NetworkStatus.cpp index 0273474906..7f61a2b4bb 100644 --- a/src/openrct2-ui/windows/NetworkStatus.cpp +++ b/src/openrct2-ui/windows/NetworkStatus.cpp @@ -117,6 +117,7 @@ static Widget window_network_status_widgets[] = { void SetWindowNetworkStatusText(const std::string& text) { _windowNetworkStatusText = text; + Invalidate(); } void SetPassword(char* password) diff --git a/src/openrct2/scenes/preloader/PreloaderScene.cpp b/src/openrct2/scenes/preloader/PreloaderScene.cpp index 5e38c59803..830621ac0f 100644 --- a/src/openrct2/scenes/preloader/PreloaderScene.cpp +++ b/src/openrct2/scenes/preloader/PreloaderScene.cpp @@ -14,6 +14,8 @@ #include "../../GameState.h" #include "../../OpenRCT2.h" #include "../../audio/audio.h" +#include "../../drawing/IDrawingContext.h" +#include "../../drawing/IDrawingEngine.h" #include "../../interface/Viewport.h" #include "../../interface/Window.h" #include "../../localisation/LocalisationService.h" @@ -38,6 +40,11 @@ void PreloaderScene::Load() ContextOpenWindow(WindowClass::MainWindow); WindowResizeGui(ContextGetWidth(), ContextGetHeight()); + // Reset screen + auto* engine = GetContext().GetDrawingEngine(); + auto* drawingContext = engine->GetDrawingContext(); + drawingContext->Clear(*engine->GetDrawingPixelInfo(), PALETTE_INDEX_10); + UpdateCaption(STR_LOADING_GENERIC); LOG_VERBOSE("PreloaderScene::Load() finished");