X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fbadguy.h;h=3ec189bbe9228b93856307516f0d7a84c3503535;hb=4c53a552c13dbe9d587e34e3cf48e82877d09288;hp=03c88185172a51093f03e4935b526bcc04601b30;hpb=055fb8d0e2d75acff6185f5a4f5c75e0782503c5;p=supertux.git diff --git a/src/badguy.h b/src/badguy.h index 03c881851..3ec189bbe 100644 --- a/src/badguy.h +++ b/src/badguy.h @@ -25,14 +25,20 @@ #include "SDL.h" -#include "timer.h" -#include "screen/surface.h" -#include "physic.h" -#include "sprite.h" +#include "utils/lispreader.h" +#include "special/timer.h" +#include "math/physic.h" #include "defines.h" -#include "moving_object.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 /* Bad guy kinds: */ enum BadGuyKind { @@ -43,6 +49,7 @@ enum BadGuyKind { BAD_STALACTITE, BAD_FLAME, BAD_FISH, + BAD_FLAMEFISH, BAD_BOUNCINGSNOWBALL, BAD_FLYINGSNOWBALL, BAD_SPIKY, @@ -56,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 @@ -112,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; @@ -139,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(); @@ -176,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*/