Decompiled source of FixedCameraPlusPlus v1.0.0

FixedCameraPlusPlus.dll

Decompiled a year ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using LLBML.Utils;
using LLHandlers;
using StageBackground;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("FixedCameraPlusPlus")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("FixedCameraPlusPlus")]
[assembly: AssemblyCopyright("Copyright ©  2023")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("664de4af-aa69-4f3a-9e6b-dd07c879adf5")]
[assembly: AssemblyFileVersion("1.0.1.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.5", FrameworkDisplayName = ".NET Framework 4.5")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.1.0")]
[module: UnverifiableCode]
namespace FixedCameraPlusPlus;

[BepInPlugin("us.wallace.plugins.llb.FixedCameraPlusPlus", "FixedCameraPlusPlus Plug-In", "1.0.1.0")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInProcess("LLBlaze.exe")]
public class Plugin : BaseUnityPlugin
{
	public static ConfigEntry<bool> enableCamera;

	public static ConfigEntry<int> cameraPositionZ;

	public static ConfigEntry<int> cameraPositionY;

	public static ConfigEntry<bool> enableStageOutline;

	public static ConfigEntry<bool> useGlobalColors;

	public static ConfigEntry<int> globalColorR;

	public static ConfigEntry<int> globalColorG;

	public static ConfigEntry<int> globalColorB;

	public static ConfigEntry<int> outskirtsColorR;

	public static ConfigEntry<int> outskirtsColorG;

	public static ConfigEntry<int> outskirtsColorB;

	public static ConfigEntry<int> sewersColorR;

	public static ConfigEntry<int> sewersColorG;

	public static ConfigEntry<int> sewersColorB;

	public static ConfigEntry<int> desertColorR;

	public static ConfigEntry<int> desertColorG;

	public static ConfigEntry<int> desertColorB;

	public static ConfigEntry<int> elevatorColorR;

	public static ConfigEntry<int> elevatorColorG;

	public static ConfigEntry<int> elevatorColorB;

	public static ConfigEntry<int> factoryColorR;

	public static ConfigEntry<int> factoryColorG;

	public static ConfigEntry<int> factoryColorB;

	public static ConfigEntry<int> subwayColorR;

	public static ConfigEntry<int> subwayColorG;

	public static ConfigEntry<int> subwayColorB;

	public static ConfigEntry<int> stadiumColorR;

	public static ConfigEntry<int> stadiumColorG;

	public static ConfigEntry<int> stadiumColorB;

	public static ConfigEntry<int> streetsColorR;

	public static ConfigEntry<int> streetsColorG;

	public static ConfigEntry<int> streetsColorB;

	public static ConfigEntry<int> poolColorR;

	public static ConfigEntry<int> poolColorG;

	public static ConfigEntry<int> poolColorB;

	public static ConfigEntry<int> room21ColorR;

	public static ConfigEntry<int> room21ColorG;

	public static ConfigEntry<int> room21ColorB;

	public static ConfigEntry<int> outskirts2dColorR;

	public static ConfigEntry<int> outskirts2dColorG;

	public static ConfigEntry<int> outskirts2dColorB;

	public static ConfigEntry<int> sewers2dColorR;

	public static ConfigEntry<int> sewers2dColorG;

	public static ConfigEntry<int> sewers2dColorB;

	public static ConfigEntry<int> factory2dColorR;

	public static ConfigEntry<int> factory2dColorG;

	public static ConfigEntry<int> factory2dColorB;

	public static ConfigEntry<int> subway2dColorR;

	public static ConfigEntry<int> subway2dColorG;

	public static ConfigEntry<int> subway2dColorB;

	public static ConfigEntry<int> streets2dColorR;

	public static ConfigEntry<int> streets2dColorG;

	public static ConfigEntry<int> streets2dColorB;

	public static ConfigEntry<int> pool2dColorR;

	public static ConfigEntry<int> pool2dColorG;

	public static ConfigEntry<int> pool2dColorB;

	public static ConfigEntry<int> room212dColorR;

	public static ConfigEntry<int> room212dColorG;

	public static ConfigEntry<int> room212dColorB;

	public static ManualLogSource Log { get; private set; }

	private void Awake()
	{
		//IL_002a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0034: Expected O, but got Unknown
		//IL_0072: Unknown result type (might be due to invalid IL or missing references)
		//IL_007c: Expected O, but got Unknown
		//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ac: Expected O, but got Unknown
		//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e1: Expected O, but got Unknown
		//IL_010b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0115: Expected O, but got Unknown
		//IL_0174: Unknown result type (might be due to invalid IL or missing references)
		//IL_017e: Expected O, but got Unknown
		//IL_01a8: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b2: Expected O, but got Unknown
		//IL_01de: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e8: Expected O, but got Unknown
		//IL_0218: Unknown result type (might be due to invalid IL or missing references)
		//IL_0222: Expected O, but got Unknown
		//IL_024e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0258: Expected O, but got Unknown
		//IL_0283: Unknown result type (might be due to invalid IL or missing references)
		//IL_028d: Expected O, but got Unknown
		//IL_02b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_02c1: Expected O, but got Unknown
		//IL_02ed: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f7: Expected O, but got Unknown
		//IL_0327: Unknown result type (might be due to invalid IL or missing references)
		//IL_0331: Expected O, but got Unknown
		//IL_035e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0368: Expected O, but got Unknown
		//IL_0393: Unknown result type (might be due to invalid IL or missing references)
		//IL_039d: Expected O, but got Unknown
		//IL_03c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_03d1: Expected O, but got Unknown
		//IL_03fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0407: Expected O, but got Unknown
		//IL_0437: Unknown result type (might be due to invalid IL or missing references)
		//IL_0441: Expected O, but got Unknown
		//IL_0471: Unknown result type (might be due to invalid IL or missing references)
		//IL_047b: Expected O, but got Unknown
		//IL_04a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_04b0: Expected O, but got Unknown
		//IL_04da: Unknown result type (might be due to invalid IL or missing references)
		//IL_04e4: Expected O, but got Unknown
		//IL_050d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0517: Expected O, but got Unknown
		//IL_0547: Unknown result type (might be due to invalid IL or missing references)
		//IL_0551: Expected O, but got Unknown
		//IL_0581: Unknown result type (might be due to invalid IL or missing references)
		//IL_058b: Expected O, but got Unknown
		//IL_05b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_05c0: Expected O, but got Unknown
		//IL_05ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_05f4: Expected O, but got Unknown
		//IL_0620: Unknown result type (might be due to invalid IL or missing references)
		//IL_062a: Expected O, but got Unknown
		//IL_0657: Unknown result type (might be due to invalid IL or missing references)
		//IL_0661: Expected O, but got Unknown
		//IL_068e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0698: 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_06f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0701: Expected O, but got Unknown
		//IL_072d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0737: Expected O, but got Unknown
		//IL_0767: Unknown result type (might be due to invalid IL or missing references)
		//IL_0771: Expected O, but got Unknown
		//IL_079d: Unknown result type (might be due to invalid IL or missing references)
		//IL_07a7: Expected O, but got Unknown
		//IL_07d2: Unknown result type (might be due to invalid IL or missing references)
		//IL_07dc: Expected O, but got Unknown
		//IL_0806: Unknown result type (might be due to invalid IL or missing references)
		//IL_0810: Expected O, but got Unknown
		//IL_083c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0846: Expected O, but got Unknown
		//IL_0873: Unknown result type (might be due to invalid IL or missing references)
		//IL_087d: Expected O, but got Unknown
		//IL_08aa: Unknown result type (might be due to invalid IL or missing references)
		//IL_08b4: Expected O, but got Unknown
		//IL_08df: Unknown result type (might be due to invalid IL or missing references)
		//IL_08e9: Expected O, but got Unknown
		//IL_0913: Unknown result type (might be due to invalid IL or missing references)
		//IL_091d: Expected O, but got Unknown
		//IL_0949: Unknown result type (might be due to invalid IL or missing references)
		//IL_0953: Expected O, but got Unknown
		//IL_0980: Unknown result type (might be due to invalid IL or missing references)
		//IL_098a: Expected O, but got Unknown
		//IL_09b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_09c1: Expected O, but got Unknown
		//IL_09ec: Unknown result type (might be due to invalid IL or missing references)
		//IL_09f6: Expected O, but got Unknown
		//IL_0a20: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a2a: Expected O, but got Unknown
		//IL_0a56: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a60: Expected O, but got Unknown
		//IL_0a8d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a97: Expected O, but got Unknown
		//IL_0ac4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ace: Expected O, but got Unknown
		//IL_0af9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b03: Expected O, but got Unknown
		//IL_0b2d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b37: Expected O, but got Unknown
		//IL_0b63: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b6d: Expected O, but got Unknown
		//IL_0b9d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ba7: Expected O, but got Unknown
		//IL_0bd7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0be1: Expected O, but got Unknown
		//IL_0c0c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c16: Expected O, but got Unknown
		//IL_0c40: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c4a: Expected O, but got Unknown
		//IL_0c73: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c7d: Expected O, but got Unknown
		//IL_0caa: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cb4: Expected O, but got Unknown
		//IL_0ce1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ceb: Expected O, but got Unknown
		//IL_0d16: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d20: Expected O, but got Unknown
		//IL_0d4a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d54: Expected O, but got Unknown
		//IL_0d7b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d85: Expected O, but got Unknown
		//IL_0daf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0db9: Expected O, but got Unknown
		//IL_0de5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0def: Expected O, but got Unknown
		//IL_0e1f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e29: Expected O, but got Unknown
		//IL_0e56: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e60: Expected O, but got Unknown
		//IL_0e8b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e95: Expected O, but got Unknown
		//IL_0ebf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ec9: Expected O, but got Unknown
		//IL_0ef5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0eff: Expected O, but got Unknown
		//IL_0f2f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f39: Expected O, but got Unknown
		//IL_0f69: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f73: Expected O, but got Unknown
		//IL_0f9e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fa8: Expected O, but got Unknown
		//IL_0fd2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fdc: Expected O, but got Unknown
		//IL_1008: Unknown result type (might be due to invalid IL or missing references)
		//IL_1012: Expected O, but got Unknown
		//IL_1042: Unknown result type (might be due to invalid IL or missing references)
		//IL_104c: Expected O, but got Unknown
		//IL_1078: Unknown result type (might be due to invalid IL or missing references)
		//IL_1082: Expected O, but got Unknown
		//IL_10ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_10b7: Expected O, but got Unknown
		//IL_10e1: Unknown result type (might be due to invalid IL or missing references)
		//IL_10eb: Expected O, but got Unknown
		//IL_1117: Unknown result type (might be due to invalid IL or missing references)
		//IL_1121: Expected O, but got Unknown
		//IL_114e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1158: Expected O, but got Unknown
		//IL_1185: Unknown result type (might be due to invalid IL or missing references)
		//IL_118f: Expected O, but got Unknown
		//IL_11ba: Unknown result type (might be due to invalid IL or missing references)
		//IL_11c4: Expected O, but got Unknown
		//IL_11ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_11f8: Expected O, but got Unknown
		//IL_1224: Unknown result type (might be due to invalid IL or missing references)
		//IL_122e: Expected O, but got Unknown
		//IL_125b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1265: Expected O, but got Unknown
		//IL_1292: Unknown result type (might be due to invalid IL or missing references)
		//IL_129c: Expected O, but got Unknown
		//IL_12c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_12d1: Expected O, but got Unknown
		//IL_12fb: Unknown result type (might be due to invalid IL or missing references)
		//IL_1305: Expected O, but got Unknown
		//IL_1331: Unknown result type (might be due to invalid IL or missing references)
		//IL_133b: Expected O, but got Unknown
		//IL_136b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1375: Expected O, but got Unknown
		//IL_13a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_13af: Expected O, but got Unknown
		//IL_13da: Unknown result type (might be due to invalid IL or missing references)
		//IL_13e4: Expected O, but got Unknown
		//IL_140e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1418: Expected O, but got Unknown
		//IL_1441: Unknown result type (might be due to invalid IL or missing references)
		//IL_144b: Expected O, but got Unknown
		//IL_1478: Unknown result type (might be due to invalid IL or missing references)
		//IL_1482: Expected O, but got Unknown
		//IL_14af: Unknown result type (might be due to invalid IL or missing references)
		//IL_14b9: Expected O, but got Unknown
		//IL_14e0: Unknown result type (might be due to invalid IL or missing references)
		//IL_14e6: Expected O, but got Unknown
		((BaseUnityPlugin)this).Config.Bind<string>("Camera Settings", "mm_header_qol", "Camera Settings", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		enableCamera = ((BaseUnityPlugin)this).Config.Bind<bool>("CameraToggles", "enableCamera", true, (ConfigDescription)null);
		cameraPositionZ = ((BaseUnityPlugin)this).Config.Bind<int>("1. FCPPconfig", "Z Position of Camera (Divided by 1000, Vanilla Default: -15625, Mod Default: -17600)", -17600, new ConfigDescription("Controls How Far Away the Camera is from the Stage", (AcceptableValueBase)null, new object[0]));
		cameraPositionY = ((BaseUnityPlugin)this).Config.Bind<int>("1. FCPPconfig", "Y Position of Camera (Divided by 1000, Vanilla Default: 1890, Mod Default: 2330)", 2330, new ConfigDescription("Controls the Hight of the Camera", (AcceptableValueBase)null, new object[0]));
		((BaseUnityPlugin)this).Config.Bind<int>("gap", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Stage Outline Settings", "mm_header_qol", "Stage Outline Settings", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		enableStageOutline = ((BaseUnityPlugin)this).Config.Bind<bool>("OutlineToggles", "enableStageOutline", true, (ConfigDescription)null);
		useGlobalColors = ((BaseUnityPlugin)this).Config.Bind<bool>("OutlineToggles", "useGlobalColors", false, (ConfigDescription)null);
		((BaseUnityPlugin)this).Config.Bind<int>("gap2", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Global Stage Outline Colors", "mm_header_qol", "Global Stage Outline Colors", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		globalColorR = ((BaseUnityPlugin)this).Config.Bind<int>("3. GlobalColors", "ColorR", 255, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		globalColorG = ((BaseUnityPlugin)this).Config.Bind<int>("3. GlobalColors", "ColorG", 234, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		globalColorB = ((BaseUnityPlugin)this).Config.Bind<int>("3. GlobalColors", "ColorB", 5, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		((BaseUnityPlugin)this).Config.Bind<int>("gap3", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Outskirts Outline Color", "mm_header_qol", "Outskirts Outline Color", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		outskirtsColorR = ((BaseUnityPlugin)this).Config.Bind<int>("4. OutskirtsColors", "ColorR", 255, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		outskirtsColorG = ((BaseUnityPlugin)this).Config.Bind<int>("4. OutskirtsColors", "ColorG", 204, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		outskirtsColorB = ((BaseUnityPlugin)this).Config.Bind<int>("4. OutskirtsColors", "ColorB", 99, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		((BaseUnityPlugin)this).Config.Bind<int>("gap4", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Sewers Outline Color", "mm_header_qol", "Sewers Outline Color", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		sewersColorR = ((BaseUnityPlugin)this).Config.Bind<int>("5. SewersColors", "ColorR", 226, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		sewersColorG = ((BaseUnityPlugin)this).Config.Bind<int>("5. SewersColors", "ColorG", 150, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		sewersColorB = ((BaseUnityPlugin)this).Config.Bind<int>("5. SewersColors", "ColorB", 235, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		((BaseUnityPlugin)this).Config.Bind<int>("gap5", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Desert Outline Color", "mm_header_qol", "Desert Outline Color", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		desertColorR = ((BaseUnityPlugin)this).Config.Bind<int>("6. DesertColors", "ColorR", 110, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		desertColorG = ((BaseUnityPlugin)this).Config.Bind<int>("6. DesertColors", "ColorG", 166, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		desertColorB = ((BaseUnityPlugin)this).Config.Bind<int>("6. DesertColors", "ColorB", 189, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		((BaseUnityPlugin)this).Config.Bind<int>("gap6", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Elevator Outline Color", "mm_header_qol", "Elevator Outline Color", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		elevatorColorR = ((BaseUnityPlugin)this).Config.Bind<int>("7. ElevatorColors", "ElevatorColorR", 245, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		elevatorColorG = ((BaseUnityPlugin)this).Config.Bind<int>("7. ElevatorColors", "ElevatorColorG", 93, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		elevatorColorB = ((BaseUnityPlugin)this).Config.Bind<int>("7. ElevatorColors", "ElevatorColorB", 54, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		((BaseUnityPlugin)this).Config.Bind<int>("gap7", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Factory Outline Color", "mm_header_qol", "Factory Outline Color", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		factoryColorR = ((BaseUnityPlugin)this).Config.Bind<int>("8. FactoryColors", "ColorR", 255, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		factoryColorG = ((BaseUnityPlugin)this).Config.Bind<int>("8. FactoryColors", "ColorG", 234, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		factoryColorB = ((BaseUnityPlugin)this).Config.Bind<int>("8. FactoryColors", "ColorB", 5, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		((BaseUnityPlugin)this).Config.Bind<int>("gap8", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Subway Outline Color", "mm_header_qol", "Subway Outline Color", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		subwayColorR = ((BaseUnityPlugin)this).Config.Bind<int>("9. SubwayColors", "ColorR", 234, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		subwayColorG = ((BaseUnityPlugin)this).Config.Bind<int>("9. SubwayColors", "ColorG", 106, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		subwayColorB = ((BaseUnityPlugin)this).Config.Bind<int>("9. SubwayColors", "ColorB", 55, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		((BaseUnityPlugin)this).Config.Bind<int>("gap9", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Stadium Outline Color", "mm_header_qol", "Stadium Outline Color", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		stadiumColorR = ((BaseUnityPlugin)this).Config.Bind<int>("10. StadiumColors", "ColorR", 229, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		stadiumColorG = ((BaseUnityPlugin)this).Config.Bind<int>("10. StadiumColors", "ColorG", 81, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		stadiumColorB = ((BaseUnityPlugin)this).Config.Bind<int>("10. StadiumColors", "ColorB", 113, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		((BaseUnityPlugin)this).Config.Bind<int>("gap10", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Streets Outline Color", "mm_header_qol", "Streets Outline Color", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		streetsColorR = ((BaseUnityPlugin)this).Config.Bind<int>("11. StreetsColors", "ColorR", 228, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		streetsColorG = ((BaseUnityPlugin)this).Config.Bind<int>("11. StreetsColors", "ColorG", 71, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		streetsColorB = ((BaseUnityPlugin)this).Config.Bind<int>("11. StreetsColors", "ColorB", 59, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		((BaseUnityPlugin)this).Config.Bind<int>("gap11", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Pool Outline Color", "mm_header_qol", "Pool Outline Color", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		poolColorR = ((BaseUnityPlugin)this).Config.Bind<int>("12. PoolColors", "ColorR", 144, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		poolColorG = ((BaseUnityPlugin)this).Config.Bind<int>("12. PoolColors", "ColorG", 221, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		poolColorB = ((BaseUnityPlugin)this).Config.Bind<int>("12. PoolColors", "ColorB", 165, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		((BaseUnityPlugin)this).Config.Bind<int>("gap12", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Room 21 Outline Color", "mm_header_qol", "Room 21 Outline Color", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		room21ColorR = ((BaseUnityPlugin)this).Config.Bind<int>("13. RoomColors", "ColorR", 50, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		room21ColorG = ((BaseUnityPlugin)this).Config.Bind<int>("13. RoomColors", "ColorG", 50, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		room21ColorB = ((BaseUnityPlugin)this).Config.Bind<int>("13. RoomColors", "ColorB", 50, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		((BaseUnityPlugin)this).Config.Bind<int>("gap13", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Retro Stages", "mm_header_qol", "Retro Stages", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		((BaseUnityPlugin)this).Config.Bind<int>("gap14", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Retro Outskirts Outline Color", "mm_header_qol", "Retro Outskirts Outline Color", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		outskirts2dColorR = ((BaseUnityPlugin)this).Config.Bind<int>("14. OutskirtsColors", "ColorR", 255, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		outskirts2dColorG = ((BaseUnityPlugin)this).Config.Bind<int>("14. OutskirtsColors", "ColorG", 204, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		outskirts2dColorB = ((BaseUnityPlugin)this).Config.Bind<int>("14 OutskirtsColors", "ColorB", 99, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		((BaseUnityPlugin)this).Config.Bind<int>("gap15", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Retro Sewers Outline Color", "mm_header_qol", "Retro Sewers Outline Color", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		sewers2dColorR = ((BaseUnityPlugin)this).Config.Bind<int>("15. SewersColors", "ColorR", 226, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		sewers2dColorG = ((BaseUnityPlugin)this).Config.Bind<int>("15. SewersColors", "ColorG", 150, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		sewers2dColorB = ((BaseUnityPlugin)this).Config.Bind<int>("15. SewersColors", "ColorB", 235, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		((BaseUnityPlugin)this).Config.Bind<int>("gap16", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Retro Factory Outline Color", "mm_header_qol", "Retro Factory Outline Color", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		factory2dColorR = ((BaseUnityPlugin)this).Config.Bind<int>("16. FactoryColors", "ColorR", 255, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		factory2dColorG = ((BaseUnityPlugin)this).Config.Bind<int>("16. FactoryColors", "ColorG", 234, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		factory2dColorB = ((BaseUnityPlugin)this).Config.Bind<int>("16. FactoryColors", "ColorB", 5, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		((BaseUnityPlugin)this).Config.Bind<int>("gap17", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Retro Subway Outline Color", "mm_header_qol", "Retro Subway Outline Color", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		subway2dColorR = ((BaseUnityPlugin)this).Config.Bind<int>("17. SubwayColors", "ColorR", 234, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		subway2dColorG = ((BaseUnityPlugin)this).Config.Bind<int>("17. SubwayColors", "ColorG", 106, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		subway2dColorB = ((BaseUnityPlugin)this).Config.Bind<int>("17. SubwayColors", "ColorB", 55, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		((BaseUnityPlugin)this).Config.Bind<int>("gap18", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Retro Streets Outline Color", "mm_header_qol", "Retro Streets Outline Color", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		streets2dColorR = ((BaseUnityPlugin)this).Config.Bind<int>("18. StreetsColors", "ColorR", 228, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		streets2dColorG = ((BaseUnityPlugin)this).Config.Bind<int>("18. StreetsColors", "ColorG", 71, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		streets2dColorB = ((BaseUnityPlugin)this).Config.Bind<int>("18. StreetsColors", "ColorB", 59, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		((BaseUnityPlugin)this).Config.Bind<int>("gap19", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Retro Pool Outline Color", "mm_header_qol", "Retro Pool Outline Color", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		pool2dColorR = ((BaseUnityPlugin)this).Config.Bind<int>("19. PoolColors", "ColorR", 144, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		pool2dColorG = ((BaseUnityPlugin)this).Config.Bind<int>("19. PoolColors", "ColorG", 221, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		pool2dColorB = ((BaseUnityPlugin)this).Config.Bind<int>("19. PoolColors", "ColorB", 165, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		((BaseUnityPlugin)this).Config.Bind<int>("gap20", "mm_header_gap", 50, new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_gap" }));
		((BaseUnityPlugin)this).Config.Bind<string>("Retro Room 21 Outline Color", "mm_header_qol", "Retro Room 21 Outline Color", new ConfigDescription("", (AcceptableValueBase)null, new object[1] { "modmenu_header" }));
		room212dColorR = ((BaseUnityPlugin)this).Config.Bind<int>("20. RoomColors", "ColorR", 50, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		room212dColorG = ((BaseUnityPlugin)this).Config.Bind<int>("20. RoomColors", "ColorG", 50, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		room212dColorB = ((BaseUnityPlugin)this).Config.Bind<int>("20. RoomColors", "ColorB", 50, new ConfigDescription("", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 255), new object[0]));
		Log = ((BaseUnityPlugin)this).Logger;
		((BaseUnityPlugin)this).Logger.LogDebug((object)"Patching effects settings...");
		Harmony val = new Harmony("us.wallace.plugins.llb.FixedCameraPlusPlus");
		val.PatchAll(typeof(GameCameraInitPatch));
		((BaseUnityPlugin)this).Logger.LogDebug((object)"FixedCameraPlusPlus is loaded");
	}

	private void Start()
	{
		ModDependenciesUtils.RegisterToModMenu(((BaseUnityPlugin)this).Info, (List<string>)null);
	}
}
internal class GameCameraInitPatch
{
	[HarmonyPatch(typeof(GameCamera), "Init")]
	[HarmonyPrefix]
	public static bool Init_Prefix(GameCamera __instance, World setWorld, CJJDGIPHBCG data)
	{
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0051: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
		int value = Plugin.cameraPositionZ.Value;
		float maxPosZ = (float)value / 1000f;
		int value2 = Plugin.cameraPositionY.Value;
		float fixedCamPosY = (float)value2 / 1000f;
		GameCamera.InitCamera(((Component)__instance).gameObject, (ICCBAHKDIPO)12);
		__instance.AddSubCameras();
		__instance.world = setWorld;
		__instance.position = ((Component)__instance).transform.position;
		__instance.minScroll = 0f;
		__instance.maxScroll = 0f;
		GameCamera.camToLookAt = ((Component)GameCamera.gameplayCam).transform;
		__instance.cameraData = data;
		GameObject gameObject = ((Component)GameCamera.gameplayCam).gameObject;
		if (Plugin.enableStageOutline.Value)
		{
			StageOutline.CreateStageMesh(World.instance.GetStageCenter(), World.instance.stageSize);
		}
		if (Plugin.enableCamera.Value)
		{
			BG.instance.maxPosZ = maxPosZ;
			BG.instance.fixedCamPosY = fixedCamPosY;
		}
		return false;
	}
}
internal class StageOutline : MonoBehaviour
{
	public static Material lineMaterial;

	public static Color stageColor;

	public void Start()
	{
		//IL_000b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_001e: Expected O, but got Unknown
		//IL_0079: Unknown result type (might be due to invalid IL or missing references)
		//IL_0083: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c6: Unknown result type (might be due to invalid IL or missing references)
		lineMaterial = new Material(Shader.Find("Hidden/Internal-Colored"))
		{
			hideFlags = (HideFlags)61
		};
		lineMaterial.SetInt("_SrcBlend", 5);
		lineMaterial.SetInt("_DstBlend", 10);
		lineMaterial.SetInt("_Cull", 0);
		lineMaterial.SetInt("_ZWrite", 0);
		lineMaterial.SetInt("_ZTest", 8);
		CreateStageMesh(World.instance.GetStageCenter(), World.instance.stageSize);
		stageColor = new Color((float)Plugin.globalColorR.Value / 255f, (float)Plugin.globalColorG.Value / 255f, (float)Plugin.globalColorB.Value / 255f);
	}

	public static void CreateStageMesh(IBGCBLLKIHA obCenter, IBGCBLLKIHA obSize)
	{
		//IL_000b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_001e: Expected O, but got Unknown
		//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00cf: Invalid comparison between Unknown and I4
		//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_011b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0121: Invalid comparison between Unknown and I4
		//IL_010b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0110: Unknown result type (might be due to invalid IL or missing references)
		//IL_06ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_06af: Unknown result type (might be due to invalid IL or missing references)
		//IL_06b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_06b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_06b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_06c6: Unknown result type (might be due to invalid IL or missing references)
		//IL_06cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_06d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_06d4: Unknown result type (might be due to invalid IL or missing references)
		//IL_06db: Unknown result type (might be due to invalid IL or missing references)
		//IL_06e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_06ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_06f2: Unknown result type (might be due to invalid IL or missing references)
		//IL_06f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_06fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_0705: Unknown result type (might be due to invalid IL or missing references)
		//IL_070d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0714: Unknown result type (might be due to invalid IL or missing references)
		//IL_071c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0721: Unknown result type (might be due to invalid IL or missing references)
		//IL_0728: Unknown result type (might be due to invalid IL or missing references)
		//IL_072f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0737: Unknown result type (might be due to invalid IL or missing references)
		//IL_073e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0746: Unknown result type (might be due to invalid IL or missing references)
		//IL_074b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0752: Unknown result type (might be due to invalid IL or missing references)
		//IL_0759: Unknown result type (might be due to invalid IL or missing references)
		//IL_0761: Unknown result type (might be due to invalid IL or missing references)
		//IL_0768: Unknown result type (might be due to invalid IL or missing references)
		//IL_0770: Unknown result type (might be due to invalid IL or missing references)
		//IL_0775: Unknown result type (might be due to invalid IL or missing references)
		//IL_077e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0783: Unknown result type (might be due to invalid IL or missing references)
		//IL_078c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0798: Unknown result type (might be due to invalid IL or missing references)
		//IL_079d: Unknown result type (might be due to invalid IL or missing references)
		//IL_07a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_07ab: Unknown result type (might be due to invalid IL or missing references)
		//IL_07b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_07b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_07c5: Unknown result type (might be due to invalid IL or missing references)
		//IL_07ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_07cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_07d8: Unknown result type (might be due to invalid IL or missing references)
		//IL_07dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_07e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_07f2: Unknown result type (might be due to invalid IL or missing references)
		//IL_07f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_07fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0805: Unknown result type (might be due to invalid IL or missing references)
		//IL_080a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0813: Unknown result type (might be due to invalid IL or missing references)
		//IL_081f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0824: Unknown result type (might be due to invalid IL or missing references)
		//IL_0829: Unknown result type (might be due to invalid IL or missing references)
		//IL_0832: Unknown result type (might be due to invalid IL or missing references)
		//IL_0837: Unknown result type (might be due to invalid IL or missing references)
		//IL_0840: Unknown result type (might be due to invalid IL or missing references)
		//IL_084c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0851: Unknown result type (might be due to invalid IL or missing references)
		//IL_0856: Unknown result type (might be due to invalid IL or missing references)
		//IL_085f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0864: Unknown result type (might be due to invalid IL or missing references)
		//IL_086d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0879: Unknown result type (might be due to invalid IL or missing references)
		//IL_087e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0883: Unknown result type (might be due to invalid IL or missing references)
		//IL_088d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0892: Unknown result type (might be due to invalid IL or missing references)
		//IL_089d: Unknown result type (might be due to invalid IL or missing references)
		//IL_08a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_08ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_08b3: Unknown result type (might be due to invalid IL or missing references)
		//IL_08bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_08c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_08cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_08d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_08de: Unknown result type (might be due to invalid IL or missing references)
		//IL_08e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_08e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_08ed: Unknown result type (might be due to invalid IL or missing references)
		//IL_08f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0903: Unknown result type (might be due to invalid IL or missing references)
		//IL_0911: Unknown result type (might be due to invalid IL or missing references)
		//IL_0920: Unknown result type (might be due to invalid IL or missing references)
		//IL_016d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0173: Invalid comparison between Unknown and I4
		//IL_015d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0162: Unknown result type (might be due to invalid IL or missing references)
		//IL_01bf: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c5: Invalid comparison between Unknown and I4
		//IL_01af: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0211: Unknown result type (might be due to invalid IL or missing references)
		//IL_0217: Invalid comparison between Unknown and I4
		//IL_0201: Unknown result type (might be due to invalid IL or missing references)
		//IL_0206: Unknown result type (might be due to invalid IL or missing references)
		//IL_0263: Unknown result type (might be due to invalid IL or missing references)
		//IL_0269: Invalid comparison between Unknown and I4
		//IL_0253: Unknown result type (might be due to invalid IL or missing references)
		//IL_0258: Unknown result type (might be due to invalid IL or missing references)
		//IL_02b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_02bc: Invalid comparison between Unknown and I4
		//IL_02a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_02aa: Unknown result type (might be due to invalid IL or missing references)
		//IL_0308: Unknown result type (might be due to invalid IL or missing references)
		//IL_030f: Invalid comparison between Unknown and I4
		//IL_02f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_02fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_035b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0362: Invalid comparison between Unknown and I4
		//IL_034b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0350: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_03b5: Invalid comparison between Unknown and I4
		//IL_039e: Unknown result type (might be due to invalid IL or missing references)
		//IL_03a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0401: Unknown result type (might be due to invalid IL or missing references)
		//IL_0408: Invalid comparison between Unknown and I4
		//IL_03f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_03f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0454: Unknown result type (might be due to invalid IL or missing references)
		//IL_045b: Invalid comparison between Unknown and I4
		//IL_0444: Unknown result type (might be due to invalid IL or missing references)
		//IL_0449: Unknown result type (might be due to invalid IL or missing references)
		//IL_04a7: Unknown result type (might be due to invalid IL or missing references)
		//IL_04ae: Invalid comparison between Unknown and I4
		//IL_0497: Unknown result type (might be due to invalid IL or missing references)
		//IL_049c: Unknown result type (might be due to invalid IL or missing references)
		//IL_04fa: Unknown result type (might be due to invalid IL or missing references)
		//IL_0501: Invalid comparison between Unknown and I4
		//IL_04ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_04ef: Unknown result type (might be due to invalid IL or missing references)
		//IL_054d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0554: Invalid comparison between Unknown and I4
		//IL_053d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0542: Unknown result type (might be due to invalid IL or missing references)
		//IL_05a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_05a7: Invalid comparison between Unknown and I4
		//IL_0590: Unknown result type (might be due to invalid IL or missing references)
		//IL_0595: Unknown result type (might be due to invalid IL or missing references)
		//IL_05f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_05fa: Invalid comparison between Unknown and I4
		//IL_05e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_05e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0677: Unknown result type (might be due to invalid IL or missing references)
		//IL_067c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0636: Unknown result type (might be due to invalid IL or missing references)
		//IL_063b: Unknown result type (might be due to invalid IL or missing references)
		lineMaterial = new Material(Shader.Find("Hidden/Internal-Colored"))
		{
			hideFlags = (HideFlags)61
		};
		lineMaterial.SetInt("_SrcBlend", 5);
		lineMaterial.SetInt("_DstBlend", 10);
		lineMaterial.SetInt("_Cull", 0);
		lineMaterial.SetInt("_ZWrite", 0);
		lineMaterial.SetInt("_ZTest", 8);
		if (Plugin.useGlobalColors.Value)
		{
			stageColor = new Color((float)Plugin.globalColorR.Value / 255f, (float)Plugin.globalColorG.Value / 255f, (float)Plugin.globalColorB.Value / 255f);
		}
		else if ((int)StageHandler.curStage == 3)
		{
			stageColor = new Color((float)Plugin.outskirtsColorR.Value / 255f, (float)Plugin.outskirtsColorG.Value / 255f, (float)Plugin.outskirtsColorB.Value / 255f);
		}
		else if ((int)StageHandler.curStage == 4)
		{
			stageColor = new Color((float)Plugin.sewersColorR.Value / 255f, (float)Plugin.sewersColorG.Value / 255f, (float)Plugin.sewersColorB.Value / 255f);
		}
		else if ((int)StageHandler.curStage == 5)
		{
			stageColor = new Color((float)Plugin.desertColorR.Value / 255f, (float)Plugin.desertColorG.Value / 255f, (float)Plugin.desertColorB.Value / 255f);
		}
		else if ((int)StageHandler.curStage == 6)
		{
			stageColor = new Color((float)Plugin.elevatorColorR.Value / 255f, (float)Plugin.elevatorColorG.Value / 255f, (float)Plugin.elevatorColorB.Value / 255f);
		}
		else if ((int)StageHandler.curStage == 7)
		{
			stageColor = new Color((float)Plugin.factoryColorR.Value / 255f, (float)Plugin.factoryColorG.Value / 255f, (float)Plugin.factoryColorB.Value / 255f);
		}
		else if ((int)StageHandler.curStage == 8)
		{
			stageColor = new Color((float)Plugin.subwayColorR.Value / 255f, (float)Plugin.subwayColorG.Value / 255f, (float)Plugin.subwayColorB.Value / 255f);
		}
		else if ((int)StageHandler.curStage == 9)
		{
			stageColor = new Color((float)Plugin.stadiumColorR.Value / 255f, (float)Plugin.stadiumColorG.Value / 255f, (float)Plugin.stadiumColorB.Value / 255f);
		}
		else if ((int)StageHandler.curStage == 10)
		{
			stageColor = new Color((float)Plugin.streetsColorR.Value / 255f, (float)Plugin.streetsColorG.Value / 255f, (float)Plugin.streetsColorB.Value / 255f);
		}
		else if ((int)StageHandler.curStage == 11)
		{
			stageColor = new Color((float)Plugin.poolColorR.Value / 255f, (float)Plugin.poolColorG.Value / 255f, (float)Plugin.poolColorB.Value / 255f);
		}
		else if ((int)StageHandler.curStage == 12)
		{
			stageColor = new Color((float)Plugin.room21ColorR.Value / 255f, (float)Plugin.room21ColorG.Value / 255f, (float)Plugin.room21ColorB.Value / 255f);
		}
		else if ((int)StageHandler.curStage == 20)
		{
			stageColor = new Color((float)Plugin.outskirts2dColorR.Value / 255f, (float)Plugin.outskirts2dColorG.Value / 255f, (float)Plugin.outskirts2dColorB.Value / 255f);
		}
		else if ((int)StageHandler.curStage == 22)
		{
			stageColor = new Color((float)Plugin.sewers2dColorR.Value / 255f, (float)Plugin.sewers2dColorG.Value / 255f, (float)Plugin.sewers2dColorB.Value / 255f);
		}
		else if ((int)StageHandler.curStage == 26)
		{
			stageColor = new Color((float)Plugin.factory2dColorR.Value / 255f, (float)Plugin.factory2dColorG.Value / 255f, (float)Plugin.factory2dColorB.Value / 255f);
		}
		else if ((int)StageHandler.curStage == 25)
		{
			stageColor = new Color((float)Plugin.subway2dColorR.Value / 255f, (float)Plugin.subway2dColorG.Value / 255f, (float)Plugin.subway2dColorB.Value / 255f);
		}
		else if ((int)StageHandler.curStage == 24)
		{
			stageColor = new Color((float)Plugin.streets2dColorR.Value / 255f, (float)Plugin.streets2dColorG.Value / 255f, (float)Plugin.streets2dColorB.Value / 255f);
		}
		else if ((int)StageHandler.curStage == 21)
		{
			stageColor = new Color((float)Plugin.pool2dColorR.Value / 255f, (float)Plugin.pool2dColorG.Value / 255f, (float)Plugin.pool2dColorB.Value / 255f);
		}
		else if ((int)StageHandler.curStage == 23)
		{
			stageColor = new Color((float)Plugin.room212dColorR.Value / 255f, (float)Plugin.room212dColorG.Value / 255f, (float)Plugin.room212dColorB.Value / 255f);
		}
		else
		{
			stageColor = new Color((float)Plugin.globalColorR.Value / 255f, (float)Plugin.globalColorG.Value / 255f, (float)Plugin.globalColorB.Value / 255f);
		}
		Vector3[] array = (Vector3[])(object)new Vector3[4];
		Vector3[] array2 = (Vector3[])(object)new Vector3[4];
		Vector3[] array3 = (Vector3[])(object)new Vector3[4];
		Vector3[] array4 = (Vector3[])(object)new Vector3[4];
		Vector3[] array5 = (Vector3[])(object)new Vector3[4];
		float num = 0.1f;
		Vector2 val = Vector2(obCenter);
		Vector2 val2 = Vector2(obSize) * new Vector2(0.5f, 0.5f);
		array[0] = new Vector3(val.x - val2.x, val.y - val2.y);
		array[1] = new Vector3(val.x - val2.x, val.y + val2.y);
		array[2] = new Vector3(val.x + val2.x, val.y - val2.y);
		array[3] = new Vector3(val.x + val2.x, val.y + val2.y);
		array2[0] = array[0];
		array2[1] = array2[0] - new Vector3(num, 0f);
		array2[2] = array[1];
		array2[3] = array2[2] - new Vector3(num, 0f);
		array4[1] = array[2];
		array4[0] = array4[1] + new Vector3(num, 0f);
		array4[3] = array[3];
		array4[2] = array4[3] + new Vector3(num, 0f);
		array3[0] = array2[3];
		array3[1] = array3[0] + new Vector3(0f, num);
		array3[2] = array4[2];
		array3[3] = array3[2] + new Vector3(0f, num);
		array5[1] = array2[1];
		array5[0] = array5[1] - new Vector3(0f, num);
		array5[3] = array4[0];
		array5[2] = array5[3] - new Vector3(0f, num);
		Color color = stageColor;
		CreateMeshObject("LeftMesh", array2, color);
		CreateMeshObject("RightMesh", array4, color);
		CreateMeshObject("TopMesh", array3, color);
		CreateMeshObject("BottomMesh", array5, color);
	}

	public static void CreateMeshObject(string meshName, Vector3[] vertices, Color color)
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0051: Unknown result type (might be due to invalid IL or missing references)
		//IL_0057: Expected O, but got Unknown
		//IL_005d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0091: Unknown result type (might be due to invalid IL or missing references)
		Mesh val = new Mesh();
		int[] triangles = new int[6] { 0, 1, 2, 2, 1, 3 };
		val.vertices = vertices;
		val.triangles = triangles;
		val.RecalculateNormals();
		GameObject val2 = new GameObject(meshName, new Type[2]
		{
			typeof(MeshFilter),
			typeof(MeshRenderer)
		});
		val2.transform.localScale = Vector3.one;
		val2.GetComponent<MeshFilter>().mesh = val;
		((Renderer)val2.GetComponent<MeshRenderer>()).material = lineMaterial;
		((Renderer)val2.GetComponent<MeshRenderer>()).material.color = color;
	}

	public static IBGCBLLKIHA Vector2f(Vector2 v)
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_000c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0011: Unknown result type (might be due to invalid IL or missing references)
		//IL_0012: Unknown result type (might be due to invalid IL or missing references)
		//IL_001d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0022: Unknown result type (might be due to invalid IL or missing references)
		//IL_0023: Unknown result type (might be due to invalid IL or missing references)
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_0025: Unknown result type (might be due to invalid IL or missing references)
		//IL_002a: Unknown result type (might be due to invalid IL or missing references)
		//IL_002d: Unknown result type (might be due to invalid IL or missing references)
		HHBCPNCDNDH val = HHBCPNCDNDH.NKKIFJJEPOL((decimal)v.x);
		HHBCPNCDNDH val2 = HHBCPNCDNDH.NKKIFJJEPOL((decimal)v.y);
		return new IBGCBLLKIHA(val, val2);
	}

	public static Vector2 Vector2(HHBCPNCDNDH fX, HHBCPNCDNDH fY)
	{
		//IL_0021: Unknown result type (might be due to invalid IL or missing references)
		//IL_0026: Unknown result type (might be due to invalid IL or missing references)
		//IL_0029: Unknown result type (might be due to invalid IL or missing references)
		float num = (float)((HHBCPNCDNDH)(ref fX)).MGPJCFKOGBH() / 4.2949673E+09f;
		float num2 = (float)((HHBCPNCDNDH)(ref fY)).MGPJCFKOGBH() / 4.2949673E+09f;
		return new Vector2(num, num2);
	}

	public static Vector2 Vector2(IBGCBLLKIHA v)
	{
		//IL_002b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0030: Unknown result type (might be due to invalid IL or missing references)
		//IL_0033: Unknown result type (might be due to invalid IL or missing references)
		float num = (float)((HHBCPNCDNDH)(ref v.GCPKPHMKLBN)).MGPJCFKOGBH() / 4.2949673E+09f;
		float num2 = (float)((HHBCPNCDNDH)(ref v.CGJJEHPPOAN)).MGPJCFKOGBH() / 4.2949673E+09f;
		return new Vector2(num, num2);
	}
}
public class FixedCamera : MonoBehaviour
{
	private JOFJHDJHJGI currentGameState;

	public static FixedCamera instance;

	public static FixedCamera Instance => instance;

	private bool InGame => (Object)(object)World.instance != (Object)null && ((int)currentGameState == 19 || (int)currentGameState == 20);

	public static void Initialize()
	{
		//IL_0006: Unknown result type (might be due to invalid IL or missing references)
		//IL_000c: Expected O, but got Unknown
		GameObject val = new GameObject("FixedCamera");
		instance = val.AddComponent<FixedCamera>();
		Object.DontDestroyOnLoad((Object)(object)val);
	}

	public void Update()
	{
		//IL_0002: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Unknown result type (might be due to invalid IL or missing references)
		currentGameState = DNPFJHMAIBP.HHMOGKIMBNM();
		if (JOMBNFKIHIC.DAIOEHBEJBC || BG.instance.is2D || InGame)
		{
		}
		if (InGame)
		{
			GameObject gameObject = ((Component)GameCamera.gameplayCam).gameObject;
			if (!Object.op_Implicit((Object)(object)gameObject.GetComponent<StageOutline>()))
			{
				gameObject.AddComponent<StageOutline>();
			}
			else
			{
				Object.Destroy((Object)(object)gameObject.GetComponent<StageOutline>());
			}
		}
	}
}