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

// Token: 0x0200012E RID: 302
public class GameSave : Object
{
	// Token: 0x170016F8 RID: 5880
	// (get) Token: 0x06003E14 RID: 15892 RVA: 0x000F5824 File Offset: 0x000F3A24
	public unsafe bool IsStandardMode
	{
		[CallerCount(9)]
		[CachedScanResults(RefRangeStart = 529770, RefRangeEnd = 529779, XrefRangeStart = 529770, XrefRangeEnd = 529770, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		get
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(GameSave.NativeMethodInfoPtr_get_IsStandardMode_Public_get_Boolean_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}
	}

	// Token: 0x06003E15 RID: 15893 RVA: 0x000F5874 File Offset: 0x000F3A74
	[CallerCount(3)]
	[CachedScanResults(RefRangeStart = 529805, RefRangeEnd = 529808, XrefRangeStart = 529779, XrefRangeEnd = 529805, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe GameSave()
		: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<GameSave>.NativeClassPtr))
	{
		IntPtr* ptr = null;
		IntPtr intPtr2;
		IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(GameSave.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
		Il2CppException.RaiseExceptionIfNecessary(intPtr2);
	}

	// Token: 0x06003E16 RID: 15894 RVA: 0x000F58C0 File Offset: 0x000F3AC0
	[CallerCount(1)]
	[CachedScanResults(RefRangeStart = 529836, RefRangeEnd = 529837, XrefRangeStart = 529808, XrefRangeEnd = 529836, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe GameSave(int dataIndex, GameDifficulty difficulty)
		: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<GameSave>.NativeClassPtr))
	{
		IntPtr* ptr;
		checked
		{
			ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
			*ptr = ref dataIndex;
		}
		ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref difficulty;
		IntPtr intPtr2;
		IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(GameSave.NativeMethodInfoPtr__ctor_Public_Void_Int32_GameDifficulty_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
		Il2CppException.RaiseExceptionIfNecessary(intPtr2);
	}

	// Token: 0x06003E17 RID: 15895 RVA: 0x000F5930 File Offset: 0x000F3B30
	[CallerCount(1)]
	[CachedScanResults(RefRangeStart = 529849, RefRangeEnd = 529850, XrefRangeStart = 529837, XrefRangeEnd = 529849, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe void OnBeatingGame(BeatingGameData data)
	{
		IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
		checked
		{
			IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
			*ptr = IL2CPP.Il2CppObjectBaseToPtr(data);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(GameSave.NativeMethodInfoPtr_OnBeatingGame_Public_Void_BeatingGameData_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}
	}

	// Token: 0x06003E18 RID: 15896 RVA: 0x000F598C File Offset: 0x000F3B8C
	[CallerCount(4)]
	[CachedScanResults(RefRangeStart = 529855, RefRangeEnd = 529859, XrefRangeStart = 529850, XrefRangeEnd = 529855, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe void UpdateSaveTimeStamp()
	{
		IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
		IntPtr* ptr = null;
		IntPtr intPtr2;
		IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(GameSave.NativeMethodInfoPtr_UpdateSaveTimeStamp_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
		Il2CppException.RaiseExceptionIfNecessary(intPtr2);
	}

	// Token: 0x06003E19 RID: 15897 RVA: 0x000F59D0 File Offset: 0x000F3BD0
	// Note: this type is marked as 'beforefieldinit'.
	static GameSave()
	{
		Il2CppClassPointerStore<GameSave>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "", "GameSave");
		IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<GameSave>.NativeClassPtr);
		GameSave.NativeFieldInfoPtr_dataVersion = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GameSave>.NativeClassPtr, "dataVersion");
		GameSave.NativeFieldInfoPtr_basic = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GameSave>.NativeClassPtr, "basic");
		GameSave.NativeFieldInfoPtr_stats = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GameSave>.NativeClassPtr, "stats");
		GameSave.NativeFieldInfoPtr_props = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GameSave>.NativeClassPtr, "props");
		GameSave.NativeFieldInfoPtr_flags = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GameSave>.NativeClassPtr, "flags");
		GameSave.NativeFieldInfoPtr_tips = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GameSave>.NativeClassPtr, "tips");
		GameSave.NativeMethodInfoPtr_get_IsStandardMode_Public_get_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GameSave>.NativeClassPtr, 100667152);
		GameSave.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GameSave>.NativeClassPtr, 100667153);
		GameSave.NativeMethodInfoPtr__ctor_Public_Void_Int32_GameDifficulty_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GameSave>.NativeClassPtr, 100667154);
		GameSave.NativeMethodInfoPtr_OnBeatingGame_Public_Void_BeatingGameData_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GameSave>.NativeClassPtr, 100667155);
		GameSave.NativeMethodInfoPtr_UpdateSaveTimeStamp_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GameSave>.NativeClassPtr, 100667156);
	}

	// Token: 0x06003E1A RID: 15898 RVA: 0x0000A688 File Offset: 0x00008888
	public GameSave(IntPtr pointer)
		: base(pointer)
	{
	}

	// Token: 0x170016F2 RID: 5874
	// (get) Token: 0x06003E1B RID: 15899 RVA: 0x000F5ADC File Offset: 0x000F3CDC
	// (set) Token: 0x06003E1C RID: 15900 RVA: 0x000F5B04 File Offset: 0x000F3D04
	public unsafe int dataVersion
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSave.NativeFieldInfoPtr_dataVersion);
			return *intPtr;
		}
		set
		{
			*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSave.NativeFieldInfoPtr_dataVersion)) = value;
		}
	}

	// Token: 0x170016F3 RID: 5875
	// (get) Token: 0x06003E1D RID: 15901 RVA: 0x000F5B28 File Offset: 0x000F3D28
	// (set) Token: 0x06003E1E RID: 15902 RVA: 0x000F5B5C File Offset: 0x000F3D5C
	public unsafe GameSaveBasicData basic
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSave.NativeFieldInfoPtr_basic);
			IntPtr intPtr2 = *intPtr;
			return (intPtr2 != 0) ? new GameSaveBasicData(intPtr2) : null;
		}
		set
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSave.NativeFieldInfoPtr_basic), IL2CPP.Il2CppObjectBaseToPtr(value));
		}
	}

	// Token: 0x170016F4 RID: 5876
	// (get) Token: 0x06003E1F RID: 15903 RVA: 0x000F5B84 File Offset: 0x000F3D84
	// (set) Token: 0x06003E20 RID: 15904 RVA: 0x000F5BB8 File Offset: 0x000F3DB8
	public unsafe PlayerStatsData stats
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSave.NativeFieldInfoPtr_stats);
			IntPtr intPtr2 = *intPtr;
			return (intPtr2 != 0) ? new PlayerStatsData(intPtr2) : null;
		}
		set
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSave.NativeFieldInfoPtr_stats), IL2CPP.Il2CppObjectBaseToPtr(value));
		}
	}

	// Token: 0x170016F5 RID: 5877
	// (get) Token: 0x06003E21 RID: 15905 RVA: 0x000F5BE0 File Offset: 0x000F3DE0
	// (set) Token: 0x06003E22 RID: 15906 RVA: 0x000F5C14 File Offset: 0x000F3E14
	public unsafe GamePropertyData props
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSave.NativeFieldInfoPtr_props);
			IntPtr intPtr2 = *intPtr;
			return (intPtr2 != 0) ? new GamePropertyData(intPtr2) : null;
		}
		set
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSave.NativeFieldInfoPtr_props), IL2CPP.Il2CppObjectBaseToPtr(value));
		}
	}

	// Token: 0x170016F6 RID: 5878
	// (get) Token: 0x06003E23 RID: 15907 RVA: 0x000F5C3C File Offset: 0x000F3E3C
	// (set) Token: 0x06003E24 RID: 15908 RVA: 0x000F5C70 File Offset: 0x000F3E70
	public unsafe StageFlagData flags
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSave.NativeFieldInfoPtr_flags);
			IntPtr intPtr2 = *intPtr;
			return (intPtr2 != 0) ? new StageFlagData(intPtr2) : null;
		}
		set
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSave.NativeFieldInfoPtr_flags), IL2CPP.Il2CppObjectBaseToPtr(value));
		}
	}

	// Token: 0x170016F7 RID: 5879
	// (get) Token: 0x06003E25 RID: 15909 RVA: 0x000F5C98 File Offset: 0x000F3E98
	// (set) Token: 0x06003E26 RID: 15910 RVA: 0x000F5CCC File Offset: 0x000F3ECC
	public unsafe TutorialTipData tips
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSave.NativeFieldInfoPtr_tips);
			IntPtr intPtr2 = *intPtr;
			return (intPtr2 != 0) ? new TutorialTipData(intPtr2) : null;
		}
		set
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSave.NativeFieldInfoPtr_tips), IL2CPP.Il2CppObjectBaseToPtr(value));
		}
	}

	// Token: 0x040028A2 RID: 10402
	private static readonly IntPtr NativeFieldInfoPtr_dataVersion;

	// Token: 0x040028A3 RID: 10403
	private static readonly IntPtr NativeFieldInfoPtr_basic;

	// Token: 0x040028A4 RID: 10404
	private static readonly IntPtr NativeFieldInfoPtr_stats;

	// Token: 0x040028A5 RID: 10405
	private static readonly IntPtr NativeFieldInfoPtr_props;

	// Token: 0x040028A6 RID: 10406
	private static readonly IntPtr NativeFieldInfoPtr_flags;

	// Token: 0x040028A7 RID: 10407
	private static readonly IntPtr NativeFieldInfoPtr_tips;

	// Token: 0x040028A8 RID: 10408
	private static readonly IntPtr NativeMethodInfoPtr_get_IsStandardMode_Public_get_Boolean_0;

	// Token: 0x040028A9 RID: 10409
	private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

	// Token: 0x040028AA RID: 10410
	private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_Int32_GameDifficulty_0;

	// Token: 0x040028AB RID: 10411
	private static readonly IntPtr NativeMethodInfoPtr_OnBeatingGame_Public_Void_BeatingGameData_0;

	// Token: 0x040028AC RID: 10412
	private static readonly IntPtr NativeMethodInfoPtr_UpdateSaveTimeStamp_Public_Void_0;
}
