diff options
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/entity.cc | 16 | ||||
| -rw-r--r-- | src/core/entity.h | 10 | 
2 files changed, 24 insertions, 2 deletions
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  | 
