aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/interface_scene.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2018-04-13 07:29:54 -0400
committerPaul Gilbert2018-04-13 07:29:54 -0400
commit5926936a07f2614694ff3340f3a3ebcd74c782be (patch)
treecb84149ab8eea77dce4cc0f8ea59f46ecd349a7c /engines/xeen/interface_scene.cpp
parentf102f9961b3477faaf9f41453672d534392495eb (diff)
downloadscummvm-rg350-5926936a07f2614694ff3340f3a3ebcd74c782be.tar.gz
scummvm-rg350-5926936a07f2614694ff3340f3a3ebcd74c782be.tar.bz2
scummvm-rg350-5926936a07f2614694ff3340f3a3ebcd74c782be.zip
XEEN: Fix clipping all scene drawn elements to scene area
Diffstat (limited to 'engines/xeen/interface_scene.cpp')
-rw-r--r--engines/xeen/interface_scene.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/engines/xeen/interface_scene.cpp b/engines/xeen/interface_scene.cpp
index 2fcb378537..81a597ac86 100644
--- a/engines/xeen/interface_scene.cpp
+++ b/engines/xeen/interface_scene.cpp
@@ -4378,6 +4378,10 @@ void InterfaceScene::drawIndoors() {
_indoorList._ground._flags = _flipDefaultGround ? SPRFLAG_HORIZ_FLIPPED : 0;
_indoorList._horizon._frame = 7;
+ // FIXME: I seem to be missing the scene area clipping flag on some list entries
+ for (int idx = 0; idx < _indoorList.size(); ++idx)
+ _indoorList[idx]._flags |= SPRFLAG_SCENE_CLIPPED;
+
// Finally draw the darn indoor scene
windows[3].drawList(&_indoorList[0], _indoorList.size());
@@ -4459,6 +4463,11 @@ void InterfaceScene::drawOutdoors() {
_outdoorList._sky1._flags = _outdoorList._sky2._flags = _flipSky ? SPRFLAG_HORIZ_FLIPPED : 0;
_outdoorList._groundSprite._flags = _flipWater ? SPRFLAG_HORIZ_FLIPPED : 0;
+ // FIXME: I seem to be missing the scene area clipping flag on some list entries.
+ // Just re-flagging them all in a loop is simpler than hunting down the missing entries
+ for (int idx = 0; idx < _outdoorList.size(); ++idx)
+ _outdoorList[idx]._flags |= SPRFLAG_SCENE_CLIPPED;
+
// Finally render the outdoor scene
windows[3].drawList(&_outdoorList[0], _outdoorList.size());