Created by: Decane
Per my comment in https://github.com/Decane/SRP/issues/46:
- In xrGame\ai\monsters\controller\controller.cpp, we have:
void CController::net_Destroy() { inherited::net_Destroy(); m_aura->on_death (); FreeFromControl (); }
- CControllerAura::on_death() in xrGame\ai\monsters\controller\controller_psy_aura.cpp just calls m_effector->switch_off() and then nullifies pointer m_effector. But it doesn't actually terminate the looped controller roar sounds if they are playing when CController::net_Destroy() is called.
The changes introduced here should fix the problem by forcing an immediate termination of any playing controller roar sounds when CController::net_Destroy() is called, so that they don't persist into the subsequently loaded session.
I have tried to conform as closely as possible to GSC's coding style.