diff options
author | Paul Gilbert | 2015-01-11 16:01:10 -0500 |
---|---|---|
committer | Paul Gilbert | 2015-01-11 16:01:10 -0500 |
commit | edccbe63f24e26944dcd7cd3da59b6842cb36b46 (patch) | |
tree | 090430845d07b3ba3d55c4c8a6e42565c8f40f50 /engines/xeen/files.h | |
parent | 3b1edcdf36fc7a207a70cb28e7dcf7879ea9b7e5 (diff) | |
download | scummvm-rg350-edccbe63f24e26944dcd7cd3da59b6842cb36b46.tar.gz scummvm-rg350-edccbe63f24e26944dcd7cd3da59b6842cb36b46.tar.bz2 scummvm-rg350-edccbe63f24e26944dcd7cd3da59b6842cb36b46.zip |
XEEN: Added saving of maze monster/object data
Diffstat (limited to 'engines/xeen/files.h')
-rw-r--r-- | engines/xeen/files.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/engines/xeen/files.h b/engines/xeen/files.h index 7c0817a850..a8343c1653 100644 --- a/engines/xeen/files.h +++ b/engines/xeen/files.h @@ -34,6 +34,19 @@ namespace Xeen { class XeenEngine; +#define SYNC_AS(SUFFIX,STREAM,TYPE,SIZE) \ + template<typename T> \ + void syncAs ## SUFFIX(T &val, Version minVersion = 0, Version maxVersion = kLastVersion) { \ + if (_version < minVersion || _version > maxVersion) \ + return; \ + if (_loadStream) \ + val = static_cast<TYPE>(_loadStream->read ## STREAM()); \ + else { \ + TYPE tmp = (TYPE)val; \ + _saveStream->write ## STREAM(tmp); \ + } \ + _bytesSynced += SIZE; \ + } /* * Main resource manager */ @@ -69,6 +82,8 @@ public: XeenSerializer(Common::SeekableReadStream *in, Common::WriteStream *out) : Common::Serializer(in, out), _in(in) {} + SYNC_AS(Sint8, Byte, int8, 1) + bool finished() const { return _in != nullptr && _in->pos() >= _in->size(); } }; |