// If this channel manages its own volume
if (ch->flags & CHANNELFLAG_FULLVOLUME)
- snd_vol = 256;
+ snd_vol = (int)(mastervolume.value * 256);
else
- snd_vol = (int)(volume.value * 256);
+ snd_vol = (int)(mastervolume.value * volume.value * 256);
// calculate mixing volumes based on channel volumes and volume cvar
// also limit the volumes to values that won't clip
if (ch->pos < 0)
{
count = -ch->pos;
- count = min(count, frames - ltime);
+ count = min(count, (int)frames - ltime);
ch->pos += count;
ltime += count;
}
- while (ltime < frames)
+ while (ltime < (int)frames)
{
// paint up to end of buffer or of input, whichever is lower
count = sfx->total_length - ch->pos;
- count = bound(0, count, frames - ltime);
+ count = bound(0, count, (int)frames - ltime);
if (count)
{
SND_PaintChannel (ch, paintbuffer + ltime, count);