diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 1 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 9 |
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 |