Index: code/branches/gui/src/core/input/InputManager.h
===================================================================
--- code/branches/gui/src/core/input/InputManager.h	(revision 1641)
+++ code/branches/gui/src/core/input/InputManager.h	(revision 1642)
@@ -86,44 +86,42 @@
         // --> setConfigValues is private
         friend ClassIdentifier<InputManager>;
-
-    public: // static functions
-        static bool initialise(const size_t windowHnd, int windowWidth, int windowHeight,
+        // let Core class use tick(.)
+        friend Core;
+
+    public:
+        InputManager ();
+        ~InputManager();
+
+        bool initialise(const size_t windowHnd, int windowWidth, int windowHeight,
                                bool createKeyboard = true, bool createMouse = true, bool createJoySticks = false);
-        static int  numberOfKeyboards();
-        static int  numberOfMice();
-        static int  numberOfJoySticks();
-
-        static void destroy();
-
-        //static bool isModifierDown(KeyboardModifier::Enum modifier);
-        //static bool isKeyDown(KeyCode::Enum key);
-        //static const MouseState getMouseState();
-        //static const JoyStickState getJoyStickState(unsigned int ID);
-
-        static void setWindowExtents(const int width, const int height);
-
+
+        int  numberOfKeyboards() { return keyboard_ ? 1 : 0; }
+        int  numberOfMice()      { return mouse_    ? 1 : 0; }
+        int  numberOfJoySticks() { return joySticksSize_; }
+
+        void setWindowExtents(const int width, const int height);
+
+        SimpleInputState*   createSimpleInputState  (const std::string& name, int priority);
+        ExtendedInputState* createExtendedInputState(const std::string& name, int priority);
+        InputState*         createInputState(const std::string& type, const std::string &name, int priority);
+        bool destroyState          (const std::string& name);
+        InputState* getState       (const std::string& name);
+        InputState* getCurrentState();
+        bool requestEnterState     (const std::string& name);
+        bool requestLeaveState     (const std::string& name);
+
+        static InputManager& getInstance()    { assert(singletonRef_s); return *singletonRef_s; }
+        static InputManager* getInstancePtr() { return singletonRef_s; }
+
+    public: // console commands
         static void storeKeyStroke(const std::string& name);
         static void keyBind(const std::string& command);
-
         static void calibrate();
-
-        static void tick(float dt);
-
-        static SimpleInputState*   createSimpleInputState  (const std::string& name, int priority);
-        static ExtendedInputState* createExtendedInputState(const std::string& name, int priority);
-        static bool destroyState (const std::string& name);
-        static InputState* getState       (const std::string& name);
-        static InputState* getCurrentState();
-        static bool requestEnterState     (const std::string& name);
-        static bool requestLeaveState     (const std::string& name);
 
     private: // functions
         // don't mess with a Singleton
-        InputManager ();
         InputManager (const InputManager&);
-        ~InputManager();
 
         // Intenal methods
-        bool _initialise(const size_t, int, int, bool, bool, bool);
         bool _initialiseKeyboard();
         bool _initialiseMouse();
@@ -131,5 +129,4 @@
         void _redimensionLists();
 
-        void _destroy();
         void _destroyKeyboard();
         void _destroyMouse();
@@ -142,8 +139,8 @@
         unsigned int _getJoystick(const OIS::JoyStickEvent& arg);
 
-        void _tick(float dt);
-
         void _updateActiveStates();
         bool _configureInputState(InputState* state, const std::string& name, int priority);
+
+        void tick(float dt);
 
         // input events
@@ -158,8 +155,8 @@
         bool sliderMoved   (const OIS::JoyStickEvent &arg, int id);
         bool povMoved      (const OIS::JoyStickEvent &arg, int id);
+        // don't remove that! Or else add OIS as dependency library to orxonox.
+        bool vector3Moved  (const OIS::JoyStickEvent &arg, int id) { return true; }
 
         void setConfigValues();
-
-        static InputManager& _getInstance();
 
     private: // variables
@@ -204,6 +201,6 @@
 
         static std::string                  bindingCommmandString_s;
-    };
-
+        static InputManager*                singletonRef_s;
+    };
 }
 
