diff options
Diffstat (limited to 'engines/xeen/resources.h')
-rw-r--r-- | engines/xeen/resources.h | 42 |
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; |