Index: code/trunk/src/orxonox/CMakeLists.txt
===================================================================
--- code/trunk/src/orxonox/CMakeLists.txt	(revision 5771)
+++ code/trunk/src/orxonox/CMakeLists.txt	(revision 5774)
@@ -26,56 +26,15 @@
 SET_SOURCE_FILES(ORXONOX_SRC_FILES
   Main.cc
-
-  CameraManager.cc
-  LevelManager.cc
-  PawnManager.cc
-  PlayerManager.cc
-
-  Level.cc
-  Radar.cc
-  Scene.cc
+  GSRoot.cc
 )
-
-ADD_SUBDIRECTORY(collisionshapes)
-ADD_SUBDIRECTORY(controllers)
-ADD_SUBDIRECTORY(gametypes)
-ADD_SUBDIRECTORY(graphics)
-ADD_SUBDIRECTORY(infos)
-ADD_SUBDIRECTORY(interfaces)
-ADD_SUBDIRECTORY(items)
-ADD_SUBDIRECTORY(overlays)
-ADD_SUBDIRECTORY(pickup)
-ADD_SUBDIRECTORY(sound)
-ADD_SUBDIRECTORY(weaponsystem)
-ADD_SUBDIRECTORY(worldentities)
 
 ORXONOX_ADD_LIBRARY(orxonox
   FIND_HEADER_FILES
-  TOLUA_FILES
-    LevelManager.h
-    pickup/BaseItem.h
-    pickup/PickupInventory.h
   DEFINE_SYMBOL
     "ORXONOX_SHARED_BUILD"
-  PCH_FILE
-    OrxonoxPrecompiledHeaders.h
   LINK_LIBRARIES
-    ${Boost_FILESYSTEM_LIBRARY}
-    ${Boost_SYSTEM_LIBRARY} # Filesystem dependency
-    ${Boost_THREAD_LIBRARY}
-    ${Boost_DATE_TIME_LIBRARY} # Thread dependency
-    ${OGRE_LIBRARY}
-    ${OPENAL_LIBRARY}
-    ${ALUT_LIBRARY}
-    ${VORBISFILE_LIBRARY}
-    ${VORBIS_LIBRARY}
-    ${OGG_LIBRARY}
-    tinyxml++_orxonox
     tolua++_orxonox
-    bullet_orxonox
     util
     core
-    network
-    tools
   SOURCE_FILES ${ORXONOX_SRC_FILES}
 )
