summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/audio/sampman_oal.cpp27
1 files changed, 8 insertions, 19 deletions
diff --git a/src/audio/sampman_oal.cpp b/src/audio/sampman_oal.cpp
index e95bc978..3cd7a736 100644
--- a/src/audio/sampman_oal.cpp
+++ b/src/audio/sampman_oal.cpp
@@ -1046,14 +1046,14 @@ cSampleManager::Initialise(void)
char filename[MAX_PATH];
sprintf(filename, "%s.VB", StreamedNameTable[i]);
if ( aStream[0] )
- opened = aStream[0]->Open(filename, IsThisTrackAt16KHz(i) ? 16000 : 32000) )
+ opened = aStream[0]->Open(filename, IsThisTrackAt16KHz(i) ? 16000 : 32000);
if ( !opened )
{
sprintf(filename, "%s.MP3", StreamedNameTable[i]);
if ( aStream[0] )
{
- opened = aStream[0]->Open(filename, IsThisTrackAt16KHz(i) ? 16000 : 32000)
+ opened = aStream[0]->Open(filename, IsThisTrackAt16KHz(i) ? 16000 : 32000);
}
}
if ( opened )
@@ -1956,29 +1956,18 @@ cSampleManager::StartStreamedFile(uint32 nFile, uint32 nPos, uint8 nStream)
nFile = 0;
}
sprintf(filename, "%s.VB", StreamedNameTable[nFile]);
-
- CStream *stream = aStream[nStream];
- if ( stream && !stream->IsOpened() )
- {
- delete stream;
- stream = NULL;
- }
+ CStream *stream = aStream[nStream];
+
+ bool opened = stream->Open(filename, IsThisTrackAt16KHz(nFile) ? 16000 : 32000);
- if (!stream)
+ if ( !opened )
{
sprintf(filename, "%s.MP3", StreamedNameTable[nFile]);
- stream = new CStream(filename, ALStreamSources[nStream], ALStreamBuffers[nStream], IsThisTrackAt16KHz(nFile) ? 16000 : 32000);
- if ( stream && !stream->IsOpened() )
- {
- delete stream;
- stream = NULL;
- }
+ opened = stream->Open(filename, IsThisTrackAt16KHz(nFile) ? 16000 : 32000);
}
-
- aStream[nStream]->Open(filename, IsThisTrackAt16KHz(nFile) ? 16000 : 32000);
- if ( stream->Setup() ) {
+ if ( opened && stream->Setup() ) {
stream->SetLoopCount(nStreamLoopedFlag[nStream] ? 0 : 1);
nStreamLoopedFlag[nStream] = TRUE;
if (position != 0)