]> git.localhorst.tv Git - l2e.git/blobdiff - src/graphics/Frame.h
switched to static type IDs
[l2e.git] / src / graphics / Frame.h
index 09674cc62d2f63a97dc50a327a2c6df2c33a0fd4..defa6b18ab303c175e66226e41969c1ff56a235d 100644 (file)
@@ -17,7 +17,10 @@ namespace graphics {
 class Frame {
 
 public:
-       Frame(SDL_Surface *s, int borderWidth, int borderHeight, int repeatWidth = 1, int repeatHeight = 1, int xOffset = 0, int yOffset = 0)
+       static const int TYPE_ID = 405;
+
+public:
+       explicit Frame(SDL_Surface *s = 0, int borderWidth = 1, int borderHeight = 1, int repeatWidth = 1, int repeatHeight = 1, int xOffset = 0, int yOffset = 0)
        : surface(s), borderSize(borderWidth, borderHeight), repeatSize(repeatWidth, repeatHeight), offset(xOffset, yOffset) { }
 
 public:
@@ -31,6 +34,15 @@ public:
        const geometry::Vector<int> RepeatSize() const { return repeatSize; }
        void Draw(SDL_Surface *dest, const geometry::Vector<int> &position, int width, int height) const;
 
+public:
+       void SetSurface(SDL_Surface *s) { surface = s; }
+       void SetBorderSize(const geometry::Vector<int> &s) { borderSize = s; }
+       void SetRepeatSize(const geometry::Vector<int> &s) { repeatSize = s; }
+       void SetOffset(const geometry::Vector<int> &o) { offset = o; }
+
+       static void CreateTypeDescription();
+       static void Construct(void *);
+
 private:
        SDL_Surface *surface;
        geometry::Vector<int> borderSize;