- InitProgramInfo(argv[0], USERDATA_DIRECTORY, USERDATA_DIRECTORY_UNIX,
- PROGRAM_TITLE_STRING, window_title_string, ICON_TITLE_STRING,
- X11_ICON_FILENAME, X11_ICONMASK_FILENAME, SDL_ICON_FILENAME,
- MSDOS_POINTER_FILENAME,
- COOKIE_PREFIX, FILENAME_PREFIX, GAME_VERSION_ACTUAL);
+ if (options.debug)
+ {
+ SDL_version sdl_version;
+
+ SDL_VERSION(&sdl_version);
+ Print("- SDL %d.%d.%d\n",
+ sdl_version.major,
+ sdl_version.minor,
+ sdl_version.patch);
+
+ SDL_IMAGE_VERSION(&sdl_version);
+ Print("- SDL_image %d.%d.%d\n",
+ sdl_version.major,
+ sdl_version.minor,
+ sdl_version.patch);
+
+ SDL_MIXER_VERSION(&sdl_version);
+ Print("- SDL_mixer %d.%d.%d\n",
+ sdl_version.major,
+ sdl_version.minor,
+ sdl_version.patch);
+
+ SDL_NET_VERSION(&sdl_version);
+ Print("- SDL_net %d.%d.%d\n",
+ sdl_version.major,
+ sdl_version.minor,
+ sdl_version.patch);
+ }
+}
+
+static void InitProgramConfig(char *command_filename)
+{
+ char *program_title = PROGRAM_TITLE_STRING;
+ char *program_icon_file = PROGRAM_ICON_FILENAME;
+ char *config_filename = getProgramConfigFilename(command_filename);
+ char *userdata_basename = getBaseNameNoSuffix(command_filename);
+ char *userdata_subdir;
+ char *userdata_subdir_unix;
+
+ // read default program config, if existing
+ if (fileExists(config_filename))
+ {
+ // if program config file exists, derive Unix user data directory from it
+ userdata_basename = getBaseName(config_filename);
+
+ if (strSuffix(userdata_basename, ".conf"))
+ userdata_basename[strlen(userdata_basename) - 5] = '\0';
+
+ LoadSetupFromFilename(config_filename);
+ }
+
+ // set user data directory for Linux/Unix (but not Mac OS X)
+ userdata_subdir_unix = getStringCat2(".", userdata_basename);
+
+ // set program title from potentially redefined program title
+ if (setup.internal.program_title != NULL &&
+ strlen(setup.internal.program_title) > 0)
+ program_title = getStringCopy(setup.internal.program_title);
+
+ // set program icon file from potentially redefined program icon file
+ if (setup.internal.program_icon_file != NULL &&
+ strlen(setup.internal.program_icon_file) > 0)
+ program_icon_file = getStringCopy(setup.internal.program_icon_file);
+
+#if defined(PLATFORM_WIN32) || defined(PLATFORM_MACOSX)
+ userdata_subdir = program_title;
+#elif defined(PLATFORM_UNIX)
+ userdata_subdir = userdata_subdir_unix;
+#else
+ userdata_subdir = USERDATA_DIRECTORY_OTHER;
+#endif
+
+ InitProgramInfo(command_filename,
+ config_filename,
+ userdata_subdir,
+ program_title,
+ program_title,
+ program_icon_file,
+ COOKIE_PREFIX,
+ GAME_VERSION_ACTUAL);
+}
+
+int main(int argc, char *argv[])
+{
+ InitProgramConfig(argv[0]);