Index: de/branches/Presentation_HS17/data/levels/ArrowLevel.oxw
===================================================================
--- /code/branches/Presentation_HS17/data/levels/ArrowLevel.oxw	(revision 11689)
+++ 	(revision )
@@ -1,78 +1,0 @@
-<LevelInfo
- name = "ArrowLevel"
- description = "A level to show the funtionality of the Waypoint Arrow."
- tags = "test"
- screenshot = "emptylevel.png"
-/>
-
-<?lua
-  include("stats.oxo")
-  include("HUDTemplates3.oxo")
-  include("templates/lodInformation.oxt")
-  include("templates/HeavyCruiser.oxt")
-?>
-
-<?lua
-  include("templates/spaceshipEscort.oxt")
-  include("templates/endurancetest_template.oxt")
-  include("templates/endurancetest_template.oxt")
-  include("templates/spaceshipPirate.oxt")
-  include("templates/spaceshipAssff.oxt")
-
-
-?>
-
-<Level>
-  <templates>
-    <Template link=lodtemplate_default />
-  </templates>
-  <?lua include("includes/notifications.oxi") ?>
-
-  <NotificationQueueCEGUI
-    name="narrative"
-    targets="simpleNotification"
-    size=3
-    displayTime=3.9
-    position="0.2, 0, 0.1, 0"
-    fontSize="23"
-    fontColor="0.3, 1, 0.2, 0.8"
-    alignment="HorzCentred"
-    displaySize="0.6, 0, 0, 0"
-    />
-
-   <Scene
-   ambientlight = "0.5, 0.5, 0.5"
-   skybox       = "Orxonox/Starbox"
-  >
-
-
-    <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0" />
-
-
-    
-    <SpawnPoint position="50,0,0" direction="1,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff />
-
-
-    
-    
-    <Arrow>
-      <attached>
-       <Model scale="10" mesh="arrow.mesh"/>
-      </attached>
-    </Arrow>
-
-<ArrowController accuracy = 2000>
-      <gpspoints>
-        <Model mesh="cube.mesh" scale=8 position="100,100,100"/>
-        <Model mesh="cube.mesh" scale=8 position="400,200,187"/>
-        <Model mesh="cube.mesh" scale=8 position="-200,-500,615"/>
-        <Model mesh="cube.mesh" scale=8 position="0,0,0"/>      
-      </gpspoints>
-        </ArrowController>
-
-
-
-
-  </Scene>
-</Level>
-
Index: de/branches/Presentation_HS17/data/levels/scriptableControllerTest.oxw
===================================================================
--- /code/branches/Presentation_HS17/data/levels/scriptableControllerTest.oxw	(revision 11689)
+++ 	(revision )
@@ -1,42 +1,0 @@
-<LevelInfo
- name = "scriptableControllerTest"
- description = "A level with absolutely nothing in it."
- tags = "test"
- screenshot = "emptylevel.png"
-/>
-
-<?lua
-  include("stats.oxo")
-  include("HUDTemplates3.oxo")
-  include("templates/lodInformation.oxt")
-  include("templates/HeavyCruiser.oxt")
-?>
-
-<?lua
-  include("templates/spaceshipEscort.oxt")
-  include("templates/endurancetest_template.oxt")
-?>
-
-<Level script="scripts/scriptableControllerTest.lua">
-  <templates>
-    <Template link=lodtemplate_default />
-  </templates>
-  <?lua include("includes/notifications.oxi") ?>
-
-  <Scene
-    ambientlight = "0.8, 0.8, 0.8"
-    skybox       = "Orxonox/Starbox"
-  >
-
-    <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0"/>
-    <SpawnPoint team=0 position="-200,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipescort />
-
-    <ModularSpaceShip id="Station" velocity= "0,0,0" position="50000000,0,0" lookat= "0,0,0" health="500" maxhealth="500" initialhealth="500">
-      <templates>
-        <Template link=endurance />
-      </templates>
-    </ModularSpaceShip>
-    
-  </Scene>
-</Level>
-
Index: /code/branches/Presentation_HS17/data/overlays/HUDPickupTemplate.oxo
===================================================================
--- /code/branches/Presentation_HS17/data/overlays/HUDPickupTemplate.oxo	(revision 11689)
+++ /code/branches/Presentation_HS17/data/overlays/HUDPickupTemplate.oxo	(revision 11690)
@@ -92,5 +92,5 @@
      correctaspect = true
      iconmaterial  = "Orxonox/BarIconSpeed"
-    >
+     >
       <BarColour position = 0.0 colour = "0.7,0.5,0.2" />
       <BarColour position = 0.5 colour = "0.2,0.7,0.2" />
@@ -193,4 +193,5 @@
     />
 
+
     <HUDTimer
      name     = "Timer"
