Index: /orxonox/trunk/src/glmenu_imagescreen.cc
===================================================================
--- /orxonox/trunk/src/glmenu_imagescreen.cc	(revision 3367)
+++ /orxonox/trunk/src/glmenu_imagescreen.cc	(revision 3368)
@@ -81,4 +81,7 @@
   this->backTex = new Texture();
   this->backTex->loadImage("load_screen.jpg");
+
+  this->maxValue = 10;
+  this->currentValue = 0;
 
   // End of Background image code.
@@ -147,8 +150,10 @@
   
   /* loadbar pos */
-  int barX = 400;
+  int barX = 390;
   int barY = 50;
   int barWidth = 230;
   int barHeight = 30;
+
+  int val = ((float)this->currentValue/(float)this->maxValue) * barWidth;
 
   glMatrixMode(GL_PROJECTION);
@@ -168,7 +173,36 @@
   glColor3f(0.96, 0.84, 0.34);
   glVertex2i(barX, barY);
+  glVertex2i(barX + val, barY);
+  glVertex2i(barX + val, barY + barHeight);
+  glVertex2i(barX, barY + barHeight);
+  glColor3f(1.0, 1.0, 1.0);
+  glEnd();
+
+  glBegin(GL_QUADS);
+  glColor3f(0.0, 0.0, 0.0);
+  glVertex2i(barX, barY);
   glVertex2i(barX + barWidth, barY);
   glVertex2i(barX + barWidth, barY + barHeight);
   glVertex2i(barX, barY + barHeight);
+  glColor3f(1.0, 1.0, 1.0);
+  glEnd();
+
+  /* draw black border */
+  glBegin(GL_QUADS);
+  glColor3f(0.0, 0.0, 0.0);
+  glVertex2i(barX-1, barY-1);
+  glVertex2i(barX + barWidth +1, barY-1);
+  glVertex2i(barX + barWidth+1, barY + barHeight+1);
+  glVertex2i(barX - 1, barY + barHeight +1);
+  glColor3f(1.0, 1.0, 1.0);
+  glEnd();
+
+  /* draw white border */
+  glBegin(GL_QUADS);
+  glColor3f(1.0, 1.0, 1.0);
+  glVertex2i(barX-2, barY-2);
+  glVertex2i(barX + barWidth +2, barY-2);
+  glVertex2i(barX + barWidth+2, barY + barHeight+2);
+  glVertex2i(barX - 2, barY + barHeight +2);
   glColor3f(1.0, 1.0, 1.0);
   glEnd();
@@ -190,5 +224,4 @@
 
   SDL_GL_SwapBuffers();                    
-  SDL_Delay(5000);
 }
  
@@ -224,7 +257,7 @@
    \param maximum of steps
 */
-void GLMenuImageScreen::setMaximum(int maxStep)
-{
-  this->maxStep = maxStep;
+void GLMenuImageScreen::setMaximum(int maxValue)
+{
+  this->maxValue = maxValue;
 }
 
@@ -235,5 +268,5 @@
 int GLMenuImageScreen::getMaximum()
 {
-  return this->maxStep;
+  return this->maxValue;
 }
 
@@ -267,3 +300,4 @@
 {
   this->currentValue++;
-}
+  this->draw();
+}
Index: /orxonox/trunk/src/glmenu_imagescreen.h
===================================================================
--- /orxonox/trunk/src/glmenu_imagescreen.h	(revision 3367)
+++ /orxonox/trunk/src/glmenu_imagescreen.h	(revision 3368)
@@ -32,5 +32,5 @@
   void setSize (float height, float width);
   
-  void setMaximum (int maxStep);
+  void setMaximum (int maxValue);
   int getMaximum ();
   void setValue (int currentValue);
@@ -44,5 +44,5 @@
   Texture* backTex;          //! background texture
   int currentValue;          //! the current count of step() calls fired yet
-  int maxStep;               //! total count of steps
+  int maxValue;               //! total count of steps
 
 };
Index: /orxonox/trunk/src/world.cc
===================================================================
--- /orxonox/trunk/src/world.cc	(revision 3367)
+++ /orxonox/trunk/src/world.cc	(revision 3368)
@@ -148,7 +148,8 @@
   
   //GLMenuImageScreen* 
-  glmis = new GLMenuImageScreen();
-  glmis->init();
-  glmis->draw();
+  this->glmis = new GLMenuImageScreen();
+  this->glmis->init();
+  this->glmis->setMaximum(10);
+  this->glmis->draw();
  
   printf ("World::displayLoadScreen - end\n"); 
@@ -159,5 +160,6 @@
 {
   printf ("World::releaseLoadScreen - start\n"); 
-
+  this->glmis->setValue(this->glmis->getMaximum());
+  SDL_Delay(2000);
   printf ("World::releaseLoadScreen - end\n"); 
 }
@@ -226,4 +228,7 @@
       trackManager->join(4, fork21, fork22, fork13, fork14);
 
+      /*monitor progress*/
+      this->glmis->step();
+
       /*
       tmpCurve->addNode(Vector(10,0,-10));
@@ -272,5 +277,8 @@
 	    myPlayer->setName ("player");
 	    this->spawn (myPlayer);
-	    this->localPlayer = myPlayer;	    
+	    this->localPlayer = myPlayer;
+
+	    /*monitor progress*/
+	    this->glmis->step();	    
 
 	    // bind input
@@ -283,5 +291,7 @@
 	    this->getCamera()->bind (myPlayer);
 	    this->localPlayer->addChild (this->localCamera);
-	    
+
+	    /*monitor progress*/
+	    this->glmis->step();
 
 	    Vector* es = new Vector (50, 2, 0);
@@ -290,5 +300,7 @@
 	    env->setName ("env");
 	    this->spawn(env, es, qs);
-
+	   
+	    /*monitor progress*/
+	    this->glmis->step();
 
 	    break;
