aboutsummaryrefslogtreecommitdiff
path: root/engines/wintermute/base/base_file_manager.cpp
diff options
context:
space:
mode:
authorEinar Johan Trøan Sømåen2013-01-28 09:19:57 +0100
committerEinar Johan Trøan Sømåen2013-01-28 09:20:14 +0100
commit9eff1e514fbcd9e48d6cc7a590661a2fbba3534d (patch)
tree05d52b615073207db6a7d0e4499329ab0de2919c /engines/wintermute/base/base_file_manager.cpp
parent1bab59aa069d142cc90b7f0ed93f96219a76ec22 (diff)
downloadscummvm-rg350-9eff1e514fbcd9e48d6cc7a590661a2fbba3534d.tar.gz
scummvm-rg350-9eff1e514fbcd9e48d6cc7a590661a2fbba3534d.tar.bz2
scummvm-rg350-9eff1e514fbcd9e48d6cc7a590661a2fbba3534d.zip
WINTERMUTE: Move Resources out of binary and into wintermute.zip
Diffstat (limited to 'engines/wintermute/base/base_file_manager.cpp')
-rw-r--r--engines/wintermute/base/base_file_manager.cpp22
1 files changed, 19 insertions, 3 deletions
diff --git a/engines/wintermute/base/base_file_manager.cpp b/engines/wintermute/base/base_file_manager.cpp
index 3815440bcc..08358f9033 100644
--- a/engines/wintermute/base/base_file_manager.cpp
+++ b/engines/wintermute/base/base_file_manager.cpp
@@ -31,7 +31,6 @@
#include "engines/wintermute/base/file/base_disk_file.h"
#include "engines/wintermute/base/file/base_save_thumb_file.h"
#include "engines/wintermute/base/file/base_package.h"
-#include "engines/wintermute/base/file/base_resources.h"
#include "engines/wintermute/base/base_engine.h"
#include "engines/wintermute/wintermute.h"
#include "common/debug.h"
@@ -45,6 +44,7 @@
#include "common/file.h"
#include "common/savefile.h"
#include "common/fs.h"
+#include "common/unzip.h"
namespace Wintermute {
@@ -55,6 +55,8 @@ namespace Wintermute {
//////////////////////////////////////////////////////////////////////
BaseFileManager::BaseFileManager(Common::Language lang) {
_language = lang;
+ _resources = nullptr;
+ initResources();
initPaths();
registerPackages();
}
@@ -79,6 +81,10 @@ bool BaseFileManager::cleanup() {
// delete packages
_packages.clear();
+ // get rid of the resources:
+ delete _resources;
+ _resources = NULL;
+
return STATUS_OK;
}
@@ -224,6 +230,16 @@ bool BaseFileManager::registerPackage(Common::FSNode file, const Common::String
return STATUS_OK;
}
+void BaseFileManager::initResources() {
+ _resources = Common::makeZipArchive("wintermute.zip");
+ if (!_resources) {
+ error("Couldn't load wintermute.zip");
+ }
+ assert(_resources->hasFile("syste_font.bmp"));
+ assert(_resources->hasFile("invalid.bmp"));
+ assert(_resources->hasFile("invalid_debug.bmp"));
+}
+
//////////////////////////////////////////////////////////////////////////
Common::SeekableReadStream *BaseFileManager::openPkgFile(const Common::String &filename) {
Common::String upcName = filename;
@@ -261,7 +277,7 @@ bool BaseFileManager::hasFile(const Common::String &filename) {
if (_packages.hasFile(filename)) {
return true; // We don't bother checking if the file can actually be opened, something bigger is wrong if that is the case.
}
- if (BaseResources::hasFile(filename)) {
+ if (_resources->hasFile(filename)) {
return true;
}
return false;
@@ -321,7 +337,7 @@ Common::SeekableReadStream *BaseFileManager::openFileRaw(const Common::String &f
return ret;
}
- ret = BaseResources::getFile(filename);
+ ret = _resources->createReadStreamForMember(filename);
if (ret) {
return ret;
}