From 654b908c2ed0c7708b609beb9841f06c4d982cc3 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sun, 26 Oct 2008 13:35:59 +0000 Subject: intro.ini updates --- src/game/intro/convoy.cc | 43 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) (limited to 'src/game/intro/convoy.cc') diff --git a/src/game/intro/convoy.cc b/src/game/intro/convoy.cc index 8174dd6..226f8fa 100644 --- a/src/game/intro/convoy.cc +++ b/src/game/intro/convoy.cc @@ -8,6 +8,9 @@ namespace intro { + +/* ---- class Member ----------------------------------------------- */ + Member::Member(std::string const &model) : core::EntityControlable(0, 1) { set_name("Convoy member"); @@ -16,6 +19,7 @@ Member::Member(std::string const &model) : core::EntityControlable(0, 1) entity_modelname = "ships/" + model; entity_thrust = 1.0f; +/* entity_speed = 1.0f; entity_location.x = -16.0f; @@ -23,6 +27,7 @@ Member::Member(std::string const &model) : core::EntityControlable(0, 1) entity_location.z = math::randomf(8.0f) - 6.0f; entity_axis.change_direction(15.0f); +*/ } Member::~Member() @@ -34,9 +39,12 @@ void Member::frame(float seconds) entity_location += entity_axis.forward() * speed() * thrust() * seconds; } +/* ---- class convoy ----------------------------------------------- */ + Convoy::Convoy(core::Zone *zone) { convoy_zone = zone; + convoy_speed = 1; } Convoy::~Convoy() @@ -44,27 +52,56 @@ Convoy::~Convoy() convoy_members.clear(); } -void Convoy::set_color(math::Color const &color) +void Convoy::set_color(const math::Color &color) { convoy_color.assign(color); } -void Convoy::set_color_second(math::Color const &color) +void Convoy::set_color_second(const math::Color &color) { convoy_color_second.assign(color); } +void Convoy::set_location(const math::Vector3f &location) +{ + convoy_location.assign(location); +} + +void Convoy::change_direction(float angle) +{ + convoy_axis.change_direction(angle); +} + +void Convoy::set_speed(const float speed) +{ + convoy_speed = speed; +} + void Convoy::add(const char *model) { add(std::string(model)); } -void Convoy::add(std::string const &model) +void Convoy::add(const std::string &model) { + float d = 0; + Member *member = new Member(model); convoy_members.push_back(member); member->set_zone(convoy_zone); member->entity_color.assign(convoy_color); member->entity_color_second.assign(convoy_color_second); + + member->entity_thrust = 1.0f; + member->entity_speed = convoy_speed; + + member->entity_location.assign(convoy_location); + d = ((float) convoy_members.size()) * 0.5f; + + member->entity_location.x += math::randomf((float) convoy_members.size()) -d; + member->entity_location.y += math::randomf((float) convoy_members.size()) -d; + member->entity_location.z += (math::randomf((float) convoy_members.size()) -d) * 0.5f; + + member->entity_axis.change_direction(15.0f); } void Convoy::frame(float seconds) -- cgit v1.2.3