aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/script_s1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/agos/script_s1.cpp')
-rw-r--r--engines/agos/script_s1.cpp21
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() {