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/shipmodel.cc')
-rw-r--r--src/game/base/shipmodel.cc34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/game/base/shipmodel.cc b/src/game/base/shipmodel.cc
index d9a9ed7..412fd14 100644
--- a/src/game/base/shipmodel.cc
+++ b/src/game/base/shipmodel.cc
@@ -339,4 +339,38 @@ void ShipModel::buy(core::EntityControlable *buyer, core::Entity *seller)
}
+void ShipModel::apply(core::Entity *entity) const
+{
+ // apply template settings if available
+ if (model_template())
+ model_template()->apply(entity);
+
+ // apply entity settings
+ if (label().size())
+ entity->set_label(label());
+
+ if (name().size())
+ entity->set_name(name());
+
+ if (modelname().size())
+ entity->set_modelname(modelname());
+
+ if (radius())
+ entity->set_radius(radius());
+}
+
+void ShipModel::apply(Ship *ship) const
+{
+ // apply ship model settings
+ apply (static_cast<core::Entity *>(ship));
+
+ ship->set_mass(mass());
+ ship->set_impulse_force(impulse_force());
+ ship->set_thrust_force(thrust_force());
+ ship->set_strafe_force(strafe_force());
+ ship->set_turn_force(turn_force());
+ ship->set_roll_force(roll_force());
+ ship->set_jumpdrive(jumpdrive());
+}
+
}