Index: code/branches/tgidronFS16/cmake/CompilerConfigClang.cmake
===================================================================
--- code/branches/tgidronFS16/cmake/CompilerConfigClang.cmake	(revision 11182)
+++ code/branches/tgidronFS16/cmake/CompilerConfigClang.cmake	(revision 11184)
@@ -64,7 +64,4 @@
 ADD_COMPILER_FLAGS("-Wno-deprecated" CXX CACHE)
 
-# Triggers lots of warnings in boost headers
-ADD_COMPILER_FLAGS("-Wno-unused-local-typedefs" CXX CACHE)
-
 # Clang doesn't like some narrowing bullet does
 ADD_COMPILER_FLAGS("-Wno-c++11-narrowing" CXX CACHE)
Index: code/branches/tgidronFS16/data/levels/Hover.oxw
===================================================================
--- code/branches/tgidronFS16/data/levels/Hover.oxw	(revision 11182)
+++ code/branches/tgidronFS16/data/levels/Hover.oxw	(revision 11184)
@@ -20,6 +20,7 @@
 <?lua
 MAZE_NUM_CELLS = 10
-MAZE_CELL_SIZE = 100
-MAZE_CELL_HEIGHT = 30
+MAZE_CELL_SIZE = 600
+MAZE_CELL_HEIGHT = 180
+MAZE_WALL_THICKNESS = 10
 MAZE_SIZE = MAZE_NUM_CELLS*MAZE_CELL_SIZE
 ?>
@@ -58,5 +59,5 @@
             <StaticEntity>
                 <attached>
-                    <Billboard position="0,0,0" colour="1.0,0.55,1.0" material="Sphere2" scale=0.1>
+                    <Billboard position="0,50,0" colour="1.0,0.55,1.0" material="Sphere2" scale=1>
                         <attached>
                             <Billboard position="0,0,0" colour="1.0,0.55,1.0" material="Shrink" scale=0.35 />
@@ -87,5 +88,5 @@
             <StaticEntity>
                 <attached>
-                    <Billboard position="0,0,0" colour="0.99,0.96,0.52" material="Sphere2" scale=0.1>
+                    <Billboard position="0,50,0" colour="0.99,0.96,0.52" material="Sphere2" scale=1>
                         <attached>
                             <Billboard position="0,0,0" colour="0.98,0.94,0.22" material="3arrowsup" scale=0.7 />
@@ -116,5 +117,5 @@
             <StaticEntity>
                 <attached>
-                    <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="Sphere2" scale=0.1>
+                    <Billboard position="0,50,0" colour="0.6,0.⁰,0.8" material="Sphere2" scale=1>
                         <attached>
                             <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="Asterisk" scale=0.65 />
@@ -136,8 +137,8 @@
     <Pawn team=1 health=30 position="0,100,0" direction="0,-1,0" collisionType=dynamic mass=100000 name=box RVName = "Box 4" >
         <attached>
-            <Model position="0,0,0" mesh="crate.mesh" scale3D="3,3,3" />
+            <Model position="0,50,0" mesh="crate.mesh" scale3D="15,15,15" />
         </attached>
         <collisionShapes>
-            <BoxCollisionShape position="0,0,0" halfExtents="15,15,15" />
+            <BoxCollisionShape position="0,0,0" halfExtents="70,70,70" />
         </collisionShapes>
     </Pawn>
