* Fix wrong pointer dereference in InputTask.
[matthijs/ABM2.git] / ABM2 / Engine / InputTask.h
index 337cd55f9916f53876f603ea56423bc7f10c8d77..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
-\r
-#ifndef WIN32\r
-/* HACK to make this compile */\r
-#define BYTE unsigned char\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