Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/base/collision.cc')
-rw-r--r--src/game/base/collision.cc25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/game/base/collision.cc b/src/game/base/collision.cc
index 728ad14..215764c 100644
--- a/src/game/base/collision.cc
+++ b/src/game/base/collision.cc
@@ -8,26 +8,27 @@
#include "base/game.h"
#include "core/zone.h"
#include "math/functions.h"
-#include "math/vector3f.h"
+#include "math/vector3f.h"
-namespace game {
+namespace game
+{
void Collision::distance_test(core::EntityControlable *first, core::Entity *second)
{
if (!first->owner())
return;
-
+
if (first->state() == core::Entity::Docked)
return;
-
+
// FIXME - use distancesquared
const float d = math::distance(first->location(), second->location());
const float r = first->radius() + second->radius();
-
+
if (second->type() == core::Entity::Globe) {
// collision with a star or a planet
-
- if ( (d-r) < 0.0f) {
+
+ if ((d-r) < 0.0f) {
// crash zone
if ((first->moduletype() == ship_enttype) && (first->state() != core::Entity::Destroyed)) {
first->owner()->send_warning("^RBOOM!^N");
@@ -36,9 +37,9 @@ void Collision::distance_test(core::EntityControlable *first, core::Entity *seco
}
} else if (first->owner()->last_warning() + 5.0f < core::application()->time()) {
// warning zone: star corona or planet atmosphere
- if ((second->moduletype() == star_enttype) && (d-r < 50.0f)) {
+ if ((second->moduletype() == star_enttype) && (d-r < 50.0f)) {
first->owner()->send_warning("^3Warning: entering star corona!^N");
- } else if ((second->moduletype() == planet_enttype) && (d-r < 15.0f)) {
+ } else if ((second->moduletype() == planet_enttype) && (d-r < 15.0f)) {
first->owner()->send_warning("^3Warning: entering planet gravity well!^N");
}
}
@@ -49,14 +50,14 @@ void Collision::frame_zone(core::Zone *zone)
{
core::Zone::Content::iterator first;
core::Zone::Content::iterator second;
-
+
for (first = zone->content().begin(); first != zone->content().end(); first ++) {
second = first;
for (second++; second != zone->content().end(); second++) {
- if ( (*first)->type() == core::Entity::Controlable) {
+ if ((*first)->type() == core::Entity::Controlable) {
distance_test(static_cast<core::EntityControlable *>((*first)), (*second));
} else if ((*second)->type() == core::Entity::Controlable) {
- distance_test(static_cast<core::EntityControlable *> ((*second)), (*first));
+ distance_test(static_cast<core::EntityControlable *>((*second)), (*first));
}
}
}