2249 lines
		
	
	
		
			62 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			2249 lines
		
	
	
		
			62 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Collections;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Runtime.CompilerServices;
 | 
						|
using UnityEngine;
 | 
						|
 | 
						|
[Serializable]
 | 
						|
public class Settings : MonoBehaviour
 | 
						|
{
 | 
						|
	[HideInInspector]
 | 
						|
	public int showBox = 0;
 | 
						|
	[HideInInspector]
 | 
						|
	public bool simplified = true;
 | 
						|
	public AudioSource gameMusic;
 | 
						|
	public AudioClip[] musicTracks;
 | 
						|
	public PhysicMaterial zorbPhysics;
 | 
						|
	[HideInInspector]
 | 
						|
	public int renderLevel = 0;
 | 
						|
	[HideInInspector]
 | 
						|
	public int renderAdjustMax = 0;
 | 
						|
	[HideInInspector]
 | 
						|
	public float renderViewCap = 1000f;
 | 
						|
	public bool enteredfullscreen = false;
 | 
						|
	[HideInInspector]
 | 
						|
	public bool renderAutoAdjust = false;
 | 
						|
	[HideInInspector]
 | 
						|
	public int renderAdjustTime = 8;
 | 
						|
	[HideInInspector]
 | 
						|
	public bool showHints = true;
 | 
						|
	[HideInInspector]
 | 
						|
	public float serverUpdateTime = 0.00f;
 | 
						|
	[HideInInspector]
 | 
						|
	public float colorUpdateTime = 0.00f;
 | 
						|
	public bool colorCustom = false;
 | 
						|
	public bool disableHints = false;
 | 
						|
	public Color fogColor = Color.clear;
 | 
						|
 | 
						|
	// /*UNUSED, DEPRECATED*/ private bool useFog = true;
 | 
						|
    // /*UNUSED, DEPRECATED*/ private bool detailedObjects = true;
 | 
						|
    // /*UNUSED, DEPRECATED*/ private bool useParticles = true;
 | 
						|
    // /*UNUSED, DEPRECATED*/ private bool useTrails = true;
 | 
						|
	public bool useMinimap = true;
 | 
						|
    // /*UNUSED, DEPRECATED*/ private bool foliage = true;
 | 
						|
    // /*UNUSED, DEPRECATED*/ private bool terrainQuality = true;
 | 
						|
    // /*UNUSED, DEPRECATED*/ private bool terrainDetail = true;
 | 
						|
    // /*UNUSED, DEPRECATED*/ private bool terrainLighting = true;
 | 
						|
	public int useMusic = 1;
 | 
						|
	public bool useSfx = true;
 | 
						|
	public int useHypersound = 0;
 | 
						|
    // /*UNUSED, DEPRECATED*/ private bool syncFps = false;
 | 
						|
    // /*UNUSED, DEPRECATED*/ private bool playerOnlyLight = false;
 | 
						|
    // /*UNUSED, DEPRECATED*/ private Vector2 scrollPosition;
 | 
						|
	[HideInInspector]
 | 
						|
	public SSAOEffect camSSAO;
 | 
						|
	public ContrastStretchEffect camContrast;
 | 
						|
 | 
						|
	[HideInInspector]
 | 
						|
	public string txt;
 | 
						|
	[HideInInspector]
 | 
						|
	public string str;
 | 
						|
	[HideInInspector]
 | 
						|
	public string serverString;
 | 
						|
	[HideInInspector]
 | 
						|
	public string bannedIPs;
 | 
						|
	public static string serverDefault;
 | 
						|
 | 
						|
	public string serverWelcome = "";
 | 
						|
 | 
						|
	public int camMode = 0;
 | 
						|
	public int camChase = 0;
 | 
						|
	public float camDist = 0;
 | 
						|
	public bool flightCam = false;
 | 
						|
	public bool gyroCam = false;
 | 
						|
    public bool quarryCam = false;
 | 
						|
 | 
						|
	public float worldGrav = -9.81f;
 | 
						|
	public float worldFog = 0.001f;
 | 
						|
	public float worldViewDist = 5000f;
 | 
						|
	public float lavaFog = 0.005f;
 | 
						|
	public float lavaAlt = -300.00f;
 | 
						|
	public float laserSpeed = 180.00f;
 | 
						|
	public float laserGrav = 0f;
 | 
						|
	public float laserRico = 0f;
 | 
						|
	public bool laserLocking;
 | 
						|
 | 
						|
	public float resetTime;
 | 
						|
	public bool lasersAllowed = true;
 | 
						|
	public bool lasersFatal = false;
 | 
						|
	public bool lasersOptHit = false;
 | 
						|
	public float ramoSpheres = 0f;
 | 
						|
	public float zorbSpeed = 7f;
 | 
						|
	public float zorbAgility = 0f;
 | 
						|
	public float zorbBounce = 0.5f;
 | 
						|
	public bool minimapAllowed = true;
 | 
						|
	public bool hideNames = false;
 | 
						|
	public bool botsCanFire = true;
 | 
						|
	public bool botsCanDrive = true;
 | 
						|
 | 
						|
	public int[] firepower;
 | 
						|
	public float[] laserLock;
 | 
						|
 | 
						|
	public bool buggyAllowed = true;
 | 
						|
	public bool buggyFlightSlip = false;
 | 
						|
	public bool buggySmartSuspension = true;
 | 
						|
	public bool buggyNewPhysics = false;
 | 
						|
	public bool buggyAWD = true;
 | 
						|
	public float buggyCG = -0.40f;
 | 
						|
	public float buggyPower = 1.00f;
 | 
						|
	public float buggySpeed = 30.00f;
 | 
						|
	public bool buggyFlightLooPower = false;
 | 
						|
	public float buggyFlightDrag = 300.00f;
 | 
						|
	public float buggyFlightAgility = 1.00f;
 | 
						|
	public float buggyTr = 1.00f;
 | 
						|
	public float buggySh = 70.00f;
 | 
						|
	public float buggySl = 50.00f;
 | 
						|
 | 
						|
	public bool tankAllowed = true;
 | 
						|
	public float tankPower = 2000.00f;
 | 
						|
	public float tankSpeed = 25.00f;
 | 
						|
	public float tankGrip = 0.1f;
 | 
						|
	public float tankCG = -0.20f;
 | 
						|
 | 
						|
	public bool hoverAllowed = true;
 | 
						|
	public float hoverHeight = 15.00f;
 | 
						|
	public float hoverHover = 100.00f;
 | 
						|
	public float hoverRepel = 2.50f;
 | 
						|
	public float hoverThrust = 220.0f;
 | 
						|
 | 
						|
	public bool jetAllowed = true;
 | 
						|
	public float jetHDrag = 0.01f;
 | 
						|
	public float jetDrag = 0.001f;
 | 
						|
	public float jetSteer = 20;
 | 
						|
	public float jetLift = 0.5f;
 | 
						|
	public float jetStall = 20;
 | 
						|
 | 
						|
	public int networkMode = 0;
 | 
						|
	public int networkPhysics = 0;
 | 
						|
	public float networkInterpolation = 0.0f;
 | 
						|
	public bool isAdmin = false;
 | 
						|
 | 
						|
	public void Start()
 | 
						|
	{
 | 
						|
		simplified = true;
 | 
						|
		getPrefs();
 | 
						|
		updatePrefs(); //Init music
 | 
						|
		if (GameData.userName == "Aubrey (admin)")
 | 
						|
		{
 | 
						|
			isAdmin = true;
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	public void getPrefs()
 | 
						|
	{
 | 
						|
		renderLevel = PlayerPrefs.GetInt("renderLevel", 4);
 | 
						|
		renderViewCap = PlayerPrefs.GetFloat("viewCap", 1000f);
 | 
						|
		Application.targetFrameRate = (int)PlayerPrefs.GetFloat("targetFrameRate", 100f);
 | 
						|
		renderAutoAdjust = false;
 | 
						|
		showHints = PlayerPrefs.GetInt("showHints", 1) != 0;
 | 
						|
		useMusic = PlayerPrefs.GetInt("useMusic", 1);
 | 
						|
		useSfx = PlayerPrefs.GetInt("useSfx", 1) != 0;
 | 
						|
		useHypersound = PlayerPrefs.GetInt("useHypersound", 0);
 | 
						|
		useMinimap = PlayerPrefs.GetInt("useMinimap", 1) != 0;
 | 
						|
		camMode = PlayerPrefs.GetInt("cam", 1);
 | 
						|
		camChase = PlayerPrefs.GetInt("camChase", 1);
 | 
						|
		camDist = PlayerPrefs.GetFloat("camDist", 0.01f);
 | 
						|
		flightCam = PlayerPrefs.GetInt("flightCam", 0) != 0;
 | 
						|
		gyroCam = PlayerPrefs.GetInt("gyroCam", 0) != 0;
 | 
						|
        quarryCam = PlayerPrefs.GetInt("quarryCam", 0) != 0;
 | 
						|
	}
 | 
						|
 | 
						|
	public void showDialogGame()
 | 
						|
	{
 | 
						|
		GUILayout.Label("Resolution:");
 | 
						|
		if (GUILayout.Button((!Screen.fullScreen ?
 | 
						|
            "Enter" :
 | 
						|
            "Exit") + " Fullscreen (0)"))
 | 
						|
		{
 | 
						|
			toggleFullscreen();
 | 
						|
		}
 | 
						|
 | 
						|
        if (
 | 
						|
            Screen.fullScreen ||
 | 
						|
            Application.platform == RuntimePlatform.OSXPlayer ||
 | 
						|
            Application.platform == RuntimePlatform.WindowsPlayer)
 | 
						|
        {
 | 
						|
            GUILayout.BeginHorizontal();
 | 
						|
            if (
 | 
						|
                (Screen.resolutions[0].width < Screen.width ||
 | 
						|
                    Screen.resolutions[0].height < Screen.height) &&
 | 
						|
                GUILayout.Button("<<", GUILayout.Width(28)))
 | 
						|
            {
 | 
						|
                for (int i = Screen.resolutions.Length - 1; i >= 0; i--)
 | 
						|
                {
 | 
						|
                    if (!((Screen.resolutions[i].width <= Screen.width &&
 | 
						|
                            Screen.resolutions[i].height < Screen.height) ||
 | 
						|
                        (Screen.resolutions[i].width < Screen.width &&
 | 
						|
                            Screen.resolutions[i].height <= Screen.height)))
 | 
						|
                    {
 | 
						|
                        continue;
 | 
						|
                    }
 | 
						|
                    Screen.SetResolution(
 | 
						|
                        Screen.resolutions[i].width,
 | 
						|
                        Screen.resolutions[i].height,
 | 
						|
                        Screen.fullScreen);
 | 
						|
                    break;
 | 
						|
                }
 | 
						|
            }
 | 
						|
            GUILayout.Label(Screen.width + "X" + Screen.height);
 | 
						|
            if (
 | 
						|
                (Screen.resolutions[Screen.resolutions.Length - 1].width > Screen.width ||
 | 
						|
                Screen.resolutions[Screen.resolutions.Length - 1].height > Screen.height) &&
 | 
						|
                GUILayout.Button(">>", GUILayout.Width(28)))
 | 
						|
            {
 | 
						|
                foreach (Resolution res in Screen.resolutions)
 | 
						|
                {
 | 
						|
                    if (!((res.width >= Screen.width &&
 | 
						|
                            res.height > Screen.height) ||
 | 
						|
                        (res.width > Screen.width &&
 | 
						|
                            res.height >= Screen.height))) continue;
 | 
						|
                    Screen.SetResolution(
 | 
						|
                        res.width,
 | 
						|
                        res.height,
 | 
						|
                        Screen.fullScreen);
 | 
						|
                    break;
 | 
						|
                }
 | 
						|
            }
 | 
						|
            GUILayout.EndHorizontal();
 | 
						|
        }
 | 
						|
		
 | 
						|
		GUILayout.FlexibleSpace();
 | 
						|
		GUILayout.Space(20f);
 | 
						|
		GUILayout.Label("Rendering Quality:");
 | 
						|
 | 
						|
		GUILayout.BeginHorizontal();
 | 
						|
		if (renderLevel == 1)
 | 
						|
		{
 | 
						|
			GUILayout.Label("Fastest");
 | 
						|
		}
 | 
						|
		else if (renderLevel == 2)
 | 
						|
		{
 | 
						|
			GUILayout.Label("Fast");
 | 
						|
		}
 | 
						|
		else if (renderLevel == 3)
 | 
						|
		{
 | 
						|
			GUILayout.Label("Simple");
 | 
						|
		}
 | 
						|
		else if (renderLevel == 4)
 | 
						|
		{
 | 
						|
			GUILayout.Label("Good");
 | 
						|
		}
 | 
						|
		else if (renderLevel == 5)
 | 
						|
		{
 | 
						|
			GUILayout.Label("Beautiful");
 | 
						|
		}
 | 
						|
		else if (renderLevel == 6)
 | 
						|
		{
 | 
						|
			GUILayout.Label("Fantastic");
 | 
						|
		}
 | 
						|
 | 
						|
		GUILayout.Label("(" + Game.Controller.fps.ToString("f0") + " FPS)");
 | 
						|
		
 | 
						|
        GUILayout.EndHorizontal();
 | 
						|
		
 | 
						|
        GUILayout.BeginHorizontal();
 | 
						|
		if (renderLevel > 1)
 | 
						|
		{
 | 
						|
            if (GUILayout.Button("<<"))
 | 
						|
            {
 | 
						|
			    renderLevel--;
 | 
						|
			    PlayerPrefs.SetInt("renderLevel", renderLevel);
 | 
						|
			    updatePrefs();
 | 
						|
            }
 | 
						|
		}
 | 
						|
 | 
						|
		if (renderLevel > 1 && renderLevel < 6)
 | 
						|
		{
 | 
						|
			GUILayout.Space(5f);
 | 
						|
		}
 | 
						|
 | 
						|
		if (renderLevel < 6)
 | 
						|
		{
 | 
						|
            if (GUILayout.Button(">>"))
 | 
						|
            {
 | 
						|
                renderLevel++;
 | 
						|
                PlayerPrefs.SetInt("renderLevel", renderLevel);
 | 
						|
                updatePrefs();
 | 
						|
            }
 | 
						|
		}
 | 
						|
		GUILayout.EndHorizontal();
 | 
						|
 | 
						|
		GUILayout.Space(10f);
 | 
						|
        GUILayout.Label(
 | 
						|
            "Visibility Cap:   (" +
 | 
						|
            (renderViewCap == 1000f ?
 | 
						|
                "MAX" :
 | 
						|
                Mathf.Floor(renderViewCap).ToString()) +
 | 
						|
            ")");
 | 
						|
		float cg = GUILayout.HorizontalSlider(
 | 
						|
            renderViewCap,
 | 
						|
            200f,
 | 
						|
            1000f);
 | 
						|
		if (renderViewCap != cg)
 | 
						|
		{
 | 
						|
			renderViewCap = cg;
 | 
						|
			PlayerPrefs.SetFloat("viewCap", cg);
 | 
						|
			updatePrefs();
 | 
						|
		}
 | 
						|
 | 
						|
		GUILayout.Space(5f);
 | 
						|
        GUILayout.Label(
 | 
						|
            "FPS Cap:   (" +
 | 
						|
            (Application.targetFrameRate == -1 ?
 | 
						|
                "MAX" :
 | 
						|
                Application.targetFrameRate.ToString()) +
 | 
						|
            ")");
 | 
						|
		
 | 
						|
        if (Application.targetFrameRate == -1)
 | 
						|
		{
 | 
						|
			Application.targetFrameRate = 100;
 | 
						|
		}
 | 
						|
		cg = GUILayout.HorizontalSlider(
 | 
						|
            Application.targetFrameRate,
 | 
						|
            10f,
 | 
						|
            100f);
 | 
						|
		if ((float)Application.targetFrameRate != cg)
 | 
						|
		{
 | 
						|
			Application.targetFrameRate = (int)cg;
 | 
						|
			PlayerPrefs.SetFloat("targetFrameRate", cg);
 | 
						|
		}
 | 
						|
		if (
 | 
						|
            Application.targetFrameRate == 0 ||
 | 
						|
            Application.targetFrameRate == 100)
 | 
						|
		{
 | 
						|
			Application.targetFrameRate = -1;
 | 
						|
		}
 | 
						|
 | 
						|
		GUILayout.FlexibleSpace();
 | 
						|
		GUILayout.Space(20f);
 | 
						|
		GUILayout.Label("Interface:");
 | 
						|
 | 
						|
		if (minimapAllowed && GUILayout.Toggle(useMinimap, "Enable Minimap") != useMinimap)
 | 
						|
		{
 | 
						|
			useMinimap = !useMinimap;
 | 
						|
			PlayerPrefs.SetInt("useMinimap", useMinimap ? 1 : 0);
 | 
						|
			updatePrefs();
 | 
						|
		}
 | 
						|
 | 
						|
		if (GUILayout.Toggle(showHints, "Enable Settings Advisor") != showHints)
 | 
						|
		{
 | 
						|
			showHints = !showHints;
 | 
						|
			PlayerPrefs.SetInt("showHints", showHints ? 1 : 0);
 | 
						|
			updatePrefs();
 | 
						|
		}
 | 
						|
 | 
						|
		GUILayout.FlexibleSpace();
 | 
						|
		GUILayout.Space(20f);
 | 
						|
		GUILayout.Label("Audio:");
 | 
						|
 | 
						|
		if (GUILayout.Toggle(useSfx, "Sound Effects Enabled") != useSfx)
 | 
						|
		{
 | 
						|
			useSfx = !useSfx;
 | 
						|
			PlayerPrefs.SetInt("useSfx", useSfx ? 1 : 0);
 | 
						|
		}
 | 
						|
 | 
						|
		if (GUILayout.Toggle(useMusic == 0, "No Music") != (useMusic == 0))
 | 
						|
		{
 | 
						|
			useMusic = 0;
 | 
						|
			PlayerPrefs.SetInt("useMusic", 0);
 | 
						|
			updatePrefs();
 | 
						|
		}
 | 
						|
 | 
						|
		if (GUILayout.Toggle(useMusic == 1, "Classic") != (useMusic == 1))
 | 
						|
		{
 | 
						|
			useMusic = 1;
 | 
						|
			PlayerPrefs.SetInt("useMusic", 1);
 | 
						|
			updatePrefs();
 | 
						|
		}
 | 
						|
		if (GUILayout.Toggle(useMusic == 2, "Ambient") != (useMusic == 2))
 | 
						|
		{
 | 
						|
			useMusic = 2;
 | 
						|
			PlayerPrefs.SetInt("useMusic", 2);
 | 
						|
			updatePrefs();
 | 
						|
		}
 | 
						|
		if (GUILayout.Toggle(useMusic == 3, "Carefree") != (useMusic == 3))
 | 
						|
		{
 | 
						|
			useMusic = 3;
 | 
						|
			PlayerPrefs.SetInt("useMusic", 3);
 | 
						|
			updatePrefs();
 | 
						|
		}
 | 
						|
 | 
						|
		if (GUILayout.Toggle(useHypersound == 1, "HyperSound") != (useHypersound == 1))
 | 
						|
		{
 | 
						|
			useHypersound = ((useHypersound != 1) ? 1 : 0);
 | 
						|
			PlayerPrefs.SetInt("useHypersound", (useHypersound != 0) ? 1 : 0);
 | 
						|
			updatePrefs();
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	public void showDialogPlayer()
 | 
						|
	{
 | 
						|
		GUILayout.Space(20f);
 | 
						|
 | 
						|
		if (resetTime > 0f)
 | 
						|
		{
 | 
						|
			GUILayout.Label(
 | 
						|
                "Reset In " +
 | 
						|
                (10f - (Time.time - resetTime)));
 | 
						|
		}
 | 
						|
		else if (
 | 
						|
            resetTime > -1f &&
 | 
						|
            GUILayout.Button("Reset My Position (/r)"))
 | 
						|
		{
 | 
						|
			resetTime = Time.time;
 | 
						|
			Game.Player.rigidbody.isKinematic = true;
 | 
						|
			Game.Messaging.broadcast(
 | 
						|
                Game.Player.name +
 | 
						|
                " Resetting in 10 seconds...");
 | 
						|
		}
 | 
						|
 | 
						|
		if (zorbSpeed != 0f)
 | 
						|
		{
 | 
						|
			GUILayout.Space(10f);
 | 
						|
			if (GUILayout.Button(
 | 
						|
                (Game.PlayerVeh.zorbBall ?
 | 
						|
                    "Deactivate" :
 | 
						|
                    "Activate") +
 | 
						|
                " My Xorb (/x)"))
 | 
						|
			{
 | 
						|
				Game.Player.networkView.RPC(
 | 
						|
                    "sZ",
 | 
						|
                    RPCMode.All,
 | 
						|
                    !Game.PlayerVeh.zorbBall);
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		GUILayout.Space(20f);
 | 
						|
 | 
						|
		GUILayout.Label("Camera Mode:");
 | 
						|
 | 
						|
        //Ride (1, alt)
 | 
						|
        //Chase (2)
 | 
						|
        //Soar (5)
 | 
						|
        //Spectate
 | 
						|
        //Wander
 | 
						|
 | 
						|
        //Distance (3-4)
 | 
						|
        //GyRide (6)
 | 
						|
        //HyperCam
 | 
						|
 | 
						|
		if (GUILayout.Toggle(camMode == 0, "Ride (1, alt)") != (camMode == 0))
 | 
						|
		{
 | 
						|
			camMode = 0;
 | 
						|
			PlayerPrefs.SetInt("cam", 0);
 | 
						|
		}
 | 
						|
		if (GUILayout.Toggle(camMode == 1, "Chase (2)") != (camMode == 1))
 | 
						|
		{
 | 
						|
			camMode = 1;
 | 
						|
			PlayerPrefs.SetInt("cam", 1);
 | 
						|
		}
 | 
						|
		if (GUILayout.Toggle(camMode == 2, "Soar(5)") != (camMode == 2))
 | 
						|
		{
 | 
						|
			camMode = 2;
 | 
						|
			PlayerPrefs.SetInt("cam", 2);
 | 
						|
		}
 | 
						|
		if (GUILayout.Toggle(camMode == 3, "Spectate(6)") != (camMode == 3))
 | 
						|
		{
 | 
						|
			camMode = 3;
 | 
						|
			PlayerPrefs.SetInt("cam", 3);
 | 
						|
		}
 | 
						|
		if (GUILayout.Toggle(camMode == 4, "Roam") != (camMode == 4))
 | 
						|
		{
 | 
						|
			camMode = 4;
 | 
						|
			PlayerPrefs.SetInt("cam", 4);
 | 
						|
		}
 | 
						|
 | 
						|
		if (GUILayout.Toggle(gyroCam, "GyRide Enabled (7)") != gyroCam)
 | 
						|
		{
 | 
						|
			gyroCam = !gyroCam;
 | 
						|
			PlayerPrefs.SetInt("gyroCam", gyroCam ? 1 : 0);
 | 
						|
		}
 | 
						|
 | 
						|
		if (GUILayout.Toggle(flightCam, "HyperCam Enabled") != flightCam)
 | 
						|
		{
 | 
						|
			flightCam = !flightCam;
 | 
						|
			PlayerPrefs.SetInt("flightCam", flightCam ? 1 : 0);
 | 
						|
		}
 | 
						|
 | 
						|
        if (GUILayout.Toggle(quarryCam, "QuarryCam Enabled") != quarryCam)
 | 
						|
        {
 | 
						|
            quarryCam = !quarryCam;
 | 
						|
            PlayerPrefs.SetInt("quarryCam", quarryCam ? 1 : 0);
 | 
						|
        }
 | 
						|
 | 
						|
		float cg;
 | 
						|
		if (camMode == 0)
 | 
						|
		{
 | 
						|
			GUILayout.Space(10f);
 | 
						|
			GUILayout.Label("(Press (2) or (esc) keys to unlock your cursor)");
 | 
						|
			GUILayout.Space(10f);
 | 
						|
		}
 | 
						|
 | 
						|
		else if (camMode == 1)
 | 
						|
		{
 | 
						|
			GUILayout.Space(5f);
 | 
						|
			GUILayout.Label("Chase Strategy:");
 | 
						|
			if (GUILayout.Toggle(camChase == 0, "Smooth") != (camChase == 0))
 | 
						|
			{
 | 
						|
				camChase = 0;
 | 
						|
				PlayerPrefs.SetInt("camChase", 0);
 | 
						|
			}
 | 
						|
			if (GUILayout.Toggle(camChase == 1, "Agile") != (camChase == 1))
 | 
						|
			{
 | 
						|
				camChase = 1;
 | 
						|
				PlayerPrefs.SetInt("camChase", 1);
 | 
						|
			}
 | 
						|
			if (GUILayout.Toggle(camChase == 2, "Arcade") != (camChase == 2))
 | 
						|
			{
 | 
						|
				camChase = 2;
 | 
						|
				PlayerPrefs.SetInt("camChase", 2);
 | 
						|
			}
 | 
						|
			GUILayout.Space(5f);
 | 
						|
			GUILayout.Label("Chase Distance: (3-4)");
 | 
						|
			cg = GUILayout.HorizontalSlider(camDist, 0f, 20f);
 | 
						|
			if (camDist != cg)
 | 
						|
			{
 | 
						|
				camDist = cg;
 | 
						|
				PlayerPrefs.SetFloat("camDist", cg);
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		else if (camMode == 3 || camMode == 4)
 | 
						|
		{
 | 
						|
			GUILayout.Space(10f);
 | 
						|
			GUILayout.Label("(Move camera with UIOJKL keys)");
 | 
						|
			GUILayout.Space(10f);
 | 
						|
		}
 | 
						|
 | 
						|
		GUILayout.FlexibleSpace();
 | 
						|
 | 
						|
		GUILayout.FlexibleSpace();
 | 
						|
		GUILayout.Space(20f);
 | 
						|
		GUILayout.Label("Vehicle Color:");
 | 
						|
		if (Game.PlayerVeh.isIt != 0 && Game.Players.Count > 1)
 | 
						|
		{
 | 
						|
			GUILayout.Label("(You are quarry, and therefore green)");
 | 
						|
		}
 | 
						|
 | 
						|
		if (GUILayout.Button((!colorCustom) ?
 | 
						|
            "Random Coloring" :
 | 
						|
            "Randomize Coloring"))
 | 
						|
		{
 | 
						|
			StartCoroutine_Auto(ramdomizeVehicleColor());
 | 
						|
		}
 | 
						|
 | 
						|
		GUILayout.BeginHorizontal();
 | 
						|
		cg = GUILayout.HorizontalSlider(
 | 
						|
            Game.PlayerVeh.vehicleColor.r,
 | 
						|
            0f,
 | 
						|
            1f);
 | 
						|
		if (Game.PlayerVeh.vehicleColor.r != cg)
 | 
						|
		{
 | 
						|
			Game.PlayerVeh.vehicleColor.r = cg;
 | 
						|
			updateVehicleAccent();
 | 
						|
			updateVehicleColor();
 | 
						|
		}
 | 
						|
		GUILayout.Label("Red", GUILayout.Width(65f));
 | 
						|
		GUILayout.EndHorizontal();
 | 
						|
		GUILayout.BeginHorizontal();
 | 
						|
		cg = GUILayout.HorizontalSlider(
 | 
						|
            Mathf.Min(
 | 
						|
                Mathf.Lerp(
 | 
						|
                    0.1f,
 | 
						|
                    0.8f,
 | 
						|
                    (Game.PlayerVeh.vehicleColor.r +
 | 
						|
                        Game.PlayerVeh.vehicleColor.b) / 2f),
 | 
						|
                Game.PlayerVeh.vehicleColor.g),
 | 
						|
            0f,
 | 
						|
            Mathf.Lerp(
 | 
						|
                0.1f,
 | 
						|
                0.8f,
 | 
						|
                (Game.PlayerVeh.vehicleColor.r +
 | 
						|
                    Game.PlayerVeh.vehicleColor.b) / 2f));
 | 
						|
		if (Game.PlayerVeh.vehicleColor.g != cg)
 | 
						|
		{
 | 
						|
			Game.PlayerVeh.vehicleColor.g = cg;
 | 
						|
			updateVehicleAccent();
 | 
						|
			updateVehicleColor();
 | 
						|
		}
 | 
						|
		GUILayout.Label("Green", GUILayout.Width(65f));
 | 
						|
		GUILayout.EndHorizontal();
 | 
						|
		GUILayout.BeginHorizontal();
 | 
						|
		cg = GUILayout.HorizontalSlider(
 | 
						|
            Game.PlayerVeh.vehicleColor.b,
 | 
						|
            0f,
 | 
						|
            1f);
 | 
						|
		if (Game.PlayerVeh.vehicleColor.b != cg)
 | 
						|
		{
 | 
						|
			Game.PlayerVeh.vehicleColor.b = cg;
 | 
						|
			updateVehicleAccent();
 | 
						|
			updateVehicleColor();
 | 
						|
		}
 | 
						|
		GUILayout.Label("Blue", GUILayout.Width(65f));
 | 
						|
		GUILayout.EndHorizontal();
 | 
						|
 | 
						|
		GUILayout.Space(5f);
 | 
						|
		GUILayout.Label("Accent Color:");
 | 
						|
 | 
						|
		GUILayout.BeginHorizontal();
 | 
						|
		cg = GUILayout.HorizontalSlider(
 | 
						|
            Game.PlayerVeh.vehicleAccent.r,
 | 
						|
            0f,
 | 
						|
            1f);
 | 
						|
		if (Game.PlayerVeh.vehicleAccent.r != cg)
 | 
						|
		{
 | 
						|
			Game.PlayerVeh.vehicleAccent.r = cg;
 | 
						|
			updateVehicleColor();
 | 
						|
		}
 | 
						|
		GUILayout.Label("Red", GUILayout.Width(65f));
 | 
						|
		GUILayout.EndHorizontal();
 | 
						|
		GUILayout.BeginHorizontal();
 | 
						|
		cg = GUILayout.HorizontalSlider(
 | 
						|
            Game.PlayerVeh.vehicleAccent.g,
 | 
						|
            0f,
 | 
						|
            1f);
 | 
						|
		if (Game.PlayerVeh.vehicleAccent.g != cg)
 | 
						|
		{
 | 
						|
			Game.PlayerVeh.vehicleAccent.g = cg;
 | 
						|
			updateVehicleColor();
 | 
						|
		}
 | 
						|
		GUILayout.Label("Green", GUILayout.Width(65f));
 | 
						|
		GUILayout.EndHorizontal();
 | 
						|
		GUILayout.BeginHorizontal();
 | 
						|
		cg = GUILayout.HorizontalSlider(
 | 
						|
            Game.PlayerVeh.vehicleAccent.b,
 | 
						|
            0f,
 | 
						|
            1f);
 | 
						|
		if (Game.PlayerVeh.vehicleAccent.b != cg)
 | 
						|
		{
 | 
						|
			Game.PlayerVeh.vehicleAccent.b = cg;
 | 
						|
			updateVehicleColor();
 | 
						|
		}
 | 
						|
		GUILayout.Label("Blue", GUILayout.Width(65f));
 | 
						|
		GUILayout.EndHorizontal();
 | 
						|
 | 
						|
		GUILayout.FlexibleSpace();
 | 
						|
	}
 | 
						|
 | 
						|
	public void showDialogPlayers()
 | 
						|
	{
 | 
						|
		GUILayout.FlexibleSpace();
 | 
						|
 | 
						|
		if (
 | 
						|
            Game.Controller.isHost &&
 | 
						|
            Game.Controller.unauthPlayers.Count > 0)
 | 
						|
		{
 | 
						|
			GUILayout.Label("Joining Players:");
 | 
						|
 | 
						|
			for (
 | 
						|
                int i = 0;
 | 
						|
                i < Game.Controller.unauthPlayers.Count;
 | 
						|
                i++)
 | 
						|
			{
 | 
						|
				GUILayout.Space(10f);
 | 
						|
                GUILayout.Label(Game.Controller.unauthPlayers[i].n);
 | 
						|
				GUILayout.TextArea(Game.Controller.unauthPlayers[i].p.externalIP);
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				if (GUILayout.Button("Evict"))
 | 
						|
				{
 | 
						|
                    networkView.RPC(
 | 
						|
                        "dN",
 | 
						|
                        Game.Controller.unauthPlayers[i].p,
 | 
						|
                        2);
 | 
						|
                    if (Network.isServer)
 | 
						|
                    {
 | 
						|
                        Network.CloseConnection(
 | 
						|
                            Game.Controller.unauthPlayers[i].p,
 | 
						|
                            true);
 | 
						|
                    }
 | 
						|
                    else
 | 
						|
                    {
 | 
						|
                        networkView.RPC(
 | 
						|
                            "cC",
 | 
						|
                            RPCMode.Server,
 | 
						|
                            Game.Controller.unauthPlayers[i].p,
 | 
						|
                            Game.Controller.unauthPlayers[i].n,
 | 
						|
                            0);
 | 
						|
                    }
 | 
						|
				}
 | 
						|
                else if (
 | 
						|
                    GUILayout.Button("Invite") &&
 | 
						|
                    !(bool)Game.Controller.authenticatedPlayers[Game.Controller.unauthPlayers[i].p])
 | 
						|
                {
 | 
						|
                    if (Network.isServer)
 | 
						|
                    {
 | 
						|
                        Game.Controller.authenticatedPlayers.Add(
 | 
						|
                            Game.Controller.unauthPlayers[i].p,
 | 
						|
                            1);
 | 
						|
                    }
 | 
						|
                    else
 | 
						|
                    {
 | 
						|
                        networkView.RPC(
 | 
						|
                            "pI",
 | 
						|
                            RPCMode.Server,
 | 
						|
                            Game.Controller.unauthPlayers[i].p,
 | 
						|
                            Game.Controller.unauthPlayers[i].n);
 | 
						|
                    }
 | 
						|
                }
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
			}
 | 
						|
 | 
						|
			GUILayout.FlexibleSpace();
 | 
						|
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("Active Players:");
 | 
						|
		}
 | 
						|
 | 
						|
		// /*UNUSED*/ GameObject[] gos;
 | 
						|
		Vehicle veh;
 | 
						|
		VehicleNet vehNet;
 | 
						|
        foreach (DictionaryEntry plrE in Game.Players)
 | 
						|
        {
 | 
						|
            veh = (Vehicle)plrE.Value;
 | 
						|
            GameObject go = veh.gameObject;
 | 
						|
            vehNet = (VehicleNet)go.GetComponentInChildren(typeof(VehicleNet));
 | 
						|
            GUILayout.Space(10f);
 | 
						|
            GUILayout.Label(plrE.Key + (veh.isPlayer ? " (Me)" : ""));
 | 
						|
            GUILayout.TextArea(
 | 
						|
                (go.networkView.isMine ?
 | 
						|
                    "" :
 | 
						|
                    (vehNet ?
 | 
						|
                        Mathf.RoundToInt(vehNet.ping * 1000) +
 | 
						|
                            " png - " +
 | 
						|
                            Mathf.RoundToInt(vehNet.jitter * 1000) +
 | 
						|
                            " jtr" +
 | 
						|
                            veh.netCode +
 | 
						|
                            "\n" :
 | 
						|
                        "")) +
 | 
						|
                (vehNet && veh.networkMode == 2 ?
 | 
						|
                    Mathf.RoundToInt(vehNet.calcPing) +
 | 
						|
                        " CalcPng - " +
 | 
						|
                        Mathf.RoundToInt(vehNet.rpcPing) +
 | 
						|
                        " TmstmpOfst\n" :
 | 
						|
                    "") +
 | 
						|
                (Network.isServer ?
 | 
						|
                    go.networkView.owner.externalIP +
 | 
						|
                        " " +
 | 
						|
                        go.networkView.owner.ipAddress :
 | 
						|
                    "") +
 | 
						|
                "\n" +
 | 
						|
                    go.networkView.viewID.ToString() +
 | 
						|
                    " " +
 | 
						|
                    veh.networkMode /*+ "/" + go.networkView.owner.ToString()*/,
 | 
						|
                GUILayout.Height(30));
 | 
						|
            GUILayout.BeginHorizontal();
 | 
						|
            if (
 | 
						|
                (Game.Controller.isHost || isAdmin) &&
 | 
						|
                !veh.isBot &&
 | 
						|
                !go.networkView.isMine &&
 | 
						|
                GUILayout.Button("Evict"))
 | 
						|
            {
 | 
						|
                Game.Messaging.broadcast(
 | 
						|
                    go.name +
 | 
						|
                    " was evicted by "
 | 
						|
                    + Game.Player.name);
 | 
						|
                if (Network.isServer)
 | 
						|
                {
 | 
						|
                    networkView.RPC(
 | 
						|
                        "dN",
 | 
						|
                        ((Vehicle)plrE.Value).networkView.owner,
 | 
						|
                        2);
 | 
						|
                    ((Vehicle)plrE.Value).networkView.RPC(
 | 
						|
                        "dN",
 | 
						|
                        RPCMode.All,
 | 
						|
                        2);
 | 
						|
                    Network.CloseConnection(
 | 
						|
                        ((Vehicle)plrE.Value).networkView.owner,
 | 
						|
                        true);
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    networkView.RPC(
 | 
						|
                        "cC",
 | 
						|
                        RPCMode.Server,
 | 
						|
                        ((Vehicle)plrE.Value).networkView.owner,
 | 
						|
                        plrE.Key,
 | 
						|
                        1);
 | 
						|
                }
 | 
						|
            }
 | 
						|
            else if (
 | 
						|
                (Game.Controller.isHost || isAdmin) &&
 | 
						|
                !veh.isBot &&
 | 
						|
                !go.networkView.isMine &&
 | 
						|
                GUILayout.Button("Ban"))
 | 
						|
            {
 | 
						|
                Game.Messaging.broadcast(
 | 
						|
                    go.name +
 | 
						|
                    " was banned by " +
 | 
						|
                    Game.Player.name);
 | 
						|
                if (Network.isServer)
 | 
						|
                {
 | 
						|
                    bannedIPs += (bannedIPs != "" ? "\n" : "") +
 | 
						|
                        ((Vehicle)plrE.Value).networkView.owner.ipAddress +
 | 
						|
                        " " +
 | 
						|
                        go.name;
 | 
						|
                    networkView.RPC(
 | 
						|
                        "dN",
 | 
						|
                        ((Vehicle)plrE.Value).networkView.owner,
 | 
						|
                        2);
 | 
						|
                    ((Vehicle)plrE.Value).networkView.RPC(
 | 
						|
                        "dN",
 | 
						|
                        RPCMode.All,
 | 
						|
                        2);
 | 
						|
                    Network.CloseConnection(
 | 
						|
                        ((Vehicle)plrE.Value).networkView.owner,
 | 
						|
                        true);
 | 
						|
                    Game.Controller.registerHost();
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    networkView.RPC(
 | 
						|
                        "cC",
 | 
						|
                        RPCMode.Server,
 | 
						|
                        ((Vehicle)plrE.Value).networkView.owner,
 | 
						|
                        plrE.Key,
 | 
						|
                        2);
 | 
						|
                }
 | 
						|
            }
 | 
						|
            GUILayout.EndHorizontal();
 | 
						|
            GUILayout.FlexibleSpace();
 | 
						|
        }
 | 
						|
 | 
						|
		if (Game.Controller.isHost)
 | 
						|
		{
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("Banned Players:");
 | 
						|
			if (bannedIPs != "" && GUILayout.Button("Unban All"))
 | 
						|
			{
 | 
						|
				bannedIPs = "";
 | 
						|
				Game.Controller.StartCoroutine_Auto(Game.Controller.registerHost());
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
			string cm = GUILayout.TextField(bannedIPs);
 | 
						|
			if (cm != bannedIPs)
 | 
						|
			{
 | 
						|
				bannedIPs = cm;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	public void showDialogServer()
 | 
						|
	{
 | 
						|
	    if (Game.Controller.isHost || isAdmin)
 | 
						|
		{
 | 
						|
			if (GUILayout.Button(">> Default All <<"))
 | 
						|
			{
 | 
						|
				Game.Controller.networkView.RPC(
 | 
						|
                    "sSS",
 | 
						|
                    RPCMode.All,
 | 
						|
                    serverDefault);
 | 
						|
			}
 | 
						|
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("Server Name:");
 | 
						|
			string cm = GUILayout.TextField(Game.Controller.serverName, 45);
 | 
						|
			if (cm != Game.Controller.serverName)
 | 
						|
			{
 | 
						|
				Game.Controller.serverName = cm;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("Server Features:");
 | 
						|
 | 
						|
			Game.Controller.serverHidden = GUILayout.Toggle(
 | 
						|
                Game.Controller.serverHidden,
 | 
						|
                "Hide Server from List");
 | 
						|
			if (
 | 
						|
                Game.Controller.serverHidden &&
 | 
						|
                Game.Controller.hostRegistered)
 | 
						|
			{
 | 
						|
				Game.Controller.unregisterHost();
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
			else if (
 | 
						|
                !Game.Controller.serverHidden &&
 | 
						|
                !Game.Controller.hostRegistered)
 | 
						|
			{
 | 
						|
				Game.Controller.StartCoroutine_Auto(Game.Controller.registerHostSet());
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
 | 
						|
			GUILayout.BeginHorizontal();
 | 
						|
			GUILayout.Label("Password?");
 | 
						|
			cm = GUILayout.TextField(Game.Controller.serverPassword);
 | 
						|
			if (cm != Game.Controller.serverPassword)
 | 
						|
			{
 | 
						|
				Game.Controller.serverPassword = cm;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
			GUILayout.EndHorizontal();
 | 
						|
 | 
						|
			GUILayout.Label("Welcome Message:");
 | 
						|
			cm = GUILayout.TextField(serverWelcome);
 | 
						|
			if (cm != serverWelcome)
 | 
						|
			{
 | 
						|
				serverWelcome = cm;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("Game Features:");
 | 
						|
 | 
						|
			if (GUILayout.Toggle(
 | 
						|
                minimapAllowed,
 | 
						|
                "Minimap enabled") != minimapAllowed)
 | 
						|
			{
 | 
						|
				minimapAllowed = !minimapAllowed;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
 | 
						|
			if (GUILayout.Toggle(
 | 
						|
                hideNames,
 | 
						|
                "Camouflage Badges") != hideNames)
 | 
						|
			{
 | 
						|
				hideNames = !hideNames;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
 | 
						|
			if (GUILayout.Toggle(
 | 
						|
                ramoSpheres != 0f,
 | 
						|
                "RORBs Enabled") != (ramoSpheres != 0f))
 | 
						|
			{
 | 
						|
				ramoSpheres = ((ramoSpheres != 0f) ? 0f : 0.5f);
 | 
						|
				if (ramoSpheres != 0f)
 | 
						|
				{
 | 
						|
					zorbSpeed = 7f;
 | 
						|
				}
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
 | 
						|
			float cg;
 | 
						|
			if (ramoSpheres != 0f)
 | 
						|
			{
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(
 | 
						|
                    ramoSpheres,
 | 
						|
                    0.001f,
 | 
						|
                    1f);
 | 
						|
				if (ramoSpheres != cg)
 | 
						|
				{
 | 
						|
					ramoSpheres = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Size", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				if (GUILayout.Toggle(
 | 
						|
                    zorbSpeed != 0f,
 | 
						|
                    "XORBs Available") != (zorbSpeed != 0f))
 | 
						|
				{
 | 
						|
					zorbSpeed = ((zorbSpeed != 0f) ? 0 : 7);
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
 | 
						|
				if (zorbSpeed != 0f)
 | 
						|
				{
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					cg = GUILayout.HorizontalSlider(zorbSpeed, 0.001f, 14f);
 | 
						|
					if (zorbSpeed != cg)
 | 
						|
					{
 | 
						|
						zorbSpeed = cg;
 | 
						|
						updateServerPrefs();
 | 
						|
					}
 | 
						|
					GUILayout.Label("X Speed", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					cg = GUILayout.HorizontalSlider(zorbAgility, -7f, 7f);
 | 
						|
					if (zorbAgility != cg)
 | 
						|
					{
 | 
						|
						zorbAgility = cg;
 | 
						|
						updateServerPrefs();
 | 
						|
					}
 | 
						|
					GUILayout.Label("X Agility", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					cg = GUILayout.HorizontalSlider(zorbBounce, 0f, 1f);
 | 
						|
					if (zorbBounce != cg)
 | 
						|
					{
 | 
						|
						zorbBounce = cg;
 | 
						|
						updateServerPrefs();
 | 
						|
					}
 | 
						|
					GUILayout.Label("X Bounce", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				}
 | 
						|
 | 
						|
				GUILayout.Space(10f);
 | 
						|
			}
 | 
						|
 | 
						|
			if (GUILayout.Toggle(
 | 
						|
                lasersAllowed,
 | 
						|
                "Lasers enabled") != lasersAllowed)
 | 
						|
			{
 | 
						|
				lasersAllowed = !lasersAllowed;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
 | 
						|
			if (lasersAllowed)
 | 
						|
			{
 | 
						|
				if (
 | 
						|
                    ramoSpheres != 0f &&
 | 
						|
                    GUILayout.Toggle(lasersOptHit, "L Hit ORBs") != lasersOptHit)
 | 
						|
				{
 | 
						|
					lasersOptHit = !lasersOptHit;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				if (GUILayout.Toggle(
 | 
						|
                    lasersFatal,
 | 
						|
                    "L Hits Rematerialize") != lasersFatal)
 | 
						|
				{
 | 
						|
					lasersFatal = !lasersFatal;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(laserSpeed, 20f, 340f);
 | 
						|
				if ((float)laserSpeed != cg)
 | 
						|
				{
 | 
						|
					laserSpeed = (int)cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Lsr Spd", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(laserGrav, 0f, 1f);
 | 
						|
				if (laserGrav != cg)
 | 
						|
				{
 | 
						|
					laserGrav = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Lsr Gvt", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(laserRico, 0f, 1f);
 | 
						|
				if (laserRico != cg)
 | 
						|
				{
 | 
						|
					laserRico = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Lsr Rco", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.Space(10f);
 | 
						|
			}
 | 
						|
 | 
						|
			GUILayout.BeginHorizontal();
 | 
						|
			cg = GUILayout.HorizontalSlider(
 | 
						|
                worldGrav,
 | 
						|
                0.81f * -1f,
 | 
						|
                18.81f * -1f);
 | 
						|
			if (worldGrav != cg)
 | 
						|
			{
 | 
						|
				worldGrav = cg;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
			GUILayout.Label("Gravity", GUILayout.Width(65f));
 | 
						|
			GUILayout.EndHorizontal();
 | 
						|
 | 
						|
			GUILayout.BeginHorizontal();
 | 
						|
			cg = GUILayout.HorizontalSlider(worldViewDist, 300f, 9700f);
 | 
						|
			if (worldViewDist != cg)
 | 
						|
			{
 | 
						|
				worldViewDist = cg;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
			GUILayout.Label("Visibility", GUILayout.Width(65f));
 | 
						|
			GUILayout.EndHorizontal();
 | 
						|
 | 
						|
			if ((bool)World.sea)
 | 
						|
			{
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(
 | 
						|
                    lavaFog,
 | 
						|
                    0.015f,
 | 
						|
                    0.01f * -1f);
 | 
						|
				if (lavaFog != cg)
 | 
						|
				{
 | 
						|
					lavaFog = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Sea Vis", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(lavaAlt, -100f, 100f);
 | 
						|
				if (lavaAlt != cg)
 | 
						|
				{
 | 
						|
					lavaAlt = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Sea Alt", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
			}
 | 
						|
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("Bots:");
 | 
						|
 | 
						|
			if (GUILayout.Toggle(botsCanFire, "Can Fire") != botsCanFire)
 | 
						|
			{
 | 
						|
				botsCanFire = !botsCanFire;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
 | 
						|
			if (GUILayout.Toggle(botsCanDrive, "Can Drive") != botsCanDrive)
 | 
						|
			{
 | 
						|
				botsCanDrive = !botsCanDrive;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
 | 
						|
			GUILayout.Space(10f);
 | 
						|
 | 
						|
			GUILayout.BeginHorizontal();
 | 
						|
			if (
 | 
						|
                GUILayout.Button("Add Bot") &&
 | 
						|
                Game.Controller.botsInGame < int.MaxValue)
 | 
						|
			{
 | 
						|
				Game.Controller.StartCoroutine_Auto(Game.Controller.addBot());
 | 
						|
			}
 | 
						|
			if (Game.Controller.botsInGame > 0)
 | 
						|
			{
 | 
						|
				GUILayout.Space(5f);
 | 
						|
				if (GUILayout.Button("Axe Bot"))
 | 
						|
				{
 | 
						|
					Game.Controller.StartCoroutine_Auto(Game.Controller.axeBot());
 | 
						|
				}
 | 
						|
			}
 | 
						|
			GUILayout.EndHorizontal();
 | 
						|
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("Buggy:");
 | 
						|
 | 
						|
			if (GUILayout.Toggle(buggyAllowed, "Available") != buggyAllowed)
 | 
						|
			{
 | 
						|
				buggyAllowed = !buggyAllowed;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
			if (buggyAllowed)
 | 
						|
			{
 | 
						|
				if (GUILayout.Toggle(
 | 
						|
                    buggyFlightSlip,
 | 
						|
                    "Stall Blending") != buggyFlightSlip)
 | 
						|
				{
 | 
						|
					buggyFlightSlip = !buggyFlightSlip;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				if (GUILayout.Toggle(
 | 
						|
                    buggyFlightLooPower,
 | 
						|
                    "Powered Loops") != buggyFlightLooPower)
 | 
						|
				{
 | 
						|
					buggyFlightLooPower = !buggyFlightLooPower;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				if (GUILayout.Toggle(
 | 
						|
                    buggySmartSuspension,
 | 
						|
                    "Smart Suspension") != buggySmartSuspension)
 | 
						|
				{
 | 
						|
					buggySmartSuspension = !buggySmartSuspension;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(buggyFlightDrag, 50f, 550f);
 | 
						|
				if (buggyFlightDrag != cg)
 | 
						|
				{
 | 
						|
					buggyFlightDrag = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Fl Speed", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(
 | 
						|
                    buggyFlightAgility,
 | 
						|
                    0.5f,
 | 
						|
                    1.5f);
 | 
						|
				if (buggyFlightAgility != cg)
 | 
						|
				{
 | 
						|
					buggyFlightAgility = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Fl Agility", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(
 | 
						|
                    buggyCG,
 | 
						|
                    -0.1f,
 | 
						|
                    -0.7f);
 | 
						|
				if (buggyCG != cg)
 | 
						|
				{
 | 
						|
					buggyCG = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Stability", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(buggyPower, 0.5f, 1.5f);
 | 
						|
				if (buggyPower != cg)
 | 
						|
				{
 | 
						|
					buggyPower = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Power", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(buggySpeed, 5f, 55f);
 | 
						|
				if (buggySpeed != cg)
 | 
						|
				{
 | 
						|
					buggySpeed = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Speed", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(buggyTr, 0.1f, 1.9f);
 | 
						|
				if (buggyTr != cg)
 | 
						|
				{
 | 
						|
					buggyTr = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Traction", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(buggySh, 20f, 120f);
 | 
						|
				if (buggySh != cg)
 | 
						|
				{
 | 
						|
					buggySh = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Shocks", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				if (lasersAllowed)
 | 
						|
				{
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					cg = GUILayout.HorizontalSlider(firepower[0], 0f, 3f);
 | 
						|
					if ((float)firepower[0] != cg)
 | 
						|
					{
 | 
						|
						firepower[0] = (int)cg;
 | 
						|
						updateServerPrefs();
 | 
						|
					}
 | 
						|
					GUILayout.Label("Firepower", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					cg = GUILayout.HorizontalSlider(laserLock[0], 0f, 1f);
 | 
						|
					if (laserLock[0] != cg)
 | 
						|
					{
 | 
						|
						laserLock[0] = cg;
 | 
						|
						updateServerPrefs();
 | 
						|
					}
 | 
						|
					GUILayout.Label("Lsr Lck", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
				}
 | 
						|
 | 
						|
			}
 | 
						|
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("Tank:");
 | 
						|
 | 
						|
			if (GUILayout.Toggle(tankAllowed, "Available") != tankAllowed)
 | 
						|
			{
 | 
						|
				tankAllowed = !tankAllowed;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
 | 
						|
			if (tankAllowed)
 | 
						|
			{
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(tankCG, 1f, 1.4f * -1f);
 | 
						|
				if (tankCG != cg)
 | 
						|
				{
 | 
						|
					tankCG = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Stability", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(tankGrip, 0f, 0.2f);
 | 
						|
				if (tankGrip != cg)
 | 
						|
				{
 | 
						|
					tankGrip = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Grip", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(tankSpeed, 10f, 40f);
 | 
						|
				if (tankSpeed != cg)
 | 
						|
				{
 | 
						|
					tankSpeed = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Speed", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(tankPower, 500f, 3500f);
 | 
						|
				if (tankPower != cg)
 | 
						|
				{
 | 
						|
					tankPower = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Power", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				if (lasersAllowed)
 | 
						|
				{
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					cg = GUILayout.HorizontalSlider(firepower[2], 0f, 3f);
 | 
						|
					if ((float)firepower[2] != cg)
 | 
						|
					{
 | 
						|
						firepower[2] = (int)cg;
 | 
						|
						updateServerPrefs();
 | 
						|
					}
 | 
						|
					GUILayout.Label("Firepower", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					cg = GUILayout.HorizontalSlider(laserLock[2], 0f, 1f);
 | 
						|
					if (laserLock[2] != cg)
 | 
						|
					{
 | 
						|
						laserLock[2] = cg;
 | 
						|
						updateServerPrefs();
 | 
						|
					}
 | 
						|
					GUILayout.Label("Lsr Lck", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("Hovercraft:");
 | 
						|
 | 
						|
			if (GUILayout.Toggle(hoverAllowed, "Available") != hoverAllowed)
 | 
						|
			{
 | 
						|
				hoverAllowed = !hoverAllowed;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
 | 
						|
			if (hoverAllowed)
 | 
						|
			{
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(hoverHeight, 5f, 25f);
 | 
						|
				if (hoverHeight != cg)
 | 
						|
				{
 | 
						|
					hoverHeight = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Height", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(hoverHover, 20f, 180f);
 | 
						|
				if (hoverHover != cg)
 | 
						|
				{
 | 
						|
					hoverHover = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Hover", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(hoverRepel, 0.5f, 4.5f);
 | 
						|
				if (hoverRepel != cg)
 | 
						|
				{
 | 
						|
					hoverRepel = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Repulsion", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(hoverThrust, 20f, 420f);
 | 
						|
				if (hoverThrust != cg)
 | 
						|
				{
 | 
						|
					hoverThrust = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Thrust", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				if (lasersAllowed)
 | 
						|
				{
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					cg = GUILayout.HorizontalSlider(firepower[1], 0f, 3f);
 | 
						|
					if ((float)firepower[1] != cg)
 | 
						|
					{
 | 
						|
						firepower[1] = (int)cg;
 | 
						|
						updateServerPrefs();
 | 
						|
					}
 | 
						|
					GUILayout.Label("Firepower", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					cg = GUILayout.HorizontalSlider(laserLock[1], 0f, 1f);
 | 
						|
					if (laserLock[1] != cg)
 | 
						|
					{
 | 
						|
						laserLock[1] = cg;
 | 
						|
						updateServerPrefs();
 | 
						|
					}
 | 
						|
					GUILayout.Label("Lsr Lck", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("Jet:");
 | 
						|
 | 
						|
			if (GUILayout.Toggle(jetAllowed, "Available") != jetAllowed)
 | 
						|
			{
 | 
						|
				jetAllowed = !jetAllowed;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
 | 
						|
			if (jetAllowed)
 | 
						|
			{
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(jetHDrag, 0.005f, 0.015f);
 | 
						|
				if (jetHDrag != cg)
 | 
						|
				{
 | 
						|
					jetHDrag = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("HoverDrag", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(jetDrag, 0.0005f, 0.0015f);
 | 
						|
				if (jetDrag != cg)
 | 
						|
				{
 | 
						|
					jetDrag = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Drag", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(jetSteer, 5f, 35f);
 | 
						|
				if ((float)jetSteer != cg)
 | 
						|
				{
 | 
						|
					jetSteer = (int)cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Agility", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(jetLift, 0.1f, 0.9f);
 | 
						|
				if (jetLift != cg)
 | 
						|
				{
 | 
						|
					jetLift = cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Lift", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				cg = GUILayout.HorizontalSlider(jetStall, 1f, 39f);
 | 
						|
				if ((float)jetStall != cg)
 | 
						|
				{
 | 
						|
					jetStall = (int)cg;
 | 
						|
					updateServerPrefs();
 | 
						|
				}
 | 
						|
				GUILayout.Label("Stall", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				if (lasersAllowed)
 | 
						|
				{
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					cg = GUILayout.HorizontalSlider(firepower[3], 0f, 3f);
 | 
						|
					if ((float)firepower[3] != cg)
 | 
						|
					{
 | 
						|
						firepower[3] = (int)cg;
 | 
						|
						updateServerPrefs();
 | 
						|
					}
 | 
						|
					GUILayout.Label("Firepower", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					cg = GUILayout.HorizontalSlider(laserLock[3], 0f, 1f);
 | 
						|
					if (laserLock[3] != cg)
 | 
						|
					{
 | 
						|
						laserLock[3] = cg;
 | 
						|
						updateServerPrefs();
 | 
						|
					}
 | 
						|
					GUILayout.Label("Lsr Lck", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("Network Mode:");
 | 
						|
 | 
						|
			if (GUILayout.Toggle(networkMode == 0, "UDP") != (networkMode == 0))
 | 
						|
			{
 | 
						|
				networkMode = 0;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
			if (GUILayout.Toggle(networkMode == 1, "RDC") != (networkMode == 1))
 | 
						|
			{
 | 
						|
				networkMode = 1;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
			if (GUILayout.Toggle(networkMode == 2, "RPC") != (networkMode == 2))
 | 
						|
			{
 | 
						|
				networkMode = 2;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
 | 
						|
			if (networkMode == 0)
 | 
						|
			{
 | 
						|
				GUILayout.Label("\"UDP\" is the fastest mode, but may result in players with \"No Connection\"");
 | 
						|
			}
 | 
						|
			else if (networkMode == 1)
 | 
						|
			{
 | 
						|
				GUILayout.Label("\"RDC\" sacrifices speed for reliability");
 | 
						|
			}
 | 
						|
			else
 | 
						|
			{
 | 
						|
				GUILayout.Label("\"RPC\" guarantees reliability at the expense of speed");
 | 
						|
			}
 | 
						|
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("Network Physics:");
 | 
						|
 | 
						|
			if (GUILayout.Toggle(networkPhysics == 0, "Advanced") != (networkPhysics == 0))
 | 
						|
			{
 | 
						|
				networkPhysics = 0;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
			if (GUILayout.Toggle(networkPhysics == 1, "Enhanced") != (networkPhysics == 1))
 | 
						|
			{
 | 
						|
				networkPhysics = 1;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
			if (GUILayout.Toggle(networkPhysics == 2, "Simplified") != (networkPhysics == 2))
 | 
						|
			{
 | 
						|
				networkPhysics = 2;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
 | 
						|
			if (networkPhysics == 0)
 | 
						|
			{
 | 
						|
				GUILayout.Label("\"Advanced\" is optimized for smooth movement and realistic collisions over the internet");
 | 
						|
			}
 | 
						|
			else if (networkPhysics == 1)
 | 
						|
			{
 | 
						|
				GUILayout.Label("\"Enhanced\" provides maximum movement precision at the cost of higher processor and network load");
 | 
						|
			}
 | 
						|
			else
 | 
						|
			{
 | 
						|
				GUILayout.Label("\"Simplified\" provides smooth movement and maximum framerates in games which don't need highly accurate vehicle collisions");
 | 
						|
			}
 | 
						|
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("Network Interpolation:");
 | 
						|
 | 
						|
			GUILayout.BeginHorizontal();
 | 
						|
			cg = GUILayout.HorizontalSlider(networkInterpolation, 0f, 0.5f);
 | 
						|
			if (networkInterpolation != cg)
 | 
						|
			{
 | 
						|
				networkInterpolation = cg;
 | 
						|
				updateServerPrefs();
 | 
						|
			}
 | 
						|
			GUILayout.Label((!(networkInterpolation < 0.01f)) ? (networkInterpolation * 1000f + " ms") : "Auto", GUILayout.Width(65f));
 | 
						|
			GUILayout.EndHorizontal();
 | 
						|
 | 
						|
		}
 | 
						|
		else
 | 
						|
		{
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("(NOTE: all these parameters are adjustable only by the server host. You can't change anything in this window)");
 | 
						|
			GUILayout.Space(60f);
 | 
						|
 | 
						|
			GUILayout.Toggle(minimapAllowed, "Minimap enabled");
 | 
						|
			GUILayout.Toggle(hideNames, "Camouflage Badges");
 | 
						|
 | 
						|
			GUILayout.Toggle(ramoSpheres != 0f, "RORBs Enabled");
 | 
						|
			if (ramoSpheres != 0f)
 | 
						|
			{
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(ramoSpheres, 0.001f, 1f);
 | 
						|
				GUILayout.Label("Size", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.Toggle(zorbSpeed != 0f, "XORBs Available");
 | 
						|
				if (zorbSpeed != 0f)
 | 
						|
				{
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					GUILayout.HorizontalSlider(zorbSpeed, 0.001f, 14f);
 | 
						|
					GUILayout.Label("X Speed", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					GUILayout.HorizontalSlider(zorbAgility, -7f, 7f);
 | 
						|
					GUILayout.Label("X Agility", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					GUILayout.HorizontalSlider(zorbBounce, 0f, 1f);
 | 
						|
					GUILayout.Label("X Bounce", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
				}
 | 
						|
				GUILayout.Space(10f);
 | 
						|
			}
 | 
						|
 | 
						|
			GUILayout.Toggle(lasersAllowed, "Lasers enabled");
 | 
						|
			if (lasersAllowed)
 | 
						|
			{
 | 
						|
				if (ramoSpheres != 0f)
 | 
						|
				{
 | 
						|
					GUILayout.Toggle(lasersOptHit, "L Hit ORBs");
 | 
						|
				}
 | 
						|
				GUILayout.Toggle(lasersFatal, "L Hits Rematerialize");
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(laserSpeed, 20f, 340f);
 | 
						|
				GUILayout.Label("Lsr Spd", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(laserGrav, 0f, 1f);
 | 
						|
				GUILayout.Label("Lsr Gvt", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(laserRico, 0f, 1f);
 | 
						|
				GUILayout.Label("Lsr Rco", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				GUILayout.Space(10f);
 | 
						|
			}
 | 
						|
			GUILayout.BeginHorizontal();
 | 
						|
 | 
						|
			GUILayout.HorizontalSlider(worldGrav, 0.81f * -1f, 18.81f * -1f);
 | 
						|
			GUILayout.Label("Gravity", GUILayout.Width(65f));
 | 
						|
			GUILayout.EndHorizontal();
 | 
						|
 | 
						|
			GUILayout.BeginHorizontal();
 | 
						|
			GUILayout.HorizontalSlider(worldViewDist, 500f, 9500f);
 | 
						|
			GUILayout.Label("Visibility", GUILayout.Width(65f));
 | 
						|
			GUILayout.EndHorizontal();
 | 
						|
 | 
						|
			if ((bool)World.sea)
 | 
						|
			{
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(lavaFog, 0.015f, 0.01f * -1f);
 | 
						|
				GUILayout.Label("Lava Fog", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(lavaAlt, -100f, 100f);
 | 
						|
				GUILayout.Label("Lava Alt", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
			}
 | 
						|
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("Bots:");
 | 
						|
			GUILayout.Toggle(botsCanFire, "Can Fire");
 | 
						|
			GUILayout.Toggle(botsCanDrive, "Can Drive");
 | 
						|
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("Buggy:");
 | 
						|
			GUILayout.Toggle(buggyAllowed, "Available");
 | 
						|
			if (buggyAllowed)
 | 
						|
			{
 | 
						|
				GUILayout.Toggle(buggyFlightSlip, "Stall Blending");
 | 
						|
				GUILayout.Toggle(buggyFlightLooPower, "Powered Loops");
 | 
						|
				GUILayout.Toggle(buggySmartSuspension, "Smart Suspension");
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(buggyFlightDrag, 50f, 550f);
 | 
						|
				GUILayout.Label("Fl Speed", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(buggyFlightAgility, 0.5f, 1.5f);
 | 
						|
				GUILayout.Label("Fl Agility", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(buggyCG, 0.1f * -1f, 0.7f * -1f);
 | 
						|
				GUILayout.Label("Stability", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(buggyPower, 0.5f, 1.5f);
 | 
						|
				GUILayout.Label("Power", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(buggySpeed, 5f, 55f);
 | 
						|
				GUILayout.Label("Speed", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(buggyTr, 0.1f, 1.9f);
 | 
						|
				GUILayout.Label("Traction", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(buggySh, 20f, 120f);
 | 
						|
				GUILayout.Label("Shocks", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				if (lasersAllowed)
 | 
						|
				{
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					GUILayout.HorizontalSlider(firepower[0], 0f, 3f);
 | 
						|
					GUILayout.Label("Firepower", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					GUILayout.HorizontalSlider(laserLock[0], 0f, 1f);
 | 
						|
					GUILayout.Label("Lsr Lck", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("Tank:");
 | 
						|
			GUILayout.Toggle(tankAllowed, "Available");
 | 
						|
			if (tankAllowed)
 | 
						|
			{
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(tankCG, 1f, 1.4f * -1f);
 | 
						|
				GUILayout.Label("Stability", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(tankGrip, 0f, 0.2f);
 | 
						|
				GUILayout.Label("Grip", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(tankSpeed, 10f, 40f);
 | 
						|
				GUILayout.Label("Speed", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(tankPower, 500f, 3500f);
 | 
						|
				GUILayout.Label("Power", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				if (lasersAllowed)
 | 
						|
				{
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					GUILayout.HorizontalSlider(firepower[2], 0f, 3f);
 | 
						|
					GUILayout.Label("Firepower", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					GUILayout.HorizontalSlider(laserLock[2], 0f, 1f);
 | 
						|
					GUILayout.Label("Lsr Lck", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("Hovercraft:");
 | 
						|
			GUILayout.Toggle(hoverAllowed, "Available");
 | 
						|
			if (hoverAllowed)
 | 
						|
			{
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(hoverHeight, 5f, 25f);
 | 
						|
				GUILayout.Label("Height", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(hoverHover, 20f, 180f);
 | 
						|
				GUILayout.Label("Hover", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(hoverRepel, 0.5f, 4.5f);
 | 
						|
				GUILayout.Label("Repulsion", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(hoverThrust, 20f, 420f);
 | 
						|
				GUILayout.Label("Thrust", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				if (lasersAllowed)
 | 
						|
				{
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					GUILayout.HorizontalSlider(firepower[1], 0f, 3f);
 | 
						|
					GUILayout.Label("Firepower", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					GUILayout.HorizontalSlider(laserLock[1], 0f, 1f);
 | 
						|
					GUILayout.Label("Lsr Lck", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("Jet:");
 | 
						|
			GUILayout.Toggle(jetAllowed, "Available");
 | 
						|
			if (jetAllowed)
 | 
						|
			{
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(jetHDrag, 0.005f, 0.015f);
 | 
						|
				GUILayout.Label("HoverDrag", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(jetDrag, 0.0005f, 0.0015f);
 | 
						|
				GUILayout.Label("Drag", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(jetSteer, 5f, 35f);
 | 
						|
				GUILayout.Label("Agility", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(jetLift, 0.1f, 0.9f);
 | 
						|
				GUILayout.Label("Lift", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				GUILayout.BeginHorizontal();
 | 
						|
				GUILayout.HorizontalSlider(jetStall, 1f, 39f);
 | 
						|
				GUILayout.Label("Stall", GUILayout.Width(65f));
 | 
						|
				GUILayout.EndHorizontal();
 | 
						|
				if (lasersAllowed)
 | 
						|
				{
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					GUILayout.HorizontalSlider(firepower[3], 0f, 3f);
 | 
						|
					GUILayout.Label("Firepower", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
					GUILayout.BeginHorizontal();
 | 
						|
					GUILayout.HorizontalSlider(laserLock[3], 0f, 1f);
 | 
						|
					GUILayout.Label("Lsr Lck", GUILayout.Width(65f));
 | 
						|
					GUILayout.EndHorizontal();
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			GUILayout.Space(20f);
 | 
						|
			GUILayout.Label("Networking:");
 | 
						|
			GUILayout.Toggle(networkMode == 0, "UDP");
 | 
						|
			GUILayout.Toggle(networkMode == 1, "RDC");
 | 
						|
			GUILayout.Toggle(networkMode == 2, "RPC");
 | 
						|
			GUILayout.Toggle(networkPhysics == 0, "Advanced");
 | 
						|
			GUILayout.Toggle(networkPhysics == 1, "Enhanced");
 | 
						|
			GUILayout.Toggle(networkPhysics == 2, "Simplified");
 | 
						|
			GUILayout.BeginHorizontal();
 | 
						|
			GUILayout.HorizontalSlider(networkInterpolation, 0f, 0.5f);
 | 
						|
            GUILayout.Label(
 | 
						|
                (networkInterpolation < 0.01 ?
 | 
						|
                    "Auto" :
 | 
						|
                    (networkInterpolation * 1000) + " ms"),
 | 
						|
                GUILayout.Width(65));
 | 
						|
			GUILayout.EndHorizontal();
 | 
						|
		}
 | 
						|
 | 
						|
		GUILayout.Label("nTime: " + Mathf.RoundToInt((float)Network.time));
 | 
						|
		
 | 
						|
        GUILayout.Space(20f);
 | 
						|
		GUILayout.Label("Settings I/O:");
 | 
						|
		serverString = GUILayout.TextField(serverString);
 | 
						|
		if (
 | 
						|
            Game.Controller.isHost &&
 | 
						|
            GUILayout.Button("Apply Custom\nSettings"))
 | 
						|
		{
 | 
						|
			Game.Controller.networkView.RPC(
 | 
						|
                "sSS",
 | 
						|
                RPCMode.All,
 | 
						|
                serverString);
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	public void updatePrefs()
 | 
						|
	{
 | 
						|
 | 
						|
            /*
 | 
						|
	    1 Fastest
 | 
						|
	    2 Fast
 | 
						|
	    3 Simple
 | 
						|
	    4 Good
 | 
						|
	    5 Beautiful
 | 
						|
	    6 Fantastic
 | 
						|
	    */
 | 
						|
 | 
						|
        //This can be automatically overwritten by the _Core GUI, so make sure it is whatever the user set it to when entering a game.
 | 
						|
		renderLevel = PlayerPrefs.GetInt("renderLevel", 4);
 | 
						|
 | 
						|
        //Laser Locking
 | 
						|
		laserLocking = false;
 | 
						|
        for (int i = 0; i < laserLock.Length; i++)
 | 
						|
        {
 | 
						|
            if (laserLock[i] > 0f)
 | 
						|
            {
 | 
						|
                laserLocking = true;
 | 
						|
                break;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        //LOD Distance
 | 
						|
		if (renderLevel > 4)
 | 
						|
		{
 | 
						|
			World.lodDist = 1000;
 | 
						|
		}
 | 
						|
		else if (renderLevel > 3)
 | 
						|
		{
 | 
						|
			World.lodDist = 400;
 | 
						|
		}
 | 
						|
		else if (renderLevel > 2)
 | 
						|
		{
 | 
						|
			World.lodDist = 75;
 | 
						|
		}
 | 
						|
		else
 | 
						|
		{
 | 
						|
			World.lodDist = 0;
 | 
						|
		}
 | 
						|
 | 
						|
        //Rendering Effects
 | 
						|
		if (renderLevel > 4)
 | 
						|
		{
 | 
						|
			camContrast.enabled = true;
 | 
						|
 | 
						|
			if (renderLevel > 5)
 | 
						|
			{
 | 
						|
				camSSAO.enabled = true;
 | 
						|
				camSSAO.m_Downsampling = 2;
 | 
						|
			}
 | 
						|
			else
 | 
						|
			{
 | 
						|
				camSSAO.enabled = false;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		else
 | 
						|
		{
 | 
						|
			camSSAO.enabled = false;
 | 
						|
			camContrast.enabled = false;
 | 
						|
		}
 | 
						|
 | 
						|
		if (Game.Settings.networkPhysics == 2)
 | 
						|
		{
 | 
						|
			Network.sendRate = 10f;
 | 
						|
		}
 | 
						|
		else
 | 
						|
		{
 | 
						|
			Network.sendRate = 15f;
 | 
						|
		}
 | 
						|
 | 
						|
		if (ramoSpheres == 0f)
 | 
						|
		{
 | 
						|
			zorbSpeed = 0f;
 | 
						|
		}
 | 
						|
		if (useMusic == 0)
 | 
						|
		{
 | 
						|
			gameMusic.enabled = false;
 | 
						|
			if (gameMusic.isPlaying)
 | 
						|
			{
 | 
						|
				gameMusic.Stop();
 | 
						|
			}
 | 
						|
		}
 | 
						|
		else
 | 
						|
		{
 | 
						|
			gameMusic.enabled = true;
 | 
						|
			gameMusic.pitch = 1f;
 | 
						|
            gameMusic.clip = musicTracks[useMusic - 1];
 | 
						|
			if (!gameMusic.isPlaying)
 | 
						|
			{
 | 
						|
				gameMusic.Play();
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		GameObject.Find("MiniMap").camera.enabled = minimapAllowed && useMinimap;
 | 
						|
		
 | 
						|
        QualitySettings.currentLevel = (QualityLevel)(renderLevel - 1);
 | 
						|
		
 | 
						|
        Time.fixedDeltaTime = ((renderLevel <= 3) ? 0.025f : 0.02f);
 | 
						|
		
 | 
						|
        Camera.main.farClipPlane = ((renderViewCap != 1000f) ?
 | 
						|
            Mathf.Min(renderViewCap, worldViewDist) :
 | 
						|
            worldViewDist);
 | 
						|
		worldFog = Mathf.Lerp(
 | 
						|
            0.007f,
 | 
						|
            0.0003f,
 | 
						|
            Camera.main.farClipPlane / 6000f);
 | 
						|
		
 | 
						|
        if (World.terrains != null)
 | 
						|
		{
 | 
						|
			foreach (Terrain trn in World.terrains)
 | 
						|
			{
 | 
						|
                //Details: Rocks, trees, etc
 | 
						|
				trn.treeCrossFadeLength = 30f;
 | 
						|
				if (renderLevel > 4)
 | 
						|
				{   //Fantastic, Beautiful
 | 
						|
					trn.detailObjectDistance = 300f;
 | 
						|
					trn.treeDistance = 600f;
 | 
						|
					trn.treeMaximumFullLODCount = 100;
 | 
						|
					trn.treeBillboardDistance = 150f;
 | 
						|
				}
 | 
						|
				else if (renderLevel > 3)
 | 
						|
				{   //Good
 | 
						|
					trn.detailObjectDistance = 200f;
 | 
						|
					trn.treeDistance = 500f;
 | 
						|
					trn.treeMaximumFullLODCount = 50;
 | 
						|
					trn.treeBillboardDistance = 100f;
 | 
						|
				}
 | 
						|
				else if (renderLevel > 2)
 | 
						|
				{   //Simple
 | 
						|
					trn.detailObjectDistance = 150f;
 | 
						|
					trn.treeDistance = 300f;
 | 
						|
					trn.treeMaximumFullLODCount = 10;
 | 
						|
					trn.treeBillboardDistance = 75f;
 | 
						|
				}
 | 
						|
				else
 | 
						|
				{   //Fast, Fastest
 | 
						|
					trn.detailObjectDistance = 0f;
 | 
						|
					trn.treeDistance = 0f;
 | 
						|
					trn.treeMaximumFullLODCount = 0;
 | 
						|
					trn.treeBillboardDistance = 0f;
 | 
						|
				}
 | 
						|
 | 
						|
                //Textures
 | 
						|
				trn.basemapDistance = 1500f;
 | 
						|
 | 
						|
                //Heightmap Resolution
 | 
						|
				if (renderLevel > 5)
 | 
						|
				{
 | 
						|
					trn.heightmapMaximumLOD = 0;
 | 
						|
					trn.heightmapPixelError = 5f;
 | 
						|
				}
 | 
						|
				else if (renderLevel > 2)
 | 
						|
				{
 | 
						|
					trn.heightmapMaximumLOD = 0;
 | 
						|
					trn.heightmapPixelError = 15f;
 | 
						|
				}
 | 
						|
				else if (renderLevel > 1)
 | 
						|
				{
 | 
						|
					trn.heightmapMaximumLOD = 0;
 | 
						|
					trn.heightmapPixelError = 50f;
 | 
						|
				}
 | 
						|
				else
 | 
						|
				{
 | 
						|
					trn.heightmapMaximumLOD = 1;
 | 
						|
					trn.heightmapPixelError = 50f;
 | 
						|
				}
 | 
						|
 | 
						|
				/*if (renderLevel > 4)
 | 
						|
				{
 | 
						|
					trn.lighting = TerrainLighting.Pixel;
 | 
						|
				}
 | 
						|
				else
 | 
						|
				{
 | 
						|
					trn.lighting = TerrainLighting.Lightmap;
 | 
						|
				}*/
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		Physics.gravity = new Vector3(0f, worldGrav, 0f);
 | 
						|
		if ((bool)World.sea)
 | 
						|
		{
 | 
						|
			Vector3 wspos = World.sea.position;
 | 
						|
			wspos.y = lavaAlt;
 | 
						|
			World.sea.position = wspos;
 | 
						|
		}
 | 
						|
		zorbPhysics.bouncyness = zorbBounce;
 | 
						|
 | 
						|
		updateObjects();
 | 
						|
	}
 | 
						|
 | 
						|
	public void updateServerPrefs()
 | 
						|
	{
 | 
						|
		serverUpdateTime = Time.time + 3f;
 | 
						|
		updatePrefs();
 | 
						|
	}
 | 
						|
 | 
						|
    public IEnumerator ramdomizeVehicleColor()
 | 
						|
    {
 | 
						|
        while (!Game.PlayerVeh) yield return null;
 | 
						|
 | 
						|
        Color pvcol = Game.PlayerVeh.vehicleColor;
 | 
						|
        pvcol.r = UnityEngine.Random.value * 0.7f;
 | 
						|
        pvcol.b = UnityEngine.Random.value * 0.7f;
 | 
						|
        pvcol.g = UnityEngine.Random.value * Mathf.Lerp(
 | 
						|
            0.1f,
 | 
						|
            0.8f,
 | 
						|
            ((Game.PlayerVeh.vehicleColor.r +
 | 
						|
                Game.PlayerVeh.vehicleColor.b) / 2)) * 0.7f;
 | 
						|
        Game.PlayerVeh.vehicleColor = pvcol;
 | 
						|
 | 
						|
        colorCustom = false;
 | 
						|
        updateVehicleAccent();
 | 
						|
        saveVehicleColor();
 | 
						|
        Game.PlayerVeh.setColor();
 | 
						|
    }
 | 
						|
 | 
						|
	public void updateVehicleAccent()
 | 
						|
	{
 | 
						|
		float num = -0.25f;
 | 
						|
		Game.PlayerVeh.vehicleAccent.r = Mathf.Max(
 | 
						|
            0f,
 | 
						|
            Game.PlayerVeh.vehicleColor.r + num);
 | 
						|
		Game.PlayerVeh.vehicleAccent.g = Mathf.Max(
 | 
						|
            0f,
 | 
						|
            Game.PlayerVeh.vehicleColor.g + num);
 | 
						|
		Game.PlayerVeh.vehicleAccent.b = Mathf.Max(
 | 
						|
            0f,
 | 
						|
            Game.PlayerVeh.vehicleColor.b + num);
 | 
						|
	}
 | 
						|
 | 
						|
	public void updateVehicleColor()
 | 
						|
	{
 | 
						|
		colorUpdateTime = Time.time + 3f;
 | 
						|
		colorCustom = true;
 | 
						|
		Game.PlayerVeh.setColor();
 | 
						|
	}
 | 
						|
 | 
						|
	public void saveVehicleColor()
 | 
						|
	{
 | 
						|
		PlayerPrefs.SetInt("vehColCustom", colorCustom ? 1 : 0);
 | 
						|
		PlayerPrefs.SetFloat("vehColR", Game.PlayerVeh.vehicleColor.r);
 | 
						|
		PlayerPrefs.SetFloat("vehColG", Game.PlayerVeh.vehicleColor.g);
 | 
						|
		PlayerPrefs.SetFloat("vehColB", Game.PlayerVeh.vehicleColor.b);
 | 
						|
		PlayerPrefs.SetFloat("vehColAccR", Game.PlayerVeh.vehicleAccent.r);
 | 
						|
		PlayerPrefs.SetFloat("vehColAccG", Game.PlayerVeh.vehicleAccent.g);
 | 
						|
		PlayerPrefs.SetFloat("vehColAccB", Game.PlayerVeh.vehicleAccent.b);
 | 
						|
		Game.Player.networkView.RPC(
 | 
						|
            "sC",
 | 
						|
            RPCMode.Others,
 | 
						|
            Game.PlayerVeh.vehicleColor.r,
 | 
						|
            Game.PlayerVeh.vehicleColor.g,
 | 
						|
            Game.PlayerVeh.vehicleColor.b,
 | 
						|
            Game.PlayerVeh.vehicleAccent.r,
 | 
						|
            Game.PlayerVeh.vehicleAccent.g,
 | 
						|
            Game.PlayerVeh.vehicleAccent.b);
 | 
						|
	}
 | 
						|
 | 
						|
	public string packServerPrefs()
 | 
						|
	{
 | 
						|
		return
 | 
						|
            "lasr:" + (lasersAllowed ? 1 : 0) + ";" +
 | 
						|
            "lsrh:" + (lasersFatal ? 1 : 0) + ";" +
 | 
						|
            "lsro:" + (lasersOptHit ? 1 : 0) + ";" +
 | 
						|
            "mmap:" + (minimapAllowed ? 1 : 0) + ";" +
 | 
						|
            "camo:" + (hideNames ? 1 : 0) + ";" +
 | 
						|
            "rorb:" + ramoSpheres + ";" +
 | 
						|
            "xspd:" + zorbSpeed + ";" +
 | 
						|
            "xagt:" + zorbAgility + ";" +
 | 
						|
            "xbnc:" + zorbBounce + ";" +
 | 
						|
            "grav:" + worldGrav * -1f + ";" +
 | 
						|
            "wvis:" + worldViewDist + ";" +
 | 
						|
            "lfog:" + lavaFog + ";" +
 | 
						|
            "lalt:" + lavaAlt + ";" +
 | 
						|
            "lspd:" + laserSpeed + ";" +
 | 
						|
            "lgvt:" + laserGrav + ";" +
 | 
						|
            "lrco:" + laserRico + ";" +
 | 
						|
 | 
						|
            "botfire:" + (botsCanFire ? 1 : 0) + ";" +
 | 
						|
            "botdrive:" + (botsCanDrive ? 1 : 0) + ";" +
 | 
						|
 | 
						|
            "bugen:" + (buggyAllowed ? 1 : 0) + ";" +
 | 
						|
            "bugflsl:" + (buggyFlightSlip ? 1 : 0) + ";" +
 | 
						|
            "bugflpw:" + (buggyFlightLooPower ? 1 : 0) + ";" +
 | 
						|
            "bugawd:" + (buggyAWD ? 1 : 0) + ";" +
 | 
						|
            "bugspn:" + (buggySmartSuspension ? 1 : 0) + ";" +
 | 
						|
            "bugfldr:" + buggyFlightDrag + ";" +
 | 
						|
            "bugflag:" + buggyFlightAgility + ";" +
 | 
						|
            "bugcg:" + buggyCG + ";" +
 | 
						|
            "bugpow:" + buggyPower + ";" +
 | 
						|
            "bugspd:" + buggySpeed + ";" +
 | 
						|
            "bugtr:" + buggyTr + ";" +
 | 
						|
            "bugsl:" + buggySl + ";" +
 | 
						|
            "bugsh:" + buggySh + ";" +
 | 
						|
            "bugfp:" + firepower[0] + ";" +
 | 
						|
            "bugll:" + laserLock[0] + ";" +
 | 
						|
 | 
						|
            "tnken:" + (tankAllowed ? 1 : 0) + ";" +
 | 
						|
            "tnkpow:" + tankPower + ";" +
 | 
						|
            "tnkgrp:" + tankGrip + ";" +
 | 
						|
            "tnkspd:" + tankSpeed + ";" +
 | 
						|
            "tnkcg:" + tankCG + ";" +
 | 
						|
            "tnkfp:" + firepower[2] + ";" +
 | 
						|
            "tnkll:" + laserLock[2] + ";" +
 | 
						|
 | 
						|
            "hvren:" + (hoverAllowed ? 1 : 0) + ";" +
 | 
						|
            "hvrhe:" + hoverHeight + ";" +
 | 
						|
            "hvrhv:" + hoverHover + ";" +
 | 
						|
            "hvrrp:" + hoverRepel + ";" +
 | 
						|
            "hvrth:" + hoverThrust + ";" +
 | 
						|
            "hvrfp:" + firepower[1] + ";" +
 | 
						|
            "hvrll:" + laserLock[1] + ";" +
 | 
						|
 | 
						|
            "jeten:" + (jetAllowed ? 1 : 0) + ";" +
 | 
						|
            "jethd:" + jetHDrag + ";" +
 | 
						|
            "jetd:" + jetDrag + ";" +
 | 
						|
            "jets:" + jetSteer + ";" +
 | 
						|
            "jetl:" + jetLift + ";" +
 | 
						|
            "jetss:" + jetStall + ";" +
 | 
						|
            "jetfp:" + firepower[3] + ";" +
 | 
						|
            "jetll:" + laserLock[3] + ";" +
 | 
						|
 | 
						|
            "netm:" + networkMode + ";" +
 | 
						|
            "netph:" + networkPhysics + ";" +
 | 
						|
            "netin:" + networkInterpolation + ";" +
 | 
						|
        "";
 | 
						|
	}
 | 
						|
 | 
						|
	public void updateObjects()
 | 
						|
	{
 | 
						|
        foreach (ParticleEmitter pE in FindObjectsOfType(typeof(ParticleEmitter)))
 | 
						|
        {
 | 
						|
            pE.emit = (renderLevel >= 3);
 | 
						|
        }
 | 
						|
 | 
						|
        foreach (Light light in FindObjectsOfType(typeof(Light)))
 | 
						|
        {
 | 
						|
            if (light.name != "VehicleLight") continue;
 | 
						|
            light.enabled = false;
 | 
						|
        }
 | 
						|
 | 
						|
        foreach (GameObject go in FindObjectsOfType(typeof(GameObject)))
 | 
						|
        {
 | 
						|
            go.SendMessage("OnPrefsUpdated", SendMessageOptions.DontRequireReceiver);
 | 
						|
        }
 | 
						|
	}
 | 
						|
 | 
						|
	public void toggleFullscreen()
 | 
						|
	{
 | 
						|
		Resolution resolution = Screen.resolutions[Screen.resolutions.Length - 1];
 | 
						|
        if (!Screen.fullScreen)
 | 
						|
        {
 | 
						|
            Screen.SetResolution(resolution.width, resolution.height, true);
 | 
						|
            if (Application.platform == RuntimePlatform.OSXDashboardPlayer)
 | 
						|
            {
 | 
						|
                enteredfullscreen = true;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        else
 | 
						|
        {
 | 
						|
            if (
 | 
						|
                Application.platform == RuntimePlatform.WindowsWebPlayer ||
 | 
						|
                Application.platform == RuntimePlatform.OSXWebPlayer ||
 | 
						|
                Application.platform == RuntimePlatform.OSXDashboardPlayer)
 | 
						|
            {
 | 
						|
                Screen.fullScreen = false;
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                resolution = Screen.resolutions[Screen.resolutions.Length - 2];
 | 
						|
                Screen.SetResolution(resolution.width, resolution.height, false);
 | 
						|
            }
 | 
						|
            if (enteredfullscreen)
 | 
						|
            {
 | 
						|
                enteredfullscreen = false;
 | 
						|
            }
 | 
						|
        }
 | 
						|
	}
 | 
						|
}
 |