diff options
author | UbitUmarov | 2016-08-05 15:19:42 +0100 |
---|---|---|
committer | UbitUmarov | 2016-08-05 15:19:42 +0100 |
commit | 23578635df0c98f883f7be9b6e08a4fc1a7c834c (patch) | |
tree | 4d35657b01a00ce867c526157a3df592de4b7098 /OpenSim | |
parent | also use group provided by viewer on ObjectDuplicateOnRay (diff) | |
download | opensim-SC_OLD-23578635df0c98f883f7be9b6e08a4fc1a7c834c.zip opensim-SC_OLD-23578635df0c98f883f7be9b6e08a4fc1a7c834c.tar.gz opensim-SC_OLD-23578635df0c98f883f7be9b6e08a4fc1a7c834c.tar.bz2 opensim-SC_OLD-23578635df0c98f883f7be9b6e08a4fc1a7c834c.tar.xz |
more changes relative to incorrect use of activegroupid
Diffstat (limited to 'OpenSim')
10 files changed, 95 insertions, 48 deletions
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index 9bf51f8..018f194 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs | |||
@@ -47,9 +47,10 @@ namespace OpenSim.Framework | |||
47 | 47 | ||
48 | public delegate void ImprovedInstantMessage(IClientAPI remoteclient, GridInstantMessage im); | 48 | public delegate void ImprovedInstantMessage(IClientAPI remoteclient, GridInstantMessage im); |
49 | 49 | ||
50 | public delegate void RezObject(IClientAPI remoteClient, UUID itemID, Vector3 RayEnd, Vector3 RayStart, | 50 | public delegate void RezObject(IClientAPI remoteClient, UUID itemID, UUID GroupID, |
51 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | 51 | Vector3 RayEnd, Vector3 RayStart, |
52 | bool RezSelected, bool RemoveItem, UUID fromTaskID); | 52 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, |
53 | bool RezSelected, bool RemoveItem, UUID fromTaskID); | ||
53 | 54 | ||
54 | public delegate void RezRestoreToWorld(IClientAPI remoteClient, UUID itemId); | 55 | public delegate void RezRestoreToWorld(IClientAPI remoteClient, UUID itemId); |
55 | public delegate ISceneEntity RezSingleAttachmentFromInv(IClientAPI remoteClient, UUID itemID, uint AttachmentPt); | 56 | public delegate ISceneEntity RezSingleAttachmentFromInv(IClientAPI remoteClient, UUID itemID, uint AttachmentPt); |
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 088cd4c..e3b2fd1 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -5805,9 +5805,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5805 | 5805 | ||
5806 | public ulong GetGroupPowers(UUID groupID) | 5806 | public ulong GetGroupPowers(UUID groupID) |
5807 | { | 5807 | { |
5808 | if (groupID == ActiveGroupId) | ||
5809 | return ActiveGroupPowers; | ||
5810 | |||
5811 | lock(m_groupPowers) | 5808 | lock(m_groupPowers) |
5812 | { | 5809 | { |
5813 | if (m_groupPowers.ContainsKey(groupID)) | 5810 | if (m_groupPowers.ContainsKey(groupID)) |
@@ -6729,11 +6726,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6729 | RezObject handlerRezObject = OnRezObject; | 6726 | RezObject handlerRezObject = OnRezObject; |
6730 | if (handlerRezObject != null) | 6727 | if (handlerRezObject != null) |
6731 | { | 6728 | { |
6732 | handlerRezObject(this, rezPacket.InventoryData.ItemID, rezPacket.RezData.RayEnd, | 6729 | UUID rezGroupID = rezPacket.AgentData.GroupID; |
6733 | rezPacket.RezData.RayStart, rezPacket.RezData.RayTargetID, | 6730 | if(!IsGroupMember(rezGroupID)) |
6734 | rezPacket.RezData.BypassRaycast, rezPacket.RezData.RayEndIsIntersection, | 6731 | rezGroupID = UUID.Zero; |
6735 | rezPacket.RezData.RezSelected, rezPacket.RezData.RemoveItem, | 6732 | handlerRezObject(this, rezPacket.InventoryData.ItemID, rezGroupID, rezPacket.RezData.RayEnd, |
6736 | rezPacket.RezData.FromTaskID); | 6733 | rezPacket.RezData.RayStart, rezPacket.RezData.RayTargetID, |
6734 | rezPacket.RezData.BypassRaycast, rezPacket.RezData.RayEndIsIntersection, | ||
6735 | rezPacket.RezData.RezSelected, rezPacket.RezData.RemoveItem, | ||
6736 | rezPacket.RezData.FromTaskID); | ||
6737 | } | 6737 | } |
6738 | return true; | 6738 | return true; |
6739 | } | 6739 | } |
@@ -7644,9 +7644,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
7644 | handlerObjectDuplicate = OnObjectDuplicate; | 7644 | handlerObjectDuplicate = OnObjectDuplicate; |
7645 | if (handlerObjectDuplicate != null) | 7645 | if (handlerObjectDuplicate != null) |
7646 | { | 7646 | { |
7647 | UUID rezGroupID = dupe.AgentData.GroupID; | ||
7648 | if(!IsGroupMember(rezGroupID)) | ||
7649 | rezGroupID = UUID.Zero; | ||
7647 | handlerObjectDuplicate(dupe.ObjectData[i].ObjectLocalID, dupe.SharedData.Offset, | 7650 | handlerObjectDuplicate(dupe.ObjectData[i].ObjectLocalID, dupe.SharedData.Offset, |
7648 | dupe.SharedData.DuplicateFlags, AgentId, | 7651 | dupe.SharedData.DuplicateFlags, AgentId, |
7649 | dupe.AgentData.GroupID); | 7652 | rezGroupID); |
7650 | } | 7653 | } |
7651 | } | 7654 | } |
7652 | 7655 | ||
@@ -8266,10 +8269,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
8266 | handlerObjectDuplicateOnRay = OnObjectDuplicateOnRay; | 8269 | handlerObjectDuplicateOnRay = OnObjectDuplicateOnRay; |
8267 | if (handlerObjectDuplicateOnRay != null) | 8270 | if (handlerObjectDuplicateOnRay != null) |
8268 | { | 8271 | { |
8269 | handlerObjectDuplicateOnRay(dupeOnRay.ObjectData[i].ObjectLocalID, dupeOnRay.AgentData.DuplicateFlags, | 8272 | |
8270 | AgentId, dupeOnRay.AgentData.GroupID, dupeOnRay.AgentData.RayTargetID, dupeOnRay.AgentData.RayEnd, | 8273 | UUID rezGroupID = dupeOnRay.AgentData.GroupID; |
8271 | dupeOnRay.AgentData.RayStart, dupeOnRay.AgentData.BypassRaycast, dupeOnRay.AgentData.RayEndIsIntersection, | 8274 | if(!IsGroupMember(rezGroupID)) |
8272 | dupeOnRay.AgentData.CopyCenters, dupeOnRay.AgentData.CopyRotates); | 8275 | rezGroupID = UUID.Zero; |
8276 | |||
8277 | handlerObjectDuplicateOnRay(dupeOnRay.ObjectData[i].ObjectLocalID, | ||
8278 | dupeOnRay.AgentData.DuplicateFlags, AgentId, rezGroupID, | ||
8279 | dupeOnRay.AgentData.RayTargetID, dupeOnRay.AgentData.RayEnd, | ||
8280 | dupeOnRay.AgentData.RayStart, dupeOnRay.AgentData.BypassRaycast, | ||
8281 | dupeOnRay.AgentData.RayEndIsIntersection, | ||
8282 | dupeOnRay.AgentData.CopyCenters, dupeOnRay.AgentData.CopyRotates); | ||
8273 | } | 8283 | } |
8274 | } | 8284 | } |
8275 | 8285 | ||
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs index 4119f90..4d7c25b 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs | |||
@@ -306,9 +306,21 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
306 | /// | 306 | /// |
307 | /// RezObject | 307 | /// RezObject |
308 | /// | 308 | /// |
309 | public override SceneObjectGroup RezObject(IClientAPI remoteClient, UUID itemID, Vector3 RayEnd, Vector3 RayStart, | 309 | // compatibility do not use |
310 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | 310 | public override SceneObjectGroup RezObject( |
311 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment) | 311 | IClientAPI remoteClient, UUID itemID, Vector3 RayEnd, Vector3 RayStart, |
312 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | ||
313 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment) | ||
314 | { | ||
315 | return RezObject(remoteClient, itemID, UUID.Zero, RayEnd, RayStart, | ||
316 | RayTargetID, BypassRayCast, RayEndIsIntersection, | ||
317 | RezSelected, RemoveItem, fromTaskID, attachment); | ||
318 | } | ||
319 | |||
320 | public override SceneObjectGroup RezObject(IClientAPI remoteClient, UUID itemID, | ||
321 | UUID groupID, Vector3 RayEnd, Vector3 RayStart, | ||
322 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | ||
323 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment) | ||
312 | { | 324 | { |
313 | m_log.DebugFormat("[HGScene]: RezObject itemID={0} fromTaskID={1}", itemID, fromTaskID); | 325 | m_log.DebugFormat("[HGScene]: RezObject itemID={0} fromTaskID={1}", itemID, fromTaskID); |
314 | 326 | ||
@@ -331,7 +343,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
331 | //} | 343 | //} |
332 | 344 | ||
333 | // OK, we're done fetching. Pass it up to the default RezObject | 345 | // OK, we're done fetching. Pass it up to the default RezObject |
334 | SceneObjectGroup sog = base.RezObject(remoteClient, itemID, RayEnd, RayStart, RayTargetID, BypassRayCast, RayEndIsIntersection, | 346 | SceneObjectGroup sog = base.RezObject(remoteClient, itemID, groupID, RayEnd, RayStart, RayTargetID, BypassRayCast, RayEndIsIntersection, |
335 | RezSelected, RemoveItem, fromTaskID, attachment); | 347 | RezSelected, RemoveItem, fromTaskID, attachment); |
336 | 348 | ||
337 | return sog; | 349 | return sog; |
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index 8c560e5..00e2670 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -818,12 +818,22 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
818 | 818 | ||
819 | return item; | 819 | return item; |
820 | } | 820 | } |
821 | 821 | // compatibility do not use | |
822 | public virtual SceneObjectGroup RezObject( | 822 | public virtual SceneObjectGroup RezObject( |
823 | IClientAPI remoteClient, UUID itemID, Vector3 RayEnd, Vector3 RayStart, | 823 | IClientAPI remoteClient, UUID itemID, Vector3 RayEnd, Vector3 RayStart, |
824 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | 824 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, |
825 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment) | 825 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment) |
826 | { | 826 | { |
827 | return RezObject(remoteClient, itemID, UUID.Zero, RayEnd, RayStart, | ||
828 | RayTargetID, BypassRayCast, RayEndIsIntersection, | ||
829 | RezSelected, RemoveItem, fromTaskID, attachment); | ||
830 | } | ||
831 | |||
832 | public virtual SceneObjectGroup RezObject( | ||
833 | IClientAPI remoteClient, UUID itemID, UUID rezGroupID, Vector3 RayEnd, Vector3 RayStart, | ||
834 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | ||
835 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment) | ||
836 | { | ||
827 | // m_log.DebugFormat("[INVENTORY ACCESS MODULE]: RezObject for {0}, item {1}", remoteClient.Name, itemID); | 837 | // m_log.DebugFormat("[INVENTORY ACCESS MODULE]: RezObject for {0}, item {1}", remoteClient.Name, itemID); |
828 | InventoryItemBase item = m_Scene.InventoryService.GetItem(remoteClient.AgentId, itemID); | 838 | InventoryItemBase item = m_Scene.InventoryService.GetItem(remoteClient.AgentId, itemID); |
829 | 839 | ||
@@ -835,16 +845,28 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
835 | item.Owner = remoteClient.AgentId; | 845 | item.Owner = remoteClient.AgentId; |
836 | 846 | ||
837 | return RezObject( | 847 | return RezObject( |
838 | remoteClient, item, item.AssetID, | 848 | remoteClient, item, rezGroupID, item.AssetID, |
839 | RayEnd, RayStart, RayTargetID, BypassRayCast, RayEndIsIntersection, | 849 | RayEnd, RayStart, RayTargetID, BypassRayCast, RayEndIsIntersection, |
840 | RezSelected, RemoveItem, fromTaskID, attachment); | 850 | RezSelected, RemoveItem, fromTaskID, attachment); |
841 | } | 851 | } |
842 | 852 | // compatility | |
843 | public virtual SceneObjectGroup RezObject( | 853 | public virtual SceneObjectGroup RezObject( |
844 | IClientAPI remoteClient, InventoryItemBase item, UUID assetID, Vector3 RayEnd, Vector3 RayStart, | 854 | IClientAPI remoteClient, InventoryItemBase item, UUID assetID, Vector3 RayEnd, Vector3 RayStart, |
845 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | 855 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, |
846 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment) | 856 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment) |
847 | { | 857 | { |
858 | return RezObject(remoteClient, item, UUID.Zero, assetID, | ||
859 | RayEnd, RayStart, RayTargetID, | ||
860 | BypassRayCast, RayEndIsIntersection, | ||
861 | RezSelected, RemoveItem, fromTaskID, attachment); | ||
862 | } | ||
863 | |||
864 | public virtual SceneObjectGroup RezObject( | ||
865 | IClientAPI remoteClient, InventoryItemBase item, UUID groupID, UUID assetID, | ||
866 | Vector3 RayEnd, Vector3 RayStart, UUID RayTargetID, | ||
867 | byte BypassRayCast, bool RayEndIsIntersection, | ||
868 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment) | ||
869 | { | ||
848 | AssetBase rezAsset = m_Scene.AssetService.Get(assetID.ToString()); | 870 | AssetBase rezAsset = m_Scene.AssetService.Get(assetID.ToString()); |
849 | 871 | ||
850 | if (rezAsset == null) | 872 | if (rezAsset == null) |
@@ -986,6 +1008,8 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
986 | group.IsAttachment = true; | 1008 | group.IsAttachment = true; |
987 | } | 1009 | } |
988 | 1010 | ||
1011 | group.SetGroup(groupID, remoteClient); | ||
1012 | |||
989 | // If we're rezzing an attachment then don't ask | 1013 | // If we're rezzing an attachment then don't ask |
990 | // AddNewSceneObject() to update the client since | 1014 | // AddNewSceneObject() to update the client since |
991 | // we'll be doing that later on. Scheduling more than | 1015 | // we'll be doing that later on. Scheduling more than |
@@ -995,12 +1019,9 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
995 | m_Scene.AddNewSceneObject(group, true, false); | 1019 | m_Scene.AddNewSceneObject(group, true, false); |
996 | 1020 | ||
997 | if (!attachment) | 1021 | if (!attachment) |
1022 | { | ||
998 | group.AbsolutePosition = pos + veclist[i]; | 1023 | group.AbsolutePosition = pos + veclist[i]; |
999 | 1024 | ||
1000 | group.SetGroup(remoteClient.ActiveGroupId, remoteClient); | ||
1001 | |||
1002 | if (!attachment) | ||
1003 | { | ||
1004 | // Fire on_rez | 1025 | // Fire on_rez |
1005 | group.CreateScriptInstances(0, true, m_Scene.DefaultScriptEngine, 1); | 1026 | group.CreateScriptInstances(0, true, m_Scene.DefaultScriptEngine, 1); |
1006 | rootPart.ParentGroup.ResumeScripts(); | 1027 | rootPart.ParentGroup.ResumeScripts(); |
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/Tests/InventoryAccessModuleTests.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/Tests/InventoryAccessModuleTests.cs index 172b864..b31d4df 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/Tests/InventoryAccessModuleTests.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/Tests/InventoryAccessModuleTests.cs | |||
@@ -166,7 +166,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess.Tests | |||
166 | 166 | ||
167 | SceneObjectGroup so | 167 | SceneObjectGroup so |
168 | = m_iam.RezObject( | 168 | = m_iam.RezObject( |
169 | m_tc, item1Id, Vector3.Zero, Vector3.Zero, UUID.Zero, 1, false, false, false, UUID.Zero, false); | 169 | m_tc, item1Id, UUID.Zero, Vector3.Zero, Vector3.Zero, UUID.Zero, 1, false, false, false, UUID.Zero, false); |
170 | 170 | ||
171 | Assert.That(so, Is.Not.Null); | 171 | Assert.That(so, Is.Not.Null); |
172 | 172 | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IInventoryAccessModule.cs b/OpenSim/Region/Framework/Interfaces/IInventoryAccessModule.cs index 6bad018..292b0d6 100644 --- a/OpenSim/Region/Framework/Interfaces/IInventoryAccessModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IInventoryAccessModule.cs | |||
@@ -70,6 +70,7 @@ namespace OpenSim.Region.Framework.Interfaces | |||
70 | /// </remarks> | 70 | /// </remarks> |
71 | /// <param name="remoteClient"></param> | 71 | /// <param name="remoteClient"></param> |
72 | /// <param name="itemID"></param> | 72 | /// <param name="itemID"></param> |
73 | /// <param name="rezGroupID"></param> | ||
73 | /// <param name="RayEnd"></param> | 74 | /// <param name="RayEnd"></param> |
74 | /// <param name="RayStart"></param> | 75 | /// <param name="RayStart"></param> |
75 | /// <param name="RayTargetID"></param> | 76 | /// <param name="RayTargetID"></param> |
@@ -81,6 +82,11 @@ namespace OpenSim.Region.Framework.Interfaces | |||
81 | /// <param name="attachment"></param> | 82 | /// <param name="attachment"></param> |
82 | /// <returns>The SceneObjectGroup rezzed or null if rez was unsuccessful.</returns> | 83 | /// <returns>The SceneObjectGroup rezzed or null if rez was unsuccessful.</returns> |
83 | SceneObjectGroup RezObject( | 84 | SceneObjectGroup RezObject( |
85 | IClientAPI remoteClient, UUID itemID, UUID rezGroupID, Vector3 RayEnd, Vector3 RayStart, | ||
86 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | ||
87 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment); | ||
88 | // compatibily do not use | ||
89 | SceneObjectGroup RezObject( | ||
84 | IClientAPI remoteClient, UUID itemID, Vector3 RayEnd, Vector3 RayStart, | 90 | IClientAPI remoteClient, UUID itemID, Vector3 RayEnd, Vector3 RayStart, |
85 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | 91 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, |
86 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment); | 92 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment); |
@@ -97,6 +103,7 @@ namespace OpenSim.Region.Framework.Interfaces | |||
97 | /// The item from which the object asset came. Can be null, in which case pre and post rez item adjustment and checks are not performed. | 103 | /// The item from which the object asset came. Can be null, in which case pre and post rez item adjustment and checks are not performed. |
98 | /// </param> | 104 | /// </param> |
99 | /// <param name="assetID">The asset id for the object to rez.</param> | 105 | /// <param name="assetID">The asset id for the object to rez.</param> |
106 | /// <param name="rezObjectID">The requested group id for the object to rez.</param> | ||
100 | /// <param name="RayEnd"></param> | 107 | /// <param name="RayEnd"></param> |
101 | /// <param name="RayStart"></param> | 108 | /// <param name="RayStart"></param> |
102 | /// <param name="RayTargetID"></param> | 109 | /// <param name="RayTargetID"></param> |
@@ -107,8 +114,16 @@ namespace OpenSim.Region.Framework.Interfaces | |||
107 | /// <param name="fromTaskID"></param> | 114 | /// <param name="fromTaskID"></param> |
108 | /// <param name="attachment"></param> | 115 | /// <param name="attachment"></param> |
109 | /// <returns>The SceneObjectGroup rezzed or null if rez was unsuccessful.</returns> | 116 | /// <returns>The SceneObjectGroup rezzed or null if rez was unsuccessful.</returns> |
117 | |||
118 | SceneObjectGroup RezObject(IClientAPI remoteClient, InventoryItemBase item, UUID rezGroupID, | ||
119 | UUID assetID, Vector3 RayEnd, Vector3 RayStart, | ||
120 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | ||
121 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment); | ||
122 | |||
123 | // compatibility do not use | ||
110 | SceneObjectGroup RezObject( | 124 | SceneObjectGroup RezObject( |
111 | IClientAPI remoteClient, InventoryItemBase item, UUID assetID, Vector3 RayEnd, Vector3 RayStart, | 125 | IClientAPI remoteClient, InventoryItemBase item, |
126 | UUID assetID, Vector3 RayEnd, Vector3 RayStart, | ||
112 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | 127 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, |
113 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment); | 128 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment); |
114 | 129 | ||
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index f2df364..7152015 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -2454,6 +2454,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2454 | /// </summary> | 2454 | /// </summary> |
2455 | /// <param name="remoteClient"></param> | 2455 | /// <param name="remoteClient"></param> |
2456 | /// <param name="itemID"></param> | 2456 | /// <param name="itemID"></param> |
2457 | /// <param name="groupID"></param> | ||
2457 | /// <param name="RayEnd"></param> | 2458 | /// <param name="RayEnd"></param> |
2458 | /// <param name="RayStart"></param> | 2459 | /// <param name="RayStart"></param> |
2459 | /// <param name="RayTargetID"></param> | 2460 | /// <param name="RayTargetID"></param> |
@@ -2464,7 +2465,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
2464 | /// <param name="RezSelected"></param> | 2465 | /// <param name="RezSelected"></param> |
2465 | /// <param name="RemoveItem"></param> | 2466 | /// <param name="RemoveItem"></param> |
2466 | /// <param name="fromTaskID"></param> | 2467 | /// <param name="fromTaskID"></param> |
2467 | public virtual void RezObject(IClientAPI remoteClient, UUID itemID, Vector3 RayEnd, Vector3 RayStart, | 2468 | public virtual void RezObject(IClientAPI remoteClient, UUID itemID, UUID groupID, |
2469 | Vector3 RayEnd, Vector3 RayStart, | ||
2468 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | 2470 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, |
2469 | bool RezSelected, bool RemoveItem, UUID fromTaskID) | 2471 | bool RezSelected, bool RemoveItem, UUID fromTaskID) |
2470 | { | 2472 | { |
@@ -2504,8 +2506,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2504 | 2506 | ||
2505 | byte bRayEndIsIntersection = (byte)(RayEndIsIntersection ? 1 : 0); | 2507 | byte bRayEndIsIntersection = (byte)(RayEndIsIntersection ? 1 : 0); |
2506 | Vector3 scale = new Vector3(0.5f, 0.5f, 0.5f); | 2508 | Vector3 scale = new Vector3(0.5f, 0.5f, 0.5f); |
2507 | Vector3 pos | 2509 | Vector3 pos = GetNewRezLocation( |
2508 | = GetNewRezLocation( | ||
2509 | RayStart, RayEnd, RayTargetID, Quaternion.Identity, | 2510 | RayStart, RayEnd, RayTargetID, Quaternion.Identity, |
2510 | BypassRayCast, bRayEndIsIntersection, true, scale, false); | 2511 | BypassRayCast, bRayEndIsIntersection, true, scale, false); |
2511 | 2512 | ||
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 00e699e..33418e6 100755 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -3115,14 +3115,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
3115 | || (aCircuit.teleportFlags & (uint)Constants.TeleportFlags.ViaLogin) != 0; | 3115 | || (aCircuit.teleportFlags & (uint)Constants.TeleportFlags.ViaLogin) != 0; |
3116 | 3116 | ||
3117 | CheckHeartbeat(); | 3117 | CheckHeartbeat(); |
3118 | |||
3119 | 3118 | ||
3120 | sp = GetScenePresence(client.AgentId); | 3119 | sp = GetScenePresence(client.AgentId); |
3121 | 3120 | ||
3122 | // XXX: Not sure how good it is to add a new client if a scene presence already exists. Possibly this | ||
3123 | // could occur if a viewer crashes and relogs before the old client is kicked out. But this could cause | ||
3124 | // other problems, and possibly the code calling AddNewAgent() should ensure that no client is already | ||
3125 | // connected. | ||
3126 | if (sp == null) | 3121 | if (sp == null) |
3127 | { | 3122 | { |
3128 | m_log.DebugFormat( | 3123 | m_log.DebugFormat( |
@@ -3137,15 +3132,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
3137 | 3132 | ||
3138 | sp.TeleportFlags = (TPFlags)aCircuit.teleportFlags; | 3133 | sp.TeleportFlags = (TPFlags)aCircuit.teleportFlags; |
3139 | 3134 | ||
3140 | /* done in completMovement | ||
3141 | InventoryFolderBase cof = InventoryService.GetFolderForType(client.AgentId, (AssetType)46); | ||
3142 | if (cof == null) | ||
3143 | sp.COF = UUID.Zero; | ||
3144 | else | ||
3145 | sp.COF = cof.ID; | ||
3146 | |||
3147 | m_log.DebugFormat("[SCENE]: COF for {0} is {1}", client.AgentId, sp.COF); | ||
3148 | */ | ||
3149 | m_eventManager.TriggerOnNewPresence(sp); | 3135 | m_eventManager.TriggerOnNewPresence(sp); |
3150 | } | 3136 | } |
3151 | else | 3137 | else |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/UserInventoryTests.cs b/OpenSim/Region/Framework/Scenes/Tests/UserInventoryTests.cs index 75b073d..142ad84 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/UserInventoryTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/UserInventoryTests.cs | |||
@@ -171,7 +171,7 @@ namespace OpenSim.Region.Framework.Tests | |||
171 | //Assert.That((retrievedItem1.CurrentPermissions & (uint)OpenMetaverse.PermissionMask.All) == (uint)OpenMetaverse.PermissionMask.All); | 171 | //Assert.That((retrievedItem1.CurrentPermissions & (uint)OpenMetaverse.PermissionMask.All) == (uint)OpenMetaverse.PermissionMask.All); |
172 | 172 | ||
173 | // Rez the object | 173 | // Rez the object |
174 | scene.RezObject(sp2.ControllingClient, retrievedItem1.ID, Vector3.Zero, Vector3.Zero, UUID.Zero, 0, false, false, false, UUID.Zero); | 174 | scene.RezObject(sp2.ControllingClient, retrievedItem1.ID, UUID.Zero, Vector3.Zero, Vector3.Zero, UUID.Zero, 0, false, false, false, UUID.Zero); |
175 | SceneObjectGroup sog = scene.GetSceneObjectGroup("SomeObject"); | 175 | SceneObjectGroup sog = scene.GetSceneObjectGroup("SomeObject"); |
176 | Assert.That(sog, Is.Not.Null); | 176 | Assert.That(sog, Is.Not.Null); |
177 | 177 | ||
diff --git a/OpenSim/Region/OptionalModules/DataSnapshot/ObjectSnapshot.cs b/OpenSim/Region/OptionalModules/DataSnapshot/ObjectSnapshot.cs index 0bb4044..caca303 100644 --- a/OpenSim/Region/OptionalModules/DataSnapshot/ObjectSnapshot.cs +++ b/OpenSim/Region/OptionalModules/DataSnapshot/ObjectSnapshot.cs | |||
@@ -83,7 +83,8 @@ namespace OpenSim.Region.DataSnapshot.Providers | |||
83 | { this.Stale = true; }; | 83 | { this.Stale = true; }; |
84 | client.OnObjectPermissions += delegate(IClientAPI controller, UUID agentID, UUID sessionID, | 84 | client.OnObjectPermissions += delegate(IClientAPI controller, UUID agentID, UUID sessionID, |
85 | byte field, uint localId, uint mask, byte set) { this.Stale = true; }; | 85 | byte field, uint localId, uint mask, byte set) { this.Stale = true; }; |
86 | client.OnRezObject += delegate(IClientAPI remoteClient, UUID itemID, Vector3 RayEnd, | 86 | client.OnRezObject += delegate(IClientAPI remoteClient, UUID itemID, UUID groupID, |
87 | Vector3 RayEnd, | ||
87 | Vector3 RayStart, UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | 88 | Vector3 RayStart, UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, |
88 | bool RezSelected, | 89 | bool RezSelected, |
89 | bool RemoveItem, UUID fromTaskID) { this.Stale = true; }; | 90 | bool RemoveItem, UUID fromTaskID) { this.Stale = true; }; |