aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs1
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs9
2 files changed, 6 insertions, 4 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index f306651..3e1dcaa 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
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 0ab267a..7004d23 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -242,7 +242,7 @@ namespace OpenSim.Region.Framework.Scenes
242 242
243 private int m_movementAnimationUpdateCounter = 0; 243 private int m_movementAnimationUpdateCounter = 0;
244 244
245 private Vector3 m_prevSitOffset; 245 public Vector3 PrevSitOffset { get; set; }
246 246
247 protected AvatarAppearance m_appearance; 247 protected AvatarAppearance m_appearance;
248 248
@@ -957,7 +957,7 @@ namespace OpenSim.Region.Framework.Scenes
957// ParentPosition = part.GetWorldPosition(); 957// ParentPosition = part.GetWorldPosition();
958 ParentID = part.LocalId; 958 ParentID = part.LocalId;
959 ParentPart = part; 959 ParentPart = part;
960 m_pos = m_prevSitOffset; 960 m_pos = PrevSitOffset;
961// pos = ParentPosition; 961// pos = ParentPosition;
962 pos = part.GetWorldPosition(); 962 pos = part.GetWorldPosition();
963 } 963 }
@@ -2261,6 +2261,7 @@ namespace OpenSim.Region.Framework.Scenes
2261 2261
2262 if (ParentID != 0) 2262 if (ParentID != 0)
2263 { 2263 {
2264 PrevSitOffset = m_pos; // Save sit offset
2264 SceneObjectPart part = ParentPart; 2265 SceneObjectPart part = ParentPart;
2265 UnRegisterSeatControls(part.ParentGroup.UUID); 2266 UnRegisterSeatControls(part.ParentGroup.UUID);
2266 2267
@@ -3487,7 +3488,7 @@ namespace OpenSim.Region.Framework.Scenes
3487 cAgent.Appearance = new AvatarAppearance(Appearance); 3488 cAgent.Appearance = new AvatarAppearance(Appearance);
3488 3489
3489 cAgent.ParentPart = ParentUUID; 3490 cAgent.ParentPart = ParentUUID;
3490 cAgent.SitOffset = m_pos; 3491 cAgent.SitOffset = PrevSitOffset;
3491 3492
3492 lock (scriptedcontrols) 3493 lock (scriptedcontrols)
3493 { 3494 {
@@ -3530,7 +3531,7 @@ namespace OpenSim.Region.Framework.Scenes
3530 CameraLeftAxis = cAgent.LeftAxis; 3531 CameraLeftAxis = cAgent.LeftAxis;
3531 CameraUpAxis = cAgent.UpAxis; 3532 CameraUpAxis = cAgent.UpAxis;
3532 ParentUUID = cAgent.ParentPart; 3533 ParentUUID = cAgent.ParentPart;
3533 m_prevSitOffset = cAgent.SitOffset; 3534 PrevSitOffset = cAgent.SitOffset;
3534 3535
3535 // When we get to the point of re-computing neighbors everytime this 3536 // When we get to the point of re-computing neighbors everytime this
3536 // changes, then start using the agent's drawdistance rather than the 3537 // changes, then start using the agent's drawdistance rather than the