aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/files.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2018-01-11 21:31:48 -0500
committerPaul Gilbert2018-01-11 21:31:48 -0500
commit93935a779883131f7f9568153cf29ead2affd833 (patch)
tree7dedd346f3be671ad8b435bd72d5c1186f58f7f5 /engines/xeen/files.cpp
parentebc3d270969e832db2ee9f26d958e66d4e23ed10 (diff)
downloadscummvm-rg350-93935a779883131f7f9568153cf29ead2affd833.tar.gz
scummvm-rg350-93935a779883131f7f9568153cf29ead2affd833.tar.bz2
scummvm-rg350-93935a779883131f7f9568153cf29ead2affd833.zip
XEEN: Implementing savegame code
Diffstat (limited to 'engines/xeen/files.cpp')
-rw-r--r--engines/xeen/files.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/engines/xeen/files.cpp b/engines/xeen/files.cpp
index 375b9df65a..0ed6dbd8a2 100644
--- a/engines/xeen/files.cpp
+++ b/engines/xeen/files.cpp
@@ -23,6 +23,7 @@
#include "common/scummsys.h"
#include "common/archive.h"
#include "common/memstream.h"
+#include "common/substream.h"
#include "common/textconsole.h"
#include "xeen/xeen.h"
#include "xeen/files.h"
@@ -393,9 +394,10 @@ void SaveArchive::load(Common::SeekableReadStream *stream) {
loadIndex(stream);
delete[] _data;
- _data = new byte[stream->size()];
+ _dataSize = stream->size();
+ _data = new byte[_dataSize];
stream->seek(0);
- stream->read(_data, stream->size());
+ stream->read(_data, _dataSize);
// Load in the character stats and active party
Common::SeekableReadStream *chr = createReadStreamForMember("maze.chr");
@@ -435,6 +437,11 @@ void SaveArchive::reset(CCArchive *src) {
load(&f);
}
+void SaveArchive::save(Common::WriteStream &s) {
+ s.writeUint32LE(_dataSize);
+ s.write(_data, _dataSize);
+}
+
/*------------------------------------------------------------------------*/
OutFile::OutFile(const Common::String &filename) :