diff options
author | nebadon | 2011-11-05 02:56:52 -0700 |
---|---|---|
committer | nebadon | 2011-11-05 02:56:52 -0700 |
commit | e182cc198d3b0151b2a891f6470e664f77e42d79 (patch) | |
tree | a9b7c4c7f95f11c87a981c0e2fd5f6cc14a65754 | |
parent | Multiple lines in welcome message use '\n' in the welcome message to (diff) | |
download | opensim-SC_OLD-e182cc198d3b0151b2a891f6470e664f77e42d79.zip opensim-SC_OLD-e182cc198d3b0151b2a891f6470e664f77e42d79.tar.gz opensim-SC_OLD-e182cc198d3b0151b2a891f6470e664f77e42d79.tar.bz2 opensim-SC_OLD-e182cc198d3b0151b2a891f6470e664f77e42d79.tar.xz |
Fix avatar height, removes the hip offset hack
Author: Mana Janus <mana@mjm-labs.com>
-rw-r--r-- | OpenSim/Framework/AvatarAppearance.cs | 36 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 3 |
2 files changed, 12 insertions, 27 deletions
diff --git a/OpenSim/Framework/AvatarAppearance.cs b/OpenSim/Framework/AvatarAppearance.cs index 72b580b..6c2a954 100644 --- a/OpenSim/Framework/AvatarAppearance.cs +++ b/OpenSim/Framework/AvatarAppearance.cs | |||
@@ -53,7 +53,6 @@ namespace OpenSim.Framework | |||
53 | protected AvatarWearable[] m_wearables; | 53 | protected AvatarWearable[] m_wearables; |
54 | protected Dictionary<int, List<AvatarAttachment>> m_attachments; | 54 | protected Dictionary<int, List<AvatarAttachment>> m_attachments; |
55 | protected float m_avatarHeight = 0; | 55 | protected float m_avatarHeight = 0; |
56 | protected float m_hipOffset = 0; | ||
57 | 56 | ||
58 | public virtual int Serial | 57 | public virtual int Serial |
59 | { | 58 | { |
@@ -89,11 +88,6 @@ namespace OpenSim.Framework | |||
89 | set { m_avatarHeight = value; } | 88 | set { m_avatarHeight = value; } |
90 | } | 89 | } |
91 | 90 | ||
92 | public virtual float HipOffset | ||
93 | { | ||
94 | get { return m_hipOffset; } | ||
95 | } | ||
96 | |||
97 | public AvatarAppearance() | 91 | public AvatarAppearance() |
98 | { | 92 | { |
99 | // m_log.WarnFormat("[AVATAR APPEARANCE]: create empty appearance"); | 93 | // m_log.WarnFormat("[AVATAR APPEARANCE]: create empty appearance"); |
@@ -184,7 +178,6 @@ namespace OpenSim.Framework | |||
184 | m_visualparams = (byte[])appearance.VisualParams.Clone(); | 178 | m_visualparams = (byte[])appearance.VisualParams.Clone(); |
185 | 179 | ||
186 | m_avatarHeight = appearance.m_avatarHeight; | 180 | m_avatarHeight = appearance.m_avatarHeight; |
187 | m_hipOffset = appearance.m_hipOffset; | ||
188 | 181 | ||
189 | // Copy the attachment, force append mode since that ensures consistency | 182 | // Copy the attachment, force append mode since that ensures consistency |
190 | m_attachments = new Dictionary<int, List<AvatarAttachment>>(); | 183 | m_attachments = new Dictionary<int, List<AvatarAttachment>>(); |
@@ -332,20 +325,18 @@ namespace OpenSim.Framework | |||
332 | 325 | ||
333 | public virtual void SetHeight() | 326 | public virtual void SetHeight() |
334 | { | 327 | { |
335 | m_avatarHeight = 1.23077f // Shortest possible avatar height | 328 | // Start with shortest possible female avatar height |
336 | + 0.516945f * (float)m_visualparams[(int)VPElement.SHAPE_HEIGHT] / 255.0f // Body height | 329 | m_avatarHeight = 1.14597f; |
337 | + 0.072514f * (float)m_visualparams[(int)VPElement.SHAPE_HEAD_SIZE] / 255.0f // Head size | 330 | // Add offset for male avatars |
338 | + 0.3836f * (float)m_visualparams[(int)VPElement.SHAPE_LEG_LENGTH] / 255.0f // Leg length | 331 | if (m_visualparams[(int)VPElement.SHAPE_MALE] != 0) |
339 | + 0.08f * (float)m_visualparams[(int)VPElement.SHOES_PLATFORM_HEIGHT] / 255.0f // Shoe platform height | 332 | m_avatarHeight += 0.0848f; |
340 | + 0.07f * (float)m_visualparams[(int)VPElement.SHOES_HEEL_HEIGHT] / 255.0f // Shoe heel height | 333 | // Add offsets for visual params |
341 | + 0.076f * (float)m_visualparams[(int)VPElement.SHAPE_NECK_LENGTH] / 255.0f; // Neck length | 334 | m_avatarHeight += 0.516945f * (float)m_visualparams[(int)VPElement.SHAPE_HEIGHT] / 255.0f |
342 | 335 | + 0.08117f * (float)m_visualparams[(int)VPElement.SHAPE_HEAD_SIZE] / 255.0f | |
343 | m_hipOffset = (((1.23077f // Half of avatar | 336 | + 0.3836f * (float)m_visualparams[(int)VPElement.SHAPE_LEG_LENGTH] / 255.0f |
344 | + 0.516945f * (float)m_visualparams[(int)VPElement.SHAPE_HEIGHT] / 255.0f // Body height | 337 | + 0.07f * (float)m_visualparams[(int)VPElement.SHOES_PLATFORM_HEIGHT] / 255.0f |
345 | + 0.3836f * (float)m_visualparams[(int)VPElement.SHAPE_LEG_LENGTH] / 255.0f // Leg length | 338 | + 0.08f * (float)m_visualparams[(int)VPElement.SHOES_HEEL_HEIGHT] / 255.0f |
346 | + 0.08f * (float)m_visualparams[(int)VPElement.SHOES_PLATFORM_HEIGHT] / 255.0f // Shoe platform height | 339 | + 0.076f * (float)m_visualparams[(int)VPElement.SHAPE_NECK_LENGTH] / 255.0f; |
347 | + 0.07f * (float)m_visualparams[(int)VPElement.SHOES_HEEL_HEIGHT] / 255.0f // Shoe heel height | ||
348 | ) / 2) - m_avatarHeight / 2) * 0.31f - 0.0425f; | ||
349 | } | 340 | } |
350 | 341 | ||
351 | public virtual void SetWearable(int wearableId, AvatarWearable wearable) | 342 | public virtual void SetWearable(int wearableId, AvatarWearable wearable) |
@@ -578,7 +569,6 @@ namespace OpenSim.Framework | |||
578 | 569 | ||
579 | data["serial"] = OSD.FromInteger(m_serial); | 570 | data["serial"] = OSD.FromInteger(m_serial); |
580 | data["height"] = OSD.FromReal(m_avatarHeight); | 571 | data["height"] = OSD.FromReal(m_avatarHeight); |
581 | data["hipoffset"] = OSD.FromReal(m_hipOffset); | ||
582 | 572 | ||
583 | // Wearables | 573 | // Wearables |
584 | OSDArray wears = new OSDArray(AvatarWearable.MAX_WEARABLES); | 574 | OSDArray wears = new OSDArray(AvatarWearable.MAX_WEARABLES); |
@@ -621,8 +611,6 @@ namespace OpenSim.Framework | |||
621 | m_serial = data["serial"].AsInteger(); | 611 | m_serial = data["serial"].AsInteger(); |
622 | if ((data != null) && (data["height"] != null)) | 612 | if ((data != null) && (data["height"] != null)) |
623 | m_avatarHeight = (float)data["height"].AsReal(); | 613 | m_avatarHeight = (float)data["height"].AsReal(); |
624 | if ((data != null) && (data["hipoffset"] != null)) | ||
625 | m_hipOffset = (float)data["hipoffset"].AsReal(); | ||
626 | 614 | ||
627 | try | 615 | try |
628 | { | 616 | { |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 0ff93f6..e961bdd 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -2445,9 +2445,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2445 | // server. | 2445 | // server. |
2446 | if (remoteClient.IsActive) | 2446 | if (remoteClient.IsActive) |
2447 | { | 2447 | { |
2448 | Vector3 pos = m_pos; | ||
2449 | pos.Z += Appearance.HipOffset; | ||
2450 | |||
2451 | //m_log.DebugFormat("[SCENE PRESENCE]: " + Name + " sending TerseUpdate to " + remoteClient.Name + " : Pos={0} Rot={1} Vel={2}", m_pos, Rotation, m_velocity); | 2448 | //m_log.DebugFormat("[SCENE PRESENCE]: " + Name + " sending TerseUpdate to " + remoteClient.Name + " : Pos={0} Rot={1} Vel={2}", m_pos, Rotation, m_velocity); |
2452 | 2449 | ||
2453 | remoteClient.SendEntityUpdate( | 2450 | remoteClient.SendEntityUpdate( |