/// <summary> /// Exchanges the control handler. /// </summary> /// <param name="index">The index.</param> /// <param name="controlHandler">The control handler.</param> public void ExchangeControlHandler(int index, BaseProjectileControlHandler controlHandler) { Logger.Info("Exchanging handler " + _controlHandlers[index].ToString() + " (index: " + index + ") with " + controlHandler.ToString()); if (_controlHandlers[index] == _currentBaseProjectileControlHandler) { BaseProjectileControlHandler poppedHandler = _controlHandlers.Exchange(index, controlHandler); poppedHandler.Dispose(); TryActivateCurrentControlHandler(poppedHandler); } else { _controlHandlers.Exchange(index, controlHandler); } }