aboutsummaryrefslogtreecommitdiff
path: root/engines/wintermute/base/base_file_manager.cpp
diff options
context:
space:
mode:
authorlolbot-iichan2019-07-14 21:48:46 +0300
committerFilippos Karapetis2019-07-16 20:24:42 +0300
commit9eca2b4c549a6e20c351b6ced4442d36f7601964 (patch)
tree1fdf9d95498066d66ad13f32145f38224c3eb70b /engines/wintermute/base/base_file_manager.cpp
parenta96d127b1f07db20f66e74ae3011cc643ba7a9bd (diff)
downloadscummvm-rg350-9eca2b4c549a6e20c351b6ced4442d36f7601964.tar.gz
scummvm-rg350-9eca2b4c549a6e20c351b6ced4442d36f7601964.tar.bz2
scummvm-rg350-9eca2b4c549a6e20c351b6ced4442d36f7601964.zip
WINTERMUTE: Implement saving files using SavefileManager
Diffstat (limited to 'engines/wintermute/base/base_file_manager.cpp')
-rw-r--r--engines/wintermute/base/base_file_manager.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/engines/wintermute/base/base_file_manager.cpp b/engines/wintermute/base/base_file_manager.cpp
index 16ae85f41d..7ae499e368 100644
--- a/engines/wintermute/base/base_file_manager.cpp
+++ b/engines/wintermute/base/base_file_manager.cpp
@@ -29,6 +29,7 @@
#include "engines/wintermute/base/base_file_manager.h"
#include "engines/wintermute/base/base_persistence_manager.h"
#include "engines/wintermute/base/file/base_disk_file.h"
+#include "engines/wintermute/base/file/base_savefile_manager_file.h"
#include "engines/wintermute/base/file/base_save_thumb_file.h"
#include "engines/wintermute/base/file/base_package.h"
#include "engines/wintermute/base/base_engine.h"
@@ -355,6 +356,17 @@ Common::SeekableReadStream *BaseFileManager::openFile(const Common::String &file
//////////////////////////////////////////////////////////////////////////
+Common::WriteStream *BaseFileManager::openFileForWrite(const Common::String &filename) {
+ if (strcmp(filename.c_str(), "") == 0) {
+ return nullptr;
+ }
+ debugC(kWintermuteDebugFileAccess, "Open file %s for write", filename.c_str());
+
+ return openFileForWriteRaw(filename);
+}
+
+
+//////////////////////////////////////////////////////////////////////////
bool BaseFileManager::closeFile(Common::SeekableReadStream *File) {
for (uint32 i = 0; i < _openFiles.size(); i++) {
if (_openFiles[i] == File) {
@@ -404,6 +416,19 @@ Common::SeekableReadStream *BaseFileManager::openFileRaw(const Common::String &f
return nullptr;
}
+//////////////////////////////////////////////////////////////////////////
+Common::WriteStream *BaseFileManager::openFileForWriteRaw(const Common::String &filename) {
+ Common::WriteStream *ret = nullptr;
+
+ ret = openSfmFileForWrite(filename);
+ if (ret) {
+ return ret;
+ }
+
+ debugC(kWintermuteDebugFileAccess ,"BFileManager::OpenFileRaw - Failed to open %s", filename.c_str());
+ return nullptr;
+}
+
BaseFileManager *BaseFileManager::getEngineInstance() {
if (BaseEngine::instance().getFileManager()) {
return BaseEngine::instance().getFileManager();