-// $Id: dart.hpp 3327 2006-04-13 15:02:40Z sommer $
+// $Id$
//
// Dart - Your average poison dart
// Copyright (C) 2006 Christoph Sommer <supertux@2006.expires.deltadevelopment.de>
{
public:
Dart(const lisp::Lisp& reader);
- Dart(float pos_x, float pos_y, Direction d, const BadGuy* parent);
+ Dart(const Vector& pos, Direction d, const BadGuy* parent);
+ Dart(const Dart& dart);
+ ~Dart();
void activate();
void deactivate();
void write(lisp::Writer& writer);
- HitResponse collision_solid(GameObject& object, const CollisionHit& hit);
+ void active_update(float elapsed_time);
+
+ void collision_solid(const CollisionHit& hit);
HitResponse collision_badguy(BadGuy& badguy, const CollisionHit& hit);
HitResponse collision_player(Player& player, const CollisionHit& hit);
+ virtual Dart* clone() const { return new Dart(*this); }
+
+ virtual bool updatePointers(const GameObject* from_object, GameObject* to_object);
+
protected:
- bool set_direction;
- Direction initial_direction;
const BadGuy* parent; /**< collisions with this BadGuy will be ignored */
+ std::auto_ptr<SoundSource> sound_source; /**< SoundSource for ambient sound */
};
#endif
-