В sound.cpp ищем "void CAmbientGeneric::ToggleSound()" и меняем там "SendSound( SND_NOFLAGS );" на "SendSound( SND_SHOULDPAUSE );".
Fixed.
PS Умом Source не понять... в поисках способа нормально заглушить музыку и поставить её на паузу, убил давно кучу времени. Сегодня же, вернувшись к проблеме, вновь залез на VDC в Ambient_generic, и оказалось, что какой-то добрый человек относительно недавно обновил баги: "Bug: Setting the volume to 0 will cause the sound to pause, rather than play silently." "Фейдеры" тоже забагованные. В итоге сделал фейдеры через logic_relay, которые изменяют громкость и ставят на паузу ("volume 0", ололо). Всё для людей...
Эм.. ещё раз.. вот, допустим, у меня играет музыка сейчас через амбиент_женерик. Выхожу в меню\открываю консоль - музыка не останавливается, продолжает играть.
Что в итоге нужно сделать чтобы её остановить?)
Ок, вот ещё пара "фиксов", чтобы заставить все остальные звуки останавливаться.
sound.cpp
В void CAmbientGeneric::Activate( void ) к flags |= ( SND_CHANGE_PITCH | SND_CHANGE_VOL) нужно добавить и SND_SHOULDPAUSE.
Это заставит останавливаться лупы.
SoundEmitterSystem.cpp
Суём params.m_nFlags = SND_SHOULDPAUSE; в первые четыре void CBaseEntity::EmitSound.
Это заставит останавливаться звуки типа открывающихся дверей и т.д.