diff options
Diffstat (limited to 'src/base_media_base.h')
-rw-r--r-- | src/base_media_base.h | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/base_media_base.h b/src/base_media_base.h index c6c0fd13e..2cdedd672 100644 --- a/src/base_media_base.h +++ b/src/base_media_base.h @@ -40,17 +40,17 @@ struct MD5File { * Information about a single base set. * @tparam T the real class we're going to be * @tparam Tnum_files the number of files in the set - * @tparam Tsubdir the subdirectory where to find the files + * @tparam Tsearch_in_tars whether to search in the tars or not */ -template <class T, size_t Tnum_files, Subdirectory Tsubdir> +template <class T, size_t Tnum_files, bool Tsearch_in_tars> struct BaseSet { typedef SmallMap<const char *, const char *> TranslatedStrings; /** Number of files in this set */ static const size_t NUM_FILES = Tnum_files; - /** The sub directory to search for the files */ - static const Subdirectory SUBDIR = Tsubdir; + /** Whether to search in the tars or not. */ + static const bool SEARCH_IN_TARS = Tsearch_in_tars; /** Internal names of the files in this set. */ static const char * const *file_names; @@ -164,9 +164,8 @@ public: static uint FindSets() { BaseMedia<Tbase_set> fs; - /* GM_DIR == music set. Music sets don't support tars, - * so there is no need to search for tars in that case. */ - return fs.Scan(GetExtension(), Tbase_set::SUBDIR, Tbase_set::SUBDIR != GM_DIR); + /* Searching in tars is only done in the sound and graphics base sets. */ + return fs.Scan(GetExtension(), Tbase_set::SEARCH_IN_TARS ? BASESET_DIR : GM_DIR, Tbase_set::SEARCH_IN_TARS); } static bool SetSet(const char *name); @@ -204,7 +203,7 @@ enum BlitterType { }; /** All data of a graphics set. */ -struct GraphicsSet : BaseSet<GraphicsSet, MAX_GFT, BASESET_DIR> { +struct GraphicsSet : BaseSet<GraphicsSet, MAX_GFT, true> { PaletteType palette; ///< Palette of this graphics set BlitterType blitter; ///< Blitter of this graphics set @@ -217,7 +216,7 @@ public: }; /** All data of a sounds set. */ -struct SoundsSet : BaseSet<SoundsSet, 1, BASESET_DIR> { +struct SoundsSet : BaseSet<SoundsSet, 1, true> { }; /** All data/functions related with replacing the base sounds */ @@ -236,7 +235,7 @@ static const uint NUM_SONGS_AVAILABLE = 1 + NUM_SONG_CLASSES * NUM_SONGS_CLASS; static const uint NUM_SONGS_PLAYLIST = 32; /** All data of a music set. */ -struct MusicSet : BaseSet<MusicSet, NUM_SONGS_AVAILABLE, GM_DIR> { +struct MusicSet : BaseSet<MusicSet, NUM_SONGS_AVAILABLE, false> { /** The name of the different songs. */ char song_name[NUM_SONGS_AVAILABLE][32]; byte track_nr[NUM_SONGS_AVAILABLE]; |