diff options
author | Johannes Schickel | 2008-05-23 13:37:56 +0000 |
---|---|---|
committer | Johannes Schickel | 2008-05-23 13:37:56 +0000 |
commit | 18b3e3a4ba09a886e7ad78c5b3d17ece3ee97940 (patch) | |
tree | f9c01c2422aec50299c27a908f16093f787d1b37 /engines/kyra/kyra_v2.cpp | |
parent | ad6f12683f5a4e64af63b619850e71dd56550089 (diff) | |
download | scummvm-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.cpp | 17 |
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); |