diff options
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index b1de341..49a708b 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -953,6 +953,8 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
953 | } | 953 | } |
954 | } | 954 | } |
955 | 955 | ||
956 | group.ResetIDs(); | ||
957 | |||
956 | if (!attachment) | 958 | if (!attachment) |
957 | { | 959 | { |
958 | // If it's rezzed in world, select it. Much easier to | 960 | // If it's rezzed in world, select it. Much easier to |
@@ -966,12 +968,8 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
966 | if (rootPart.Shape.PCode == (byte)PCode.Prim) | 968 | if (rootPart.Shape.PCode == (byte)PCode.Prim) |
967 | group.ClearPartAttachmentData(); | 969 | group.ClearPartAttachmentData(); |
968 | } | 970 | } |
969 | 971 | else | |
970 | group.ResetIDs(); | ||
971 | |||
972 | if (attachment) | ||
973 | { | 972 | { |
974 | // group.RootPart.Flags |= PrimFlags.Phantom; | ||
975 | group.IsAttachment = true; | 973 | group.IsAttachment = true; |
976 | } | 974 | } |
977 | 975 | ||
@@ -983,14 +981,8 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
983 | // attachment properly. | 981 | // attachment properly. |
984 | m_Scene.AddNewSceneObject(group, true, false); | 982 | m_Scene.AddNewSceneObject(group, true, false); |
985 | 983 | ||
986 | // if attachment we set it's asset id so object updates | ||
987 | // can reflect that, if not, we set it's position in world. | ||
988 | if (!attachment) | 984 | if (!attachment) |
989 | { | ||
990 | group.ScheduleGroupForFullUpdate(); | ||
991 | |||
992 | group.AbsolutePosition = pos + veclist[i]; | 985 | group.AbsolutePosition = pos + veclist[i]; |
993 | } | ||
994 | 986 | ||
995 | group.SetGroup(remoteClient.ActiveGroupId, remoteClient); | 987 | group.SetGroup(remoteClient.ActiveGroupId, remoteClient); |
996 | 988 | ||
@@ -1000,7 +992,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
1000 | group.CreateScriptInstances(0, true, m_Scene.DefaultScriptEngine, 1); | 992 | group.CreateScriptInstances(0, true, m_Scene.DefaultScriptEngine, 1); |
1001 | rootPart.ParentGroup.ResumeScripts(); | 993 | rootPart.ParentGroup.ResumeScripts(); |
1002 | 994 | ||
1003 | rootPart.ScheduleFullUpdate(); | 995 | group.ScheduleGroupForFullUpdate(); |
1004 | } | 996 | } |
1005 | 997 | ||
1006 | // m_log.DebugFormat( | 998 | // m_log.DebugFormat( |
@@ -1010,7 +1002,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
1010 | // remoteClient.Name); | 1002 | // remoteClient.Name); |
1011 | } | 1003 | } |
1012 | 1004 | ||
1013 | group.SetGroup(remoteClient.ActiveGroupId, remoteClient); | 1005 | // group.SetGroup(remoteClient.ActiveGroupId, remoteClient); |
1014 | 1006 | ||
1015 | if (item != null) | 1007 | if (item != null) |
1016 | DoPostRezWhenFromItem(item, attachment); | 1008 | DoPostRezWhenFromItem(item, attachment); |