From daa36b5eff5b465d7795f0ef8522a884b829eebc Mon Sep 17 00:00:00 2001 From: Lisias T Date: Sun, 27 Nov 2022 07:48:42 -0300 Subject: [PATCH] Removing the evends before restoring Tourists on OnDestroy in an attempt to prevent the exception described on https://github.com/net-lisias-ksp/KourageousTourists/issues/10 --- .../KourageousTourists/KourageousTourists.cs | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Source/KourageousTourists/KourageousTourists.cs b/Source/KourageousTourists/KourageousTourists.cs index 42678c0..1c31b25 100644 --- a/Source/KourageousTourists/KourageousTourists.cs +++ b/Source/KourageousTourists/KourageousTourists.cs @@ -129,6 +129,20 @@ public void OnDestroy() { if (!HighLogic.LoadedSceneIsFlight) return; + GameEvents.onVesselRecovered.Remove(OnVesselRecoveredOffGame); + GameEvents.onKerbalLevelUp.Remove(OnKerbalLevelUp); + GameEvents.onCrewOnEva.Remove(OnEvaStart); + GameEvents.onCrewBoardVessel.Remove(OnCrewBoardVessel); + GameEvents.onVesselWillDestroy.Remove(OnVesselWillDestroy); + GameEvents.onVesselLoaded.Remove(OnVesselLoad); + GameEvents.onVesselChange.Remove(OnVesselChange); + GameEvents.onVesselCreate.Remove(OnVesselCreate); + GameEvents.onNewVesselCreated.Remove(OnNewVesselCreated); + + GameEvents.onAttemptEva.Remove(OnAttemptEVA); + GameEvents.onFlightReady.Remove(OnFlightReady); + GameEvents.onVesselGoOffRails.Remove(OnVesselGoOffRails); + // Switch tourists back try { Log.dbg("VesselsLoaded: {0}", FlightGlobals.VesselsLoaded); @@ -148,20 +162,6 @@ public void OnDestroy() { catch(Exception e) { Log.error(e, "Got Exception while attempting to access loaded vessels"); } - - GameEvents.onVesselRecovered.Remove(OnVesselRecoveredOffGame); - GameEvents.onKerbalLevelUp.Remove(OnKerbalLevelUp); - GameEvents.onCrewOnEva.Remove(OnEvaStart); - GameEvents.onCrewBoardVessel.Remove(OnCrewBoardVessel); - GameEvents.onVesselWillDestroy.Remove(OnVesselWillDestroy); - GameEvents.onVesselLoaded.Remove(OnVesselLoad); - GameEvents.onVesselChange.Remove(OnVesselChange); - GameEvents.onVesselCreate.Remove(OnVesselCreate); - GameEvents.onNewVesselCreated.Remove(OnNewVesselCreated); - - GameEvents.onAttemptEva.Remove(OnAttemptEVA); - GameEvents.onFlightReady.Remove(OnFlightReady); - GameEvents.onVesselGoOffRails.Remove(OnVesselGoOffRails); } private void OnEvaStart(GameEvents.FromToAction evaData) {