If one is sitting on a child with an unset camera-eye and so using one set in a root prim, the focus should remain on the root prim.
Matches behaviour just tested on the Linden grid.bullet-2.82
parent
c78a8271c4
commit
5015b0b485
|
@ -2755,15 +2755,19 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
cameraAtOffset = part.GetCameraAtOffset();
|
cameraAtOffset = part.GetCameraAtOffset();
|
||||||
|
|
||||||
if (cameraAtOffset == Vector3.Zero)
|
if (!part.IsRoot && cameraAtOffset == Vector3.Zero)
|
||||||
cameraAtOffset = part.ParentGroup.RootPart.GetCameraAtOffset();
|
cameraAtOffset = part.ParentGroup.RootPart.GetCameraAtOffset();
|
||||||
|
|
||||||
|
bool cameraEyeOffsetFromRootForChild = false;
|
||||||
cameraEyeOffset = part.GetCameraEyeOffset();
|
cameraEyeOffset = part.GetCameraEyeOffset();
|
||||||
|
|
||||||
if (cameraEyeOffset == Vector3.Zero)
|
if (!part.IsRoot && cameraEyeOffset == Vector3.Zero)
|
||||||
|
{
|
||||||
cameraEyeOffset = part.ParentGroup.RootPart.GetCameraEyeOffset();
|
cameraEyeOffset = part.ParentGroup.RootPart.GetCameraEyeOffset();
|
||||||
|
cameraEyeOffsetFromRootForChild = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (cameraEyeOffset != Vector3.Zero || cameraAtOffset != Vector3.Zero)
|
if ((cameraEyeOffset != Vector3.Zero && !cameraEyeOffsetFromRootForChild) || cameraAtOffset != Vector3.Zero)
|
||||||
{
|
{
|
||||||
if (!part.IsRoot)
|
if (!part.IsRoot)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue