public void Init(Frame frame) { mFrame = frame; mConfig = new ViewerConfig(frame.Name); mViewerController = new ViewerController(mConfig.ViewerToggleHUDKey, mFrame.Name); if (mConfig.BackwardsCompatible) mProxyController = new BackwardCompatibleController(frame); else mProxyController = new FullController(frame); mProxyController.Offset = mConfig.Offset; mExitListener = new Action(mViewerController_Exited); mFrame.Core.DeltaUpdated += new Action<Core, DeltaUpdateEventArgs>(Coordinator_DeltaUpdated); mFrame.Core.CameraUpdated += new Action<Core, CameraUpdateEventArgs>(Coordinator_CameraUpdated); mFrame.Core.ControlModeChanged += new Action<Core, ControlMode>(Coordinator_CameraModeChanged); mFrame.Core.EyeUpdated += new Action<Core, EventArgs>(Coordinator_EyeUpdated); mFrame.Core.InitialisationComplete += new Action(Core_InitialisationComplete); mFrame.Changed += new Action<Chimera.Frame, EventArgs>(mFrame_Changed); mFrame.MonitorChanged += new Action<Chimera.Frame, Screen>(mFrame_MonitorChanged); mProxyController.OnClientLoggedIn += new EventHandler(mProxyController_OnClientLoggedIn); mProxyController.PositionChanged += new Action<Vector3, Rotation>(mProxyController_PositionChanged); mViewerController.Exited += mExitListener; }