4
Copyright (C) 2005-2010 Julien Jorge, Sebastien Angibaud
6
This program is free software; you can redistribute it and/or modify it
7
under the terms of the GNU General Public License as published by the
8
Free Software Foundation; either version 2 of the License, or (at your
9
option) any later version.
11
This program is distributed in the hope that it will be useful, but WITHOUT
12
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
16
You should have received a copy of the GNU General Public License along
17
with this program; if not, write to the Free Software Foundation, Inc.,
18
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20
contact: plee-the-bear@gamned.org
22
Please add the tag [Bear] in the subject of your mails.
25
* \file link_remover.cpp
26
* \brief Implementation of the bear::link_remover class.
27
* \author Julien Jorge
29
#include "generic_items/link/link_remover.hpp"
31
#include "engine/level_globals.hpp"
33
#include "engine/export.hpp"
35
BASE_ITEM_EXPORT( link_remover, bear )
37
/*----------------------------------------------------------------------------*/
39
* \brief Set a field of type string.
40
* \param name The name of the field.
41
* \param value The new value of the field.
42
* \return false if the field "name" is unknow, true otherwise.
44
bool bear::link_remover::set_string_field
45
( const std::string& name, const std::string& value )
49
if (name == "link_remover.sound")
52
get_level_globals().load_sound(m_sound_name);
55
ok = super::set_string_field(name, value);
58
} // link_remover::set_string_field()
60
/*----------------------------------------------------------------------------*/
62
* \brief Remove the links of a colliding item.
63
* \param that The other item of the collision.
64
* \param info Some informations about the collision.
66
void bear::link_remover::collision_remove_links
67
( engine::base_item& that, universe::collision_info& info )
69
that.remove_all_links();
71
if (!m_sound_name.empty())
72
get_level_globals().play_sound(m_sound_name);
73
} // link_remover::collision_remove_links()
75
/*----------------------------------------------------------------------------*/
77
* \brief Call collision_remove_links().
78
* \param that The other item of the collision.
79
* \param info Some informations about the collision.
81
void bear::link_remover::collision
82
( engine::base_item& that, universe::collision_info& info )
84
collision_remove_links(that, info);
85
} // link_remover::collision()