Index: /trunk/src/lib/graphics/graphics_engine.cc
===================================================================
--- /trunk/src/lib/graphics/graphics_engine.cc	(revision 10642)
+++ /trunk/src/lib/graphics/graphics_engine.cc	(revision 10643)
@@ -480,5 +480,11 @@
 void GraphicsEngine::wireframe()
 {
-  glPolygonMode(GL_FRONT, GL_LINE);
+  State::showWireframe(!State::showWireframe());
+  /*
+   if (State::showWireframe()){}
+       glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+   else
+       glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+  */
 }
 
Index: /trunk/src/lib/graphics/importer/bsp/bsp_manager.cc
===================================================================
--- /trunk/src/lib/graphics/importer/bsp/bsp_manager.cc	(revision 10642)
+++ /trunk/src/lib/graphics/importer/bsp/bsp_manager.cc	(revision 10643)
@@ -504,8 +504,14 @@
     //  glDisable(GL_BLEND);
   }
+  
+  if (State::showWireframe())
+  {
+    glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+    glBindTexture(GL_TEXTURE_2D, this->bspFile->whiteLightMap );
+    glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
+  }
 
   glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
 
-  // glColor4f(3.0,3.0,3.0,1.0);
   glEnableClientState(GL_VERTEX_ARRAY );
   glEnableClientState(GL_TEXTURE_COORD_ARRAY );
@@ -536,5 +542,10 @@
   glDisableClientState(GL_NORMAL_ARRAY );
   // glDisableClientState(GL_COLOR_ARRAY);
-
+  
+  if (State::showWireframe())
+  {
+    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+    glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+  }
 }
 
@@ -592,5 +603,4 @@
   if (Face->effect != -1) return;
 
-
   if(Face->lm_index < 0) {
     glActiveTextureARB(GL_TEXTURE1_ARB);
@@ -602,5 +612,12 @@
     glEnable(GL_TEXTURE_2D);
   }
-  //glColor4f(3.0,3.0,3.0,1.0);
+ 
+  if (State::showWireframe())
+  {
+    glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+    glBindTexture(GL_TEXTURE_2D, this->bspFile->whiteLightMap );
+    glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
+  }
+
 
   glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
@@ -646,6 +663,10 @@
   glDisableClientState(GL_VERTEX_ARRAY );
   glDisableClientState(GL_TEXTURE_COORD_ARRAY );
-
-
+  
+  if (State::showWireframe())
+  {
+    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+    glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+  }
 }
 
Index: /trunk/src/util/state.cc
===================================================================
--- /trunk/src/util/state.cc	(revision 10642)
+++ /trunk/src/util/state.cc	(revision 10643)
@@ -52,4 +52,5 @@
 
 bool State::bOnline = false;
+bool State::bWireframe = false;
 
 int State::menuID = -1;
Index: /trunk/src/util/state.h
===================================================================
--- /trunk/src/util/state.h	(revision 10642)
+++ /trunk/src/util/state.h	(revision 10643)
@@ -93,4 +93,8 @@
   /** @returns the local player*/
   static inline Player* getPlayer() { return State::player; };
+  /** @param sets wireframemode */
+  static inline void showWireframe(bool wireframe) { State::bWireframe = wireframe; }
+  /** @retirms the wireframemode */
+  static inline bool showWireframe() { return State::bWireframe; }
 
 
@@ -151,4 +155,6 @@
   static int                    menuID;            //!< -1 on default, otherwise orxonox's Menu ID
   static bool                   bOnline;           //!< Is true if this node is in multiplayer mode (via network)
+  
+  static bool                   bWireframe;        //!< The Wireframemode
   };
 
Index: /trunk/src/world_entities/environments/rotor.cc
===================================================================
--- /trunk/src/world_entities/environments/rotor.cc	(revision 10642)
+++ /trunk/src/world_entities/environments/rotor.cc	(revision 10643)
@@ -56,4 +56,5 @@
 void Rotor::initRotation(float x, float y, float z)
 {
+     this->updateNode(0.001);
      this->mainDir = this->getAbsDir();
      this->rotation = Vector(x,y,z);
@@ -71,5 +72,5 @@
 
 
-     this->setAbsDir(/*this->mainDir**/Quaternion(rotation.x*this->totalTime, Vector(1,0,0)) *
+     this->setAbsDir(this->mainDir*Quaternion(rotation.x*this->totalTime, Vector(1,0,0)) *
                     Quaternion(rotation.y*this->totalTime, Vector(0,1,0)) *
                     Quaternion(rotation.z*this->totalTime, Vector(0,0,1)));
Index: /trunk/src/world_entities/npcs/mover.cc
===================================================================
--- /trunk/src/world_entities/npcs/mover.cc	(revision 10642)
+++ /trunk/src/world_entities/npcs/mover.cc	(revision 10643)
@@ -82,4 +82,7 @@
         .describe("sets the action time of the door")
         .defaultValues(1.0);
+    LoadParam(root, "stay-open-time", this, Mover, setStayOpenTime)
+        .describe("sets the time, the door must stay open")
+        .defaultValues(0.0);
     LoadParam(root, "opening-sound", this, Mover, setOpeningSoundFile)
         .describe("Sets the file of the opening sound source");
@@ -146,14 +149,19 @@
                 this->soundSource_moving.stop();
         }
+        this->openTime = 0;
     }
     else if (this->state == Open)
     {
-        if (!this->checkPlayerInActionRadius())
-        {
-            this->state = Closing;
-            if (this->soundBuffer_closing.loaded())
-                this->soundSource_starting.play(this->soundBuffer_closing);
-            if (this->soundBuffer_moving.loaded())
-                this->soundSource_moving.play(this->soundBuffer_moving, 1.0, true);
+        this->openTime += dt;
+        if (this->openTime >= this->stayOpenTime)
+        {
+            if (!this->checkPlayerInActionRadius())
+            {
+                this->state = Closing;
+                if (this->soundBuffer_closing.loaded())
+                    this->soundSource_starting.play(this->soundBuffer_closing);
+                if (this->soundBuffer_moving.loaded())
+                    this->soundSource_moving.play(this->soundBuffer_moving, 1.0, true);
+            }
         }
     }
Index: /trunk/src/world_entities/npcs/mover.h
===================================================================
--- /trunk/src/world_entities/npcs/mover.h	(revision 10642)
+++ /trunk/src/world_entities/npcs/mover.h	(revision 10643)
@@ -35,4 +35,5 @@
         void setActionRadius(float radius) { this->actionRadius = radius; }
         void setActionTime(float time) { this->actionTime = time; }
+        void setStayOpenTime(float time) { this->stayOpenTime = time; }
         void setOpeningSoundFile(const std::string& fileName);
         void setOpenedSoundFile(const std::string& fileName);
@@ -62,4 +63,6 @@
         float                       actionTime;                 //!< the action-time
         int                         state;                      //!< the state of the mover
+        float                       stayOpenTime;               //!< waiting time while opened
+        float                       openTime;                   //!< time since opened
 };
 
