aboutsummaryrefslogtreecommitdiff
path: root/common/savefile.cpp
diff options
context:
space:
mode:
authorMax Horn2005-04-10 15:13:40 +0000
committerMax Horn2005-04-10 15:13:40 +0000
commite79c168d35d9c3633e3dfb618bd05466b0efc307 (patch)
treefe4fa01fd852546eaa3229f62069109d98eb8a67 /common/savefile.cpp
parente03861fdd4ca4cb676788c4ae4ea19647107fd6b (diff)
downloadscummvm-rg350-e79c168d35d9c3633e3dfb618bd05466b0efc307.tar.gz
scummvm-rg350-e79c168d35d9c3633e3dfb618bd05466b0efc307.tar.bz2
scummvm-rg350-e79c168d35d9c3633e3dfb618bd05466b0efc307.zip
split SaveFileManager::openSavefile and class SaveFile into two, each, one for loading and one for saving
svn-id: r17517
Diffstat (limited to 'common/savefile.cpp')
-rw-r--r--common/savefile.cpp24
1 files changed, 15 insertions, 9 deletions
diff --git a/common/savefile.cpp b/common/savefile.cpp
index 03b2eaa4e2..b6d4cf47b9 100644
--- a/common/savefile.cpp
+++ b/common/savefile.cpp
@@ -134,15 +134,16 @@ static void join_paths(const char *filename, const char *directory,
strncat(buf, filename, bufsize-1);
}
-SaveFile *DefaultSaveFileManager::openSavefile(const char *filename, bool saveOrLoad) {
+OutSaveFile *DefaultSaveFileManager::openForSaving(const char *filename) {
char buf[256];
join_paths(filename, getSavePath(), buf, sizeof(buf));
- SaveFile *sf = makeSaveFile(buf, saveOrLoad);
- if (!sf->isOpen()) {
- delete sf;
- sf = 0;
- }
- return sf;
+ return makeSaveFile(buf, true);
+}
+
+InSaveFile *DefaultSaveFileManager::openForLoading(const char *filename) {
+ char buf[256];
+ join_paths(filename, getSavePath(), buf, sizeof(buf));
+ return makeSaveFile(buf, false);
}
void DefaultSaveFileManager::listSavefiles(const char * /* prefix */, bool *marks, int num) {
@@ -151,8 +152,13 @@ void DefaultSaveFileManager::listSavefiles(const char * /* prefix */, bool *mark
SaveFile *DefaultSaveFileManager::makeSaveFile(const char *filename, bool saveOrLoad) {
#ifdef USE_ZLIB
- return new GzipSaveFile(filename, saveOrLoad);
+ GzipSaveFile *sf = new GzipSaveFile(filename, saveOrLoad);
#else
- return new StdioSaveFile(filename, saveOrLoad);
+ StdioSaveFile *sf = new StdioSaveFile(filename, saveOrLoad);
#endif
+ if (!sf->isOpen()) {
+ delete sf;
+ sf = 0;
+ }
+ return sf;
}