changeset 19966:a856a3a3bf0f draft

(svn r24898) -Fix: Don't unpause the game when closing the highscore window if it was already paused before the highscore screen was shown.
author zuu <zuu@openttd.org>
date Tue, 08 Jan 2013 21:08:18 +0000
parents 53d499657b9b
children c2d0016cc9d6
files src/highscore_gui.cpp
diffstat 1 files changed, 5 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/highscore_gui.cpp
+++ b/src/highscore_gui.cpp
@@ -148,10 +148,13 @@
 };
 
 struct HighScoreWindow : EndGameHighScoreBaseWindow {
+	bool game_paused_by_player; ///< True if the game was paused by the player when the highscore window was opened.
+
 	HighScoreWindow(const WindowDesc *desc, int difficulty, int8 ranking) : EndGameHighScoreBaseWindow(desc)
 	{
 		/* pause game to show the chart */
-		if (!_networking) DoCommandP(0, PM_PAUSED_NORMAL, 1, CMD_PAUSE);
+		this->game_paused_by_player = _pause_mode == PM_PAUSED_NORMAL;
+		if (!_networking && !this->game_paused_by_player) DoCommandP(0, PM_PAUSED_NORMAL, 1, CMD_PAUSE);
 
 		/* Close all always on-top windows to get a clean screen */
 		if (_game_mode != GM_MENU) HideVitalWindows();
@@ -166,7 +169,7 @@
 	{
 		if (_game_mode != GM_MENU) ShowVitalWindows();
 
-		if (!_networking) DoCommandP(0, PM_PAUSED_NORMAL, 0, CMD_PAUSE); // unpause
+		if (!_networking && !this->game_paused_by_player) DoCommandP(0, PM_PAUSED_NORMAL, 0, CMD_PAUSE); // unpause
 	}
 
 	virtual void OnPaint()