From 26909477fc4e0a093a8c2ed32564fe92d5fffaca Mon Sep 17 00:00:00 2001 From: Brian McBee Date: Tue, 20 Nov 2007 04:04:07 +0000 Subject: POS physics: removed "stickiness" from avatars so they can slide along surfaces instead of sticking to them. --- OpenSim/Region/Physics/POSPlugin/POSPlugin.cs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs b/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs index 572ffdd..4a44438 100644 --- a/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs +++ b/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs @@ -179,7 +179,15 @@ namespace OpenSim.Region.Physics.POSPlugin bool forcedZ = false; character.Position.X = character.Position.X + (character._target_velocity.X * timeStep); + if (check_all_prims(character)) + { + character.Position.X = oldposX; + } character.Position.Y = character.Position.Y + (character._target_velocity.Y * timeStep); + if (check_all_prims(character)) + { + character.Position.Y = oldposY; + } float terrainheight = _heightMap[(int)character.Position.Y * 256 + (int)character.Position.X]; if (character.Position.Z + (character._target_velocity.Z * timeStep) < terrainheight + 2) { @@ -201,16 +209,6 @@ namespace OpenSim.Region.Physics.POSPlugin if (check_all_prims(character)) { character.Position.Z = oldposZ + 0.4f; // try harder - if (check_all_prims(character)) - { - character.Position.X = oldposX; - character.Position.Y = oldposY; - character.Position.Z = oldposZ; - } - else - { - forcedZ = true; - } } else { -- cgit v1.1