From 6702b0373371fd2a546a580ad82f5cc175fa29e0 Mon Sep 17 00:00:00 2001
From: Jeff Ames
Date: Wed, 19 Dec 2007 08:44:25 +0000
Subject: Misc. cleanup: * added Util.Clip(value, min, max) * modified asset
 cache's numPackets calculation to use max packet size (600) instead of 1000 *
 removed a few magic numbers

---
 OpenSim/Region/ClientStack/ClientView.cs           | 29 ++-----
 .../Region/Environment/Scenes/AvatarAppearance.cs  |  4 +-
 OpenSim/Region/Environment/Scenes/ScenePresence.cs | 36 ++++++---
 .../BasicPhysicsPlugin/BasicPhysicsPlugin.cs       | 13 ++--
 OpenSim/Region/Physics/OdePlugin/OdePlugin.cs      | 88 +++++++++++-----------
 OpenSim/Region/Physics/POSPlugin/POSPlugin.cs      |  7 +-
 OpenSim/Region/ScriptEngine/Common/LSL_Types.cs    | 22 ++++--
 7 files changed, 101 insertions(+), 98 deletions(-)

(limited to 'OpenSim/Region')

diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs
index 3c35270..75c4187 100644
--- a/OpenSim/Region/ClientStack/ClientView.cs
+++ b/OpenSim/Region/ClientStack/ClientView.cs
@@ -102,7 +102,6 @@ namespace OpenSim.Region.ClientStack
         protected LLVector3 m_startpos;
         protected EndPoint m_userEndPoint;
 
-
         /* Properties */
         public LLUUID SecureSessionId
         {
@@ -181,7 +180,7 @@ namespace OpenSim.Region.ClientStack
 
             // While working on this, the BlockingQueue had me fooled for a bit.
             // The Blocking queue causes the thread to stop until there's something 
-            // in it to process.  it's an on-purpose threadlock though because 
+            // in it to process.  It's an on-purpose threadlock though because 
             // without it, the clientloop will suck up all sim resources.
 
             m_packetQueue = new PacketQueue();
@@ -193,7 +192,6 @@ namespace OpenSim.Region.ClientStack
             m_clientThread.Start();
         }
 
