@@ -75,9 +75,9 @@ static cvar_t joy_sensitivityyaw = {"joy_sensitivityyaw", "-1", CVAR_NONE}; /*
7575/* hack to generate uparrow/leftarrow etc. key events
7676 * for axes if the stick driver isn't generating them. */
7777/* might be useful for menu navigation etc. */
78- #define JOY_KEYEVENT_FOR_AXES 0 /* not for now */
78+ #define JOY_KEYEVENT_FOR_AXES 1
7979#if (JOY_KEYEVENT_FOR_AXES )
80- static cvar_t joy_axiskeyevents = {"joy_axiskeyevents" , "0 " , CVAR_ARCHIVE };
80+ static cvar_t joy_axiskeyevents = {"joy_axiskeyevents" , "1 " , CVAR_ARCHIVE };
8181static cvar_t joy_axiskeyevents_deadzone = {"joy_axiskeyevents_deadzone" , "0.5" , CVAR_ARCHIVE };
8282
8383/* joystick axes state */
@@ -811,7 +811,7 @@ void IN_Commands (void)
811811void IN_SendKeyEvents (void )
812812{
813813 SDL_Event event ;
814- int sym , state , modstate ;
814+ int sym , state , modstate , joy2key ;
815815 qboolean gamekey ;
816816
817817 if ((gamekey = Key_IsGameKey ()) != prev_gamekey )
@@ -1102,13 +1102,22 @@ void IN_SendKeyEvents (void)
11021102 case SDL_JOYBUTTONUP :
11031103 if (in_mode_set )
11041104 break ;
1105+ switch (K_JOY1 + event .jbutton .button ) {
1106+ /* Hard code SELECT & START buttons for menu control */
1107+ case K_AUX5 :
1108+ joy2key = K_ESCAPE ;
1109+ break ;
1110+ case K_AUX6 :
1111+ joy2key = K_ENTER ;
1112+ }
1113+ Con_DPrintf ("Pressed joystick button %s\n" , Key_KeynumToString (K_JOY1 + event .jbutton .button ));
11051114 if (event .jbutton .button > K_AUX28 - K_JOY1 )
11061115 {
11071116 Con_Printf ("Ignored event for joystick button %d\n" ,
11081117 event .jbutton .button );
11091118 break ;
11101119 }
1111- Key_Event (K_JOY1 + event .jbutton .button , event .jbutton .state == SDL_PRESSED );
1120+ Key_Event (joy2key ? joy2key : ( K_JOY1 + event .jbutton .button ) , event .jbutton .state == SDL_PRESSED );
11121121 break ;
11131122
11141123 /* mouse/trackball motion handled by IN_MouseMove() */
0 commit comments