X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=c620a531b37bf4e30517c01366137a61e78edf8e;hb=72baf2035efe4643ddafab987670953402ef186a;hp=451edb8bd45e879c46f4ef4f7262758cdd1d8202;hpb=a3d3dca44696b194dbe3f49a97d8c92d92b42ecf;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index 451edb8b..c620a531 100644 --- a/src/files.c +++ b/src/files.c @@ -2675,13 +2675,18 @@ static void ActivateLevelTemplate(void) } } +boolean isLevelsetFilename_BD(char *filename) +{ + return (strSuffixLower(filename, ".bd") || + strSuffixLower(filename, ".bdr") || + strSuffixLower(filename, ".brc") || + strSuffixLower(filename, ".gds")); +} + static boolean checkForPackageFromBasename_BD(char *basename) { // check for native BD level file extensions - if (!strSuffixLower(basename, ".bd") && - !strSuffixLower(basename, ".bdr") && - !strSuffixLower(basename, ".brc") && - !strSuffixLower(basename, ".gds")) + if (!isLevelsetFilename_BD(basename)) return FALSE; // check for standard single-level BD files (like "001.bd") @@ -9036,6 +9041,46 @@ void DumpLevels(void) CloseAllAndExit(0); } +void DumpLevelsetFromFilename_BD(char *filename) +{ + if (leveldir_current == NULL) // no levelsets loaded yet + bd_open_all(); + + if (!LoadNativeLevel_BD(filename, 0, FALSE)) + CloseAllAndExit(0); // function has already printed warning + + PrintLine("-", 79); + Print("Levelset '%s'\n", filename); + PrintLine("-", 79); + + DumpLevelset_BD(); + + PrintLine("-", 79); + + CloseAllAndExit(0); +} + +void DumpLevelset(void) +{ + static LevelDirTree *dumplevelset_leveldir = NULL; + + dumplevelset_leveldir = getTreeInfoFromIdentifier(leveldir_first, + global.dumplevelset_leveldir); + if (dumplevelset_leveldir == NULL) + Fail("no such level identifier: '%s'", global.dumplevelset_leveldir); + + PrintLine("-", 79); + Print("Levelset '%s'\n", dumplevelset_leveldir->identifier); + PrintLine("-", 79); + + Print("Number of levels: %d\n", dumplevelset_leveldir->levels); + Print("First level number: %d\n", dumplevelset_leveldir->first_level); + + PrintLine("-", 79); + + CloseAllAndExit(0); +} + // ============================================================================ // tape file functions @@ -11661,10 +11706,10 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) si->bd_skip_hatching = FALSE; si->bd_scroll_delay = TRUE; si->bd_show_invisible_outbox = FALSE; - si->bd_smooth_movements = STATE_AUTO; + si->bd_smooth_movements = STATE_TRUE; si->bd_pushing_graphics = STATE_TRUE; si->bd_up_down_graphics = STATE_TRUE; - si->bd_skip_falling_sounds = STATE_AUTO; + si->bd_skip_falling_sounds = STATE_TRUE; si->bd_palette_c64 = GD_DEFAULT_PALETTE_C64; si->bd_palette_c64dtv = GD_DEFAULT_PALETTE_C64DTV; si->bd_palette_atari = GD_DEFAULT_PALETTE_ATARI;