Fixes the nudge movements!

viewer-2-initial-appearance
Diva Canto 2010-12-11 17:06:17 -08:00
parent c42876df67
commit 797ca8d0e7
3 changed files with 20 additions and 48 deletions

View File

@ -316,16 +316,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
public void UpdateMovementAnimations()
{
m_movementAnimation = GetMovementAnimation();
if (m_movementAnimation == "PREJUMP" && !m_scenePresence.Scene.m_usePreJump)
{
// This was the previous behavior before PREJUMP
TrySetMovementAnimation("JUMP");
}
else
{
TrySetMovementAnimation(m_movementAnimation);
}
TrySetMovementAnimation(m_movementAnimation);
}
public UUID[] GetAnimationArray()

View File

@ -218,20 +218,28 @@ namespace OpenSim.Region.Framework.Scenes
private double GetPriorityByBestAvatarResponsiveness(IClientAPI client, ISceneEntity entity)
{
// If this is an update for our own avatar give it the highest priority
if (client.AgentId == entity.UUID)
return 0.0;
if (entity == null)
return double.NaN;
// Use group position for child prims
Vector3 entityPos = entity.AbsolutePosition;
if (entity is SceneObjectPart)
{
SceneObjectGroup group = (entity as SceneObjectPart).ParentGroup;
if (group != null)
entityPos = group.AbsolutePosition;
else
entityPos = entity.AbsolutePosition;
}
else
entityPos = entity.AbsolutePosition;
ScenePresence presence = m_scene.GetScenePresence(client.AgentId);
if (presence != null)
{
// If this is an update for our own avatar give it the highest priority
if (presence == entity)
return 0.0;
// Use group position for child prims
Vector3 entityPos = entity.AbsolutePosition;
if (entity is SceneObjectPart)
entityPos = m_scene.GetGroupByPrim(entity.LocalId).AbsolutePosition;
else
entityPos = entity.AbsolutePosition;
if (!presence.IsChildAgent)
{
if (entity is ScenePresence)

View File

@ -2225,33 +2225,6 @@ namespace OpenSim.Region.Framework.Scenes
{
// WHAT???
m_log.Debug("[SCENEPRESENCE]: AddNewMovement() called on child agent, making root agent!");
// we have to reset the user's child agent connections.
// Likely, here they've lost the eventqueue for other regions so border
// crossings will fail at this point unless we reset them.
List<ulong> regions = new List<ulong>(KnownChildRegionHandles);
regions.Remove(m_scene.RegionInfo.RegionHandle);
MakeRootAgent(new Vector3(127f, 127f, 127f), true);
// Async command
if (m_scene.SceneGridService != null)
{
m_scene.SceneGridService.SendCloseChildAgentConnections(UUID, regions);
// Give the above command some time to try and close the connections.
// this is really an emergency.. so sleep, or we'll get all discombobulated.
System.Threading.Thread.Sleep(500);
}
if (m_scene.SceneGridService != null)
{
IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
if (m_agentTransfer != null)
m_agentTransfer.EnableChildAgents(this);
}
return;
}