]> git.jsancho.org Git - lugaru.git/blobdiff - Source/Sounds.cpp
rename music1, music2, music3
[lugaru.git] / Source / Sounds.cpp
index c82f42ed3a4a58a5ccb10b5fcd3dfe29eba50cde..f5c33988c3a630759bdf087bbdaf79f94b08e0ab 100644 (file)
@@ -19,6 +19,7 @@ along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */
 
+#include "Quaternions.h"
 #include "Sounds.h"
 #include "openal_wrapper.h"
 
@@ -26,6 +27,8 @@ struct OPENAL_SAMPLE *samp[sounds_count];
 
 int footstepsound, footstepsound2, footstepsound3, footstepsound4;
 
+int channels[100];
+
 static const char *sound_data[sounds_count] = {
 #define DECLARE_SOUND(id, filename) filename,
 #include "Sounds.def"
@@ -66,7 +69,53 @@ void loadAllSounds()
   footstepsound4 = footstepst2;
   // Huh?
   // OPENAL_Sample_SetMode(samp[whooshsound], OPENAL_LOOP_NORMAL);
-  for (int i = stream_firesound; i <= stream_music3; i++)
+  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);
+}
+