aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authordahlia2010-06-19 16:07:35 -0700
committerdahlia2010-06-19 16:07:35 -0700
commitc571c33b6b0ace77e3626556ee1e048e588a3705 (patch)
treee78b32853f3698570b7e4d2e6a26dc63bfa471ac
parentThis is a HACK! Downright nasty. For some reason, the devs of the mysql (diff)
downloadopensim-SC_OLD-c571c33b6b0ace77e3626556ee1e048e588a3705.zip
opensim-SC_OLD-c571c33b6b0ace77e3626556ee1e048e588a3705.tar.gz
opensim-SC_OLD-c571c33b6b0ace77e3626556ee1e048e588a3705.tar.bz2
opensim-SC_OLD-c571c33b6b0ace77e3626556ee1e048e588a3705.tar.xz
fix faulty profile cut parameter checking in llSetPrimitiveParams() - see Mantis #4510
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs22
1 files changed, 16 insertions, 6 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 59ab26b..86d0c30 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -6516,10 +6516,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6516 if (cut.y > 1f) 6516 if (cut.y > 1f)
6517 { 6517 {
6518 cut.y = 1f; 6518 cut.y = 1f;
6519 } 6519 }
6520 if (cut.y - cut.x < 0.05f) 6520 if (cut.y - cut.x < 0.05f)
6521 { 6521 {
6522 cut.x = cut.y - 0.05f; 6522 cut.x = cut.y - 0.05f;
6523 if (cut.x < 0.0f)
6524 {
6525 cut.x = 0.0f;
6526 cut.y = 0.05f;
6527 }
6523 } 6528 }
6524 shapeBlock.ProfileBegin = (ushort)(50000 * cut.x); 6529 shapeBlock.ProfileBegin = (ushort)(50000 * cut.x);
6525 shapeBlock.ProfileEnd = (ushort)(50000 * (1 - cut.y)); 6530 shapeBlock.ProfileEnd = (ushort)(50000 * (1 - cut.y));
@@ -6715,9 +6720,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6715 { 6720 {
6716 profilecut.y = 1f; 6721 profilecut.y = 1f;
6717 } 6722 }
6718 if (profilecut.y - cut.x < 0.05f) 6723 if (profilecut.y - profilecut.x < 0.05f)
6719 { 6724 {
6720 profilecut.x = cut.y - 0.05f; 6725 profilecut.x = profilecut.y - 0.05f;
6726 if (profilecut.x < 0.0f)
6727 {
6728 profilecut.x = 0.0f;
6729 profilecut.y = 0.05f;
6730 }
6721 } 6731 }
6722 shapeBlock.ProfileBegin = (ushort)(50000 * profilecut.x); 6732 shapeBlock.ProfileBegin = (ushort)(50000 * profilecut.x);
6723 shapeBlock.ProfileEnd = (ushort)(50000 * (1 - profilecut.y)); 6733 shapeBlock.ProfileEnd = (ushort)(50000 * (1 - profilecut.y));