diff --git a/src/openttd.cpp b/src/openttd.cpp index 7f699b234a..c9dbb6d82d 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -662,9 +662,6 @@ int ttd_main(int argc, char *argv[]) DeterminePaths(argv[0]); TarScanner::DoScan(TarScanner::BASESET); - BaseGraphics::FindSets(); - BaseSounds::FindSets(); - BaseMusic::FindSets(); #if defined(ENABLE_NETWORK) if (dedicated) DEBUG(net, 0, "Starting dedicated version %s", _openttd_revision); @@ -698,40 +695,19 @@ int ttd_main(int argc, char *argv[]) /* enumerate language files */ InitializeLanguagePacks(); - /* initialize screenshot formats */ - InitializeScreenshotFormats(); - /* Initialize FreeType */ InitFreeType(); /* This must be done early, since functions use the SetWindowDirty* calls */ InitWindowSystem(); - /* Look for the sounds before the graphics. Otherwise none would be set and - * the first initialisation of the video happens on the wrong data. Now it - * can do the first initialisation right. */ - if (sounds_set == NULL && BaseSounds::ini_set != NULL) sounds_set = strdup(BaseSounds::ini_set); - if (!BaseSounds::SetSet(sounds_set)) { - StrEmpty(sounds_set) ? - usererror("Failed to find a sounds set. Please acquire a sounds set for OpenTTD. See section 4.1 of readme.txt.") : - usererror("Failed to select requested sounds set '%s'", sounds_set); - } - free(sounds_set); - + BaseGraphics::FindSets(); if (graphics_set == NULL && BaseGraphics::ini_set != NULL) graphics_set = strdup(BaseGraphics::ini_set); if (!BaseGraphics::SetSet(graphics_set) && !StrEmpty(graphics_set)) { usererror("Failed to select requested graphics set '%s'", graphics_set); } 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,17 +724,6 @@ int ttd_main(int argc, char *argv[]) } free(blitter); - DEBUG(driver, 1, "Loading drivers..."); - - if (sounddriver == NULL && _ini_sounddriver != NULL) sounddriver = strdup(_ini_sounddriver); - _sound_driver = (SoundDriver*)SoundDriverFactoryBase::SelectDriver(sounddriver, Driver::DT_SOUND); - if (_sound_driver == NULL) { - StrEmpty(sounddriver) ? - usererror("Failed to autoprobe sound driver") : - usererror("Failed to select requested sound driver '%s'", sounddriver); - } - free(sounddriver); - if (videodriver == NULL && _ini_videodriver != NULL) videodriver = strdup(_ini_videodriver); _video_driver = (VideoDriver*)VideoDriverFactoryBase::SelectDriver(videodriver, Driver::DT_VIDEO); if (_video_driver == NULL) { @@ -768,26 +733,11 @@ int ttd_main(int argc, char *argv[]) } free(videodriver); - if (musicdriver == NULL && _ini_musicdriver != NULL) musicdriver = strdup(_ini_musicdriver); - _music_driver = (MusicDriver*)MusicDriverFactoryBase::SelectDriver(musicdriver, Driver::DT_MUSIC); - if (_music_driver == NULL) { - StrEmpty(musicdriver) ? - usererror("Failed to autoprobe music driver") : - usererror("Failed to select requested music driver '%s'", musicdriver); - } - free(musicdriver); - /* Initialize the zoom level of the screen to normal */ _screen.zoom = ZOOM_LVL_NORMAL; NetworkStartUp(); // initialize network-core - if (!HandleBootstrap()) goto exit; - - /* restore saved music volume */ - _music_driver->SetVolume(_settings_client.music.music_vol); - _video_driver->ClaimMousePointer(); - #if defined(ENABLE_NETWORK) if (debuglog_conn != NULL && _network_available) { const char *not_used = NULL; @@ -803,6 +753,52 @@ int ttd_main(int argc, char *argv[]) } #endif /* ENABLE_NETWORK */ + if (!HandleBootstrap()) goto exit; + + _video_driver->ClaimMousePointer(); + + /* initialize screenshot formats */ + InitializeScreenshotFormats(); + + BaseSounds::FindSets(); + if (sounds_set == NULL && BaseSounds::ini_set != NULL) sounds_set = strdup(BaseSounds::ini_set); + if (!BaseSounds::SetSet(sounds_set)) { + StrEmpty(sounds_set) ? + usererror("Failed to find a sounds set. Please acquire a sounds set for OpenTTD. See section 4.1 of readme.txt.") : + usererror("Failed to select requested sounds set '%s'", sounds_set); + } + free(sounds_set); + + BaseMusic::FindSets(); + 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); + + if (sounddriver == NULL && _ini_sounddriver != NULL) sounddriver = strdup(_ini_sounddriver); + _sound_driver = (SoundDriver*)SoundDriverFactoryBase::SelectDriver(sounddriver, Driver::DT_SOUND); + if (_sound_driver == NULL) { + StrEmpty(sounddriver) ? + usererror("Failed to autoprobe sound driver") : + usererror("Failed to select requested sound driver '%s'", sounddriver); + } + free(sounddriver); + + if (musicdriver == NULL && _ini_musicdriver != NULL) musicdriver = strdup(_ini_musicdriver); + _music_driver = (MusicDriver*)MusicDriverFactoryBase::SelectDriver(musicdriver, Driver::DT_MUSIC); + if (_music_driver == NULL) { + StrEmpty(musicdriver) ? + usererror("Failed to autoprobe music driver") : + usererror("Failed to select requested music driver '%s'", musicdriver); + } + free(musicdriver); + + /* restore saved music volume */ + _music_driver->SetVolume(_settings_client.music.music_vol); + /* Take our initial lock on whatever we might want to do! */ _modal_progress_paint_mutex->BeginCritical(); _modal_progress_work_mutex->BeginCritical();