Decompiled source of RevolverSpinner v1.1.0

RevolverSpinner.dll

Decompiled a week ago
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using FistVR;
using HarmonyLib;
using OtherLoader;
using Sodalite;
using Sodalite.Api;
using UnityEngine;
using UnityEngine.SceneManagement;

[assembly: Debuggable(DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]
[module: UnverifiableCode]
namespace JerryAr.RevolverSpinner
{
	[BepInPlugin("JerryAr.RevolverSpinner", "RevolverSpinner", "1.1.0")]
	[BepInProcess("h3vr.exe")]
	[Description("Built with MeatKit")]
	[BepInDependency("h3vr.otherloader", "1.3.0")]
	public class RevolverSpinnerPlugin : BaseUnityPlugin
	{
		private static readonly string BasePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

		internal static ManualLogSource Logger;

		private void Awake()
		{
			Logger = ((BaseUnityPlugin)this).Logger;
			LoadAssets();
		}

		private void LoadAssets()
		{
			Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), "JerryAr.RevolverSpinner");
			OtherLoader.RegisterDirectLoad(BasePath, "JerryAr.RevolverSpinner", "", "", "revolverspin", "");
		}
	}
}
public class SnapToPoint : MonoBehaviour
{
	public GameObject Obj;

	public GameObject Targ;

	private void Start()
	{
	}

	private void Update()
	{
		//IL_0017: Unknown result type (might be due to invalid IL or missing references)
		//IL_0037: Unknown result type (might be due to invalid IL or missing references)
		Obj.transform.position = Targ.transform.position;
		Obj.transform.rotation = Targ.transform.rotation;
	}
}
namespace JerryRevolver
{
	[BepInPlugin("JerryDLL.JerryRevolver", "JR", "1.0.0")]
	[BepInDependency("nrgill28.Sodalite", "1.4.1")]
	[BepInProcess("h3vr.exe")]
	public class LetRevolverSpinn : BaseUnityPlugin
	{
		public static bool ToggleSpinn = false;

		public float cdL = 5f;

		public float cdR = 5f;

		public bool isThrowingL = false;

		public bool isThrowingR = false;

		public RevolverSpin RS;

		public Revolver RevolverDAL;

		public SingleActionRevolver RevolverSAL;

		public Revolver RevolverDAR;

		public SingleActionRevolver RevolverSAR;

		public FVRViveHand L;

		public FVRViveHand R;

		public GameObject SpinnHL;

		public GameObject SpinnHR;

		public WaggleJoint WagL;

		public WaggleJoint WagR;

		public Transform SpinnPosL;

		public Transform SpinnPosR;

		public GameObject WagPosL;

		public GameObject WagPosR;

		public GameObject GeoL;

		public GameObject GeoR;

		private Quaternion prevRotationL;

		private Quaternion prevRotationR;

		internal static ManualLogSource Logger { get; private set; }

		private void Awake()
		{
			Logger = ((BaseUnityPlugin)this).Logger;
			Logger.LogMessage((object)"New harmony");
			Logger.LogMessage((object)"Setted the fields");
			Harmony.CreateAndPatchAll(typeof(LetRevolverSpinn), (string)null);
			Logger.LogMessage((object)"Loaded sf System");
		}

		[HarmonyPatch(typeof(FVRWristMenu2), "Awake")]
		[HarmonyPostfix]
		public static void SFWMAH(FVRWristMenu2 __instance)
		{
			//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: Expected O, but got Unknown
			//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c5: Expected O, but got Unknown
			if ((Object)(object)__instance == (Object)null)
			{
				Logger.LogMessage((object)"No FVRWristMenu2");
			}
			bool flag = false;
			string text = "ToggleRevolverSpinner?";
			foreach (WristMenuButton button in WristMenuAPI.Buttons)
			{
				Logger.LogMessage((object)("CC " + button.Text));
				if (button.Text == text)
				{
					flag = true;
					break;
				}
			}
			if (!flag)
			{
				WristMenuAPI.Buttons.Add(new WristMenuButton(text, new ButtonClickEvent(SpawnJRS)));
			}
		}

		private static void SpawnJRS(object sender, ButtonClickEventArgs args)
		{
			ToggleSpinn = !ToggleSpinn;
		}

		private float ExtractRotationAroundX(Quaternion q)
		{
			//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_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			Vector3 up = Vector3.up;
			Vector3 val = q * up;
			Vector3 val2 = default(Vector3);
			((Vector3)(ref val2))..ctor(0f, val.y, val.z);
			Vector3 normalized = ((Vector3)(ref val2)).normalized;
			return Mathf.Atan2(normalized.z, normalized.y) * 57.29578f;
		}

