aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorAdam Frisby2007-04-22 18:48:45 +0000
committerAdam Frisby2007-04-22 18:48:45 +0000
commit2194b744734bc21f9d9285d18d47164eef4baffa (patch)
tree44c2d61934540e14b3aceec68b8db39be0f65335
parentAdded lock around World.Update to prevent multiple updates occuring simultane... (diff)
downloadopensim-SC_OLD-2194b744734bc21f9d9285d18d47164eef4baffa.zip
opensim-SC_OLD-2194b744734bc21f9d9285d18d47164eef4baffa.tar.gz
opensim-SC_OLD-2194b744734bc21f9d9285d18d47164eef4baffa.tar.bz2
opensim-SC_OLD-2194b744734bc21f9d9285d18d47164eef4baffa.tar.xz
Needs testing.
1. Fixed Update Lock (should now compile) 2. Added support for rescaling a primitive without it jerking to the side.
-rw-r--r--OpenSim.RegionServer/SimClient.cs3
-rw-r--r--OpenSim.RegionServer/world/Primitive.cs7
-rw-r--r--OpenSim.RegionServer/world/World.cs4
3 files changed, 11 insertions, 3 deletions
diff --git a/OpenSim.RegionServer/SimClient.cs b/OpenSim.RegionServer/SimClient.cs
index d716bd6..4b4132e 100644
--- a/OpenSim.RegionServer/SimClient.cs
+++ b/OpenSim.RegionServer/SimClient.cs
@@ -735,8 +735,9 @@ namespace OpenSim
735 { 735 {
736 NeedAck.Add(Pack.Header.Sequence, Pack); 736 NeedAck.Add(Pack.Header.Sequence, Pack);
737 } 737 }
738 catch (Exception e) 738 catch (Exception e) // HACKY
739 { 739 {
740 e.ToString();
740 // Ignore 741 // Ignore
741 // Seems to throw a exception here occasionally 742 // Seems to throw a exception here occasionally
742 // of 'duplicate key' despite being locked. 743 // of 'duplicate key' despite being locked.
diff --git a/OpenSim.RegionServer/world/Primitive.cs b/OpenSim.RegionServer/world/Primitive.cs
index 8ff66f9..6fb5d72 100644
--- a/OpenSim.RegionServer/world/Primitive.cs
+++ b/OpenSim.RegionServer/world/Primitive.cs
@@ -52,7 +52,14 @@ namespace OpenSim.world
52 { 52 {
53 set 53 set
54 { 54 {
55 LLVector3 offset = (value - primData.Scale);
56 offset.X /= 2;
57 offset.Y /= 2;
58 offset.Z /= 2;
59
60 this.primData.Position += offset;
55 this.primData.Scale = value; 61 this.primData.Scale = value;
62
56 this.dirtyFlag = true; 63 this.dirtyFlag = true;
57 } 64 }
58 get 65 get
diff --git a/OpenSim.RegionServer/world/World.cs b/OpenSim.RegionServer/world/World.cs
index 0291467..b0392a6 100644
--- a/OpenSim.RegionServer/world/World.cs
+++ b/OpenSim.RegionServer/world/World.cs
@@ -41,7 +41,7 @@ namespace OpenSim.world
41 private string m_regionName; 41 private string m_regionName;
42 private InventoryCache _inventoryCache; 42 private InventoryCache _inventoryCache;
43 private AssetCache _assetCache; 43 private AssetCache _assetCache;
44 private int updateLock; 44 private Object updateLock;
45 45
46 /// <summary> 46 /// <summary>
47 /// Creates a new World class, and a region to go with it. 47 /// Creates a new World class, and a region to go with it.
@@ -53,7 +53,7 @@ namespace OpenSim.world
53 { 53 {
54 try 54 try
55 { 55 {
56 updateLock = 0; 56 updateLock = null;
57 m_clientThreads = clientThreads; 57 m_clientThreads = clientThreads;
58 m_regionHandle = regionHandle; 58 m_regionHandle = regionHandle;
59 m_regionName = regionName; 59 m_regionName = regionName;