Index: /orxonox/trunk/src/Makefile.in
===================================================================
--- /orxonox/trunk/src/Makefile.in	(revision 3458)
+++ /orxonox/trunk/src/Makefile.in	(revision 3459)
@@ -324,7 +324,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/Makefile
+	  $(AUTOMAKE) --foreign  src/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
Index: /orxonox/trunk/src/campaign.cc
===================================================================
--- /orxonox/trunk/src/campaign.cc	(revision 3458)
+++ /orxonox/trunk/src/campaign.cc	(revision 3459)
@@ -39,37 +39,4 @@
 }
 
-/** 
-    \brief adds an game stroy entity to the campaign
-
-    \param se: The entity
-    \param storyID: The number that identifies the entity in the campaign. Each ID only used once in a Campaign
-
-    An entity can be a world (playable), a cinematic, a shop, sounds, whatever you
-    want to queue up in the campaign.
-*/
-void Campaign::addEntity(StoryEntity* se, int storyID)
-{
-  se->setStoryID(storyID);
-  this->addEntity(se);
-}
-
-void Campaign::addEntity(StoryEntity* se)
-{
-  this->entities->add(se);
-}
-
-
-void Campaign::removeEntity(int storyID)
-{
-  this->removeEntity(this->getStoryEntity(storyID));
-  
-}
-
-
-void Campaign::removeEntity(StoryEntity* se)
-{
-  this->entities->remove(se);
-}
-
 
 ErrorMessage Campaign::start()
@@ -77,4 +44,5 @@
   this->start(0);
 }
+
 
 ErrorMessage Campaign::start(int storyID = 0)
@@ -113,4 +81,19 @@
 }
 
+
+ErrorMessage Campaign::pause()
+{
+  if(this->currentEntity != NULL)
+    this->isPaused = true;
+}
+
+
+ErrorMessage Campaign::resume()
+{
+  if(this->currentEntity != NULL)
+    this->isPaused = false;
+}
+
+
 ErrorMessage Campaign::stop()
 {
@@ -124,19 +107,6 @@
 }
 
-ErrorMessage Campaign::pause()
-{
-  if(this->currentEntity != NULL)
-    this->isPaused = true;
-}
-
-
-ErrorMessage Campaign::resume()
-{
-  if(this->currentEntity != NULL)
-    this->isPaused = false;
-}
-
-
-void Campaign::destroy()
+
+ErrorMessage Campaign::destroy()
 {
   if(this->currentEntity != NULL)
@@ -147,4 +117,39 @@
     }
 }
+
+
+/** 
+    \brief adds an game stroy entity to the campaign
+
+    \param se: The entity
+    \param storyID: The number that identifies the entity in the campaign. Each ID only used once in a Campaign
+
+    An entity can be a world (playable), a cinematic, a shop, sounds, whatever you
+    want to queue up in the campaign.
+*/
+void Campaign::addEntity(StoryEntity* se, int storyID)
+{
+  se->setStoryID(storyID);
+  this->addEntity(se);
+}
+
+void Campaign::addEntity(StoryEntity* se)
+{
+  this->entities->add(se);
+}
+
+
+void Campaign::removeEntity(int storyID)
+{
+  this->removeEntity(this->getStoryEntity(storyID));
+  
+}
+
+
+void Campaign::removeEntity(StoryEntity* se)
+{
+  this->entities->remove(se);
+}
+
 
 /*
Index: /orxonox/trunk/src/campaign.h
===================================================================
--- /orxonox/trunk/src/campaign.h	(revision 3458)
+++ /orxonox/trunk/src/campaign.h	(revision 3459)
@@ -20,9 +20,8 @@
   virtual ErrorMessage start();
   virtual ErrorMessage start(int storyID);
-  virtual ErrorMessage stop();
   virtual ErrorMessage pause();
   virtual ErrorMessage resume();
-
-  virtual void destroy();
+  virtual ErrorMessage stop();
+  virtual ErrorMessage destroy();
 
   void addEntity(StoryEntity* se, int storyID);
Index: /orxonox/trunk/src/console/Makefile.in
===================================================================
--- /orxonox/trunk/src/console/Makefile.in	(revision 3458)
+++ /orxonox/trunk/src/console/Makefile.in	(revision 3459)
@@ -203,7 +203,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/console/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/console/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/console/Makefile
+	  $(AUTOMAKE) --foreign  src/console/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
Index: /orxonox/trunk/src/gui/Makefile.in
===================================================================
--- /orxonox/trunk/src/gui/Makefile.in	(revision 3458)
+++ /orxonox/trunk/src/gui/Makefile.in	(revision 3459)
@@ -234,7 +234,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/gui/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/gui/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/gui/Makefile
+	  $(AUTOMAKE) --foreign  src/gui/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
Index: /orxonox/trunk/src/importer/Makefile.in
===================================================================
--- /orxonox/trunk/src/importer/Makefile.in	(revision 3458)
+++ /orxonox/trunk/src/importer/Makefile.in	(revision 3459)
@@ -215,7 +215,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/importer/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/importer/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/importer/Makefile
+	  $(AUTOMAKE) --foreign  src/importer/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
Index: /orxonox/trunk/src/story_entity.cc
===================================================================
--- /orxonox/trunk/src/story_entity.cc	(revision 3458)
+++ /orxonox/trunk/src/story_entity.cc	(revision 3459)
@@ -26,15 +26,4 @@
 StoryEntity::StoryEntity () {}
 StoryEntity::~StoryEntity () {}
-
-
-/** 
-    \brief initialize the entity before use. 
-    \returns an error code if not able to apply.
-
-    After execution of this function, the Entity is ready to be played/executed, 
-    this shifts the initialisation work before the execution - very important...
-*/
-ErrorMessage StoryEntity::init()
-{}
 
 
@@ -84,4 +73,24 @@
 
 /** 
+    \brief initialize the entity before use. 
+    \returns an error code if not able to apply.
+
+    After execution of this function, the Entity is ready to be played/executed, 
+    this shifts the initialisation work before the execution - very important...
+*/
+ErrorMessage StoryEntity::init()
+{}
+
+
+/** 
+    \brief loads the current entity
+
+    this is here to enable you loading maps into the entities. for all other actions you
+    should take the init() function.
+*/
+ErrorMessage StoryEntity::load()
+{}
+
+/** 
     \brief starts the entity with the choosen id. only for entities with lists.
     \param story id
@@ -102,18 +111,4 @@
 */
 ErrorMessage StoryEntity::start()
