X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fbadguy%2Fdart.cpp;h=992d7749cec4199ce085469ff28c527d706568fe;hb=e7042da286e68756298cc205910b35c1da551167;hp=0fa86c64197f8c23c70b578482409d1e94e6504e;hpb=8eea3ab830de99d82e659474e0f2a60aa18c3bb1;p=supertux.git diff --git a/src/badguy/dart.cpp b/src/badguy/dart.cpp index 0fa86c641..992d7749c 100644 --- a/src/badguy/dart.cpp +++ b/src/badguy/dart.cpp @@ -29,23 +29,29 @@ namespace { static const std::string SOUNDFILE = "sounds/flame.wav"; Dart::Dart(const lisp::Lisp& reader) - : BadGuy(reader, "images/creatures/dart/dart.sprite"), set_direction(false), parent(0) + : BadGuy(reader, "images/creatures/dart/dart.sprite"), parent(0) { physic.enable_gravity(false); countMe = false; + sound_manager->preload("sounds/darthit.wav"); + sound_manager->preload("sounds/stomp.wav"); } Dart::Dart(const Vector& pos, Direction d, const BadGuy* parent = 0) - : BadGuy(pos, "images/creatures/dart/dart.sprite"), set_direction(true), initial_direction(d), parent(parent) + : BadGuy(pos, d, "images/creatures/dart/dart.sprite"), parent(parent) { physic.enable_gravity(false); countMe = false; + sound_manager->preload("sounds/darthit.wav"); + sound_manager->preload("sounds/stomp.wav"); } Dart::Dart(const Dart& other) - : BadGuy(other), set_direction(other.set_direction), initial_direction(other.initial_direction), parent(other.parent) + : BadGuy(other), parent(other.parent) { sound_source.reset(sound_manager->create_sound_source(SOUNDFILE)); + sound_manager->preload("sounds/darthit.wav"); + sound_manager->preload("sounds/stomp.wav"); } Dart::~Dart() @@ -73,8 +79,7 @@ Dart::write(lisp::Writer& writer) void Dart::activate() -{ - if (set_direction) dir = initial_direction; +{ physic.set_velocity_x(dir == LEFT ? -::SPEED : ::SPEED); sprite->set_action(dir == LEFT ? "flying-left" : "flying-right"); @@ -100,13 +105,11 @@ Dart::active_update(float elapsed_time) sound_source->set_position(get_pos()); } - -HitResponse -Dart::collision_solid(GameObject& , const CollisionHit& ) +void +Dart::collision_solid(const CollisionHit& ) { - sound_manager->play("sounds/stomp.wav", get_pos()); + sound_manager->play("sounds/darthit.wav", get_pos()); remove_me(); - return ABORT_MOVE; } HitResponse