summaryrefslogtreecommitdiff
path: root/src/openttd.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2009-12-22 21:40:29 +0000
committerrubidium <rubidium@openttd.org>2009-12-22 21:40:29 +0000
commita8d6d18b227facafcdf4b769beec3d09ee788a17 (patch)
tree59b37ea9c3e4f725854376a70dc7a428918c5141 /src/openttd.cpp
parentb30e56850cc77ef3de16e2bc721b7e704d1a12fb (diff)
downloadopenttd-a8d6d18b227facafcdf4b769beec3d09ee788a17.tar.xz
(svn r18608) -Change: add the concept of music sets
Diffstat (limited to 'src/openttd.cpp')
-rw-r--r--src/openttd.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/openttd.cpp b/src/openttd.cpp
index 300f14462..e790e3724 100644
--- a/src/openttd.cpp
+++ b/src/openttd.cpp
@@ -181,6 +181,7 @@ static void ShowHelp()
" specified in graphics set file (see below)\n"
" -I graphics_set = Force the graphics set (see below)\n"
" -S sounds_set = Force the sounds set (see below)\n"
+ " -M music_set = Force the music set (see below)\n"
" -c config_file = Use 'config_file' instead of 'openttd.cfg'\n"
" -x = Do not automatically save to config file on exit\n"
"\n",
@@ -193,6 +194,9 @@ static void ShowHelp()
/* List the sounds packs */
p = BaseSounds::GetSetsList(p, lastof(buf));
+ /* List the music packs */
+ p = BaseMusic::GetSetsList(p, lastof(buf));
+
/* List the drivers */
p = VideoDriverFactoryBase::GetDriversInfo(p, lastof(buf));
@@ -409,6 +413,7 @@ int ttd_main(int argc, char *argv[])
char *blitter = NULL;
char *graphics_set = NULL;
char *sounds_set = NULL;
+ char *music_set = NULL;
Dimension resolution = {0, 0};
Year startyear = INVALID_YEAR;
uint generation_seed = GENERATE_NEW_SEED;
@@ -446,6 +451,7 @@ int ttd_main(int argc, char *argv[])
switch (i) {
case 'I': free(graphics_set); graphics_set = strdup(mgo.opt); break;
case 'S': free(sounds_set); sounds_set = strdup(mgo.opt); break;
+ case 'M': free(music_set); music_set = strdup(mgo.opt); break;
case 'm': free(musicdriver); musicdriver = strdup(mgo.opt); break;
case 's': free(sounddriver); sounddriver = strdup(mgo.opt); break;
case 'v': free(videodriver); videodriver = strdup(mgo.opt); break;
@@ -536,6 +542,7 @@ int ttd_main(int argc, char *argv[])
DeterminePaths(argv[0]);
BaseGraphics::FindSets();
BaseSounds::FindSets();
+ BaseMusic::FindSets();
ShowHelp();
return 0;
}
@@ -549,6 +556,7 @@ int ttd_main(int argc, char *argv[])
DeterminePaths(argv[0]);
BaseGraphics::FindSets();
BaseSounds::FindSets();
+ BaseMusic::FindSets();
#if defined(UNIX) && !defined(__MORPHOS__)
/* We must fork here, or we'll end up without some resources we need (like sockets) */
@@ -620,6 +628,14 @@ int ttd_main(int argc, char *argv[])
}
free(graphics_set);
+ if (music_set == NULL && BaseMusic::ini_set != NULL) music_set = strdup(BaseMusic::ini_set);
+ if (!BaseMusic::SetSet(music_set)) {
+ StrEmpty(music_set) ?
+ usererror("Failed to find a music set. Please acquire a music set for OpenTTD. See section 4.1 of readme.txt.") :
+ usererror("Failed to select requested music set '%s'", music_set);
+ }
+ free(music_set);
+
/* Initialize game palette */
GfxInitPalettes();
@@ -748,6 +764,7 @@ int ttd_main(int argc, char *argv[])
free(const_cast<char *>(BaseGraphics::ini_set));
free(const_cast<char *>(BaseSounds::ini_set));
+ free(const_cast<char *>(BaseMusic::ini_set));
free(_ini_musicdriver);
free(_ini_sounddriver);
free(_ini_videodriver);