X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fobject%2Fbullet.hpp;h=c3464d7d5344330786491a65d5fe1f933199f799;hb=ca967dcf4ee89f99880355be00782d1cd047be6a;hp=90547a32e6863ad98628a6bd660908629b3ea0df;hpb=89ecbfcacb9abac599f8feba52792392b8199cf1;p=supertux.git diff --git a/src/object/bullet.hpp b/src/object/bullet.hpp index 90547a32e..c3464d7d5 100644 --- a/src/object/bullet.hpp +++ b/src/object/bullet.hpp @@ -25,7 +25,7 @@ #include "sprite/sprite.hpp" #include "player_status.hpp" -class Bullet : public MovingObject +class Bullet : public MovingObject, private UsesPhysic { public: Bullet(const Vector& pos, float xm, int dir, BonusType type); @@ -35,7 +35,14 @@ public: void draw(DrawingContext& context); void collision_solid(const CollisionHit& hit); HitResponse collision(GameObject& other, const CollisionHit& hit); - + + /** + * Makes bullet bounce off an object (that got hit). + * To be called by the collision handler of that object. + * Note that the @c hit parameter is filled in as perceived by the object, not by the bullet. + */ + void ricochet(GameObject& other, const CollisionHit& hit); + BonusType get_type() { return type; @@ -43,7 +50,6 @@ public: private: int life_count; - Physic physic; std::auto_ptr sprite; BonusType type; };