/* $Id: ball.hpp,v 1.5.4.2 2006/01/20 11:33:52 chfreund Exp $ */ #ifndef _BALL_HPP_ #define _BALL_HPP_ /**********************************************************/ #include #include "global.hpp" #include "constants.hpp" #include "collidableobject.hpp" #include "audio.hpp" #include "vector.hpp" #include "counter.hpp" /**********************************************************/ class Ball : public CollidableObject { public: Ball(); ~Ball(); bool initialize( const Vector& pos, const Vector& vel, const real initialScoringDelay ); virtual Sint32 getID() const { return BALL; } virtual void update(); virtual int applyDamage( const Particles::ParticleData& p ); void setInitialScoringDelay( const real initialScoringDelay ) { m_initialScoringDelay = initialScoringDelay; m_scoringDelay.setTimeToLive( initialScoringDelay ); } virtual void serialize( Uint8*& bufferPointer ) const; virtual void deserialize( Uint8*& bufferPointer ); virtual Uint32 getSerializeBufferSize() const; virtual void dump( std::ostream& out ) const; protected: static Mix_Chunk* m_explodeSample, * m_bounceSample, * m_damageSample; real m_initialScoringDelay; Counter m_scoringDelay; }; /**********************************************************/ #endif /* _BALL_HPP_ */