aboutsummaryrefslogtreecommitdiff
path: root/engines/mortevielle/mortevielle.cpp
diff options
context:
space:
mode:
authorThierry Crozat2013-09-01 22:04:20 +0100
committerThierry Crozat2013-09-01 22:04:30 +0100
commit8216e6dabfb2f460ff92fd7d04688fb0b34072fa (patch)
tree51b297efb6f6b2bcda5e481eb2d3c6682202ba56 /engines/mortevielle/mortevielle.cpp
parent3ab88c464aed6ec81f1b9596914b17ffb4e4ab99 (diff)
downloadscummvm-rg350-8216e6dabfb2f460ff92fd7d04688fb0b34072fa.tar.gz
scummvm-rg350-8216e6dabfb2f460ff92fd7d04688fb0b34072fa.tar.bz2
scummvm-rg350-8216e6dabfb2f460ff92fd7d04688fb0b34072fa.zip
MORTEVIELLE: Freeze clock in game when pausing the game
Diffstat (limited to 'engines/mortevielle/mortevielle.cpp')
-rw-r--r--engines/mortevielle/mortevielle.cpp20
1 files changed, 20 insertions, 0 deletions
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;
@@ -165,6 +166,25 @@ Common::String MortevielleEngine::generateSaveFilename(const Common::String &tar
}
/**
+ * 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
*/
Common::ErrorCode MortevielleEngine::initialize() {