Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
Diffstat (limited to 'src/game')
-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)