bool UpdateSound() { if (_soundFunc == null) return false; if (_soundFunc.Update()) { --_loop; if (_loop <= 0) { _soundFunc = null; } else { // reset function state on each loop _soundFunc.Init(this, _params); } } return true; }