Index: /code/branches/Presentation_HS17/data/overlays/HUDTemplate_test.oxo
===================================================================
--- /code/branches/Presentation_HS17/data/overlays/HUDTemplate_test.oxo	(revision 11690)
+++ /code/branches/Presentation_HS17/data/overlays/HUDTemplate_test.oxo	(revision 11690)
@@ -0,0 +1,226 @@
+<!--
+<Template name="defaultHUD">
+  <OverlayGroup name = "defaultHUD" scale = "1, 1">
+    <ChatOverlay
+     name     = "chat"
+     position = "0.03, 0.5"
+     font     = "VeraMono"
+     caption  = ""
+     textsize = 0.025
+    />
+
+    <GametypeStatus
+     name     = "state"
+     position = "0.5, 0.85"
+     font     = "VeraMono"
+     textsize = 0.05
+     colour   = "1.0, 1.0, 0.0, 0.8"
+     align    = "center"
+    />
+  </OverlayGroup>
+</Template>
+-->
+
+<Template name="spectatorhud">
+  <OverlayGroup name = "spectatorhud" scale = "1, 1">
+  </OverlayGroup>
+</Template>
+
+<Template name="rockethud">
+  <OverlayGroup name = "rockethud" scale = "1, 1">
+    <HUDRocketFuelBar
+     name          = "RocketFuelBar1"
+     background    = "Orxonox/BarBackground"
+     size          = "0.40, 0.04"
+     position      = "0.0 , 1.0 "
+     pickpoint     = "0, 1"
+     correctaspect = true
+     iconmaterial  = "Orxonox/BarIconFuel"
+    >
+      <BarColour position = 0.0 colour = "0.7,0.2,0.2" />
+      <BarColour position = 0.5 colour = "0.7,0.7,0.2" />
+      <BarColour position = 1.0 colour = "0.2,0.7,0.2" />
+    </HUDRocketFuelBar>
+  </OverlayGroup>
+</Template>
+
+<Template name="spaceshiphud">
+  <OverlayGroup name = "spaceshiphud" scale = "1, 1">
+    <Map />
+
+    <HUDHealthBar
+     name              = "HealthBar1"
+     background        = "Orxonox/HealthBarBackground"
+     size              = "0.40, 0.08"
+     position          = "0.0 , 0.85 "
+     pickpoint         = "0, 1"
+     bartexture        = "healthbar_bar.png"
+     textfont          = "VeraMono"
+     textusebarcolour  = true
+     textscale          = 0.4
+     textoffset        = "0.325, -0.825"
+     textpickpoint     = "0, 0"
+     textalign         = "right"
+     correctaspect     = true
+     iconmaterial      = "Orxonox/BarIconHealth"
+    >
+      <BarColour position = 0.0 colour = "0.7,0.2,0.2" />
+      <BarColour position = 0.5 colour = "0.7,0.7,0.2" />
+      <BarColour position = 1.0 colour = "0.2,0.7,0.2" />
+    </HUDHealthBar>
+
+    <HUDShieldBar
+     name          = "ShieldBar1"
+     background    = "Orxonox/BarBackground"
+     size          = "0.40, 0.04"
+     position      = "0.0 , 0.9 "
+     pickpoint     = "0, 1"
+     correctaspect = true
+     iconmaterial  = "Orxonox/BarIconShield"
+    >
+      <BarColour position = 0.0 colour = "0.7,0.2,0.2" />
+      <BarColour position = 0.5 colour = "0.7,0.7,0.2" />
+      <BarColour position = 1.0 colour = "0.2,0.7,0.2" />
+    </HUDShieldBar>    
+
+    <HUDSpeedBar
+     name          = "SpeedBar1"
+     background    = "Orxonox/BarBackground"
+     size          = "0.40, 0.04"
+     position      = "0.0 , 0.95 "
+     pickpoint     = "0, 1"
+     correctaspect = true
+     iconmaterial  = "Orxonox/BarIconSpeed"
+     >
+      <BarColour position = 0.0 colour = "0.7,0.5,0.2" />
+      <BarColour position = 0.5 colour = "0.2,0.7,0.2" />
+      <BarColour position = 1.0 colour = "0.7,0.2,0.2" />
+    </HUDSpeedBar>
+
+    <HUDBoostBar
+     name          = "BoostBar1"
+     background    = "Orxonox/BarBackground"
+     size          = "0.40, 0.04"
+     position      = "0.0 , 1.0 "
+     pickpoint     = "0, 1"
+     correctaspect = true
+     iconmaterial  = "Orxonox/BarIconBoost"
+    >
+      <BarColour position = 0.0 colour = "0.7,0.2,0.2" />
+      <BarColour position = 0.5 colour = "0.7,0.7,0.2" />
+      <BarColour position = 1.0 colour = "0.2,0.7,0.2" />
+    </HUDBoostBar>
+
+    <HUDEnemyHealthBar
+     name              = "EnemyHealthBar"
+     background        = "Orxonox/HealthBarBackground"
+     size              = "0.4, 0.08"
+     position          = "1 ,0"
+     pickpoint         = "1, 0"
+     bartexture        = "healthbar_bar.png"
+     textfont          = "VeraMono"
+     textusebarcolour  = true
+     textscale         = 0.4
+     textoffset        = "-0.675, 0.175"
+     textpickpoint     = "0, 0"
+     textalign         = "right"
+     correctaspect     = true
+     iconmaterial      = "Orxonox/BarIconHealth"
+    >
+      <BarColour position = 0.0 colour = "0.7,0.2,0.2" />
+      <BarColour position = 0.5 colour = "0.7,0.7,0.2" />
+      <BarColour position = 1.0 colour = "0.2,0.7,0.2" />
+    </HUDEnemyHealthBar>
+
+    <HUDEnemyShieldBar
+     name          = "EnemyShieldBar1"
+     background    = "Orxonox/BarBackground"
+     size          = "0.40, 0.04"
+     position      = "1.0 , 0.1 "
+     pickpoint     = "1, 0"
+     correctaspect = true
+     iconmaterial  = "Orxonox/BarIconShield"
+    >
+      <BarColour position = 0.0 colour = "0.7,0.2,0.2" />
+      <BarColour position = 0.5 colour = "0.7,0.7,0.2" />
+      <BarColour position = 1.0 colour = "0.2,0.7,0.2" />
+    </HUDEnemyShieldBar>   
+
+    <HUDNavigation
+     name          = "Navigation"
+     correctaspect = true
+     font          = "Monofur"
+     textsize      = 0.02
+     navMarkerSize = 0.03
+     aimMarkerSize = 0.02
+    />
+
+	<HUDRadar
+     name          			= "Radar"
+     background    			= "Orxonox/Radar3D"
+     material2D    			= "Orxonox/Radar"
+     material3DMiddle   	= "Orxonox/Radar3D"
+     material3DFront		= "Orxonox/Radar3DFront"
+     material3DBack			= "Orxonox/Radar3DBack"
+     correctaspect 			= true
+     size          			= "0.17, 0.17"
+     position      			= "1.0, 1.0"
+     pickpoint     			= "1.0, 1.0"
+     rotation      			= 0
+     sensitivity   			= 1.0
+     halfDotSizeDistance 	= 3000
+     detectionLimit 		= 10000.0
+     maximumDotSize 		= 0.1
+     maximumDotSize3D      	= 0.06
+     mapAngle3D   			= 0.6435011
+    />
+
+    <HUDWeaponSystem
+     name                   = "WeaponSystem"
+     correctaspect          = true
+     position               = "0.01, 0.01"
+     pickpoint              = "0, 0"
+     visible                = "true"
+     weaponModeHUDSize      = "0.09, 0.03"
+    />
+    
+    <HUDPickupSystem
+     name                   = "PickupSystem"
+     correctaspect          = true
+     position               = "0.32, 0.81"
+     pickpoint              = "0.0, 0.0"
+     visible                = "false"
+    />
+
+    <HUDWaypoints
+     name                   = "Waypoints"
+     correctaspect          = true
+     position               = "0.32, 0.81"
+     pickpoint              = "0.0, 0.0"
+     visible                = "true"
+    />
+
+
+    <HUDTimer
+     name     = "Timer"
+     position = "0.5, 0.25"
+     font     = "VeraMono"
+     textsize = 0.1
+     colour   = "1.0, 1.0, 0.0, 0.8"
+     align    = "center"
+    />
+
+    <GUIOverlay
+      name = "QuestGUI"
+      guiname = "QuestGUI"
+      visible = "false"
+    />
+    
+    <GUIOverlay
+      name = "PickupInventory"
+      guiname = "PickupInventory"
+      visible = "false"
+    />
+
+  </OverlayGroup>
+</Template>
Index: /code/branches/Presentation_HS17/data/overlays/HUDTemplates3.oxo
===================================================================
--- /code/branches/Presentation_HS17/data/overlays/HUDTemplates3.oxo	(revision 11689)
+++ /code/branches/Presentation_HS17/data/overlays/HUDTemplates3.oxo	(revision 11690)
@@ -190,5 +190,5 @@
      position               = "0.32, 0.81"
      pickpoint              = "0.0, 0.0"
-     visible                = "true"
+     visible                = "false"
     />
 
Index: /code/branches/Presentation_HS17/src/libraries/core/BaseObject.h
===================================================================
--- /code/branches/Presentation_HS17/src/libraries/core/BaseObject.h	(revision 11689)
+++ /code/branches/Presentation_HS17/src/libraries/core/BaseObject.h	(revision 11690)
@@ -58,5 +58,4 @@
     class Gametype;
     class Level;
-    class ScriptableController;
 
     /// The BaseObject is the parent of all classes representing an instance in the game.
@@ -192,5 +191,4 @@
 
             static void loadAllEventStates(Element& xmlelement, XMLPort::Mode mode, BaseObject* object, Identifier* identifier);
-
 
         protected:
Index: /code/branches/Presentation_HS17/src/libraries/tools/Timer.cc
===================================================================
--- /code/branches/Presentation_HS17/src/libraries/tools/Timer.cc	(revision 11689)
+++ /code/branches/Presentation_HS17/src/libraries/tools/Timer.cc	(revision 11690)
@@ -158,12 +158,4 @@
     }
 
