moved my personal scons todo to the global one, so that someone else can work on...
[supertux.git] / src / badguy.h
index 0db6b61..3ec189b 100644 (file)
 
 #include "SDL.h"
 
+#include "utils/lispreader.h"
 #include "special/timer.h"
-#include "video/surface.h"
 #include "math/physic.h"
-#include "special/sprite.h"
-#include "app/defines.h"
+#include "defines.h"
 #include "special/moving_object.h"
 #include "collision.h"
 #include "serializable.h"
 #include "scene.h"
 
+using namespace SuperTux;
+
 /* Timing constants (in ms): */
 
 #define KICKING_TIME 200
@@ -48,6 +49,7 @@ enum BadGuyKind {
   BAD_STALACTITE,
   BAD_FLAME,
   BAD_FISH,
+  BAD_FLAMEFISH,
   BAD_BOUNCINGSNOWBALL,
   BAD_FLYINGSNOWBALL,
   BAD_SPIKY,
@@ -61,10 +63,9 @@ enum BadGuyKind {
 
 BadGuyKind  badguykind_from_string(const std::string& str);
 std::string badguykind_to_string(BadGuyKind kind);
-void load_badguy_gfx();
-void free_badguy_gfx();
 
 class Player;
+class BadGuySpecs;
 
 /* Badguy type: */
 class BadGuy : public MovingObject, public Serializable
@@ -117,8 +118,9 @@ private:
   Physic physic;
   float angle;
 
-  Sprite*   sprite_left;
-  Sprite*   sprite_right;
+  std::string action_left, action_right;
+
+  BadGuySpecs* specs;
 
   int animation_offset;
 
@@ -144,8 +146,7 @@ public:
   /** initializes the badguy (when he appears on screen) */
   void activate(Direction direction);  // should only be used by BadGuy's objects
 
-  Surface* get_image()
-    { return sprite_left->get_frame(0); }
+  Surface* get_image();
 
 private:
   void init();
@@ -181,8 +182,8 @@ private:
   void squish(Player* player);
   /** squish ourself, give player score and set dying to DYING_SQICHED */
   void squish_me(Player* player);
-  /** set image of the badguy */
-  void set_sprite(Sprite* left, Sprite* right);
+  /** set sprite's action of the badguy */
+  void set_action(std::string action_left, std::string action_right);
 };
 
 #endif /*SUPERTUX_BADGUY_H*/