aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs22
1 files changed, 3 insertions, 19 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 17dca98..90b2583 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -5040,27 +5040,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5040 } 5040 }
5041 else 5041 else
5042 { 5042 {
5043 agentSize = new LSL_Vector(0.45, 0.6, calculateAgentHeight(avatar)); 5043 agentSize = new LSL_Vector(0.45, 0.6, avatar.Appearance.AvatarHeight);
5044 } 5044 }
5045 return agentSize; 5045 return agentSize;
5046 } 5046 }
5047 5047
5048 private float calculateAgentHeight(ScenePresence avatar)
5049 {
5050 byte[] parms = avatar.Appearance.VisualParams;
5051 // The values here were arrived at from experimentation with the sliders
5052 // in edit appearance in SL to find the ones that affected the height and how
5053 // much they affected it.
5054 float avatarHeight = 1.23077f // Shortest possible avatar height
5055 + 0.516945f * (float)parms[25] / 255.0f // Body height
5056 + 0.072514f * (float)parms[120] / 255.0f // Head size
5057 + 0.3836f * (float)parms[125] / 255.0f // Leg length
5058 + 0.08f * (float)parms[77] / 255.0f // Shoe heel height
5059 + 0.07f * (float)parms[78] / 255.0f // Shoe platform height
5060 + 0.076f * (float)parms[148] / 255.0f; // Neck length
5061 return avatarHeight;
5062 }
5063
5064 public LSL_Integer llSameGroup(string agent) 5048 public LSL_Integer llSameGroup(string agent)
5065 { 5049 {
5066 m_host.AddScriptLPS(1); 5050 m_host.AddScriptLPS(1);
@@ -6600,14 +6584,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6600 if (presence.Animations.DefaultAnimation.AnimID == AnimationSet.Animations.AnimsUUID["SIT_GROUND_CONSTRAINED"]) 6584 if (presence.Animations.DefaultAnimation.AnimID == AnimationSet.Animations.AnimsUUID["SIT_GROUND_CONSTRAINED"])
6601 { 6585 {
6602 // This is for ground sitting avatars 6586 // This is for ground sitting avatars
6603 float height = calculateAgentHeight(presence) / 2.66666667f; 6587 float height = presence.Appearance.AvatarHeight / 2.66666667f;
6604 lower = new LSL_Vector(-0.3375f, -0.45f, height * -1.0f); 6588 lower = new LSL_Vector(-0.3375f, -0.45f, height * -1.0f);
6605 upper = new LSL_Vector(0.3375f, 0.45f, 0.0f); 6589 upper = new LSL_Vector(0.3375f, 0.45f, 0.0f);
6606 } 6590 }
6607 else 6591 else
6608 { 6592 {
6609 // This is for standing/flying avatars 6593 // This is for standing/flying avatars
6610 float height = calculateAgentHeight(presence) / 2.0f; 6594 float height = presence.Appearance.AvatarHeight / 2.0f;
6611 lower = new LSL_Vector(-0.225f, -0.3f, height * -1.0f); 6595 lower = new LSL_Vector(-0.225f, -0.3f, height * -1.0f);
6612 upper = new LSL_Vector(0.225f, 0.3f, height + 0.05f); 6596 upper = new LSL_Vector(0.225f, 0.3f, height + 0.05f);
6613 } 6597 }