diff options
author | Willem Jan Palenstijn | 2011-03-02 00:48:21 +0100 |
---|---|---|
committer | Willem Jan Palenstijn | 2011-03-02 00:48:21 +0100 |
commit | bc48b124f05f0f602d80bf26eecc1f7237c83da3 (patch) | |
tree | 1d85ea88a297e7b829020cde9cb18d95a371b8f4 /engines | |
parent | acb9879bb1d2efdeae261653f03f034e1cb0ba14 (diff) | |
download | scummvm-rg350-bc48b124f05f0f602d80bf26eecc1f7237c83da3.tar.gz scummvm-rg350-bc48b124f05f0f602d80bf26eecc1f7237c83da3.tar.bz2 scummvm-rg350-bc48b124f05f0f602d80bf26eecc1f7237c83da3.zip |
SCI: Change workaround for hoyle3-demo's rendering order
This behaviour much more closely matches SSCI.
Diffstat (limited to 'engines')
-rw-r--r-- | engines/sci/graphics/animate.cpp | 9 | ||||
-rw-r--r-- | engines/sci/graphics/ports.cpp | 8 |
2 files changed, 8 insertions, 9 deletions
diff --git a/engines/sci/graphics/animate.cpp b/engines/sci/graphics/animate.cpp index d8dd43afb1..e02b27c788 100644 --- a/engines/sci/graphics/animate.cpp +++ b/engines/sci/graphics/animate.cpp @@ -352,14 +352,7 @@ void GfxAnimate::update() { it->signal &= ~(kSignalViewUpdated | kSignalNoUpdate); } else if (it->signal & kSignalStopUpdate) { it->signal &= ~kSignalStopUpdate; - if (g_sci->getGameId() == GID_HOYLE3 && g_sci->isDemo()) { - // WORKAROUND: The demo of Hoyle 3 doesn't seem to set this - // flag in this case. Not setting this fixes a large number - // of incorrect animate entries being drawn on top of dialog - // boxes (bug #3036763) - } else { - it->signal |= kSignalNoUpdate; - } + it->signal |= kSignalNoUpdate; } } diff --git a/engines/sci/graphics/ports.cpp b/engines/sci/graphics/ports.cpp index 9aa539a29a..6d5268625c 100644 --- a/engines/sci/graphics/ports.cpp +++ b/engines/sci/graphics/ports.cpp @@ -304,7 +304,13 @@ Window *GfxPorts::addWindow(const Common::Rect &dims, const Common::Rect *restor } _windowsById[id] = pwnd; - if (style & SCI_WINDOWMGR_STYLE_TOPMOST) + + + // Hoyle3-demo's NewWindow always adds windows to the back of the list. + // TODO: Determine if other interpreters do the same. + bool _forceToBack = (g_sci->getGameId() == GID_HOYLE3 && g_sci->isDemo()); + + if (!_forceToBack && (style & SCI_WINDOWMGR_STYLE_TOPMOST)) _windowList.push_front(pwnd); else _windowList.push_back(pwnd); |