#define MENU_INFO_FONT_FOOT FONT_TEXT_4
#define MENU_INFO_SPACE_HEAD (menu.headline2_spacing_info[info_mode])
#define MENU_SCREEN_INFO_SPACE_LEFT (menu.left_spacing_info[info_mode])
+#define MENU_SCREEN_INFO_SPACE_MIDDLE (menu.middle_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_SPACE_LINE (menu.line_spacing_info[info_mode])
#define MENU_SCREEN_INFO_SPACE_EXTRA (menu.extra_spacing_info[info_mode])
+#define MENU_SCREEN_INFO_TILE_SIZE_RAW (menu.tile_size_info[info_mode])
+#define MENU_SCREEN_INFO_TILE_SIZE (MENU_SCREEN_INFO_TILE_SIZE_RAW > 0 ? \
+ MENU_SCREEN_INFO_TILE_SIZE_RAW : TILEY)
#define MENU_SCREEN_INFO_ENTRY_SIZE_RAW (menu.list_entry_size_info[info_mode])
#define MENU_SCREEN_INFO_ENTRY_SIZE (MAX(MENU_SCREEN_INFO_ENTRY_SIZE_RAW, \
- TILEY))
+ MENU_SCREEN_INFO_TILE_SIZE))
#define MENU_SCREEN_INFO_YSTART MENU_SCREEN_INFO_SPACE_TOP
#define MENU_SCREEN_INFO_YSTEP (MENU_SCREEN_INFO_ENTRY_SIZE + \
MENU_SCREEN_INFO_SPACE_EXTRA)
int ybottom = mSY - SY + MENU_SCREEN_INFO_YBOTTOM;
int ystep = MENU_SCREEN_INFO_YSTEP;
int row_height = MENU_SCREEN_INFO_ENTRY_SIZE;
- int yoffset = (row_height - TILEY) / 2;
+ int tilesize = MENU_SCREEN_INFO_TILE_SIZE;
+ int yoffset = (row_height - tilesize) / 2;
int element, action, direction;
int graphic;
int delay;
j++;
- ClearRectangleOnBackground(drawto, xstart, ystart_pos, TILEX, TILEY);
- DrawFixedGraphicAnimationExt(drawto, xstart, ystart_pos,
- graphic, sync_frame, USE_MASKING);
+ ClearRectangleOnBackground(drawto, xstart, ystart_pos, tilesize, tilesize);
+ DrawSizedGraphicAnimationExt(drawto, xstart, ystart_pos,
+ graphic, sync_frame, tilesize, USE_MASKING);
if (init)
DrawInfoScreen_HelpText(element, action, direction, ypos);
int font_width = getFontWidth(font_nr);
int font_height = getFontHeight(font_nr);
int line_spacing = MENU_SCREEN_INFO_SPACE_LINE;
+ int left_spacing = MENU_SCREEN_INFO_SPACE_LEFT;
+ int middle_spacing = MENU_SCREEN_INFO_SPACE_MIDDLE;
+ int right_spacing = MENU_SCREEN_INFO_SPACE_RIGHT;
int line_height = font_height + line_spacing;
int row_height = MENU_SCREEN_INFO_ENTRY_SIZE;
- int xstart = mSX + MENU_SCREEN_INFO_SPACE_LEFT + TILEX + MINI_TILEX;
+ int tilesize = MENU_SCREEN_INFO_TILE_SIZE;
+ int xstart = mSX + left_spacing + tilesize + middle_spacing;
int ystart = mSY + MENU_SCREEN_INFO_YSTART + getHeadlineSpacing();
int ystep = MENU_SCREEN_INFO_YSTEP;
int pad_left = xstart - SX;
- int pad_right = MENU_SCREEN_INFO_SPACE_RIGHT;
+ int pad_right = right_spacing;
int max_chars_per_line = (SXSIZE - pad_left - pad_right) / font_width;
int max_lines_per_text = (row_height + line_spacing) / line_height;
char *text = NULL;
ystart += ystep_head;
}
+ int music_level_nr = -1;
+ int i;
+
+ if (!list->is_sound)
+ {
+ // check if this music is configured for a certain level
+ for (i = leveldir_current->first_level;
+ i <= leveldir_current->last_level; i++)
+ {
+ // (special case: "list->music" may be negative for unconfigured music)
+ if (levelset.music[i] != MUS_UNDEFINED &&
+ levelset.music[i] == list->music)
+ {
+ music_level_nr = i;
+
+ break;
+ }
+ }
+
+ if (music_level_nr != -1)
+ {
+ DrawTextSCentered(ystart, font_head, "played in");
+ ystart += ystep_head;
+
+ DrawTextFCentered(ystart, font_text, "level %03d", music_level_nr);
+ ystart += ystep_head;
+ }
+ }
+
DrawTextSCentered(ybottom, font_foot, TEXT_NEXT_PAGE);
if (button != MB_MENU_INITIALIZE)
// set current scroll delay value to configured scroll delay value
scroll_delay_current =
- getTreeInfoFromIdentifier(scroll_delays,i_to_a(setup.scroll_delay_value));
+ getTreeInfoFromIdentifier(scroll_delays, i_to_a(setup.scroll_delay_value));
// if that fails, set current scroll delay to reliable default value
if (scroll_delay_current == NULL)
// set current volume value to configured volume value
volume_simple_current =
- getTreeInfoFromIdentifier(volumes_simple,i_to_a(setup.volume_simple));
+ getTreeInfoFromIdentifier(volumes_simple, i_to_a(setup.volume_simple));
// if that fails, set current volume to reliable default value
if (volume_simple_current == NULL)
// set current volume value to configured volume value
volume_loops_current =
- getTreeInfoFromIdentifier(volumes_loops,i_to_a(setup.volume_loops));
+ getTreeInfoFromIdentifier(volumes_loops, i_to_a(setup.volume_loops));
// if that fails, set current volume to reliable default value
if (volume_loops_current == NULL)
// set current volume value to configured volume value
volume_music_current =
- getTreeInfoFromIdentifier(volumes_music,i_to_a(setup.volume_music));
+ getTreeInfoFromIdentifier(volumes_music, i_to_a(setup.volume_music));
// if that fails, set current volume to reliable default value
if (volume_music_current == NULL)
case SCREEN_CTRL_ID_SCROLL_UP:
if (game_status == GAME_MODE_NAMES)
- HandleChoosePlayerName(0,0, 0, -1 * SCROLL_LINE, MB_MENU_MARK);
+ HandleChoosePlayerName(0, 0, 0, -1 * SCROLL_LINE, MB_MENU_MARK);
else if (game_status == GAME_MODE_LEVELS)
- HandleChooseLevelSet(0,0, 0, -1 * SCROLL_LINE, MB_MENU_MARK);
+ HandleChooseLevelSet(0, 0, 0, -1 * SCROLL_LINE, MB_MENU_MARK);
else if (game_status == GAME_MODE_LEVELNR)
- HandleChooseLevelNr(0,0, 0, -1 * SCROLL_LINE, MB_MENU_MARK);
+ HandleChooseLevelNr(0, 0, 0, -1 * SCROLL_LINE, MB_MENU_MARK);
else if (game_status == GAME_MODE_SETUP)
- HandleSetupScreen(0,0, 0, -1 * SCROLL_LINE, MB_MENU_MARK);
+ HandleSetupScreen(0, 0, 0, -1 * SCROLL_LINE, MB_MENU_MARK);
else if (game_status == GAME_MODE_INFO)
- HandleInfoScreen(0,0, 0, -1 * SCROLL_LINE, MB_MENU_MARK);
+ HandleInfoScreen(0, 0, 0, -1 * SCROLL_LINE, MB_MENU_MARK);
else if (game_status == GAME_MODE_SCORES)
- HandleHallOfFame(0,0, 0, -1 * SCROLL_LINE, MB_MENU_MARK);
+ HandleHallOfFame(0, 0, 0, -1 * SCROLL_LINE, MB_MENU_MARK);
break;
case SCREEN_CTRL_ID_SCROLL_DOWN:
if (game_status == GAME_MODE_NAMES)
- HandleChoosePlayerName(0,0, 0, +1 * SCROLL_LINE, MB_MENU_MARK);
+ HandleChoosePlayerName(0, 0, 0, +1 * SCROLL_LINE, MB_MENU_MARK);
else if (game_status == GAME_MODE_LEVELS)
- HandleChooseLevelSet(0,0, 0, +1 * SCROLL_LINE, MB_MENU_MARK);
+ HandleChooseLevelSet(0, 0, 0, +1 * SCROLL_LINE, MB_MENU_MARK);
else if (game_status == GAME_MODE_LEVELNR)
- HandleChooseLevelNr(0,0, 0, +1 * SCROLL_LINE, MB_MENU_MARK);
+ HandleChooseLevelNr(0, 0, 0, +1 * SCROLL_LINE, MB_MENU_MARK);
else if (game_status == GAME_MODE_SETUP)
- HandleSetupScreen(0,0, 0, +1 * SCROLL_LINE, MB_MENU_MARK);
+ HandleSetupScreen(0, 0, 0, +1 * SCROLL_LINE, MB_MENU_MARK);
else if (game_status == GAME_MODE_INFO)
- HandleInfoScreen(0,0, 0, +1 * SCROLL_LINE, MB_MENU_MARK);
+ HandleInfoScreen(0, 0, 0, +1 * SCROLL_LINE, MB_MENU_MARK);
else if (game_status == GAME_MODE_SCORES)
- HandleHallOfFame(0,0, 0, +1 * SCROLL_LINE, MB_MENU_MARK);
+ HandleHallOfFame(0, 0, 0, +1 * SCROLL_LINE, MB_MENU_MARK);
break;
case SCREEN_CTRL_ID_SCROLL_VERTICAL:
if (game_status == GAME_MODE_NAMES)
- HandleChoosePlayerName(0,0,999,gi->event.item_position,MB_MENU_INITIALIZE);
+ HandleChoosePlayerName(0, 0, 999, gi->event.item_position, MB_MENU_INITIALIZE);
else if (game_status == GAME_MODE_LEVELS)
- HandleChooseLevelSet(0,0,999,gi->event.item_position,MB_MENU_INITIALIZE);
+ HandleChooseLevelSet(0, 0, 999, gi->event.item_position, MB_MENU_INITIALIZE);
else if (game_status == GAME_MODE_LEVELNR)
- HandleChooseLevelNr(0,0,999,gi->event.item_position,MB_MENU_INITIALIZE);
+ HandleChooseLevelNr(0, 0, 999, gi->event.item_position, MB_MENU_INITIALIZE);
else if (game_status == GAME_MODE_SETUP)
- HandleSetupScreen(0,0, 999,gi->event.item_position,MB_MENU_INITIALIZE);
+ HandleSetupScreen(0, 0, 999, gi->event.item_position, MB_MENU_INITIALIZE);
else if (game_status == GAME_MODE_INFO)
- HandleInfoScreen(0,0, 999,gi->event.item_position,MB_MENU_INITIALIZE);
+ HandleInfoScreen(0, 0, 999, gi->event.item_position, MB_MENU_INITIALIZE);
else if (game_status == GAME_MODE_SCORES)
- HandleHallOfFame(0,0, 999,gi->event.item_position,MB_MENU_INITIALIZE);
+ HandleHallOfFame(0, 0, 999, gi->event.item_position, MB_MENU_INITIALIZE);
break;
case SCREEN_CTRL_ID_NETWORK_SERVER: