X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=keys.h;h=5b42933a1d464f338ee76bdf0942e6e590b50226;hp=4447faf4729af3451f20f7a04f366fa4aa75a71d;hb=f9efec5d9bd92a5b614aab549f8b0a009051fbbc;hpb=7bbc05e4b0d3041dfdac6fc6c5506710594fe2c9 diff --git a/keys.h b/keys.h index 4447faf4..5b42933a 100644 --- a/keys.h +++ b/keys.h @@ -1,43 +1,47 @@ /* -Copyright (C) 1996-1997 Id Software, Inc. + $RCSfile$ -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. + Copyright (C) 1996-1997 Id Software, Inc. -This program 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. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. -See the GNU General Public License for more details. + This program 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. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + 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, write to: -#ifndef KEYS_H -#define KEYS_H + Free Software Foundation, Inc. + 59 Temple Place - Suite 330 + Boston, MA 02111-1307, USA -// these are the key numbers that should be passed to Key_Event + $Id$ +*/ -typedef enum { - K_TAB = 9, - K_ENTER = 13, - K_ESCAPE = 27, - K_SPACE = 32, +#ifndef __KEYS_H +#define __KEYS_H - // normal keys should be passed as lowercased ascii +#include "qtypes.h" - K_BACKSPACE = 127, +// +// these are the key numbers that should be passed to Key_Event +// +typedef enum keynum_e +{ + K_TAB = 9, + K_ENTER = 13, + K_ESCAPE = 27, + K_SPACE = 32, - K_CAPSLOCK, - K_PRNTSCR, - K_SCRLCK, - K_PAUSE, + // normal keys should be passed as lowercased ascii + K_BACKSPACE = 127, K_UPARROW, K_DOWNARROW, K_LEFTARROW, @@ -46,6 +50,7 @@ typedef enum { K_ALT, K_CTRL, K_SHIFT, + K_F1, K_F2, K_F3, @@ -58,6 +63,7 @@ typedef enum { K_F10, K_F11, K_F12, + K_INS, K_DEL, K_PGDN, @@ -65,48 +71,87 @@ typedef enum { K_HOME, K_END, + K_PAUSE, - // Keypad stuff.. - - KP_NUMLCK, - KP_DIVIDE, - KP_MULTIPLY, - - KP_HOME, - KP_UPARROW, - KP_PGUP, - KP_MINUS, - - KP_LEFTARROW, - KP_5, - KP_RIGHTARROW, - KP_PLUS, - - KP_END, - KP_DOWNARROW, - KP_PGDN, - - - KP_INS, - KP_DEL, - KP_ENTER, + K_NUMLOCK, + K_CAPSLOCK, + K_SCROLLOCK, + + K_KP_0, + K_KP_INS = K_KP_0, + K_KP_1, + K_KP_END = K_KP_1, + K_KP_2, + K_KP_DOWNARROW = K_KP_2, + K_KP_3, + K_KP_PGDN = K_KP_3, + K_KP_4, + K_KP_LEFTARROW = K_KP_4, + K_KP_5, + K_KP_6, + K_KP_RIGHTARROW = K_KP_6, + K_KP_7, + K_KP_HOME = K_KP_7, + K_KP_8, + K_KP_UPARROW = K_KP_8, + K_KP_9, + K_KP_PGUP = K_KP_9, + K_KP_PERIOD, + K_KP_DEL = K_KP_PERIOD, + K_KP_DIVIDE, + K_KP_SLASH = K_KP_DIVIDE, + K_KP_MULTIPLY, + K_KP_MINUS, + K_KP_PLUS, + K_KP_ENTER, + K_KP_EQUALS, // mouse buttons generate virtual keys - K_MOUSE1 = 200, + + K_MOUSE1 = 512, + K_OTHERDEVICESBEGIN = K_MOUSE1, K_MOUSE2, K_MOUSE3, - - // joystick buttons - K_JOY1, + K_MWHEELUP, + K_MWHEELDOWN, + K_MOUSE4, + K_MOUSE5, + K_MOUSE6, + K_MOUSE7, + K_MOUSE8, + K_MOUSE9, + K_MOUSE10, + K_MOUSE11, + K_MOUSE12, + K_MOUSE13, + K_MOUSE14, + K_MOUSE15, + K_MOUSE16, + +// +// joystick buttons +// + K_JOY1 = 768, K_JOY2, K_JOY3, K_JOY4, - - // - //// aux keys are for multi-buttoned joysticks to generate so they can use - //// the normal binding process - //// - // + K_JOY5, + K_JOY6, + K_JOY7, + K_JOY8, + K_JOY9, + K_JOY10, + K_JOY11, + K_JOY12, + K_JOY13, + K_JOY14, + K_JOY15, + K_JOY16, + +// +// aux keys are for multi-buttoned joysticks to generate so they can use +// the normal binding process +// K_AUX1, K_AUX2, K_AUX3, @@ -140,27 +185,39 @@ typedef enum { K_AUX31, K_AUX32, - // JACK: Intellimouse(c) Mouse Wheel Support - - K_MWHEELUP, - K_MWHEELDOWN -} keynum_t; - - -typedef enum {key_game, key_message, key_menu} keydest_t; - -extern int key_consoleactive; -extern keydest_t key_dest; -extern char *keybindings[256]; -extern int key_repeats[256]; -extern int key_count; // incremented every key event -extern int key_lastpress; - -void Key_Event (int key, qboolean down); -void Key_Init (void); -void Key_WriteBindings (QFile *f); -void Key_SetBinding (int keynum, char *binding); +} +keynum_t; + +typedef enum keydest_e { key_game, key_message, key_menu, key_menu_grabbed, key_console, key_void } keydest_t; + +#define MAX_INPUTLINES 32 +#define MAX_BINDMAPS 8 +#define MAX_KEYS 1024 +extern int edit_line; +extern int history_line; +extern char key_lines[MAX_INPUTLINES][MAX_INPUTLINE]; +extern int key_linepos; +extern qboolean key_insert; // insert key toggle (for editing) +extern keydest_t key_dest; +// key_consoleactive bits +// user wants console (halfscreen) +#define KEY_CONSOLEACTIVE_USER 1 +// console forced because there's nothing else active (fullscreen) +#define KEY_CONSOLEACTIVE_FORCED 4 +extern int key_consoleactive; +extern char *keybindings[MAX_BINDMAPS][MAX_KEYS]; + +extern void Key_ClearEditLine(int edit_line); +extern int chat_mode; // 0 for say, 1 for say_team, -1 for command +extern char chat_buffer[MAX_INPUTLINE]; +extern unsigned int chat_bufferlen; + +void Key_WriteBindings(qfile_t *f); +void Key_Init(void); +void Key_Init_Cvars(void); +void Key_Event(int key, int ascii, qboolean down); void Key_ClearStates (void); +void Key_SetBinding (int keynum, int bindmap, const char *binding); -#endif +#endif // __KEYS_H