X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fbadguy%2Fbadguy.hpp;h=eee973f5237b6d38b8caaead506e4c7c9721f6e7;hb=7d24ccd38a1aa858e96b238027594d91081daaa1;hp=8cbfb183a6f540470c6f60ca6fba046fb8c92fa5;hpb=e50498b0a812cc8af84b0146ed917bb332471e8b;p=supertux.git diff --git a/src/badguy/badguy.hpp b/src/badguy/badguy.hpp index 8cbfb183a..eee973f52 100644 --- a/src/badguy/badguy.hpp +++ b/src/badguy/badguy.hpp @@ -23,8 +23,7 @@ // moved them here to make it less typing when implementing new badguys #include #include "timer.hpp" -#include "moving_object.hpp" -#include "sprite/sprite.hpp" +#include "object/moving_sprite.hpp" #include "physic.hpp" #include "object/player.hpp" #include "serializable.hpp" @@ -38,13 +37,13 @@ #include "video/drawing_context.hpp" #include "audio/sound_manager.hpp" #include "audio/sound_source.hpp" -#include "sprite/sprite_manager.hpp" -class BadGuy : public MovingObject, public Serializable +class BadGuy : public MovingSprite, public Serializable { public: - BadGuy(); - ~BadGuy(); + BadGuy(const Vector& pos, const std::string& sprite_name, int layer = LAYER_OBJECTS); + BadGuy(const lisp::Lisp& reader, const std::string& sprite_name, int layer = LAYER_OBJECTS); + virtual BadGuy* clone() const = 0; /** Called when the badguy is drawn. The default implementation simply draws * the badguy sprite on screen @@ -111,6 +110,10 @@ protected: */ virtual bool collision_squished(Player& player); + /** Called when the badguy collided with a bullet */ + virtual HitResponse collision_bullet(Bullet& bullet, + const CollisionHit& hit); + /** called each frame when the badguy is activated. */ virtual void active_update(float elapsed_time); /** called each frame when the badguy is not activated. */ @@ -135,7 +138,6 @@ protected: */ Player* get_nearest_player(); - Sprite* sprite; Physic physic; /// is the enemy activated @@ -155,12 +157,6 @@ protected: Direction dir; - /** - * z-position at which to draw the sprite. - * e.g. LAYER_OBJECTS, LAYER_OBJECTS - 1, LAYER_FLOATINGOBJECTS - */ - int layer; - private: void try_activate();