aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie Thielker2008-09-14 15:18:58 +0000
committerMelanie Thielker2008-09-14 15:18:58 +0000
commitde44f765e35b314226e18e5c9fae98050cd496aa (patch)
treeb24935e41d1d520785673045dff73507df14ef34
parentMessageServer gets the agent position (positionx/y/z) as float, not as int in (diff)
downloadopensim-SC_OLD-de44f765e35b314226e18e5c9fae98050cd496aa.zip
opensim-SC_OLD-de44f765e35b314226e18e5c9fae98050cd496aa.tar.gz
opensim-SC_OLD-de44f765e35b314226e18e5c9fae98050cd496aa.tar.bz2
opensim-SC_OLD-de44f765e35b314226e18e5c9fae98050cd496aa.tar.xz
Mantis #2186
Prevent illegal color values from being set.
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs24
1 files changed, 12 insertions, 12 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 24f19a0..7a654ce 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -990,9 +990,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
990 if (face > -1) 990 if (face > -1)
991 { 991 {
992 texcolor = tex.CreateFace((uint)face).RGBA; 992 texcolor = tex.CreateFace((uint)face).RGBA;
993 texcolor.R = (float)color.x; 993 texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0);
994 texcolor.G = (float)color.y; 994 texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0);
995 texcolor.B = (float)color.z; 995 texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0);
996 tex.FaceTextures[face].RGBA = texcolor; 996 tex.FaceTextures[face].RGBA = texcolor;
997 part.UpdateTexture(tex); 997 part.UpdateTexture(tex);
998 return; 998 return;
@@ -1004,15 +1004,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1004 if (tex.FaceTextures[i] != null) 1004 if (tex.FaceTextures[i] != null)
1005 { 1005 {
1006 texcolor = tex.FaceTextures[i].RGBA; 1006 texcolor = tex.FaceTextures[i].RGBA;
1007 texcolor.R = (float)color.x; 1007 texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0);
1008 texcolor.G = (float)color.y; 1008 texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0);
1009 texcolor.B = (float)color.z; 1009 texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0);
1010 tex.FaceTextures[i].RGBA = texcolor; 1010 tex.FaceTextures[i].RGBA = texcolor;
1011 } 1011 }
1012 texcolor = tex.DefaultTexture.RGBA; 1012 texcolor = tex.DefaultTexture.RGBA;
1013 texcolor.R = (float)color.x; 1013 texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0);
1014 texcolor.G = (float)color.y; 1014 texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0);
1015 texcolor.B = (float)color.z; 1015 texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0);
1016 tex.DefaultTexture.RGBA = texcolor; 1016 tex.DefaultTexture.RGBA = texcolor;
1017 } 1017 }
1018 part.UpdateTexture(tex); 1018 part.UpdateTexture(tex);
@@ -1253,9 +1253,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1253 if (light) 1253 if (light)
1254 { 1254 {
1255 part.Shape.LightEntry = true; 1255 part.Shape.LightEntry = true;
1256 part.Shape.LightColorR = (float)color.x; 1256 part.Shape.LightColorR = (float)Math.Min(Math.Max(color.x, 0.0), 1.0);
1257 part.Shape.LightColorG = (float)color.y; 1257 part.Shape.LightColorG = (float)Math.Min(Math.Max(color.y, 0.0), 1.0);
1258 part.Shape.LightColorB = (float)color.z; 1258 part.Shape.LightColorB = (float)Math.Min(Math.Max(color.z, 0.0), 1.0);
1259 part.Shape.LightIntensity = intensity; 1259 part.Shape.LightIntensity = intensity;
1260 part.Shape.LightRadius = radius; 1260 part.Shape.LightRadius = radius;
1261 part.Shape.LightFalloff = falloff; 1261 part.Shape.LightFalloff = falloff;