diff options
author | Johannes Schickel | 2008-02-09 15:33:04 +0000 |
---|---|---|
committer | Johannes Schickel | 2008-02-09 15:33:04 +0000 |
commit | 5438bf2e9c07156e60c283cacc5b5cf373a85ab5 (patch) | |
tree | dd9d7c62c627fb0dbefac669595ab29809f290d9 /engines/kyra | |
parent | 15f798d48a9a6a4903b8db73eedbcbfdb61dcf85 (diff) | |
download | scummvm-rg350-5438bf2e9c07156e60c283cacc5b5cf373a85ab5.tar.gz scummvm-rg350-5438bf2e9c07156e60c283cacc5b5cf373a85ab5.tar.bz2 scummvm-rg350-5438bf2e9c07156e60c283cacc5b5cf373a85ab5.zip |
Changed some asserts to errors.
svn-id: r30836
Diffstat (limited to 'engines/kyra')
-rw-r--r-- | engines/kyra/resource.cpp | 31 |
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; } |