using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.Demos
{
	// Token: 0x020003EC RID: 1004
	[Token(Token = "0x20003EC")]
	public class UserControlThirdPerson : MonoBehaviour
	{
		// Token: 0x06002417 RID: 9239 RVA: 0x000522C8 File Offset: 0x000504C8
		[Token(Token = "0x6002417")]
		[Address(RVA = "0x8C4000", Offset = "0x8C2E00", VA = "0x1808C4000")]
		private void Start()
		{
			Transform transform = Camera.main.transform;
			this.cam = transform;
			throw new NullReferenceException();
		}

		// Token: 0x06002418 RID: 9240 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002418")]
		[Address(RVA = "0x8C4040", Offset = "0x8C2E40", VA = "0x1808C4040", Slot = "4")]
		protected virtual void Update()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002419 RID: 9241 RVA: 0x000522F0 File Offset: 0x000504F0
		[Token(Token = "0x6002419")]
		[Address(RVA = "0x8C4370", Offset = "0x8C3170", VA = "0x1808C4370")]
		public UserControlThirdPerson()
		{
		}

		// Token: 0x04002DE3 RID: 11747
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4002DE3")]
		public bool walkByDefault;

		// Token: 0x04002DE4 RID: 11748
		[FieldOffset(Offset = "0x19")]
		[Token(Token = "0x4002DE4")]
		public bool canCrouch = true;

		// Token: 0x04002DE5 RID: 11749
		[FieldOffset(Offset = "0x1A")]
		[Token(Token = "0x4002DE5")]
		public bool canJump;

		// Token: 0x04002DE6 RID: 11750
		[FieldOffset(Offset = "0x1C")]
		[Token(Token = "0x4002DE6")]
		public UserControlThirdPerson.State state;

		// Token: 0x04002DE7 RID: 11751
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x4002DE7")]
		protected Transform cam;

		// Token: 0x020003ED RID: 1005
		[Token(Token = "0x20003ED")]
		public struct State
		{
			// Token: 0x04002DE8 RID: 11752
			[FieldOffset(Offset = "0x0")]
			[Token(Token = "0x4002DE8")]
			public Vector3 move;

			// Token: 0x04002DE9 RID: 11753
			[FieldOffset(Offset = "0xC")]
			[Token(Token = "0x4002DE9")]
			public Vector3 lookPos;

			// Token: 0x04002DEA RID: 11754
			[FieldOffset(Offset = "0x18")]
			[Token(Token = "0x4002DEA")]
			public bool crouch;

			// Token: 0x04002DEB RID: 11755
			[FieldOffset(Offset = "0x19")]
			[Token(Token = "0x4002DEB")]
			public bool jump;

			// Token: 0x04002DEC RID: 11756
			[FieldOffset(Offset = "0x1C")]
			[Token(Token = "0x4002DEC")]
			public int actionIndex;
		}
	}
}
