X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=09e029690df32868e6848f03384501f8afab262b;hb=cf23d62727053bfef711fb08fb4894e0936b9645;hp=6655bd88ac34ea271f013a07917ae3033d981a36;hpb=8e8a0eddc70d1581ecbd18ff9bad3db3485956b7;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index 6655bd88..09e02969 100644 --- a/src/screens.c +++ b/src/screens.c @@ -1,7 +1,7 @@ /*********************************************************** * Rocks'n'Diamonds -- McDuffin Strikes Back! * *----------------------------------------------------------* -* (c) 1995-2002 Artsoft Entertainment * +* (c) 1995-2006 Artsoft Entertainment * * Holger Schemel * * Detmolder Strasse 189 * * 33604 Bielefeld * @@ -229,30 +229,6 @@ void DrawHeadline() DrawTextSCentered(MENU_TITLE2_YPOS, FONT_TITLE_2, PROGRAM_COPYRIGHT_STRING); } -static void ToggleFullscreenIfNeeded() -{ - if (setup.fullscreen != video.fullscreen_enabled) - { - /* save old door content */ - BlitBitmap(backbuffer, bitmap_db_door, - DX, DY, DXSIZE, DYSIZE, DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1); - - /* toggle fullscreen */ - ChangeVideoModeIfNeeded(setup.fullscreen); - setup.fullscreen = video.fullscreen_enabled; - - /* redraw background to newly created backbuffer */ - BlitBitmap(graphic_info[IMG_GLOBAL_BORDER].bitmap, backbuffer, - 0,0, WIN_XSIZE,WIN_YSIZE, 0,0); - - /* restore old door content */ - BlitBitmap(bitmap_db_door, backbuffer, - DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1, DXSIZE, DYSIZE, DX, DY); - - redraw_mask = REDRAW_ALL; - } -} - static int getLastLevelButtonPos() { return 10; @@ -323,16 +299,12 @@ void DrawTitleScreen() StopAnimation(); } -static void DrawMainMenuExt(int fade_delay) +void DrawMainMenuExt(int redraw_mask, boolean do_fading) { static LevelDirTree *leveldir_last_valid = NULL; boolean levelset_has_changed = FALSE; char *name_text = (!options.network && setup.team_mode ? "Team:" : "Name:"); -#if 1 char *level_text = "Levelset"; -#else - char *level_text = "Level:"; -#endif int name_width, level_width; int i; @@ -347,9 +319,7 @@ static void DrawMainMenuExt(int fade_delay) audio.sound_deactivated = FALSE; -#if 1 GetPlayerConfig(); -#endif /* needed if last screen was the playing screen, invoked from level editor */ if (level_editor_test_game) @@ -393,18 +363,10 @@ static void DrawMainMenuExt(int fade_delay) return; } -#if 0 - /* map gadgets for main menu screen */ - MapTapeButtons(); -#endif - /* level_nr may have been set to value over handicap with level editor */ if (setup.handicap && level_nr > leveldir_current->handicap_level) level_nr = leveldir_current->handicap_level; -#if 0 - GetPlayerConfig(); -#endif LoadLevel(level_nr); SetMainBackgroundImage(IMG_BACKGROUND_MAIN); @@ -423,44 +385,19 @@ static void DrawMainMenuExt(int fade_delay) /* calculated after (possible) reload of custom artwork */ name_width = getTextWidth(name_text, FONT_MENU_1); -#if 1 level_width = 9 * 32; -#else -#if 1 - level_width = 9 * getFontWidth(FONT_MENU_1); -#else - level_width = getTextWidth(level_text, FONT_MENU_1); -#endif -#endif DrawText(mSX + 32 + name_width, mSY + 2 * 32, setup.player_name, FONT_INPUT_1); -#if 1 DrawText(mSX + getCurrentLevelTextPos() * 32, mSY + 3 * 32, int2str(level_nr, 3), FONT_VALUE_1); -#else -#if 1 - DrawText(mSX + level_width + 2 * 32, mSY + 3 * 32, int2str(level_nr, 3), - FONT_VALUE_1); -#else - DrawText(mSX + level_width + 5 * 32, mSY + 3 * 32, int2str(level_nr, 3), - FONT_VALUE_1); -#endif -#endif - DrawMicroLevel(MICROLEVEL_XPOS, MICROLEVEL_YPOS, TRUE); + DrawPreviewLevel(TRUE); -#if 1 - -#if 1 { int text_height = getFontHeight(FONT_TEXT_3); -#if 1 int xpos = getLevelRangeTextPos() * 32; -#else - int xpos = level_width + 6 * 32; -#endif int ypos2 = -SY + 3 * 32 + 16; int ypos1 = ypos2 - text_height; @@ -469,56 +406,13 @@ static void DrawMainMenuExt(int fade_delay) DrawTextF(mSX + xpos, mSY + ypos2, FONT_TEXT_3, "%03d", leveldir_current->last_level); } -#else - DrawTextF(mSX + level_width + 6 * 32, mSY + 3 * 32 + 1, FONT_TEXT_3, - "%d", leveldir_current->levels); -#endif - -#else - DrawTextF(mSX + 32 + level_width - 2, mSY + 3 * 32 + 1, FONT_TEXT_3, "%d-%d", - leveldir_current->first_level, leveldir_current->last_level); -#endif - -#if 0 - if (leveldir_current->readonly) - { - DrawTextS(mSX + level_width + 9 * 32 - 2, - mSY + 3 * 32 + 1 - 7, FONT_TEXT_3, "READ"); - DrawTextS(mSX + level_width + 9 * 32 - 2, - mSY + 3 * 32 + 1 + 7, FONT_TEXT_3, "ONLY"); - } -#endif for (i = 0; i < 8; i++) initCursor(i, (i == 1 || i == 4 || i == 6 ? IMG_MENU_BUTTON_ENTER_MENU : IMG_MENU_BUTTON)); -#if 0 - -#if 1 - drawCursorXY(getLastLevelButtonPos(), 1, IMG_MENU_BUTTON_LAST_LEVEL); - drawCursorXY(getNextLevelButtonPos(), 1, IMG_MENU_BUTTON_NEXT_LEVEL); -#else -#if 1 - drawCursorXY(level_width / 32 + 1, 1, IMG_MENU_BUTTON_LEFT); - drawCursorXY(level_width / 32 + 5, 1, IMG_MENU_BUTTON_RIGHT); -#else - drawCursorXY(level_width / 32 + 4, 1, IMG_MENU_BUTTON_LEFT); - drawCursorXY(level_width / 32 + 8, 1, IMG_MENU_BUTTON_RIGHT); -#endif -#endif - -#endif - DrawTextSCentered(326, FONT_TITLE_2, "A Game by Artsoft Entertainment"); -#if 0 - FadeToFront(); -#endif -#if 0 - InitAnimation(); -#endif - HandleMainMenu(0, 0, 0, 0, MB_MENU_INITIALIZE); TapeStop(); @@ -529,22 +423,6 @@ static void DrawMainMenuExt(int fade_delay) PlayMenuSound(); PlayMenuMusic(); -#if 0 -#if 1 - OpenDoor(DOOR_CLOSE_1 | DOOR_OPEN_2); -#else - if (fade_delay > 0) - OpenDoor(DOOR_CLOSE_1 | DOOR_OPEN_2 | DOOR_NO_DELAY | DOOR_FORCE_REDRAW); - else - OpenDoor(DOOR_CLOSE_1 | DOOR_OPEN_2); -#endif -#endif - -#if 0 - InitAnimation(); -#endif - -#if 1 /* create gadgets for main menu screen */ FreeScreenGadgets(); CreateScreenGadgets(); @@ -552,28 +430,25 @@ static void DrawMainMenuExt(int fade_delay) /* map gadgets for main menu screen */ MapTapeButtons(); MapScreenMenuGadgets(SCREEN_MASK_MAIN); -#endif -#if 1 -#if 1 - FadeIn(fade_delay); -#else - BackToFront(); -#endif -#endif + if (do_fading) + FadeIn(redraw_mask); + else + BackToFront(); -#if 1 InitAnimation(); -#endif -#if 1 OpenDoor(DOOR_CLOSE_1 | DOOR_OPEN_2); -#endif +} + +void DrawAndFadeInMainMenu(int redraw_mask) +{ + DrawMainMenuExt(redraw_mask, TRUE); } void DrawMainMenu() { - DrawMainMenuExt(0); + DrawMainMenuExt(REDRAW_ALL, FALSE); } #if 0 @@ -613,8 +488,6 @@ void HandleTitleScreen(int mx, int my, int dx, int dy, int button) boolean return_to_main_menu = FALSE; boolean use_fading_main_menu = TRUE; boolean use_cross_fading = TRUE; - int fade_delay = 500; - int post_delay = fade_delay / 2; if (button == MB_MENU_INITIALIZE) { @@ -633,7 +506,7 @@ void HandleTitleScreen(int mx, int my, int dx, int dy, int button) FadeSoundsAndMusic(); - FadeOut(fade_delay, post_delay); + FadeOut(REDRAW_ALL); } /* force TITLE music on title info screen */ @@ -646,7 +519,7 @@ void HandleTitleScreen(int mx, int my, int dx, int dy, int button) DrawTitleScreenImage(title_nr); - FadeIn(fade_delay); + FadeIn(REDRAW_ALL); return; } @@ -669,30 +542,26 @@ void HandleTitleScreen(int mx, int my, int dx, int dy, int button) title_nr++; if (!use_cross_fading) - FadeOut(fade_delay, post_delay); + FadeOut(REDRAW_ALL); if (title_nr < MAX_NUM_TITLE_SCREENS && graphic_info[IMG_TITLESCREEN_1 + title_nr].bitmap != NULL) { - Bitmap *drawto_last = drawto; - if (use_cross_fading) - drawto = bitmap_db_title; + FadeCrossSaveBackbuffer(); DrawTitleScreenImage(title_nr); - drawto = drawto_last; - if (use_cross_fading) - FadeCross(fade_delay); + FadeCross(REDRAW_ALL); else - FadeIn(fade_delay); + FadeIn(REDRAW_ALL); } else { FadeSoundsAndMusic(); - FadeOut(fade_delay, post_delay); + FadeOut(REDRAW_ALL); return_to_main_menu = TRUE; } @@ -700,8 +569,6 @@ void HandleTitleScreen(int mx, int my, int dx, int dy, int button) if (return_to_main_menu) { - int menu_fade_delay = (use_fading_main_menu ? fade_delay : 0); - RedrawBackground(); if (game_status == GAME_MODE_INFO) @@ -709,14 +576,14 @@ void HandleTitleScreen(int mx, int my, int dx, int dy, int button) OpenDoor(DOOR_CLOSE_1 | DOOR_CLOSE_2 | DOOR_NO_DELAY | DOOR_FORCE_REDRAW); info_mode = INFO_MODE_MAIN; - DrawInfoScreenExt(menu_fade_delay); + DrawInfoScreenExt(use_fading_main_menu); } else /* default: return to main menu */ { OpenDoor(DOOR_CLOSE_1 | DOOR_OPEN_2 | DOOR_NO_DELAY | DOOR_FORCE_REDRAW); game_status = GAME_MODE_MAIN; - DrawMainMenuExt(menu_fade_delay); + DrawMainMenuExt(REDRAW_ALL, use_fading_main_menu); } } } @@ -752,13 +619,13 @@ void HandleMainMenu_SelectLevel(int step, int direction) DrawText(mSX + 11 * 32, mSY + 3 * 32, int2str(level_nr, 3), FONT_VALUE_1); LoadLevel(level_nr); - DrawMicroLevel(MICROLEVEL_XPOS, MICROLEVEL_YPOS, TRUE); + DrawPreviewLevel(TRUE); TapeErase(); LoadTape(level_nr); DrawCompleteVideoDisplay(); - /* needed because DrawMicroLevel() takes some time */ + /* needed because DrawPreviewLevel() takes some time */ BackToFront(); SyncDisplay(); } @@ -766,10 +633,6 @@ void HandleMainMenu_SelectLevel(int step, int direction) void HandleMainMenu(int mx, int my, int dx, int dy, int button) { -#if 0 - static unsigned long level_delay = 0; - static unsigned long level_delay_value = GADGET_FRAME_DELAY; -#endif static int choice = 5; int x = 0; int y = choice; @@ -798,75 +661,10 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button) y = choice + dy; } -#if 0 - /* start gadget delay with longer delay after first click on gadget */ - if (button == 0) - pressed_delay_value = GADGET_FRAME_DELAY_FIRST; -#endif - -#if 1 - if (y == 1 && dx != 0 && button) { HandleMainMenu_SelectLevel(1, dx < 0 ? -1 : +1); } - -#else - - if (y == 1 && ((x == 10 && level_nr > leveldir_current->first_level) || - (x == 14 && level_nr < leveldir_current->last_level)) && - button && DelayReached(&level_delay, level_delay_value)) - { - int step = (button == 1 ? 1 : button == 2 ? 5 : 10); - int old_level_nr = level_nr; - int new_level_nr; - - new_level_nr = level_nr + (x == 10 ? -step : +step); - if (new_level_nr < leveldir_current->first_level) - new_level_nr = leveldir_current->first_level; - if (new_level_nr > leveldir_current->last_level) - new_level_nr = leveldir_current->last_level; - - if (setup.handicap && new_level_nr > leveldir_current->handicap_level) - { - /* skipping levels is only allowed when trying to skip single level */ - if (setup.skip_levels && step == 1 && - Request("Level still unsolved ! Skip despite handicap ?", REQ_ASK)) - { - leveldir_current->handicap_level++; - SaveLevelSetup_SeriesInfo(); - } - - new_level_nr = leveldir_current->handicap_level; - } - - if (new_level_nr != old_level_nr) - { - level_nr = new_level_nr; - - DrawText(mSX + 11 * 32, mSY + 3 * 32, int2str(level_nr, 3), - FONT_VALUE_1); - - LoadLevel(level_nr); - DrawMicroLevel(MICROLEVEL_XPOS, MICROLEVEL_YPOS, TRUE); - - TapeErase(); - LoadTape(level_nr); - DrawCompleteVideoDisplay(); - - /* needed because DrawMicroLevel() takes some time */ - BackToFront(); - SyncDisplay(); - - DelayReached(&level_delay, 0); /* reset delay counter */ -#if 0 - pressed_delay_value = GADGET_FRAME_DELAY_FIRST; -#endif - } - } - -#endif - else if (IN_VIS_FIELD(x, y) && y >= 0 && y <= 7 && (y != 1 || x < 10)) { @@ -944,7 +742,7 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button) if (game_status == GAME_MODE_MAIN) { - DrawMicroLevel(MICROLEVEL_XPOS, MICROLEVEL_YPOS, FALSE); + DrawPreviewLevel(FALSE); DoAnimation(); } } @@ -1013,7 +811,7 @@ static struct TokenInfo info_info_main[] = { 0, NULL, NULL } }; -static void DrawInfoScreen_Main(int fade_delay) +static void DrawInfoScreen_Main(boolean do_fading) { int i; @@ -1022,11 +820,7 @@ static void DrawInfoScreen_Main(int fade_delay) ClearWindow(); -#if 1 DrawTextSCentered(mSY - SY + 16, FONT_TITLE_1, "Info Screen"); -#else - DrawText(mSX + 16, mSY + 16, "Info Screen", FONT_TITLE_1); -#endif info_info = info_info_main; num_info_info = 0; @@ -1049,26 +843,17 @@ static void DrawInfoScreen_Main(int fade_delay) num_info_info++; } -#if 1 - HandleInfoScreen_Main(0, 0, 0, 0, MB_MENU_INITIALIZE); PlayMenuSound(); PlayMenuMusic(); - FadeIn(fade_delay); - InitAnimation(); - -#else + if (do_fading) + FadeIn(REDRAW_ALL); + else + BackToFront(); - FadeToFront(); InitAnimation(); - - PlayMenuSound(); - PlayMenuMusic(); - - HandleInfoScreen_Main(0, 0, 0, 0, MB_MENU_INITIALIZE); -#endif } void HandleInfoScreen_Main(int mx, int my, int dx, int dy, int button) @@ -1483,6 +1268,9 @@ void HandleInfoScreen_Music(int button) FadeSoundsAndMusic(); + if (button != MB_MENU_INITIALIZE) + FadeCrossSaveBackbuffer(); + ClearWindow(); DrawHeadline(); @@ -1544,6 +1332,9 @@ void HandleInfoScreen_Music(int button) DrawTextSCentered(ybottom, FONT_TEXT_4, "Press any key or button for next page"); + + if (button != MB_MENU_INITIALIZE) + FadeCross(REDRAW_FIELD); } if (list != NULL && list->is_sound && sound_info[list->music].loop) @@ -1748,9 +1539,19 @@ void HandleInfoScreen_Credits(int button) } else if (button == MB_MENU_CHOICE) { + boolean show_screen; + screen_nr++; - if (!DrawInfoScreen_CreditsScreen(screen_nr)) + FadeCrossSaveBackbuffer(); + + show_screen = DrawInfoScreen_CreditsScreen(screen_nr); + + if (show_screen) + { + FadeCross(REDRAW_FIELD); + } + else { FadeSoundsAndMusic(); @@ -1781,7 +1582,7 @@ void DrawInfoScreen_Program() DrawTextSCentered(ystart + 1 * ystep, FONT_TEXT_2, "If you like it, send e-mail to:"); DrawTextSCentered(ystart + 2 * ystep, FONT_TEXT_3, - "info@artsoft.org"); + PROGRAM_EMAIL_STRING); DrawTextSCentered(ystart + 3 * ystep, FONT_TEXT_2, "or SnailMail to:"); DrawTextSCentered(ystart + 4 * ystep + 0, FONT_TEXT_3, @@ -1792,12 +1593,15 @@ void DrawInfoScreen_Program() "33604 Bielefeld"); DrawTextSCentered(ystart + 4 * ystep + 60, FONT_TEXT_3, "Germany"); - DrawTextSCentered(ystart + 7 * ystep, FONT_TEXT_2, + "More information and levels:"); + DrawTextSCentered(ystart + 8 * ystep, FONT_TEXT_3, + PROGRAM_WEBSITE_STRING); + DrawTextSCentered(ystart + 9 * ystep, FONT_TEXT_2, "If you have created new levels,"); - DrawTextSCentered(ystart + 8 * ystep, FONT_TEXT_2, + DrawTextSCentered(ystart + 10 * ystep, FONT_TEXT_2, "send them to me to include them!"); - DrawTextSCentered(ystart + 9 * ystep, FONT_TEXT_2, + DrawTextSCentered(ystart + 11 * ystep, FONT_TEXT_2, ":-)"); DrawTextSCentered(ybottom, FONT_TEXT_4, @@ -1887,7 +1691,7 @@ void HandleInfoScreen_LevelSet(int button) } } -static void DrawInfoScreenExt(int fade_delay) +static void DrawInfoScreenExt(boolean do_fading) { SetMainBackgroundImage(IMG_BACKGROUND_INFO); @@ -1904,7 +1708,7 @@ static void DrawInfoScreenExt(int fade_delay) else if (info_mode == INFO_MODE_LEVELSET) DrawInfoScreen_LevelSet(); else - DrawInfoScreen_Main(fade_delay); + DrawInfoScreen_Main(do_fading); if (info_mode != INFO_MODE_MAIN && info_mode != INFO_MODE_TITLE && @@ -2043,34 +1847,15 @@ static void drawChooseTreeList(int first_entry, int num_page_entries, { int i; char *title_string = NULL; -#if 0 - int xoffset_sets = 16; -#endif int yoffset_sets = MENU_TITLE1_YPOS; -#if 0 - int xoffset_setup = 16; -#endif int yoffset_setup = 16; -#if 1 -#if 0 - int xoffset = (ti->type == TREE_TYPE_LEVEL_DIR ? xoffset_sets : - xoffset_setup); -#endif int yoffset = (ti->type == TREE_TYPE_LEVEL_DIR ? yoffset_sets : yoffset_setup); -#else - int xoffset = (ti->type == TREE_TYPE_LEVEL_DIR ? 0 : xoffset_setup); - int yoffset = (ti->type == TREE_TYPE_LEVEL_DIR ? 0 : yoffset_setup); -#endif int last_game_status = game_status; /* save current game status */ title_string = ti->infotext; -#if 1 DrawTextSCentered(mSY - SY + yoffset, FONT_TITLE_1, title_string); -#else - DrawText(SX + xoffset, SY + yoffset, title_string, FONT_TITLE_1); -#endif /* force LEVELS font on artwork setup screen */ game_status = GAME_MODE_LEVELS; @@ -2121,11 +1906,7 @@ static void drawChooseTreeInfo(int entry_pos, TreeInfo *ti) { TreeInfo *node, *node_first; int x, last_redraw_mask = redraw_mask; -#if 1 int ypos = MENU_TITLE2_YPOS; -#else - int ypos = 40; -#endif if (ti->type != TREE_TYPE_LEVEL_DIR) return; @@ -2414,13 +2195,16 @@ void DrawHallOfFame(int highlight_position) if (highlight_position < 0) LoadScore(level_nr); - FadeToFront(); + FadeOut(REDRAW_FIELD); + InitAnimation(); PlayMenuSound(); PlayMenuMusic(); HandleHallOfFame(highlight_position, 0, 0, 0, MB_MENU_INITIALIZE); + + FadeIn(REDRAW_FIELD); } static void drawHallOfFameList(int first_entry, int highlight_position) @@ -2430,15 +2214,9 @@ static void drawHallOfFameList(int first_entry, int highlight_position) SetMainBackgroundImage(IMG_BACKGROUND_SCORES); ClearWindow(); -#if 1 DrawTextSCentered(MENU_TITLE1_YPOS, FONT_TITLE_1, "Hall Of Fame"); DrawTextFCentered(MENU_TITLE2_YPOS, FONT_TITLE_2, "HighScores of Level %d", level_nr); -#else - DrawText(mSX + 80, mSY + MENU_TITLE1_YPOS, "Hall Of Fame", FONT_TITLE_1); - DrawTextFCentered(MENU_TITLE2_YPOS, FONT_TITLE_2, - "HighScores of Level %d", level_nr); -#endif for (i = 0; i < NUM_MENU_ENTRIES_ON_SCREEN; i++) { @@ -2471,7 +2249,6 @@ void HandleHallOfFame(int mx, int my, int dx, int dy, int button) static int first_entry = 0; static int highlight_position = 0; int step = (button == 1 ? 1 : button == 2 ? 5 : 10); - int button_released = !button; if (button == MB_MENU_INITIALIZE) { @@ -2507,12 +2284,23 @@ void HandleHallOfFame(int mx, int my, int dx, int dy, int button) drawHallOfFameList(first_entry, highlight_position); } } - else if (button_released) + else if (button == MB_MENU_LEAVE) { FadeSound(SND_BACKGROUND_SCORES); + game_status = GAME_MODE_MAIN; + DrawMainMenu(); } + else if (button == MB_MENU_CHOICE) + { + FadeSound(SND_BACKGROUND_SCORES); + FadeOut(REDRAW_FIELD); + + game_status = GAME_MODE_MAIN; + + DrawAndFadeInMainMenu(REDRAW_FIELD); + } if (game_status == GAME_MODE_SCORES) PlayMenuSoundIfLoop(); @@ -2560,15 +2348,18 @@ static void execSetupGraphics() for (i = 0; video.fullscreen_modes[i].width != -1; i++) { TreeInfo *ti = newTreeInfo_setDefaults(TREE_TYPE_UNDEFINED); - char identifier[20], name[20]; + char identifier[32], name[32]; int x = video.fullscreen_modes[i].width; int y = video.fullscreen_modes[i].height; + int xx, yy; + + get_aspect_ratio_from_screen_mode(&video.fullscreen_modes[i], &xx, &yy); ti->node_top = &screen_modes; - ti->sort_priority = x * y; + ti->sort_priority = x * 10000 + y; sprintf(identifier, "%dx%d", x, y); - sprintf(name, "%d x %d", x, y); + sprintf(name, "%d x %d [%d:%d]", x, y, xx, yy); setString(&ti->identifier, identifier); setString(&ti->name, name); @@ -2578,11 +2369,19 @@ static void execSetupGraphics() pushTreeInfo(&screen_modes, ti); } + /* sort fullscreen modes to start with lowest available screen resolution */ sortTreeInfo(&screen_modes); - /* set current screen mode for fullscreen mode to reliable default value */ + /* set current screen mode for fullscreen mode to configured setup value */ screen_mode_current = getTreeInfoFromIdentifier(screen_modes, - DEFAULT_FULLSCREEN_MODE); + setup.fullscreen_mode); + + /* if that fails, set current screen mode to reliable default value */ + if (screen_mode_current == NULL) + screen_mode_current = getTreeInfoFromIdentifier(screen_modes, + DEFAULT_FULLSCREEN_MODE); + + /* if that also fails, set current screen mode to first available mode */ if (screen_mode_current == NULL) screen_mode_current = screen_modes; @@ -2755,8 +2554,8 @@ static struct TokenInfo setup_info_graphics[] = #if 0 { TYPE_SWITCH, &setup.soft_scrolling, "Soft Scrolling:" }, { TYPE_SWITCH, &setup.double_buffering,"Double-Buffering:" }, - { TYPE_SWITCH, &setup.fading, "Fading:" }, #endif + { TYPE_SWITCH, &setup.fade_screens, "Fade Screens:" }, { TYPE_SWITCH, &setup.quick_switch, "Quick Player Focus Switch:" }, { TYPE_SWITCH, &setup.quick_doors, "Quick Menu Doors:" }, { TYPE_SWITCH, &setup.show_titlescreen,"Show Title Screens:" }, @@ -2932,18 +2731,11 @@ static void drawSetupValue(int pos) if (type & TYPE_KEY) { -#if 1 xpos = MENU_SCREEN_START_XPOS; -#else - xpos = 3; -#endif if (type & TYPE_QUERY) { value_string = ""; -#if 0 - font_nr = FONT_INPUT_1_ACTIVE; -#endif } } else if (type & TYPE_STRING) @@ -2951,25 +2743,10 @@ static void drawSetupValue(int pos) int max_value_len = (SCR_FIELDX - 2) * 2; xpos = MENU_SCREEN_START_XPOS; -#if 0 - font_nr = FONT_VALUE_2; -#endif if (strlen(value_string) > max_value_len) value_string[max_value_len] = '\0'; } - else if (type & TYPE_ECS_AGA) - { -#if 0 - font_nr = FONT_VALUE_1; -#endif - } - else if (type & TYPE_BOOLEAN_STYLE) - { -#if 0 - font_nr = (*(boolean *)value ? FONT_OPTION_ON : FONT_OPTION_OFF); -#endif - } startx = mSX + xpos * 32; starty = mSY + ypos * 32; @@ -2996,12 +2773,6 @@ static void drawSetupValue(int pos) startx + font2_xoffset < text_startx + text_width + text_font_xoffset) correct_font_draw_xoffset = TRUE; -#if 0 - printf("::: %d + %d < %d + %d + %d\n", - startx, font_xoffset, text_startx, text_width, text_font_xoffset); - printf("::: => need correction == %d\n", correct_font_draw_xoffset); -#endif - /* check if setup value would overlap with setup text when printed */ /* (this can happen for extreme/wrong values for font draw offset) */ if (correct_font_draw_xoffset) @@ -3017,18 +2788,8 @@ static void drawSetupValue(int pos) } } -#if 1 for (i = 0; i <= MENU_SCREEN_MAX_XPOS - xpos; i++) DrawText(startx + i * font_width, starty, " ", font_nr); -#else -#if 1 - for (i = xpos; i <= MENU_SCREEN_MAX_XPOS; i++) - DrawText(mSX + i * 32, starty, " ", font_nr); -#else - DrawText(startx, starty, - (xpos == 3 ? " " : " "), font_nr); -#endif -#endif DrawText(startx, starty, value_string, font_nr); @@ -3109,11 +2870,7 @@ static void DrawSetupScreen_Generic() title_string = "Setup Shortcuts"; } -#if 1 DrawTextSCentered(mSY - SY + 16, FONT_TITLE_1, title_string); -#else - DrawText(mSX + 16, mSY + 16, title_string, FONT_TITLE_1); -#endif num_setup_info = 0; for (i = 0; setup_info[i].type != 0 && i < NUM_MENU_ENTRIES_ON_SCREEN; i++) @@ -3121,11 +2878,7 @@ static void DrawSetupScreen_Generic() void *value_ptr = setup_info[i].value; int xpos = MENU_SCREEN_START_XPOS; int ypos = MENU_SCREEN_START_YPOS + i; -#if 1 int font_nr; -#else - int font_nr = FONT_MENU_1; -#endif /* set some entries to "unchangeable" according to other variables */ if ((value_ptr == &setup.sound_simple && !audio.sound_available) || @@ -3135,21 +2888,7 @@ static void DrawSetupScreen_Generic() (value_ptr == &screen_mode_text && !video.fullscreen_available)) setup_info[i].type |= TYPE_GHOSTED; -#if 1 font_nr = getSetupTextFont(setup_info[i].type); -#else -#if 1 - if (setup_info[i].type & (TYPE_SWITCH | - TYPE_YES_NO | - TYPE_STRING | - TYPE_ECS_AGA | - TYPE_KEYTEXT)) - font_nr = FONT_MENU_2; -#else - if (setup_info[i].type & TYPE_STRING) - font_nr = FONT_MENU_2; -#endif -#endif DrawText(mSX + xpos * 32, mSY + ypos * 32, setup_info[i].text, font_nr); @@ -3236,7 +2975,6 @@ void HandleSetupScreen_Generic(int mx, int my, int dx, int dy, int button) y += dy; } -#if 1 if (IN_VIS_FIELD(x, y) && y >= 0 && y < num_setup_info) { if (button) @@ -3273,61 +3011,19 @@ void HandleSetupScreen_Generic(int mx, int my, int dx, int dy, int button) } } } -#else - if (IN_VIS_FIELD(x, y) && - y >= 0 && y < num_setup_info && setup_info[y].type & ~TYPE_SKIP_ENTRY) - { - if (button) - { - if (y != choice) - { - drawCursor(y, FC_RED); - drawCursor(choice, FC_BLUE); - choice = choice_store[setup_mode] = y; - } - } - else if (!(setup_info[y].type & TYPE_GHOSTED)) - { - if (setup_info[y].type & TYPE_ENTER_OR_LEAVE) - { - void (*menu_callback_function)(void) = setup_info[choice].value; - - menu_callback_function(); - } - else - { - if (setup_info[y].type & TYPE_KEYTEXT && - setup_info[y + 1].type & TYPE_KEY) - y++; - - if (setup_info[y].type & TYPE_VALUE) - changeSetupValue(y); - } - } - } -#endif } void DrawSetupScreen_Input() { ClearWindow(); -#if 1 DrawTextSCentered(mSY - SY + 16, FONT_TITLE_1, "Setup Input"); -#else - DrawText(mSX + 16, mSY + 16, "Setup Input", FONT_TITLE_1); -#endif initCursor(0, IMG_MENU_BUTTON); initCursor(1, IMG_MENU_BUTTON); initCursor(2, IMG_MENU_BUTTON_ENTER_MENU); initCursor(13, IMG_MENU_BUTTON_LEAVE_MENU); -#if 0 - drawCursorXY(10, 0, IMG_MENU_BUTTON_LEFT); - drawCursorXY(12, 0, IMG_MENU_BUTTON_RIGHT); -#endif - DrawText(mSX + 32, mSY + 2 * 32, "Player:", FONT_MENU_1); DrawText(mSX + 32, mSY + 3 * 32, "Device:", FONT_MENU_1); DrawText(mSX + 32, mSY + 15 * 32, "Back", FONT_MENU_1); @@ -3340,14 +3036,12 @@ void DrawSetupScreen_Input() "Joysticks deactivated on this screen"); #endif -#if 1 /* create gadgets for setup input menu screen */ FreeScreenGadgets(); CreateScreenGadgets(); /* map gadgets for setup input menu screen */ MapScreenMenuGadgets(SCREEN_MASK_INPUT); -#endif HandleSetupScreen_Input(0, 0, 0, 0, MB_MENU_INITIALIZE); FadeToFront(); @@ -3519,31 +3213,10 @@ void HandleSetupScreen_Input(int mx, int my, int dx, int dy, int button) y = (dy > 0 ? pos_empty2 + 1 : pos_empty1 - 1); } -#if 1 - if (y == 0 && dx != 0 && button) { HandleSetupScreen_Input_Player(1, dx < 0 ? -1 : +1); } - -#else - - if (IN_VIS_FIELD(x, y) && - y == 0 && ((x < 10 && !button) || ((x == 10 || x == 12) && button))) - { - static unsigned long delay = 0; - - if (!DelayReached(&delay, GADGET_FRAME_DELAY)) - return; - - input_player_nr = - (input_player_nr + (x == 10 ? -1 : +1) + MAX_PLAYERS) % MAX_PLAYERS; - - drawPlayerSetupInputInfo(input_player_nr); - } - -#endif - else if (IN_VIS_FIELD(x, y) && y >= pos_start && y <= pos_end && !(y >= pos_empty1 && y <= pos_empty2)) @@ -3629,11 +3302,7 @@ void CustomizeKeyboard(int player_nr) ClearWindow(); -#if 1 DrawTextSCentered(mSY - SY + 16, FONT_TITLE_1, "Keyboard Input"); -#else - DrawText(mSX + 16, mSY + 16, "Keyboard Input", FONT_TITLE_1); -#endif BackToFront(); InitAnimation(); @@ -4398,11 +4067,6 @@ static void HandleScreenGadgets(struct GadgetInfo *gi) int button = gi->event.button; int step = (button == 1 ? 1 : button == 2 ? 5 : 10); -#if 0 - if (game_status != GAME_MODE_LEVELS && game_status != GAME_MODE_SETUP) - return; -#endif - switch (id) { case SCREEN_CTRL_ID_LAST_LEVEL: