/** * Change the configured music set and reset playback * @param index Index of music set to switch to */ void ChangeMusicSet(int index) { if (BaseMusic::GetIndexOfUsedSet() == index) return; /* Resume playback after switching? * Always if music is already playing, and also if the user is switching * away from an empty music set. * If the user switches away from an empty set, assume it's because they * want to hear music now. */ bool shouldplay = _song_is_active || (BaseMusic::GetUsedSet()->num_available == 0); StopMusic(); const char *name = BaseMusic::GetSet(index)->name; BaseMusic::SetSet(name); free(BaseMusic::ini_set); BaseMusic::ini_set = stredup(name); InitializeMusic(); ResetPlaylist(); _settings_client.music.playing = shouldplay; InvalidateWindowData(WC_MUSIC_TRACK_SELECTION, 0); InvalidateWindowData(WC_MUSIC_WINDOW, 0); InvalidateWindowData(WC_GAME_OPTIONS, WN_GAME_OPTIONS_GAME_OPTIONS, 0, true); }
//---------------------------------------------------------------------------------------------------- EEMusic::EEMusic() : m_totalBytes(0), m_totalSamples(0), m_totalTime(0.f), m_beginSamples(0) { InitializeMusic(); }
//---------------------------------------------------------------------------------------------------- EEMusic::EEMusic(const std::string& _fileName) : m_totalBytes(0), m_totalSamples(0), m_totalTime(0.f), m_beginSamples(0) { InitializeMusic(); LoadMusic(_fileName.c_str()); }
//---------------------------------------------------------------------------------------------------- EEMusic::EEMusic(const char* _fileName) : m_totalBytes(0), m_totalSamples(0), m_totalTime(0.f), m_beginSamples(0) { InitializeMusic(); LoadMusic(_fileName); }
//---------------------------------------------------------------------------------------------------- EEMusic::EEMusic(const WAVEFORMATEX& _format) : m_format(_format), m_totalBytes(0), m_totalSamples(0), m_totalTime(0.f), m_beginSamples(0) { InitializeMusic(); s_XAudio2->CreateSourceVoice(&m_sourceVoice, &m_format); }
void InitializeGame(uint size_x, uint size_y, bool reset_date, bool reset_settings) { /* Make sure there isn't any window that can influence anything * related to the new game we're about to start/load. */ UnInitWindowSystem(); AllocateMap(size_x, size_y); _pause_mode = PM_UNPAUSED; _fast_forward = 0; _tick_counter = 0; _cur_tileloop_tile = 0; _thd.redsq = INVALID_TILE; if (reset_settings) MakeNewgameSettingsLive(); if (reset_date) { SetDate(ConvertYMDToDate(_settings_game.game_creation.starting_year, 0, 1), 0); InitializeOldNames(); } PoolBase::Clean(PT_NORMAL); ResetPersistentNewGRFData(); InitializeSound(); InitializeMusic(); InitializeVehicles(); InitNewsItemStructs(); InitializeLandscape(); InitializeRailGui(); InitializeRoadGui(); InitializeAirportGui(); InitializeDockGui(); InitializeObjectGui(); InitializeAIGui(); InitializeTrees(); InitializeIndustries(); InitializeObjects(); InitializeBuildingCounts(); InitializeNPF(); InitializeCompanies(); AI::Initialize(); Game::Initialize(); InitializeCheats(); InitTextEffects(); #ifdef ENABLE_NETWORK NetworkInitChatMessage(); #endif /* ENABLE_NETWORK */ InitializeAnimatedTiles(); InitializeEconomy(); ResetObjectToPlace(); GamelogReset(); GamelogStartAction(GLAT_START); GamelogRevision(); GamelogMode(); GamelogGRFAddList(_grfconfig); GamelogStopAction(); }