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.cc49
1 files changed, 24 insertions, 25 deletions
diff --git a/src/game/base/ship.cc b/src/game/base/ship.cc
index 726729a..f88afd1 100644
--- a/src/game/base/ship.cc
+++ b/src/game/base/ship.cc
@@ -24,27 +24,27 @@ namespace game
const float MIN_DELTA = 0.000001f;
-Ship::Ship(core::Player *owner, ShipModel *shipmodel) : core::EntityControlable()
+Ship::Ship(core::Player *owner, const ShipModel *shipmodel) : core::EntityControlable()
{
assert(shipmodel);
+ ship_shipmodel = shipmodel;
entity_moduletypeid = ship_enttype;
-
set_radius(0);
// apply template settings
- if (shipmodel->model_template()) {
- shipmodel->model_template()->apply(this);
+ if (ship_shipmodel->model_template()) {
+ ship_shipmodel->model_template()->apply(this);
}
// apply ship model settings
// shipmodel overrides template model and radius
- if (shipmodel->modelname().size()) {
- set_modelname(shipmodel->modelname());
- }
- if (shipmodel->radius()) {
- set_radius(shipmodel->radius());
+ if (ship_shipmodel->modelname().size()) {
+ set_modelname(ship_shipmodel->modelname());
}
+ if (ship_shipmodel->radius()) {
+ set_radius(ship_shipmodel->radius());
+ }
if (!radius()) {
if (model()) {
set_radius(model()->radius());
@@ -53,17 +53,17 @@ Ship::Ship(core::Player *owner, ShipModel *shipmodel) : core::EntityControlable(
if (!radius()) {
set_radius(0.5f);
}
-
- ship_shipmodel = shipmodel;
- set_info(shipmodel);
- set_name(shipmodel->name());
- ship_jumpdrive = shipmodel->jumpdrive();
+
+ set_name(ship_shipmodel->name());
+ set_info(ship_shipmodel);
+
+ ship_jumpdrive = ship_shipmodel->jumpdrive();
ship_impulsedrive_timer = 0;
ship_jumpdrive_timer = 0;
ship_jumpdepart = 0;
if (owner) {
- // this ship is owned by a player
+ // this ship is owned by a player,
// player colors override template colors
set_owner(owner);
get_color().assign(owner->color());
@@ -74,13 +74,12 @@ Ship::Ship(core::Player *owner, ShipModel *shipmodel) : core::EntityControlable(
// add an inventory
set_inventory(new core::Inventory());
- inventory()->set_capacity(shipmodel->maxcargo());
+ inventory()->set_capacity(ship_shipmodel->maxcargo());
} else {
- set_name(shipmodel->name());
- set_label(shipmodel->label());
+ set_label(ship_shipmodel->label());
}
- if (shipmodel->dockable()) {
+ if (ship_shipmodel->dockable()) {
using core::MenuDescription;
using core::ButtonDescription;
@@ -98,12 +97,12 @@ Ship::Ship(core::Player *owner, ShipModel *shipmodel) : core::EntityControlable(
set_flag(core::Entity::Dockable);
}
- set_mass(shipmodel->mass());
- set_impulse_force(shipmodel->impulse_force());
- set_thrust_force(shipmodel->thrust_force());
- set_strafe_force(shipmodel->strafe_force());
- set_turn_force(shipmodel->turn_force());
- set_roll_force(shipmodel->roll_force());
+ set_mass(ship_shipmodel->mass());
+ set_impulse_force(ship_shipmodel->impulse_force());
+ set_thrust_force(ship_shipmodel->thrust_force());
+ set_strafe_force(ship_shipmodel->strafe_force());
+ set_turn_force(ship_shipmodel->turn_force());
+ set_roll_force(ship_shipmodel->roll_force());
reset();