From ce78048419f2cf6f86aeb22b78420da2d5523ba2 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sun, 29 Sep 2013 13:14:44 +0000 Subject: build-0.2.5-svn1327 --- src/core/entity.cc | 16 ++++++++++++++++ src/core/entity.h | 10 ++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) (limited to 'src/core') diff --git a/src/core/entity.cc b/src/core/entity.cc index 589d132..b7d7646 100644 --- a/src/core/entity.cc +++ b/src/core/entity.cc @@ -1281,6 +1281,22 @@ void EntityControlable::set_target_controlflags(int controlflags) } } +void EntityControlable::set_target_controlflag(const ControlFlag controlflag) +{ + if (!has_controlflag(controlflag); + target_controlflags = target_controlflags | controlflag; + set_dirty(); + } +} + +void EntityControlable::unset_target_controlflag(const ControlFlag controlflag) +{ + if (has_controlflag(controlflag); + target_controlflags = target_controlflags & ~controlflag; + set_dirty(); + } +} + void EntityControlable::set_zone(Zone *zone) { if (entity_zone == zone) diff --git a/src/core/entity.h b/src/core/entity.h index df65843..c748e98 100644 --- a/src/core/entity.h +++ b/src/core/entity.h @@ -684,7 +684,7 @@ class EntityControlable : public EntityDynamic public: /// control flags - enum ControlFlags {ControlFlagNone = 0, ControlFlagFire = 1}; + enum ControlFlags {ControlFlagNone = 0, ControlFlagFire = 1, ControlFlagAutoPilot = 2, ControlFlagAutoDock = 4, ControlFlagAutoLevel = 8 }; /// bullet action interface class class ActionInterface: public btActionInterface { @@ -787,7 +787,13 @@ public: /// set target controlflags void set_target_controlflags(int controlflags); - + + /// set target control flags + void set_target_controlflag(const ControlFlag controlflag); + + /// unset target control flag + void unset_target_controlflag(const ControlFlag controlflag); + /** * @brief set the zone the entity is currently in * this fuction removes the entity from its previous zone -- cgit v1.2.3