Merge branch 'master' into jgrpp
# Conflicts: # .github/workflows/release-windows.yml # src/autoreplace_gui.cpp # src/cargotype.cpp # src/company_base.h # src/company_cmd.cpp # src/company_gui.cpp # src/currency.h # src/date_gui.cpp # src/dropdown.cpp # src/dropdown_func.h # src/dropdown_type.h # src/game/game_gui.cpp # src/genworld.cpp # src/genworld_gui.cpp # src/ground_vehicle.hpp # src/group_gui.cpp # src/house.h # src/industry_gui.cpp # src/network/network_client.cpp # src/network/network_server.cpp # src/network/network_type.h # src/newgrf_class_func.h # src/newgrf_house.cpp # src/newgrf_roadstop.h # src/openttd.cpp # src/order_gui.cpp # src/saveload/saveload.cpp # src/saveload/saveload.h # src/screenshot_gui.cpp # src/settings_gui.cpp # src/settings_type.h # src/slider.cpp # src/smallmap_gui.cpp # src/station_cmd.cpp # src/stdafx.h # src/survey.cpp # src/tile_map.h # src/town_cmd.cpp # src/town_gui.cpp # src/vehicle.cpp # src/vehicle_gui.cpp # src/vehicle_gui_base.h
This commit is contained in:
@@ -246,6 +246,34 @@ void SndCopyToPool()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Change the configured sound set and reset sounds.
|
||||
* @param index Index of sound set to switch to.
|
||||
*/
|
||||
void ChangeSoundSet(int index)
|
||||
{
|
||||
if (BaseSounds::GetIndexOfUsedSet() == index) return;
|
||||
|
||||
auto set = BaseSounds::GetSet(index);
|
||||
BaseSounds::ini_set = set->name;
|
||||
BaseSounds::SetSet(set);
|
||||
|
||||
MxCloseAllChannels();
|
||||
InitializeSound();
|
||||
|
||||
/* Replace baseset sounds in the pool with the updated original sounds. This is safe to do as
|
||||
* any sound still playing owns its sample data. */
|
||||
for (uint i = 0; i < ORIGINAL_SAMPLE_COUNT; i++) {
|
||||
SoundEntry *sound = GetSound(i);
|
||||
/* GRF Container 0 means the sound comes from the baseset, and isn't overridden by NewGRF. */
|
||||
if (sound == nullptr || sound->grf_container_ver != 0) continue;
|
||||
|
||||
*sound = _original_sounds[_sound_idx[i]];
|
||||
sound->volume = _sound_base_vol[i];
|
||||
sound->priority = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Decide 'where' (between left and right speaker) to play the sound effect.
|
||||
* Note: Callers must determine if sound effects are enabled. This plays a sound regardless of the setting.
|
||||
|
Reference in New Issue
Block a user