@@ -156,10 +157,39 @@
 
 
-
+  <?lua
+      for i = 1, 10, 1 do
+          for j = 1,10 ,1 do
+  ?>
+
+  <StaticEntity position="0,0,0" collisionType="static">
+    <attached>
+      <Model
+        position="<?lua print(MAZE_CELL_SIZE*i)?>, -16, <?lua print(MAZE_CELL_SIZE*j)?>" 
+        scale3D="<?lua print(MAZE_CELL_SIZE*i)?>, 16, <?lua print(MAZE_CELL_SIZE*j)?>"
+        mesh="CubeGround.mesh"
+        />
+    </attached> 
+      <collisionShapes>
+        <BoxCollisionShape
+          position="<?lua print(MAZE_CELL_SIZE*i)?>, <?lua print(MAZE_CELL_HEIGHT+1)?>, <?lua print(MAZE_CELL_SIZE*j)?>"
+          halfExtents="<?lua print(MAZE_CELL_SIZE*i)?>,1,<?lua print(MAZE_CELL_SIZE*j)?>"
+        />
+        <BoxCollisionShape
+          position="<?lua print(MAZE_CELL_SIZE*i)?>,-1,<?lua print(MAZE_CELL_SIZE*j)?>"
+          halfExtents="<?lua print(MAZE_CELL_SIZE*i)?>,1,<?lua print(MAZE_CELL_SIZE*j)?>"
+        />
+      </collisionShapes>
+
+  <?lua
+      end
+    end
+   ?>
+
+  </StaticEntity>
 
   <Scene
     ambientlight = "0.8, 0.8, 0.8"
     skybox       = "Orxonox/Starbox"
-    gravity      = "0, -200, 0"
+    gravity      = "0, -300, 0"
   >
 
@@ -210,20 +240,6 @@
           pickuprepresentationtemplateshrink=smallshrinkpickupRepresentation
         />
-        <Model
-          position="<?lua print(MAZE_SIZE/2)?>,-16,<?lua print(MAZE_SIZE/2)?>"
-          scale3D="<?lua print(MAZE_SIZE/2)?>,16,<?lua print(MAZE_SIZE/2)?>"
-          mesh="CubeGround.mesh"
-        />
-      </attached> 
-      <collisionShapes>
-        <BoxCollisionShape
-          position="<?lua print(MAZE_SIZE/2)?>,<?lua print(MAZE_CELL_HEIGHT+1)?>,<?lua print(MAZE_SIZE/2)?>"
-          halfExtents="<?lua print(MAZE_SIZE/2)?>,1,<?lua print(MAZE_SIZE/2)?>"
-        />
-        <BoxCollisionShape
-          position="<?lua print(MAZE_SIZE/2)?>,-1,<?lua print(MAZE_SIZE/2)?>"
-          halfExtents="<?lua print(MAZE_SIZE/2)?>,1,<?lua print(MAZE_SIZE/2)?>"
-        />
-      </collisionShapes>
+        </attached> 
+       
     </StaticEntity>
 
@@ -238,6 +254,6 @@
     <SpawnPoint
       team=0
-      position="50,20,50"
-      lookat="100,20,100"
+      position="300,120,300"
+      lookat="600,120,600"
       spawnclass=HoverShip
       pawndesign=spaceshiphover
@@ -247,2 +263,21 @@
 </Level>
 
+
+
+<!--<<Model
+          position="<?lua print(MAZE_SIZE/2)?>,-16,<?lua print(MAZE_SIZE/2)?>"
+          scale3D="<?lua print(MAZE_SIZE/2)?>,16,<?lua print(MAZE_SIZE/2)?>"
+          mesh="ss_wall.mesh"
+        /> 
+      </attached> 
+      
+      <collisionShapes>
+        <BoxCollisionShape
+          position="<?lua print(MAZE_SIZE/2)?>,<?lua print(MAZE_CELL_HEIGHT+1)?>,<?lua print(MAZE_SIZE/2)?>"
+          halfExtents="<?lua print(MAZE_SIZE/2)?>,1,<?lua print(MAZE_SIZE/2)?>"
+        />
+        <BoxCollisionShape
+          position="<?lua print(MAZE_SIZE/2)?>,-1,<?lua print(MAZE_SIZE/2)?>"
+          halfExtents="<?lua print(MAZE_SIZE/2)?>,1,<?lua print(MAZE_SIZE/2)?>"
+        />
+      </collisionShapes> -->
Index: code/branches/tgidronFS16/data/levels/emptyLevel.oxw
===================================================================
--- code/branches/tgidronFS16/data/levels/emptyLevel.oxw	(revision 11182)
+++ code/branches/tgidronFS16/data/levels/emptyLevel.oxw	(revision 11184)
@@ -14,4 +14,5 @@
 <?lua
   include("templates/spaceshipEscort.oxt")
