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-11-12 00:03:31 +0000
committerStijn Buys <ingar@osirion.org>2010-11-12 00:03:31 +0000
commitd07d7e0d0ba022d555f418e9a072d71c190ed225 (patch)
tree40428732c2eab0796e7c4b8b8089cbf58ecea76e /src/game/base/ship.cc
parent128d1f7b752a25f2fd2ee105c9acfe8f9d1b9be5 (diff)
read factions.ini and add te ablity to apply faction colors to entities,
read templates.ini and add te ablity to apply template settings to entities.
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());