// This should be decided at the time of playback
static int snd_mode(int snd)
{
- switch (snd)
- {
+ switch (snd) {
case alarmsound:
case consolefailsound:
case consolesuccesssound:
case firestartsound:
case fireendsound:
- return OPENAL_2D;
+ return OPENAL_2D;
default:
- return OPENAL_HW3D;
+ return OPENAL_HW3D;
}
}
void loadAllSounds()
{
- for (int i = 0; i < sounds_count; i++)
- {
- char buf[64];
- snprintf(buf, 64, ":Data:Sounds:%s", sound_data[i]);
- samp[i] = OPENAL_Sample_Load(OPENAL_FREE,
- ConvertFileName(buf),
- snd_mode(i),
- 0, 0);
+ for (int i = 0; i < sounds_count; i++) {
+ char buf[64];
+ snprintf(buf, 64, ":Data:Sounds:%s", sound_data[i]);
+ samp[i] = OPENAL_Sample_Load(OPENAL_FREE,
+ ConvertFileName(buf),
+ snd_mode(i),
+ 0, 0);
}
- footstepsound = footstepsn1;
- footstepsound2 = footstepsn2;
- footstepsound3 = footstepst1;
- footstepsound4 = footstepst2;
- // Huh?
- // OPENAL_Sample_SetMode(samp[whooshsound], OPENAL_LOOP_NORMAL);
- for (int i = stream_firesound; i <= stream_music3; i++)
- OPENAL_Stream_SetMode(samp[i], OPENAL_LOOP_NORMAL);
+ footstepsound = footstepsn1;
+ footstepsound2 = footstepsn2;
+ footstepsound3 = footstepst1;
+ footstepsound4 = footstepst2;
+ // Huh?
+ // OPENAL_Sample_SetMode(samp[whooshsound], OPENAL_LOOP_NORMAL);
+ for (int i = stream_firesound; i <= stream_menutheme; i++)
+ OPENAL_Stream_SetMode(samp[i], OPENAL_LOOP_NORMAL);
}
void
emit_sound_at(int soundid, const XYZ &pos, float vol)
{
- PlaySoundEx (soundid, samp[soundid], NULL, true);
- OPENAL_3D_SetAttributes_ (channels[soundid], pos, NULL);
- OPENAL_SetVolume (channels[soundid], vol);
- OPENAL_SetPaused (channels[soundid], false);
+ PlaySoundEx (soundid, samp[soundid], NULL, true);
+ OPENAL_3D_SetAttributes_ (channels[soundid], pos, NULL);
+ OPENAL_SetVolume (channels[soundid], vol);
+ OPENAL_SetPaused (channels[soundid], false);
+}
+
+void
+emit_sound_np(int soundid, float vol)
+{
+ PlaySoundEx (soundid, samp[soundid], NULL, true);
+ OPENAL_SetVolume (channels[soundid], vol);
+ OPENAL_SetPaused (channels[soundid], false);
+}
+
+void
+emit_stream_at(int soundid, const XYZ &pos, float vol)
+{
+ PlayStreamEx (soundid, samp[soundid], NULL, true);
+ OPENAL_3D_SetAttributes_ (channels[soundid], pos, NULL);
+ OPENAL_SetVolume (channels[soundid], vol);
+ OPENAL_SetPaused (channels[soundid], false);
+}
+
+void
+emit_stream_np(int soundid, float vol)
+{
+ PlayStreamEx (soundid, samp[soundid], NULL, true);
+ OPENAL_SetVolume (channels[soundid], vol);
+ OPENAL_SetPaused (channels[soundid], false);
+}
+
+void
+resume_stream(int soundid)
+{
+ OPENAL_SetPaused (channels[soundid], false);
+}
+
+void
+pause_sound(int soundid)
+{
+ OPENAL_SetPaused (channels[soundid], true);
}