private void OnGUI()
{
if (this.showGUI)
{
int num = 10 + this.offsetX;
int num2 = 40 + this.offsetY;
bool flag = ((this.manager.client == null) || (this.manager.client.connection == null)) || (this.manager.client.connection.connectionId == -1);
if ((!this.manager.IsClientConnected() && !NetworkServer.active) && (this.manager.matchMaker == null))
{
if (flag)
{
if (Application.platform != RuntimePlatform.WebGLPlayer)
{
if (GUI.Button(new Rect((float) num, (float) num2, 200f, 20f), "LAN Host(H)"))
{
this.manager.StartHost();
}
num2 += 0x18;
}
if (GUI.Button(new Rect((float) num, (float) num2, 105f, 20f), "LAN Client(C)"))
{
this.manager.StartClient();
}
this.manager.networkAddress = GUI.TextField(new Rect((float) (num + 100), (float) num2, 95f, 20f), this.manager.networkAddress);
num2 += 0x18;
if (Application.platform == RuntimePlatform.WebGLPlayer)
{
GUI.Box(new Rect((float) num, (float) num2, 200f, 25f), "( WebGL cannot be server )");
num2 += 0x18;
}
else
{
if (GUI.Button(new Rect((float) num, (float) num2, 200f, 20f), "LAN Server Only(S)"))
{
this.manager.StartServer();
}
num2 += 0x18;
}
}
else
{
GUI.Label(new Rect((float) num, (float) num2, 200f, 20f), string.Concat(new object[] { "Connecting to ", this.manager.networkAddress, ":", this.manager.networkPort, ".." }));
num2 += 0x18;
if (GUI.Button(new Rect((float) num, (float) num2, 200f, 20f), "Cancel Connection Attempt"))
{
this.manager.StopClient();
}
}
}
else
{
if (NetworkServer.active)
{
string text = "Server: port=" + this.manager.networkPort;
if (this.manager.useWebSockets)
{
text = text + " (Using WebSockets)";
}
GUI.Label(new Rect((float) num, (float) num2, 300f, 20f), text);
num2 += 0x18;
}
if (this.manager.IsClientConnected())
{
GUI.Label(new Rect((float) num, (float) num2, 300f, 20f), string.Concat(new object[] { "Client: address=", this.manager.networkAddress, " port=", this.manager.networkPort }));
num2 += 0x18;
}
}
if (this.manager.IsClientConnected() && !ClientScene.ready)
{
if (GUI.Button(new Rect((float) num, (float) num2, 200f, 20f), "Client Ready"))
{
ClientScene.Ready(this.manager.client.connection);
if (ClientScene.localPlayers.Count == 0)
{
ClientScene.AddPlayer(0);
}
}
num2 += 0x18;
}
if (NetworkServer.active || this.manager.IsClientConnected())
{
if (GUI.Button(new Rect((float) num, (float) num2, 200f, 20f), "Stop (X)"))
{
this.manager.StopHost();
}
num2 += 0x18;
}
if ((!NetworkServer.active && !this.manager.IsClientConnected()) && flag)
{
num2 += 10;
if (Application.platform == RuntimePlatform.WebGLPlayer)
{
GUI.Box(new Rect((float) (num - 5), (float) num2, 220f, 25f), "(WebGL cannot use Match Maker)");
}
else if (this.manager.matchMaker == null)
{
if (GUI.Button(new Rect((float) num, (float) num2, 200f, 20f), "Enable Match Maker (M)"))
{
this.manager.StartMatchMaker();
}
num2 += 0x18;
}
else
{
if (this.manager.matchInfo == null)
{
if (this.manager.matches == null)
{
if (GUI.Button(new Rect((float) num, (float) num2, 200f, 20f), "Create Internet Match"))
{
this.manager.matchMaker.CreateMatch(this.manager.matchName, this.manager.matchSize, true, "", "", "", 0, 0, new NetworkMatch.DataResponseDelegate<MatchInfo>(this.manager.OnMatchCreate));
}
num2 += 0x18;
GUI.Label(new Rect((float) num, (float) num2, 100f, 20f), "Room Name:");
this.manager.matchName = GUI.TextField(new Rect((float) (num + 100), (float) num2, 100f, 20f), this.manager.matchName);
num2 += 0x18;
num2 += 10;
if (GUI.Button(new Rect((float) num, (float) num2, 200f, 20f), "Find Internet Match"))
{
this.manager.matchMaker.ListMatches(0, 20, "", false, 0, 0, new NetworkMatch.DataResponseDelegate<List<MatchInfoSnapshot>>(this.manager.OnMatchList));
}
num2 += 0x18;
}
else
{
for (int i = 0; i < this.manager.matches.Count; i++)
{
MatchInfoSnapshot snapshot = this.manager.matches[i];
if (GUI.Button(new Rect((float) num, (float) num2, 200f, 20f), "Join Match:" + snapshot.name))
{
this.manager.matchName = snapshot.name;
this.manager.matchMaker.JoinMatch(snapshot.networkId, "", "", "", 0, 0, new NetworkMatch.DataResponseDelegate<MatchInfo>(this.manager.OnMatchJoined));
}
num2 += 0x18;
}
if (GUI.Button(new Rect((float) num, (float) num2, 200f, 20f), "Back to Match Menu"))
{
this.manager.matches = null;
}
num2 += 0x18;
}
}
if (GUI.Button(new Rect((float) num, (float) num2, 200f, 20f), "Change MM server"))
{
this.m_ShowServer = !this.m_ShowServer;
}
if (this.m_ShowServer)
{
num2 += 0x18;
if (GUI.Button(new Rect((float) num, (float) num2, 100f, 20f), "Local"))
{
this.manager.SetMatchHost("localhost", 0x539, false);
this.m_ShowServer = false;
}
num2 += 0x18;
if (GUI.Button(new Rect((float) num, (float) num2, 100f, 20f), "Internet"))
{
this.manager.SetMatchHost("mm.unet.unity3d.com", 0x1bb, true);
this.m_ShowServer = false;
}
num2 += 0x18;
if (GUI.Button(new Rect((float) num, (float) num2, 100f, 20f), "Staging"))
{
this.manager.SetMatchHost("staging-mm.unet.unity3d.com", 0x1bb, true);
this.m_ShowServer = false;
}
}
num2 += 0x18;
GUI.Label(new Rect((float) num, (float) num2, 300f, 20f), "MM Uri: " + this.manager.matchMaker.baseUri);
num2 += 0x18;
if (GUI.Button(new Rect((float) num, (float) num2, 200f, 20f), "Disable Match Maker"))
{
this.manager.StopMatchMaker();
}
num2 += 0x18;
}
}
}
}