-
         public void SetDebug(int newDebug)
         {
             m_debug = newDebug;
@@ -236,10 +234,8 @@ namespace OpenSim.Region.ClientStack
         public void Kick(string message)
         {
             KickUserPacket kupack = new KickUserPacket();
-
             kupack.UserInfo.AgentID = AgentId;
             kupack.UserInfo.SessionID = SessionId;
-
             kupack.TargetBlock.TargetIP = (uint)0;
             kupack.TargetBlock.TargetPort = (ushort)0;
             kupack.UserInfo.Reason = Helpers.StringToField(message);
@@ -345,7 +341,6 @@ namespace OpenSim.Region.ClientStack
                 QueItem nextPacket = m_packetQueue.Dequeue();
                 if (nextPacket.Incoming)
                 {
-                    //is a incoming packet
                     if (nextPacket.Packet.Type != PacketType.AgentUpdate)
                     {
                         m_packetsReceived++;
@@ -532,7 +527,6 @@ namespace OpenSim.Region.ClientStack
         public event RegionInfoRequest OnRegionInfoRequest;
         public event EstateCovenantRequest OnEstateCovenantRequest;
         
-
         #region Scene/Avatar to Client
 
         /// <summary>
@@ -611,7 +605,6 @@ namespace OpenSim.Region.ClientStack
             SendChatMessage(Helpers.StringToField(message), type, fromPos, fromName, fromAgentID);
         }
 
-
         public void SendChatMessage(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID)
         {
             ChatFromSimulatorPacket reply = new ChatFromSimulatorPacket();
@@ -666,7 +659,7 @@ namespace OpenSim.Region.ClientStack
 
                 for (int y = 0; y < 16; y++)
                 {
-                    for (int x = 0; x < 16; x = x + 4)
+                    for (int x = 0; x < 16; x += 4)
                     {
                         patches[0] = x + 0 + y*16;
                         patches[1] = x + 1 + y*16;
@@ -766,7 +759,6 @@ namespace OpenSim.Region.ClientStack
             newSimPack.Info = new CrossedRegionPacket.InfoBlock();
             newSimPack.Info.Position = pos;
             newSimPack.Info.LookAt = look;
-            // new LLVector3(0.0f, 0.0f, 0.0f);	// copied from Avatar.cs - SHOULD BE DYNAMIC!!!!!!!!!!
             newSimPack.RegionData = new CrossedRegionPacket.RegionDataBlock();
             newSimPack.RegionData.RegionHandle = newRegionHandle;
             byte[] byteIP = externalIPEndPoint.Address.GetAddressBytes();
@@ -775,7 +767,6 @@ namespace OpenSim.Region.ClientStack
             newSimPack.RegionData.SimIP += (uint) byteIP[1] << 8;
             newSimPack.RegionData.SimIP += (uint) byteIP[0];
             newSimPack.RegionData.SimPort = (ushort) externalIPEndPoint.Port;
-            //newSimPack.RegionData.SeedCapability = new byte[0];
             newSimPack.RegionData.SeedCapability = Helpers.StringToField(capsURL);
 
             OutPacket(newSimPack, ThrottleOutPacketType.Task);
@@ -823,7 +814,6 @@ namespace OpenSim.Region.ClientStack
             teleport.Info.SimAccess = simAccess;
 
             teleport.Info.SeedCapability = Helpers.StringToField(capsURL);
-            //teleport.Info.SeedCapability = new byte[0];
 
             IPAddress oIP = newRegionEndPoint.Address;
             byte[] byteIP = oIP.GetAddressBytes();
@@ -847,7 +837,6 @@ namespace OpenSim.Region.ClientStack
             TeleportFailedPacket tpFailed = new TeleportFailedPacket();
             tpFailed.Info.AgentID = this.AgentId;
             tpFailed.Info.Reason = Helpers.StringToField("unknown failure of teleport");
-
             OutPacket(tpFailed, ThrottleOutPacketType.Task);
         }
 
@@ -946,7 +935,6 @@ namespace OpenSim.Region.ClientStack
                 descend.ItemData[i].SaleType = 0;
                 descend.ItemData[i].Type = (sbyte)item.assetType;
                 descend.ItemData[i].CRC =
-
                     Helpers.InventoryCRC(descend.ItemData[i].CreationDate, descend.ItemData[i].SaleType,
                                          descend.ItemData[i].InvType, descend.ItemData[i].Type,
                                          descend.ItemData[i].AssetID, descend.ItemData[i].GroupID, descend.ItemData[i].SalePrice,
@@ -1228,7 +1216,7 @@ namespace OpenSim.Region.ClientStack
             Console.WriteLine("SunPhase: {0}", phase);
             SimulatorViewerTimeMessagePacket viewertime = new SimulatorViewerTimeMessagePacket();
             //viewertime.TimeInfo.SecPerDay = 86400;
-            // viewertime.TimeInfo.SecPerYear = 31536000;
+            //viewertime.TimeInfo.SecPerYear = 31536000;
             viewertime.TimeInfo.SecPerDay = 1000;
             viewertime.TimeInfo.SecPerYear = 365000;
             viewertime.TimeInfo.SunPhase = 1;
@@ -1252,14 +1240,9 @@ namespace OpenSim.Region.ClientStack
                 {
                     yValue = yValue - 1.2f;
                 }
-                if (yValue > 1)
-                {
-                    yValue = 1;
-                }
-                if (yValue < 0)
-                {
-                    yValue = 0;
-                }
+
+                yValue = Util.Clip(yValue, 0, 1);
+
                 if (sunPhase < 14)
                 {
                     yValue = 1 - yValue;
diff --git a/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs b/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs
index b027845..2ec4dbe 100644
--- a/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs
+++ b/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs
@@ -88,7 +88,6 @@ namespace OpenSim.Region.Environment.Scenes
             m_textureEntry = GetDefaultTextureEntry();
         }
 
-
         /// <summary>
         /// 
         /// </summary>
@@ -109,7 +108,6 @@ namespace OpenSim.Region.Environment.Scenes
             // (float)m_visualParams[125] = LegLength
            m_avatarHeight = (1.50856f + (((float)m_visualParams[25] / 255.0f) * (2.525506f - 1.50856f)))
                + (((float)m_visualParams[125] / 255.0f) / 1.5f);
-           
         }
 
         /// <summary>
@@ -119,7 +117,7 @@ namespace OpenSim.Region.Environment.Scenes
         public void SendAppearanceToOtherAgent(ScenePresence avatar)
         {
             avatar.ControllingClient.SendAppearance(m_scenePresenceID, m_visualParams,
-                                                          m_textureEntry.ToBytes());
+                                                    m_textureEntry.ToBytes());
         }
 
         public void SetWearable(IClientAPI client, int wearableId, AvatarWearable wearable)
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 91b6463..89701d7 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -1233,25 +1233,37 @@ namespace OpenSim.Region.Environment.Scenes
             uint neighbourx = m_regionInfo.RegionLocX;
             uint neighboury = m_regionInfo.RegionLocY;
 
-            if (pos.X < 1.7F)
+            // distance to edge that will trigger crossing
+            const float boundaryDistance = 1.7f;
+
+            // distance into new region to place avatar
+            const float enterDistance = 0.1f;
+
+            // region size
+            // TODO: this should be hard-coded in some common place
+            const float regionWidth = 256;
+            const float regionHeight = 256;
+
+            if (pos.X < boundaryDistance)
             {
-                neighbourx -= 1;
-                newpos.X = 255.9F;
+                neighbourx--;
+                newpos.X = regionWidth - enterDistance;
             }
-            if (pos.X > 254.3F)
+            else if (pos.X > regionWidth - boundaryDistance)
             {
-                neighbourx += 1;
-                newpos.X = 0.1F;
+                neighbourx++;
+                newpos.X = enterDistance;
             }
-            if (pos.Y < 1.7F)
+
+            if (pos.Y < boundaryDistance)
             {
-                neighboury -= 1;
-                newpos.Y = 255.9F;
+                neighboury--;
+                newpos.Y = regionHeight - enterDistance;
             }
-            if (pos.Y > 254.3F)
+            else if (pos.Y > regionHeight - boundaryDistance)
             {
-                neighboury += 1;
-                newpos.Y = 0.1F;
+                neighboury++;
+                newpos.Y = enterDistance;
             }
 
             LLVector3 vel = m_velocity;
diff --git a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
index df3ebb9..545f461 100644
--- a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
+++ b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
@@ -125,8 +125,9 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin
             {
                 BasicActor actor = _actors[i];
 
-                actor.Position.X = actor.Position.X + (actor.Velocity.X*timeStep);
-                actor.Position.Y = actor.Position.Y + (actor.Velocity.Y*timeStep);
+                actor.Position.X += actor.Velocity.X * timeStep;
+                actor.Position.Y += actor.Velocity.Y * timeStep;
+
                 if (actor.Position.Y < 0)
                 {
                     actor.Position.Y = 0.1F;
@@ -145,18 +146,18 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin
                     actor.Position.X = 255.9F;
                 }
 
-                float height = _heightMap[(int) actor.Position.Y*256 + (int) actor.Position.X] + 1.0f;
+                float height = _heightMap[(int) actor.Position.Y * 256 + (int) actor.Position.X] + 1.0f;
                 if (actor.Flying)
                 {
-                    if (actor.Position.Z + (actor.Velocity.Z*timeStep) <
-                        _heightMap[(int) actor.Position.Y*256 + (int) actor.Position.X] + 2)
+                    if (actor.Position.Z + (actor.Velocity.Z * timeStep) <
+                        _heightMap[(int) actor.Position.Y * 256 + (int) actor.Position.X] + 2)
                     {
                         actor.Position.Z = height;
                         actor.Velocity.Z = 0;
                     }
                     else
                     {
-                        actor.Position.Z = actor.Position.Z + (actor.Velocity.Z*timeStep);
+                        actor.Position.Z += actor.Velocity.Z * timeStep;
                     }
                 }
                 else
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
index 0cbd4d6..305a930 100644
--- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
+++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
@@ -75,6 +75,10 @@ namespace OpenSim.Region.Physics.OdePlugin
 
     public class OdeScene : PhysicsScene
     {
+        // TODO: this should be hard-coded in some common place
+        private const uint m_regionWidth = 256;
+        private const uint m_regionHeight = 256;
+
         private static float ODE_STEPSIZE = 0.004f;
         private static bool RENDER_FLAG = false;
         private static float metersInSpace = 29.9f;
@@ -167,12 +171,9 @@ namespace OpenSim.Region.Physics.OdePlugin
             
         }
 
-        
-
         public override void Initialise(IMesher meshmerizer)
         {
             mesher = meshmerizer;
-
         }
 
         public string whichspaceamIin(PhysicsVector pos)
@@ -196,7 +197,6 @@ namespace OpenSim.Region.Physics.OdePlugin
                 //Collide all geoms in each space..   
                 //if (d.GeomIsSpace(g1)) d.SpaceCollide(g1, IntPtr.Zero, nearCallback);
                 //if (d.GeomIsSpace(g2)) d.SpaceCollide(g2, IntPtr.Zero, nearCallback);
-
             } 
             else 
             {
@@ -206,14 +206,12 @@ namespace OpenSim.Region.Physics.OdePlugin
                 IntPtr b1 = d.GeomGetBody(g1);
                 IntPtr b2 = d.GeomGetBody(g2);
 
-
                 if (g1 == g2)
                     return; // Can't collide with yourself
 
                 if (b1 != IntPtr.Zero && b2 != IntPtr.Zero && d.AreConnectedExcluding(b1, b2, d.JointType.Contact))
                     return;
 
-
                 d.GeomClassID id = d.GeomGetClass(g1);
                 
                 String name1 = null;
@@ -230,8 +228,6 @@ namespace OpenSim.Region.Physics.OdePlugin
 
                 if (id == d.GeomClassID.TriMeshClass)
                 {
-                    
-
     //               MainLog.Instance.Verbose("near: A collision was detected between {1} and {2}", 0, name1, name2);
                     //System.Console.WriteLine("near: A collision was detected between {1} and {2}", 0, name1, name2);
                 }
@@ -297,8 +293,6 @@ namespace OpenSim.Region.Physics.OdePlugin
                             TerrainContact.geom = contacts[i];
                             joint = d.JointCreateContact(world, contactgroup, ref TerrainContact);
                         }
-                            
-                        
                     }
                     else
                     {
@@ -311,9 +305,7 @@ namespace OpenSim.Region.Physics.OdePlugin
                         {
                             contact.geom = contacts[i];
                             joint = d.JointCreateContact(world, contactgroup, ref contact);
-                            
                         }
-                        
                     }
                     
                     
@@ -333,17 +325,12 @@ namespace OpenSim.Region.Physics.OdePlugin
 
         private void collision_optimized(float timeStep)
         {
-
             foreach (OdeCharacter chr in _characters)
             {
-
-                
                 chr.IsColliding = false;
                 chr.CollidingGround = false;
                 chr.CollidingObj = false;
                 d.SpaceCollide2(space, chr.Shell, IntPtr.Zero, nearCallback);
-                
-               
             }
             // If the sim is running slow this frame, 
             // don't process collision for prim!
@@ -422,11 +409,11 @@ namespace OpenSim.Region.Physics.OdePlugin
                 }
             }
         }
+
         public void RemovePrimThreadLocked(OdePrim prim)
         {
             lock (OdeLock)
             {
-                
                 if (prim.IsPhysical)
                 {
                     prim.disableBody();
@@ -479,6 +466,7 @@ namespace OpenSim.Region.Physics.OdePlugin
             }
                     
         }
+
         public void resetSpaceArrayItemToZero(IntPtr space)
         {
             for (int x = 0; x < staticPrimspace.GetLength(0); x++)
@@ -490,6 +478,7 @@ namespace OpenSim.Region.Physics.OdePlugin
                 }
             }
         }
