X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fbadguy%2Fdart.cpp;h=37389fca58a1e9686768234b713bb306744ded3a;hb=7e413dc6f0aa8315b97b1b433e38613308e1ccbd;hp=9df6e8ce4eea932b57f7f48e1eb8b41e8d4809f2;hpb=af906b173f5e7118644397ce35145e6b88f40be8;p=supertux.git diff --git a/src/badguy/dart.cpp b/src/badguy/dart.cpp index 9df6e8ce4..37389fca5 100644 --- a/src/badguy/dart.cpp +++ b/src/badguy/dart.cpp @@ -1,12 +1,10 @@ -// $Id$ -// // Dart - Your average poison dart // Copyright (C) 2006 Christoph Sommer // -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,44 +12,43 @@ // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -// 02111-1307, USA. +// along with this program. If not, see . -#include +#include "badguy/dart.hpp" -#include "dart.hpp" +#include "audio/sound_manager.hpp" +#include "audio/sound_source.hpp" +#include "sprite/sprite.hpp" +#include "supertux/object_factory.hpp" namespace { - const float SPEED = 200; +const float DART_SPEED = 200; } -static const std::string SOUNDFILE = "sounds/flame.wav"; +static const std::string DART_SOUND = "sounds/flame.wav"; -Dart::Dart(const lisp::Lisp& reader) - : BadGuy(reader, "images/creatures/dart/dart.sprite"), parent(0) +Dart::Dart(const Reader& reader) : + BadGuy(reader, "images/creatures/dart/dart.sprite"), + parent(0), + sound_source() { physic.enable_gravity(false); countMe = false; - sound_manager->preload("sounds/darthit.wav"); - sound_manager->preload("sounds/stomp.wav"); + SoundManager::current()->preload(DART_SOUND); + SoundManager::current()->preload("sounds/darthit.wav"); + SoundManager::current()->preload("sounds/stomp.wav"); } -Dart::Dart(const Vector& pos, Direction d, const BadGuy* parent = 0) - : BadGuy(pos, d, "images/creatures/dart/dart.sprite"), parent(parent) +Dart::Dart(const Vector& pos, Direction d, const BadGuy* parent_ = 0) : + BadGuy(pos, d, "images/creatures/dart/dart.sprite"), + parent(parent_), + sound_source() { 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), parent(other.parent) -{ - sound_source.reset(sound_manager->create_sound_source(SOUNDFILE)); - sound_manager->preload("sounds/darthit.wav"); - sound_manager->preload("sounds/stomp.wav"); + SoundManager::current()->preload(DART_SOUND); + SoundManager::current()->preload("sounds/darthit.wav"); + SoundManager::current()->preload("sounds/stomp.wav"); } Dart::~Dart() @@ -69,25 +66,16 @@ Dart::updatePointers(const GameObject* from_object, GameObject* to_object) } void -Dart::write(lisp::Writer& writer) -{ - writer.start_list("dart"); - writer.write_float("x", start_position.x); - writer.write_float("y", start_position.y); - writer.end_list("dart"); -} - -void Dart::initialize() { - physic.set_velocity_x(dir == LEFT ? -::SPEED : ::SPEED); + physic.set_velocity_x(dir == LEFT ? -::DART_SPEED : ::DART_SPEED); sprite->set_action(dir == LEFT ? "flying-left" : "flying-right"); } void Dart::activate() { - sound_source.reset(sound_manager->create_sound_source(SOUNDFILE)); + sound_source = SoundManager::current()->create_sound_source(DART_SOUND); sound_source->set_position(get_pos()); sound_source->set_looping(true); sound_source->set_gain(1.0); @@ -112,7 +100,7 @@ Dart::active_update(float elapsed_time) void Dart::collision_solid(const CollisionHit& ) { - sound_manager->play("sounds/darthit.wav", get_pos()); + SoundManager::current()->play("sounds/darthit.wav", get_pos()); remove_me(); } @@ -123,7 +111,7 @@ Dart::collision_badguy(BadGuy& badguy, const CollisionHit& ) if (&badguy == parent) { return FORCE_MOVE; } - sound_manager->play("sounds/stomp.wav", get_pos()); + SoundManager::current()->play("sounds/stomp.wav", get_pos()); remove_me(); badguy.kill_fall(); return ABORT_MOVE; @@ -132,9 +120,9 @@ Dart::collision_badguy(BadGuy& badguy, const CollisionHit& ) HitResponse Dart::collision_player(Player& player, const CollisionHit& hit) { - sound_manager->play("sounds/stomp.wav", get_pos()); + SoundManager::current()->play("sounds/stomp.wav", get_pos()); remove_me(); return BadGuy::collision_player(player, hit); } -IMPLEMENT_FACTORY(Dart, "dart") +/* EOF */