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>2010-10-20 14:44:12 +0000
committerStijn Buys <ingar@osirion.org>2010-10-20 14:44:12 +0000
commit21e6267e3f998a467ca3b5ec225e6d03653aed97 (patch)
treec52570e35ee8b91c271da9e6588a2d7b527ce3e0 /src/game/base/shipmodel.cc
parenta76489275b7c66ab0264e8e29c4d4d08c22e3e16 (diff)
advanced ship physics specifications, specs game function
Diffstat (limited to 'src/game/base/shipmodel.cc')
-rw-r--r--src/game/base/shipmodel.cc42
1 files changed, 25 insertions, 17 deletions
diff --git a/src/game/base/shipmodel.cc b/src/game/base/shipmodel.cc
index 3630d11..de68413 100644
--- a/src/game/base/shipmodel.cc
+++ b/src/game/base/shipmodel.cc
@@ -69,15 +69,23 @@ bool ShipModel::init()
} else if (shipsini.got_key_bool("dock", b)) {
shipmodel->set_dock(b);
continue;
- } else if (shipsini.got_key_float("acceleration", f)) {
- shipmodel->set_acceleration(f);
- continue;
} else if (shipsini.got_key_float("maxspeed", f)) {
- shipmodel->set_maxspeed(f);
+ shipmodel->set_maxspeed(f * 0.01f);
+ continue;
+ } else if (shipsini.got_key_float("impulse", f)) {
+ shipmodel->set_impulse_force(f);
+ continue;
+ } else if (shipsini.got_key_float("thrust", f)) {
+ shipmodel->set_thrust_force(f);
continue;
- } else if (shipsini.got_key_float("turnspeed", f)) {
- math::clamp(f, 0.0f, 90.0f);
- shipmodel->set_turnspeed(f);
+ } else if (shipsini.got_key_float("strafe", f)) {
+ shipmodel->set_strafe_force(f);
+ continue;
+ } else if (shipsini.got_key_float("torque", f)) {
+ shipmodel->set_torque_force(f);
+ continue;
+ } else if (shipsini.got_key_float("mass", f)) {
+ shipmodel->set_mass(f);
continue;
} else {
shipsini.unkown_key();
@@ -115,11 +123,15 @@ bool ShipModel::init()
ShipModel::ShipModel() : core::Info(shipmodel_infotype)
{
+ shipmodel_maxspeed = 0;
//default specifications
- shipmodel_acceleration = 1.0f; // thruster acceleration in game untits/second^2
- shipmodel_maxspeed = 3.0f; // maximum thruster speed in game units/second
- shipmodel_turnspeed = 45.0f; // 45 degrees per second
- shipmodel_maxcargo = 0;
+ shipmodel_mass = 10.0f;
+ shipmodel_thrust_force = 0.8f;
+ shipmodel_impulse_force = 4.0f;
+ shipmodel_strafe_force = 0.1f;
+ shipmodel_torque_force = 2.5f;
+
+ shipmodel_maxcargo = 0.0f;
shipmodel_jumpdrive = false; // no jumpdrive capability
shipmodel_dock = false; // not dockable
@@ -150,14 +162,10 @@ void ShipModel::generate_info()
add_text(str.str());
str.str("");
- str << "response: ^B" << turnspeed() << " ^Ndps";
+ str << "mass: ^B" << mass() << " ^Nmetric tonnes";
add_text(str.str());
str.str("");
-
- str << "acceleration: ^B" << acceleration() << " ^Nstandard";
- add_text(str.str());
- str.str("");
-
+
if (jumpdrive()) {
add_text("^Bhyperspace jump drive");
}