- int i;
-
- // determine number of (global or level set specific) credits screens
- for (i = 0; i < 2; i++)
- {
- num_credits_screens = 0;
- use_global_credits_screens = i;
-
- while (getCreditsFilename(num_credits_screens,
- use_global_credits_screens) != NULL)
- num_credits_screens++;
-
- if (num_credits_screens > 0)
- break;
- }
-
- if (num_credits_screens == 0)
- {
- int font_title = MENU_INFO_FONT_TITLE;
- int font_foot = MENU_INFO_FONT_FOOT;
- int ystart = mSY - SY + MENU_SCREEN_INFO_YSTART1;
- int ybottom = mSY - SY + MENU_SCREEN_INFO_YBOTTOM;
-
- ClearField();
- DrawHeadline();
-
- DrawTextSCentered(ystart, font_title,
- "No credits for this level set.");
-
- DrawTextSCentered(ybottom, font_foot,
- "Press any key or button for info menu");
-
- return;
- }
-
- screen_nr = 0;
-
- DrawInfoScreen_CreditsScreen(screen_nr);
- }
- else if (button == MB_MENU_LEAVE)
- {
- PlaySound(SND_MENU_ITEM_SELECTING);
-
- info_mode = INFO_MODE_MAIN;
- DrawInfoScreen();
-
- return;
- }
- else if (button == MB_MENU_CHOICE || dx)
- {
- PlaySound(SND_MENU_ITEM_SELECTING);
-
- screen_nr += (dx < 0 ? -1 : +1);
-
- if (screen_nr < 0 || screen_nr >= num_credits_screens)
- {
- FadeMenuSoundsAndMusic();
-
- info_mode = INFO_MODE_MAIN;
- DrawInfoScreen();
-
- return;
- }
-
- FadeSetNextScreen();
-
- FadeOut(REDRAW_FIELD);
-
- DrawInfoScreen_CreditsScreen(screen_nr);
-
- FadeIn(REDRAW_FIELD);
- }
- else
- {
- PlayMenuSoundIfLoop();
- }
-}
-
-static void DrawInfoScreen_Program(void)
-{
- int font_title = MENU_INFO_FONT_TITLE;
- int font_head = MENU_INFO_FONT_HEAD;
- int font_text = MENU_INFO_FONT_TEXT;
- int font_foot = MENU_INFO_FONT_FOOT;
- int spacing_title = menu.headline1_spacing_info[info_mode];
- int spacing_head = menu.headline2_spacing_info[info_mode];
- int spacing_para = menu.paragraph_spacing_info[info_mode];
- int spacing_line = menu.line_spacing_info[info_mode];
- int ystep_title = getMenuTextStep(spacing_title, font_title);
- 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 + MENU_SCREEN_INFO_YSTART1;
- int ybottom = mSY - SY + MENU_SCREEN_INFO_YBOTTOM;
-
- SetMainBackgroundImageIfDefined(IMG_BACKGROUND_INFO_PROGRAM);
-
- FadeOut(REDRAW_FIELD);
-
- ClearField();
- DrawHeadline();
-
- DrawTextSCentered(ystart, font_title, "Program Information:");
- ystart += ystep_title;
-
- DrawTextSCentered(ystart, font_head,
- "This game is Freeware!");
- ystart += ystep_head;
- DrawTextSCentered(ystart, font_head,
- "If you like it, send e-mail to:");
- ystart += ystep_head;
- DrawTextSCentered(ystart, font_text,
- setup.internal.program_email);
- ystart += ystep_para;
-
- DrawTextSCentered(ystart, font_head,
- "More information and levels:");
- ystart += ystep_head;
- DrawTextSCentered(ystart, font_text,
- setup.internal.program_website);
- ystart += ystep_para;
-
- DrawTextSCentered(ystart, font_head,
- "If you have created new levels,");
- ystart += ystep_line;
- DrawTextSCentered(ystart, font_head,
- "send them to me to include them!");
- ystart += ystep_head;
- DrawTextSCentered(ystart, font_head,
- ":-)");
-
- DrawTextSCentered(ybottom, font_foot,
- "Press any key or button for info menu");
-
- FadeIn(REDRAW_FIELD);
-}
-
-void HandleInfoScreen_Program(int button)
-{
- if (button == MB_MENU_LEAVE)
- {
- PlaySound(SND_MENU_ITEM_SELECTING);
-
- info_mode = INFO_MODE_MAIN;
- DrawInfoScreen();
-
- return;
- }
- else if (button == MB_MENU_CHOICE)
- {
- PlaySound(SND_MENU_ITEM_SELECTING);
-
- FadeMenuSoundsAndMusic();
-
- info_mode = INFO_MODE_MAIN;
- DrawInfoScreen();
- }
- else
- {
- PlayMenuSoundIfLoop();
- }
-}
-
-static void DrawInfoScreen_Version(void)
-{
- int font_title = MENU_INFO_FONT_TITLE;
- int font_head = MENU_INFO_FONT_HEAD;
- int font_text = MENU_INFO_FONT_TEXT;
- int font_foot = MENU_INFO_FONT_FOOT;
- int spacing_title = menu.headline1_spacing_info[info_mode];
- int spacing_head = menu.headline2_spacing_info[info_mode];
- int spacing_para = menu.paragraph_spacing_info[info_mode];
- int spacing_line = menu.line_spacing_info[info_mode];
- int xstep = getFontWidth(font_text);
- int ystep_title = getMenuTextStep(spacing_title, font_title);
- 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 + 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;
- SDL_version sdl_version_compiled;
- const SDL_version *sdl_version_linked;
- int driver_name_len = 10;
- SDL_version sdl_version_linked_ext;
- const char *driver_name = NULL;
-
- SetMainBackgroundImageIfDefined(IMG_BACKGROUND_INFO_VERSION);
-
- FadeOut(REDRAW_FIELD);
-
- ClearField();
- DrawHeadline();
-
- DrawTextSCentered(ystart, font_title, "Version Information:");
- ystart += ystep_title;
-
- DrawTextF(xstart1, ystart, font_head, "Name");
- DrawTextF(xstart2, ystart, font_text, getProgramTitleString());
- ystart += ystep_line;
-
- if (!strEqual(getProgramVersionString(), getProgramRealVersionString()))
- {
- DrawTextF(xstart1, ystart, font_head, "Version (fake)");
- DrawTextF(xstart2, ystart, font_text, getProgramVersionString());
- ystart += ystep_line;