aboutsummaryrefslogtreecommitdiff
path: root/engines/cine/anim.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/cine/anim.h')
-rw-r--r--engines/cine/anim.h45
1 files changed, 44 insertions, 1 deletions
diff --git a/engines/cine/anim.h b/engines/cine/anim.h
index 92dbb2aaea..c15ab2eabd 100644
--- a/engines/cine/anim.h
+++ b/engines/cine/anim.h
@@ -54,11 +54,54 @@ struct AnimDataEntry {
byte color;
};
+#define ANIM_RAW 0 // memcpy
+#define ANIM_MASK 1 // convertMask
+#define ANIM_SPRITE 2 // gfxConvertSpriteToRaw
+#define ANIM_MASKSPRITE 3 // gfxConvertSpriteToRaw + generateMask
+#define ANIM_PALSPRITE 5 // convert8BBP
+#define ANIM_FULLSPRITE 8 // convert8BBP2
+
+class AnimData {
+private:
+ byte *_data; ///< Image data
+ byte *_mask; ///< Image mask (may be NULL)
+ int16 _fileIdx; ///< Source file index in bundle
+ int16 _frameIdx; ///< Frame number in animation
+ char _name[10]; ///< Part filename
+ int _size; ///< _data/_mask size, internal only
+
+public:
+ uint16 _width; ///< Image width (ussually twice the real size)
+ uint16 _height; ///< Image height
+ uint16 _bpp; ///< Bit depth/type information
+ uint16 _var1; ///< Something related to width
+ int _realWidth; ///< Real image width in bytes
+
+ AnimData();
+ AnimData(const AnimData &src);
+ ~AnimData();
+
+ AnimData &operator=(const AnimData &src);
+
+ const byte *data() const { return _data; } ///< Image data
+ const byte *mask() const { return _mask; } ///< Image mask (may be NULL)
+ byte getColor(int x, int y);
+
+ void load(byte *d, int type, uint16 w, uint16 h, int16 file, int16 frame, const char *n, byte transparent = 0);
+ void clear();
+
+ void save(Common::OutSaveFile &fHandle) const;
+};
+
+#define NUM_MAX_ANIMDATA 255
+
+extern AnimData animDataTable[NUM_MAX_ANIMDATA];
+
void freeAnimDataTable(void);
void freeAnimDataRange(byte startIdx, byte numIdx);
void loadResource(const char *animName);
void loadAbs(const char *resourceName, uint16 idx);
-void loadResourcesFromSave();
+void loadResourcesFromSave(Common::InSaveFile &fHandle, bool broken);
} // End of namespace Cine