using System;
using Cpp2IlInjected;
using UnityEngine;

// Token: 0x02000203 RID: 515
[Token(Token = "0x2000203")]
public class ScriptSceneEventEnable : MonoBehaviour
{
	// Token: 0x170000B6 RID: 182
	// (get) Token: 0x0600150F RID: 5391 RVA: 0x0002FFDC File Offset: 0x0002E1DC
	[Token(Token = "0x170000B6")]
	private GameSave GameSave
	{
		[Token(Token = "0x600150F")]
		[Address(RVA = "0x51EAD0", Offset = "0x51DAD0", VA = "0x18051EAD0")]
		get
		{
			return Game.GameSave;
		}
	}

	// Token: 0x170000B7 RID: 183
	// (get) Token: 0x06001510 RID: 5392 RVA: 0x0002FFF0 File Offset: 0x0002E1F0
	[Token(Token = "0x170000B7")]
	private StageFlagData Flags
	{
		[Token(Token = "0x6001510")]
		[Address(RVA = "0x51EA70", Offset = "0x51DA70", VA = "0x18051EA70")]
		get
		{
			return Game.GameSave.flags;
		}
	}

	// Token: 0x06001511 RID: 5393 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001511")]
	[Address(RVA = "0x51B480", Offset = "0x51A480", VA = "0x18051B480")]
	public void CloseScriptEvent()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001512 RID: 5394 RVA: 0x00030010 File Offset: 0x0002E210
	[Token(Token = "0x6001512")]
	[Address(RVA = "0x51E8F0", Offset = "0x51D8F0", VA = "0x18051E8F0")]
	private void Close()
	{
		SceneEvent[] @event = this.Event;
		int num = 0;
		if (num < @event.Length)
		{
			GameObject gameObject = @event[num].gameObject;
			int num2 = 0;
			gameObject.SetActive(num2 != 0);
			SceneEvent[] event2 = this.Event;
			num++;
		}
		AttackableObject[] checkAttackableObject = this.CheckAttackableObject;
		if (num < checkAttackableObject.Length)
		{
			GameObject gameObject2 = checkAttackableObject[num].gameObject;
			int num3 = 0;
			gameObject2.SetActive(num3 != 0);
			AttackableObject[] checkAttackableObject2 = this.CheckAttackableObject;
			num++;
			while (checkAttackableObject2 != 0)
			{
			}
		}
		DoorSwitch[] switchOn = this.SwitchOn;
		if (num < switchOn.Length)
		{
			switchOn[num].SaveSwitchOn();
			DoorSwitch[] switchOn2 = this.SwitchOn;
			num++;
			while (switchOn2 != 0)
			{
			}
		}
	}

	// Token: 0x06001513 RID: 5395 RVA: 0x000300C8 File Offset: 0x0002E2C8
	[Token(Token = "0x6001513")]
	[Address(RVA = "0x328C40", Offset = "0x327C40", VA = "0x180328C40")]
	public ScriptSceneEventEnable()
	{
	}

	// Token: 0x04002000 RID: 8192
	[FieldOffset(Offset = "0x18")]
	[Token(Token = "0x4002000")]
	public SaveSystem.ScriptType EventType;

	// Token: 0x04002001 RID: 8193
	[FieldOffset(Offset = "0x20")]
	[Token(Token = "0x4002001")]
	public SceneEvent[] Event;

	// Token: 0x04002002 RID: 8194
	[FieldOffset(Offset = "0x28")]
	[Token(Token = "0x4002002")]
	public AttackableObject[] CheckAttackableObject;

	// Token: 0x04002003 RID: 8195
	[FieldOffset(Offset = "0x30")]
	[Token(Token = "0x4002003")]
	public DoorSwitch[] SwitchOn;

	// Token: 0x04002004 RID: 8196
	[FieldOffset(Offset = "0x38")]
	[Token(Token = "0x4002004")]
	public GameObject[] Special;
}
