aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPart.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs24
1 files changed, 14 insertions, 10 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index affd4de..19bf53f 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -3728,7 +3728,18 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter
3728 bool hasDimple; 3728 bool hasDimple;
3729 bool hasProfileCut; 3729 bool hasProfileCut;
3730 3730
3731 PrimType primType = GetPrimType(); 3731 if(Shape.SculptEntry)
3732 {
3733 if (Shape.SculptType != (byte)SculptType.Mesh)
3734 return 1; // sculp
3735
3736 //hack to detect new upload with faces data enconded on pbs
3737 if ((Shape.ProfileCurve & 0xf0) != (byte)HollowShape.Triangle)
3738 // old broken upload TODO
3739 return 8;
3740 }
3741
3742 PrimType primType = GetPrimType(true);
3732 HasCutHollowDimpleProfileCut(primType, Shape, out hasCut, out hasHollow, out hasDimple, out hasProfileCut); 3743 HasCutHollowDimpleProfileCut(primType, Shape, out hasCut, out hasHollow, out hasDimple, out hasProfileCut);
3733 3744
3734 switch (primType) 3745 switch (primType)
@@ -3772,13 +3783,6 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter
3772 if (hasProfileCut) ret += 2; 3783 if (hasProfileCut) ret += 2;
3773 if (hasHollow) ret += 1; 3784 if (hasHollow) ret += 1;
3774 break; 3785 break;
3775 case PrimType.SCULPT:
3776 // Special mesh handling
3777 if (Shape.SculptType == (byte)SculptType.Mesh)
3778 ret = 8; // if it's a mesh then max 8 faces
3779 else
3780 ret = 1; // if it's a sculpt then max 1 face
3781 break;
3782 } 3786 }
3783 3787
3784 return ret; 3788 return ret;
@@ -3789,9 +3793,9 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter
3789 /// </summary> 3793 /// </summary>
3790 /// <param name="primShape"></param> 3794 /// <param name="primShape"></param>
3791 /// <returns></returns> 3795 /// <returns></returns>
3792 public PrimType GetPrimType() 3796 public PrimType GetPrimType(bool ignoreSculpt = false)
3793 { 3797 {
3794 if (Shape.SculptEntry) 3798 if (Shape.SculptEntry && !ignoreSculpt)
3795 return PrimType.SCULPT; 3799 return PrimType.SCULPT;
3796 3800
3797 if ((Shape.ProfileCurve & 0x07) == (byte)ProfileShape.Square) 3801 if ((Shape.ProfileCurve & 0x07) == (byte)ProfileShape.Square)