From 0e032c9ca49717499503c851afa703b20508de10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Thu, 8 Feb 2018 08:47:35 +0100 Subject: [PATCH] Avoid shifting negative values in Audio.cpp (#7147) Rather than shifting negative values, which invokes undefined behaviour, use a multiplication. --- src/openrct2/audio/Audio.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openrct2/audio/Audio.cpp b/src/openrct2/audio/Audio.cpp index bf5487d9d8..a3b42be7b5 100644 --- a/src/openrct2/audio/Audio.cpp +++ b/src/openrct2/audio/Audio.cpp @@ -234,7 +234,7 @@ AudioParams audio_get_params_from_location(sint32 soundId, const LocationXYZ16 * sint16 vy = pos2.y - viewport->view_y; sint16 vx = pos2.x - viewport->view_x; params.pan = viewport->x + (vx >> viewport->zoom); - params.volume = SoundVolumeAdjust[soundId] + ((-1024 * viewport->zoom - 1) << volumeDown) + 1; + params.volume = SoundVolumeAdjust[soundId] + ((-1024 * viewport->zoom - 1) * (1 << volumeDown)) + 1; if (vy < 0 || vy >= viewport->view_height || vx < 0 || vx >= viewport->view_width || params.volume < -10000) {