+  include("templates/spaceshipHover.oxt")
 ?>
 
@@ -29,4 +30,12 @@
     <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0"/>
     <SpawnPoint team=0 position="-200,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipescort />
+
+    <SpaceShip position="0,0,0" lookat="0,0,0" >
+                          
+        <templates>
+          <Template link=spaceshiphover />
+        </templates>
+        
+    </SpaceShip>
     
   </Scene>
Index: code/branches/tgidronFS16/data/levels/includes/weaponSettingsHover.oxi
===================================================================
--- code/branches/tgidronFS16/data/levels/includes/weaponSettingsHover.oxi	(revision 11182)
+++ code/branches/tgidronFS16/data/levels/includes/weaponSettingsHover.oxi	(revision 11184)
@@ -1,5 +1,5 @@
 <weaponslots>
-  <WeaponSlot position="-3,2,-3" />
-  <WeaponSlot position=" 3,2,-3" />
+  <WeaponSlot position="-10,2,-100" />
+  <WeaponSlot position=" 10,2,-100" />
 </weaponslots>
 <weaponsets>
Index: code/branches/tgidronFS16/data/levels/templates/spaceshipHover.oxt
===================================================================
--- code/branches/tgidronFS16/data/levels/templates/spaceshipHover.oxt	(revision 11182)
+++ code/branches/tgidronFS16/data/levels/templates/spaceshipHover.oxt	(revision 11184)
@@ -18,12 +18,12 @@
    reloadwaittime      = 0.5
 
-   primaryThrust     = 200
+   primaryThrust     = 2000
    auxilaryThrust    = 1
    rotationThrust    = 45
 
-   jumpBoost = 110
+   jumpBoost = 230
 
    lift = 1;
-   stallSpeed = 220;
+   stallSpeed = 1400;
 
    boostPower            = 10
@@ -33,5 +33,5 @@
 
    collisionType     = "dynamic"
-   mass              = 1000
+   mass              = 100000
    linearDamping     = 0.2
    angularDamping    = 0.9999999
@@ -41,11 +41,11 @@
     </engines>
     <attached>
-      <Model position="0,0,-20" mesh="hovership_body.mesh" scale="5" yaw=180/>	
-      <Model position="0,0,-20" mesh="hovership_engine.mesh" scale="5" yaw=180/>	
-      <Model position="0,0,-20" mesh="hovership_gun.mesh" scale="5" yaw=180/>	
+      <Model position="0,0,-120" mesh="hovership_body.mesh" scale="30" yaw=180/>	
+      <Model position="0,0,-120" mesh="hovership_engine.mesh" scale="30" yaw=180/>	
+      <Model position="0,0,-120" mesh="hovership_gun.mesh" scale="30" yaw=180/>	
       
     </attached>
     <collisionShapes>
-      <BoxCollisionShape position="0,-2 ,7" halfExtents="7, 4 ,30" />
+      <BoxCollisionShape position="0,-12, 42" halfExtents="42, 24 ,180" />
     </collisionShapes>
     <explosion>
@@ -69,6 +69,6 @@
   <SpaceShip>
     <camerapositions>
-      <CameraPosition position="0,8, 5" drag=true mouselook=true />
-      <CameraPosition position="0,8,5" yaw="180" drag=true mouselook=true />
+      <CameraPosition position="0, 48, 30" drag=true mouselook=true />
+      <CameraPosition position="0, 48, 30" yaw="180" drag=true mouselook=true />
     </camerapositions>
   </SpaceShip>
@@ -79,13 +79,13 @@
    boostfactor    = 2
 
