From 51c4c47183350d5c7abd96b4ae19340739fdb265 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Thu, 8 Apr 2021 18:01:42 +0200 Subject: [PATCH] - block manual advancing of intermission screens when already fading out. This seems to cause some serious stability issues with how they handle the 2D drawer. --- source/core/screenjob.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/core/screenjob.cpp b/source/core/screenjob.cpp index 97413104e..943178a68 100644 --- a/source/core/screenjob.cpp +++ b/source/core/screenjob.cpp @@ -840,7 +840,7 @@ public: clock += now - lastTime; if (clock == 0) clock = 1; } - bool skiprequest = clock > 100'000'000 && inputState.CheckAllInput() && !processed; + bool skiprequest = clock > 100'000'000 && inputState.CheckAllInput() && !processed && job.job->fadestate != DScreenJob::fadeout; lastTime = now; if (screenfade < 1.f && !M_Active()) @@ -848,7 +848,8 @@ public: float ms = (clock / 1'000'000) / job.job->fadetime; screenfade = clamp(ms, 0.f, 1.f); twod->SetScreenFade(screenfade); - job.job->fadestate = DScreenJob::fadein; + if (job.job->fadestate != DScreenJob::fadeout) + job.job->fadestate = DScreenJob::fadein; } else {