X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=c919220ef8f8b680792b44d25b9a8564755b9acf;hb=c4cfe09e6e5db671cf17fa7e7689d3773255eca3;hp=3761775a80e9f430a4e6396378c32c1ea31aa9ed;hpb=e09651f7389e369d07f23cbdd009937a33ba37c5;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index 3761775a..c919220e 100644 --- a/src/screens.c +++ b/src/screens.c @@ -179,7 +179,9 @@ #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 (menu.tile_size_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, \ MENU_SCREEN_INFO_TILE_SIZE)) @@ -1790,6 +1792,9 @@ void DrawMainMenu(void) // store valid level series information leveldir_last_valid = leveldir_current; + // store first level of this level set for "level_nr" style animations + SetAnimationFirstLevel(leveldir_current->first_level); + // needed if last screen (level choice) changed graphics, sounds or music ReloadCustomArtwork(0); @@ -3593,6 +3598,51 @@ void HandleInfoScreen_Music(int dx, int dy, int button) ystart += ystep_head; } + if (!strEqual(list->played, UNKNOWN_NAME)) + { + if (!strEqual(list->played_header, UNKNOWN_NAME)) + DrawTextSCentered(ystart, font_head, list->played_header); + else + DrawTextSCentered(ystart, font_head, "played in"); + + ystart += ystep_head; + + DrawTextFCentered(ystart, font_text, "%s", list->played); + ystart += ystep_head; + } + else if (!list->is_sound) + { + int music_level_nr = -1; + int i; + + // 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) + { + if (!strEqual(list->played_header, UNKNOWN_NAME)) + DrawTextSCentered(ystart, font_head, list->played_header); + else + 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) @@ -5937,7 +5987,7 @@ static void execSetupGame_setScrollDelays(void) // 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) @@ -6497,7 +6547,7 @@ static void execSetupSound(void) // 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) @@ -6565,7 +6615,7 @@ static void execSetupSound(void) // 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) @@ -6633,7 +6683,7 @@ static void execSetupSound(void) // 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) @@ -10376,47 +10426,47 @@ static void HandleScreenGadgets(struct GadgetInfo *gi) 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: