From 614ce1267772d67825a32fb7495a049cd6498fe5 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Tue, 1 Jan 2013 15:20:14 +0000 Subject: Initial support for turret-style weapons. --- src/model/tags.h | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) (limited to 'src/model/tags.h') 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; }; -- cgit v1.2.3