OpenBarnyard
 
Loading...
Searching...
No Matches
TInputDeviceKeyboard.h
Go to the documentation of this file.
1
11
12#pragma once
13#include "TInputInterface.h"
14
16
18{
19public:
21
22public:
23#pragma region KEYS
24 enum : Doodad
25 {
26 DOODAD_START = 0x20000,
27 VIRTKEY = 0x20001,
28 VIRTKEY_SHIFT = 0x20002,
29 VIRTKEY_CONTROL = 0x20003,
30 VIRTKEY_ALT = 0x20004,
31 KEY_ESCAPE = 0x20005,
32 KEY_1 = 0x20006,
33 KEY_2 = 0x20007,
34 KEY_3 = 0x20008,
35 KEY_4 = 0x20009,
36 KEY_5 = 0x2000A,
37 KEY_6 = 0x2000B,
38 KEY_7 = 0x2000C,
39 KEY_8 = 0x2000D,
40 KEY_9 = 0x2000E,
41 KEY_0 = 0x2000F,
42 KEY_MINUS = 0x20010,
43 KEY_EQUALS = 0x20011,
44 KEY_BACK = 0x20012,
45 KEY_TAB = 0x20013,
46 KEY_Q = 0x20014,
47 KEY_W = 0x20015,
48 KEY_E = 0x20016,
49 KEY_R = 0x20017,
50 KEY_T = 0x20018,
51 KEY_Y = 0x20019,
52 KEY_U = 0x2001A,
53 KEY_I = 0x2001B,
54 KEY_O = 0x2001C,
55 KEY_P = 0x2001D,
56 KEY_LBRACKET = 0x2001E,
57 KEY_RBRACKET = 0x2001F,
58 KEY_RETURN = 0x20020,
59 KEY_LCONTROL = 0x20021,
60 KEY_A = 0x20022,
61 KEY_S = 0x20023,
62 KEY_D = 0x20024,
63 KEY_F = 0x20025,
64 KEY_G = 0x20026,
65 KEY_H = 0x20027,
66 KEY_J = 0x20028,
67 KEY_K = 0x20029,
68 KEY_L = 0x2002A,
69 KEY_SEMICOLON = 0x2002B,
70 KEY_APOSTROPHE = 0x2002C,
71 KEY_GRAVE = 0x2002D,
72 KEY_LSHIFT = 0x2002E,
73 KEY_BACKSLASH = 0x2002F,
74 KEY_Z = 0x20030,
75 KEY_X = 0x20031,
76 KEY_C = 0x20032,
77 KEY_V = 0x20033,
78 KEY_B = 0x20034,
79 KEY_N = 0x20035,
80 KEY_M = 0x20036,
81 KEY_COMMA = 0x20037,
82 KEY_PERIOD = 0x20038,
83 KEY_SLASH = 0x20039,
84 KEY_RSHIFT = 0x2003A,
85 KEY_MULTIPLY = 0x2003B,
86 KEY_LMENU = 0x2003c,
87 KEY_SPACE = 0x2003d,
88 KEY_CAPITAL = 0x2003e,
89 KEY_F1 = 0x2003f,
90 KEY_F2 = 0x20040,
91 KEY_F3 = 0x20041,
92 KEY_F4 = 0x20042,
93 KEY_F5 = 0x20043,
94 KEY_F6 = 0x20044,
95 KEY_F7 = 0x20045,
96 KEY_F8 = 0x20046,
97 KEY_F9 = 0x20047,
98 KEY_F10 = 0x20048,
99 KEY_NUMLOCK = 0x20049,
100 KEY_SCROLL = 0x2004a,
101 KEY_NUMPAD7 = 0x2004b,
102 KEY_NUMPAD8 = 0x2004c,
103 KEY_NUMPAD9 = 0x2004d,
104 KEY_SUBTRACT = 0x2004e,
105 KEY_NUMPAD4 = 0x2004f,
106 KEY_NUMPAD5 = 0x20050,
107 KEY_NUMPAD6 = 0x20051,
108 KEY_ADD = 0x20052,
109 KEY_NUMPAD1 = 0x20053,
110 KEY_NUMPAD2 = 0x20054,
111 KEY_NUMPAD3 = 0x20055,
112 KEY_NUMPAD0 = 0x20056,
113 KEY_DECIMAL = 0x20057,
114 KEY_F11 = 0x20058,
115 KEY_F12 = 0x20059,
116 KEY_F13 = 0x2005a,
117 KEY_F14 = 0x2005b,
118 KEY_F15 = 0x2005c,
119 KEY_KANA = 0x2005d,
120 KEY_CONVERT = 0x2005e,
121 KEY_NOCONVERT = 0x2005f,
122 KEY_YEN = 0x20060,
124 KEY_CIRCUMFLEX = 0x20062,
125 KEY_AT = 0x20063,
126 KEY_COLON = 0x20064,
127 KEY_UNDERLINE = 0x20065,
128 KEY_KANJI = 0x20066,
129 KEY_STOP = 0x20067,
130 KEY_AX = 0x20068,
131 KEY_UNLABELED = 0x20069,
133 KEY_RCONTROL = 0x2006b,
135 KEY_DIVIDE = 0x2006d,
136 KEY_SYSRQ = 0x2006e,
137 KEY_RMENU = 0x2006f,
138 KEY_HOME = 0x20070,
139 KEY_PAUSE = 0x20071,
140 KEY_UP = 0x20072,
141 KEY_PRIOR = 0x20073,
142 KEY_LEFT = 0x20074,
143 KEY_RIGHT = 0x20075,
144 KEY_END = 0x20076,
145 KEY_DOWN = 0x20077,
146 KEY_NEXT = 0x20078,
147 KEY_INSERT = 0x20079,
148 KEY_DELETE = 0x2007a,
149 KEY_LWIN = 0x2007b,
150 KEY_RWIN = 0x2007c,
151 KEY_APPS = 0x2007d,
152 KEY_POWER = 0x2007e,
153 KEY_SLEEP = 0x2007f,
154 DOODAD_END = 0x20080
155 };
156#pragma endregion
157
158 inline static constexpr TUINT KEYBOARD_NUM_DOODADS = 128;
159 inline static constexpr TUINT VIRTSTK_DIRECTIONAL_MAPS = 2;
160
161public:
164
165 virtual TBOOL GetDoodadProperties( Doodad a_iDoodad, DoodadProperties& doodadProps ) const override;
166
167 virtual TINT GetAxisCount() const override { return 0; }
168 virtual const TCHAR* GetButtonFromDoodad( Doodad a_iDoodad ) const override;
169 virtual TINT GetAxisInt( Doodad a_iDoodad, TINT axis ) const override { return 0; }
170 virtual float GetAxisFloat( Doodad a_iDoodad, TINT axis ) const override { return 0; }
171
172 virtual TBOOL IsShiftDown() const = 0;
173 virtual TBOOL IsControlDown() const = 0;
174 virtual TBOOL IsAltDown() const = 0;
175 virtual TBOOL WasDown( Doodad a_iDoodad ) const = 0;
176 virtual TWCHAR* TranslateDoodadToCharacter( Doodad a_iDoodad ) const = 0;
177 virtual TINT ProcessVirtualButtons( EventEmitter& a_rEmitter, TFLOAT flt );
178
179 void SetVirtStickDoodads( TINT a_iMapID, Doodad a_iDoodad1, Doodad a_iDoodad2, Doodad a_iDoodad3, Doodad a_iDoodad4 );
180 void GetVirtStickDoodads( TINT a_iMapID, Doodad& a_rDoodad1, Doodad& a_rDoodad2, Doodad& a_rDoodad3, Doodad& a_rDoodad4 );
181
182protected:
184
185protected:
193
194 TFLOAT m_aMags[ 4 ]; // 0x40
196};
197
Input system interface for the Toshi engine.
#define TOSHI_NAMESPACE_START
Definition Defines.h:47
#define TOSHI_NAMESPACE_END
Definition Defines.h:50
wchar_t TWCHAR
Definition Typedefs.h:21
unsigned int TUINT
Definition Typedefs.h:8
char TCHAR
Definition Typedefs.h:20
float TFLOAT
Definition Typedefs.h:4
int TINT
Definition Typedefs.h:7
bool TBOOL
Definition Typedefs.h:6
static constexpr TUINT KEYBOARD_NUM_DOODADS
static constexpr TUINT VIRTSTK_DIRECTIONAL_MAPS
virtual TBOOL IsAltDown() const =0
TDECLARE_CLASS(TInputDeviceKeyboard, TInputDevice)
virtual TBOOL GetDoodadProperties(Doodad a_iDoodad, DoodadProperties &doodadProps) const override
virtual TWCHAR * TranslateDoodadToCharacter(Doodad a_iDoodad) const =0
VirtStickDoodad m_aVirtStickDoodads[VIRTSTK_DIRECTIONAL_MAPS]
virtual const TCHAR * GetButtonFromDoodad(Doodad a_iDoodad) const override
virtual TINT GetAxisInt(Doodad a_iDoodad, TINT axis) const override
void GetVirtStickDoodads(TINT a_iMapID, Doodad &a_rDoodad1, Doodad &a_rDoodad2, Doodad &a_rDoodad3, Doodad &a_rDoodad4)
virtual TINT ProcessVirtualButtons(EventEmitter &a_rEmitter, TFLOAT flt)
virtual TBOOL IsControlDown() const =0
virtual TBOOL IsShiftDown() const =0
void SetVirtStickDoodads(TINT a_iMapID, Doodad a_iDoodad1, Doodad a_iDoodad2, Doodad a_iDoodad3, Doodad a_iDoodad4)
virtual TINT GetAxisCount() const override
virtual TBOOL WasDown(Doodad a_iDoodad) const =0
virtual float GetAxisFloat(Doodad a_iDoodad, TINT axis) const override
TInputInterface::EventEmitter EventEmitter