aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/kyra_v2.cpp
diff options
context:
space:
mode:
authorJohannes Schickel2008-05-23 13:37:56 +0000
committerJohannes Schickel2008-05-23 13:37:56 +0000
commit18b3e3a4ba09a886e7ad78c5b3d17ece3ee97940 (patch)
treef9c01c2422aec50299c27a908f16093f787d1b37 /engines/kyra/kyra_v2.cpp
parentad6f12683f5a4e64af63b619850e71dd56550089 (diff)
downloadscummvm-rg350-18b3e3a4ba09a886e7ad78c5b3d17ece3ee97940.tar.gz
scummvm-rg350-18b3e3a4ba09a886e7ad78c5b3d17ece3ee97940.tar.bz2
scummvm-rg350-18b3e3a4ba09a886e7ad78c5b3d17ece3ee97940.zip
- Added a simple (but yet better) implementation of pauseEngineIntern for Kyra_v1 and Kyra_v2
- Added comments about what game specific details are missing in the pause implementation svn-id: r32231
Diffstat (limited to 'engines/kyra/kyra_v2.cpp')
-rw-r--r--engines/kyra/kyra_v2.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/engines/kyra/kyra_v2.cpp b/engines/kyra/kyra_v2.cpp
index e987496ddb..054fab4569 100644
--- a/engines/kyra/kyra_v2.cpp
+++ b/engines/kyra/kyra_v2.cpp
@@ -68,6 +68,8 @@ KyraEngine_v2::KyraEngine_v2(OSystem *system, const GameFlags &flags, const Engi
memset(&_mainCharacter, 0, sizeof(_mainCharacter));
memset(&_mainCharacter.inventory, -1, sizeof(_mainCharacter.inventory));
+
+ _pauseStart = 0;
}
KyraEngine_v2::~KyraEngine_v2() {
@@ -93,6 +95,21 @@ KyraEngine_v2::~KyraEngine_v2() {
delete[] _screenBuffer;
}
+void KyraEngine_v2::pauseEngineIntern(bool pause) {
+ KyraEngine_v1::pauseEngineIntern(pause);
+
+ if (!pause) {
+ for (int i = 0; i < ARRAYSIZE(_sceneSpecialScriptsTimer); ++i) {
+ if (_sceneSpecialScriptsTimer[i])
+ _sceneSpecialScriptsTimer[i] += _pauseStart;
+ }
+
+ _pauseStart = 0;
+ } else {
+ _pauseStart = _system->getMillis();
+ }
+}
+
void KyraEngine_v2::delay(uint32 amount, bool updateGame, bool isMainLoop) {
debugC(9, kDebugLevelMain, "KyraEngine_v2::delay(%u, %d, %d)", amount, updateGame, isMainLoop);