From 8216e6dabfb2f460ff92fd7d04688fb0b34072fa Mon Sep 17 00:00:00 2001 From: Thierry Crozat Date: Sun, 1 Sep 2013 22:04:20 +0100 Subject: MORTEVIELLE: Freeze clock in game when pausing the game --- engines/mortevielle/mortevielle.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'engines/mortevielle/mortevielle.cpp') diff --git a/engines/mortevielle/mortevielle.cpp b/engines/mortevielle/mortevielle.cpp index f13f8cb65b..d434150977 100644 --- a/engines/mortevielle/mortevielle.cpp +++ b/engines/mortevielle/mortevielle.cpp @@ -63,6 +63,7 @@ MortevielleEngine::MortevielleEngine(OSystem *system, const MortevielleGameDescr _mouseClick = false; _inMainGameLoop = false; _quitGame = false; + _pauseStartTime = -1; _roomPresenceLuc = false; _roomPresenceIda = false; @@ -164,6 +165,25 @@ Common::String MortevielleEngine::generateSaveFilename(const Common::String &tar return Common::String::format("%s.%03d", target.c_str(), slot); } +/** + * Pause the game. + */ +void MortevielleEngine::pauseEngineIntern(bool pause) { + Engine::pauseEngineIntern(pause); + if (pause) { + if (_pauseStartTime == -1) + _pauseStartTime = readclock(); + } else { + if (_pauseStartTime != -1) { + int pauseEndTime = readclock(); + _currentTime += (pauseEndTime - _pauseStartTime); + if (_uptodatePresence) + _startTime += (pauseEndTime - _pauseStartTime); + } + _pauseStartTime = -1; + } +} + /** * Initialize the game state */ -- cgit v1.2.3