Decompiled source of RegionMapUpgrade v1.1.3

Mods/RegionMapUpgrade.dll

Decompiled 2 months ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using HarmonyLib;
using Il2CppInterop.Runtime.InteropTypes.Arrays;
using Il2CppRUMBLE.Interactions.InteractionBase;
using Il2CppRUMBLE.Managers;
using Il2CppRUMBLE.Networking.MatchFlow.Regions;
using Il2CppRUMBLE.Networking.MatchFlow.Regions.Interactions;
using Il2CppRUMBLE.UI;
using Il2CppRUMBLE.Utilities;
using Il2CppTMPro;
using MelonLoader;
using Microsoft.CodeAnalysis;
using RegionMapUpgrade;
using RumbleModUI;
using RumbleModdingAPI;
using UnityEngine;
using UnityEngine.Events;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: MelonInfo(typeof(Main), "RegionMapUpgrade", "1.1.3", "UlvakSkillz", null)]
[assembly: MelonGame("Buckethead Entertainment", "RUMBLE")]
[assembly: MelonColor(255, 195, 0, 255)]
[assembly: MelonAuthorColor(255, 195, 0, 255)]
[assembly: VerifyLoaderVersion(0, 6, 6, true)]
[assembly: AssemblyCopyright("Copyright ©  2025")]
[assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")]
[assembly: AssemblyCompany("RegionMapUpgrade")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+6541cd019576b1f56fb9e8588ddad47843140073")]
[assembly: AssemblyProduct("RegionMapUpgrade")]
[assembly: AssemblyTitle("RegionMapUpgrade")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
}
namespace RegionMapUpgrade
{
	public static class BuildInfo
	{
		public const string ModName = "RegionMapUpgrade";

		public const string ModVersion = "1.1.3";

		public const string Description = "";

		public const string Author = "UlvakSkillz";

		public const string Company = "";
	}
	[RegisterTypeInIl2Cpp]
	public class HandColliderMapCheck : MonoBehaviour
	{
		private bool thisOneIsTouching = false;

		private void OnTriggerEnter(Collider other)
		{
			if (!Main.touchingARegion && Main.touchscreen && !Main.running && (!(((Object)((Component)other).gameObject).name != "Bone_HandAlpha_L") || !(((Object)((Component)other).gameObject).name != "Bone_HandAlpha_R")))
			{
				Main.touchingARegion = true;
				thisOneIsTouching = true;
				((Component)this).gameObject.GetComponent<Region>().Select();
			}
		}

		private void OnTriggerExit(Collider other)
		{
			if (thisOneIsTouching && (!(((Object)((Component)other).gameObject).name != "Bone_HandAlpha_L") || !(((Object)((Component)other).gameObject).name != "Bone_HandAlpha_R")))
			{
				Main.touchingARegion = false;
				thisOneIsTouching = false;
			}
		}
	}
	public class Main : MelonMod
	{
		[HarmonyPatch(typeof(Region), "UnHighlight")]
		public static class MatchmakingType
		{
			private static void Postfix(ref Region __instance)
			{
				try
				{
					if ((mapColor && mapColorGrey) || (mapColor && ((TMP_Text)((Component)((Component)__instance).gameObject.transform.GetChild(0)).GetComponent<TextMeshPro>()).text != "-1"))
					{
						__instance.Highlight();
					}
				}
				catch
				{
				}
			}
		}

		[CompilerGenerated]
		private sealed class <GetPlayerCounts>d__31 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public Main <>4__this;

			private DateTime <startTime>5__1;

			private float <waitTime>5__2;

			private string <originalRegion>5__3;

			private float <prevUpdateInterval>5__4;

			private float <playerCount>5__5;

			private float <lastPlayerCount>5__6;

			private bool[] <tempEnabledRegions>5__7;

			private Transform <temp>5__8;

			private float <time>5__9;

			private GameObject <footer>5__10;

			private int <i>5__11;

			private Region <region>5__12;

			private GameObject <regionText>5__13;

			private DateTime <endCheck>5__14;

			private Color <color>5__15;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <GetPlayerCounts>d__31(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<originalRegion>5__3 = null;
				<tempEnabledRegions>5__7 = null;
				<temp>5__8 = null;
				<footer>5__10 = null;
				<region>5__12 = null;
				<regionText>5__13 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_029a: Unknown result type (might be due to invalid IL or missing references)
				//IL_02a4: Expected O, but got Unknown
				//IL_060c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0616: 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_030f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0319: Expected O, but got Unknown
				//IL_032d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0337: Expected O, but got Unknown
				//IL_0766: Unknown result type (might be due to invalid IL or missing references)
				//IL_0770: Expected O, but got Unknown
				//IL_049c: Unknown result type (might be due to invalid IL or missing references)
				//IL_04c7: Unknown result type (might be due to invalid IL or missing references)
				//IL_04e1: Unknown result type (might be due to invalid IL or missing references)
				//IL_0501: Unknown result type (might be due to invalid IL or missing references)
				//IL_050b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0748: Unknown result type (might be due to invalid IL or missing references)
				//IL_0752: Expected O, but got Unknown
				//IL_0a61: Unknown result type (might be due to invalid IL or missing references)
				//IL_0a66: Unknown result type (might be due to invalid IL or missing references)
				//IL_0a6b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0acc: Unknown result type (might be due to invalid IL or missing references)
				//IL_0af1: Unknown result type (might be due to invalid IL or missing references)
				//IL_0d41: Unknown result type (might be due to invalid IL or missing references)
				//IL_0d51: Unknown result type (might be due to invalid IL or missing references)
				//IL_0d67: Unknown result type (might be due to invalid IL or missing references)
				//IL_0d71: Unknown result type (might be due to invalid IL or missing references)
				//IL_0da1: Unknown result type (might be due to invalid IL or missing references)
				//IL_0de4: Unknown result type (might be due to invalid IL or missing references)
				//IL_0e0a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0e36: Unknown result type (might be due to invalid IL or missing references)
				//IL_0e40: Unknown result type (might be due to invalid IL or missing references)
				//IL_0eb0: Unknown result type (might be due to invalid IL or missing references)
				//IL_0eb5: Unknown result type (might be due to invalid IL or missing references)
				//IL_0eba: Unknown result type (might be due to invalid IL or missing references)
				//IL_0f1a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0f3f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0921: Unknown result type (might be due to invalid IL or missing references)
				//IL_0926: Unknown result type (might be due to invalid IL or missing references)
				//IL_05ee: Unknown result type (might be due to invalid IL or missing references)
				//IL_05f8: Expected O, but got Unknown
				//IL_0973: Unknown result type (might be due to invalid IL or missing references)
				//IL_0978: Unknown result type (might be due to invalid IL or missing references)
				//IL_0955: Unknown result type (might be due to invalid IL or missing references)
				//IL_095a: Unknown result type (might be due to invalid IL or missing references)
				//IL_099d: Unknown result type (might be due to invalid IL or missing references)
				//IL_09a2: Unknown result type (might be due to invalid IL or missing references)
				//IL_0a2c: Unknown result type (might be due to invalid IL or missing references)
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					running = true;
					<startTime>5__1 = DateTime.Now;
					<waitTime>5__2 = 2f;
					<originalRegion>5__3 = Singleton<NetworkManager>.instance.networkConfig.FixedRegion;
					<prevUpdateInterval>5__4 = <>4__this.regionSelector.updateInterval;
					<>4__this.playerRef = <>4__this.regionSelector.playerNumberCollection;
					<>4__this.pingRef = <>4__this.regionSelector.pingNumberCollection;
					<>4__this.prevStepDurations = new float[6]
					{
						((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.playerRef.revolvingNumbers)[0].stepDuration,
						((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.playerRef.revolvingNumbers)[1].stepDuration,
						((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.playerRef.revolvingNumbers)[2].stepDuration,
						((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.pingRef.revolvingNumbers)[0].stepDuration,
						((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.pingRef.revolvingNumbers)[1].stepDuration,
						((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.pingRef.revolvingNumbers)[2].stepDuration
					};
					<>4__this.regionCountText.Clear();
					<>4__this.regionSelector.updateInterval = 0.1f;
					((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.playerRef.revolvingNumbers)[0].stepDuration = 0.01f;
					((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.playerRef.revolvingNumbers)[1].stepDuration = 0.01f;
					((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.playerRef.revolvingNumbers)[2].stepDuration = 0.01f;
					((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.pingRef.revolvingNumbers)[0].stepDuration = 0.01f;
					((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.pingRef.revolvingNumbers)[1].stepDuration = 0.01f;
					((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.pingRef.revolvingNumbers)[2].stepDuration = 0.01f;
					goto IL_02b5;
				case 1:
					<>1__state = -1;
					goto IL_02b5;
				case 2:
					<>1__state = -1;
					goto IL_0348;
				case 3:
					<>1__state = -1;
					goto IL_0348;
				case 4:
					<>1__state = -1;
					goto IL_0627;
				case 5:
					<>1__state = -1;
					goto IL_0627;
				case 6:
					<>1__state = -1;
					<playerCount>5__5 = ((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.regionSelector.playerNumberCollection.revolvingNumbers)[0].currentNumber * 100 + ((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.regionSelector.playerNumberCollection.revolvingNumbers)[1].currentNumber * 10 + ((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.playerRef.revolvingNumbers)[2].currentNumber;
					<lastPlayerCount>5__6 = <playerCount>5__5;
					<endCheck>5__14 = DateTime.Now.AddSeconds(<waitTime>5__2);
					if (<waitTime>5__2 != 1f)
					{
						<waitTime>5__2 = 1f;
					}
					goto IL_0855;
				case 7:
					<>1__state = -1;
					goto IL_0781;
				case 8:
					{
						<>1__state = -1;
						goto IL_0781;
					}
					IL_0781:
					if (((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.regionSelector.playerNumberCollection.revolvingNumbers)[0].rotateCoroutine != null || ((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.playerRef.revolvingNumbers)[1].rotateCoroutine != null || ((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.playerRef.revolvingNumbers)[2].rotateCoroutine != null)
					{
						<>2__current = (object)new WaitForFixedUpdate();
						<>1__state = 8;
						return true;
					}
					<playerCount>5__5 = ((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.regionSelector.playerNumberCollection.revolvingNumbers)[0].currentNumber * 100 + ((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.regionSelector.playerNumberCollection.revolvingNumbers)[1].currentNumber * 10 + ((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.playerRef.revolvingNumbers)[2].currentNumber;
					goto IL_0855;
					IL_0348:
					if (((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.regionSelector.playerNumberCollection.revolvingNumbers)[0].rotateCoroutine != null || ((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.playerRef.revolvingNumbers)[1].rotateCoroutine != null || ((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.playerRef.revolvingNumbers)[2].rotateCoroutine != null)
					{
						<>2__current = (object)new WaitForFixedUpdate();
						<>1__state = 3;
						return true;
					}
					<playerCount>5__5 = ((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.regionSelector.playerNumberCollection.revolvingNumbers)[0].currentNumber * 100 + ((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.regionSelector.playerNumberCollection.revolvingNumbers)[1].currentNumber * 10 + ((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.playerRef.revolvingNumbers)[2].currentNumber;
					goto IL_041a;
					IL_041a:
					if (<playerCount>5__5 == 0f)
					{
						<>2__current = (object)new WaitForFixedUpdate();
						<>1__state = 2;
						return true;
					}
					<lastPlayerCount>5__6 = <playerCount>5__5;
					<tempEnabledRegions>5__7 = new bool[enabledRegions.Count];
					enabledRegions.CopyTo(<tempEnabledRegions>5__7, 0);
					if (touchscreen)
					{
						((Component)Model.GetGameObject().transform.GetChild(0)).gameObject.SetActive(false);
						Model.GetGameObject().transform.GetChild(1).localScale = Vector3.zero;
						Model.GetGameObject().transform.GetChild(1).localPosition = new Vector3(Model.GetGameObject().transform.GetChild(1).localPosition.x, Model.GetGameObject().transform.GetChild(1).localPosition.y - 1f, Model.GetGameObject().transform.GetChild(1).localPosition.z);
						((Component)Model.GetGameObject().transform.GetChild(5)).gameObject.SetActive(false);
					}
					<i>5__11 = 0;
					goto IL_0b9b;
					IL_089d:
					if (mapColor)
					{
						if (!mapColorGrey && <playerCount>5__5 == 0f)
						{
							((Renderer)<region>5__12.glowGameObject.GetComponent<MeshRenderer>()).material.shader = <>4__this.regionGlow;
						}
						else
						{
							if (<playerCount>5__5 >= (float)(greenMin + 1))
							{
								<color>5__15 = new Color(0f, 0.5f, 0f);
							}
							else if (<playerCount>5__5 < (float)(yellowMin + 1))
							{
								<color>5__15 = new Color(0.5f, 0f, 0f);
							}
							else
							{
								<color>5__15 = new Color(0.71f, 0.65f, 0f);
							}
							if (mapColorGrey && <playerCount>5__5 == 0f)
							{
								<color>5__15 = Color.gray;
							}
							if (!mapColorGrey && <playerCount>5__5 == 0f)
							{
								((Renderer)<region>5__12.glowGameObject.GetComponent<MeshRenderer>()).material.shader = <>4__this.regionGlow;
							}
							else
							{
								((Renderer)<region>5__12.glowGameObject.GetComponent<MeshRenderer>()).material.shader = <>4__this.urp;
								((Renderer)<region>5__12.glowGameObject.GetComponent<MeshRenderer>()).material.color = <color>5__15;
								<region>5__12.Highlight();
							}
						}
					}
					<regionText>5__13 = Create.NewText((<playerCount>5__5 - 1f).ToString(), 0.5f, Color.black, Vector3.zero, Quaternion.identity);
					((Object)<regionText>5__13).name = ((Object)((Component)<region>5__12).gameObject).name;
					<regionText>5__13.transform.parent = ((Component)<region>5__12).transform;
					<regionText>5__13.transform.localPosition = new Vector3(0f, 0.05f, 0f);
					<regionText>5__13.transform.localRotation = Quaternion.Euler(90f, 0f, 0f);
					((TMP_Text)<regionText>5__13.GetComponent<TextMeshPro>()).alignment = (TextAlignmentOptions)514;
					((TMP_Text)<regionText>5__13.GetComponent<TextMeshPro>()).enableWordWrapping = false;
					if (<playerCount>5__5 <= 1f || !<tempEnabledRegions>5__7[<i>5__11] || <>4__this.requeueing)
					{
						<regionText>5__13.SetActive(false);
					}
					<>4__this.regionCountText.Add(<regionText>5__13);
					<region>5__12 = null;
					<regionText>5__13 = null;
					<i>5__11++;
					goto IL_0b9b;
					IL_0855:
					if (DateTime.Now <= <endCheck>5__14 && <playerCount>5__5 == <lastPlayerCount>5__6)
					{
						<>2__current = (object)new WaitForFixedUpdate();
						<>1__state = 7;
						return true;
					}
					<lastPlayerCount>5__6 = <playerCount>5__5;
					goto IL_089d;
					IL_0b9b:
					if (<i>5__11 < regionOrder.Count)
					{
						if (<>4__this.bail)
						{
							<>4__this.bail = false;
							return false;
						}
						<region>5__12 = ((Il2CppArrayBase<Region>)(object)<>4__this.regions)[regionOrder[<i>5__11]];
						((Component)<region>5__12).gameObject.AddComponent<HandColliderMapCheck>();
						if (touchscreen)
						{
							((Component)<region>5__12).gameObject.layer = 22;
						}
						if (<tempEnabledRegions>5__7[<i>5__11] && !<>4__this.requeueing)
						{
							<region>5__12.Select();
							<>2__current = (object)new WaitForFixedUpdate();
							<>1__state = 4;
							return true;
						}
						<playerCount>5__5 = 0f;
						goto IL_089d;
					}
					if (!<>4__this.requeueing)
					{
						((Il2CppArrayBase<Region>)(object)<>4__this.regions)[regionCodes.IndexOf(<originalRegion>5__3)].Select();
					}
					<>4__this.regionSelector.updateInterval = <prevUpdateInterval>5__4;
					if (!touchscreen)
					{
						((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.playerRef.revolvingNumbers)[0].stepDuration = <>4__this.prevStepDurations[0];
						((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.playerRef.revolvingNumbers)[1].stepDuration = <>4__this.prevStepDurations[1];
						((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.playerRef.revolvingNumbers)[2].stepDuration = <>4__this.prevStepDurations[2];
						((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.pingRef.revolvingNumbers)[0].stepDuration = <>4__this.prevStepDurations[3];
						((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.pingRef.revolvingNumbers)[1].stepDuration = <>4__this.prevStepDurations[4];
						((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.pingRef.revolvingNumbers)[2].stepDuration = <>4__this.prevStepDurations[5];
					}
					<temp>5__8 = Model.GetGameObject().transform.GetChild(3).GetChild(0).GetChild(11);
					<temp>5__8.localPosition = new Vector3(<temp>5__8.localPosition.x, <temp>5__8.localPosition.y + 0.018f, <temp>5__8.localPosition.z);
					<>4__this.regionCountText[0].transform.localPosition = new Vector3(0f, 0.049f, 0f);
					((Il2CppArrayBase<Region>)(object)<>4__this.regions)[11].glowGameObject.transform.localPosition = new Vector3(((Il2CppArrayBase<Region>)(object)<>4__this.regions)[11].glowGameObject.transform.localPosition.x, ((Il2CppArrayBase<Region>)(object)<>4__this.regions)[11].glowGameObject.transform.localPosition.y + 0.017f, ((Il2CppArrayBase<Region>)(object)<>4__this.regions)[11].glowGameObject.transform.localPosition.z);
					MelonCoroutines.Start(<>4__this.PlayerCountForActiveRegionWatcher());
					<time>5__9 = (float)(DateTime.Now - <startTime>5__1).TotalSeconds;
					<footer>5__10 = Create.NewText("Last Time To Load: " + <time>5__9.ToString("0.##") + " Seconds", 0.25f, new Color(1f, 0.77f, 0.5f), Vector3.zero, Quaternion.identity);
					((Object)<footer>5__10).name = "TimeToLoad";
					<footer>5__10.transform.parent = ((Component)Model.GetGameObject().transform.GetChild(2)).transform;
					<footer>5__10.transform.localPosition = new Vector3(-0.3f, 0.07f, -0.27f);
					<footer>5__10.transform.localRotation = Quaternion.Euler(90f, 0f, 0f);
					running = false;
					return false;
					IL_0627:
					if (((TMP_Text)((Component)Model.GetGameObject().transform.GetChild(7).GetChild(1)).GetComponent<TextMeshProUGUI>()).text != regionTitles[regionCodes.IndexOf(<region>5__12.RegionCode)])
					{
						<>2__current = (object)new WaitForFixedUpdate();
						<>1__state = 5;
						return true;
					}
					<>2__current = (object)new WaitForSeconds(0.25f);
					<>1__state = 6;
					return true;
					IL_02b5:
					if (((TMP_Text)((Component)Model.GetGameObject().transform.GetChild(7).GetChild(1)).GetComponent<TextMeshProUGUI>()).text != regionTitles[regionCodes.IndexOf(Singleton<NetworkManager>.instance.networkConfig.FixedRegion)])
					{
						<>2__current = (object)new WaitForFixedUpdate();
						<>1__state = 1;
						return true;
					}
					<playerCount>5__5 = 0f;
					goto IL_041a;
				}
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		[CompilerGenerated]
		private sealed class <PlayerCountForActiveRegionWatcher>d__32 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public Main <>4__this;

			private bool <init>5__1;

			private int <lastPlayerCount>5__2;

			private int <playerCount>5__3;

			private int <lastPingCount>5__4;

			private int <pingCount>5__5;

			private int <currentRegionSpot>5__6;

			private Region <region>5__7;

			private TextMeshPro <regionTMP>5__8;

			private GameObject <pingCountGO>5__9;

			private TextMeshPro <pingTMP>5__10;

			private Color <color>5__11;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <PlayerCountForActiveRegionWatcher>d__32(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<region>5__7 = null;
				<regionTMP>5__8 = null;
				<pingCountGO>5__9 = null;
				<pingTMP>5__10 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_003d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0047: Expected O, but got Unknown
				//IL_00e1: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e6: Unknown result type (might be due to invalid IL or missing references)
				//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
				//IL_0157: Unknown result type (might be due to invalid IL or missing references)
				//IL_017c: Unknown result type (might be due to invalid IL or missing references)
				//IL_01a2: Unknown result type (might be due to invalid IL or missing references)
				//IL_01ac: Expected O, but got Unknown
				//IL_05b4: Unknown result type (might be due to invalid IL or missing references)
				//IL_05be: Expected O, but got Unknown
				//IL_0429: Unknown result type (might be due to invalid IL or missing references)
				//IL_042e: Unknown result type (might be due to invalid IL or missing references)
				//IL_047a: Unknown result type (might be due to invalid IL or missing references)
				//IL_047f: Unknown result type (might be due to invalid IL or missing references)
				//IL_045c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0461: Unknown result type (might be due to invalid IL or missing references)
				//IL_049b: Unknown result type (might be due to invalid IL or missing references)
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<>2__current = (object)new WaitForSeconds(1f);
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					<init>5__1 = false;
					<lastPlayerCount>5__2 = int.Parse(((TMP_Text)((Component)((Component)((Il2CppArrayBase<Region>)(object)<>4__this.regions)[regionCodes.IndexOf(Singleton<NetworkManager>.instance.networkConfig.FixedRegion)]).gameObject.transform.GetChild(0)).GetComponent<TextMeshPro>()).text);
					<playerCount>5__3 = 0;
					<lastPingCount>5__4 = 0;
					<pingCount>5__5 = 0;
					<currentRegionSpot>5__6 = -1;
					<region>5__7 = null;
					<regionTMP>5__8 = null;
					<pingCountGO>5__9 = Create.NewText("Ping: -1", 0.5f, Color.black, Vector3.zero, Quaternion.identity);
					<pingTMP>5__10 = <pingCountGO>5__9.GetComponent<TextMeshPro>();
					((Object)<pingCountGO>5__9).name = "Ping";
					<pingCountGO>5__9.transform.parent = Model.GetGameObject().transform.GetChild(2);
					<pingCountGO>5__9.transform.localPosition = new Vector3(-0.127f, 0.148f, 0.385f);
					<pingCountGO>5__9.transform.localRotation = Quaternion.Euler(90f, 0f, 0f);
					((TMP_Text)<pingTMP>5__10).enableWordWrapping = false;
					if (!showPing)
					{
						<>2__current = (object)new WaitForFixedUpdate();
						<>1__state = 2;
						return true;
					}
					break;
				case 2:
					<>1__state = -1;
					<pingCountGO>5__9.SetActive(false);
					break;
				case 3:
					<>1__state = -1;
					break;
				}
				if (<>4__this.currentScene == "Gym" && !<>4__this.bail)
				{
					<playerCount>5__3 = ((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.regionSelector.playerNumberCollection.revolvingNumbers)[0].currentNumber * 100 + ((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.regionSelector.playerNumberCollection.revolvingNumbers)[1].currentNumber * 10 + ((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.playerRef.revolvingNumbers)[2].currentNumber;
					<pingCount>5__5 = ((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.regionSelector.pingNumberCollection.revolvingNumbers)[0].currentNumber * 100 + ((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.regionSelector.pingNumberCollection.revolvingNumbers)[1].currentNumber * 10 + ((Il2CppArrayBase<RevolvingNumber>)(object)<>4__this.pingRef.revolvingNumbers)[2].currentNumber;
					if (!<init>5__1 || <playerCount>5__3 != <lastPlayerCount>5__2 || <currentRegionSpot>5__6 != regionOrder.IndexOf(regionCodes.IndexOf(Singleton<NetworkManager>.instance.networkConfig.FixedRegion)))
					{
						if (<currentRegionSpot>5__6 != regionOrder.IndexOf(regionCodes.IndexOf(Singleton<NetworkManager>.instance.networkConfig.FixedRegion)))
						{
							<currentRegionSpot>5__6 = regionOrder.IndexOf(regionCodes.IndexOf(Singleton<NetworkManager>.instance.networkConfig.FixedRegion));
							<region>5__7 = ((Il2CppArrayBase<Region>)(object)<>4__this.regions)[regionCodes.IndexOf(Singleton<NetworkManager>.instance.networkConfig.FixedRegion)];
							<regionTMP>5__8 = <>4__this.regionCountText[<currentRegionSpot>5__6].GetComponent<TextMeshPro>();
						}
						if (mapColor && (Object)(object)((Renderer)<region>5__7.glowGameObject.GetComponent<MeshRenderer>()).material.shader != (Object)(object)<>4__this.urp)
						{
							((Renderer)<region>5__7.glowGameObject.GetComponent<MeshRenderer>()).material.shader = <>4__this.urp;
						}
						if (<playerCount>5__3 >= greenMin + 1)
						{
							<color>5__11 = new Color(0f, 0.5f, 0f);
						}
						else if (<playerCount>5__3 < yellowMin + 1)
						{
							<color>5__11 = new Color(0.5f, 0f, 0f);
						}
						else
						{
							<color>5__11 = new Color(0.71f, 0.65f, 0f);
						}
						((Renderer)<region>5__7.glowGameObject.GetComponent<MeshRenderer>()).material.color = <color>5__11;
						((TMP_Text)<regionTMP>5__8).text = (<playerCount>5__3 - 1).ToString();
						if (<playerCount>5__3 <= 1)
						{
							<>4__this.regionCountText[<currentRegionSpot>5__6].SetActive(false);
						}
						else if (!<>4__this.regionCountText[<currentRegionSpot>5__6].active)
						{
							<>4__this.regionCountText[<currentRegionSpot>5__6].SetActive(true);
						}
						<lastPlayerCount>5__2 = <playerCount>5__3;
						<init>5__1 = true;
					}
					if (showPing && <pingCount>5__5 != <lastPingCount>5__4)
					{
						((TMP_Text)<pingTMP>5__10).text = $"Ping: {<pingCount>5__5}";
						<lastPingCount>5__4 = <pingCount>5__5;
					}
					<>2__current = (object)new WaitForFixedUpdate();
					<>1__state = 3;
					return true;
				}
				if (<>4__this.bail)
				{
					<>4__this.bail = false;
				}
				return false;
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		private string currentScene = "Loader";

		private Mod RegionMapUpgrade = new Mod();

		public static List<bool> enabledRegions = new List<bool>
		{
			false, false, false, false, false, false, false, false, false, false,
			false, false, false
		};

		private Shader urp;

		public static bool running = false;

		public static bool touchscreen = true;

		public static bool mapColor = true;

		public static bool mapColorGrey = true;

		public static int greenMin = 9;

		public static int yellowMin = 1;

		public static bool showPing = true;

		private bool bail = false;

		private bool requeueing = false;

		public static bool touchingARegion = false;

		private List<GameObject> regionCountText = new List<GameObject>();

		private RegionSelector regionSelector;

		private Il2CppReferenceArray<Region> regions;

		public static List<string> regionCodes = new List<string>
		{
			"asia", "au", "cae", "eu", "in", "jp", "ru", "rue", "za", "sa",
			"kr", "us", "usw"
		};

		public static List<string> regionTextGOOrder = new List<string>
		{
			"us", "usw", "eu", "au", "cae", "asia", "in", "jp", "ru", "rue",
			"za", "sa", "kr"
		};

		public static string[] regionTitles = new string[13]
		{
			"Asia", "Australia", "Canada", "Europe", "India", "Japan", "Russia", "Russia, East", "South Africa", "South America",
			"South Korea", "USA, East", "USA, West"
		};

		public static List<int> regionOrder = new List<int>
		{
			11, 12, 3, 1, 2, 0, 4, 5, 6, 7,
			8, 9, 10
		};

		private float[] prevStepDurations;

		private RevolvingNumberCollection pingRef;

		private RevolvingNumberCollection playerRef;

		private Shader regionGlow;

		public static void Log(string msg)
		{
			MelonLogger.Msg(msg);
		}

		public override void OnLateInitializeMelon()
		{
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Expected O, but got Unknown
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Expected O, but got Unknown
			//IL_009d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a7: Expected O, but got Unknown
			//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c4: 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_00f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fe: Expected O, but got Unknown
			//IL_0111: Unknown result type (might be due to invalid IL or missing references)
			//IL_011b: Expected O, but got Unknown
			//IL_012e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0138: 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_0168: Unknown result type (might be due to invalid IL or missing references)
			//IL_0172: Expected O, but got Unknown
			//IL_0185: Unknown result type (might be due to invalid IL or missing references)
			//IL_018f: Expected O, but got Unknown
			//IL_01a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ac: Expected O, but got Unknown
			//IL_01bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c9: Expected O, but got Unknown
			//IL_01dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e6: Expected O, but got Unknown
			//IL_01f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0203: Expected O, but got Unknown
			//IL_0216: Unknown result type (might be due to invalid IL or missing references)
			//IL_0220: Expected O, but got Unknown
			//IL_0232: Unknown result type (might be due to invalid IL or missing references)
			//IL_023c: Expected O, but got Unknown
			//IL_024f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0259: Expected O, but got Unknown
			RegionMapUpgrade.ModName = "RegionMapUpgrade";
			RegionMapUpgrade.ModVersion = "1.1.3";
			RegionMapUpgrade.SetFolder("RegionMapUpgrade");
			RegionMapUpgrade.AddToList("USA, East", true, 0, "Toggle's US East Check On/Off", new Tags());
			RegionMapUpgrade.AddToList("USA, West", true, 0, "Toggle's US West Check On/Off", new Tags());
			RegionMapUpgrade.AddToList("Europe", true, 0, "Toggle's Europe Check On/Off", new Tags());
			RegionMapUpgrade.AddToList("Australia", true, 0, "Toggle's Australia Check On/Off", new Tags());
			RegionMapUpgrade.AddToList("Canada", true, 0, "Toggle's Canada Check On/Off", new Tags());
			RegionMapUpgrade.AddToList("Asia", true, 0, "Toggle's Asia Check On/Off", new Tags());
			RegionMapUpgrade.AddToList("India", true, 0, "Toggle's India Check On/Off", new Tags());
			RegionMapUpgrade.AddToList("Japan", true, 0, "Toggle's Japan Check On/Off", new Tags());
			RegionMapUpgrade.AddToList("Russia ", true, 0, "Toggle's Russia Check On/Off", new Tags());
			RegionMapUpgrade.AddToList("Russia, East", true, 0, "Toggle's Russia, East Check On/Off", new Tags());
			RegionMapUpgrade.AddToList("South Africa", true, 0, "Toggle's South Africa Check On/Off", new Tags());
			RegionMapUpgrade.AddToList("South America", true, 0, "Toggle's South America Check On/Off", new Tags());
			RegionMapUpgrade.AddToList("South Korea", true, 0, "Toggle's South Korea Check On/Off", new Tags());
			RegionMapUpgrade.AddToList("Touch Screen", true, 0, "Toggle's TouchScreen Version of RegionBoard On/Off", new Tags());
			RegionMapUpgrade.AddToList("Map Color  ", true, 0, "Toggle's Coloring the World Map On/Off", new Tags());
			RegionMapUpgrade.AddToList("Map Color - Grey", true, 0, "Toggle's Grey Coloring the World Map On/Off", new Tags());
			RegionMapUpgrade.AddToList("Map Color - Green Min", 9, "Sets the Minimum Player Count needed to Turn Green on the World Map", new Tags());
			RegionMapUpgrade.AddToList("Map Color - Yellow Min", 1, "Sets the Minimum Player Count needed to Turn Yellow on the World Map", new Tags());
			RegionMapUpgrade.AddToList("Show Ping", true, 0, "Toggle's Ping Counter On/Off", new Tags());
			RegionMapUpgrade.GetFromFile();
			Save();
			Calls.onMapInitialized += mapInit;
			Calls.onMatchStarted += AddButtonListeners;
			UI.instance.UI_Initialized += UIInit;
			RegionMapUpgrade.ModSaved += Save;
			urp = Shader.Find("Universal Render Pipeline/Lit");
			regionGlow = Shader.Find("Shader Graphs/RegionSelectGlow");
		}

		private void UIInit()
		{
			UI.instance.AddMod(RegionMapUpgrade);
		}

		private void Save()
		{
			//IL_0429: 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_046e: Unknown result type (might be due to invalid IL or missing references)
			//IL_048e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0498: Unknown result type (might be due to invalid IL or missing references)
			//IL_0615: Unknown result type (might be due to invalid IL or missing references)
			//IL_0640: Unknown result type (might be due to invalid IL or missing references)
			//IL_065a: Unknown result type (might be due to invalid IL or missing references)
			//IL_067a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0684: Unknown result type (might be due to invalid IL or missing references)
			//IL_087c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0846: Unknown result type (might be due to invalid IL or missing references)
			//IL_084b: Unknown result type (might be due to invalid IL or missing references)
			for (int i = 0; i < enabledRegions.Count; i++)
			{
				enabledRegions[i] = (bool)RegionMapUpgrade.Settings[i].SavedValue;
			}
			bool flag = touchscreen;
			touchscreen = (bool)RegionMapUpgrade.Settings[enabledRegions.Count].SavedValue;
			bool flag2 = mapColor;
			mapColor = (bool)RegionMapUpgrade.Settings[enabledRegions.Count + 1].SavedValue;
			bool flag3 = mapColorGrey;
			mapColorGrey = (bool)RegionMapUpgrade.Settings[enabledRegions.Count + 2].SavedValue;
			int num = greenMin;
			greenMin = (int)RegionMapUpgrade.Settings[enabledRegions.Count + 3].SavedValue;
			int num2 = yellowMin;
			yellowMin = (int)RegionMapUpgrade.Settings[enabledRegions.Count + 4].SavedValue;
			bool flag4 = showPing;
			showPing = (bool)RegionMapUpgrade.Settings[enabledRegions.Count + 5].SavedValue;
			if (greenMin < yellowMin || yellowMin < 1 || greenMin < 2)
			{
				Log("Error Setting Green/Yellow Minimums. Reverting Values. Values Given: Green: " + greenMin + ", Yellow: " + yellowMin);
				greenMin = num;
				yellowMin = num2;
				RegionMapUpgrade.Settings[enabledRegions.Count + 3].SavedValue = greenMin;
				RegionMapUpgrade.Settings[enabledRegions.Count + 3].Value = greenMin;
				RegionMapUpgrade.Settings[enabledRegions.Count + 4].SavedValue = yellowMin;
				RegionMapUpgrade.Settings[enabledRegions.Count + 4].Value = yellowMin;
			}
			if (!(currentScene == "Gym"))
			{
				return;
			}
			if (touchscreen && !flag)
			{
				prevStepDurations = new float[6]
				{
					((Il2CppArrayBase<RevolvingNumber>)(object)playerRef.revolvingNumbers)[0].stepDuration,
					((Il2CppArrayBase<RevolvingNumber>)(object)playerRef.revolvingNumbers)[1].stepDuration,
					((Il2CppArrayBase<RevolvingNumber>)(object)playerRef.revolvingNumbers)[2].stepDuration,
					((Il2CppArrayBase<RevolvingNumber>)(object)pingRef.revolvingNumbers)[0].stepDuration,
					((Il2CppArrayBase<RevolvingNumber>)(object)pingRef.revolvingNumbers)[1].stepDuration,
					((Il2CppArrayBase<RevolvingNumber>)(object)pingRef.revolvingNumbers)[2].stepDuration
				};
				((Il2CppArrayBase<RevolvingNumber>)(object)playerRef.revolvingNumbers)[0].stepDuration = 0.01f;
				((Il2CppArrayBase<RevolvingNumber>)(object)playerRef.revolvingNumbers)[1].stepDuration = 0.01f;
				((Il2CppArrayBase<RevolvingNumber>)(object)playerRef.revolvingNumbers)[2].stepDuration = 0.01f;
				((Il2CppArrayBase<RevolvingNumber>)(object)pingRef.revolvingNumbers)[0].stepDuration = 0.01f;
				((Il2CppArrayBase<RevolvingNumber>)(object)pingRef.revolvingNumbers)[1].stepDuration = 0.01f;
				((Il2CppArrayBase<RevolvingNumber>)(object)pingRef.revolvingNumbers)[2].stepDuration = 0.01f;
				((Component)Model.GetGameObject().transform.GetChild(0)).gameObject.SetActive(false);
				Model.GetGameObject().transform.GetChild(1).localScale = Vector3.zero;
				Model.GetGameObject().transform.GetChild(1).localPosition = new Vector3(Model.GetGameObject().transform.GetChild(1).localPosition.x, Model.GetGameObject().transform.GetChild(1).localPosition.y - 1f, Model.GetGameObject().transform.GetChild(1).localPosition.z);
				((Component)Model.GetGameObject().transform.GetChild(5)).gameObject.SetActive(false);
				foreach (Region item in (Il2CppArrayBase<Region>)(object)((Component)Model.GetGameObject().transform.GetChild(3)).GetComponent<WorldMap>().regions)
				{
					((Component)item).gameObject.layer = 22;
				}
			}
			else if (!touchscreen && flag)
			{
				((Il2CppArrayBase<RevolvingNumber>)(object)playerRef.revolvingNumbers)[0].stepDuration = prevStepDurations[0];
				((Il2CppArrayBase<RevolvingNumber>)(object)playerRef.revolvingNumbers)[1].stepDuration = prevStepDurations[1];
				((Il2CppArrayBase<RevolvingNumber>)(object)playerRef.revolvingNumbers)[2].stepDuration = prevStepDurations[2];
				((Il2CppArrayBase<RevolvingNumber>)(object)pingRef.revolvingNumbers)[0].stepDuration = prevStepDurations[3];
				((Il2CppArrayBase<RevolvingNumber>)(object)pingRef.revolvingNumbers)[1].stepDuration = prevStepDurations[4];
				((Il2CppArrayBase<RevolvingNumber>)(object)pingRef.revolvingNumbers)[2].stepDuration = prevStepDurations[5];
				((Component)Model.GetGameObject().transform.GetChild(0)).gameObject.SetActive(true);
				Model.GetGameObject().transform.GetChild(1).localScale = Vector3.one;
				Model.GetGameObject().transform.GetChild(1).localPosition = new Vector3(Model.GetGameObject().transform.GetChild(1).localPosition.x, Model.GetGameObject().transform.GetChild(1).localPosition.y + 1f, Model.GetGameObject().transform.GetChild(1).localPosition.z);
				((Component)Model.GetGameObject().transform.GetChild(5)).gameObject.SetActive(true);
				foreach (Region item2 in (Il2CppArrayBase<Region>)(object)((Component)Model.GetGameObject().transform.GetChild(3)).GetComponent<WorldMap>().regions)
				{
					((Component)item2).gameObject.layer = 0;
				}
			}
			if (mapColor != flag2 || mapColorGrey != flag3 || greenMin != num || yellowMin != num2)
			{
				Color gray = default(Color);
				foreach (Region item3 in (Il2CppArrayBase<Region>)(object)regions)
				{
					if (mapColor)
					{
						int num3 = int.Parse(((TMP_Text)((Component)((Component)item3).gameObject.transform.GetChild(0)).GetComponent<TextMeshPro>()).text);
						if (!mapColorGrey && num3 == -1)
						{
							((Renderer)item3.glowGameObject.GetComponent<MeshRenderer>()).material.shader = regionGlow;
							item3.UnHighlight();
							continue;
						}
						if (num3 >= greenMin)
						{
							((Color)(ref gray))..ctor(0f, 0.5f, 0f);
						}
						else if (num3 < yellowMin)
						{
							((Color)(ref gray))..ctor(0.5f, 0f, 0f);
						}
						else
						{
							((Color)(ref gray))..ctor(0.71f, 0.65f, 0f);
						}
						if (mapColorGrey && num3 == -1)
						{
							gray = Color.gray;
						}
						((Renderer)item3.glowGameObject.GetComponent<MeshRenderer>()).material.shader = urp;
						((Renderer)item3.glowGameObject.GetComponent<MeshRenderer>()).material.color = gray;
						item3.Highlight();
					}
					else
					{
						((Renderer)item3.glowGameObject.GetComponent<MeshRenderer>()).material.shader = regionGlow;
						if (item3.regionCode != Singleton<NetworkManager>.instance.networkConfig.FixedRegion)
						{
							item3.UnHighlight();
						}
					}
				}
			}
			if (showPing != flag4)
			{
				if (showPing)
				{
					((Component)Model.GetGameObject().transform.GetChild(2).GetChild(4)).gameObject.SetActive(true);
				}
				else
				{
					((Component)Model.GetGameObject().transform.GetChild(2).GetChild(4)).gameObject.SetActive(false);
				}
			}
		}

		public override void OnSceneWasLoaded(int buildIndex, string sceneName)
		{
			currentScene = sceneName;
			bail = true;
		}

		private void mapInit()
		{
			bail = false;
			if (currentScene == "Gym" && !bail)
			{
				regionSelector = ((Component)Model.GetGameObject().transform.GetChild(1).GetChild(0)).GetComponent<RegionSelector>();
				regions = ((Component)Model.GetGameObject().transform.GetChild(3)).GetComponent<WorldMap>().regions;
				MelonCoroutines.Start(GetPlayerCounts());
			}
			else if (bail)
			{
				bail = false;
			}
			else
			{
				requeueing = false;
			}
		}

		[IteratorStateMachine(typeof(<GetPlayerCounts>d__31))]
		private IEnumerator GetPlayerCounts()
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <GetPlayerCounts>d__31(0)
			{
				<>4__this = this
			};
		}

		[IteratorStateMachine(typeof(<PlayerCountForActiveRegionWatcher>d__32))]
		private IEnumerator PlayerCountForActiveRegionWatcher()
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <PlayerCountForActiveRegionWatcher>d__32(0)
			{
				<>4__this = this
			};
		}

		private void AddButtonListeners()
		{
			if (Players.IsHost())
			{
				if (currentScene == "Map0")
				{
					Button.GetGameObject().GetComponent<InteractionButton>().OnPressed.AddListener(UnityAction.op_Implicit((Action)delegate
					{
						requeueing = true;
					}));
				}
				else if (currentScene == "Map1")
				{
					Button.GetGameObject().GetComponent<InteractionButton>().OnPressed.AddListener(UnityAction.op_Implicit((Action)delegate
					{
						requeueing = true;
					}));
				}
			}
			else if (currentScene == "Map0")
			{
				Button.GetGameObject().GetComponent<InteractionButton>().OnPressed.AddListener(UnityAction.op_Implicit((Action)delegate
				{
					requeueing = true;
				}));
			}
			else if (currentScene == "Map1")
			{
				Button.GetGameObject().GetComponent<InteractionButton>().OnPressed.AddListener(UnityAction.op_Implicit((Action)delegate
				{
					requeueing = true;
				}));
			}
		}
	}
}