From c6619b6f7da21175136a74638f5a09e85dc4ea78 Mon Sep 17 00:00:00 2001 From: Brian McBee Date: Tue, 20 Nov 2007 04:54:19 +0000 Subject: [PATCH] Reverting my POS changes. I need to think this through a bit more. --- OpenSim/Region/Physics/POSPlugin/POSPlugin.cs | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs b/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs index 15b3415966..802b7b2cd1 100644 --- a/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs +++ b/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs @@ -181,8 +181,9 @@ namespace OpenSim.Region.Physics.POSPlugin } bool forcedZ = false; - - float terrainheight = _heightMap[(int)(character.Position.Y + (character._target_velocity.Y * timeStep)) * 256 + (int)(character.Position.X + (character._target_velocity.X * timeStep))]; + character.Position.X = character.Position.X + (character._target_velocity.X * timeStep); + character.Position.Y = character.Position.Y + (character._target_velocity.Y * timeStep); + float terrainheight = _heightMap[(int)character.Position.Y * 256 + (int)character.Position.X]; if (character.Position.Z + (character._target_velocity.Z * timeStep) < terrainheight + 2) { character.Position.Z = terrainheight + 1.0f; @@ -202,24 +203,23 @@ namespace OpenSim.Region.Physics.POSPlugin character.Position.Z = oldposZ; // first try Z axis if (check_all_prims(character)) { - character.Position.Z = oldposZ + 0.5f; // try harder + 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 { forcedZ = true; } } - 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; - } - if (character.Position.Y < 0) {