Skip sound effects handling earlier if effects volume is 0
This commit is contained in:
@@ -185,7 +185,7 @@ SoundID GetNewGRFSoundID(const GRFFile *file, SoundID sound_id)
|
||||
*/
|
||||
bool PlayVehicleSound(const Vehicle *v, VehicleSoundEvent event)
|
||||
{
|
||||
if (!_settings_client.sound.vehicle) return true;
|
||||
if (!_settings_client.sound.vehicle || _settings_client.music.effect_vol == 0) return true;
|
||||
|
||||
const GRFFile *file = v->GetGRF();
|
||||
uint16 callback;
|
||||
|
@@ -256,8 +256,6 @@ void SndCopyToPool()
|
||||
*/
|
||||
static void SndPlayScreenCoordFx(SoundID sound, int left, int right, int top, int bottom)
|
||||
{
|
||||
if (_settings_client.music.effect_vol == 0) return;
|
||||
|
||||
for (const Window *w : Window::IterateFromBack()) {
|
||||
const Viewport *vp = w->viewport;
|
||||
|
||||
@@ -280,6 +278,8 @@ static void SndPlayScreenCoordFx(SoundID sound, int left, int right, int top, in
|
||||
|
||||
void SndPlayTileFx(SoundID sound, TileIndex tile)
|
||||
{
|
||||
if (_settings_client.music.effect_vol == 0) return;
|
||||
|
||||
/* emits sound from center of the tile */
|
||||
int x = std::min(MapMaxX() - 1, TileX(tile)) * TILE_SIZE + TILE_SIZE / 2;
|
||||
int y = std::min(MapMaxY() - 1, TileY(tile)) * TILE_SIZE - TILE_SIZE / 2;
|
||||
@@ -292,6 +292,8 @@ void SndPlayTileFx(SoundID sound, TileIndex tile)
|
||||
|
||||
void SndPlayVehicleFx(SoundID sound, const Vehicle *v)
|
||||
{
|
||||
if (_settings_client.music.effect_vol == 0) return;
|
||||
|
||||
SndPlayScreenCoordFx(sound,
|
||||
v->coord.left, v->coord.right,
|
||||
v->coord.top, v->coord.bottom
|
||||
|
@@ -1442,7 +1442,7 @@ void VehicleTickMotion(Vehicle *v, Vehicle *front)
|
||||
if (v->vehstatus & VS_HIDDEN) return;
|
||||
|
||||
v->motion_counter += front->cur_speed;
|
||||
if (_settings_client.sound.vehicle) {
|
||||
if (_settings_client.sound.vehicle && _settings_client.music.effect_vol != 0) {
|
||||
/* Play a running sound if the motion counter passes 256 (Do we not skip sounds?) */
|
||||
if (GB(v->motion_counter, 0, 8) < front->cur_speed) PlayVehicleSound(v, VSE_RUNNING);
|
||||
|
||||
|
Reference in New Issue
Block a user