diff options
author | Kari Salminen | 2008-07-07 22:02:01 +0000 |
---|---|---|
committer | Kari Salminen | 2008-07-07 22:02:01 +0000 |
commit | e74d01a59a17894a85723db3b9af4dacac659336 (patch) | |
tree | cd88db57ea7c9ac0f5dc20ccef07c1dab91bc1a5 /engines | |
parent | aee23f36a2b0ed26588c40d96ef0eee53c482d75 (diff) | |
download | scummvm-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
Diffstat (limited to 'engines')
-rw-r--r-- | engines/cine/gfx.cpp | 11 |
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); |