+
         public void resetSpaceArrayItemToZero(int arrayitemX,int arrayitemY)
         {
             staticPrimspace[arrayitemX, arrayitemY] = IntPtr.Zero;
@@ -524,6 +513,7 @@ namespace OpenSim.Region.Physics.OdePlugin
                     if (!(sGeomIsIn.Equals(null)))
                     {
                         if (sGeomIsIn != (IntPtr)0)
+                        {
                             if (d.GeomIsSpace(currentspace))
                             {
                                 d.SpaceRemove(sGeomIsIn, geom);
@@ -532,6 +522,7 @@ namespace OpenSim.Region.Physics.OdePlugin
                             {
                                 MainLog.Instance.Verbose("Physics", "Invalid Scene passed to 'recalculatespace':" + sGeomIsIn.ToString() + " Geom:" + geom.ToString());
                             }
+                        }
                     }
                 }
 
@@ -586,7 +577,6 @@ namespace OpenSim.Region.Physics.OdePlugin
                             else
                             {
                                 MainLog.Instance.Verbose("Physics", "Invalid Scene passed to 'recalculatespace':" + sGeomIsIn.ToString() + " Geom:" + geom.ToString());
-
                             }
                         }
                     }
@@ -625,6 +615,7 @@ namespace OpenSim.Region.Physics.OdePlugin
             //locationbasedspace = space;
             return locationbasedspace;
         }
