From 2194b744734bc21f9d9285d18d47164eef4baffa Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Sun, 22 Apr 2007 18:48:45 +0000 Subject: [PATCH] Needs testing. 1. Fixed Update Lock (should now compile) 2. Added support for rescaling a primitive without it jerking to the side. --- OpenSim.RegionServer/SimClient.cs | 3 ++- OpenSim.RegionServer/world/Primitive.cs | 7 +++++++ OpenSim.RegionServer/world/World.cs | 4 ++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/OpenSim.RegionServer/SimClient.cs b/OpenSim.RegionServer/SimClient.cs index d716bd6cc2..4b4132e265 100644 --- a/OpenSim.RegionServer/SimClient.cs +++ b/OpenSim.RegionServer/SimClient.cs @@ -735,8 +735,9 @@ namespace OpenSim { NeedAck.Add(Pack.Header.Sequence, Pack); } - catch (Exception e) + catch (Exception e) // HACKY { + e.ToString(); // Ignore // Seems to throw a exception here occasionally // of 'duplicate key' despite being locked. diff --git a/OpenSim.RegionServer/world/Primitive.cs b/OpenSim.RegionServer/world/Primitive.cs index 8ff66f90ab..6fb5d727b6 100644 --- a/OpenSim.RegionServer/world/Primitive.cs +++ b/OpenSim.RegionServer/world/Primitive.cs @@ -52,7 +52,14 @@ namespace OpenSim.world { set { + LLVector3 offset = (value - primData.Scale); + offset.X /= 2; + offset.Y /= 2; + offset.Z /= 2; + + this.primData.Position += offset; this.primData.Scale = value; + this.dirtyFlag = true; } get diff --git a/OpenSim.RegionServer/world/World.cs b/OpenSim.RegionServer/world/World.cs index 0291467fe2..b0392a6473 100644 --- a/OpenSim.RegionServer/world/World.cs +++ b/OpenSim.RegionServer/world/World.cs @@ -41,7 +41,7 @@ namespace OpenSim.world private string m_regionName; private InventoryCache _inventoryCache; private AssetCache _assetCache; - private int updateLock; + private Object updateLock; /// /// Creates a new World class, and a region to go with it. @@ -53,7 +53,7 @@ namespace OpenSim.world { try { - updateLock = 0; + updateLock = null; m_clientThreads = clientThreads; m_regionHandle = regionHandle; m_regionName = regionName;