Index: code/branches/presentationFS16/data/defaultConfig/orxonox.ini
===================================================================
--- code/branches/presentationFS16/data/defaultConfig/orxonox.ini	(revision 11205)
+++ code/branches/presentationFS16/data/defaultConfig/orxonox.ini	(revision 11206)
Index: code/branches/presentationFS16/data/gui/layouts/CampaignMenu.layout
===================================================================
--- code/branches/presentationFS16/data/gui/layouts/CampaignMenu.layout	(revision 11205)
+++ code/branches/presentationFS16/data/gui/layouts/CampaignMenu.layout	(revision 11206)
@@ -8,83 +8,95 @@
         <Property Name="UnifiedAreaRect" Value="{{0,0},{0,0},{1.0,0},{1.0,0}}" />
         <Property Name="BackgroundEnabled" Value="False" />
+
         <Window Type="MenuWidgets/Button" Name="orxonox/Mission1Button" >
             <Property Name="Text" Value="Mission One" />
             <Property Name="Visible" Value="False"/>
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.1,0},{0.65,0},{0.15,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.01,0},{0.34,0},{0.3,0},{0.39,0}}" />
             <Event Name="Clicked" Function="CampaignMenu.Mission1Button_clicked"/>
         </Window>
+
         <Window Type="MenuWidgets/Button" Name="orxonox/Mission2Button" >
             <Property Name="Text" Value="Fight in our Back" />
             <Property Name="Visible" Value="False"/>
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.18,0},{0.65,0},{0.23,0}}" />
-            <Property Name="Disabled" Value="True" />
+            <Property Name="UnifiedAreaRect" Value="{{0.1,0},{0.26,0},{0.4,0},{0.31,0}}" />
+            <Property Name="Disabled" Value="True"/>
             <Event Name="Clicked" Function="CampaignMenu.Mission2Button_clicked"/>
         </Window>
+
         <Window Type="MenuWidgets/Button" Name="orxonox/Mission3Button" >
             <Property Name="Text" Value="Pirate Attack" />
             <Property Name="Visible" Value="False"/>
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.26,0},{0.65,0},{0.31,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.1,0},{0.42,0},{0.4,0},{0.47,0}}" />
             <Property Name="Disabled" Value="True" />
             <Event Name="Clicked" Function="CampaignMenu.Mission3Button_clicked"/>
         </Window>
+
         <Window Type="MenuWidgets/Button" Name="orxonox/Mission4Button" >
             <Property Name="Text" Value="Trip to Area 51" />
             <Property Name="Visible" Value="False"/>
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.34,0},{0.65,0},{0.39,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.41,0},{0.26,0},{0.71,0},{0.31,0}}" />
             <Property Name="Disabled" Value="True" />
             <Event Name="Clicked" Function="CampaignMenu.Mission4Button_clicked"/>
         </Window>
+
         <Window Type="MenuWidgets/Button" Name="orxonox/Mission5Button" >
             <Property Name="Text" Value="Area 51 under Fire" />
             <Property Name="Visible" Value="False"/>
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.42,0},{0.65,0},{0.47,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.41,0},{0.42,0},{0.71,0},{0.47,0}}" />
             <Property Name="Disabled" Value="True" />
             <Event Name="Clicked" Function="CampaignMenu.Mission5Button_clicked"/>
         </Window>
+
         <Window Type="MenuWidgets/Button" Name="orxonox/Mission6Button" >
             <Property Name="Text" Value="Escape the Bastards" />
             <Property Name="Visible" Value="False"/>
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.50,0},{0.65,0},{0.55,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.72,0},{0.10,0},{0.99,0},{0.15,0}}" />
             <Property Name="Disabled" Value="True" />
             <Event Name="Clicked" Function="CampaignMenu.Mission6Button_clicked"/>
         </Window>
+
         <Window Type="MenuWidgets/Button" Name="orxonox/Mission7Button" >
             <Property Name="Text" Value="Expedition to Sector 5C" />
             <Property Name="Visible" Value="False"/>
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.58,0},{0.65,0},{0.63,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.72,0},{0.18,0},{0.99,0},{0.23,0}}" />
             <Property Name="Disabled" Value="True" />
             <Event Name="Clicked" Function="CampaignMenu.Mission7Button_clicked"/>
         </Window>
