diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPart.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 40 |
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 | } |