using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Resources; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BabyStepsQuickSave; using HarmonyLib; using Il2Cpp; using MelonLoader; using Microsoft.CodeAnalysis; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: MelonInfo(typeof(Core), "FlyAndQuickSave", "1.0.0", "Caleb Orchard", null)] [assembly: MelonGame("DefaultCompany", "BabySteps")] [assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")] [assembly: AssemblyCompany("FlyAndQuicksave")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("FlyAndQuicksave")] [assembly: AssemblyTitle("FlyAndQuicksave")] [assembly: NeutralResourcesLanguage("en-US")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace BabyStepsQuickSave { public class Core : MelonMod { [CompilerGenerated] private sealed class d__8 : IEnumerator, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public Core <>4__this; private Camera 5__1; private Vector3 5__2; private Transform 5__3; private Vector3 5__4; private Vector3 5__5; private GameObject 5__6; private Quaternion 5__7; private Vector3 5__8; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__8(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { 5__1 = null; 5__3 = null; 5__6 = null; <>1__state = -2; } private bool MoveNext() { //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_01d0: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_01ec: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_0240: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0251: Unknown result type (might be due to invalid IL or missing references) //IL_025d: Unknown result type (might be due to invalid IL or missing references) //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_02ba: Unknown result type (might be due to invalid IL or missing references) switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = null; <>1__state = 1; return true; case 1: <>1__state = -1; if ((Object)(object)<>4__this.pm == (Object)null) { 5__6 = GameObject.Find("Dudest"); if ((Object)(object)5__6 == (Object)null) { MelonLogger.Msg("Could not find Dudest object"); return false; } <>4__this.pm = 5__6.GetComponent(); 5__6 = null; } if ((Object)(object)<>4__this.pm == (Object)null) { MelonLogger.Msg("PlayerMovement component not found"); return false; } 5__1 = null; if (flyCamActive && (Object)(object)<>4__this.pm.flyCam != (Object)null) { 5__1 = ((Component)<>4__this.pm.flyCam).GetComponent(); } if ((Object)(object)5__1 == (Object)null) { 5__1 = Camera.main; } if ((Object)(object)5__1 == (Object)null) { MelonLogger.Msg("No camera found"); return false; } 5__2 = Vector3.zero; 5__3 = null; if ((Object)(object)<>4__this.pm.hipPivot != (Object)null) { 5__3 = <>4__this.pm.hipPivot; 5__2 = <>4__this.pm.hipPivot.position; } else { 5__3 = ((Component)<>4__this.pm).transform; 5__2 = ((Component)<>4__this.pm).transform.position; } 5__4 = ((Component)5__1).transform.position; 5__5 = 5__2 - 5__4; 5__5.y = 0f; if (((Vector3)(ref 5__5)).sqrMagnitude > 0.01f) { 5__7 = Quaternion.LookRotation(5__5); 5__8 = 5__3.position; 5__3.rotation = 5__7; 5__3.position = 5__8; <>4__this.pm.camAng = ((Quaternion)(ref 5__7)).eulerAngles.y; MelonLogger.Msg($"Rotation set to: {((Quaternion)(ref 5__7)).eulerAngles.y} degrees"); } return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } private DevCheatChaperone dCC; private DevCheatsGoHere dCGH; private PlayerMovement pm; public static bool flyCamActive; private float flyCamSpeed = 10f; private float flyCamSpeedMultiplier = 1f; public override void OnInitializeMelon() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Expected O, but got Unknown GameObject val = new GameObject("DevCheatChaperone_Mod"); dCC = val.AddComponent(); dCGH = val.AddComponent(); Harmony val2 = new Harmony("BabyStepsQuickSave.InputOverride"); val2.PatchAll(); } public override void OnUpdate() { if (Input.GetKeyDown((KeyCode)290)) { dCGH.SaveNatePos(); } else if (Input.GetKeyDown((KeyCode)291)) { dCGH.LoadNatePos(); } else if (Input.GetKeyDown((KeyCode)282)) { if ((Object)(object)pm == (Object)null) { GameObject val = GameObject.Find("Dudest"); pm = val.GetComponent(); } pm.ToggleFlyCam(); flyCamActive = !flyCamActive; } if (flyCamActive && (Object)(object)pm != (Object)null && (Object)(object)pm.flyCam != (Object)null) { HandleFlyCamMovement(); HandleFlyCamScrollWheel(); if (Input.GetMouseButtonDown(0)) { MelonCoroutines.Start(AdjustPlayerRotationAwayFromCamera()); } } } [IteratorStateMachine(typeof(d__8))] private IEnumerator AdjustPlayerRotationAwayFromCamera() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__8(0) { <>4__this = this }; } private void HandleFlyCamMovement() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) Vector3 val = Vector3.zero; if (Input.GetKey((KeyCode)119)) { val += Vector3.forward; } if (Input.GetKey((KeyCode)115)) { val += Vector3.back; } if (Input.GetKey((KeyCode)97)) { val += Vector3.left; } if (Input.GetKey((KeyCode)100)) { val += Vector3.right; } if (Input.GetKey((KeyCode)101)) { val += Vector3.up; } if (Input.GetKey((KeyCode)113)) { val += Vector3.down; } if (((Vector3)(ref val)).magnitude > 1f) { ((Vector3)(ref val)).Normalize(); } float num = 1f; bool flag = Input.GetKey((KeyCode)304) || Input.GetKey((KeyCode)303); bool flag2 = Input.GetKey((KeyCode)306) || Input.GetKey((KeyCode)305); if (flag && flag2) { num = 7f; } else if (flag2) { num = 5f; } else if (flag) { num = 2f; } Transform transform = ((Component)pm.flyCam).transform; Vector3 val2 = transform.TransformDirection(val); Vector3 val3 = val2 * Mathf.Abs(flyCamSpeed * flyCamSpeedMultiplier * num); transform.position += val3 * Time.deltaTime; } private void HandleFlyCamScrollWheel() { float axis = Input.GetAxis("Mouse ScrollWheel"); if (axis == 0f) { return; } if (Input.GetKey((KeyCode)308) || Input.GetKey((KeyCode)307)) { if (axis > 0f) { pm.IncreaseFlyCamFOV(); } else { pm.DecreaseFlyCamFOV(); } } else if (axis > 0f) { flyCamSpeedMultiplier = Mathf.Min(flyCamSpeedMultiplier * 1.2f, 10f); } else { flyCamSpeedMultiplier = Mathf.Max(flyCamSpeedMultiplier * 0.8f, 0.1f); } } } [HarmonyPatch(typeof(Input))] public static class InputPatches { [HarmonyPrefix] [HarmonyPatch("GetKey", new Type[] { typeof(KeyCode) })] public static bool GetKeyPrefix(KeyCode key, ref bool __result) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Invalid comparison between Unknown and I4 //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Invalid comparison between Unknown and I4 //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Invalid comparison between Unknown and I4 //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Invalid comparison between Unknown and I4 //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Invalid comparison between Unknown and I4 //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Invalid comparison between Unknown and I4 //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Invalid comparison between Unknown and I4 //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Invalid comparison between Unknown and I4 //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Invalid comparison between Unknown and I4 //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Invalid comparison between Unknown and I4 //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Invalid comparison between Unknown and I4 //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Invalid comparison between Unknown and I4 //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Invalid comparison between Unknown and I4 //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Invalid comparison between Unknown and I4 //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Invalid comparison between Unknown and I4 //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Invalid comparison between Unknown and I4 //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Invalid comparison between Unknown and I4 if (!Core.flyCamActive) { return true; } if ((int)key == 119 || (int)key == 97 || (int)key == 115 || (int)key == 100 || (int)key == 113 || (int)key == 101 || (int)key == 304 || (int)key == 303 || (int)key == 306 || (int)key == 305 || (int)key == 308 || (int)key == 307 || (int)key == 282 || (int)key == 284 || (int)key == 285 || (int)key == 290 || (int)key == 291) { return true; } __result = false; return false; } [HarmonyPrefix] [HarmonyPatch("GetKeyDown", new Type[] { typeof(KeyCode) })] public static bool GetKeyDownPrefix(KeyCode key, ref bool __result) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Invalid comparison between Unknown and I4 //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Invalid comparison between Unknown and I4 //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Invalid comparison between Unknown and I4 //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Invalid comparison between Unknown and I4 //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Invalid comparison between Unknown and I4 if (!Core.flyCamActive) { return true; } if ((int)key == 282 || (int)key == 284 || (int)key == 285 || (int)key == 290 || (int)key == 291) { return true; } __result = false; return false; } [HarmonyPrefix] [HarmonyPatch("GetAxis", new Type[] { typeof(string) })] public static bool GetAxisPrefix(string axisName, ref float __result) { if (!Core.flyCamActive) { return true; } if (axisName == "Mouse ScrollWheel" || axisName == "Mouse X" || axisName == "Mouse Y") { return true; } __result = 0f; return false; } [HarmonyPrefix] [HarmonyPatch("GetMouseButton", new Type[] { typeof(int) })] public static bool GetMouseButtonPrefix(int button, ref bool __result) { if (!Core.flyCamActive) { return true; } if (button == 0) { return true; } __result = false; return false; } [HarmonyPrefix] [HarmonyPatch("GetMouseButtonDown", new Type[] { typeof(int) })] public static bool GetMouseButtonDownPrefix(int button, ref bool __result) { if (!Core.flyCamActive) { return true; } if (button == 0) { return true; } __result = false; return false; } [HarmonyPrefix] [HarmonyPatch("GetMouseButtonUp", new Type[] { typeof(int) })] public static bool GetMouseButtonUpPrefix(int button, ref bool __result) { if (!Core.flyCamActive) { return true; } if (button == 0) { return true; } __result = false; return false; } } }