supertux/src/badguy/crystallo.cpp: Use MovingSprite::set_action to change the sprite.
[supertux.git] / src / sprite / sprite.hpp
index 6328f41..f5be38c 100644 (file)
@@ -18,6 +18,7 @@
 #define HEADER_SUPERTUX_SPRITE_SPRITE_HPP
 
 #include "sprite/sprite_data.hpp"
+#include "sprite/sprite_ptr.hpp"
 #include "video/drawing_context.hpp"
 
 class Surface;
@@ -28,11 +29,13 @@ class Sprite
 {
 public:
   Sprite(SpriteData& data);
-  Sprite(const Sprite& other);
   ~Sprite();
 
+  SpritePtr clone() const;
+
   /** Draw sprite, automatically calculates next frame */
-  void draw(DrawingContext& context, const Vector& pos, int layer);
+  void draw(DrawingContext& context, const Vector& pos, int layer,
+      DrawingEffect effect = NO_EFFECT);
 
   void draw_part(DrawingContext& context, const Vector& source,
                  const Vector& size, const Vector& pos, int layer);
@@ -47,9 +50,6 @@ public:
   void set_animation_loops(int loops = -1)
   { animation_loops = loops; }
 
-  /** Set framerate */
-  void set_fps(float new_fps);
-
   /* Stop animation */
   void stop_animation()
   { animation_loops = 0; }
@@ -122,9 +122,10 @@ private:
   Color color;
   Blend blend;
 
-  SpriteData::Action* action;
+  const SpriteData::Action* action;
 
 private:
+  Sprite(const Sprite& other);
   Sprite& operator=(const Sprite&);
 };