diff options
Diffstat (limited to 'src/game/base/ship.cc')
-rw-r--r-- | src/game/base/ship.cc | 16 |
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()); |