aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/utils.cpp
diff options
context:
space:
mode:
authorMartin Kiewitz2013-12-04 20:42:50 +0100
committerMartin Kiewitz2013-12-04 20:42:50 +0100
commiteaf6367bb26b95af7e27ebbbb090664a3ad04e65 (patch)
treef4acee388f2591f0cfa0848aa337f9cca5733c0d /engines/fullpipe/utils.cpp
parent8bdffcb2fb7aefc96aa10fde1bebd372233cac9d (diff)
parent203f562d375ac5c7cc665c8feac4020f8de2a5ff (diff)
downloadscummvm-rg350-eaf6367bb26b95af7e27ebbbb090664a3ad04e65.tar.gz
scummvm-rg350-eaf6367bb26b95af7e27ebbbb090664a3ad04e65.tar.bz2
scummvm-rg350-eaf6367bb26b95af7e27ebbbb090664a3ad04e65.zip
Merge branch 'master' of github.com:scummvm/scummvm
Diffstat (limited to 'engines/fullpipe/utils.cpp')
-rw-r--r--engines/fullpipe/utils.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/engines/fullpipe/utils.cpp b/engines/fullpipe/utils.cpp
index 3304a93667..3a65801951 100644
--- a/engines/fullpipe/utils.cpp
+++ b/engines/fullpipe/utils.cpp
@@ -148,7 +148,16 @@ bool MemoryObject::load(MfcArchive &file) {
void MemoryObject::loadFile(char *filename) {
debug(5, "MemoryObject::loadFile(<%s>)", filename);
+
+ if (!*filename)
+ return;
+
if (!_data) {
+ NGIArchive *arr = g_fullpipe->_currArchive;
+
+ if (g_fullpipe->_currArchive != _libHandle && _libHandle)
+ g_fullpipe->_currArchive = _libHandle;
+
Common::SeekableReadStream *s = g_fullpipe->_currArchive->createReadStreamForMember(filename);
if (s) {
@@ -161,7 +170,11 @@ void MemoryObject::loadFile(char *filename) {
s->read(_data, _dataSize);
delete s;
+ } else {
+ warning("MemoryObject::loadFile(): reading failure");
}
+
+ g_fullpipe->_currArchive = arr;
}
}
@@ -181,6 +194,8 @@ byte *MemoryObject::loadData() {
}
void MemoryObject::freeData() {
+ debug(8, "MemoryObject::freeData(): file: %s", _memfilename);
+
if (_data)
free(_data);