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

// Token: 0x02000159 RID: 345
public class GameSave : Object
{
	// Token: 0x17001810 RID: 6160
	// (get) Token: 0x060041EA RID: 16874 RVA: 0x00106014 File Offset: 0x00104214
	public unsafe bool IsStandardMode
	{
		[CallerCount(9)]
		[CachedScanResults(RefRangeStart = 555683, RefRangeEnd = 555692, XrefRangeStart = 555683, XrefRangeEnd = 555683, 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: 0x060041EB RID: 16875 RVA: 0x00106064 File Offset: 0x00104264
	[CallerCount(3)]
	[CachedScanResults(RefRangeStart = 555723, RefRangeEnd = 555726, XrefRangeStart = 555692, XrefRangeEnd = 555723, 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: 0x060041EC RID: 16876 RVA: 0x001060B0 File Offset: 0x001042B0
	[CallerCount(2)]
	[CachedScanResults(RefRangeStart = 555759, RefRangeEnd = 555761, XrefRangeStart = 555726, XrefRangeEnd = 555759, 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: 0x060041ED RID: 16877 RVA: 0x00106120 File Offset: 0x00104320
	[CallerCount(1)]
	[CachedScanResults(RefRangeStart = 555773, RefRangeEnd = 555774, XrefRangeStart = 555761, XrefRangeEnd = 555773, 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: 0x060041EE RID: 16878 RVA: 0x0010617C File Offset: 0x0010437C
	[CallerCount(1)]
	[CachedScanResults(RefRangeStart = 555787, RefRangeEnd = 555788, XrefRangeStart = 555774, XrefRangeEnd = 555787, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe void BossRushRemoveTestMode()
	{
		IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
		IntPtr* ptr = null;
		IntPtr intPtr2;
		IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(GameSave.NativeMethodInfoPtr_BossRushRemoveTestMode_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
		Il2CppException.RaiseExceptionIfNecessary(intPtr2);
	}

	// Token: 0x060041EF RID: 16879 RVA: 0x001061C0 File Offset: 0x001043C0
	[CallerCount(5)]
	[CachedScanResults(RefRangeStart = 555793, RefRangeEnd = 555798, XrefRangeStart = 555788, XrefRangeEnd = 555793, 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: 0x060041F0 RID: 16880 RVA: 0x00106204 File Offset: 0x00104404
	// 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.NativeFieldInfoPtr_bossRush = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GameSave>.NativeClassPtr, "bossRush");
		GameSave.NativeMethodInfoPtr_get_IsStandardMode_Public_get_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GameSave>.NativeClassPtr, 100667512);
		GameSave.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GameSave>.NativeClassPtr, 100667513);
		GameSave.NativeMethodInfoPtr__ctor_Public_Void_Int32_GameDifficulty_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GameSave>.NativeClassPtr, 100667514);
		GameSave.NativeMethodInfoPtr_OnBeatingGame_Public_Void_BeatingGameData_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GameSave>.NativeClassPtr, 100667515);
		GameSave.NativeMethodInfoPtr_BossRushRemoveTestMode_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GameSave>.NativeClassPtr, 100667516);
		GameSave.NativeMethodInfoPtr_UpdateSaveTimeStamp_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GameSave>.NativeClassPtr, 100667517);
	}

	// Token: 0x060041F1 RID: 16881 RVA: 0x0000A74C File Offset: 0x0000894C
	public GameSave(IntPtr pointer)
		: base(pointer)
	{
	}

	// Token: 0x17001809 RID: 6153
	// (get) Token: 0x060041F2 RID: 16882 RVA: 0x00106338 File Offset: 0x00104538
	// (set) Token: 0x060041F3 RID: 16883 RVA: 0x00106360 File Offset: 0x00104560
	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: 0x1700180A RID: 6154
	// (get) Token: 0x060041F4 RID: 16884 RVA: 0x00106384 File Offset: 0x00104584
	// (set) Token: 0x060041F5 RID: 16885 RVA: 0x001063B8 File Offset: 0x001045B8
	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: 0x1700180B RID: 6155
	// (get) Token: 0x060041F6 RID: 16886 RVA: 0x001063E0 File Offset: 0x001045E0
	// (set) Token: 0x060041F7 RID: 16887 RVA: 0x00106414 File Offset: 0x00104614
	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: 0x1700180C RID: 6156
	// (get) Token: 0x060041F8 RID: 16888 RVA: 0x0010643C File Offset: 0x0010463C
	// (set) Token: 0x060041F9 RID: 16889 RVA: 0x00106470 File Offset: 0x00104670
	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: 0x1700180D RID: 6157
	// (get) Token: 0x060041FA RID: 16890 RVA: 0x00106498 File Offset: 0x00104698
	// (set) Token: 0x060041FB RID: 16891 RVA: 0x001064CC File Offset: 0x001046CC
	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: 0x1700180E RID: 6158
	// (get) Token: 0x060041FC RID: 16892 RVA: 0x001064F4 File Offset: 0x001046F4
	// (set) Token: 0x060041FD RID: 16893 RVA: 0x00106528 File Offset: 0x00104728
	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: 0x1700180F RID: 6159
	// (get) Token: 0x060041FE RID: 16894 RVA: 0x00106550 File Offset: 0x00104750
	// (set) Token: 0x060041FF RID: 16895 RVA: 0x00106584 File Offset: 0x00104784
	public unsafe BossRushData bossRush
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSave.NativeFieldInfoPtr_bossRush);
			IntPtr intPtr2 = *intPtr;
			return (intPtr2 != 0) ? new BossRushData(intPtr2) : null;
		}
		set
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(GameSave.NativeFieldInfoPtr_bossRush), IL2CPP.Il2CppObjectBaseToPtr(value));
		}
	}

	// Token: 0x04002B43 RID: 11075
	private static readonly IntPtr NativeFieldInfoPtr_dataVersion;

	// Token: 0x04002B44 RID: 11076
	private static readonly IntPtr NativeFieldInfoPtr_basic;

	// Token: 0x04002B45 RID: 11077
	private static readonly IntPtr NativeFieldInfoPtr_stats;

	// Token: 0x04002B46 RID: 11078
	private static readonly IntPtr NativeFieldInfoPtr_props;

	// Token: 0x04002B47 RID: 11079
	private static readonly IntPtr NativeFieldInfoPtr_flags;

	// Token: 0x04002B48 RID: 11080
	private static readonly IntPtr NativeFieldInfoPtr_tips;

	// Token: 0x04002B49 RID: 11081
	private static readonly IntPtr NativeFieldInfoPtr_bossRush;

	// Token: 0x04002B4A RID: 11082
	private static readonly IntPtr NativeMethodInfoPtr_get_IsStandardMode_Public_get_Boolean_0;

	// Token: 0x04002B4B RID: 11083
	private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

	// Token: 0x04002B4C RID: 11084
	private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_Int32_GameDifficulty_0;

	// Token: 0x04002B4D RID: 11085
	private static readonly IntPtr NativeMethodInfoPtr_OnBeatingGame_Public_Void_BeatingGameData_0;

	// Token: 0x04002B4E RID: 11086
	private static readonly IntPtr NativeMethodInfoPtr_BossRushRemoveTestMode_Public_Void_0;

	// Token: 0x04002B4F RID: 11087
	private static readonly IntPtr NativeMethodInfoPtr_UpdateSaveTimeStamp_Public_Void_0;
}
