Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include "Quaternions.h"
#include "Sounds.h"
#include "openal_wrapper.h"
int footstepsound, footstepsound2, footstepsound3, footstepsound4;
+int channels[100];
+
static const char *sound_data[sounds_count] = {
#define DECLARE_SOUND(id, filename) filename,
#include "Sounds.def"
// 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);
+}
+
+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);
}