diff options
author | Max Horn | 2005-04-10 15:13:40 +0000 |
---|---|---|
committer | Max Horn | 2005-04-10 15:13:40 +0000 |
commit | e79c168d35d9c3633e3dfb618bd05466b0efc307 (patch) | |
tree | fe4fa01fd852546eaa3229f62069109d98eb8a67 /common/savefile.cpp | |
parent | e03861fdd4ca4cb676788c4ae4ea19647107fd6b (diff) | |
download | scummvm-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.cpp | 24 |
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; } |