mirror of
https://github.com/DrBeef/ioq3quest.git
synced 2024-11-28 23:02:37 +00:00
More SDL fixes:
- Console key works as it should, at least on QWERTY keyboards. Someone will have to check AZERTY keyboards for me. - Backspace key now works in text entry. - Mouse input is scaled 2x, like the X11 driver does. - Some basic logging so I know I'm using the SDL code and not the X11 code.
This commit is contained in:
parent
3ca916aacc
commit
5bc2c49293
1 changed files with 15 additions and 8 deletions
|
@ -165,12 +165,6 @@ static const char *XLateKey(SDL_keysym *keysym, int *key)
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (keysym->unicode == '~') // the console.
|
|
||||||
{
|
|
||||||
buf[0] = *key = '~';
|
|
||||||
return buf;
|
|
||||||
}
|
|
||||||
|
|
||||||
buf[0] = '\0';
|
buf[0] = '\0';
|
||||||
|
|
||||||
switch (keysym->sym)
|
switch (keysym->sym)
|
||||||
|
@ -210,7 +204,7 @@ static const char *XLateKey(SDL_keysym *keysym, int *key)
|
||||||
|
|
||||||
// bk001206 - from Ryan's Fakk2
|
// bk001206 - from Ryan's Fakk2
|
||||||
//case SDLK_BackSpace: *key = 8; break; // ctrl-h
|
//case SDLK_BackSpace: *key = 8; break; // ctrl-h
|
||||||
case SDLK_BACKSPACE: *key = K_BACKSPACE; break; // ctrl-h
|
case SDLK_BACKSPACE: *key = K_BACKSPACE; buf[0] = 8; break; // ctrl-h
|
||||||
case SDLK_KP_PERIOD: *key = K_KP_DEL; break;
|
case SDLK_KP_PERIOD: *key = K_KP_DEL; break;
|
||||||
case SDLK_DELETE: *key = K_DEL; break;
|
case SDLK_DELETE: *key = K_DEL; break;
|
||||||
case SDLK_PAUSE: *key = K_PAUSE; break;
|
case SDLK_PAUSE: *key = K_PAUSE; break;
|
||||||
|
@ -235,6 +229,9 @@ static const char *XLateKey(SDL_keysym *keysym, int *key)
|
||||||
case SDLK_KP_DIVIDE: *key = K_KP_SLASH; break;
|
case SDLK_KP_DIVIDE: *key = K_KP_SLASH; break;
|
||||||
case SDLK_SPACE: *key = K_SPACE; break;
|
case SDLK_SPACE: *key = K_SPACE; break;
|
||||||
|
|
||||||
|
// !!! FIXME: Console key...may not be accurate on all keyboards!
|
||||||
|
case SDLK_BACKQUOTE: *key = '~'; break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if (keysym->unicode <= 255) // maps to ASCII?
|
if (keysym->unicode <= 255) // maps to ASCII?
|
||||||
{
|
{
|
||||||
|
@ -252,7 +249,7 @@ static const char *XLateKey(SDL_keysym *keysym, int *key)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void install_grabs(void)
|
static void install_grabs(void)
|
||||||
|
@ -319,7 +316,13 @@ static void HandleEvents(void)
|
||||||
|
|
||||||
case SDL_MOUSEMOTION:
|
case SDL_MOUSEMOTION:
|
||||||
if (mouse_active)
|
if (mouse_active)
|
||||||
|
{
|
||||||
|
if (abs(e.motion.xrel) > 1)
|
||||||
|
e.motion.xrel *= 2;
|
||||||
|
if (abs(e.motion.yrel) > 1)
|
||||||
|
e.motion.yrel *= 2;
|
||||||
Sys_QueEvent( t, SE_MOUSE, e.motion.xrel, e.motion.yrel, 0, NULL );
|
Sys_QueEvent( t, SE_MOUSE, e.motion.xrel, e.motion.yrel, 0, NULL );
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDL_MOUSEBUTTONDOWN:
|
case SDL_MOUSEBUTTONDOWN:
|
||||||
|
@ -489,11 +492,13 @@ static qboolean GLW_StartDriverAndSetMode( const char *drivername,
|
||||||
|
|
||||||
if (!SDL_WasInit(SDL_INIT_VIDEO))
|
if (!SDL_WasInit(SDL_INIT_VIDEO))
|
||||||
{
|
{
|
||||||
|
ri.Printf( PRINT_ALL, "Calling SDL_Init(SDL_INIT_VIDEO)...\n");
|
||||||
if (SDL_Init(SDL_INIT_VIDEO) == -1)
|
if (SDL_Init(SDL_INIT_VIDEO) == -1)
|
||||||
{
|
{
|
||||||
ri.Printf( PRINT_ALL, "SDL_Init(SDL_INIT_VIDEO) failed: %s\n", SDL_GetError());
|
ri.Printf( PRINT_ALL, "SDL_Init(SDL_INIT_VIDEO) failed: %s\n", SDL_GetError());
|
||||||
return qfalse;
|
return qfalse;
|
||||||
}
|
}
|
||||||
|
ri.Printf( PRINT_ALL, "SDL_Init(SDL_INIT_VIDEO) passed.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
// don't ever bother going into fullscreen with a voodoo card
|
// don't ever bother going into fullscreen with a voodoo card
|
||||||
|
@ -1286,11 +1291,13 @@ void IN_StartupJoystick( void )
|
||||||
|
|
||||||
if (!SDL_WasInit(SDL_INIT_JOYSTICK))
|
if (!SDL_WasInit(SDL_INIT_JOYSTICK))
|
||||||
{
|
{
|
||||||
|
Com_Printf( PRINT_ALL, "Calling SDL_Init(SDL_INIT_JOYSTICK)...\n");
|
||||||
if (SDL_Init(SDL_INIT_JOYSTICK) == -1)
|
if (SDL_Init(SDL_INIT_JOYSTICK) == -1)
|
||||||
{
|
{
|
||||||
Com_Printf("SDL_Init(SDL_INIT_JOYSTICK) failed: %s\n", SDL_GetError());
|
Com_Printf("SDL_Init(SDL_INIT_JOYSTICK) failed: %s\n", SDL_GetError());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Com_Printf( PRINT_ALL, "SDL_Init(SDL_INIT_JOYSTICK) passed.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
total = SDL_NumJoysticks();
|
total = SDL_NumJoysticks();
|
||||||
|
|
Loading…
Reference in a new issue