/* Copyright (C) 1996-1997 Id Software, Inc. 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. 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. 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 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __CLIENT_KEYS_H__ #define __CLIENT_KEYS_H__ enum { //fte's assumed gamepad axis GPAXIS_LT_RIGHT = 0, GPAXIS_LT_DOWN = 1, GPAXIS_LT_AUX = 2, GPAXIS_RT_RIGHT = 3, GPAXIS_RT_DOWN = 4, GPAXIS_RT_AUX = 5, //gah #define GPAXIS_LT_TRIGGER GPAXIS_LT_AUX #define GPAXIS_RT_TRIGGER GPAXIS_RT_AUX }; // // these are the key numbers that should be passed to Key_Event // typedef enum { K_TAB = 9, K_ENTER = 13, K_ESCAPE = 27, K_SPACE = 32, // normal keys should be passed as lowercased ascii K_BACKSPACE = 127, K_SCRLCK, K_CAPSLOCK, K_POWER, K_PAUSE, K_UPARROW, K_DOWNARROW, K_LEFTARROW, K_RIGHTARROW, K_LALT, K_LCTRL, K_LSHIFT, K_INS, K_DEL, K_PGDN, K_PGUP, K_HOME, K_END, K_F1, K_F2, K_F3, K_F4, K_F5, K_F6, K_F7, K_F8, K_F9, K_F10, K_F11, K_F12, K_F13, K_F14, K_F15, K_KP_HOME, K_KP_UPARROW, K_KP_PGUP, K_KP_LEFTARROW, K_KP_5, K_KP_RIGHTARROW, K_KP_END, K_KP_DOWNARROW, K_KP_PGDN, K_KP_ENTER, K_KP_INS, K_KP_DEL, K_KP_SLASH, K_KP_MINUS, K_KP_PLUS, K_KP_NUMLOCK, K_KP_STAR, K_KP_EQUALS, K_MOUSE1, //aka left K_MOUSE2, //aka right K_MOUSE3, //aka middle K_MOUSE4, //aka back K_MOUSE5, //aka forward K_MWHEELDOWN, K_MWHEELUP, K_JOY1, K_JOY2, K_JOY3, K_JOY4, K_JOY5, K_JOY6, K_JOY7, K_JOY8, K_JOY9, K_JOY10, K_JOY11, K_JOY12, K_JOY13, K_JOY14, K_JOY15, K_JOY16, K_JOY17, K_JOY18, K_JOY19, K_JOY20, K_JOY21, K_JOY22, K_JOY23, K_JOY24, K_JOY25, K_JOY26, K_JOY27, K_JOY28, K_JOY29, K_JOY30, K_JOY31, K_JOY32, K_AUX1, K_AUX2, K_AUX3, K_AUX4, K_AUX5, K_AUX6, K_AUX7, K_AUX8, K_AUX9, K_AUX10, K_AUX11, K_AUX12, K_AUX13, K_AUX14, K_AUX15, K_AUX16, /* if you change the above order, you _will_ break Trinity! * only make modifcations below, unless you want to start * remapping keys for that too */ /* Section dedicated to SDL controller definitions */ K_GP_DIAMOND_DOWN, K_GP_DIAMOND_RIGHT, K_GP_DIAMOND_LEFT, K_GP_DIAMOND_UP, //for their behaviours in the menus... we may want to put a conditional in here for japanese-style right-for-confirm, but for now I'm lazy and am sticking with western/xbox/steam mappings. #define K_GP_DIAMOND_CONFIRM K_GP_DIAMOND_DOWN //roughly equivelent to k_return for menu behaviours #define K_GP_DIAMOND_CANCEL K_GP_DIAMOND_RIGHT //roughly like escape, at least in menus #define K_GP_DIAMOND_ALTCONFIRM K_GP_DIAMOND_UP //for more negative confirmations. K_GP_VIEW, //aka back (near left stick) K_GP_GUIDE, K_GP_MENU, //aka options/start (near right stick) K_GP_LEFT_STICK, K_GP_RIGHT_STICK, K_GP_LEFT_SHOULDER, K_GP_RIGHT_SHOULDER, K_GP_DPAD_UP, K_GP_DPAD_DOWN, K_GP_DPAD_LEFT, K_GP_DPAD_RIGHT, K_GP_MISC1, /* share/mic-mute button */ K_GP_PADDLE1, K_GP_PADDLE2, K_GP_PADDLE3, K_GP_PADDLE4, K_GP_TOUCHPAD, /* when pressed */ /* emulated, we'll trigger these 'buttons' when we reach 50% pressed */ K_GP_LEFT_TRIGGER, K_GP_RIGHT_TRIGGER, K_GP_LEFT_THUMB_UP, K_GP_LEFT_THUMB_DOWN, K_GP_LEFT_THUMB_LEFT, K_GP_LEFT_THUMB_RIGHT, K_GP_RIGHT_THUMB_UP, K_GP_RIGHT_THUMB_DOWN, K_GP_RIGHT_THUMB_LEFT, K_GP_RIGHT_THUMB_RIGHT, K_GP_UNKNOWN, /* extra dinput mouse buttons */ K_MOUSE6, K_MOUSE7, K_MOUSE8, K_MOUSE9, K_MOUSE10, /*FIXME*/ #define K_MWHEELLEFT K_MOUSE9 #define K_MWHEELRIGHT K_MOUSE10 /* spare joystick button presses */ K_JOY_UP, K_JOY_DOWN, K_JOY_LEFT, K_JOY_RIGHT, /* extra keys */ K_LWIN, K_RWIN, K_APP, K_SEARCH, K_VOLUP, K_VOLDOWN, K_RALT, K_RCTRL, K_RSHIFT, K_PRINTSCREEN, /* multimedia keyboard */ K_MM_BROWSER_BACK, K_MM_BROWSER_FAVORITES, K_MM_BROWSER_FORWARD, K_MM_BROWSER_HOME, K_MM_BROWSER_REFRESH, K_MM_BROWSER_STOP, K_MM_VOLUME_MUTE, K_MM_TRACK_NEXT, K_MM_TRACK_PREV, K_MM_TRACK_STOP, K_MM_TRACK_PLAYPAUSE, //touchscreen stuff. K_TOUCH, //initial touch //will be paired with one of... K_TOUCHSLIDE, //existing touch became a slide K_TOUCHTAP, //touched briefly without sliding (treat like a left-click, though fired on final release) K_TOUCHLONG, //touch lasted a while and without moving (treat like a right-click) K_MAX, //360 buttons K_GP_A = K_GP_DIAMOND_DOWN, K_GP_B = K_GP_DIAMOND_RIGHT, K_GP_X = K_GP_DIAMOND_LEFT, K_GP_Y = K_GP_DIAMOND_UP, K_GP_BACK = K_GP_VIEW, K_GP_START = K_GP_MENU, //ps buttons K_GP_PS_CROSS = K_GP_DIAMOND_DOWN, K_GP_PS_CIRCLE = K_GP_DIAMOND_RIGHT, K_GP_PS_SQUARE = K_GP_DIAMOND_LEFT, K_GP_PS_TRIANGLE = K_GP_DIAMOND_UP, } keynum_t; #define KEY_MODIFIER_SHIFT (1<<0) #define KEY_MODIFIER_ALT (1<<1) #define KEY_MODIFIER_CTRL (1<<2) //#define KEY_MODIFIER_META (1<