-{}
-
-
-/** 
-    \brief stops the current entity
-    \returns error code if this action has caused a error
-
-    ATTENTION: this function shouldn't call other functions, or if so, they must return
-    after finishing. If you ignore or forget to do so, the current entity is not able to
-    terminate and it will run in the background or the ressources can't be freed or even
-    worse: are freed and the program will end in a segmentation fault!
-    hehehe, all seen... :)
-*/
-ErrorMessage StoryEntity::stop()
 {}
 
@@ -140,10 +135,14 @@
 
 /** 
-    \brief loads the current entity
+    \brief stops the current entity
+    \returns error code if this action has caused a error
 
-    this is here to enable you loading maps into the entities. for all other actions you
-    should take the init() function.
+    ATTENTION: this function shouldn't call other functions, or if so, they must return
+    after finishing. If you ignore or forget to do so, the current entity is not able to
+    terminate and it will run in the background or the ressources can't be freed or even
+    worse: are freed and the program will end in a segmentation fault!
+    hehehe, all seen... :)
 */
-void StoryEntity::load()
+ErrorMessage StoryEntity::stop()
 {}
 
@@ -155,5 +154,5 @@
     the entity please use the stop() function.
 */
-void StoryEntity::destroy()
+ErrorMessage StoryEntity::destroy()
 {}
 
Index: /orxonox/trunk/src/story_entity.h
===================================================================
--- /orxonox/trunk/src/story_entity.h	(revision 3458)
+++ /orxonox/trunk/src/story_entity.h	(revision 3459)
@@ -21,13 +21,13 @@
   bool isPaused; //! is true if the entity is paused
 
+  virtual ErrorMessage load();
   virtual ErrorMessage init();
   virtual ErrorMessage start(int storyID);
   virtual ErrorMessage start();
-  virtual ErrorMessage stop();
   virtual ErrorMessage pause();
   virtual ErrorMessage resume();
+  virtual ErrorMessage stop();
+  virtual ErrorMessage destroy();
 
-  virtual void load();
-  virtual void destroy();
 
   virtual void displayLoadScreen();
Index: /orxonox/trunk/src/world.cc
===================================================================
--- /orxonox/trunk/src/world.cc	(revision 3458)
+++ /orxonox/trunk/src/world.cc	(revision 3459)
@@ -70,8 +70,7 @@
   cn->unbind(this->localPlayer);
   cn->reset();
+
   this->localCamera->destroy();
-
-  this->nullParent->destroy();
-  
+  this->nullParent->destroy();  
   delete this->skySphere;
 
@@ -97,107 +96,9 @@
 }
 
