moved game controller base mappings file to new 'conf' sub-directory
[rocksndiamonds.git] / src / libgame / sdl.c
index 8751f1b999dfa4de510e8eacf78aee61a9684e11..3afecaf918c2e7bd991e3ec36e335cad334a65b3 100644 (file)
@@ -2601,7 +2601,22 @@ static int sdl_js_axis[MAX_PLAYERS][2];
 static int sdl_js_button[MAX_PLAYERS][2];
 static boolean sdl_is_controller[MAX_PLAYERS];
 
-static boolean SDLOpenJoystick(int nr)
+void SDLClearJoystickState()
+{
+  int i, j;
+
+  for (i = 0; i < MAX_PLAYERS; i++)
+  {
+    for (j = 0; j < 2; j++)
+    {
+      sdl_js_axis_raw[i][j] = -1;
+      sdl_js_axis[i][j] = 0;
+      sdl_js_button[i][j] = 0;
+    }
+  }
+}
+
+boolean SDLOpenJoystick(int nr)
 {
   if (nr < 0 || nr >= MAX_PLAYERS)
     return FALSE;
@@ -2629,7 +2644,7 @@ static boolean SDLOpenJoystick(int nr)
   return (sdl_joystick[nr] != NULL);
 }
 
-static void SDLCloseJoystick(int nr)
+void SDLCloseJoystick(int nr)
 {
   if (nr < 0 || nr >= MAX_PLAYERS)
     return;
@@ -2648,13 +2663,6 @@ static void SDLCloseJoystick(int nr)
 #endif
 
   sdl_joystick[nr] = NULL;
-
-  sdl_js_axis_raw[nr][0] = -1;
-  sdl_js_axis_raw[nr][1] = -1;
-  sdl_js_axis[nr][0] = 0;
-  sdl_js_axis[nr][1] = 0;
-  sdl_js_button[nr][0] = 0;
-  sdl_js_button[nr][1] = 0;
 }
 
 boolean SDLCheckJoystickOpened(int nr)
@@ -2839,7 +2847,7 @@ void SDLInitJoysticks()
   static boolean sdl_joystick_subsystem_initialized = FALSE;
   boolean print_warning = !sdl_joystick_subsystem_initialized;
 #if defined(TARGET_SDL2)
-  char *mappings_file_base = getPath2(options.ro_base_directory,
+  char *mappings_file_base = getPath2(options.conf_directory,
                                      GAMECONTROLLER_BASENAME);
   char *mappings_file_user = getPath2(getUserGameDataDir(),
                                      GAMECONTROLLER_BASENAME);
@@ -2935,6 +2943,8 @@ void SDLInitJoysticks()
     else if (print_warning)
       Error(ERR_WARN, "cannot open joystick %d", i);
   }
+
+  SDLClearJoystickState();
 }
 
 boolean SDLReadJoystick(int nr, int *x, int *y, boolean *b1, boolean *b2)
@@ -2955,6 +2965,11 @@ boolean SDLReadJoystick(int nr, int *x, int *y, boolean *b1, boolean *b2)
   return TRUE;
 }
 
+
+/* ========================================================================= */
+/* touch input overlay functions                                             */
+/* ========================================================================= */
+
 #if defined(USE_TOUCH_INPUT_OVERLAY)
 static void DrawTouchInputOverlay()
 {