diff options
author | Johannes Schickel | 2008-04-23 18:57:21 +0000 |
---|---|---|
committer | Johannes Schickel | 2008-04-23 18:57:21 +0000 |
commit | 6ca9b8f91de8e8bc3d53e92be2f8ec9e38db96e0 (patch) | |
tree | 097d37f6429996f93dac22111c97c04626ab1892 /engines | |
parent | 1a6bd23780b46cdeb54372f0625545259358f84d (diff) | |
download | scummvm-rg350-6ca9b8f91de8e8bc3d53e92be2f8ec9e38db96e0.tar.gz scummvm-rg350-6ca9b8f91de8e8bc3d53e92be2f8ec9e38db96e0.tar.bz2 scummvm-rg350-6ca9b8f91de8e8bc3d53e92be2f8ec9e38db96e0.zip |
- Fixed possible memory leak.
- Corrected processNewShape implementation.
svn-id: r31671
Diffstat (limited to 'engines')
-rw-r--r-- | engines/kyra/kyra_v2.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/engines/kyra/kyra_v2.cpp b/engines/kyra/kyra_v2.cpp index 4ee81eb070..93dfc73109 100644 --- a/engines/kyra/kyra_v2.cpp +++ b/engines/kyra/kyra_v2.cpp @@ -1255,7 +1255,7 @@ void KyraEngine_v2::runTemporaryScript(const char *filename, int unk1, int unk2, memset(&_temporaryScriptState, 0, sizeof(_temporaryScriptState)); if (!_scriptInterpreter->loadScript(filename, &_temporaryScriptData, &_opcodesTemporary)) - error("couldn't load temporary script '%s'", filename); + error("Couldn't load temporary script '%s'", filename); _scriptInterpreter->initScript(&_temporaryScriptState, &_temporaryScriptData); _scriptInterpreter->startScript(&_temporaryScriptState, 0); @@ -1274,8 +1274,10 @@ void KyraEngine_v2::runTemporaryScript(const char *filename, int unk1, int unk2, fileData = _newShapeFiledata; - if (!fileData) + if (!fileData) { + _scriptInterpreter->unloadScript(&_temporaryScriptData); return; + } if (newShapes) _newShapeCount = initNewShapes(fileData); @@ -1658,9 +1660,7 @@ void KyraEngine_v2::processNewShapes(int unk1, int unk2) { uint32 delayEnd = _system->getMillis() + _newShapeDelay * _tickLength; - while (!skipFlag() && _system->getMillis() < delayEnd) { - // XXX skipFlag handling, unk1 seems to make a scene not skipable - + while ((!skipFlag() || unk1) && _system->getMillis() < delayEnd) { if (_chatText) updateWithText(); else @@ -1668,6 +1668,9 @@ void KyraEngine_v2::processNewShapes(int unk1, int unk2) { delay(10); } + + if (skipFlag()) + resetSkipFlag(); } if (unk2) { |