Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/model/tags.h')
-rw-r--r--src/model/tags.h34
1 files changed, 26 insertions, 8 deletions
diff --git a/src/model/tags.h b/src/model/tags.h
index 200c977..7f7d5d7 100644
--- a/src/model/tags.h
+++ b/src/model/tags.h
@@ -702,10 +702,12 @@ private:
class Weapon : public Tag
{
public:
+ enum Type {Unmountable = 0, Cannon = 1, Turret = 2 };
+
/**
* @brief default constructor
* */
- Weapon();
+ Weapon(const Type type = Cannon);
/**
* @brief copy constructor
@@ -724,19 +726,29 @@ public:
}
/**
- * @brief weapon slot radius, default is 0.01f
+ * @brief weapon fire cone, in degrees
* */
- inline float radius() const
+ inline float cone() const
+ {
+ return weapon_cone;
+ }
+
+ /**
+ * @brief weapon slot type
+ * */
+ inline const Type type() const
{
- return weapon_radius;
+ return weapon_type;
}
+
+ /* ---- mutators ------------------------------------------- */
/**
- * @brief set weapon slot radius
+ * @brief set weapon fire cone, in degrees
* */
- inline void set_radius(const float radius)
+ inline void set_cone(const float cone)
{
- weapon_radius = radius;
+ weapon_cone = cone;
}
/**
@@ -746,6 +758,11 @@ public:
{
weapon_axis.assign(axis);
}
+
+ /**
+ * @brief set weapon slot type
+ * */
+; void set_type(const Type type);
/* ---- actors --------------------------------------------- */
@@ -757,8 +774,9 @@ public:
}
private:
- float weapon_radius;
+ Type weapon_type;
math::Axis weapon_axis;
+ float weapon_cone;
};