using System;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
using UnityEngine;

namespace Obi.CrossPlatformInput
{
	// Token: 0x0200054C RID: 1356
	[Token(Token = "0x200054C")]
	public static class CrossPlatformInputManager
	{
		// Token: 0x06002F22 RID: 12066 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002F22")]
		[Address(RVA = "0x12F1790", Offset = "0x12F0790", VA = "0x1812F1790")]
		static CrossPlatformInputManager()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002F23 RID: 12067 RVA: 0x000672F4 File Offset: 0x000654F4
		[Token(Token = "0x6002F23")]
		[Address(RVA = "0x12F1520", Offset = "0x12F0520", VA = "0x1812F1520")]
		public static void SwitchActiveInputMethod(CrossPlatformInputManager.ActiveInputMethod activeInputMethod)
		{
			if (activeInputMethod == CrossPlatformInputManager.ActiveInputMethod.Hardware)
			{
				CrossPlatformInputManager.activeInput = CrossPlatformInputManager.s_HardwareInput;
			}
			if (activeInputMethod == CrossPlatformInputManager.ActiveInputMethod.Touch)
			{
				CrossPlatformInputManager.activeInput = CrossPlatformInputManager.s_TouchInput;
			}
		}

		// Token: 0x06002F24 RID: 12068 RVA: 0x00067320 File Offset: 0x00065520
		[Token(Token = "0x6002F24")]
		[Address(RVA = "0x12F0BC0", Offset = "0x12EFBC0", VA = "0x1812F0BC0")]
		public static bool AxisExists(string name)
		{
			return CrossPlatformInputManager.activeInput.AxisExists(name);
		}

		// Token: 0x06002F25 RID: 12069 RVA: 0x00067340 File Offset: 0x00065540
		[Token(Token = "0x6002F25")]
		[Address(RVA = "0x12F0C40", Offset = "0x12EFC40", VA = "0x1812F0C40")]
		public static bool ButtonExists(string name)
		{
			return CrossPlatformInputManager.activeInput.ButtonExists(name);
		}

		// Token: 0x06002F26 RID: 12070 RVA: 0x00067360 File Offset: 0x00065560
		[Token(Token = "0x6002F26")]
		[Address(RVA = "0x12F0F90", Offset = "0x12EFF90", VA = "0x1812F0F90")]
		public static void RegisterVirtualAxis(CrossPlatformInputManager.VirtualAxis axis)
		{
			CrossPlatformInputManager.activeInput.RegisterVirtualAxis(axis);
		}

		// Token: 0x06002F27 RID: 12071 RVA: 0x00067380 File Offset: 0x00065580
		[Token(Token = "0x6002F27")]
		[Address(RVA = "0x12F1010", Offset = "0x12F0010", VA = "0x1812F1010")]
		public static void RegisterVirtualButton(CrossPlatformInputManager.VirtualButton button)
		{
			CrossPlatformInputManager.activeInput.RegisterVirtualButton(button);
		}

