removed unneeded reference to app bundle directory for Mac OS X
[rocksndiamonds.git] / src / libgame / misc.c
index 9582bdb397189765a69f88ee567dcba2c14062a6..b1d0d96bda910307bc80259b8f741cea0c021632 100644 (file)
@@ -571,7 +571,7 @@ char *getLoginName()
     if (GetUserName(login_name, &buffer_size) == 0)
       strcpy(login_name, ANONYMOUS_NAME);
   }
-#else
+#elif defined(PLATFORM_UNIX) && !defined(PLATFORM_ANDROID)
   if (login_name == NULL)
   {
     struct passwd *pwd;
@@ -581,6 +581,8 @@ char *getLoginName()
     else
       login_name = getStringCopy(pwd->pw_name);
   }
+#else
+  login_name = ANONYMOUS_NAME;
 #endif
 
   return login_name;
@@ -680,10 +682,16 @@ char *getBasePath(char *filename)
   char *basepath = getStringCopy(filename);
   char *last_separator = getLastPathSeparatorPtr(basepath);
 
-  if (last_separator != NULL)
-    *last_separator = '\0';    /* separator found: strip basename */
-  else
-    basepath = ".";            /* no separator found: use current path */
+  /* if no separator was found, use current directory */
+  if (last_separator == NULL)
+  {
+    free(basepath);
+
+    return getStringCopy(".");
+  }
+
+  /* separator found: strip basename */
+  *last_separator = '\0';
 
   return basepath;
 }
@@ -693,36 +701,13 @@ static char *getProgramMainDataPath()
   char *main_data_path = getStringCopy(program.command_basepath);
 
 #if defined(PLATFORM_MACOSX)
-  static char *main_data_binary_subdir = NULL;
-  static char *main_data_files_subdir = NULL;
-
-  if (main_data_binary_subdir == NULL)
-  {
-    main_data_binary_subdir = checked_malloc(strlen(program.program_title) + 1 +
-                                            strlen("app") + 1 +
-                                            strlen(MAC_APP_BINARY_SUBDIR) + 1);
-
-    sprintf(main_data_binary_subdir, "%s.app/%s",
-           program.program_title, MAC_APP_BINARY_SUBDIR);
-  }
-
-  if (main_data_files_subdir == NULL)
-  {
-    main_data_files_subdir = checked_malloc(strlen(program.program_title) + 1 +
-                                           strlen("app") + 1 +
-                                           strlen(MAC_APP_FILES_SUBDIR) + 1);
-
-    sprintf(main_data_files_subdir, "%s.app/%s",
-           program.program_title, MAC_APP_FILES_SUBDIR);
-  }
-
-  if (strSuffix(main_data_path, main_data_binary_subdir))
+  if (strSuffix(main_data_path, MAC_APP_BINARY_SUBDIR))
   {
     char *main_data_path_old = main_data_path;
 
     // cut relative path to Mac OS X application binary directory from path
     main_data_path[strlen(main_data_path) -
-                  strlen(main_data_binary_subdir)] = '\0';
+                  strlen(MAC_APP_BINARY_SUBDIR)] = '\0';
 
     // cut trailing path separator from path (but not if path is root directory)
     if (strSuffix(main_data_path, "/") && !strEqual(main_data_path, "/"))
@@ -733,7 +718,7 @@ static char *getProgramMainDataPath()
       main_data_path = ".";
 
     // add relative path to Mac OS X application resources directory to path
-    main_data_path = getPath2(main_data_path, main_data_files_subdir);
+    main_data_path = getPath2(main_data_path, MAC_APP_FILES_SUBDIR);
 
     free(main_data_path_old);
   }
@@ -985,6 +970,7 @@ void GetOptions(int argc, char *argv[],
   options.sounds_directory   = getPath2(ro_base_path, SOUNDS_DIRECTORY);
   options.music_directory    = getPath2(ro_base_path, MUSIC_DIRECTORY);
   options.docs_directory     = getPath2(ro_base_path, DOCS_DIRECTORY);
+  options.conf_directory     = getPath2(ro_base_path, CONF_DIRECTORY);
 
   options.execute_command = NULL;
   options.special_flags = NULL;
@@ -1002,6 +988,12 @@ void GetOptions(int argc, char *argv[],
   if (*options_left == NULL)   /* no options given -- enable verbose mode */
     options.verbose = TRUE;
 #endif
+#endif
+
+#if DEBUG
+#if defined(PLATFORM_ANDROID)
+  options.debug = TRUE;
+#endif
 #endif
 
   while (*options_left)
@@ -1063,6 +1055,7 @@ void GetOptions(int argc, char *argv[],
       options.sounds_directory   = getPath2(ro_base_path, SOUNDS_DIRECTORY);
       options.music_directory    = getPath2(ro_base_path, MUSIC_DIRECTORY);
       options.docs_directory     = getPath2(ro_base_path, DOCS_DIRECTORY);
+      options.conf_directory     = getPath2(ro_base_path, CONF_DIRECTORY);
     }
     else if (strncmp(option, "-levels", option_len) == 0)
     {
@@ -1210,6 +1203,10 @@ void Error(int mode, char *format, ...)
                      ANDROID_LOG_UNKNOWN);
 #endif
 
+  /* display debug messages only when running in debug mode */
+  if (mode & ERR_DEBUG && !options.debug)
+    return;
+
   /* display warnings only when running in verbose mode */
   if (mode & ERR_WARN && !options.verbose)
     return;
@@ -1611,8 +1608,14 @@ void translate_keyname(Key *keysym, char **x11name, char **name, int mode)
     { KSYM_Page_Down,  "XK_Page_Down",         "page down" },
 
 #if defined(TARGET_SDL2)
+    { KSYM_Select,     "XK_Select",            "select" },
     { KSYM_Menu,       "XK_Menu",              "menu" },        /* menu key */
     { KSYM_Back,       "XK_Back",              "back" },        /* back key */
+    { KSYM_PlayPause,  "XK_PlayPause",         "play/pause" },
+#if defined(PLATFORM_ANDROID)
+    { KSYM_Rewind,     "XK_Rewind",            "rewind" },
+    { KSYM_FastForward,        "XK_FastForward",       "fast forward" },
+#endif
 #endif
 
     /* ASCII 0x20 to 0x40 keys (except numbers) */
@@ -2902,6 +2905,9 @@ int get_parameter_value(char *value_raw, char *suffix, int type)
 
     if (string_has_parameter(value, "inner_corners"))
       result |= STYLE_INNER_CORNERS;
+
+    if (string_has_parameter(value, "reverse"))
+      result |= STYLE_REVERSE;
   }
   else if (strEqual(suffix, ".fade_mode"))
   {