Mercurial > might-and-magic-trilogy
comparison Keyboard.h @ 0:8b8875f5b359
Initial commit
author | Nomad |
---|---|
date | Fri, 05 Oct 2012 16:07:14 +0200 |
parents | |
children | af624eaf2fc5 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:8b8875f5b359 |
---|---|
1 #pragma once | |
2 | |
3 | |
4 /* 284 */ | |
5 enum InputAction : __int32 | |
6 { | |
7 INPUT_MoveForward = 0x0, | |
8 INPUT_MoveBackwards = 0x1, | |
9 INPUT_TurnLeft = 0x2, | |
10 INPUT_TurnRight = 0x3, | |
11 INPUT_Yell = 0x4, | |
12 INPUT_Jump = 0x5, | |
13 INPUT_Combat = 0x6, | |
14 INPUT_CastReady = 0x7, | |
15 INPUT_Attack = 0x8, | |
16 INPUT_EventTrigger = 0x9, | |
17 INPUT_Cast = 0xA, | |
18 INPUT_Pass = 0xB, | |
19 INPUT_CharCycle = 0xC, | |
20 INPUT_Quest = 0xD, | |
21 INPUT_QuickRef = 0xE, | |
22 INPUT_Rest = 0xF, | |
23 INPUT_TimeCal = 0x10, | |
24 INPUT_Autonotes = 0x11, | |
25 INPUT_Mapbook = 0x12, | |
26 INPUT_AlwaysRun = 0x13, | |
27 INPUT_LookUp = 0x14, | |
28 INPUT_LookDown = 0x15, | |
29 INPUT_CenterView = 0x16, | |
30 INPUT_ZoomIn = 0x17, | |
31 INPUT_ZoomOut = 0x18, | |
32 INPUT_FlyUp = 0x19, | |
33 INPUT_FlyDown = 0x1A, | |
34 INPUT_Land = 0x1B, | |
35 INPUT_StrafeLeft = 0x1C, | |
36 INPUT_StrafeRight = 0x1D, | |
37 }; | |
38 | |
39 | |
40 | |
41 enum KeyToggleType : __int32 | |
42 { | |
43 TOGGLE_Continuously = 0x0, | |
44 TOGGLE_OneTimePress = 0x1, | |
45 }; | |
46 | |
47 #pragma pack(push, 1) | |
48 struct KeyboardActionMapping | |
49 { | |
50 KeyboardActionMapping(); | |
51 | |
52 void SetKeyMapping(int uAction, int vKey, KeyToggleType type); | |
53 unsigned int GetActionVKey(enum InputAction eAction); | |
54 const char *GetVKeyDisplayName(signed int a1); | |
55 const unsigned __int8 GetActionDefaultVKey(const char *Str); | |
56 void ReadMappings(); | |
57 void StoreMappings(); | |
58 bool _459F10(unsigned int a2); | |
59 void _459ED1(int a2); | |
60 void _459E5A(int a2, int a3, struct GUIWindow *pWindow); | |
61 void ResetKeys(); | |
62 void SetDefaultMapping(); | |
63 | |
64 unsigned int uLastKeyPressed; | |
65 int field_4; | |
66 int field_8; | |
67 unsigned int pVirtualKeyCodesMapping[30]; | |
68 KeyToggleType pToggleTypes[30]; | |
69 int field_FC; | |
70 unsigned __int8 pPressedKeysBuffer[257]; | |
71 unsigned __int8 uNumKeysPressed; | |
72 char field_202; | |
73 char field_203; | |
74 int field_204; | |
75 struct GUIWindow *pWindow; | |
76 }; | |
77 #pragma pack(pop) | |
78 | |
79 #pragma pack(push, 1) | |
80 struct Keyboard | |
81 { | |
82 Keyboard(); | |
83 bool WasKeyPressed(int vKey); | |
84 bool IsKeyBeingHeld(int vKey); | |
85 bool IsShiftHeld(); | |
86 void EnterCriticalSection(); | |
87 | |
88 void (__thiscall ***vdestructor_ptr)(Keyboard *, bool); | |
89 unsigned int bUsingAsynKeyboard; | |
90 }; | |
91 #pragma pack(pop) | |
92 | |
93 | |
94 #pragma pack(push, 1) | |
95 struct AsyncKeyboard | |
96 { | |
97 AsyncKeyboard(); | |
98 ~AsyncKeyboard(); | |
99 | |
100 bool Initialize(); | |
101 char map_key(int key); | |
102 char _45B4EC(unsigned __int8 a2); | |
103 void Thread(); | |
104 char _45B3A4(); | |
105 void Suspend(); | |
106 void Resume(); | |
107 char CreateDirectInputKeyboard(); | |
108 char _45B229(); | |
109 void _45B1B1(); | |
110 void Release(); | |
111 | |
112 static int __stdcall ThreadStarter(AsyncKeyboard *pInstance); | |
113 static void EnterCriticalSection(); | |
114 static void LeaveCriticalSection(); | |
115 }; | |
116 #pragma pack(pop) | |
117 | |
118 | |
119 extern struct KeyboardActionMapping *pKeyActionMap; | |
120 extern struct AsyncKeyboard *pAsyncKeyboard; |