Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/entity.cc16
-rw-r--r--src/core/entity.h10
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