Removed '?.' syntax sugar for easier compilation within non VS2015 IDEs.
Removed '?.' syntax sugar for easier compilation within non VS2015 IDEs.

--- a/KerbalEngineer.Unity/CanvasGroupFader.cs
+++ b/KerbalEngineer.Unity/CanvasGroupFader.cs
@@ -100,8 +100,10 @@
                 yield return null;
             }
 
-            //print(m_CanvasGroup.alpha);
-            callback?.Invoke();
+            if (callback != null)
+            {
+                callback.Invoke();
+            }
 
             m_FadeCoroutine = null;
         }

--- a/KerbalEngineer.Unity/Setting.cs
+++ b/KerbalEngineer.Unity/Setting.cs
@@ -78,7 +78,10 @@
 
         protected virtual void Update()
         {
-            m_OnUpdate?.Invoke();
+            if (m_OnUpdate != null)
+            {
+                m_OnUpdate.Invoke();
+            }
         }
 
         private static void SetButton(GameObject buttonObject, UnityAction onClick)

--- a/KerbalEngineer.Unity/UI/StyleApplicator.cs
+++ b/KerbalEngineer.Unity/UI/StyleApplicator.cs
@@ -100,11 +100,15 @@
         {
             SetSelectable(textStyle, normal, highlight, pressed, disabled);
 
-            Image toggleImage = GetComponent<Toggle>()?.graphic as Image;
-            if (toggleImage != null)
+            Toggle toggleComponent = GetComponent<Toggle>();
+            if (toggleComponent != null)
             {
-                toggleImage.sprite = pressed;
-                toggleImage.type = Image.Type.Sliced;
+                Image toggleImage = toggleComponent.graphic as Image;
+                if (toggleImage != null)
+                {
+                    toggleImage.sprite = pressed;
+                    toggleImage.type = Image.Type.Sliced;
+                }
             }
         }
 

--- a/KerbalEngineer.Unity/UI/Window.cs
+++ b/KerbalEngineer.Unity/UI/Window.cs
@@ -159,7 +159,10 @@
                 yield return null;
             }
 
-            callback?.Invoke();
+            if (callback != null)
+            {
+                callback.Invoke();
+            }
 
             m_ScaleFadeCoroutine = null;
         }

--- a/KerbalEngineer/Flight/FlightEngineerCore.cs
+++ b/KerbalEngineer/Flight/FlightEngineerCore.cs
@@ -291,7 +291,9 @@
         private void FixedUpdate()
         {
             if (FlightGlobals.ActiveVessel == null)
+            {
                 return;
+            }
 
             try
             {
@@ -355,7 +357,9 @@
         private void Update()
         {
             if (FlightGlobals.ActiveVessel == null)
+            {
                 return;
+            }
 
             try
             {

--- a/KerbalEngineer/VesselSimulator/PartSim.cs
+++ b/KerbalEngineer/VesselSimulator/PartSim.cs
@@ -777,7 +777,8 @@
 
         private bool IsDecoupler(Part thePart)
         {
-            return thePart.GetProtoModuleDecoupler()?.IsStageEnabled ?? false;
+            PartExtensions.ProtoModuleDecoupler protoDecoupler = thePart.GetProtoModuleDecoupler();
+            return protoDecoupler != null && protoDecoupler.IsStageEnabled;
         }
 
         private bool IsSepratron()