[Scummvm-cvs-logs] scummvm master -> 8b391399cc89441adb119c0afe33d4d26b620a5d
lordhoto
lordhoto at gmail.com
Mon Jan 16 17:08:10 CET 2012
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
8b391399cc KYRA: Fix for bug #3474339 "KYRA1CD: Ingame animation missing".
Commit: 8b391399cc89441adb119c0afe33d4d26b620a5d
https://github.com/scummvm/scummvm/commit/8b391399cc89441adb119c0afe33d4d26b620a5d
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2012-01-16T08:06:28-08:00
Commit Message:
KYRA: Fix for bug #3474339 "KYRA1CD: Ingame animation missing".
This was a regression from 6a3d0e712940bf4560e5302c40f07f5f6eb8e0aa.
This still assures that the workaround for bug #1498221 works.
Changed paths:
engines/kyra/kyra_lok.cpp
engines/kyra/script_lok.cpp
diff --git a/engines/kyra/kyra_lok.cpp b/engines/kyra/kyra_lok.cpp
index 74db67d..d7e7957 100644
--- a/engines/kyra/kyra_lok.cpp
+++ b/engines/kyra/kyra_lok.cpp
@@ -510,14 +510,10 @@ void KyraEngine_LoK::delay(uint32 amount, bool update, bool isMainLoop) {
updateTextFade();
updateMousePointer();
} else {
- // We call OSystem::updateScreen here and not Screen::updateScreen
- // to avoid new graphics changes to be copied to the screen.
- // This assures the workaround of bug #1498221
- // "KYRA1: Glitches when meeting Zanthia" is working correctly.
- // Since we only call updateScreen here to let systems with frame
- // update count limitations not miss any graphics updates it
- // should not cause any problems.
- _system->updateScreen();
+ // We need to do Screen::updateScreen here, since client code
+ // relies on this method to copy screen changes to the actual
+ // screen since at least 0af418e7ea3a41f93fcc551a45ee5bae822d812a.
+ _screen->updateScreen();
}
_isSaveAllowed = isMainLoop;
diff --git a/engines/kyra/script_lok.cpp b/engines/kyra/script_lok.cpp
index 135925a..8342bcc 100644
--- a/engines/kyra/script_lok.cpp
+++ b/engines/kyra/script_lok.cpp
@@ -720,14 +720,19 @@ int KyraEngine_LoK::o1_displayWSASequentialFrames(EMCState *script) {
if (maxTime - 1 <= 0)
maxTime = 1;
- // Workaround for bug #1498221 "KYRA1: Glitches when meeting Zanthia"
- // the original didn't do a forced screen update after displaying a wsa frame
- // while we have to do it, which make brandon disappear for a short moment,
- // what shouldn't happen. So we're not updating the screen for this special
- // case too.
- if (startFrame == 18 && endFrame == 18 && _currentRoom == 45) {
+ // WORKAROUND for bug #1498221 "KYRA1: Glitches when meeting Zanthia".
+ // The original did not do a forced screen update after displaying a WSA
+ // frame while we have to do it, which makes Brandon disappear for a short
+ // moment. That is not supposed to happen. So we're not updating the
+ // screen for this special case.
+ // This is only an issue for the CD version, but since the floppy version
+ // does not use the specified paramaeters like these, it is safe to enable
+ // it for all versions.
+ if (startFrame == 18 && endFrame == 18 && waitTime == 10 && wsaIndex == 0 && _currentRoom == 45) {
_movieObjects[wsaIndex]->displayFrame(18, 0, xpos, ypos, 0, 0, 0);
- delay(waitTime * _tickLength);
+ // We call delayMillis manually here to avoid the screen getting
+ // updated.
+ _system->delayMillis(waitTime * _tickLength);
return 0;
}
More information about the Scummvm-git-logs
mailing list