+
         <Window Type="MenuWidgets/Button" Name="orxonox/Mission8Button" >
             <Property Name="Text" Value="Shuttle under Attack" />
             <Property Name="Visible" Value="False"/>
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.66,0},{0.65,0},{0.71,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.72,0},{0.50,0},{0.99,0},{0.55,0}}" />
             <Property Name="Disabled" Value="True" />
             <Event Name="Clicked" Function="CampaignMenu.Mission8Button_clicked"/>
         </Window>
+
         <Window Type="MenuWidgets/Button" Name="orxonox/Mission9Button" >
             <Property Name="Text" Value="Retaliation" />
             <Property Name="Visible" Value="False"/>
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.74,0},{0.65,0},{0.79,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.72,0},{0.58,0},{0.99,0},{0.63,0}}" />
             <Property Name="Disabled" Value="True" />
             <Event Name="Clicked" Function="CampaignMenu.Mission9Button_clicked"/>
         </Window>
 
-
         <Window Type="MenuWidgets/Button" Name="orxonox/CampaignMenuBackButton" >
             <Property Name="Text" Value="Back" />
+            <Property Name="Visible" Value="False"/>
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
             <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.85,0},{0.65,0},{0.9,0}}" />
+            <Property Name="Visible" Value="True"/>
+            <Property Name="Disabled" Value="False"/>
             <Event Name="Clicked" Function="CampaignMenu.CampaignMenuBackButton_clicked"/> 
         </Window>
+
         <Window Type="MenuWidgets/StaticText" Name="orxonox/CampaignMenuCongratulation" >
             <Property Name="Text" Value="Campaign Completed!!!" />
Index: code/branches/presentationFS16/data/gui/scripts/CampaignMenu.lua
===================================================================
--- code/branches/presentationFS16/data/gui/scripts/CampaignMenu.lua	(revision 11205)
+++ code/branches/presentationFS16/data/gui/scripts/CampaignMenu.lua	(revision 11206)
@@ -17,33 +17,31 @@
     P.updateButton(7, winMgr:getWindow("orxonox/Mission8Button"))
     P.updateButton(8, winMgr:getWindow("orxonox/Mission9Button"))
+end
 
 
-    if (P.getIndexOfLastFinishedMission() == orxonox.LevelManager:getInstance():getNumberOfCampaignMissions() - 1) then
-        local label = winMgr:getWindow("orxonox/CampaignMenuCongratulation")
-        label:setProperty("Visible","True")
+function P.updateButton(index, button)
+    local lastMission = orxonox.LevelManager:getInstance():getLastWonMission()
+    if (lastMission == "") then
+    else
+        local lastwon =P.getIndexOfLastFinishedMission()
+        orxonox.LevelManager:getInstance():updatewon(lastwon)
+    end
+
+    local test =orxonox.LevelManager:getInstance():missionactivate(index)
+
+    if (test==1) then
+        button:setProperty("Visible", "True")
+        button:setProperty("Disabled", "False")
+    elseif (test==2) then
+        button:setProperty("Visible", "True")
+        button:setProperty("Disabled", "True")
+    else
+        button:setProperty("Visible", "False")
+        button:setProperty("Disabled", "True")
     end
 end
 
-function P.updateButton(index, button)
-    if (P.shouldDisplayButton(index)) then
-        button:setProperty("Visible", "True")
-
-        if (P.shouldEnableButton(index)) then
-            button:setProperty("Disabled", "False")
-        end
-    end
-end
-
-function P.shouldDisplayButton(index)
-    local size = orxonox.LevelManager:getInstance():getNumberOfCampaignMissions()
-    return index < size
-end
-
-function P.shouldEnableButton(index)
-    return index <= P.getIndexOfLastFinishedMission() + 1
-end
-
 function P.getIndexOfLastFinishedMission()
-    local lastMission = orxonox.LevelManager:getInstance():getLastFinishedCampaignMission()
+    local lastMission = orxonox.LevelManager:getInstance():getLastWonMission()
     if (lastMission and lastMission ~= "") then
         local size = orxonox.LevelManager:getInstance():getNumberOfCampaignMissions()
Index: code/branches/presentationFS16/data/gui/scripts/SingleplayerMenu.lua
===================================================================
--- code/branches/presentationFS16/data/gui/scripts/SingleplayerMenu.lua	(revision 11205)
+++ code/branches/presentationFS16/data/gui/scripts/SingleplayerMenu.lua	(revision 11206)
@@ -172,6 +172,11 @@
 
 function P.CampaignButton_clicked(e)
