aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
diff options
context:
space:
mode:
authorUbitUmarov2014-07-16 16:22:32 +0100
committerUbitUmarov2014-07-16 16:22:32 +0100
commit19d33c571d8f48501ecb2409814d5b95b2b4be23 (patch)
tree8e08805a71ebea81de75b5805105f325e0defa0f /OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
parentMerge branch 'avination-current' into ubitwork (diff)
parentMerge branch 'avination-current' of ssh://3dhosting.de/var/git/careminster in... (diff)
downloadopensim-SC-19d33c571d8f48501ecb2409814d5b95b2b4be23.zip
opensim-SC-19d33c571d8f48501ecb2409814d5b95b2b4be23.tar.gz
opensim-SC-19d33c571d8f48501ecb2409814d5b95b2b4be23.tar.bz2
opensim-SC-19d33c571d8f48501ecb2409814d5b95b2b4be23.tar.xz
Merge branch 'avination-current' into ubitwork
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs40
1 files changed, 24 insertions, 16 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 0ea4e09..86f60bb 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -591,6 +591,7 @@ namespace OpenSim.Region.Framework.Scenes
591 avinfo.ParentID = av.ParentID; 591 avinfo.ParentID = av.ParentID;
592 avsToCross.Add(avinfo); 592 avsToCross.Add(avinfo);
593 593
594 av.PrevSitOffset = av.OffsetPosition;
594 av.ParentID = 0; 595 av.ParentID = 0;
595 } 596 }
596 597
@@ -1072,6 +1073,11 @@ namespace OpenSim.Region.Framework.Scenes
1072 for (int i = 0; i < parts.Length; i++) 1073 for (int i = 0; i < parts.Length; i++)
1073 { 1074 {
1074 SceneObjectPart part = parts[i]; 1075 SceneObjectPart part = parts[i];
1076 if (part.KeyframeMotion != null)
1077 {
1078 part.KeyframeMotion.UpdateSceneObject(this);
1079 }
1080
1075 if (Object.ReferenceEquals(part, m_rootPart)) 1081 if (Object.ReferenceEquals(part, m_rootPart))
1076 continue; 1082 continue;
1077 1083
@@ -1880,25 +1886,27 @@ namespace OpenSim.Region.Framework.Scenes
1880 { 1886 {
1881 SceneObjectPart part = parts[i]; 1887 SceneObjectPart part = parts[i];
1882 1888
1883 Scene.ForEachRootScenePresence(delegate(ScenePresence avatar) 1889 if (Scene != null)
1884 { 1890 {
1885 if (avatar.ParentID == LocalId) 1891 Scene.ForEachRootScenePresence(delegate(ScenePresence avatar)
1886 avatar.StandUp();
1887
1888 if (!silent)
1889 { 1892 {
1890 part.ClearUpdateSchedule(); 1893 if (avatar.ParentID == LocalId)
1891 if (part == m_rootPart) 1894 avatar.StandUp();
1895
1896 if (!silent)
1892 { 1897 {
1893 if (!IsAttachment 1898 part.ClearUpdateSchedule();
1894 || AttachedAvatar == avatar.ControllingClient.AgentId 1899 if (part == m_rootPart)
1895 || !HasPrivateAttachmentPoint) 1900 {
1896 avatar.ControllingClient.SendKillObject(m_regionHandle, new List<uint> { part.LocalId }); 1901 if (!IsAttachment
1902 || AttachedAvatar == avatar.ControllingClient.AgentId
1903 || !HasPrivateAttachmentPoint)
1904 avatar.ControllingClient.SendKillObject(m_regionHandle, new List<uint> { part.LocalId });
1905 }
1897 } 1906 }
1898 } 1907 });
1899 }); 1908 }
1900 } 1909 }
1901
1902 } 1910 }
1903 1911
1904 public void AddScriptLPS(int count) 1912 public void AddScriptLPS(int count)
@@ -3483,8 +3491,8 @@ namespace OpenSim.Region.Framework.Scenes
3483 part.ClonePermissions(RootPart); 3491 part.ClonePermissions(RootPart);
3484 }); 3492 });
3485 3493
3486 uint lockMask = ~(uint)PermissionMask.Move; 3494 uint lockMask = ~(uint)(PermissionMask.Move | PermissionMask.Modify);
3487 uint lockBit = RootPart.OwnerMask & (uint)PermissionMask.Move; 3495 uint lockBit = RootPart.OwnerMask & (uint)(PermissionMask.Move | PermissionMask.Modify);
3488 RootPart.OwnerMask = (RootPart.OwnerMask & lockBit) | ((newOwnerMask | foldedPerms) & lockMask); 3496 RootPart.OwnerMask = (RootPart.OwnerMask & lockBit) | ((newOwnerMask | foldedPerms) & lockMask);
3489 RootPart.ScheduleFullUpdate(); 3497 RootPart.ScheduleFullUpdate();
3490 } 3498 }