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>2013-01-01 15:20:14 +0000
committerStijn Buys <ingar@osirion.org>2013-01-01 15:20:14 +0000
commit614ce1267772d67825a32fb7495a049cd6498fe5 (patch)
tree20374ef083b62524e831bce2a8a89fcc70a63f42 /src/game/base
parent18969b1c444597741547598d35e8f0f97acd39dc (diff)
Initial support for turret-style weapons.
Diffstat (limited to 'src/game/base')
-rw-r--r--src/game/base/ship.cc9
-rw-r--r--src/game/base/shipmodel.cc12
2 files changed, 19 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) {
diff --git a/src/game/base/shipmodel.cc b/src/game/base/shipmodel.cc
index ba87024..7d54ee2 100644
--- a/src/game/base/shipmodel.cc
+++ b/src/game/base/shipmodel.cc
@@ -235,6 +235,7 @@ void ShipModel::generate_info()
add_line("");
add_line("^BSpecifications:^N");
+
std::stringstream str;
str << "price: ^B" << price() << " ^Ncredits";
add_line(str.str());
@@ -259,6 +260,17 @@ void ShipModel::generate_info()
if (dockable()) {
add_line("^Bdockable");
}
+
+ if (modelname().size()) {
+ // FIXME the model has to be loaded to got slot information
+ /*
+ int nbcannons = 0;
+ int nbturrets = 0;
+
+ add_line("");
+ add_line("^BWeapons:^N");
+ */
+ }
}
ShipModel *ShipModel::find(const std::string & label)