Ambient generic: stop and toggle fix: Difference between revisions
Jump to navigation
Jump to search
(Made it more clear for anyone that wants to fix the sound bug.) |
mNo edit summary |
||
| Line 1: | Line 1: | ||
Insert the code that is highlighted in red, into the <code>CAmbientGeneric::SendSound</code>, located in | Insert the code that is highlighted in red, into the <code>CAmbientGeneric::SendSound</code>, located in ''src\game\server\'''''sound.cpp''' (Line 878) to overcome the Sound bug. | ||
if ( pSoundSource ) | if ( pSoundSource ) | ||
Revision as of 09:08, 9 July 2018
Insert the code that is highlighted in red, into the CAmbientGeneric::SendSound, located in src\game\server\sound.cpp (Line 878) to overcome the Sound bug.
if ( pSoundSource )
{
if ( flags == SND_STOP )
{
UTIL_EmitAmbientSound(pSoundSource->GetSoundSourceIndex(), pSoundSource->GetAbsOrigin(), szSoundFile,
0, SNDLVL_NONE, flags, 0);
m_fActive = false;
}
else
{
UTIL_EmitAmbientSound(pSoundSource->GetSoundSourceIndex(), pSoundSource->GetAbsOrigin(), szSoundFile,
(m_dpv.vol * 0.01), m_iSoundLevel, flags, m_dpv.pitch);
// Only mark active if this is a looping sound. If not looping, each
// trigger will cause the sound to play. If the sound is still
// playing from a previous trigger press, it will be shut off
// and then restarted.
if (m_fLooping)
m_fActive = true;
}
}
else
{
if ( ( flags == SND_STOP ) &&
( m_nSoundSourceEntIndex != -1 ) )
{
UTIL_EmitAmbientSound(m_nSoundSourceEntIndex, GetAbsOrigin(), szSoundFile,
0, SNDLVL_NONE, flags, 0);
m_fActive = false;
}
}
This moves the job of setting m_fActive to the very top of the chain, denying any ambient_generic function wriggle room to escape it! This opens up the use of the volume and pitch inputs, and allows you to safely start a sound with a map.