+--    P.test()
     showMenuSheet("CampaignMenu", true)
 end
 
+--function P.test()
+--    orxonox.CampaignMenu:test()
+--end
+
 return P
Index: code/branches/presentationFS16/src/orxonox/CMakeLists.txt
===================================================================
--- code/branches/presentationFS16/src/orxonox/CMakeLists.txt	(revision 11205)
+++ code/branches/presentationFS16/src/orxonox/CMakeLists.txt	(revision 11206)
@@ -26,4 +26,5 @@
   Level.cc
   LevelInfo.cc
+  LevelStatus.cc
   LevelManager.cc
   Main.cc
@@ -58,4 +59,5 @@
   TOLUA_FILES
     chat/ChatInputHandler.h
+    overlays/CampaignMenu.h
     LevelInfo.h
     LevelManager.h
@@ -65,4 +67,5 @@
     sound/SoundManager.h
     controllers/ScriptController.h
+    overlays/CampaignMenu.h
   PCH_FILE
     OrxonoxPrecompiledHeaders.h
Index: code/branches/presentationFS16/src/orxonox/LevelManager.cc
===================================================================
--- code/branches/presentationFS16/src/orxonox/LevelManager.cc	(revision 11205)
+++ code/branches/presentationFS16/src/orxonox/LevelManager.cc	(revision 11206)
@@ -24,4 +24,5 @@
  *   Co-authors:
  *      Damian 'Mozork' Frick
+ *      Matthias Binder
  *
  */
@@ -33,4 +34,5 @@
 
 #include "LevelManager.h"
+#include "LevelStatus.h"
 
 #include <map>
@@ -47,6 +49,11 @@
 #include "PlayerManager.h"
 
+
 namespace orxonox
 {
+
+
+
+
     SetCommandLineArgument(level, "").shortcut("l").information("Default level file (overrides LevelManager::defaultLevelName_ configValue)");
 
@@ -63,4 +70,6 @@
         RegisterObject(LevelManager);
         this->setConfigValues();
+
+
 
         // check override
@@ -73,5 +82,8 @@
         this->nextIndex_ = 0;
         this->nextLevel_ = this->availableLevels_.begin();
-    }
+
+        buildallLevelStatus();
+    }
+
 
     LevelManager::~LevelManager()
@@ -80,4 +92,8 @@
         for (LevelInfoItem* info : availableLevels_)
             info->destroy();
+        for(unsigned int i = 0; i<allLevelStatus_.size();++i)
+        {
+            allLevelStatus_[i]->destroy();
+        }
     }
 
@@ -88,7 +104,8 @@
     void LevelManager::setConfigValues()
     {
+
         SetConfigValue(defaultLevelName_, "missionOne.oxw")
             .description("Sets the pre selection of the level in the main menu.");
-        SetConfigValue(lastFinishedCampaignMission_,  "")
+        SetConfigValue(lastWonMission_,  "")
             .description("The last finished mission of a campaign");
         SetConfigValue(campaignMissions_,  std::vector<std::string>())
@@ -96,11 +113,4 @@
     }
 
