diff options
Diffstat (limited to 'engines/gob/save/savehandler.cpp')
-rw-r--r-- | engines/gob/save/savehandler.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/engines/gob/save/savehandler.cpp b/engines/gob/save/savehandler.cpp index 4e2c09bdca..5f24115a6c 100644 --- a/engines/gob/save/savehandler.cpp +++ b/engines/gob/save/savehandler.cpp @@ -229,6 +229,9 @@ int32 TempSpriteHandler::getSize() { } bool TempSpriteHandler::load(int16 dataVar, int32 size, int32 offset) { + if (isDummy(size)) + return true; + // Sprite available? if (!_sprite) return false; @@ -274,6 +277,9 @@ bool TempSpriteHandler::load(int16 dataVar, int32 size, int32 offset) { bool TempSpriteHandler::save(int16 dataVar, int32 size, int32 offset) { SurfaceDescPtr sprite; + if (isDummy(size)) + return true; + if (!createSprite(dataVar, size, offset, &sprite)) return false; @@ -320,6 +326,12 @@ bool TempSpriteHandler::createSprite(int16 dataVar, int32 size, return true; } +// A size of 0 means no proper sprite should be saved/loaded, +// but no error should be thrown either. +bool TempSpriteHandler::isDummy(int32 size) { + return (size == 0); +} + // A negative size is the flag for using a sprite bool TempSpriteHandler::isSprite(int32 size) { return (size < 0); |