restore trunk
[supertux.git] / src / sprite / sprite.hpp
index df0f9c7..a3edb33 100644 (file)
 
 #include <string>
 #include <assert.h>
-#include <SDL.h>
 
-#include "video/surface.hpp"
 #include "math/vector.hpp"
 #include "math/rect.hpp"
 #include "sprite_data.hpp"
+#include "video/color.hpp"
+#include "video/drawing_context.hpp"
 
+class Surface;
 class DrawingContext;
+class Blend;
 
 class Sprite
 {
@@ -86,19 +88,33 @@ public:
   /** return current action's hitbox, relative to 0,0 */
   Rect get_current_hitbox() const;
 
+  /** Set the angle of the sprite rotation in degree */
+  void set_angle(float angle);
+
+  /** Get the angle of the sprite rotation in degree */
+  float get_angle() const;
+
+  void set_color(const Color& color);
+
+  Color get_color() const;
+
+  void set_blend(const Blend& blend);
+
+  Blend get_blend() const;
+
   /** Get current frame */
   int get_frame() const
   { return (int)frame; }
   /** Set current frame */
   void set_frame(int frame)
-  { 
-    this->frame = (frame % get_frames()); 
+  {
+    this->frame = (float) (frame % get_frames());
   }
   Surface* get_frame(unsigned int frame)
   {
     assert(frame < action->surfaces.size());
     return action->surfaces[frame];
-  }    
+  }
 
 private:
   void update();
@@ -106,11 +122,13 @@ private:
   SpriteData& data;
 
   float frame;
-  int animation_loops;
+  int   animation_loops;
   float last_ticks;
+  float angle;
+  Color color;
+  Blend blend;
 
   SpriteData::Action* action;
 };
 
 #endif
-