diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/ScenePresence.cs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index af17fac..c91027c 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs | |||
@@ -759,7 +759,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
759 | } | 759 | } |
760 | 760 | ||
761 | float posZLimit = (float)m_scene.GetLandHeight((int)pos.X, (int)pos.Y); | 761 | float posZLimit = (float)m_scene.GetLandHeight((int)pos.X, (int)pos.Y); |
762 | float newPosZ = posZLimit + localAVHeight; | 762 | float newPosZ = posZLimit + localAVHeight / 2; |
763 | if (posZLimit >= (pos.Z - (localAVHeight / 2)) && !(Single.IsInfinity(newPosZ) || Single.IsNaN(newPosZ))) | 763 | if (posZLimit >= (pos.Z - (localAVHeight / 2)) && !(Single.IsInfinity(newPosZ) || Single.IsNaN(newPosZ))) |
764 | { | 764 | { |
765 | pos.Z = newPosZ; | 765 | pos.Z = newPosZ; |
@@ -1752,6 +1752,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1752 | Vector3 pos = m_pos; | 1752 | Vector3 pos = m_pos; |
1753 | Vector3 vel = Velocity; | 1753 | Vector3 vel = Velocity; |
1754 | Quaternion rot = m_bodyRot; | 1754 | Quaternion rot = m_bodyRot; |
1755 | pos.Z -= m_appearance.HipOffset; | ||
1755 | remoteClient.SendAvatarTerseUpdate(m_regionHandle, (ushort)(m_scene.TimeDilation * (float)ushort.MaxValue), LocalId, new Vector3(pos.X, pos.Y, pos.Z), | 1756 | remoteClient.SendAvatarTerseUpdate(m_regionHandle, (ushort)(m_scene.TimeDilation * (float)ushort.MaxValue), LocalId, new Vector3(pos.X, pos.Y, pos.Z), |
1756 | new Vector3(vel.X, vel.Y, vel.Z), rot); | 1757 | new Vector3(vel.X, vel.Y, vel.Z), rot); |
1757 | 1758 | ||
@@ -1835,6 +1836,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
1835 | // Note: because Quaternion is a struct, it can't be null | 1836 | // Note: because Quaternion is a struct, it can't be null |
1836 | Quaternion rot = m_bodyRot; | 1837 | Quaternion rot = m_bodyRot; |
1837 | 1838 | ||
1839 | Vector3 pos = m_pos; | ||
1840 | pos.Z -= m_appearance.HipOffset; | ||
1841 | |||
1838 | remoteAvatar.m_controllingClient.SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, | 1842 | remoteAvatar.m_controllingClient.SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, |
1839 | LocalId, m_pos, m_appearance.Texture.ToBytes(), | 1843 | LocalId, m_pos, m_appearance.Texture.ToBytes(), |
1840 | m_parentID, rot); | 1844 | m_parentID, rot); |
@@ -1900,6 +1904,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
1900 | // Note: because Quaternion is a struct, it can't be null | 1904 | // Note: because Quaternion is a struct, it can't be null |
1901 | Quaternion rot = m_bodyRot; | 1905 | Quaternion rot = m_bodyRot; |
1902 | 1906 | ||
1907 | Vector3 pos = m_pos; | ||
1908 | pos.Z -= m_appearance.HipOffset; | ||
1909 | |||
1903 | m_controllingClient.SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, LocalId, | 1910 | m_controllingClient.SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, LocalId, |
1904 | m_pos, m_appearance.Texture.ToBytes(), m_parentID, rot); | 1911 | m_pos, m_appearance.Texture.ToBytes(), m_parentID, rot); |
1905 | 1912 | ||