aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/agos/res.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/engines/agos/res.cpp b/engines/agos/res.cpp
index 4d91d1a8e1..2631f7998e 100644
--- a/engines/agos/res.cpp
+++ b/engines/agos/res.cpp
@@ -802,7 +802,6 @@ void AGOSEngine::loadVGABeardFile(uint16 id) {
}
} else {
offs = _gameOffsetsPtr[id];
-
size = _gameOffsetsPtr[id + 1] - offs;
readGameFile(_vgaBufferPointers[11].vgaFile2, offs, size);
}
@@ -911,8 +910,16 @@ void AGOSEngine::loadVGAVideoFile(uint16 id, uint8 type, bool useError) {
} else {
id = id * 2 + (type - 1);
offs = _gameOffsetsPtr[id];
-
dstSize = _gameOffsetsPtr[id + 1] - offs;
+
+ if (!dstSize) {
+ if (useError)
+ error("loadVGAVideoFile: Can't load id %d type %d", id, type);
+
+ _block = _blockEnd = NULL;
+ return;
+ }
+
dst = allocBlock(dstSize + extraBuffer);
readGameFile(dst, offs, dstSize);
}