X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FSounds.cpp;h=c85355356d23051e1e0bd8299decb0234871efa5;hb=1aef858f5ecb3dc8fd816e0155635371ed3632f2;hp=9bf927befb0ecb9af377938be83fa279b87753d7;hpb=617a36f729718c59c2f886fd4a1d145388e7c8bc;p=lugaru.git diff --git a/Source/Sounds.cpp b/Source/Sounds.cpp index 9bf927b..c853553 100644 --- a/Source/Sounds.cpp +++ b/Source/Sounds.cpp @@ -19,11 +19,16 @@ 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" 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" @@ -58,7 +63,59 @@ void loadAllSounds() 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); +} + +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); }