diff options
Diffstat (limited to 'engines/agos/script_s1.cpp')
-rw-r--r-- | engines/agos/script_s1.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/engines/agos/script_s1.cpp b/engines/agos/script_s1.cpp index 61a4614971..61017586f8 100644 --- a/engines/agos/script_s1.cpp +++ b/engines/agos/script_s1.cpp @@ -79,14 +79,19 @@ void AGOSEngine::o1_rescan() { void AGOSEngine::o1_animate() { // 98: start vga - uint vga_res, vgaSpriteId, windowNum, x, y, palette; - vgaSpriteId = getVarOrWord(); - vga_res = vgaSpriteId / 100; - windowNum = getVarOrByte(); - x = getVarOrWord(); - y = getVarOrWord(); - palette = getVarOrWord(); - loadSprite(windowNum, vga_res, vgaSpriteId, x, y, palette); + uint vgaSpriteId = getVarOrWord(); + uint windowNum = getVarOrByte(); + uint x = getVarOrWord(); + uint y = getVarOrWord(); + uint palette = getVarOrWord(); + + if (getGameType() == GType_SIMON1 && (getFeatures() & GF_TALKIE) && vgaSpriteId >= 400) { + _lastVgaWaitFor = 0; + } + + _lockWord |= 0x40; + animate(windowNum, vgaSpriteId / 100, vgaSpriteId, x, y, palette); + _lockWord &= ~0x40; } void AGOSEngine::o1_stopAnimate() { |