Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-10-26 13:35:59 +0000
committerStijn Buys <ingar@osirion.org>2008-10-26 13:35:59 +0000
commit654b908c2ed0c7708b609beb9841f06c4d982cc3 (patch)
treeaa092f5522e801b34676fc4c53e8ea0072c9e980 /src/game/intro/convoy.cc
parent95576727e1e328c18dcc6228dc37762b39464dc1 (diff)
intro.ini updates
Diffstat (limited to 'src/game/intro/convoy.cc')
-rw-r--r--src/game/intro/convoy.cc43
1 files changed, 40 insertions, 3 deletions
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)