From: Andriy Shinkarchuck Date: Sun, 24 Jul 2011 16:34:05 +0000 (+0300) Subject: keyb.c keyb.h moved to repo. Added license notification X-Git-Url: https://deadsoftware.ru/gitweb?p=flatwaifu.git;a=commitdiff_plain;h=63ef8aebca7277dba63e49d8e12a4b1b026d4701 keyb.c keyb.h moved to repo. Added license notification --- diff --git a/keyb.c b/keyb.c new file mode 100755 index 0000000..d287b16 --- /dev/null +++ b/keyb.c @@ -0,0 +1,65 @@ +/* + Copyright (C) Prikol Software 1996-1997 + Copyright (C) Aleksey Volynskov 1996-1997 + Copyright (C) 2011 + + This file is part of the Doom2D:Rembo project. + + Doom2D:Rembo is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 2 as + published by the Free Software Foundation. + + Doom2D:Rembo is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see or + write to the Free Software Foundation, Inc., + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "keyb.h" +#include + +// стандартная функция обработки клавиш +key_f def_key_proc; + +// массив клавиш: 0 - отпущена, иначе - нажата +unsigned char *keys = NULL; + +static key_f *key_proc = NULL; + + +void K_init() +{ + keys = SDL_GetKeyState(NULL); +} + +void K_done() +{ + +} +// установить функцию обработки клавиш + void K_setkeyproc(key_f *k) +{ + key_proc = k; +} + +void updatee_keys() +{ + SDL_Event event; + while (SDL_PollEvent (&event)) { + if (event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_RETURN && event.key.keysym.mod & KMOD_LALT) { + V_toggle(); + } + else if (event.type == SDL_KEYDOWN || event.type == SDL_KEYUP) { + if (event.type == SDL_KEYDOWN && key_proc!=NULL) + key_proc(event.key.keysym.sym, event.type == SDL_KEYDOWN); + } + else if (event.type == SDL_QUIT) { + ERR_quit(); + } + } +} diff --git a/keyb.h b/keyb.h new file mode 100755 index 0000000..0684fc5 --- /dev/null +++ b/keyb.h @@ -0,0 +1,51 @@ +/* + Драйвер клавиатуры V1.1 для DOS4GW (а также DirectX 3) + Copyright (C) Алексей Волынсков, 1996 + + Copyright (C) Prikol Software 1996-1997 + Copyright (C) Aleksey Volynskov 1996-1997 + Copyright (C) 2011 + + This file is part of the Doom2D:Rembo project. + + Doom2D:Rembo is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 2 as + published by the Free Software Foundation. + + Doom2D:Rembo is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see or + write to the Free Software Foundation, Inc., + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef MYKEYB +#define MYKEYB + +#ifdef __cplusplus +extern "C" { +#endif + +void K_init(); +void K_done(); + +// тип функции обработки клавиш +typedef void key_f(int k,int pressed); + +// установить функцию обработки клавиш +void K_setkeyproc(key_f *); + +// массив клавиш: 0 - отпущена, иначе - нажата +extern unsigned char *keys; + +void updatee_keys(); + +#ifdef __cplusplus +} +#endif + +#endif