From 5926936a07f2614694ff3340f3a3ebcd74c782be Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 13 Apr 2018 07:29:54 -0400 Subject: XEEN: Fix clipping all scene drawn elements to scene area --- engines/xeen/interface_scene.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'engines/xeen') 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()); -- cgit v1.2.3