-    Timer::Timer(float interval, bool bLoop, std::function<void ()> func, bool bKillAfterCall)
-    {
-        this->init();
-        RegisterObject(Timer);
-
-        this->setTimer(interval, bLoop, func, bKillAfterCall);
-    }
-
     /**
         @brief Initializes the Timer
@@ -201,20 +193,9 @@
         this->executor_ = executor;
         this->bActive_ = true;
-        this->isStdFunction_ = false;
 
         this->time_ = this->interval_;
         this->bKillAfterCall_ = bKillAfterCall;
 
-        if(executor != nullptr)
-            executor->getFunctor()->setSafeMode(true);
-    }
-
-    void Timer::setTimer(float interval, bool bLoop, std::function<void ()> func, bool bKillAfterCall)
-    {
-        // Without the cast, the call would be ambiguous, because nullptr is castable to
-        // both, ExecutorPtr and std::function.
-        this->setTimer(interval, bLoop, static_cast<ExecutorPtr>(nullptr), bKillAfterCall);
-        this->function_ = func;
-        this->isStdFunction_ = true;
+        executor->getFunctor()->setSafeMode(true);
     }
 
@@ -226,8 +207,5 @@
         bool temp = this->bKillAfterCall_; // to avoid errors with bKillAfterCall_=false and an exutors which destroy the timer
 
-        if(this->isStdFunction_)
-            this->function_();
-        else
-            (*this->executor_)();
+        (*this->executor_)();
 
         if (temp)
Index: /code/branches/Presentation_HS17/src/libraries/tools/Timer.h
===================================================================
--- /code/branches/Presentation_HS17/src/libraries/tools/Timer.h	(revision 11689)
+++ /code/branches/Presentation_HS17/src/libraries/tools/Timer.h	(revision 11690)
@@ -108,8 +108,6 @@
 
             Timer(float interval, bool bLoop, const ExecutorPtr& executor, bool bKillAfterCall = false);
-            Timer(float interval, bool bLoop, std::function<void (void)> func, bool bKillAfterCall = false);
 
             void setTimer(float interval, bool bLoop, const ExecutorPtr& executor, bool bKillAfterCall = false);
-            void setTimer(float interval, bool bLoop, std::function<void (void)> func, bool bKillAfterCall = false);
 
             void run();
@@ -155,7 +153,5 @@
 
             ExecutorPtr executor_;  //!< The executor of the function that will be called when the time expires
-            std::function<void (void)> function_;
 
-            bool isStdFunction_;
             long long interval_;    //!< The time-interval in micro seconds
             bool bLoop_;            //!< If true, the executor gets called every @a interval seconds
Index: /code/branches/Presentation_HS17/src/modules/overlays/hud/CMakeLists.txt
===================================================================
--- /code/branches/Presentation_HS17/src/modules/overlays/hud/CMakeLists.txt	(revision 11689)
+++ /code/branches/Presentation_HS17/src/modules/overlays/hud/CMakeLists.txt	(revision 11690)
@@ -11,5 +11,4 @@
   HUDEnemyHealthBar.cc
   HUDEnemyShieldBar.cc
-  HUDWaypoints.cc
   HUDWeaponMode.cc
   HUDWeapon.cc
Index: de/branches/Presentation_HS17/src/modules/overlays/hud/HUDWaypoints.cc
===================================================================
--- /code/branches/Presentation_HS17/src/modules/overlays/hud/HUDWaypoints.cc	(revision 11689)
+++ 	(revision )
@@ -1,42 +1,0 @@
-
-
-
-
-#include <vector>
-#include <string>
-
-#include "HUDWaypoints.h"
-#include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-#include "util/Convert.h"
-#include "core/class/Super.h"
-#include "pickup/Pickup.h"
-#include "HUDPickupItem.h"
-#include "pickup/PickupManager.h"
-
-namespace orxonox 
-{
-	RegisterClass(HUDWaypoints);
-
-		HUDWaypoints::HUDWaypoints(Context* context) : OrxonoxOverlay(context)
-    {
-        RegisterObject(HUDWaypoints);
-
-        overlayElement_ = static_cast<Ogre::PanelOverlayElement* >(Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", "HUDWaypoints" + getUniqueNumberString()));
-        overlayElement_->setMaterialName("PickupBar");
-        overlayElement_->setPosition(0.0f,0.0f);
-        overlayElement_->setDimensions(0.35f,0.075f);
-        this->background_->addChild(overlayElement_);
-    }
-
-
-    HUDWaypoints::~HUDWaypoints()
-    {
-       /* if (this->isInitialized())
-        {
-            this->picks.clear();
-        }*/
-    }
-
-
-}
Index: de/branches/Presentation_HS17/src/modules/overlays/hud/HUDWaypoints.h
===================================================================
--- /code/branches/Presentation_HS17/src/modules/overlays/hud/HUDWaypoints.h	(revision 11689)
+++ 	(revision )
@@ -1,69 +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:
- *      Patrick Wintermeyer
- *   Co-authors:
- *      ...
- *
- */
-
-
-#ifndef _HUDWaypoints_H__
-#define _HUDWaypoints_H__
-
-#include "overlays/OverlaysPrereqs.h"
-
-#include <map>
-#include <vector>
-#include <string>
-
-
-#include <OgreOverlayManager.h>
-#include <OgrePanelOverlayElement.h> 
-
-#include "overlays/OrxonoxOverlay.h"
-#include "worldentities/pawns/Pawn.h"
-#include "overlays/OverlayGroup.h"
-#include "pickup/Pickup.h"
-#include "pickup/PickupRepresentation.h"
-#include "HUDPickupItem.h"
-
-namespace orxonox
-{
-    class _OverlaysExport HUDWaypoints : public OrxonoxOverlay
-    {
-    public:
-        HUDWaypoints(Context* context);
-        virtual ~HUDWaypoints();
-
-        bool repaint=false; //if we shouldnt repaint, set this to false
-
-    private:
-
-        Ogre::PanelOverlayElement* overlayElement_;
-        WeakPtr<Pawn> owner_;
-
-        std::vector<PickupRepresentation> pickupRepresentations_;
-    };
-}
-
-#endif
Index: /code/branches/Presentation_HS17/src/modules/questsystem/Quest.cc
===================================================================
--- /code/branches/Presentation_HS17/src/modules/questsystem/Quest.cc	(revision 11689)
+++ /code/branches/Presentation_HS17/src/modules/questsystem/Quest.cc	(revision 11690)
@@ -80,7 +80,18 @@
         XMLPortObject(Quest, QuestEffect, "fail-effects", addFailEffect, getFailEffect, xmlelement, mode);
         XMLPortObject(Quest, QuestEffect, "complete-effects", addCompleteEffect, getCompleteEffect, xmlelement, mode);
+        //XMLPortObject(Quest, Worldentity, "arrowtarget", addArrowTarget, getArrowTarget, xmlelement, mode);
 
         QuestManager::getInstance().registerQuest(this); // Registers the Quest with the QuestManager.
     }