-   speedfront     = 150
-   speedback      =  40
-   speedleftright =  40
-   speedupdown    =  40
+   speedfront     = 1400
+   speedback      =  800
+   speedleftright =  600
+   speedupdown    =  600
 
-   accelerationfront     = 500
-   accelerationbrake     = 500
+   accelerationfront     = 1000
+   accelerationbrake     = 1000
    accelerationback      =  250
-   accelerationleftright =  125
+   accelerationleftright =  250
    accelerationupdown    =  125
   >
Index: code/branches/tgidronFS16/src/libraries/core/command/TclThreadManager.cc
===================================================================
--- code/branches/tgidronFS16/src/libraries/core/command/TclThreadManager.cc	(revision 11182)
+++ code/branches/tgidronFS16/src/libraries/core/command/TclThreadManager.cc	(revision 11184)
@@ -410,7 +410,7 @@
             {
                 // This query would lead to a deadlock - return with an error
-                TclThreadManager::error("Circular query (" + this->dumpList(source_bundle->queriers_.getList()) + ' ' + multi_cast<std::string>(source_bundle->id_) \
-                            + " -> " + multi_cast<std::string>(target_bundle->id_) \
-                            + "), couldn't query Tcl-interpreter with ID " + multi_cast<std::string>(target_bundle->id_) \
+                TclThreadManager::error("Circular query (" + this->dumpList(source_bundle->queriers_.getList()) + ' ' + multi_cast<std::string>(source_bundle->id_)
+                            + " -> " + multi_cast<std::string>(target_bundle->id_)
+                            + "), couldn't query Tcl-interpreter with ID " + multi_cast<std::string>(target_bundle->id_)
                             + " from other interpreter with ID " + multi_cast<std::string>(source_bundle->id_) + '.');
             }
Index: code/branches/tgidronFS16/src/modules/hover/Hover.cc
===================================================================
--- code/branches/tgidronFS16/src/modules/hover/Hover.cc	(revision 11182)
+++ code/branches/tgidronFS16/src/modules/hover/Hover.cc	(revision 11184)
@@ -169,7 +169,8 @@
             Pawn* crate = new Pawn(origin_->getContext());
 
+            
+            crate->addTemplate(origin_->getObstacleTemplate());  
             crate->setPosition(get3dCoordinates(rand()%numCells, rand()%numCells, 10.0f));
-            crate->addTemplate(origin_->getObstacleTemplate());  
-            crate->setInitialHealth(100.0f);
+            //ate->setInitialHealth(100.0f);
             
 
Index: code/branches/tgidronFS16/src/modules/hover/HoverFlag.cc
===================================================================
--- code/branches/tgidronFS16/src/modules/hover/HoverFlag.cc	(revision 11182)
+++ code/branches/tgidronFS16/src/modules/hover/HoverFlag.cc	(revision 11184)
@@ -87,11 +87,11 @@
         model_ = new Model(this->getContext());
         model_->setMeshSource("ss_flag_eu.mesh");
-        model_->setScale3D(Vector3(5, 5, 5));
-        model_->setPosition(Vector3(xCoordinate*cellSize*1.0f + cellSize/2,10.0f,yCoordinate*cellSize*1.0f + cellSize/2));
+        model_->setScale3D(Vector3(30, 30, 30));
+        model_->setPosition(Vector3(xCoordinate*cellSize*1.0f + cellSize/2,50.0f,yCoordinate*cellSize*1.0f + cellSize/2));
 
         this->attach(model_);
 
         cs_ = new BoxCollisionShape(this->getContext());
-        cs_->setHalfExtents(Vector3(5, 5, 5));
+        cs_->setHalfExtents(Vector3(30, 30, 30));
         cs_->setPosition(Vector3(xCoordinate*cellSize*1.0f + cellSize/2,0.0f,yCoordinate*cellSize*1.0f + cellSize/2));
 
Index: code/branches/tgidronFS16/src/modules/hover/HoverOrigin.cc
===================================================================
--- code/branches/tgidronFS16/src/modules/hover/HoverOrigin.cc	(revision 11182)
+++ code/branches/tgidronFS16/src/modules/hover/HoverOrigin.cc	(revision 11184)
@@ -48,5 +48,5 @@
         //not needed
 
-        /*pickupTemplate_ = "";
+        pickupTemplate_ = "";
         pickupRepresentationTemplate_ = "";
 
@@ -56,5 +56,5 @@
 
         pickupTemplateShrink_ = "";
-        pickupRepresentationTemplateShrink_ = "";*/
+        pickupRepresentationTemplateShrink_ = "";
     }
 
