using System;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using Il2CppSystem;
using Il2CppSystem.Collections.Generic;

// Token: 0x0200012F RID: 303
public class GameSaveBasicData : Object
{
	// Token: 0x06003E27 RID: 15911 RVA: 0x000F5CF4 File Offset: 0x000F3EF4
	[CallerCount(1)]
	[CachedScanResults(RefRangeStart = 529877, RefRangeEnd = 529878, XrefRangeStart = 529859, XrefRangeEnd = 529877, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe void AddNewSavePoint(string stageName, int savePointNumber)
	{
		IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
		IntPtr* ptr;
		checked
		{
			ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
			*ptr = IL2CPP.ManagedStringToIl2Cpp(stageName);
		}
		ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref savePointNumber;
		IntPtr intPtr2;
		IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(GameSaveBasicData.NativeMethodInfoPtr_AddNewSavePoint_Public_Void_String_Int32_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
		Il2CppException.RaiseExceptionIfNecessary(intPtr2);
	}

	// Token: 0x06003E28 RID: 15912 RVA: 0x000F5D60 File Offset: 0x000F3F60
	[CallerCount(1)]
	[CachedScanResults(RefRangeStart = 529884, RefRangeEnd = 529885, XrefRangeStart = 529878, XrefRangeEnd = 529884, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe bool HasSavePointUnlocked(GameStage stage, int savePoint)
	{
		IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
		IntPtr* ptr;
		checked
		{
			ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
			*ptr = ref stage;
		}
		ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref savePoint;
		IntPtr intPtr2;
		IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(GameSaveBasicData.NativeMethodInfoPtr_HasSavePointUnlocked_Public_Boolean_GameStage_Int32_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
		Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		return *IL2CPP.il2cpp_object_unbox(intPtr);
	}

	// Token: 0x06003E29 RID: 15913 RVA: 0x000F5DD8 File Offset: 0x000F3FD8
	[CallerCount(2)]
	[CachedScanResults(RefRangeStart = 529886, RefRangeEnd = 529888, XrefRangeStart = 529885, XrefRangeEnd = 529886, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe void UpdateStageData(string stageName, int savePoint)
	{
		IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
		IntPtr* ptr;
		checked
		{
			ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
			*ptr = IL2CPP.ManagedStringToIl2Cpp(stageName);
		}
		ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref savePoint;
		IntPtr intPtr2;
		IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(GameSaveBasicData.NativeMethodInfoPtr_UpdateStageData_Public_Void_String_Int32_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
		Il2CppException.RaiseExceptionIfNecessary(intPtr2);
	}

	// Token: 0x06003E2A RID: 15914 RVA: 0x000F5E44 File Offset: 0x000F4044
	[CallerCount(2)]
	[CachedScanResults(RefRangeStart = 529894, RefRangeEnd = 529896, XrefRangeStart = 529888, XrefRangeEnd = 529894, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe GameStage GetStage(string stageName)
	{
		IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
		checked
		{
			IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
			*ptr = IL2CPP.ManagedStringToIl2Cpp(stageName);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(GameSaveBasicData.NativeMethodInfoPtr_GetStage_Private_GameStage_String_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}
	}

	// Token: 0x06003E2B RID: 15915 RVA: 0x000F5EAC File Offset: 0x000F40AC
	[CallerCount(2)]
	[CachedScanResults(RefRangeStart = 529896, RefRangeEnd = 529898, XrefRangeStart = 529896, XrefRangeEnd = 529896, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe void UpdateStageData(GameStage stage, int savePoint)
	{
		IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
		IntPtr* ptr;
		checked
		{
			ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
			*ptr = ref stage;
		}
		ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref savePoint;
		IntPtr intPtr2;
		IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(GameSaveBasicData.NativeMethodInfoPtr_UpdateStageData_Public_Void_GameStage_Int32_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
		Il2CppException.RaiseExceptionIfNecessary(intPtr2);
	}

	// Token: 0x06003E2C RID: 15916 RVA: 0x000F5F14 File Offset: 0x000F4114
	[CallerCount(0)]
	[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 529898, XrefRangeEnd = 529905, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe void OnBeatingGame()
	{
		IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
		IntPtr* ptr = null;
		IntPtr intPtr2;
		IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(GameSaveBasicData.NativeMethodInfoPtr_OnBeatingGame_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
		Il2CppException.RaiseExceptionIfNecessary(intPtr2);
	}

	// Token: 0x06003E2D RID: 15917 RVA: 0x000F5F58 File Offset: 0x000F4158
	[CallerCount(5)]
	[CachedScanResults(RefRangeStart = 529913, RefRangeEnd = 529918, XrefRangeStart = 529905, XrefRangeEnd = 529913, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe GameSaveBasicData()
		: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<GameSaveBasicData>.NativeClassPtr))
	{
		IntPtr* ptr = null;
		IntPtr intPtr2;
		IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(GameSaveBasicData.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
		Il2CppException.RaiseExceptionIfNecessary(intPtr2);
	}

	// Token: 0x06003E2E RID: 15918 RVA: 0x000F5FA4 File Offset: 0x000F41A4
	// Note: this type is marked as 'beforefieldinit'.
	static GameSaveBasicData()
	{
		Il2CppClassPointerStore<GameSaveBasicData>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "", "GameSaveBasicData");
		IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<GameSaveBasicData>.NativeClassPtr);
		GameSaveBasicData.NativeFieldInfoPtr_dataIndex = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GameSaveBasicData>.NativeClassPtr, "dataIndex");
		GameSaveBasicData.NativeFieldInfoPtr_difficulty = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GameSaveBasicData>.NativeClassPtr, "difficulty");
		GameSaveBasicData.NativeFieldInfoPtr_stage = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GameSaveBasicData>.NativeClassPtr, "stage");
		GameSaveBasicData.NativeFieldInfoPtr_savePoint = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GameSaveBasicData>.NativeClassPtr, "savePoint");
		GameSaveBasicData.NativeFieldInfoPtr_showTeleportMenu = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GameSaveBasicData>.NativeClassPtr, "showTeleportMenu");
		GameSaveBasicData.NativeFieldInfoPtr_timeStamp = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GameSaveBasicData>.NativeClassPtr, "timeStamp");
		GameSaveBasicData.NativeFieldInfoPtr_gamingTime = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GameSaveBasicData>.NativeClassPtr, "gamingTime");
		GameSaveBasicData.NativeFieldInfoPtr_gameCleared = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GameSaveBasicData>.NativeClassPtr, "gameCleared");
		GameSaveBasicData.NativeFieldInfoPtr_savePointMap = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GameSaveBasicData>.NativeClassPtr, "savePointMap");
		GameSaveBasicData.NativeMethodInfoPtr_AddNewSavePoint_Public_Void_String_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GameSaveBasicData>.NativeClassPtr, 100667157);
		GameSaveBasicData.NativeMethodInfoPtr_HasSavePointUnlocked_Public_Boolean_GameStage_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GameSaveBasicData>.NativeClassPtr, 100667158);
		GameSaveBasicData.NativeMethodInfoPtr_UpdateStageData_Public_Void_String_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GameSaveBasicData>.NativeClassPtr, 100667159);
		GameSaveBasicData.NativeMethodInfoPtr_GetStage_Private_GameStage_String_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GameSaveBasicData>.NativeClassPtr, 100667160);
		GameSaveBasicData.NativeMethodInfoPtr_UpdateStageData_Public_Void_GameStage_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GameSaveBasicData>.NativeClassPtr, 100667161);
		GameSaveBasicData.NativeMethodInfoPtr_OnBeatingGame_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GameSaveBasicData>.NativeClassPtr, 100667162);
		GameSaveBasicData.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GameSaveBasicData>.NativeClassPtr, 100667163);
	}

