25#include "common/scummsys.h"
26#include "common/array.h"
27#include "common/file.h"
28#include "common/memstream.h"
29#include "common/savefile.h"
30#include "common/serializer.h"
31#include "common/str-array.h"
32#include "graphics/surface.h"
33#include "mm/shared/xeen/cc_archive.h"
34#include "mm/shared/xeen/file.h"
39using Shared::Xeen::BaseCCArchive;
40using Shared::Xeen::CCArchive;
41using Shared::Xeen::CCEntry;
42using Shared::Xeen::File;
50#define SYNC_AS(SUFFIX,STREAM,TYPE,SIZE) \
51 template<typename T> \
52 void syncAs ## SUFFIX(T &val, Version minVersion = 0, Version maxVersion = kLastVersion) { \
53 if (_version < minVersion || _version > maxVersion) \
56 val = static_cast<TYPE>(_loadStream->read ## STREAM()); \
58 TYPE tmp = (TYPE)val; \
59 _saveStream->write ## STREAM(tmp); \
61 _bytesSynced += SIZE; \
70 CCArchive *_xeenCc =
nullptr, *_darkCc =
nullptr,
72 SaveArchive *_xeenSave =
nullptr, *_darkSave =
nullptr;
122 _parentStream(parentStream), _begin(parentStream->
pos()) {
125 uint32
write(
const void *dataPtr, uint32 dataSize)
override {
126 return _parentStream->
write(dataPtr, dataSize);
130 int64
pos()
const override {
return _parentStream->
pos() - _begin; }
141 SYNC_AS(Sint8, Byte, int8, 1)
144 if (_in && _filesize == -1)
145 _filesize = _in->
size();
146 return _in !=
nullptr && _in->
pos() >= _filesize;
218 uint32
write(
const void *dataPtr, uint32 dataSize)
override;
223 int64
pos()
const override;
Definition: memstream.h:194
virtual int64 pos() const =0
virtual int64 size() const =0
Definition: serializer.h:80
virtual bool flush()
Definition: stream.h:103
virtual int64 pos() const =0
virtual uint32 write(const void *dataPtr, uint32 dataSize)=0
Definition: cc_archive.h:51
Definition: cc_archive.h:94
FileManager(XeenEngine *vm)
void save(Common::WriteStream &s)
void setGameCc(int ccMode)
void load(Common::SeekableReadStream &stream)
int64 pos() const override
uint32 write(const void *dataPtr, uint32 dataSize) override
void load(Common::SeekableReadStream &stream)
virtual Common::SeekableReadStream * createReadStreamForMember(uint16 id) const
void save(Common::WriteStream &s)
Common::SeekableReadStream * createReadStreamForMember(const Common::Path &path) const override
void replaceEntry(uint16 id, const byte *data, size_t size)
void reset(CCArchive *src)
uint32 write(const void *dataPtr, uint32 dataSize) override
Definition: files.h:125
bool flush() override
Definition: files.h:128
int64 pos() const override
Definition: files.h:130
void finalize() override
Definition: files.h:129
Definition: detection.h:27