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 level_loader_toggle.hpp
26
* \brief This class starts a level after a given delay.
27
* \author Julien Jorge
29
#ifndef __BEAR_LEVEL_LOADER_TOGGLE_HPP__
30
#define __BEAR_LEVEL_LOADER_TOGGLE_HPP__
32
#include "engine/item_brick/item_with_toggle.hpp"
33
#include "engine/base_item.hpp"
34
#include "engine/export.hpp"
35
#include "generic_items/class_export.hpp"
40
* \brief This item starts a level when activated.
42
* The custom fields of this class are :
43
* - \a fade_duration: real, the duration of the fading effect before starting
44
* the level (default = 1),
45
* - \a level: string, required. The name of the game variable containing the
46
* name of the level to load or the path of the level itself,
47
* - \a transition_layer_name: string, the name of the transition layer
48
* receiving the fade effect (default = none).
49
* - any field supported by the parent class.
51
* \author Julien Jorge
53
class GENERIC_ITEMS_EXPORT level_loader_toggle:
54
public engine::item_with_toggle<engine::base_item>
56
DECLARE_BASE_ITEM(level_loader_toggle);
59
/** \brief The type of the parent class. */
60
typedef engine::item_with_toggle<engine::base_item> super;
63
level_loader_toggle();
65
bool set_string_field( const std::string& name, const std::string& value );
66
bool set_real_field( const std::string& name, double value );
68
bool is_valid() const;
71
void on_toggle_on( engine::base_item* activator );
73
std::string get_string_from_vars( const std::string& name ) const;
76
/** \brief The path of the level to load. */
77
std::string m_level_path;
79
/** \brief The name of the transition layer receiving the fade effect. */
80
std::string m_transition_layer_name;
82
/** \brief The duration of the fading. */
83
universe::time_type m_fade_duration;
85
}; // class level_loader_toggle
88
#endif // __BEAR_LEVEL_LOADER_TOGGLE_HPP__