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 e3ee2daf761..c2c32dcaa58 100644 --- a/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ScoreScreen.cpp +++ b/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ScoreScreen.cpp @@ -412,9 +412,12 @@ WindowMsgHandledType ScoreScreenInput( GameWindow *window, UnsignedInt msg, } // end MainMenuInput -static Bool showButtonContinue() +static Bool showReplayButtonContinue() { - return ReplaySimulation::getCurrentReplayIndex() != ReplaySimulation::getReplayCount()-1; + bool hasSimulationReplay = ReplaySimulation::getReplayCount() > 0; + bool isLastSimulationReplay = ReplaySimulation::getCurrentReplayIndex() == ReplaySimulation::getReplayCount()-1; + + return hasSimulationReplay && !isLastSimulationReplay; } /** System Function for the ScoreScreen */ @@ -819,7 +822,7 @@ void initReplaySinglePlayer( void ) if (chatBoxBorder) chatBoxBorder->winHide(TRUE); if (buttonContinue) - buttonContinue->winHide(!showButtonContinue()); + buttonContinue->winHide(!showReplayButtonContinue()); if (buttonBuddies) buttonBuddies->winHide(TRUE); if (listboxChatWindowScoreScreen) @@ -905,7 +908,7 @@ void initReplayMultiPlayer(void) if (chatBoxBorder) chatBoxBorder->winHide(TRUE); if (buttonContinue) - buttonContinue->winHide(!showButtonContinue()); + buttonContinue->winHide(!showReplayButtonContinue()); if (buttonBuddies) buttonBuddies->winHide(TRUE); // if (buttonRehost) 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 69c2c46fde6..e0ca6b18505 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ScoreScreen.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/ScoreScreen.cpp @@ -504,9 +504,12 @@ WindowMsgHandledType ScoreScreenInput( GameWindow *window, UnsignedInt msg, } // end MainMenuInput -static Bool showButtonContinue() +static Bool showReplayButtonContinue() { - return ReplaySimulation::getCurrentReplayIndex() != ReplaySimulation::getReplayCount()-1; + bool hasSimulationReplay = ReplaySimulation::getReplayCount() > 0; + bool isLastSimulationReplay = ReplaySimulation::getCurrentReplayIndex() == ReplaySimulation::getReplayCount()-1; + + return hasSimulationReplay && !isLastSimulationReplay; } /** System Function for the ScoreScreen */ @@ -1003,7 +1006,7 @@ void initReplaySinglePlayer( void ) if (chatBoxBorder) chatBoxBorder->winHide(TRUE); if (buttonContinue) - buttonContinue->winHide(!showButtonContinue()); + buttonContinue->winHide(!showReplayButtonContinue()); if (buttonBuddies) buttonBuddies->winHide(TRUE); if (listboxChatWindowScoreScreen) @@ -1110,7 +1113,7 @@ void initReplayMultiPlayer(void) if (chatBoxBorder) chatBoxBorder->winHide(TRUE); if (buttonContinue) - buttonContinue->winHide(!showButtonContinue()); + buttonContinue->winHide(!showReplayButtonContinue()); if (buttonBuddies) buttonBuddies->winHide(TRUE); // if (buttonRehost)