Index: code/trunk/src/orxonox/CameraManager.cc
===================================================================
--- code/trunk/src/orxonox/CameraManager.cc	(revision 5771)
+++ 	(revision )
@@ -1,143 +1,0 @@
-/*
- *   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:
- *      Benjamin Knecht
- *   Co-authors:
- *      Fabian 'x3n' Landau
- *
- */
-#include "CameraManager.h"
-
-#include <OgreSceneManager.h>
-#include <OgreViewport.h>
-#include <OgreCompositorManager.h>
-
-#include "util/StringUtils.h"
-#include "core/GameMode.h"
-#include "core/GUIManager.h"
-#include "core/ObjectList.h"
-#include "tools/Shader.h"
-#include "graphics/Camera.h"
-#include "Scene.h"
-
-namespace orxonox
-{
-    CameraManager* CameraManager::singletonPtr_s = 0;
-
-    CameraManager::CameraManager(Ogre::Viewport* viewport)
-        : viewport_(viewport)
-    {
-        this->fallbackCamera_ = 0;
-    }
-
-    CameraManager::~CameraManager()
-    {
-        if (this->fallbackCamera_)
-            this->fallbackCamera_->getSceneManager()->destroyCamera(this->fallbackCamera_);
-    }
-
-    Camera* CameraManager::getActiveCamera() const
-    {
-        if (this->cameraList_.size() > 0)
-            return this->cameraList_.front();
-        else
-            return 0;
-    }
-
-    void CameraManager::requestFocus(Camera* camera)
-    {
-        if (!GameMode::showsGraphics())
-            return;
-
-        // notify old camera (if it exists)
-        if (this->cameraList_.size() > 0)
-            this->cameraList_.front()->removeFocus();
-        else if (this->fallbackCamera_)
-        {
-            this->fallbackCamera_->getSceneManager()->destroyCamera(this->fallbackCamera_);
-            this->fallbackCamera_ = 0;
-        }
-
-        camera->setFocus();
-
-        // make sure we don't add it twice
-        for (std::list<Camera*>::iterator it = this->cameraList_.begin(); it != this->cameraList_.end(); ++it)
-            if ((*it) == camera)
-                return;
-
-        // add to list
-        this->cameraList_.push_front(camera);
-    }
-
-    void CameraManager::releaseFocus(Camera* camera)
-    {
-        if (!GameMode::showsGraphics())
-            return;
-
-        // notify the cam of releasing the focus
-        if (this->cameraList_.front() == camera)
-        {
-            camera->removeFocus();
-            this->cameraList_.pop_front();
-
-            // set new focus if possible
-            if (this->cameraList_.size() > 0)
-                this->cameraList_.front()->setFocus();
-            else
-            {
-                // there are no more cameras, create a fallback
-                if (!this->fallbackCamera_)
-                    this->fallbackCamera_ = camera->getScene()->getSceneManager()->createCamera(getUniqueNumberString());
-                this->useCamera(this->fallbackCamera_);
-            }
-        }
-        else
-        {
-            this->cameraList_.remove(camera);
-        }
-    }
-
-    void CameraManager::useCamera(Ogre::Camera* camera)
-    {
-        // This workaround is needed to avoid weird behaviour with active compositors while
-        // switching the camera (like freezing the image)
-        //
-        // Last known Ogre version needing this workaround:
-        // 1.4.8
-
-        // deactivate all compositors
-        {
-            Ogre::ResourceManager::ResourceMapIterator iterator = Ogre::CompositorManager::getSingleton().getResourceIterator();
-            while (iterator.hasMoreElements())
-                Ogre::CompositorManager::getSingleton().setCompositorEnabled(this->viewport_, iterator.getNext()->getName(), false);
-        }
-
-        this->viewport_->setCamera(camera);
-        GUIManager::getInstance().setCamera(camera);
-
-        // reactivate all visible compositors
-        {
-            for (ObjectList<Shader>::iterator it = ObjectList<Shader>::begin(); it != ObjectList<Shader>::end(); ++it)
-                it->updateVisibility();
-        }
-    }
-}
Index: code/trunk/src/orxonox/CameraManager.h
===================================================================
--- code/trunk/src/orxonox/CameraManager.h	(revision 5771)
+++ 	(revision )
@@ -1,74 +1,0 @@
-/*
- *   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:
- *      Benjamin Knecht
- *   Co-authors:
- *      Fabian 'x3n' Landau
- *
- */
-
- /**
- @file
- @brief Handles the instances of Camera class
- @author Benjamin Knecht <beni_at_orxonox.net>
-  */
-
-#ifndef _CameraManager_H__
-#define _CameraManager_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include <cassert>
-#include <list>
-#include "util/OgreForwardRefs.h"
-#include "util/Singleton.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport CameraManager : public Singleton<CameraManager>
-    {
-            friend class Singleton<CameraManager>;
-        public:
-            CameraManager(Ogre::Viewport* viewport);
-            ~CameraManager();
-
-            Camera* getActiveCamera() const;
-
-            void requestFocus(Camera* camera);
-            void releaseFocus(Camera* camera);
-
-            void useCamera(Ogre::Camera* camera);
-
-            static CameraManager* getInstancePtr() { return singletonPtr_s; }
-
-        private:
-            CameraManager(const CameraManager&); // don't use
-
-            std::list<Camera*>    cameraList_;
-            Ogre::Viewport*       viewport_;
-            Ogre::Camera*         fallbackCamera_;
-
-            static CameraManager* singletonPtr_s;
-    };
-}
-
-#endif /* _CameraManager_H__ */
Index: code/trunk/src/orxonox/GSRoot.cc
===================================================================
--- code/trunk/src/orxonox/GSRoot.cc	(revision 5774)
+++ code/trunk/src/orxonox/GSRoot.cc	(revision 5774)
@@ -0,0 +1,58 @@
+/*
+ *   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:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "GSRoot.h"
+
+#include "core/Clock.h"
+#include "core/Game.h"
+
+namespace orxonox
+{
+    DeclareGameState(GSRoot, "root", false, false);
+
+    GSRoot::GSRoot(const GameStateInfo& info)
+        : GameState(info)
+    {
+    }
+
+    GSRoot::~GSRoot()
+    {
+    }
+
+    void GSRoot::activate()
+    {
+    }
+
+    void GSRoot::deactivate()
+    {
+    }
+
+    void GSRoot::update(const Clock& time)
+    {
+    }
+}
Index: code/trunk/src/orxonox/GSRoot.h
===================================================================
--- code/trunk/src/orxonox/GSRoot.h	(revision 5774)
+++ code/trunk/src/orxonox/GSRoot.h	(revision 5774)
@@ -0,0 +1,51 @@
+/*
+ *   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:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _GSRoot_H__
+#define _GSRoot_H__
+
+#include "OrxonoxPrereqs.h"
+#include "core/GameState.h"
+
+namespace orxonox
+{
+    class _OrxonoxExport GSRoot : public GameState
+    {
+    public:
+        GSRoot(const GameStateInfo& info);
+        ~GSRoot();
+
+        void activate();
+        void deactivate();
+        void update(const Clock& time);
+
+    private:
+    };
+}
+
+#endif /* _GSRoot_H__ */
Index: code/trunk/src/orxonox/Level.cc
===================================================================
--- code/trunk/src/orxonox/Level.cc	(revision 5771)
+++ 	(revision )
@@ -1,177 +1,0 @@
-/*
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#include "Level.h"
-
-#include "util/Math.h"
-#include "core/Core.h"
-#include "core/CoreIncludes.h"
-#include "core/Loader.h"
-#include "core/Template.h"
-#include "core/XMLFile.h"
-#include "core/XMLPort.h"
-
-#include "infos/PlayerInfo.h"
-#include "gametypes/Gametype.h"
-#include "overlays/OverlayGroup.h"
-#include "sound/SoundBase.h"
-#include "LevelManager.h"
-
-namespace orxonox
-{
-    CreateFactory(Level);
-
-    Level::Level(BaseObject* creator) : BaseObject(creator), Synchronisable(creator)
-    {
-        RegisterObject(Level);
-
-        this->registerVariables();
-        this->xmlfilename_ = this->getFilename();
-    }
-
-    Level::~Level()
-    {
-        if (this->isInitialized())
-        {
-            if (LevelManager::getInstancePtr())
-                LevelManager::getInstance().releaseActivity(this);
-
-            if (this->xmlfile_)
-                Loader::unload(this->xmlfile_);
-
-            if(this->ambientsound_ != NULL)
-                delete this->ambientsound_;
-        }
-    }
-
-    void Level::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(Level, XMLPort, xmlelement, mode);
-
-        XMLPortParam(Level, "description", setDescription, getDescription, xmlelement, mode);
-        XMLPortParam(Level, "gametype", setGametypeString, getGametypeString, xmlelement, mode).defaultValues("Gametype");
-
-        XMLPortParamLoadOnly(Level, "ambientsound", loadAmbientSound, xmlelement, mode);
-
-        XMLPortObjectExtended(Level, BaseObject, "", addObject, getObject, xmlelement, mode, true, false);
-    }
-
-    void Level::registerVariables()
-    {
-        registerVariable(this->xmlfilename_, VariableDirection::ToClient, new NetworkCallback<Level>(this, &Level::networkcallback_applyXMLFile));
-        registerVariable(this->name_,        VariableDirection::ToClient, new NetworkCallback<Level>(this, &Level::changedName));
-        registerVariable(this->description_, VariableDirection::ToClient);
-    }
-
-    void Level::networkcallback_applyXMLFile()
-    {
-        COUT(0) << "Loading level \"" << this->xmlfilename_ << "\"..." << std::endl;
-
-        ClassTreeMask mask;
-        mask.exclude(Class(BaseObject));
-        mask.include(Class(Template));
-        mask.include(Class(OverlayGroup)); // HACK to include the ChatOverlay
-
-        this->xmlfile_ = new XMLFile(mask, this->xmlfilename_);
-
-        Loader::open(this->xmlfile_);
-    }
-
-    void Level::setGametypeString(const std::string& gametype)
-    {
-        Identifier* identifier = ClassByString(gametype);
-
-        if (!identifier || !identifier->isA(Class(Gametype)))
-        {
-            COUT(0) << "Error: \"" << gametype << "\" is not a valid gametype." << std::endl;
-            identifier = Class(Gametype);
-            this->gametype_ = "Gametype";
-        }
-        else
-            this->gametype_ = gametype;
-
-std::cout << "Load Gametype: " << this->gametype_ << std::endl;
-
-        Gametype* rootgametype = orxonox_cast<Gametype*>(identifier->fabricate(this));
-        this->setGametype(rootgametype);
-
-std::cout << "root gametype: " << rootgametype->getIdentifier()->getName() << std::endl;
-
-        for (std::list<BaseObject*>::iterator it = this->objects_.begin(); it != this->objects_.end(); ++it)
-            (*it)->setGametype(rootgametype);
-
-        if (LevelManager::getInstancePtr())
-            LevelManager::getInstance().requestActivity(this);
-    }
-
-
-    void Level::addObject(BaseObject* object)
-    {
-        this->objects_.push_back(object);
-        object->setGametype(this->getGametype());
-    }
-
-    BaseObject* Level::getObject(unsigned int index) const
-    {
-        unsigned int i = 0;
-        for (std::list<BaseObject*>::const_iterator it = this->objects_.begin(); it != this->objects_.end(); ++it)
-        {
-            if (i == index)
-                return (*it);
-            ++i;
-        }
-        return 0;
-    }
-
-    void Level::loadAmbientSound(const std::string& filename)
-    {
-        if(filename == "") return;
-        else
-        {
-            if(this->ambientsound_ == NULL)
-            {
-                this->ambientsound_ = new SoundBase();
-            }
-
-            this->ambientsound_->loadFile(filename);
-            this->ambientsound_->play(true);
-        }
-    }
-
-    void Level::playerEntered(PlayerInfo* player)
-    {
-        COUT(3) << "player entered level (id: " << player->getClientID() << ", name: " << player->getName() << ")" << std::endl;
-        player->setGametype(this->getGametype());
-    }
-
-    void Level::playerLeft(PlayerInfo* player)
-    {
-        COUT(3) << "player left level (id: " << player->getClientID() << ", name: " << player->getName() << ")" << std::endl;
-        player->setGametype(0);
-    }
-}
Index: code/trunk/src/orxonox/Level.h
===================================================================
--- code/trunk/src/orxonox/Level.h	(revision 5771)
+++ 	(revision )
@@ -1,80 +1,0 @@
-/*
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _Level_H__
-#define _Level_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include <list>
-#include <string>
-#include "core/BaseObject.h"
-#include "network/synchronisable/Synchronisable.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport Level : public BaseObject, public Synchronisable
-    {
-        public:
-            Level(BaseObject* creator);
-            virtual ~Level();
-
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            void registerVariables();
-
-            inline void setDescription(const std::string& description)
-                { this->description_ = description; }
-            inline const std::string& getDescription() const
-                { return this->description_; }
-
-            void loadAmbientSound(const std::string& filename);
-
-            void playerEntered(PlayerInfo* player);
-            void playerLeft(PlayerInfo* player);
-
-        private:
-            void addObject(BaseObject* object);
-            BaseObject* getObject(unsigned int index) const;
-
-            void setGametypeString(const std::string& gametype);
-            inline const std::string& getGametypeString() const
-                { return this->gametype_; }
-
-            void networkcallback_applyXMLFile();
-
-            std::string            description_;
-            std::string            gametype_;
-            std::string            xmlfilename_;
-            XMLFile*               xmlfile_;
-            std::list<BaseObject*> objects_;
-
-            SoundBase*             ambientsound_;
-    };
-}
-
-#endif /* _Level_H__ */
Index: code/trunk/src/orxonox/LevelManager.cc
===================================================================
--- code/trunk/src/orxonox/LevelManager.cc	(revision 5771)
+++ 	(revision )
@@ -1,150 +1,0 @@
-/*
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#include "LevelManager.h"
-
-#include <map>
-#include <OgreResourceGroupManager.h>
-
-#include "core/CommandLine.h"
-#include "core/ConfigValueIncludes.h"
-#include "core/Core.h"
-#include "core/CoreIncludes.h"
-#include "core/Loader.h"
-#include "PlayerManager.h"
-#include "Level.h"
-#include "infos/HumanPlayer.h"
-
-namespace orxonox
-{
-    SetCommandLineArgument(level, "").shortcut("l").information("Default level file (overrides LevelManager::defaultLevelName_ configValue)");
-
-    LevelManager* LevelManager::singletonPtr_s = 0;
-
-    LevelManager::LevelManager()
-    {
-        RegisterRootObject(LevelManager);
-        this->setConfigValues();
-
-        // check override
-        if (!CommandLine::getArgument("level")->hasDefaultValue())
-        {
-            ModifyConfigValue(defaultLevelName_, tset, CommandLine::getValue("level").getString());
-        }
-    }
-
-    LevelManager::~LevelManager()
-    {
-    }
-
-    void LevelManager::setConfigValues()
-    {
-        SetConfigValue(defaultLevelName_, "presentation_dm.oxw")
-            .description("Sets the preselection of the level in the main menu.");
-    }
-
-    void LevelManager::requestActivity(Level* level)
-    {
-        this->levels_s.push_back(level);
-        if (this->levels_s.size() == 1)
-            this->activateNextLevel();
-    }
-
-    void LevelManager::releaseActivity(Level* level)
-    {
-        if (this->levels_s.size() > 0)
-        {
-            if (this->levels_s.front() == level)
-            {
-                level->setActive(false);
-                this->levels_s.pop_front();
-                this->activateNextLevel();
-            }
-            else
-            {
-                for (std::list<Level*>::iterator it = this->levels_s.begin(); it != this->levels_s.end(); ++it)
-                    if ((*it) == level)
-                        this->levels_s.erase(it);
-            }
-        }
-    }
-
-    Level* LevelManager::getActiveLevel()
-    {
-        if (this->levels_s.size() > 0)
-            return this->levels_s.front();
-        else
-            return 0;
-    }
-
-    void LevelManager::activateNextLevel()
-    {
-        if (this->levels_s.size() > 0)
-        {
-            this->levels_s.front()->setActive(true);
-            for (std::map<unsigned int, PlayerInfo*>::const_iterator it = PlayerManager::getInstance().getClients().begin(); it != PlayerManager::getInstance().getClients().end(); ++it)
-                this->levels_s.front()->playerEntered(it->second);
-        }
-    }
-
-    void LevelManager::setDefaultLevel(const std::string& levelName)
-    {
-        ModifyConfigValue(defaultLevelName_, set, levelName);
-    }
-
-    const std::string& LevelManager::getDefaultLevel() const
-    {
-        return defaultLevelName_;
-    }
-
-    std::string LevelManager::getAvailableLevelListItem(unsigned int index) const
-    {
-        if (index >= availableLevels_.size())
-            return std::string();
-        else
-            return availableLevels_[index];
-    }
-
-    void LevelManager::compileAvailableLevelList()
-    {
-        availableLevels_.clear();
-
-        availableLevels_ = *Ogre::ResourceGroupManager::getSingleton().findResourceNames(
-            Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, "*.oxw");
-
-        for (std::vector<std::string>::iterator it = availableLevels_.begin(); it != availableLevels_.end();)
-            if (it->find("old/") == 0)
-                it = availableLevels_.erase(it);
-            else
-            {
-                size_t pos = it->find(".oxw");
-                *it = it->substr(0, pos);
-                ++it;
-            }
-    }
-}
Index: code/trunk/src/orxonox/LevelManager.h
===================================================================
--- code/trunk/src/orxonox/LevelManager.h	(revision 5771)
+++ 	(revision )
@@ -1,82 +1,0 @@
-/*
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _LevelManager_H__
-#define _LevelManager_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include <cassert>
-#include <list>
-#include <string>
-
-#include "util/Singleton.h"
-#include "core/OrxonoxClass.h"
-
-// tolua_begin
-namespace orxonox
-{
-    class _OrxonoxExport LevelManager
-    // tolua_end
-        : public Singleton<LevelManager>, public OrxonoxClass
-    { // tolua_export
-            friend class Singleton<LevelManager>;
-        public:
-            LevelManager();
-            virtual ~LevelManager();
-
-            void setConfigValues();
-
-            void requestActivity(Level* level);
-            void releaseActivity(Level* level);
-            Level* getActiveLevel();
-
-            void setDefaultLevel(const std::string& levelName); //tolua_export
-            const std::string& getDefaultLevel() const; //tolua_export
-            void compileAvailableLevelList(); //tolua_export
-            std::string getAvailableLevelListItem(unsigned int index) const; //tolua_export
-
-            static LevelManager* getInstancePtr() { return singletonPtr_s; }
-            static LevelManager& getInstance()    { return Singleton<LevelManager>::getInstance(); } // tolua_export
-
-        private:
-            LevelManager(const LevelManager&);
-
-            void activateNextLevel();
-
-            std::list<Level*> levels_s;
-            std::vector<std::string> availableLevels_;
-
-            // config values
-            std::string defaultLevelName_;
-
-            static LevelManager* singletonPtr_s;
-    }; // tolua_export
-} // tolua_export
-
-#endif /* _LevelManager_H__ */
Index: code/trunk/src/orxonox/Main.cc
===================================================================
--- code/trunk/src/orxonox/Main.cc	(revision 5771)
+++ code/trunk/src/orxonox/Main.cc	(revision 5774)
@@ -41,15 +41,5 @@
 #include "core/Game.h"
 #include "core/LuaState.h"
