Index: code/branches/3DPacman_FS19/src/modules/pacman/PacmanGhost.h
===================================================================
--- code/branches/3DPacman_FS19/src/modules/pacman/PacmanGhost.h	(revision 12303)
+++ code/branches/3DPacman_FS19/src/modules/pacman/PacmanGhost.h	(revision 12304)
@@ -38,4 +38,17 @@
 namespace orxonox {
 
+    extern Vector3 possibleposition[67];
+
+    extern bool findpos(Vector3 one, Vector3 other);
+
+
+    struct graphVertex;
+    void findNeighboorVertices(Vector3 actuelposition, graphVertex adjacentVertices[]);
+    void updateShortestDistanceToStart(graphVertex &vertex, graphVertex &neighboor);
+    graphVertex findNextVertexToConsider(graphVertex[]);
+
+    extern graphVertex listOfVertices[];
+
+
     class _OrxonoxExport PacmanGhost : public ControllableEntity
     {
@@ -44,19 +57,19 @@
             virtual ~PacmanGhost();
 
-            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 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.
 
-            void move(float dt, Vector3 actuelposition, Vector3 velocity);
+            virtual void move(float dt, Vector3 actuelposition, Vector3 velocity);
             
-            void resetGhost();
+            virtual void resetGhost();
 
-            void changewith(PacmanGhost* otherghost);
-            void levelupvelo();
+            virtual void changewith(PacmanGhost* otherghost);
+            virtual void levelupvelo();
 
-            bool findpos(Vector3 one, Vector3 other);      
-            void changemovability();
+            //bool findpos(Vector3 one, Vector3 other);      
+            virtual void changemovability();
             bool dontmove = false;
 
-
+       
             int decision = 0; 
             Vector3 resetposition = Vector3(0,10,15);
@@ -70,25 +83,9 @@
             bool lockmove = false;
 
-            //All positions in the map, see documentation
-    Vector3 possibleposition[67] = {Vector3(20,10,245),Vector3(215,10,245),Vector3(215,10,195),Vector3(185,10,195),Vector3(135,10,195), //0-4
-        Vector3(185,10,150),Vector3(135,10,150),Vector3(215,10,150),Vector3(215,10,105),Vector3(135,10,105), //5-9
-        Vector3(135,10,15),Vector3(135,10,-85),Vector3(215,10,-85),Vector3(135,10,-135),Vector3(215,10,-135), //10-14
-        Vector3(215,10,-195),Vector3(135,10,-195),Vector3(20,10,195),Vector3(-20,10,195),Vector3(-20,10,245), //15-19
-        Vector3(-215,10,245),Vector3(-215,10,195),Vector3(-185,10,195),Vector3(-135,10,195),Vector3(-70,10,195), //20-24
-        Vector3(70,10,195),Vector3(70,10,150),Vector3(20,10,150),Vector3(-20,10,150),Vector3(-70,10,150), //25-29
-        Vector3(-135,10,150),Vector3(-185,10,150),Vector3(-215,10,150),Vector3(-215,10,105),Vector3(-135,10,105), //30-34
-        Vector3(-70,10,105),Vector3(-20,10,105),Vector3(20,10,105),Vector3(70,10,105),Vector3(70,10,60), //35-39
-        Vector3(0,10,60),Vector3(-70,10,60),Vector3(-135,10,15),Vector3(-70,10,60),Vector3(0,10,15), //40-44
-        Vector3(70,10,15),Vector3(-70,10,-35),Vector3(-20,10,-35),Vector3(20,10,-35),Vector3(70,10,-35), //45-49
-        Vector3(70,10,-85),Vector3(20,10,-85),Vector3(-20,10,-85),Vector3(-70,10,-85),Vector3(-135,10,-85), //50-54
-        Vector3(-215,10,-85),Vector3(-215,10,-135),Vector3(-135,10,-135),Vector3(-70,10,-135),Vector3(-20,10,-135), //55-59
-        Vector3(20,10,-135),Vector3(70,10,-135),Vector3(20,10,-195),Vector3(-20,10,-195),Vector3(-135,10,-195), //60-64
-        Vector3(-215,10,-195),Vector3(0,10,-35)}; //65-66
+        Vector3 getShortestPath(Vector3 start, Vector3 goal);
 
-        private:
-            void setnewTarget(int firstdec);
-            void setnewTarget(int firstdec, int seconddec);
-            void setnewTarget(int firstdec, int seconddec, int thirddec);
-            void setnewTarget(int firstdec, int seconddec, int thirddec, int fourthdec);
+        Vector3 setPureArrayPos(Vector3 &posToSet);
+
+            private:
     };
 
