Index: /orxonox/trunk/src/command_node.cc
===================================================================
--- /orxonox/trunk/src/command_node.cc	(revision 3585)
+++ /orxonox/trunk/src/command_node.cc	(revision 3586)
@@ -214,4 +214,5 @@
   while( SDL_PollEvent (&event))
     {
+      printf("CommandNode::processLocal() =========================got Event\n");
       memset (cmd.cmd, 0, CMD_LENGHT); 
       switch( event.type)
@@ -267,5 +268,4 @@
 void CommandNode::relay (Command* cmd)
 {
-
   Orxonox *orx = Orxonox::getInstance();
   if( orx->systemCommand (cmd)) return;
@@ -281,5 +281,5 @@
   while( entity != NULL)
     {
-      entity->command (cmd);
+      entity->command (cmd); /*no absorbtion of command! strange*/
       entity = bound->nextElement();
     }
Index: /orxonox/trunk/src/lib/util/list.h
===================================================================
--- /orxonox/trunk/src/lib/util/list.h	(revision 3585)
+++ /orxonox/trunk/src/lib/util/list.h	(revision 3586)
@@ -120,4 +120,5 @@
 void tList<T>::add(T* entity)
 {
+  if( entity == NULL) return;
   listElement* el = new listElement;
   el->prev = this->last;
@@ -136,4 +137,5 @@
 void tList<T>::remove(T* entity)
 {
+  if( entity == NULL) return;
   this->currentEl = this->first;
   listElement* te;
@@ -200,5 +202,6 @@
 T* tList<T>::enumerate()
 {
-  if(this->last == this->first) return NULL;
+  //if( this->last == this->first == NULL) return NULL;
+  if(this->size == 0) return NULL;
   this->currentEl = this->first;
   return this->currentEl->curr;
@@ -209,5 +212,6 @@
 T* tList<T>::nextElement()
 {
-  if(this->last == this->first) return NULL;
+  // if( this->last == this->first == NULL) return NULL;
+  if(this->size == 0) return NULL;
   this->currentEl = this->currentEl->next;
   if(this->currentEl == NULL) return NULL;
@@ -222,5 +226,6 @@
 T* tList<T>::nextElement(T* toEntity)
 {
-  if( this->last == this->first) return NULL;
+  //if( this->last == this->first == NULL) return NULL;
+  if(this->size == 0) return NULL;
   if( toEntity == NULL) return this->first->curr;
   if( toEntity == this->last->curr ) return this->first->curr;
Index: /orxonox/trunk/src/orxonox.conf
===================================================================
--- /orxonox/trunk/src/orxonox.conf	(revision 3585)
+++ /orxonox/trunk/src/orxonox.conf	(revision 3586)
@@ -5,5 +5,5 @@
 RIGHT=right
 SPACE=fire
-m=weapon_mode
+m=mode
 ESCAPE=quit
 p=pause
@@ -11,5 +11,4 @@
 BUTTON_LEFT=fire
 BUTTON_RIGHT=altfire
-b=benscho
 x=up_world
 z=down_world
Index: /orxonox/trunk/src/story_entities/world.cc
===================================================================
--- /orxonox/trunk/src/story_entities/world.cc	(revision 3585)
+++ /orxonox/trunk/src/story_entities/world.cc	(revision 3586)
@@ -181,12 +181,11 @@
 
 	    //create helper for player
-	    HelperParent* hp = new HelperParent ();
+	    //HelperParent* hp = new HelperParent ();
 	    /* the player has to be added to this helper */
 
 	    // create a player
-	    WorldEntity* myPlayer = new Player ();
-	    myPlayer->setName ("player");
-	    this->spawn (myPlayer);
-	    this->localPlayer = myPlayer;
+	    this->localPlayer = new Player ();
+	    this->localPlayer->setName ("player");
+	    this->spawn (this->localPlayer);
 	    /*monitor progress*/
 	    this->glmis->step();	    
@@ -194,10 +193,10 @@
 	    // bind input
 	    Orxonox *orx = Orxonox::getInstance ();
-	    orx->getLocalInput()->bind (myPlayer);
+	    orx->getLocalInput()->bind (this->localPlayer);
 	    
 	    // bind camera
 	    this->localCamera = new Camera(this);
 	    this->localCamera->setName ("camera");
-	    this->localCamera->bind (myPlayer);
+	    this->localCamera->bind (this->localPlayer);
 	    /*monitor progress*/
 	    this->glmis->step();	    
@@ -217,12 +216,11 @@
 	    this->spawn(env);
 
-	    /*
-	    Vector* es = new Vector (50, 2, 0);
-	    Quaternion* qs = new Quaternion ();
-	    WorldEntity* pr = new Primitive(PSPHERE);
-	    pr->setName("primitive");
-	    this->spawn(pr, this->localPlayer, es, qs, ROTATION);
-	    */
-
+	   
+	    //Vector* es = new Vector (10, 5, 0);
+	    //Quaternion* qs = new Quaternion ();
+	    //WorldEntity* pr = new Primitive(PSPHERE);
+	    //pr->setName("primitive");
+	    //this->spawn(pr, this->localPlayer, es, qs, PNODE_ROTATE_AND_MOVE);
+	   
 
 	    /*monitor progress*/
@@ -231,13 +229,13 @@
 	    //	    trackManager->setBindSlave(env);
 	    PNode* tn = trackManager->getTrackNode();
-	    tn->addChild(myPlayer);
+	    tn->addChild(this->localPlayer);
 
 	    //localCamera->setParent(TrackNode::getInstance());
 	    tn->addChild (this->localCamera);
-	    myPlayer->setMode(PNODE_ROTATE_AND_MOVE);
+	    this->localPlayer->setMode(PNODE_ROTATE_AND_MOVE);
 	    //Vector* cameraOffset = new Vector (0, 5, -10);
 	    Vector* cameraOffset = new Vector (-10, 5, 0);
 	    this->localCamera->setRelCoor (cameraOffset);
-	    trackManager->condition(2, NEAREST, myPlayer);
+	    trackManager->condition(2, NEAREST, this->localPlayer);
 
 	    break;
@@ -267,4 +265,10 @@
 	    skySphere = new Skysphere("../data/pictures/sky-replace.jpg");
 	    this->localPlayer->addChild(this->skySphere);
+
+	    Vector* es = new Vector (20, 0, 0);
+	    Quaternion* qs = new Quaternion ();
+	    WorldEntity* pr = new Primitive(PSPHERE);
+	    pr->setName("primitive");
+	    this->spawn(pr, this->localPlayer, es, qs, PNODE_ROTATE_AND_MOVE);
 
 	    break;
@@ -721,4 +725,5 @@
       entity->setRelCoor (relCoor);
       entity->setRelDir (relDir);
+      entity->setMode(parentingMode);
       
       this->entities->add (entity);
Index: /orxonox/trunk/src/world_entities/player.cc
===================================================================
--- /orxonox/trunk/src/world_entities/player.cc	(revision 3585)
+++ /orxonox/trunk/src/world_entities/player.cc	(revision 3586)
@@ -167,10 +167,10 @@
   //orthDirection = orthDirection.cross (direction);
 
-  if( bUp) { accel = accel+(direction*acceleration); }
-  if( bDown) { accel = accel-(direction*acceleration); }
-  if( bLeft ) { accel = accel - (orthDirection*acceleration); }
-  if( bRight ) { accel = accel + (orthDirection*acceleration); }
-  if( bAscend ) { /* not yet implemented but just: (0,0,1)*acceleration */}
-  if( bDescend) {/* FIXME */} /* \todo up and down player movement */
+  if( this->bUp) { accel = accel+(direction*acceleration); }
+  if( this->bDown) { accel = accel-(direction*acceleration); }
+  if( this->bLeft ) { accel = accel - (orthDirection*acceleration); }
+  if( this->bRight ) { accel = accel + (orthDirection*acceleration); }
+  if( this->bAscend ) { /* not yet implemented but just: (0,0,1)*acceleration */}
+  if( this->bDescend) {/* FIXME */} /* \todo up and down player movement */
 
   Vector move = accel * time;
@@ -211,4 +211,4 @@
   else if( !strcmp( cmd->cmd, "right")) this->bRight = !cmd->bUp;
   else if( !strcmp( cmd->cmd, "fire")) this->bFire = !cmd->bUp;
-  else if( !strcmp( cmd->cmd, "weapon_mode")) this->bWeaponChange = !cmd->bUp;
-}
+  else if( !strcmp( cmd->cmd, "mode")) this->bWeaponChange = !cmd->bUp;
+}
Index: /orxonox/trunk/src/world_entities/primitive.cc
===================================================================
--- /orxonox/trunk/src/world_entities/primitive.cc	(revision 3585)
+++ /orxonox/trunk/src/world_entities/primitive.cc	(revision 3586)
@@ -26,41 +26,72 @@
 
 
+
+/**
+   \brief standard constructor
+*/
 Primitive::Primitive (PRIMITIVE_FORM form) : WorldEntity()
 {
-  this->model = new OBJModel("../data/models/fighter.obj");
+  //this->model = new OBJModel("../data/models/fighter.obj");
   //this->model = new OBJModel("");
+  this->object = gluNewQuadric();
+
+  gluQuadricTexture(this->object, GL_TRUE);
+
+  this->material = new Material("Sky");
+  this->material->setDiffuseMap("../data/pictures/sky-replace.jpg");
+  this->material->setIllum(3);
+  this->material->setAmbient(1.0, 1.0, 1.0);
 }
 
 
-
+/**
+   \brief standard deconstructor
+*/
 Primitive::~Primitive () 
 {
-
+  delete this->material;
+  free(this->object);
 }
 
+/**
+   \brief called, when the object gets hit
+   \param other object, that hits it
+   \param location of impact
+*/
+void Primitive::hit (WorldEntity* weapon, Vector* loc) {}
+
+
+/**
+   \brief object collides
+*/
+void Primitive::collide (WorldEntity* other,  Uint32 ownhitflags, Uint32 otherhitflags) {}
+
+
+/**
+   \brief tick singal put everything here, that is timedependent
+   \param time in sec
+*/
 void Primitive::tick (float time) 
 {
-  Vector v(0.0, 0.0, 1.0);
-  Quaternion q(10.0, v);
+  //Vector v(0.0, 0.0, 1.0);
+  //Quaternion q(10.0, v);
   //this->relDirection = this->relDirection * q;
 }
 
-void Primitive::hit (WorldEntity* weapon, Vector* loc) {}
-
-
-void Primitive::collide (WorldEntity* other,  Uint32 ownhitflags, Uint32 otherhitflags) {}
-
+/**
+   \brief drawing function of the object
+*/
 void Primitive::draw () 
 {
   glMatrixMode(GL_MODELVIEW);
   glPushMatrix();
+
   float matrix[4][4];
-  
   glTranslatef (this->getAbsCoor ().x, this->getAbsCoor ().y, this->getAbsCoor ().z);
   //rotate
-  this->getAbsDir().matrix (matrix);
-  glMultMatrixf((float*)matrix);
-  
-  this->model->draw();
+  //this->getAbsDir().matrix (matrix);
+  //glMultMatrixf((float*)matrix);
+  gluSphere(this->object, 2, 20, 20);
+
   glPopMatrix();
 }
Index: /orxonox/trunk/src/world_entities/primitive.h
===================================================================
--- /orxonox/trunk/src/world_entities/primitive.h	(revision 3585)
+++ /orxonox/trunk/src/world_entities/primitive.h	(revision 3586)
@@ -19,4 +19,8 @@
   virtual void draw ();
 
+ private:
+  GLUquadricObj *object; //!< the object to be rendered
+  Material *material;    //!< A Material for the SkySphere.
+
 };
 
Index: /orxonox/trunk/src/world_entities/skysphere.cc
===================================================================
--- /orxonox/trunk/src/world_entities/skysphere.cc	(revision 3585)
+++ /orxonox/trunk/src/world_entities/skysphere.cc	(revision 3586)
@@ -38,5 +38,5 @@
 Skysphere::Skysphere()
 {  
-  initialize("../data/pictures/sky-replace.jpg");
+  this->initialize("../data/pictures/sky-replace.jpg");
 }
 
@@ -48,5 +48,5 @@
 Skysphere::Skysphere(char* fileName)
 {
-  initialize(fileName);
+  this->initialize(fileName);
 }
 
@@ -108,5 +108,5 @@
   
   skyMaterial->select();
-  gluSphere(sphereObj, sphereRadius, 20, 20);
+  gluSphere(this->sphereObj, this->sphereRadius, 20, 20);
   glPopMatrix();
 }
