static void HandleInfoScreen_Main(int, int, int, int, int);
static void HandleInfoScreen_TitleScreen(int);
static void HandleInfoScreen_Elements(int);
-static void HandleInfoScreen_Music(int);
-static void HandleInfoScreen_Credits(int);
+static void HandleInfoScreen_Music(int, int, int);
+static void HandleInfoScreen_Credits(int, int, int);
static void HandleInfoScreen_Program(int);
static void HandleInfoScreen_Version(int);
LoadMusicInfo();
- HandleInfoScreen_Music(MB_MENU_INITIALIZE);
+ HandleInfoScreen_Music(0, 0, MB_MENU_INITIALIZE);
FadeIn(REDRAW_FIELD);
}
-void HandleInfoScreen_Music(int button)
+void HandleInfoScreen_Music(int dx, int dy, int button)
{
static struct MusicFileInfo *list = NULL;
int font_title = MENU_INFO_FONT_TITLE;
return;
}
- else if (button == MB_MENU_CHOICE || button == MB_MENU_INITIALIZE)
+ else if (button == MB_MENU_CHOICE || button == MB_MENU_INITIALIZE || dx)
{
if (button != MB_MENU_INITIALIZE)
{
PlaySound(SND_MENU_ITEM_SELECTING);
if (list != NULL)
- list = list->next;
+ list = (dx < 0 ? list->prev : list->next);
}
if (list == NULL)
FadeOut(REDRAW_FIELD);
- HandleInfoScreen_Credits(MB_MENU_INITIALIZE);
+ HandleInfoScreen_Credits(0, 0, MB_MENU_INITIALIZE);
FadeIn(REDRAW_FIELD);
}
-void HandleInfoScreen_Credits(int button)
+void HandleInfoScreen_Credits(int dx, int dy, int button)
{
static int screen_nr = 0;
int num_screens = 9;
{
screen_nr = 0;
- // DrawInfoScreen_CreditsScreen(screen_nr);
+ DrawInfoScreen_CreditsScreen(screen_nr);
}
-
- if (button == MB_MENU_LEAVE)
+ else if (button == MB_MENU_LEAVE)
{
PlaySound(SND_MENU_ITEM_SELECTING);
return;
}
- else if (button == MB_MENU_CHOICE || button == MB_MENU_INITIALIZE)
+ else if (button == MB_MENU_CHOICE || dx)
{
- if (button != MB_MENU_INITIALIZE)
- {
- PlaySound(SND_MENU_ITEM_SELECTING);
+ PlaySound(SND_MENU_ITEM_SELECTING);
- screen_nr++;
- }
+ screen_nr += (dx < 0 ? -1 : +1);
- if (screen_nr >= num_screens)
+ if (screen_nr < 0 || screen_nr >= num_screens)
{
FadeMenuSoundsAndMusic();
return;
}
- if (screen_nr > 0)
- FadeSetNextScreen();
+ FadeSetNextScreen();
- if (button != MB_MENU_INITIALIZE)
- FadeOut(REDRAW_FIELD);
+ FadeOut(REDRAW_FIELD);
DrawInfoScreen_CreditsScreen(screen_nr);
- if (button != MB_MENU_INITIALIZE)
- FadeIn(REDRAW_FIELD);
+ FadeIn(REDRAW_FIELD);
}
else
{
else if (info_mode == INFO_MODE_ELEMENTS)
HandleInfoScreen_Elements(button);
else if (info_mode == INFO_MODE_MUSIC)
- HandleInfoScreen_Music(button);
+ HandleInfoScreen_Music(dx, dy, button);
else if (info_mode == INFO_MODE_CREDITS)
- HandleInfoScreen_Credits(button);
+ HandleInfoScreen_Credits(dx, dy, button);
else if (info_mode == INFO_MODE_PROGRAM)
HandleInfoScreen_Program(button);
else if (info_mode == INFO_MODE_VERSION)
{
int num_entries = numTreeInfoInGroup(ti);
boolean scrollbar_needed = (num_entries > NUM_MENU_ENTRIES_ON_SCREEN);
- boolean scrollbar_always = (game_status == GAME_MODE_SCORES);
- boolean scrollbar_keep_space = (scrollbar_needed || scrollbar_always);
int scrollbar_xpos = SC_SCROLLBAR_XPOS + menu.scrollbar_xoffset;
- int screen_width = (scrollbar_keep_space ? scrollbar_xpos : SXSIZE);
+ int screen_width = (scrollbar_needed ? scrollbar_xpos : SXSIZE);
int first_entry = ti->cl_first;
int entry_pos = first_entry + y;
TreeInfo *node_first = getTreeInfoFirstGroupEntry(ti);
int border = amSX - SX + getFontDrawOffsetX(font_nr1);
int dx1 = 0;
int dx3 = text_size_1;
- int dx4 = screen_width - startdx - 2 * border - text_size_4;
+ int dx4 = SXSIZE - 2 * startdx - 2 * border - text_size_4;
int num_dots = (dx4 - dx3) / font_size_3;
int startx1 = startx + dx1;
int startx3 = startx + dx3;