aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/support/files_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic/support/files_manager.cpp')
-rw-r--r--engines/titanic/support/files_manager.cpp15
1 files changed, 7 insertions, 8 deletions
diff --git a/engines/titanic/support/files_manager.cpp b/engines/titanic/support/files_manager.cpp
index 04928b96d6..3ee17e9769 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;
@@ -103,8 +104,9 @@ void CFilesManager::loadDrive() {
resetView();
}
-void CFilesManager::debug(CScreenManager *screenManager) {
- warning("TODO: CFilesManager::debug");
+void CFilesManager::insertCD(CScreenManager *screenManager) {
+ // We not support running game directly from the original CDs,
+ // so this method can remain stubbed
}
void CFilesManager::resetView() {
@@ -114,10 +116,6 @@ void CFilesManager::resetView() {
}
}
-void CFilesManager::fn4(const CString &name) {
- warning("TODO: CFilesManager::fn4");
-}
-
void CFilesManager::preload(const CString &name) {
// We don't currently do any preloading of resources
}
@@ -126,7 +124,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