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.link-sitting
parent
c896b4179e
commit
ff4e7de776
|
@ -5218,7 +5218,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
update.NameValue = Utils.StringToBytes("FirstName STRING RW SV " + data.Firstname + "\nLastName STRING RW SV " +
|
update.NameValue = Utils.StringToBytes("FirstName STRING RW SV " + data.Firstname + "\nLastName STRING RW SV " +
|
||||||
data.Lastname + "\nTitle STRING RW SV " + data.Grouptitle);
|
data.Lastname + "\nTitle STRING RW SV " + data.Grouptitle);
|
||||||
update.ObjectData = objectData;
|
update.ObjectData = objectData;
|
||||||
update.ParentID = data.ParentID;
|
|
||||||
|
SceneObjectPart parentPart = data.ParentPart;
|
||||||
|
if (parentPart != null)
|
||||||
|
update.ParentID = parentPart.ParentGroup.LocalId;
|
||||||
|
else
|
||||||
|
update.ParentID = 0;
|
||||||
|
|
||||||
update.PathCurve = 16;
|
update.PathCurve = 16;
|
||||||
update.PathScaleX = 100;
|
update.PathScaleX = 100;
|
||||||
update.PathScaleY = 100;
|
update.PathScaleY = 100;
|
||||||
|
|
|
@ -2312,8 +2312,10 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
cameraEyeOffset = part.GetCameraEyeOffset();
|
cameraEyeOffset = part.GetCameraEyeOffset();
|
||||||
forceMouselook = part.GetForceMouselook();
|
forceMouselook = part.GetForceMouselook();
|
||||||
|
|
||||||
|
// An viewer expects to specify sit positions as offsets to the root prim, even if a child prim is
|
||||||
|
// being sat upon.
|
||||||
ControllingClient.SendSitResponse(
|
ControllingClient.SendSitResponse(
|
||||||
part.UUID, offset, sitOrientation, false, cameraAtOffset, cameraEyeOffset, forceMouselook);
|
part.ParentGroup.UUID, offset, sitOrientation, false, cameraAtOffset, cameraEyeOffset, forceMouselook);
|
||||||
|
|
||||||
m_requestedSitTargetUUID = part.UUID;
|
m_requestedSitTargetUUID = part.UUID;
|
||||||
|
|
||||||
|
@ -2592,7 +2594,10 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_pos -= part.AbsolutePosition;
|
// An viewer expects to specify sit positions as offsets to the root prim, even if a child prim is
|
||||||
|
// being sat upon.
|
||||||
|
m_pos -= part.GroupPosition;
|
||||||
|
|
||||||
ParentPosition = part.AbsolutePosition;
|
ParentPosition = part.AbsolutePosition;
|
||||||
|
|
||||||
// m_log.DebugFormat(
|
// m_log.DebugFormat(
|
||||||
|
|
Loading…
Reference in New Issue