From 21e6267e3f998a467ca3b5ec225e6d03653aed97 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Wed, 20 Oct 2010 14:44:12 +0000 Subject: advanced ship physics specifications, specs game function --- src/game/base/shipmodel.cc | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) (limited to 'src/game/base/shipmodel.cc') 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"); } -- cgit v1.2.3