DEADSOFTWARE

b0b245c9af3118760d0ad3c3fb7b03ed601c9a3c
[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 "vga.h"
25 #include "error.h"
26 #include <SDL.h>
28 // стандартная функция обработки клавиш
29 key_f def_key_proc;
31 // массив клавиш: 0 - отпущена, иначе - нажата
32 unsigned char *keys = NULL;
34 static key_f *key_proc = NULL;
37 void K_init()
38 {
39 keys = SDL_GetKeyState(NULL);
40 }
42 void K_done()
43 {
45 }
46 // установить функцию обработки клавиш
47 void K_setkeyproc(key_f *k)
48 {
49 key_proc = k;
50 }
52 void updatee_keys()
53 {
54 SDL_Event event;
55 while (SDL_PollEvent (&event)) {
56 if (event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_RETURN && event.key.keysym.mod & KMOD_LALT) {
57 V_toggle();
58 }
59 else if (event.type == SDL_KEYDOWN || event.type == SDL_KEYUP) {
60 if (event.type == SDL_KEYDOWN && key_proc!=NULL)
61 key_proc(event.key.keysym.sym, event.type == SDL_KEYDOWN);
62 }
63 else if (event.type == SDL_QUIT) {
64 ERR_quit();
65 }
66 }
67 }