Index: /code/branches/3DPacman_FS18/data/overlays/PacmanHUD.oxo
===================================================================
--- /code/branches/3DPacman_FS18/data/overlays/PacmanHUD.oxo	(revision 11978)
+++ /code/branches/3DPacman_FS18/data/overlays/PacmanHUD.oxo	(revision 11979)
@@ -58,4 +58,15 @@
     />
 
+    <PacmanHUDinfo
+     position  = "0.5, 0.5"
+     pickpoint = "0.0, 0.0"
+     font      = "ShareTechMono"
+     textsize  = 0.04
+     colour    = "1.0, 1.0, 1.0, 1.0"
+     align     = "left"
+
+     showlevel   = true
+    />
+
  </OverlayGroup>
 </Template>
Index: /code/branches/3DPacman_FS18/src/modules/pacman/Pacman.cc
===================================================================
--- /code/branches/3DPacman_FS18/src/modules/pacman/Pacman.cc	(revision 11978)
+++ /code/branches/3DPacman_FS18/src/modules/pacman/Pacman.cc	(revision 11979)
@@ -64,4 +64,7 @@
         }
         this->posreset();
+
+        totallevelpoint = ObjectList<PacmanPointSphere>().size() + totallevelpoint;
+        level++;
     }
 
@@ -124,8 +127,5 @@
         }
 
-        }
-
-
-        
+        } 
 
     }
@@ -193,4 +193,8 @@
     }
 
