diff options
author | John Hurliman | 2009-10-28 14:13:17 -0700 |
---|---|---|
committer | John Hurliman | 2009-10-28 14:13:17 -0700 |
commit | b81c829576dd916c0a7bf141919f5e13f025d818 (patch) | |
tree | 92e537b80a4cded51d1cccd2a3ba4dfb12c1665c /OpenSim/Region/Framework/Scenes/ScenePresence.cs | |
parent | Merge branch 'master' of ssh://opensimulator.org/var/git/opensim (diff) | |
download | opensim-SC_OLD-b81c829576dd916c0a7bf141919f5e13f025d818.zip opensim-SC_OLD-b81c829576dd916c0a7bf141919f5e13f025d818.tar.gz opensim-SC_OLD-b81c829576dd916c0a7bf141919f5e13f025d818.tar.bz2 opensim-SC_OLD-b81c829576dd916c0a7bf141919f5e13f025d818.tar.xz |
* Standalone logins will now go through the sequence of "requested region, default region, any region" before giving up
* Hip offset should have been added not subtracted (it's a negative offset). This puts avatar feet closer to the ground
* Improved duplicate checking for terse updates. This should reduce bandwidth and walking through walls
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 9ba19d3..63c979f 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -2362,8 +2362,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
2362 | 2362 | ||
2363 | public override void Update() | 2363 | public override void Update() |
2364 | { | 2364 | { |
2365 | const float VELOCITY_TOLERANCE = 0.0001f; | 2365 | const float ROTATION_TOLERANCE = 0.01f; |
2366 | const float POSITION_TOLERANCE = 10.0f; | 2366 | const float VELOCITY_TOLERANCE = 0.001f; |
2367 | const float POSITION_TOLERANCE = 0.05f; | ||
2367 | const int TIME_MS_TOLERANCE = 3000; | 2368 | const int TIME_MS_TOLERANCE = 3000; |
2368 | 2369 | ||
2369 | SendPrimUpdates(); | 2370 | SendPrimUpdates(); |
@@ -2377,9 +2378,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
2377 | if (m_isChildAgent == false) | 2378 | if (m_isChildAgent == false) |
2378 | { | 2379 | { |
2379 | // Throw away duplicate or insignificant updates | 2380 | // Throw away duplicate or insignificant updates |
2380 | if (m_bodyRot != m_lastRotation || | 2381 | if (!m_bodyRot.ApproxEquals(m_lastRotation, ROTATION_TOLERANCE) || |
2381 | (m_velocity - m_lastVelocity).Length() > VELOCITY_TOLERANCE || | 2382 | !m_velocity.ApproxEquals(m_lastVelocity, VELOCITY_TOLERANCE) || |
2382 | (m_pos - m_lastPosition).Length() > POSITION_TOLERANCE || | 2383 | !m_pos.ApproxEquals(m_lastPosition, POSITION_TOLERANCE) || |
2383 | Environment.TickCount - m_lastTerseSent > TIME_MS_TOLERANCE) | 2384 | Environment.TickCount - m_lastTerseSent > TIME_MS_TOLERANCE) |
2384 | { | 2385 | { |
2385 | SendTerseUpdateToAllClients(); | 2386 | SendTerseUpdateToAllClients(); |
@@ -2415,7 +2416,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
2415 | m_perfMonMS = Environment.TickCount; | 2416 | m_perfMonMS = Environment.TickCount; |
2416 | 2417 | ||
2417 | Vector3 pos = m_pos; | 2418 | Vector3 pos = m_pos; |
2418 | pos.Z -= m_appearance.HipOffset; | 2419 | pos.Z += m_appearance.HipOffset; |
2420 | |||
2421 | //m_log.DebugFormat("[SCENEPRESENCE]: TerseUpdate: Pos={0} Rot={1} Vel={2}", m_pos, m_bodyRot, m_velocity); | ||
2419 | 2422 | ||
2420 | remoteClient.SendAvatarTerseUpdate(new SendAvatarTerseData(m_regionHandle, (ushort)(m_scene.TimeDilation * ushort.MaxValue), LocalId, | 2423 | remoteClient.SendAvatarTerseUpdate(new SendAvatarTerseData(m_regionHandle, (ushort)(m_scene.TimeDilation * ushort.MaxValue), LocalId, |
2421 | pos, m_velocity, Vector3.Zero, m_bodyRot, Vector4.UnitW, m_uuid, null, GetUpdatePriority(remoteClient))); | 2424 | pos, m_velocity, Vector3.Zero, m_bodyRot, Vector4.UnitW, m_uuid, null, GetUpdatePriority(remoteClient))); |
@@ -2514,7 +2517,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2514 | return; | 2517 | return; |
2515 | 2518 | ||
2516 | Vector3 pos = m_pos; | 2519 | Vector3 pos = m_pos; |
2517 | pos.Z -= m_appearance.HipOffset; | 2520 | pos.Z += m_appearance.HipOffset; |
2518 | 2521 | ||
2519 | remoteAvatar.m_controllingClient.SendAvatarData(new SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, | 2522 | remoteAvatar.m_controllingClient.SendAvatarData(new SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, |
2520 | LocalId, pos, m_appearance.Texture.GetBytes(), | 2523 | LocalId, pos, m_appearance.Texture.GetBytes(), |
@@ -2585,7 +2588,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2585 | // m_scene.GetAvatarAppearance(m_controllingClient, out m_appearance); | 2588 | // m_scene.GetAvatarAppearance(m_controllingClient, out m_appearance); |
2586 | 2589 | ||
2587 | Vector3 pos = m_pos; | 2590 | Vector3 pos = m_pos; |
2588 | pos.Z -= m_appearance.HipOffset; | 2591 | pos.Z += m_appearance.HipOffset; |
2589 | 2592 | ||
2590 | m_controllingClient.SendAvatarData(new SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, LocalId, | 2593 | m_controllingClient.SendAvatarData(new SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, LocalId, |
2591 | pos, m_appearance.Texture.GetBytes(), m_parentID, m_bodyRot)); | 2594 | pos, m_appearance.Texture.GetBytes(), m_parentID, m_bodyRot)); |
@@ -2694,7 +2697,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2694 | } | 2697 | } |
2695 | 2698 | ||
2696 | Vector3 pos = m_pos; | 2699 | Vector3 pos = m_pos; |
2697 | pos.Z -= m_appearance.HipOffset; | 2700 | pos.Z += m_appearance.HipOffset; |
2698 | 2701 | ||
2699 | m_controllingClient.SendAvatarData(new SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, LocalId, | 2702 | m_controllingClient.SendAvatarData(new SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, LocalId, |
2700 | pos, m_appearance.Texture.GetBytes(), m_parentID, m_bodyRot)); | 2703 | pos, m_appearance.Texture.GetBytes(), m_parentID, m_bodyRot)); |