+
+
+    /*bool Quest::addArrowTarget(Quest* quest){
+
+        assert(quest);
+
+
+    }*/
+
+
 
     /**
Index: /code/branches/Presentation_HS17/src/orxonox/CMakeLists.txt
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/CMakeLists.txt	(revision 11689)
+++ /code/branches/Presentation_HS17/src/orxonox/CMakeLists.txt	(revision 11690)
@@ -52,5 +52,4 @@
 ADD_SUBDIRECTORY(items)
 ADD_SUBDIRECTORY(overlays)
-ADD_SUBDIRECTORY(scriptablecontroller)
 ADD_SUBDIRECTORY(sound)
 ADD_SUBDIRECTORY(weaponsystem)
Index: /code/branches/Presentation_HS17/src/orxonox/Level.cc
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/Level.cc	(revision 11689)
+++ /code/branches/Presentation_HS17/src/orxonox/Level.cc	(revision 11690)
@@ -42,5 +42,4 @@
 #include "overlays/OverlayGroup.h"
 #include "LevelManager.h"
-#include "scriptablecontroller/scriptable_controller.h"
 
 namespace orxonox
@@ -57,5 +56,4 @@
         this->xmlfilename_ = this->getFilename();
         this->xmlfile_ = nullptr;
-        this->controller_.reset(new ScriptableController());
     }
 
@@ -80,6 +78,4 @@
         XMLPortParam(Level, "plugins",  setPluginsString,  getPluginsString,  xmlelement, mode);
         XMLPortParam(Level, "gametype", setGametypeString, getGametypeString, xmlelement, mode).defaultValues("Gametype");
-
-        XMLPortParamLoadOnly(Level, "script", setScript, xmlelement, mode);
 
         XMLPortObject(Level, MeshLodInformation, "lodinformation", addLodInfo, getLodInfo, xmlelement, mode);
Index: /code/branches/Presentation_HS17/src/orxonox/Level.h
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/Level.h	(revision 11689)
+++ /code/branches/Presentation_HS17/src/orxonox/Level.h	(revision 11690)
@@ -42,6 +42,4 @@
 namespace orxonox
 {
-    class ScriptableController;
-
     class _OrxonoxExport Level : public BaseObject, public Synchronisable, public Context
     {
@@ -56,10 +54,4 @@
 
             MeshLodInformation* getLodInfo(std::string meshName) const;
-
-            inline ScriptableController *getScriptableController(void)
-                { return this->controller_.get(); }
-
-            inline const std::string &getScript(void)
-                { return this->level_script_; }
 
 
@@ -86,10 +78,7 @@
             void networkcallback_applyXMLFile();
 
-            inline void setScript(const std::string &script)
-                { this->level_script_ = script; }
-
-
             std::string                    pluginsString_;
             std::list<PluginReference*>    plugins_;
+
             std::string                    gametype_;
             std::string                    xmlfilename_;
@@ -97,7 +86,4 @@
             std::list<BaseObject*>         objects_;
             std::map<std::string,MeshLodInformation*>  lodInformation_;
-
-            std::unique_ptr<ScriptableController> controller_;
-            std::string           level_script_;
     };
 }
Index: de/branches/Presentation_HS17/src/orxonox/controllers/ArrowController.cc
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/controllers/ArrowController.cc	(revision 11689)
+++ 	(revision )
@@ -1,156 +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:
- *      Damian 'Mozork' Frick
- *
- */
-
-#include "ArrowController.h"
-#include "HumanController.h"
-#include "worldentities/WorldEntity.h"
-    
-#include "worldentities/Arrow.h"
-#include "util/Math.h"
-
-namespace orxonox
-{
-
-    RegisterClass(ArrowController);
-
-
-
-    /**
-    @brief
-        Constructor.
-    */
-    ArrowController::ArrowController(Context* context) : Controller(context)
-    {
-
-        RegisterObject(ArrowController);
-
-        this->currentGPSPoint_ = 0;
-        this->accuracy_ = 1000.0f;
-
-        arrow = nullptr;
-
-        for(Arrow* a: ObjectList<Arrow>())
-            arrow = a;
-
-        assert(arrow != nullptr);
-        this->setControllableEntity(arrow);
-
-        orxout() << "constructor aufgerufen" << endl;
-    }
-    
-    //Set the distance you need to reach before the next waypoint will be selected
-    void ArrowController::setAccuracy(float accuracy){
-      this->accuracy_ = accuracy;
-    }
-
-    float ArrowController::getAccuracy(){
-      return this->accuracy_;
-    };
-    
-    void ArrowController::addGPSPoint(WorldEntity* gpspoint)
-    {
-        this->gpspoints_.push_back(gpspoint);
-    }
-
-    WorldEntity* ArrowController::getGPSPoint(unsigned int index) const
-    {
-        if (index < this->gpspoints_.size())
-            return this->gpspoints_[index];
-        else
-            return nullptr;
-    }
-    /**
-    @brief
-        Destructor.
-    */
-
-    ArrowController::~ArrowController()
-    {
-      for (WorldEntity* gpspoint : this->gpspoints_)
-        {
-            if(gpspoint)
-                gpspoint->destroy();
-        } 
-
-    }
-
-
-    void ArrowController::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(ArrowController, XMLPort, xmlelement, mode);
-
-        XMLPortObject(ArrowController, WorldEntity, "gpspoints", addGPSPoint, getGPSPoint,  xmlelement, mode);
-        XMLPortParam(ArrowController, "accuracy", setAccuracy, getAccuracy, xmlelement, mode);
-    }
-
-    void ArrowController::tick(float dt)
-    {
-        if (!this->isActive())
-            return;
-
-        if (this->gpspoints_.size() == 0 || !this->getControllableEntity())
-            return;
-        //Set all waypoint to invisible at the beginning  
-        if (this->currentGPSPoint_ == 0){
-          for(unsigned int i = 0; i < this->gpspoints_.size(); i++ )
-            this->gpspoints_[i]->setVisible(false);
-        }
-        //Make the arrow inivisible as soon as you reached the last Waypoint, otherwise make the next waypoint visible 
-        if(currentGPSPoint_ >= gpspoints_.size()){
-          this->getControllableEntity()->setVisible(false);
-          return;
-        }
-        else this->gpspoints_[this->currentGPSPoint_]->setVisible(true);
-
-        //Set the next waypoint as target as soon as you reached the previous one
-        if (this->gpspoints_[this->currentGPSPoint_]->getWorldPosition().squaredDistance(this->getControllableEntity()->getPosition()) <= this->accuracy_){
-            this->gpspoints_[this->currentGPSPoint_]->setVisible(false);
-            this->currentGPSPoint_ = (this->currentGPSPoint_ + 1);
-            return;
-          }
-  
-        Vector3 target = gpspoints_[currentGPSPoint_]->getWorldPosition();
-        WorldEntity::TransformSpace trans = WorldEntity::TransformSpace::World;
-
-        //Get the position and orientation of the Spaceship
-        Vector3 spaceShipPosition = HumanController::getLocalControllerSingleton()->getControllableEntity()->getWorldPosition();
-        Quaternion spaceShipOrientation = HumanController::getLocalControllerSingleton()->getControllableEntity()->getOrientation();
-        
-        //Calculate the new arrow position
-        Vector3 ss_y = spaceShipOrientation.yAxis();
-        spaceShipPosition.x += 20 * ss_y.x;
-        spaceShipPosition.y += 20 * ss_y.y;
-        spaceShipPosition.z += 20 * ss_y.z;
-        
-        //Update Arrow position and orientation  
-        this->getControllableEntity()->setPosition(spaceShipPosition);
-        this->getControllableEntity()->lookAt(target, trans, Vector3(0,0,1));
-        
-        
-    }
-}
Index: de/branches/Presentation_HS17/src/orxonox/controllers/ArrowController.h
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/controllers/ArrowController.h	(revision 11689)
+++ 	(revision )
@@ -1,73 +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:
- *      Damian 'Mozork' Frick
- *
- */
-
-#ifndef _ArrowController_H__
-#define _ArrowController_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "Controller.h"
-#include "tools/interfaces/Tickable.h"
-#include "worldentities/Arrow.h"
-
-namespace orxonox
-{
-    /**
-    @brief
-        Controller for the Arrow of the PPS tutorial.
-    @author
-        Oli Scheuss
-    */
-    class _OrxonoxExport ArrowController : public Controller, public Tickable
-    {
-        public:
-            ArrowController(Context* context);
-            virtual ~ArrowController();
-
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
-            
-            void addGPSPoint(WorldEntity* gpspoint);
-            WorldEntity* getGPSPoint(unsigned int index) const;
-            void setAccuracy(float accuracy);
-            float getAccuracy();
-
-            virtual void tick(float dt); //!< The controlling happens here. This method defines what the controller has to do each tick.
-
-        protected:
-
-            std::vector<WeakPtr<WorldEntity>> gpspoints_;
-            size_t currentGPSPoint_;
-            float accuracy_;
-            WorldEntity* defaultGPSpoint_;
-
-        private:
-            Arrow *arrow;
-    };
-}
-
-#endif /* _ArrowController_H__ */
Index: de/branches/Presentation_HS17/src/orxonox/controllers/AutonomousDroneController.cc
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/controllers/AutonomousDroneController.cc	(revision 11689)
+++ 	(revision )
@@ -1,111 +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:
- *      Damian 'Mozork' Frick
- *
- */
-
-#include "AutonomousDroneController.h"
-
-#include "worldentities/AutonomousDrone.h"
-#include "util/Math.h"
-
-namespace orxonox
-{
-    //TODO: Put your code in here:
-    // Create the factory for the drone controller.
-    RegisterClass(AutonomousDroneController);
-
-
-    /**
-    @brief
-        Constructor.
-    @param context
-        The context of this object.
-    */
-    AutonomousDroneController::AutonomousDroneController(Context* context) : Controller(context)
-    {
-        //TODO: Place your code here:
-        RegisterObject(AutonomousDroneController);
-
-
-        // Make sure to register the object and create the factory.        
-
-        // This checks that our context really is a drone
-        // and saves the pointer to the drone for the controlling commands
-        /* NOTE from Sandro: This is currently broken */
-        //AutonomousDrone* drone = dynamic_cast<AutonomousDrone*>(context);
-        //assert(drone != nullptr);
-        //this->setControllableEntity(drone);
-    }
-
-    /**
-    @brief
-        Destructor.
-    */
-    AutonomousDroneController::~AutonomousDroneController()
-    {
-
-    }
-
-    /**
-    @brief
-        The controlling happens here. This method defines what the controller has to do each tick.
-    @param dt
-        The duration of the tick.
-    */
-    void AutonomousDroneController::tick(float dt)
-    {
-        /* NOTE: Ugly hack by Sandro to make the tutorial work for the moment.
-         * This will be reverted once the framework update is complete
-         */
-        //AutonomousDrone *myDrone = static_cast<AutonomousDrone*>(this->getControllableEntity());
-        ObjectList<AutonomousDrone> objectList;
-        ObjectList<AutonomousDrone>::iterator it = objectList.begin();
-        AutonomousDrone* myDrone = *it;
-
-        if (myDrone != nullptr)
-        {
-
-           
-            //myDrone -> moveFrontBack(50*dt);
-            myDrone -> rotateRoll(2*dt);
-            
-            myDrone -> rotateYaw(2*dt);
-            
-                
-            //TODO: Place your code here:
-            // Steering commands
-            // You can use the commands provided by the AutonomousDrone to steer it:
-            // - moveFrontBack, moveRightLeft, moveUpDown
-            // - rotatePitch, rotateYaw, rotateRoll
-            // You will see, that the AutonomousDrone has two variants for each of these commands, one with a vector as input and one with just a float. Use the one with just the float as input.
-            // Apply them to myDrone (e.g. myDrone->rotateYaw(..) )
-            // dt is the time passed since the last call of the tick function in seconds.
-
-
-
-        }
-    }
-}
Index: de/branches/Presentation_HS17/src/orxonox/controllers/AutonomousDroneController.h
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/controllers/AutonomousDroneController.h	(revision 11689)
+++ 	(revision )
@@ -1,59 +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:
- *      Damian 'Mozork' Frick
- *
- */
-
-#ifndef _AutonomousDroneController_H__
-#define _AutonomousDroneController_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "Controller.h"
-#include "tools/interfaces/Tickable.h"
-
-namespace orxonox
-{
-    /**
-    @brief
-        Controller for the AutonomousDrone of the PPS tutorial.
-    @author
-        Oli Scheuss
-    */
-    class _OrxonoxExport AutonomousDroneController : public Controller, public Tickable
-    {
-        public:
-            AutonomousDroneController(Context* context);
-            virtual ~AutonomousDroneController();
-
-            virtual void tick(float dt); //!< The controlling happens here. This method defines what the controller has to do each tick.
-
-        protected:
-
-        private:
-    };
-}
-
-#endif /* _AutonomousDroneController_H__ */
Index: /code/branches/Presentation_HS17/src/orxonox/controllers/CMakeLists.txt
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/controllers/CMakeLists.txt	(revision 11689)
+++ /code/branches/Presentation_HS17/src/orxonox/controllers/CMakeLists.txt	(revision 11690)
@@ -19,5 +19,3 @@
   FightingController.cc
   MasterController.cc
-  AutonomousDroneController.cc
-  ArrowController.cc
 )
Index: de/branches/Presentation_HS17/src/orxonox/controllers/WaypointArrow.cc
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/controllers/WaypointArrow.cc	(revision 11689)
+++ 	(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 "WaypointArrow.h"
-
-#include "core/CoreIncludes.h"
-#include "worldentities/ControllableEntity.h"
-
-namespace orxonox
-{
-    RegisterClass(WaypointArrow);
-
-    WaypointArrow::WaypointArrow(Context* context) : ArtificialController(context)
-    {
-        RegisterObject(WaypointController);
-        this->setAccuracy(100);
-    }
-
-    WaypointController::~WaypointController()
-    {
-        for (WorldEntity* waypoint : this->waypoints_)
-        {
-            if(waypoint)
-                waypoint->destroy();
-        }
-    }
-
-    void WaypointController::tick(float dt)
-    {
-        if (!this->isActive())
-            return;
-
-        if (this->waypoints_.size() == 0 || !this->getControllableEntity())
-            return;
-
-        if (this->waypoints_[this->currentWaypoint_]->getWorldPosition().squaredDistance(this->getControllableEntity()->getPosition()) <= this->squaredaccuracy_)
-            this->currentWaypoint_ = (this->currentWaypoint_ + 1) % this->waypoints_.size();
-
-        this->moveToPosition(this->waypoints_[this->currentWaypoint_]->getWorldPosition());
-    }
-
-}
Index: /code/branches/Presentation_HS17/src/orxonox/graphics/Model.cc
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/graphics/Model.cc	(revision 11689)
+++ /code/branches/Presentation_HS17/src/orxonox/graphics/Model.cc	(revision 11690)
@@ -73,4 +73,5 @@
 
         XMLPortParam(Model, "lodLevel", setLodLevel, getLodLevel, xmlelement, mode);
+
         XMLPortParam(Model, "mesh", setMeshSource, getMeshSource, xmlelement, mode);
         XMLPortParam(Model, "renderQueueGroup", setRenderQueueGroup, getRenderQueueGroup, xmlelement, mode);
Index: /code/branches/Presentation_HS17/src/orxonox/infos/GametypeInfo.cc
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/infos/GametypeInfo.cc	(revision 11689)
+++ /code/branches/Presentation_HS17/src/orxonox/infos/GametypeInfo.cc	(revision 11690)
@@ -43,6 +43,4 @@
 #include "interfaces/GametypeMessageListener.h"
 #include "interfaces/NotificationListener.h"
-#include "scriptablecontroller/scriptable_controller.h"
-#include "Level.h"
 
 #include "PlayerInfo.h"
@@ -78,5 +76,4 @@
         this->spawned_ = false;
         this->readyToSpawn_ = false;
-        this->isFirstSpawn_ = true;
 
         this->registerVariables();
@@ -313,18 +310,6 @@
         {
             if(this->hasStarted() && !this->hasEnded())
+
                 this->setSpawnedHelper(player, true);
-        }
-
-        // TODO We might want to handle the subsequent spawns as well somehow
-        if(player->isHumanPlayer() && player->isLocalPlayer() && this->isFirstSpawn_)
-        {
-            this->isFirstSpawn_ = false;
-            this->getLevel()->getScriptableController()->setPlayer(player);
-
-            // This handles paths relative to the 'level' directory
-            std::string script = this->getLevel()->getScript();
-            if(script.at(0) != '/')
-                script = "../levels/" + script; // Not very dynamic
-            this->getLevel()->getScriptableController()->runScript(script);
         }
     }
Index: /code/branches/Presentation_HS17/src/orxonox/infos/GametypeInfo.h
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/infos/GametypeInfo.h	(revision 11689)
+++ /code/branches/Presentation_HS17/src/orxonox/infos/GametypeInfo.h	(revision 11690)
@@ -83,5 +83,5 @@
             inline bool isStartCountdownRunning() const
                 { return this->bStartCountdownRunning_; }
-
+            
             void changedStartCountdownRunning(void); // Is called when the start countdown has been either started or stopped.
 
@@ -168,5 +168,4 @@
             bool spawned_; //!< Whether the local Player is currently spawned.
             bool readyToSpawn_; //!< Whether the local Player is ready to spawn.
-            bool isFirstSpawn_;
     };
 }
Index: /code/branches/Presentation_HS17/src/orxonox/infos/HumanPlayer.cc
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/infos/HumanPlayer.cc	(revision 11689)
+++ /code/branches/Presentation_HS17/src/orxonox/infos/HumanPlayer.cc	(revision 11690)
@@ -38,6 +38,4 @@
 #include "gametypes/Gametype.h"
 #include "overlays/OverlayGroup.h"
-#include "Level.h"
-#include "scriptablecontroller/scriptable_controller.h"
 
 namespace orxonox
Index: /code/branches/Presentation_HS17/src/orxonox/items/ShipPart.cc
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/items/ShipPart.cc	(revision 11689)
+++ /code/branches/Presentation_HS17/src/orxonox/items/ShipPart.cc	(revision 11690)
@@ -42,6 +42,4 @@
 #include "items/PartDestructionEvent.h"
 #include "chat/ChatManager.h"
-#include "Level.h"
-#include "scriptablecontroller/scriptable_controller.h"
 
 
@@ -217,9 +215,4 @@
             }
         }
-
-        // This is a bit hacky, but it takes away damage control from the pawn, so it has to handle
-        // that as well.
-        this->getLevel()->getScriptableController()->pawnHit(parent_, originator, parent_->getHealth(), parent_->getShieldHealth());
-
         if (this->health_ < 0)
             this->death();
