From d3050724d8fdb0de5b87285b782de9c4d2f9bac7 Mon Sep 17 00:00:00 2001 From: dan miller Date: Fri, 21 Sep 2007 02:31:36 +0000 Subject: physics-related fixes; should stabilize border crossings --- OpenSim/Region/Environment/Scenes/ScenePresence.cs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Environment/Scenes/ScenePresence.cs') diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index c0b9a35..1a38244 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs @@ -336,7 +336,7 @@ namespace OpenSim.Region.Environment.Scenes } } - public void MakeAvatar(LLVector3 pos, bool isFlying) + public void MakeAvatarPhysical(LLVector3 pos, bool isFlying) { newAvatar = true; childAgent = false; @@ -363,6 +363,7 @@ namespace OpenSim.Region.Environment.Scenes private void RemoveFromPhysicalScene() { m_scene.PhysScene.RemoveAvatar( this.PhysicsActor ); + this.PhysicsActor = null; } /// @@ -429,6 +430,15 @@ namespace OpenSim.Region.Environment.Scenes /// public void HandleAgentUpdate(IClientAPI remoteClient, uint flags, LLQuaternion bodyRotation) { + if (childAgent) + { + Console.WriteLine("DEBUG: HandleAgentUpdate: child agent"); + return; + } + if(PhysicsActor==null) { + Console.WriteLine("DEBUG: HandleAgentUpdate: null PhysicsActor!"); + return; + } int i = 0; bool update_movementflag = false; bool update_rotation = false; @@ -501,6 +511,11 @@ namespace OpenSim.Region.Environment.Scenes protected void AddNewMovement(Vector3 vec, Quaternion rotation) { + if (childAgent) + { + Console.WriteLine("DEBUG: AddNewMovement: child agent"); + return; + } NewForce newVelocity = new NewForce(); Vector3 direc = rotation*vec; direc.Normalize(); -- cgit v1.1