]> git.jsancho.org Git - lugaru.git/blobdiff - Source/openal_wrapper.cpp
Fixed a bug loading all persons with the same ID. I hope it will fix weapon problems
[lugaru.git] / Source / openal_wrapper.cpp
index 209ce1a0a4dc8a3be0f8292baa17db3c15289a7e..ecac525b61f9312217755e0c4ffd7c5bc4d2752e 100644 (file)
@@ -1,5 +1,6 @@
 /*
 Copyright (C) 2003, 2010 - Wolfire Games
+Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file)
 
 This file is part of Lugaru.
 
@@ -24,6 +25,9 @@ along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
 #include "Quaternions.h"
 #include "openal_wrapper.h"
 #include "Sounds.h"
+#include "Game.h"
+
+extern float slomofreq;
 
 // NOTE:
 // FMOD uses a Left Handed Coordinate system, OpenAL uses a Right Handed
@@ -148,8 +152,7 @@ AL_API signed char OPENAL_Init(int mixrate, int maxsoftwarechannels, unsigned in
     alcMakeContextCurrent(ctx);
     alcProcessContext(ctx);
 
-    bool cmdline(const char * cmd);
-    if (cmdline("openalinfo")) {
+    if (commandLineOptions[OPENALINFO]) {
         printf("AL_VENDOR: %s\n", (char *) alGetString(AL_VENDOR));
         printf("AL_RENDERER: %s\n", (char *) alGetString(AL_RENDERER));
         printf("AL_VERSION: %s\n", (char *) alGetString(AL_VERSION));
@@ -290,7 +293,6 @@ static void *decode_to_pcm(const char *_fname, ALenum &format, ALsizei &size, AL
     strcat(fname, ".ogg");
 
     // just in case...
-#undef fopen
     FILE *io = fopen(fname, "rb");
     if (io == NULL)
         return NULL;
@@ -374,7 +376,6 @@ AL_API OPENAL_SAMPLE *OPENAL_Sample_Load(int index, const char *name_or_data, un
         return NULL;  // this is all the game does...
 
     OPENAL_SAMPLE *retval = NULL;
-    ALuint bufferName = 0;
     ALenum format = AL_NONE;
     ALsizei size = 0;
     ALuint frequency = 0;
@@ -430,21 +431,20 @@ static signed char OPENAL_Sample_SetMode(OPENAL_SAMPLE *sptr, unsigned int mode)
     return true;
 }
 
-AL_API signed char OPENAL_SetFrequency(int channel, int freq)
+AL_API signed char OPENAL_SetFrequency(int channel, bool slomo)
 {
     if (!initialized)
         return false;
     if (channel == OPENAL_ALL) {
         for (int i = 0; i < num_channels; i++)
-            OPENAL_SetFrequency(i, freq);
+            OPENAL_SetFrequency(i, slomo);
         return true;
     }
 
     if ((channel < 0) || (channel >= num_channels))
         return false;
-    if (freq == 8012)
-        // hack
-        alSourcef(impl_channels[channel].sid, AL_PITCH, 8012.0f / 44100.0f);
+    if (slomo)
+        alSourcef(impl_channels[channel].sid, AL_PITCH, ((ALfloat) slomofreq) / 44100.0f);
     else
         alSourcef(impl_channels[channel].sid, AL_PITCH, 1.0f);
     return true;
@@ -528,11 +528,6 @@ AL_API signed char OPENAL_StopSound(int channel)
     return true;
 }
 
-AL_API void OPENAL_Stream_Close(OPENAL_STREAM *stream)
-{
-    OPENAL_Sample_Free((OPENAL_SAMPLE *) stream);
-}
-
 static OPENAL_SAMPLE *OPENAL_Stream_GetSample(OPENAL_STREAM *stream)
 {
     if (!initialized)