	// Token: 0x06003E2F RID: 15919 RVA: 0x0000A688 File Offset: 0x00008888
	public GameSaveBasicData(IntPtr pointer)
		: base(pointer)
	{
	}

	// Token: 0x170016F9 RID: 5881
	// (get) Token: 0x06003E30 RID: 15920 RVA: 0x000F6114 File Offset: 0x000F4314
	// (set) Token: 0x06003E31 RID: 15921 RVA: 0x000F613C File Offset: 0x000F433C
	public unsafe int dataIndex
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSaveBasicData.NativeFieldInfoPtr_dataIndex);
			return *intPtr;
		}
		set
		{
			*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSaveBasicData.NativeFieldInfoPtr_dataIndex)) = value;
		}
	}

	// Token: 0x170016FA RID: 5882
	// (get) Token: 0x06003E32 RID: 15922 RVA: 0x000F6160 File Offset: 0x000F4360
	// (set) Token: 0x06003E33 RID: 15923 RVA: 0x000F6188 File Offset: 0x000F4388
	public unsafe GameDifficulty difficulty
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSaveBasicData.NativeFieldInfoPtr_difficulty);
			return *intPtr;
		}
		set
		{
			*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSaveBasicData.NativeFieldInfoPtr_difficulty)) = value;
		}
	}

	// Token: 0x170016FB RID: 5883
	// (get) Token: 0x06003E34 RID: 15924 RVA: 0x000F61AC File Offset: 0x000F43AC
	// (set) Token: 0x06003E35 RID: 15925 RVA: 0x000F61D4 File Offset: 0x000F43D4
	public unsafe GameStage stage
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSaveBasicData.NativeFieldInfoPtr_stage);
			return *intPtr;
		}
		set
		{
			*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSaveBasicData.NativeFieldInfoPtr_stage)) = value;
		}
	}

	// Token: 0x170016FC RID: 5884
	// (get) Token: 0x06003E36 RID: 15926 RVA: 0x000F61F8 File Offset: 0x000F43F8
	// (set) Token: 0x06003E37 RID: 15927 RVA: 0x000F6220 File Offset: 0x000F4420
	public unsafe int savePoint
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSaveBasicData.NativeFieldInfoPtr_savePoint);
			return *intPtr;
		}
		set
		{
			*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSaveBasicData.NativeFieldInfoPtr_savePoint)) = value;
		}
	}

	// Token: 0x170016FD RID: 5885
	// (get) Token: 0x06003E38 RID: 15928 RVA: 0x000F6244 File Offset: 0x000F4444
	// (set) Token: 0x06003E39 RID: 15929 RVA: 0x000F626C File Offset: 0x000F446C
	public unsafe bool showTeleportMenu
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSaveBasicData.NativeFieldInfoPtr_showTeleportMenu);
			return *intPtr;
		}
		set
		{
			*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSaveBasicData.NativeFieldInfoPtr_showTeleportMenu)) = value;
		}
	}

	// Token: 0x170016FE RID: 5886
	// (get) Token: 0x06003E3A RID: 15930 RVA: 0x000F6290 File Offset: 0x000F4490
	// (set) Token: 0x06003E3B RID: 15931 RVA: 0x000F62B8 File Offset: 0x000F44B8
	public unsafe long timeStamp
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSaveBasicData.NativeFieldInfoPtr_timeStamp);
			return *intPtr;
		}
		set
		{
			*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSaveBasicData.NativeFieldInfoPtr_timeStamp)) = value;
		}
	}

	// Token: 0x170016FF RID: 5887
	// (get) Token: 0x06003E3C RID: 15932 RVA: 0x000F62DC File Offset: 0x000F44DC
	// (set) Token: 0x06003E3D RID: 15933 RVA: 0x000F6304 File Offset: 0x000F4504
	public unsafe ulong gamingTime
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSaveBasicData.NativeFieldInfoPtr_gamingTime);
			return *intPtr;
		}
		set
		{
			*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSaveBasicData.NativeFieldInfoPtr_gamingTime)) = value;
		}
	}

	// Token: 0x17001700 RID: 5888
	// (get) Token: 0x06003E3E RID: 15934 RVA: 0x000F6328 File Offset: 0x000F4528
	// (set) Token: 0x06003E3F RID: 15935 RVA: 0x000F6350 File Offset: 0x000F4550
	public unsafe int gameCleared
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSaveBasicData.NativeFieldInfoPtr_gameCleared);
			return *intPtr;
		}
		set
		{
			*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSaveBasicData.NativeFieldInfoPtr_gameCleared)) = value;
		}
	}

	// Token: 0x17001701 RID: 5889
	// (get) Token: 0x06003E40 RID: 15936 RVA: 0x000F6374 File Offset: 0x000F4574
	// (set) Token: 0x06003E41 RID: 15937 RVA: 0x000F63A8 File Offset: 0x000F45A8
	public unsafe Dictionary<GameStage, List<int>> savePointMap
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSaveBasicData.NativeFieldInfoPtr_savePointMap);
			IntPtr intPtr2 = *intPtr;
			return (intPtr2 != 0) ? new Dictionary<GameStage, List<int>>(intPtr2) : null;
		}
		set
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSaveBasicData.NativeFieldInfoPtr_savePointMap), IL2CPP.Il2CppObjectBaseToPtr(value));
		}
	}

	// Token: 0x040028AD RID: 10413
	private static readonly IntPtr NativeFieldInfoPtr_dataIndex;

	// Token: 0x040028AE RID: 10414
	private static readonly IntPtr NativeFieldInfoPtr_difficulty;

	// Token: 0x040028AF RID: 10415
	private static readonly IntPtr NativeFieldInfoPtr_stage;

	// Token: 0x040028B0 RID: 10416
	private static readonly IntPtr NativeFieldInfoPtr_savePoint;

	// Token: 0x040028B1 RID: 10417
	private static readonly IntPtr NativeFieldInfoPtr_showTeleportMenu;

	// Token: 0x040028B2 RID: 10418
	private static readonly IntPtr NativeFieldInfoPtr_timeStamp;

	// Token: 0x040028B3 RID: 10419
	private static readonly IntPtr NativeFieldInfoPtr_gamingTime;

	// Token: 0x040028B4 RID: 10420
	private static readonly IntPtr NativeFieldInfoPtr_gameCleared;

	// Token: 0x040028B5 RID: 10421
	private static readonly IntPtr NativeFieldInfoPtr_savePointMap;

	// Token: 0x040028B6 RID: 10422
	private static readonly IntPtr NativeMethodInfoPtr_AddNewSavePoint_Public_Void_String_Int32_0;

	// Token: 0x040028B7 RID: 10423
	private static readonly IntPtr NativeMethodInfoPtr_HasSavePointUnlocked_Public_Boolean_GameStage_Int32_0;

	// Token: 0x040028B8 RID: 10424
	private static readonly IntPtr NativeMethodInfoPtr_UpdateStageData_Public_Void_String_Int32_0;

	// Token: 0x040028B9 RID: 10425
	private static readonly IntPtr NativeMethodInfoPtr_GetStage_Private_GameStage_String_0;

	// Token: 0x040028BA RID: 10426
	private static readonly IntPtr NativeMethodInfoPtr_UpdateStageData_Public_Void_GameStage_Int32_0;

	// Token: 0x040028BB RID: 10427
	private static readonly IntPtr NativeMethodInfoPtr_OnBeatingGame_Public_Void_0;

	// Token: 0x040028BC RID: 10428
	private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;
}
