Index: orxonox/trunk/src/orxonox.cc
===================================================================
--- orxonox/trunk/src/orxonox.cc	(revision 3524)
+++ orxonox/trunk/src/orxonox.cc	(revision 3526)
@@ -173,8 +173,4 @@
   // SDL_WM_SetIcon(SDL_Surface *icon, Uint8 *mask);  
 
-  // OpenGL stuff
-  glClearColor (0.0, 0.0, 0.0, 0.0);
-  glEnable (GL_DEPTH_TEST);
-   
   return 0;
 }
Index: orxonox/trunk/src/story_entities/world.cc
===================================================================
--- orxonox/trunk/src/story_entities/world.cc	(revision 3524)
+++ orxonox/trunk/src/story_entities/world.cc	(revision 3526)
@@ -41,8 +41,5 @@
 World::World (char* name)
 {
-  this->setClassName ("World");
-  this->worldName = name;
-  this->debugWorldNr = -1;
-  this->entities = new tList<WorldEntity>();
+  this->init(name, -1);
 }
 
@@ -53,7 +50,5 @@
 World::World (int worldID)
 {
-  this->debugWorldNr = worldID;
-  this->worldName = NULL;
-  this->entities = new tList<WorldEntity>();
+  this->init(NULL, worldID);
 }
 
@@ -94,4 +89,20 @@
   /* this->localPlayer hasn't to be deleted explicitly, it is 
      contained in entities*/
+}
+
+/**
+   \brief initializes a new World
+*/
+void World::init(char* name, int worldID)
+{
+  this->setClassName ("World");
+
+  this->worldName = name;
+  this->debugWorldNr = worldID;
+  this->entities = new tList<WorldEntity>();
+
+  // Enable default GL stuff
+  glEnable(GL_DEPTH_TEST);
+
 }
 
@@ -289,7 +300,6 @@
   objectList = glGenLists(1);
   glNewList (objectList, GL_COMPILE);
-  glLoadIdentity();
+
   glColor3f(1.0,0,0);
-  glBegin(GL_QUADS);
 
   int sizeX = 100;
@@ -338,4 +348,5 @@
       }
 
+  glBegin(GL_QUADS);
   int snowheight=3;
   for ( int i = 0; i<sizeX; i+=1)
@@ -410,67 +421,10 @@
       }
   glEnd();
-  /*  
-  glBegin(GL_LINES);
-  for( float x = -128.0; x < 128.0; x += 25.0)
-    {
-      for( float y = -128.0; y < 128.0; y += 25.0)
-	{
-	  glColor3f(1,0,0);
-	  glVertex3f(x,y,-128.0);
-	  glVertex3f(x,y,0.0);
-	  glColor3f(0.5,0,0);
-	  glVertex3f(x,y,0.0);
-	  glVertex3f(x,y,128.0);
-	}
-    }
-  for( float y = -128.0; y < 128.0; y += 25.0)
-    {
-      for( float z = -128.0; z < 128.0; z += 25.0)
-	{
-	  glColor3f(0,1,0);
-	  glVertex3f(-128.0,y,z);
-	  glVertex3f(0.0,y,z);
-	  glColor3f(0,0.5,0);
-	  glVertex3f(0.0,y,z);
-	  glVertex3f(128.0,y,z);
-	}
-    }
-  for( float x = -128.0; x < 128.0; x += 25.0)
-    {
-      for( float z = -128.0; z < 128.0; z += 25.0)
-	{
-	  glColor3f(0,0,1);
-	  glVertex3f(x,-128.0,z);
-	  glVertex3f(x,0.0,z);
-	  glColor3f(0,0,0.5);
-	  glVertex3f(x,0.0,z);
-	  glVertex3f(x,128.0,z);
-	}
-      
-    }
-  */  
-  /*
-  glBegin(GL_LINE_STRIP);
-  glColor3f(1.0, 5.0, 1.0);
-  for( int i = 0; i <= 30; i++)
-    {
-      glEvalCoord1f ((GLfloat) i/30.0);
-    }
-  glEnd();
-  */
 
   trackManager->drawGraph(.01);
   trackManager->debug(2);
-  /*  
-  glBegin(GL_LINES);
-  float i;
-  for(i = 0.0; i<1; i+=.01)
-    {
-      printf("%f, %f, %f\n",tmpCurve->calcPos(i).x, tmpCurve->calcPos(i).y, tmpCurve->calcPos(i).z);
-      glVertex3f(tmpCurve->calcPos(i).x, tmpCurve->calcPos(i).y, tmpCurve->calcPos(i).z);
-    }
-  glEnd();
-  */
   glEndList();
