From bad86050148fc4debfce6bac2e56910a53a9785d Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 20 Aug 2016 21:53:10 -0400 Subject: TITANIC: Fix opening empty resources from the DAT file --- engines/titanic/support/files_manager.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'engines/titanic/support') diff --git a/engines/titanic/support/files_manager.cpp b/engines/titanic/support/files_manager.cpp index 04928b96d6..89e0a1d10e 100644 --- a/engines/titanic/support/files_manager.cpp +++ b/engines/titanic/support/files_manager.cpp @@ -21,6 +21,7 @@ */ #include "common/file.h" +#include "common/memstream.h" #include "titanic/support/files_manager.h" #include "titanic/game_manager.h" @@ -51,7 +52,7 @@ void CFilesManager::loadResourceIndex() { for (;;) { offset = _datFile.readUint32LE(); size = _datFile.readUint32LE(); - if (size == 0) + if (offset == 0 && size == 0) break; Common::String resName; @@ -126,7 +127,8 @@ Common::SeekableReadStream *CFilesManager::getResource(const CString &str) { ResourceEntry resEntry = _resources[str]; _datFile.seek(resEntry._offset); - return _datFile.readStream(resEntry._size); + return (resEntry._size > 0) ? _datFile.readStream(resEntry._size) : + new Common::MemoryReadStream(nullptr, 0); } } // End of namespace Titanic -- cgit v1.2.3