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.cc16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/game/base/ship.cc b/src/game/base/ship.cc
index 641894e..38ade38 100644
--- a/src/game/base/ship.cc
+++ b/src/game/base/ship.cc
@@ -26,10 +26,21 @@ const float MIN_DELTA = 0.000001f;
Ship::Ship(core::Player *owner, ShipModel *shipmodel) : core::EntityControlable()
{
+ assert(shipmodel);
+
entity_moduletypeid = ship_enttype;
- set_modelname(shipmodel->modelname());
- set_name(shipmodel->name());
+ // apply template settings
+ if (shipmodel->model_template()) {
+ shipmodel->model_template();
+ }
+
+ // apply ship model settings
+ // ship model overrides template model
+ if (shipmodel->modelname().size()) {
+ set_modelname(shipmodel->modelname());
+ }
+ set_name(shipmodel->name());
set_info(shipmodel);
ship_shipmodel = shipmodel;
@@ -40,6 +51,7 @@ Ship::Ship(core::Player *owner, ShipModel *shipmodel) : core::EntityControlable(
if (owner) {
// this ship is owned by a player
+ // player colors override template colors
set_owner(owner);
get_color().assign(owner->color());
get_color_second().assign(owner->color_second());