Decompiled source of Exit Door Manager v1.0.1

ExitDoorManager/ExitDoorManager.dll

Decompiled 8 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using GameConsole;
using GameConsole.Commands;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using PluginConfig.API;
using PluginConfig.API.Fields;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: IgnoresAccessChecksTo("Assembly-CSharp")]
[assembly: AssemblyCompany("ExitDoorManager")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyDescription("Allows you to edit where exit doors lead.")]
[assembly: AssemblyFileVersion("1.0.1.0")]
[assembly: AssemblyInformationalVersion("1.0.1")]
[assembly: AssemblyProduct("ExitDoorManager")]
[assembly: AssemblyTitle("ExitDoorManager")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.1.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace ExitDoorManager
{
	public static class ConfigManager
	{
		public static string[] Levels = new string[43]
		{
			"Random Scene", "Random Level", "Level 0-1", "Level 0-2", "Level 0-3", "Level 0-4", "Level 0-5", "Level 0-S", "Level 1-1", "Level 1-2",
			"Level 1-3", "Level 1-4", "Level 1-S", "Level 2-1", "Level 2-2", "Level 2-3", "Level 2-4", "Level 2-S", "Level 3-1", "Level 3-2",
			"Intermission1", "Level P-1", "Level 4-1", "Level 4-2", "Level 4-3", "Level 4-4", "Level 4-S", "Level 5-1", "Level 5-2", "Level 5-3",
			"Level 5-4", "Level 5-S", "Level 6-1", "Level 6-2", "Intermission2", "Level P-2", "Level 7-1", "Level 7-2", "Level 7-3", "Level 7-4",
			"Level 7-S", "EarlyAccessEnd", "CreditsMuseum2"
		};

		public static StringListField exit01;

		public static StringListField exit02;

		public static StringListField exit02s;

		public static StringListField exit03;

		public static StringListField exit04;

		public static StringListField exit05;

		public static StringListField exit0S;

		public static StringListField exit11;

		public static StringListField exit11s;

		public static StringListField exit12;

		public static StringListField exit13;

		public static StringListField exit14;

		public static StringListField exit1S;

		public static StringListField exit21;

		public static StringListField exit22;

		public static StringListField exit23;

		public static StringListField exit23s;

		public static StringListField exit24;

		public static StringListField exit2S;

		public static StringListField exit31;

		public static StringListField exit31s;

		public static StringListField exit32;

		public static StringListField exitI1;

		public static StringListField exitP1;

		public static StringListField exit41;

		public static StringListField exit42;

		public static StringListField exit42s;

		public static StringListField exit43;

		public static StringListField exit44;

		public static StringListField exit4S;

		public static StringListField exit51;

		public static StringListField exit51s;

		public static StringListField exit52;

		public static StringListField exit53;

		public static StringListField exit54;

		public static StringListField exit5S;

		public static StringListField exit61;

		public static StringListField exit62;

		public static StringListField exit62s;

		public static StringListField exitI2;

		public static StringListField exitP2;

		public static StringListField exit71;

		public static StringListField exit72;

		public static StringListField exit73;

		public static StringListField exit73s;

		public static StringListField exit74;

		public static StringListField exit7s;

		public static PluginConfigurator config;

		public static void Initialize()
		{
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: Expected O, but got Unknown
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_008d: Expected O, but got Unknown
			//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b5: Expected O, but got Unknown
			//IL_00d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dd: Expected O, but got Unknown
			//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0105: Expected O, but got Unknown
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_012d: Expected O, but got Unknown
			//IL_014b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0155: Expected O, but got Unknown
			//IL_0173: Unknown result type (might be due to invalid IL or missing references)
			//IL_017d: Expected O, but got Unknown
			//IL_019b: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a5: Expected O, but got Unknown
			//IL_01c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cd: Expected O, but got Unknown
			//IL_01eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f5: Expected O, but got Unknown
			//IL_0213: Unknown result type (might be due to invalid IL or missing references)
			//IL_021d: Expected O, but got Unknown
			//IL_023b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0245: Expected O, but got Unknown
			//IL_0263: Unknown result type (might be due to invalid IL or missing references)
			//IL_026d: Expected O, but got Unknown
			//IL_028b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0295: Expected O, but got Unknown
			//IL_02b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bd: Expected O, but got Unknown
			//IL_02db: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e5: Expected O, but got Unknown
			//IL_0303: Unknown result type (might be due to invalid IL or missing references)
			//IL_030d: Expected O, but got Unknown
			//IL_032b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0335: Expected O, but got Unknown
			//IL_0353: Unknown result type (might be due to invalid IL or missing references)
			//IL_035d: Expected O, but got Unknown
			//IL_037b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0385: Expected O, but got Unknown
			//IL_03a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ad: Expected O, but got Unknown
			//IL_03cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d5: Expected O, but got Unknown
			//IL_03f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fd: Expected O, but got Unknown
			//IL_041b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0425: Expected O, but got Unknown
			//IL_0443: Unknown result type (might be due to invalid IL or missing references)
			//IL_044d: Expected O, but got Unknown
			//IL_046b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0475: Expected O, but got Unknown
			//IL_0493: Unknown result type (might be due to invalid IL or missing references)
			//IL_049d: Expected O, but got Unknown
			//IL_04bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c5: Expected O, but got Unknown
			//IL_04e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ed: Expected O, but got Unknown
			//IL_050b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0515: Expected O, but got Unknown
			//IL_0533: Unknown result type (might be due to invalid IL or missing references)
			//IL_053d: Expected O, but got Unknown
			//IL_055b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0565: Expected O, but got Unknown
			//IL_0583: Unknown result type (might be due to invalid IL or missing references)
			//IL_058d: Expected O, but got Unknown
			//IL_05ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b5: Expected O, but got Unknown
			//IL_05d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_05dd: Expected O, but got Unknown
			//IL_05fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0605: Expected O, but got Unknown
			//IL_0623: Unknown result type (might be due to invalid IL or missing references)
			//IL_062d: Expected O, but got Unknown
			//IL_064b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0655: Expected O, but got Unknown
			//IL_0673: Unknown result type (might be due to invalid IL or missing references)
			//IL_067d: Expected O, but got Unknown
			//IL_069b: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a5: Expected O, but got Unknown
			//IL_06c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_06cd: Expected O, but got Unknown
			//IL_06eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f5: Expected O, but got Unknown
			//IL_0713: Unknown result type (might be due to invalid IL or missing references)
			//IL_071d: Expected O, but got Unknown
			//IL_073b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0745: Expected O, but got Unknown
			//IL_0763: Unknown result type (might be due to invalid IL or missing references)
			//IL_076d: Expected O, but got Unknown
			//IL_078b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0795: Expected O, but got Unknown
			config = PluginConfigurator.Create("Exit Door Manager", "com.earthlingOnFire.ExitDoorManager");
			string location = Assembly.GetExecutingAssembly().Location;
			string directoryName = Path.GetDirectoryName(location);
			config.SetIconWithURL(Path.Combine(directoryName, "icon.png"));
			exit01 = new StringListField(config.rootPanel, "0-1 Exit", "exit01", Levels, "Level 0-2");
			exit02 = new StringListField(config.rootPanel, "0-2 Exit", "exit02", Levels, "Level 0-3");
			exit02s = new StringListField(config.rootPanel, "0-2 Secret Exit", "exit02s", Levels, "Level 0-S");
			exit03 = new StringListField(config.rootPanel, "0-3 Exit", "exit03", Levels, "Level 0-4");
			exit04 = new StringListField(config.rootPanel, "0-4 Exit", "exit04", Levels, "Level 0-5");
			exit05 = new StringListField(config.rootPanel, "0-5 Exit", "exit05", Levels, "Level 1-1");
			exit0S = new StringListField(config.rootPanel, "0-S Exit", "exit0S", Levels, "Level 0-3");
			exit11 = new StringListField(config.rootPanel, "1-1 Exit", "exit11", Levels, "Level 1-2");
			exit11s = new StringListField(config.rootPanel, "1-1 Secret Exit", "exit11s", Levels, "Level 1-S");
			exit12 = new StringListField(config.rootPanel, "1-2 Exit", "exit12", Levels, "Level 1-3");
			exit13 = new StringListField(config.rootPanel, "1-3 Exit", "exit13", Levels, "Level 1-4");
			exit14 = new StringListField(config.rootPanel, "1-4 Exit", "exit14", Levels, "Level 2-1");
			exit1S = new StringListField(config.rootPanel, "1-S Exit", "exit1S", Levels, "Level 1-1");
			exit21 = new StringListField(config.rootPanel, "2-1 Exit", "exit21", Levels, "Level 2-2");
			exit22 = new StringListField(config.rootPanel, "2-2 Exit", "exit22", Levels, "Level 2-3");
			exit23 = new StringListField(config.rootPanel, "2-3 Exit", "exit23", Levels, "Level 2-4");
			exit23s = new StringListField(config.rootPanel, "2-3 Secret Exit", "exit23s", Levels, "Level 2-S");
			exit24 = new StringListField(config.rootPanel, "2-4 Exit", "exit24", Levels, "Level 3-1");
			exit2S = new StringListField(config.rootPanel, "2-S Exit", "exit2S", Levels, "Level 2-4");
			exit31 = new StringListField(config.rootPanel, "3-1 Exit", "exit31", Levels, "Level 3-2");
			exit31s = new StringListField(config.rootPanel, "3-1 Secret Exit", "exit31s", Levels, "Level P-1");
			exit32 = new StringListField(config.rootPanel, "3-2 Exit", "exit32", Levels, "Intermission1");
			exitI1 = new StringListField(config.rootPanel, "Intermission 1 Exit", "exitI1", Levels, "Level 4-1");
			exitP1 = new StringListField(config.rootPanel, "P-1 Exit", "exitP1", Levels, "Level 3-2");
			exit41 = new StringListField(config.rootPanel, "4-1 Exit", "exit41", Levels, "Level 4-2");
			exit42 = new StringListField(config.rootPanel, "4-2 Exit", "exit42", Levels, "Level 4-3");
			exit42s = new StringListField(config.rootPanel, "4-2 Secret Exit", "exit42s", Levels, "Level 4-S");
			exit43 = new StringListField(config.rootPanel, "4-3 Exit", "exit43", Levels, "Level 4-4");
			exit44 = new StringListField(config.rootPanel, "4-4 Exit", "exit44", Levels, "Level 5-1");
			exit4S = new StringListField(config.rootPanel, "4-S Exit", "exit4S", Levels, "Level 4-3");
			exit51 = new StringListField(config.rootPanel, "5-1 Exit", "exit51", Levels, "Level 5-2");
			exit51s = new StringListField(config.rootPanel, "5-1 Secret Exit", "exit51s", Levels, "Level 5-S");
			exit52 = new StringListField(config.rootPanel, "5-2 Exit", "exit52", Levels, "Level 5-3");
			exit53 = new StringListField(config.rootPanel, "5-3 Exit", "exit53", Levels, "Level 5-4");
			exit54 = new StringListField(config.rootPanel, "5-4 Exit", "exit54", Levels, "Level 6-1");
			exit5S = new StringListField(config.rootPanel, "5-S Exit", "exit5S", Levels, "Level 5-2");
			exit61 = new StringListField(config.rootPanel, "6-1 Exit", "exit61", Levels, "Level 6-2");
			exit62 = new StringListField(config.rootPanel, "6-2 Exit", "exit", Levels, "Intermission2");
			exit62s = new StringListField(config.rootPanel, "6-2 Secret Exit", "exit62s", Levels, "Level P-2");
			exitI2 = new StringListField(config.rootPanel, "Intermission 2 Exit", "exitI2", Levels, "Level 7-1");
			exitP2 = new StringListField(config.rootPanel, "P-2 Exit", "exitP2", Levels, "Level 6-2");
			exit71 = new StringListField(config.rootPanel, "7-1 Exit", "exit71", Levels, "Level 7-2");
			exit72 = new StringListField(config.rootPanel, "7-2 Exit", "exit72", Levels, "Level 7-3");
			exit73 = new StringListField(config.rootPanel, "7-3 Exit", "exit73", Levels, "Level 7-4");
			exit73s = new StringListField(config.rootPanel, "7-3 Secret Exit", "exit73s", Levels, "Level 7-S");
			exit74 = new StringListField(config.rootPanel, "7-4 Exit", "exit74", Levels, "EarlyAccessEnd");
			exit7s = new StringListField(config.rootPanel, "7-S Exit", "exit7s", Levels, "Level 7-4");
		}
	}
	[HarmonyPatch]
	public static class Patches
	{
		private class Exit
		{
			public string from { get; }

			public string to { get; }

			public Exit(string fromLevel, string toLevel)
			{
				from = fromLevel;
				to = toLevel;
			}
		}

		private static Random rand = new Random();

		[HarmonyPrefix]
		[HarmonyPatch(typeof(SceneHelper), "LoadScene")]
		private static bool SceneHelper_LoadScene_Prefix(string sceneName, bool noBlocker)
		{
			Exit exit = new Exit(SceneHelper.CurrentScene, sceneName);
			string text = GetNextScene(exit);
			if (text == null || text == sceneName)
			{
				return true;
			}
			if (text == "Random Scene")
			{
				string[] array = Array.FindAll(ConfigManager.Levels, (string lvl) => !lvl.StartsWith("Random"));
				int num = rand.Next(0, array.Length);
				text = array[num];
			}
			else if (text == "Random Level")
			{
				string[] array2 = Array.FindAll(ConfigManager.Levels, (string lvl) => lvl.StartsWith("Level"));
				int num2 = rand.Next(0, array2.Length);
				text = array2[num2];
			}
			((MonoBehaviour)MonoSingleton<SceneHelper>.Instance).StartCoroutine(MonoSingleton<SceneHelper>.Instance.LoadSceneAsync(text, noBlocker));
			return false;
		}

		[HarmonyPrefix]
		[HarmonyPatch(typeof(Scene), "Execute")]
		private static bool Scene_Execute_Prefix(Console con, string[] args)
		{
			if (con.CheatBlocker() || args.Length == 0)
			{
				return true;
			}
			string text = string.Join(" ", args);
			if (!Debug.isDebugBuild && MonoSingleton<SceneHelper>.Instance.IsSceneSpecial(text))
			{
				return true;
			}
			((MonoBehaviour)MonoSingleton<SceneHelper>.Instance).StartCoroutine(MonoSingleton<SceneHelper>.Instance.LoadSceneAsync(text, false));
			return false;
		}

		private static string GetNextScene(Exit exit)
		{
			if (1 == 0)
			{
			}
			string result;
			string to;
			if (exit != null)
			{
				switch (exit.from)
				{
				case "Level 0-1":
					break;
				case "Level 0-2":
					goto IL_0613;
				case "Level 0-3":
					goto IL_063f;
				case "Level 0-4":
					goto IL_065b;
				case "Level 0-5":
					goto IL_0677;
				case "Level 0-S":
					goto IL_0693;
				case "Level 1-1":
					goto IL_06af;
				case "Level 1-2":
					goto IL_06db;
				case "Level 1-3":
					goto IL_06f7;
				case "Level 1-4":
					goto IL_0713;
				case "Level 1-S":
					goto IL_072f;
				case "Level 2-1":
					goto IL_074b;
				case "Level 2-2":
					goto IL_0767;
				case "Level 2-3":
					goto IL_0783;
				case "Level 2-4":
					goto IL_07af;
				case "Level 2-S":
					goto IL_07cb;
				case "Level 3-1":
					goto IL_07e7;
				case "Level 3-2":
					goto IL_0813;
				case "Intermission1":
					goto IL_082f;
				case "Level P-1":
					goto IL_084b;
				case "Level 4-1":
					goto IL_0867;
				case "Level 4-2":
					goto IL_0883;
				case "Level 4-3":
					goto IL_08af;
				case "Level 4-4":
					goto IL_08cb;
				case "Level 4-S":
					goto IL_08e7;
				case "Level 5-1":
					goto IL_0903;
				case "Level 5-2":
					goto IL_092f;
				case "Level 5-3":
					goto IL_094b;
				case "Level 5-4":
					goto IL_0967;
				case "Level 5-S":
					goto IL_0983;
				case "Level 6-1":
					goto IL_099f;
				case "Level 6-2":
					goto IL_09bb;
				case "Intermission2":
					goto IL_09e7;
				case "Level P-2":
					goto IL_0a03;
				case "Level 7-1":
					goto IL_0a1f;
				case "Level 7-2":
					goto IL_0a3b;
				case "Level 7-3":
					goto IL_0a57;
				case "Level 7-4":
					goto IL_0a83;
				case "Level 7-S":
					goto IL_0a9f;
				default:
					goto IL_0d8d;
				}
				to = exit.to;
				if (to == "Level 0-2")
				{
					result = ConfigManager.exit01.value;
					goto IL_0d91;
				}
			}
			goto IL_0d8d;
			IL_08af:
			to = exit.to;
			if (!(to == "Level 4-4"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit43.value;
			goto IL_0d91;
			IL_0767:
			to = exit.to;
			if (!(to == "Level 2-3"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit22.value;
			goto IL_0d91;
			IL_0a9f:
			to = exit.to;
			if (!(to == "Level 7-4"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit7s.value;
			goto IL_0d91;
			IL_0693:
			to = exit.to;
			if (!(to == "Level 0-3"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit0S.value;
			goto IL_0d91;
			IL_0a83:
			to = exit.to;
			if (!(to == "EarlyAccessEnd"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit74.value;
			goto IL_0d91;
			IL_074b:
			to = exit.to;
			if (!(to == "Level 2-2"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit21.value;
			goto IL_0d91;
			IL_0a57:
			to = exit.to;
			if (!(to == "Level 7-4"))
			{
				if (!(to == "Level 7-S"))
				{
					goto IL_0d8d;
				}
				result = ConfigManager.exit73s.value;
			}
			else
			{
				result = ConfigManager.exit73.value;
			}
			goto IL_0d91;
			IL_0867:
			to = exit.to;
			if (!(to == "Level 4-2"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit41.value;
			goto IL_0d91;
			IL_084b:
			to = exit.to;
			if (!(to == "Level 3-2"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exitP1.value;
			goto IL_0d91;
			IL_072f:
			to = exit.to;
			if (!(to == "Level 1-1"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit1S.value;
			goto IL_0d91;
			IL_0a3b:
			to = exit.to;
			if (!(to == "Level 7-3"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit72.value;
			goto IL_0d91;
			IL_0677:
			to = exit.to;
			if (!(to == "Level 1-1"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit05.value;
			goto IL_0d91;
			IL_0a1f:
			to = exit.to;
			if (!(to == "Level 7-2"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit71.value;
			goto IL_0d91;
			IL_082f:
			to = exit.to;
			if (!(to == "Level 4-1"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exitI1.value;
			goto IL_0d91;
			IL_0a03:
			to = exit.to;
			if (!(to == "Level 6-2"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exitP2.value;
			goto IL_0d91;
			IL_0713:
			to = exit.to;
			if (!(to == "Level 2-1"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit14.value;
			goto IL_0d91;
			IL_09e7:
			to = exit.to;
			if (!(to == "Level 7-1"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exitI2.value;
			goto IL_0d91;
			IL_0813:
			to = exit.to;
			if (!(to == "Intermission1"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit32.value;
			goto IL_0d91;
			IL_09bb:
			to = exit.to;
			if (!(to == "Intermission2"))
			{
				if (!(to == "Level P-2"))
				{
					goto IL_0d8d;
				}
				result = ConfigManager.exit62s.value;
			}
			else
			{
				result = ConfigManager.exit62.value;
			}
			goto IL_0d91;
			IL_0d91:
			if (1 == 0)
			{
			}
			return result;
			IL_06f7:
			to = exit.to;
			if (!(to == "Level 1-4"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit13.value;
			goto IL_0d91;
			IL_07e7:
			to = exit.to;
			if (!(to == "Level 3-2"))
			{
				if (!(to == "Level P-1"))
				{
					goto IL_0d8d;
				}
				result = ConfigManager.exit31s.value;
			}
			else
			{
				result = ConfigManager.exit31.value;
			}
			goto IL_0d91;
			IL_099f:
			to = exit.to;
			if (!(to == "Level 6-2"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit61.value;
			goto IL_0d91;
			IL_06db:
			to = exit.to;
			if (!(to == "Level 1-3"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit12.value;
			goto IL_0d91;
			IL_0983:
			to = exit.to;
			if (!(to == "Level 5-2"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit5S.value;
			goto IL_0d91;
			IL_065b:
			to = exit.to;
			if (!(to == "Level 0-5"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit04.value;
			goto IL_0d91;
			IL_0967:
			to = exit.to;
			if (!(to == "Level 6-1"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit54.value;
			goto IL_0d91;
			IL_07cb:
			to = exit.to;
			if (!(to == "Level 2-4"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit2S.value;
			goto IL_0d91;
			IL_094b:
			to = exit.to;
			if (!(to == "Level 5-4"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit53.value;
			goto IL_0d91;
			IL_0d8d:
			result = null;
			goto IL_0d91;
			IL_092f:
			to = exit.to;
			if (!(to == "Level 5-3"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit52.value;
			goto IL_0d91;
			IL_07af:
			to = exit.to;
			if (!(to == "Level 3-1"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit24.value;
			goto IL_0d91;
			IL_0903:
			to = exit.to;
			if (!(to == "Level 5-2"))
			{
				if (!(to == "Level 5-S"))
				{
					goto IL_0d8d;
				}
				result = ConfigManager.exit51s.value;
			}
			else
			{
				result = ConfigManager.exit51.value;
			}
			goto IL_0d91;
			IL_06af:
			to = exit.to;
			if (!(to == "Level 1-2"))
			{
				if (!(to == "Level 1-S"))
				{
					goto IL_0d8d;
				}
				result = ConfigManager.exit11s.value;
			}
			else
			{
				result = ConfigManager.exit11.value;
			}
			goto IL_0d91;
			IL_063f:
			to = exit.to;
			if (!(to == "Level 0-4"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit03.value;
			goto IL_0d91;
			IL_0783:
			to = exit.to;
			if (!(to == "Level 2-4"))
			{
				if (!(to == "Level 2-S"))
				{
					goto IL_0d8d;
				}
				result = ConfigManager.exit23s.value;
			}
			else
			{
				result = ConfigManager.exit23.value;
			}
			goto IL_0d91;
			IL_08e7:
			to = exit.to;
			if (!(to == "Level 4-3"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit4S.value;
			goto IL_0d91;
			IL_0883:
			to = exit.to;
			if (!(to == "Level 4-3"))
			{
				if (!(to == "Level 4-S"))
				{
					goto IL_0d8d;
				}
				result = ConfigManager.exit42s.value;
			}
			else
			{
				result = ConfigManager.exit42.value;
			}
			goto IL_0d91;
			IL_08cb:
			to = exit.to;
			if (!(to == "Level 5-1"))
			{
				goto IL_0d8d;
			}
			result = ConfigManager.exit44.value;
			goto IL_0d91;
			IL_0613:
			to = exit.to;
			if (!(to == "Level 0-3"))
			{
				if (!(to == "Level 0-S"))
				{
					goto IL_0d8d;
				}
				result = ConfigManager.exit02s.value;
			}
			else
			{
				result = ConfigManager.exit02.value;
			}
			goto IL_0d91;
		}
	}
	[BepInPlugin("com.earthlingOnFire.ExitDoorManager", "Exit Door Manager", "1.0.1")]
	public class Plugin : BaseUnityPlugin
	{
		public const string PLUGIN_GUID = "com.earthlingOnFire.ExitDoorManager";

		public const string PLUGIN_NAME = "Exit Door Manager";

		public const string PLUGIN_VERSION = "1.0.1";

		private void Start()
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			((Object)((Component)this).gameObject).hideFlags = (HideFlags)61;
			new Harmony("com.earthlingOnFire.ExitDoorManager").PatchAll();
		}

		private void Awake()
		{
			ConfigManager.Initialize();
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "ExitDoorManager";

		public const string PLUGIN_NAME = "ExitDoorManager";

		public const string PLUGIN_VERSION = "1.0.1";
	}
}
namespace System.Runtime.CompilerServices
{
	[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
	internal sealed class IgnoresAccessChecksToAttribute : Attribute
	{
		internal IgnoresAccessChecksToAttribute(string assemblyName)
		{
		}
	}
}