summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 23ea3dc)
raw | patch | inline | side by side (parent: 23ea3dc)
author | Andriy Shinkarchuck <adriano32.gnu@gmail.com> | |
Sun, 24 Jul 2011 16:34:05 +0000 (19:34 +0300) | ||
committer | Andriy Shinkarchuck <adriano32.gnu@gmail.com> | |
Sun, 24 Jul 2011 16:34:05 +0000 (19:34 +0300) |
keyb.c | [new file with mode: 0755] | patch | blob |
keyb.h | [new file with mode: 0755] | patch | blob |
diff --git a/keyb.c b/keyb.c
--- /dev/null
+++ b/keyb.c
@@ -0,0 +1,65 @@
+/*
+ Copyright (C) Prikol Software 1996-1997
+ Copyright (C) Aleksey Volynskov 1996-1997
+ Copyright (C) <ARembo@gmail.com> 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 <http://www.gnu.org/licenses/> or
+ write to the Free Software Foundation, Inc.,
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#include "keyb.h"
+#include <SDL.h>
+
+// стандартная функция обработки клавиш
+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
--- /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) <ARembo@gmail.com> 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 <http://www.gnu.org/licenses/> 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