diff --git a/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ScoreScreen.cpp b/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ScoreScreen.cpp index ce27b26372..12e07057c2 100644 --- a/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ScoreScreen.cpp +++ b/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ScoreScreen.cpp @@ -634,6 +634,9 @@ void PlayMovieAndBlock(AsciiString movieTitle) return; } + // TheSuperHackers @bugfix Originally this movie render loop stopped rendering when the game window was inactive. + // This either skipped the movie or caused decompression artifacts. Now the video just keeps playing until it done. + GameWindow *movieWindow = s_blankLayout->getFirstWindow(); TheWritableGlobalData->m_loadScreenRender = TRUE; while (videoStream->frameIndex() < videoStream->frameCount() - 1) @@ -646,13 +649,6 @@ void PlayMovieAndBlock(AsciiString movieTitle) continue; } - if (!TheGameEngine->isActive()) - { //we are alt-tabbed out, so just increment the frame - videoStream->frameNext(); - videoStream->frameDecompress(); - continue; - } - videoStream->frameDecompress(); videoStream->frameRender(videoBuffer); videoStream->frameNext(); diff --git a/Generals/Code/GameEngine/Source/GameClient/GUI/LoadScreen.cpp b/Generals/Code/GameEngine/Source/GameClient/GUI/LoadScreen.cpp index 0c453dce3e..e100348775 100644 --- a/Generals/Code/GameEngine/Source/GameClient/GUI/LoadScreen.cpp +++ b/Generals/Code/GameEngine/Source/GameClient/GUI/LoadScreen.cpp @@ -486,6 +486,9 @@ void SinglePlayerLoadScreen::init( GameInfo *game ) if(TheGameLODManager && TheGameLODManager->didMemPass()) { + // TheSuperHackers @bugfix Originally this movie render loop stopped rendering when the game window was inactive. + // This either skipped the movie or caused decompression artifacts. Now the video just keeps playing until it done. + Int progressUpdateCount = m_videoStream->frameCount() / FRAME_FUDGE_ADD; Int shiftedPercent = -FRAME_FUDGE_ADD + 1; while (m_videoStream->frameIndex() < m_videoStream->frameCount() - 1 ) @@ -498,13 +501,6 @@ void SinglePlayerLoadScreen::init( GameInfo *game ) continue; } - if (!TheGameEngine->isActive()) - { //we are alt-tabbed out, so just increment the frame - m_videoStream->frameNext(); - m_videoStream->frameDecompress(); - continue; - } - m_videoStream->frameDecompress(); m_videoStream->frameRender(m_videoBuffer); moveWindows( m_videoStream->frameIndex()); diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ScoreScreen.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ScoreScreen.cpp index 0387b8fcbb..31265b98ca 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ScoreScreen.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ScoreScreen.cpp @@ -727,6 +727,9 @@ void PlayMovieAndBlock(AsciiString movieTitle) return; } + // TheSuperHackers @bugfix Originally this movie render loop stopped rendering when the game window was inactive. + // This either skipped the movie or caused decompression artifacts. Now the video just keeps playing until it done. + GameWindow *movieWindow = s_blankLayout->getFirstWindow(); TheWritableGlobalData->m_loadScreenRender = TRUE; while (videoStream->frameIndex() < videoStream->frameCount() - 1) @@ -739,13 +742,6 @@ void PlayMovieAndBlock(AsciiString movieTitle) continue; } - if (!TheGameEngine->isActive()) - { //we are alt-tabbed out, so just increment the frame - videoStream->frameNext(); - videoStream->frameDecompress(); - continue; - } - videoStream->frameDecompress(); videoStream->frameRender(videoBuffer); videoStream->frameNext(); diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/LoadScreen.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/LoadScreen.cpp index 2613bcf697..4d19b954ce 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/LoadScreen.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/LoadScreen.cpp @@ -529,6 +529,9 @@ void SinglePlayerLoadScreen::init( GameInfo *game ) if(TheGameLODManager && TheGameLODManager->didMemPass()) { + // TheSuperHackers @bugfix Originally this movie render loop stopped rendering when the game window was inactive. + // This either skipped the movie or caused decompression artifacts. Now the video just keeps playing until it done. + Int progressUpdateCount = m_videoStream->frameCount() / FRAME_FUDGE_ADD; Int shiftedPercent = -FRAME_FUDGE_ADD + 1; while (m_videoStream->frameIndex() < m_videoStream->frameCount() - 1 ) @@ -541,15 +544,6 @@ void SinglePlayerLoadScreen::init( GameInfo *game ) continue; } - if (!TheGameEngine->isActive()) - {/* //we are alt-tabbed out, so just increment the frame - m_videoStream->frameNext(); - m_videoStream->frameDecompress();*/ - - //Changing for MissionDisk, just skip to end. - break; - } - m_videoStream->frameDecompress(); m_videoStream->frameRender(m_videoBuffer); @@ -1049,6 +1043,9 @@ void ChallengeLoadScreen::init( GameInfo *game ) if(TheGameLODManager && TheGameLODManager->didMemPass()) { + // TheSuperHackers @bugfix Originally this movie render loop stopped rendering when the game window was inactive. + // This either skipped the movie or caused decompression artifacts. Now the video just keeps playing until it done. + Int progressUpdateCount = m_videoStream->frameCount() / FRAME_FUDGE_ADD; Int shiftedPercent = -FRAME_FUDGE_ADD + 1; while (m_videoStream->frameIndex() < m_videoStream->frameCount() - 1 ) @@ -1061,13 +1058,6 @@ void ChallengeLoadScreen::init( GameInfo *game ) continue; } - if (!TheGameEngine->isActive()) - { //we are alt-tabbed out, so just increment the frame - m_videoStream->frameNext(); - m_videoStream->frameDecompress(); - continue; - } - m_videoStream->frameDecompress(); m_videoStream->frameRender(m_videoBuffer); m_videoStream->frameNext();