aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPart.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs40
1 files changed, 18 insertions, 22 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index fcc3463..06d767d 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -537,39 +537,29 @@ namespace OpenSim.Region.Framework.Scenes
537 } 537 }
538 set 538 set
539 { 539 {
540 CreatorData = string.Empty;
540 if ((value == null) || (value != null && value == string.Empty)) 541 if ((value == null) || (value != null && value == string.Empty))
541 {
542 CreatorData = string.Empty;
543 return; 542 return;
544 }
545 543
546 if (!value.Contains(";")) // plain UUID 544 // value is uuid or uuid;homeuri;firstname lastname
545 string[] parts = value.Split(';');
546 if (parts.Length > 0)
547 { 547 {
548
548 UUID uuid = UUID.Zero; 549 UUID uuid = UUID.Zero;
549 UUID.TryParse(value, out uuid); 550 UUID.TryParse(parts[0], out uuid);
550 CreatorID = uuid; 551 CreatorID = uuid;
551 } 552
552 else // <uuid>[;<endpoint>[;name]] 553 if (parts.Length > 1)
553 {
554 string name = "Unknown User";
555 string[] parts = value.Split(';');
556 if (parts.Length >= 1)
557 {
558 UUID uuid = UUID.Zero;
559 UUID.TryParse(parts[0], out uuid);
560 CreatorID = uuid;
561 }
562 if (parts.Length >= 2)
563 { 554 {
564 CreatorData = parts[1]; 555 CreatorData = parts[1];
565 if (!CreatorData.EndsWith("/")) 556 if (!CreatorData.EndsWith("/"))
566 CreatorData += "/"; 557 CreatorData += "/";
558 if (parts.Length > 2)
559 CreatorData += ';' + parts[2];
560 else
561 CreatorData += ";Unknown User";
567 } 562 }
568 if (parts.Length >= 3)
569 name = parts[2];
570
571 CreatorData += ';' + name;
572
573 } 563 }
574 } 564 }
575 } 565 }
@@ -4653,6 +4643,12 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter
4653 4643
4654 DoPhysicsPropertyUpdate(UsePhysics, false); // Update physical status. 4644 DoPhysicsPropertyUpdate(UsePhysics, false); // Update physical status.
4655 4645
4646 if(UsePhysics && !SetPhantom && m_localId == ParentGroup.RootPart.LocalId &&
4647 m_vehicleParams != null && m_vehicleParams.CameraDecoupled)
4648 AddFlag(PrimFlags.CameraDecoupled);
4649 else
4650 RemFlag(PrimFlags.CameraDecoupled);
4651
4656 if (pa.Building != building) 4652 if (pa.Building != building)
4657 pa.Building = building; 4653 pa.Building = building;
4658 } 4654 }