Index: code/branches/towerdefenseHS14/src/modules/towerdefense/CMakeLists.txt
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/CMakeLists.txt	(revision 10091)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/CMakeLists.txt	(revision 10105)
@@ -5,5 +5,7 @@
   TowerDefenseHUDController.cc
   TowerDefensePlayerStats.cc
-  TowerTurret.cc
+  TDCoordinate.cc
+  Enemy.cc
+
 )
 
Index: code/branches/towerdefenseHS14/src/modules/towerdefense/Enemy.cc
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/Enemy.cc	(revision 10105)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/Enemy.cc	(revision 10105)
@@ -0,0 +1,58 @@
+//
+//  Enemy.cc
+//  Orxonox
+//
+//  Created by Jonas Erb on 22.10.14.
+
+/**
+@brief
+See TowerDefenseReadme.txt for Information.
+
+@ingroup TowerDefense
+*/
+#include "Enemy.h"
+
+#include "core/CoreIncludes.h"
+//#include "core/XMLPort.h"
+
+namespace orxonox
+{
+    RegisterClass(Enemy);
+
+    /**
+    @brief
+        Constructor. Registers and initializes the object.
+    */
+    Enemy::Enemy(Context* context) : Pawn(context)
+    {
+        RegisterObject(Enemy);
+
+        this->setCollisionType(WorldEntity::Dynamic);
+
+    }
+
+    void Enemy::addWaypoint(TDCoordinate coord)
+    {
+    	Waypointsvector_.push_back(coord);
+    }
+
+    void Enemy::popWaypoint()
+    {
+    	if(Waypointsvector_.size()>0)
+    		Waypointsvector_.pop_back();
+    }
+
+    TDCoordinate Enemy::peekWaypoint()
+    {
+    	if(Waypointsvector_.size()<=0){
+    		TDCoordinate coord = {-1,-1};
+    		return coord;
+    	}else{
+        	return Waypointsvector_.at(Waypointsvector_.size()-1);
+
+    	}
+
+
+    }
+
+}
Index: code/branches/towerdefenseHS14/src/modules/towerdefense/Enemy.h
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/Enemy.h	(revision 10105)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/Enemy.h	(revision 10105)
@@ -0,0 +1,53 @@
+//
+//  Enemy.h
+//  Orxonox
+//
+//  Created by Jonas Erb on 22.10.14.
+
+/**
+@brief
+See TowerDefenseReadme.txt for Information.
+
+@ingroup TowerDefense
+*/
+
+
+
+#ifndef Orxonox_Tower_h
+#define Orxonox_Tower_h
+
+#include "TDCoordinate.h"
+#include "towerdefense/TowerDefense.h"
+#include "gametypes/Deathmatch.h"
+#include "towerdefense/TowerDefensePrereqs.h"
+#include "worldentities/pawns/SpaceShip.h"
+
+namespace orxonox
+{
+/* Class to give the enemy spaceships waypoints and
+ *
+ */
+	class _TowerDefenseExport Enemy : public Pawn
+	{
+
+	public:
+
+		Enemy(Context* context);
+        virtual ~Enemy() {};
+
+        //health gibt es unter: health_
+
+        void addWaypoint(TDCoordinate coord);
+        void popWaypoint();
+        TDCoordinate peekWaypoint();
+	private:
+
+        std::vector<TDCoordinate> Waypointsvector_;
+
+	};
+
+
+
+}
+
+#endif /* _TowerDefense_H__ */
Index: code/branches/towerdefenseHS14/src/modules/towerdefense/TDCoordinate.cc
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TDCoordinate.cc	(revision 10105)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TDCoordinate.cc	(revision 10105)
@@ -0,0 +1,42 @@
+#include "TDCoordinate.h"
+
+#include "towerdefense/TowerDefensePrereqs.h"
+
+
+
+
+namespace orxonox
+{
+    RegisterClass(TDCoordinate);
+
+    /**
+    @brief
+        Constructor. Registers and initializes the object.
+    */
+    TDCoordinate::TDCoordinate()
+    {
+        RegisterObject(TDCoordinate);
+        x=0;
+        y=0;
+
+    }
+
+    TDCoordinate::TDCoordinate(int x, int y)
+    {
+    	this->x=x;
+    	this->y=y;
+    }
+
+
+    Vector3 TDCoordinate::get3dcoordinate()
+    {
+    	int tileScale = 100;
+
+    	Vector3 coord = new Vector3();
+    	coord.x= (x-8) * tileScale;
+    	coord.y= (y-8) * tileScale;
+    	coord.z=0;
+
+    	return coord;
+    }
+}
Index: code/branches/towerdefenseHS14/src/modules/towerdefense/TDCoordinate.h
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TDCoordinate.h	(revision 10105)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TDCoordinate.h	(revision 10105)
@@ -0,0 +1,32 @@
+#ifndef _TDCoordinate_H__
+#define _TDCoordinate_H__
+
+#include "core/CoreIncludes.h"
+#include "TDCoordinate.h"
+#include "towerdefense/TowerDefense.h"
+#include "gametypes/Deathmatch.h"
+#include "towerdefense/TowerDefensePrereqs.h"
+#include "worldentities/pawns/SpaceShip.h"
+namespace orxonox{
+
+
+//Class to save the Coordinates in a class instead of struct
+//Convert 2d coordinates to 3d in order to set waypoints
+class _TowerDefenseExport TDCoordinate: public Pawn {
+public:
+			int x;
+            int y;
+
+            TDCoordinate();
+
+            Vector3 get3dcoordinate();
+
+            virtual ~TDCoordinate() {};
+
+            TDCoordinate(int x, int y);
+        };
+
+
+}
+
+#endif /* _TDCoordinate_H__ */
Index: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.cc
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.cc	(revision 10091)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.cc	(revision 10105)
@@ -78,5 +78,5 @@
 #include "TowerTurret.h"
 #include "TowerDefenseCenterpoint.h"
