2001-04-15 04:18:22 +00:00
|
|
|
/*
|
|
|
|
in_sdl.c
|
|
|
|
|
|
|
|
general sdl input driver
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
Free Software Foundation, Inc.
|
|
|
|
59 Temple Place - Suite 330
|
|
|
|
Boston, MA 02111-1307, USA
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
|
# include "config.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <SDL.h>
|
|
|
|
|
|
|
|
#include "QF/console.h"
|
|
|
|
#include "QF/cvar.h"
|
|
|
|
#include "QF/input.h"
|
|
|
|
#include "QF/joystick.h"
|
|
|
|
#include "QF/keys.h"
|
2001-04-16 03:55:44 +00:00
|
|
|
#include "QF/mathlib.h"
|
2001-04-15 04:18:22 +00:00
|
|
|
#include "QF/qargs.h"
|
|
|
|
#include "QF/qendian.h"
|
2001-08-27 01:00:03 +00:00
|
|
|
#include "QF/sys.h"
|
2001-04-16 03:55:44 +00:00
|
|
|
#include "QF/vid.h"
|
2001-04-15 04:18:22 +00:00
|
|
|
|
2001-08-27 01:00:03 +00:00
|
|
|
#include "compat.h"
|
|
|
|
|
2001-04-15 04:18:22 +00:00
|
|
|
#ifdef WIN32
|
|
|
|
// FIXME: this is evil...
|
|
|
|
# include <windows.h>
|
|
|
|
HWND mainwindow;
|
|
|
|
#endif
|
|
|
|
|
2001-08-16 09:19:36 +00:00
|
|
|
cvar_t *m_filter;
|
|
|
|
cvar_t *_windowed_mouse;
|
2001-04-15 04:18:22 +00:00
|
|
|
|
2001-08-27 01:00:03 +00:00
|
|
|
int old_windowed_mouse;
|
2001-08-16 09:19:36 +00:00
|
|
|
int modestate; // FIXME: just to avoid cross-comp errors - remove later
|
2001-04-15 04:18:22 +00:00
|
|
|
|
|
|
|
|
|
|
|
void
|
2001-04-16 03:55:44 +00:00
|
|
|
IN_LL_SendKeyEvents (void)
|
2001-04-15 04:18:22 +00:00
|
|
|
{
|
|
|
|
SDL_Event event;
|
|
|
|
int sym, state, but;
|
2001-08-16 09:19:36 +00:00
|
|
|
knum_t ksym;
|
|
|
|
short unicode;
|
2001-04-15 04:18:22 +00:00
|
|
|
|
|
|
|
while (SDL_PollEvent (&event)) {
|
|
|
|
switch (event.type) {
|
|
|
|
case SDL_KEYDOWN:
|
|
|
|
case SDL_KEYUP:
|
|
|
|
sym = event.key.keysym.sym;
|
|
|
|
state = event.key.state;
|
2001-08-16 09:19:36 +00:00
|
|
|
unicode = event.key.keysym.unicode;
|
2001-04-15 04:18:22 +00:00
|
|
|
switch (sym) {
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_UNKNOWN:
|
|
|
|
ksym = K_UNKNOWN;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case SDLK_BACKSPACE:
|
2001-08-16 09:19:36 +00:00
|
|
|
ksym = K_BACKSPACE;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_TAB:
|
|
|
|
ksym = K_TAB;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_CLEAR:
|
|
|
|
ksym = K_CLEAR;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_RETURN:
|
|
|
|
ksym = K_RETURN;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_PAUSE:
|
|
|
|
ksym = K_PAUSE;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_ESCAPE:
|
|
|
|
ksym = K_ESCAPE;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_SPACE:
|
|
|
|
ksym = K_SPACE;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_EXCLAIM:
|
|
|
|
ksym = K_EXCLAIM;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_QUOTEDBL:
|
|
|
|
ksym = K_QUOTEDBL;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_HASH:
|
|
|
|
ksym = K_HASH;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_DOLLAR:
|
|
|
|
ksym = K_DOLLAR;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_AMPERSAND:
|
|
|
|
ksym = K_AMPERSAND;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_QUOTE:
|
|
|
|
ksym = K_QUOTE;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_LEFTPAREN:
|
|
|
|
ksym = K_LEFTPAREN;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_RIGHTPAREN:
|
|
|
|
ksym = K_RIGHTPAREN;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_ASTERISK:
|
|
|
|
ksym = K_ASTERISK;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_PLUS:
|
|
|
|
ksym = K_PLUS;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_COMMA:
|
|
|
|
ksym = K_COMMA;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_MINUS:
|
|
|
|
ksym = K_MINUS;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_PERIOD:
|
|
|
|
ksym = K_PERIOD;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_SLASH:
|
|
|
|
ksym = K_SLASH;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_0:
|
|
|
|
ksym = K_0;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_1:
|
|
|
|
ksym = K_1;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_2:
|
|
|
|
ksym = K_2;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_3:
|
|
|
|
ksym = K_3;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_4:
|
|
|
|
ksym = K_4;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
2001-08-16 09:19:36 +00:00
|
|
|
case SDLK_5:
|
|
|
|
ksym = K_5;
|
|
|
|
break;
|
|
|
|
case SDLK_6:
|
|
|
|
ksym = K_6;
|
|
|
|
break;
|
|
|
|
case SDLK_7:
|
|
|
|
ksym = K_7;
|
|
|
|
break;
|
|
|
|
case SDLK_8:
|
|
|
|
ksym = K_8;
|
|
|
|
break;
|
|
|
|
case SDLK_9:
|
|
|
|
ksym = K_9;
|
|
|
|
break;
|
|
|
|
case SDLK_COLON:
|
|
|
|
ksym = K_COLON;
|
|
|
|
break;
|
|
|
|
case SDLK_SEMICOLON:
|
|
|
|
ksym = K_SEMICOLON;
|
|
|
|
break;
|
|
|
|
case SDLK_LESS:
|
|
|
|
ksym = K_LESS;
|
|
|
|
break;
|
|
|
|
case SDLK_EQUALS:
|
|
|
|
ksym = K_EQUALS;
|
|
|
|
break;
|
|
|
|
case SDLK_GREATER:
|
|
|
|
ksym = K_GREATER;
|
|
|
|
break;
|
|
|
|
case SDLK_QUESTION:
|
|
|
|
ksym = K_QUESTION;
|
|
|
|
break;
|
|
|
|
case SDLK_AT:
|
|
|
|
ksym = K_AT;
|
|
|
|
break;
|
|
|
|
case SDLK_LEFTBRACKET:
|
|
|
|
ksym = K_LEFTBRACKET;
|
|
|
|
break;
|
|
|
|
case SDLK_BACKSLASH:
|
|
|
|
ksym = K_BACKSLASH;
|
|
|
|
break;
|
|
|
|
case SDLK_RIGHTBRACKET:
|
|
|
|
ksym = K_RIGHTBRACKET;
|
|
|
|
break;
|
|
|
|
case SDLK_CARET:
|
|
|
|
ksym = K_CARET;
|
|
|
|
break;
|
|
|
|
case SDLK_UNDERSCORE:
|
|
|
|
ksym = K_UNDERSCORE;
|
|
|
|
break;
|
|
|
|
case SDLK_BACKQUOTE:
|
|
|
|
ksym = K_BACKQUOTE;
|
|
|
|
break;
|
|
|
|
case SDLK_a:
|
|
|
|
ksym = K_a;
|
|
|
|
break;
|
|
|
|
case SDLK_b:
|
|
|
|
ksym = K_b;
|
|
|
|
break;
|
|
|
|
case SDLK_c:
|
|
|
|
ksym = K_c;
|
|
|
|
break;
|
|
|
|
case SDLK_d:
|
|
|
|
ksym = K_d;
|
|
|
|
break;
|
|
|
|
case SDLK_e:
|
|
|
|
ksym = K_e;
|
|
|
|
break;
|
|
|
|
case SDLK_f:
|
|
|
|
ksym = K_f;
|
|
|
|
break;
|
|
|
|
case SDLK_g:
|
|
|
|
ksym = K_g;
|
|
|
|
break;
|
|
|
|
case SDLK_h:
|
|
|
|
ksym = K_h;
|
|
|
|
break;
|
|
|
|
case SDLK_i:
|
|
|
|
ksym = K_i;
|
|
|
|
break;
|
|
|
|
case SDLK_j:
|
|
|
|
ksym = K_j;
|
|
|
|
break;
|
|
|
|
case SDLK_k:
|
|
|
|
ksym = K_k;
|
|
|
|
break;
|
|
|
|
case SDLK_l:
|
|
|
|
ksym = K_l;
|
|
|
|
break;
|
|
|
|
case SDLK_m:
|
|
|
|
ksym = K_m;
|
|
|
|
break;
|
|
|
|
case SDLK_n:
|
|
|
|
ksym = K_n;
|
|
|
|
break;
|
|
|
|
case SDLK_o:
|
|
|
|
ksym = K_o;
|
|
|
|
break;
|
|
|
|
case SDLK_p:
|
|
|
|
ksym = K_p;
|
|
|
|
break;
|
|
|
|
case SDLK_q:
|
|
|
|
ksym = K_q;
|
|
|
|
break;
|
|
|
|
case SDLK_r:
|
|
|
|
ksym = K_r;
|
|
|
|
break;
|
|
|
|
case SDLK_s:
|
|
|
|
ksym = K_s;
|
|
|
|
break;
|
|
|
|
case SDLK_t:
|
|
|
|
ksym = K_t;
|
|
|
|
break;
|
|
|
|
case SDLK_u:
|
|
|
|
ksym = K_u;
|
|
|
|
break;
|
|
|
|
case SDLK_v:
|
|
|
|
ksym = K_v;
|
|
|
|
break;
|
|
|
|
case SDLK_w:
|
|
|
|
ksym = K_w;
|
|
|
|
break;
|
|
|
|
case SDLK_x:
|
|
|
|
ksym = K_x;
|
|
|
|
break;
|
|
|
|
case SDLK_y:
|
|
|
|
ksym = K_y;
|
|
|
|
break;
|
|
|
|
case SDLK_z:
|
|
|
|
ksym = K_z;
|
|
|
|
break;
|
|
|
|
case SDLK_DELETE:
|
|
|
|
ksym = K_DELETE;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_0:
|
|
|
|
ksym = K_WORLD_0;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_1:
|
|
|
|
ksym = K_WORLD_1;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_2:
|
|
|
|
ksym = K_WORLD_2;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_3:
|
|
|
|
ksym = K_WORLD_3;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_4:
|
|
|
|
ksym = K_WORLD_4;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_5:
|
|
|
|
ksym = K_WORLD_5;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_6:
|
|
|
|
ksym = K_WORLD_6;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_7:
|
|
|
|
ksym = K_WORLD_7;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_8:
|
|
|
|
ksym = K_WORLD_8;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_9:
|
|
|
|
ksym = K_WORLD_9;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_10:
|
|
|
|
ksym = K_WORLD_10;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_11:
|
|
|
|
ksym = K_WORLD_11;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_12:
|
|
|
|
ksym = K_WORLD_12;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_13:
|
|
|
|
ksym = K_WORLD_13;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_14:
|
|
|
|
ksym = K_WORLD_14;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_15:
|
|
|
|
ksym = K_WORLD_15;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_16:
|
|
|
|
ksym = K_WORLD_16;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_17:
|
|
|
|
ksym = K_WORLD_17;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_18:
|
|
|
|
ksym = K_WORLD_18;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_19:
|
|
|
|
ksym = K_WORLD_19;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_20:
|
|
|
|
ksym = K_WORLD_20;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_21:
|
|
|
|
ksym = K_WORLD_21;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_22:
|
|
|
|
ksym = K_WORLD_22;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_23:
|
|
|
|
ksym = K_WORLD_23;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_24:
|
|
|
|
ksym = K_WORLD_24;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_25:
|
|
|
|
ksym = K_WORLD_25;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_26:
|
|
|
|
ksym = K_WORLD_26;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_27:
|
|
|
|
ksym = K_WORLD_27;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_28:
|
|
|
|
ksym = K_WORLD_28;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_29:
|
|
|
|
ksym = K_WORLD_29;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_30:
|
|
|
|
ksym = K_WORLD_30;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_31:
|
|
|
|
ksym = K_WORLD_31;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_32:
|
|
|
|
ksym = K_WORLD_32;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_33:
|
|
|
|
ksym = K_WORLD_33;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_34:
|
|
|
|
ksym = K_WORLD_34;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_35:
|
|
|
|
ksym = K_WORLD_35;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_36:
|
|
|
|
ksym = K_WORLD_36;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_37:
|
|
|
|
ksym = K_WORLD_37;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_38:
|
|
|
|
ksym = K_WORLD_38;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_39:
|
|
|
|
ksym = K_WORLD_39;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_40:
|
|
|
|
ksym = K_WORLD_40;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_41:
|
|
|
|
ksym = K_WORLD_41;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_42:
|
|
|
|
ksym = K_WORLD_42;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_43:
|
|
|
|
ksym = K_WORLD_43;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_44:
|
|
|
|
ksym = K_WORLD_44;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_45:
|
|
|
|
ksym = K_WORLD_45;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_46:
|
|
|
|
ksym = K_WORLD_46;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_47:
|
|
|
|
ksym = K_WORLD_47;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_48:
|
|
|
|
ksym = K_WORLD_48;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_49:
|
|
|
|
ksym = K_WORLD_49;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_50:
|
|
|
|
ksym = K_WORLD_50;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_51:
|
|
|
|
ksym = K_WORLD_51;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_52:
|
|
|
|
ksym = K_WORLD_52;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_53:
|
|
|
|
ksym = K_WORLD_53;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_54:
|
|
|
|
ksym = K_WORLD_54;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_55:
|
|
|
|
ksym = K_WORLD_55;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_56:
|
|
|
|
ksym = K_WORLD_56;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_57:
|
|
|
|
ksym = K_WORLD_57;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_58:
|
|
|
|
ksym = K_WORLD_58;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_59:
|
|
|
|
ksym = K_WORLD_59;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_60:
|
|
|
|
ksym = K_WORLD_60;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_61:
|
|
|
|
ksym = K_WORLD_61;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_62:
|
|
|
|
ksym = K_WORLD_62;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_63:
|
|
|
|
ksym = K_WORLD_63;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_64:
|
|
|
|
ksym = K_WORLD_64;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_65:
|
|
|
|
ksym = K_WORLD_65;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_66:
|
|
|
|
ksym = K_WORLD_66;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_67:
|
|
|
|
ksym = K_WORLD_67;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_68:
|
|
|
|
ksym = K_WORLD_68;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_69:
|
|
|
|
ksym = K_WORLD_69;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_70:
|
|
|
|
ksym = K_WORLD_70;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_71:
|
|
|
|
ksym = K_WORLD_71;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_72:
|
|
|
|
ksym = K_WORLD_72;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_73:
|
|
|
|
ksym = K_WORLD_73;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_74:
|
|
|
|
ksym = K_WORLD_74;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_75:
|
|
|
|
ksym = K_WORLD_75;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_76:
|
|
|
|
ksym = K_WORLD_76;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_77:
|
|
|
|
ksym = K_WORLD_77;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_78:
|
|
|
|
ksym = K_WORLD_78;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_79:
|
|
|
|
ksym = K_WORLD_79;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_80:
|
|
|
|
ksym = K_WORLD_80;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_81:
|
|
|
|
ksym = K_WORLD_81;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_82:
|
|
|
|
ksym = K_WORLD_82;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_83:
|
|
|
|
ksym = K_WORLD_83;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_84:
|
|
|
|
ksym = K_WORLD_84;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_85:
|
|
|
|
ksym = K_WORLD_85;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_86:
|
|
|
|
ksym = K_WORLD_86;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_87:
|
|
|
|
ksym = K_WORLD_87;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_88:
|
|
|
|
ksym = K_WORLD_88;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_89:
|
|
|
|
ksym = K_WORLD_89;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_90:
|
|
|
|
ksym = K_WORLD_90;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_91:
|
|
|
|
ksym = K_WORLD_91;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_92:
|
|
|
|
ksym = K_WORLD_92;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_93:
|
|
|
|
ksym = K_WORLD_93;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_94:
|
|
|
|
ksym = K_WORLD_94;
|
|
|
|
break;
|
|
|
|
case SDLK_WORLD_95:
|
|
|
|
ksym = K_WORLD_95;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case SDLK_KP0:
|
2001-08-16 09:19:36 +00:00
|
|
|
ksym = K_KP0;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case SDLK_KP1:
|
2001-08-16 09:19:36 +00:00
|
|
|
ksym = K_KP1;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case SDLK_KP2:
|
2001-08-16 09:19:36 +00:00
|
|
|
ksym = K_KP2;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case SDLK_KP3:
|
2001-08-16 09:19:36 +00:00
|
|
|
ksym = K_KP3;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case SDLK_KP4:
|
2001-08-16 09:19:36 +00:00
|
|
|
ksym = K_KP4;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case SDLK_KP5:
|
2001-08-16 09:19:36 +00:00
|
|
|
ksym = K_KP5;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case SDLK_KP6:
|
2001-08-16 09:19:36 +00:00
|
|
|
ksym = K_KP6;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case SDLK_KP7:
|
2001-08-16 09:19:36 +00:00
|
|
|
ksym = K_KP7;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case SDLK_KP8:
|
2001-08-16 09:19:36 +00:00
|
|
|
ksym = K_KP8;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case SDLK_KP9:
|
2001-08-16 09:19:36 +00:00
|
|
|
ksym = K_KP9;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case SDLK_KP_PERIOD:
|
2001-08-16 09:19:36 +00:00
|
|
|
ksym = K_KP_PERIOD;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case SDLK_KP_DIVIDE:
|
2001-08-16 09:19:36 +00:00
|
|
|
ksym = K_KP_DIVIDE;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case SDLK_KP_MULTIPLY:
|
2001-08-16 09:19:36 +00:00
|
|
|
ksym = K_KP_MULTIPLY;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case SDLK_KP_MINUS:
|
2001-08-16 09:19:36 +00:00
|
|
|
ksym = K_KP_MINUS;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case SDLK_KP_PLUS:
|
2001-08-16 09:19:36 +00:00
|
|
|
ksym = K_KP_PLUS;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case SDLK_KP_ENTER:
|
2001-08-16 09:19:36 +00:00
|
|
|
ksym = K_KP_ENTER;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case SDLK_KP_EQUALS:
|
2001-08-16 09:19:36 +00:00
|
|
|
ksym = K_KP_EQUALS;
|
|
|
|
break;
|
|
|
|
case SDLK_UP:
|
|
|
|
ksym = K_UP;
|
|
|
|
break;
|
|
|
|
case SDLK_DOWN:
|
|
|
|
ksym = K_DOWN;
|
|
|
|
break;
|
|
|
|
case SDLK_RIGHT:
|
|
|
|
ksym = K_RIGHT;
|
|
|
|
break;
|
|
|
|
case SDLK_LEFT:
|
|
|
|
ksym = K_LEFT;
|
|
|
|
break;
|
|
|
|
case SDLK_INSERT:
|
|
|
|
ksym = K_INSERT;
|
|
|
|
break;
|
|
|
|
case SDLK_HOME:
|
|
|
|
ksym = K_HOME;
|
|
|
|
break;
|
|
|
|
case SDLK_END:
|
|
|
|
ksym = K_END;
|
|
|
|
break;
|
|
|
|
case SDLK_PAGEUP:
|
|
|
|
ksym = K_PAGEUP;
|
|
|
|
break;
|
|
|
|
case SDLK_PAGEDOWN:
|
|
|
|
ksym = K_PAGEDOWN;
|
|
|
|
break;
|
|
|
|
case SDLK_F1:
|
|
|
|
ksym = K_F1;
|
|
|
|
break;
|
|
|
|
case SDLK_F2:
|
|
|
|
ksym = K_F2;
|
|
|
|
break;
|
|
|
|
case SDLK_F3:
|
|
|
|
ksym = K_F3;
|
|
|
|
break;
|
|
|
|
case SDLK_F4:
|
|
|
|
ksym = K_F4;
|
|
|
|
break;
|
|
|
|
case SDLK_F5:
|
|
|
|
ksym = K_F5;
|
|
|
|
break;
|
|
|
|
case SDLK_F6:
|
|
|
|
ksym = K_F6;
|
|
|
|
break;
|
|
|
|
case SDLK_F7:
|
|
|
|
ksym = K_F7;
|
|
|
|
break;
|
|
|
|
case SDLK_F8:
|
|
|
|
ksym = K_F8;
|
|
|
|
break;
|
|
|
|
case SDLK_F9:
|
|
|
|
ksym = K_F9;
|
|
|
|
break;
|
|
|
|
case SDLK_F10:
|
|
|
|
ksym = K_F10;
|
|
|
|
break;
|
|
|
|
case SDLK_F11:
|
|
|
|
ksym = K_F11;
|
|
|
|
break;
|
|
|
|
case SDLK_F12:
|
|
|
|
ksym = K_F12;
|
|
|
|
break;
|
|
|
|
case SDLK_F13:
|
|
|
|
ksym = K_F13;
|
|
|
|
break;
|
|
|
|
case SDLK_F14:
|
|
|
|
ksym = K_F14;
|
|
|
|
break;
|
|
|
|
case SDLK_F15:
|
|
|
|
ksym = K_F15;
|
|
|
|
break;
|
|
|
|
case SDLK_NUMLOCK:
|
|
|
|
ksym = K_NUMLOCK;
|
|
|
|
break;
|
|
|
|
case SDLK_CAPSLOCK:
|
|
|
|
ksym = K_CAPSLOCK;
|
|
|
|
break;
|
|
|
|
case SDLK_SCROLLOCK:
|
|
|
|
ksym = K_SCROLLOCK;
|
|
|
|
break;
|
|
|
|
case SDLK_RSHIFT:
|
|
|
|
ksym = K_RSHIFT;
|
|
|
|
break;
|
|
|
|
case SDLK_LSHIFT:
|
|
|
|
ksym = K_LSHIFT;
|
|
|
|
break;
|
|
|
|
case SDLK_RCTRL:
|
|
|
|
ksym = K_RCTRL;
|
|
|
|
break;
|
|
|
|
case SDLK_LCTRL:
|
|
|
|
ksym = K_LCTRL;
|
|
|
|
break;
|
|
|
|
case SDLK_RALT:
|
|
|
|
ksym = K_RALT;
|
|
|
|
break;
|
|
|
|
case SDLK_LALT:
|
|
|
|
ksym = K_LALT;
|
|
|
|
break;
|
|
|
|
case SDLK_RMETA:
|
|
|
|
ksym = K_RMETA;
|
|
|
|
break;
|
|
|
|
case SDLK_LMETA:
|
|
|
|
ksym = K_LMETA;
|
|
|
|
break;
|
|
|
|
case SDLK_LSUPER:
|
|
|
|
ksym = K_LSUPER;
|
|
|
|
break;
|
|
|
|
case SDLK_RSUPER:
|
|
|
|
ksym = K_RSUPER;
|
|
|
|
break;
|
|
|
|
case SDLK_MODE:
|
|
|
|
ksym = K_MODE;
|
|
|
|
break;
|
|
|
|
case SDLK_COMPOSE:
|
|
|
|
ksym = K_COMPOSE;
|
|
|
|
break;
|
|
|
|
case SDLK_HELP:
|
|
|
|
ksym = K_HELP;
|
|
|
|
break;
|
|
|
|
case SDLK_PRINT:
|
|
|
|
ksym = K_PRINT;
|
|
|
|
break;
|
|
|
|
case SDLK_SYSREQ:
|
|
|
|
ksym = K_SYSREQ;
|
|
|
|
break;
|
|
|
|
case SDLK_BREAK:
|
|
|
|
ksym = K_BREAK;
|
|
|
|
break;
|
|
|
|
case SDLK_MENU:
|
|
|
|
ksym = K_MENU;
|
|
|
|
break;
|
|
|
|
case SDLK_POWER:
|
|
|
|
ksym = K_POWER;
|
|
|
|
break;
|
|
|
|
case SDLK_EURO:
|
|
|
|
ksym = K_EURO;
|
|
|
|
break;
|
|
|
|
case SDLK_LAST:
|
|
|
|
ksym = K_LAST;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
ksym = K_UNKNOWN;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
}
|
2001-08-16 09:19:36 +00:00
|
|
|
if (unicode > 255)
|
|
|
|
unicode = 0;
|
|
|
|
Key_Event (sym, unicode, state);
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
case SDL_MOUSEBUTTONDOWN:
|
|
|
|
case SDL_MOUSEBUTTONUP:
|
|
|
|
but = event.button.button;
|
|
|
|
if (but == 2)
|
|
|
|
but = 3;
|
|
|
|
else if (but == 3)
|
|
|
|
but = 2;
|
|
|
|
|
|
|
|
switch (but) {
|
|
|
|
case 1:
|
|
|
|
case 2:
|
|
|
|
case 3:
|
2001-08-16 09:19:36 +00:00
|
|
|
Key_Event (M_BUTTON1 + but - 1, 0,
|
|
|
|
event.type == SDL_MOUSEBUTTONDOWN);
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case 4:
|
2001-08-16 09:19:36 +00:00
|
|
|
Key_Event (M_WHEEL_UP, 0, true);
|
|
|
|
Key_Event (M_WHEEL_UP, 0, false);
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
case 5:
|
2001-08-16 09:19:36 +00:00
|
|
|
Key_Event (M_WHEEL_DOWN, 0, true);
|
|
|
|
Key_Event (M_WHEEL_DOWN, 0, false);
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
case SDL_MOUSEMOTION:
|
2001-08-06 00:16:48 +00:00
|
|
|
in_mouse_x += event.motion.xrel;
|
|
|
|
in_mouse_y += event.motion.yrel;
|
2001-04-15 04:18:22 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
case SDL_QUIT:
|
2001-04-16 03:55:44 +00:00
|
|
|
//CL_Disconnect ();
|
2001-04-15 04:18:22 +00:00
|
|
|
Sys_Quit ();
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
2001-04-16 03:55:44 +00:00
|
|
|
IN_LL_Commands (void)
|
2001-04-15 04:18:22 +00:00
|
|
|
{
|
|
|
|
if (old_windowed_mouse != _windowed_mouse->value) {
|
|
|
|
old_windowed_mouse = _windowed_mouse->value;
|
|
|
|
if (!_windowed_mouse->value) {
|
2001-08-06 00:16:48 +00:00
|
|
|
SDL_ShowCursor (1);
|
2001-04-15 04:18:22 +00:00
|
|
|
SDL_WM_GrabInput (SDL_GRAB_OFF);
|
|
|
|
} else {
|
|
|
|
SDL_WM_GrabInput (SDL_GRAB_ON);
|
2001-08-06 00:16:48 +00:00
|
|
|
SDL_ShowCursor (0);
|
2001-04-15 04:18:22 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
2001-04-16 03:55:44 +00:00
|
|
|
IN_LL_Init (void)
|
2001-04-15 04:18:22 +00:00
|
|
|
{
|
|
|
|
JOY_Init ();
|
|
|
|
|
2001-08-16 09:19:36 +00:00
|
|
|
/* Enable UNICODE translation for keyboard input */
|
|
|
|
SDL_EnableUNICODE(1);
|
|
|
|
|
2001-04-15 04:18:22 +00:00
|
|
|
if (COM_CheckParm ("-nomouse") && !_windowed_mouse->value)
|
|
|
|
return;
|
|
|
|
|
2001-04-16 03:55:44 +00:00
|
|
|
in_mouse_x = in_mouse_y = 0.0;
|
|
|
|
in_mouse_avail = 1;
|
2001-04-15 04:18:22 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
2001-04-16 03:55:44 +00:00
|
|
|
IN_LL_Init_Cvars (void)
|
2001-04-15 04:18:22 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
2001-04-16 03:55:44 +00:00
|
|
|
IN_LL_Shutdown (void)
|
2001-04-15 04:18:22 +00:00
|
|
|
{
|
2001-04-16 03:55:44 +00:00
|
|
|
in_mouse_avail = 0;
|
2001-04-15 04:18:22 +00:00
|
|
|
}
|
|
|
|
|
2001-04-17 15:55:33 +00:00
|
|
|
void
|
|
|
|
IN_LL_ClearStates (void)
|
|
|
|
{
|
|
|
|
}
|