This is an automated email from the git hooks/post-receive script. smcv pushed a commit to annotated tag 1.5a in repository iortcw.
commit 39e89d2c89071b087a3f0c2bdcdd50e49431d174 Author: MAN-AT-ARMS <[email protected]> Date: Wed Aug 17 04:26:19 2016 -0400 All: Fix joystick w/o controller mapping not working --- MP/code/sdl/sdl_input.c | 21 ++++++++++++++++++++- SP/code/sdl/sdl_input.c | 21 ++++++++++++++++++++- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/MP/code/sdl/sdl_input.c b/MP/code/sdl/sdl_input.c index 887bff7..d934110 100644 --- a/MP/code/sdl/sdl_input.c +++ b/MP/code/sdl/sdl_input.c @@ -439,6 +439,21 @@ static void IN_InitJoystick( void ) gamepad = NULL; memset(&stick_state, '\0', sizeof (stick_state)); + // SDL 2.0.4 requires SDL_INIT_JOYSTICK to be initialized separately from + // SDL_INIT_GAMECONTROLLER for SDL_JoystickOpen() to work correctly, + // despite https://wiki.libsdl.org/SDL_Init (retrieved 2016-08-16) + // indicating SDL_INIT_JOYSTICK should be initialized automatically. + if (!SDL_WasInit(SDL_INIT_JOYSTICK)) + { + Com_DPrintf("Calling SDL_Init(SDL_INIT_JOYSTICK)...\n"); + if (SDL_Init(SDL_INIT_JOYSTICK) != 0) + { + Com_DPrintf("SDL_Init(SDL_INIT_JOYSTICK) failed: %s\n", SDL_GetError()); + return; + } + Com_DPrintf("SDL_Init(SDL_INIT_JOYSTICK) passed.\n"); + } + if (!SDL_WasInit(SDL_INIT_GAMECONTROLLER)) { Com_DPrintf("Calling SDL_Init(SDL_INIT_GAMECONTROLLER)...\n"); @@ -477,7 +492,7 @@ static void IN_InitJoystick( void ) stick = SDL_JoystickOpen( in_joystickNo->integer ); if (stick == NULL) { - Com_DPrintf( "No joystick opened.\n" ); + Com_DPrintf( "No joystick opened: %s\n", SDL_GetError() ); return; } @@ -507,6 +522,9 @@ static void IN_ShutdownJoystick( void ) if ( !SDL_WasInit( SDL_INIT_GAMECONTROLLER ) ) return; + if ( !SDL_WasInit( SDL_INIT_JOYSTICK ) ) + return; + if (gamepad) { SDL_GameControllerClose(gamepad); @@ -520,6 +538,7 @@ static void IN_ShutdownJoystick( void ) } SDL_QuitSubSystem(SDL_INIT_GAMECONTROLLER); + SDL_QuitSubSystem(SDL_INIT_JOYSTICK); } diff --git a/SP/code/sdl/sdl_input.c b/SP/code/sdl/sdl_input.c index 887bff7..d934110 100644 --- a/SP/code/sdl/sdl_input.c +++ b/SP/code/sdl/sdl_input.c @@ -439,6 +439,21 @@ static void IN_InitJoystick( void ) gamepad = NULL; memset(&stick_state, '\0', sizeof (stick_state)); + // SDL 2.0.4 requires SDL_INIT_JOYSTICK to be initialized separately from + // SDL_INIT_GAMECONTROLLER for SDL_JoystickOpen() to work correctly, + // despite https://wiki.libsdl.org/SDL_Init (retrieved 2016-08-16) + // indicating SDL_INIT_JOYSTICK should be initialized automatically. + if (!SDL_WasInit(SDL_INIT_JOYSTICK)) + { + Com_DPrintf("Calling SDL_Init(SDL_INIT_JOYSTICK)...\n"); + if (SDL_Init(SDL_INIT_JOYSTICK) != 0) + { + Com_DPrintf("SDL_Init(SDL_INIT_JOYSTICK) failed: %s\n", SDL_GetError()); + return; + } + Com_DPrintf("SDL_Init(SDL_INIT_JOYSTICK) passed.\n"); + } + if (!SDL_WasInit(SDL_INIT_GAMECONTROLLER)) { Com_DPrintf("Calling SDL_Init(SDL_INIT_GAMECONTROLLER)...\n"); @@ -477,7 +492,7 @@ static void IN_InitJoystick( void ) stick = SDL_JoystickOpen( in_joystickNo->integer ); if (stick == NULL) { - Com_DPrintf( "No joystick opened.\n" ); + Com_DPrintf( "No joystick opened: %s\n", SDL_GetError() ); return; } @@ -507,6 +522,9 @@ static void IN_ShutdownJoystick( void ) if ( !SDL_WasInit( SDL_INIT_GAMECONTROLLER ) ) return; + if ( !SDL_WasInit( SDL_INIT_JOYSTICK ) ) + return; + if (gamepad) { SDL_GameControllerClose(gamepad); @@ -520,6 +538,7 @@ static void IN_ShutdownJoystick( void ) } SDL_QuitSubSystem(SDL_INIT_GAMECONTROLLER); + SDL_QuitSubSystem(SDL_INIT_JOYSTICK); } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/iortcw.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