+    int Pacman::getLevel(){
+        return level;
+    }
+
     void Pacman::posreset(){
         for(int i = 0; i<4; ++i){
@@ -202,5 +206,8 @@
     void Pacman::takePoint(PacmanPointSphere* taken){
         ++point;
-        if(point == totallevelpoint) this->levelUp();
+        if(point == totallevelpoint){ 
+            this->levelUp();
+            return;
+        }
         Vector3 postaken = taken->getPosition();
         postaken.y = -50;
Index: /code/branches/3DPacman_FS18/src/modules/pacman/Pacman.h
===================================================================
--- /code/branches/3DPacman_FS18/src/modules/pacman/Pacman.h	(revision 11978)
+++ /code/branches/3DPacman_FS18/src/modules/pacman/Pacman.h	(revision 11979)
@@ -87,4 +87,5 @@
             int getTimer();
             int getLives();
+            int getLevel();
 
 
Index: /code/branches/3DPacman_FS18/src/modules/pacman/PacmanGelb.h
===================================================================
--- /code/branches/3DPacman_FS18/src/modules/pacman/PacmanGelb.h	(revision 11978)
+++ /code/branches/3DPacman_FS18/src/modules/pacman/PacmanGelb.h	(revision 11979)
@@ -59,6 +59,6 @@
 
                 // This function call adds a lift to the ship when it is rotating to make it's movement more "realistic" and enhance the feeling.
-                if (this->getLocalVelocity().z < 0 && std::abs(this->getLocalVelocity().z) < stallSpeed_)
-                this->moveRightLeft(-lift_ / 5.0f * value * sqrt(std::abs(this->getLocalVelocity().y)));
+                //if (this->getLocalVelocity().z < 0 && std::abs(this->getLocalVelocity().z) < stallSpeed_)
+                //this->moveRightLeft(-lift_ / 5.0f * value * sqrt(std::abs(this->getLocalVelocity().y)));
             };
             virtual void rotatePitch(const Vector2& value) override{};
Index: /code/branches/3DPacman_FS18/src/modules/pacman/PacmanGhost.cc
===================================================================
--- /code/branches/3DPacman_FS18/src/modules/pacman/PacmanGhost.cc	(revision 11978)
+++ /code/branches/3DPacman_FS18/src/modules/pacman/PacmanGhost.cc	(revision 11979)
@@ -117,9 +117,9 @@
         if(this->ismoving){
             if(!(abs(this->actuelposition.z-target_z)<0.5)) {
-                velocity = Vector3(0,0,-sgn(this->actuelposition.z-this->target_z)*2);
+                velocity = Vector3(0,0,-sgn(this->actuelposition.z-this->target_z));
                 move(dt, actuelposition, velocity);
             }    
             if(!(abs(this->actuelposition.x-target_x)<0.5)){
-                velocity = Vector3(-sgn(this->actuelposition.x-this->target_x)*2,0,0);
+                velocity = Vector3(-sgn(this->actuelposition.x-this->target_x),0,0);
                 move(dt, actuelposition, velocity);
             }
@@ -440,6 +440,6 @@
     void PacmanGhost::move(float dt, Vector3 actuelposition, Vector3 velocity){
         if(!dontmove){
-            this->setPosition(Vector3(actuelposition.x+20*velocity.x*dt,10,actuelposition.z+20*velocity.z*dt));
-        if((abs(abs(velocity.x)-2)<0.1) && (abs(velocity.z-0)<0.1))
+            this->setPosition(Vector3(actuelposition.x+speed*velocity.x*dt,10,actuelposition.z+speed*velocity.z*dt));
+        if((abs(abs(velocity.x)-1)<0.1) && (abs(velocity.z-0)<0.1))
             if(velocity.x<0){
                  this->setOrientation(Quaternion(Radian(-1.57), Vector3(0, 1, 0)));  
@@ -448,5 +448,5 @@
                  this->setOrientation(Quaternion(Radian(1.57), Vector3(0, 1, 0)));  
             }
-        if((abs(abs(velocity.z)-2)<0.1) && (abs(velocity.x-0)<0.1))
+        if((abs(abs(velocity.z)-1)<0.1) && (abs(velocity.x-0)<0.1))
             if(velocity.z<0){
                  this->setOrientation(Quaternion(Radian(3.14), Vector3(0, 1, 0)));  
@@ -485,7 +485,5 @@
 
     void PacmanGhost::levelupvelo(){
-        velocity.x = velocity.x + 2;
-        velocity.y = velocity.y + 2;
-        velocity.z = velocity.z + 2;
+        speed ++;
     }
 }
Index: /code/branches/3DPacman_FS18/src/modules/pacman/PacmanGhost.h
===================================================================
--- /code/branches/3DPacman_FS18/src/modules/pacman/PacmanGhost.h	(revision 11978)
+++ /code/branches/3DPacman_FS18/src/modules/pacman/PacmanGhost.h	(revision 11979)
@@ -69,4 +69,5 @@
             Vector3 velocity;
             Vector3 oldvelocity = Vector3(2,0,0);
+            int speed = 20;
 
         private:
Index: /code/branches/3DPacman_FS18/src/modules/pacman/PacmanHUDinfo.cc
===================================================================
--- /code/branches/3DPacman_FS18/src/modules/pacman/PacmanHUDinfo.cc	(revision 11978)
+++ /code/branches/3DPacman_FS18/src/modules/pacman/PacmanHUDinfo.cc	(revision 11979)
@@ -60,4 +60,5 @@
         XMLPortParam(PacmanHUDinfo, "showgameover",   setGameover,   getGameover,   xmlelement, mode).defaultValues(false);
         XMLPortParam(PacmanHUDinfo, "showlive",   setlive,   getlive,   xmlelement, mode).defaultValues(false);
+        XMLPortParam(PacmanHUDinfo, "showlevel",   setlevel,   getlevel,   xmlelement, mode).defaultValues(false);
        
     
@@ -102,4 +103,11 @@
             }
 
+            if(this->showlevel){
+                const std::string& live = "Level: "+multi_cast<std::string>(this->PacmanGame->getLevel());
+                setTextSize(0.03);
+                this->setCaption(live);
+            }
+
+
             if(death && !(this->showgameover)){
                 setTextSize(0.0);
Index: /code/branches/3DPacman_FS18/src/modules/pacman/PacmanHUDinfo.h
===================================================================
--- /code/branches/3DPacman_FS18/src/modules/pacman/PacmanHUDinfo.h	(revision 11978)
+++ /code/branches/3DPacman_FS18/src/modules/pacman/PacmanHUDinfo.h	(revision 11979)
@@ -81,4 +81,10 @@
                 { return this->showlive; }
 
+            inline void setlevel(bool value){
+                this->showlevel = value;
+            }
+            inline int getlevel() const
+                { return this->showlevel; }
+
 
         private:
@@ -89,4 +95,5 @@
             bool showgameover;
             bool showlive;
+            bool showlevel;
             int messageID;
     };
Index: /code/branches/3DPacman_FS18/src/modules/pacman/PacmanPointAfraid.cc
===================================================================
--- /code/branches/3DPacman_FS18/src/modules/pacman/PacmanPointAfraid.cc	(revision 11978)
+++ /code/branches/3DPacman_FS18/src/modules/pacman/PacmanPointAfraid.cc	(revision 11979)
@@ -85,4 +85,6 @@
 
     void PacmanPointAfraid::resetPacmanPointAfraid(){
+        resetposition = this->getPosition();
+        resetposition.y = 10;
         this->setPosition(resetposition);
     }
Index: /code/branches/3DPacman_FS18/src/modules/pacman/PacmanPointSphere.cc
===================================================================
--- /code/branches/3DPacman_FS18/src/modules/pacman/PacmanPointSphere.cc	(revision 11978)
+++ /code/branches/3DPacman_FS18/src/modules/pacman/PacmanPointSphere.cc	(revision 11979)
@@ -85,4 +85,6 @@
 
     void PacmanPointSphere::resetPacmanPointSphere(){
+        resetposition = this->getPosition();
+        resetposition.y = 10;
         this->setPosition(resetposition);
     }
