aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKari Salminen2008-07-07 22:02:01 +0000
committerKari Salminen2008-07-07 22:02:01 +0000
commite74d01a59a17894a85723db3b9af4dacac659336 (patch)
treecd88db57ea7c9ac0f5dc20ccef07c1dab91bc1a5
parentaee23f36a2b0ed26588c40d96ef0eee53c482d75 (diff)
downloadscummvm-rg350-e74d01a59a17894a85723db3b9af4dacac659336.tar.gz
scummvm-rg350-e74d01a59a17894a85723db3b9af4dacac659336.tar.bz2
scummvm-rg350-e74d01a59a17894a85723db3b9af4dacac659336.zip
Fix for bathroom door opening crash in Operation Stealth's start.
svn-id: r32951
-rw-r--r--engines/cine/gfx.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/engines/cine/gfx.cpp b/engines/cine/gfx.cpp
index 47446f2410..2b7f3b8890 100644
--- a/engines/cine/gfx.cpp
+++ b/engines/cine/gfx.cpp
@@ -969,6 +969,7 @@ void OSRenderer::drawBackground() {
/*! \brief Draw one overlay
* \param it Overlay info
+ * \todo Add handling of type 22 overlays
*/
void OSRenderer::renderOverlay(const Common::List<overlay>::iterator &it) {
int len;
@@ -979,6 +980,9 @@ void OSRenderer::renderOverlay(const Common::List<overlay>::iterator &it) {
switch (it->type) {
// color sprite
case 0:
+ if (objectTable[it->objIdx].frame < 0) {
+ break;
+ }
sprite = animDataTable + objectTable[it->objIdx].frame;
len = sprite->_realWidth * sprite->_height;
mask = new byte[len];
@@ -988,6 +992,13 @@ void OSRenderer::renderOverlay(const Common::List<overlay>::iterator &it) {
delete[] mask;
break;
+ // bitmap
+ case 4:
+ if (objectTable[it->objIdx].frame >= 0) {
+ FWRenderer::renderOverlay(it);
+ }
+ break;
+
// masked background
case 20:
assert(it->objIdx < NUM_MAX_OBJECT);