1
/************************************************************************************
3
AstroMenace (Hardcore 3D space shooter with spaceship upgrade possibilities)
4
Copyright © 2006-2012 Michael Kurinnoy, Viewizard
7
AstroMenace is free software: you can redistribute it and/or modify
8
it under the terms of the GNU General Public License as published by
9
the Free Software Foundation, either version 3 of the License, or
10
(at your option) any later version.
12
AstroMenace is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
GNU General Public License for more details.
17
You should have received a copy of the GNU General Public License
18
along with AstroMenace. If not, see <http://www.gnu.org/licenses/>.
21
Web Site: http://www.viewizard.com/
22
Project: http://sourceforge.net/projects/openastromenace/
23
E-mail: viewizard@viewizard.com
25
*************************************************************************************/
36
//------------------------------------------------------------------------------------
37
// установка-получение статуса нажатых кнопок на клавиатуре
38
//------------------------------------------------------------------------------------
39
bool vw_GetKeys(int Num)
41
Uint8 *keystate = SDL_GetKeyState(&MaxKeyCount);
42
if (keystate[Num]) return true;
45
void vw_SetKeys(int Num, bool NewKeyStatus)
47
Uint8 *keystate = SDL_GetKeyState(&MaxKeyCount);
48
keystate[Num] = NewKeyStatus;
64
const char * vw_VirtualCodeNameEN(int Num);
65
const char * vw_VirtualCodeNameDE(int Num);
66
const char * vw_VirtualCodeNameRU(int Num);
69
const char * vw_VirtualCodeName(int Language, int Num)
73
case 1: return vw_VirtualCodeNameEN(Num);
74
case 2: return vw_VirtualCodeNameDE(Num);
75
case 3: return vw_VirtualCodeNameRU(Num);
87
struct sKeyboardCodeName
93
const int KeyboardCodeNameDataCount = 99;
94
sKeyboardCodeName KeyboardCodeNameData[KeyboardCodeNameDataCount] =
100
{SDLK_F5, "SDLK_F5"},
101
{SDLK_F6, "SDLK_F6"},
102
{SDLK_F7, "SDLK_F7"},
103
{SDLK_F8, "SDLK_F8"},
104
{SDLK_F9, "SDLK_F9"},
105
{SDLK_F10, "SDLK_F10"},
106
{SDLK_F11, "SDLK_F11"},
107
{SDLK_F12, "SDLK_F12"},
117
{SDLK_MINUS, "SDLK_MINUS"},
118
{SDLK_EQUALS, "SDLK_EQUALS"},
119
{SDLK_BACKSPACE, "SDLK_BACKSPACE"},
120
{SDLK_TAB, "SDLK_TAB"},
131
{SDLK_LEFTBRACKET, "SDLK_LEFTBRACKET"},
132
{SDLK_RIGHTBRACKET, "SDLK_RIGHTBRACKET"},
133
{SDLK_RETURN, "SDLK_RETURN"},
134
{SDLK_LCTRL, "SDLK_LCTRL"},
144
{SDLK_SEMICOLON, "SDLK_SEMICOLON"},
145
{SDLK_QUOTE, "SDLK_QUOTE"},
146
{SDLK_QUOTEDBL, "SDLK_QUOTEDBL"},
147
{SDLK_BACKQUOTE, "SDLK_BACKQUOTE"},
148
{SDLK_LSHIFT, "SDLK_LSHIFT"},
149
{SDLK_BACKSLASH, "SDLK_BACKSLASH"},
157
{SDLK_COMMA, "SDLK_COMMA"},
158
{SDLK_PERIOD, "SDLK_PERIOD"},
159
{SDLK_SLASH, "SDLK_SLASH"},
160
{SDLK_RSHIFT, "SDLK_RSHIFT"},
161
{SDLK_ASTERISK, "SDLK_ASTERISK"},
162
{SDLK_LALT, "SDLK_LALT"},
163
{SDLK_SPACE, "SDLK_SPACE"},
164
{SDLK_KP7, "SDLK_KP7"},
165
{SDLK_KP8, "SDLK_KP8"},
166
{SDLK_KP9, "SDLK_KP9"},
167
{SDLK_KP_MINUS, "SDLK_KP_MINUS"},
168
{SDLK_KP_MULTIPLY, "SDLK_KP_MULTIPLY"},
169
{SDLK_KP4, "SDLK_KP4"},
170
{SDLK_KP5, "SDLK_KP5"},
171
{SDLK_KP6, "SDLK_KP6"},
172
{SDLK_KP_PLUS, "SDLK_KP_PLUS"},
173
{SDLK_KP1, "SDLK_KP1"},
174
{SDLK_KP2, "SDLK_KP2"},
175
{SDLK_KP3, "SDLK_KP3"},
176
{SDLK_KP0, "SDLK_KP0"},
177
{SDLK_KP_PERIOD, "SDLK_KP_PERIOD"},
178
{SDLK_KP_ENTER, "SDLK_KP_ENTER"},
179
{SDLK_RCTRL, "SDLK_RCTRL"},
180
{SDLK_KP_DIVIDE, "SDLK_KP_DIVIDE"},
181
{SDLK_RALT, "SDLK_RALT"},
182
{SDLK_PAUSE, "SDLK_PAUSE"},
183
{SDLK_HOME, "SDLK_HOME"},
184
{SDLK_UP, "SDLK_UP"},
185
{SDLK_PAGEUP, "SDLK_PAGEUP"},
186
{SDLK_LEFT, "SDLK_LEFT"},
187
{SDLK_RIGHT, "SDLK_RIGHT"},
188
{SDLK_END, "SDLK_END"},
189
{SDLK_DOWN, "SDLK_DOWN"},
190
{SDLK_PAGEDOWN, "SDLK_PAGEDOWN"},
191
{SDLK_INSERT, "SDLK_INSERT"},
192
{SDLK_DELETE, "SDLK_DELETE"},
193
{SDLK_LSUPER, "SDLK_LSUPER"},
194
{SDLK_RSUPER, "SDLK_RSUPER"},
200
const char * vw_KeyboardCodeName(int Num)
202
for (int i=0; i<KeyboardCodeNameDataCount; i++)
203
if (KeyboardCodeNameData[i].Code == Num) return KeyboardCodeNameData[i].Name;
208
int vw_KeyboardNameCode(const char * Name)
210
for (int i=0; i<KeyboardCodeNameDataCount; i++)
211
if (!strcmp(KeyboardCodeNameData[i].Name, Name)) return KeyboardCodeNameData[i].Code;
219
// текущий юникод нажатой клавиши
220
Uint16 CurrentKeyUnicode = 0;
222
void vw_SetCurrentKeyUnicode(Uint16 NewKeyUnicode)
224
CurrentKeyUnicode = NewKeyUnicode;
227
Uint16 vw_GetCurrentKeyUnicode()
229
return CurrentKeyUnicode;