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/ship.cc')
-rw-r--r--src/game/base/ship.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/game/base/ship.cc b/src/game/base/ship.cc
index 219cb0c..4c3885a 100644
--- a/src/game/base/ship.cc
+++ b/src/game/base/ship.cc
@@ -925,10 +925,15 @@ void Ship::frame(const unsigned long elapsed)
math::Vector3f projectile_direction(target_aim - projectile_location);
projectile_direction.normalize();
float cosa = math::dotproduct(projectile_direction, projectile_axis.forward());
+
+
// fire a projectile if the angle between the aim direction and the slot's forward direction is small enough
- // TODO configurable aim cone
- if (cosa > 0.5f) {
+
+ // we only need half the cone angle for the cosine calculation
+ float conecos = cosf( slot->cone() / 360.0f * M_PI);
+
+ if (cosa >= conecos) {
// aim
math::Vector3f normal(math::crossproduct(projectile_direction, projectile_axis.forward()));
if (normal.length() > MIN_DELTA) {