-#include "ToluaBindOrxonox.h"
 #include "Main.h"
-
-SetCommandLineSwitch(console).information("Start in console mode (text IO only)");
-// Shortcuts for easy direct loading
-SetCommandLineSwitch(server).information("Start in server mode");
-SetCommandLineSwitch(client).information("Start in client mode");
-SetCommandLineSwitch(dedicated).information("Start in dedicated server mode");
-SetCommandLineSwitch(standalone).information("Start in standalone mode");
-
-DeclareToluaInterface(Orxonox);
 
 namespace orxonox
@@ -65,32 +55,7 @@
         game->setStateHierarchy(
         "root"
-        " graphics"
-        "  mainMenu"
-        "  standalone"
-        "   level"
-        "  server"
-        "   level"
-        "  client"
-        "   level"
-        " dedicated"
-        "  level"
-        " ioConsole"
         );
 
         game->requestState("root");
-
-        // Some development hacks (not really, but in the future, this calls won't make sense anymore)
-        if (CommandLine::getValue("standalone").getBool())
-            Game::getInstance().requestStates("graphics, standalone, level");
-        else if (CommandLine::getValue("server").getBool())
-            Game::getInstance().requestStates("graphics, server, level");
-        else if (CommandLine::getValue("client").getBool())
-            Game::getInstance().requestStates("graphics, client, level");
-        else if (CommandLine::getValue("dedicated").getBool())
-            Game::getInstance().requestStates("dedicated, level");
-        else if (CommandLine::getValue("console").getBool())
-            Game::getInstance().requestStates("ioConsole");
-        else
-            Game::getInstance().requestStates("graphics, mainMenu");
 
         game->run();
