public static bool PreFix(FlybyCameraMFDPage __instance, ConfigNode qsNode)
        {
            ConfigNode node = qsNode.GetNode("SpectatorCamera");

            if (node != null && node.GetValue <bool>("flyCamEnabled"))
            {
                __instance.EnableCamera();
            }
            return(false);
        }
    public static bool Prefix(FlybyCameraMFDPage __instance)
    {
        if ((bool)SCamPlus.sCamTraverse.Field("randomModes").GetValue())
        {
            return(false);
        }

        Debug.Log("Incrementing S-Cam mode");

        SCamPlus.currentBehaviour++;
        if ((int)SCamPlus.currentBehaviour > 6 + SCamPlus.cameraModes.Count)
        {
            SCamPlus.currentBehaviour = 0;
            Debug.Log("Too large, reseting to 0");
        }
        Debug.Log("S-Cam Mode is now " + SCamPlus.currentBehaviour.ToString());

        //SCamPlus.sCamTraverse.Method("UpdateBehaviorText");
        SCamPlus.UpdateBehaviourText(__instance);

        if ((bool)SCamPlus.sCamTraverse.Field("flyCamEnabled").GetValue())
        {
            if ((int)SCamPlus.currentBehaviour <= 6)
            {
                //SCamPlus.sCamTraverse.Method("SetupFlybyPosition").GetValue();
                SCamPlus.sCamTraverse.Field("behavior").SetValue((int)SCamPlus.currentBehaviour);//we can only update this value to be within the range the game normally expects, or it causes issues when loading saves
                __instance.EnableCamera();
            }
            else
            {
                __instance.flybyCam.cullingMask = SCamPlus.normalBitmask;
                __instance.cameraModel.SetActive(false);

                SCamPlus.cameraModes[(int)SCamPlus.currentBehaviour - 7].Start(__instance);
            }
        }
        return(false);
    }