summaryrefslogtreecommitdiff
path: root/src/sfx.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sfx.c')
-rw-r--r--src/sfx.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/sfx.c b/src/sfx.c
index 04b0fbc..334833a 100644
--- a/src/sfx.c
+++ b/src/sfx.c
@@ -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);
}
}
© All Rights Reserved