Index: code/trunk/src/modules/objects/triggers/CheckPoint.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/CheckPoint.cc	(revision 11020)
+++ code/trunk/src/modules/objects/triggers/CheckPoint.cc	(revision 11071)
@@ -56,5 +56,5 @@
 
         this->setRadarObjectColour(ColourValue::Green);
-        this->setRadarObjectShape(RadarViewable::Dot);
+        this->setRadarObjectShape(RadarViewable::Shape::Dot);
         this->setRadarVisibility(false);
 
Index: code/trunk/src/modules/objects/triggers/DistanceMultiTrigger.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/DistanceMultiTrigger.cc	(revision 11020)
+++ code/trunk/src/modules/objects/triggers/DistanceMultiTrigger.cc	(revision 11071)
@@ -58,5 +58,5 @@
 
         this->distance_ = 100.0f;
-        this->setBeaconModeDirect(distanceMultiTriggerBeaconMode::off);
+        this->setBeaconModeDirect(DistanceMultiTriggerBeaconMode::off);
         this->targetName_ = "";
         this->beaconMask_.exclude(Class(BaseObject));
@@ -97,13 +97,13 @@
     {
 
-        std::queue<MultiTriggerState*>* queue = NULL;
+        std::queue<MultiTriggerState*>* queue = nullptr;
 
         // Check for objects that were in range but no longer are. Iterate through all objects, that are in range.
-        for(std::set<WeakPtr<WorldEntity> >::iterator it = this->range_.begin(); it != this->range_.end(); )
+        for(std::set<WeakPtr<WorldEntity>>::iterator it = this->range_.begin(); it != this->range_.end(); )
         {
             WorldEntity* entity = *it;
 
             // If the entity no longer exists.
-            if(entity == NULL)
+            if(entity == nullptr)
             {
                 this->range_.erase(it++);
@@ -118,5 +118,5 @@
 
                 // If no queue has been created, yet.
-                if(queue == NULL)
+                if(queue == nullptr)
                     queue = new std::queue<MultiTriggerState*>();
 
@@ -136,5 +136,5 @@
         ClassTreeMask targetMask = this->getTargetMask();
         // If we are in identify-mode another target mask has to be applies to find the DistanceTriggerBeacons.
-        if(this->beaconMode_ == distanceMultiTriggerBeaconMode::identify)
+        if(this->beaconMode_ == DistanceMultiTriggerBeaconMode::identify)
             targetMask = this->beaconMask_;
 
@@ -145,5 +145,5 @@
 
             // If the DistanceMultiTrigger is in identify-mode and the DistanceTriggerBeacon attached to the object has the wrong name we ignore it.
-            if(this->beaconMode_ == distanceMultiTriggerBeaconMode::identify)
+            if(this->beaconMode_ == DistanceMultiTriggerBeaconMode::identify)
             {
                 if(entity->getName() != this->targetName_)
@@ -155,12 +155,12 @@
             
             // If the DistanceMultiTrigger is in exclude mode and the DistanceTriggerBeacon attached to the object has the right name, we ignore it.
-            if(this->beaconMode_ == distanceMultiTriggerBeaconMode::exclude)
+            if(this->beaconMode_ == DistanceMultiTriggerBeaconMode::exclude)
             {
                 
-                const std::set<WorldEntity*> attached = entity->getAttachedObjects();
+                const std::set<WorldEntity*> attachedObjects = entity->getAttachedObjects();
                 bool found = false;
-                for(std::set<WorldEntity*>::const_iterator it = attached.begin(); it != attached.end(); it++)
+                for(WorldEntity* attachedObject : attachedObjects)
                 {
-                    if((*it)->isA(ClassIdentifier<DistanceTriggerBeacon>::getIdentifier()) && static_cast<DistanceTriggerBeacon*>(*it)->getName() == this->targetName_)
+                    if(attachedObject->isA(ClassIdentifier<DistanceTriggerBeacon>::getIdentifier()) && static_cast<DistanceTriggerBeacon*>(attachedObject)->getName() == this->targetName_)
                     {
                         found = true;
@@ -182,9 +182,9 @@
 
                 // Change the entity to the parent of the DistanceTriggerBeacon (if in identify-mode), which is the entity to which the beacon is attached.
-                if(this->beaconMode_ == distanceMultiTriggerBeaconMode::identify)
+                if(this->beaconMode_ == DistanceMultiTriggerBeaconMode::identify)
                     entity = entity->getParent();
 
                 // If no queue has been created, yet.
-                if(queue == NULL)
+                if(queue == nullptr)
                     queue = new std::queue<MultiTriggerState*>();
 
@@ -206,5 +206,5 @@
         The mode as an enum.
     */
-    void DistanceMultiTrigger::setBeaconModeDirect(distanceMultiTriggerBeaconMode::Value mode)
+    void DistanceMultiTrigger::setBeaconModeDirect(DistanceMultiTriggerBeaconMode mode)
     {
         this->beaconMode_ = mode;
@@ -221,9 +221,9 @@
         switch(this->getBeaconModeDirect())
         {
-            case distanceMultiTriggerBeaconMode::off :
+            case DistanceMultiTriggerBeaconMode::off :
                 return DistanceMultiTrigger::beaconModeOff_s;
-            case distanceMultiTriggerBeaconMode::identify:
+            case DistanceMultiTriggerBeaconMode::identify:
                 return DistanceMultiTrigger::beaconModeIdentify_s;
-            case distanceMultiTriggerBeaconMode::exclude:
+            case DistanceMultiTriggerBeaconMode::exclude:
                 return DistanceMultiTrigger::beaconModeExlcude_s;
             default :
@@ -242,9 +242,9 @@
     {
         if(mode == DistanceMultiTrigger::beaconModeOff_s)
-            this->setBeaconModeDirect(distanceMultiTriggerBeaconMode::off);
+            this->setBeaconModeDirect(DistanceMultiTriggerBeaconMode::off);
         else if(mode == DistanceMultiTrigger::beaconModeIdentify_s)
-            this->setBeaconModeDirect(distanceMultiTriggerBeaconMode::identify);
+            this->setBeaconModeDirect(DistanceMultiTriggerBeaconMode::identify);
         else if(mode == DistanceMultiTrigger::beaconModeExlcude_s)
-            this->setBeaconModeDirect(distanceMultiTriggerBeaconMode::exclude);
+            this->setBeaconModeDirect(DistanceMultiTriggerBeaconMode::exclude);
         else
             orxout(internal_error, context::triggers) << "Invalid beacon mode in DistanceMultiTrigger." << endl;
@@ -261,5 +261,5 @@
     bool DistanceMultiTrigger::addToRange(WorldEntity* entity)
     {
-        std::pair<std::set<WeakPtr<WorldEntity> >::iterator, bool> pair = this->range_.insert(entity);
+        std::pair<std::set<WeakPtr<WorldEntity>>::iterator, bool> pair = this->range_.insert(entity);
         return pair.second;
     }
Index: code/trunk/src/modules/objects/triggers/DistanceMultiTrigger.h
===================================================================
--- code/trunk/src/modules/objects/triggers/DistanceMultiTrigger.h	(revision 11020)
+++ code/trunk/src/modules/objects/triggers/DistanceMultiTrigger.h	(revision 11071)
@@ -55,12 +55,9 @@
     @ingroup MultiTrigger
     */
-    namespace distanceMultiTriggerBeaconMode
-    {
-        enum Value {
-            off, //!< The DistanceMultiTrigger is not in <em>beacon-mode</em>.
-            identify, //!< The DistanceTrigger is in <em>identify-mode</em>.
-            exclude //!< The DistanceTrigger is in <em>exclude-mode</em>.
-        };
-    }
+    enum class DistanceMultiTriggerBeaconMode {
+        off, //!< The DistanceMultiTrigger is not in <em>beacon-mode</em>.
+        identify, //!< The DistanceTrigger is in <em>identify-mode</em>.
+        exclude //!< The DistanceTrigger is in <em>exclude-mode</em>.
+    };
 
     /**
@@ -113,10 +110,10 @@
                 { return this->distance_; }
             
-            void setBeaconModeDirect(distanceMultiTriggerBeaconMode::Value mode); // Set the beacon mode.
+            void setBeaconModeDirect(DistanceMultiTriggerBeaconMode mode); // Set the beacon mode.
             /**
             @brief Get the beacon mode.
             @return Returns the mode as an enum.
             */
-            inline distanceMultiTriggerBeaconMode::Value getBeaconModeDirect(void) const
+            inline DistanceMultiTriggerBeaconMode getBeaconModeDirect(void) const
                 { return this->beaconMode_; }
             void setBeaconMode(const std::string& mode); // Set the beacon mode.
@@ -149,9 +146,9 @@
             float distance_; //!< The distance at which the DistanceMultiTrigger triggers.
 
-            distanceMultiTriggerBeaconMode::Value beaconMode_; //!< The beacon mode, the DistanceMultiTrigger is in.
+            DistanceMultiTriggerBeaconMode beaconMode_; //!< The beacon mode, the DistanceMultiTrigger is in.
             std::string targetName_; //!< The target name, used in <em>single-target</em> mode.
             ClassTreeMask beaconMask_; //!< A mask, that only accepts DistanceTriggerBeacons.
 
-            std::set<WeakPtr<WorldEntity> > range_; //!< The set of entities that currently are in range of the DistanceMultiTrigger.
+            std::set<WeakPtr<WorldEntity>> range_; //!< The set of entities that currently are in range of the DistanceMultiTrigger.
 
     };
Index: code/trunk/src/modules/objects/triggers/DistanceTrigger.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/DistanceTrigger.cc	(revision 11020)
+++ code/trunk/src/modules/objects/triggers/DistanceTrigger.cc	(revision 11071)
@@ -106,5 +106,5 @@
             this->setForPlayer(true);
 
-        if (targetId == NULL)
+        if (targetId == nullptr)
         {
             orxout(internal_error, context::triggers) << "\"" << targetStr << "\" is not a valid class name to include in ClassTreeMask (in " << this->getName() << ", class " << this->getIdentifier()->getName() << ')' << endl;
@@ -147,5 +147,5 @@
     {
         // Check whether there is a cached object, it still exists and whether it is still in range, if so nothing further needs to be done.
-        if(this->cache_ != NULL)
+        if(this->cache_ != nullptr)
         {
             if((this->cache_->getWorldPosition() - this->getWorldPosition()).length() < this->distance_)
@@ -158,5 +158,5 @@
         ClassTreeMask targetMask = this->targetMask_;
         // If we are in identify-mode another target mask has to be applies to find the DistanceTriggerBeacons.
-        if(this->beaconMode_ == distanceTriggerBeaconMode::identify)
+        if(this->beaconMode_ == DistanceTriggerBeaconMode::identify)
             targetMask = this->beaconMask_;
 
@@ -167,5 +167,5 @@
 
             // If the DistanceTrigger is in identify-mode and the DistanceTriggerBeacon attached to the object has the wrong name we ignore it.
-            if(this->beaconMode_ == distanceTriggerBeaconMode::identify)
+            if(this->beaconMode_ == DistanceTriggerBeaconMode::identify)
             {
                 if(entity->getName() != this->targetName_)
@@ -177,12 +177,12 @@
 
             // If the DistanceTrigger is in exclude mode and the DistanceTriggerBeacon attached to the object has the right name, we ignore it.
-            if(this->beaconMode_ == distanceTriggerBeaconMode::exclude)
+            if(this->beaconMode_ == DistanceTriggerBeaconMode::exclude)
             {
 
-                const std::set<WorldEntity*> attached = entity->getAttachedObjects();
+                const std::set<WorldEntity*> attachedObjects = entity->getAttachedObjects();
                 bool found = false;
-                for(std::set<WorldEntity*>::const_iterator it = attached.begin(); it != attached.end(); it++)
+                for(WorldEntity* attachedObject : attachedObjects)
                 {
-                    if((*it)->isA(ClassIdentifier<DistanceTriggerBeacon>::getIdentifier()) && static_cast<DistanceTriggerBeacon*>(*it)->getName() == this->targetName_)
+                    if(attachedObject->isA(ClassIdentifier<DistanceTriggerBeacon>::getIdentifier()) && static_cast<DistanceTriggerBeacon*>(attachedObject)->getName() == this->targetName_)
                     {
                         found = true;
@@ -202,12 +202,12 @@
                 {
                     // Change the entity to the parent of the DistanceTriggerBeacon (if in identify-mode), which is the entity to which the beacon is attached.
-                    if(this->beaconMode_ == distanceTriggerBeaconMode::identify)
+                    if(this->beaconMode_ == DistanceTriggerBeaconMode::identify)
                         entity = entity->getParent();
 
                     Pawn* pawn = orxonox_cast<Pawn*>(entity);
-                    if(pawn != NULL)
+                    if(pawn != nullptr)
                         this->setTriggeringPawn(pawn);
                     else
-                        orxout(internal_warning, context::triggers) << "Pawn was NULL." << endl;
+                        orxout(internal_warning, context::triggers) << "Pawn was nullptr." << endl;
                 }
                 
@@ -228,5 +228,5 @@
         The mode as an enum.
     */
-    void DistanceTrigger::setBeaconModeDirect(distanceTriggerBeaconMode::Value mode)
+    void DistanceTrigger::setBeaconModeDirect(DistanceTriggerBeaconMode mode)
     {
         this->beaconMode_ = mode;
@@ -243,9 +243,9 @@
         switch(this->getBeaconModeDirect())
         {
-            case distanceTriggerBeaconMode::off :
+            case DistanceTriggerBeaconMode::off :
                 return DistanceTrigger::beaconModeOff_s;
-            case distanceTriggerBeaconMode::identify:
+            case DistanceTriggerBeaconMode::identify:
                 return DistanceTrigger::beaconModeIdentify_s;
-            case distanceTriggerBeaconMode::exclude:
+            case DistanceTriggerBeaconMode::exclude:
                 return DistanceTrigger::beaconModeExlcude_s;
             default :
@@ -264,9 +264,9 @@
     {
         if(mode == DistanceTrigger::beaconModeOff_s)
-            this->setBeaconModeDirect(distanceTriggerBeaconMode::off);
+            this->setBeaconModeDirect(DistanceTriggerBeaconMode::off);
         else if(mode == DistanceTrigger::beaconModeIdentify_s)
-            this->setBeaconModeDirect(distanceTriggerBeaconMode::identify);
+            this->setBeaconModeDirect(DistanceTriggerBeaconMode::identify);
         else if(mode == DistanceTrigger::beaconModeExlcude_s)
-            this->setBeaconModeDirect(distanceTriggerBeaconMode::exclude);
+            this->setBeaconModeDirect(DistanceTriggerBeaconMode::exclude);
         else
             orxout(internal_error, context::triggers) << "Invalid beacon mode in DistanceTrigger." << endl;
@@ -282,5 +282,5 @@
         Returns true if it is triggered ,false if not.
     */
-    bool DistanceTrigger::isTriggered(TriggerMode::Value mode)
+    bool DistanceTrigger::isTriggered(TriggerMode mode)
     {
         if (Trigger::isTriggered(mode))
Index: code/trunk/src/modules/objects/triggers/DistanceTrigger.h
===================================================================
--- code/trunk/src/modules/objects/triggers/DistanceTrigger.h	(revision 11020)
+++ code/trunk/src/modules/objects/triggers/DistanceTrigger.h	(revision 11071)
@@ -55,12 +55,9 @@
   @ingroup NormalTrigger
   */
-  namespace distanceTriggerBeaconMode
-  {
-      enum Value {
-          off,
-          identify,
-          exclude
-      };
-  }
+  enum class DistanceTriggerBeaconMode {
+      off,
+      identify,
+      exclude
+  };
 
     /**
@@ -118,10 +115,10 @@
                 { return this->distance_; }
 
-            void setBeaconModeDirect(distanceTriggerBeaconMode::Value mode); // Set the beacon mode.
+            void setBeaconModeDirect(DistanceTriggerBeaconMode mode); // Set the beacon mode.
             /**
             @brief Get the beacon mode.
             @return Returns the mode as an enum.
             */
-            inline distanceTriggerBeaconMode::Value getBeaconModeDirect(void) const
+            inline DistanceTriggerBeaconMode getBeaconModeDirect(void) const
             { return this->beaconMode_; }
             void setBeaconMode(const std::string& mode); // Set the beacon mode.
@@ -144,5 +141,5 @@
 
         protected:
-            virtual bool isTriggered(TriggerMode::Value mode); // Check whether the DistanceTrigger is triggered.
+            virtual bool isTriggered(TriggerMode mode) override; // Check whether the DistanceTrigger is triggered.
             /**
             @brief Notifies interested parties about a change of the DistanceTrigger's target mask.
@@ -160,5 +157,5 @@
             float distance_; //!< The range of the DistanceTrigger.
             
-            distanceTriggerBeaconMode::Value beaconMode_; //!< The beacon mode.
+            DistanceTriggerBeaconMode beaconMode_; //!< The beacon mode.
             std::string targetName_; //!< The name a DistanceTriggerBeacon needs to have to make the DistanceTrigger react to it if in beacon-mode.
             ClassTreeMask beaconMask_; //!< A mask, that only accepts DistanceTriggerBeacons.
Index: code/trunk/src/modules/objects/triggers/EventMultiTrigger.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/EventMultiTrigger.cc	(revision 11020)
+++ code/trunk/src/modules/objects/triggers/EventMultiTrigger.cc	(revision 11071)
@@ -96,5 +96,5 @@
     {
         // If the originator is a MultiTriggerContainer, the event originates from a MultiTrigger and thus the event only triggers the EventMultiTrigger for the originator that caused the MultiTrigger to trigger.
-        if(originator != NULL && originator->isA(ClassIdentifier<MultiTriggerContainer>::getIdentifier()))
+        if(originator != nullptr && originator->isA(ClassIdentifier<MultiTriggerContainer>::getIdentifier()))
         {
             MultiTriggerContainer* container = static_cast<MultiTriggerContainer*>(originator);
Index: code/trunk/src/modules/objects/triggers/EventTrigger.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/EventTrigger.cc	(revision 11020)
+++ code/trunk/src/modules/objects/triggers/EventTrigger.cc	(revision 11071)
@@ -79,5 +79,5 @@
         It should be triggered if it is triggered according just to its sub-triggers and if the last event that came in was an event that changed from not triggered to triggered.
     */
-    bool EventTrigger::isTriggered(TriggerMode::Value mode)
+    bool EventTrigger::isTriggered(TriggerMode mode)
     {
         if (Trigger::isTriggered(mode))
Index: code/trunk/src/modules/objects/triggers/EventTrigger.h
===================================================================
--- code/trunk/src/modules/objects/triggers/EventTrigger.h	(revision 11020)
+++ code/trunk/src/modules/objects/triggers/EventTrigger.h	(revision 11071)
@@ -84,5 +84,5 @@
 
         protected:
-            virtual bool isTriggered(TriggerMode::Value mode); // Check whether the EventTrigger should be triggered.
+            virtual bool isTriggered(TriggerMode mode) override; // Check whether the EventTrigger should be triggered.
 
         private:
Index: code/trunk/src/modules/objects/triggers/MultiTrigger.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/MultiTrigger.cc	(revision 11020)
+++ code/trunk/src/modules/objects/triggers/MultiTrigger.cc	(revision 11071)
@@ -124,13 +124,13 @@
         // Let the MultiTrigger return the states that trigger and process the new states if there are any.
         std::queue<MultiTriggerState*>* queue  = this->letTrigger();
-        if(queue != NULL)
+        if(queue != nullptr)
         {
             while(queue->size() > 0)
             {
                 MultiTriggerState* state = queue->front();
-                // If the state is NULL. (This really shouldn't happen)
-                if(state == NULL)
+                // If the state is nullptr. (This really shouldn't happen)
+                if(state == nullptr)
                 {
-                    orxout(internal_error, context::triggers) << "In MultiTrigger '" << this->getName() << "' (&" << this << "), Error: State of new states queue was NULL. State ignored." << endl;
+                    orxout(internal_error, context::triggers) << "In MultiTrigger '" << this->getName() << "' (&" << this << "), Error: State of new states queue was nullptr. State ignored." << endl;
                     queue->pop();
                     continue;
@@ -227,5 +227,5 @@
                             {
                                 // If the MultiTrigger is set to broadcast and has no originator a boradcast is fired.
-                                if(this->getBroadcast() && state->originator == NULL)
+                                if(this->getBroadcast() && state->originator == nullptr)
                                     this->broadcast(bActive);
                                 // Else a normal event is fired.
@@ -240,11 +240,11 @@
                         {
                             // Print some debug output if the state has changed.
-                            if(state->originator != NULL)
+                            if(state->originator != nullptr)
                                 orxout(verbose, context::triggers) << "MultiTrigger '" << this->getName() << "' (&" << this << ") changed state. originator: " << state->originator->getIdentifier()->getName() << " (&" << state->originator << "), active: " << bActive << ", triggered: " << state->bTriggered << "." << endl;
                             else
-                                orxout(verbose, context::triggers) << "MultiTrigger '" << this->getName() << "' (&" << this << ") changed state. originator: NULL, active: " << bActive << ", triggered: " << state->bTriggered << "." << endl;
+                                orxout(verbose, context::triggers) << "MultiTrigger '" << this->getName() << "' (&" << this << ") changed state. originator: nullptr, active: " << bActive << ", triggered: " << state->bTriggered << "." << endl;
 
                             // If the MultiTrigger has a parent trigger, that is itself a MultiTrigger, it needs to call a method to notify him, that its activity has changed.
-                            if(this->parent_ != NULL && this->parent_->isMultiTrigger())
+                            if(this->parent_ != nullptr && this->parent_->isMultiTrigger())
                                 static_cast<MultiTrigger*>(this->parent_)->childActivityChanged(state->originator);
                         }
@@ -265,5 +265,5 @@
                 else
                 {
-                    this->stateQueue_.push_back(std::pair<float, MultiTriggerState*>(timeRemaining-dt, state));
+                    this->stateQueue_.emplace_back(timeRemaining-dt, state);
                     this->stateQueue_.pop_front();
                 }
@@ -299,5 +299,5 @@
 
         // If the target is not a valid class name display an error.
-        if (target == NULL)
+        if (target == nullptr)
         {
             orxout(internal_error, context::triggers) << "'" << targetStr << "' is not a valid class name to include in ClassTreeMask (in " << this->getName() << ", class " << this->getIdentifier()->getName() << ")" << endl;
@@ -327,5 +327,5 @@
 
         // If the target is not a valid class name display an error.
-        if (target == NULL)
+        if (target == nullptr)
         {
             orxout(internal_error, context::triggers) << "'" << targetStr << "' is not a valid class name to include in ClassTreeMask (in " << this->getName() << ", class " << this->getIdentifier()->getName() << ")" << endl;
@@ -346,5 +346,5 @@
     std::queue<MultiTriggerState*>* MultiTrigger::letTrigger(void)
     {
-        return NULL;
+        return nullptr;
     }
 
@@ -443,6 +443,6 @@
     void MultiTrigger::fire(bool status, BaseObject* originator)
     {
-        // If the originator is NULL, a normal event without MultiTriggerContainer is sent.
-        if(originator == NULL)
+        // If the originator is nullptr, a normal event without MultiTriggerContainer is sent.
+        if(originator == nullptr)
         {
             this->fireEvent(status);
@@ -479,5 +479,5 @@
     bool MultiTrigger::addState(MultiTriggerState* state)
     {
-        assert(state); // The state really shouldn't be NULL.
+        assert(state); // The state really shouldn't be nullptr.
 
         // If the originator is no target of this MultiTrigger.
@@ -489,5 +489,5 @@
 
         // Add it ot the state queue with the delay specified for the MultiTrigger.
-        this->stateQueue_.push_back(std::pair<float, MultiTriggerState*>(this->getDelay(), state));
+        this->stateQueue_.emplace_back(this->getDelay(), state);
 
         return true;
@@ -504,7 +504,6 @@
     bool MultiTrigger::checkAnd(BaseObject* triggerer)
     {
-        for(std::set<TriggerBase*>::iterator it = this->children_.begin(); it != this->children_.end(); ++it)
-        {
-            TriggerBase* trigger = *it;
+        for(TriggerBase* trigger : this->children_)
+        {
             if(trigger->isMultiTrigger())
             {
@@ -531,7 +530,6 @@
     bool MultiTrigger::checkOr(BaseObject* triggerer)
     {
-        for(std::set<TriggerBase*>::iterator it = this->children_.begin(); it != this->children_.end(); ++it)
-        {
-            TriggerBase* trigger = *it;
+        for(TriggerBase* trigger : this->children_)
+        {
             if(trigger->isMultiTrigger())
             {
@@ -559,7 +557,6 @@
     {
         bool triggered = false;
-        for(std::set<TriggerBase*>::iterator it = this->children_.begin(); it != this->children_.end(); ++it)
-        {
-            TriggerBase* trigger = *it;
+        for(TriggerBase* trigger : this->children_)
+        {
             if(triggered)
             {
Index: code/trunk/src/modules/objects/triggers/MultiTrigger.h
===================================================================
--- code/trunk/src/modules/objects/triggers/MultiTrigger.h	(revision 11020)
+++ code/trunk/src/modules/objects/triggers/MultiTrigger.h	(revision 11071)
@@ -76,5 +76,5 @@
         - @b simultaneousTriggerers The number of simultaneous triggerers limits the number of objects that are allowed to trigger the MultiTrigger at the same time. Or more precisely, the number of distinct objects the MultiTrigger has <em>triggered</em> states for, at each point in time. The default is <code>-1</code>, which denotes infinity.
         - @b mode The mode describes how the MultiTrigger acts in relation to all the triggers, that are appended to it. There are 3 modes: <em>and</em>, meaning that the MultiTrigger can only be triggered if all the appended triggers are active. <em>or</em>, meaning that the MultiTrigger can only triggered if at least one of the appended triggers is active. And <em>xor</em>, meaning that the MultiTrigger can only be triggered if one and only one appended trigger is active. Note, that I wrote <em>can only be active</em>, that implies, that there is an additional condition to the <em>activity</em> of the MultiTrigger and that is the fulfillment of the triggering condition (the MultiTrigger itself doesn't have one, but all derived classes should). Also bear in mind, that the <em>activity</em> of a MultiTrigger is still coupled to the object that triggered it. The default is <em>and</em>.
-        - @b broadcast Broadcast is a boolean, if true the MutliTrigger is in <em>broadcast-mode</em>, meaning, that all trigger events that are caused by no originator (originator is NULL) are broadcast as having come from every possible originator, or more precisely as having come from all objects that are specified targets of this MultiTrigger. The default is false.
+        - @b broadcast Broadcast is a boolean, if true the MutliTrigger is in <em>broadcast-mode</em>, meaning, that all trigger events that are caused by no originator (originator is nullptr) are broadcast as having come from every possible originator, or more precisely as having come from all objects that are specified targets of this MultiTrigger. The default is false.
         - @b target The target describes the kind of objects that are allowed to trigger this MultiTrigger. The default is @ref orxonox::Pawn "Pawn".
         - Also there is the possibility of appending triggers (as long as they inherit from TriggerBase) to the MultiTrigger just by adding them as children in the XML description of your MultiTrigger.
@@ -110,6 +110,6 @@
             */
             inline bool isActive(void) const
-                { return this->isActive(NULL); }
-            bool isActive(BaseObject* triggerer = NULL) const; //!< Check whether the MultiTrigger is active for a given object.
+                { return this->isActive(nullptr); }
+            bool isActive(BaseObject* triggerer = nullptr) const; //!< Check whether the MultiTrigger is active for a given object.
 
             /**
@@ -145,5 +145,5 @@
             */
             inline bool isTarget(BaseObject* target)
-                { if(target == NULL) return true; else return targetMask_.isIncluded(target->getIdentifier()); }
+                { if(target == nullptr) return true; else return targetMask_.isIncluded(target->getIdentifier()); }
                 
             void addTarget(const std::string& targets); //!< Add some target to the MultiTrigger.
@@ -152,10 +152,10 @@
             virtual std::queue<MultiTriggerState*>* letTrigger(void); //!< This method is called by the MultiTrigger to get information about new trigger events that need to be looked at.
 
-            void changeTriggered(BaseObject* originator = NULL); //!< This method can be called by any class inheriting from MultiTrigger to change it's triggered status for a specified originator.
-
-            bool isModeTriggered(BaseObject* triggerer = NULL); //!< Checks whether the MultiTrigger is triggered concerning it's children.
-            bool isTriggered(BaseObject* triggerer = NULL); //!< Get whether the MultiTrigger is triggered for a given object.
-
-            virtual void fire(bool status, BaseObject* originator = NULL);  //!< Helper method. Creates an Event for the given status and originator and fires it.
+            void changeTriggered(BaseObject* originator = nullptr); //!< This method can be called by any class inheriting from MultiTrigger to change it's triggered status for a specified originator.
+
+            bool isModeTriggered(BaseObject* triggerer = nullptr); //!< Checks whether the MultiTrigger is triggered concerning it's children.
+            bool isTriggered(BaseObject* triggerer = nullptr); //!< Get whether the MultiTrigger is triggered for a given object.
+
+            virtual void fire(bool status, BaseObject* originator = nullptr);  //!< Helper method. Creates an Event for the given status and originator and fires it.
             void broadcast(bool status); //!< Helper method. Broadcasts an Event for every object that is a target.
 
@@ -192,5 +192,5 @@
             std::set<BaseObject*> triggered_; //!< The set of all objects the MultiTrigger is triggered for.
 
-            std::deque< std::pair<float, MultiTriggerState*> > stateQueue_; //!< The queue of states waiting to become active.
+            std::deque<std::pair<float, MultiTriggerState*>> stateQueue_; //!< The queue of states waiting to become active.
 
             ClassTreeMask targetMask_; //!< The target mask, masking all objects that can trigger this MultiTrigger.
Index: code/trunk/src/modules/objects/triggers/MultiTriggerContainer.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/MultiTriggerContainer.cc	(revision 11020)
+++ code/trunk/src/modules/objects/triggers/MultiTriggerContainer.cc	(revision 11071)
@@ -50,5 +50,5 @@
         The creator.
     */
-    MultiTriggerContainer::MultiTriggerContainer(Context* context) : BaseObject(context), originator_(NULL), data_(NULL)
+    MultiTriggerContainer::MultiTriggerContainer(Context* context) : BaseObject(context), originator_(nullptr), data_(nullptr)
     {
         RegisterObject(MultiTriggerContainer);
@@ -70,5 +70,5 @@
 
         Pawn* pawn = orxonox_cast<Pawn*>(data);
-        if(pawn != NULL)
+        if(pawn != nullptr)
         {
             this->setForPlayer(true);
Index: code/trunk/src/modules/objects/triggers/Trigger.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/Trigger.cc	(revision 11020)
+++ code/trunk/src/modules/objects/triggers/Trigger.cc	(revision 11071)
@@ -37,5 +37,4 @@
 #include "core/CoreIncludes.h"
 #include "core/GameMode.h"
-#include "core/XMLPort.h"
 #include "core/command/ConsoleCommandIncludes.h"
 
@@ -86,13 +85,4 @@
     {
 
-    }
-
-    /**
-    @brief
-        Method for creating a Trigger object through XML.
-    */
-    void Trigger::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(Trigger, XMLPort, xmlelement, mode);
     }
 
@@ -203,5 +193,5 @@
         Returns true if the Trigger should be triggered and false if not.
     */
-    bool Trigger::isTriggered(TriggerMode::Value mode)
+    bool Trigger::isTriggered(TriggerMode mode)
     {
         // If the trigger has sub-triggers.
@@ -234,7 +224,7 @@
     {
         // Iterate over all sub-triggers.
-        for (std::set<TriggerBase*>::iterator it = this->children_.begin(); it != this->children_.end(); ++it)
-        {
-            if (!(*it)->isActive())
+        for (TriggerBase* child : this->children_)
+        {
+            if (!child->isActive())
                 return false;
         }
@@ -252,7 +242,7 @@
     {
         // Iterate over all sub-triggers.
-        for (std::set<TriggerBase*>::iterator it = this->children_.begin(); it != this->children_.end(); ++it)
-        {
-            if ((*it)->isActive())
+        for (TriggerBase* child : this->children_)
+        {
+            if (child->isActive())
                 return true;
         }
@@ -270,9 +260,9 @@
     {
         bool test = false;
-        for (std::set<TriggerBase*>::iterator it = this->children_.begin(); it != this->children_.end(); ++it)
-        {
-            if (test && (*it)->isActive())
+        for (TriggerBase* child : this->children_)
+        {
+            if (test && child->isActive())
                 return false;
-            if ((*it)->isActive())
+            if (child->isActive())
                 test = true;
         }
@@ -346,6 +336,6 @@
     {
         // Iterate over all Triggers.
-        for (ObjectList<Trigger>::iterator it = ObjectList<Trigger>::begin(); it != ObjectList<Trigger>::end(); ++it)
-            it->setVisible(bVisible);
+        for (Trigger* trigger : ObjectList<Trigger>())
+            trigger->setVisible(bVisible);
     }
 
Index: code/trunk/src/modules/objects/triggers/Trigger.h
===================================================================
--- code/trunk/src/modules/objects/triggers/Trigger.h	(revision 11020)
+++ code/trunk/src/modules/objects/triggers/Trigger.h	(revision 11071)
@@ -83,5 +83,4 @@
             virtual ~Trigger();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); // Method for creating a Trigger object through XML.
             virtual void tick(float dt);
 
@@ -105,5 +104,5 @@
             inline bool isTriggered()
                 { return this->isTriggered(this->mode_); }
-            virtual bool isTriggered(TriggerMode::Value mode); // Check whether the Trigger should be triggered, given only its sub-triggers, given a specific mode.
+            virtual bool isTriggered(TriggerMode mode); // Check whether the Trigger should be triggered, given only its sub-triggers, given a specific mode.
             virtual void triggered(bool bIsTriggered); // Fires an event with the input triggered state.
 
@@ -127,5 +126,5 @@
             BillboardSet debugBillboard_; //!< A set of debug billboards to visualize the state of the trigger.
 
-            std::queue<std::pair<float, char> > stateChanges_; //!< A queue of state changes (in the same format as latestState_) paired with the time they will take effect since the last state change took effect.
+            std::queue<std::pair<float, char>> stateChanges_; //!< A queue of state changes (in the same format as latestState_) paired with the time they will take effect since the last state change took effect.
     };
 
Index: code/trunk/src/modules/objects/triggers/TriggerBase.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/TriggerBase.cc	(revision 11020)
+++ code/trunk/src/modules/objects/triggers/TriggerBase.cc	(revision 11071)
@@ -67,5 +67,5 @@
         this->mode_ = TriggerMode::EventTriggerAND;
 
-        this->parent_ = NULL;
+        this->parent_ = nullptr;
 
         this->bMultiTrigger_ = false;
@@ -100,15 +100,4 @@
 
         XMLPortObject(TriggerBase, TriggerBase, "", addTrigger, getTrigger, xmlelement, mode);
-    }
-
-    /**
-    @brief
-        A method that is executed each tick.
-    @param dt
-        The duration of the last tick.
-    */
-    void TriggerBase::tick(float dt)
-    {
-        SUPER(TriggerBase, tick, dt);
     }
 
@@ -170,5 +159,5 @@
         The index.
     @return
-        Returns a pointer ot the trigger. NULL if no such trigger exists.
+        Returns a pointer ot the trigger. nullptr if no such trigger exists.
     */
     const TriggerBase* TriggerBase::getTrigger(unsigned int index) const
@@ -176,5 +165,5 @@
         // If the index is greater than the number of children.
         if (this->children_.size() <= index)
-            return NULL;
+            return nullptr;
 
         std::set<TriggerBase*>::const_iterator it;
Index: code/trunk/src/modules/objects/triggers/TriggerBase.h
===================================================================
--- code/trunk/src/modules/objects/triggers/TriggerBase.h	(revision 11020)
+++ code/trunk/src/modules/objects/triggers/TriggerBase.h	(revision 11071)
@@ -52,13 +52,10 @@
     @ingroup Triggers
     */
-    namespace TriggerMode
+    enum class TriggerMode
     {
-        enum Value
-        {
-            EventTriggerAND, //!< The <em>and</em> mode. The trigger can only trigger if all the children are active. 
-            EventTriggerOR, //!< The <em>or</em> mode. The trigger can only trigger if at least one child is active.
-            EventTriggerXOR, //!< The <em>xor</em> mode. The trigger can only trigger if exactly one child is active. 
-        };
-    }
+        EventTriggerAND, //!< The <em>and</em> mode. The trigger can only trigger if all the children are active.
+        EventTriggerOR, //!< The <em>or</em> mode. The trigger can only trigger if at least one child is active.
+        EventTriggerXOR, //!< The <em>xor</em> mode. The trigger can only trigger if exactly one child is active.
+    };
 
     /**
@@ -78,5 +75,4 @@
 
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);  //!< Method for creating a TriggerBase object through XML.
-            virtual void tick(float dt); //!< A method that is executed each tick.
 
             /**
@@ -158,5 +154,5 @@
             @param mode The mode of the trigger.
             */
-            inline void setMode(TriggerMode::Value mode) //!< Get the mode of the trigger.
+            inline void setMode(TriggerMode mode) //!< Get the mode of the trigger.
                 { this->mode_ = mode; }
             const std::string& getModeString(void) const;
@@ -165,5 +161,5 @@
             @return Returns and Enum for the mode of the trigger.
             */
-            inline TriggerMode::Value getMode(void) const
+            inline TriggerMode getMode(void) const
                 { return mode_; }
 
@@ -211,5 +207,5 @@
 
             bool bInvertMode_; //!< Bool for the invert-mode, if true the trigger is inverted.
-            TriggerMode::Value mode_; //!< The mode of the trigger.
+            TriggerMode mode_; //!< The mode of the trigger.
 
             TriggerBase* parent_; //!< The parent of this trigger.