-    /**
-     * @brief Stores the argument in the corresponding config value.
-     */
-    void LevelManager::setLastFinishedCampaignMission(const std::string& lastFinishedCampaignMission)
-    {
-        ModifyConfigValue(lastFinishedCampaignMission_, set, lastFinishedCampaignMission);
-    }
 
     /**
@@ -169,4 +179,5 @@
     void LevelManager::activateNextLevel()
     {
+
         if (this->levels_.size() > 0)
         {
@@ -317,3 +328,118 @@
         //TODO: Implement some kind of update?
     }
+
+
+
+    /**
+    @brief
+        first updates allLevelStatus and then check if the level with index i is activated
+    */
+    int LevelManager::missionactivate(int index)
+    {
+        updateAllLevelStatus();
+        int activated = allLevelStatus_[index]->activated;
+        return activated;
+    }
+    /**
+    @brief
+        update the last won mission to won=true
+    */
+
+    void LevelManager::updatewon(int lastwon)
+    {
+        allLevelStatus_[lastwon]->won=true;
+
+    }
+
+    /**
+    @brief
+        checks if a level is won
+        if a level is won, the other levels should be shown as saved in 'nextLevels' of the won level
+        therefore 'activated' of all other levels will be updated to the correct value
+        if more than one level is won, the level with the highes index decides which other levels will be shown, activated or not activated
+    */
+
+    void LevelManager::updateAllLevelStatus()
+    {
+        for(unsigned int i =0;i<allLevelStatus_.size();i++)
+        {
+            if(allLevelStatus_[i]->won)
+            {
+                allLevelStatus_[i]->activated=1;
+                std::vector<int> nextLevels=allLevelStatus_[i]->nextLevels;
+                for(unsigned int j=0;j<allLevelStatus_.size();j++)
+                {
+                    allLevelStatus_[j]->activated=nextLevels[j];
+                }
+            }
+        }
+    }
+
+    /**
+    @brief
+        the name of the last won mission is saved in the config file
+    */
+
+    void LevelManager::setLevelStatus(const std::string& LevelWon)
+    {
+        
+            
+        ModifyConfigValue(lastWonMission_, set, LevelWon);
+
+        /**
+        TODO: save allLevelWon_ into the config file
+        */
+    }
+
+
+    /**
+    @brief
+        build up allLevelStatus_
+        has to be done once per game (not per level)
+        all connections between the levels are saved in the allLevelStatus_
+        also the won variable of the LevelStatus have to be set to the corresponding allLevelWon_ values
+    */
+    void LevelManager::buildallLevelStatus()
+    {
+        for(unsigned int i =0;i<campaignMissions_.size();++i)
+        {
+            LevelStatus* level= new LevelStatus(this->getContext());
+            allLevelStatus_.push_back(level);
+        }
+
+        /**
+        TODO: allLevelWon_ should be loaded into the allLevelSatus_ such that the progress of the campaign can be saved
+        */
+
+        allLevelStatus_[0]->activated=1;
+
+
+        std::vector<int> v={1,1,1,0,0,0,0,0,0};
+        allLevelStatus_[0]->nextLevels=v;
+
+        v={1,1,2,1,0,0,0,0,0};
+        allLevelStatus_[1]->nextLevels=v;
+
+        v={1,2,1,0,1,0,0,0,0};
+        allLevelStatus_[2]->nextLevels=v;
+
+        v={1,1,2,1,0,1,1,0,0};
+        allLevelStatus_[3]->nextLevels=v;
+
+        v={1,2,1,0,1,0,0,1,1};
+        allLevelStatus_[4]->nextLevels=v;
+
+        v={1,1,2,1,0,1,2,0,0};
+        allLevelStatus_[5]->nextLevels=v;
+
+        v={1,1,2,1,0,2,1,0,0};
+        allLevelStatus_[6]->nextLevels=v;
+
+        v={1,2,1,0,1,0,0,1,2};
+        allLevelStatus_[7]->nextLevels=v;
+
+        v={1,2,1,0,1,0,0,2,1};
+        allLevelStatus_[8]->nextLevels=v;
+
+    }
 }
Index: code/branches/presentationFS16/src/orxonox/LevelManager.h
===================================================================
--- code/branches/presentationFS16/src/orxonox/LevelManager.h	(revision 11205)
+++ code/branches/presentationFS16/src/orxonox/LevelManager.h	(revision 11206)
@@ -24,4 +24,5 @@
  *   Co-authors:
  *      Damian 'Mozork' Frick
+ *      Matthias Binder
  *
  */
@@ -47,4 +48,6 @@
 #include "util/Singleton.h"
 #include "core/config/Configurable.h"
+#include "LevelStatus.h"
+
 
 // tolua_begin
@@ -63,6 +66,11 @@
         Damian 'Mozork' Frick
 
-    @ingroup Orxonox
+
+    @ingroup Orxonox1
     */
+
+
+
+
     class _OrxonoxExport LevelManager
     // tolua_end
@@ -74,11 +82,19 @@
             virtual ~LevelManager();
 
+            void buildallLevelStatus();
+            void updateAllLevelStatus();
+            void setLevelStatus(const std::string& LevelWon);
+
+
             void setConfigValues(); //!< Set the config values for this object.
 
             void requestActivity(Level* level); //!< Request activity for the input Level.
             void releaseActivity(Level* level); //!< Release activity for the input Level.
+
             Level* getActiveLevel(); //!< Get the currently active Level.
 
             // tolua_begin
