improved virtual buttons for touch devices (Android)
[rocksndiamonds.git] / src / libgame / setup.c
index 7439108a883e1ecb921b40c628b14df747fc5f02..9a573b5e2d3678f133990ae0296660a905826e35 100644 (file)
@@ -395,13 +395,25 @@ inline static char *getLevelArtworkDir(int type)
 
 char *getProgramConfigFilename(char *command_filename_ptr)
 {
-  char *command_filename = getStringCopy(command_filename_ptr);
+  char *command_filename_1 = getStringCopy(command_filename_ptr);
 
   // strip trailing executable suffix from command filename
-  if (strSuffix(command_filename, ".exe"))
-    command_filename[strlen(command_filename) - 4] = '\0';
+  if (strSuffix(command_filename_1, ".exe"))
+    command_filename_1[strlen(command_filename_1) - 4] = '\0';
 
-  return getStringCat2(command_filename, ".conf");
+  char *command_basepath = getBasePath(command_filename_ptr);
+  char *command_basename = getBaseNameNoSuffix(command_filename_ptr);
+  char *command_filename_2 = getPath2(command_basepath, command_basename);
+
+  char *config_filename_1 = getStringCat2(command_filename_1, ".conf");
+  char *config_filename_2 = getStringCat2(command_filename_2, ".conf");
+
+  // 1st try: look for config file that exactly matches the binary filename
+  if (fileExists(config_filename_1))
+    return config_filename_1;
+
+  // 2nd try: return config filename that matches binary filename without suffix
+  return config_filename_2;
 }
 
 char *getTapeFilename(int nr)
@@ -1379,30 +1391,6 @@ char *getUserGameDataDir(void)
   return user_game_data_dir;
 }
 
-void updateUserGameDataDir()
-{
-#if defined(PLATFORM_MACOSX)
-  char *userdata_dir_old = getPath2(getHomeDir(), program.userdata_subdir_unix);
-  char *userdata_dir_new = getUserGameDataDir();       /* do not free() this */
-
-  /* convert old Unix style game data directory to Mac OS X style, if needed */
-  if (directoryExists(userdata_dir_old) && !directoryExists(userdata_dir_new))
-  {
-    if (rename(userdata_dir_old, userdata_dir_new) != 0)
-    {
-      Error(ERR_WARN, "cannot move game data directory '%s' to '%s'",
-           userdata_dir_old, userdata_dir_new);
-
-      /* continue using Unix style data directory -- this should not happen */
-      program.userdata_path = getPath2(getPersonalDataDir(),
-                                      program.userdata_subdir_unix);
-    }
-  }
-
-  free(userdata_dir_old);
-#endif
-}
-
 char *getSetupDir()
 {
   return getUserGameDataDir();