DEADSOFTWARE

d287b162656b57628842bd6b408bb1bd13ea4106
[flatwaifu.git] / src / keyb.c
1 /*
2 Copyright (C) Prikol Software 1996-1997
3 Copyright (C) Aleksey Volynskov 1996-1997
4 Copyright (C) <ARembo@gmail.com> 2011
6 This file is part of the Doom2D:Rembo project.
8 Doom2D:Rembo is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License version 2 as
10 published by the Free Software Foundation.
12 Doom2D:Rembo 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 this program; if not, see <http://www.gnu.org/licenses/> or
19 write to the Free Software Foundation, Inc.,
20 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21 */
23 #include "keyb.h"
24 #include <SDL.h>
26 // стандартная функция обработки клавиш
27 key_f def_key_proc;
29 // массив клавиш: 0 - отпущена, иначе - нажата
30 unsigned char *keys = NULL;
32 static key_f *key_proc = NULL;
35 void K_init()
36 {
37 keys = SDL_GetKeyState(NULL);
38 }
40 void K_done()
41 {
43 }
44 // установить функцию обработки клавиш
45 void K_setkeyproc(key_f *k)
46 {
47 key_proc = k;
48 }
50 void updatee_keys()
51 {
52 SDL_Event event;
53 while (SDL_PollEvent (&event)) {
54 if (event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_RETURN && event.key.keysym.mod & KMOD_LALT) {
55 V_toggle();
56 }
57 else if (event.type == SDL_KEYDOWN || event.type == SDL_KEYUP) {
58 if (event.type == SDL_KEYDOWN && key_proc!=NULL)
59 key_proc(event.key.keysym.sym, event.type == SDL_KEYDOWN);
60 }
61 else if (event.type == SDL_QUIT) {
62 ERR_quit();
63 }
64 }
65 }