+            void updatewon(int lastwon);
+            int missionactivate(int index);
             void setDefaultLevel(const std::string& levelName); //!< Set the default Level.
             /**
@@ -91,12 +107,13 @@
             LevelInfoItem* getAvailableLevelListItem(unsigned int index); //!< Get the LevelInfoItem at the given index in the list of available Levels.
 
-            void setLastFinishedCampaignMission(const std::string& lastFinishedCampaignMission);
-            inline const std::string& getLastFinishedCampaignMission() const
-                { return this->lastFinishedCampaignMission_; }
+            inline const std::string& getLastWonMission() const
+                { return this->lastWonMission_; }
 
             inline unsigned int getNumberOfCampaignMissions()
                 { return this->campaignMissions_.size(); }
+
             inline const std::string& getCampaignMission(unsigned int index)
                 { return this->campaignMissions_[index]; }
+
 
             /**
@@ -127,6 +144,10 @@
             // config values
             std::string defaultLevelName_;
-            std::string lastFinishedCampaignMission_;
+            std::string lastWonMission_;
             std::vector<std::string> campaignMissions_;
+            std::vector<int> allLevelWon_;                  //level i is won if allLevelWon_[i]=1
+            std::vector<LevelStatus*> allLevelStatus_;
+
+
 
             static LevelManager* singletonPtr_s;
Index: code/branches/presentationFS16/src/orxonox/LevelStatus.cc
===================================================================
--- code/branches/presentationFS16/src/orxonox/LevelStatus.cc	(revision 11206)
+++ code/branches/presentationFS16/src/orxonox/LevelStatus.cc	(revision 11206)
@@ -0,0 +1,64 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Matthias Binder
+ *
+ */
+
+
+
+
+#include "LevelStatus.h"
+
+#include <map>
+
+#include "core/singleton/ScopedSingletonIncludes.h"
+#include "core/commandline/CommandLineIncludes.h"
+#include "core/config/ConfigValueIncludes.h"
+#include "core/CoreIncludes.h"
+#include "core/ClassTreeMask.h"
+#include "core/Loader.h"
+#include "core/Resource.h"
+#include "core/XMLFile.h"
+#include "Level.h"
+#include "PlayerManager.h"
+
+namespace orxonox
+{
+    RegisterClass(LevelStatus);
+
+
+    /**
+    @brief
+        Constructor. sets config values and initializes variables.
+    */
+    LevelStatus::LevelStatus(Context* context) : BaseObject(context)
+    {
+        RegisterObject(LevelStatus);
+        this->won = false;
+        this->nextLevels.insert(this->nextLevels.begin(),1);
+        this->activated=0;
+    }
+
+    LevelStatus::~LevelStatus()
+    {}
+}
Index: code/branches/presentationFS16/src/orxonox/LevelStatus.h
===================================================================
--- code/branches/presentationFS16/src/orxonox/LevelStatus.h	(revision 11206)
+++ code/branches/presentationFS16/src/orxonox/LevelStatus.h	(revision 11206)
@@ -0,0 +1,69 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Matthias Binder
+ *
+ */
+
+
+#ifndef _LevelStatus_H__
+#define _LevelStatus_H__
+
+
+#include "OrxonoxPrereqs.h"
+
+#include <cassert>
+#include <list>
+#include <map>
+#include <string>
+
+#include "LevelInfo.h"
+
+#include "util/Singleton.h"
+#include "core/config/Configurable.h"
+
+
+namespace orxonox
+{
+
+    /**
+    @brief
+        LevelStatus:
+        In the LevelStatus class all necessary information of a mission in the campaign is saved.
+        It is only used in the LevelManager to save the progress of the campaign. It is now possible to have a treelike campaign menu structure.
+        
+    */
+
+
+    class _OrxonoxExport LevelStatus : public BaseObject
+    {
+    public:
+        LevelStatus(Context* context);
+        virtual ~LevelStatus();
+        
+        bool won;                           //if the Level is won or not
+        std::vector<int> nextLevels;        //if this Level is won, the ith element of this vector shows, what to do with the other leves
+        int activated;                      //0 not activated, 1 activated, 2 visible
+    };
+}
+
+#endif /* _LevelStatus_H__ */
Index: code/branches/presentationFS16/src/orxonox/gametypes/Mission.cc
===================================================================
--- code/branches/presentationFS16/src/orxonox/gametypes/Mission.cc	(revision 11205)
+++ code/branches/presentationFS16/src/orxonox/gametypes/Mission.cc	(revision 11206)
@@ -91,5 +91,8 @@
             this->gtinfo_->sendAnnounceMessage("Mission accomplished!");
 
