X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fscreens.c;h=098939eb62383223979920ef043e15be49c30d07;hp=8c8119d6c7004edc373e086b348255877d5c6e03;hb=2189cd97616201ebb5d6cea37d2a72251ea9be50;hpb=33775032e403b28c89ee7c60b64a456d30a013fb diff --git a/src/screens.c b/src/screens.c index 8c8119d6..098939eb 100644 --- a/src/screens.c +++ b/src/screens.c @@ -129,13 +129,16 @@ #define MENU_INFO_FONT_TEXT FONT_TEXT_3 #define MENU_INFO_FONT_FOOT FONT_TEXT_4 #define MENU_INFO_SPACE_HEAD (menu.headline2_spacing_info[info_mode]) -#define MENU_SCREEN_INFO_XSTART 16 -#define MENU_SCREEN_INFO_YSTART1 100 +#define MENU_SCREEN_INFO_SPACE_LEFT (menu.left_spacing_info[info_mode]) +#define MENU_SCREEN_INFO_SPACE_RIGHT (menu.right_spacing_info[info_mode]) +#define MENU_SCREEN_INFO_SPACE_TOP (menu.top_spacing_info[info_mode]) +#define MENU_SCREEN_INFO_SPACE_BOTTOM (menu.bottom_spacing_info[info_mode]) +#define MENU_SCREEN_INFO_YSTART1 MENU_SCREEN_INFO_SPACE_TOP #define MENU_SCREEN_INFO_YSTART2 (MENU_SCREEN_INFO_YSTART1 + \ getMenuTextStep(MENU_INFO_SPACE_HEAD, \ MENU_INFO_FONT_TITLE)) #define MENU_SCREEN_INFO_YSTEP (TILEY + 4) -#define MENU_SCREEN_INFO_YBOTTOM (SYSIZE - 20) +#define MENU_SCREEN_INFO_YBOTTOM (SYSIZE - MENU_SCREEN_INFO_SPACE_BOTTOM) #define MENU_SCREEN_INFO_YSIZE (MENU_SCREEN_INFO_YBOTTOM - \ MENU_SCREEN_INFO_YSTART2 - \ TILEY / 2) @@ -303,7 +306,7 @@ static struct char *text; } scaling_types_list[] = { - { SCALING_QUALITY_NEAREST, "None" }, + { SCALING_QUALITY_NEAREST, "Off" }, { SCALING_QUALITY_LINEAR, "Linear" }, { SCALING_QUALITY_BEST, "Anisotropic" }, @@ -421,6 +424,7 @@ static struct char *text; } touch_controls_list[] = { + { TOUCH_CONTROL_OFF, "Off" }, { TOUCH_CONTROL_VIRTUAL_BUTTONS, "Virtual Buttons" }, { TOUCH_CONTROL_WIPE_GESTURES, "Wipe Gestures" }, { TOUCH_CONTROL_FOLLOW_FINGER, "Follow Finger" }, @@ -999,8 +1003,6 @@ static boolean visibleTextPos(struct TextPosInfo *pos) static void InitializeMainControls() { - TreeInfo *graphics_current = - getArtworkTreeInfoForUserLevelSet(ARTWORK_TYPE_GRAPHICS); boolean local_team_mode = (!options.network && setup.team_mode); int i; @@ -1019,21 +1021,9 @@ static void InitializeMainControls() main_text_level_imported_by = leveldir_current->imported_by; main_text_level_tested_by = leveldir_current->tested_by; - main_text_title_1 = (leveldir_current->program_title ? - leveldir_current->program_title : - graphics_current->program_title ? - graphics_current->program_title : - setup.internal.program_title); - main_text_title_2 = (leveldir_current->program_copyright ? - leveldir_current->program_copyright : - graphics_current->program_copyright ? - graphics_current->program_copyright : - setup.internal.program_copyright); - main_text_title_3 = (leveldir_current->program_company ? - leveldir_current->program_company : - graphics_current->program_company ? - graphics_current->program_company : - setup.internal.program_company); + main_text_title_1 = getConfigProgramTitleString(); + main_text_title_2 = getConfigProgramCopyrightString(); + main_text_title_3 = getConfigProgramCompanyString(); /* set main control screen positions to dynamically determined values */ for (i = 0; main_controls[i].nr != -1; i++) @@ -1343,9 +1333,8 @@ static void drawChooseTreeCursor(int ypos, boolean active) void DrawHeadline() { - DrawTextSCentered(MENU_TITLE1_YPOS, FONT_TITLE_1, getProgramTitleString()); - DrawTextSCentered(MENU_TITLE2_YPOS, FONT_TITLE_2, - setup.internal.program_copyright); + DrawTextSCentered(MENU_TITLE1_YPOS, FONT_TITLE_1, main_text_title_1); + DrawTextSCentered(MENU_TITLE2_YPOS, FONT_TITLE_2, main_text_title_2); } void DrawTitleScreenImage(int nr, boolean initial) @@ -2614,9 +2603,9 @@ void DrawInfoScreen_NotAvailable(char *text_title, char *text_error) int font_foot = MENU_INFO_FONT_FOOT; int spacing_title = menu.headline1_spacing_info[info_mode]; int ystep_title = getMenuTextStep(spacing_title, font_title); - int ystart1 = mSY - SY + 100; + int ystart1 = mSY - SY + MENU_SCREEN_INFO_YSTART1; int ystart2 = ystart1 + ystep_title; - int ybottom = mSY - SY + SYSIZE - 20; + int ybottom = mSY - SY + MENU_SCREEN_INFO_YBOTTOM; SetMainBackgroundImageIfDefined(IMG_BACKGROUND_INFO); @@ -2640,7 +2629,7 @@ void DrawInfoScreen_HelpAnim(int start, int max_anims, boolean init) static int infoscreen_frame[MAX_INFO_ELEMENTS_ON_SCREEN]; int font_title = MENU_INFO_FONT_TITLE; int font_foot = MENU_INFO_FONT_FOOT; - int xstart = mSX + MENU_SCREEN_INFO_XSTART; + int xstart = mSX + MENU_SCREEN_INFO_SPACE_LEFT; int ystart1 = mSY - SY + MENU_SCREEN_INFO_YSTART1; int ystart2 = mSY + MENU_SCREEN_INFO_YSTART2; int ybottom = mSY - SY + MENU_SCREEN_INFO_YBOTTOM; @@ -2770,11 +2759,12 @@ void DrawInfoScreen_HelpText(int element, int action, int direction, int ypos) int font_width = getFontWidth(font_nr); int font_height = getFontHeight(font_nr); int yoffset = (TILEX - 2 * font_height) / 2; - int xstart = mSX + MINI_TILEX + TILEX + MINI_TILEX; + int xstart = mSX + MENU_SCREEN_INFO_SPACE_LEFT + TILEX + MINI_TILEX; int ystart = mSY + MENU_SCREEN_INFO_YSTART2 + yoffset; int ystep = TILEY + 4; - int pad_x = xstart - SX; - int max_chars_per_line = (SXSIZE - pad_x - MINI_TILEX) / font_width; + int pad_left = xstart - SX; + int pad_right = MENU_SCREEN_INFO_SPACE_RIGHT; + int max_chars_per_line = (SXSIZE - pad_left - pad_right) / font_width; int max_lines_per_text = 2; char *text = NULL; @@ -2933,8 +2923,8 @@ void HandleInfoScreen_Music(int button) int spacing_head = menu.headline2_spacing_info[info_mode]; int ystep_title = getMenuTextStep(spacing_title, font_title); int ystep_head = getMenuTextStep(spacing_head, font_head); - int ystart = mSY - SY + 100; - int ybottom = mSY - SY + SYSIZE - 20; + int ystart = mSY - SY + MENU_SCREEN_INFO_YSTART1; + int ybottom = mSY - SY + MENU_SCREEN_INFO_YBOTTOM; if (button == MB_MENU_INITIALIZE) { @@ -3095,8 +3085,8 @@ static void DrawInfoScreen_CreditsScreen(int screen_nr) int ystep_head = getMenuTextStep(spacing_head, font_head); int ystep_para = getMenuTextStep(spacing_para, font_text); int ystep_line = getMenuTextStep(spacing_line, font_text); - int ystart = mSY - SY + 100; - int ybottom = mSY - SY + SYSIZE - 20; + int ystart = mSY - SY + MENU_SCREEN_INFO_YSTART1; + int ybottom = mSY - SY + MENU_SCREEN_INFO_YBOTTOM; ClearField(); DrawHeadline(); @@ -3396,8 +3386,8 @@ void DrawInfoScreen_Program() int ystep_head = getMenuTextStep(spacing_head, font_head); int ystep_para = getMenuTextStep(spacing_para, font_text); int ystep_line = getMenuTextStep(spacing_line, font_text); - int ystart = mSY - SY + 100; - int ybottom = mSY - SY + SYSIZE - 20; + int ystart = mSY - SY + MENU_SCREEN_INFO_YSTART1; + int ybottom = mSY - SY + MENU_SCREEN_INFO_YBOTTOM; SetMainBackgroundImageIfDefined(IMG_BACKGROUND_INFO_PROGRAM); @@ -3482,8 +3472,8 @@ void DrawInfoScreen_Version() int ystep_head = getMenuTextStep(spacing_head, font_head); int ystep_para = getMenuTextStep(spacing_para, font_text); int ystep_line = getMenuTextStep(spacing_line, font_text); - int ystart = mSY - SY + 100; - int ybottom = mSY - SY + SYSIZE - 20; + int ystart = mSY - SY + MENU_SCREEN_INFO_YSTART1; + int ybottom = mSY - SY + MENU_SCREEN_INFO_YBOTTOM; int xstart1 = mSX - SX + 2 * xstep; int xstart2 = mSX - SX + 18 * xstep; int xstart3 = mSX - SX + 28 * xstep; @@ -3669,8 +3659,8 @@ void DrawInfoScreen_LevelSet() struct TitleMessageInfo *tmi = &readme; char *filename = getLevelSetInfoFilename(); char *title = "Level Set Information:"; - int ystart = mSY - SY + 100; - int ybottom = mSY - SY + SYSIZE - 20; + int ystart = mSY - SY + MENU_SCREEN_INFO_YSTART1; + int ybottom = mSY - SY + MENU_SCREEN_INFO_YBOTTOM; if (filename == NULL) { @@ -3702,7 +3692,7 @@ void DrawInfoScreen_LevelSet() /* if height set to "-1", automatically determine by playfield height */ if (tmi->height == -1) - tmi->height = SYSIZE - 20 - tmi->y - 10; + tmi->height = MENU_SCREEN_INFO_YBOTTOM - tmi->y - 10; /* if chars set to "-1", automatically determine by text and font width */ if (tmi->chars == -1) @@ -7105,6 +7095,9 @@ void HandleSetupScreen(int mx, int my, int dx, int dy, int button) void HandleGameActions() { + if (game.restart_game_message != NULL) + RequestRestartGame(game.restart_game_message); + if (game_status != GAME_MODE_PLAYING) return;