Index: de/branches/Presentation_HS17/src/orxonox/worldentities/Arrow.cc
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/worldentities/Arrow.cc	(revision 11689)
+++ 	(revision )
@@ -1,174 +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:
- *      Damian 'Mozork' Frick
- *
- */
-
-#include "Arrow.h"
-
-#include "core/CoreIncludes.h"
-#include "BulletDynamics/Dynamics/btRigidBody.h"
-
-namespace orxonox
-{
-
-    RegisterClass(Arrow);
-    /**
-    @brief
-        Constructor. Registers the object and initializes some default values.
-    @param creator
-        The creator of this object.
-    */
-    Arrow::Arrow(Context* context) : ControllableEntity(context)
-    {
-        RegisterObject(Arrow);
-
-        this->localLinearAcceleration_.setValue(0, 0, 0);
-        this->localAngularAcceleration_.setValue(0, 0, 0);
-        this->primaryThrust_  = 100;
-        this->auxiliaryThrust_ = 100;
-        this->rotationThrust_ = 10;
-
-        this->setCollisionType(CollisionType::Dynamic);
-
-        
-    }
-
-    /**
-    @brief
-        Destructor. Destroys controller, if present.
-    */
-    Arrow::~Arrow()
-    {
-
-    }
-
-    /**
-    @brief
-        Method for creating a Arrow through XML.
-    */
-    void Arrow::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        // This calls the XMLPort function of the parent class
-        SUPER(Arrow, XMLPort, xmlelement, mode);
-
-        XMLPortParam(Arrow, "primaryThrust", setPrimaryThrust, getPrimaryThrust, xmlelement, mode);
-        XMLPortParam(Arrow, "auxiliaryThrust", setAuxiliaryThrust, getAuxiliaryThrust, xmlelement, mode);
-        XMLPortParam(Arrow, "rotationThrust", setRotationThrust, getRotationThrust, xmlelement, mode);
-     
-    }
-
-    /**
-    @brief
-        Defines which actions the Arrow has to take in each tick.
-    @param dt
-        The length of the tick.
-    */
-    void Arrow::tick(float dt)
-    {
-        SUPER(Arrow, tick, dt);
-
-        this->localLinearAcceleration_.setX(this->localLinearAcceleration_.x() * getMass() * this->auxiliaryThrust_);
-        this->localLinearAcceleration_.setY(this->localLinearAcceleration_.y() * getMass() * this->auxiliaryThrust_);
-        if (this->localLinearAcceleration_.z() > 0)
-            this->localLinearAcceleration_.setZ(this->localLinearAcceleration_.z() * getMass() * this->auxiliaryThrust_);
-        else
-            this->localLinearAcceleration_.setZ(this->localLinearAcceleration_.z() * getMass() * this->primaryThrust_);
-        this->physicalBody_->applyCentralForce(physicalBody_->getWorldTransform().getBasis() * this->localLinearAcceleration_);
-        this->localLinearAcceleration_.setValue(0, 0, 0);
-
-        this->localAngularAcceleration_ *= this->getLocalInertia() * this->rotationThrust_;
-        this->physicalBody_->applyTorque(physicalBody_->getWorldTransform().getBasis() * this->localAngularAcceleration_);
-        this->localAngularAcceleration_.setValue(0, 0, 0);
-    }
-
-    /**
-    @brief
-        Moves the Arrow in the negative z-direction (Front/Back) by an amount specified by the first component of the input 2-dim vector.
-    @param value
-        The vector determining the amount of the movement.
-    */
-    void Arrow::moveFrontBack(const Vector2& value)
-    {
-        this->localLinearAcceleration_.setZ(this->localLinearAcceleration_.z() - value.x);
-    }
-
-    /**
-    @brief
-        Moves the Arrow in the x-direction (Right/Left) by an amount specified by the first component of the input 2-dim vector.
-    @param value
-        The vector determining the amount of the movement.
-    */
-    void Arrow::moveRightLeft(const Vector2& value)
-    {
-        this->localLinearAcceleration_.setX(this->localLinearAcceleration_.x() + value.x);
-    }
-
-    /**
-    @brief
-        Moves the Arrow in the y-direction (Up/Down) by an amount specified by the first component of the input 2-dim vector.
-    @param value
-        The vector determining the amount of the movement.
-    */
-    void Arrow::moveUpDown(const Vector2& value)
-    {
-        this->localLinearAcceleration_.setY(this->localLinearAcceleration_.y() + value.x);
-    }
-
-    /**
-    @brief
-        Rotates the Arrow around the y-axis by the amount specified by the first component of the input 2-dim vector.
-    @param value
-        The vector determining the amount of the angular movement.
-    */
-    void Arrow::rotateYaw(const Vector2& value)
-    {
-        this->localAngularAcceleration_.setY(this->localAngularAcceleration_.y() - value.x);
-    }
-
-    /**
-    @brief
-        Rotates the Arrow around the x-axis by the amount specified by the first component of the input 2-dim vector.
-    @param value
-        The vector determining the amount of the angular movement.
-    */
-    void Arrow::rotatePitch(const Vector2& value)
-    {
-        this->localAngularAcceleration_.setX(this->localAngularAcceleration_.x() + value.x);
-    }
-
-    /**
-    @brief
-        Rotates the Arrow around the z-axis by the amount specified by the first component of the input 2-dim vector.
-    @param value
-        The vector determining the amount of the angular movement.
-    */
-    void Arrow::rotateRoll(const Vector2& value)
-    {
-        this->localAngularAcceleration_.setZ(this->localAngularAcceleration_.z() + value.x);
-    }
-
-
-}
Index: de/branches/Presentation_HS17/src/orxonox/worldentities/Arrow.h
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/worldentities/Arrow.h	(revision 11689)
+++ 	(revision )
@@ -1,147 +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:
- *      Damian 'Mozork' Frick
- *
- */
-
-#ifndef _Arrow_H__
-#define _Arrow_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "core/XMLPort.h"
-//#include "controllers/ArrowController.h"
-
-#include "ControllableEntity.h"
-#include "WorldEntity.h"
-
-namespace orxonox {
-
-    /**
-    @brief
-        Drone, that is made to move upon a specified pattern.
-        This class was constructed for the PPS tutorial.
-    @author
-        Oli Scheuss
-    */
-    class _OrxonoxExport Arrow : public ControllableEntity
-    {
-        public:
-            Arrow(Context* context);
-            virtual ~Arrow();
-
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating an Arrow through XML.
-            virtual void tick(float dt); //!< Defines which actions the Arrow has to take in each tick.
-
-            virtual void moveFrontBack(const Vector2& value);
-            virtual void moveRightLeft(const Vector2& value);
-            virtual void moveUpDown(const Vector2& value);
-
-            virtual void rotateYaw(const Vector2& value);
-            virtual void rotatePitch(const Vector2& value);
-            virtual void rotateRoll(const Vector2& value);
-
-            /**
-            @brief Moves the Drone in the Front/Back-direction by the specifed amount.
-            @param value  The amount by which the drone is to be moved.
-            */
-            inline void moveFrontBack(float value)
-            { this->moveFrontBack(Vector2(value, 0)); }
-            /**
-            @brief Moves the Drone in the Right/Left-direction by the specifed amount.
-            @param value  The amount by which the drone is to be moved.
-            */
-            inline void moveRightLeft(float value)
-            { this->moveRightLeft(Vector2(value, 0)); }
-            /**
-            @brief Moves the Drone in the Up/Down-direction by the specifed amount.
-            @param value  The amount by which the drone is to be moved.
-            */
-            inline void moveUpDown(float value)
-            { this->moveUpDown(Vector2(value, 0)); }
-
-            /**
-            @brief Rotates the Drone around the y-axis by the specifed amount.
-            @param value  The amount by which the drone is to be rotated.
-            */
-            inline void rotateYaw(float value)
-            { this->rotateYaw(Vector2(value, 0)); }
-            /**
-            @brief Rotates the Drone around the x-axis by the specifed amount.
-            @param value  The amount by which the drone is to be rotated.
-            */
-            inline void rotatePitch(float value)
-            { this->rotatePitch(Vector2(value, 0)); }
-            /**
-            @brief Rotates the Drone around the z-axis by the specifed amount.
-            @param value  The amount by which the drone is to be rotated.
-            */
-            inline void rotateRoll(float value)
-            { this->rotateRoll(Vector2(value, 0)); }
-
-            /**
-            @brief Sets the primary thrust to the input amount.
-            @param thrust The amount of thrust.
-            */
-            inline void setPrimaryThrust( float thrust )
-                { this->primaryThrust_ = thrust; }
-            //TODO: Place your set-functions here.
-
-            inline void setAuxiliaryThrust ( float thrust )
-                { this -> auxiliaryThrust_ = thrust; }
-
-            inline void setRotationThrust (float thrust)
-                { this -> rotationThrust_ = thrust;}
-            // Hint: auxiliary thrust, rotation thrust.
-            
-            /**
-            @brief Gets the primary thrust to the input amount.
-            @return The amount of thrust.
-            */
-            inline float getPrimaryThrust()
-                { return this->primaryThrust_; }
-
-            inline float getAuxiliaryThrust()
-                { return this->auxiliaryThrust_;}
-
-            inline float getRotationThrust()
-                { return this->rotationThrust_;}
-
-            //TODO: Place your get-functions here.
-
-        private:
-            //ArrowController *myController_; //!< The controller of the Arrow.
-
-            btVector3 localLinearAcceleration_; //!< The linear acceleration that is used to move the Arrow the next tick.
-            btVector3 localAngularAcceleration_; //!< The linear angular acceleration that is used to move the Arrow the next tick.
-            float primaryThrust_; //!< The amount of primary thrust. This is just used, when moving forward.
-            float auxiliaryThrust_; //!< The amount of auxiliary thrust. Used for all other movements (except for rotations).
-            float rotationThrust_; //!< The amount of rotation thrust. Used for rotations only.s
-        
-    };
-
-}
-
-#endif // _Arrow_H__
Index: de/branches/Presentation_HS17/src/orxonox/worldentities/AutonomousDrone.cc
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/worldentities/AutonomousDrone.cc	(revision 11689)
+++ 	(revision )
@@ -1,186 +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:
- *      Damian 'Mozork' Frick
- *
- */
-
-#include "AutonomousDrone.h"
-
-#include "core/CoreIncludes.h"
-#include "BulletDynamics/Dynamics/btRigidBody.h"
-
-namespace orxonox
-{
-    //TODO: Put your code in here:
-    // Create the factory for the drone.
-    RegisterClass(AutonomousDrone);
-    /**
-    @brief
-        Constructor. Registers the object and initializes some default values.
-    @param creator
-        The creator of this object.
-    */
-    AutonomousDrone::AutonomousDrone(Context* context) : ControllableEntity(context)
-    {
-        //TODO: Put your code in here:
-        // Register the drone class to the core.
-        RegisterObject(AutonomousDrone);
-
-        this->myController_ = NULL;
-
-        this->localLinearAcceleration_.setValue(0, 0, 0);
-        this->localAngularAcceleration_.setValue(0, 0, 0);
-        this->primaryThrust_  = 100;
-        this->auxiliaryThrust_ = 100;
-        this->rotationThrust_ = 10;
-
-        this->setCollisionType(CollisionType::Dynamic);
-
-        //this->myController_ = new AutonomousDroneController(this); // Creates a new controller and passes our this pointer to it as creator.
-    }
-
-    /**
-    @brief
-        Destructor. Destroys controller, if present.
-    */
-    AutonomousDrone::~AutonomousDrone()
-    {
-        // Deletes the controller if the object was initialized and the pointer to the controller is not NULL.
-        if( this->isInitialized() && this->myController_ != NULL )
-            delete this->myController_;
-    }
-
-    /**
-    @brief
-        Method for creating a AutonomousDrone through XML.
-    */
-    void AutonomousDrone::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        // This calls the XMLPort function of the parent class
-        SUPER(AutonomousDrone, XMLPort, xmlelement, mode);
-
-        XMLPortParam(AutonomousDrone, "primaryThrust", setPrimaryThrust, getPrimaryThrust, xmlelement, mode);
-        //TODO: Put your code in here:
-        XMLPortParam(AutonomousDrone, "auxiliaryThrust", setAuxiliaryThrust, getAuxiliaryThrust, xmlelement, mode);
-        XMLPortParam(AutonomousDrone, "rotationThrust", setRotationThrust, getRotationThrust, xmlelement, mode);
-        // Make sure you add the variables auxiliaryThrust_ and rotationThrust_ to XMLPort.
-        // Variables can be added by the following command
-        // XMLPortParam(Classname, "xml-attribute-name (i.e. variablename)", setFunctionName, getFunctionName, xmlelement, mode);
-        // Also make sure that you also create the get- and set-functions in AutonomousDrone.h. As you can see, the get- and set-functions for the variable primaryThrust_ has already been specified there, so you can get your inspiration from there.
-        
-
-    }
-
-    /**
-    @brief
-        Defines which actions the AutonomousDrone has to take in each tick.
-    @param dt
-        The length of the tick.
-    */
-    void AutonomousDrone::tick(float dt)
-    {
-        SUPER(AutonomousDrone, tick, dt);
-
-        this->localLinearAcceleration_.setX(this->localLinearAcceleration_.x() * getMass() * this->auxiliaryThrust_);
-        this->localLinearAcceleration_.setY(this->localLinearAcceleration_.y() * getMass() * this->auxiliaryThrust_);
-        if (this->localLinearAcceleration_.z() > 0)
-            this->localLinearAcceleration_.setZ(this->localLinearAcceleration_.z() * getMass() * this->auxiliaryThrust_);
-        else
-            this->localLinearAcceleration_.setZ(this->localLinearAcceleration_.z() * getMass() * this->primaryThrust_);
-        this->physicalBody_->applyCentralForce(physicalBody_->getWorldTransform().getBasis() * this->localLinearAcceleration_);
-        this->localLinearAcceleration_.setValue(0, 0, 0);
-
-        this->localAngularAcceleration_ *= this->getLocalInertia() * this->rotationThrust_;
-        this->physicalBody_->applyTorque(physicalBody_->getWorldTransform().getBasis() * this->localAngularAcceleration_);
-        this->localAngularAcceleration_.setValue(0, 0, 0);
-    }
-
-    /**
-    @brief
-        Moves the AutonomousDrone in the negative z-direction (Front/Back) by an amount specified by the first component of the input 2-dim vector.
-    @param value
-        The vector determining the amount of the movement.
-    */
-    void AutonomousDrone::moveFrontBack(const Vector2& value)
-    {
-        this->localLinearAcceleration_.setZ(this->localLinearAcceleration_.z() - value.x);
-    }
-
-    /**
-    @brief
-        Moves the AutonomousDrone in the x-direction (Right/Left) by an amount specified by the first component of the input 2-dim vector.
-    @param value
-        The vector determining the amount of the movement.
-    */
-    void AutonomousDrone::moveRightLeft(const Vector2& value)
-    {
-        this->localLinearAcceleration_.setX(this->localLinearAcceleration_.x() + value.x);
-    }
-
-    /**
-    @brief
-        Moves the AutonomousDrone in the y-direction (Up/Down) by an amount specified by the first component of the input 2-dim vector.
-    @param value
-        The vector determining the amount of the movement.
-    */
-    void AutonomousDrone::moveUpDown(const Vector2& value)
-    {
-        this->localLinearAcceleration_.setY(this->localLinearAcceleration_.y() + value.x);
-    }
-
-    /**
-    @brief
-        Rotates the AutonomousDrone around the y-axis by the amount specified by the first component of the input 2-dim vector.
-    @param value
-        The vector determining the amount of the angular movement.
-    */
-    void AutonomousDrone::rotateYaw(const Vector2& value)
-    {
-        this->localAngularAcceleration_.setY(this->localAngularAcceleration_.y() - value.x);
-    }
-
-    /**
-    @brief
-        Rotates the AutonomousDrone around the x-axis by the amount specified by the first component of the input 2-dim vector.
-    @param value
-        The vector determining the amount of the angular movement.
-    */
-    void AutonomousDrone::rotatePitch(const Vector2& value)
-    {
-        this->localAngularAcceleration_.setX(this->localAngularAcceleration_.x() + value.x);
-    }
-
-    /**
-    @brief
-        Rotates the AutonomousDrone around the z-axis by the amount specified by the first component of the input 2-dim vector.
-    @param value
-        The vector determining the amount of the angular movement.
-    */
-    void AutonomousDrone::rotateRoll(const Vector2& value)
-    {
-        this->localAngularAcceleration_.setZ(this->localAngularAcceleration_.z() + value.x);
-    }
-
-}
Index: de/branches/Presentation_HS17/src/orxonox/worldentities/AutonomousDrone.h
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/worldentities/AutonomousDrone.h	(revision 11689)
+++ 	(revision )
@@ -1,146 +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:
- *      Damian 'Mozork' Frick
- *
- */
-
-#ifndef _AutonomousDrone_H__
-#define _AutonomousDrone_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "core/XMLPort.h"
-#include "controllers/AutonomousDroneController.h"
-
-#include "ControllableEntity.h"
-
-namespace orxonox {
-
-    /**
-    @brief
-        Drone, that is made to move upon a specified pattern.
-        This class was constructed for the PPS tutorial.
-    @author
-        Oli Scheuss
-    */
-    class _OrxonoxExport AutonomousDrone : public ControllableEntity
-    {
-        public:
-            AutonomousDrone(Context* context);
-            virtual ~AutonomousDrone();
-
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating an AutonomousDrone through XML.
-            virtual void tick(float dt); //!< Defines which actions the AutonomousDrone has to take in each tick.
-
-            virtual void moveFrontBack(const Vector2& value);
-            virtual void moveRightLeft(const Vector2& value);
-            virtual void moveUpDown(const Vector2& value);
-
-            virtual void rotateYaw(const Vector2& value);
-            virtual void rotatePitch(const Vector2& value);
-            virtual void rotateRoll(const Vector2& value);
-
-            /**
-            @brief Moves the Drone in the Front/Back-direction by the specifed amount.
-            @param value  The amount by which the drone is to be moved.
-            */
-            inline void moveFrontBack(float value)
-            { this->moveFrontBack(Vector2(value, 0)); }
-            /**
-            @brief Moves the Drone in the Right/Left-direction by the specifed amount.
-            @param value  The amount by which the drone is to be moved.
-            */
-            inline void moveRightLeft(float value)
-            { this->moveRightLeft(Vector2(value, 0)); }
-            /**
-            @brief Moves the Drone in the Up/Down-direction by the specifed amount.
-            @param value  The amount by which the drone is to be moved.
-            */
-            inline void moveUpDown(float value)
-            { this->moveUpDown(Vector2(value, 0)); }
-
-            /**
-            @brief Rotates the Drone around the y-axis by the specifed amount.
-            @param value  The amount by which the drone is to be rotated.
-            */
-            inline void rotateYaw(float value)
-            { this->rotateYaw(Vector2(value, 0)); }
-            /**
-            @brief Rotates the Drone around the x-axis by the specifed amount.
-            @param value  The amount by which the drone is to be rotated.
-            */
-            inline void rotatePitch(float value)
-            { this->rotatePitch(Vector2(value, 0)); }
-            /**
-            @brief Rotates the Drone around the z-axis by the specifed amount.
-            @param value  The amount by which the drone is to be rotated.
-            */
-            inline void rotateRoll(float value)
-            { this->rotateRoll(Vector2(value, 0)); }
-
-            /**
-            @brief Sets the primary thrust to the input amount.
-            @param thrust The amount of thrust.
-            */
-            inline void setPrimaryThrust( float thrust )
-                { this->primaryThrust_ = thrust; }
-            //TODO: Place your set-functions here.
-
-            inline void setAuxiliaryThrust ( float thrust )
-                { this -> auxiliaryThrust_ = thrust; }
-
-            inline void setRotationThrust (float thrust)
-                { this -> rotationThrust_ = thrust;}
-            // Hint: auxiliary thrust, rotation thrust.
-            
-            /**
-            @brief Gets the primary thrust to the input amount.
-            @return The amount of thrust.
-            */
-            inline float getPrimaryThrust()
-                { return this->primaryThrust_; }
-
-            inline float getAuxiliaryThrust()
-                { return this->auxiliaryThrust_;}
-
-            inline float getRotationThrust()
-                { return this->rotationThrust_;}
-
-            //TODO: Place your get-functions here.
-
-        private:
-            AutonomousDroneController *myController_; //!< The controller of the AutonomousDrone.
-
-            btVector3 localLinearAcceleration_; //!< The linear acceleration that is used to move the AutonomousDrone the next tick.
-            btVector3 localAngularAcceleration_; //!< The linear angular acceleration that is used to move the AutonomousDrone the next tick.
-            float primaryThrust_; //!< The amount of primary thrust. This is just used, when moving forward.
-            float auxiliaryThrust_; //!< The amount of auxiliary thrust. Used for all other movements (except for rotations).
-            float rotationThrust_; //!< The amount of rotation thrust. Used for rotations only.s
-        
-    };
-
-}
-
-#endif // _AutonomousDrone_H__
Index: /code/branches/Presentation_HS17/src/orxonox/worldentities/CMakeLists.txt
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/worldentities/CMakeLists.txt	(revision 11689)
+++ /code/branches/Presentation_HS17/src/orxonox/worldentities/CMakeLists.txt	(revision 11690)
@@ -13,6 +13,4 @@
   ExplosionPart.cc
   Actionpoint.cc
