From 05da6b9f1417b8ccef318b8d5e13be695e38f08d Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sat, 16 Sep 2017 00:19:58 +0100 Subject: [PATCH] bug fix. Increase the values of profileHollow and profileBegin used to match pbs number of faces and the Mesh number of faces. The small values i used before seem to be randomly lost. --- OpenSim/Framework/PrimitiveBaseShape.cs | 8 +++---- .../ClientStack/Linden/UDP/LLClientView.cs | 24 ++++++++++++++----- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/OpenSim/Framework/PrimitiveBaseShape.cs b/OpenSim/Framework/PrimitiveBaseShape.cs index 96d78d3eed..98d1bdd45c 100644 --- a/OpenSim/Framework/PrimitiveBaseShape.cs +++ b/OpenSim/Framework/PrimitiveBaseShape.cs @@ -348,7 +348,7 @@ namespace OpenSim.Framework case 2: // torus with hollow (a sl viewer whould see 4 faces on a hollow sphere) shape.ProfileCurve = (byte)ProfileShape.Circle | (byte)HollowShape.Triangle; shape.PathCurve = (byte)Extrusion.Curve1; - shape.ProfileHollow = 1; + shape.ProfileHollow = 27500; break; case 3: // cylinder @@ -359,7 +359,7 @@ namespace OpenSim.Framework case 4: // cylinder with hollow shape.ProfileCurve = (byte)ProfileShape.Circle | (byte)HollowShape.Triangle; shape.PathCurve = (byte)Extrusion.Straight; - shape.ProfileHollow = 1; + shape.ProfileHollow = 27500; break; case 5: // prism @@ -375,13 +375,13 @@ namespace OpenSim.Framework case 7: // box with hollow shape.ProfileCurve = (byte)ProfileShape.Square | (byte)HollowShape.Triangle; shape.PathCurve = (byte)Extrusion.Straight; - shape.ProfileHollow = 1; + shape.ProfileHollow = 27500; break; default: // 8 faces box with cut shape.ProfileCurve = (byte)ProfileShape.Square | (byte)HollowShape.Triangle; shape.PathCurve = (byte)Extrusion.Straight; - shape.ProfileBegin = 1; + shape.ProfileBegin = 12500; break; } diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index c44c741e71..f068cef673 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs @@ -5856,7 +5856,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP update.State = part.Shape.State; // not sure about this } - update.ObjectData = objectData; update.ParentID = part.ParentID; update.PathBegin = part.Shape.PathBegin; @@ -5877,13 +5876,26 @@ namespace OpenSim.Region.ClientStack.LindenUDP update.ProfileBegin = part.Shape.ProfileBegin; update.ProfileCurve = part.Shape.ProfileCurve; - if(part.Shape.SculptType == (byte)SculptType.Mesh) // filter out hack - update.ProfileCurve = (byte)(part.Shape.ProfileCurve & 0x0f); - else - update.ProfileCurve = part.Shape.ProfileCurve; + ushort profileBegin = part.Shape.ProfileBegin; + ushort profileHollow = part.Shape.ProfileHollow; + if(part.Shape.SculptType == (byte)SculptType.Mesh) // filter out hack + { + update.ProfileCurve = (byte)(part.Shape.ProfileCurve & 0x0f); + // fix old values that confused viewers + if(profileBegin == 1) + profileBegin = 12500; + if(profileHollow == 1) + profileHollow = 27500; + } + else + { + update.ProfileCurve = part.Shape.ProfileCurve; + } + + update.ProfileHollow = profileHollow; + update.ProfileBegin = profileBegin; update.ProfileEnd = part.Shape.ProfileEnd; - update.ProfileHollow = part.Shape.ProfileHollow; update.PSBlock = part.ParticleSystem ?? Utils.EmptyBytes; update.TextColor = part.GetTextColor().GetBytes(false); update.TextureAnim = part.TextureAnimation ?? Utils.EmptyBytes;