diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2023-11-02 15:23:46 -0700 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2023-11-02 15:23:46 -0700 |
commit | 34a5de28f0b467ec3177da5b9516d06a69b07f58 (patch) | |
tree | 8de38ca8e7fc0137c80d8b89d4b0593bc33c012b /src/sfx.c | |
parent | 3e6bcb386cc9df28990b9cd570f6df7617e91f91 (diff) |
sfx: add volume control to sfx_play()
Preparatory commit for experimenting with varying volumes based
on distance. Impetus is an interest in making the TV clips
always play when the TV appears, but vary the volume with
distance.
Diffstat (limited to 'src/sfx.c')
-rw-r--r-- | src/sfx.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -63,10 +63,16 @@ void sfx_init(void) } -void sfx_play(sfx_sound_t *sound) +/* play sfx, volume 0-1 */ +void sfx_play(sfx_sound_t *sound, float volume) { assert(sound); + if (volume > 1.f) + volume = 1.f; + else if (volume < 0.f) + volume = 0.f; + if (sound->chunk) { int channel; @@ -74,6 +80,7 @@ void sfx_play(sfx_sound_t *sound) if (channel < 0) channel = Mix_GroupOldest(sound->voice); + Mix_Volume(channel, MIX_MAX_VOLUME * volume); Mix_PlayChannel(channel, sound->chunk, 0); } } |