# HG changeset patch # User Wuzzy # Date 1531765681 -7200 # Node ID 214dde864805adcd74ead5f6c27c21501f71cecf # Parent 46ee00a7526a50ea26e4858d9494a11ebc2f2d1d Fix hwengine crash when using >1 controllers Reason: Data type mismatch for SDL_JoystickName, we wed in an index, but it expected a controller handle. Solution: Switch to SDL_JoystickNameForIndex. diff -r 46ee00a7526a -r 214dde864805 hedgewars/SDLh.pas --- a/hedgewars/SDLh.pas Tue Jul 24 18:37:52 2018 +0200 +++ b/hedgewars/SDLh.pas Mon Jul 16 20:28:01 2018 +0200 @@ -1167,7 +1167,7 @@ procedure SDL_UnlockAudio; cdecl; external SDLLibName; function SDL_NumJoysticks: LongInt; cdecl; external SDLLibName; -function SDL_JoystickName(idx: LongInt): PChar; cdecl; external SDLLibName; +function SDL_JoystickNameForIndex(idx: LongInt): PChar; cdecl; external SDLLibName; function SDL_JoystickOpen(idx: LongInt): PSDL_Joystick; cdecl; external SDLLibName; function SDL_JoystickOpened(idx: LongInt): LongInt; cdecl; external SDLLibName; function SDL_JoystickIndex(joy: PSDL_Joystick): LongInt; cdecl; external SDLLibName; diff -r 46ee00a7526a -r 214dde864805 hedgewars/uInputHandler.pas --- a/hedgewars/uInputHandler.pas Tue Jul 24 18:37:52 2018 +0200 +++ b/hedgewars/uInputHandler.pas Mon Jul 16 20:28:01 2018 +0200 @@ -542,10 +542,10 @@ begin for j:= 0 to pred(ControllerNumControllers) do begin - WriteLnToConsole('Using game controller: ' + shortstring(SDL_JoystickName(j))); + WriteLnToConsole('Game controller no. ' + IntToStr(j) + ', name "' + shortstring(SDL_JoystickNameForIndex(j)) + '":'); Controller[j]:= SDL_JoystickOpen(j); if Controller[j] = nil then - WriteLnToConsole('* Failed to open game controller!') + WriteLnToConsole('* Failed to open game controller no. ' + IntToStr(j) + '!') else begin ControllerNumAxes[j]:= SDL_JoystickNumAxes(Controller[j]);