Index: code/branches/cpp11_v3/src/modules/gametypes/OldRaceCheckPoint.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/gametypes/OldRaceCheckPoint.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/gametypes/OldRaceCheckPoint.cc	(revision 11068)
@@ -49,5 +49,5 @@
 
         this->setRadarObjectColour(ColourValue::Blue);
-        this->setRadarObjectShape(RadarViewable::Triangle);
+        this->setRadarObjectShape(RadarViewable::Shape::Triangle);
         this->setRadarVisibility(false);
     }
Index: code/branches/cpp11_v3/src/modules/gametypes/RaceCheckPoint.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/gametypes/RaceCheckPoint.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/gametypes/RaceCheckPoint.cc	(revision 11068)
@@ -53,5 +53,5 @@
 
         this->setRadarObjectColour(ColourValue::Blue);
-        this->setRadarObjectShape(RadarViewable::Triangle);
+        this->setRadarObjectShape(RadarViewable::Shape::Triangle);
         this->setRadarVisibility(false);
         this->settingsChanged();
Index: code/branches/cpp11_v3/src/modules/jump/Jump.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/jump/Jump.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/jump/Jump.cc	(revision 11068)
@@ -610,12 +610,12 @@
         const int numJ = 4;
 
-        enum PlatformType
-        {
-            PLATFORM_EMPTY, PLATFORM_STATIC, PLATFORM_HMOVE, PLATFORM_VMOVE, PLATFORM_DISAPPEAR, PLATFORM_TIMER, PLATFORM_FAKE
+        enum class PlatformType
+        {
+            EMPTY, STATIC, HMOVE, VMOVE, DISAPPEAR, TIMER, FAKE
         };
 
-        enum ItemType
-        {
-            ITEM_NOTHING, ITEM_SPRING, ITEM_PROPELLER, ITEM_ROCKET, ITEM_BOOTS, ITEM_SHIELD
+        enum class ItemType
+        {
+            NOTHING, SPRING, PROPELLER, ROCKET, BOOTS, SHIELD
         };
 
@@ -631,5 +631,5 @@
             for (int j = 0; j < numJ; ++j)
             {
-                matrix[i][j].type = PLATFORM_EMPTY;
+                matrix[i][j].type = PlatformType::EMPTY;
                 matrix[i][j].done = false;
             }
@@ -637,9 +637,9 @@
         PlatformType platformtype1;
         PlatformType platformtype2;
-        ItemType itemType = ITEM_NOTHING;
+        ItemType itemType = ItemType::NOTHING;
 
         if (rand()%2 == 0)
         {
-            itemType = ITEM_SPRING;
+            itemType = ItemType::SPRING;
         }
         else if (rand()%2 == 0 && sectionNumber_ > 3)
@@ -648,14 +648,14 @@
             {
             case 0:
-                itemType = ITEM_PROPELLER;
+                itemType = ItemType::PROPELLER;
                 break;
             case 1:
-                itemType = ITEM_ROCKET;
+                itemType = ItemType::ROCKET;
                 break;
             case 2:
-                itemType = ITEM_BOOTS;
+                itemType = ItemType::BOOTS;
                 break;
             case 3:
-                itemType = ITEM_SHIELD;
+                itemType = ItemType::SHIELD;
                 break;
             default:
@@ -667,122 +667,122 @@
         {
         case 0:
-            platformtype1 = PLATFORM_STATIC;
-            platformtype2 = PLATFORM_STATIC;
+            platformtype1 = PlatformType::STATIC;
+            platformtype2 = PlatformType::STATIC;
             break;
         case 1:
-            platformtype1 = PLATFORM_STATIC;
-            platformtype2 = PLATFORM_STATIC;
+            platformtype1 = PlatformType::STATIC;
+            platformtype2 = PlatformType::STATIC;
             break;
         case 2:
-            platformtype1 = PLATFORM_STATIC;
-            platformtype2 = PLATFORM_HMOVE;
+            platformtype1 = PlatformType::STATIC;
+            platformtype2 = PlatformType::HMOVE;
             break;
         case 3:
-            platformtype1 = PLATFORM_STATIC;
-            platformtype2 = PLATFORM_DISAPPEAR;
+            platformtype1 = PlatformType::STATIC;
+            platformtype2 = PlatformType::DISAPPEAR;
             break;
         case 4:
-            platformtype1 = PLATFORM_STATIC;
-            platformtype2 = PLATFORM_VMOVE;
+            platformtype1 = PlatformType::STATIC;
+            platformtype2 = PlatformType::VMOVE;
             break;
         case 5:
-            platformtype1 = PLATFORM_STATIC;
-            platformtype2 = PLATFORM_TIMER;
+            platformtype1 = PlatformType::STATIC;
+            platformtype2 = PlatformType::TIMER;
             break;
         case 6:
-            platformtype1 = PLATFORM_HMOVE;
-            platformtype2 = PLATFORM_STATIC;
+            platformtype1 = PlatformType::HMOVE;
+            platformtype2 = PlatformType::STATIC;
             break;
         case 7:
-            platformtype1 = PLATFORM_HMOVE;
-            platformtype2 = PLATFORM_HMOVE;
+            platformtype1 = PlatformType::HMOVE;
+            platformtype2 = PlatformType::HMOVE;
             break;
         case 8:
-            platformtype1 = PLATFORM_HMOVE;
-            platformtype2 = PLATFORM_HMOVE;
+            platformtype1 = PlatformType::HMOVE;
+            platformtype2 = PlatformType::HMOVE;
             break;
         case 9:
-            platformtype1 = PLATFORM_HMOVE;
-            platformtype2 = PLATFORM_DISAPPEAR;
+            platformtype1 = PlatformType::HMOVE;
+            platformtype2 = PlatformType::DISAPPEAR;
             break;
         case 10:
-            platformtype1 = PLATFORM_HMOVE;
-            platformtype2 = PLATFORM_VMOVE;
+            platformtype1 = PlatformType::HMOVE;
+            platformtype2 = PlatformType::VMOVE;
             break;
         case 11:
-            platformtype1 = PLATFORM_HMOVE;
-            platformtype2 = PLATFORM_TIMER;
+            platformtype1 = PlatformType::HMOVE;
+            platformtype2 = PlatformType::TIMER;
             break;
         case 12:
-            platformtype1 = PLATFORM_DISAPPEAR;
-            platformtype2 = PLATFORM_STATIC;
+            platformtype1 = PlatformType::DISAPPEAR;
+            platformtype2 = PlatformType::STATIC;
             break;
         case 13:
-            platformtype1 = PLATFORM_DISAPPEAR;
-            platformtype2 = PLATFORM_HMOVE;
+            platformtype1 = PlatformType::DISAPPEAR;
+            platformtype2 = PlatformType::HMOVE;
             break;
         case 14:
-            platformtype1 = PLATFORM_DISAPPEAR;
-            platformtype2 = PLATFORM_DISAPPEAR;
+            platformtype1 = PlatformType::DISAPPEAR;
+            platformtype2 = PlatformType::DISAPPEAR;
             break;
         case 15:
-            platformtype1 = PLATFORM_DISAPPEAR;
-            platformtype2 = PLATFORM_DISAPPEAR;
+            platformtype1 = PlatformType::DISAPPEAR;
+            platformtype2 = PlatformType::DISAPPEAR;
             break;
         case 16:
-            platformtype1 = PLATFORM_DISAPPEAR;
-            platformtype2 = PLATFORM_VMOVE;
+            platformtype1 = PlatformType::DISAPPEAR;
+            platformtype2 = PlatformType::VMOVE;
             break;
         case 17:
-            platformtype1 = PLATFORM_DISAPPEAR;
-            platformtype2 = PLATFORM_TIMER;
+            platformtype1 = PlatformType::DISAPPEAR;
+            platformtype2 = PlatformType::TIMER;
             break;
         case 18:
-            platformtype1 = PLATFORM_VMOVE;
-            platformtype2 = PLATFORM_STATIC;
+            platformtype1 = PlatformType::VMOVE;
+            platformtype2 = PlatformType::STATIC;
             break;
         case 19:
-            platformtype1 = PLATFORM_VMOVE;
-            platformtype2 = PLATFORM_HMOVE;
+            platformtype1 = PlatformType::VMOVE;
+            platformtype2 = PlatformType::HMOVE;
             break;
         case 20:
-            platformtype1 = PLATFORM_VMOVE;
-            platformtype2 = PLATFORM_DISAPPEAR;
+            platformtype1 = PlatformType::VMOVE;
+            platformtype2 = PlatformType::DISAPPEAR;
             break;
         case 21:
-            platformtype1 = PLATFORM_VMOVE;
-            platformtype2 = PLATFORM_VMOVE;
+            platformtype1 = PlatformType::VMOVE;
+            platformtype2 = PlatformType::VMOVE;
             break;
         case 22:
-            platformtype1 = PLATFORM_VMOVE;
-            platformtype2 = PLATFORM_VMOVE;
+            platformtype1 = PlatformType::VMOVE;
+            platformtype2 = PlatformType::VMOVE;
             break;
         case 23:
-            platformtype1 = PLATFORM_VMOVE;
-            platformtype2 = PLATFORM_TIMER;
+            platformtype1 = PlatformType::VMOVE;
+            platformtype2 = PlatformType::TIMER;
             break;
         case 24:
-            platformtype1 = PLATFORM_TIMER;
-            platformtype2 = PLATFORM_STATIC;
+            platformtype1 = PlatformType::TIMER;
+            platformtype2 = PlatformType::STATIC;
             break;
         case 25:
-            platformtype1 = PLATFORM_TIMER;
-            platformtype2 = PLATFORM_HMOVE;
+            platformtype1 = PlatformType::TIMER;
+            platformtype2 = PlatformType::HMOVE;
             break;
         case 26:
-            platformtype1 = PLATFORM_TIMER;
-            platformtype2 = PLATFORM_DISAPPEAR;
+            platformtype1 = PlatformType::TIMER;
+            platformtype2 = PlatformType::DISAPPEAR;
             break;
         case 27:
-            platformtype1 = PLATFORM_TIMER;
-            platformtype2 = PLATFORM_VMOVE;
+            platformtype1 = PlatformType::TIMER;
+            platformtype2 = PlatformType::VMOVE;
             break;
         case 28:
-            platformtype1 = PLATFORM_TIMER;
-            platformtype2 = PLATFORM_TIMER;
+            platformtype1 = PlatformType::TIMER;
+            platformtype2 = PlatformType::TIMER;
             break;
         default:
-            platformtype1 = PLATFORM_TIMER;
-            platformtype2 = PLATFORM_TIMER;
+            platformtype1 = PlatformType::TIMER;
+            platformtype2 = PlatformType::TIMER;
             break;
         }
@@ -807,6 +807,6 @@
         if (platformtype1 == platformtype2 && sectionNumber_ > 10 && rand()%2 == 0)
         {
-            matrix[rand()%numI][rand()%numJ].type = PLATFORM_EMPTY;
-            matrix[rand()%numI][rand()%numJ].type = PLATFORM_EMPTY;
+            matrix[rand()%numI][rand()%numJ].type = PlatformType::EMPTY;
+            matrix[rand()%numI][rand()%numJ].type = PlatformType::EMPTY;
         }
 
@@ -816,9 +816,9 @@
             if (rand()%2 == 0)
             {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_EMPTY;
-            }
-            else
-            {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_FAKE;
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::EMPTY;
+            }
+            else
+            {
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::FAKE;
             }
         }
@@ -827,17 +827,17 @@
             if (rand()%2 == 0)
             {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_EMPTY;
-            }
-            else
-            {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_FAKE;
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::EMPTY;
+            }
+            else
+            {
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::FAKE;
             }
             if (rand()%2 == 0)
             {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_EMPTY;
-            }
-            else
-            {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_FAKE;
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::EMPTY;
+            }
+            else
+            {
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::FAKE;
             }
         }
@@ -846,25 +846,25 @@
             if (rand()%2 == 0)
             {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_EMPTY;
-            }
-            else
-            {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_FAKE;
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::EMPTY;
+            }
+            else
+            {
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::FAKE;
             }
             if (rand()%2 == 0)
             {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_EMPTY;
-            }
-            else
-            {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_FAKE;
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::EMPTY;
+            }
+            else
+            {
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::FAKE;
             }
             if (rand()%2 == 0)
             {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_EMPTY;
-            }
-            else
-            {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_FAKE;
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::EMPTY;
+            }
+            else
+            {
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::FAKE;
             }
         }
