aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs29
1 files changed, 16 insertions, 13 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index d556fd1..efc1413 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -346,9 +346,6 @@ namespace OpenSim.Region.Framework.Scenes
346 get { return RootPart.VolumeDetectActive; } 346 get { return RootPart.VolumeDetectActive; }
347 } 347 }
348 348
349 private Vector3 lastPhysGroupPos;
350 private Quaternion lastPhysGroupRot;
351
352 /// <summary> 349 /// <summary>
353 /// Is this entity set to be saved in persistent storage? 350 /// Is this entity set to be saved in persistent storage?
354 /// </summary> 351 /// </summary>
@@ -702,10 +699,23 @@ namespace OpenSim.Region.Framework.Scenes
702 699
703 foreach (ScenePresence av in sog.m_sittingAvatars) 700 foreach (ScenePresence av in sog.m_sittingAvatars)
704 { 701 {
702 byte cflags = 1;
703
705 avtocrossInfo avinfo = new avtocrossInfo(); 704 avtocrossInfo avinfo = new avtocrossInfo();
706 SceneObjectPart parentPart = sogScene.GetSceneObjectPart(av.ParentID); 705 SceneObjectPart parentPart = sogScene.GetSceneObjectPart(av.ParentID);
707 if (parentPart != null) 706 if (parentPart != null)
707 {
708 av.ParentUUID = parentPart.UUID; 708 av.ParentUUID = parentPart.UUID;
709 if(parentPart.SitTargetAvatar == av.UUID)
710 cflags = 7; // low 3 bits set
711 else
712 cflags = 3;
713 }
714
715 // 1 is crossing
716 // 2 is sitting
717 // 4 is sitting at sittarget
718 av.crossingFlags = cflags;
709 719
710 avinfo.av = av; 720 avinfo.av = av;
711 avinfo.ParentID = av.ParentID; 721 avinfo.ParentID = av.ParentID;
@@ -750,7 +760,7 @@ namespace OpenSim.Region.Framework.Scenes
750 av.ParentUUID = UUID.Zero; 760 av.ParentUUID = UUID.Zero;
751 // In any case 761 // In any case
752 av.IsInTransit = false; 762 av.IsInTransit = false;
753 763 av.crossingFlags = 0;
754 m_log.DebugFormat("[SCENE OBJECT]: Crossing agent {0} {1} completed.", av.Firstname, av.Lastname); 764 m_log.DebugFormat("[SCENE OBJECT]: Crossing agent {0} {1} completed.", av.Firstname, av.Lastname);
755 } 765 }
756 else 766 else
@@ -768,6 +778,7 @@ namespace OpenSim.Region.Framework.Scenes
768 ScenePresence av = avinfo.av; 778 ScenePresence av = avinfo.av;
769 av.ParentUUID = UUID.Zero; 779 av.ParentUUID = UUID.Zero;
770 av.ParentID = avinfo.ParentID; 780 av.ParentID = avinfo.ParentID;
781 av.crossingFlags = 0;
771 } 782 }
772 } 783 }
773 avsToCross.Clear(); 784 avsToCross.Clear();
@@ -1228,13 +1239,6 @@ namespace OpenSim.Region.Framework.Scenes
1228 1239
1229 ApplyPhysics(); 1240 ApplyPhysics();
1230 1241
1231 if (RootPart.PhysActor != null)
1232 RootPart.Force = RootPart.Force;
1233 if (RootPart.PhysActor != null)
1234 RootPart.Torque = RootPart.Torque;
1235 if (RootPart.PhysActor != null)
1236 RootPart.Buoyancy = RootPart.Buoyancy;
1237
1238 // Don't trigger the update here - otherwise some client issues occur when multiple updates are scheduled 1242 // Don't trigger the update here - otherwise some client issues occur when multiple updates are scheduled
1239 // for the same object with very different properties. The caller must schedule the update. 1243 // for the same object with very different properties. The caller must schedule the update.
1240 //ScheduleGroupForFullUpdate(); 1244 //ScheduleGroupForFullUpdate();
@@ -2166,10 +2170,9 @@ namespace OpenSim.Region.Framework.Scenes
2166 } 2170 }
2167 // Hack to get the physics scene geometries in the right spot 2171 // Hack to get the physics scene geometries in the right spot
2168// ResetChildPrimPhysicsPositions(); 2172// ResetChildPrimPhysicsPositions();
2173
2169 if (m_rootPart.PhysActor != null) 2174 if (m_rootPart.PhysActor != null)
2170 {
2171 m_rootPart.PhysActor.Building = false; 2175 m_rootPart.PhysActor.Building = false;
2172 }
2173 } 2176 }
2174 else 2177 else
2175 { 2178 {