diff options
-rw-r--r-- | engines/xeen/saves.cpp | 14 | ||||
-rw-r--r-- | engines/xeen/saves.h | 7 |
2 files changed, 18 insertions, 3 deletions
diff --git a/engines/xeen/saves.cpp b/engines/xeen/saves.cpp index f7d93d1dc4..f9a26b1d6b 100644 --- a/engines/xeen/saves.cpp +++ b/engines/xeen/saves.cpp @@ -30,7 +30,17 @@ namespace Xeen { OutFile::OutFile(XeenEngine *vm, const Common::String filename) : - _vm(vm), _filename(filename) { + _vm(vm), + _filename(filename), + _backingStream(DisposeAfterUse::YES) { +} + +uint32 OutFile::write(const void *dataPtr, uint32 dataSize) { + return _backingStream.write(dataPtr, dataSize); +} + +int32 OutFile::pos() const { + return _backingStream.pos(); } void OutFile::finalize() { @@ -40,7 +50,7 @@ void OutFile::finalize() { _vm->_saves->_newData[id] = new Common::MemoryWriteStreamDynamic(DisposeAfterUse::YES); Common::MemoryWriteStreamDynamic *out = _vm->_saves->_newData[id]; - out->write(getData(), size()); + out->write(_backingStream.getData(), _backingStream.size()); } /*------------------------------------------------------------------------*/ diff --git a/engines/xeen/saves.h b/engines/xeen/saves.h index 404dee00a7..9c161c838c 100644 --- a/engines/xeen/saves.h +++ b/engines/xeen/saves.h @@ -44,14 +44,19 @@ struct XeenSavegameHeader { class XeenEngine; class SavesManager; -class OutFile : public Common::MemoryWriteStreamDynamic { +class OutFile : public Common::WriteStream { private: XeenEngine *_vm; Common::String _filename; + Common::MemoryWriteStreamDynamic _backingStream; public: OutFile(XeenEngine *vm, const Common::String filename); void finalize(); + + uint32 write(const void *dataPtr, uint32 dataSize) override; + + int32 pos() const override; }; class SavesManager: public BaseCCArchive { |