Add IInputSystem and IInputInternal interfaces.
Signed-off-by: aixxe <me@aixxe.net>
This commit is contained in:
parent
5d3e60ddd3
commit
f8b4871d7e
|
@ -0,0 +1,126 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
enum ButtonCode_t {
|
||||||
|
BUTTON_CODE_INVALID = -1,
|
||||||
|
BUTTON_CODE_NONE = 0,
|
||||||
|
KEY_FIRST = 0,
|
||||||
|
KEY_NONE = KEY_FIRST,
|
||||||
|
KEY_0,
|
||||||
|
KEY_1,
|
||||||
|
KEY_2,
|
||||||
|
KEY_3,
|
||||||
|
KEY_4,
|
||||||
|
KEY_5,
|
||||||
|
KEY_6,
|
||||||
|
KEY_7,
|
||||||
|
KEY_8,
|
||||||
|
KEY_9,
|
||||||
|
KEY_A,
|
||||||
|
KEY_B,
|
||||||
|
KEY_C,
|
||||||
|
KEY_D,
|
||||||
|
KEY_E,
|
||||||
|
KEY_F,
|
||||||
|
KEY_G,
|
||||||
|
KEY_H,
|
||||||
|
KEY_I,
|
||||||
|
KEY_J,
|
||||||
|
KEY_K,
|
||||||
|
KEY_L,
|
||||||
|
KEY_M,
|
||||||
|
KEY_N,
|
||||||
|
KEY_O,
|
||||||
|
KEY_P,
|
||||||
|
KEY_Q,
|
||||||
|
KEY_R,
|
||||||
|
KEY_S,
|
||||||
|
KEY_T,
|
||||||
|
KEY_U,
|
||||||
|
KEY_V,
|
||||||
|
KEY_W,
|
||||||
|
KEY_X,
|
||||||
|
KEY_Y,
|
||||||
|
KEY_Z,
|
||||||
|
KEY_PAD_0,
|
||||||
|
KEY_PAD_1,
|
||||||
|
KEY_PAD_2,
|
||||||
|
KEY_PAD_3,
|
||||||
|
KEY_PAD_4,
|
||||||
|
KEY_PAD_5,
|
||||||
|
KEY_PAD_6,
|
||||||
|
KEY_PAD_7,
|
||||||
|
KEY_PAD_8,
|
||||||
|
KEY_PAD_9,
|
||||||
|
KEY_PAD_DIVIDE,
|
||||||
|
KEY_PAD_MULTIPLY,
|
||||||
|
KEY_PAD_MINUS,
|
||||||
|
KEY_PAD_PLUS,
|
||||||
|
KEY_PAD_ENTER,
|
||||||
|
KEY_PAD_DECIMAL,
|
||||||
|
KEY_LBRACKET,
|
||||||
|
KEY_RBRACKET,
|
||||||
|
KEY_SEMICOLON,
|
||||||
|
KEY_APOSTROPHE,
|
||||||
|
KEY_BACKQUOTE,
|
||||||
|
KEY_COMMA,
|
||||||
|
KEY_PERIOD,
|
||||||
|
KEY_SLASH,
|
||||||
|
KEY_BACKSLASH,
|
||||||
|
KEY_MINUS,
|
||||||
|
KEY_EQUAL,
|
||||||
|
KEY_ENTER,
|
||||||
|
KEY_SPACE,
|
||||||
|
KEY_BACKSPACE,
|
||||||
|
KEY_TAB,
|
||||||
|
KEY_CAPSLOCK,
|
||||||
|
KEY_NUMLOCK,
|
||||||
|
KEY_ESCAPE,
|
||||||
|
KEY_SCROLLLOCK,
|
||||||
|
KEY_INSERT,
|
||||||
|
KEY_DELETE,
|
||||||
|
KEY_HOME,
|
||||||
|
KEY_END,
|
||||||
|
KEY_PAGEUP,
|
||||||
|
KEY_PAGEDOWN,
|
||||||
|
KEY_BREAK,
|
||||||
|
KEY_LSHIFT,
|
||||||
|
KEY_RSHIFT,
|
||||||
|
KEY_LALT,
|
||||||
|
KEY_RALT,
|
||||||
|
KEY_LCONTROL,
|
||||||
|
KEY_RCONTROL,
|
||||||
|
KEY_LWIN,
|
||||||
|
KEY_RWIN,
|
||||||
|
KEY_APP,
|
||||||
|
KEY_UP,
|
||||||
|
KEY_LEFT,
|
||||||
|
KEY_DOWN,
|
||||||
|
KEY_RIGHT,
|
||||||
|
KEY_F1,
|
||||||
|
KEY_F2,
|
||||||
|
KEY_F3,
|
||||||
|
KEY_F4,
|
||||||
|
KEY_F5,
|
||||||
|
KEY_F6,
|
||||||
|
KEY_F7,
|
||||||
|
KEY_F8,
|
||||||
|
KEY_F9,
|
||||||
|
KEY_F10,
|
||||||
|
KEY_F11,
|
||||||
|
KEY_F12,
|
||||||
|
KEY_CAPSLOCKTOGGLE,
|
||||||
|
KEY_NUMLOCKTOGGLE,
|
||||||
|
KEY_SCROLLLOCKTOGGLE,
|
||||||
|
KEY_LAST = KEY_SCROLLLOCKTOGGLE,
|
||||||
|
KEY_COUNT = KEY_LAST - KEY_FIRST + 1,
|
||||||
|
MOUSE_FIRST = KEY_LAST + 1,
|
||||||
|
MOUSE_LEFT = MOUSE_FIRST,
|
||||||
|
MOUSE_RIGHT,
|
||||||
|
MOUSE_MIDDLE,
|
||||||
|
MOUSE_4,
|
||||||
|
MOUSE_5,
|
||||||
|
MOUSE_WHEEL_UP,
|
||||||
|
MOUSE_WHEEL_DOWN,
|
||||||
|
MOUSE_LAST = MOUSE_WHEEL_DOWN,
|
||||||
|
MOUSE_COUNT = MOUSE_LAST - MOUSE_FIRST + 1
|
||||||
|
};
|
|
@ -0,0 +1,21 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
typedef ButtonCode_t KeyCode;
|
||||||
|
typedef ButtonCode_t MouseCode;
|
||||||
|
|
||||||
|
enum MouseCodeState_t {
|
||||||
|
BUTTON_RELEASED = 0,
|
||||||
|
BUTTON_PRESSED,
|
||||||
|
BUTTON_DOUBLECLICKED
|
||||||
|
};
|
||||||
|
|
||||||
|
class IInputInternal {
|
||||||
|
public:
|
||||||
|
void SetKeyCodeState(KeyCode code, bool pressed) {
|
||||||
|
GetVirtualFunction<void(*)(IInputInternal*, KeyCode, bool)>(this, 83)(this, code, pressed);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetMouseCodeState(MouseCode code, MouseCodeState_t state) {
|
||||||
|
GetVirtualFunction<void(*)(IInputInternal*, MouseCode, MouseCodeState_t)>(this, 84)(this, code, state);
|
||||||
|
}
|
||||||
|
};
|
|
@ -0,0 +1,10 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
enum ButtonCode_t;
|
||||||
|
|
||||||
|
class IInputSystem {
|
||||||
|
public:
|
||||||
|
bool IsButtonDown(ButtonCode_t button) {
|
||||||
|
return GetVirtualFunction<bool(*)(void*, ButtonCode_t)>(this, 11)(this, button);
|
||||||
|
}
|
||||||
|
};
|
Loading…
Reference in New Issue