Index: /trunk/src/story_entities/campaign.cc
===================================================================
--- /trunk/src/story_entities/campaign.cc	(revision 5750)
+++ /trunk/src/story_entities/campaign.cc	(revision 5751)
@@ -91,24 +91,14 @@
     return;
 
-  const TiXmlElement* element = root->FirstChildElement();
-  // load Worlds/Subcampaigns/Whatever
-  StoryEntity* lastCreated = NULL;
-  while( element != NULL)
+  LOAD_PARAM_START_CYCLE(root, element);
   {
     PRINTF(5)("Campaign: Constructor: adding a world\n");
     StoryEntity* created = (StoryEntity*) GameLoader::getInstance()->fabricate(element);
-      /*
-    if( lastCreated != NULL)
-    created->setNextStoryID( lastCreated->getStoryID());
-    else
-    created->setNextStoryID( WORLD_ID_GAMEEND);
-      */
     if( created != NULL)
     {
       this->addEntity( created);
-      lastCreated = created;
-    }
-    element = element->NextSiblingElement();
+    }
   }
+  LOAD_PARAM_END_CYCLE(element);
 }
 
Index: /trunk/src/story_entities/world.cc
===================================================================
--- /trunk/src/story_entities/world.cc	(revision 5750)
+++ /trunk/src/story_entities/world.cc	(revision 5751)
@@ -371,4 +371,6 @@
   EventHandler::getInstance()->subscribe(this->localPlayer, ES_GAME, KeyMapper::PEV_NEXT_WEAPON);
   EventHandler::getInstance()->subscribe(this->localPlayer, ES_GAME, KeyMapper::PEV_PREVIOUS_WEAPON);
+  EventHandler::getInstance()->subscribe(this->localPlayer, ES_GAME, SDLK_PAGEUP);
+  EventHandler::getInstance()->subscribe(this->localPlayer, ES_GAME, SDLK_PAGEDOWN);
 
   // bind camera
Index: /trunk/src/world_entities/camera.cc
===================================================================
--- /trunk/src/world_entities/camera.cc	(revision 5750)
+++ /trunk/src/world_entities/camera.cc	(revision 5751)
@@ -167,6 +167,6 @@
       this->setParentSoft("TrackNode");
       this->target->setParentSoft("TrackNode");
-      this->setRelCoorSoft(Vector(0, 10, 0));
-      this->target->setRelCoorSoft(0,0,0);
+      this->setRelCoorSoft(Vector(30, 50, 0));
+      this->target->setRelCoorSoft(35,0,0);
     }
 }
Index: /trunk/src/world_entities/player.cc
===================================================================
--- /trunk/src/world_entities/player.cc	(revision 5750)
+++ /trunk/src/world_entities/player.cc	(revision 5751)
@@ -273,4 +273,6 @@
 {
   Vector accel(0.0, 0.0, 0.0);
+  Vector rot(0.0, 0.0, 0.0);
+  float rotVal = 0.0;
   /* FIXME: calculating the direction and orthDirection every timeSlice is redundant! save it somewhere */
   /* calculate the direction in which the craft is heading  */
@@ -281,22 +283,45 @@
 
   if( this->bUp && this->getRelCoor().x < 20)
-    accel = accel+(direction*acceleration);
+    accel += direction;
   if( this->bDown && this->getRelCoor().x > -5)
-    accel = accel -(direction*acceleration);
+    accel -= direction;
+
   if( this->bLeft && TrackManager::getInstance()->getWidth() > -this->getRelCoor().z*2)
-      accel = accel - (orthDirection*acceleration);
+  {
+    accel -=(orthDirection);
+    rot +=Vector(1,0,0);
+    rotVal -= .4;
+  }
   if( this->bRight && TrackManager::getInstance()->getWidth() > this->getRelCoor().z*2)
-     accel = accel + (orthDirection*acceleration);
+  {
+    accel += orthDirection;
+    rot += Vector(1,0,0);
+    rotVal += .4;
+  }
+  if (this->bAscend )
+  {
+    accel += Vector(0,1,0);
+    rot += Vector(0,0,1);
+    rotVal += .4;
+  }
+  if (this->bDescend )
+  {
+    accel -= Vector(0,1,0);
+    rot += Vector(0,0,1);
+    rotVal -= .4;
+  }
+
   if( this->bAscend ) { /* FIXME */ }
   if( this->bDescend) {/* FIXME */} /* @todo up and down player movement */
 
-  Vector move = accel * time;
-
-  if (accel.z < 0)
-    this->setRelDirSoft(Quaternion(-.4, Vector(1,0,0)), 5);
+  Vector move = accel * time *acceleration;
+
+/*  if (accel.z < 0)
+    this->setRelDirSoft(Quaternion(-.4, accel), 5);
   else if (accel.z > 0)
-    this->setRelDirSoft(Quaternion(.4, Vector(1,0,0)), 5);
-  else
-    this->setRelDirSoft(Quaternion(0, Vector(1,0,0)), 5);
+    this->setRelDirSoft(Quaternion(.4, accel), 5);
+  else*/
+  rot.normalize();
+  this->setRelDirSoft(Quaternion(rotVal, rot), 5);
   this->shiftCoor (move);
 }
@@ -333,4 +358,9 @@
   else if ( event.type == KeyMapper::PEV_PREVIOUS_WEAPON && event.bPressed)
     this->weaponMan->previousWeaponConfig();
+
+  else if( event.type == SDLK_PAGEUP)
+    this->bAscend = event.bPressed; //this->shiftCoor(0,.1,0);
+  else if( event.type == SDLK_PAGEDOWN)
+    this->bDescend = event.bPressed; //this->shiftCoor(0,-.1,0);
 }
 
