private void ParseParamString()
{
Regex Reg = new Regex(@"\+(?<name>[a-z]+)[\s]+(?<value>[a-z0-9.<>=_-]+)", RegexOptions.IgnoreCase);
MatchCollection Matches = Reg.Matches(ParamString);
foreach (Match M in Matches)
{
string Key = M.Groups["name"].Value.ToLower();
string Value = M.Groups["value"].Value;
switch (Key)
{
case "joinserver":
JoinServerIp.Text = Value;
break;
case "port":
JoinServerPort.Value = int.Parse(Value);
break;
case "password":
JoinServerPass.Text = Value;
break;
case "fullscreen":
WindowedMode.Checked = (Value == "0");
break;
case "szy":
HeightText.Text = Value;
CustomRes.Checked = true;
break;
case "szx":
WidthText.Text = Value;
CustomRes.Checked = true;
break;
case "playername":
int index = ProfileSelect.Items.IndexOf(Value);
if (index > -1)
ProfileSelect.SelectedIndex = index;
AutoLogin.Checked = true;
break;
case "playerpassword":
AccountPass.Text = Value;
AutoLogin.Checked = true;
break;
case "playnow":
PlayNow.Checked = (Value == "1");
break;
case "restart":
Restart.Checked = (Value == "1");
break;
case "disableswiff":
DisableSwiff.Checked = (Value == "1");
break;
case "nosound":
NoSound.Checked = (Value == "1");
break;
case "lowpriority":
LowPriority.Checked = (Value == "1");
break;
default:
UnknownVals = String.Concat(UnknownVals, "+", M.Groups["name"].Value, " " ,Value, " ");
break;
}
}
}