Index: branches/presentation/src/defs/class_id.h
===================================================================
--- branches/presentation/src/defs/class_id.h	(revision 9122)
+++ branches/presentation/src/defs/class_id.h	(revision 9123)
@@ -276,6 +276,6 @@
   CL_COLLISION_REACTION         =    0X00000713,
   CL_CR_PHYSICS_MOMENTUM        =    0X00000714,
-  CL_CR_PHYSICS_GROUND          =    0X00000715,
-  CL_CR_PHYSICS_GROUND_WALK     =    0X00000716,
+  CL_CR_PHYSICS_GROUND_WALK     =    0X00000715,
+  CL_CR_PHYSICS_FULL_WALK       =    0X00000716,
   CL_CR_OBJECT_DAMAGE           =    0X00000717,
   CL_CR_OBJECT_PICKUP           =    0X00000718,
Index: branches/presentation/src/lib/collision_reaction/Makefile.am
===================================================================
--- branches/presentation/src/lib/collision_reaction/Makefile.am	(revision 9122)
+++ branches/presentation/src/lib/collision_reaction/Makefile.am	(revision 9123)
@@ -10,5 +10,6 @@
                      collision_reaction.cc \
                      cr_object_damage.cc \
-                     cr_physics_ground_walk.cc
+                     cr_physics_ground_walk.cc \
+                     cr_physics_full_walk.cc
 
 
@@ -21,4 +22,5 @@
                      collision_reaction.h \
                      cr_object_damage.h \
-                     cr_physics_ground_walk.h
+                     cr_physics_ground_walk.h \
+                     cr_physics_full_walk.h
 
Index: branches/presentation/src/lib/collision_reaction/cr_physics_ground_walk.cc
===================================================================
--- branches/presentation/src/lib/collision_reaction/cr_physics_ground_walk.cc	(revision 9122)
+++ branches/presentation/src/lib/collision_reaction/cr_physics_ground_walk.cc	(revision 9123)
@@ -74,8 +74,5 @@
 
   float height = 0.0f;
-  float front = 0.0f;
-  float back = 0.0f;
-  float right = 0.0f;
-  float left = 0.0f;
+
 
 
@@ -94,46 +91,4 @@
     switch( ce->getType())
     {
-        /* collision in the X-AXIS */
-      case COLLISION_TYPE_AXIS_X:
-        front = collPos.len() - box->halfLength[0];
-
-        // object is beneath the plane (ground)
-        if( front <= 0.0f )
-        {
-          Vector dirX = entity->getAbsDirX();
-          dirX.y = 0.0f;
-          dirX.normalize();
-          Vector backoff = dirX * front;
-
-          entity->shiftCoor(backoff);
-        }
-        else if( ce->isInWall())
-        {
-          // object is already in the wall
-          entity->setAbsCoor(entity->getLastAbsCoor());
-        }
-        break;
-
-      case COLLISION_TYPE_AXIS_X_NEG:
-        back = collPos.len() - box->halfLength[0];
-
-        // object is beneath the plane (ground)
-        if( back <= 0.0f)
-        {
-          Vector dirX = entity->getAbsDirX();
-          dirX.y = 0.0f;
-          dirX.normalize();
-          Vector backoff = dirX * back * -1.0f;
-
-          entity->shiftCoor(backoff);
-        }
-        else if( ce->isInWall())
-        {
-          // object is already in the wall
-          entity->setAbsCoor(entity->getLastAbsCoor());
-        }
-        break;
-
-
         /* collision in the Y-AXIS */
       case COLLISION_TYPE_AXIS_Y_NEG:
@@ -153,5 +108,4 @@
         {
           entity->setAbsCoor(entity->getLastAbsCoor());
-          PRINTF(0)("ground collision: reset pos\n");
         }
         else
@@ -163,55 +117,7 @@
 
 
-        /* collision in the Z-AXIS */
-      case COLLISION_TYPE_AXIS_Z:
-
-        right = collPos.len()  - box->halfLength[2];
-
-        // object is beneath the plane (ground)
-        if( right <= 0.0f )
-        {
-          Vector dirZ = entity->getAbsDirZ();
-          dirZ.y = 0.0f;
-          dirZ.normalize();
-          Vector backoff = dirZ * right;
-          entity->shiftCoor(backoff);
-        }
-        else if( ce->isInWall())
-        {
-          // object is already in the wall
-          entity->setAbsCoor(entity->getLastAbsCoor());
-        }
-        break;
-
-
-        // collision in the z-axis
-      case COLLISION_TYPE_AXIS_Z_NEG:
-
-        left = collPos.len()  - box->halfLength[2];
-
-        // object is beneath the plane (ground)
-        if( left <= 0.0f )
-        {
-          Vector dirZ = entity->getAbsDirZ();
-          dirZ.y = 0.0f;
-          dirZ.normalize();
-          Vector backoff = dirZ * left*-1.0f;
-          entity->shiftCoor(backoff);
-        }
-        // object is already in the wall
-        else if( ce->isInWall())
-        {
-          entity->setAbsCoor(entity->getLastAbsCoor());
-        }
-        break;
     }
   }
   //PRINTF(0)("collision distances: x: %f, y: %f, z: %f\n", front, height, side);
-
-
-
-
-
-
 
 }
Index: branches/presentation/src/world_entities/creatures/fps_player.cc
===================================================================
--- branches/presentation/src/world_entities/creatures/fps_player.cc	(revision 9122)
+++ branches/presentation/src/world_entities/creatures/fps_player.cc	(revision 9123)
@@ -191,4 +191,5 @@
   this->getWeaponManager().getFixedTarget()->setParent(State::getCameraTargetNode());
   this->getWeaponManager().getFixedTarget()->setRelCoor(0,0,0);
+
 }
 
@@ -208,7 +209,6 @@
 {
 
-  if( this->bPosBut)
-  {
-    this->bPosBut = false;
+  if( this->bJump)
+  {
     printf("mechanic2:walkTo( %f, mtheight, %f)\n",this->getAbsCoorX(),this->getAbsCoorZ());
   }
@@ -373,5 +373,4 @@
   else if( event.type == KeyMapper::PEV_JUMP)
     this->bJump = event.bPressed;
-    this->bPosBut = event.bPressed;
 }
 
@@ -379,5 +378,5 @@
 {
   Playable::respawn();
-  
+
   AABB* box = this->getModelAABB();
   if( box != NULL)
