Retain velocity on walking crossing - adapted from Ubit's reverted patch
parent
88c4c7283f
commit
1183310a05
|
@ -929,7 +929,15 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
AbsolutePosition = pos;
|
AbsolutePosition = pos;
|
||||||
|
|
||||||
AddToPhysicalScene(isFlying);
|
if (m_teleportFlags == TeleportFlags.Default)
|
||||||
|
{
|
||||||
|
Vector3 vel = Velocity;
|
||||||
|
AddToPhysicalScene(isFlying);
|
||||||
|
if (PhysicsActor != null)
|
||||||
|
PhysicsActor.SetMomentum(vel);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
AddToPhysicalScene(isFlying);
|
||||||
|
|
||||||
if (ForceFly)
|
if (ForceFly)
|
||||||
{
|
{
|
||||||
|
@ -980,6 +988,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
// If we don't reset the movement flag here, an avatar that crosses to a neighbouring sim and returns will
|
// If we don't reset the movement flag here, an avatar that crosses to a neighbouring sim and returns will
|
||||||
// stall on the border crossing since the existing child agent will still have the last movement
|
// stall on the border crossing since the existing child agent will still have the last movement
|
||||||
// recorded, which stops the input from being processed.
|
// recorded, which stops the input from being processed.
|
||||||
|
|
||||||
MovementFlag = 0;
|
MovementFlag = 0;
|
||||||
|
|
||||||
m_scene.EventManager.TriggerOnMakeRootAgent(this);
|
m_scene.EventManager.TriggerOnMakeRootAgent(this);
|
||||||
|
@ -1020,6 +1029,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
// as teleporting back
|
// as teleporting back
|
||||||
TeleportFlags = TeleportFlags.Default;
|
TeleportFlags = TeleportFlags.Default;
|
||||||
|
|
||||||
|
MovementFlag = 0;
|
||||||
|
|
||||||
// It looks like Animator is set to null somewhere, and MakeChild
|
// It looks like Animator is set to null somewhere, and MakeChild
|
||||||
// is called after that. Probably in aborted teleports.
|
// is called after that. Probably in aborted teleports.
|
||||||
if (Animator == null)
|
if (Animator == null)
|
||||||
|
@ -1027,6 +1038,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
else
|
else
|
||||||
Animator.ResetAnimations();
|
Animator.ResetAnimations();
|
||||||
|
|
||||||
|
|
||||||
// m_log.DebugFormat(
|
// m_log.DebugFormat(
|
||||||
// "[SCENE PRESENCE]: Downgrading root agent {0}, {1} to a child agent in {2}",
|
// "[SCENE PRESENCE]: Downgrading root agent {0}, {1} to a child agent in {2}",
|
||||||
// Name, UUID, m_scene.RegionInfo.RegionName);
|
// Name, UUID, m_scene.RegionInfo.RegionName);
|
||||||
|
|
Loading…
Reference in New Issue