DrawBuffer *drawto_field;
int game_status = -1;
+boolean game_status_last_screen = -1;
boolean level_editor_test_game = FALSE;
boolean network_playing = FALSE;
struct TitleFadingInfo fading;
struct TitleFadingInfo title_initial_default;
struct TitleFadingInfo title_default;
+struct TitleMessageInfo titlescreen_initial_default;
+struct TitleMessageInfo titlescreen_initial_first[MAX_NUM_TITLE_IMAGES];
+struct TitleMessageInfo titlescreen_initial[MAX_NUM_TITLE_IMAGES];
+struct TitleMessageInfo titlescreen_default;
+struct TitleMessageInfo titlescreen_first[MAX_NUM_TITLE_IMAGES];
+struct TitleMessageInfo titlescreen[MAX_NUM_TITLE_IMAGES];
struct TitleMessageInfo titlemessage_initial_default;
+struct TitleMessageInfo titlemessage_initial_first[MAX_NUM_TITLE_MESSAGES];
struct TitleMessageInfo titlemessage_initial[MAX_NUM_TITLE_MESSAGES];
struct TitleMessageInfo titlemessage_default;
+struct TitleMessageInfo titlemessage_first[MAX_NUM_TITLE_MESSAGES];
struct TitleMessageInfo titlemessage[MAX_NUM_TITLE_MESSAGES];
struct TitleMessageInfo readme;
struct InitInfo init, init_last;
static void InitProgramConfig(char *command_filename)
{
- char *command_basename = getBaseName(command_filename);
- char *config_filename = getProgramConfigFilename(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_icon_file) > 0)
program_icon_file = getStringCopy(setup.internal.program_icon_file);
- // strip trailing executable suffix from command basename
- if (strSuffix(command_basename, ".exe"))
- command_basename[strlen(command_basename) - 4] = '\0';
-
- userdata_subdir_unix = getStringCat2(".", command_basename);
-
#if defined(PLATFORM_WIN32) || defined(PLATFORM_MACOSX)
userdata_subdir = program_title;
#elif defined(PLATFORM_UNIX)
InitProgramInfo(command_filename,
config_filename,
userdata_subdir,
- userdata_subdir_unix,
program_title,
program_title,
program_icon_file,
InitExitFunction(CloseAllAndExit);
InitPlatformDependentStuff();
- GetOptions(argv, print_usage, print_version);
+ GetOptions(argc, argv, print_usage, print_version);
OpenAll();
EventLoop();