aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Schickel2008-02-09 15:33:04 +0000
committerJohannes Schickel2008-02-09 15:33:04 +0000
commit5438bf2e9c07156e60c283cacc5b5cf373a85ab5 (patch)
treedd9d7c62c627fb0dbefac669595ab29809f290d9
parent15f798d48a9a6a4903b8db73eedbcbfdb61dcf85 (diff)
downloadscummvm-rg350-5438bf2e9c07156e60c283cacc5b5cf373a85ab5.tar.gz
scummvm-rg350-5438bf2e9c07156e60c283cacc5b5cf373a85ab5.tar.bz2
scummvm-rg350-5438bf2e9c07156e60c283cacc5b5cf373a85ab5.zip
Changed some asserts to errors.
svn-id: r30836
-rw-r--r--engines/kyra/resource.cpp31
1 files changed, 18 insertions, 13 deletions
diff --git a/engines/kyra/resource.cpp b/engines/kyra/resource.cpp
index 049c51727e..dabdf6736a 100644
--- a/engines/kyra/resource.cpp
+++ b/engines/kyra/resource.cpp
@@ -132,30 +132,35 @@ bool Resource::loadPakFile(const Common::String &filename) {
if (iter == _map.end())
return false;
- iter->_value.loadable = true;
+ if (iter->_value.preload)
+ return true;
- if (!isAccessable(filename))
+ const ResArchiveLoader *loader = getLoader(iter->_value.type);
+ if (!loader) {
+ error("no archive loader for file '%s' found which is of type %d", filename.c_str(), iter->_value.type);
return false;
+ }
- if (iter->_value.preload)
- return true;
+ iter->_value.loadable = true;
- Common::SeekableReadStream *stream = getFileStream(filename);
- assert(stream);
+ if (!isAccessable(filename)) {
+ iter->_value.loadable = false;
+ return false;
+ }
- const ResArchiveLoader *loader = getLoader(iter->_value.type);
- assert(loader);
+ Common::SeekableReadStream *stream = getFileStream(filename);
+ if (!stream) {
+ iter->_value.loadable = false;
+ error("archive file '%s' not found", filename.c_str());
+ return false;
+ }
+ iter->_value.preload = true;
loader->loadFile(filename, *stream, _map);
delete stream;
stream = 0;
- iter = _map.find(filename);
- if (iter == _map.end())
- return false;
- iter->_value.preload = true;
detectFileTypes();
-
return true;
}