* Fix wrong pointer dereference in InputTask.
[matthijs/ABM2.git] / ABM2 / Engine / InputTask.h
index e3363f6137fd0d791d33f76bc098587664135cf9..6f8cb43f1e36cc670e08ccde68f1308c20a2da28 100755 (executable)
 #endif // _MSC_VER > 1000\r
 \r
 #include "engine.h"\r
+#include "Amaltheia/Input.h"\r
+#ifdef WIN32\r
 #define DIRECTINPUT_VERSION 0x0800\r
 #include <dinput.h>\r
+#endif // WIN32\r
 \r
 class CInputTask : public ITask  \r
 {\r
 public:\r
-       CInputTask();\r
+       CInputTask(CKernel* kernel);\r
        virtual ~CInputTask();\r
 \r
        bool Start();\r
        void Update();\r
        void Stop();\r
-\r
-       static BYTE keys[256], oldKeys[256];\r
+       /* XXX: Yuck, static crapjes */\r
+       static BYTE *keys, *oldKeys;\r
        //static CMMPointer<CMMDynamicBlob<unsigned char> > oldKeys;\r
-       //static int keyCount;\r
+       static int keyCount;\r
        \r
        static int dX,dY;\r
        static unsigned int buttons;\r
        static unsigned int oldButtons;\r
 \r
-       static bool inline curKey(int index) { return (keys[index] & 0x80) != 0; }\r
-       static bool inline oldKey(int index) { return (oldKeys[index] & 0x80) != 0; }\r
+       static bool inline curKey(int index) { return (keys[index]) != 0; }\r
+       static bool inline oldKey(int index) { return (oldKeys[index]) != 0; }\r
 \r
        //some helper functions to make certain things easier\r
        //static bool inline keyDown(int index)         { return ( curKey(index))&&(!oldKey(index)); }\r
@@ -50,9 +53,11 @@ public:
        //static bool inline mouseStillUp(int button)   { return (!curMouse(button))&&(!oldMouse(button)); }\r
 \r
        AUTO_SIZE;\r
+#ifdef WIN32\r
 private:\r
        LPDIRECTINPUT8 din;    // the pointer to our DirectInput interface\r
        LPDIRECTINPUTDEVICE8 dinkeyboard;    // the pointer to the keyboard device\r
+#endif\r
 };\r
 \r
 #endif // !defined(AFX_KEYBOARDTASK_H__4953EF06_7C18_4433_B590_47E045E43576__INCLUDED_)\r