+
+
   // LIGHT initialisation
   light = Light::getInstance();
@@ -635,4 +589,6 @@
   /* draw entities */
   WorldEntity* entity;
+  glLoadIdentity();
+
   entity = this->entities->enumerate();
   while( entity != NULL ) 
Index: orxonox/trunk/src/story_entities/world.h
===================================================================
--- orxonox/trunk/src/story_entities/world.h	(revision 3524)
+++ orxonox/trunk/src/story_entities/world.h	(revision 3526)
@@ -57,4 +57,6 @@
 
  private:
+  void init(char* name, int worldID);
+
   Uint32 lastFrame;             //!< last time of frame
   bool bQuitOrxonox;            //!< quit this application
Index: orxonox/trunk/src/world_entities/environment.cc
===================================================================
--- orxonox/trunk/src/world_entities/environment.cc	(revision 3524)
+++ orxonox/trunk/src/world_entities/environment.cc	(revision 3526)
@@ -50,5 +50,5 @@
 {
   glMatrixMode(GL_MODELVIEW);
-  glLoadIdentity();
+  glPushMatrix();
   float matrix[4][4];
   
@@ -59,4 +59,6 @@
   
   this->model->draw();
+
+  glPopMatrix();
 }
 
Index: orxonox/trunk/src/world_entities/player.cc
===================================================================
--- orxonox/trunk/src/world_entities/player.cc	(revision 3524)
+++ orxonox/trunk/src/world_entities/player.cc	(revision 3526)
@@ -29,31 +29,5 @@
 Player::Player(bool isFree) : WorldEntity(isFree)
 {
-
   this->model = new OBJModel("../data/models/reaplow.obj");
-  /*
-  objectList = glGenLists(1);
-  glNewList (objectList, GL_COMPILE);
-
-  glBegin(GL_TRIANGLES);
-  glColor3f(1,1,1);
-  glVertex3f(0,0,0.5);
-  glVertex3f(-0.5,0,-1);
-  glVertex3f(0.5,0,-1);
-
-  glVertex3f(0,0,0.5);
-  glVertex3f(0,0.5,-1);
-  glVertex3f(0,-0.5,-1);
-  glEnd();
-    
-  glBegin(GL_QUADS);
-  glColor3f(0,0,1);
-  glVertex3f(0.5,0.5,-1);
-  glVertex3f(0.5,-0.5,-1);
-  glVertex3f(-0.5,-0.5,-1);
-  glVertex3f(-0.5,0.5,-1);
-  glEnd();
-  
-  glEndList ();
-  */
 }
 
@@ -137,5 +111,5 @@
 { 
   glMatrixMode(GL_MODELVIEW);
-  glLoadIdentity();
+  glPushMatrix();
   float matrix[4][4];
   
@@ -148,7 +122,6 @@
   glMultMatrixf((float*)matrix);
   
-  glMatrixMode(GL_MODELVIEW);
   this->model->draw();
-  // glCallList(objectList);
+  glPopMatrix();
 }
 
Index: orxonox/trunk/src/world_entities/primitive.cc
===================================================================
--- orxonox/trunk/src/world_entities/primitive.cc	(revision 3524)
+++ orxonox/trunk/src/world_entities/primitive.cc	(revision 3526)
@@ -55,5 +55,5 @@
 {
   glMatrixMode(GL_MODELVIEW);
-  glLoadIdentity();
+  glPushMatrix();
   float matrix[4][4];
   
@@ -64,4 +64,5 @@
   
   this->model->draw();
+  glPopMatrix();
 }
 
Index: orxonox/trunk/src/world_entities/skysphere.cc
===================================================================
--- orxonox/trunk/src/world_entities/skysphere.cc	(revision 3524)
+++ orxonox/trunk/src/world_entities/skysphere.cc	(revision 3526)
@@ -99,6 +99,6 @@
 {
   glEnable(GL_TEXTURE_2D);
-  skyMaterial->select();
   glPushMatrix();
+  glMatrixMode(GL_MODELVIEW);
   glTranslatef(this->absCoordinate.x,
 	       this->absCoordinate.y,
@@ -109,4 +109,5 @@
   //glRotatef(-250.0f, 0.0, 1.0f, 0.0f);
   
+  skyMaterial->select();
   gluSphere(sphereObj, sphereRadius, 20, 20);
   glPopMatrix();