+
         public int[] calculateSpaceArrayItemFromPos(PhysicsVector pos)
         {
             int[] returnint = new int[2];
@@ -682,7 +673,7 @@ namespace OpenSim.Region.Physics.OdePlugin
         }
 
         public void addActivePrim(OdePrim activatePrim)
-         {
+        {
             // adds active prim..   (ones that should be iterated over in collisions_optimized
 
                  _activeprims.Add(activatePrim);
@@ -902,17 +893,18 @@ namespace OpenSim.Region.Physics.OdePlugin
             get { return (false); // for now we won't be multithreaded
             }
         }
+
         public float[] ResizeTerrain512(float[] heightMap)
         {
             float[] returnarr = new float[262144];
-            float[,] resultarr = new float[256, 256];
+            float[,] resultarr = new float[m_regionWidth, m_regionHeight];
 
             // Filling out the array into it's multi-dimentional components
-            for (int y = 0; y < 256; y++)
+            for (int y = 0; y < m_regionHeight; y++)
             {
-                for (int x = 0; x < 256; x++)
+                for (int x = 0; x < m_regionWidth; x++)
                 {
-                    resultarr[y,x] = heightMap[y * 256 + x];
+                    resultarr[y,x] = heightMap[y * m_regionWidth + x];
                 }
             }
 
@@ -976,17 +968,17 @@ namespace OpenSim.Region.Physics.OdePlugin
             // on single loop.
 
             float[,] resultarr2 = new float[512, 512];
-            for (int y = 0; y < 256; y++)
+            for (int y = 0; y < m_regionHeight; y++)
             {
-                for (int x = 0; x < 256; x++)
+                for (int x = 0; x < m_regionWidth; x++)
                 {
                     resultarr2[y*2,x*2] = resultarr[y,x];
 
-                    if (y < 256)
+                    if (y < m_regionHeight)
                     {
-                        if (y + 1 < 256)
+                        if (y + 1 < m_regionHeight)
                         {
-                            if (x + 1 < 256)
+                            if (x + 1 < m_regionWidth)
                             {
                                 resultarr2[(y * 2) + 1, x * 2] = ((resultarr[y, x] + resultarr[y + 1, x] + resultarr[y, x+1] + resultarr[y+1, x+1])/4);
                             }
@@ -1000,11 +992,11 @@ namespace OpenSim.Region.Physics.OdePlugin
                             resultarr2[(y * 2) + 1, x * 2] = resultarr[y, x];
                         }
                     }
-                    if (x < 256)
+                    if (x < m_regionWidth)
                     {
-                        if (x + 1 < 256)
+                        if (x + 1 < m_regionWidth)
                         {
-                            if (y + 1 < 256)
+                            if (y + 1 < m_regionHeight)
                             {
                                 resultarr2[y * 2, (x * 2) + 1] = ((resultarr[y, x] + resultarr[y + 1, x] + resultarr[y, x + 1] + resultarr[y + 1, x + 1]) / 4);
                             }
@@ -1018,9 +1010,9 @@ namespace OpenSim.Region.Physics.OdePlugin
                             resultarr2[y * 2, (x * 2) + 1] = resultarr[y, x];
                         }
                     }
-                    if (x < 256 && y < 256)
+                    if (x < m_regionWidth && y < m_regionHeight)
                     {
-                        if ((x + 1 < 256) && (y + 1 < 256))
+                        if ((x + 1 < m_regionWidth) && (y + 1 < m_regionHeight))
                         {
                             resultarr2[(y * 2) + 1, (x * 2) + 1] = ((resultarr[y, x] + resultarr[y + 1, x] + resultarr[y, x + 1] + resultarr[y + 1, x + 1]) / 4);
                         }
@@ -1052,21 +1044,26 @@ namespace OpenSim.Region.Physics.OdePlugin
             // dbm (danx0r) -- heightmap x,y must be swapped for Ode (should fix ODE, but for now...)
             // also, creating a buffer zone of one extra sample all around
 
+            const uint heightmapWidth = m_regionWidth + 2;
+            const uint heightmapHeight = m_regionHeight + 2;
+            const uint heightmapWidthSamples = 2 * m_regionWidth + 2;
+            const uint heightmapHeightSamples = 2 * m_regionHeight + 2;
+            const float scale = 1.0f;
+            const float offset = 0.0f;
+            const float thickness = 2.0f;
+            const int wrap = 0;
+
             //Double resolution
             heightMap = ResizeTerrain512(heightMap);
-            for (int x = 0; x < 514; x++)
+            for (int x = 0; x < heightmapWidthSamples; x++)
             {
-                for (int y = 0; y < 514; y++)
+                for (int y = 0; y < heightmapHeightSamples; y++)
                 {
-                    int xx = x - 1;
-                    if (xx < 0) xx = 0;
-                    if (xx > 511) xx = 511;
-                    int yy = y - 1;
-                    if (yy < 0) yy = 0;
-                    if (yy > 511) yy = 511;
+                    int xx = Util.Clip(x - 1, 0, 511);
+                    int yy = Util.Clip(y - 1, 0, 511);
 
                     double val = (double) heightMap[yy*512 + xx];
-                    _heightmap[x*514 + y] = val;
+                    _heightmap[x*heightmapHeightSamples + y] = val;
                 }
             }
 
@@ -1077,8 +1074,9 @@ namespace OpenSim.Region.Physics.OdePlugin
                     d.SpaceRemove(space, LandGeom);
                 }
                 IntPtr HeightmapData = d.GeomHeightfieldDataCreate();
-                d.GeomHeightfieldDataBuildDouble(HeightmapData, _heightmap, 0, 258, 258, 514, 514, 1.0f, 0.0f, 2.0f, 0);
-                d.GeomHeightfieldDataSetBounds(HeightmapData, 256, 256);
+                d.GeomHeightfieldDataBuildDouble(HeightmapData, _heightmap, 0, heightmapWidth, heightmapHeight,
+                                                 (int) heightmapWidthSamples, (int) heightmapHeightSamples, scale, offset, thickness, wrap);
+                d.GeomHeightfieldDataSetBounds(HeightmapData, m_regionWidth, m_regionHeight);
                 LandGeom = d.CreateHeightfield(space, HeightmapData, 1);
                 geom_name_map[LandGeom] = "Terrain";
 
diff --git a/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs b/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs
index efc30fe..a565598 100644
--- a/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs
+++ b/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs
@@ -166,7 +166,6 @@ namespace OpenSim.Region.Physics.POSPlugin
 
         public override void AddPhysicsActorTaint(PhysicsActor prim)
         {
-
         }
 
         public override float Simulate(float timeStep)
@@ -187,8 +186,8 @@ namespace OpenSim.Region.Physics.POSPlugin
                 }
 
                 bool forcedZ = false;
-                character.Position.X = character.Position.X + (character._target_velocity.X * timeStep);
-                character.Position.Y = character.Position.Y + (character._target_velocity.Y * timeStep);
+                character.Position.X += character._target_velocity.X * timeStep;
+                character.Position.Y += character._target_velocity.Y * timeStep;
 
                 if (character.Position.Y < 0)
                 {
@@ -216,7 +215,7 @@ namespace OpenSim.Region.Physics.POSPlugin
                 }
                 else
                 {
-                    character.Position.Z = character.Position.Z + (character._target_velocity.Z * timeStep);
+                    character.Position.Z += character._target_velocity.Z * timeStep;
                 }
 
                 /// this is it -- the magic you've all been waiting for!  Ladies and gentlemen -- 
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs
index 136b613..3a0b8ed 100644
--- a/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs
+++ b/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs
@@ -60,20 +60,22 @@ namespace OpenSim.Region.ScriptEngine.Common
             {
                 return "<" + x.ToString() + ", " + y.ToString() + ", " + z.ToString() + ">";
             }
+
             public static bool operator ==(Vector3 lhs, Vector3 rhs)
             {
                 return (lhs.x == rhs.x && lhs.y == rhs.y && lhs.z == rhs.z);
             }
+
             public static bool operator !=(Vector3 lhs, Vector3 rhs)
             {
                 return !(lhs == rhs);
             }
+
             public override int GetHashCode()
             {
                 return (x.GetHashCode() ^ y.GetHashCode() ^ z.GetHashCode());
             }
 
-
             public override bool Equals(object o)
             {
                 if (!(o is Vector3)) return false;
@@ -91,10 +93,12 @@ namespace OpenSim.Region.ScriptEngine.Common
             {
                 return new Vector3(lhs.x + rhs.x, lhs.y + rhs.y, lhs.z + rhs.z);
             } 
+
             public static Vector3 operator -(Vector3 lhs, Vector3 rhs)
             {
                 return new Vector3(lhs.x - rhs.x, lhs.y - rhs.y, lhs.z - rhs.z);
             }
+
             public static Vector3 operator *(Vector3 lhs, Vector3 rhs)
             {
                 return new Vector3(lhs.x * rhs.x, lhs.y * rhs.y, lhs.z * rhs.z);
@@ -145,6 +149,7 @@ namespace OpenSim.Region.ScriptEngine.Common
 
                 return new Vector3(result.x, result.y, result.z);
             }
+
             // I *think* this is how it works....
             public static Vector3 operator /(Vector3 vec, Quaternion quat)
             {
@@ -163,6 +168,7 @@ namespace OpenSim.Region.ScriptEngine.Common
             {
                 return (v1.x * v2.x) + (v1.y * v2.y) + (v1.z * v2.z);
             }
+
             public static Vector3 Cross(Vector3 v1, Vector3 v2)
             {
                 return new Vector3
@@ -172,10 +178,12 @@ namespace OpenSim.Region.ScriptEngine.Common
                     v1.x * v2.y - v1.y * v2.x
                 );
             }
+
             public static float Mag(Vector3 v)
             {
                 return (float)Math.Sqrt(v.x * v.y + v.y * v.y + v.z * v.z);
             }
+
             public static Vector3 Norm(Vector3 vector)
             {
                 float mag = Mag(vector);
@@ -215,7 +223,6 @@ namespace OpenSim.Region.ScriptEngine.Common
                 return (x.GetHashCode() ^ y.GetHashCode() ^ z.GetHashCode() ^ s.GetHashCode());
             }
 
-
             public override bool Equals(object o)
             {
                 if (!(o is Quaternion)) return false;
@@ -224,6 +231,7 @@ namespace OpenSim.Region.ScriptEngine.Common
 
                 return x == quaternion.x && y == quaternion.y && z == quaternion.z && s == quaternion.s;
             }
+
             public override string ToString()
             {
                 return "<" + x.ToString() + ", " + y.ToString() + ", " + z.ToString() + ", " + s.ToString() + ">";
@@ -257,19 +265,23 @@ namespace OpenSim.Region.ScriptEngine.Common
         public class list
         {
             private object[] m_data;
+
             public list(params object[] args)
             {
                 m_data = new object[args.Length];
                 m_data = args;
             }
+
             public int Length
             {
                 get { return m_data.Length; }
             }
+
             public object[] Data
             {
                 get { return m_data; }
             }
+
             public static list operator +(list a, list b)
             {
                 object[] tmp;
@@ -278,6 +290,7 @@ namespace OpenSim.Region.ScriptEngine.Common
                 b.Data.CopyTo(tmp, a.Length);
                 return new list(tmp);
             }
+
             public list GetSublist(int start, int end)
             {
                 Console.WriteLine("GetSublist(" + start.ToString() + "," + end.ToString() + ")");
@@ -292,8 +305,7 @@ namespace OpenSim.Region.ScriptEngine.Common
                     end = m_data.Length + end;
                 }
 
-                // Case start < end
-
+                // Case start <= end
                 if (start <= end)
                 {
                     if (start >= m_data.Length)
@@ -350,6 +362,7 @@ namespace OpenSim.Region.ScriptEngine.Common
                 output = output + "]";
                 return output;
             }
+
             public override string ToString()
             {
                 string output;
@@ -366,5 +379,4 @@ namespace OpenSim.Region.ScriptEngine.Common
             }
         }
     }
-
 }
-- 
cgit v1.1