corrade-vassal – Diff between revs 16 and 17

Subversion Repositories:
Rev:
Show entire fileIgnore whitespace
Rev 16 Rev 17
Line 180... Line 180...
180 } 180 }
Line 181... Line 181...
181   181  
182 private void ShowToolTip(object sender, EventArgs e) 182 private void ShowToolTip(object sender, EventArgs e)
183 { 183 {
184 vassalForm.BeginInvoke( 184 vassalForm.BeginInvoke(
185 (Action)(() => 185 (Action) (() =>
186 { 186 {
187 PictureBox pictureBox = sender as PictureBox; 187 var pictureBox = sender as PictureBox;
188 if (pictureBox != null) 188 if (pictureBox != null)
189 { 189 {
190 toolTip1.Show(toolTip1.GetToolTip(pictureBox), pictureBox); 190 toolTip1.Show(toolTip1.GetToolTip(pictureBox), pictureBox);
191 } 191 }
Line 432... Line 432...
432 default: 432 default:
433 mediaType = @"text/plain"; 433 mediaType = @"text/plain";
434 break; 434 break;
435 } 435 }
436 // Create HTTP Client 436 // Create HTTP Client
437 Vassal.HTTPClient = new Web.wasHTTPClient(new ProductInfoHeaderValue(@"Vassal", 437 HTTPClient = new Web.wasHTTPClient(new ProductInfoHeaderValue(@"Vassal",
438 Vassal.VASSAL_VERSION), new CookieContainer(), mediaType, vassalConfiguration.ServicesTimeout); 438 VASSAL_VERSION), new CookieContainer(), mediaType, vassalConfiguration.ServicesTimeout);
439 } 439 }
Line 440... Line 440...
440   440  
441 // Get all the regions if they exist. 441 // Get all the regions if they exist.
442 if (File.Exists(VASSAL_CONSTANTS.VASSAL_REGIONS)) 442 if (File.Exists(VASSAL_CONSTANTS.VASSAL_REGIONS))
Line 650... Line 650...
650 {"group", vassalConfiguration.Group}, 650 {"group", vassalConfiguration.Group},
651 {"password", vassalConfiguration.Password}, 651 {"password", vassalConfiguration.Password},
652 { 652 {
653 "data", CSV.FromEnumerable(new[] 653 "data", CSV.FromEnumerable(new[]
654 { 654 {
655 "Agents", 655 "Stats.Agents",
656 "LastLag", 656 "Stats.LastLag",
657 "Dilation", 657 "Stats.Dilation",
658 "FPS", 658 "Stats.FPS",
659 "PhysicsFPS", 659 "Stats.PhysicsFPS",
660 "ActiveScripts", 660 "Stats.ActiveScripts",
661 "ScriptTime", 661 "Stats.ScriptTime",
662 "Objects", 662 "Stats.Objects",
663 "FrameTime", 663 "Stats.FrameTime",
664 "ScriptedObjects", 664 "Stats.ScriptedObjects",
665 "PhysicsTime", 665 "Stats.PhysicsTime",
666 "NetTime", 666 "Stats.NetTime",
667 "AvatarPositions" 667 "AvatarPositions"
668 }) 668 })
669 } 669 }
670 }, wasOutput)).Result); 670 }, wasOutput)).Result);
671 stopWatch.Stop(); 671 stopWatch.Stop();
Line 680... Line 680...
680 throw new Exception(); 680 throw new Exception();
Line 681... Line 681...
681   681  
682 vassalForm.BeginInvoke((MethodInvoker) (() => 682 vassalForm.BeginInvoke((MethodInvoker) (() =>
683 { 683 {
684 // Populate the overview tab. 684 // Populate the overview tab.
685 Agents.Text = data[data.IndexOf("Agents") + 1]; 685 Agents.Text = data[data.IndexOf("Stats.Agents") + 1];
686 Agents.Enabled = true; 686 Agents.Enabled = true;
687 LastLag.Text = data[data.IndexOf("LastLag") + 1]; 687 LastLag.Text = data[data.IndexOf("Stats.LastLag") + 1];
688 LastLag.Enabled = true; 688 LastLag.Enabled = true;
689 Dilation.Text = data[data.IndexOf("Dilation") + 1]; 689 Dilation.Text = data[data.IndexOf("Stats.Dilation") + 1];
690 Dilation.Enabled = true; 690 Dilation.Enabled = true;
691 FPS.Text = data[data.IndexOf("FPS") + 1]; 691 FPS.Text = data[data.IndexOf("Stats.FPS") + 1];
692 FPS.Enabled = true; 692 FPS.Enabled = true;
693 PhysicsFPS.Text = data[data.IndexOf("PhysicsFPS") + 1]; 693 PhysicsFPS.Text = data[data.IndexOf("Stats.PhysicsFPS") + 1];
694 PhysicsFPS.Enabled = true; 694 PhysicsFPS.Enabled = true;
695 ActiveScripts.Text = data[data.IndexOf("ActiveScripts") + 1]; 695 ActiveScripts.Text = data[data.IndexOf("Stats.ActiveScripts") + 1];
696 ActiveScripts.Enabled = true; 696 ActiveScripts.Enabled = true;
697 ScriptTime.Text = data[data.IndexOf("ScriptTime") + 1]; 697 ScriptTime.Text = data[data.IndexOf("Stats.ScriptTime") + 1];
698 ScriptTime.Enabled = true; 698 ScriptTime.Enabled = true;
699 FrameTime.Text = data[data.IndexOf("FrameTime") + 1]; 699 FrameTime.Text = data[data.IndexOf("Stats.FrameTime") + 1];
700 FrameTime.Enabled = true; 700 FrameTime.Enabled = true;
701 ScriptedObjects.Text = data[data.IndexOf("ScriptedObjects") + 1]; 701 ScriptedObjects.Text = data[data.IndexOf("Stats.ScriptedObjects") + 1];
702 ScriptedObjects.Enabled = true; 702 ScriptedObjects.Enabled = true;
703 PhysicsTime.Text = data[data.IndexOf("PhysicsTime") + 1]; 703 PhysicsTime.Text = data[data.IndexOf("Stats.PhysicsTime") + 1];
704 PhysicsTime.Enabled = true; 704 PhysicsTime.Enabled = true;
705 NetTime.Text = data[data.IndexOf("NetTime") + 1]; 705 NetTime.Text = data[data.IndexOf("Stats.NetTime") + 1];
706 NetTime.Enabled = true; 706 NetTime.Enabled = true;
707 Objects.Text = data[data.IndexOf("Objects") + 1]; 707 Objects.Text = data[data.IndexOf("Stats.Objects") + 1];
Line 708... Line 708...
708 Objects.Enabled = true; 708 Objects.Enabled = true;
709   709  
710 // Show the overview lag time. 710 // Show the overview lag time.
Line 4095... Line 4095...
4095 } 4095 }
4096 }) 4096 })
4097 {IsBackground = true}.Start(); 4097 {IsBackground = true}.Start();
4098 } 4098 }
Line 4099... Line -...
4099   -  
4100 /// <summary> -  
4101 /// Linden constants. -  
4102 /// </summary> -  
4103 public struct LINDEN_CONSTANTS -  
4104 { -  
4105 public struct ALERTS -  
4106 { -  
4107 public const string NO_ROOM_TO_SIT_HERE = @"No room to sit here, try another spot."; -  
4108   -  
4109 public const string UNABLE_TO_SET_HOME = -  
4110 @"You can only set your 'Home Location' on your land or at a mainland Infohub."; -  
4111   -  
4112 public const string HOME_SET = @"Home position set."; -  
4113 } -  
4114   -  
4115 public struct ASSETS -  
4116 { -  
4117 public struct NOTECARD -  
4118 { -  
4119 public const string NEWLINE = "\n"; -  
4120 public const uint MAXIMUM_BODY_LENTH = 65536; -  
4121 } -  
4122 } -  
4123   -  
4124 public struct AVATARS -  
4125 { -  
4126 public const uint SET_DISPLAY_NAME_SUCCESS = 200; -  
4127 public const string LASTNAME_PLACEHOLDER = @"Resident"; -  
4128 public const uint MAXIMUM_DISPLAY_NAME_CHARACTERS = 31; -  
4129 public const uint MINIMUM_DISPLAY_NAME_CHARACTERS = 1; -  
4130 public const uint MAXIMUM_NUMBER_OF_ATTACHMENTS = 38; -  
4131   -  
4132 public struct PROFILE -  
4133 { -  
4134 public const uint SECOND_LIFE_TEXT_SIZE = 510; -  
4135 public const uint FIRST_LIFE_TEXT_SIZE = 253; -  
4136 } -  
4137   -  
4138 public struct PICKS -  
4139 { -  
4140 public const uint MAXIMUM_PICKS = 10; -  
4141 public const uint MAXIMUM_PICK_DESCRIPTION_SIZE = 1022; -  
4142 } -  
4143   -  
4144 public struct CLASSIFIEDS -  
4145 { -  
4146 public const uint MAXIMUM_CLASSIFIEDS = 100; -  
4147 } -  
4148 } -  
4149   -  
4150 public struct PRIMITIVES -  
4151 { -  
4152 public const uint MAXIMUM_NAME_SIZE = 63; -  
4153 public const uint MAXIMUM_DESCRIPTION_SIZE = 127; -  
4154 public const double MAXIMUM_REZ_HEIGHT = 4096.0; -  
4155 public const double MINIMUM_SIZE_X = 0.01; -  
4156 public const double MINIMUM_SIZE_Y = 0.01; -  
4157 public const double MINIMUM_SIZE_Z = 0.01; -  
4158 public const double MAXIMUM_SIZE_X = 64.0; -  
4159 public const double MAXIMUM_SIZE_Y = 64.0; -  
4160 public const double MAXIMUM_SIZE_Z = 64.0; -  
4161 } -  
4162   -  
4163 public struct OBJECTS -  
4164 { -  
4165 public const uint MAXIMUM_PRIMITIVE_COUNT = 256; -  
4166 } -  
4167   -  
4168 public struct DIRECTORY -  
4169 { -  
4170 public struct EVENT -  
4171 { -  
4172 public const uint SEARCH_RESULTS_COUNT = 200; -  
4173 } -  
4174   -  
4175 public struct GROUP -  
4176 { -  
4177 public const uint SEARCH_RESULTS_COUNT = 100; -  
4178 } -  
4179   -  
4180 public struct LAND -  
4181 { -  
4182 public const uint SEARCH_RESULTS_COUNT = 100; -  
4183 } -  
4184   -  
4185 public struct PEOPLE -  
4186 { -  
4187 public const uint SEARCH_RESULTS_COUNT = 100; -  
4188 } -  
4189 } -  
4190   -  
4191 public struct ESTATE -  
4192 { -  
4193 public const uint REGION_RESTART_DELAY = 120; -  
4194 public const uint MAXIMUM_BAN_LIST_LENGTH = 500; -  
4195 public const uint MAXIMUM_GROUP_LIST_LENGTH = 63; -  
4196 public const uint MAXIMUM_USER_LIST_LENGTH = 500; -  
4197 public const uint MAXIMUM_MANAGER_LIST_LENGTH = 10; -  
4198   -  
4199 public struct MESSAGES -  
4200 { -  
4201 public const string REGION_RESTART_MESSAGE = @"restart"; -  
4202 } -  
4203 } -  
4204   -  
4205 public struct PARCELS -  
4206 { -  
4207 public const double MAXIMUM_AUTO_RETURN_TIME = 999999; -  
4208 public const uint MINIMUM_AUTO_RETURN_TIME = 0; -  
4209 public const uint MAXIMUM_NAME_LENGTH = 63; -  
4210 public const uint MAXIMUM_DESCRIPTION_LENGTH = 255; -  
4211 } -  
4212   -  
4213 public struct GRID -  
4214 { -  
4215 public const string SECOND_LIFE = @"Second Life"; -  
4216 public const string TIME_ZONE = @"Pacific Standard Time"; -  
4217 } -  
4218   -  
4219 public struct CHAT -  
4220 { -  
4221 public const uint MAXIMUM_MESSAGE_LENGTH = 1024; -  
4222 } -  
4223   -  
4224 public struct GROUPS -  
4225 { -  
4226 public const uint MAXIMUM_NUMBER_OF_ROLES = 10; -  
4227 public const string EVERYONE_ROLE_NAME = @"Everyone"; -  
4228 public const uint MAXIMUM_GROUP_NAME_LENGTH = 35; -  
4229 public const uint MAXIMUM_GROUP_TITLE_LENGTH = 20; -  
4230 } -  
4231   -  
4232 public struct NOTICES -  
4233 { -  
4234 public const uint MAXIMUM_NOTICE_MESSAGE_LENGTH = 512; -  
4235 } -  
4236   -  
4237 public struct LSL -  
4238 { -  
4239 public const string CSV_DELIMITER = @", "; -  
4240 public const float SENSOR_RANGE = 96; -  
4241 public const string DATE_TIME_STAMP = @"yyy-MM-ddTHH:mm:ss.ffffffZ"; -  
4242 } -  
4243   -  
4244 public struct REGION -  
4245 { -  
4246 public const float TELEPORT_MINIMUM_DISTANCE = 1; -  
4247 public const float DEFAULT_AGENT_LIMIT = 40; -  
4248 public const float DEFAULT_OBJECT_BONUS = 1; -  
4249 public const bool DEFAULT_FIXED_SUN = false; -  
4250 public const float DEFAULT_TERRAIN_LOWER_LIMIT = -4; -  
4251 public const float DEFAULT_TERRAIN_RAISE_LIMIT = 4; -  
4252 public const bool DEFAULT_USE_ESTATE_SUN = true; -  
4253 public const float DEFAULT_WATER_HEIGHT = 20; -  
4254 public const float SUNRISE = 6; -  
4255 } -  
4256   -  
4257 public struct VIEWER -  
4258 { -  
4259 public const float MAXIMUM_DRAW_DISTANCE = 4096; -  
4260 } -  
4261   -  
4262 public struct TELEPORTS -  
4263 { -  
4264 public struct THROTTLE -  
4265 { -  
4266 public const uint MAX_TELEPORTS = 10; -  
4267 public const uint GRACE_SECONDS = 15; -  
4268 } -  
4269 } -  
4270 } -  
4271   -  
4272 /// <summary> -  
4273 /// Constants used by Corrade. -  
4274 /// </summary> -  
4275 public struct VASSAL_CONSTANTS -  
4276 { -  
4277 /// <summary> -  
4278 /// Copyright. -  
4279 /// </summary> -  
4280 public const string COPYRIGHT = @"(c) Copyright 2013 Wizardry and Steamworks"; -  
4281   -  
4282 public const string WIZARDRY_AND_STEAMWORKS = @"Wizardry and Steamworks"; -  
4283 public const string VASSAL = @"Vassal"; -  
4284 public const string WIZARDRY_AND_STEAMWORKS_WEBSITE = @"http://grimore.org"; -  
4285   -  
4286 /// <summary> -  
4287 /// Vassal version. -  
4288 /// </summary> -  
4289 public static readonly string VASSAL_VERSION = Assembly.GetEntryAssembly().GetName().Version.ToString(); -  
4290   -  
4291 /// <summary> -  
4292 /// Corrade user agent. -  
4293 /// </summary> -  
4294 public static readonly string USER_AGENT = -  
4295 $"{VASSAL}/{VASSAL_VERSION} ({WIZARDRY_AND_STEAMWORKS_WEBSITE})"; -  
4296   -  
4297 /// <summary> -  
4298 /// Vassal compile date. -  
4299 /// </summary> -  
4300 public static readonly string VASSAL_COMPILE_DATE = new DateTime(2000, 1, 1).Add(new TimeSpan( -  
4301 TimeSpan.TicksPerDay*Assembly.GetEntryAssembly().GetName().Version.Build + // days since 1 January 2000 -  
4302 TimeSpan.TicksPerSecond*2*Assembly.GetEntryAssembly().GetName().Version.Revision)).ToLongDateString(); -  
4303   -  
4304 /// <summary> -  
4305 /// Vassal configuration file. -  
4306 /// </summary> -  
4307 public static readonly string VASSAL_CONFIGURATION_FILE = @"Vassal.ini"; -  
4308   -  
4309 /// <summary> -  
4310 /// Vassal regions file. -  
4311 /// </summary> -  
4312 public static readonly string VASSAL_REGIONS = @"Regions.csv"; -  
4313   -  
4314 /// <summary> -  
4315 /// Conten-types that Corrade can send and receive. -  
4316 /// </summary> -  
4317 public struct CONTENT_TYPE -  
4318 { -  
4319 public const string TEXT_PLAIN = @"text/plain"; -  
4320 public const string WWW_FORM_URLENCODED = @"application/x-www-form-urlencoded"; -  
4321 } -  
4322 } -  
4323   4099  
4324 private void RequestBatchSetCovenant(object sender, EventArgs e) 4100 private void RequestBatchSetCovenant(object sender, EventArgs e)
4325 { 4101 {
4326 // Block teleports and disable button. 4102 // Block teleports and disable button.
4327 vassalForm.Invoke((MethodInvoker)(() => 4103 vassalForm.Invoke((MethodInvoker) (() =>
4328 { 4104 {
4329 vassalForm.BatchSetCovenantButton.Enabled = false; 4105 vassalForm.BatchSetCovenantButton.Enabled = false;
4330 vassalForm.SetCovenantNotecardUUIDBox.Enabled = false; 4106 vassalForm.SetCovenantNotecardUUIDBox.Enabled = false;
4331 RegionTeleportGroup.Enabled = false; 4107 RegionTeleportGroup.Enabled = false;
Line 4332... Line 4108...
4332 })); 4108 }));
4333   4109  
4334 // Enqueue all the regions to set covenant. 4110 // Enqueue all the regions to set covenant.
4335 var batchSetCovenantQueue = new Queue<KeyValuePair<string, Vector3>>(); 4111 var batchSetCovenantQueue = new Queue<KeyValuePair<string, Vector3>>();
4336 vassalForm.Invoke((MethodInvoker)(() => 4112 vassalForm.Invoke((MethodInvoker) (() =>
4337 { 4113 {
4338 foreach ( 4114 foreach (
4339 var topCollidersRow in 4115 var topCollidersRow in
Line 4352... Line 4128...
4352 })); 4128 }));
Line 4353... Line 4129...
4353   4129  
4354 // If no rows were selected, enable teleports, the return button and return. 4130 // If no rows were selected, enable teleports, the return button and return.
4355 if (batchSetCovenantQueue.Count.Equals(0)) 4131 if (batchSetCovenantQueue.Count.Equals(0))
4356 { 4132 {
4357 vassalForm.Invoke((MethodInvoker)(() => 4133 vassalForm.Invoke((MethodInvoker) (() =>
4358 { 4134 {
4359 vassalForm.BatchSetCovenantButton.Enabled = true; 4135 vassalForm.BatchSetCovenantButton.Enabled = true;
4360 vassalForm.SetCovenantNotecardUUIDBox.Enabled = true; 4136 vassalForm.SetCovenantNotecardUUIDBox.Enabled = true;
4361 RegionTeleportGroup.Enabled = true; 4137 RegionTeleportGroup.Enabled = true;
Line 4372... Line 4148...
4372 do 4148 do
4373 { 4149 {
4374 // Dequeue the first object. 4150 // Dequeue the first object.
4375 var batchSetCovenantRegionData = batchSetCovenantQueue.Dequeue(); 4151 var batchSetCovenantRegionData = batchSetCovenantQueue.Dequeue();
4376 DataGridViewRow currentDataGridViewRow = null; 4152 DataGridViewRow currentDataGridViewRow = null;
4377 vassalForm.Invoke((MethodInvoker)(() => 4153 vassalForm.Invoke((MethodInvoker) (() =>
4378 { 4154 {
4379 currentDataGridViewRow = vassalForm.BatchSetCovenantGridView.Rows.AsParallel() 4155 currentDataGridViewRow = vassalForm.BatchSetCovenantGridView.Rows.AsParallel()
4380 .Cast<DataGridViewRow>() 4156 .Cast<DataGridViewRow>()
4381 .FirstOrDefault( 4157 .FirstOrDefault(
4382 o => 4158 o =>
Line 4396... Line 4172...
4396   4172  
4397 // Retry to teleport to each region a few times. 4173 // Retry to teleport to each region a few times.
4398 var teleportRetries = 3; 4174 var teleportRetries = 3;
4399 do 4175 do
4400 { 4176 {
4401 vassalForm.Invoke((MethodInvoker)(() => 4177 vassalForm.Invoke((MethodInvoker) (() =>
4402 { 4178 {
-   4179 vassalForm.StatusText.Text = @"Attempting to teleport to " +
4403 vassalForm.StatusText.Text = @"Attempting to teleport to " + batchSetCovenantRegionData.Key + 4180 batchSetCovenantRegionData.Key +
4404 @" " + @"(" + 4181 @" " + @"(" +
4405 teleportRetries.ToString(Utils.EnUsCulture) + 4182 teleportRetries.ToString(Utils.EnUsCulture) +
4406 @")"; 4183 @")";
Line 4516... Line 4293...
4516 throw new Exception("No success status could be retrieved."); 4293 throw new Exception("No success status could be retrieved.");
Line 4517... Line 4294...
4517   4294  
4518 if (!success) 4295 if (!success)
Line 4519... Line 4296...
4519 throw new Exception("Could not set region covenant."); 4296 throw new Exception("Could not set region covenant.");
4520   4297  
4521 vassalForm.Invoke((MethodInvoker)(() => 4298 vassalForm.Invoke((MethodInvoker) (() =>
4522 { 4299 {
4523 vassalForm.StatusText.Text = @"Region covenant set."; 4300 vassalForm.StatusText.Text = @"Region covenant set.";
4524 currentDataGridViewRow.Selected = false; 4301 currentDataGridViewRow.Selected = false;
Line 4535... Line 4312...
4535 throw new Exception("No estate manager rights for setting covenant."); 4312 throw new Exception("No estate manager rights for setting covenant.");
4536 } 4313 }
4537 } 4314 }
4538 catch (Exception ex) 4315 catch (Exception ex)
4539 { 4316 {
4540 vassalForm.Invoke((MethodInvoker)(() => 4317 vassalForm.Invoke((MethodInvoker) (() =>
4541 { 4318 {
4542 vassalForm.StatusText.Text = ex.Message; 4319 vassalForm.StatusText.Text = ex.Message;
4543 currentDataGridViewRow.Selected = false; 4320 currentDataGridViewRow.Selected = false;
4544 currentDataGridViewRow.DefaultCellStyle.BackColor = Color.LightPink; 4321 currentDataGridViewRow.DefaultCellStyle.BackColor = Color.LightPink;
4545 foreach ( 4322 foreach (
Line 4562... Line 4339...
4562 } 4339 }
4563 finally 4340 finally
4564 { 4341 {
4565 Monitor.Exit(ClientInstanceTeleportLock); 4342 Monitor.Exit(ClientInstanceTeleportLock);
4566 // Allow teleports and enable button. 4343 // Allow teleports and enable button.
4567 vassalForm.BeginInvoke((MethodInvoker)(() => 4344 vassalForm.BeginInvoke((MethodInvoker) (() =>
4568 { 4345 {
4569 vassalForm.BatchSetCovenantButton.Enabled = true; 4346 vassalForm.BatchSetCovenantButton.Enabled = true;
4570 vassalForm.SetCovenantNotecardUUIDBox.Enabled = true; 4347 vassalForm.SetCovenantNotecardUUIDBox.Enabled = true;
4571 RegionTeleportGroup.Enabled = true; 4348 RegionTeleportGroup.Enabled = true;
4572 })); 4349 }));
4573 } 4350 }
4574 }) 4351 })
4575 { IsBackground = true }.Start(); 4352 {IsBackground = true}.Start();
-   4353 }
-   4354  
-   4355 /// <summary>
-   4356 /// Linden constants.
-   4357 /// </summary>
-   4358 public struct LINDEN_CONSTANTS
-   4359 {
-   4360 public struct ALERTS
-   4361 {
-   4362 public const string NO_ROOM_TO_SIT_HERE = @"No room to sit here, try another spot.";
-   4363  
-   4364 public const string UNABLE_TO_SET_HOME =
-   4365 @"You can only set your 'Home Location' on your land or at a mainland Infohub.";
-   4366  
-   4367 public const string HOME_SET = @"Home position set.";
-   4368 }
-   4369  
-   4370 public struct ASSETS
-   4371 {
-   4372 public struct NOTECARD
-   4373 {
-   4374 public const string NEWLINE = "\n";
-   4375 public const uint MAXIMUM_BODY_LENTH = 65536;
-   4376 }
-   4377 }
-   4378  
-   4379 public struct AVATARS
-   4380 {
-   4381 public const uint SET_DISPLAY_NAME_SUCCESS = 200;
-   4382 public const string LASTNAME_PLACEHOLDER = @"Resident";
-   4383 public const uint MAXIMUM_DISPLAY_NAME_CHARACTERS = 31;
-   4384 public const uint MINIMUM_DISPLAY_NAME_CHARACTERS = 1;
-   4385 public const uint MAXIMUM_NUMBER_OF_ATTACHMENTS = 38;
-   4386  
-   4387 public struct PROFILE
-   4388 {
-   4389 public const uint SECOND_LIFE_TEXT_SIZE = 510;
-   4390 public const uint FIRST_LIFE_TEXT_SIZE = 253;
-   4391 }
-   4392  
-   4393 public struct PICKS
-   4394 {
-   4395 public const uint MAXIMUM_PICKS = 10;
-   4396 public const uint MAXIMUM_PICK_DESCRIPTION_SIZE = 1022;
-   4397 }
-   4398  
-   4399 public struct CLASSIFIEDS
-   4400 {
-   4401 public const uint MAXIMUM_CLASSIFIEDS = 100;
-   4402 }
-   4403 }
-   4404  
-   4405 public struct PRIMITIVES
-   4406 {
-   4407 public const uint MAXIMUM_NAME_SIZE = 63;
-   4408 public const uint MAXIMUM_DESCRIPTION_SIZE = 127;
-   4409 public const double MAXIMUM_REZ_HEIGHT = 4096.0;
-   4410 public const double MINIMUM_SIZE_X = 0.01;
-   4411 public const double MINIMUM_SIZE_Y = 0.01;
-   4412 public const double MINIMUM_SIZE_Z = 0.01;
-   4413 public const double MAXIMUM_SIZE_X = 64.0;
-   4414 public const double MAXIMUM_SIZE_Y = 64.0;
-   4415 public const double MAXIMUM_SIZE_Z = 64.0;
-   4416 }
-   4417  
-   4418 public struct OBJECTS
-   4419 {
-   4420 public const uint MAXIMUM_PRIMITIVE_COUNT = 256;
-   4421 }
-   4422  
-   4423 public struct DIRECTORY
-   4424 {
-   4425 public struct EVENT
-   4426 {
-   4427 public const uint SEARCH_RESULTS_COUNT = 200;
-   4428 }
-   4429  
-   4430 public struct GROUP
-   4431 {
-   4432 public const uint SEARCH_RESULTS_COUNT = 100;
-   4433 }
-   4434  
-   4435 public struct LAND
-   4436 {
-   4437 public const uint SEARCH_RESULTS_COUNT = 100;
-   4438 }
-   4439  
-   4440 public struct PEOPLE
-   4441 {
-   4442 public const uint SEARCH_RESULTS_COUNT = 100;
-   4443 }
-   4444 }
-   4445  
-   4446 public struct ESTATE
-   4447 {
-   4448 public const uint REGION_RESTART_DELAY = 120;
-   4449 public const uint MAXIMUM_BAN_LIST_LENGTH = 500;
-   4450 public const uint MAXIMUM_GROUP_LIST_LENGTH = 63;
-   4451 public const uint MAXIMUM_USER_LIST_LENGTH = 500;
-   4452 public const uint MAXIMUM_MANAGER_LIST_LENGTH = 10;
-   4453  
-   4454 public struct MESSAGES
-   4455 {
-   4456 public const string REGION_RESTART_MESSAGE = @"restart";
-   4457 }
-   4458 }
-   4459  
-   4460 public struct PARCELS
-   4461 {
-   4462 public const double MAXIMUM_AUTO_RETURN_TIME = 999999;
-   4463 public const uint MINIMUM_AUTO_RETURN_TIME = 0;
-   4464 public const uint MAXIMUM_NAME_LENGTH = 63;
-   4465 public const uint MAXIMUM_DESCRIPTION_LENGTH = 255;
-   4466 }
-   4467  
-   4468 public struct GRID
-   4469 {
-   4470 public const string SECOND_LIFE = @"Second Life";
-   4471 public const string TIME_ZONE = @"Pacific Standard Time";
-   4472 }
-   4473  
-   4474 public struct CHAT
-   4475 {
-   4476 public const uint MAXIMUM_MESSAGE_LENGTH = 1024;
-   4477 }
-   4478  
-   4479 public struct GROUPS
-   4480 {
-   4481 public const uint MAXIMUM_NUMBER_OF_ROLES = 10;
-   4482 public const string EVERYONE_ROLE_NAME = @"Everyone";
-   4483 public const uint MAXIMUM_GROUP_NAME_LENGTH = 35;
-   4484 public const uint MAXIMUM_GROUP_TITLE_LENGTH = 20;
-   4485 }
-   4486  
-   4487 public struct NOTICES
-   4488 {
-   4489 public const uint MAXIMUM_NOTICE_MESSAGE_LENGTH = 512;
-   4490 }
-   4491  
-   4492 public struct LSL
-   4493 {
-   4494 public const string CSV_DELIMITER = @", ";
-   4495 public const float SENSOR_RANGE = 96;
-   4496 public const string DATE_TIME_STAMP = @"yyy-MM-ddTHH:mm:ss.ffffffZ";
-   4497 }
-   4498  
-   4499 public struct REGION
-   4500 {
-   4501 public const float TELEPORT_MINIMUM_DISTANCE = 1;
-   4502 public const float DEFAULT_AGENT_LIMIT = 40;
-   4503 public const float DEFAULT_OBJECT_BONUS = 1;
-   4504 public const bool DEFAULT_FIXED_SUN = false;
-   4505 public const float DEFAULT_TERRAIN_LOWER_LIMIT = -4;
-   4506 public const float DEFAULT_TERRAIN_RAISE_LIMIT = 4;
-   4507 public const bool DEFAULT_USE_ESTATE_SUN = true;
-   4508 public const float DEFAULT_WATER_HEIGHT = 20;
-   4509 public const float SUNRISE = 6;
-   4510 }
-   4511  
-   4512 public struct VIEWER
-   4513 {
-   4514 public const float MAXIMUM_DRAW_DISTANCE = 4096;
-   4515 }
-   4516  
-   4517 public struct TELEPORTS
-   4518 {
-   4519 public struct THROTTLE
-   4520 {
-   4521 public const uint MAX_TELEPORTS = 10;
-   4522 public const uint GRACE_SECONDS = 15;
-   4523 }
-   4524 }
-   4525 }
-   4526  
-   4527 /// <summary>
-   4528 /// Constants used by Corrade.
-   4529 /// </summary>
-   4530 public struct VASSAL_CONSTANTS
-   4531 {
-   4532 /// <summary>
-   4533 /// Copyright.
-   4534 /// </summary>
-   4535 public const string COPYRIGHT = @"(c) Copyright 2013 Wizardry and Steamworks";
-   4536  
-   4537 public const string WIZARDRY_AND_STEAMWORKS = @"Wizardry and Steamworks";
-   4538 public const string VASSAL = @"Vassal";
-   4539 public const string WIZARDRY_AND_STEAMWORKS_WEBSITE = @"http://grimore.org";
-   4540  
-   4541 /// <summary>
-   4542 /// Vassal version.
-   4543 /// </summary>
-   4544 public static readonly string VASSAL_VERSION = Assembly.GetEntryAssembly().GetName().Version.ToString();
-   4545  
-   4546 /// <summary>
-   4547 /// Corrade user agent.
-   4548 /// </summary>
-   4549 public static readonly string USER_AGENT =
-   4550 $"{VASSAL}/{VASSAL_VERSION} ({WIZARDRY_AND_STEAMWORKS_WEBSITE})";
-   4551  
-   4552 /// <summary>
-   4553 /// Vassal compile date.
-   4554 /// </summary>
-   4555 public static readonly string VASSAL_COMPILE_DATE = new DateTime(2000, 1, 1).Add(new TimeSpan(
-   4556 TimeSpan.TicksPerDay*Assembly.GetEntryAssembly().GetName().Version.Build + // days since 1 January 2000
-   4557 TimeSpan.TicksPerSecond*2*Assembly.GetEntryAssembly().GetName().Version.Revision)).ToLongDateString();
-   4558  
-   4559 /// <summary>
-   4560 /// Vassal configuration file.
-   4561 /// </summary>
-   4562 public static readonly string VASSAL_CONFIGURATION_FILE = @"Vassal.ini";
-   4563  
-   4564 /// <summary>
-   4565 /// Vassal regions file.
-   4566 /// </summary>
-   4567 public static readonly string VASSAL_REGIONS = @"Regions.csv";
-   4568  
-   4569 /// <summary>
-   4570 /// Conten-types that Corrade can send and receive.
-   4571 /// </summary>
-   4572 public struct CONTENT_TYPE
-   4573 {
-   4574 public const string TEXT_PLAIN = @"text/plain";
-   4575 public const string WWW_FORM_URLENCODED = @"application/x-www-form-urlencoded";
-   4576 }
4576 } 4577 }
4577 } 4578 }
4578 } 4579 }
4579   4580