Index: code/trunk/src/orxonox/OrxonoxPrecompiledHeaders.h
===================================================================
--- code/trunk/src/orxonox/OrxonoxPrecompiledHeaders.h	(revision 5771)
+++ 	(revision )
@@ -1,97 +1,0 @@
-/*
- *   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:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-@file
-@brief
-    Compilation of the most often used header files in the orxonox library
-@details
-    Updated: 13. September 2009
-    Total Files: 88
-*/
-
-#include "OrxonoxConfig.h"
-
-///////////////////////////////////////////
-/////          Stable Headers         /////
-///////////////////////////////////////////
-
-#include <cassert>  // 87
-#include <cstring>  // 87
-#include <fstream>  // 87
-#include <iostream> // 87
-#include <map>      // 87
-#include <set>      // 87
-#include <sstream>  // 87
-#include <string>   // 87
-#include <vector>   // 87
-#include <list>     // 86
-#include <ctime>    // 82
-#include <cmath>    // 81
-#include <deque>    // 81
-#include <queue>    // 81
-
-#include <OgreMath.h>        // 81
-#include <OgreVector2.h>     // 81
-#include <OgreVector3.h>     // 81
-#include <OgreVector4.h>     // 81
-#include <OgreQuaternion.h>  // 81
-#include <OgreColourValue.h> // 81
-
-#include "util/OgreForwardRefs.h"     // 67
-#include <LinearMath/btMotionState.h> // 60
-#include "util/SubString.h" // 55
-#include <tinyxml/ticpp.h>  // 41
-
-//#include <OgreRenderable.h> // 14, 5.1MB
-//#include <OgreSceneNode.h>  // 13, 1MB
-//#include <OgreResourceGroupManager.h> // 12, 1.5MB
-//#include <OgreTexture.h>       // 11, 0.6MB
-//#include <OgreMovableObject.h> // 10, 1.6MB
-//#include <OgreSceneManager.h>  // 9, 8.7MB
-
-///////////////////////////////////////////
-/////       All Rebuild Headers       /////
-///////////////////////////////////////////
-
-#include "core/BaseObject.h"   // 82
-#include "core/CoreIncludes.h" // 80
-
-///////////////////////////////////////////
-/////      Not so Stable Headers      /////
-///////////////////////////////////////////
-
-#include "network/synchronisable/Synchronisable.h" // 70
-#include "util/MultiType.h"    // 65
-#include "core/Executor.h"     // 55
-//#include "core/XMLPort.h"     // 41
-
-
-// Just in case some header included windows.h
-#undef min
-#undef max
Index: code/trunk/src/orxonox/OrxonoxPrereqs.h
===================================================================
--- code/trunk/src/orxonox/OrxonoxPrereqs.h	(revision 5771)
+++ code/trunk/src/orxonox/OrxonoxPrereqs.h	(revision 5774)
@@ -36,6 +36,4 @@
 
 #include "OrxonoxConfig.h"
-
-#include "tools/ToolsPrereqs.h"
 
 //-----------------------------------------------------------------------
