diff --git a/Generals/Code/GameEngine/Source/Common/Recorder.cpp b/Generals/Code/GameEngine/Source/Common/Recorder.cpp index b7a6df6e41..7fbb5bf2e5 100644 --- a/Generals/Code/GameEngine/Source/Common/Recorder.cpp +++ b/Generals/Code/GameEngine/Source/Common/Recorder.cpp @@ -1133,18 +1133,16 @@ Bool RecorderClass::replayMatchesGameVersion(AsciiString filename) Bool RecorderClass::replayMatchesGameVersion(const ReplayHeader& header) { - Bool versionStringDiff = header.versionString != TheVersion->getUnicodeVersion(); - Bool versionTimeStringDiff = header.versionTimeString != TheVersion->getUnicodeBuildTime(); - Bool versionNumberDiff = header.versionNumber != TheVersion->getVersionNumber(); - Bool exeCRCDiff = header.exeCRC != TheGlobalData->m_exeCRC; - Bool exeDifferent = versionStringDiff || versionTimeStringDiff || versionNumberDiff || exeCRCDiff; - Bool iniDifferent = header.iniCRC != TheGlobalData->m_iniCRC; - - if(exeDifferent || iniDifferent) - { - return FALSE; - } - return TRUE; + // TheSuperHackers @fix No longer checks the build time here to prevent incorrect Replay playback incompatibility messages when the Replay playback would actually be technically compatible. + if (header.versionString != TheVersion->getUnicodeVersion()) + return false; + if (header.versionNumber != TheVersion->getVersionNumber()) + return false; + if (header.exeCRC != TheGlobalData->m_exeCRC) + return false; + if (header.iniCRC != TheGlobalData->m_iniCRC) + return false; + return true; } /** diff --git a/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ReplayMenu.cpp b/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ReplayMenu.cpp index 21e62db7f3..20a2decdfa 100644 --- a/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ReplayMenu.cpp +++ b/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ReplayMenu.cpp @@ -274,11 +274,7 @@ void PopulateReplayFileListbox(GameWindow *listbox) const Bool hasMap = mapData != NULL; - const Bool isCrcCompatible = - header.versionString == TheVersion->getUnicodeVersion() - && header.versionNumber == TheVersion->getVersionNumber() - && header.exeCRC == TheGlobalData->m_exeCRC - && header.iniCRC == TheGlobalData->m_iniCRC; + const Bool isCrcCompatible = RecorderClass::replayMatchesGameVersion(header); if (isCrcCompatible) { diff --git a/GeneralsMD/Code/GameEngine/Source/Common/Recorder.cpp b/GeneralsMD/Code/GameEngine/Source/Common/Recorder.cpp index b59813da06..6550e39882 100644 --- a/GeneralsMD/Code/GameEngine/Source/Common/Recorder.cpp +++ b/GeneralsMD/Code/GameEngine/Source/Common/Recorder.cpp @@ -1136,18 +1136,16 @@ Bool RecorderClass::replayMatchesGameVersion(AsciiString filename) Bool RecorderClass::replayMatchesGameVersion(const ReplayHeader& header) { - Bool versionStringDiff = header.versionString != TheVersion->getUnicodeVersion(); - Bool versionTimeStringDiff = header.versionTimeString != TheVersion->getUnicodeBuildTime(); - Bool versionNumberDiff = header.versionNumber != TheVersion->getVersionNumber(); - Bool exeCRCDiff = header.exeCRC != TheGlobalData->m_exeCRC; - Bool exeDifferent = versionStringDiff || versionTimeStringDiff || versionNumberDiff || exeCRCDiff; - Bool iniDifferent = header.iniCRC != TheGlobalData->m_iniCRC; - - if(exeDifferent || iniDifferent) - { - return FALSE; - } - return TRUE; + // TheSuperHackers @fix No longer checks the build time here to prevent incorrect Replay playback incompatibility messages when the Replay playback would actually be technically compatible. + if (header.versionString != TheVersion->getUnicodeVersion()) + return false; + if (header.versionNumber != TheVersion->getVersionNumber()) + return false; + if (header.exeCRC != TheGlobalData->m_exeCRC) + return false; + if (header.iniCRC != TheGlobalData->m_iniCRC) + return false; + return true; } /** diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ReplayMenu.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ReplayMenu.cpp index 16e68dea3f..b751b69c92 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ReplayMenu.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ReplayMenu.cpp @@ -274,11 +274,7 @@ void PopulateReplayFileListbox(GameWindow *listbox) const Bool hasMap = mapData != NULL; - const Bool isCrcCompatible = - header.versionString == TheVersion->getUnicodeVersion() - && header.versionNumber == TheVersion->getVersionNumber() - && header.exeCRC == TheGlobalData->m_exeCRC - && header.iniCRC == TheGlobalData->m_iniCRC; + const Bool isCrcCompatible = RecorderClass::replayMatchesGameVersion(header); if (isCrcCompatible) {