aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/event.cpp
diff options
context:
space:
mode:
authorTravis Howell2007-05-09 15:36:05 +0000
committerTravis Howell2007-05-09 15:36:05 +0000
commit20bf83a2ce1c19e81cd486b4af3b7b73bd25e510 (patch)
tree058454d1570cad4d4eeb6271eee27705d0578c6f /engines/agos/event.cpp
parent85082dc8a00b91689f2ab11494e9bdc1bed71578 (diff)
downloadscummvm-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.cpp25
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++) {