diff options
author | Travis Howell | 2007-05-09 15:36:05 +0000 |
---|---|---|
committer | Travis Howell | 2007-05-09 15:36:05 +0000 |
commit | 20bf83a2ce1c19e81cd486b4af3b7b73bd25e510 (patch) | |
tree | 058454d1570cad4d4eeb6271eee27705d0578c6f /engines/agos/event.cpp | |
parent | 85082dc8a00b91689f2ab11494e9bdc1bed71578 (diff) | |
download | scummvm-rg350-20bf83a2ce1c19e81cd486b4af3b7b73bd25e510.tar.gz scummvm-rg350-20bf83a2ce1c19e81cd486b4af3b7b73bd25e510.tar.bz2 scummvm-rg350-20bf83a2ce1c19e81cd486b4af3b7b73bd25e510.zip |
Imrproved support for Elvira 1/2 and Waxworks.
svn-id: r26792
Diffstat (limited to 'engines/agos/event.cpp')
-rw-r--r-- | engines/agos/event.cpp | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/engines/agos/event.cpp b/engines/agos/event.cpp index 93ab997e64..579837833d 100644 --- a/engines/agos/event.cpp +++ b/engines/agos/event.cpp @@ -123,6 +123,7 @@ void AGOSEngine::killAllTimers() { next = cur->next; delTimeEvent(cur); } + _clickOnly = 0; } bool AGOSEngine::kickoffTimeEvents() { @@ -164,32 +165,30 @@ bool AGOSEngine::isVgaQueueEmpty() { } void AGOSEngine::haltAnimation() { - VgaTimerEntry *vte = _vgaTimerList; + if (_lockWord & 0x10) + return; _lockWord |= 0x10; - while (vte->delay) { - vte->delay += 10; + if (_updateScreen != false) { + updateScreen(); + _updateScreen = false; } } void AGOSEngine::restartAnimation() { + if (!(_lockWord & 0x10)) + return; + + updateScreen(); _lockWord &= ~0x10; + + // Check picture queue } void AGOSEngine::addVgaEvent(uint16 num, const byte *code_ptr, uint16 cur_sprite, uint16 curZoneNum) { VgaTimerEntry *vte; - // When Simon talks to the Golum about stew in French version of - // Simon the Sorcerer 1 the code_ptr is at wrong location for - // sprite 200. This was a bug in the original game, which - // caused several glitches in this scene. - // We work around the problem by correcting the code_ptr for sprite - // 200 in this scene, if it is wrong. - if (getGameType() == GType_SIMON1 && _language == Common::FR_FRA && - (code_ptr - _vgaBufferPointers[curZoneNum].vgaFile1 == 4) && (cur_sprite == 200) && (curZoneNum == 2)) - code_ptr += 0x66; - _lockWord |= 1; for (vte = _vgaTimerList; vte->delay; vte++) { |