aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-04-05 21:25:54 +0100
committerJustin Clark-Casey (justincc)2011-04-05 21:25:54 +0100
commit0e465da187c93e7ff21f91742f75ee9f3b76b04e (patch)
tree0d7fdd229ad942886257d48723b25cf488695f70 /OpenSim
parentreplace magic numbers in llGetParcelPrimCount() with constants (diff)
downloadopensim-SC_OLD-0e465da187c93e7ff21f91742f75ee9f3b76b04e.zip
opensim-SC_OLD-0e465da187c93e7ff21f91742f75ee9f3b76b04e.tar.gz
opensim-SC_OLD-0e465da187c93e7ff21f91742f75ee9f3b76b04e.tar.bz2
opensim-SC_OLD-0e465da187c93e7ff21f91742f75ee9f3b76b04e.tar.xz
remove now unused individual LandData prim counts.
However, the calls to the land management module to record prims need to remain, since they were also being used to return owner object lists, etc. This is probably why prim counts were being done there in the first place.
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Framework/ILandChannel.cs1
-rw-r--r--OpenSim/Framework/ILandObject.cs2
-rw-r--r--OpenSim/Framework/LandData.cs65
-rw-r--r--OpenSim/Framework/Serialization/Tests/LandDataSerializerTests.cs8
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandChannel.cs10
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs39
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandObject.cs83
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs14
-rw-r--r--OpenSim/Region/RegionCombinerModule/RegionCombinerLargeLandChannel.cs5
9 files changed, 31 insertions, 196 deletions
diff --git a/OpenSim/Framework/ILandChannel.cs b/OpenSim/Framework/ILandChannel.cs
index 30bae16..869d4c8 100644
--- a/OpenSim/Framework/ILandChannel.cs
+++ b/OpenSim/Framework/ILandChannel.cs
@@ -77,7 +77,6 @@ namespace OpenSim.Region.Framework.Interfaces
77 /// </param> 77 /// </param>
78 void Clear(bool setupDefaultParcel); 78 void Clear(bool setupDefaultParcel);
79 79
80 bool IsLandPrimCountTainted();
81 bool IsForcefulBansAllowed(); 80 bool IsForcefulBansAllowed();
82 void UpdateLandObject(int localID, LandData data); 81 void UpdateLandObject(int localID, LandData data);
83 void ReturnObjectsInParcel(int localID, uint returnType, UUID[] agentIDs, UUID[] taskIDs, IClientAPI remoteClient); 82 void ReturnObjectsInParcel(int localID, uint returnType, UUID[] agentIDs, UUID[] taskIDs, IClientAPI remoteClient);
diff --git a/OpenSim/Framework/ILandObject.cs b/OpenSim/Framework/ILandObject.cs
index 931e24a..98ea01e 100644
--- a/OpenSim/Framework/ILandObject.cs
+++ b/OpenSim/Framework/ILandObject.cs
@@ -89,7 +89,7 @@ namespace OpenSim.Framework
89 void SendForceObjectSelect(int local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client); 89 void SendForceObjectSelect(int local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client);
90 void SendLandObjectOwners(IClientAPI remote_client); 90 void SendLandObjectOwners(IClientAPI remote_client);
91 void ReturnLandObjects(uint type, UUID[] owners, UUID[] tasks, IClientAPI remote_client); 91 void ReturnLandObjects(uint type, UUID[] owners, UUID[] tasks, IClientAPI remote_client);
92 void ResetLandPrimCounts(); 92 void ResetOverMeRecord();
93 void UpdateLandSold(UUID avatarID, UUID groupID, bool groupOwned, uint AuctionID, int claimprice, int area); 93 void UpdateLandSold(UUID avatarID, UUID groupID, bool groupOwned, uint AuctionID, int claimprice, int area);
94 94
95 void DeedToGroup(UUID groupID); 95 void DeedToGroup(UUID groupID);
diff --git a/OpenSim/Framework/LandData.cs b/OpenSim/Framework/LandData.cs
index a9a493d..145ccdd 100644
--- a/OpenSim/Framework/LandData.cs
+++ b/OpenSim/Framework/LandData.cs
@@ -54,12 +54,10 @@ namespace OpenSim.Framework
54 private int _claimPrice = 0; //Unemplemented 54 private int _claimPrice = 0; //Unemplemented
55 private UUID _globalID = UUID.Zero; 55 private UUID _globalID = UUID.Zero;
56 private UUID _groupID = UUID.Zero; 56 private UUID _groupID = UUID.Zero;
57 private int _groupPrims = 0;
58 private bool _isGroupOwned = false; 57 private bool _isGroupOwned = false;
59 private byte[] _bitmap = new byte[512]; 58 private byte[] _bitmap = new byte[512];
60 private string _description = String.Empty; 59 private string _description = String.Empty;
61 60
62
63 private uint _flags = (uint) ParcelFlags.AllowFly | (uint) ParcelFlags.AllowLandmark | 61 private uint _flags = (uint) ParcelFlags.AllowFly | (uint) ParcelFlags.AllowLandmark |
64 (uint) ParcelFlags.AllowAPrimitiveEntry | 62 (uint) ParcelFlags.AllowAPrimitiveEntry |
65 (uint) ParcelFlags.AllowDeedToGroup | (uint) ParcelFlags.AllowTerraform | 63 (uint) ParcelFlags.AllowDeedToGroup | (uint) ParcelFlags.AllowTerraform |
@@ -72,17 +70,13 @@ namespace OpenSim.Framework
72 private int _localID = 0; 70 private int _localID = 0;
73 private byte _mediaAutoScale = 0; 71 private byte _mediaAutoScale = 0;
74 private UUID _mediaID = UUID.Zero; 72 private UUID _mediaID = UUID.Zero;
75
76 private string _mediaURL = String.Empty; 73 private string _mediaURL = String.Empty;
77 private string _musicURL = String.Empty; 74 private string _musicURL = String.Empty;
78 private int _otherPrims = 0;
79 private UUID _ownerID = UUID.Zero; 75 private UUID _ownerID = UUID.Zero;
80 private int _ownerPrims = 0;
81 private List<ParcelManager.ParcelAccessEntry> _parcelAccessList = new List<ParcelManager.ParcelAccessEntry>(); 76 private List<ParcelManager.ParcelAccessEntry> _parcelAccessList = new List<ParcelManager.ParcelAccessEntry>();
82 private float _passHours = 0; 77 private float _passHours = 0;
83 private int _passPrice = 0; 78 private int _passPrice = 0;
84 private int _salePrice = 0; //Unemeplemented. Parcels price. 79 private int _salePrice = 0; //Unemeplemented. Parcels price.
85 private int _selectedPrims = 0;
86 private int _simwideArea = 0; 80 private int _simwideArea = 0;
87 private int _simwidePrims = 0; 81 private int _simwidePrims = 0;
88 private UUID _snapshotID = UUID.Zero; 82 private UUID _snapshotID = UUID.Zero;
@@ -284,19 +278,6 @@ namespace OpenSim.Framework
284 } 278 }
285 279
286 /// <summary> 280 /// <summary>
287 /// Number of SceneObjectPart that are owned by a Group
288 /// </summary>
289 [XmlIgnore]
290 public int GroupPrims {
291 get {
292 return _groupPrims;
293 }
294 set {
295 _groupPrims = value;
296 }
297 }
298
299 /// <summary>
300 /// Returns true if the Land Parcel is owned by a group 281 /// Returns true if the Land Parcel is owned by a group
301 /// </summary> 282 /// </summary>
302 public bool IsGroupOwned { 283 public bool IsGroupOwned {
@@ -454,20 +435,6 @@ namespace OpenSim.Framework
454 } 435 }
455 436
456 /// <summary> 437 /// <summary>
457 /// Number of SceneObjectPart that are owned by users who do not own the parcel
458 /// and don't have the 'group. These are elegable for AutoReturn collection
459 /// </summary>
460 [XmlIgnore]
461 public int OtherPrims {
462 get {
463 return _otherPrims;
464 }
465 set {
466 _otherPrims = value;
467 }
468 }
469
470 /// <summary>
471 /// Owner Avatar or Group of the parcel. Naturally, all land masses must be 438 /// Owner Avatar or Group of the parcel. Naturally, all land masses must be
472 /// owned by someone 439 /// owned by someone
473 /// </summary> 440 /// </summary>
@@ -481,19 +448,6 @@ namespace OpenSim.Framework
481 } 448 }
482 449
483 /// <summary> 450 /// <summary>
484 /// Number of SceneObjectPart that are owned by the owner of the parcel
485 /// </summary>
486 [XmlIgnore]
487 public int OwnerPrims {
488 get {
489 return _ownerPrims;
490 }
491 set {
492 _ownerPrims = value;
493 }
494 }
495
496 /// <summary>
497 /// List of access data for the parcel. User data, some bitflags, and a time 451 /// List of access data for the parcel. User data, some bitflags, and a time
498 /// </summary> 452 /// </summary>
499 public List<ParcelManager.ParcelAccessEntry> ParcelAccessList { 453 public List<ParcelManager.ParcelAccessEntry> ParcelAccessList {
@@ -542,19 +496,6 @@ namespace OpenSim.Framework
542 } 496 }
543 497
544 /// <summary> 498 /// <summary>
545 /// Number of SceneObjectPart that are currently selected by avatar
546 /// </summary>
547 [XmlIgnore]
548 public int SelectedPrims {
549 get {
550 return _selectedPrims;
551 }
552 set {
553 _selectedPrims = value;
554 }
555 }
556
557 /// <summary>
558 /// Number of meters^2 in the Simulator 499 /// Number of meters^2 in the Simulator
559 /// </summary> 500 /// </summary>
560 [XmlIgnore] 501 [XmlIgnore]
@@ -666,10 +607,6 @@ namespace OpenSim.Framework
666 landData._claimPrice = _claimPrice; 607 landData._claimPrice = _claimPrice;
667 landData._globalID = _globalID; 608 landData._globalID = _globalID;
668 landData._groupID = _groupID; 609 landData._groupID = _groupID;
669 landData._groupPrims = _groupPrims;
670 landData._otherPrims = _otherPrims;
671 landData._ownerPrims = _ownerPrims;
672 landData._selectedPrims = _selectedPrims;
673 landData._isGroupOwned = _isGroupOwned; 610 landData._isGroupOwned = _isGroupOwned;
674 landData._localID = _localID; 611 landData._localID = _localID;
675 landData._landingType = _landingType; 612 landData._landingType = _landingType;
@@ -731,4 +668,4 @@ namespace OpenSim.Framework
731 return land; 668 return land;
732 } 669 }
733 } 670 }
734} 671} \ No newline at end of file
diff --git a/OpenSim/Framework/Serialization/Tests/LandDataSerializerTests.cs b/OpenSim/Framework/Serialization/Tests/LandDataSerializerTests.cs
index 70e87b3..c69c89d 100644
--- a/OpenSim/Framework/Serialization/Tests/LandDataSerializerTests.cs
+++ b/OpenSim/Framework/Serialization/Tests/LandDataSerializerTests.cs
@@ -42,10 +42,7 @@ namespace OpenSim.Framework.Serialization.Tests
42 private LandData landWithParcelAccessList; 42 private LandData landWithParcelAccessList;
43 43
44 private static string preSerialized = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\n<LandData>\n <Area>128</Area>\n <AuctionID>0</AuctionID>\n <AuthBuyerID>00000000-0000-0000-0000-000000000000</AuthBuyerID>\n <Category>10</Category>\n <ClaimDate>0</ClaimDate>\n <ClaimPrice>0</ClaimPrice>\n <GlobalID>54ff9641-dd40-4a2c-b1f1-47dd3af24e50</GlobalID>\n <GroupID>d740204e-bbbf-44aa-949d-02c7d739f6a5</GroupID>\n <IsGroupOwned>False</IsGroupOwned>\n <Bitmap>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</Bitmap>\n <Description>land data to test LandDataSerializer</Description>\n <Flags>536870944</Flags>\n <LandingType>2</LandingType>\n <Name>LandDataSerializerTest Land</Name>\n <Status>0</Status>\n <LocalID>0</LocalID>\n <MediaAutoScale>1</MediaAutoScale>\n <MediaID>d4452578-2f25-4b97-a81b-819af559cfd7</MediaID>\n <MediaURL>http://videos.opensimulator.org/bumblebee.mp4</MediaURL>\n <MusicURL />\n <OwnerID>1b8eedf9-6d15-448b-8015-24286f1756bf</OwnerID>\n <ParcelAccessList />\n <PassHours>0</PassHours>\n <PassPrice>0</PassPrice>\n <SalePrice>0</SalePrice>\n <SnapshotID>00000000-0000-0000-0000-000000000000</SnapshotID>\n <UserLocation>&lt;0, 0, 0&gt;</UserLocation>\n <UserLookAt>&lt;0, 0, 0&gt;</UserLookAt>\n <Dwell>0</Dwell>\n <OtherCleanTime>0</OtherCleanTime>\n</LandData>"; 44 private static string preSerialized = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\n<LandData>\n <Area>128</Area>\n <AuctionID>0</AuctionID>\n <AuthBuyerID>00000000-0000-0000-0000-000000000000</AuthBuyerID>\n <Category>10</Category>\n <ClaimDate>0</ClaimDate>\n <ClaimPrice>0</ClaimPrice>\n <GlobalID>54ff9641-dd40-4a2c-b1f1-47dd3af24e50</GlobalID>\n <GroupID>d740204e-bbbf-44aa-949d-02c7d739f6a5</GroupID>\n <IsGroupOwned>False</IsGroupOwned>\n <Bitmap>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</Bitmap>\n <Description>land data to test LandDataSerializer</Description>\n <Flags>536870944</Flags>\n <LandingType>2</LandingType>\n <Name>LandDataSerializerTest Land</Name>\n <Status>0</Status>\n <LocalID>0</LocalID>\n <MediaAutoScale>1</MediaAutoScale>\n <MediaID>d4452578-2f25-4b97-a81b-819af559cfd7</MediaID>\n <MediaURL>http://videos.opensimulator.org/bumblebee.mp4</MediaURL>\n <MusicURL />\n <OwnerID>1b8eedf9-6d15-448b-8015-24286f1756bf</OwnerID>\n <ParcelAccessList />\n <PassHours>0</PassHours>\n <PassPrice>0</PassPrice>\n <SalePrice>0</SalePrice>\n <SnapshotID>00000000-0000-0000-0000-000000000000</SnapshotID>\n <UserLocation>&lt;0, 0, 0&gt;</UserLocation>\n <UserLookAt>&lt;0, 0, 0&gt;</UserLookAt>\n <Dwell>0</Dwell>\n <OtherCleanTime>0</OtherCleanTime>\n</LandData>";
45 private static string preSerializedWithParcelAccessList = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\n<LandData>\n <Area>128</Area>\n <AuctionID>0</AuctionID>\n <AuthBuyerID>00000000-0000-0000-0000-000000000000</AuthBuyerID>\n <Category>10</Category>\n <ClaimDate>0</ClaimDate>\n <ClaimPrice>0</ClaimPrice>\n <GlobalID>54ff9641-dd40-4a2c-b1f1-47dd3af24e50</GlobalID>\n <GroupID>d740204e-bbbf-44aa-949d-02c7d739f6a5</GroupID>\n <IsGroupOwned>False</IsGroupOwned>\n <Bitmap>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</Bitmap>\n <Description>land data to test LandDataSerializer</Description>\n <Flags>536870944</Flags>\n <LandingType>2</LandingType>\n <Name>LandDataSerializerTest Land</Name>\n <Status>0</Status>\n <LocalID>0</LocalID>\n <MediaAutoScale>1</MediaAutoScale>\n <MediaID>d4452578-2f25-4b97-a81b-819af559cfd7</MediaID>\n <MediaURL>http://videos.opensimulator.org/bumblebee.mp4</MediaURL>\n <MusicURL />\n <OwnerID>1b8eedf9-6d15-448b-8015-24286f1756bf</OwnerID>\n <ParcelAccessList>\n <ParcelAccessEntry>\n <AgentID>62d65d45-c91a-4f77-862c-46557d978b6c</AgentID>\n <Time>2009-10-01T00:00:00</Time>\n <AccessList>2</AccessList>\n </ParcelAccessEntry>\n <ParcelAccessEntry>\n <AgentID>ec2a8d18-2378-4fe0-8b68-2a31b57c481e</AgentID>\n <Time>2010-10-20T00:00:00</Time>\n <AccessList>1</AccessList>\n </ParcelAccessEntry>\n </ParcelAccessList>\n <PassHours>0</PassHours>\n <PassPrice>0</PassPrice>\n <SalePrice>0</SalePrice>\n <SnapshotID>00000000-0000-0000-0000-000000000000</SnapshotID>\n <UserLocation>&lt;0, 0, 0&gt;</UserLocation>\n <UserLookAt>&lt;0, 0, 0&gt;</UserLookAt>\n <Dwell>0</Dwell>\n <OtherCleanTime>0</OtherCleanTime>\n</LandData>"; 45 private static string preSerializedWithParcelAccessList = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\n<LandData>\n <Area>128</Area>\n <AuctionID>0</AuctionID>\n <AuthBuyerID>00000000-0000-0000-0000-000000000000</AuthBuyerID>\n <Category>10</Category>\n <ClaimDate>0</ClaimDate>\n <ClaimPrice>0</ClaimPrice>\n <GlobalID>54ff9641-dd40-4a2c-b1f1-47dd3af24e50</GlobalID>\n <GroupID>d740204e-bbbf-44aa-949d-02c7d739f6a5</GroupID>\n <IsGroupOwned>False</IsGroupOwned>\n <Bitmap>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</Bitmap>\n <Description>land data to test LandDataSerializer</Description>\n <Flags>536870944</Flags>\n <LandingType>2</LandingType>\n <Name>LandDataSerializerTest Land</Name>\n <Status>0</Status>\n <LocalID>0</LocalID>\n <MediaAutoScale>1</MediaAutoScale>\n <MediaID>d4452578-2f25-4b97-a81b-819af559cfd7</MediaID>\n <MediaURL>http://videos.opensimulator.org/bumblebee.mp4</MediaURL>\n <MusicURL />\n <OwnerID>1b8eedf9-6d15-448b-8015-24286f1756bf</OwnerID>\n <ParcelAccessList>\n <ParcelAccessEntry>\n <AgentID>62d65d45-c91a-4f77-862c-46557d978b6c</AgentID>\n <Time>2009-10-01T00:00:00</Time>\n <AccessList>2</AccessList>\n </ParcelAccessEntry>\n <ParcelAccessEntry>\n <AgentID>ec2a8d18-2378-4fe0-8b68-2a31b57c481e</AgentID>\n <Time>2010-10-20T00:00:00</Time>\n <AccessList>1</AccessList>\n </ParcelAccessEntry>\n </ParcelAccessList>\n <PassHours>0</PassHours>\n <PassPrice>0</PassPrice>\n <SalePrice>0</SalePrice>\n <SnapshotID>00000000-0000-0000-0000-000000000000</SnapshotID>\n <UserLocation>&lt;0, 0, 0&gt;</UserLocation>\n <UserLookAt>&lt;0, 0, 0&gt;</UserLookAt>\n <Dwell>0</Dwell>\n <OtherCleanTime>0</OtherCleanTime>\n</LandData>";
46
47
48
49 46
50 [SetUp] 47 [SetUp]
51 public void setup() 48 public void setup()
@@ -62,7 +59,6 @@ namespace OpenSim.Framework.Serialization.Tests
62 this.land.ClaimPrice = 0; 59 this.land.ClaimPrice = 0;
63 this.land.GlobalID = new UUID("54ff9641-dd40-4a2c-b1f1-47dd3af24e50"); 60 this.land.GlobalID = new UUID("54ff9641-dd40-4a2c-b1f1-47dd3af24e50");
64 this.land.GroupID = new UUID("d740204e-bbbf-44aa-949d-02c7d739f6a5"); 61 this.land.GroupID = new UUID("d740204e-bbbf-44aa-949d-02c7d739f6a5");
65 this.land.GroupPrims = 0;
66 this.land.Description = "land data to test LandDataSerializer"; 62 this.land.Description = "land data to test LandDataSerializer";
67 this.land.Flags = (uint)(ParcelFlags.AllowDamage | ParcelFlags.AllowVoiceChat); 63 this.land.Flags = (uint)(ParcelFlags.AllowDamage | ParcelFlags.AllowVoiceChat);
68 this.land.LandingType = (byte)LandingType.Direct; 64 this.land.LandingType = (byte)LandingType.Direct;
@@ -132,4 +128,4 @@ namespace OpenSim.Framework.Serialization.Tests
132 "Reified LandData.Name != original LandData.Name (pre-serialized with parcel access list)"); 128 "Reified LandData.Name != original LandData.Name (pre-serialized with parcel access list)");
133 } 129 }
134 } 130 }
135} 131} \ No newline at end of file
diff --git a/OpenSim/Region/CoreModules/World/Land/LandChannel.cs b/OpenSim/Region/CoreModules/World/Land/LandChannel.cs
index 7d990c2..7fc358d 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandChannel.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandChannel.cs
@@ -133,16 +133,6 @@ namespace OpenSim.Region.CoreModules.World.Land
133 return new List<ILandObject>(); 133 return new List<ILandObject>();
134 } 134 }
135 135
136 public bool IsLandPrimCountTainted()
137 {
138 if (m_landManagementModule != null)
139 {
140 return m_landManagementModule.IsLandPrimCountTainted();
141 }
142
143 return false;
144 }
145
146 public bool IsForcefulBansAllowed() 136 public bool IsForcefulBansAllowed()
147 { 137 {
148 if (m_landManagementModule != null) 138 if (m_landManagementModule != null)
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
index 2b5f7a0..adfac05 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
@@ -89,7 +89,6 @@ namespace OpenSim.Region.CoreModules.World.Land
89 /// </value> 89 /// </value>
90 private readonly Dictionary<int, ILandObject> m_landList = new Dictionary<int, ILandObject>(); 90 private readonly Dictionary<int, ILandObject> m_landList = new Dictionary<int, ILandObject>();
91 91
92 private bool m_landPrimCountTainted;
93 private int m_lastLandLocalID = LandChannel.START_LAND_LOCAL_ID - 1; 92 private int m_lastLandLocalID = LandChannel.START_LAND_LOCAL_ID - 1;
94 93
95 private bool m_allowedForcefulBans = true; 94 private bool m_allowedForcefulBans = true;
@@ -122,18 +121,18 @@ namespace OpenSim.Region.CoreModules.World.Land
122 121
123 m_scene.EventManager.OnParcelPrimCountAdd += EventManagerOnParcelPrimCountAdd; 122 m_scene.EventManager.OnParcelPrimCountAdd += EventManagerOnParcelPrimCountAdd;
124 m_scene.EventManager.OnParcelPrimCountUpdate += EventManagerOnParcelPrimCountUpdate; 123 m_scene.EventManager.OnParcelPrimCountUpdate += EventManagerOnParcelPrimCountUpdate;
124 m_scene.EventManager.OnObjectBeingRemovedFromScene += EventManagerOnObjectBeingRemovedFromScene;
125 m_scene.EventManager.OnRequestParcelPrimCountUpdate += EventManagerOnRequestParcelPrimCountUpdate;
126
125 m_scene.EventManager.OnAvatarEnteringNewParcel += EventManagerOnAvatarEnteringNewParcel; 127 m_scene.EventManager.OnAvatarEnteringNewParcel += EventManagerOnAvatarEnteringNewParcel;
126 m_scene.EventManager.OnClientMovement += EventManagerOnClientMovement; 128 m_scene.EventManager.OnClientMovement += EventManagerOnClientMovement;
127 m_scene.EventManager.OnValidateLandBuy += EventManagerOnValidateLandBuy; 129 m_scene.EventManager.OnValidateLandBuy += EventManagerOnValidateLandBuy;
128 m_scene.EventManager.OnLandBuy += EventManagerOnLandBuy; 130 m_scene.EventManager.OnLandBuy += EventManagerOnLandBuy;
129 m_scene.EventManager.OnNewClient += EventManagerOnNewClient; 131 m_scene.EventManager.OnNewClient += EventManagerOnNewClient;
130 m_scene.EventManager.OnSignificantClientMovement += EventManagerOnSignificantClientMovement; 132 m_scene.EventManager.OnSignificantClientMovement += EventManagerOnSignificantClientMovement;
131 m_scene.EventManager.OnObjectBeingRemovedFromScene += EventManagerOnObjectBeingRemovedFromScene;
132 m_scene.EventManager.OnNoticeNoLandDataFromStorage += EventManagerOnNoLandDataFromStorage; 133 m_scene.EventManager.OnNoticeNoLandDataFromStorage += EventManagerOnNoLandDataFromStorage;
133 m_scene.EventManager.OnIncomingLandDataFromStorage += EventManagerOnIncomingLandDataFromStorage; 134 m_scene.EventManager.OnIncomingLandDataFromStorage += EventManagerOnIncomingLandDataFromStorage;
134 m_scene.EventManager.OnSetAllowForcefulBan += EventManagerOnSetAllowedForcefulBan; 135 m_scene.EventManager.OnSetAllowForcefulBan += EventManagerOnSetAllowedForcefulBan;
135 m_scene.EventManager.OnRequestParcelPrimCountUpdate += EventManagerOnRequestParcelPrimCountUpdate;
136 m_scene.EventManager.OnParcelPrimCountTainted += EventManagerOnParcelPrimCountTainted;
137 m_scene.EventManager.OnRegisterCaps += EventManagerOnRegisterCaps; 136 m_scene.EventManager.OnRegisterCaps += EventManagerOnRegisterCaps;
138 m_scene.EventManager.OnPluginConsole += EventManagerOnPluginConsole; 137 m_scene.EventManager.OnPluginConsole += EventManagerOnPluginConsole;
139 138
@@ -779,34 +778,24 @@ namespace OpenSim.Region.CoreModules.World.Land
779 778
780 #region Parcel Modification 779 #region Parcel Modification
781 780
782 public void ResetAllLandPrimCounts() 781 public void ResetOverMeRecord()
783 { 782 {
784 lock (m_landList) 783 lock (m_landList)
785 { 784 {
786 foreach (LandObject p in m_landList.Values) 785 foreach (LandObject p in m_landList.Values)
787 { 786 {
788 p.ResetLandPrimCounts(); 787 p.ResetOverMeRecord();
789 } 788 }
790 } 789 }
791 } 790 }
792 791
793 public void EventManagerOnParcelPrimCountTainted()
794 {
795 m_landPrimCountTainted = true;
796 }
797
798 public bool IsLandPrimCountTainted()
799 {
800 return m_landPrimCountTainted;
801 }
802
803 public void EventManagerOnParcelPrimCountAdd(SceneObjectGroup obj) 792 public void EventManagerOnParcelPrimCountAdd(SceneObjectGroup obj)
804 { 793 {
805 Vector3 position = obj.AbsolutePosition; 794 Vector3 position = obj.AbsolutePosition;
806 ILandObject landUnderPrim = GetLandObject(position.X, position.Y); 795 ILandObject landUnderPrim = GetLandObject(position.X, position.Y);
807 if (landUnderPrim != null) 796 if (landUnderPrim != null)
808 { 797 {
809 ((LandObject)landUnderPrim).AddPrimToCount(obj); 798 ((LandObject)landUnderPrim).AddPrimOverMe(obj);
810 } 799 }
811 } 800 }
812 801
@@ -816,7 +805,7 @@ namespace OpenSim.Region.CoreModules.World.Land
816 { 805 {
817 foreach (LandObject p in m_landList.Values) 806 foreach (LandObject p in m_landList.Values)
818 { 807 {
819 p.RemovePrimFromCount(obj); 808 p.RemovePrimFromOverMe(obj);
820 } 809 }
821 } 810 }
822 } 811 }
@@ -849,8 +838,7 @@ namespace OpenSim.Region.CoreModules.World.Land
849 foreach (LandObject p in landOwnersAndParcels[owner]) 838 foreach (LandObject p in landOwnersAndParcels[owner])
850 { 839 {
851 simArea += p.LandData.Area; 840 simArea += p.LandData.Area;
852 simPrims += p.LandData.OwnerPrims + p.LandData.OtherPrims + p.LandData.GroupPrims + 841 simPrims += p.PrimCounts.Total;
853 p.LandData.SelectedPrims;
854 } 842 }
855 843
856 foreach (LandObject p in landOwnersAndParcels[owner]) 844 foreach (LandObject p in landOwnersAndParcels[owner])
@@ -867,7 +855,7 @@ namespace OpenSim.Region.CoreModules.World.Land
867// "[LAND MANAGEMENT MODULE]: Triggered EventManagerOnParcelPrimCountUpdate() for {0}", 855// "[LAND MANAGEMENT MODULE]: Triggered EventManagerOnParcelPrimCountUpdate() for {0}",
868// m_scene.RegionInfo.RegionName); 856// m_scene.RegionInfo.RegionName);
869 857
870 ResetAllLandPrimCounts(); 858 ResetOverMeRecord();
871 EntityBase[] entities = m_scene.Entities.GetEntities(); 859 EntityBase[] entities = m_scene.Entities.GetEntities();
872 foreach (EntityBase obj in entities) 860 foreach (EntityBase obj in entities)
873 { 861 {
@@ -880,15 +868,13 @@ namespace OpenSim.Region.CoreModules.World.Land
880 } 868 }
881 } 869 }
882 FinalizeLandPrimCountUpdate(); 870 FinalizeLandPrimCountUpdate();
883 m_landPrimCountTainted = false;
884 } 871 }
885 872
886 public void EventManagerOnRequestParcelPrimCountUpdate() 873 public void EventManagerOnRequestParcelPrimCountUpdate()
887 { 874 {
888 ResetAllLandPrimCounts(); 875 ResetOverMeRecord();
889 m_scene.EventManager.TriggerParcelPrimCountUpdate(); 876 m_scene.EventManager.TriggerParcelPrimCountUpdate();
890 FinalizeLandPrimCountUpdate(); 877 FinalizeLandPrimCountUpdate();
891 m_landPrimCountTainted = false;
892 } 878 }
893 879
894 /// <summary> 880 /// <summary>
@@ -952,8 +938,6 @@ namespace OpenSim.Region.CoreModules.World.Land
952 m_landList[startLandObjectIndex].ForceUpdateLandInfo(); 938 m_landList[startLandObjectIndex].ForceUpdateLandInfo();
953 } 939 }
954 940
955 EventManagerOnParcelPrimCountTainted();
956
957 //Now add the new land object 941 //Now add the new land object
958 ILandObject result = AddLandObject(newLand); 942 ILandObject result = AddLandObject(newLand);
959 UpdateLandObject(startLandObject.LandData.LocalID, startLandObject.LandData); 943 UpdateLandObject(startLandObject.LandData.LocalID, startLandObject.LandData);
@@ -1020,7 +1004,6 @@ namespace OpenSim.Region.CoreModules.World.Land
1020 performFinalLandJoin(masterLandObject, slaveLandObject); 1004 performFinalLandJoin(masterLandObject, slaveLandObject);
1021 } 1005 }
1022 } 1006 }
1023 EventManagerOnParcelPrimCountTainted();
1024 1007
1025 masterLandObject.SendLandUpdateToAvatarsOverMe(); 1008 masterLandObject.SendLandUpdateToAvatarsOverMe();
1026 } 1009 }
diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
index e7bdb19..9803bdf 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
@@ -64,8 +64,6 @@ namespace OpenSim.Region.CoreModules.World.Land
64 64
65 #endregion 65 #endregion
66 66
67 #region ILandObject Members
68
69 public int GetPrimsFree() 67 public int GetPrimsFree()
70 { 68 {
71 m_scene.EventManager.TriggerParcelPrimCountUpdate(); 69 m_scene.EventManager.TriggerParcelPrimCountUpdate();
@@ -213,6 +211,7 @@ namespace OpenSim.Region.CoreModules.World.Land
213 return simMax; 211 return simMax;
214 } 212 }
215 } 213 }
214
216 #endregion 215 #endregion
217 216
218 #region Packet Request Handling 217 #region Packet Request Handling
@@ -909,9 +908,12 @@ namespace OpenSim.Region.CoreModules.World.Land
909 908
910 lock (primsOverMe) 909 lock (primsOverMe)
911 { 910 {
911// m_log.DebugFormat(
912// "[LAND OBJECT]: Request for SendLandObjectOwners() from {0} with {1} known prims on region",
913// remote_client.Name, primsOverMe.Count);
914
912 try 915 try
913 { 916 {
914
915 foreach (SceneObjectGroup obj in primsOverMe) 917 foreach (SceneObjectGroup obj in primsOverMe)
916 { 918 {
917 try 919 try
@@ -950,6 +952,7 @@ namespace OpenSim.Region.CoreModules.World.Land
950 public Dictionary<UUID, int> GetLandObjectOwners() 952 public Dictionary<UUID, int> GetLandObjectOwners()
951 { 953 {
952 Dictionary<UUID, int> ownersAndCount = new Dictionary<UUID, int>(); 954 Dictionary<UUID, int> ownersAndCount = new Dictionary<UUID, int>();
955
953 lock (primsOverMe) 956 lock (primsOverMe)
954 { 957 {
955 try 958 try
@@ -986,8 +989,10 @@ namespace OpenSim.Region.CoreModules.World.Land
986 989
987 public void ReturnLandObjects(uint type, UUID[] owners, UUID[] tasks, IClientAPI remote_client) 990 public void ReturnLandObjects(uint type, UUID[] owners, UUID[] tasks, IClientAPI remote_client)
988 { 991 {
989 Dictionary<UUID,List<SceneObjectGroup>> returns = 992// m_log.DebugFormat(
990 new Dictionary<UUID,List<SceneObjectGroup>>(); 993// "[LAND OBJECT]: Request to return objects in {0} from {1}", LandData.Name, remote_client.Name);
994
995 Dictionary<UUID,List<SceneObjectGroup>> returns = new Dictionary<UUID,List<SceneObjectGroup>>();
991 996
992 lock (primsOverMe) 997 lock (primsOverMe)
993 { 998 {
@@ -1060,83 +1065,25 @@ namespace OpenSim.Region.CoreModules.World.Land
1060 1065
1061 #region Object Adding/Removing from Parcel 1066 #region Object Adding/Removing from Parcel
1062 1067
1063 public void ResetLandPrimCounts() 1068 public void ResetOverMeRecord()
1064 { 1069 {
1065 LandData.GroupPrims = 0;
1066 LandData.OwnerPrims = 0;
1067 LandData.OtherPrims = 0;
1068 LandData.SelectedPrims = 0;
1069
1070
1071 lock (primsOverMe) 1070 lock (primsOverMe)
1072 primsOverMe.Clear(); 1071 primsOverMe.Clear();
1073 } 1072 }
1074 1073
1075 public void AddPrimToCount(SceneObjectGroup obj) 1074 public void AddPrimOverMe(SceneObjectGroup obj)
1076 { 1075 {
1077
1078 UUID prim_owner = obj.OwnerID;
1079 int prim_count = obj.PrimCount;
1080
1081 if (obj.IsSelected)
1082 {
1083 LandData.SelectedPrims += prim_count;
1084 }
1085 else
1086 {
1087 if (prim_owner == LandData.OwnerID)
1088 {
1089 LandData.OwnerPrims += prim_count;
1090 }
1091 else if ((obj.GroupID == LandData.GroupID ||
1092 prim_owner == LandData.GroupID) &&
1093 LandData.GroupID != UUID.Zero)
1094 {
1095 LandData.GroupPrims += prim_count;
1096 }
1097 else
1098 {
1099 LandData.OtherPrims += prim_count;
1100 }
1101 }
1102
1103 lock (primsOverMe) 1076 lock (primsOverMe)
1104 primsOverMe.Add(obj); 1077 primsOverMe.Add(obj);
1105 } 1078 }
1106 1079
1107 public void RemovePrimFromCount(SceneObjectGroup obj) 1080 public void RemovePrimFromOverMe(SceneObjectGroup obj)
1108 { 1081 {
1109 lock (primsOverMe) 1082 lock (primsOverMe)
1110 { 1083 primsOverMe.Remove(obj);
1111 if (primsOverMe.Contains(obj))
1112 {
1113 UUID prim_owner = obj.OwnerID;
1114 int prim_count = obj.PrimCount;
1115
1116 if (prim_owner == LandData.OwnerID)
1117 {
1118 LandData.OwnerPrims -= prim_count;
1119 }
1120 else if (obj.GroupID == LandData.GroupID ||
1121 prim_owner == LandData.GroupID)
1122 {
1123 LandData.GroupPrims -= prim_count;
1124 }
1125 else
1126 {
1127 LandData.OtherPrims -= prim_count;
1128 }
1129
1130 primsOverMe.Remove(obj);
1131 }
1132 }
1133 } 1084 }
1134 1085
1135 #endregion 1086 #endregion
1136
1137 #endregion
1138
1139 #endregion
1140 1087
1141 /// <summary> 1088 /// <summary>
1142 /// Set the media url for this land parcel 1089 /// Set the media url for this land parcel
@@ -1157,5 +1104,7 @@ namespace OpenSim.Region.CoreModules.World.Land
1157 LandData.MusicURL = url; 1104 LandData.MusicURL = url;
1158 SendLandUpdateToAvatarsOverMe(); 1105 SendLandUpdateToAvatarsOverMe();
1159 } 1106 }
1107
1108 #endregion
1160 } 1109 }
1161} 1110}
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 35a798e..a62d6d7 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1428,20 +1428,6 @@ namespace OpenSim.Region.Framework.Scenes
1428 } 1428 }
1429 1429
1430 /// <summary> 1430 /// <summary>
1431 /// Recount SceneObjectPart in parcel aabb
1432 /// </summary>
1433 private void UpdateLand()
1434 {
1435 if (LandChannel != null)
1436 {
1437 if (LandChannel.IsLandPrimCountTainted())
1438 {
1439 EventManager.TriggerParcelPrimCountUpdate();
1440 }
1441 }
1442 }
1443
1444 /// <summary>
1445 /// Update the terrain if it needs to be updated. 1431 /// Update the terrain if it needs to be updated.
1446 /// </summary> 1432 /// </summary>
1447 private void UpdateTerrain() 1433 private void UpdateTerrain()
diff --git a/OpenSim/Region/RegionCombinerModule/RegionCombinerLargeLandChannel.cs b/OpenSim/Region/RegionCombinerModule/RegionCombinerLargeLandChannel.cs
index 98e5453..a133e51 100644
--- a/OpenSim/Region/RegionCombinerModule/RegionCombinerLargeLandChannel.cs
+++ b/OpenSim/Region/RegionCombinerModule/RegionCombinerLargeLandChannel.cs
@@ -130,11 +130,6 @@ public class RegionCombinerLargeLandChannel : ILandChannel
130 } 130 }
131 } 131 }
132 132
133 public bool IsLandPrimCountTainted()
134 {
135 return RootRegionLandChannel.IsLandPrimCountTainted();
136 }
137
138 public bool IsForcefulBansAllowed() 133 public bool IsForcefulBansAllowed()
139 { 134 {
140 return RootRegionLandChannel.IsForcefulBansAllowed(); 135 return RootRegionLandChannel.IsForcefulBansAllowed();