fix up sound firing
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user