aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2013-11-23 00:53:09 +0000
committerJustin Clark-Casey (justincc)2013-11-23 00:53:09 +0000
commitff4e7de7769b7eaa1b4fd3917e59f362b708226a (patch)
tree4fce158779281bd64c1ba06439f9b264bb7aa037
parentAdded admin_authenticate_user command (diff)
downloadopensim-SC_OLD-ff4e7de7769b7eaa1b4fd3917e59f362b708226a.zip
opensim-SC_OLD-ff4e7de7769b7eaa1b4fd3917e59f362b708226a.tar.gz
opensim-SC_OLD-ff4e7de7769b7eaa1b4fd3917e59f362b708226a.tar.bz2
opensim-SC_OLD-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.cs8
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs9
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(