private void CheckPermissionConsistency( Permission permission, bool check )
{
switch ( permission ) {
case Permission.Chat:
if ( !check ) {
vPermissions.Items[( int )Permission.Say].Checked = false;
vPermissions.Items[( int )Permission.Say].ForeColor = SystemColors.GrayText;
vPermissions.Items[( int )Permission.UseColorCodes].Checked = false;
vPermissions.Items[( int )Permission.UseColorCodes].ForeColor = SystemColors.GrayText;
} else {
vPermissions.Items[( int )Permission.Say].ForeColor = SystemColors.ControlText;
vPermissions.Items[( int )Permission.UseColorCodes].ForeColor = SystemColors.ControlText;
}
break;
case Permission.Say:
if ( check )
vPermissions.Items[( int )Permission.Chat].Checked = true;
break;
case Permission.UseColorCodes:
if ( check )
vPermissions.Items[( int )Permission.Chat].Checked = true;
break;
case Permission.Ban:
if ( !check ) {
vPermissions.Items[( int )Permission.BanIP].Checked = false;
vPermissions.Items[( int )Permission.BanIP].ForeColor = SystemColors.GrayText;
vPermissions.Items[( int )Permission.BanAll].Checked = false;
vPermissions.Items[( int )Permission.BanAll].ForeColor = SystemColors.GrayText;
} else {
vPermissions.Items[( int )Permission.BanIP].ForeColor = SystemColors.ControlText;
vPermissions.Items[( int )Permission.BanAll].ForeColor = SystemColors.ControlText;
}
break;
case Permission.BanIP:
if ( check ) {
vPermissions.Items[( int )Permission.Ban].Checked = true;
vPermissions.Items[( int )Permission.BanAll].ForeColor = SystemColors.ControlText;
} else {
vPermissions.Items[( int )Permission.BanAll].Checked = false;
vPermissions.Items[( int )Permission.BanAll].ForeColor = SystemColors.GrayText;
}
break;
case Permission.BanAll:
if ( check ) {
vPermissions.Items[( int )Permission.Ban].Checked = true;
vPermissions.Items[( int )Permission.BanIP].Checked = true;
}
break;
case Permission.Draw:
xDrawLimit.Enabled = vPermissions.Items[( int )Permission.Draw].Checked ||
vPermissions.Items[( int )Permission.CopyAndPaste].Checked;
if ( check ) {
vPermissions.Items[( int )Permission.DrawAdvanced].ForeColor = SystemColors.ControlText;
vPermissions.Items[( int )Permission.CopyAndPaste].ForeColor = SystemColors.ControlText;
} else {
vPermissions.Items[( int )Permission.DrawAdvanced].Checked = false;
vPermissions.Items[( int )Permission.DrawAdvanced].ForeColor = SystemColors.GrayText;
vPermissions.Items[( int )Permission.CopyAndPaste].Checked = false;
vPermissions.Items[( int )Permission.CopyAndPaste].ForeColor = SystemColors.GrayText;
}
break;
case Permission.DrawAdvanced:
lFillLimit.Enabled = check;
lFillLimitUnits.Enabled = check;
nFillLimit.Enabled = check;
break;
case Permission.CopyAndPaste:
xDrawLimit.Enabled = vPermissions.Items[( int )Permission.Draw].Checked ||
vPermissions.Items[( int )Permission.CopyAndPaste].Checked;
lCopyPasteSlots.Enabled = check;
nCopyPasteSlots.Enabled = check;
break;
case Permission.ManageWorlds:
case Permission.ManageZones:
xAllowSecurityCircumvention.Enabled = vPermissions.Items[( int )Permission.ManageWorlds].Checked ||
vPermissions.Items[( int )Permission.ManageZones].Checked;
break;
case Permission.Teleport:
if ( !check ) {
vPermissions.Items[( int )Permission.Patrol].Checked = false;
vPermissions.Items[( int )Permission.Patrol].ForeColor = SystemColors.GrayText;
} else {
vPermissions.Items[( int )Permission.Patrol].ForeColor = SystemColors.ControlText;
}
break;
case Permission.Patrol:
if ( check )
vPermissions.Items[( int )Permission.Teleport].Checked = true;
break;
case Permission.Delete:
if ( !check ) {
vPermissions.Items[( int )Permission.DeleteAdmincrete].Checked = false;
vPermissions.Items[( int )Permission.DeleteAdmincrete].ForeColor = SystemColors.GrayText;
} else {
vPermissions.Items[( int )Permission.DeleteAdmincrete].ForeColor = SystemColors.ControlText;
}
break;
case Permission.DeleteAdmincrete:
if ( check )
vPermissions.Items[( int )Permission.Delete].Checked = true;
break;
case Permission.Build:
if ( !check ) {
vPermissions.Items[( int )Permission.PlaceAdmincrete].Checked = false;
vPermissions.Items[( int )Permission.PlaceAdmincrete].ForeColor = SystemColors.GrayText;
vPermissions.Items[( int )Permission.PlaceGrass].Checked = false;
vPermissions.Items[( int )Permission.PlaceGrass].ForeColor = SystemColors.GrayText;
vPermissions.Items[( int )Permission.PlaceLava].Checked = false;
vPermissions.Items[( int )Permission.PlaceLava].ForeColor = SystemColors.GrayText;
vPermissions.Items[( int )Permission.PlaceWater].Checked = false;
vPermissions.Items[( int )Permission.PlaceWater].ForeColor = SystemColors.GrayText;
} else {
vPermissions.Items[( int )Permission.PlaceAdmincrete].ForeColor = SystemColors.ControlText;
vPermissions.Items[( int )Permission.PlaceGrass].ForeColor = SystemColors.ControlText;
vPermissions.Items[( int )Permission.PlaceLava].ForeColor = SystemColors.ControlText;
vPermissions.Items[( int )Permission.PlaceWater].ForeColor = SystemColors.ControlText;
}
break;
case Permission.PlaceAdmincrete:
case Permission.PlaceGrass:
case Permission.PlaceLava:
case Permission.PlaceWater:
if ( check )
vPermissions.Items[( int )Permission.Build].Checked = true;
break;
case Permission.Bring:
if ( !check ) {
vPermissions.Items[( int )Permission.BringAll].Checked = false;
vPermissions.Items[( int )Permission.BringAll].ForeColor = SystemColors.GrayText;
} else {
vPermissions.Items[( int )Permission.BringAll].ForeColor = SystemColors.ControlText;
}
break;
case Permission.BringAll:
if ( check )
vPermissions.Items[( int )Permission.Bring].Checked = true;
break;
}
if ( permissionLimitBoxes.ContainsKey( permission ) ) {
permissionLimitBoxes[permission].PermissionToggled( check );
}
}