improved terminal/logfile output of automatic tape replay (progress/summary)
[rocksndiamonds.git] / src / libgame / misc.c
index bf40ca9bdfac02fbbf4c6addf2c3dd3b87b2186e..0c0e82c2bc45e6621f104f9bd0947e3ff3dfa269 100644 (file)
@@ -222,6 +222,18 @@ void Print(char *format, ...)
   va_end(ap);
 }
 
+void PrintNoLog(char *format, ...)
+{
+  FILE *file = program.log_file_default[LOG_OUT_ID];
+  va_list ap;
+
+  va_start(ap, format);
+  vfprintf(file, format, ap);
+  va_end(ap);
+
+  fflush(file);
+}
+
 void PrintLine(char *line_chars, int line_length)
 {
   int i;
@@ -682,6 +694,7 @@ static char *getProgramMainDataPath()
 
 #if defined(PLATFORM_MACOSX)
   static char *main_data_binary_subdir = NULL;
+  static char *main_data_files_subdir = NULL;
 
   if (main_data_binary_subdir == NULL)
   {
@@ -693,18 +706,37 @@ static char *getProgramMainDataPath()
            program.program_title, MAC_APP_BINARY_SUBDIR);
   }
 
-  // cut relative path to Mac OS X application binary directory from path
+  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))
+  {
+    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';
 
-  // cut trailing path separator from path (but not if path is root directory)
-  if (strSuffix(main_data_path, "/") && !strEqual(main_data_path, "/"))
-    main_data_path[strlen(main_data_path) - 1] = '\0';
+    // cut trailing path separator from path (but not if path is root directory)
+    if (strSuffix(main_data_path, "/") && !strEqual(main_data_path, "/"))
+      main_data_path[strlen(main_data_path) - 1] = '\0';
+
+    // replace empty path with current directory
+    if (strEqual(main_data_path, ""))
+      main_data_path = ".";
 
-  // replace empty path with current directory
-  if (strEqual(main_data_path, ""))
-    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);
+
+    free(main_data_path_old);
+  }
 #endif
 
   return main_data_path;