Index: code/trunk/src/orxonox/PawnManager.cc
===================================================================
--- code/trunk/src/orxonox/PawnManager.cc	(revision 5771)
+++ 	(revision )
@@ -1,67 +1,0 @@
-/*
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#include "PawnManager.h"
-
-#include "core/CoreIncludes.h"
-#include "worldentities/pawns/Pawn.h"
-
-namespace orxonox
-{
-    PawnManager* PawnManager::singletonPtr_s = 0;
-
-    PawnManager::PawnManager()
-    {
-        RegisterRootObject(PawnManager);
-    }
-
-    PawnManager::~PawnManager()
-    {
-    }
-
-    void PawnManager::touch()
-    {
-        if (!PawnManager::singletonPtr_s)
-            new PawnManager();
-    }
-
-    void PawnManager::tick(float dt)
-    {
-        unsigned int count = 0;
-        for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it != ObjectList<Pawn>::end(); ++count)
-        {
-            if (!it->isAlive())
-                delete (*(it++));
-            else
-                ++it;
-        }
-
-        if (count == 0)
-            delete this;
-    }
-}
Index: code/trunk/src/orxonox/PawnManager.h
===================================================================
--- code/trunk/src/orxonox/PawnManager.h	(revision 5771)
+++ 	(revision )
@@ -1,55 +1,0 @@
-/*
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _PawnManager_H__
-#define _PawnManager_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "util/Singleton.h"
-#include "tools/interfaces/Tickable.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport PawnManager : protected Singleton<PawnManager>, public Tickable
-    {
-            friend class Singleton<PawnManager>;
-        public:
-            static void touch();
-
-            virtual void tick(float dt);
-
-        private:
-            PawnManager();
-            virtual ~PawnManager();
-
-            static PawnManager* singletonPtr_s;
-    };
-}
-
-#endif /* _PawnManager_H__ */
Index: code/trunk/src/orxonox/PlayerManager.cc
===================================================================
--- code/trunk/src/orxonox/PlayerManager.cc	(revision 5771)
+++ 	(revision )
@@ -1,108 +1,0 @@
-/*
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#include "PlayerManager.h"
-
-#include "core/CoreIncludes.h"
-#include "core/GameMode.h"
-#include "Level.h"
-#include "infos/HumanPlayer.h"
-#include "LevelManager.h"
-
-namespace orxonox
-{
-    PlayerManager* PlayerManager::singletonPtr_s = 0;
-
-    PlayerManager::PlayerManager()
-    {
-        RegisterRootObject(PlayerManager);
-
-        this->getConnectedClients();
-    }
-
-    PlayerManager::~PlayerManager()
-    {
-    }
-
-    void PlayerManager::clientConnected(unsigned int clientID)
-    {
-        if (GameMode::isMaster())
-        {
-            if (clientID != 0)
-                COUT(3) << "client connected" << std::endl;
-
-            // create new HumanPlayer instance
-            HumanPlayer* player = new HumanPlayer(0);
-            player->setClientID(clientID);
-
-            // add to clients-map
-            assert(!this->clients_[clientID]);
-            this->clients_[clientID] = player;
-
-            if (LevelManager::getInstancePtr() && LevelManager::getInstance().getActiveLevel())
-                LevelManager::getInstance().getActiveLevel()->playerEntered(player);
-        }
-    }
-
-    void PlayerManager::clientDisconnected(unsigned int clientID)
-    {
-        if (GameMode::isMaster())
-        {
-            COUT(3) << "client disconnected" << std::endl;
-
-            // remove from clients-map
-            PlayerInfo* player = this->clients_[clientID];
-            this->clients_.erase(clientID);
-
-            if (LevelManager::getInstancePtr() && LevelManager::getInstance().getActiveLevel())
-                LevelManager::getInstance().getActiveLevel()->playerLeft(player);
-
-            // delete PlayerInfo instance
-            if (player)
-                delete player;
-        }
-    }
-
-
-    PlayerInfo* PlayerManager::getClient(unsigned int clientID) const
-    {
-        if (GameMode::isMaster())
-        {
-            std::map<unsigned int, PlayerInfo*>::const_iterator it = this->clients_.find(clientID);
-            if (it != this->clients_.end())
-                return it->second;
-        }
-        else
-        {
-            for (ObjectList<PlayerInfo>::iterator it = ObjectList<PlayerInfo>::begin(); it != ObjectList<PlayerInfo>::end(); ++it)
-                if (it->getClientID() == clientID)
-                    return (*it);
-        }
-        return 0;
-    }
-}
Index: code/trunk/src/orxonox/PlayerManager.h
===================================================================
--- code/trunk/src/orxonox/PlayerManager.h	(revision 5771)
+++ 	(revision )
@@ -1,62 +1,0 @@
-/*
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _PlayerManager_H__
-#define _PlayerManager_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include <cassert>
-#include <map>
-#include "util/Singleton.h"
-#include "network/ClientConnectionListener.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport PlayerManager : public Singleton<PlayerManager>, public ClientConnectionListener
-    {
-            friend class Singleton<PlayerManager>;
-        public:
-            PlayerManager();
-            virtual ~PlayerManager();
-
-            PlayerInfo* getClient(unsigned int clientID) const;
-            inline const std::map<unsigned int, PlayerInfo*>& getClients() const
-                { return this->clients_; }
-
-        private:
-            void clientConnected(unsigned int clientID);
-            void clientDisconnected(unsigned int clientID);
-
-            std::map<unsigned int, PlayerInfo*> clients_;
-
-            static PlayerManager* singletonPtr_s;
-    };
-}
-
-#endif /* _PlayerManager_H__ */
Index: code/trunk/src/orxonox/Radar.cc
===================================================================
--- code/trunk/src/orxonox/Radar.cc	(revision 5771)
+++ 	(revision )
@@ -1,216 +1,0 @@
-/*
- *   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:
- *      Reto Grieder
- *   Co-authors:
- *      Felix Schulthess
- *
- */
-
-/**
-@file
-@brief
-*/
-
-#include "Radar.h"
-
-#include <cassert>
-
-//#include "util/Math.h"
-#include "core/ConsoleCommand.h"
-#include "core/ObjectList.h"
-#include "interfaces/RadarListener.h"
-
-namespace orxonox
-{
-    SetConsoleCommand(Radar, cycleNavigationFocus, true).accessLevel(AccessLevel::User);
-    SetConsoleCommand(Radar, releaseNavigationFocus, true).accessLevel(AccessLevel::User);
-
-    Radar* Radar::instance_s = 0;
-
-    Radar::Radar()
-        : focus_(0)
-        , objectTypeCounter_(0)
-    {
-        assert(instance_s == 0);
-        instance_s = this;
-
-        // TODO: make this mapping configurable. Maybe there's a possibility with self configured
-        //       configValues..
-        this->objectTypes_["Asteroid"] = RadarViewable::Dot;
-        this->objectTypes_["SpaceShip"] = RadarViewable::Square;
-        this->objectTypes_["AsdfQwerty"] = RadarViewable::Triangle;
-
-        /*WorldEntity* object;
-        object = new WorldEntity();
-        object->setPosition(2000.0, 0.0, 0.0);
-        addRadarObject(object, ColourValue(0.5, 0, 0, 1));
-        object = new WorldEntity();
-        object->setPosition(0.0, 2000.0, 0.0);
-        addRadarObject(object, ColourValue(0.5, 0, 0, 1));
-        object = new WorldEntity();
-        object->setPosition(0.0, 0.0, 2000.0);
-        addRadarObject(object, ColourValue(0.5, 0, 0, 1));
-        object = new WorldEntity();
-        object->setPosition(10000.0,16000.0,0.0);
-        addRadarObject(object);*/
-
-    }
-
-    Radar::~Radar()
-    {
-        instance_s = 0;
-    }
-
-    const RadarViewable* Radar::getFocus()
-    {
-        return *(this->itFocus_);
-    }
-
-    RadarViewable::Shape Radar::addObjectDescription(const std::string name)
-    {
-        std::map<std::string, RadarViewable::Shape>::iterator it = this->objectTypes_.find(name);
-        if (it == this->objectTypes_.end())
-            return this->objectTypes_[name] = RadarViewable::Square; // default, configure!!
-        else
-            return this->objectTypes_[name];
-    }
-
-
-    void Radar::tick(float dt)
-    {
-        SUPER(Radar, tick, dt);
-
-        if (this->focus_ != *(this->itFocus_))
-        {
-            // focus object was deleted, release focus
-            this->focus_ = 0;
-            this->itFocus_ = 0;
-        }
-
-        for (ObjectList<RadarListener>::iterator itListener = ObjectList<RadarListener>::begin(); itListener; ++itListener)
-        {
-            (*itListener)->radarTick(dt);
-
-            for (ObjectList<RadarViewable>::iterator itElement = ObjectList<RadarViewable>::begin(); itElement; ++itElement)
-            {
-                if ((*itElement)->getRadarVisibility())
-                    if ((*itListener)->getRadarSensitivity() > (*itElement)->getRadarObjectCamouflage())
-                        (*itListener)->displayObject(*itElement, *itElement == this->focus_);
-            }
-        }
-    }
-
-    void Radar::cycleFocus()
-    {
-        if (ObjectList<RadarViewable>::begin() == 0)
-        {
-            // list is empty
-            this->itFocus_ = 0;
-            this->focus_ = 0;
-        }
-/*
-        else if (this->owner_)
-        {
-            Vector3 localPosition = this->owner_->getPosition();
-            Vector3 targetPosition = localPosition;
-            if (*(this->itFocus_))
-                targetPosition = this->itFocus_->getRVWorldPosition();
-
-            // find the closed object further away than targetPosition
-            float currentDistance = localPosition.squaredDistance(targetPosition);
-            float nextDistance = FLT_MAX;
-            float minimumDistance = FLT_MAX;
-            ObjectList<RadarViewable>::iterator itFallback = 0;
-
-            for (ObjectList<RadarViewable>::iterator it = ObjectList<RadarViewable>::begin(); it; ++it)
-            {
-                if (*it == static_cast<RadarViewable*>(this)->owner_)
-                    continue;
-
-                float targetDistance = localPosition.squaredDistance((*it)->getRVWorldPosition());
-                if (targetDistance > currentDistance && targetDistance < nextDistance)
-                {
-                    this->itFocus_ = it;
-                    nextDistance = targetDistance;
-                }
-                if (targetDistance < minimumDistance)
-                {
-                    itFallback = it;
-                    minimumDistance = targetDistance;
-                }
-            }
-
-            if (nextDistance == FLT_MAX)
-            {
-                // we already had the furthest object
-                this->itFocus_ = itFallback;
-                this->focus_ = *itFallback;
-            }
-            else
-            {
-                this->focus_ = *(this->itFocus_);
-            }
-        }
-*/
-    }
-
-    void Radar::releaseFocus()
-    {
-        this->itFocus_ = 0;
-        this->focus_ = 0;
-    }
-
-    void Radar::listObjects() const
-    {
-        COUT(3) << "List of RadarObjects:\n";
-        // iterate through all Radar Objects
-        unsigned int i = 0;
-        for (ObjectList<RadarViewable>::iterator it = ObjectList<RadarViewable>::begin(); it; ++it, ++i)
-        {
-            COUT(3) << i++ << ": " << (*it)->getRVWorldPosition() << std::endl;
-        }
-    }
-
-
-    /*static*/ Radar& Radar::getInstance()
-    {
-        assert(instance_s);
-        return *instance_s;
-    }
-
-    /*static*/ void Radar::cycleNavigationFocus()
-    {
-        // avoid using getInstance because of the assert().
-        // User might call this fuction even if HUDNavigation doesn't exist.
-        if (instance_s)
-            instance_s->cycleFocus();
-    }
-
-    /*static*/ void Radar::releaseNavigationFocus()
-    {
-        // avoid using getInstance because of the assert().
-        // User might call this fuction even if HUDNavigation doesn't exist.
-        if (instance_s)
-            instance_s->releaseFocus();
-    }
-}
Index: code/trunk/src/orxonox/Radar.h
===================================================================
--- code/trunk/src/orxonox/Radar.h	(revision 5771)
+++ 	(revision )
@@ -1,92 +1,0 @@
-/*
- *   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:
- *      Reto Grieder
- *   Co-authors:
- *      Felix Schulthess
- *
- */
-
-/**
-@file
-@brief
-*/
-
-#ifndef _Radar_H__
-#define _Radar_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include <map>
-#include <string>
-
-#include "core/ObjectListIterator.h"
-#include "interfaces/RadarViewable.h"
-#include "tools/interfaces/Tickable.h"
-
-namespace orxonox
-{
-    /**
-    @brief This class merely ensures that no one can inherit from Radar.
-    */
-    class _OrxonoxExport RadarBase
-    {
-    private:
-        friend class Radar;
-        RadarBase() { }
-    };
-
-    class _OrxonoxExport Radar : public Tickable, private virtual RadarBase
-    {
-    public:
-        Radar();
-        ~Radar();
-
-        virtual void tick(float dt);
-
-        const RadarViewable* getFocus();
-        RadarViewable::Shape addObjectDescription(const std::string name);
-
-        void listObjects() const;
-
-        static Radar& getInstance();
-        static Radar* getInstancePtr() { return instance_s; }
-
-        static void cycleNavigationFocus();
-        static void releaseNavigationFocus();
-
-    private:
-        Radar(Radar& instance);
-
-        void releaseFocus();
-        void updateFocus();
-        void cycleFocus();
-
-        ObjectListIterator<RadarViewable> itFocus_;
-        RadarViewable* focus_;
-        std::map<std::string, RadarViewable::Shape> objectTypes_;
-        int objectTypeCounter_;
-
-        static Radar* instance_s;
-    };
-}
-#endif /* _Radar_H__ */
Index: code/trunk/src/orxonox/Scene.cc
===================================================================
--- code/trunk/src/orxonox/Scene.cc	(revision 5771)
+++ 	(revision )
@@ -1,345 +1,0 @@
-/*
- *   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:
- *      Fabian 'x3n' Landau
- *      Reto Grieder (physics)
- *   Co-authors:
- *      ...
- *
- */
-
-#include "Scene.h"
-
-#include <OgreRoot.h>
-#include <OgreSceneManager.h>
-#include <OgreSceneManagerEnumerator.h>
-#include <OgreSceneNode.h>
-
-#include <BulletCollision/BroadphaseCollision/btAxisSweep3.h>
-#include <BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h>
-#include <BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h>
-#include <BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h>
-
-#include "core/CoreIncludes.h"
-#include "core/GameMode.h"
-#include "core/XMLPort.h"
-#include "tools/BulletConversions.h"
-#include "worldentities/WorldEntity.h"
-
-namespace orxonox
-{
-    CreateFactory(Scene);
-
-    Scene::Scene(BaseObject* creator) : BaseObject(creator), Synchronisable(creator)
-    {
-        RegisterObject(Scene);
-
-        this->setScene(this);
-        this->bShadows_ = true;
-
-        if (GameMode::showsGraphics())
-        {
-            assert(Ogre::Root::getSingletonPtr());
-            this->sceneManager_ = Ogre::Root::getSingleton().createSceneManager(Ogre::ST_GENERIC);
-            this->rootSceneNode_ = this->sceneManager_->getRootSceneNode();
-        }
-        else
-        {
-            // create a dummy SceneManager of our own since we don't have Ogre::Root.
-            this->sceneManager_ = new Ogre::DefaultSceneManager("");
-            this->rootSceneNode_ = this->sceneManager_->getRootSceneNode();
-        }
-
-        // No physics yet, XMLPort will do that.
-        const int defaultMaxWorldSize = 100000;
-        this->negativeWorldRange_ = Vector3::UNIT_SCALE * -defaultMaxWorldSize;
-        this->positiveWorldRange_ = Vector3::UNIT_SCALE *  defaultMaxWorldSize;
-        this->gravity_ = Vector3::ZERO;
-        this->physicalWorld_   = 0;
-        this->solver_          = 0;
-        this->dispatcher_      = 0;
-        this->collisionConfig_ = 0;
-        this->broadphase_      = 0;
-
-        this->registerVariables();
-    }
-
-    Scene::~Scene()
-    {
-        if (this->isInitialized())
-        {
-            if (GameMode::showsGraphics())
-                Ogre::Root::getSingleton().destroySceneManager(this->sceneManager_);
-            else
-                delete this->sceneManager_;
-
-            this->setPhysicalWorld(false);
-        }
-    }
-
-    void Scene::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(Scene, XMLPort, xmlelement, mode);
-
-        XMLPortParam(Scene, "skybox", setSkybox, getSkybox, xmlelement, mode);
-        XMLPortParam(Scene, "ambientlight", setAmbientLight, getAmbientLight, xmlelement, mode).defaultValues(ColourValue(0.2f, 0.2f, 0.2f, 1.0f));
-        XMLPortParam(Scene, "shadow", setShadow, getShadow, xmlelement, mode).defaultValues(true);
-
-        XMLPortParam(Scene, "gravity", setGravity, getGravity, xmlelement, mode);
-        XMLPortParam(Scene, "negativeWorldRange", setNegativeWorldRange, getNegativeWorldRange, xmlelement, mode);
-        XMLPortParam(Scene, "positiveWorldRange", setPositiveWorldRange, getPositiveWorldRange, xmlelement, mode);
-        XMLPortParam(Scene, "hasPhysics", setPhysicalWorld, hasPhysics, xmlelement, mode).defaultValues(true);
-
-        XMLPortObjectExtended(Scene, BaseObject, "", addObject, getObject, xmlelement, mode, true, false);
-    }
-
-    void Scene::registerVariables()
-    {
-        registerVariable(this->skybox_,             VariableDirection::ToClient, new NetworkCallback<Scene>(this, &Scene::networkcallback_applySkybox));
-        registerVariable(this->ambientLight_,       VariableDirection::ToClient, new NetworkCallback<Scene>(this, &Scene::networkcallback_applyAmbientLight));
-        registerVariable(this->negativeWorldRange_, VariableDirection::ToClient, new NetworkCallback<Scene>(this, &Scene::networkcallback_negativeWorldRange));
-        registerVariable(this->positiveWorldRange_, VariableDirection::ToClient, new NetworkCallback<Scene>(this, &Scene::networkcallback_positiveWorldRange));
-        registerVariable(this->gravity_,            VariableDirection::ToClient, new NetworkCallback<Scene>(this, &Scene::networkcallback_gravity));
-        registerVariable(this->bHasPhysics_,        VariableDirection::ToClient, new NetworkCallback<Scene>(this, &Scene::networkcallback_hasPhysics));
-        registerVariable(this->bShadows_,           VariableDirection::ToClient, new NetworkCallback<Scene>(this, &Scene::networkcallback_applyShadows));
-    }
-
-    void Scene::setNegativeWorldRange(const Vector3& range)
-    {
-        if (range.length() < 10.0f)
-        {
-            CCOUT(2) << "Warning: Setting the negative world range to a very small value: "
-                     << multi_cast<std::string>(range) << std::endl;
-        }
-        if (this->hasPhysics())
-        {
-            CCOUT(2) << "Warning: Attempting to set the physical world range at run time. "
-                     << "This causes a complete physical reload which might take some time." << std::endl;
-            this->setPhysicalWorld(false);
-            this->negativeWorldRange_ = range;
-            this->setPhysicalWorld(true);
-        }
-        else
-            this->negativeWorldRange_ = range;
-    }
-
-    void Scene::setPositiveWorldRange(const Vector3& range)
-    {
-        if (range.length() < 10.0f)
-        {
-            CCOUT(2) << "Warning: Setting the positive world range to a very small value: "
-                     << multi_cast<std::string>(range) << std::endl;
-        }
-        if (this->hasPhysics())
-        {
-            CCOUT(2) << "Warning: Attempting to set the physical world range at run time. "
-                     << "This causes a complete physical reload which might take some time." << std::endl;
-            this->setPhysicalWorld(false);
-            this->positiveWorldRange_ = range;
-            this->setPhysicalWorld(true);
-        }
-        else
-            this->positiveWorldRange_ = range;
-    }
-
-    void Scene::setGravity(const Vector3& gravity)
-    {
-        this->gravity_ = gravity;
-        if (this->hasPhysics())
-            this->physicalWorld_->setGravity(multi_cast<btVector3>(this->gravity_));
-    }
-
-    void Scene::setPhysicalWorld(bool wantPhysics)
-    {
-        this->bHasPhysics_ = wantPhysics;
-        if (wantPhysics && !hasPhysics())
-        {
-            // Note: These are all little known default classes and values.
-            //       It would require further investigation to properly dertermine the right choices.
-            this->broadphase_      = new bt32BitAxisSweep3(
-                multi_cast<btVector3>(this->negativeWorldRange_), multi_cast<btVector3>(this->positiveWorldRange_));
-            this->collisionConfig_ = new btDefaultCollisionConfiguration();
-            this->dispatcher_      = new btCollisionDispatcher(this->collisionConfig_);
-            this->solver_          = new btSequentialImpulseConstraintSolver();
-
-            this->physicalWorld_   = new btDiscreteDynamicsWorld(this->dispatcher_, this->broadphase_, this->solver_, this->collisionConfig_);
-            this->physicalWorld_->setGravity(multi_cast<btVector3>(this->gravity_));
-
-            // also set the collision callback variable.
-            // Note: This is a global variable which we assign a static function.
-            // TODO: Check whether this (or anything about Bullet) works with multiple physics engine instances.
-            gContactAddedCallback = &Scene::collisionCallback;
-        }
-        else if (!wantPhysics && hasPhysics())
-        {
-            // Remove all WorldEntities and shove them to the queue since they would still like to be in a physical world.
-            for (std::set<WorldEntity*>::const_iterator it = this->physicalObjects_.begin();
-                it != this->physicalObjects_.end(); ++it)
-            {
-                this->physicalWorld_->removeRigidBody((*it)->physicalBody_);
-                this->physicalObjectQueue_.insert(*it);
-            }
-            this->physicalObjects_.clear();
-
-            delete this->physicalWorld_;
-            delete this->solver_;
-            delete this->dispatcher_;
-            delete this->collisionConfig_;
-            delete this->broadphase_;
-            this->physicalWorld_   = 0;
-            this->solver_          = 0;
-            this->dispatcher_      = 0;
-            this->collisionConfig_ = 0;
-            this->broadphase_      = 0;
-        }
-    }
-
-    void Scene::tick(float dt)
-    {
-        if (!GameMode::showsGraphics())
-        {
-            // We need to update the scene nodes if we don't render
-            this->rootSceneNode_->_update(true, false);
-        }
-        if (this->hasPhysics())
-        {
-            // TODO: This here is bad practice! It will slow down the first tick() by ages.
-            //       Rather have an initialise() method as well, called by the Level after everything has been loaded.
-            if (this->physicalObjectQueue_.size() > 0)
-            {
-                // Add all scheduled WorldEntities
-                for (std::set<WorldEntity*>::const_iterator it = this->physicalObjectQueue_.begin();
-                    it != this->physicalObjectQueue_.end(); ++it)
-                {
-                    this->physicalWorld_->addRigidBody((*it)->physicalBody_);
-                    this->physicalObjects_.insert(*it);
-                }
-                this->physicalObjectQueue_.clear();
-            }
-
-            // Note: 60 means that Bullet will do physics correctly down to 1 frames per seconds.
-            //       Under that mark, the simulation will "loose time" and get unusable.
-            physicalWorld_->stepSimulation(dt, 60);
-        }
-    }
-
-    void Scene::setSkybox(const std::string& skybox)
-    {
-        if (GameMode::showsGraphics() && this->sceneManager_)
-            this->sceneManager_->setSkyBox(true, skybox);
-
-        this->skybox_ = skybox;
-    }
-
-    void Scene::setAmbientLight(const ColourValue& colour)
-    {
-        if (GameMode::showsGraphics() && this->sceneManager_)
-            this->sceneManager_->setAmbientLight(colour);
-
-        this->ambientLight_ = colour;
-    }
-
-    void Scene::setShadow(bool bShadow)
-    {
-        if (GameMode::showsGraphics() && this->sceneManager_)
-        {
-            if (bShadow)
-                this->sceneManager_->setShadowTechnique(Ogre::SHADOWTYPE_STENCIL_ADDITIVE);
-            else
-                this->sceneManager_->setShadowTechnique(Ogre::SHADOWTYPE_NONE);
-        }
-
-        this->bShadows_ = bShadow;
-    }
-
-    void Scene::addObject(BaseObject* object)
-    {
-        this->objects_.push_back(object);
-        object->setScene(this);
-    }
-
-    BaseObject* Scene::getObject(unsigned int index) const
-    {
-        unsigned int i = 0;
-        for (std::list<BaseObject*>::const_iterator it = this->objects_.begin(); it != this->objects_.end(); ++it)
-        {
-            if (i == index)
-                return (*it);
-            ++i;
-        }
-        return 0;
-    }
-
-    void Scene::addPhysicalObject(WorldEntity* object)
-    {
-        if (object)
-        {
-            std::set<WorldEntity*>::iterator it = this->physicalObjects_.find(object);
-            if (it != this->physicalObjects_.end())
-                return;
-
-            this->physicalObjectQueue_.insert(object);
-        }
-    }
-
-    void Scene::removePhysicalObject(WorldEntity* object)
-    {
-        // check queue first
-        std::set<WorldEntity*>::iterator it = this->physicalObjectQueue_.find(object);
-        if (it != this->physicalObjectQueue_.end())
-        {
-            this->physicalObjectQueue_.erase(it);
-            return;
-        }
-
-        it = this->physicalObjects_.find(object);
-        if (it == this->physicalObjects_.end())
-            return;
-        this->physicalObjects_.erase(it);
-
-        if (this->hasPhysics())
-            this->physicalWorld_->removeRigidBody(object->physicalBody_);
-    }
-
-    /*static*/ bool Scene::collisionCallback(btManifoldPoint& cp, const btCollisionObject* colObj0, int partId0,
-                                             int index0, const btCollisionObject* colObj1, int partId1, int index1)
-    {
-        // get the WorldEntity pointers
-        WorldEntity* object0 = static_cast<WorldEntity*>(colObj0->getUserPointer());
-        assert(orxonox_cast<WorldEntity*>(object0));
-        WorldEntity* object1 = static_cast<WorldEntity*>(colObj1->getUserPointer());
-        assert(orxonox_cast<WorldEntity*>(object1));
-
-        // false means that bullet will assume we didn't modify the contact
-        bool modified = false;
-        if (object0->isCollisionCallbackActive())
-        {
-            modified |= object0->collidesAgainst(object1, cp);
-            if (object1->isCollisionCallbackActive())
-                modified |= object1->collidesAgainst(object0, cp);
-        }
-        else
-            modified |= object1->collidesAgainst(object0, cp);
-
-        return modified;
-    }
-}
Index: code/trunk/src/orxonox/Scene.h
===================================================================
--- code/trunk/src/orxonox/Scene.h	(revision 5771)
+++ 	(revision )
@@ -1,149 +1,0 @@
-/*
- *   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:
- *      Fabian 'x3n' Landau
- *      Reto Grieder (physics)
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _Scene_H__
-#define _Scene_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include <list>
-#include <set>
-#include <string>
-
-#include "util/Math.h"
-#include "util/OgreForwardRefs.h"
-#include "core/BaseObject.h"
-#include "network/synchronisable/Synchronisable.h"
-#include "tools/interfaces/Tickable.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport Scene : public BaseObject, public Synchronisable, public Tickable
-    {
-        public:
-            Scene(BaseObject* creator);
-            virtual ~Scene();
-
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            void registerVariables();
-
-            inline Ogre::SceneManager* getSceneManager() const
-                { return this->sceneManager_; }
-            inline Ogre::SceneNode* getRootSceneNode() const
-                { return this->rootSceneNode_; }
-
-            void setSkybox(const std::string& skybox);
-            inline const std::string& getSkybox() const
-                { return this->skybox_; }
-
-            void setAmbientLight(const ColourValue& colour);
-            inline const ColourValue& getAmbientLight() const
-                { return this->ambientLight_; }
-
-            void setShadow(bool bShadow);
-            inline bool getShadow() const
-                { return this->bShadows_; }
-
-            virtual void tick(float dt);
-
-        private:
-            void addObject(BaseObject* object);
-            BaseObject* getObject(unsigned int index) const;
-
-            void networkcallback_applySkybox()
-                { this->setSkybox(this->skybox_); }
-            void networkcallback_applyAmbientLight()
-                { this->setAmbientLight(this->ambientLight_); }
-            void networkcallback_applyShadows()
-                { this->setShadow(this->bShadows_); }
-
-            Ogre::SceneManager*      sceneManager_;
-            Ogre::SceneNode*         rootSceneNode_;
-
-            std::string              skybox_;
-            ColourValue              ambientLight_;
-            std::list<BaseObject*>   objects_;
-            bool                     bShadows_;
-
-
-        /////////////
-        // Physics //
-        /////////////
-
-        public:
-            inline bool hasPhysics()
-                { return this->physicalWorld_ != 0; }
-            void setPhysicalWorld(bool wantsPhysics);
-
-            void setNegativeWorldRange(const Vector3& range);
-            inline const Vector3& getNegativeWorldRange() const
-                { return this->negativeWorldRange_; }
-
-            void setPositiveWorldRange(const Vector3& range);
-            inline const Vector3& getPositiveWorldRange() const
-                { return this->positiveWorldRange_; }
-
-            void setGravity(const Vector3& gravity);
-            inline const Vector3& getGravity() const
-                { return this->gravity_; }
-
-            void addPhysicalObject(WorldEntity* object);
-            void removePhysicalObject(WorldEntity* object);
-
-        private:
-            inline void networkcallback_hasPhysics()
-                { this->setPhysicalWorld(this->bHasPhysics_); }
-            inline void networkcallback_negativeWorldRange()
-                { this->setNegativeWorldRange(this->negativeWorldRange_); }
-            inline void networkcallback_positiveWorldRange()
-                { this->setPositiveWorldRange(this->positiveWorldRange_); }
-            inline void networkcallback_gravity()
-                { this->setGravity(this->gravity_); }
-
-            // collision callback from bullet
-            static bool collisionCallback(btManifoldPoint& cp, const btCollisionObject* colObj0, int partId0,
-                                          int index0, const btCollisionObject* colObj1, int partId1, int index1);
-
-            // Bullet objects
-            btDiscreteDynamicsWorld*             physicalWorld_;
-            bt32BitAxisSweep3*                   broadphase_;
-            btDefaultCollisionConfiguration*     collisionConfig_;
-            btCollisionDispatcher*               dispatcher_;
-            btSequentialImpulseConstraintSolver* solver_;
-
-            std::set<WorldEntity*>               physicalObjectQueue_;
-            std::set<WorldEntity*>               physicalObjects_;
-            bool                                 bHasPhysics_;
-            Vector3                              negativeWorldRange_;
-            Vector3                              positiveWorldRange_;
-            Vector3                              gravity_;
-    };
-}
-
-#endif /* _Scene_H__ */
Index: code/trunk/src/orxonox/Test.cc
===================================================================
--- code/trunk/src/orxonox/Test.cc	(revision 5771)
+++ 	(revision )
@@ -1,145 +1,0 @@
-/*
- *   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:
- *      Oli Scheuss
- *   Co-authors:
- *      ...
- *
- */
-
-#include "core/CoreIncludes.h"
-#include "core/ConfigValueIncludes.h"
-#include "core/ConsoleCommand.h"
-#include "network/NetworkFunction.h"
-#include "Test.h"
-#include "util/MultiType.h"
-
-namespace orxonox
-{
-	CreateFactory ( Test );
-  
-  SetConsoleCommand(Test, printV1, true).accessLevel(AccessLevel::User);
-  SetConsoleCommand(Test, printV2, true).accessLevel(AccessLevel::User);
-  SetConsoleCommand(Test, printV3, true).accessLevel(AccessLevel::User);
-  SetConsoleCommand(Test, printV4, true).accessLevel(AccessLevel::User);
-  SetConsoleCommand(Test, call, true).accessLevel(AccessLevel::User);
-  SetConsoleCommand(Test, call2, true).accessLevel(AccessLevel::User);
-  
-  
-  //void=* aaaaa = copyPtr<sizeof(&Test::printV1)>( &NETWORK_FUNCTION_POINTER, &Test::printV1 );
-  //void* NETWORK_FUNCTION_TEST_B = memcpy(&NETWORK_FUNCTION_POINTER, &a, sizeof(a));
-//   NetworkFunctionBase* NETWORK_FUNCTION_TEST_C = new NetworkFunctionStatic( createFunctor(&Test::printV1), "bla", NETWORK_FUNCTION_POINTER );
-  
-  registerStaticNetworkFunction( &Test::printV1 );
-  registerMemberNetworkFunction( Test, checkU1 );
-  registerMemberNetworkFunction( Test, printBlaBla );
-  
-  Test* Test::instance_ = 0;
-
-	Test::Test(BaseObject* creator) : BaseObject(creator), Synchronisable(creator)
-	{
-    assert(instance_==0);
-    instance_=this;
-		RegisterObject ( Test );
-    setConfigValues();
-    registerVariables();
-		setObjectMode(0x3);
-	}
-
-	Test::~Test()
-	{
-    instance_=0;
-	}
-
-	void Test::setConfigValues()
-	{
-		SetConfigValue ( u1, 1 )/*.callback ( this, &Test::checkV1 )*/;
-    SetConfigValue ( u2, 2 )/*.callback ( this, &Test::checkV2 )*/;
-    SetConfigValue ( u3, 3 )/*.callback ( this, &Test::checkV3 )*/;
-    SetConfigValue ( u4, 4 )/*.callback ( this, &Test::checkV4 )*/;
-    
-    SetConfigValue ( s1, 1 )/*.callback ( this, &Test::checkV1 )*/;
-    SetConfigValue ( s2, 2 )/*.callback ( this, &Test::checkV2 )*/;
-    SetConfigValue ( s3, 3 )/*.callback ( this, &Test::checkV3 )*/;
-    SetConfigValue ( s4, 4 )/*.callback ( this, &Test::checkV4 )*/;
-	}
-
-
-  void Test::registerVariables()
-  {
-    registerVariable ( u1, variableDirection::toclient, new NetworkCallback<Test> ( this, &Test::checkU1 ));
-    registerVariable ( u2, variableDirection::toserver, new NetworkCallback<Test> ( this, &Test::checkU2 ));
-    registerVariable ( u3, variableDirection::serverMaster, new NetworkCallback<Test> ( this, &Test::checkU3 ), true );
-    registerVariable ( u4, variableDirection::clientMaster, new NetworkCallback<Test> ( this, &Test::checkU4 ), true );
-    
-    registerVariable ( s1, variableDirection::toclient, new NetworkCallback<Test> ( this, &Test::checkS1 ));
-    registerVariable ( s2, variableDirection::toserver, new NetworkCallback<Test> ( this, &Test::checkS2 ));
-    registerVariable ( s3, variableDirection::serverMaster, new NetworkCallback<Test> ( this, &Test::checkS3 ), true );
-    registerVariable ( s4, variableDirection::clientMaster, new NetworkCallback<Test> ( this, &Test::checkS4 ), true );
-  }
-  
-  void Test::call(unsigned int clientID)
-  {
-    callStaticNetworkFunction( &Test::printV1, clientID );
-    callStaticNetworkFunction( &Test::printV1, clientID );
-  }
-  
-  void Test::call2(unsigned int clientID, std::string s1, std::string s2, std::string s3, std::string s4)
-  {
-    callMemberNetworkFunction( Test, printBlaBla, this->getObjectID(), clientID, s1, s2, s3, s4, s4 );
-  }
-  
-  void Test::tick(float dt)
-  {
-//     std::string str1 = "blub";
-//     //MultiType mt1(std::string("blub"));
-//     MultiType mt1(str1);
-//     uint8_t* mem = new uint8_t[mt1.getNetworkSize()];
-//     uint8_t* temp = mem;
-//     mt1.exportData( temp );
-//     assert( temp-mem == mt1.getNetworkSize() );
-//     MultiType mt2;
-//     temp = mem;
-//     mt2.importData( temp );
-//     assert( temp-mem == mt1.getNetworkSize() );
-//     COUT(0) << mt2 << endl;
-    if(!Core::isMaster())
-      call2(0, "bal", "a", "n", "ce");
-//       callMemberNetworkFunction( Test, checkU1, this->getObjectID(), 0 );
-  }
-  
-  void Test::printBlaBla(std::string s1, std::string s2, std::string s3, std::string s4, std::string s5)
-  {
-    COUT(0) << s1 << s2 << s3 << s4 << s5 << endl;
-  }
-  
-  void Test::checkU1(){ COUT(1) << "U1 changed: " << u1 << std::endl; }
-  void Test::checkU2(){ COUT(1) << "U2 changed: " << u2 << std::endl; }
-  void Test::checkU3(){ COUT(1) << "U3 changed: " << u3 << std::endl; }
-  void Test::checkU4(){ COUT(1) << "U4 changed: " << u4 << std::endl; }
-
-  void Test::checkS1(){ COUT(1) << "S1 changed: " << s1 << std::endl; }
-  void Test::checkS2(){ COUT(1) << "S2 changed: " << s2 << std::endl; }
-  void Test::checkS3(){ COUT(1) << "S3 changed: " << s3 << std::endl; }
-  void Test::checkS4(){ COUT(1) << "S4 changed: " << s4 << std::endl; }
-
-}
Index: code/trunk/src/orxonox/Test.h
===================================================================
--- code/trunk/src/orxonox/Test.h	(revision 5771)
+++ 	(revision )
@@ -1,100 +1,0 @@
-/*
- *   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:
- *      Oli Scheuss
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _Test_H__
-#define _Test_H__
-
-#include "OrxonoxPrereqs.h"
-#include "core/BaseObject.h"
-#include "network/synchronisable/Synchronisable.h"
-#include "tools/interfaces/Tickable.h"
-
-
-typedef int TYPE;
-typedef unsigned int UTYPE;
-
-
-namespace orxonox
-{
-  class _OrxonoxExport Test: public BaseObject, public Synchronisable, public Tickable
-  {
-    public:
-      Test(BaseObject* creator);
-      virtual ~Test();
-
-      void setConfigValues();
-      void registerVariables();
-
-      static void call(unsigned int clientID);
-      void call2(unsigned int clientID, std::string s1, std::string s2, std::string s3, std::string s4);
-      virtual void tick(float dt);
-
-
-      //unsigned functions
-      void setU1(UTYPE value){ u1 = value; }
-      void setU2(UTYPE value){ u2 = value; }
-      void setU3(UTYPE value){ u3 = value; }
-      void setU4(UTYPE value){ u4 = value; }
-      void checkU1();
-      void checkU2();
-      void checkU3();
-      void checkU4();
-
-      //signed functions
-      void setS1(TYPE value){ s1 = value; }
-      void setS2(TYPE value){ s2 = value; }
-      void setS3(TYPE value){ s3 = value; }
-      void setS4(TYPE value){ s4 = value; }
-      void checkS1();
-      void checkS2();
-      void checkS3();
-      void checkS4();
-
-      static void printV1(){ instance_->checkU1(); }
-      static void printV2(){ instance_->checkU2(); }
-      static void printV3(){ instance_->checkU3(); }
-      static void printV4(){ instance_->checkU4(); }
-
-      void printBlaBla(std::string s1, std::string s2, std::string s3, std::string s4, std::string s5);
-
-    private:
-      UTYPE u1;
-      UTYPE u2;
-      UTYPE u3;
-      UTYPE u4;
-
-      TYPE s1;
-      TYPE s2;
-      TYPE s3;
-      TYPE s4;
-
-      static Test* instance_;
-  };
-}
-
-#endif /* _Test_H__ */
