diff options
author | Justin Clark-Casey (justincc) | 2013-11-23 00:53:09 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2013-11-23 00:53:09 +0000 |
commit | ff4e7de7769b7eaa1b4fd3917e59f362b708226a (patch) | |
tree | 4fce158779281bd64c1ba06439f9b264bb7aa037 | |
parent | Added admin_authenticate_user command (diff) | |
download | opensim-SC-ff4e7de7769b7eaa1b4fd3917e59f362b708226a.zip opensim-SC-ff4e7de7769b7eaa1b4fd3917e59f362b708226a.tar.gz opensim-SC-ff4e7de7769b7eaa1b4fd3917e59f362b708226a.tar.bz2 opensim-SC-ff4e7de7769b7eaa1b4fd3917e59f362b708226a.tar.xz |
Fix issue where sitting on non-root linked prims would send camera to wrong position in third-person and mouselook
We now specify sits as offsets from the root prim, as the viewer expects.
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 9 |
2 files changed, 14 insertions, 3 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 20bc59c..29751ff 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -5218,7 +5218,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5218 | update.NameValue = Utils.StringToBytes("FirstName STRING RW SV " + data.Firstname + "\nLastName STRING RW SV " + | 5218 | update.NameValue = Utils.StringToBytes("FirstName STRING RW SV " + data.Firstname + "\nLastName STRING RW SV " + |
5219 | data.Lastname + "\nTitle STRING RW SV " + data.Grouptitle); | 5219 | data.Lastname + "\nTitle STRING RW SV " + data.Grouptitle); |
5220 | update.ObjectData = objectData; | 5220 | update.ObjectData = objectData; |
5221 | update.ParentID = data.ParentID; | 5221 | |
5222 | SceneObjectPart parentPart = data.ParentPart; | ||
5223 | if (parentPart != null) | ||
5224 | update.ParentID = parentPart.ParentGroup.LocalId; | ||
5225 | else | ||
5226 | update.ParentID = 0; | ||
5227 | |||
5222 | update.PathCurve = 16; | 5228 | update.PathCurve = 16; |
5223 | update.PathScaleX = 100; | 5229 | update.PathScaleX = 100; |
5224 | update.PathScaleY = 100; | 5230 | update.PathScaleY = 100; |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 7243db1..ea8e4fe 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -2312,8 +2312,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
2312 | cameraEyeOffset = part.GetCameraEyeOffset(); | 2312 | cameraEyeOffset = part.GetCameraEyeOffset(); |
2313 | forceMouselook = part.GetForceMouselook(); | 2313 | forceMouselook = part.GetForceMouselook(); |
2314 | 2314 | ||
2315 | // An viewer expects to specify sit positions as offsets to the root prim, even if a child prim is | ||
2316 | // being sat upon. | ||
2315 | ControllingClient.SendSitResponse( | 2317 | ControllingClient.SendSitResponse( |
2316 | part.UUID, offset, sitOrientation, false, cameraAtOffset, cameraEyeOffset, forceMouselook); | 2318 | part.ParentGroup.UUID, offset, sitOrientation, false, cameraAtOffset, cameraEyeOffset, forceMouselook); |
2317 | 2319 | ||
2318 | m_requestedSitTargetUUID = part.UUID; | 2320 | m_requestedSitTargetUUID = part.UUID; |
2319 | 2321 | ||
@@ -2592,7 +2594,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
2592 | } | 2594 | } |
2593 | else | 2595 | else |
2594 | { | 2596 | { |
2595 | m_pos -= part.AbsolutePosition; | 2597 | // An viewer expects to specify sit positions as offsets to the root prim, even if a child prim is |
2598 | // being sat upon. | ||
2599 | m_pos -= part.GroupPosition; | ||
2600 | |||
2596 | ParentPosition = part.AbsolutePosition; | 2601 | ParentPosition = part.AbsolutePosition; |
2597 | 2602 | ||
2598 | // m_log.DebugFormat( | 2603 | // m_log.DebugFormat( |