diff options
Diffstat (limited to 'engines/gob/draw_v2.cpp')
-rw-r--r-- | engines/gob/draw_v2.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/engines/gob/draw_v2.cpp b/engines/gob/draw_v2.cpp index db2d23ac39..b5f0981c27 100644 --- a/engines/gob/draw_v2.cpp +++ b/engines/gob/draw_v2.cpp @@ -755,18 +755,29 @@ void Draw_v2::spriteOperation(int16 operation) { case DRAW_LOADSPRITE: id = _spriteLeft; - if (id >= 30000) { - dataBuf = - _vm->_game->loadExtData(id, &_spriteRight, &_spriteBottom); + + if ((id >= 30000) || (_vm->_game->_lomHandle >= 0)) { + dataBuf = 0; + + if (_vm->_game->_lomHandle >= 0) + warning("Urban Stub: LOADSPRITE %d, LOM", id); + else + dataBuf = _vm->_game->loadExtData(id, &_spriteRight, &_spriteBottom); + + if (!dataBuf) + break; + _vm->_video->drawPackedSprite(dataBuf, _spriteRight, _spriteBottom, _destSpriteX, _destSpriteY, _transparency, _spritesArray[_destSurface]); dirtiedRect(_destSurface, _destSpriteX, _destSpriteY, _destSpriteX + _spriteRight - 1, _destSpriteY + _spriteBottom - 1); + delete[] dataBuf; break; } + // Load from .TOT resources itemPtr = &_vm->_game->_totResourceTable->items[id]; offset = itemPtr->offset; |