/* intro/convoy.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_INTRO_CONVOY_H__ #define __INCLUDED_INTRO_CONVOY_H__ #include #include "core/core.h" #include "math/color.h" namespace intro { class Member : public core::EntityControlable { public: Member(std::string const &model); ~Member(); void frame(float seconds); }; class Convoy { public: Convoy(core::Zone *zone); ~Convoy(); void add(const char *model); void add(const std::string &model); void frame(float seconds); void set_color(const math::Color &color); void set_color_second(const math::Color &color); void set_location(math::Vector3f const &location); void set_speed(const float speed); void change_direction(float angle); private: typedef std::list Members; Members convoy_members; core::Zone *convoy_zone; math::Color convoy_color; math::Color convoy_color_second; math::Vector3f convoy_location; math::Axis convoy_axis; float convoy_speed; }; } #endif // __INCLUDED_INTRO_CONVOY_H__