aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/resources.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/xeen/resources.h')
-rw-r--r--engines/xeen/resources.h42
1 files changed, 34 insertions, 8 deletions
diff --git a/engines/xeen/resources.h b/engines/xeen/resources.h
index d29f0f125c..0476319875 100644
--- a/engines/xeen/resources.h
+++ b/engines/xeen/resources.h
@@ -53,23 +53,49 @@ public:
void openFile(const Common::String &filename);
};
-class SpriteResource {
+class GraphicResource {
+protected:
+ int32 _filesize;
+ byte *_data;
+
+ void drawOffset(XSurface &dest, uint16 offset, const Common::Point &destPos) const;
+public:
+ GraphicResource(const Common::String &filename);
+
+ virtual ~GraphicResource();
+
+ int size() const;
+};
+
+/**
+ * Defines a resource that Contains a list of singular sprite frames
+ */
+class FramesResource : public GraphicResource {
+private:
+ Common::Array<uint32> _index;
+public:
+ FramesResource(const Common::String &filename);
+ virtual ~FramesResource() {}
+
+ void draw(XSurface &dest, int frame, const Common::Point &destPos) const;
+
+ void draw(XSurface &dest, int frame) const;
+};
+
+/**
+ * Defines a resource that contains sets of two layered sprites per frame
+ */
+class SpriteResource : public GraphicResource {
private:
struct IndexEntry {
uint16 _offset1, _offset2;
};
Common::Array<IndexEntry> _index;
- int32 _filesize;
- byte *_data;
-
- void drawOffset(XSurface &dest, uint16 offset, const Common::Point &destPos) const;
public:
SpriteResource(const Common::String &filename);
- ~SpriteResource();
-
- int size() const;
+ virtual ~SpriteResource() {}
void draw(XSurface &dest, int frame, const Common::Point &destPos) const;