diff options
Diffstat (limited to 'engines/gob/save')
-rw-r--r-- | engines/gob/save/saveconverter.cpp | 15 | ||||
-rw-r--r-- | engines/gob/save/saveconverter.h | 6 | ||||
-rw-r--r-- | engines/gob/save/savefile.cpp | 29 | ||||
-rw-r--r-- | engines/gob/save/savefile.h | 15 | ||||
-rw-r--r-- | engines/gob/save/saveload.cpp | 4 | ||||
-rw-r--r-- | engines/gob/save/saveload.h | 4 | ||||
-rw-r--r-- | engines/gob/save/saveload_v2.cpp | 6 | ||||
-rw-r--r-- | engines/gob/save/saveload_v3.cpp | 8 | ||||
-rw-r--r-- | engines/gob/save/saveload_v4.cpp | 4 | ||||
-rw-r--r-- | engines/gob/save/saveload_v6.cpp | 4 |
10 files changed, 43 insertions, 52 deletions
diff --git a/engines/gob/save/saveconverter.cpp b/engines/gob/save/saveconverter.cpp index 4b24311e93..06fb2a53e9 100644 --- a/engines/gob/save/saveconverter.cpp +++ b/engines/gob/save/saveconverter.cpp @@ -34,16 +34,14 @@ namespace Gob { -SaveConverter::SaveConverter(GobEngine *vm, const char *fileName) : _vm(vm) { - _fileName = strdupcpy(fileName); +SaveConverter::SaveConverter(GobEngine *vm, const Common::String &fileName) +: _vm(vm), _fileName(fileName) { _data = 0; _stream = 0; } SaveConverter::~SaveConverter() { - delete[] _fileName; - delete _stream; delete[] _data; } @@ -56,16 +54,13 @@ void SaveConverter::clear() { _stream = 0; } -void SaveConverter::setFileName(const char *fileName) { +void SaveConverter::setFileName(const Common::String &fileName) { clear(); - - delete[] _fileName; - - _fileName = strdupcpy(fileName); + _fileName = fileName; } Common::InSaveFile *SaveConverter::openSave() const { - if (!_fileName) + if (_fileName.empty()) return 0; Common::SaveFileManager *saveMan = g_system->getSavefileManager(); diff --git a/engines/gob/save/saveconverter.h b/engines/gob/save/saveconverter.h index f40a2d4b40..96708c5543 100644 --- a/engines/gob/save/saveconverter.h +++ b/engines/gob/save/saveconverter.h @@ -40,13 +40,13 @@ class SaveWriter; /** A wrapping stream class for old saves. */ class SaveConverter : public Common::SeekableReadStream { public: - SaveConverter(GobEngine *vm, const char *fileName = 0); + SaveConverter(GobEngine *vm, const Common::String &fileName); virtual ~SaveConverter(); /** Clear the converter. */ virtual void clear(); /** Set the filename on which to operate. */ - virtual void setFileName(const char *fileName); + virtual void setFileName(const Common::String &fileName); /** Is it actually an old save? */ virtual int isOldSave(Common::InSaveFile **save = 0) const = 0; @@ -74,7 +74,7 @@ public: protected: GobEngine *_vm; - char *_fileName; + Common::String _fileName; byte *_data; Common::MemoryReadStream *_stream; diff --git a/engines/gob/save/savefile.cpp b/engines/gob/save/savefile.cpp index 0f7ebfd0bf..a7b87ad39e 100644 --- a/engines/gob/save/savefile.cpp +++ b/engines/gob/save/savefile.cpp @@ -783,10 +783,9 @@ bool SaveContainer::isSave(Common::SeekableReadStream &stream) { } -SaveReader::SaveReader(uint32 partCount, uint32 slot, const char *fileName) : - SaveContainer(partCount, slot) { +SaveReader::SaveReader(uint32 partCount, uint32 slot, const Common::String &fileName) : + SaveContainer(partCount, slot), _fileName(fileName) { - _fileName = strdupcpy(fileName); _stream = 0; _loaded = false; @@ -795,14 +794,12 @@ SaveReader::SaveReader(uint32 partCount, uint32 slot, const char *fileName) : SaveReader::SaveReader(uint32 partCount, uint32 slot, Common::SeekableReadStream &stream) : SaveContainer(partCount, slot) { - _fileName = 0; _stream = &stream; _loaded = false; } SaveReader::~SaveReader() { - delete[] _fileName; } // Open the save and read it @@ -811,7 +808,7 @@ bool SaveReader::load() { Common::InSaveFile *in = 0; Common::SeekableReadStream *stream; - if (_fileName) { + if (!_fileName.empty()) { in = openSave(); if (!in) @@ -852,8 +849,8 @@ bool SaveReader::readPart(uint32 partN, SavePart *part) const { return true; } -Common::InSaveFile *SaveReader::openSave(const char *fileName) { - if (!fileName) +Common::InSaveFile *SaveReader::openSave(const Common::String &fileName) { + if (fileName.empty()) return 0; Common::SaveFileManager *saveMan = g_system->getSavefileManager(); @@ -899,7 +896,7 @@ bool SaveReader::getInfo(Common::SeekableReadStream &stream, SavePartInfo &info) return result; } -bool SaveReader::getInfo(const char *fileName, SavePartInfo &info) { +bool SaveReader::getInfo(const Common::String &fileName, SavePartInfo &info) { Common::InSaveFile *in = openSave(fileName); if (!in) @@ -912,14 +909,15 @@ bool SaveReader::getInfo(const char *fileName, SavePartInfo &info) { return result; } -SaveWriter::SaveWriter(uint32 partCount, uint32 slot, const char *fileName) : +SaveWriter::SaveWriter(uint32 partCount, uint32 slot) : SaveContainer(partCount, slot) { +} - _fileName = strdupcpy(fileName); +SaveWriter::SaveWriter(uint32 partCount, uint32 slot, const Common::String &fileName) : + SaveContainer(partCount, slot), _fileName(fileName) { } SaveWriter::~SaveWriter() { - delete[] _fileName; } bool SaveWriter::writePart(uint32 partN, const SavePart *part) { @@ -958,14 +956,15 @@ bool SaveWriter::save() { } bool SaveWriter::canSave() const { - if (!_fileName) + // FIXME: The logic here is the opposite from what I (Fingolfin) would expect ?!? + if (!_fileName.empty()) return false; return true; } -Common::OutSaveFile *SaveWriter::openSave(const char *fileName) { - if (!fileName) +Common::OutSaveFile *SaveWriter::openSave(const Common::String &fileName) { + if (fileName.empty()) return 0; Common::SaveFileManager *saveMan = g_system->getSavefileManager(); diff --git a/engines/gob/save/savefile.h b/engines/gob/save/savefile.h index a263d97b0e..6c211c1d5c 100644 --- a/engines/gob/save/savefile.h +++ b/engines/gob/save/savefile.h @@ -296,7 +296,7 @@ protected: /** Reads a save. */ class SaveReader : public SaveContainer { public: - SaveReader(uint32 partCount, uint32 slot, const char *fileName); + SaveReader(uint32 partCount, uint32 slot, const Common::String &fileName); SaveReader(uint32 partCount, uint32 slot, Common::SeekableReadStream &stream); ~SaveReader(); @@ -308,22 +308,23 @@ public: /** Find and read the save's info part. */ static bool getInfo(Common::SeekableReadStream &stream, SavePartInfo &info); /** Find and read the save's info part. */ - static bool getInfo(const char *fileName, SavePartInfo &info); + static bool getInfo(const Common::String &fileName, SavePartInfo &info); protected: - char *_fileName; + Common::String _fileName; Common::SeekableReadStream *_stream; bool _loaded; - static Common::InSaveFile *openSave(const char *fileName); + static Common::InSaveFile *openSave(const Common::String &fileName); Common::InSaveFile *openSave(); }; /** Writes a save. */ class SaveWriter: public SaveContainer { public: - SaveWriter(uint32 partCount, uint32 slot, const char *fileName = 0); + SaveWriter(uint32 partCount, uint32 slot); + SaveWriter(uint32 partCount, uint32 slot, const Common::String &fileName); ~SaveWriter(); bool writePart(uint32 partN, const SavePart *part); @@ -333,12 +334,12 @@ public: protected: bool save(); - char *_fileName; + Common::String _fileName; /** Is everything ready for saving? */ bool canSave() const; - static Common::OutSaveFile *openSave(const char *fileName); + static Common::OutSaveFile *openSave(const Common::String &fileName); Common::OutSaveFile *openSave(); }; diff --git a/engines/gob/save/saveload.cpp b/engines/gob/save/saveload.cpp index e990447ba4..a91a3e9801 100644 --- a/engines/gob/save/saveload.cpp +++ b/engines/gob/save/saveload.cpp @@ -35,12 +35,10 @@ namespace Gob { -SaveLoad::SaveLoad(GobEngine *vm, const char *targetName) : _vm(vm) { - _targetName = strdupcpy(targetName); +SaveLoad::SaveLoad(GobEngine *vm) : _vm(vm) { } SaveLoad::~SaveLoad() { - delete[] _targetName; } const char *SaveLoad::stripPath(const char *fileName) { diff --git a/engines/gob/save/saveload.h b/engines/gob/save/saveload.h index 1e97d09a61..a74b64b883 100644 --- a/engines/gob/save/saveload.h +++ b/engines/gob/save/saveload.h @@ -48,7 +48,7 @@ public: * * @param targetName The game's target name. Used as a base for the save names. */ - SaveLoad(GobEngine *vm, const char *targetName); + SaveLoad(GobEngine *vm); virtual ~SaveLoad(); /** "foo\bar\quux.bla" => "quux.bla". */ @@ -67,8 +67,6 @@ public: protected: GobEngine *_vm; - char *_targetName; - virtual SaveHandler *getHandler(const char *fileName) const; virtual const char *getDescription(const char *fileName) const; }; diff --git a/engines/gob/save/saveload_v2.cpp b/engines/gob/save/saveload_v2.cpp index 5746057626..0bbefe28db 100644 --- a/engines/gob/save/saveload_v2.cpp +++ b/engines/gob/save/saveload_v2.cpp @@ -260,10 +260,10 @@ void SaveLoad_v2::GameHandler::buildIndex(byte *buffer) const { SaveLoad_v2::SaveLoad_v2(GobEngine *vm, const char *targetName) : - SaveLoad(vm, targetName) { + SaveLoad(vm) { - _gameHandler = new GameHandler(vm, _targetName); - _notesHandler = new NotesHandler(600, vm, _targetName); + _gameHandler = new GameHandler(vm, targetName); + _notesHandler = new NotesHandler(600, vm, targetName); _tempSpriteHandler = new TempSpriteHandler(vm); _saveFiles[0].handler = _gameHandler; diff --git a/engines/gob/save/saveload_v3.cpp b/engines/gob/save/saveload_v3.cpp index e2af420e08..665e925b00 100644 --- a/engines/gob/save/saveload_v3.cpp +++ b/engines/gob/save/saveload_v3.cpp @@ -491,21 +491,21 @@ bool SaveLoad_v3::ScreenshotHandler::save(int16 dataVar, int32 size, int32 offse SaveLoad_v3::SaveLoad_v3(GobEngine *vm, const char *targetName, ScreenshotType sShotType) : - SaveLoad(vm, targetName) { + SaveLoad(vm) { _sShotType = sShotType; // The Amiga version doesn't use screenshots if (_vm->getPlatform() == Common::kPlatformAmiga) { - _gameHandler = new GameHandler(vm, _targetName, false); + _gameHandler = new GameHandler(vm, targetName, false); _screenshotHandler = 0; } else { - _gameHandler = new GameHandler(vm, _targetName, true); + _gameHandler = new GameHandler(vm, targetName, true); _screenshotHandler = new ScreenshotHandler(vm, _gameHandler, sShotType); } _tempSpriteHandler = new TempSpriteHandler(vm); - _notesHandler = new NotesHandler(2560, vm, _targetName); + _notesHandler = new NotesHandler(2560, vm, targetName); _saveFiles[0].handler = _gameHandler; _saveFiles[1].handler = _screenshotHandler; diff --git a/engines/gob/save/saveload_v4.cpp b/engines/gob/save/saveload_v4.cpp index c661cdc881..07b2300732 100644 --- a/engines/gob/save/saveload_v4.cpp +++ b/engines/gob/save/saveload_v4.cpp @@ -485,9 +485,9 @@ bool SaveLoad_v4::ScreenPropsHandler::save(int16 dataVar, int32 size, int32 offs SaveLoad_v4::SaveLoad_v4(GobEngine *vm, const char *targetName) : - SaveLoad(vm, targetName) { + SaveLoad(vm) { - _gameHandler = new GameHandler(vm, _targetName); + _gameHandler = new GameHandler(vm, targetName); _curProps = new CurScreenPropsHandler(vm); for (int i = 0; i < 10; i++) _props[i] = new ScreenPropsHandler(vm, i, _curProps, _gameHandler); diff --git a/engines/gob/save/saveload_v6.cpp b/engines/gob/save/saveload_v6.cpp index 5f772c75f7..455137aa6a 100644 --- a/engines/gob/save/saveload_v6.cpp +++ b/engines/gob/save/saveload_v6.cpp @@ -281,9 +281,9 @@ void SaveLoad_v6::GameHandler::refreshProps() { SaveLoad_v6::SaveLoad_v6(GobEngine *vm, const char *targetName) : - SaveLoad(vm, targetName) { + SaveLoad(vm) { - _gameHandler = new GameHandler(vm, _targetName); + _gameHandler = new GameHandler(vm, targetName); _saveFiles[0].handler = _gameHandler; } |