Decompiled source of Void Crew Compass v1.0.1

VoidCrew.Compass.dll

Decompiled 2 days ago
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using CG;
using CG.Game.Player;
using CG.Input;
using MelonLoader;
using MelonLoader.Preferences;
using Microsoft.CodeAnalysis;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Controls;
using VoidCrewCompass;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: MelonInfo(typeof(Mod), "Void Crew Compass", "1.0.0", "Mainsys", null)]
[assembly: MelonGame(null, "Void Crew")]
[assembly: AssemblyVersion("0.0.0.0")]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace VoidCrewCompass
{
	public static class CompassMath
	{
		public static double Wrap(double degrees)
		{
			return (degrees % 360.0 + 360.0) % 360.0;
		}

		public static double Delta(double from, double to)
		{
			return Wrap(to - from + 180.0) - 180.0;
		}

		public static bool Read(double x, double y, double z, out double heading, out double elevation)
		{
			heading = (elevation = 0.0);
			double num = Math.Sqrt(x * x + y * y + z * z);
			if (double.IsNaN(num) || double.IsInfinity(num) || num < 1E-09)
			{
				return false;
			}
			double num2 = Math.Sqrt(x * x + z * z);
			elevation = Math.Atan2(y, num2) * 180.0 / Math.PI;
			if (num2 / num < 0.01)
			{
				return false;
			}
			heading = Wrap(Math.Atan2(x, z) * 180.0 / Math.PI);
			return true;
		}

		public static string Cardinal(double heading)
		{
			return (new string[8] { "N", "NE", "E", "SE", "S", "SW", "W", "NW" })[(int)Math.Floor((Wrap(heading) + 22.5) / 45.0) % 8];
		}

		public static int DisplayDegrees(double heading)
		{
			return (int)Math.Floor(Wrap(heading) + 0.5) % 360;
		}

		public static float Clamp(float value, float min, float max, float fallback)
		{
			if (!float.IsNaN(value) && !float.IsInfinity(value))
			{
				return Math.Max(min, Math.Min(max, value));
			}
			return fallback;
		}
	}
	public sealed class Mod : MelonMod, IInputActionMapRequest, IShowCursorSource
	{
		private MelonPreferences_Category settings;

		private MelonPreferences_Entry<bool> enabled;

		private MelonPreferences_Entry<bool> showDegrees;

		private MelonPreferences_Entry<bool> showElevation;

		private MelonPreferences_Entry<bool> hideInMenus;

		private MelonPreferences_Entry<float> size;

		private MelonPreferences_Entry<float> positionX;

		private MelonPreferences_Entry<float> positionY;

		private MelonPreferences_Entry<float> opacity;

		private MelonPreferences_Entry<float> span;

		private bool menuOpen;

		private bool inputRequested;

		private bool cursorRequested;

		private Rect menu = new Rect(40f, 130f, 460f, 490f);

		private GUIStyle small;

		private GUIStyle major;

		private GUIStyle center;

		private GUIStyle title;

		private GUIStyle body;

		private GUIStyle toggle;

		private GUIStyle button;

		private GUIStyle panel;

		private Texture2D panelTexture;

		private static readonly Color Accent = new Color(0.27f, 0.9f, 0.81f);

		private float lastError = -100f;

		public override void OnInitializeMelon()
		{
			settings = MelonPreferences.CreateCategory("VoidCrewCompass");
			enabled = settings.CreateEntry<bool>("Enabled", true, (string)null, (string)null, false, false, (ValueValidator)null, (string)null);
			showDegrees = settings.CreateEntry<bool>("ShowDegrees", true, (string)null, (string)null, false, false, (ValueValidator)null, (string)null);
			showElevation = settings.CreateEntry<bool>("ShowElevation", true, (string)null, (string)null, false, false, (ValueValidator)null, (string)null);
			hideInMenus = settings.CreateEntry<bool>("HideInGameMenus", true, (string)null, (string)null, false, false, (ValueValidator)null, (string)null);
			size = settings.CreateEntry<float>("Scale", 1f, (string)null, (string)null, false, false, (ValueValidator)null, (string)null);
			positionX = settings.CreateEntry<float>("HorizontalPosition", 0.5f, (string)null, (string)null, false, false, (ValueValidator)null, (string)null);
			positionY = settings.CreateEntry<float>("VerticalPosition", 0.025f, (string)null, (string)null, false, false, (ValueValidator)null, (string)null);
			opacity = settings.CreateEntry<float>("Opacity", 0.9f, (string)null, (string)null, false, false, (ValueValidator)null, (string)null);
			span = settings.CreateEntry<float>("VisibleDegrees", 150f, (string)null, (string)null, false, false, (ValueValidator)null, (string)null);
			Sanitize();
			((MelonBase)this).LoggerInstance.Msg("Compass ready. F8: Settings. F9: HUD.");
		}

		private void Sanitize()
		{
			size.Value = CompassMath.Clamp(size.Value, 0.6f, 1.8f, 1f);
			positionX.Value = CompassMath.Clamp(positionX.Value, 0f, 1f, 0.5f);
			positionY.Value = CompassMath.Clamp(positionY.Value, 0f, 1f, 0.025f);
			opacity.Value = CompassMath.Clamp(opacity.Value, 0.2f, 1f, 0.9f);
			span.Value = CompassMath.Clamp(span.Value, 90f, 240f, 150f);
		}

		public override void OnUpdate()
		{
			Keyboard current = Keyboard.current;
			if (current != null)
			{
				if (((ButtonControl)current.f8Key).wasPressedThisFrame)
				{
					SetMenu(!menuOpen);
				}
				if (((ButtonControl)current.f9Key).wasPressedThisFrame)
				{
					enabled.Value = !enabled.Value;
					settings.SaveToFile(false);
				}
				if (menuOpen && ((ButtonControl)current.escapeKey).wasPressedThisFrame)
				{
					SetMenu(open: false);
				}
			}
		}

		private void SetMenu(bool open)
		{
			if (open == menuOpen)
			{
				return;
			}
			if (!open)
			{
				menuOpen = false;
				ReleaseInput();
				settings.SaveToFile(false);
				return;
			}
			try
			{
				if (InputActionMapRequests.Instance != null && ServiceBase<InputService>.Instance != null)
				{
					inputRequested = true;
					InputActionMapRequests.AddOrChangeRequest((IInputActionMapRequest)(object)this, (InputStateRequestType)2);
					cursorRequested = true;
					CursorUtility.ShowCursor((IShowCursorSource)(object)this, true);
					menuOpen = true;
				}
			}
			catch (Exception error)
			{
				ReleaseInput();
				Report(error);
			}
		}

		private void ReleaseInput()
		{
			try
			{
				if (cursorRequested && ServiceBase<InputService>.Instance != null)
				{
					CursorUtility.ShowCursor((IShowCursorSource)(object)this, false);
				}
			}
			catch (Exception error)
			{
				Report(error);
			}
			finally
			{
				cursorRequested = false;
			}
			try
			{
				if (inputRequested)
				{
					InputActionMapRequests.RemoveRequest((IInputActionMapRequest)(object)this);
				}
			}
			catch (Exception error2)
			{
				Report(error2);
			}
			finally
			{
				inputRequested = false;
			}
		}

		public override void OnSceneWasUnloaded(int buildIndex, string sceneName)
		{
			SetMenu(open: false);
		}

		public override void OnDeinitializeMelon()
		{
			menuOpen = false;
			ReleaseInput();
			settings.SaveToFile(false);
			if (Object.op_Implicit((Object)(object)panelTexture))
			{
				Object.Destroy((Object)(object)panelTexture);
			}
		}

		private void Report(Exception error)
		{
			if (!(Time.realtimeSinceStartup - lastError < 10f))
			{
				lastError = Time.realtimeSinceStartup;
				((MelonBase)this).LoggerInstance.Warning("Compass: " + error.Message);
			}
		}

		public override void OnGUI()
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_009a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0174: Unknown result type (might be due to invalid IL or missing references)
			//IL_0180: Unknown result type (might be due to invalid IL or missing references)
			//IL_019a: Expected O, but got Unknown
			//IL_0195: Unknown result type (might be due to invalid IL or missing references)
			//IL_019a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			Matrix4x4 matrix = GUI.matrix;
			Color color = GUI.color;
			int depth = GUI.depth;
			try
			{
				InitStyles();
				GUI.depth = -50;
				Camera main = Camera.main;
				bool flag = Object.op_Implicit((Object)(object)LocalPlayer.Instance) && Object.op_Implicit((Object)(object)main) && ((Behaviour)main).isActiveAndEnabled && (Object)(object)main.targetTexture == (Object)null;
				if (enabled.Value && flag && (menuOpen || !hideInMenus.Value || !MenuScreenController.IsOpen()))
				{
					DrawCompass(((Component)main).transform.forward);
				}
				if (menuOpen)
				{
					GUI.color = Color.white;
					float num = Mathf.Min(new float[3]
					{
						1f,
						(float)Screen.width / 500f,
						(float)Screen.height / 620f
					});
					GUI.matrix = Matrix4x4.Scale(new Vector3(num, num, 1f));
					((Rect)(ref menu)).x = Mathf.Clamp(((Rect)(ref menu)).x, 0f, Mathf.Max(0f, (float)Screen.width / num - ((Rect)(ref menu)).width));
					((Rect)(ref menu)).y = Mathf.Clamp(((Rect)(ref menu)).y, 0f, Mathf.Max(0f, (float)Screen.height / num - ((Rect)(ref menu)).height));
					menu = GUILayout.Window(736202, menu, new WindowFunction(DrawSettings), "", panel, Array.Empty<GUILayoutOption>());
				}
			}
			catch (Exception error)
			{
				Report(error);
			}
			finally
			{
				GUI.matrix = matrix;
				GUI.color = color;
				GUI.depth = depth;
			}
		}

		private void DrawCompass(Vector3 forward)
		{
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Invalid comparison between Unknown and I4
			//IL_0452: Unknown result type (might be due to invalid IL or missing references)
			//IL_0459: Unknown result type (might be due to invalid IL or missing references)
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0106: Unknown result type (might be due to invalid IL or missing references)
			//IL_010b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0127: Unknown result type (might be due to invalid IL or missing references)
			//IL_0140: Unknown result type (might be due to invalid IL or missing references)
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0178: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_039b: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_0375: Unknown result type (might be due to invalid IL or missing references)
			//IL_037a: Unknown result type (might be due to invalid IL or missing references)
			//IL_042a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0446: Unknown result type (might be due to invalid IL or missing references)
			//IL_029f: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0306: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_030b: Unknown result type (might be due to invalid IL or missing references)
			//IL_032e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0347: Unknown result type (might be due to invalid IL or missing references)
			if ((int)Event.current.type != 7)
			{
				return;
			}
			double heading;
			double elevation;
			bool flag = CompassMath.Read(forward.x, forward.y, forward.z, out heading, out elevation);
			float num = Mathf.Min(size.Value * Mathf.Clamp((float)Screen.height / 1080f, 0.65f, 1.5f), (float)(Screen.width - 16) / 620f);
			if (num <= 0f)
			{
				return;
			}
			float num2 = (showElevation.Value ? 102 : 82);
			float num3 = 8f + Mathf.Max(0f, (float)Screen.width - 620f * num - 16f) * positionX.Value;
			float num4 = 8f + Mathf.Max(0f, (float)Screen.height - num2 * num - 16f) * positionY.Value;
			Matrix4x4 matrix = GUI.matrix;
			GUI.matrix = Matrix4x4.TRS(new Vector3(num3, num4, 0f), Quaternion.identity, new Vector3(num, num, 1f));
			try
			{
				Fill(new Rect(0f, 0f, 620f, num2), new Color(0.025f, 0.045f, 0.075f, 0.8f));
				Fill(new Rect(0f, 0f, 620f, 2f), new Color(0.27f, 0.9f, 0.81f, 0.65f));
				string text = (flag ? CompassMath.Cardinal(heading) : "VERTICAL");
				if (flag && showDegrees.Value)
				{
					text = text + "  " + CompassMath.DisplayDegrees(heading).ToString("000") + "°";
				}
				Text(new Rect(0f, 5f, 620f, 25f), text, center, Accent);
				if (flag)
				{
					float num5 = 28f;
					float num6 = 592f;
					for (int i = 0; i < 360; i += 5)
					{
						float num7 = (float)CompassMath.Delta(heading, i);
						if (!(Mathf.Abs(num7) > span.Value * 0.5f))
						{
							float num8 = 310f + num7 / span.Value * (num6 - num5);
							float num9 = Mathf.Clamp01((span.Value * 0.5f - Mathf.Abs(num7)) / 12f);
							bool flag2 = i % 45 == 0;
							Fill(new Rect(num8, 34f, 1f, (float)(flag2 ? 12 : 5)), new Color(0.8f, 0.87f, 0.94f, num9 * 0.7f));
							if (flag2 || i % 15 == 0)
							{
								string text2 = (flag2 ? CompassMath.Cardinal(i) : i.ToString("000"));
								Color color = (Color)(flag2 ? Accent : new Color(0.72f, 0.8f, 0.88f));
								color.a = num9;
								Text(new Rect(num8 - 23f, 48f, 46f, 22f), text2, flag2 ? major : small, color);
							}
						}
					}
					Fill(new Rect(309f, 32f, 2f, 16f), Accent);
				}
				else
				{
					Text(new Rect(0f, 39f, 620f, 25f), "Heading is undefined when looking straight up or down", small, Color.white);
				}
				if (showElevation.Value)
				{
					string text3 = ((Math.Abs(elevation) < 0.5) ? "0° · HORIZONTAL" : (Math.Abs(elevation).ToString("0") + "° " + ((elevation > 0.0) ? "UP" : "DOWN")));
					Text(new Rect(0f, 78f, 620f, 20f), text3, small, new Color(0.72f, 0.8f, 0.88f));
				}
			}
			finally
			{
				GUI.matrix = matrix;
				GUI.color = Color.white;
			}
		}

		private void Fill(Rect rect, Color color)
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			color.a *= opacity.Value;
			GUI.color = color;
			GUI.DrawTexture(rect, (Texture)(object)Texture2D.whiteTexture);
		}

		private void Text(Rect rect, string text, GUIStyle style, Color color)
		{
			//IL_0016: 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)
			color.a *= opacity.Value;
			GUI.color = color;
			GUI.Label(rect, text, style);
		}

		private void InitStyles()
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Expected O, but got Unknown
			//IL_0038: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			//IL_009f: Expected O, but got Unknown
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e3: Expected O, but got Unknown
			//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_0103: Unknown result type (might be due to invalid IL or missing references)
			//IL_0108: 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_0120: Expected O, but got Unknown
			//IL_0136: Unknown result type (might be due to invalid IL or missing references)
			//IL_014b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0160: Unknown result type (might be due to invalid IL or missing references)
			//IL_0165: 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_017d: Expected O, but got Unknown
			//IL_0180: Unknown result type (might be due to invalid IL or missing references)
			//IL_018a: Expected O, but got Unknown
			//IL_01a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01de: Expected O, but got Unknown
			//IL_01e3: Expected O, but got Unknown
			if (small == null)
			{
				small = new GUIStyle(GUI.skin.label)
				{
					fontSize = 12,
					alignment = (TextAnchor)4
				};
				small.normal.textColor = Color.white;
				major = new GUIStyle(small)
				{
					fontSize = 17,
					fontStyle = (FontStyle)1
				};
				center = new GUIStyle(major)
				{
					fontSize = 20
				};
				body = new GUIStyle(GUI.skin.label)
				{
					fontSize = 14,
					wordWrap = true
				};
				body.normal.textColor = new Color(0.85f, 0.9f, 0.96f);
				title = new GUIStyle(body)
				{
					fontSize = 25,
					fontStyle = (FontStyle)1
				};
				title.normal.textColor = Accent;
				toggle = new GUIStyle(GUI.skin.toggle)
				{
					fontSize = 14,
					fixedHeight = 26f
				};
				toggle.normal.textColor = body.normal.textColor;
				toggle.onNormal.textColor = Accent;
				button = new GUIStyle(GUI.skin.button)
				{
					fontSize = 14,
					fixedHeight = 32f
				};
				panelTexture = new Texture2D(1, 1);
				panelTexture.SetPixel(0, 0, new Color(0.025f, 0.045f, 0.075f, 0.98f));
				panelTexture.Apply();
				panel = new GUIStyle(GUI.skin.window)
				{
					padding = new RectOffset(22, 22, 20, 20)
				};
				panel.normal.background = panelTexture;
				panel.onNormal.background = panelTexture;
			}
		}

		private void DrawSettings(int id)
		{
			//IL_02e0: Unknown result type (might be due to invalid IL or missing references)
			GUILayout.Label("CREW / Compass", title, Array.Empty<GUILayoutOption>());
			GUILayout.Label("F8 Settings  ·  F9 Toggle HUD", body, Array.Empty<GUILayoutOption>());
			GUILayout.Space(8f);
			enabled.Value = GUILayout.Toggle(enabled.Value, " Show compass", toggle, Array.Empty<GUILayoutOption>());
			showDegrees.Value = GUILayout.Toggle(showDegrees.Value, " Show degrees", toggle, Array.Empty<GUILayoutOption>());
			showElevation.Value = GUILayout.Toggle(showElevation.Value, " Show elevation", toggle, Array.Empty<GUILayoutOption>());
			hideInMenus.Value = GUILayout.Toggle(hideInMenus.Value, " Hide in game menus", toggle, Array.Empty<GUILayoutOption>());
			size.Value = Slider("Scale", size.Value, 0.6f, 1.8f, "0.00");
			positionX.Value = Slider("Horizontal position", positionX.Value, 0f, 1f, "0.00");
			positionY.Value = Slider("Vertical position", positionY.Value, 0f, 1f, "0.00");
			opacity.Value = Slider("Opacity", opacity.Value, 0.2f, 1f, "0.00");
			span.Value = Slider("Visible angle", span.Value, 90f, 240f, "0");
			GUILayout.Space(8f);
			GUILayout.Label("Fixed world directions: N = +Z, E = +X.\nAll crew members share the same north.", body, Array.Empty<GUILayoutOption>());
			GUILayout.Space(8f);
			GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
			if (GUILayout.Button("Reset", button, Array.Empty<GUILayoutOption>()))
			{
				MelonPreferences_Entry<bool> obj = enabled;
				MelonPreferences_Entry<bool> obj2 = showDegrees;
				MelonPreferences_Entry<bool> obj3 = showElevation;
				bool flag = (hideInMenus.Value = true);
				bool flag3 = (obj3.Value = flag);
				bool value = (obj2.Value = flag3);
				obj.Value = value;
				size.Value = 1f;
				positionX.Value = 0.5f;
				positionY.Value = 0.025f;
				opacity.Value = 0.9f;
				span.Value = 150f;
			}
			if (GUILayout.Button("Save & close", button, Array.Empty<GUILayoutOption>()))
			{
				SetMenu(open: false);
			}
			GUILayout.EndHorizontal();
			GUI.DragWindow(new Rect(0f, 0f, ((Rect)(ref menu)).width, 65f));
		}

		private float Slider(string caption, float value, float min, float max, string format)
		{
			GUILayout.Label(caption + "  " + value.ToString(format), body, Array.Empty<GUILayoutOption>());
			return GUILayout.HorizontalSlider(value, min, max, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(19f) });
		}
	}
}