-  AutonomousDrone.cc
-  Arrow.cc
   NameableStaticEntity.cc
 )
Index: /code/branches/Presentation_HS17/src/orxonox/worldentities/ControllableEntity.cc
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/worldentities/ControllableEntity.cc	(revision 11689)
+++ /code/branches/Presentation_HS17/src/orxonox/worldentities/ControllableEntity.cc	(revision 11690)
@@ -39,5 +39,4 @@
 
 #include "Scene.h"
-#include "Level.h"
 #include "infos/PlayerInfo.h"
 #include "controllers/NewHumanController.h"
@@ -68,4 +67,5 @@
         this->camera_ = nullptr;
         this->xmlcontroller_ = nullptr;
+        //this->controller_ = nullptr;
         this->reverseCamera_ = nullptr;
         this->bDestroyWhenPlayerLeft_ = false;
Index: /code/branches/Presentation_HS17/src/orxonox/worldentities/ControllableEntity.h
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/worldentities/ControllableEntity.h	(revision 11689)
+++ /code/branches/Presentation_HS17/src/orxonox/worldentities/ControllableEntity.h	(revision 11690)
@@ -175,5 +175,4 @@
             inline int getTeam() const
                 { return this->team_; }
-
 
         protected:
Index: /code/branches/Presentation_HS17/src/orxonox/worldentities/MobileEntity.cc
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/worldentities/MobileEntity.cc	(revision 11689)
+++ /code/branches/Presentation_HS17/src/orxonox/worldentities/MobileEntity.cc	(revision 11690)
@@ -36,6 +36,4 @@
 
 #include "Scene.h"
