X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fmain.c;h=c33369729d47972a43a70f223f99cb7df4d3285e;hp=84004f468283e1c8b5e3e28b9948fa962fca2fb6;hb=beb79ae685067eea01929edcd49429469ad550d9;hpb=bc101e8e3ab8515fcc5fbed3d8bf8c3efc258846 diff --git a/src/main.c b/src/main.c index 84004f46..c3336972 100644 --- a/src/main.c +++ b/src/main.c @@ -31,6 +31,7 @@ DrawBuffer *fieldbuffer; DrawBuffer *drawto_field; int game_status = -1; +boolean game_status_last_screen = -1; boolean level_editor_test_game = FALSE; boolean network_playing = FALSE; @@ -145,9 +146,17 @@ struct ViewportInfo viewport; 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; @@ -5431,6 +5440,14 @@ struct ElementActionInfo element_action_info[NUM_ACTIONS + 1 + 1] = { ".page[30]", ACTION_PAGE_30, FALSE }, { ".page[31]", ACTION_PAGE_31, FALSE }, { ".page[32]", ACTION_PAGE_32, FALSE }, + { ".part_1", ACTION_PART_1, FALSE }, + { ".part_2", ACTION_PART_2, FALSE }, + { ".part_3", ACTION_PART_3, FALSE }, + { ".part_4", ACTION_PART_4, FALSE }, + { ".part_5", ACTION_PART_5, FALSE }, + { ".part_6", ACTION_PART_6, FALSE }, + { ".part_7", ACTION_PART_7, FALSE }, + { ".part_8", ACTION_PART_8, FALSE }, { ".other", ACTION_OTHER, FALSE }, /* empty suffix always matches -- check as last entry in InitSoundInfo() */ @@ -5458,7 +5475,17 @@ struct SpecialSuffixInfo special_suffix_info[NUM_SPECIAL_GFX_ARGS + 1 + 1] = { ".[DEFAULT]", GFX_SPECIAL_ARG_DEFAULT, }, { ".LOADING", GFX_SPECIAL_ARG_LOADING, }, { ".TITLE_INITIAL", GFX_SPECIAL_ARG_TITLE_INITIAL, }, + { ".TITLE_INITIAL_1", GFX_SPECIAL_ARG_TITLE_INITIAL_1, }, + { ".TITLE_INITIAL_2", GFX_SPECIAL_ARG_TITLE_INITIAL_2, }, + { ".TITLE_INITIAL_3", GFX_SPECIAL_ARG_TITLE_INITIAL_3, }, + { ".TITLE_INITIAL_4", GFX_SPECIAL_ARG_TITLE_INITIAL_4, }, + { ".TITLE_INITIAL_5", GFX_SPECIAL_ARG_TITLE_INITIAL_5, }, { ".TITLE", GFX_SPECIAL_ARG_TITLE, }, + { ".TITLE_1", GFX_SPECIAL_ARG_TITLE_1, }, + { ".TITLE_2", GFX_SPECIAL_ARG_TITLE_2, }, + { ".TITLE_3", GFX_SPECIAL_ARG_TITLE_3, }, + { ".TITLE_4", GFX_SPECIAL_ARG_TITLE_4, }, + { ".TITLE_5", GFX_SPECIAL_ARG_TITLE_5, }, { ".MAIN", GFX_SPECIAL_ARG_MAIN, }, { ".LEVELS", GFX_SPECIAL_ARG_LEVELS }, { ".LEVELNR", GFX_SPECIAL_ARG_LEVELNR }, @@ -5472,6 +5499,13 @@ struct SpecialSuffixInfo special_suffix_info[NUM_SPECIAL_GFX_ARGS + 1 + 1] = { ".PANEL", GFX_SPECIAL_ARG_PANEL, }, { ".PREVIEW", GFX_SPECIAL_ARG_PREVIEW, }, { ".CRUMBLED", GFX_SPECIAL_ARG_CRUMBLED, }, + { ".MAINONLY", GFX_SPECIAL_ARG_MAINONLY, }, + { ".TYPENAME", GFX_SPECIAL_ARG_TYPENAME, }, + { ".SUBMENU", GFX_SPECIAL_ARG_SUBMENU, }, + { ".MENU", GFX_SPECIAL_ARG_MENU, }, + { ".TOONS", GFX_SPECIAL_ARG_TOONS, }, + { ".FADING", GFX_SPECIAL_ARG_FADING, }, + { ".QUIT", GFX_SPECIAL_ARG_QUIT, }, /* empty suffix always matches -- check as last entry in InitMusicInfo() */ { "", GFX_SPECIAL_ARG_DEFAULT, }, @@ -5519,11 +5553,14 @@ struct FontInfo font_info[NUM_FONTS + 1] = { "font.input_2.active" }, { "font.input_1" }, { "font.input_2" }, + { "font.option_off_narrow" }, { "font.option_off" }, + { "font.option_on_narrow" }, { "font.option_on" }, { "font.value_1" }, { "font.value_2" }, { "font.value_old" }, + { "font.value_narrow" }, { "font.level_number.active" }, { "font.level_number" }, { "font.tape_recorder" }, @@ -5534,6 +5571,31 @@ struct FontInfo font_info[NUM_FONTS + 1] = { NULL } }; +struct GlobalAnimInfo global_anim_info[NUM_GLOBAL_ANIM_TOKENS + 1] = +{ + /* (real) graphic definitions used to define animation graphics */ + { "global.anim_1.gfx", }, + { "global.anim_2.gfx", }, + { "global.anim_3.gfx", }, + { "global.anim_4.gfx", }, + { "global.anim_5.gfx", }, + { "global.anim_6.gfx", }, + { "global.anim_7.gfx", }, + { "global.anim_8.gfx", }, + + /* (dummy) graphic definitions used to define animation controls */ + { "global.anim_1", }, + { "global.anim_2", }, + { "global.anim_3", }, + { "global.anim_4", }, + { "global.anim_5", }, + { "global.anim_6", }, + { "global.anim_7", }, + { "global.anim_8", }, + + { NULL } +}; + /* ------------------------------------------------------------------------- */ /* music token prefix definitions */ @@ -5557,7 +5619,6 @@ static void print_usage() "Usage: %s [OPTION]... [HOSTNAME [PORT]]\n" "\n" "Options:\n" - " -d, --display HOSTNAME[:SCREEN] specify X server display\n" " -b, --basepath DIRECTORY alternative base DIRECTORY\n" " -l, --level DIRECTORY alternative level DIRECTORY\n" " -g, --graphics DIRECTORY alternative graphics DIRECTORY\n" @@ -5591,12 +5652,13 @@ static void print_usage() static void print_version() { - Print("%s %d.%d.%d.%d\n", + Print("%s %d.%d.%d.%d%s\n", PROGRAM_TITLE_STRING, PROGRAM_VERSION_MAJOR, PROGRAM_VERSION_MINOR, PROGRAM_VERSION_PATCH, - PROGRAM_VERSION_BUILD); + PROGRAM_VERSION_BUILD, + PROGRAM_VERSION_EXTRA); if (options.debug) { @@ -5630,10 +5692,10 @@ static void print_version() static void InitProgramConfig(char *command_filename) { - char *userdata_basename = getBaseNameNoSuffix(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; @@ -5644,7 +5706,7 @@ static void InitProgramConfig(char *command_filename) userdata_basename = getBaseName(config_filename); if (strSuffix(userdata_basename, ".conf")) - userdata_basename[strlen(userdata_basename) - 4] = '\0'; + userdata_basename[strlen(userdata_basename) - 5] = '\0'; LoadSetupFromFilename(config_filename); } @@ -5670,10 +5732,17 @@ static void InitProgramConfig(char *command_filename) userdata_subdir = USERDATA_DIRECTORY_OTHER; #endif + // set default window size (only relevant on program startup) + if (setup.internal.default_window_width != 0 && + setup.internal.default_window_height != 0) + { + WIN_XSIZE = setup.internal.default_window_width; + WIN_YSIZE = setup.internal.default_window_height; + } + InitProgramInfo(command_filename, config_filename, userdata_subdir, - userdata_subdir_unix, program_title, program_title, program_icon_file, @@ -5690,7 +5759,7 @@ int main(int argc, char *argv[]) InitExitFunction(CloseAllAndExit); InitPlatformDependentStuff(); - GetOptions(argv, print_usage, print_version); + GetOptions(argc, argv, print_usage, print_version); OpenAll(); EventLoop();