projects
/
neverball
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Correct logic of BSP back/front tests
[neverball]
/
share
/
audio.c
diff --git
a/share/audio.c
b/share/audio.c
index
d1c399f
..
115fb7d
100644
(file)
--- a/
share/audio.c
+++ b/
share/audio.c
@@
-18,6
+18,7
@@
#include <vorbis/vorbisfile.h>
#include <string.h>
#include <vorbis/vorbisfile.h>
#include <string.h>
+#include <stdlib.h>
#include "text.h"
#include "config.h"
#include "text.h"
#include "config.h"
@@
-158,7
+159,7
@@
static struct voice *voice_init(const char *filename, float a)
if (ov_open(fp, &V->vf, NULL, 0) == 0)
{
vorbis_info *info = ov_info(&V->vf, -1);
if (ov_open(fp, &V->vf, NULL, 0) == 0)
{
vorbis_info *info = ov_info(&V->vf, -1);
-
+
/* On success, configure the voice. */
V->amp = a;
/* On success, configure the voice. */
V->amp = a;
@@
-344,7
+345,7
@@
void audio_music_play(const char *filename)
}
}
}
}
-void audio_music_queue(const char *filename)
+void audio_music_queue(const char *filename, float t)
{
if (audio_state)
{
{
if (audio_state)
{
@@
-353,6
+354,9
@@
void audio_music_queue(const char *filename)
if ((queue = voice_init(filename, 0.0f)))
{
queue->loop = 1;
if ((queue = voice_init(filename, 0.0f)))
{
queue->loop = 1;
+
+ if (t > 0.0f)
+ queue->damp = +1.0f / (AUDIO_RATE * t);
}
}
SDL_UnlockAudio();
}
}
SDL_UnlockAudio();
@@
-399,12
+403,10
@@
void audio_music_fade_to(float t, const char *filename)
{
if (music)
{
{
if (music)
{
- if (strcmp(filename, music->name))
+ if (strcmp(filename, music->name) != 0)
{
{
- audio_music_queue(filename);
audio_music_fade_out(t);
audio_music_fade_out(t);
-
- if (queue) queue->damp = +1.0f / (AUDIO_RATE * t);
+ audio_music_queue(filename, t);
}
else audio_music_fade_in(t);
}
}
else audio_music_fade_in(t);
}