Index: code/branches/tgidronFS16/src/orxonox/Scene.h
===================================================================
--- code/branches/tgidronFS16/src/orxonox/Scene.h	(revision 11182)
+++ code/branches/tgidronFS16/src/orxonox/Scene.h	(revision 11184)
@@ -48,4 +48,5 @@
 #include "network/synchronisable/Synchronisable.h"
 #include "tools/interfaces/Tickable.h"
+#include "core/command/ConsoleCommandIncludes.h"
 
 namespace orxonox
Index: code/branches/tgidronFS16/src/orxonox/gametypes/TeamGametype.cc
===================================================================
--- code/branches/tgidronFS16/src/orxonox/gametypes/TeamGametype.cc	(revision 11182)
+++ code/branches/tgidronFS16/src/orxonox/gametypes/TeamGametype.cc	(revision 11184)
@@ -141,5 +141,5 @@
     void TeamGametype::spawnDeadPlayersIfRequested()
     {
-        for (const auto& mapEntry : this->players_)\
+        for (const auto& mapEntry : this->players_)
         {
             if(allowedInGame_[mapEntry.first] == false)//check if dead player is allowed to enter
Index: code/branches/tgidronFS16/src/orxonox/weaponsystem/WeaponSystem.h
===================================================================
--- code/branches/tgidronFS16/src/orxonox/weaponsystem/WeaponSystem.h	(revision 11182)
+++ code/branches/tgidronFS16/src/orxonox/weaponsystem/WeaponSystem.h	(revision 11184)
@@ -55,4 +55,6 @@
             void removeWeaponSlot(WeaponSlot * wSlot);
             WeaponSlot * getWeaponSlot(unsigned int index) const;
+            inline const std::vector<WeaponSlot *>& getAllWeaponSlots() const
+                { return weaponSlots_; }
 
             // adding and removing WeaponSets
Index: code/branches/tgidronFS16/src/orxonox/worldentities/pawns/Pawn.cc
===================================================================
--- code/branches/tgidronFS16/src/orxonox/worldentities/pawns/Pawn.cc	(revision 11182)
+++ code/branches/tgidronFS16/src/orxonox/worldentities/pawns/Pawn.cc	(revision 11184)
@@ -49,4 +49,5 @@
 #include "weaponsystem/Munition.h"
 #include "sound/WorldSound.h"
+#include "core/object/ObjectListIterator.h"
 
 #include "controllers/FormationController.h"
@@ -55,4 +56,6 @@
 {
     RegisterClass(Pawn);
+
+    SetConsoleCommand("Pawn", "debugDrawWeapons", &Pawn::consoleCommand_debugDrawWeapons).addShortcut();
 
     Pawn::Pawn(Context* context)
@@ -168,4 +171,5 @@
     {
         registerVariable(this->bAlive_,            VariableDirection::ToClient);
+        registerVariable(this->bVulnerable_,       VariableDirection::ToClient);
         registerVariable(this->health_,            VariableDirection::ToClient);
         registerVariable(this->maxHealth_,         VariableDirection::ToClient);
@@ -592,3 +596,56 @@
         return BLANKSTRING;
     }
+
+    void Pawn::drawWeapons(bool bDraw)
+    {
+        if (bDraw)
+        {
+            std::vector<WeaponSlot*> weaponSlots = weaponSystem_->getAllWeaponSlots();
+            int numWeaponSlots = weaponSlots.size();
+            Vector3 slotPosition = Vector3::ZERO;
+            Quaternion slotOrientation = Quaternion::IDENTITY;
+            Model* slotModel = nullptr;
+
+            for (int i = 0; i < numWeaponSlots; ++i)
+            {
+                slotPosition = weaponSlots.at(i)->getPosition();
+                slotOrientation = weaponSlots.at(i)->getOrientation();
+                slotModel = new Model(this->getContext());
+                slotModel->setMeshSource("Coordinates.mesh");
+                slotModel->setScale(3.0f);
+                slotModel->setOrientation(slotOrientation);
+                slotModel->setPosition(slotPosition);
+
+                this->attach(slotModel);
+                debugWeaponSlotModels_.push_back(slotModel);
+            }
+        }
+        else
+        {
+            // delete all debug models
+            for(Model* model : debugWeaponSlotModels_) 
+            {
+                model->destroy();
+            }
+            debugWeaponSlotModels_.clear();
+        }
+    }
+
+    /*static*/ void Pawn::consoleCommand_debugDrawWeapons(bool bDraw)
+    {
+        if (bDraw)
+        {
+            orxout() << "WeaponSlot visualization enabled." << endl;
+        }
+        else
+        {
+            orxout() << "WeaponSlot visualization disabled." << endl;
+        }
+
+        ObjectList<Pawn> pawnList;
+        for (ObjectListIterator<Pawn> it = pawnList.begin(); it != pawnList.end(); ++it)
+        {
+            it->drawWeapons(bDraw);
+        }
+    }
 }
Index: code/branches/tgidronFS16/src/orxonox/worldentities/pawns/Pawn.h
===================================================================
--- code/branches/tgidronFS16/src/orxonox/worldentities/pawns/Pawn.h	(revision 11182)
+++ code/branches/tgidronFS16/src/orxonox/worldentities/pawns/Pawn.h	(revision 11184)
@@ -218,4 +218,6 @@
                 { return this->weaponSystem_; }
 
+            static void consoleCommand_debugDrawWeapons(bool bDraw);
+
         protected:
             virtual void preDestroy() override;
@@ -233,5 +235,5 @@
 
             bool bAlive_;
-            bool bVulnerable_; ///< If false the pawn may not ged damaged
+            bool bVulnerable_; ///< If this is false, then the pawn may not take damage
 
             virtual std::vector<PickupCarrier*>* getCarrierChildren(void) const override
@@ -269,8 +271,11 @@
             inline void setWeaponSystem(WeaponSystem* weaponsystem)
                 { this->weaponSystem_ = weaponsystem; }
+            void drawWeapons(bool bDraw);
 
             Vector3 aimPosition_;
 
             WorldSound* explosionSound_; // TODO: Does this really belong here? Maybe move it to BigExplosion?
+
+            std::vector<Model*> debugWeaponSlotModels_;
 
     }; // tolua_export
Index: code/branches/tgidronFS16/test/util/StringUtilsTest.cc
===================================================================
--- code/branches/tgidronFS16/test/util/StringUtilsTest.cc	(revision 11182)
+++ code/branches/tgidronFS16/test/util/StringUtilsTest.cc	(revision 11184)
@@ -267,7 +267,7 @@
         EXPECT_EQ(0, nocaseCmp("TesT", "teST"));
 
-        EXPECT_EQ(strcmp("a", "b"), nocaseCmp("a", "b"));
-        EXPECT_EQ(strcmp("b", "a"), nocaseCmp("b", "a"));
-        EXPECT_EQ(strcmp("hello", "world"), nocaseCmp("hello", "world"));
+        EXPECT_EQ(strcmp("a", "b") < 0, nocaseCmp("a", "b") < 0);
+        EXPECT_EQ(strcmp("b", "a") > 0, nocaseCmp("b", "a") > 0);
+        EXPECT_EQ(strcmp("hello", "world") < 0, nocaseCmp("hello", "world") < 0);
     }
 