-GLfloat ctrlpoints[4][3] = {
-  {20.0, 10.0, 5.0}, {40.0, -10.0, 0.0},
-  {60.0, -10.0, 5.0}, {80.0, 10.0, 5.0}};
-
-/**
-   \brief initializes a new World
-*/
-ErrorMessage World::init()
-{
-  this->bPause = false;
-  CommandNode* cn = Orxonox::getInstance()->getLocalInput();
-  cn->addToWorld(this);
-  cn->enable(true);
-
-  //glMap1f (GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]);
-  //glEnable (GL_MAP1_VERTEX_3);
-  
-  //theNurb = gluNewNurbsRenderer ();
-  //gluNurbsProperty (theNurb, GLU_NURBS_MODE, GLU_NURBS_TESSELLATOR);
-  //gluNurbsProperty (theNurb, GLU_NURBS_VERTEX, vertexCallback );
-
-}
-
-
-/**
-   \brief starts the World
-*/
-ErrorMessage World::start()
-{
-  printf("World::start() - starting current World: nr %i\n", this->debugWorldNr);
-  this->bQuitOrxonox = false;
-  this->bQuitCurrentGame = false;
-  this->mainLoop();
-}
-
-/**
-   \brief stops the world.
-
-   This happens, when the player decides to end the Level.
-*/
-ErrorMessage World::stop()
-{
-  printf("World::stop() - got stop signal\n");
-  this->bQuitCurrentGame = true;
-}
-
-/**
-   \brief pauses the Game
-*/
-ErrorMessage World::pause()
-{
-  this->isPaused = true;
-}
-
-/**
-   \brief ends the pause Phase
-*/
-ErrorMessage World::resume()
-{
-  this->isPaused = false;
-}
-
-/**
-   \brief destroys the World
-*/
-void World::destroy()
-{
-  delete trackManager;
-}
-
-/**
-   \brief shows the loading screen
-*/
-void World::displayLoadScreen ()
-{
-  printf ("World::displayLoadScreen - start\n"); 
-  
-  //GLMenuImageScreen* 
-  this->glmis = GLMenuImageScreen::getInstance();
-  this->glmis->init();
-  this->glmis->setMaximum(10);
-  this->glmis->draw();
- 
-  printf ("World::displayLoadScreen - end\n"); 
-}
-
-/**
-   \brief removes the loadscreen, and changes over to the game
-
-   \todo take out the delay
-*/
-void World::releaseLoadScreen ()
-{
-  printf ("World::releaseLoadScreen - start\n"); 
-  this->glmis->setValue(this->glmis->getMaximum());
-  SDL_Delay(500);
-  printf ("World::releaseLoadScreen - end\n"); 
-}
 
 /**
    \brief loads the World by initializing all resources, and set their default values.
 */
-void World::load()
+ErrorMessage World::load()
 {
   //  BezierCurve* tmpCurve = new BezierCurve();
@@ -594,4 +495,99 @@
 }
 
