Index: code/trunk/src/orxonox/CMakeLists.txt
===================================================================
--- code/trunk/src/orxonox/CMakeLists.txt	(revision 1214)
+++ code/trunk/src/orxonox/CMakeLists.txt	(revision 1219)
@@ -58,4 +58,5 @@
   tinyxml
   tolualib
+  ois
   util
   core
Index: code/trunk/src/orxonox/Orxonox.cc
===================================================================
--- code/trunk/src/orxonox/Orxonox.cc	(revision 1214)
+++ code/trunk/src/orxonox/Orxonox.cc	(revision 1219)
@@ -85,8 +85,8 @@
 namespace orxonox
 {
-  ConsoleCommand(Orxonox, exit, AccessLevel::None, true);
-  ConsoleCommand(Orxonox, slomo, AccessLevel::Offline, true).setDefaultValue(0, 1.0);
-  ConsoleCommand(Orxonox, setTimeFactor, AccessLevel::Offline, false).setDefaultValue(0, 1.0);
-
+  ConsoleCommandShortcut(Orxonox, exit, AccessLevel::None);
+  ConsoleCommandShortcut(Orxonox, slomo, AccessLevel::Offline).setDefaultValue(0, 1.0);
+  ConsoleCommandShortcut(Orxonox, setTimeFactor, AccessLevel::Offline).setDefaultValue(0, 1.0);
+  ConsoleCommandShortcut(Orxonox, activateConsole, AccessLevel::None);
   class Testconsole : public InputBufferListener
   {
@@ -119,5 +119,5 @@
       void exit() const
       {
-        CommandExecutor::execute("setInputMode 2");
+        InputManager::setInputState(InputManager::IS_NORMAL);
       }
 
@@ -185,5 +185,5 @@
       delete this->orxonoxHUD_;
     Loader::close();
-    InputManager::getSingleton().destroy();
+    InputManager::destroy();
     if (this->auMan_)
       delete this->auMan_;
@@ -400,9 +400,8 @@
   void Orxonox::setupInputSystem()
   {
-    inputHandler_ = &InputManager::getSingleton();
-    if (!inputHandler_->initialise(ogre_->getWindowHandle(),
+    if (!InputManager::initialise(ogre_->getWindowHandle(),
           ogre_->getWindowWidth(), ogre_->getWindowHeight()))
       abortImmediateForce();
-    inputHandler_->setInputMode(IM_INGAME);
+    InputManager::setInputState(InputManager::IS_NORMAL);
   }
 
@@ -423,6 +422,5 @@
   void Orxonox::startRenderLoop()
   {
-    InputBuffer* ib = new InputBuffer();
-    InputManager::getSingleton().feedInputBuffer(ib);
+    InputBuffer* ib = dynamic_cast<InputBuffer*>(InputManager::getKeyHandler("buffer"));
     /*
     Testconsole* console = new Testconsole(ib);
@@ -459,5 +457,5 @@
       eventTimes[i].clear();
     // fill the fps time list with zeros
-    for (int i = 0; i < 20; i++)
+    for (int i = 0; i < 50; i++)
       eventTimes[3].push_back(0);
 
@@ -485,6 +483,7 @@
       // show the current time in the HUD
       orxonoxHUD_->setTime((int)now, 0);
+      orxonoxHUD_->setRocket2(ogreRoot.getCurrentFrameNumber());
       if (eventTimes[3].back() - eventTimes[3].front() != 0)
-        orxonoxHUD_->setRocket1((int)(20000.0f/(eventTimes[3].back() - eventTimes[3].front())));
+        orxonoxHUD_->setRocket1((int)(50000.0f/(eventTimes[3].back() - eventTimes[3].front())));
 
       // Iterate through all Tickables and call their tick(dt) function
@@ -551,12 +550,7 @@
   }
 
-  /**
-    @brief Test method for the InputHandler.
-    But: Is actually responsible for catching an exit event..
-  */
-  void Orxonox::eventOccured(InputEvent &evt)
-  {
-    if (evt.id == 1)
-      this->abortRequest();
+  void Orxonox::activateConsole()
+  {
+    InputManager::setInputState(InputManager::IS_CONSOLE);
   }
 }
Index: code/trunk/src/orxonox/Orxonox.h
===================================================================
--- code/trunk/src/orxonox/Orxonox.h	(revision 1214)
+++ code/trunk/src/orxonox/Orxonox.h	(revision 1219)
@@ -44,6 +44,4 @@
 
 #include "GraphicsEngine.h"
-#include "core/InputEventListener.h"
-
 
 namespace orxonox {
@@ -56,5 +54,5 @@
 
   //! Orxonox singleton class
-  class _OrxonoxExport Orxonox : public InputEventListener
+  class _OrxonoxExport Orxonox
   {
     public:
@@ -72,4 +70,5 @@
       static inline float getTimeFactor() { return Orxonox::getSingleton()->timefactor_; }
       static inline void exit() { Orxonox::getSingleton()->abortRequest(); }
+      static inline void activateConsole();
 
    private:
@@ -95,6 +94,4 @@
       float calculateEventTime(unsigned long, std::deque<unsigned long>&);
 
-      void eventOccured(InputEvent &evt);
-
     private:
       GraphicsEngine*       ogre_;          //!< our dearest graphics engine <3
Index: code/trunk/src/orxonox/OrxonoxStableHeaders.h
===================================================================
--- code/trunk/src/orxonox/OrxonoxStableHeaders.h	(revision 1214)
+++ code/trunk/src/orxonox/OrxonoxStableHeaders.h	(revision 1219)
@@ -79,9 +79,9 @@
 #include <OgreWindowEventUtilities.h>
 
-#include <OIS/OIS.h>
-
 //-----------------------------------------------------------------------
 // ORXONOX HEADERS
 //-----------------------------------------------------------------------
+
+#include "ois/OIS.h"
 
 //#include "util/Convert.h"
Index: code/trunk/src/orxonox/objects/SpaceShip.cc
===================================================================
--- code/trunk/src/orxonox/objects/SpaceShip.cc	(revision 1214)
+++ code/trunk/src/orxonox/objects/SpaceShip.cc	(revision 1219)
@@ -32,5 +32,4 @@
 #include <string>
 
-#include <OIS/OIS.h>
 #include <OgreCamera.h>
 #include <OgreRenderWindow.h>
@@ -39,4 +38,5 @@
 
 #include "tinyxml/tinyxml.h"
+#include "ois/OIS.h"
 #include "util/Convert.h"
 #include "util/Math.h"
@@ -428,11 +428,8 @@
     void SpaceShip::tick(float dt)
     {
-      if (InputManager::getSingleton().getMouse()->getEventCallback() != this)
-        {
-            if (InputManager::getSingleton().getMouse())
-            {
-                InputManager::getSingleton().getMouse()->setEventCallback(this);
-                this->setMouseEventCallback_ = true;
-            }
+        if (!setMouseEventCallback_)
+        {
+          InputManager::addMouseHandler(this, "SpaceShip");
+          setMouseEventCallback_ = true;
         }
 
@@ -457,7 +454,5 @@
         }
 
-        OIS::Keyboard* mKeyboard = InputManager::getSingleton().getKeyboard();
-        //FIXME: variable never used
-        //OIS::Mouse* mMouse = InputManager::getSingleton().getMouse();
+        OIS::Keyboard* mKeyboard = InputManager::getKeyboard();
 
 
Index: code/trunk/src/orxonox/objects/SpaceShip.h
===================================================================
--- code/trunk/src/orxonox/objects/SpaceShip.h	(revision 1214)
+++ code/trunk/src/orxonox/objects/SpaceShip.h	(revision 1219)
@@ -33,6 +33,6 @@
 
 #include <OgrePrerequisites.h>
-#include <OIS/OISMouse.h>
 
+#include "core/InputHandler.h"
 #include "Model.h"
 #include "../tools/BillboardSet.h"
@@ -40,5 +40,5 @@
 namespace orxonox
 {
-    class _OrxonoxExport SpaceShip : public Model, public OIS::MouseListener
+    class _OrxonoxExport SpaceShip : public Model, public MouseHandler
     {
         public:
@@ -68,4 +68,5 @@
             bool mousePressed(const OIS::MouseEvent &e, OIS::MouseButtonID id);
             bool mouseReleased(const OIS::MouseEvent &e, OIS::MouseButtonID id);
+            bool mouseHeld(const OIS::MouseEvent &e, OIS::MouseButtonID id) { return true; }
 
 
