Sys_Error ("S_FindName: out of sfx_t");
sfx = &known_sfx[i];
+ memset(sfx, 0, sizeof(*sfx));
strcpy (sfx->name, name);
num_sfx++;
void S_TouchSound (char *name)
{
sfx_t *sfx;
-
+
if (!sound_started)
return;
// calc ambient sound levels
for (ambient_channel = 0 ; ambient_channel< NUM_AMBIENTS ; ambient_channel++)
{
+ if (ambient_sfx[ambient_channel] && ambient_sfx[ambient_channel]->silentlymissing)
+ continue;
chan = &channels[ambient_channel];
chan->sfx = ambient_sfx[ambient_channel];
// mix ahead of current position
endtime = soundtime + _snd_mixahead.value * shm->speed;
samps = shm->samples >> (shm->channels-1);
- if (endtime - soundtime > samps)
+ if (endtime > (unsigned int)(soundtime + samps))
endtime = soundtime + samps;
#ifdef _WIN32
out[i] = in[i];
//Con_Printf("S_RawSamples_Dequeue: normal %i\n", l);
}
- if (l < length)
+ if (l < (int)length)
{
memset(samples + l * 2, 0, (length - l) * sizeof(int[2]));
//Con_Printf("S_RawSamples_Dequeue: padding with %i samples\n", length - l);
else
memcpy(output, input, inputlength * sizeof(short[2]));
}
+
+int S_RawSamples_SampleRate(void)
+{
+ return shm != NULL ? shm->speed : 0;
+}