Index: code/branches/Racingbot/src/modules/gametypes/CMakeLists.txt
===================================================================
--- code/branches/Racingbot/src/modules/gametypes/CMakeLists.txt	(revision 9388)
+++ code/branches/Racingbot/src/modules/gametypes/CMakeLists.txt	(revision 9399)
@@ -5,4 +5,5 @@
   OldSpaceRace.cc
   OldRaceCheckPoint.cc
+  SpaceRaceController.cc
 )
 
Index: code/branches/Racingbot/src/modules/gametypes/GametypesPrereqs.h
===================================================================
--- code/branches/Racingbot/src/modules/gametypes/GametypesPrereqs.h	(revision 9388)
+++ code/branches/Racingbot/src/modules/gametypes/GametypesPrereqs.h	(revision 9399)
@@ -67,4 +67,5 @@
     class SpaceRace;
     class OldSpaceRace;
+    class SpaceRaceController;
 }
 
Index: code/branches/Racingbot/src/modules/gametypes/SpaceRaceController.cc
===================================================================
--- code/branches/Racingbot/src/modules/gametypes/SpaceRaceController.cc	(revision 9399)
+++ code/branches/Racingbot/src/modules/gametypes/SpaceRaceController.cc	(revision 9399)
@@ -0,0 +1,49 @@
+/*
+ * SpaceRaceController.cc
+ *
+ *  Created on: Oct 8, 2012
+ *      Author: purgham
+ */
+
+#include <gametypes/SpaceRaceController.h>
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+
+
+// Von SpaceRaceManager points einlesen
+// Berechnungsklasse nextPoint zur verfuegung stellen
+// ^- aufrufen ueber tick (if ob noetig)
+namespace orxonox
+{
+
+SpaceRaceController::SpaceRaceController(BaseObject* creator): ArtificialController(creator)
+{
+
+    std::vector<RaceCheckPoint*> wayOptions = NULL;
+    std::vector<RaceCheckPoint*> wayChosen = new std::vector<RaceCheckPoint*>();
+    // TODO Auto-generated constructor stub
+    for (ObjectList<SpaceRaceManager >::iterator it = ObjectList<SpaceRaceManager>::begin(); it != ObjectList<SpaceRaceManager>::end(); ++it)
+        wayOptions=it->getAllCheckpoints();
+
+
+}
+
+SpaceRaceController::~SpaceRaceController()
+{
+    // TODO Auto-generated destructor stub
+}
+
+void SpaceRaceController::XMLPort(Element& xmlelement, XMLPort::Mode mode){
+            SUPER(SpaceRaceController, XMLPort, xmlelement, mode);
+
+            XMLPortParam(ArtificialController, "accuracy", setAccuracy, getAccuracy, xmlelement, mode).defaultValues(100.0f);
+            XMLPortObject(ArtificialController, WorldEntity, "waypoints", addWaypoint, getWaypoint,  xmlelement, mode);
+
+}
+void SpaceRaceController::tick(float dt){
+
+}
+
+
+
+}
Index: code/branches/Racingbot/src/modules/gametypes/SpaceRaceController.h
===================================================================
--- code/branches/Racingbot/src/modules/gametypes/SpaceRaceController.h	(revision 9399)
+++ code/branches/Racingbot/src/modules/gametypes/SpaceRaceController.h	(revision 9399)
@@ -0,0 +1,34 @@
+/*
+ * SpaceRaceController.h
+ *
+ *  Created on: Oct 8, 2012
+ *      Author: purgham
+ */
+
+#ifndef SPACERACECONTROLLER_H_
+#define SPACERACECONTROLLER_H_
+
+#include "gametypes/GametypesPrereqs.h"
+#include "controllers/ArtificialController.h"
+#include "gametypes/Gametype.h"
+
+
+
+namespace orxonox
+{
+    class _GametypesExport SpaceRaceController : public ArtificialController, public Tickable
+    {
+        private:
+            vector<RaceCheckPoint*> lastRaceCheckpoint;
+            vector<RaceCheckPoint*> nextRaceCheckpoint;
+        public:
+          SpaceRaceController(BaseObject* creator);
+          virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+          virtual ~SpaceRaceController();
+          virtual void tick(float dt);
+    };
+
+}
+
+
+#endif /* SPACERACECONTROLLER_H_ */
Index: code/branches/Racingbot/src/modules/gametypes/SpaceRaceManager.cc
===================================================================
--- code/branches/Racingbot/src/modules/gametypes/SpaceRaceManager.cc	(revision 9388)
+++ code/branches/Racingbot/src/modules/gametypes/SpaceRaceManager.cc	(revision 9399)
@@ -94,4 +94,8 @@
     }
 
+    std::vector<RaceCheckPoint*> SpaceRaceManager::getAllCheckpoints(){
+        return checkpoints_;
+    }
+
     /**
         @brief Returns the checkpoint with the given checkpoint-index (@see RaceCheckPoint::getCheckpointIndex).
Index: code/branches/Racingbot/src/modules/gametypes/SpaceRaceManager.h
===================================================================
--- code/branches/Racingbot/src/modules/gametypes/SpaceRaceManager.h	(revision 9388)
+++ code/branches/Racingbot/src/modules/gametypes/SpaceRaceManager.h	(revision 9399)
@@ -67,4 +67,6 @@
             void checkpointReached(RaceCheckPoint* newCheckpoint, PlayerInfo* player);
 
+            std::vector<RaceCheckPoint*> getAllCheckpoints();
+
             void tick(float dt);
 