+/**
+   \brief initializes a new World
+*/
+ErrorMessage World::init()
+{
+  this->bPause = false;
+  CommandNode* cn = Orxonox::getInstance()->getLocalInput();
+  cn->addToWorld(this);
+  cn->enable(true);
+
+  //glMap1f (GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]);
+  //glEnable (GL_MAP1_VERTEX_3);
+  
+  //theNurb = gluNewNurbsRenderer ();
+  //gluNurbsProperty (theNurb, GLU_NURBS_MODE, GLU_NURBS_TESSELLATOR);
+  //gluNurbsProperty (theNurb, GLU_NURBS_VERTEX, vertexCallback );
+
+}
+
+
+/**
+   \brief starts the World
+*/
+ErrorMessage World::start()
+{
+  printf("World::start() - starting current World: nr %i\n", this->debugWorldNr);
+  this->bQuitOrxonox = false;
+  this->bQuitCurrentGame = false;
+  this->mainLoop();
+}
+
+/**
+   \brief stops the world.
+
+   This happens, when the player decides to end the Level.
+*/
+ErrorMessage World::stop()
+{
+  printf("World::stop() - got stop signal\n");
+  this->bQuitCurrentGame = true;
+}
+
+/**
+   \brief pauses the Game
+*/
+ErrorMessage World::pause()
+{
+  this->isPaused = true;
+}
+
+/**
+   \brief ends the pause Phase
+*/
+ErrorMessage World::resume()
+{
+  this->isPaused = false;
+}
+
+/**
+   \brief destroys the World
+*/
+ErrorMessage World::destroy()
+{
+  delete trackManager;
+}
+
+/**
+   \brief shows the loading screen
+*/
+void World::displayLoadScreen ()
+{
+  printf ("World::displayLoadScreen - start\n"); 
+  
+  //GLMenuImageScreen* 
+  this->glmis = GLMenuImageScreen::getInstance();
+  this->glmis->init();
+  this->glmis->setMaximum(10);
+  this->glmis->draw();
+ 
+  printf ("World::displayLoadScreen - end\n"); 
+}
+
+/**
+   \brief removes the loadscreen, and changes over to the game
+
+   \todo take out the delay
+*/
+void World::releaseLoadScreen ()
+{
+  printf ("World::releaseLoadScreen - start\n"); 
+  this->glmis->setValue(this->glmis->getMaximum());
+  SDL_Delay(500);
+  printf ("World::releaseLoadScreen - end\n"); 
+}
+
 
 /** 
@@ -722,36 +718,4 @@
 }
 
-/** 
-    \brief relays the passed time since the last frame to entities and Track parts
-    \param deltaT: the time passed since the last frame in milliseconds
-*/
-void World::timeSlice (Uint32 deltaT)
-{
-  //List<WorldEntity> *l;
-  WorldEntity* entity;
-  float seconds = deltaT / 1000.0;
-  
-  this->nullParent->update (seconds);
-  //this->nullParent->processTick (seconds);
-
-  entity = entities->enumerate(); 
-  while( entity != NULL) 
-    { 
-      entity->tick (seconds);
-      entity = entities->nextElement();
-    }
-
-  skySphere->updatePosition(localCamera->absCoordinate);
-  //for( int i = 0; i < tracklen; i++) track[i].tick (seconds);
-}
-
-/**
-   \brief removes level data from memory
-*/
-void World::unload()
-{
-
-}
-
 
 /**
@@ -848,5 +812,5 @@
       this->timeSlice ();
       // Process collision
-      this->collision ();
+      this->collide ();
       // Draw
       this->display ();
@@ -858,4 +822,5 @@
 }
 
+
 /**
    \brief synchronize local data with remote data
@@ -866,4 +831,5 @@
   // Update synchronizables
 }
+
 
 /**
@@ -880,4 +846,5 @@
   // remoteinput
 }
+
 
 /**
@@ -909,5 +876,19 @@
 	  dt = 10;
 	}
-      this->timeSlice (dt);
+      //this->timeSlice (dt);
+      
+      /* function to let all entities tick (iterate through list) */
+      WorldEntity* entity;
+      float seconds = dt / 1000.0;      
+      this->nullParent->update (seconds);
+      entity = entities->enumerate(); 
+      while( entity != NULL) 
+	{ 
+	  entity->tick (seconds);
+	  entity = entities->nextElement();
+	}
+      skySphere->updatePosition(localCamera->absCoordinate);
+      
+      /* update tick the rest */
       this->update ();
       this->localCamera->timeSlice(dt);
@@ -915,13 +896,4 @@
     }
   this->lastFrame = currentFrame;
-}
-
-
-/**
-   \brief compute collision detection
-*/
-void World::collision ()
-{
-  this->collide ();
 }
 
Index: /orxonox/trunk/src/world.h
===================================================================
--- /orxonox/trunk/src/world.h	(revision 3458)
+++ /orxonox/trunk/src/world.h	(revision 3459)
@@ -31,5 +31,8 @@
   World (int worldID);
   virtual ~World ();
-  
+
+
+  /* classes from story-entity */
+  virtual ErrorMessage load ();
   virtual ErrorMessage init ();
   virtual ErrorMessage start ();
@@ -37,20 +40,18 @@
   virtual ErrorMessage pause ();
   virtual ErrorMessage resume ();
+  virtual ErrorMessage destroy ();
 
-  virtual void load ();
-  virtual void destroy ();
+  virtual void displayLoadScreen();
+  virtual void releaseLoadScreen();
 
-  //static void vertexCallback (GLfloat* vertex);
 
-  void timeSlice (Uint32 deltaT);
-  void collide ();
+  /* main functions for world-looping */
+
   void draw ();
   void update ();	// maps Locations to Placements
   //void calcCameraPos (Location* loc, Placement* plc);
 	
-  void unload ();
   bool command (Command* cmd);
-  virtual void displayLoadScreen();
-  virtual void releaseLoadScreen();
+
   
   //bool system_command (Command* cmd);
@@ -90,5 +91,5 @@
   void handleInput ();
   void timeSlice ();
-  void collision ();
+  void collide ();
   void display ();
   void debug ();
