summaryrefslogtreecommitdiff
path: root/src/base_media_base.h
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2011-11-14 19:24:22 +0000
committerrubidium <rubidium@openttd.org>2011-11-14 19:24:22 +0000
commit15f671279df2696aad13aca3d431ee4a988694f3 (patch)
treea5e7c7e76c564885310f30ef3372819d30e0b2a7 /src/base_media_base.h
parenta06443774fb8cc21631a3e76bca4d1c03913303b (diff)
downloadopenttd-15f671279df2696aad13aca3d431ee4a988694f3.tar.xz
(svn r23214) -Codechange: for base media sets pass the "search in tars" parameter to determine what to do
Diffstat (limited to 'src/base_media_base.h')
-rw-r--r--src/base_media_base.h19
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];