-#include "Level.h"
-#include "scriptablecontroller/scriptable_controller.h"
 
 namespace orxonox
@@ -74,7 +72,4 @@
                 this->setAngularVelocity(rotationAxis.normalisedCopy() * rotationRate.valueRadians());
         }
-
-        if(!this->id_.empty() && this->getLevel() != nullptr)
-            this->getLevel()->getScriptableController()->registerMobileEntity(this->id_, this);
     }
 
Index: /code/branches/Presentation_HS17/src/orxonox/worldentities/WorldEntity.cc
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/worldentities/WorldEntity.cc	(revision 11689)
+++ /code/branches/Presentation_HS17/src/orxonox/worldentities/WorldEntity.cc	(revision 11690)
@@ -44,7 +44,5 @@
 #include "core/XMLPort.h"
 #include "Scene.h"
-#include "Level.h"
 #include "collisionshapes/WorldEntityCollisionShape.h"
-#include "scriptablecontroller/scriptable_controller.h"
 
 namespace orxonox
@@ -81,5 +79,4 @@
         this->parentID_ = OBJECTID_UNKNOWN;
         this->bDeleteWithParent_ = true;
-        this->id_ = -1;
 
         this->node_->setPosition(Vector3::ZERO);
@@ -163,5 +160,4 @@
         XMLPortParamTemplate(WorldEntity, "scale3D",     setScale3D,     getScale3D,     xmlelement, mode, const Vector3&);
         XMLPortParam        (WorldEntity, "scale",       setScale,       getScale,       xmlelement, mode);
-        XMLPortParamLoadOnly(WorldEntity, "id",          setID,                xmlelement, mode);
         XMLPortParamLoadOnly(WorldEntity, "lookat",      lookAt_xmlport,       xmlelement, mode);
         XMLPortParamLoadOnly(WorldEntity, "direction",   setDirection_xmlport, xmlelement, mode);
@@ -185,7 +181,4 @@
         // Attached collision shapes
         XMLPortObject(WorldEntity, CollisionShape, "collisionShapes", attachCollisionShape, getAttachedCollisionShape, xmlelement, mode);
-
-        if(!this->id_.empty() && this->getLevel() != nullptr)
-            this->getLevel()->getScriptableController()->registerWorldEntity(this->id_, this);
     }
 
Index: /code/branches/Presentation_HS17/src/orxonox/worldentities/WorldEntity.h
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/worldentities/WorldEntity.h	(revision 11689)
+++ /code/branches/Presentation_HS17/src/orxonox/worldentities/WorldEntity.h	(revision 11690)
@@ -110,10 +110,4 @@
             virtual void changedActivity(void) override;
             virtual void changedVisibility(void) override;
-
-            inline std::string getID(void)
-                { return this->id_; }
-
-            inline void setID(std::string id)
-                { this->id_ = id; }
 
             virtual void setPosition(const Vector3& position) = 0;
@@ -448,5 +442,4 @@
 
             btRigidBody*  physicalBody_; //!< Bullet rigid body. Everything physical is applied to this instance.
-            std::string   id_;           //!< Used by the ScriptableController to identify objects
 
         private:
Index: /code/branches/Presentation_HS17/src/orxonox/worldentities/pawns/Pawn.cc
===================================================================
--- /code/branches/Presentation_HS17/src/orxonox/worldentities/pawns/Pawn.cc	(revision 11689)
+++ /code/branches/Presentation_HS17/src/orxonox/worldentities/pawns/Pawn.cc	(revision 11690)
@@ -50,6 +50,4 @@
 #include "sound/WorldSound.h"
 #include "core/object/ObjectListIterator.h"
-#include "Level.h"
-#include "scriptablecontroller/scriptable_controller.h"
 
 #include "controllers/FormationController.h"
@@ -162,7 +160,4 @@
 
         XMLPortParam ( RadarViewable, "radarname", setRadarName, getRadarName, xmlelement, mode );
-
-        if(!this->id_.empty() && this->getLevel() != nullptr)
-            this->getLevel()->getScriptableController()->registerPawn(this->id_, this);
     }
 
@@ -287,5 +282,5 @@
         {
             // Health-damage cannot be absorbed by shields.
-            // Shield-damage only reduces shield health.
+            // Shield-damage only reduces shield health. 
             // Normal damage can be (partially) absorbed by shields.
 
@@ -307,5 +302,4 @@
                 this->setHealth(this->health_ - (damage - shielddamage) - healthdamage);
             }
-            this->getLevel()->getScriptableController()->pawnHit(this, originator, this->health_, this->shieldHealth_);
 
             this->lastHitOriginator_ = originator;
@@ -408,6 +402,4 @@
             }
         }
-
-        this->getLevel()->getScriptableController()->pawnKilled(this);
     }
     void Pawn::goWithStyle()
@@ -633,5 +625,5 @@
         {
             // delete all debug models
-            for(Model* model : debugWeaponSlotModels_)
+            for(Model* model : debugWeaponSlotModels_) 
             {
                 model->destroy();
