using System;
using System.Collections.Generic;
using System.Linq;
using Cpp2IlInjected;
using MarsSDK;
using Newtonsoft.Json;
using UnityEngine;

// Token: 0x0200017F RID: 383
[Token(Token = "0x200017F")]
public class Win64Platform : IGamePlatform
{
	// Token: 0x17000097 RID: 151
	// (get) Token: 0x060012E1 RID: 4833 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x17000097")]
	public ControllerDevice DefaultController
	{
		[Token(Token = "0x60012E1")]
		[Address(RVA = "0x2FF2E0", Offset = "0x2FE2E0", VA = "0x1802FF2E0", Slot = "4")]
		get
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}
	}

	// Token: 0x17000098 RID: 152
	// (get) Token: 0x060012E2 RID: 4834 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x17000098")]
	public IFileSystem FileSystem
	{
		[Token(Token = "0x60012E2")]
		[Address(RVA = "0x32FD80", Offset = "0x32ED80", VA = "0x18032FD80", Slot = "5")]
		get
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}
	}

	// Token: 0x17000099 RID: 153
	// (get) Token: 0x060012E3 RID: 4835 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x17000099")]
	public bool IsConsolePlatform
	{
		[Token(Token = "0x60012E3")]
		[Address(RVA = "0x29A960", Offset = "0x299960", VA = "0x18029A960", Slot = "6")]
		get
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}
	}

	// Token: 0x1700009A RID: 154
	// (get) Token: 0x060012E4 RID: 4836 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x1700009A")]
	public bool UseAsiaController
	{
		[Token(Token = "0x60012E4")]
		[Address(RVA = "0x29A960", Offset = "0x299960", VA = "0x18029A960", Slot = "7")]
		get
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}
	}

	// Token: 0x1700009B RID: 155
	// (get) Token: 0x060012E5 RID: 4837 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x1700009B")]
	public bool UseAchievement
	{
		[Token(Token = "0x60012E5")]
		[Address(RVA = "0x29A960", Offset = "0x299960", VA = "0x18029A960", Slot = "8")]
		get
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}
	}

	// Token: 0x1700009C RID: 156
	// (get) Token: 0x060012E6 RID: 4838 RVA: 0x0002AFDC File Offset: 0x000291DC
	[Token(Token = "0x1700009C")]
	public bool ShowQuitButton
	{
		[Token(Token = "0x60012E6")]
		[Address(RVA = "0x4990D0", Offset = "0x4980D0", VA = "0x1804990D0", Slot = "9")]
		get
		{
			return true;
		}
	}

	// Token: 0x1700009D RID: 157
	// (get) Token: 0x060012E7 RID: 4839 RVA: 0x0002AFEC File Offset: 0x000291EC
	[Token(Token = "0x1700009D")]
	public bool ShowDepthOfFieldSetting
	{
		[Token(Token = "0x60012E7")]
		[Address(RVA = "0x4990D0", Offset = "0x4980D0", VA = "0x1804990D0", Slot = "10")]
		get
		{
			return true;
		}
	}

	// Token: 0x1700009E RID: 158
	// (get) Token: 0x060012E8 RID: 4840 RVA: 0x0002AFFC File Offset: 0x000291FC
	[Token(Token = "0x1700009E")]
	public bool IncludeChineseVideos
	{
		[Token(Token = "0x60012E8")]
		[Address(RVA = "0x4990D0", Offset = "0x4980D0", VA = "0x1804990D0", Slot = "11")]
		get
		{
			return true;
		}
	}

	// Token: 0x060012E9 RID: 4841 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60012E9")]
	[Address(RVA = "0x4BD890", Offset = "0x4BC890", VA = "0x1804BD890")]
	public Win64Platform()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060012EA RID: 4842 RVA: 0x0002B00C File Offset: 0x0002920C
	[Token(Token = "0x60012EA")]
	[Address(RVA = "0x4BD820", Offset = "0x4BC820", VA = "0x1804BD820", Slot = "12")]
	public void Setup(Action nextAction)
	{
		if (nextAction != 0)
		{
			nextAction();
			return;
		}
	}

	// Token: 0x060012EB RID: 4843 RVA: 0x0002B024 File Offset: 0x00029224
	[Token(Token = "0x60012EB")]
	[Address(RVA = "0x4BD700", Offset = "0x4BC700", VA = "0x1804BD700", Slot = "13")]
	public void InitDlc()
	{
		GameDlcData dlc = Game.DLC;
		List<GameDlc> list = Enumerable.ToList<GameDlc>(EnumUtils.AllValues<GameDlc>());
		dlc.SetupDlc(list);
	}

	// Token: 0x060012EC RID: 4844 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60012EC")]
	[Address(RVA = "0x4BD5B0", Offset = "0x4BC5B0", VA = "0x1804BD5B0", Slot = "14")]
	public GameConfig GetConfig()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060012ED RID: 4845 RVA: 0x0002B054 File Offset: 0x00029254
	[Token(Token = "0x60012ED")]
	[Address(RVA = "0x4BD7B0", Offset = "0x4BC7B0", VA = "0x1804BD7B0", Slot = "15")]
	public void SaveConfig(GameConfig config)
	{
		string text = JsonConvert.SerializeObject(config);
		PlayerPrefs.SetString("Config_Test", text);
	}

	// Token: 0x060012EE RID: 4846 RVA: 0x0002B074 File Offset: 0x00029274
	[Token(Token = "0x60012EE")]
	[Address(RVA = "0x4BD840", Offset = "0x4BC840", VA = "0x1804BD840", Slot = "16")]
	public void ShowNoSpaceDialogue(Action nextAction)
	{
		/*
An exception occurred when decompiling this method (060012EE)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void Win64Platform::ShowNoSpaceDialogue(System.Action)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	Block_0:; 	stloc:Exception(var_0_0A, newobj:Exception(Exception::.ctor, ldstr:string("This is ps4 only feature, if see the log, check save file flow."))); }; 
   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: 0x060012EF RID: 4847 RVA: 0x0002B08C File Offset: 0x0002928C
	[Token(Token = "0x60012EF")]
	[Address(RVA = "0x4BD4F0", Offset = "0x4BC4F0", VA = "0x1804BD4F0")]
	private GameConfig CreateConfig()
	{
		GameConfig gameConfig = new GameConfig();
		gameConfig.configVersion = (int)((ulong)21L);
		string text = JsonConvert.SerializeObject(gameConfig);
		PlayerPrefs.SetString("Config_Test", text);
		return gameConfig;
	}

	// Token: 0x060012F0 RID: 4848 RVA: 0x0002B0C4 File Offset: 0x000292C4
	[Token(Token = "0x60012F0")]
	[Address(RVA = "0x4BD6D0", Offset = "0x4BC6D0", VA = "0x1804BD6D0", Slot = "17")]
	public GameSkin[] GetPlatformSkins()
	{
		return EnumUtils.AllValues<GameSkin>();
	}

	// Token: 0x060012F1 RID: 4849 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60012F1")]
	[Address(RVA = "0x29A960", Offset = "0x299960", VA = "0x18029A960", Slot = "18")]
	public bool HasAchievementUnlocked(int index)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060012F2 RID: 4850 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60012F2")]
	[Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0", Slot = "19")]
	public void UnlockAchievement(int index)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060012F3 RID: 4851 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60012F3")]
	[Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0", Slot = "20")]
	public void ResetAllAchievements(Action nextAction)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060012F4 RID: 4852 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60012F4")]
	[Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0", Slot = "21")]
	public void UpdateStatsData(GameCollection collectionData)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060012F5 RID: 4853 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60012F5")]
	[Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0", Slot = "23")]
	public void MountDLCPoint(GameSkin skin)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060012F6 RID: 4854 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60012F6")]
	[Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0", Slot = "24")]
	public void UnmountDLCPoints()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060012F7 RID: 4855 RVA: 0x0002B0D8 File Offset: 0x000292D8
	[Token(Token = "0x60012F7")]
	[Address(RVA = "0x4BD7A0", Offset = "0x4BC7A0", VA = "0x1804BD7A0", Slot = "22")]
	public void Quit()
	{
		Application.Quit();
	}

	// Token: 0x04001CC0 RID: 7360
	[FieldOffset(Offset = "0x10")]
	[Token(Token = "0x4001CC0")]
	private StandaloneFileSystem fileSystem;
}
