DrawTextSCentered(MENU_TITLE2_YPOS, FONT_TITLE_2, PROGRAM_COPYRIGHT_STRING);
}
-static void ToggleFullscreenIfNeeded()
-{
- if (setup.fullscreen != video.fullscreen_enabled ||
- setup.fullscreen_mode != video.fullscreen_mode_current)
- {
- /* save old door content */
- BlitBitmap(backbuffer, bitmap_db_door,
- DX, DY, DXSIZE, DYSIZE, DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1);
-
- if (setup.fullscreen && video.fullscreen_enabled)
- {
- /* keep fullscreen mode, but change screen mode */
- video.fullscreen_mode_current = setup.fullscreen_mode;
- video.fullscreen_enabled = FALSE;
- }
-
- /* 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;
StopAnimation();
}
-static void DrawMainMenuExt(int fade_delay)
+void DrawMainMenuExt(int fade_delay, int redraw_mask)
{
static LevelDirTree *leveldir_last_valid = NULL;
boolean levelset_has_changed = FALSE;
#endif
#endif
- DrawMicroLevel(MICROLEVEL_XPOS, MICROLEVEL_YPOS, TRUE);
+ DrawPreviewLevel(TRUE);
#if 1
#if 1
#if 1
- FadeIn(fade_delay);
+ if (redraw_mask == REDRAW_FIELD)
+ FadeInField(fade_delay);
+ else if (redraw_mask == REDRAW_ALL)
+ FadeIn(fade_delay);
+
+ BackToFront();
#else
BackToFront();
#endif
void DrawMainMenu()
{
- DrawMainMenuExt(0);
+ DrawMainMenuExt(0, REDRAW_ALL);
}
#if 0
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;
+ int fade_delay = TITLE_SCREEN_FADE_DELAY;
+ int post_delay = TITLE_SCREEN_POST_DELAY;
if (button == MB_MENU_INITIALIZE)
{
OpenDoor(DOOR_CLOSE_1 | DOOR_OPEN_2 | DOOR_NO_DELAY | DOOR_FORCE_REDRAW);
game_status = GAME_MODE_MAIN;
- DrawMainMenuExt(menu_fade_delay);
+ DrawMainMenuExt(menu_fade_delay, REDRAW_ALL);
}
}
}
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();
}
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();
if (game_status == GAME_MODE_MAIN)
{
- DrawMicroLevel(MICROLEVEL_XPOS, MICROLEVEL_YPOS, FALSE);
+ DrawPreviewLevel(FALSE);
DoAnimation();
}
}
if (button_released || button == MB_MENU_INITIALIZE)
{
+ Bitmap *drawto_last = drawto;
int y = 0;
if (button != MB_MENU_INITIALIZE)
FadeSoundsAndMusic();
+ if (button != MB_MENU_INITIALIZE)
+ drawto = bitmap_db_title;
+
ClearWindow();
DrawHeadline();
DrawTextSCentered(ybottom, FONT_TEXT_4,
"Press any key or button for next page");
+
+ drawto = drawto_last;
+
+ if (button != MB_MENU_INITIALIZE)
+ FadeCrossField(TITLE_SCREEN_FADE_DELAY);
}
if (list != NULL && list->is_sound && sound_info[list->music].loop)
}
else if (button == MB_MENU_CHOICE)
{
+ Bitmap *drawto_last = drawto;
+ boolean show_screen;
+
screen_nr++;
- if (!DrawInfoScreen_CreditsScreen(screen_nr))
+ drawto = bitmap_db_title;
+
+ show_screen = DrawInfoScreen_CreditsScreen(screen_nr);
+
+ drawto = drawto_last;
+
+ if (show_screen)
+ {
+ FadeCrossField(TITLE_SCREEN_FADE_DELAY);
+ }
+ else
{
FadeSoundsAndMusic();
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,
"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,
if (highlight_position < 0)
LoadScore(level_nr);
+ FadeOutField(TITLE_SCREEN_FADE_DELAY, TITLE_SCREEN_POST_DELAY);
+
+#if 0
FadeToFront();
+#endif
InitAnimation();
PlayMenuSound();
PlayMenuMusic();
HandleHallOfFame(highlight_position, 0, 0, 0, MB_MENU_INITIALIZE);
+
+ FadeInField(TITLE_SCREEN_FADE_DELAY);
}
static void drawHallOfFameList(int first_entry, int highlight_position)
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)
{
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();
+
+ DrawMainMenuExt(0, REDRAW_FIELD);
+ }
+ else if (button == MB_MENU_CHOICE)
+ {
+ FadeSound(SND_BACKGROUND_SCORES);
+ FadeOutField(TITLE_SCREEN_FADE_DELAY, TITLE_SCREEN_POST_DELAY);
+
+ game_status = GAME_MODE_MAIN;
+
+ DrawMainMenuExt(TITLE_SCREEN_FADE_DELAY, REDRAW_FIELD);
}
if (game_status == GAME_MODE_SCORES)
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 [%d:%d]", x, y, xx, yy);