22 #ifndef MADE_DATABASE_H 23 #define MADE_DATABASE_H 25 #include "common/hashmap.h" 28 class SeekableReadStream;
47 virtual int load(byte *source) = 0;
49 virtual uint16 getFlags() = 0;
50 virtual uint16 getClass() = 0;
51 virtual uint16 getSize() = 0;
52 virtual byte getCount1() = 0;
53 virtual byte getCount2() = 0;
54 virtual byte *getData() = 0;
55 virtual bool isConstant() = 0;
57 const char *getString();
58 void setString(
const char *str);
62 int16 getVectorSize();
63 int16 getVectorItem(int16 index);
64 void setVectorItem(int16 index, int16 value);
77 int load(byte *source)
override;
79 uint16 getFlags()
override;
80 uint16 getClass()
override;
81 uint16 getSize()
override;
82 byte getCount1()
override;
83 byte getCount2()
override;
84 byte *getData()
override;
86 bool isConstant()
override {
99 virtual int load(byte *source)
override;
101 uint16 getFlags()
override;
102 uint16 getClass()
override;
103 uint16 getSize()
override;
104 byte getCount1()
override;
105 byte getCount2()
override;
106 byte *getData()
override;
108 bool isConstant()
override {
109 return !(getFlags() & 1);
117 int load(byte *source)
override;
129 void open(
const char *filename);
130 void openFromRed(
const char *redFilename,
const char *filename);
134 Object *getObject(int16 index)
const {
136 return _objects[index - 1];
141 uint getObjectCount()
const {
return _objects.size(); }
143 int16 getMainCodeObjectIndex()
const {
return _mainCodeObjectIndex; }
145 int16 getVar(int16 index);
146 void setVar(int16 index, int16 value);
148 const char *getObjectString(int16 index);
149 void setObjectString(int16 index,
const char *str);
151 virtual int16 *findObjectProperty(int16 objectIndex, int16 propertyId, int16 &propertyFlag) = 0;
152 int16 *findObjectPropertyCached(int16 objectIndex, int16 propertyId, int16 &propertyFlag);
153 virtual const char *getString(uint16 offset) = 0;
154 virtual bool getSavegameDescription(
const char *filename,
Common::String &description, int16 version) = 0;
155 virtual int16 savegame(
const char *filename,
const char *description, int16 version) = 0;
156 virtual int16 loadgame(
const char *filename, int16 version) = 0;
158 int16 getObjectProperty(int16 objectIndex, int16 propertyId);
159 int16 setObjectProperty(int16 objectIndex, int16 propertyId, int16 value);
161 void dumpObject(int16 index);
167 ObjectPropertyCacheMap _objectPropertyCache;
169 uint32 _gameStateSize;
170 int16 _mainCodeObjectIndex;
181 int16 *findObjectProperty(int16 objectIndex, int16 propertyId, int16 &propertyFlag)
override;
182 const char *getString(uint16 offset)
override;
183 bool getSavegameDescription(
const char *filename,
Common::String &description, int16 version)
override;
184 int16 savegame(
const char *filename,
const char *description, int16 version)
override;
185 int16 loadgame(
const char *filename, int16 version)
override;
195 virtual int16 *findObjectProperty(int16 objectIndex, int16 propertyId, int16 &propertyFlag)
override;
196 const char *getString(uint16 offset)
override;
197 bool getSavegameDescription(
const char *filename,
Common::String &description, int16 version)
override;
198 int16 savegame(
const char *filename,
const char *description, int16 version)
override;
199 int16 loadgame(
const char *filename, int16 version)
override;
202 uint32 _gameStateOffs;
210 int16 *findObjectProperty(int16 objectIndex, int16 propertyId, int16 &propertyFlag)
override;
Definition: database.h:207
Definition: database.h:91
Definition: database.h:192
Definition: database.h:114
Definition: database.h:123
Definition: database.h:74
Definition: database.h:40
Definition: algorithm.h:29
Definition: database.h:177
Definition: database.h:96