diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 6 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneGraph.cs | 7 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 36 |
3 files changed, 7 insertions, 42 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index f475c64..d1f7a4b 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -2052,8 +2052,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
2052 | 2052 | ||
2053 | ScenePresence sp = CreateAndAddScenePresence(client); | 2053 | ScenePresence sp = CreateAndAddScenePresence(client); |
2054 | 2054 | ||
2055 | // HERE!!! Do the initial attachments here | 2055 | // HERE!!! Do the initial attachments right here |
2056 | if (aCircuit.child == false) // first agent upon login is root agent | 2056 | // first agent upon login is a root agent by design. |
2057 | // All other AddNewClient calls find aCircuit.child to be true | ||
2058 | if (aCircuit.child == false) | ||
2057 | { | 2059 | { |
2058 | sp.IsChildAgent = false; | 2060 | sp.IsChildAgent = false; |
2059 | sp.RezAttachments(); | 2061 | sp.RezAttachments(); |
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index fd13633..3007598 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs | |||
@@ -557,7 +557,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
557 | SceneObjectGroup group = GetGroupByPrim(objectLocalID); | 557 | SceneObjectGroup group = GetGroupByPrim(objectLocalID); |
558 | if (group != null) | 558 | if (group != null) |
559 | { | 559 | { |
560 | m_log.DebugFormat("[SCENE GRAPH]: AttachObject got {0}", group.UUID); | ||
561 | if (m_parentScene.Permissions.CanTakeObject(group.UUID, remoteClient.AgentId)) | 560 | if (m_parentScene.Permissions.CanTakeObject(group.UUID, remoteClient.AgentId)) |
562 | { | 561 | { |
563 | // If the attachment point isn't the same as the one previously used | 562 | // If the attachment point isn't the same as the one previously used |
@@ -565,7 +564,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
565 | // and not in a weird location somewhere unknown. | 564 | // and not in a weird location somewhere unknown. |
566 | if (AttachmentPt != 0 && AttachmentPt != (uint)group.GetAttachmentPoint()) | 565 | if (AttachmentPt != 0 && AttachmentPt != (uint)group.GetAttachmentPoint()) |
567 | { | 566 | { |
568 | m_log.DebugFormat("[SCENE GRAPH]: AttachObject 1 got {0}", group.UUID); | ||
569 | attachPos = Vector3.Zero; | 567 | attachPos = Vector3.Zero; |
570 | } | 568 | } |
571 | 569 | ||
@@ -574,7 +572,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
574 | { | 572 | { |
575 | // Check object for stored attachment point | 573 | // Check object for stored attachment point |
576 | AttachmentPt = (uint)group.GetAttachmentPoint(); | 574 | AttachmentPt = (uint)group.GetAttachmentPoint(); |
577 | m_log.DebugFormat("[SCENE GRAPH]: AttachObject 2 got {0}", group.UUID); | ||
578 | } | 575 | } |
579 | 576 | ||
580 | // if we still didn't find a suitable attachment point....... | 577 | // if we still didn't find a suitable attachment point....... |
@@ -583,11 +580,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
583 | // Stick it on left hand with Zero Offset from the attachment point. | 580 | // Stick it on left hand with Zero Offset from the attachment point. |
584 | AttachmentPt = (uint)AttachmentPoint.LeftHand; | 581 | AttachmentPt = (uint)AttachmentPoint.LeftHand; |
585 | attachPos = Vector3.Zero; | 582 | attachPos = Vector3.Zero; |
586 | m_log.DebugFormat("[SCENE GRAPH]: AttachObject 3 got {0}", group.UUID); | ||
587 | 583 | ||
588 | } | 584 | } |
589 | 585 | ||
590 | m_log.DebugFormat("[SCENE GRAPH]: AttachObject 4 got {0}", group.UUID); | ||
591 | 586 | ||
592 | group.SetAttachmentPoint(Convert.ToByte(AttachmentPt)); | 587 | group.SetAttachmentPoint(Convert.ToByte(AttachmentPt)); |
593 | group.AbsolutePosition = attachPos; | 588 | group.AbsolutePosition = attachPos; |
@@ -597,12 +592,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
597 | 592 | ||
598 | if (group.GetFromItemID() == UUID.Zero) | 593 | if (group.GetFromItemID() == UUID.Zero) |
599 | { | 594 | { |
600 | m_log.DebugFormat("[SCENE GRAPH]: AttachObject 5 got {0}", group.UUID); | ||
601 | m_parentScene.attachObjectAssetStore(remoteClient, group, remoteClient.AgentId, out itemId); | 595 | m_parentScene.attachObjectAssetStore(remoteClient, group, remoteClient.AgentId, out itemId); |
602 | } | 596 | } |
603 | else | 597 | else |
604 | { | 598 | { |
605 | m_log.DebugFormat("[SCENE GRAPH]: AttachObject 6 got {0}", group.GetFromItemID()); | ||
606 | itemId = group.GetFromItemID(); | 599 | itemId = group.GetFromItemID(); |
607 | } | 600 | } |
608 | 601 | ||
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index b0bb005..3f5d0dc 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -3753,7 +3753,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
3753 | } | 3753 | } |
3754 | 3754 | ||
3755 | /// <summary> | 3755 | /// <summary> |
3756 | /// RezAttachments. This should only be called upon login on the first region | 3756 | /// RezAttachments. This should only be called upon login on the first region. |
3757 | /// Attachment rezzings on crossings and TPs are done in a different way. | ||
3757 | /// </summary> | 3758 | /// </summary> |
3758 | public void RezAttachments() | 3759 | public void RezAttachments() |
3759 | { | 3760 | { |
@@ -3784,45 +3785,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
3784 | m_log.InfoFormat("[ATTACHMENT]: Rezzed attachment in point {0} from item {1} and asset {2} ({3})", | 3785 | m_log.InfoFormat("[ATTACHMENT]: Rezzed attachment in point {0} from item {1} and asset {2} ({3})", |
3785 | p, itemID, assetID, asset); | 3786 | p, itemID, assetID, asset); |
3786 | 3787 | ||
3787 | //SceneObjectPart att = m_scene.GetSceneObjectPart(asset); | ||
3788 | //m_log.DebugFormat("[ATTCHMENT]: Got scene object parent {0} IsAtt {1}", | ||
3789 | // ((att.ParentGroup != null) ? "not null" : "null"), att.IsAttachment); | ||
3790 | //if (att.ParentGroup != null && !att.IsAttachment) | ||
3791 | //{ | ||
3792 | // att.FromItemID = itemID; | ||
3793 | // m_scene.AttachObject(ControllingClient, att.ParentGroup.LocalId, 0, Quaternion.Identity, att.ParentGroup.AbsolutePosition, false); | ||
3794 | //} | ||
3795 | |||
3796 | } | 3788 | } |
3797 | catch (Exception e) | 3789 | catch (Exception e) |
3798 | { | 3790 | { |
3799 | m_log.ErrorFormat("[ATTACHMENT] Unable to rez attachment: {0}", e.ToString()); | 3791 | m_log.ErrorFormat("[ATTACHMENT]: Unable to rez attachment: {0}", e.ToString()); |
3800 | } | 3792 | } |
3801 | 3793 | ||
3802 | } | 3794 | } |
3803 | 3795 | ||
3804 | //SceneObjectPart att = m_scene.GetSceneObjectPart(asset); | ||
3805 | |||
3806 | //// If this is null, then the asset has not yet appeared in world | ||
3807 | //// so we revisit this when it does | ||
3808 | //// | ||
3809 | //if (att != null && att.UUID != asset) // Yes. It's really needed | ||
3810 | //{ | ||
3811 | // m_log.DebugFormat("[ATTACHMENT]: Attach from in world: ItemID {0}, Asset ID {1}, Attachment inworld: {2}", itemID.ToString(), asset.ToString(), att.UUID.ToString()); | ||
3812 | |||
3813 | // // This will throw if crossing katty-korner | ||
3814 | // // So catch it here to avoid the noid | ||
3815 | // // | ||
3816 | // try | ||
3817 | // { | ||
3818 | // // Attach from world, if not already attached | ||
3819 | // if (att.ParentGroup != null && !att.IsAttachment) | ||
3820 | // m_scene.AttachObject(ControllingClient, att.ParentGroup.LocalId, 0, Quaternion.Identity, att.ParentGroup.AbsolutePosition, false); | ||
3821 | // } | ||
3822 | // catch (NullReferenceException) | ||
3823 | // { | ||
3824 | // } | ||
3825 | //} | ||
3826 | } | 3796 | } |
3827 | } | 3797 | } |
3828 | } | 3798 | } |