-
+//#include "TDCoordinate.h"
 #include "worldentities/SpawnPoint.h"
 #include "worldentities/pawns/Pawn.h"
@@ -131,10 +131,10 @@
 
         const int kInitialTowerCount = 3;
-        Coordinate initialTowerCoordinates[kInitialTowerCount] = {{3,2}, {8,5}, {12,10}};
 
         for (int i = 0; i < kInitialTowerCount; i++)
         {
-            Coordinate coordinate = initialTowerCoordinates[i];
-            addTower(coordinate.x, coordinate.y);
+        	//{{3,2}, {8,5}, {12,10}}; old coordinates
+            TDCoordinate* coordinate = new TDCoordinate(i,(i*2));
+            addTower(coordinate->x, coordinate->y);
         }
 
@@ -144,4 +144,7 @@
     }
 
+    void TowerDefense::addEnemy(){}
+
+
     void TowerDefense::end()
     {
@@ -150,4 +153,6 @@
         ChatManager::message("Match is over");
     }
+
+
 
     void TowerDefense::addTower(int x, int y)
@@ -184,5 +189,9 @@
 
         // Add tower to coordinatesStack
-        Coordinate newTowerCoordinates = {x, y};
+        TDCoordinate newTowerCoordinates;
+        newTowerCoordinates.x=x;
+        newTowerCoordinates.y=y;
+
+
         addedTowersCoordinates_.push_back(newTowerCoordinates);
 
@@ -205,7 +214,7 @@
     bool TowerDefense::towerExists(int x, int y)
     {
-        for(std::vector<Coordinate>::iterator it = addedTowersCoordinates_.begin(); it != addedTowersCoordinates_.end(); ++it)
-        {
-            Coordinate currentCoordinates = (Coordinate) (*it);
+        for(std::vector<TDCoordinate>::iterator it = addedTowersCoordinates_.begin(); it != addedTowersCoordinates_.end(); ++it)
+        {
+            TDCoordinate currentCoordinates = (TDCoordinate) (*it);
             if (currentCoordinates.x == x && currentCoordinates.y == y)
                 return true;
Index: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.h
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.h	(revision 10091)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.h	(revision 10105)
@@ -37,5 +37,5 @@
 #ifndef _TowerDefense_H__
 #define _TowerDefense_H__
-
+#include "TDCoordinate.h"
 #include "towerdefense/TowerDefensePrereqs.h"
 #include "gametypes/Deathmatch.h"
@@ -51,4 +51,5 @@
         virtual ~TowerDefense();
 
+        void addEnemy();
         virtual void start(); //<! The function is called when the gametype starts
         virtual void end();
@@ -86,10 +87,6 @@
         bool towerExists(int x, int y);
 
-        typedef struct {
-            int x;
-            int y;
-        } Coordinate;
 
-        std::vector<Coordinate> addedTowersCoordinates_;
+        std::vector<TDCoordinate> addedTowersCoordinates_;
         std::vector<TowerTurret*> towers_;
     };
