X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fobject%2Fweak_block.hpp;h=01e2464be66496068588c11253641cbeff826fe1;hb=20f50f690c18aefbedeeb43eda094c8cb70351a9;hp=2a081795f34747ccb61ff44997e3bdddc2dcc521;hpb=7eedaa580901ec970795fe66d6e7fa56349fb0a0;p=supertux.git diff --git a/src/object/weak_block.hpp b/src/object/weak_block.hpp index 2a081795f..01e2464be 100644 --- a/src/object/weak_block.hpp +++ b/src/object/weak_block.hpp @@ -1,4 +1,4 @@ -// $Id: weak_block.hpp 3327 2006-04-13 15:02:40Z ravu_al_hemio $ +// $Id$ // // SuperTux - Weak Block // Copyright (C) 2006 Matthias Braun @@ -26,18 +26,28 @@ #include "physic.hpp" #include "timer.hpp" -/** +/** * A block that can be destroyed by Bullet hits */ -class WeakBlock : public MovingSprite +class WeakBlock : public MovingSprite, public UsesPhysic { public: WeakBlock(const lisp::Lisp& lisp); - virtual WeakBlock* clone() const { return new WeakBlock(*this); } HitResponse collision(GameObject& other, const CollisionHit& hit); void update(float elapsed_time); +protected: + /** + * called by self when hit by a bullet + */ + void startBurning(); + + /** + * pass hit to nearby WeakBlock objects + */ + void spreadHit(); + private: enum State { STATE_NORMAL, /**< default state */ @@ -45,9 +55,6 @@ private: STATE_DISINTEGRATING /**< crumbling to dust, no longer solid */ }; State state; - - Physic physic; }; #endif -