[Scummvm-tracker] [ScummVM :: Bugs] #13997: AGOS: SIMON2: Character animation regression at MucSwamplings
ScummVM :: Bugs
trac at scummvm.org
Mon Jan 23 20:02:41 UTC 2023
#13997: AGOS: SIMON2: Character animation regression at MucSwamplings
---------------------------------------+-----------------------------------
Reporter: dwatteau | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Engine: AGOS
Version: | Resolution:
Keywords: glitch,character animation | Game: Simon the Sorcerer 2
---------------------------------------+-----------------------------------
Comment (by BLooperZ):
Seems the following workaround resolves it, but I can't figure out why
{{{
diff --git a/engines/agos/vga.cpp b/engines/agos/vga.cpp
index 3c79f9d3b40..132456b5b8a 100644
--- a/engines/agos/vga.cpp
+++ b/engines/agos/vga.cpp
@@ -801,7 +801,7 @@ void AGOSEngine::vc15_sync() {
}
}
- if (id != 200)
+ if (id != 200 || _lastVgaWaitFor == 1150)
_lastVgaWaitFor = id;
/* clear a wait event */
if (id == _vgaWaitFor)
}}}
So far, the problem fixed in the linked bug #5856 happens because
WAIT_SYNC 2417 called after SYNC 2417 was already set, but is overshadowed
by immediately previous WAIT_SYNC 200, which is ignored in
`AGOSEngine::waitForSync` so it seems safe, when disabling the guard in
the change above completely, the glitch does not occur, but the pirate
dialogue freezes again.
During my attempts I have tried using several data structures to keep
track on previous values and restore them, but none of those attempts
works.
--
Ticket URL: <https://bugs.scummvm.org/ticket/13997#comment:1>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list