		// Token: 0x06002F28 RID: 12072 RVA: 0x000673A0 File Offset: 0x000655A0
		[Token(Token = "0x6002F28")]
		[Address(RVA = "0x12F15D0", Offset = "0x12F05D0", VA = "0x1812F15D0")]
		public static void UnRegisterVirtualAxis(string name)
		{
			/*
An exception occurred when decompiling this method (06002F28)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void Obi.CrossPlatformInput.CrossPlatformInputManager::UnRegisterVirtualAxis(System.String)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	IL_10:; 	stloc:ArgumentNullException(var_0_1A, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("name"))); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1836
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1836
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1804
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
		}

		// Token: 0x06002F29 RID: 12073 RVA: 0x000673C8 File Offset: 0x000655C8
		[Token(Token = "0x6002F29")]
		[Address(RVA = "0x12F1690", Offset = "0x12F0690", VA = "0x1812F1690")]
		public static void UnRegisterVirtualButton(string name)
		{
			CrossPlatformInputManager.activeInput.UnRegisterVirtualButton(name);
		}

		// Token: 0x06002F2A RID: 12074 RVA: 0x000673E8 File Offset: 0x000655E8
		[Token(Token = "0x6002F2A")]
		[Address(RVA = "0x12F1710", Offset = "0x12F0710", VA = "0x1812F1710")]
		public static CrossPlatformInputManager.VirtualAxis VirtualAxisReference(string name)
		{
			return CrossPlatformInputManager.activeInput.VirtualAxisReference(name);
		}

		// Token: 0x06002F2B RID: 12075 RVA: 0x00067408 File Offset: 0x00065608
		[Token(Token = "0x6002F2B")]
		[Address(RVA = "0x12F0D20", Offset = "0x12EFD20", VA = "0x1812F0D20")]
		public static float GetAxis(string name)
		{
			int num = 0;
			return CrossPlatformInputManager.GetAxis(name, num != 0);
		}

		// Token: 0x06002F2C RID: 12076 RVA: 0x00067420 File Offset: 0x00065620
		[Token(Token = "0x6002F2C")]
		[Address(RVA = "0x12F0CC0", Offset = "0x12EFCC0", VA = "0x1812F0CC0")]
		public static float GetAxisRaw(string name)
		{
			return CrossPlatformInputManager.GetAxis(name, true);
		}

		// Token: 0x06002F2D RID: 12077 RVA: 0x00067434 File Offset: 0x00065634
		[Token(Token = "0x6002F2D")]
		[Address(RVA = "0x12F0D80", Offset = "0x12EFD80", VA = "0x1812F0D80")]
		private static float GetAxis(string name, bool raw)
		{
			return CrossPlatformInputManager.activeInput.GetAxis(name, raw);
		}

		// Token: 0x06002F2E RID: 12078 RVA: 0x00067454 File Offset: 0x00065654
		[Token(Token = "0x6002F2E")]
		[Address(RVA = "0x12F0F10", Offset = "0x12EFF10", VA = "0x1812F0F10")]
		public static bool GetButton(string name)
		{
			return CrossPlatformInputManager.activeInput.GetButton(name);
		}

		// Token: 0x06002F2F RID: 12079 RVA: 0x00067474 File Offset: 0x00065674
		[Token(Token = "0x6002F2F")]
		[Address(RVA = "0x12F0E10", Offset = "0x12EFE10", VA = "0x1812F0E10")]
		public static bool GetButtonDown(string name)
		{
			return CrossPlatformInputManager.activeInput.GetButton(name);
		}

		// Token: 0x06002F30 RID: 12080 RVA: 0x00067494 File Offset: 0x00065694
		[Token(Token = "0x6002F30")]
		[Address(RVA = "0x12F0E90", Offset = "0x12EFE90", VA = "0x1812F0E90")]
		public static bool GetButtonUp(string name)
		{
			return CrossPlatformInputManager.activeInput.GetButton(name);
		}

		// Token: 0x06002F31 RID: 12081 RVA: 0x000674B4 File Offset: 0x000656B4
		[Token(Token = "0x6002F31")]
		[Address(RVA = "0x12F12A0", Offset = "0x12F02A0", VA = "0x1812F12A0")]
		public static void SetButtonDown(string name)
		{
			bool button = CrossPlatformInputManager.activeInput.GetButton(name);
		}

		// Token: 0x06002F32 RID: 12082 RVA: 0x000674D4 File Offset: 0x000656D4
		[Token(Token = "0x6002F32")]
		[Address(RVA = "0x12F1320", Offset = "0x12F0320", VA = "0x1812F1320")]
		public static void SetButtonUp(string name)
		{
			bool button = CrossPlatformInputManager.activeInput.GetButton(name);
		}

		// Token: 0x06002F33 RID: 12083 RVA: 0x000674F4 File Offset: 0x000656F4
		[Token(Token = "0x6002F33")]
		[Address(RVA = "0x12F1110", Offset = "0x12F0110", VA = "0x1812F1110")]
		public static void SetAxisPositive(string name)
		{
			bool button = CrossPlatformInputManager.activeInput.GetButton(name);
		}

		// Token: 0x06002F34 RID: 12084 RVA: 0x00067514 File Offset: 0x00065714
		[Token(Token = "0x6002F34")]
		[Address(RVA = "0x12F1090", Offset = "0x12F0090", VA = "0x1812F1090")]
		public static void SetAxisNegative(string name)
		{
			bool button = CrossPlatformInputManager.activeInput.GetButton(name);
		}

		// Token: 0x06002F35 RID: 12085 RVA: 0x00067534 File Offset: 0x00065734
		[Token(Token = "0x6002F35")]
		[Address(RVA = "0x12F1190", Offset = "0x12F0190", VA = "0x1812F1190")]
		public static void SetAxisZero(string name)
		{
			bool button = CrossPlatformInputManager.activeInput.GetButton(name);
		}

		// Token: 0x06002F36 RID: 12086 RVA: 0x00067554 File Offset: 0x00065754
		[Token(Token = "0x6002F36")]
		[Address(RVA = "0x12F1210", Offset = "0x12F0210", VA = "0x1812F1210")]
		public static void SetAxis(string name, float value)
		{
			bool button = CrossPlatformInputManager.activeInput.GetButton(name);
		}

		// Token: 0x17000339 RID: 825
		// (get) Token: 0x06002F37 RID: 12087 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x17000339")]
		public static Vector3 mousePosition
		{
			[Token(Token = "0x6002F37")]
			[Address(RVA = "0x12F1860", Offset = "0x12F0860", VA = "0x1812F1860")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x06002F38 RID: 12088 RVA: 0x00067574 File Offset: 0x00065774
		[Token(Token = "0x6002F38")]
		[Address(RVA = "0x12F13A0", Offset = "0x12F03A0", VA = "0x1812F13A0")]
		public static void SetVirtualMousePositionX(float f)
		{
			CrossPlatformInputManager.activeInput.SetVirtualMousePositionX(f);
		}

		// Token: 0x06002F39 RID: 12089 RVA: 0x00067594 File Offset: 0x00065794
		[Token(Token = "0x6002F39")]
		[Address(RVA = "0x12F1420", Offset = "0x12F0420", VA = "0x1812F1420")]
		public static void SetVirtualMousePositionY(float f)
		{
			CrossPlatformInputManager.activeInput.SetVirtualMousePositionY(f);
		}

		// Token: 0x06002F3A RID: 12090 RVA: 0x000675B4 File Offset: 0x000657B4
		[Token(Token = "0x6002F3A")]
		[Address(RVA = "0x12F14A0", Offset = "0x12F04A0", VA = "0x1812F14A0")]
		public static void SetVirtualMousePositionZ(float f)
		{
			CrossPlatformInputManager.activeInput.SetVirtualMousePositionZ(f);
		}

		// Token: 0x040037A4 RID: 14244
		[Token(Token = "0x40037A4")]
		private static VirtualInput activeInput;

		// Token: 0x040037A5 RID: 14245
		[Token(Token = "0x40037A5")]
		private static VirtualInput s_TouchInput;

		// Token: 0x040037A6 RID: 14246
		[Token(Token = "0x40037A6")]
		private static VirtualInput s_HardwareInput;

		// Token: 0x0200054D RID: 1357
		[Token(Token = "0x200054D")]
		public enum ActiveInputMethod
		{
			// Token: 0x040037A8 RID: 14248
			[Token(Token = "0x40037A8")]
			Hardware,
			// Token: 0x040037A9 RID: 14249
			[Token(Token = "0x40037A9")]
			Touch
		}

		// Token: 0x0200054E RID: 1358
		[Token(Token = "0x200054E")]
		public class VirtualAxis
		{
			// Token: 0x1700033A RID: 826
			// (get) Token: 0x06002F3B RID: 12091 RVA: 0x000675D4 File Offset: 0x000657D4
			// (set) Token: 0x06002F3C RID: 12092 RVA: 0x000675E8 File Offset: 0x000657E8
			[Token(Token = "0x1700033A")]
			public string name
			{
				[Token(Token = "0x6002F3B")]
				[Address(RVA = "0x32FD80", Offset = "0x32ED80", VA = "0x18032FD80")]
				[CompilerGenerated]
				get
				{
					return this.<name>k__BackingField;
				}
				[Token(Token = "0x6002F3C")]
				[Address(RVA = "0x3EDC60", Offset = "0x3ECC60", VA = "0x1803EDC60")]
				[CompilerGenerated]
				private set
				{
					/*
An exception occurred when decompiling this method (06002F3C)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void Obi.CrossPlatformInput.CrossPlatformInputManager/VirtualAxis::set_name(System.String)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	Block_0:; 	stfld:string(VirtualAxis::<name>k__BackingField, ldloc:VirtualAxis(this), ldloc:string(value)); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
				}
			}

			// Token: 0x1700033B RID: 827
			// (get) Token: 0x06002F3D RID: 12093 RVA: 0x000675FC File Offset: 0x000657FC
			// (set) Token: 0x06002F3E RID: 12094 RVA: 0x00067610 File Offset: 0x00065810
			[Token(Token = "0x1700033B")]
			public bool matchWithInputManager
			{
				[Token(Token = "0x6002F3D")]
				[Address(RVA = "0x611F40", Offset = "0x610F40", VA = "0x180611F40")]
				get;
				[Token(Token = "0x6002F3E")]
				[Address(RVA = "0x612240", Offset = "0x611240", VA = "0x180612240")]
				private set;
			}

			// Token: 0x06002F3F RID: 12095 RVA: 0x00067624 File Offset: 0x00065824
			[Token(Token = "0x6002F3F")]
			[Address(RVA = "0x19C5450", Offset = "0x19C4450", VA = "0x1819C5450")]
			public VirtualAxis(string name)
			{
				this.<name>k__BackingField = name;
				this.matchWithInputManager = true;
			}

			// Token: 0x06002F40 RID: 12096 RVA: 0x00067648 File Offset: 0x00065848
			[Token(Token = "0x6002F40")]
			[Address(RVA = "0x19C5490", Offset = "0x19C4490", VA = "0x1819C5490")]
			public VirtualAxis(string name, bool matchToInputSettings)
			{
				this.<name>k__BackingField = name;
				this.matchWithInputManager = matchToInputSettings;
			}

			// Token: 0x06002F41 RID: 12097 RVA: 0x0006766C File Offset: 0x0006586C
			[Token(Token = "0x6002F41")]
			[Address(RVA = "0x19C53F0", Offset = "0x19C43F0", VA = "0x1819C53F0")]
			public void Remove()
			{
				CrossPlatformInputManager.UnRegisterVirtualAxis(this.<name>k__BackingField);
			}

			// Token: 0x06002F42 RID: 12098 RVA: 0x00067684 File Offset: 0x00065884
			[Token(Token = "0x6002F42")]
			[Address(RVA = "0x75AF60", Offset = "0x759F60", VA = "0x18075AF60")]
			public void Update(float value)
			{
				this.m_Value = value;
			}

			// Token: 0x1700033C RID: 828
			// (get) Token: 0x06002F43 RID: 12099 RVA: 0x00067698 File Offset: 0x00065898
			[Token(Token = "0x1700033C")]
			public float GetValue
			{
				[Token(Token = "0x6002F43")]
				[Address(RVA = "0x75AF40", Offset = "0x759F40", VA = "0x18075AF40")]
				get
				{
					return this.m_Value;
				}
			}

			// Token: 0x1700033D RID: 829
			// (get) Token: 0x06002F44 RID: 12100 RVA: 0x000676AC File Offset: 0x000658AC
			[Token(Token = "0x1700033D")]
			public float GetValueRaw
			{
				[Token(Token = "0x6002F44")]
				[Address(RVA = "0x75AF40", Offset = "0x759F40", VA = "0x18075AF40")]
				get
				{
					return this.m_Value;
				}
			}

			// Token: 0x040037AB RID: 14251
			[FieldOffset(Offset = "0x18")]
			[Token(Token = "0x40037AB")]
			private float m_Value;
		}

		// Token: 0x0200054F RID: 1359
		[Token(Token = "0x200054F")]
		public class VirtualButton
		{
			// Token: 0x1700033E RID: 830
			// (get) Token: 0x06002F45 RID: 12101 RVA: 0x000676C0 File Offset: 0x000658C0
			// (set) Token: 0x06002F46 RID: 12102 RVA: 0x000676D4 File Offset: 0x000658D4
			[Token(Token = "0x1700033E")]
			public string name
			{
				[Token(Token = "0x6002F45")]
				[Address(RVA = "0x32FD80", Offset = "0x32ED80", VA = "0x18032FD80")]
				[CompilerGenerated]
				get
				{
					return this.<name>k__BackingField;
				}
				[Token(Token = "0x6002F46")]
				[Address(RVA = "0x3EDC60", Offset = "0x3ECC60", VA = "0x1803EDC60")]
				[CompilerGenerated]
				private set
				{
					/*
An exception occurred when decompiling this method (06002F46)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void Obi.CrossPlatformInput.CrossPlatformInputManager/VirtualButton::set_name(System.String)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	Block_0:; 	stfld:string(VirtualButton::<name>k__BackingField, ldloc:VirtualButton(this), ldloc:string(value)); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
				}
			}

			// Token: 0x1700033F RID: 831
			// (get) Token: 0x06002F47 RID: 12103 RVA: 0x000676E8 File Offset: 0x000658E8
			// (set) Token: 0x06002F48 RID: 12104 RVA: 0x000676FC File Offset: 0x000658FC
			[Token(Token = "0x1700033F")]
			public bool matchWithInputManager
			{
				[Token(Token = "0x6002F47")]
				[Address(RVA = "0x368050", Offset = "0x367050", VA = "0x180368050")]
				get;
				[Token(Token = "0x6002F48")]
				[Address(RVA = "0x368060", Offset = "0x367060", VA = "0x180368060")]
				private set;
			}

			// Token: 0x06002F49 RID: 12105 RVA: 0x00067710 File Offset: 0x00065910
			[Token(Token = "0x6002F49")]
			[Address(RVA = "0x19C5590", Offset = "0x19C4590", VA = "0x1819C5590")]
			public VirtualButton(string name)
			{
				this.<name>k__BackingField = name;
				this.matchWithInputManager = true;
			}

			// Token: 0x06002F4A RID: 12106 RVA: 0x00067754 File Offset: 0x00065954
			[Token(Token = "0x6002F4A")]
			[Address(RVA = "0x19C55E0", Offset = "0x19C45E0", VA = "0x1819C55E0")]
			public VirtualButton(string name, bool matchToInputSettings)
			{
				this.<name>k__BackingField = name;
				this.matchWithInputManager = matchToInputSettings;
			}

			// Token: 0x06002F4B RID: 12107 RVA: 0x00067798 File Offset: 0x00065998
			[Token(Token = "0x6002F4B")]
			[Address(RVA = "0x19C54E0", Offset = "0x19C44E0", VA = "0x1819C54E0")]
			public void Pressed()
			{
				if (!this.m_Pressed)
				{
					this.m_Pressed = true;
					int frameCount = Time.frameCount;
					this.m_LastPressedFrame = frameCount;
				}
			}

			// Token: 0x06002F4C RID: 12108 RVA: 0x000677C4 File Offset: 0x000659C4
			[Token(Token = "0x6002F4C")]
			[Address(RVA = "0x19C5510", Offset = "0x19C4510", VA = "0x1819C5510")]
			public void Released()
			{
				this.m_Pressed = false;
				int frameCount = Time.frameCount;
				this.m_ReleasedFrame = frameCount;
			}

			// Token: 0x06002F4D RID: 12109 RVA: 0x000677E8 File Offset: 0x000659E8
			[Token(Token = "0x6002F4D")]
			[Address(RVA = "0x19C5530", Offset = "0x19C4530", VA = "0x1819C5530")]
			public void Remove()
			{
				CrossPlatformInputManager.UnRegisterVirtualButton(this.<name>k__BackingField);
			}

			// Token: 0x17000340 RID: 832
			// (get) Token: 0x06002F4E RID: 12110 RVA: 0x00067800 File Offset: 0x00065A00
			[Token(Token = "0x17000340")]
			public bool GetButton
			{
				[Token(Token = "0x6002F4E")]
				[Address(RVA = "0x41F3F0", Offset = "0x41E3F0", VA = "0x18041F3F0")]
				get
				{
					return this.m_Pressed;
				}
			}

			// Token: 0x17000341 RID: 833
			// (get) Token: 0x06002F4F RID: 12111 RVA: 0x00067814 File Offset: 0x00065A14
			[Token(Token = "0x17000341")]
			public bool GetButtonDown
			{
				[Token(Token = "0x6002F4F")]
				[Address(RVA = "0x19C5640", Offset = "0x19C4640", VA = "0x1819C5640")]
				get
				{
					int num = this.m_LastPressedFrame;
					int frameCount = Time.frameCount;
					num -= frameCount;
					return num == -1;
				}
			}

			// Token: 0x17000342 RID: 834
			// (get) Token: 0x06002F50 RID: 12112 RVA: 0x00067838 File Offset: 0x00065A38
			[Token(Token = "0x17000342")]
			public bool GetButtonUp
			{
				[Token(Token = "0x6002F50")]
				[Address(RVA = "0x19C5660", Offset = "0x19C4660", VA = "0x1819C5660")]
				get
				{
					int releasedFrame = this.m_ReleasedFrame;
					int frameCount = Time.frameCount;
					return releasedFrame == frameCount;
				}
			}

			// Token: 0x040037AF RID: 14255
			[FieldOffset(Offset = "0x1C")]
			[Token(Token = "0x40037AF")]
			private int m_LastPressedFrame = (int)((ulong)4294967291L);

			// Token: 0x040037B0 RID: 14256
			[FieldOffset(Offset = "0x20")]
			[Token(Token = "0x40037B0")]
			private int m_ReleasedFrame = (int)((ulong)4294967291L);

			// Token: 0x040037B1 RID: 14257
			[FieldOffset(Offset = "0x24")]
			[Token(Token = "0x40037B1")]
			private bool m_Pressed;
		}
	}
}