@@ -889,8 +889,8 @@
                     switch(matrix[i][j].type)
                     {
-                    case PLATFORM_EMPTY:
+                    case PlatformType::EMPTY:
                         matrix[i][j].done = true;
                         break;
-                    case PLATFORM_STATIC:
+                    case PlatformType::STATIC:
                         xPosition = randomXPosition(numJ, j);
                         zPosition = sectionBegin + i*sectionLength/numI;
@@ -898,5 +898,5 @@
                         matrix[i][j].done = true;
                         break;
-                    case PLATFORM_FAKE:
+                    case PlatformType::FAKE:
                         xPosition = randomXPosition(numJ, j);
                         zPosition = sectionBegin + i*sectionLength/numI;
@@ -904,5 +904,5 @@
                         matrix[i][j].done = true;
                         break;
-                    case PLATFORM_TIMER:
+                    case PlatformType::TIMER:
                         xPosition = randomXPosition(numJ, j);
                         zPosition = sectionBegin + i*sectionLength/numI;
@@ -910,5 +910,5 @@
                         matrix[i][j].done = true;
                         break;
-                    case PLATFORM_DISAPPEAR:
+                    case PlatformType::DISAPPEAR:
                         xPosition = randomXPosition(numJ, j);
                         zPosition = sectionBegin + i*sectionLength/numI;
@@ -916,7 +916,7 @@
                         matrix[i][j].done = true;
                         break;
-                    case PLATFORM_HMOVE:
+                    case PlatformType::HMOVE:
                         xVelocity = randomSpeed();
-                        if (j <= numJ-3 && matrix[i][j+1].type == PLATFORM_HMOVE && matrix[i][j+2].type == PLATFORM_HMOVE && rand()%2 == 0)
+                        if (j <= numJ-3 && matrix[i][j+1].type == PlatformType::HMOVE && matrix[i][j+2].type == PlatformType::HMOVE && rand()%2 == 0)
                         {
                             leftBoundary = randomXPositionLeft(numJ, j);
@@ -929,5 +929,5 @@
                             matrix[i][j+2].done = true;
                         }
-                        else if (j <= numJ-2 && matrix[i][j+1].type == PLATFORM_HMOVE && rand()%2 == 0)
+                        else if (j <= numJ-2 && matrix[i][j+1].type == PlatformType::HMOVE && rand()%2 == 0)
                         {
                             leftBoundary = randomXPositionLeft(numJ, j);
@@ -949,7 +949,7 @@
                         }
                         break;
-                    case PLATFORM_VMOVE:
+                    case PlatformType::VMOVE:
                         zVelocity = randomSpeed();
-                        if (i <= numI-3 && matrix[i+1][j].type == PLATFORM_VMOVE && matrix[i+2][j].type == PLATFORM_VMOVE && rand()%2 == 0)
+                        if (i <= numI-3 && matrix[i+1][j].type == PlatformType::VMOVE && matrix[i+2][j].type == PlatformType::VMOVE && rand()%2 == 0)
                         {
                             lowerBoundary = randomZPositionLower(numI, i, sectionBegin, sectionEnd);
@@ -962,5 +962,5 @@
                             matrix[i+2][j].done = true;
                         }
-                        else if (i <= numI-2 && matrix[i+1][j].type == PLATFORM_VMOVE && rand()%2 == 0)
+                        else if (i <= numI-2 && matrix[i+1][j].type == PlatformType::VMOVE && rand()%2 == 0)
                         {
                             lowerBoundary = randomZPositionLower(numI, i, sectionBegin, sectionEnd);
@@ -1000,14 +1000,14 @@
                 switch (itemType)
                 {
-                case ITEM_ROCKET:
+                case ItemType::ROCKET:
                     addRocket(0.0, randomPosition(sectionBegin, sectionBegin + sectionLength), -fieldWidth/2, fieldWidth/2, 0.0, 0.0, randomSpeed(), 0.0);
                     break;
-                case ITEM_PROPELLER:
+                case ItemType::PROPELLER:
                     addPropeller(0.0, randomPosition(sectionBegin, sectionBegin + sectionLength), -fieldWidth/2, fieldWidth/2, 0.0, 0.0, randomSpeed(), 0.0);
                     break;
-                case ITEM_BOOTS:
+                case ItemType::BOOTS:
                     addBoots(0.0, randomPosition(sectionBegin, sectionBegin + sectionLength), -fieldWidth/2, fieldWidth/2, 0.0, 0.0, randomSpeed(), 0.0);
                     break;
-                case ITEM_SHIELD:
+                case ItemType::SHIELD:
                     addShield(0.0, randomPosition(sectionBegin, sectionBegin + sectionLength), -fieldWidth/2, fieldWidth/2, 0.0, 0.0, randomSpeed(), 0.0);
                     break;
@@ -1020,14 +1020,14 @@
                 switch (itemType)
                 {
-                case ITEM_ROCKET:
+                case ItemType::ROCKET:
                     addRocket(randomPosition(-fieldWidth/2, fieldWidth/2), sectionBegin + sectionLength/2, 0.0, 0.0, sectionBegin, sectionEnd, 0.0, randomSpeed());
                     break;
-                case ITEM_PROPELLER:
+                case ItemType::PROPELLER:
                     addPropeller(randomPosition(-fieldWidth/2, fieldWidth/2), sectionBegin + sectionLength/2, 0.0, 0.0, sectionBegin, sectionEnd, 0.0, randomSpeed());
                     break;
-                case ITEM_BOOTS:
+                case ItemType::BOOTS:
                     addBoots(randomPosition(-fieldWidth/2, fieldWidth/2), sectionBegin + sectionLength/2, 0.0, 0.0, sectionBegin, sectionEnd, 0.0, randomSpeed());
                     break;
-                case ITEM_SHIELD:
+                case ItemType::SHIELD:
                     addShield(randomPosition(-fieldWidth/2, fieldWidth/2), sectionBegin + sectionLength/2, 0.0, 0.0, sectionBegin, sectionEnd, 0.0, randomSpeed());
                     break;
@@ -1045,17 +1045,17 @@
                 switch (itemType)
                 {
-                case ITEM_SPRING:
+                case ItemType::SPRING:
                     addSpring(itemPlatform);
                     break;
-                case ITEM_ROCKET:
+                case ItemType::ROCKET:
                     addRocket(itemPlatform);
                     break;
-                case ITEM_PROPELLER:
+                case ItemType::PROPELLER:
                     addPropeller(itemPlatform);
                     break;
-                case ITEM_BOOTS:
+                case ItemType::BOOTS:
                     addBoots(itemPlatform);
                     break;
-                case ITEM_SHIELD:
+                case ItemType::SHIELD:
                     addShield(itemPlatform);
                     break;
Index: code/branches/cpp11_v3/src/modules/mini4dgame/Mini4Dgame.h
===================================================================
--- code/branches/cpp11_v3/src/modules/mini4dgame/Mini4Dgame.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/mini4dgame/Mini4Dgame.h	(revision 11068)
@@ -41,16 +41,4 @@
 namespace orxonox
 {
-
-    namespace mini4DgamePlayerColor
-    {
-        enum color
-        {
-            none,
-            red,
-            blue,
-            green
-        };
-    }
-
     /**
     @brief
Index: code/branches/cpp11_v3/src/modules/mini4dgame/Mini4DgameAI.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/mini4dgame/Mini4DgameAI.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/mini4dgame/Mini4DgameAI.cc	(revision 11068)
@@ -104,5 +104,5 @@
                 for(int k=0;k<4;k++){
                     for(int l=0;l<4;l++){
-                        if (this->board_[i][j][k][l]==mini4DgamePlayerColor::none)
+                        if (this->board_[i][j][k][l]==Mini4DgamePlayerColor::none)
                             possibleMoves.push_back(Vector4(i,j,k,l));
                     }
Index: code/branches/cpp11_v3/src/modules/mini4dgame/Mini4DgameAI.h
===================================================================
--- code/branches/cpp11_v3/src/modules/mini4dgame/Mini4DgameAI.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/mini4dgame/Mini4DgameAI.h	(revision 11068)
@@ -83,5 +83,5 @@
             std::list<Vector4> getPossibleMoves();
             void copyBoard();
-            mini4DgamePlayerColor::color board_[4][4][4][4];
+            Mini4DgamePlayerColor board_[4][4][4][4];
     };
 }
Index: code/branches/cpp11_v3/src/modules/mini4dgame/Mini4DgameBoard.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/mini4dgame/Mini4DgameBoard.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/mini4dgame/Mini4DgameBoard.cc	(revision 11068)
@@ -61,5 +61,5 @@
                 for(int k=0;k<4;k++){
                     for(int l=0;l<4;l++){
-                        this->board[i][j][k][l]=mini4DgamePlayerColor::none;
+                        this->board[i][j][k][l]=Mini4DgamePlayerColor::none;
                         this->blinkingBillboards[i][j][k][l] = nullptr;
                     }
@@ -79,5 +79,5 @@
         return (move.x<4 && move.y<4 && move.z<4 && move.w<4
                 && move.x>=0 && move.y>=0 && move.z>=0 && move.w>=0
-                && this->board[move.x][move.y][move.z][move.w] == mini4DgamePlayerColor::none);
+                && this->board[move.x][move.y][move.z][move.w] == Mini4DgamePlayerColor::none);
     }
 
@@ -86,5 +86,5 @@
         const Mini4DgamePosition& move = moves.back();
         moves.pop_back();
-        this->board[move.x][move.y][move.z][move.w] = mini4DgamePlayerColor::none;
+        this->board[move.x][move.y][move.z][move.w] = Mini4DgamePlayerColor::none;
         this->blinkingBillboards[move.x][move.y][move.z][move.w]->destroy();
         this->blinkingBillboards[move.x][move.y][move.z][move.w] = nullptr;
@@ -115,14 +115,14 @@
 
             moves.push_back(move);
-            mini4DgamePlayerColor::color playerColor = mini4DgamePlayerColor::none;
+            Mini4DgamePlayerColor playerColor = Mini4DgamePlayerColor::none;
             if(player_toggle_){
-                playerColor = mini4DgamePlayerColor::blue;
+                playerColor = Mini4DgamePlayerColor::blue;
                 this->player_toggle_ = false;
             }else{
-                playerColor = mini4DgamePlayerColor::green;
+                playerColor = Mini4DgamePlayerColor::green;
                 this->player_toggle_ = true;
             }
 
-            this->board[move.x][move.y][move.z][move.w] = (mini4DgamePlayerColor::color) playerColor;
+            this->board[move.x][move.y][move.z][move.w] = playerColor;
 
             BlinkingBillboard* bb = new BlinkingBillboard(this->getContext());
@@ -146,9 +146,9 @@
 
             switch(playerColor){
-            case mini4DgamePlayerColor::red:
+            case Mini4DgamePlayerColor::red:
                 bb->setColour(ColourValue(1,0,0)); break;
-            case mini4DgamePlayerColor::green:
+            case Mini4DgamePlayerColor::green:
                 bb->setColour(ColourValue(0,1,0)); break;
-            case mini4DgamePlayerColor::blue:
+            case Mini4DgamePlayerColor::blue:
                 bb->setColour(ColourValue(0,0,1)); break;
             default: break;
@@ -160,5 +160,5 @@
 
             Mini4DgameWinner winner = this->getWinner();
-            if(winner.color_ != mini4DgamePlayerColor::none)
+            if(winner.color_ != Mini4DgamePlayerColor::none)
             {
                 orxout(user_status) << "Mini4Dgame: win!!!!!!!" << endl;
@@ -188,10 +188,10 @@
     {
         Mini4DgameWinner winner;
-        winner.color_ = mini4DgamePlayerColor::none;
+        winner.color_ = Mini4DgamePlayerColor::none;
 
         //check diagonals rows-columns-height-numbers
         for(int i=1; i<4; i++)
         {
-            if(this->board[i][i][i][i]==mini4DgamePlayerColor::none || this->board[0][0][0][0] != this->board[i][i][i][i])
+            if(this->board[i][i][i][i]==Mini4DgamePlayerColor::none || this->board[0][0][0][0] != this->board[i][i][i][i])
                 break;
             if(i==3)
@@ -209,5 +209,5 @@
         for(int i=1; i<4; i++)
         {
-            if(this->board[3-i][i][i][i]==mini4DgamePlayerColor::none || this->board[3][0][0][0] != this->board[3-i][i][i][i])
+            if(this->board[3-i][i][i][i]==Mini4DgamePlayerColor::none || this->board[3][0][0][0] != this->board[3-i][i][i][i])
                 break;
             if(i==3)
@@ -225,5 +225,5 @@
         for(int i=1; i<4; i++)
         {
-            if(this->board[i][3-i][i][i]==mini4DgamePlayerColor::none || this->board[0][3][0][0] != this->board[i][3-i][i][i])
+            if(this->board[i][3-i][i][i]==Mini4DgamePlayerColor::none || this->board[0][3][0][0] != this->board[i][3-i][i][i])
                 break;
             if(i==3)
@@ -241,5 +241,5 @@
         for(int i=1; i<4; i++)
         {
-            if(this->board[i][i][3-i][i]==mini4DgamePlayerColor::none || this->board[0][0][3][0] != this->board[i][i][3-i][i])
+            if(this->board[i][i][3-i][i]==Mini4DgamePlayerColor::none || this->board[0][0][3][0] != this->board[i][i][3-i][i])
                 break;
             if(i==3)
@@ -257,5 +257,5 @@
         for(int i=1; i<4; i++)
         {
-            if(this->board[i][i][i][3-i]==mini4DgamePlayerColor::none || this->board[0][0][0][3] != this->board[i][i][i][3-i])
+            if(this->board[i][i][i][3-i]==Mini4DgamePlayerColor::none || this->board[0][0][0][3] != this->board[i][i][i][3-i])
                 break;
             if(i==3)
@@ -273,5 +273,5 @@
         for(int i=1; i<4; i++)
         {
-            if(this->board[3-i][3-i][i][i]==mini4DgamePlayerColor::none || this->board[3][3][0][0] != this->board[3-i][3-i][i][i])
+            if(this->board[3-i][3-i][i][i]==Mini4DgamePlayerColor::none || this->board[3][3][0][0] != this->board[3-i][3-i][i][i])
                 break;
             if(i==3)
@@ -289,5 +289,5 @@
         for(int i=1; i<4; i++)
         {
-            if(this->board[3-i][i][3-i][i]==mini4DgamePlayerColor::none || this->board[3][0][3][0] != this->board[3-i][i][3-i][i])
+            if(this->board[3-i][i][3-i][i]==Mini4DgamePlayerColor::none || this->board[3][0][3][0] != this->board[3-i][i][3-i][i])
                 break;
             if(i==3)
@@ -305,5 +305,5 @@
         for(int i=1; i<4; i++)
         {
-            if(this->board[3-i][i][i][3-i]==mini4DgamePlayerColor::none || this->board[3][0][0][3] != this->board[3-i][i][i][3-i])
+            if(this->board[3-i][i][i][3-i]==Mini4DgamePlayerColor::none || this->board[3][0][0][3] != this->board[3-i][i][i][3-i])
                 break;
             if(i==3)
@@ -325,5 +325,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[i][i][i][l]==mini4DgamePlayerColor::none || this->board[0][0][0][l] != this->board[i][i][i][l])
+                if(this->board[i][i][i][l]==Mini4DgamePlayerColor::none || this->board[0][0][0][l] != this->board[i][i][i][l])
                     break;
                 if(i==3)
@@ -341,5 +341,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[3-i][i][i][l]==mini4DgamePlayerColor::none || this->board[3][0][0][l] != this->board[3-i][i][i][l])
+                if(this->board[3-i][i][i][l]==Mini4DgamePlayerColor::none || this->board[3][0][0][l] != this->board[3-i][i][i][l])
                     break;
                 if(i==3)
@@ -357,5 +357,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[i][3-i][i][l]==mini4DgamePlayerColor::none || this->board[0][3][0][l] != this->board[i][3-i][i][l])
+                if(this->board[i][3-i][i][l]==Mini4DgamePlayerColor::none || this->board[0][3][0][l] != this->board[i][3-i][i][l])
                     break;
                 if(i==3)
@@ -373,5 +373,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[i][i][3-i][l]==mini4DgamePlayerColor::none || this->board[0][0][3][l] != this->board[i][i][3-i][l])
+                if(this->board[i][i][3-i][l]==Mini4DgamePlayerColor::none || this->board[0][0][3][l] != this->board[i][i][3-i][l])
                     break;
                 if(i==3)
@@ -394,5 +394,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[i][i][l][i]==mini4DgamePlayerColor::none || this->board[0][0][l][0] != this->board[i][i][l][i])
+                if(this->board[i][i][l][i]==Mini4DgamePlayerColor::none || this->board[0][0][l][0] != this->board[i][i][l][i])
                     break;
                 if(i==3)
@@ -410,5 +410,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[3-i][i][l][i]==mini4DgamePlayerColor::none || this->board[3][0][l][0] != this->board[3-i][i][l][i])
+                if(this->board[3-i][i][l][i]==Mini4DgamePlayerColor::none || this->board[3][0][l][0] != this->board[3-i][i][l][i])
                     break;
                 if(i==3)
@@ -426,5 +426,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[i][3-i][l][i]==mini4DgamePlayerColor::none || this->board[0][3][l][0] != this->board[i][3-i][l][i])
+                if(this->board[i][3-i][l][i]==Mini4DgamePlayerColor::none || this->board[0][3][l][0] != this->board[i][3-i][l][i])
                     break;
                 if(i==3)
@@ -442,5 +442,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[i][i][l][3-i]==mini4DgamePlayerColor::none || this->board[0][0][l][3] != this->board[i][i][l][3-i])
+                if(this->board[i][i][l][3-i]==Mini4DgamePlayerColor::none || this->board[0][0][l][3] != this->board[i][i][l][3-i])
                     break;
                 if(i==3)
@@ -463,5 +463,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[i][l][i][i]==mini4DgamePlayerColor::none || this->board[0][l][0][0] != this->board[i][l][i][i])
+                if(this->board[i][l][i][i]==Mini4DgamePlayerColor::none || this->board[0][l][0][0] != this->board[i][l][i][i])
                     break;
                 if(i==3)
@@ -479,5 +479,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[3-i][l][i][i]==mini4DgamePlayerColor::none || this->board[3][l][0][0] != this->board[3-i][l][i][i])
+                if(this->board[3-i][l][i][i]==Mini4DgamePlayerColor::none || this->board[3][l][0][0] != this->board[3-i][l][i][i])
                     break;
                 if(i==3)
@@ -495,5 +495,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[i][l][3-i][i]==mini4DgamePlayerColor::none || this->board[0][l][3][0] != this->board[i][l][3-i][i])
+                if(this->board[i][l][3-i][i]==Mini4DgamePlayerColor::none || this->board[0][l][3][0] != this->board[i][l][3-i][i])
                     break;
                 if(i==3)
@@ -511,5 +511,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[i][l][i][3-i]==mini4DgamePlayerColor::none || this->board[0][l][0][3] != this->board[i][l][i][3-i])
+                if(this->board[i][l][i][3-i]==Mini4DgamePlayerColor::none || this->board[0][l][0][3] != this->board[i][l][i][3-i])
                     break;
                 if(i==3)
@@ -532,5 +532,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[l][i][i][i]==mini4DgamePlayerColor::none || this->board[l][0][0][0] != this->board[l][i][i][i])
+                if(this->board[l][i][i][i]==Mini4DgamePlayerColor::none || this->board[l][0][0][0] != this->board[l][i][i][i])
                     break;
                 if(i==3)
@@ -548,5 +548,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[l][3-i][i][i]==mini4DgamePlayerColor::none || this->board[l][3][0][0] != this->board[l][3-i][i][i])
+                if(this->board[l][3-i][i][i]==Mini4DgamePlayerColor::none || this->board[l][3][0][0] != this->board[l][3-i][i][i])
                     break;
                 if(i==3)
@@ -564,5 +564,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[l][i][3-i][i]==mini4DgamePlayerColor::none || this->board[l][0][3][0] != this->board[l][i][3-i][i])
+                if(this->board[l][i][3-i][i]==Mini4DgamePlayerColor::none || this->board[l][0][3][0] != this->board[l][i][3-i][i])
                     break;
                 if(i==3)
@@ -580,5 +580,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[l][i][i][3-i]==mini4DgamePlayerColor::none || this->board[l][0][0][3] != this->board[l][i][i][3-i])
+                if(this->board[l][i][i][3-i]==Mini4DgamePlayerColor::none || this->board[l][0][0][3] != this->board[l][i][i][3-i])
                     break;
                 if(i==3)
@@ -602,5 +602,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[i][i][k][l]==mini4DgamePlayerColor::none || this->board[0][0][k][l] != this->board[i][i][k][l])
+                    if(this->board[i][i][k][l]==Mini4DgamePlayerColor::none || this->board[0][0][k][l] != this->board[i][i][k][l])
                         break;
                     if(i==3)
@@ -618,5 +618,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[3-i][i][k][l]==mini4DgamePlayerColor::none || this->board[3][0][k][l] != this->board[3-i][i][k][l])
+                    if(this->board[3-i][i][k][l]==Mini4DgamePlayerColor::none || this->board[3][0][k][l] != this->board[3-i][i][k][l])
                         break;
                     if(i==3)
@@ -635,5 +635,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[i][k][i][l]==mini4DgamePlayerColor::none || this->board[0][k][0][l] != this->board[i][k][i][l])
+                    if(this->board[i][k][i][l]==Mini4DgamePlayerColor::none || this->board[0][k][0][l] != this->board[i][k][i][l])
                         break;
                     if(i==3)
@@ -651,5 +651,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[3-i][k][i][l]==mini4DgamePlayerColor::none || this->board[3][k][0][l] != this->board[3-i][k][i][l])
+                    if(this->board[3-i][k][i][l]==Mini4DgamePlayerColor::none || this->board[3][k][0][l] != this->board[3-i][k][i][l])
                         break;
                     if(i==3)
@@ -668,5 +668,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[i][k][l][i]==mini4DgamePlayerColor::none || this->board[0][k][l][0] != this->board[i][k][l][i])
+                    if(this->board[i][k][l][i]==Mini4DgamePlayerColor::none || this->board[0][k][l][0] != this->board[i][k][l][i])
                         break;
                     if(i==3)
@@ -684,5 +684,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[3-i][k][l][i]==mini4DgamePlayerColor::none || this->board[3][k][l][0] != this->board[3-i][k][l][i])
+                    if(this->board[3-i][k][l][i]==Mini4DgamePlayerColor::none || this->board[3][k][l][0] != this->board[3-i][k][l][i])
                         break;
                     if(i==3)
@@ -701,5 +701,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[k][i][i][l]==mini4DgamePlayerColor::none || this->board[k][0][0][l] != this->board[k][i][i][l])
+                    if(this->board[k][i][i][l]==Mini4DgamePlayerColor::none || this->board[k][0][0][l] != this->board[k][i][i][l])
                         break;
                     if(i==3)
@@ -717,5 +717,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[k][3-i][i][l]==mini4DgamePlayerColor::none || this->board[k][3][0][l] != this->board[k][3-i][i][l])
+                    if(this->board[k][3-i][i][l]==Mini4DgamePlayerColor::none || this->board[k][3][0][l] != this->board[k][3-i][i][l])
                         break;
                     if(i==3)
@@ -734,5 +734,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[k][i][l][i]==mini4DgamePlayerColor::none || this->board[k][0][l][0] != this->board[k][i][l][i])
+                    if(this->board[k][i][l][i]==Mini4DgamePlayerColor::none || this->board[k][0][l][0] != this->board[k][i][l][i])
                         break;
                     if(i==3)
@@ -750,5 +750,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[k][3-i][l][i]==mini4DgamePlayerColor::none || this->board[k][3][l][0] != this->board[k][3-i][l][i])
+                    if(this->board[k][3-i][l][i]==Mini4DgamePlayerColor::none || this->board[k][3][l][0] != this->board[k][3-i][l][i])
                         break;
                     if(i==3)
@@ -767,5 +767,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[k][l][i][i]==mini4DgamePlayerColor::none || this->board[k][l][0][0] != this->board[k][l][i][i])
+                    if(this->board[k][l][i][i]==Mini4DgamePlayerColor::none || this->board[k][l][0][0] != this->board[k][l][i][i])
                         break;
                     if(i==3)
@@ -783,5 +783,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[k][l][3-i][i]==mini4DgamePlayerColor::none || this->board[k][l][3][0] != this->board[k][l][3-i][i])
+                    if(this->board[k][l][3-i][i]==Mini4DgamePlayerColor::none || this->board[k][l][3][0] != this->board[k][l][3-i][i])
                         break;
                     if(i==3)
@@ -804,5 +804,5 @@
             for(int k=0;k<4;k++){
                 for(int l=0;l<4;l++){
-                    if(this->board[0][j][k][l]!= mini4DgamePlayerColor::none
+                    if(this->board[0][j][k][l]!= Mini4DgamePlayerColor::none
                        && this->board[0][j][k][l]==this->board[1][j][k][l]
                        && this->board[1][j][k][l]==this->board[2][j][k][l]
@@ -826,5 +826,5 @@
             for(int k=0;k<4;k++){
                 for(int l=0;l<4;l++){
-                    if(this->board[i][0][k][l]!= mini4DgamePlayerColor::none
+                    if(this->board[i][0][k][l]!= Mini4DgamePlayerColor::none
                                && this->board[i][0][k][l]==this->board[i][1][k][l]
                                && this->board[i][1][k][l]==this->board[i][2][k][l]
@@ -848,5 +848,5 @@
             for(int j=0;j<4;j++){
                 for(int l=0;l<4;l++){
-                    if(this->board[i][j][0][l]!= mini4DgamePlayerColor::none
+                    if(this->board[i][j][0][l]!= Mini4DgamePlayerColor::none
                                        && this->board[i][j][0][l]==this->board[i][j][1][l]
                                        && this->board[i][j][1][l]==this->board[i][j][2][l]
@@ -870,5 +870,5 @@
             for(int j=0;j<4;j++){
                 for(int k=0;k<4;k++){
-                    if(this->board[i][j][k][0]!= mini4DgamePlayerColor::none
+                    if(this->board[i][j][k][0]!= Mini4DgamePlayerColor::none
                                        && this->board[i][j][k][0]==this->board[i][j][k][1]
                                        && this->board[i][j][k][1]==this->board[i][j][k][2]
Index: code/branches/cpp11_v3/src/modules/mini4dgame/Mini4DgameBoard.h
===================================================================
--- code/branches/cpp11_v3/src/modules/mini4dgame/Mini4DgameBoard.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/mini4dgame/Mini4DgameBoard.h	(revision 11068)
@@ -42,4 +42,11 @@
 namespace orxonox
 {
+    enum class Mini4DgamePlayerColor
+    {
+        none,
+        red,
+        blue,
+        green
+    };
 
     struct Mini4DgamePosition
@@ -58,5 +65,5 @@
         int winningHeight[4];
         int winningNumber[4];
-        int color_;
+        Mini4DgamePlayerColor color_;
     };
 
@@ -86,5 +93,5 @@
             bool player_toggle_;
             BlinkingBillboard* blinkingBillboards[4][4][4][4];
-            int board[4][4][4][4]; //!< The logical board where the game takes place. board[row][column][height][number]
+            Mini4DgamePlayerColor board[4][4][4][4]; //!< The logical board where the game takes place. board[row][column][height][number]
     };
 }
Index: code/branches/cpp11_v3/src/modules/notifications/NotificationDispatcher.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/notifications/NotificationDispatcher.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/notifications/NotificationDispatcher.cc	(revision 11068)
@@ -113,5 +113,5 @@
         // TODO: Needed?
         const std::string message = this->createNotificationMessage();
-        NotificationListener::sendNotification(message, this->getSender(), notificationMessageType::info, notificationSendMode::local);
+        NotificationListener::sendNotification(message, this->getSender(), NotificationMessageType::info, NotificationSendMode::local);
 
         // Broadcast
@@ -144,5 +144,5 @@
             const std::string message = this->createNotificationMessage();
             // TODO: Make the type configurable.
-            NotificationListener::sendNotification(message, this->getSender(), notificationMessageType::info, notificationSendMode::network, clientId);
+            NotificationListener::sendNotification(message, this->getSender(), NotificationMessageType::info, NotificationSendMode::network, clientId);
         }
         else if(GameMode::isServer())
Index: code/branches/cpp11_v3/src/modules/notifications/NotificationManager.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/notifications/NotificationManager.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/notifications/NotificationManager.cc	(revision 11068)
@@ -106,5 +106,5 @@
         Returns true if successful.
     */
-    bool NotificationManager::registerNotification(const std::string& message, const std::string& sender, notificationMessageType::Value type)
+    bool NotificationManager::registerNotification(const std::string& message, const std::string& sender, NotificationMessageType type)
     {
         // TODO: Do something with the type.
@@ -124,8 +124,8 @@
         Returns true if the command was successfully executed.
     */
-    bool NotificationManager::executeCommand(notificationCommand::Value command, const std::string& sender)
+    bool NotificationManager::executeCommand(NotificationCommand command, const std::string& sender)
     {
         bool commandExecuted = false;
-        if(command == notificationCommand::clear)
+        if(command == NotificationCommand::clear)
         {
             if(this->commandClear(sender))
@@ -437,5 +437,5 @@
 
     */
-    Notification::Notification(const std::string& message, const std::string& sender, notificationMessageType::Value type)
+    Notification::Notification(const std::string& message, const std::string& sender, NotificationMessageType type)
     {
         this->initialize();
Index: code/branches/cpp11_v3/src/modules/notifications/NotificationManager.h
===================================================================
--- code/branches/cpp11_v3/src/modules/notifications/NotificationManager.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/notifications/NotificationManager.h	(revision 11068)
@@ -62,5 +62,5 @@
     {
         public:
-            Notification(const std::string& message, const std::string& sender, notificationMessageType::Value type);
+            Notification(const std::string& message, const std::string& sender, NotificationMessageType type);
             virtual ~Notification();
 
@@ -89,5 +89,5 @@
             @return Returns an enum with the type of the Notification.
             */
-            inline notificationMessageType::Value getType(void) const
+            inline NotificationMessageType getType(void) const
                 { return this->type_; }
 
@@ -95,5 +95,5 @@
             std::string message_; //!< The Notification message.
             std::string sender_; //!< The sender of the notification.
-            notificationMessageType::Value type_; //!< The type of the notification.
+            NotificationMessageType type_; //!< The type of the notification.
 
             void initialize(void); //!< Registers the object and sets some default values.
@@ -128,6 +128,6 @@
             static NotificationManager& getInstance() { return Singleton<NotificationManager>::getInstance(); } // tolua_export
 
-            virtual bool registerNotification(const std::string& message, const std::string& sender, notificationMessageType::Value type) override;
-            virtual bool executeCommand(notificationCommand::Value command, const std::string& sender) override;
+            virtual bool registerNotification(const std::string& message, const std::string& sender, NotificationMessageType type) override;
+            virtual bool executeCommand(NotificationCommand command, const std::string& sender) override;
 
             bool registerNotification(Notification* notification); // Registers a Notification within the NotificationManager.
Index: code/branches/cpp11_v3/src/modules/objects/ForceField.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/objects/ForceField.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/objects/ForceField.cc	(revision 11068)
@@ -67,5 +67,5 @@
         this->setMassDiameter(0);   //! We allow point-masses
         this->setLength(2000);
-        this->mode_ = forceFieldMode::tube;
+        this->mode_ = ForceFieldMode::tube;
         
         this->registerVariables();
@@ -115,5 +115,5 @@
     void ForceField::tick(float dt)
     {
-        if(this->mode_ == forceFieldMode::tube)
+        if(this->mode_ == ForceFieldMode::tube)
         {
             // Iterate over all objects that could possibly be affected by the ForceField.
@@ -143,5 +143,5 @@
             }
         }
-        else if(this->mode_ == forceFieldMode::sphere)
+        else if(this->mode_ == ForceFieldMode::sphere)
         {
             // Iterate over all objects that could possibly be affected by the ForceField.
@@ -159,5 +159,5 @@
             }
         }
-        else if(this->mode_ == forceFieldMode::invertedSphere)
+        else if(this->mode_ == ForceFieldMode::invertedSphere)
         {
             // Iterate over all objects that could possibly be affected by the ForceField.
@@ -176,5 +176,5 @@
             }
         }
-        else if(this->mode_ == forceFieldMode::newtonianGravity)
+        else if(this->mode_ == ForceFieldMode::newtonianGravity)
         {
             // Iterate over all objects that could possibly be affected by the ForceField.
@@ -201,5 +201,5 @@
             }
         }
-        else if(this->mode_ == forceFieldMode::homogen)
+        else if(this->mode_ == ForceFieldMode::homogen)
         {
             // Iterate over all objects that could possibly be affected by the ForceField.
@@ -227,19 +227,19 @@
     {
         if(mode == ForceField::modeTube_s)
-            this->mode_ = forceFieldMode::tube;
+            this->mode_ = ForceFieldMode::tube;
         else if(mode == ForceField::modeSphere_s)
-            this->mode_ = forceFieldMode::sphere;
+            this->mode_ = ForceFieldMode::sphere;
         else if(mode == ForceField::modeInvertedSphere_s)
-            this->mode_ = forceFieldMode::invertedSphere;
+            this->mode_ = ForceFieldMode::invertedSphere;
         else if(mode == ForceField::modeNewtonianGravity_s)
-            this->mode_ = forceFieldMode::newtonianGravity;
+            this->mode_ = ForceFieldMode::newtonianGravity;
 
         else if(mode == ForceField::modeHomogen_s)
-            this->mode_ = forceFieldMode::homogen;
+            this->mode_ = ForceFieldMode::homogen;
 
         else
         {
             orxout(internal_warning) << "Wrong mode '" << mode << "' in ForceField. Setting to 'tube'." << endl;
-            this->mode_ = forceFieldMode::tube;
+            this->mode_ = ForceFieldMode::tube;
         }
     }
@@ -255,14 +255,14 @@
         switch(this->mode_)
         {
-            case forceFieldMode::tube:
+            case ForceFieldMode::tube:
                 return ForceField::modeTube_s;
-            case forceFieldMode::sphere:
+            case ForceFieldMode::sphere:
                 return ForceField::modeSphere_s;
-            case forceFieldMode::invertedSphere:
+            case ForceFieldMode::invertedSphere:
                 return ForceField::modeInvertedSphere_s;
-            case forceFieldMode::newtonianGravity:
+            case ForceFieldMode::newtonianGravity:
                 return ForceField::modeNewtonianGravity_s;
 
-            case forceFieldMode::homogen:
+            case ForceFieldMode::homogen:
                 return ForceField::modeHomogen_s;
 
Index: code/branches/cpp11_v3/src/modules/objects/ForceField.h
===================================================================
--- code/branches/cpp11_v3/src/modules/objects/ForceField.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/objects/ForceField.h	(revision 11068)
@@ -52,14 +52,11 @@
     @ingroup Objects
     */
-    namespace forceFieldMode
-    {
-        enum Value {
-            tube, //!< The ForceField has a tube shape.
-            sphere, //!< The ForceField has a spherical shape.
-            invertedSphere, //!< The ForceField has a spherical shape but "inverted" behavior.
-            newtonianGravity, //!< The ForceField imitates Newtonian gravitation for use in stellar bodies.
-            homogen //!< Local homogenous Force field with changeable direction for the Space Station
-        };
-    }
+    enum class ForceFieldMode {
+        tube, //!< The ForceField has a tube shape.
+        sphere, //!< The ForceField has a spherical shape.
+        invertedSphere, //!< The ForceField has a spherical shape but "inverted" behavior.
+        newtonianGravity, //!< The ForceField imitates Newtonian gravitation for use in stellar bodies.
+        homogen //!< Local homogenous Force field with changeable direction for the Space Station
+    };
 
     /**
@@ -172,5 +169,5 @@
             float massRadius_; //!< The radius of the stellar body for the Newtonian ForceField.
             float halfLength_; //!< Half of the length of the ForceField.
-            int mode_; //!< The mode of the ForceField.
+            ForceFieldMode mode_; //!< The mode of the ForceField.
             
             //! Gravitational constant for Newtonian ForceFields.
Index: code/branches/cpp11_v3/src/modules/objects/Script.h
===================================================================
--- code/branches/cpp11_v3/src/modules/objects/Script.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/objects/Script.h	(revision 11068)
@@ -51,12 +51,9 @@
     @brief The mode a specific @ref orxonox::Script "Script" is in.
     */
-    namespace ScriptMode
+    enum class ScriptMode
     {
-        enum Value
-        {
-            normal, //!< The @ref orxonox::Script "Scripts'" code is executed through the @ref orxonox::CommandExecutor "CommandExecutor".
-            lua //!< The @ref orxonox::Script "Scripts'" code is executed through lua.
-        };
-    }
+        normal, //!< The @ref orxonox::Script "Scripts'" code is executed through the @ref orxonox::CommandExecutor "CommandExecutor".
+        lua //!< The @ref orxonox::Script "Scripts'" code is executed through lua.
+    };
 
     /**
@@ -178,5 +175,5 @@
 
             std::string code_; //!< The code that is executed by this Script.
-            ScriptMode::Value mode_; //!< The mode the Script is in. Determines whether the code is executed the normal way or in lua.
+            ScriptMode mode_; //!< The mode the Script is in. Determines whether the code is executed the normal way or in lua.
             std::string modeStr_; //!< The mode the Script is in, as a string. Is used for networking purposes.
             bool onLoad_; //!< Whether the Scripts code is executed upon loading (creation) of this Script.
@@ -193,5 +190,5 @@
             @param mode The mode of the Script.
             */
-            inline void setMode(ScriptMode::Value mode)
+            inline void setMode(ScriptMode mode)
                 { this->mode_ = mode; }
     };
Index: code/branches/cpp11_v3/src/modules/objects/Turret.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/objects/Turret.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/objects/Turret.cc	(revision 11068)
@@ -278,5 +278,5 @@
             //slower the closer it is to the destination
             Quaternion drot = Quaternion::nlerp(dt*this->rotationThrust_/20.f, Quaternion::IDENTITY, this->rotation_);
-            this->rotate(drot, WorldEntity::World);
+            this->rotate(drot, WorldEntity::TransformSpace::World);
             this->rotation_ = Quaternion::IDENTITY;
         }
Index: code/branches/cpp11_v3/src/modules/objects/triggers/CheckPoint.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/objects/triggers/CheckPoint.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/objects/triggers/CheckPoint.cc	(revision 11068)
@@ -56,5 +56,5 @@
 
         this->setRadarObjectColour(ColourValue::Green);
-        this->setRadarObjectShape(RadarViewable::Dot);
+        this->setRadarObjectShape(RadarViewable::Shape::Dot);
         this->setRadarVisibility(false);
 
Index: code/branches/cpp11_v3/src/modules/objects/triggers/DistanceMultiTrigger.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/objects/triggers/DistanceMultiTrigger.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/objects/triggers/DistanceMultiTrigger.cc	(revision 11068)
@@ -58,5 +58,5 @@
 
         this->distance_ = 100.0f;
-        this->setBeaconModeDirect(distanceMultiTriggerBeaconMode::off);
+        this->setBeaconModeDirect(DistanceMultiTriggerBeaconMode::off);
         this->targetName_ = "";
         this->beaconMask_.exclude(Class(BaseObject));
@@ -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,5 +155,5 @@
             
             // 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)
             {
                 
@@ -182,5 +182,5 @@
 
                 // 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();
 
@@ -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;
Index: code/branches/cpp11_v3/src/modules/objects/triggers/DistanceMultiTrigger.h
===================================================================
--- code/branches/cpp11_v3/src/modules/objects/triggers/DistanceMultiTrigger.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/objects/triggers/DistanceMultiTrigger.h	(revision 11068)
@@ -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,5 +146,5 @@
             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.
Index: code/branches/cpp11_v3/src/modules/objects/triggers/DistanceTrigger.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/objects/triggers/DistanceTrigger.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/objects/triggers/DistanceTrigger.cc	(revision 11068)
@@ -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,5 +177,5 @@
 
             // 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)
             {
 
@@ -202,5 +202,5 @@
                 {
                     // 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();
 
@@ -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/branches/cpp11_v3/src/modules/objects/triggers/DistanceTrigger.h
===================================================================
--- code/branches/cpp11_v3/src/modules/objects/triggers/DistanceTrigger.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/objects/triggers/DistanceTrigger.h	(revision 11068)
@@ -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/branches/cpp11_v3/src/modules/objects/triggers/EventTrigger.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/objects/triggers/EventTrigger.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/objects/triggers/EventTrigger.cc	(revision 11068)
@@ -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/branches/cpp11_v3/src/modules/objects/triggers/EventTrigger.h
===================================================================
--- code/branches/cpp11_v3/src/modules/objects/triggers/EventTrigger.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/objects/triggers/EventTrigger.h	(revision 11068)
@@ -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/branches/cpp11_v3/src/modules/objects/triggers/Trigger.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/objects/triggers/Trigger.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/objects/triggers/Trigger.cc	(revision 11068)
@@ -193,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.
Index: code/branches/cpp11_v3/src/modules/objects/triggers/Trigger.h
===================================================================
--- code/branches/cpp11_v3/src/modules/objects/triggers/Trigger.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/objects/triggers/Trigger.h	(revision 11068)
@@ -104,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.
 
Index: code/branches/cpp11_v3/src/modules/objects/triggers/TriggerBase.h
===================================================================
--- code/branches/cpp11_v3/src/modules/objects/triggers/TriggerBase.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/objects/triggers/TriggerBase.h	(revision 11068)
@@ -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.
+    };
 
     /**
@@ -157,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;
@@ -164,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_; }
 
@@ -210,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.
Index: code/branches/cpp11_v3/src/modules/overlays/OverlayText.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/overlays/OverlayText.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/overlays/OverlayText.cc	(revision 11068)
@@ -42,7 +42,7 @@
     RegisterClass(OverlayText);
 
-    static_assert((int)Ogre::TextAreaOverlayElement::Left   == (int)OverlayText::Left,   "check enum");
-    static_assert((int)Ogre::TextAreaOverlayElement::Center == (int)OverlayText::Center, "check enum");
-    static_assert((int)Ogre::TextAreaOverlayElement::Right  == (int)OverlayText::Right,  "check enum");
+    static_assert((int)Ogre::TextAreaOverlayElement::Left   == (int)OverlayText::Alignment::Left,   "check enum");
+    static_assert((int)Ogre::TextAreaOverlayElement::Center == (int)OverlayText::Alignment::Center, "check enum");
+    static_assert((int)Ogre::TextAreaOverlayElement::Right  == (int)OverlayText::Alignment::Right,  "check enum");
 
     OverlayText::OverlayText(Context* context)
@@ -85,9 +85,9 @@
     {
         if (alignment == "right")
-            this->setAlignment(OverlayText::Right);
+            this->setAlignment(OverlayText::Alignment::Right);
         else if (alignment == "center")
-            this->setAlignment(OverlayText::Center);
+            this->setAlignment(OverlayText::Alignment::Center);
         else // "left" and default
-            this->setAlignment(OverlayText::Left);
+            this->setAlignment(OverlayText::Alignment::Left);
     }
 
@@ -111,7 +111,7 @@
     void OverlayText::sizeChanged()
     {
-        if (this->rotState_ == Horizontal)
+        if (this->rotState_ == RotationState::Horizontal)
             this->overlay_->setScale(size_.y * sizeCorrection_.y, size_.y * sizeCorrection_.y);
-        else if (this->rotState_ == Vertical)
+        else if (this->rotState_ == RotationState::Vertical)
             this->overlay_->setScale(size_.y / (sizeCorrection_.y * sizeCorrection_.y), size_.y * sizeCorrection_.y);
         else
Index: code/branches/cpp11_v3/src/modules/overlays/OverlayText.h
===================================================================
--- code/branches/cpp11_v3/src/modules/overlays/OverlayText.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/overlays/OverlayText.h	(revision 11068)
@@ -42,5 +42,5 @@
     {
     public:
-        enum Alignment
+        enum class Alignment
         {
             Left,
Index: code/branches/cpp11_v3/src/modules/overlays/hud/HUDRadar.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/overlays/hud/HUDRadar.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/overlays/hud/HUDRadar.cc	(revision 11068)
@@ -65,7 +65,7 @@
         this->setMaximumDotSize3D(0.07f);
 
-        this->shapeMaterials_[RadarViewable::Dot]      = "RadarDot.png";
-        this->shapeMaterials_[RadarViewable::Triangle] = "RadarTriangle.png";
-        this->shapeMaterials_[RadarViewable::Square]   = "RadarSquare.png";
+        this->shapeMaterials_[RadarViewable::Shape::Dot]      = "RadarDot.png";
+        this->shapeMaterials_[RadarViewable::Shape::Triangle] = "RadarTriangle.png";
+        this->shapeMaterials_[RadarViewable::Shape::Square]   = "RadarSquare.png";
         this->owner_ = nullptr;
 
Index: code/branches/cpp11_v3/src/modules/overlays/stats/CreateLines.h
===================================================================
--- code/branches/cpp11_v3/src/modules/overlays/stats/CreateLines.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/overlays/stats/CreateLines.h	(revision 11068)
@@ -29,4 +29,6 @@
 
 #include "overlays/OverlaysPrereqs.h"
+
+#include <string>
 
 namespace orxonox
Index: code/branches/cpp11_v3/src/modules/pickup/Pickup.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/pickup/Pickup.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/pickup/Pickup.cc	(revision 11068)
@@ -78,6 +78,6 @@
     void Pickup::initialize(void)
     {
-        this->activationType_ = pickupActivationType::immediate;
-        this->durationType_ = pickupDurationType::once;
+        this->activationType_ = PickupActivationType::immediate;
+        this->durationType_ = PickupDurationType::once;
     }
 
@@ -105,7 +105,7 @@
         switch(this->getActivationType())
         {
-            case pickupActivationType::immediate:
+            case PickupActivationType::immediate:
                 return activationTypeImmediate_s;
-            case pickupActivationType::onUse:
+            case PickupActivationType::onUse:
                 return activationTypeOnUse_s;
             default:
@@ -124,7 +124,7 @@
         switch(this->getDurationType())
         {
-            case pickupDurationType::once:
+            case PickupDurationType::once:
                 return durationTypeOnce_s;
-            case pickupDurationType::continuous:
+            case PickupDurationType::continuous:
                 return durationTypeContinuous_s;
             default:
@@ -142,7 +142,7 @@
     {
         if(type == Pickup::activationTypeImmediate_s)
-            this->setActivationType(pickupActivationType::immediate);
+            this->setActivationType(PickupActivationType::immediate);
         else if(type == Pickup::activationTypeOnUse_s)
-            this->setActivationType(pickupActivationType::onUse);
+            this->setActivationType(PickupActivationType::onUse);
         else
             orxout(internal_error, context::pickups) << "Invalid activationType '" << type << "' in " << this->getIdentifier()->getName() << "." << endl;
@@ -158,7 +158,7 @@
     {
         if(type == Pickup::durationTypeOnce_s)
-            this->setDurationType(pickupDurationType::once);
+            this->setDurationType(PickupDurationType::once);
         else if(type == Pickup::durationTypeContinuous_s)
-            this->setDurationType(pickupDurationType::continuous);
+            this->setDurationType(PickupDurationType::continuous);
         else
             orxout(internal_error, context::pickups) << "Invalid durationType '" << type << "' in " << this->getIdentifier()->getName() << "." << endl;
Index: code/branches/cpp11_v3/src/modules/pickup/Pickup.h
===================================================================
--- code/branches/cpp11_v3/src/modules/pickup/Pickup.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/pickup/Pickup.h	(revision 11068)
@@ -53,12 +53,9 @@
     @ingroup Pickup
     */
-    namespace pickupActivationType
+    enum class PickupActivationType
     {
-        enum Value
-        {
-            immediate, //!< Means that the @ref orxonox::Pickup "Pickup" will be used immediately after pickup.
-            onUse, //!< Means that the @ref orxonox::Pickup "Pickup" will be used at a later point trough some external influence.
-        };
-    }
+        immediate, //!< Means that the @ref orxonox::Pickup "Pickup" will be used immediately after pickup.
+        onUse, //!< Means that the @ref orxonox::Pickup "Pickup" will be used at a later point trough some external influence.
+    };
 
     /**
@@ -68,12 +65,9 @@
     @ingroup Pickup
     */
-    namespace pickupDurationType
+    enum class PickupDurationType
     {
-        enum Value
-        {
-            once, //!< Means that the @ref orxonox::Pickup "Pickup" will be used only once at a singular time instant.
-            continuous, //!< Means that the @ref orxonox::Pickup "Pickup" will be used over a continuous timespan.
-        };
-    }
+        once, //!< Means that the @ref orxonox::Pickup "Pickup" will be used only once at a singular time instant.
+        continuous, //!< Means that the @ref orxonox::Pickup "Pickup" will be used over a continuous timespan.
+    };
 
     /**
@@ -112,5 +106,5 @@
             @return Returns the activation type of the Pickup.
             */
-            inline pickupActivationType::Value getActivationType(void) const
+            inline PickupActivationType getActivationType(void) const
                 { return this->activationType_; }
             /**
@@ -118,5 +112,5 @@
             @return Returns the duration type of the Pickup.
             */
-            inline pickupDurationType::Value getDurationType(void) const
+            inline PickupDurationType getDurationType(void) const
                 { return this->durationType_; }
 
@@ -129,5 +123,5 @@
             */
             inline bool isImmediate(void) const
-                { return this->getActivationType() == pickupActivationType::immediate; }
+                { return this->getActivationType() == PickupActivationType::immediate; }
             /**
             @brief Get whether the activation type is 'onUse'.
@@ -135,5 +129,5 @@
             */
             inline bool isOnUse(void) const
-                { return this->getActivationType() == pickupActivationType::onUse; }
+                { return this->getActivationType() == PickupActivationType::onUse; }
             /**
             @brief Get whether the duration type is 'once'.
@@ -141,5 +135,5 @@
             */
             inline bool isOnce(void) const
-                { return this->getDurationType() == pickupDurationType::once; }
+                { return this->getDurationType() == PickupDurationType::once; }
             /**
             @brief Get whether the duration type is 'continuous'.
@@ -147,5 +141,5 @@
             */
             inline bool isContinuous(void) const
-                { return this->getDurationType() == pickupDurationType::continuous; }
+                { return this->getDurationType() == PickupDurationType::continuous; }
 
             virtual void changedPickedUp(void) override; //!< Should be called when the pickup has transited from picked up to dropped or the other way around.
@@ -164,5 +158,5 @@
             @param type The activation type of the Pickup.
             */
-            inline void setActivationType(pickupActivationType::Value type)
+            inline void setActivationType(PickupActivationType type)
                 { this->activationType_ = type; }
             /**
@@ -170,5 +164,5 @@
             @param type The duration type of the Pickup.
             */
-            inline void setDurationType(pickupDurationType::Value type)
+            inline void setDurationType(PickupDurationType type)
                 { this->durationType_ = type; }
 
@@ -180,6 +174,6 @@
 
             std::string representationName_; //!< The name of the associated PickupRepresentation.
-            pickupActivationType::Value activationType_; //!< The activation type of the Pickup.
-            pickupDurationType::Value durationType_; //!< The duration type of the Pickup.
+            PickupActivationType activationType_; //!< The activation type of the Pickup.
+            PickupDurationType durationType_; //!< The duration type of the Pickup.
 
             //! Strings for the activation and duration types.
Index: code/branches/cpp11_v3/src/modules/pickup/items/DronePickup.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/pickup/items/DronePickup.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/pickup/items/DronePickup.cc	(revision 11068)
@@ -74,5 +74,5 @@
     {
         this->addTarget(ClassIdentifier<Pawn>::getIdentifier());
-        this->setDurationType(pickupDurationType::once);
+        this->setDurationType(PickupDurationType::once);
         this->droneTemplate_ = "";
     }
Index: code/branches/cpp11_v3/src/modules/pickup/items/HealthPickup.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/pickup/items/HealthPickup.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/pickup/items/HealthPickup.cc	(revision 11068)
@@ -77,5 +77,5 @@
         this->health_ = 0.0f;
         this->healthRate_ = 0.0f;
-        this->healthType_ = pickupHealthType::limited;
+        this->healthType_ = PickupHealthType::limited;
         this->maxHealthSave_ = 0.0f;
         this->maxHealthOverwrite_ = 0.0f;
@@ -127,11 +127,11 @@
             switch(this->getHealthType())
             {
-                case pickupHealthType::permanent:
+                case PickupHealthType::permanent:
                     if(pawn->getMaxHealth() < fullHealth)
                         pawn->setMaxHealth(fullHealth);
-                case pickupHealthType::limited:
+                case PickupHealthType::limited:
                     pawn->addHealth(health);
                     break;
-                case pickupHealthType::temporary:
+                case PickupHealthType::temporary:
                     if(pawn->getMaxHealth() > fullHealth)
                     {
@@ -174,12 +174,12 @@
                 switch(this->getHealthType())
                 {
-                    case pickupHealthType::permanent:
+                    case PickupHealthType::permanent:
                         health = pawn->getHealth()+this->getHealth();
                         if(pawn->getMaxHealth() < health)
                             pawn->setMaxHealth(health);
-                    case pickupHealthType::limited:
+                    case PickupHealthType::limited:
                         pawn->addHealth(this->getHealth());
                         break;
-                    case pickupHealthType::temporary:
+                    case PickupHealthType::temporary:
                         health = pawn->getHealth()+this->getHealth();
                         if(pawn->getMaxHealth() < health)
@@ -201,5 +201,5 @@
         else
         {
-            if(this->getHealthType() == pickupHealthType::temporary)
+            if(this->getHealthType() == PickupHealthType::temporary)
             {
                 PickupCarrier* carrier = this->getCarrier();
@@ -256,9 +256,9 @@
         switch(this->getHealthType())
         {
-            case pickupHealthType::limited:
+            case PickupHealthType::limited:
                 return HealthPickup::healthTypeLimited_s;
-            case pickupHealthType::temporary:
+            case PickupHealthType::temporary:
                 return HealthPickup::healthTypeTemporary_s;
-            case pickupHealthType::permanent:
+            case PickupHealthType::permanent:
                 return HealthPickup::healthTypePermanent_s;
             default:
@@ -308,9 +308,9 @@
     {
         if(type == HealthPickup::healthTypeLimited_s)
-            this->setHealthType(pickupHealthType::limited);
+            this->setHealthType(PickupHealthType::limited);
         else if(type == HealthPickup::healthTypeTemporary_s)
-            this->setHealthType(pickupHealthType::temporary);
+            this->setHealthType(PickupHealthType::temporary);
         else if(type == HealthPickup::healthTypePermanent_s)
-            this->setHealthType(pickupHealthType::permanent);
+            this->setHealthType(PickupHealthType::permanent);
         else
             orxout(internal_error, context::pickups) << "Invalid healthType '" << type << "' in HealthPickup." << endl;
Index: code/branches/cpp11_v3/src/modules/pickup/items/HealthPickup.h
===================================================================
--- code/branches/cpp11_v3/src/modules/pickup/items/HealthPickup.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/pickup/items/HealthPickup.h	(revision 11068)
@@ -51,13 +51,10 @@
     @ingroup PickupItems
     */
-    namespace pickupHealthType
+    enum class PickupHealthType
     {
-        enum Value
-        {
-            limited, //!< Means that the @ref orxonox::HealthPickup "HealthPickup" only increases the users health to its maximum health.
-            temporary, //!< Means that the @ref orxonox::HealthPickup "HealthPickup" temporarily increases the users health even above its maximum health, but only as long as it is in use.
-            permanent //!< Means that the @ref orxonox::HealthPickup "HealthPickup" increases the users health even above its maximum health and increases the maximum health permanently such that it matches the new health.
-        };
-    }
+        limited, //!< Means that the @ref orxonox::HealthPickup "HealthPickup" only increases the users health to its maximum health.
+        temporary, //!< Means that the @ref orxonox::HealthPickup "HealthPickup" temporarily increases the users health even above its maximum health, but only as long as it is in use.
+        permanent //!< Means that the @ref orxonox::HealthPickup "HealthPickup" increases the users health even above its maximum health and increases the maximum health permanently such that it matches the new health.
+    };
 
     /**
@@ -115,5 +112,5 @@
             @return Returns the health type as an enum.
             */
-            inline pickupHealthType::Value getHealthType(void) const
+            inline PickupHealthType getHealthType(void) const
                 { return this->healthType_; }
             const std::string& getHealthTypeAsString(void) const; //!< Get the health type of this pickup.
@@ -127,5 +124,5 @@
             @param type The type of this pickup as an enum.
             */
-            inline void setHealthType(pickupHealthType::Value type)
+            inline void setHealthType(PickupHealthType type)
                 { this->healthType_ = type; }
             void setHealthTypeAsString(const std::string& type); //!< Set the type of the HealthPickup.
@@ -139,5 +136,5 @@
             float maxHealthSave_; //!< Helper to remember what the actual maxHealth of the Pawn was before we changed it.
             float maxHealthOverwrite_; //!< Helper to remember with which value we overwrote the maxHealh, to detect if someone else changed it as well.
-            pickupHealthType::Value healthType_; //!< The type of the HealthPickup.
+            PickupHealthType healthType_; //!< The type of the HealthPickup.
 
             //! Strings for the health types.
Index: code/branches/cpp11_v3/src/modules/pickup/items/MetaPickup.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/pickup/items/MetaPickup.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/pickup/items/MetaPickup.cc	(revision 11068)
@@ -79,6 +79,6 @@
         this->addTarget(ClassIdentifier<PickupCarrier>::getIdentifier());
 
-        this->setDurationType(pickupDurationType::once);
-        this->metaType_ = pickupMetaType::none;
+        this->setDurationType(PickupDurationType::once);
+        this->metaType_ = PickupMetaType::none;
     }
 
@@ -104,11 +104,11 @@
 
         // If the MetaPickup transited to used, and the metaType is not none.
-        if(this->isUsed() && this->metaType_ != pickupMetaType::none)
+        if(this->isUsed() && this->metaType_ != PickupMetaType::none)
         {
             PickupCarrier* carrier = this->getCarrier();
-            if(this->getMetaType() != pickupMetaType::none && carrier != nullptr)
+            if(this->getMetaType() != PickupMetaType::none && carrier != nullptr)
             {
                 // If the metaType is destroyCarrier, then the PickupCarrier is destroyed.
-                if(this->getMetaType() == pickupMetaType::destroyCarrier)
+                if(this->getMetaType() == PickupMetaType::destroyCarrier)
                 {
                     Pawn* pawn = orxonox_cast<Pawn*>(carrier);
@@ -124,15 +124,15 @@
 
                     // If the metaType is use, then the Pickupable is set to used.
-                    if(this->getMetaType() == pickupMetaType::use && !pickup->isUsed())
+                    if(this->getMetaType() == PickupMetaType::use && !pickup->isUsed())
                     {
                         pickup->setUsed(true);
                     }
                     // If the metaType is drop, then the Pickupable is dropped.
-                    else if(this->getMetaType() == pickupMetaType::drop)
+                    else if(this->getMetaType() == PickupMetaType::drop)
                     {
                         pickup->drop();
                     }
                     // If the metaType is destroy, then the Pickupable is destroyed.
-                    else if(this->getMetaType() == pickupMetaType::destroy)
+                    else if(this->getMetaType() == PickupMetaType::destroy)
                     {
                         pickup->Pickupable::destroy();
@@ -154,13 +154,13 @@
         switch(this->getMetaType())
         {
-            case pickupMetaType::none:
+            case PickupMetaType::none:
                 return MetaPickup::metaTypeNone_s;
-            case pickupMetaType::use:
+            case PickupMetaType::use:
                 return MetaPickup::metaTypeUse_s;
-            case pickupMetaType::drop:
+            case PickupMetaType::drop:
                 return MetaPickup::metaTypeDrop_s;
-            case pickupMetaType::destroy:
+            case PickupMetaType::destroy:
                 return MetaPickup::metaTypeDestroy_s;
-            case pickupMetaType::destroyCarrier:
+            case PickupMetaType::destroyCarrier:
                 return MetaPickup::metaTypeDestroyCarrier_s;
             default:
@@ -179,21 +179,21 @@
         if(type == MetaPickup::metaTypeNone_s)
         {
-            this->setMetaType(pickupMetaType::none);
+            this->setMetaType(PickupMetaType::none);
         }
         else if(type == MetaPickup::metaTypeUse_s)
         {
-            this->setMetaType(pickupMetaType::use);
+            this->setMetaType(PickupMetaType::use);
         }
         else if(type == MetaPickup::metaTypeDrop_s)
         {
-            this->setMetaType(pickupMetaType::drop);
+            this->setMetaType(PickupMetaType::drop);
         }
         else if(type == MetaPickup::metaTypeDestroy_s)
         {
-            this->setMetaType(pickupMetaType::destroy);
+            this->setMetaType(PickupMetaType::destroy);
         }
         else if(type == MetaPickup::metaTypeDestroyCarrier_s)
         {
-            this->setMetaType(pickupMetaType::destroyCarrier);
+            this->setMetaType(PickupMetaType::destroyCarrier);
         }
         else
Index: code/branches/cpp11_v3/src/modules/pickup/items/MetaPickup.h
===================================================================
--- code/branches/cpp11_v3/src/modules/pickup/items/MetaPickup.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/pickup/items/MetaPickup.h	(revision 11068)
@@ -48,15 +48,12 @@
     @ingroup PickupItems
     */
-    namespace pickupMetaType
+    enum class PickupMetaType
     {
-        enum Value
-        {
-            none, //!< The @ref orxonox::MetaPickup "MetaPickup" does nothing.
-            use, //!< The @ref orxonox::MetaPickup "MetaPickup" uses all the @ref orxonox::PickupCarrier "PickupCarriers'" @ref orxonox::Pickupable "Pickupables".
-            drop, //!< The @ref orxonox::MetaPickup "MetaPickup" drops all the @ref orxonox::PickupCarrier "PickupCarriers'" @ref orxonox::Pickupable "Pickupables".
-            destroy, //!< The @ref orxonox::MetaPickup "MetaPickup" destroys all the @ref orxonox::PickupCarrier "PickupCarriers'" @ref orxonox::Pickupable "Pickupables".
-            destroyCarrier //!< The @ref orxonox::MetaPickup "MetaPickup" destroys the @ref orxonox::PickupCarrier "PickupCarrier".
-        };
-    }
+        none, //!< The @ref orxonox::MetaPickup "MetaPickup" does nothing.
+        use, //!< The @ref orxonox::MetaPickup "MetaPickup" uses all the @ref orxonox::PickupCarrier "PickupCarriers'" @ref orxonox::Pickupable "Pickupables".
+        drop, //!< The @ref orxonox::MetaPickup "MetaPickup" drops all the @ref orxonox::PickupCarrier "PickupCarriers'" @ref orxonox::Pickupable "Pickupables".
+        destroy, //!< The @ref orxonox::MetaPickup "MetaPickup" destroys all the @ref orxonox::PickupCarrier "PickupCarriers'" @ref orxonox::Pickupable "Pickupables".
+        destroyCarrier //!< The @ref orxonox::MetaPickup "MetaPickup" destroys the @ref orxonox::PickupCarrier "PickupCarrier".
+    };
 
     /**
@@ -100,5 +97,5 @@
             @return Returns an enum with the meta type of the MetaPickup.
             */
-            inline pickupMetaType::Value getMetaType(void) const
+            inline PickupMetaType getMetaType(void) const
                 { return this->metaType_; }
             const std::string& getMetaTypeAsString(void) const; //!< Get the meta type of this MetaPickup.
@@ -109,5 +106,5 @@
             @param type The meta type as an enum.
             */
-            inline void setMetaType(pickupMetaType::Value type)
+            inline void setMetaType(PickupMetaType type)
                 { this->metaType_ =  type; }
             void setMetaTypeAsString(const std::string& type); //!< Set the meta type of this MetaPickup.
@@ -116,5 +113,5 @@
             void initialize(void); //!< Initializes the member variables.
 
-            pickupMetaType::Value metaType_; //!< The meta type of the MetaPickup, determines which actions are taken.
+            PickupMetaType metaType_; //!< The meta type of the MetaPickup, determines which actions are taken.
 
             //! Static strings for the meta types.
Index: code/branches/cpp11_v3/src/modules/portals/PortalEndPoint.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/portals/PortalEndPoint.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/portals/PortalEndPoint.cc	(revision 11068)
@@ -57,5 +57,5 @@
 
         this->setRadarObjectColour(ColourValue::White);
-        this->setRadarObjectShape(RadarViewable::Dot);
+        this->setRadarObjectShape(RadarViewable::Shape::Dot);
         this->setRadarVisibility(true);
         if( GameMode::isMaster() )
Index: code/branches/cpp11_v3/src/modules/questsystem/GlobalQuest.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/questsystem/GlobalQuest.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/questsystem/GlobalQuest.cc	(revision 11068)
@@ -177,5 +177,5 @@
         The player.
     */
-    QuestStatus::Value GlobalQuest::getStatus(const PlayerInfo* player) const
+    QuestStatus GlobalQuest::getStatus(const PlayerInfo* player) const
     {
         assert(player);
@@ -200,5 +200,5 @@
         Returns false if player is nullptr.
     */
-    bool GlobalQuest::setStatus(PlayerInfo* player, const QuestStatus::Value & status)
+    bool GlobalQuest::setStatus(PlayerInfo* player, const QuestStatus & status)
     {
         assert(player);
Index: code/branches/cpp11_v3/src/modules/questsystem/GlobalQuest.h
===================================================================
--- code/branches/cpp11_v3/src/modules/questsystem/GlobalQuest.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/questsystem/GlobalQuest.h	(revision 11068)
@@ -103,11 +103,11 @@
             virtual bool isCompletable(const PlayerInfo* player) const override; //!< Checks whether the Quest can be completed.
 
-            virtual QuestStatus::Value getStatus(const PlayerInfo* player) const override; //!< Returns the status of the Quest for a specific player.
+            virtual QuestStatus getStatus(const PlayerInfo* player) const override; //!< Returns the status of the Quest for a specific player.
 
-            virtual bool setStatus(PlayerInfo* player, const QuestStatus::Value & status) override; //!< Sets the status for a specific player.
+            virtual bool setStatus(PlayerInfo* player, const QuestStatus & status) override; //!< Sets the status for a specific player.
 
         private:
             std::set<PlayerInfo*> players_; //!< The set of players which possess this Quest.
-            QuestStatus::Value status_; //!< The status of this Quest.
+            QuestStatus status_; //!< The status of this Quest.
             std::list<QuestEffect*> rewards_; //!< Reward QuestEffects only invoked on the player completing the Quest.
 
Index: code/branches/cpp11_v3/src/modules/questsystem/LocalQuest.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/questsystem/LocalQuest.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/questsystem/LocalQuest.cc	(revision 11068)
@@ -168,9 +168,9 @@
         Returns the status of the Quest for the input player.
     */
-    QuestStatus::Value LocalQuest::getStatus(const PlayerInfo* player) const
+    QuestStatus LocalQuest::getStatus(const PlayerInfo* player) const
     {
         assert(player);
 
-        std::map<const PlayerInfo*, QuestStatus::Value>::const_iterator it = this->playerStatus_.find(player);
+        std::map<const PlayerInfo*, QuestStatus>::const_iterator it = this->playerStatus_.find(player);
         if (it != this->playerStatus_.end()) // If there is a player in the map.
             return it->second;
@@ -190,5 +190,5 @@
         Returns false if player is nullptr.
     */
-    bool LocalQuest::setStatus(PlayerInfo* player, const QuestStatus::Value & status)
+    bool LocalQuest::setStatus(PlayerInfo* player, const QuestStatus & status)
     {
         assert(player);
Index: code/branches/cpp11_v3/src/modules/questsystem/LocalQuest.h
===================================================================
--- code/branches/cpp11_v3/src/modules/questsystem/LocalQuest.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/questsystem/LocalQuest.h	(revision 11068)
@@ -97,9 +97,9 @@
             virtual bool isCompletable(const PlayerInfo* player) const override; //!< Checks whether the Quest can be completed.
 
-            virtual QuestStatus::Value getStatus(const PlayerInfo* player) const override; //!< Returns the status of the Quest for a specific player.
-            virtual bool setStatus(PlayerInfo* player, const QuestStatus::Value & status) override; //!< Sets the status for a specific player.
+            virtual QuestStatus getStatus(const PlayerInfo* player) const override; //!< Returns the status of the Quest for a specific player.
+            virtual bool setStatus(PlayerInfo* player, const QuestStatus & status) override; //!< Sets the status for a specific player.
 
         private:
-            std::map<const PlayerInfo*, QuestStatus::Value> playerStatus_; //!< List of the status for each player, with the Player-pointer as key.
+            std::map<const PlayerInfo*, QuestStatus> playerStatus_; //!< List of the status for each player, with the Player-pointer as key.
 
     };
Index: code/branches/cpp11_v3/src/modules/questsystem/Quest.h
===================================================================
--- code/branches/cpp11_v3/src/modules/questsystem/Quest.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/questsystem/Quest.h	(revision 11068)
@@ -51,14 +51,11 @@
     @ingroup Questsystem
     */
-    namespace QuestStatus
+    enum class QuestStatus
     {
-        enum Value
-        {
-            Inactive, //!< The @ref orxonox::Quest "Quest" is inactive.
-            Active, //!< The @ref orxonox::Quest "Quest" is active.
-            Failed, //!< The @ref orxonox::Quest "Quest" has been failed.
-            Completed //!< The @ref orxonox::Quest "Quest" has been completed.
-        };
-    }
+        Inactive, //!< The @ref orxonox::Quest "Quest" is inactive.
+        Active, //!< The @ref orxonox::Quest "Quest" is active.
+        Failed, //!< The @ref orxonox::Quest "Quest" has been failed.
+        Completed //!< The @ref orxonox::Quest "Quest" has been completed.
+    };
 
     /**
@@ -143,6 +140,6 @@
                 { return this->completeEffects_; }
 
-            virtual QuestStatus::Value getStatus(const PlayerInfo* player) const = 0; //!< Returns the status of the Quest for a specific player.
-            virtual bool setStatus(PlayerInfo* player, const QuestStatus::Value & status) = 0; //!< Changes the status for a specific player.
+            virtual QuestStatus getStatus(const PlayerInfo* player) const = 0; //!< Returns the status of the Quest for a specific player.
+            virtual bool setStatus(PlayerInfo* player, const QuestStatus & status) = 0; //!< Changes the status for a specific player.
 
         private:
Index: code/branches/cpp11_v3/src/modules/questsystem/QuestDescription.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/questsystem/QuestDescription.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/questsystem/QuestDescription.cc	(revision 11068)
@@ -119,5 +119,5 @@
         }
 
-        NotificationListener::sendNotification(message, QuestDescription::SENDER, notificationMessageType::info, notificationSendMode::network, player->getClientID());
+        NotificationListener::sendNotification(message, QuestDescription::SENDER, NotificationMessageType::info, NotificationSendMode::network, player->getClientID());
         return true;
     }
Index: code/branches/cpp11_v3/src/modules/questsystem/QuestEffectBeacon.h
===================================================================
--- code/branches/cpp11_v3/src/modules/questsystem/QuestEffectBeacon.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/questsystem/QuestEffectBeacon.h	(revision 11068)
@@ -50,12 +50,9 @@
     @ingroup Questsystem
     */
-    namespace QuestEffectBeaconStatus
+    enum class QuestEffectBeaconStatus
     {
-        enum Value
-        {
-            Inactive, //!< The @ref orxonox::QuestEffectBeacon "QuestEffectBeacon" is inactive.
-            Active //!< The @ref orxonox::QuestEffectBeacon "QuestEffectBeacon" is active.
-        };
-    }
+        Inactive, //!< The @ref orxonox::QuestEffectBeacon "QuestEffectBeacon" is inactive.
+        Active //!< The @ref orxonox::QuestEffectBeacon "QuestEffectBeacon" is active.
+    };
 
     /**
@@ -125,5 +122,5 @@
             std::list<QuestEffect*> effects_; //!< The list of QuestEffects to be invoked on the executing player.
             int times_; //!< Number of times the beacon can be exectued.
-            QuestEffectBeaconStatus::Value status_; //!< The status of the QuestEffectBeacon, Can be eighter active or inactive.
+            QuestEffectBeaconStatus status_; //!< The status of the QuestEffectBeacon, Can be eighter active or inactive.
 
             bool setTimes(const int & n); //!< Set the number of times the QuestEffectBeacon can be executed.
Index: code/branches/cpp11_v3/src/modules/questsystem/QuestHint.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/questsystem/QuestHint.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/questsystem/QuestHint.cc	(revision 11068)
@@ -92,9 +92,9 @@
 
         // Find the player.
-        std::map<const PlayerInfo*, QuestHintStatus::Value>::const_iterator it = this->playerStatus_.find(player);
+        std::map<const PlayerInfo*, QuestHintStatus>::const_iterator it = this->playerStatus_.find(player);
         if (it != this->playerStatus_.end()) // If the player is in the map.
-            return it->second;
+            return (it->second == QuestHintStatus::Active);
 
-        return QuestStatus::Inactive;
+        return false;
     }
 
Index: code/branches/cpp11_v3/src/modules/questsystem/QuestHint.h
===================================================================
--- code/branches/cpp11_v3/src/modules/questsystem/QuestHint.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/questsystem/QuestHint.h	(revision 11068)
@@ -50,12 +50,9 @@
     @ingroup Questsystem
     */
-    namespace QuestHintStatus
+    enum class QuestHintStatus
     {
-        enum Value
-        {
-            Inactive, //!< The @ref orxonox::QuestHint "QuestHint" is inactive.
-            Active //!< The @ref orxonox::QuestHint "QuestHint" is active.
-        };
-    }
+        Inactive, //!< The @ref orxonox::QuestHint "QuestHint" is inactive.
+        Active //!< The @ref orxonox::QuestHint "QuestHint" is active.
+    };
 
     /**
@@ -101,5 +98,5 @@
         private:
             Quest* quest_; //!< The Quest the QuestHint belongs to.
-            std::map<const PlayerInfo*, QuestHintStatus::Value> playerStatus_; //!< List of the states for each player, with the Player-pointer as key.
+            std::map<const PlayerInfo*, QuestHintStatus> playerStatus_; //!< List of the states for each player, with the Player-pointer as key.
 
     }; // tolua_export
Index: code/branches/cpp11_v3/src/modules/questsystem/QuestListener.h
===================================================================
--- code/branches/cpp11_v3/src/modules/questsystem/QuestListener.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/questsystem/QuestListener.h	(revision 11068)
@@ -50,14 +50,11 @@
     @ingroup Questsystem
     */
-    namespace QuestListenerMode
+    enum class QuestListenerMode
     {
-        enum Value
-        {
-            All, //!< Listens to all events.
-            Start, //!< Only listens to events pertaining the starting of @ref orxonox::Quest "Quests".
-            Fail, //!< Only listens to events pertaining the failing of @ref orxonox::Quest "Quests".
-            Complete //!< Only listens to events pertaining the completing of @ref orxonox::Quest "Quests".
-        };
-    }
+        All, //!< Listens to all events.
+        Start, //!< Only listens to events pertaining the starting of @ref orxonox::Quest "Quests".
+        Fail, //!< Only listens to events pertaining the failing of @ref orxonox::Quest "Quests".
+        Complete //!< Only listens to events pertaining the completing of @ref orxonox::Quest "Quests".
+    };
 
     /**
@@ -103,5 +100,5 @@
 
         private:
-            QuestListenerMode::Value mode_; //!< The mode of the QuestListener.
+            QuestListenerMode mode_; //!< The mode of the QuestListener.
             Quest* quest_; //!< A pointer to the Quest the QuestListener is reacting to.
 
Index: code/branches/cpp11_v3/src/modules/towerdefense/TowerDefense.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/towerdefense/TowerDefense.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/towerdefense/TowerDefense.cc	(revision 11068)
@@ -355,5 +355,5 @@
                 fields_[i][j]->create(fields.at(pos), fields.at(pos+1));
                 pos += 2;
-                if (fields_[i][j]->getType() == START)
+                if (fields_[i][j]->getType() == TowerDefenseFieldType::START)
                 {
                     startCoord.Set(i,j);
@@ -379,5 +379,5 @@
         TDCoordinate* nextCoord = new TDCoordinate(0,0);
 
-        if (thisField->getType() != STREET && thisField->getType() != START)
+        if (thisField->getType() != TowerDefenseFieldType::STREET && thisField->getType() != TowerDefenseFieldType::START)
         {
             return nullptr;
Index: code/branches/cpp11_v3/src/modules/towerdefense/TowerDefenseEnemy.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/towerdefense/TowerDefenseEnemy.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/towerdefense/TowerDefenseEnemy.cc	(revision 11068)
@@ -27,5 +27,5 @@
         RegisterObject(TowerDefenseEnemy);
 
-        this->setCollisionType(WorldEntity::Dynamic);
+        this->setCollisionType(WorldEntity::CollisionType::Dynamic);
         //needed to keep track of the PlayerStats coded in TowerDefense.h
         this->td = orxonox_cast<TowerDefense*>(this->getGametype());
Index: code/branches/cpp11_v3/src/modules/towerdefense/TowerDefenseField.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/towerdefense/TowerDefenseField.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/towerdefense/TowerDefenseField.cc	(revision 11068)
@@ -50,5 +50,5 @@
 
         tower_ = nullptr;
-        type_ = FREE;
+        type_ = TowerDefenseFieldType::FREE;
         center_ = nullptr;
         upgrade_ = 0;
@@ -186,5 +186,5 @@
         modelGround_->setMeshSource("TD_F1.mesh");
         tower_ = nullptr;
-        type_ = FREE;
+        type_ = TowerDefenseFieldType::FREE;
         setUpgrade(0);
         setAngle(orientation);
@@ -195,5 +195,5 @@
         modelGround_->setMeshSource("TD_S5.mesh");
         tower_ = nullptr;
-        type_ = START;
+        type_ = TowerDefenseFieldType::START;
         setUpgrade(0);
         setAngle(orientation);    
@@ -205,5 +205,5 @@
         modelGround_->setMeshSource("TD_S4.mesh");
         tower_ = nullptr;
-        type_ = END;
+        type_ = TowerDefenseFieldType::END;
         setUpgrade(0);
         setAngle(orientation);
@@ -214,5 +214,5 @@
         modelGround_->setMeshSource("TD_S1.mesh");
         tower_ = nullptr;
-        type_ = STREET;
+        type_ = TowerDefenseFieldType::STREET;
         setUpgrade(0);
         setAngle(orientation);
@@ -223,5 +223,5 @@
         modelGround_->setMeshSource("TD_S2.mesh");
         tower_ = nullptr;
-        type_ = STREET;
+        type_ = TowerDefenseFieldType::STREET;
         setUpgrade(0);
         setAngle(orientation);
@@ -232,5 +232,5 @@
         modelGround_->setMeshSource("TD_S3.mesh");
         tower_ = nullptr;
-        type_ = STREET;
+        type_ = TowerDefenseFieldType::STREET;
         setUpgrade(0);
         setAngle(orientation);
@@ -242,5 +242,5 @@
         modelObject_->setMeshSource("TD_O1.mesh");
         tower_ = nullptr;
-        type_ = OBSTACLE;
+        type_ = TowerDefenseFieldType::OBSTACLE;
         setUpgrade(0);
         setAngle(orientation);
@@ -254,5 +254,5 @@
             tower_ = new TowerDefenseTower(center_->getContext());
             attach(tower_);
-            type_ = TOWER;
+            type_ = TowerDefenseFieldType::TOWER;
             setUpgrade(upgrade);
             if (upgrade_ > 0 && modelObject_ != nullptr)
Index: code/branches/cpp11_v3/src/modules/towerdefense/TowerDefenseField.h
===================================================================
--- code/branches/cpp11_v3/src/modules/towerdefense/TowerDefenseField.h	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/towerdefense/TowerDefenseField.h	(revision 11068)
@@ -46,5 +46,5 @@
 namespace orxonox
 {
-    enum TowerDefenseFieldType
+    enum class TowerDefenseFieldType
     { 
         FREE,
@@ -64,5 +64,5 @@
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
             const bool isFree() const
-                { return type_==FREE; }
+                { return type_==TowerDefenseFieldType::FREE; }
             virtual void create(char object, char param);
             virtual void setCenterpoint(TowerDefenseCenterpoint* center);
Index: code/branches/cpp11_v3/src/modules/towerdefense/TowerDefenseTower.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/towerdefense/TowerDefenseTower.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/towerdefense/TowerDefenseTower.cc	(revision 11068)
@@ -26,5 +26,5 @@
         RegisterObject(TowerDefenseTower);
         game_ =nullptr;
-        this->setCollisionType(WorldEntity::None);
+        this->setCollisionType(WorldEntity::CollisionType::None);
         upgrade = 1;
 
Index: code/branches/cpp11_v3/src/modules/weapons/projectiles/GravityBomb.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/weapons/projectiles/GravityBomb.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/weapons/projectiles/GravityBomb.cc	(revision 11068)
@@ -28,5 +28,5 @@
                 this->timeToLife_= LIFETIME;
                 this->setCollisionResponse(false);
-                this->setCollisionType(WorldEntity::Dynamic);
+                this->setCollisionType(WorldEntity::CollisionType::Dynamic);
                 this->enableCollisionCallback();
 
Index: code/branches/cpp11_v3/src/modules/weapons/projectiles/GravityBombField.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/weapons/projectiles/GravityBombField.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/weapons/projectiles/GravityBombField.cc	(revision 11068)
@@ -41,5 +41,5 @@
         //Make the Field visible on Radar and minimap.
         this->setRadarObjectColour(ColourValue(1.0, 0.0, 0.2,1)); // Red
-        this->setRadarObjectShape(RadarViewable::Dot);
+        this->setRadarObjectShape(RadarViewable::Shape::Dot);
         this->setRadarObjectScale(1.0f);
         
Index: code/branches/cpp11_v3/src/modules/weapons/projectiles/IceGunProjectile.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/weapons/projectiles/IceGunProjectile.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/weapons/projectiles/IceGunProjectile.cc	(revision 11068)
@@ -120,5 +120,5 @@
             Vector3 offset = this->getWorldPosition() - otherObject->getWorldPosition();
             freezer->setPosition(Vector3(0,0,0));
-            freezer->translate(offset, WorldEntity::World);
+            freezer->translate(offset, WorldEntity::TransformSpace::World);
             // Start the freezing effect.
             freezer->startFreezing();
Index: code/branches/cpp11_v3/src/modules/weapons/projectiles/LightningGunProjectile.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/weapons/projectiles/LightningGunProjectile.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/weapons/projectiles/LightningGunProjectile.cc	(revision 11068)
@@ -48,5 +48,5 @@
         this->textureIndex_ = 1;
         this->setMass(2);
-        this->setCollisionType(Dynamic);
+        this->setCollisionType(CollisionType::Dynamic);
         this->maxTextureIndex_ = 8;
         this->textureTimer_.setTimer(0.01f, true, createExecutor(createFunctor(&LightningGunProjectile::changeTexture, this)));
Index: code/branches/cpp11_v3/src/modules/weapons/projectiles/Projectile.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/weapons/projectiles/Projectile.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/weapons/projectiles/Projectile.cc	(revision 11068)
@@ -57,5 +57,5 @@
             this->enableCollisionCallback();
             this->setCollisionResponse(false);
-            this->setCollisionType(Dynamic);
+            this->setCollisionType(CollisionType::Dynamic);
 
             // Create a sphere collision shape and attach it to the projectile.
Index: code/branches/cpp11_v3/src/modules/weapons/projectiles/Rocket.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/weapons/projectiles/Rocket.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/weapons/projectiles/Rocket.cc	(revision 11068)
@@ -70,5 +70,5 @@
         if (GameMode::isMaster())
         {
-            this->setCollisionType(WorldEntity::Kinematic);
+            this->setCollisionType(WorldEntity::CollisionType::Kinematic);
             this->setVelocity(0,0,-100);
 
@@ -92,5 +92,5 @@
             this->enableCollisionCallback();
             this->setCollisionResponse(false);
-            this->setCollisionType(Kinematic);
+            this->setCollisionType(CollisionType::Kinematic);
 
             // Add collision shape
@@ -128,5 +128,5 @@
 
         this->setRadarObjectColour(ColourValue(1.0, 0.5, 0.0)); // orange
-        this->setRadarObjectShape(RadarViewable::Triangle);
+        this->setRadarObjectShape(RadarViewable::Shape::Triangle);
         this->setRadarObjectScale(0.5f);
     }
Index: code/branches/cpp11_v3/src/modules/weapons/projectiles/RocketOld.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/weapons/projectiles/RocketOld.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/weapons/projectiles/RocketOld.cc	(revision 11068)
@@ -70,5 +70,5 @@
         if (GameMode::isMaster())
         {
-            this->setCollisionType(WorldEntity::Kinematic);
+            this->setCollisionType(WorldEntity::CollisionType::Kinematic);
             this->setVelocity(0,0,-100);
 
@@ -92,5 +92,5 @@
             this->enableCollisionCallback();
             this->setCollisionResponse(false);
-            this->setCollisionType(Kinematic);
+            this->setCollisionType(CollisionType::Kinematic);
 
             // Add collision shape
@@ -128,5 +128,5 @@
 
         this->setRadarObjectColour(ColourValue(1.0, 0.5, 0.0)); // orange
-        this->setRadarObjectShape(RadarViewable::Triangle);
+        this->setRadarObjectShape(RadarViewable::Shape::Triangle);
         this->setRadarObjectScale(0.5f);
     }
Index: code/branches/cpp11_v3/src/modules/weapons/projectiles/SimpleRocket.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/weapons/projectiles/SimpleRocket.cc	(revision 11065)
+++ code/branches/cpp11_v3/src/modules/weapons/projectiles/SimpleRocket.cc	(revision 11068)
@@ -70,5 +70,5 @@
         if (GameMode::isMaster())
         {
-            this->setCollisionType(WorldEntity::Kinematic);
+            this->setCollisionType(WorldEntity::CollisionType::Kinematic);
             this->fuel_ = true;
 
@@ -87,5 +87,5 @@
             this->enableCollisionCallback();
             this->setCollisionResponse(false);
-            this->setCollisionType(Kinematic);
+            this->setCollisionType(CollisionType::Kinematic);
 
             // Add collision shape.
@@ -101,5 +101,5 @@
 
         this->setRadarObjectColour(ColourValue(1.0, 1.0, 0.0)); // yellow
-        this->setRadarObjectShape(RadarViewable::Triangle);
+        this->setRadarObjectShape(RadarViewable::Shape::Triangle);
         this->setRadarObjectScale(0.5f);
     }
