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.h')
-rw-r--r--src/game/base/shipmodel.h43
1 files changed, 39 insertions, 4 deletions
diff --git a/src/game/base/shipmodel.h b/src/game/base/shipmodel.h
index c7aa2ba..9da50a6 100644
--- a/src/game/base/shipmodel.h
+++ b/src/game/base/shipmodel.h
@@ -11,6 +11,7 @@
#include "core/info.h"
#include "core/entity.h"
+#include "base/template.h"
namespace game
{
@@ -76,6 +77,18 @@ public:
inline const float maxcargo() const {
return shipmodel_maxcargo;
}
+
+ /// ship radius
+ inline const float radius() const {
+ return shipmodel_radius;
+ }
+
+ /// entity template
+ inline const Template *model_template() const {
+ return shipmodel_template;
+ }
+
+protected:
/* ---- mutators -------------------------------------------------- */
@@ -129,11 +142,22 @@ public:
inline void set_dock(const bool dock) {
shipmodel_dock = dock;
}
+
+ /// set radius
+ inline void set_radius(const float radius) {
+ shipmodel_radius = radius;
+ }
+
+ /// set entity template
+ inline void set_template(const Template *model_template) {
+ shipmodel_template = model_template;
+ }
+public:
void generate_info();
void buy(core::EntityControlable *buyer, core::Entity *seller);
-
+
/* --- static registry functions ---------------------------------- */
static ShipModel *find(const std::string & label);
@@ -143,10 +167,15 @@ public:
static bool init();
static void list();
+
+ static inline const core::InfoType *infotype() {
+ return shipmodel_infotype;
+ }
- static core::InfoType *shipmodel_infotype;
-
-private:
+private:
+ /* --- attributes ------------------------------------------------- */
+
+ float shipmodel_radius;
float shipmodel_mass;
float shipmodel_impulse_force;
float shipmodel_thrust_force;
@@ -159,6 +188,12 @@ private:
bool shipmodel_jumpdrive;
bool shipmodel_dock;
+
+ const Template *shipmodel_template;
+
+ /* --- static ----------------------------------------------------- */
+
+ static core::InfoType *shipmodel_infotype;
};
}