fix up sound firing

This commit is contained in:
Glenn Maynard
2002-12-18 07:48:54 +00:00
parent 3017569a4e
commit 21ff1a044e
2 changed files with 15 additions and 8 deletions
+10 -8
View File
@@ -98,21 +98,23 @@ RageSound::RageSound(const RageSound &cpy)
LockMutex L(SOUNDMAN->lock);
stream.Sample = NULL;
position = 0;
playing = false;
Loop = false;
speed = 1.0f;
stream.buf.reserve(internal_buffer_size);
AutoStop = cpy.AutoStop;
/* Copy some of it; don't copy the playing state. */
big = cpy.big;
full_buf = cpy.full_buf;
big = cpy.big;
AutoStop = cpy.AutoStop;
m_sFilePath = cpy.m_sFilePath;
m_StartSeconds = cpy.m_StartSeconds;
m_LengthSeconds = cpy.m_LengthSeconds;
Loop = cpy.Loop;
position = cpy.position;
playing = false;
speed = cpy.speed;
if(big)
{
/* We can't copy the Sound_Sample, so load a new one.
* Don't bother trying to load it in a small buffer. */
stream.buf.reserve(internal_buffer_size);
Load(cpy.GetLoadedFilePath(), false);
}
+5
View File
@@ -93,8 +93,13 @@ void RageSoundManager::PlayCopy( const RageSound &snd )
* std::basic_string happens to be refcounted). That's not too bad,
* but we might do five of these in the same frame ...
*/
RageSound *newsnd = new RageSound(snd);
/* PlayCopy's sounds must always stop on their own. */
newsnd->SetLooping(true);
newsnd->SetAutoStop(true);
/* We're responsible for freeing it. */
owned_sounds.insert(newsnd);