		private void Update()
		{
			//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_00b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d3: Expected O, but got Unknown
			//IL_00f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0102: Unknown result type (might be due to invalid IL or missing references)
			//IL_011c: Expected O, but got Unknown
			//IL_013b: Unknown result type (might be due to invalid IL or missing references)
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_016f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0189: Expected O, but got Unknown
			//IL_01a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0259: Unknown result type (might be due to invalid IL or missing references)
			//IL_025e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0455: Unknown result type (might be due to invalid IL or missing references)
			//IL_045a: Unknown result type (might be due to invalid IL or missing references)
			//IL_045c: Unknown result type (might be due to invalid IL or missing references)
			//IL_045f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0464: Unknown result type (might be due to invalid IL or missing references)
			//IL_0469: Unknown result type (might be due to invalid IL or missing references)
			//IL_046e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0470: Unknown result type (might be due to invalid IL or missing references)
			//IL_0472: Unknown result type (might be due to invalid IL or missing references)
			//IL_0477: Unknown result type (might be due to invalid IL or missing references)
			//IL_0479: Unknown result type (might be due to invalid IL or missing references)
			//IL_047e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0480: Unknown result type (might be due to invalid IL or missing references)
			//IL_0485: Unknown result type (might be due to invalid IL or missing references)
			//IL_0488: Unknown result type (might be due to invalid IL or missing references)
			//IL_049c: Unknown result type (might be due to invalid IL or missing references)
			//IL_049e: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_04cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_04de: Unknown result type (might be due to invalid IL or missing references)
			//IL_04e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0299: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b9: Expected O, but got Unknown
			//IL_02d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0302: Expected O, but got Unknown
			//IL_0321: Unknown result type (might be due to invalid IL or missing references)
			//IL_0345: Unknown result type (might be due to invalid IL or missing references)
			//IL_0355: Unknown result type (might be due to invalid IL or missing references)
			//IL_036f: Expected O, but got Unknown
			//IL_038e: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_043f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0444: Unknown result type (might be due to invalid IL or missing references)
			//IL_0542: Unknown result type (might be due to invalid IL or missing references)
			//IL_0562: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ab6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ad6: Unknown result type (might be due to invalid IL or missing references)
			//IL_068e: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c02: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c22: Unknown result type (might be due to invalid IL or missing references)
			//IL_2e96: Unknown result type (might be due to invalid IL or missing references)
			//IL_2e9b: Unknown result type (might be due to invalid IL or missing references)
			//IL_308c: Unknown result type (might be due to invalid IL or missing references)
			//IL_3091: Unknown result type (might be due to invalid IL or missing references)
			//IL_2eb9: Unknown result type (might be due to invalid IL or missing references)
			//IL_2ebe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0606: Unknown result type (might be due to invalid IL or missing references)
			//IL_37b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_37b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_3484: Unknown result type (might be due to invalid IL or missing references)
			//IL_34a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_34cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_339a: Unknown result type (might be due to invalid IL or missing references)
			//IL_33ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_33c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_30af: Unknown result type (might be due to invalid IL or missing references)
			//IL_30b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_303e: Unknown result type (might be due to invalid IL or missing references)
			//IL_3063: Unknown result type (might be due to invalid IL or missing references)
			//IL_1046: Unknown result type (might be due to invalid IL or missing references)
			//IL_104b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b7a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0675: Unknown result type (might be due to invalid IL or missing references)
			//IL_39aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_39af: Unknown result type (might be due to invalid IL or missing references)
			//IL_37d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_37dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_3681: Unknown result type (might be due to invalid IL or missing references)
			//IL_36a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_36c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_3597: Unknown result type (might be due to invalid IL or missing references)
			//IL_35b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_35c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_33fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_3234: Unknown result type (might be due to invalid IL or missing references)
			//IL_3259: Unknown result type (might be due to invalid IL or missing references)
			//IL_123c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1241: Unknown result type (might be due to invalid IL or missing references)
			//IL_1069: Unknown result type (might be due to invalid IL or missing references)
			//IL_106e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cc6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0be9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0769: Unknown result type (might be due to invalid IL or missing references)
			//IL_3da2: Unknown result type (might be due to invalid IL or missing references)
			//IL_3dc6: Unknown result type (might be due to invalid IL or missing references)
			//IL_3dea: Unknown result type (might be due to invalid IL or missing references)
			//IL_3cb8: Unknown result type (might be due to invalid IL or missing references)
			//IL_3cd8: Unknown result type (might be due to invalid IL or missing references)
			//IL_3ce2: Unknown result type (might be due to invalid IL or missing references)
			//IL_39cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_39d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_395c: Unknown result type (might be due to invalid IL or missing references)
			//IL_3981: Unknown result type (might be due to invalid IL or missing references)
			//IL_35fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_3439: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a5b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a60: Unknown result type (might be due to invalid IL or missing references)
			//IL_15ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_15cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_15d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_125f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1264: Unknown result type (might be due to invalid IL or missing references)
			//IL_11ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_1213: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d35: Unknown result type (might be due to invalid IL or missing references)
			//IL_07f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_3f9f: Unknown result type (might be due to invalid IL or missing references)
			//IL_3fc3: Unknown result type (might be due to invalid IL or missing references)
			//IL_3fe7: Unknown result type (might be due to invalid IL or missing references)
			//IL_3eb5: Unknown result type (might be due to invalid IL or missing references)
			//IL_3ed5: Unknown result type (might be due to invalid IL or missing references)
			//IL_3edf: Unknown result type (might be due to invalid IL or missing references)
			//IL_3d1c: Unknown result type (might be due to invalid IL or missing references)
			//IL_3b52: Unknown result type (might be due to invalid IL or missing references)
			//IL_3b77: Unknown result type (might be due to invalid IL or missing references)
			//IL_3636: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c51: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c56: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a7e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a83: Unknown result type (might be due to invalid IL or missing references)
			//IL_17f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_1813: Unknown result type (might be due to invalid IL or missing references)
			//IL_181d: Unknown result type (might be due to invalid IL or missing references)
			//IL_16d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_16f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_171b: Unknown result type (might be due to invalid IL or missing references)
			//IL_160f: Unknown result type (might be due to invalid IL or missing references)
			//IL_13e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_1409: Unknown result type (might be due to invalid IL or missing references)
			//IL_3f19: Unknown result type (might be due to invalid IL or missing references)
			//IL_3d57: Unknown result type (might be due to invalid IL or missing references)
			//IL_1fc0: Unknown result type (might be due to invalid IL or missing references)
			//IL_1fe0: Unknown result type (might be due to invalid IL or missing references)
			//IL_1fea: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c74: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c79: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c03: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c28: Unknown result type (might be due to invalid IL or missing references)
			//IL_191b: Unknown result type (might be due to invalid IL or missing references)
			//IL_193f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1963: Unknown result type (might be due to invalid IL or missing references)
			//IL_1857: Unknown result type (might be due to invalid IL or missing references)
			//IL_164a: Unknown result type (might be due to invalid IL or missing references)
			//IL_3f54: Unknown result type (might be due to invalid IL or missing references)
			//IL_254a: Unknown result type (might be due to invalid IL or missing references)
			//IL_256e: Unknown result type (might be due to invalid IL or missing references)
			//IL_2593: Unknown result type (might be due to invalid IL or missing references)
			//IL_25b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_2208: Unknown result type (might be due to invalid IL or missing references)
			//IL_2228: Unknown result type (might be due to invalid IL or missing references)
			//IL_2232: Unknown result type (might be due to invalid IL or missing references)
			//IL_20e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_210c: Unknown result type (might be due to invalid IL or missing references)
			//IL_2130: Unknown result type (might be due to invalid IL or missing references)
			//IL_2024: Unknown result type (might be due to invalid IL or missing references)
			//IL_1df9: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e1e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1892: Unknown result type (might be due to invalid IL or missing references)
			//IL_275b: Unknown result type (might be due to invalid IL or missing references)
			//IL_277f: Unknown result type (might be due to invalid IL or missing references)
			//IL_27a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_27c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_26a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_26ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_2330: Unknown result type (might be due to invalid IL or missing references)
			//IL_2354: Unknown result type (might be due to invalid IL or missing references)
			//IL_2378: Unknown result type (might be due to invalid IL or missing references)
			//IL_226c: Unknown result type (might be due to invalid IL or missing references)
			//IL_205f: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a4b: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a6f: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a94: Unknown result type (might be due to invalid IL or missing references)
			//IL_2ab9: Unknown result type (might be due to invalid IL or missing references)
			//IL_28ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_28df: Unknown result type (might be due to invalid IL or missing references)
			//IL_22a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_2c5c: Unknown result type (might be due to invalid IL or missing references)
			//IL_2c80: Unknown result type (might be due to invalid IL or missing references)
			//IL_2ca5: Unknown result type (might be due to invalid IL or missing references)
			//IL_2cca: Unknown result type (might be due to invalid IL or missing references)
			//IL_2baa: Unknown result type (might be due to invalid IL or missing references)
			//IL_2bcf: Unknown result type (might be due to invalid IL or missing references)
			//IL_2dbb: Unknown result type (might be due to invalid IL or missing references)
			//IL_2de0: Unknown result type (might be due to invalid IL or missing references)
			Scene activeScene = SceneManager.GetActiveScene();
			if (((Scene)(ref activeScene)).name != "MainMenu3" && (Object)(object)RS == (Object)null)
			{
				ItemSpawnerID spawnerID = IM.GetSpawnerID("SpinAudRev");
				FVRObject mainObject = spawnerID.MainObject;
				GameObject val = Object.Instantiate<GameObject>(((AnvilAsset)mainObject).GetGameObject(), ((Component)GM.CurrentMovementManager).gameObject.transform);
				if ((Object)(object)val.GetComponent<RevolverSpin>() != (Object)null)
				{
					RS = val.GetComponent<RevolverSpin>();
				}
			}
			if ((Object)(object)L != (Object)(object)GM.CurrentMovementManager.Hands[0])
			{
				L = GM.CurrentMovementManager.Hands[0];
				SpinnHL = Object.Instantiate<GameObject>(new GameObject("SpinnLH"), ((Component)GM.CurrentMovementManager.Hands[0]).gameObject.transform);
				SpinnHL.transform.localEulerAngles = new Vector3(45f, 0f, 0f);
				GeoL = Object.Instantiate<GameObject>(new GameObject("GeoL"), SpinnHL.gameObject.transform);
				GeoL.transform.localPosition = new Vector3(0f, 0f, 0f);
				GeoL.transform.localEulerAngles = new Vector3(270f, 0f, 0f);
				WagPosL = Object.Instantiate<GameObject>(new GameObject("WPL"), GeoL.gameObject.transform);
				WagPosL.transform.localPosition = new Vector3(0f, 0f, 0f);
				WagPosL.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				WagL = SpinnHL.AddComponent<WaggleJoint>();
				WagL.hingeGraphic = GeoL.transform;
				WagL.distanceLimit = 0.05f;
				WagL.angleLimitLeft = 0f;
				WagL.angleLimitRight = 0f;
				WagL.damping = 0.05f;
				WagL.gravityScale = 0.25f;
				prevRotationL = GeoL.transform.rotation;
			}
			if ((Object)(object)R != (Object)(object)GM.CurrentMovementManager.Hands[1])
			{
				R = GM.CurrentMovementManager.Hands[1];
				SpinnHR = Object.Instantiate<GameObject>(new GameObject("SpinnRH"), ((Component)GM.CurrentMovementManager.Hands[1]).gameObject.transform);
				SpinnHR.transform.localEulerAngles = new Vector3(45f, 0f, 0f);
				GeoR = Object.Instantiate<GameObject>(new GameObject("GeoR"), SpinnHR.gameObject.transform);
				GeoR.transform.localPosition = new Vector3(0f, 0f, 0f);
				GeoR.transform.localEulerAngles = new Vector3(270f, 0f, 0f);
				WagPosR = Object.Instantiate<GameObject>(new GameObject("WPR"), GeoR.gameObject.transform);
				WagPosR.transform.localPosition = new Vector3(0f, 0f, 0f);
				WagPosR.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				WagR = SpinnHR.AddComponent<WaggleJoint>();
				WagR.hingeGraphic = GeoR.transform;
				WagR.distanceLimit = 0.05f;
				WagR.angleLimitLeft = 0f;
				WagR.angleLimitRight = 0f;
				WagR.damping = 0.05f;
				WagR.gravityScale = 0.25f;
				prevRotationR = GeoR.transform.rotation;
			}
			Quaternion rotation = GeoL.transform.rotation;
			Quaternion val2 = rotation * Quaternion.Inverse(prevRotationL);
			Quaternion q = Quaternion.Inverse(rotation) * val2 * rotation;
			float num = ExtractRotationAroundX(q);
			float num2 = num / Time.deltaTime;
			prevRotationL = rotation;
			Quaternion rotation2 = GeoR.transform.rotation;
			Quaternion val3 = rotation2 * Quaternion.Inverse(prevRotationR);
			Quaternion q2 = Quaternion.Inverse(rotation2) * val3 * rotation2;
			float num3 = ExtractRotationAroundX(q2);
			float num4 = num3 / Time.deltaTime;
			prevRotationR = rotation2;
			if (ToggleSpinn)
			{
				if (isThrowingL)
				{
					cdL -= Time.deltaTime;
					if ((Object)(object)SpinnPosL != (Object)null)
					{
						if (Vector3.Distance(((Component)SpinnPosL).transform.position, GM.CurrentMovementManager.Hands[0].Display_InteractionSphere.gameObject.transform.position) <= 0.15f && GM.CurrentMovementManager.Hands[0].Input.GripPressed)
						{
							isThrowingL = false;
							cdL = 5f;
							if ((Object)(object)RevolverDAL != (Object)null)
							{
								Revolver revolverDAL = RevolverDAL;
								GM.CurrentMovementManager.Hands[0].ForceSetInteractable((FVRInteractiveObject)(object)revolverDAL);
								if ((Object)(object)RS != (Object)null)
								{
									SM.PlayCoreSound((FVRPooledAudioType)41, RS.grab, ((Component)GM.CurrentMovementManager.Hands[0]).gameObject.transform.position);
								}
							}
							if ((Object)(object)RevolverSAL != (Object)null)
							{
								SingleActionRevolver revolverSAL = RevolverSAL;
								GM.CurrentMovementManager.Hands[0].ForceSetInteractable((FVRInteractiveObject)(object)revolverSAL);
								if ((Object)(object)RS != (Object)null)
								{
									SM.PlayCoreSound((FVRPooledAudioType)41, RS.grab, ((Component)GM.CurrentMovementManager.Hands[0]).gameObject.transform.position);
								}
							}
						}
						if (Vector3.Distance(((Component)SpinnPosL).transform.position, GM.CurrentMovementManager.Hands[1].Display_InteractionSphere.gameObject.transform.position) <= 0.15f && GM.CurrentMovementManager.Hands[1].Input.GripPressed)
						{
							isThrowingL = false;
							cdL = 5f;
							if ((Object)(object)RevolverDAL != (Object)null && (Object)(object)((Component)RevolverDAL).gameObject != (Object)null)
							{
								Revolver revolverDAL2 = RevolverDAL;
								GM.CurrentMovementManager.Hands[1].ForceSetInteractable((FVRInteractiveObject)(object)revolverDAL2);
								if ((Object)(object)RS != (Object)null)
								{
									SM.PlayCoreSound((FVRPooledAudioType)41, RS.grab, ((Component)GM.CurrentMovementManager.Hands[1]).gameObject.transform.position);
								}
							}
							if ((Object)(object)RevolverSAL != (Object)null && (Object)(object)((Component)RevolverSAL).gameObject != (Object)null)
							{
								SingleActionRevolver revolverSAL2 = RevolverSAL;
								GM.CurrentMovementManager.Hands[1].ForceSetInteractable((FVRInteractiveObject)(object)revolverSAL2);
								if ((Object)(object)RS != (Object)null)
								{
									SM.PlayCoreSound((FVRPooledAudioType)41, RS.grab, ((Component)GM.CurrentMovementManager.Hands[1]).gameObject.transform.position);
								}
							}
						}
					}
					if ((Object)(object)RevolverDAL != (Object)null && (Object)(object)((FVRPhysicalObject)RevolverDAL).m_quickbeltSlot != (Object)null)
					{
						SpinnPosL = null;
						RevolverDAL = null;
						isThrowingL = false;
					}
					if ((Object)(object)RevolverSAL != (Object)null && (Object)(object)((FVRPhysicalObject)RevolverSAL).m_quickbeltSlot != (Object)null)
					{
						SpinnPosL = null;
						RevolverSAL = null;
						isThrowingL = false;
					}
					if (cdL <= 0f)
					{
						cdL = 5f;
						if ((Object)(object)RevolverDAL != (Object)null)
						{
							SpinnPosL = null;
							RevolverDAL = null;
						}
						if ((Object)(object)RevolverSAL != (Object)null)
						{
							SpinnPosL = null;
							RevolverSAL = null;
						}
						isThrowingL = false;
					}
					if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
					{
						if ((Object)(object)RevolverDAL != (Object)null && (Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)(object)RevolverDAL)
						{
							cdL = 5f;
							SpinnPosL = null;
							RevolverDAL = null;
							isThrowingL = false;
						}
						if ((Object)(object)RevolverSAL != (Object)null && (Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)(object)RevolverSAL)
						{
							cdL = 5f;
							SpinnPosL = null;
							RevolverSAL = null;
							isThrowingL = false;
						}
					}
					if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)null)
					{
						if ((Object)(object)RevolverDAL != (Object)null && (Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable == (Object)(object)RevolverDAL)
						{
							cdL = 5f;
							SpinnPosL = null;
							RevolverDAL = null;
							isThrowingL = false;
						}
						if ((Object)(object)RevolverSAL != (Object)null && (Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable == (Object)(object)RevolverSAL)
						{
							cdL = 5f;
							SpinnPosL = null;
							RevolverSAL = null;
							isThrowingL = false;
						}
					}
				}
				if (isThrowingR)
				{
					cdR -= Time.deltaTime;
					if ((Object)(object)SpinnPosR != (Object)null)
					{
						if (Vector3.Distance(((Component)SpinnPosR).transform.position, GM.CurrentMovementManager.Hands[0].Display_InteractionSphere.gameObject.transform.position) <= 0.15f && GM.CurrentMovementManager.Hands[0].Input.GripPressed)
						{
							isThrowingR = false;
							cdR = 5f;
							if ((Object)(object)RevolverDAR != (Object)null)
							{
								Revolver revolverDAR = RevolverDAR;
								GM.CurrentMovementManager.Hands[0].ForceSetInteractable((FVRInteractiveObject)(object)revolverDAR);
								if ((Object)(object)RS != (Object)null)
								{
									SM.PlayCoreSound((FVRPooledAudioType)41, RS.grab, ((Component)GM.CurrentMovementManager.Hands[0]).gameObject.transform.position);
								}
							}
							if ((Object)(object)RevolverSAR != (Object)null)
							{
								SingleActionRevolver revolverSAR = RevolverSAR;
								GM.CurrentMovementManager.Hands[0].ForceSetInteractable((FVRInteractiveObject)(object)revolverSAR);
								if ((Object)(object)RS != (Object)null)
								{
									SM.PlayCoreSound((FVRPooledAudioType)41, RS.grab, ((Component)GM.CurrentMovementManager.Hands[0]).gameObject.transform.position);
								}
							}
						}
						if (Vector3.Distance(((Component)SpinnPosR).transform.position, GM.CurrentMovementManager.Hands[1].Display_InteractionSphere.gameObject.transform.position) <= 0.15f && GM.CurrentMovementManager.Hands[1].Input.GripPressed)
						{
							isThrowingR = false;
							cdR = 5f;
							if ((Object)(object)RevolverDAR != (Object)null)
							{
								Revolver revolverDAR2 = RevolverDAR;
								GM.CurrentMovementManager.Hands[1].ForceSetInteractable((FVRInteractiveObject)(object)revolverDAR2);
								if ((Object)(object)RS != (Object)null)
								{
									SM.PlayCoreSound((FVRPooledAudioType)41, RS.grab, ((Component)GM.CurrentMovementManager.Hands[1]).gameObject.transform.position);
								}
							}
							if ((Object)(object)RevolverSAR != (Object)null)
							{
								SingleActionRevolver revolverSAR2 = RevolverSAR;
								GM.CurrentMovementManager.Hands[1].ForceSetInteractable((FVRInteractiveObject)(object)revolverSAR2);
								if ((Object)(object)RS != (Object)null)
								{
									SM.PlayCoreSound((FVRPooledAudioType)41, RS.grab, ((Component)GM.CurrentMovementManager.Hands[1]).gameObject.transform.position);
								}
							}
						}
					}
					if ((Object)(object)RevolverDAR != (Object)null && (Object)(object)((FVRPhysicalObject)RevolverDAR).m_quickbeltSlot != (Object)null)
					{
						SpinnPosR = null;
						RevolverDAR = null;
						isThrowingR = false;
					}
					if ((Object)(object)RevolverSAR != (Object)null && (Object)(object)((FVRPhysicalObject)RevolverSAR).m_quickbeltSlot != (Object)null)
					{
						SpinnPosR = null;
						RevolverSAR = null;
						isThrowingR = false;
					}
					if (cdR <= 0f)
					{
						cdR = 5f;
						if ((Object)(object)RevolverDAR != (Object)null)
						{
							SpinnPosR = null;
							RevolverDAR = null;
							if ((Object)(object)RevolverSAR != (Object)null)
							{
								SpinnPosR = null;
								RevolverSAR = null;
							}
							isThrowingR = false;
						}
					}
					if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)null)
					{
						if ((Object)(object)RevolverDAR != (Object)null && (Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)(object)RevolverDAR)
						{
							cdR = 5f;
							SpinnPosR = null;
							RevolverDAR = null;
							isThrowingR = false;
						}
						if ((Object)(object)RevolverSAR != (Object)null && (Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)(object)RevolverSAR)
						{
							cdR = 5f;
							SpinnPosR = null;
							RevolverSAR = null;
							isThrowingR = false;
						}
					}
					if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
					{
						if ((Object)(object)RevolverDAR != (Object)null && (Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable == (Object)(object)RevolverDAR)
						{
							cdR = 5f;
							SpinnPosR = null;
							RevolverDAR = null;
							isThrowingR = false;
						}
						if ((Object)(object)RevolverSAR != (Object)null && (Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable == (Object)(object)RevolverSAR)
						{
							cdR = 5f;
							SpinnPosR = null;
							RevolverSAR = null;
							isThrowingR = false;
						}
					}
				}
				if (GM.CurrentMovementManager.Hands[0].Input.TriggerFloat > 0.2f && !isThrowingL)
				{
					if (GM.CurrentMovementManager.Hands[0].Input.GripPressed)
					{
						if ((Object)(object)RS != (Object)null)
						{
							RS.canspinL = false;
						}
						if ((Object)(object)RevolverDAL != (Object)null)
						{
							if (GeoL.transform.localEulerAngles.x >= 260f && GeoL.transform.localEulerAngles.x <= 280f)
							{
								if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)(object)RevolverDAL)
								{
									WagL.angleLimitLeft = 0f;
									WagL.angleLimitRight = 0f;
									if ((Object)(object)((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>() != (Object)null)
									{
										((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>().useGravity = false;
										((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>().isKinematic = true;
									}
									((FVRInteractiveObject)RevolverDAL).IsSimpleInteract = false;
									((FVRInteractiveObject)RevolverDAL).BeginInteraction(GM.CurrentMovementManager.Hands[0]);
									GM.CurrentMovementManager.Hands[0].ForceSetInteractable((FVRInteractiveObject)(object)RevolverDAL);
								}
							}
							else
							{
								GM.CurrentMovementManager.Hands[0].Display_Controller.SetActive(false);
								GM.CurrentMovementManager.Hands[0].Display_InteractionSphere.SetActive(false);
								GM.CurrentMovementManager.Hands[0].Display_InteractionSphere_Palm.SetActive(false);
								if ((Object)(object)((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>() != (Object)null)
								{
									((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>().isKinematic = true;
								}
								((FVRInteractiveObject)RevolverDAL).IsSimpleInteract = true;
								((Component)RevolverDAL).gameObject.transform.position = WagPosL.transform.position;
								((Component)RevolverDAL).gameObject.transform.eulerAngles = WagPosL.transform.eulerAngles;
							}
						}
						if ((Object)(object)RevolverSAL != (Object)null)
						{
							if (GeoL.transform.localEulerAngles.x >= 260f && GeoL.transform.localEulerAngles.x <= 280f)
							{
								if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)(object)RevolverSAL)
								{
									WagL.angleLimitLeft = 0f;
									WagL.angleLimitRight = 0f;
									if ((Object)(object)((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>() != (Object)null)
									{
										((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>().useGravity = false;
										((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>().isKinematic = true;
									}
									((FVRInteractiveObject)RevolverSAL).IsSimpleInteract = false;
									((FVRInteractiveObject)RevolverSAL).BeginInteraction(GM.CurrentMovementManager.Hands[0]);
									GM.CurrentMovementManager.Hands[0].ForceSetInteractable((FVRInteractiveObject)(object)RevolverSAL);
								}
							}
							else
							{
								GM.CurrentMovementManager.Hands[0].Display_Controller.SetActive(false);
								GM.CurrentMovementManager.Hands[0].Display_InteractionSphere.SetActive(false);
								GM.CurrentMovementManager.Hands[0].Display_InteractionSphere_Palm.SetActive(false);
								if ((Object)(object)((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>() != (Object)null)
								{
									((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>().isKinematic = true;
								}
								((FVRInteractiveObject)RevolverSAL).IsSimpleInteract = true;
								((Component)RevolverSAL).gameObject.transform.position = WagPosL.transform.position;
								((Component)RevolverSAL).gameObject.transform.eulerAngles = WagPosL.transform.eulerAngles;
							}
						}
					}
					if (!GM.CurrentMovementManager.Hands[0].Input.GripPressed)
					{
						if ((Object)(object)RS != (Object)null)
						{
							if ((Object)(object)RevolverDAL != (Object)null || (Object)(object)RevolverSAL != (Object)null)
							{
								RS.canspinL = true;
							}
							if ((Object)(object)RevolverDAL == (Object)null && (Object)(object)RevolverSAL == (Object)null)
							{
								RS.canspinL = false;
							}
						}
						WagL.angleLimitLeft = 3600f;
						WagL.angleLimitRight = 3600f;
					}
				}
				if (GM.CurrentMovementManager.Hands[0].Input.TriggerFloat <= 0.2f)
				{
					if ((Object)(object)RS != (Object)null)
					{
						RS.canspinL = false;
					}
					if (!GM.CurrentMovementManager.Hands[0].Input.GripPressed)
					{
						if ((Object)(object)RevolverDAL != (Object)null && !isThrowingL)
						{
							if ((Object)(object)((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>() != (Object)null)
							{
								((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>().useGravity = true;
								((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>().isKinematic = false;
								((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>().AddForce(GM.CurrentMovementManager.Hands[0].Input.VelLinearWorld * ((Vector3)(ref GM.CurrentMovementManager.Hands[0].Input.VelLinearWorld)).magnitude * 0.25f, (ForceMode)2);
								if (num > 0f)
								{
									((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>().AddRelativeTorque(new Vector3(num2 * 0.01f, 0f, 0f), (ForceMode)2);
								}
								if (num <= 0f)
								{
									((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>().AddRelativeTorque(new Vector3(num2 * 0.01f, 0f, 0f), (ForceMode)2);
								}
							}
							((Component)RevolverDAL).gameObject.transform.SetParent((Transform)null);
							cdL = 5f;
							isThrowingL = true;
							if ((Object)(object)SpinnPosL == (Object)null && (Object)(object)RevolverDAL.PoseSpinHolder != (Object)null)
							{
								SpinnPosL = RevolverDAL.PoseSpinHolder;
							}
							WagPosL.transform.localPosition = new Vector3(0f, 0f, 0f);
							WagPosL.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
							SpinnHL.transform.localPosition = new Vector3(0f, 0f, 0f);
							GM.CurrentMovementManager.Hands[0].Display_Controller.SetActive(true);
							GM.CurrentMovementManager.Hands[0].Display_InteractionSphere.SetActive(true);
							GM.CurrentMovementManager.Hands[0].Display_InteractionSphere_Palm.SetActive(true);
						}
						if ((Object)(object)RevolverSAL != (Object)null && !isThrowingL)
						{
							if ((Object)(object)((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>() != (Object)null)
							{
								((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>().useGravity = true;
								((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>().isKinematic = false;
								((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>().AddForce(GM.CurrentMovementManager.Hands[0].Input.VelLinearWorld * ((Vector3)(ref GM.CurrentMovementManager.Hands[0].Input.VelLinearWorld)).magnitude * 0.25f, (ForceMode)2);
								if (num > 0f)
								{
									((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>().AddRelativeTorque(new Vector3(num2 * 0.01f, 0f, 0f), (ForceMode)2);
								}
								if (num <= 0f)
								{
									((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>().AddRelativeTorque(new Vector3(num2 * 0.01f, 0f, 0f), (ForceMode)2);
								}
							}
							((Component)RevolverSAL).gameObject.transform.SetParent((Transform)null);
							cdL = 5f;
							isThrowingL = true;
							if ((Object)(object)SpinnPosL == (Object)null && (Object)(object)RevolverSAL.PoseSpinHolder != (Object)null)
							{
								SpinnPosL = RevolverSAL.PoseSpinHolder;
							}
							WagPosL.transform.localPosition = new Vector3(0f, 0f, 0f);
							WagPosL.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
							SpinnHL.transform.localPosition = new Vector3(0f, 0f, 0f);
							GM.CurrentMovementManager.Hands[0].Display_Controller.SetActive(true);
							GM.CurrentMovementManager.Hands[0].Display_InteractionSphere.SetActive(true);
							GM.CurrentMovementManager.Hands[0].Display_InteractionSphere_Palm.SetActive(true);
						}
					}
					WagL.angleLimitLeft = 0f;
					WagL.angleLimitRight = 0f;
				}
				if (GM.CurrentMovementManager.Hands[1].Input.TriggerFloat > 0.2f && !isThrowingR)
				{
					if (GM.CurrentMovementManager.Hands[1].Input.GripPressed)
					{
						if ((Object)(object)RS != (Object)null)
						{
							RS.canspinR = false;
						}
						if ((Object)(object)RevolverDAR != (Object)null)
						{
							if (GeoR.transform.localEulerAngles.x >= 260f && GeoR.transform.localEulerAngles.x <= 280f)
							{
								if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)(object)RevolverDAR)
								{
									WagR.angleLimitLeft = 0f;
									WagR.angleLimitRight = 0f;
									if ((Object)(object)((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>() != (Object)null)
									{
										((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>().useGravity = false;
										((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>().isKinematic = true;
									}
									((FVRInteractiveObject)RevolverDAR).IsSimpleInteract = false;
									((FVRInteractiveObject)RevolverDAR).BeginInteraction(GM.CurrentMovementManager.Hands[1]);
									GM.CurrentMovementManager.Hands[1].ForceSetInteractable((FVRInteractiveObject)(object)RevolverDAR);
								}
							}
							else
							{
								GM.CurrentMovementManager.Hands[1].Display_Controller.SetActive(false);
								GM.CurrentMovementManager.Hands[1].Display_InteractionSphere.SetActive(false);
								GM.CurrentMovementManager.Hands[1].Display_InteractionSphere_Palm.SetActive(false);
								if ((Object)(object)((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>() != (Object)null)
								{
									((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>().isKinematic = true;
								}
								((FVRInteractiveObject)RevolverDAR).IsSimpleInteract = true;
								((Component)RevolverDAR).gameObject.transform.position = WagPosR.transform.position;
								((Component)RevolverDAR).gameObject.transform.eulerAngles = WagPosR.transform.eulerAngles;
							}
						}
						if ((Object)(object)RevolverSAR != (Object)null)
						{
							if (GeoR.transform.localEulerAngles.x >= 260f && GeoR.transform.localEulerAngles.x <= 280f)
							{
								if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)(object)RevolverSAR)
								{
									WagR.angleLimitLeft = 0f;
									WagR.angleLimitRight = 0f;
									if ((Object)(object)((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>() != (Object)null)
									{
										((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>().useGravity = false;
										((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>().isKinematic = true;
									}
									((FVRInteractiveObject)RevolverSAR).IsSimpleInteract = false;
									((FVRInteractiveObject)RevolverSAR).BeginInteraction(GM.CurrentMovementManager.Hands[1]);
									GM.CurrentMovementManager.Hands[1].ForceSetInteractable((FVRInteractiveObject)(object)RevolverSAR);
								}
							}
							else
							{
								GM.CurrentMovementManager.Hands[1].Display_Controller.SetActive(false);
								GM.CurrentMovementManager.Hands[1].Display_InteractionSphere.SetActive(false);
								GM.CurrentMovementManager.Hands[1].Display_InteractionSphere_Palm.SetActive(false);
								if ((Object)(object)((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>() != (Object)null)
								{
									((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>().isKinematic = true;
								}
								((FVRInteractiveObject)RevolverSAR).IsSimpleInteract = true;
								((Component)RevolverSAR).gameObject.transform.position = WagPosR.transform.position;
								((Component)RevolverSAR).gameObject.transform.eulerAngles = WagPosR.transform.eulerAngles;
							}
						}
					}
					if (!GM.CurrentMovementManager.Hands[1].Input.GripPressed)
					{
						if ((Object)(object)RS != (Object)null)
						{
							if ((Object)(object)RevolverDAR != (Object)null || (Object)(object)RevolverSAR != (Object)null)
							{
								RS.canspinR = true;
							}
							if ((Object)(object)RevolverDAR == (Object)null && (Object)(object)RevolverSAR == (Object)null)
							{
								RS.canspinR = false;
							}
						}
						WagR.angleLimitLeft = 3600f;
						WagR.angleLimitRight = 3600f;
					}
				}
				if (GM.CurrentMovementManager.Hands[1].Input.TriggerFloat <= 0.2f)
				{
					if ((Object)(object)RS != (Object)null)
					{
						RS.canspinR = false;
					}
					if (!GM.CurrentMovementManager.Hands[1].Input.GripPressed)
					{
						if ((Object)(object)RevolverDAR != (Object)null && !isThrowingR)
						{
							if ((Object)(object)((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>() != (Object)null)
							{
								((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>().useGravity = true;
								((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>().isKinematic = false;
								((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>().AddForce(GM.CurrentMovementManager.Hands[1].Input.VelLinearWorld * ((Vector3)(ref GM.CurrentMovementManager.Hands[1].Input.VelLinearWorld)).magnitude * 0.25f, (ForceMode)2);
								if (num3 > 0f)
								{
									((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>().AddRelativeTorque(new Vector3(num4 * 0.01f, 0f, 0f), (ForceMode)2);
								}
								if (num3 <= 0f)
								{
									((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>().AddRelativeTorque(new Vector3(num4 * 0.01f, 0f, 0f), (ForceMode)2);
								}
							}
							((Component)RevolverDAR).gameObject.transform.SetParent((Transform)null);
							cdR = 5f;
							isThrowingR = true;
							if ((Object)(object)SpinnPosR == (Object)null && (Object)(object)RevolverDAR.PoseSpinHolder != (Object)null)
							{
								SpinnPosR = RevolverDAR.PoseSpinHolder;
							}
							WagPosR.transform.localPosition = new Vector3(0f, 0f, 0f);
							WagPosR.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
							SpinnHR.transform.localPosition = new Vector3(0f, 0f, 0f);
							GM.CurrentMovementManager.Hands[1].Display_Controller.SetActive(true);
							GM.CurrentMovementManager.Hands[1].Display_InteractionSphere.SetActive(true);
							GM.CurrentMovementManager.Hands[1].Display_InteractionSphere_Palm.SetActive(true);
						}
						if ((Object)(object)RevolverSAR != (Object)null && !isThrowingR)
						{
							if ((Object)(object)((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>() != (Object)null)
							{
								((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>().useGravity = true;
								((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>().isKinematic = false;
								((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>().AddForce(GM.CurrentMovementManager.Hands[1].Input.VelLinearWorld * ((Vector3)(ref GM.CurrentMovementManager.Hands[1].Input.VelLinearWorld)).magnitude * 0.25f, (ForceMode)2);
								if (num3 > 0f)
								{
									((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>().AddRelativeTorque(new Vector3(num4 * 0.01f, 0f, 0f), (ForceMode)2);
								}
								if (num3 <= 0f)
								{
									((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>().AddRelativeTorque(new Vector3(num4 * 0.01f, 0f, 0f), (ForceMode)2);
								}
							}
							((Component)RevolverSAR).gameObject.transform.SetParent((Transform)null);
							cdR = 5f;
							isThrowingR = true;
							if ((Object)(object)SpinnPosR == (Object)null && (Object)(object)RevolverSAR.PoseSpinHolder != (Object)null)
							{
								SpinnPosR = RevolverSAR.PoseSpinHolder;
							}
							WagPosR.transform.localPosition = new Vector3(0f, 0f, 0f);
							WagPosR.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
							SpinnHR.transform.localPosition = new Vector3(0f, 0f, 0f);
							GM.CurrentMovementManager.Hands[1].Display_Controller.SetActive(true);
							GM.CurrentMovementManager.Hands[1].Display_InteractionSphere.SetActive(true);
							GM.CurrentMovementManager.Hands[1].Display_InteractionSphere_Palm.SetActive(true);
						}
					}
					WagR.angleLimitLeft = 0f;
					WagR.angleLimitRight = 0f;
				}
				if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
				{
					if ((Object)(object)RevolverDAL == (Object)null && (Object)(object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.GetComponent<Revolver>() != (Object)null)
					{
						RevolverDAL = ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.GetComponent<Revolver>();
					}
					if ((Object)(object)RevolverSAL == (Object)null && (Object)(object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.GetComponent<SingleActionRevolver>() != (Object)null)
					{
						RevolverSAL = ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.GetComponent<SingleActionRevolver>();
					}
				}
				if (!isThrowingL)
				{
					if ((Object)(object)RevolverDAL != (Object)null && GM.CurrentMovementManager.Hands[0].Input.TriggerFloat > 0.2f)
					{
						if ((Object)(object)SpinnPosL == (Object)null && (Object)(object)RevolverDAL.PoseSpinHolder != (Object)null)
						{
							SpinnPosL = RevolverDAL.PoseSpinHolder;
							SpinnHL.transform.position = ((Component)SpinnPosL).transform.position;
							SpinnHL.transform.localEulerAngles = new Vector3(45f, 0f, 0f);
							WagPosL.transform.position = ((Component)RevolverDAL).gameObject.transform.position;
							WagPosL.transform.eulerAngles = ((Component)RevolverDAL).gameObject.transform.eulerAngles;
							((Component)RevolverDAL).gameObject.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[0]).gameObject.transform);
						}
						if (!GM.CurrentMovementManager.Hands[0].Input.GripPressed)
						{
							GM.CurrentMovementManager.Hands[0].Display_Controller.SetActive(false);
							GM.CurrentMovementManager.Hands[0].Display_InteractionSphere.SetActive(false);
							GM.CurrentMovementManager.Hands[0].Display_InteractionSphere_Palm.SetActive(false);
							if ((Object)(object)((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>() != (Object)null)
							{
								((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>().isKinematic = true;
							}
							((FVRInteractiveObject)RevolverDAL).IsSimpleInteract = true;
							((Component)RevolverDAL).gameObject.transform.position = WagPosL.transform.position;
							((Component)RevolverDAL).gameObject.transform.eulerAngles = WagPosL.transform.eulerAngles;
						}
					}
					if ((Object)(object)RevolverSAL != (Object)null && GM.CurrentMovementManager.Hands[0].Input.TriggerFloat > 0.2f)
					{
						if ((Object)(object)SpinnPosL == (Object)null && (Object)(object)RevolverSAL.PoseSpinHolder != (Object)null)
						{
							SpinnPosL = RevolverSAL.PoseSpinHolder;
							SpinnHL.transform.position = ((Component)SpinnPosL).transform.position;
							SpinnHL.transform.localEulerAngles = new Vector3(45f, 0f, 0f);
							WagPosL.transform.position = ((Component)RevolverSAL).gameObject.transform.position;
							WagPosL.transform.eulerAngles = ((Component)RevolverSAL).gameObject.transform.eulerAngles;
							((Component)RevolverSAL).gameObject.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[0]).gameObject.transform);
						}
						if (!GM.CurrentMovementManager.Hands[0].Input.GripPressed)
						{
							GM.CurrentMovementManager.Hands[0].Display_Controller.SetActive(false);
							GM.CurrentMovementManager.Hands[0].Display_InteractionSphere.SetActive(false);
							GM.CurrentMovementManager.Hands[0].Display_InteractionSphere_Palm.SetActive(false);
							if ((Object)(object)((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>() != (Object)null)
							{
								((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>().isKinematic = true;
							}
							((FVRInteractiveObject)RevolverSAL).IsSimpleInteract = true;
							((Component)RevolverSAL).gameObject.transform.position = WagPosL.transform.position;
							((Component)RevolverSAL).gameObject.transform.eulerAngles = WagPosL.transform.eulerAngles;
						}
					}
				}
				if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)null)
				{
					if ((Object)(object)RevolverDAR == (Object)null && (Object)(object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.GetComponent<Revolver>() != (Object)null)
					{
						RevolverDAR = ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.GetComponent<Revolver>();
					}
					if ((Object)(object)RevolverSAR == (Object)null && (Object)(object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.GetComponent<SingleActionRevolver>() != (Object)null)
					{
						RevolverSAR = ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.GetComponent<SingleActionRevolver>();
					}
				}
				if (!isThrowingR)
				{
					if ((Object)(object)RevolverDAR != (Object)null && GM.CurrentMovementManager.Hands[1].Input.TriggerFloat > 0.2f)
					{
						if ((Object)(object)SpinnPosR == (Object)null && (Object)(object)RevolverDAR.PoseSpinHolder != (Object)null)
						{
							SpinnPosR = RevolverDAR.PoseSpinHolder;
							SpinnHR.transform.position = ((Component)SpinnPosR).transform.position;
							SpinnHR.transform.localEulerAngles = new Vector3(45f, 0f, 0f);
							WagPosR.transform.position = ((Component)RevolverDAR).gameObject.transform.position;
							WagPosR.transform.eulerAngles = ((Component)RevolverDAR).gameObject.transform.eulerAngles;
							((Component)RevolverDAR).gameObject.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[1]).gameObject.transform);
						}
						if (!GM.CurrentMovementManager.Hands[1].Input.GripPressed)
						{
							GM.CurrentMovementManager.Hands[1].Display_Controller.SetActive(false);
							GM.CurrentMovementManager.Hands[1].Display_InteractionSphere.SetActive(false);
							GM.CurrentMovementManager.Hands[1].Display_InteractionSphere_Palm.SetActive(false);
							if ((Object)(object)((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>() != (Object)null)
							{
								((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>().isKinematic = true;
							}
							((FVRInteractiveObject)RevolverDAR).IsSimpleInteract = true;
							((Component)RevolverDAR).gameObject.transform.position = WagPosR.transform.position;
							((Component)RevolverDAR).gameObject.transform.eulerAngles = WagPosR.transform.eulerAngles;
						}
					}
					if ((Object)(object)RevolverSAR != (Object)null && GM.CurrentMovementManager.Hands[1].Input.TriggerFloat > 0.2f)
					{
						if ((Object)(object)SpinnPosR == (Object)null && (Object)(object)RevolverSAR.PoseSpinHolder != (Object)null)
						{
							SpinnPosR = RevolverSAR.PoseSpinHolder;
							SpinnHR.transform.position = ((Component)SpinnPosR).transform.position;
							SpinnHR.transform.localEulerAngles = new Vector3(45f, 0f, 0f);
							WagPosR.transform.position = ((Component)RevolverSAR).gameObject.transform.position;
							WagPosR.transform.eulerAngles = ((Component)RevolverSAR).gameObject.transform.eulerAngles;
							((Component)RevolverSAR).gameObject.transform.SetParent(((Component)GM.CurrentMovementManager.Hands[1]).gameObject.transform);
						}
						if (!GM.CurrentMovementManager.Hands[1].Input.GripPressed)
						{
							GM.CurrentMovementManager.Hands[1].Display_Controller.SetActive(false);
							GM.CurrentMovementManager.Hands[1].Display_InteractionSphere.SetActive(false);
							GM.CurrentMovementManager.Hands[1].Display_InteractionSphere_Palm.SetActive(false);
							if ((Object)(object)((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>() != (Object)null)
							{
								((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>().isKinematic = true;
							}
							((FVRInteractiveObject)RevolverSAR).IsSimpleInteract = true;
							((Component)RevolverSAR).gameObject.transform.position = WagPosR.transform.position;
							((Component)RevolverSAR).gameObject.transform.eulerAngles = WagPosR.transform.eulerAngles;
						}
					}
				}
			}
			if (ToggleSpinn)
			{
				return;
			}
			isThrowingL = false;
			isThrowingR = false;
			cdL = 5f;
			cdR = 5f;
			if (GM.CurrentMovementManager.Hands[0].Input.TriggerFloat > 0.2f)
			{
				if (GM.CurrentMovementManager.Hands[0].Input.GripPressed)
				{
					if ((Object)(object)RS != (Object)null)
					{
						RS.canspinL = false;
					}
					if ((Object)(object)RevolverDAL != (Object)null)
					{
						if (GeoL.transform.localEulerAngles.x >= 260f && GeoL.transform.localEulerAngles.x <= 280f)
						{
							if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)(object)RevolverDAL)
							{
								WagL.angleLimitLeft = 0f;
								WagL.angleLimitRight = 0f;
								if ((Object)(object)((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>() != (Object)null)
								{
									((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>().useGravity = false;
									((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>().isKinematic = true;
								}
								((FVRInteractiveObject)RevolverDAL).IsSimpleInteract = false;
								((FVRInteractiveObject)RevolverDAL).BeginInteraction(GM.CurrentMovementManager.Hands[0]);
								GM.CurrentMovementManager.Hands[0].ForceSetInteractable((FVRInteractiveObject)(object)RevolverDAL);
							}
						}
						else
						{
							GM.CurrentMovementManager.Hands[0].Display_Controller.SetActive(false);
							GM.CurrentMovementManager.Hands[0].Display_InteractionSphere.SetActive(false);
							GM.CurrentMovementManager.Hands[0].Display_InteractionSphere_Palm.SetActive(false);
							if ((Object)(object)((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>() != (Object)null)
							{
								((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>().isKinematic = true;
							}
							((FVRInteractiveObject)RevolverDAL).IsSimpleInteract = true;
							((Component)RevolverDAL).gameObject.transform.position = WagPosL.transform.position;
							((Component)RevolverDAL).gameObject.transform.eulerAngles = WagPosL.transform.eulerAngles;
						}
					}
					if ((Object)(object)RevolverSAL != (Object)null)
					{
						if (GeoL.transform.localEulerAngles.x >= 260f && GeoL.transform.localEulerAngles.x <= 280f)
						{
							if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)(object)RevolverSAL)
							{
								WagL.angleLimitLeft = 0f;
								WagL.angleLimitRight = 0f;
								if ((Object)(object)((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>() != (Object)null)
								{
									((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>().useGravity = false;
									((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>().isKinematic = true;
								}
								((FVRInteractiveObject)RevolverSAL).IsSimpleInteract = false;
								((FVRInteractiveObject)RevolverSAL).BeginInteraction(GM.CurrentMovementManager.Hands[0]);
								GM.CurrentMovementManager.Hands[0].ForceSetInteractable((FVRInteractiveObject)(object)RevolverSAL);
							}
						}
						else
						{
							GM.CurrentMovementManager.Hands[0].Display_Controller.SetActive(false);
							GM.CurrentMovementManager.Hands[0].Display_InteractionSphere.SetActive(false);
							GM.CurrentMovementManager.Hands[0].Display_InteractionSphere_Palm.SetActive(false);
							if ((Object)(object)((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>() != (Object)null)
							{
								((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>().isKinematic = true;
							}
							((FVRInteractiveObject)RevolverSAL).IsSimpleInteract = true;
							((Component)RevolverSAL).gameObject.transform.position = WagPosL.transform.position;
							((Component)RevolverSAL).gameObject.transform.eulerAngles = WagPosL.transform.eulerAngles;
						}
					}
				}
				if (!GM.CurrentMovementManager.Hands[0].Input.GripPressed)
				{
					if ((Object)(object)RS != (Object)null)
					{
						RS.canspinL = false;
					}
					WagL.angleLimitLeft = 3600f;
					WagL.angleLimitRight = 3600f;
				}
			}
			if (GM.CurrentMovementManager.Hands[0].Input.TriggerFloat <= 0.2f)
			{
				if ((Object)(object)RS != (Object)null)
				{
					RS.canspinL = false;
				}
				if (!GM.CurrentMovementManager.Hands[0].Input.GripPressed)
				{
					if ((Object)(object)RevolverDAL != (Object)null)
					{
						if ((Object)(object)((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>() != (Object)null)
						{
							((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>().useGravity = true;
							((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>().isKinematic = false;
							((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>().AddForce(GM.CurrentMovementManager.Hands[0].Input.VelLinearWorld * ((Vector3)(ref GM.CurrentMovementManager.Hands[0].Input.VelLinearWorld)).magnitude * 0.25f, (ForceMode)2);
							if (num > 0f)
							{
								((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>().AddRelativeTorque(new Vector3(num2 * 0.01f, 0f, 0f), (ForceMode)2);
							}
							if (num <= 0f)
							{
								((Component)RevolverDAL).gameObject.GetComponent<Rigidbody>().AddRelativeTorque(new Vector3(num2 * 0.01f, 0f, 0f), (ForceMode)2);
							}
						}
						((Component)RevolverDAL).gameObject.transform.SetParent((Transform)null);
						RevolverDAL = null;
						SpinnPosL = null;
						WagPosL.transform.localPosition = new Vector3(0f, 0f, 0f);
						WagPosL.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
						SpinnHL.transform.localPosition = new Vector3(0f, 0f, 0f);
						GM.CurrentMovementManager.Hands[0].Display_Controller.SetActive(true);
						GM.CurrentMovementManager.Hands[0].Display_InteractionSphere.SetActive(true);
						GM.CurrentMovementManager.Hands[0].Display_InteractionSphere_Palm.SetActive(true);
					}
					if ((Object)(object)RevolverSAL != (Object)null)
					{
						if ((Object)(object)((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>() != (Object)null)
						{
							((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>().useGravity = true;
							((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>().isKinematic = false;
							((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>().AddForce(GM.CurrentMovementManager.Hands[0].Input.VelLinearWorld * ((Vector3)(ref GM.CurrentMovementManager.Hands[0].Input.VelLinearWorld)).magnitude * 0.25f, (ForceMode)2);
							if (num > 0f)
							{
								((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>().AddRelativeTorque(new Vector3(num2 * 0.01f, 0f, 0f), (ForceMode)2);
							}
							if (num <= 0f)
							{
								((Component)RevolverSAL).gameObject.GetComponent<Rigidbody>().AddRelativeTorque(new Vector3(num2 * 0.01f, 0f, 0f), (ForceMode)2);
							}
						}
						((Component)RevolverSAL).gameObject.transform.SetParent((Transform)null);
						RevolverSAL = null;
						SpinnPosL = null;
						WagPosL.transform.localPosition = new Vector3(0f, 0f, 0f);
						WagPosL.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
						SpinnHL.transform.localPosition = new Vector3(0f, 0f, 0f);
						GM.CurrentMovementManager.Hands[0].Display_Controller.SetActive(true);
						GM.CurrentMovementManager.Hands[0].Display_InteractionSphere.SetActive(true);
						GM.CurrentMovementManager.Hands[0].Display_InteractionSphere_Palm.SetActive(true);
					}
				}
				WagL.angleLimitLeft = 0f;
				WagL.angleLimitRight = 0f;
			}
			if (GM.CurrentMovementManager.Hands[1].Input.TriggerFloat > 0.2f)
			{
				if (GM.CurrentMovementManager.Hands[1].Input.GripPressed)
				{
					if ((Object)(object)RS != (Object)null)
					{
						RS.canspinR = false;
					}
					if ((Object)(object)RevolverDAR != (Object)null)
					{
						if (GeoR.transform.localEulerAngles.x >= 260f && GeoR.transform.localEulerAngles.x <= 280f)
						{
							if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)(object)RevolverDAR)
							{
								WagR.angleLimitLeft = 0f;
								WagR.angleLimitRight = 0f;
								if ((Object)(object)((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>() != (Object)null)
								{
									((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>().useGravity = false;
									((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>().isKinematic = true;
								}
								((FVRInteractiveObject)RevolverDAR).IsSimpleInteract = false;
								((FVRInteractiveObject)RevolverDAR).BeginInteraction(GM.CurrentMovementManager.Hands[1]);
								GM.CurrentMovementManager.Hands[1].ForceSetInteractable((FVRInteractiveObject)(object)RevolverDAR);
							}
						}
						else
						{
							GM.CurrentMovementManager.Hands[1].Display_Controller.SetActive(false);
							GM.CurrentMovementManager.Hands[1].Display_InteractionSphere.SetActive(false);
							GM.CurrentMovementManager.Hands[1].Display_InteractionSphere_Palm.SetActive(false);
							if ((Object)(object)((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>() != (Object)null)
							{
								((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>().isKinematic = true;
							}
							((FVRInteractiveObject)RevolverDAR).IsSimpleInteract = true;
							((Component)RevolverDAR).gameObject.transform.position = WagPosR.transform.position;
							((Component)RevolverDAR).gameObject.transform.eulerAngles = WagPosR.transform.eulerAngles;
						}
					}
					if ((Object)(object)RevolverSAR != (Object)null)
					{
						if (GeoR.transform.localEulerAngles.x >= 260f && GeoR.transform.localEulerAngles.x <= 280f)
						{
							if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)(object)RevolverSAR)
							{
								WagR.angleLimitLeft = 0f;
								WagR.angleLimitRight = 0f;
								if ((Object)(object)((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>() != (Object)null)
								{
									((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>().useGravity = false;
									((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>().isKinematic = true;
								}
								((FVRInteractiveObject)RevolverSAR).IsSimpleInteract = false;
								((FVRInteractiveObject)RevolverSAR).BeginInteraction(GM.CurrentMovementManager.Hands[1]);
								GM.CurrentMovementManager.Hands[1].ForceSetInteractable((FVRInteractiveObject)(object)RevolverSAR);
							}
						}
						else
						{
							GM.CurrentMovementManager.Hands[1].Display_Controller.SetActive(false);
							GM.CurrentMovementManager.Hands[1].Display_InteractionSphere.SetActive(false);
							GM.CurrentMovementManager.Hands[1].Display_InteractionSphere_Palm.SetActive(false);
							if ((Object)(object)((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>() != (Object)null)
							{
								((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>().isKinematic = true;
							}
							((FVRInteractiveObject)RevolverSAR).IsSimpleInteract = true;
							((Component)RevolverSAR).gameObject.transform.position = WagPosR.transform.position;
							((Component)RevolverSAR).gameObject.transform.eulerAngles = WagPosR.transform.eulerAngles;
						}
					}
				}
				if (!GM.CurrentMovementManager.Hands[1].Input.GripPressed)
				{
					if ((Object)(object)RS != (Object)null)
					{
						RS.canspinR = false;
					}
					WagR.angleLimitLeft = 3600f;
					WagR.angleLimitRight = 3600f;
				}
			}
			if (GM.CurrentMovementManager.Hands[1].Input.TriggerFloat <= 0.2f)
			{
				if ((Object)(object)RS != (Object)null)
				{
					RS.canspinR = false;
				}
				if (!GM.CurrentMovementManager.Hands[1].Input.GripPressed)
				{
					if ((Object)(object)RevolverDAR != (Object)null)
					{
						if ((Object)(object)((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>() != (Object)null)
						{
							((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>().useGravity = true;
							((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>().isKinematic = false;
							((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>().AddForce(GM.CurrentMovementManager.Hands[1].Input.VelLinearWorld * ((Vector3)(ref GM.CurrentMovementManager.Hands[1].Input.VelLinearWorld)).magnitude * 0.25f, (ForceMode)2);
							if (num3 > 0f)
							{
								((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>().AddRelativeTorque(new Vector3(num4 * 0.01f, 0f, 0f), (ForceMode)2);
							}
							if (num3 <= 0f)
							{
								((Component)RevolverDAR).gameObject.GetComponent<Rigidbody>().AddRelativeTorque(new Vector3(num4 * 0.01f, 0f, 0f), (ForceMode)2);
							}
						}
						((Component)RevolverDAR).gameObject.transform.SetParent((Transform)null);
						RevolverDAR = null;
						SpinnPosR = null;
						WagPosR.transform.localPosition = new Vector3(0f, 0f, 0f);
						WagPosR.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
						SpinnHR.transform.localPosition = new Vector3(0f, 0f, 0f);
						GM.CurrentMovementManager.Hands[1].Display_Controller.SetActive(true);
						GM.CurrentMovementManager.Hands[1].Display_InteractionSphere.SetActive(true);
						GM.CurrentMovementManager.Hands[1].Display_InteractionSphere_Palm.SetActive(true);
					}
					if ((Object)(object)RevolverSAR != (Object)null)
					{
						if ((Object)(object)((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>() != (Object)null)
						{
							((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>().useGravity = true;
							((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>().isKinematic = false;
							((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>().AddForce(GM.CurrentMovementManager.Hands[1].Input.VelLinearWorld * ((Vector3)(ref GM.CurrentMovementManager.Hands[1].Input.VelLinearWorld)).magnitude * 0.25f, (ForceMode)2);
							if (num3 > 0f)
							{
								((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>().AddRelativeTorque(new Vector3(num4 * 0.01f, 0f, 0f), (ForceMode)2);
							}
							if (num3 <= 0f)
							{
								((Component)RevolverSAR).gameObject.GetComponent<Rigidbody>().AddRelativeTorque(new Vector3(num4 * 0.01f, 0f, 0f), (ForceMode)2);
							}
						}
						((Component)RevolverSAR).gameObject.transform.SetParent((Transform)null);
						RevolverSAR = null;
						SpinnPosR = null;
						WagPosR.transform.localPosition = new Vector3(0f, 0f, 0f);
						WagPosR.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
						SpinnHR.transform.localPosition = new Vector3(0f, 0f, 0f);
						GM.CurrentMovementManager.Hands[1].Display_Controller.SetActive(true);
						GM.CurrentMovementManager.Hands[1].Display_InteractionSphere.SetActive(true);
						GM.CurrentMovementManager.Hands[1].Display_InteractionSphere_Palm.SetActive(true);
					}
				}
				WagR.angleLimitLeft = 0f;
				WagR.angleLimitRight = 0f;
			}
			if ((Object)(object)GM.CurrentMovementManager.Hands[0].m_currentInteractable != (Object)null)
			{
				if ((Object)(object)RevolverDAL == (Object)null && (Object)(object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.GetComponent<Revolver>() != (Object)null)
				{
					RevolverDAL = ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.GetComponent<Revolver>();
				}
				if ((Object)(object)RevolverSAL == (Object)null && (Object)(object)((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.GetComponent<SingleActionRevolver>() != (Object)null)
				{
					RevolverSAL = ((Component)GM.CurrentMovementManager.Hands[0].m_currentInteractable).gameObject.GetComponent<SingleActionRevolver>();
				}
			}
			if ((Object)(object)GM.CurrentMovementManager.Hands[1].m_currentInteractable != (Object)null)
			{
				if ((Object)(object)RevolverDAR == (Object)null && (Object)(object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.GetComponent<Revolver>() != (Object)null)
				{
					RevolverDAR = ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.GetComponent<Revolver>();
				}
				if ((Object)(object)RevolverSAR == (Object)null && (Object)(object)((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.GetComponent<SingleActionRevolver>() != (Object)null)
				{
					RevolverSAR = ((Component)GM.CurrentMovementManager.Hands[1].m_currentInteractable).gameObject.GetComponent<SingleActionRevolver>();
				}
			}
		}
	}
	public class RevolverSpin : MonoBehaviour
	{
		public bool canspinL;

		public bool canspinR;

		public GameObject GeoL;

		public GameObject GeoR;

		public AudioEvent aud;

		public AudioEvent grab;

		public bool SpinnAudTrigL;

		public bool SpinnAudTrigR;

		public void Update()
		{
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_008f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0132: Unknown result type (might be due to invalid IL or missing references)
			//IL_0137: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_0154: Unknown result type (might be due to invalid IL or missing references)
			//IL_0159: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0200: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0108: Unknown result type (might be due to invalid IL or missing references)
			//IL_029b: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0241: Unknown result type (might be due to invalid IL or missing references)
			//IL_0246: Unknown result type (might be due to invalid IL or missing references)
			//IL_021e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0223: Unknown result type (might be due to invalid IL or missing references)
			//IL_018b: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02be: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0264: Unknown result type (might be due to invalid IL or missing references)
			//IL_0269: Unknown result type (might be due to invalid IL or missing references)
			//IL_0327: Unknown result type (might be due to invalid IL or missing references)
			//IL_032c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0304: Unknown result type (might be due to invalid IL or missing references)
			//IL_0309: Unknown result type (might be due to invalid IL or missing references)
			//IL_034a: Unknown result type (might be due to invalid IL or missing references)
			//IL_034f: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)GeoL == (Object)null)
			{
				GeoL = GameObject.Find("GeoL(Clone)");
			}
			if ((Object)(object)GeoR == (Object)null)
			{
				GeoR = GameObject.Find("GeoR(Clone)");
			}
			((Component)this).gameObject.transform.position = ((Component)GM.CurrentMovementManager.Head).gameObject.transform.position;
			((Component)this).gameObject.transform.rotation = ((Component)GM.CurrentMovementManager.Head).gameObject.transform.rotation;
			if (canspinL && GeoL.transform.localEulerAngles.x >= 260f && GeoL.transform.localEulerAngles.x <= 280f && !SpinnAudTrigL)
			{
				SM.PlayCoreSound((FVRPooledAudioType)41, aud, GeoL.transform.position);
				SpinnAudTrigL = true;
			}
			if (canspinR && GeoR.transform.localEulerAngles.x >= 260f && GeoR.transform.localEulerAngles.x <= 280f && !SpinnAudTrigR)
			{
				SM.PlayCoreSound((FVRPooledAudioType)41, aud, GeoR.transform.position);
				SpinnAudTrigR = true;
			}
			if (!canspinL || (GeoL.transform.localEulerAngles.x < 260f && GeoL.transform.localEulerAngles.x >= 180f) || (GeoL.transform.localEulerAngles.x > 280f && GeoL.transform.localEulerAngles.x <= 360f) || (GeoL.transform.localEulerAngles.x > 0f && GeoL.transform.localEulerAngles.x <= 180f))
			{
				SpinnAudTrigL = false;
			}
			if (!canspinR || (GeoR.transform.localEulerAngles.x < 260f && GeoR.transform.localEulerAngles.x >= 180f) || (GeoR.transform.localEulerAngles.x > 280f && GeoR.transform.localEulerAngles.x <= 360f) || (GeoR.transform.localEulerAngles.x > 0f && GeoR.transform.localEulerAngles.x <= 180f))
			{
				SpinnAudTrigR = false;
			}
		}
	}
}