-            LevelManager::getInstance().setLastFinishedCampaignMission(this->getFilename());
+            //LevelManager::getInstance().setLastFinishedCampaignMission(this->getFilename());
+
+            //gibt index von bestandenem level weiter
+            LevelManager::getInstance().setLevelStatus(this->getFilename());
         }
         else if (!this->gtinfo_->hasEnded())
Index: code/branches/presentationFS16/src/orxonox/gametypes/Mission.h
===================================================================
--- code/branches/presentationFS16/src/orxonox/gametypes/Mission.h	(revision 11205)
+++ code/branches/presentationFS16/src/orxonox/gametypes/Mission.h	(revision 11206)
@@ -45,5 +45,5 @@
 
             virtual void start() override;
-            virtual void end() override;
+            virtual void end() override;  //checks if the mission was accomplished and sends the name of the won mission to the LevelManager
             virtual void setTeams();
             virtual void addBots(unsigned int amount) override{} //<! overwrite function in order to bypass the addbots command
Index: code/branches/presentationFS16/src/orxonox/overlays/CMakeLists.txt
===================================================================
--- code/branches/presentationFS16/src/orxonox/overlays/CMakeLists.txt	(revision 11205)
+++ code/branches/presentationFS16/src/orxonox/overlays/CMakeLists.txt	(revision 11206)
@@ -3,4 +3,5 @@
   OrxonoxOverlay.cc
   OverlayGroup.cc
+  CampaignMenu.cc
 
 #COMPILATION_BEGIN OverlayCompilation.cc
Index: code/branches/presentationFS16/src/orxonox/overlays/CampaignMenu.cc
===================================================================
--- code/branches/presentationFS16/src/orxonox/overlays/CampaignMenu.cc	(revision 11206)
+++ code/branches/presentationFS16/src/orxonox/overlays/CampaignMenu.cc	(revision 11206)
@@ -0,0 +1,63 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Matthias Binder
+ *
+ */
+
+
+#include "CampaignMenu.h"
+
+#include "core/CoreIncludes.h"
+#include "core/GUIManager.h"
+#include "core/XMLPort.h"
+#include "core/GameMode.h"
+
+
+namespace orxonox
+{
+
+    
+    RegisterClass(CampaignMenu);
+
+    CampaignMenu::CampaignMenu(Context* context)
+        :BaseObject(context)
+
+    {
+        RegisterObject(CampaignMenu);
+    }
+
+    CampaignMenu::~CampaignMenu()
+    {}
+
+    void CampaignMenu::test()
+    {
+        orxout()<<"test"<< endl;
+    }
+
+
+    //loads the new campaign menu
+    void CampaignMenu::loadnewmenu()
+    {
+        
+    }
+}
Index: code/branches/presentationFS16/src/orxonox/overlays/CampaignMenu.h
===================================================================
--- code/branches/presentationFS16/src/orxonox/overlays/CampaignMenu.h	(revision 11206)
+++ code/branches/presentationFS16/src/orxonox/overlays/CampaignMenu.h	(revision 11206)
@@ -0,0 +1,53 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Matthias Binder
+ *
+ */
+
+#ifndef _CampaignMenu_H__
+#define _CampaignMenu_H__
+
+#include "OrxonoxPrereqs.h"
+
+#include <string>
+#include "core/BaseObject.h"
+#include "util/Singleton.h"
+
+//tolua_begin
+namespace orxonox
+{
+//tolua_end
+class _OrxonoxExport CampaignMenu : public BaseObject //tolua_export
+    { //tolua_export
+    public:
+        CampaignMenu(Context* context);
+        ~CampaignMenu();
+        static void test(); //tolua_export
+        void loadnewmenu();
+    }; //tolua_export
+
+
+
+} //tolua_export
+
+#endif /* _CampaignMenu_H__ */
Index: code/branches/presentationFS16/src/orxonox/overlays/GUISheet.cc
===================================================================
--- code/branches/presentationFS16/src/orxonox/overlays/GUISheet.cc	(revision 11205)
+++ code/branches/presentationFS16/src/orxonox/overlays/GUISheet.cc	(revision 11206)
@@ -33,8 +33,12 @@
 #include "core/XMLPort.h"
 #include "core/GameMode.h"
+#include "core/command/ConsoleCommandIncludes.h"
 
 namespace orxonox
 {
+
+
     RegisterClass(GUISheet);
+
 
     GUISheet::GUISheet(Context* context)
@@ -95,3 +99,4 @@
         // Note: This call has no effect when already showing!
     }
+
 }
