aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Modules
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Modules')
-rw-r--r--OpenSim/Region/Environment/Modules/Avatar/Currency/SampleMoney/SampleMoneyModule.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/Avatar/Voice/AsterixVoice/AsteriskVoiceModule.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/Avatar/Voice/SIPVoice/SIPVoiceModule.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/World/Land/LandChannel.cs4
-rw-r--r--OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs80
-rw-r--r--OpenSim/Region/Environment/Modules/World/Land/LandObject.cs132
-rw-r--r--OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs12
7 files changed, 117 insertions, 117 deletions
diff --git a/OpenSim/Region/Environment/Modules/Avatar/Currency/SampleMoney/SampleMoneyModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Currency/SampleMoney/SampleMoneyModule.cs
index 57524a9..0d22ab9 100644
--- a/OpenSim/Region/Environment/Modules/Avatar/Currency/SampleMoney/SampleMoneyModule.cs
+++ b/OpenSim/Region/Environment/Modules/Avatar/Currency/SampleMoney/SampleMoneyModule.cs
@@ -1423,7 +1423,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Currency.SampleMoney
1423 else 1423 else
1424 { 1424 {
1425 ILandObject obj = avatar.Scene.LandChannel.GetLandObject(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y); 1425 ILandObject obj = avatar.Scene.LandChannel.GetLandObject(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y);
1426 if ((obj.landData.landFlags & (uint)Parcel.ParcelFlags.AllowDamage) != 0) 1426 if ((obj.landData.Flags & (uint)Parcel.ParcelFlags.AllowDamage) != 0)
1427 { 1427 {
1428 avatar.Invulnerable = false; 1428 avatar.Invulnerable = false;
1429 } 1429 }
diff --git a/OpenSim/Region/Environment/Modules/Avatar/Voice/AsterixVoice/AsteriskVoiceModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Voice/AsterixVoice/AsteriskVoiceModule.cs
index 80936f6..1f41a92 100644
--- a/OpenSim/Region/Environment/Modules/Avatar/Voice/AsterixVoice/AsteriskVoiceModule.cs
+++ b/OpenSim/Region/Environment/Modules/Avatar/Voice/AsterixVoice/AsteriskVoiceModule.cs
@@ -178,7 +178,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Voice.AsterixVoice
178 LandData land = m_scene.GetLandData(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y); 178 LandData land = m_scene.GetLandData(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y);
179 179
180 LLSDParcelVoiceInfoResponse parcelVoiceInfo = 180 LLSDParcelVoiceInfoResponse parcelVoiceInfo =
181 new LLSDParcelVoiceInfoResponse(regionName, land.localID, creds); 181 new LLSDParcelVoiceInfoResponse(regionName, land.LocalID, creds);
182 182
183 string r = LLSDHelpers.SerialiseLLSDReply(parcelVoiceInfo); 183 string r = LLSDHelpers.SerialiseLLSDReply(parcelVoiceInfo);
184 184
diff --git a/OpenSim/Region/Environment/Modules/Avatar/Voice/SIPVoice/SIPVoiceModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Voice/SIPVoice/SIPVoiceModule.cs
index 865894e..c6852f7 100644
--- a/OpenSim/Region/Environment/Modules/Avatar/Voice/SIPVoice/SIPVoiceModule.cs
+++ b/OpenSim/Region/Environment/Modules/Avatar/Voice/SIPVoice/SIPVoiceModule.cs
@@ -147,7 +147,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Voice.SIPVoice
147 LandData land = m_scene.GetLandData(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y); 147 LandData land = m_scene.GetLandData(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y);
148 148
149 LLSDParcelVoiceInfoResponse parcelVoiceInfo = 149 LLSDParcelVoiceInfoResponse parcelVoiceInfo =
150 new LLSDParcelVoiceInfoResponse(regionName, land.localID, creds); 150 new LLSDParcelVoiceInfoResponse(regionName, land.LocalID, creds);
151 151
152 string r = LLSDHelpers.SerialiseLLSDReply(parcelVoiceInfo); 152 string r = LLSDHelpers.SerialiseLLSDReply(parcelVoiceInfo);
153 m_log.DebugFormat("[VOICE][PARCELVOICE]: {0}", r); 153 m_log.DebugFormat("[VOICE][PARCELVOICE]: {0}", r);
diff --git a/OpenSim/Region/Environment/Modules/World/Land/LandChannel.cs b/OpenSim/Region/Environment/Modules/World/Land/LandChannel.cs
index b83de23..d519d4d 100644
--- a/OpenSim/Region/Environment/Modules/World/Land/LandChannel.cs
+++ b/OpenSim/Region/Environment/Modules/World/Land/LandChannel.cs
@@ -89,7 +89,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
89 return m_landManagementModule.GetLandObject(x_float, y_float); 89 return m_landManagementModule.GetLandObject(x_float, y_float);
90 } 90 }
91 ILandObject obj = new LandObject(LLUUID.Zero, false, m_scene); 91 ILandObject obj = new LandObject(LLUUID.Zero, false, m_scene);
92 obj.landData.landName = "NO LAND"; 92 obj.landData.Name = "NO LAND";
93 return obj; 93 return obj;
94 } 94 }
95 95
@@ -101,7 +101,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
101 return m_landManagementModule.GetLandObject(x, y); 101 return m_landManagementModule.GetLandObject(x, y);
102 } 102 }
103 ILandObject obj = new LandObject(LLUUID.Zero, false, m_scene); 103 ILandObject obj = new LandObject(LLUUID.Zero, false, m_scene);
104 obj.landData.landName = "NO LAND"; 104 obj.landData.Name = "NO LAND";
105 return obj; 105 return obj;
106 } 106 }
107 107
diff --git a/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs b/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs
index b2456a2..ca03035 100644
--- a/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs
+++ b/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs
@@ -162,8 +162,8 @@ namespace OpenSim.Region.Environment.Modules.World.Land
162 ILandObject fullSimParcel = new LandObject(LLUUID.Zero, false, m_scene); 162 ILandObject fullSimParcel = new LandObject(LLUUID.Zero, false, m_scene);
163 163
164 fullSimParcel.setLandBitmap(fullSimParcel.getSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); 164 fullSimParcel.setLandBitmap(fullSimParcel.getSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize));
165 fullSimParcel.landData.ownerID = m_scene.RegionInfo.MasterAvatarAssignedUUID; 165 fullSimParcel.landData.OwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID;
166 fullSimParcel.landData.claimDate = Util.UnixTimeSinceEpoch(); 166 fullSimParcel.landData.ClaimDate = Util.UnixTimeSinceEpoch();
167 AddLandObject(fullSimParcel); 167 AddLandObject(fullSimParcel);
168 } 168 }
169 169
@@ -279,18 +279,18 @@ namespace OpenSim.Region.Environment.Modules.World.Land
279 if (!avatar.IsChildAgent) 279 if (!avatar.IsChildAgent)
280 { 280 {
281 over.sendLandUpdateToClient(avatar.ControllingClient); 281 over.sendLandUpdateToClient(avatar.ControllingClient);
282 m_scene.EventManager.TriggerAvatarEnteringNewParcel(avatar, over.landData.localID, 282 m_scene.EventManager.TriggerAvatarEnteringNewParcel(avatar, over.landData.LocalID,
283 m_scene.RegionInfo.RegionID); 283 m_scene.RegionInfo.RegionID);
284 } 284 }
285 } 285 }
286 286
287 if (avatar.currentParcelUUID != over.landData.globalID) 287 if (avatar.currentParcelUUID != over.landData.GlobalID)
288 { 288 {
289 if (!avatar.IsChildAgent) 289 if (!avatar.IsChildAgent)
290 { 290 {
291 over.sendLandUpdateToClient(avatar.ControllingClient); 291 over.sendLandUpdateToClient(avatar.ControllingClient);
292 avatar.currentParcelUUID = over.landData.globalID; 292 avatar.currentParcelUUID = over.landData.GlobalID;
293 m_scene.EventManager.TriggerAvatarEnteringNewParcel(avatar, over.landData.localID, 293 m_scene.EventManager.TriggerAvatarEnteringNewParcel(avatar, over.landData.LocalID,
294 m_scene.RegionInfo.RegionID); 294 m_scene.RegionInfo.RegionID);
295 } 295 }
296 } 296 }
@@ -316,7 +316,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
316 if (clientAvatar.AbsolutePosition.Z < LandChannel.BAN_LINE_SAFETY_HIEGHT && 316 if (clientAvatar.AbsolutePosition.Z < LandChannel.BAN_LINE_SAFETY_HIEGHT &&
317 clientAvatar.sentMessageAboutRestrictedParcelFlyingDown) 317 clientAvatar.sentMessageAboutRestrictedParcelFlyingDown)
318 { 318 {
319 handleAvatarChangingParcel(clientAvatar, parcel.landData.localID, m_scene.RegionInfo.RegionID); 319 handleAvatarChangingParcel(clientAvatar, parcel.landData.LocalID, m_scene.RegionInfo.RegionID);
320 //They are going below the safety line! 320 //They are going below the safety line!
321 if (!parcel.isBannedFromLand(clientAvatar.UUID)) 321 if (!parcel.isBannedFromLand(clientAvatar.UUID))
322 { 322 {
@@ -362,7 +362,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
362 { 362 {
363 if (landList.ContainsKey(landLocalID)) 363 if (landList.ContainsKey(landLocalID))
364 { 364 {
365 if (agentID == landList[landLocalID].landData.ownerID) 365 if (agentID == landList[landLocalID].landData.OwnerID)
366 { 366 {
367 landList[landLocalID].updateAccessList(flags, entries, remote_client); 367 landList[landLocalID].updateAccessList(flags, entries, remote_client);
368 } 368 }
@@ -388,7 +388,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
388 public ILandObject AddLandObject(ILandObject new_land) 388 public ILandObject AddLandObject(ILandObject new_land)
389 { 389 {
390 lastLandLocalID++; 390 lastLandLocalID++;
391 new_land.landData.localID = lastLandLocalID; 391 new_land.landData.LocalID = lastLandLocalID;
392 landList.Add(lastLandLocalID, new_land.Copy()); 392 landList.Add(lastLandLocalID, new_land.Copy());
393 393
394 394
@@ -430,7 +430,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
430 } 430 }
431 } 431 }
432 432
433 m_scene.EventManager.TriggerLandObjectRemoved(landList[local_id].landData.globalID); 433 m_scene.EventManager.TriggerLandObjectRemoved(landList[local_id].landData.GlobalID);
434 landList.Remove(local_id); 434 landList.Remove(local_id);
435 } 435 }
436 436
@@ -445,13 +445,13 @@ namespace OpenSim.Region.Environment.Modules.World.Land
445 { 445 {
446 if (landBitmapSlave[x, y]) 446 if (landBitmapSlave[x, y])
447 { 447 {
448 landIDList[x, y] = master.landData.localID; 448 landIDList[x, y] = master.landData.LocalID;
449 } 449 }
450 } 450 }
451 } 451 }
452 452
453 removeLandObject(slave.landData.localID); 453 removeLandObject(slave.landData.LocalID);
454 UpdateLandObject(master.landData.localID, master.landData); 454 UpdateLandObject(master.landData.LocalID, master.landData);
455 } 455 }
456 456
457 public ILandObject GetLandObject(int parcelLocalID) 457 public ILandObject GetLandObject(int parcelLocalID)
@@ -550,15 +550,15 @@ namespace OpenSim.Region.Environment.Modules.World.Land
550 Dictionary<LLUUID, List<LandObject>> landOwnersAndParcels = new Dictionary<LLUUID, List<LandObject>>(); 550 Dictionary<LLUUID, List<LandObject>> landOwnersAndParcels = new Dictionary<LLUUID, List<LandObject>>();
551 foreach (LandObject p in landList.Values) 551 foreach (LandObject p in landList.Values)
552 { 552 {
553 if (!landOwnersAndParcels.ContainsKey(p.landData.ownerID)) 553 if (!landOwnersAndParcels.ContainsKey(p.landData.OwnerID))
554 { 554 {
555 List<LandObject> tempList = new List<LandObject>(); 555 List<LandObject> tempList = new List<LandObject>();
556 tempList.Add(p); 556 tempList.Add(p);
557 landOwnersAndParcels.Add(p.landData.ownerID, tempList); 557 landOwnersAndParcels.Add(p.landData.OwnerID, tempList);
558 } 558 }
559 else 559 else
560 { 560 {
561 landOwnersAndParcels[p.landData.ownerID].Add(p); 561 landOwnersAndParcels[p.landData.OwnerID].Add(p);
562 } 562 }
563 } 563 }
564 564
@@ -568,15 +568,15 @@ namespace OpenSim.Region.Environment.Modules.World.Land
568 int simPrims = 0; 568 int simPrims = 0;
569 foreach (LandObject p in landOwnersAndParcels[owner]) 569 foreach (LandObject p in landOwnersAndParcels[owner])
570 { 570 {
571 simArea += p.landData.area; 571 simArea += p.landData.Area;
572 simPrims += p.landData.ownerPrims + p.landData.otherPrims + p.landData.groupPrims + 572 simPrims += p.landData.OwnerPrims + p.landData.OtherPrims + p.landData.GroupPrims +
573 p.landData.selectedPrims; 573 p.landData.SelectedPrims;
574 } 574 }
575 575
576 foreach (LandObject p in landOwnersAndParcels[owner]) 576 foreach (LandObject p in landOwnersAndParcels[owner])
577 { 577 {
578 p.landData.simwideArea = simArea; 578 p.landData.SimwideArea = simArea;
579 p.landData.simwidePrims = simPrims; 579 p.landData.SimwidePrims = simPrims;
580 } 580 }
581 } 581 }
582 } 582 }
@@ -658,13 +658,13 @@ namespace OpenSim.Region.Environment.Modules.World.Land
658 658
659 //Lets create a new land object with bitmap activated at that point (keeping the old land objects info) 659 //Lets create a new land object with bitmap activated at that point (keeping the old land objects info)
660 ILandObject newLand = startLandObject.Copy(); 660 ILandObject newLand = startLandObject.Copy();
661 newLand.landData.landName = "Subdivision of " + newLand.landData.landName; 661 newLand.landData.Name = "Subdivision of " + newLand.landData.Name;
662 newLand.landData.globalID = LLUUID.Random(); 662 newLand.landData.GlobalID = LLUUID.Random();
663 663
664 newLand.setLandBitmap(newLand.getSquareLandBitmap(start_x, start_y, end_x, end_y)); 664 newLand.setLandBitmap(newLand.getSquareLandBitmap(start_x, start_y, end_x, end_y));
665 665
666 //Now, lets set the subdivision area of the original to false 666 //Now, lets set the subdivision area of the original to false
667 int startLandObjectIndex = startLandObject.landData.localID; 667 int startLandObjectIndex = startLandObject.landData.LocalID;
668 landList[startLandObjectIndex].setLandBitmap( 668 landList[startLandObjectIndex].setLandBitmap(
669 newLand.modifyLandBitmapSquare(startLandObject.getLandBitmap(), start_x, start_y, end_x, end_y, false)); 669 newLand.modifyLandBitmapSquare(startLandObject.getLandBitmap(), start_x, start_y, end_x, end_y, false));
670 landList[startLandObjectIndex].forceUpdateLandInfo(); 670 landList[startLandObjectIndex].forceUpdateLandInfo();
@@ -673,7 +673,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
673 673
674 //Now add the new land object 674 //Now add the new land object
675 ILandObject result = AddLandObject(newLand); 675 ILandObject result = AddLandObject(newLand);
676 UpdateLandObject(startLandObject.landData.localID, startLandObject.landData); 676 UpdateLandObject(startLandObject.landData.LocalID, startLandObject.landData);
677 result.sendLandUpdateToAvatarsOverMe(); 677 result.sendLandUpdateToAvatarsOverMe();
678 678
679 679
@@ -726,14 +726,14 @@ namespace OpenSim.Region.Environment.Modules.World.Land
726 } 726 }
727 foreach (ILandObject p in selectedLandObjects) 727 foreach (ILandObject p in selectedLandObjects)
728 { 728 {
729 if (p.landData.ownerID != masterLandObject.landData.ownerID) 729 if (p.landData.OwnerID != masterLandObject.landData.OwnerID)
730 { 730 {
731 return; 731 return;
732 } 732 }
733 } 733 }
734 foreach (ILandObject slaveLandObject in selectedLandObjects) 734 foreach (ILandObject slaveLandObject in selectedLandObjects)
735 { 735 {
736 landList[masterLandObject.landData.localID].setLandBitmap( 736 landList[masterLandObject.landData.LocalID].setLandBitmap(
737 slaveLandObject.mergeLandBitmaps(masterLandObject.getLandBitmap(), slaveLandObject.getLandBitmap())); 737 slaveLandObject.mergeLandBitmaps(masterLandObject.getLandBitmap(), slaveLandObject.getLandBitmap()));
738 performFinalLandJoin(masterLandObject, slaveLandObject); 738 performFinalLandJoin(masterLandObject, slaveLandObject);
739 } 739 }
@@ -775,19 +775,19 @@ namespace OpenSim.Region.Environment.Modules.World.Land
775 775
776 if (currentParcelBlock != null) 776 if (currentParcelBlock != null)
777 { 777 {
778 if (currentParcelBlock.landData.ownerID == remote_client.AgentId) 778 if (currentParcelBlock.landData.OwnerID == remote_client.AgentId)
779 { 779 {
780 //Owner Flag 780 //Owner Flag
781 tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_OWNED_BY_REQUESTER); 781 tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_OWNED_BY_REQUESTER);
782 } 782 }
783 else if (currentParcelBlock.landData.salePrice > 0 && 783 else if (currentParcelBlock.landData.SalePrice > 0 &&
784 (currentParcelBlock.landData.authBuyerID == LLUUID.Zero || 784 (currentParcelBlock.landData.AuthBuyerID == LLUUID.Zero ||
785 currentParcelBlock.landData.authBuyerID == remote_client.AgentId)) 785 currentParcelBlock.landData.AuthBuyerID == remote_client.AgentId))
786 { 786 {
787 //Sale Flag 787 //Sale Flag
788 tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_IS_FOR_SALE); 788 tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_IS_FOR_SALE);
789 } 789 }
790 else if (currentParcelBlock.landData.ownerID == LLUUID.Zero) 790 else if (currentParcelBlock.landData.OwnerID == LLUUID.Zero)
791 { 791 {
792 //Public Flag 792 //Public Flag
793 tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_PUBLIC); 793 tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_PUBLIC);
@@ -931,7 +931,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
931 { 931 {
932 if (m_scene.ExternalChecks.ExternalChecksCanAbandonParcel(remote_client.AgentId, landList[local_id])) 932 if (m_scene.ExternalChecks.ExternalChecksCanAbandonParcel(remote_client.AgentId, landList[local_id]))
933 { 933 {
934 landList[local_id].landData.ownerID = m_scene.RegionInfo.MasterAvatarAssignedUUID; 934 landList[local_id].landData.OwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID;
935 m_scene.Broadcast(SendParcelOverlay); 935 m_scene.Broadcast(SendParcelOverlay);
936 landList[local_id].sendLandUpdateToClient(remote_client); 936 landList[local_id].sendLandUpdateToClient(remote_client);
937 } 937 }
@@ -945,8 +945,8 @@ namespace OpenSim.Region.Environment.Modules.World.Land
945 { 945 {
946 if (m_scene.ExternalChecks.ExternalChecksCanReclaimParcel(remote_client.AgentId, landList[local_id])) 946 if (m_scene.ExternalChecks.ExternalChecksCanReclaimParcel(remote_client.AgentId, landList[local_id]))
947 { 947 {
948 landList[local_id].landData.ownerID = m_scene.RegionInfo.MasterAvatarAssignedUUID; 948 landList[local_id].landData.OwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID;
949 landList[local_id].landData.claimDate = Util.UnixTimeSinceEpoch(); 949 landList[local_id].landData.ClaimDate = Util.UnixTimeSinceEpoch();
950 m_scene.Broadcast(SendParcelOverlay); 950 m_scene.Broadcast(SendParcelOverlay);
951 landList[local_id].sendLandUpdateToClient(remote_client); 951 landList[local_id].sendLandUpdateToClient(remote_client);
952 } 952 }
@@ -992,11 +992,11 @@ namespace OpenSim.Region.Environment.Modules.World.Land
992 } 992 }
993 if (lob != null) 993 if (lob != null)
994 { 994 {
995 LLUUID AuthorizedID = lob.landData.authBuyerID; 995 LLUUID AuthorizedID = lob.landData.AuthBuyerID;
996 int saleprice = lob.landData.salePrice; 996 int saleprice = lob.landData.SalePrice;
997 LLUUID pOwnerID = lob.landData.ownerID; 997 LLUUID pOwnerID = lob.landData.OwnerID;
998 998
999 bool landforsale = ((lob.landData.landFlags & 999 bool landforsale = ((lob.landData.Flags &
1000 (uint)(Parcel.ParcelFlags.ForSale | Parcel.ParcelFlags.ForSaleObjects | Parcel.ParcelFlags.SellParcelObjects)) != 0); 1000 (uint)(Parcel.ParcelFlags.ForSale | Parcel.ParcelFlags.ForSaleObjects | Parcel.ParcelFlags.SellParcelObjects)) != 0);
1001 if ((AuthorizedID == LLUUID.Zero || AuthorizedID == e.agentId) && e.parcelPrice >= saleprice && landforsale) 1001 if ((AuthorizedID == LLUUID.Zero || AuthorizedID == e.agentId) && e.parcelPrice >= saleprice && landforsale)
1002 { 1002 {
@@ -1034,7 +1034,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
1034 1034
1035 public void IncomingLandObjectFromStorage(LandData data) 1035 public void IncomingLandObjectFromStorage(LandData data)
1036 { 1036 {
1037 ILandObject new_land = new LandObject(data.ownerID, data.isGroupOwned, m_scene); 1037 ILandObject new_land = new LandObject(data.OwnerID, data.IsGroupOwned, m_scene);
1038 new_land.landData = data.Copy(); 1038 new_land.landData = data.Copy();
1039 new_land.setLandBitmapFromByteArray(); 1039 new_land.setLandBitmapFromByteArray();
1040 AddLandObject(new_land); 1040 AddLandObject(new_land);
diff --git a/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs b/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs
index 02d74e5..8abfcf8 100644
--- a/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs
+++ b/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs
@@ -77,8 +77,8 @@ namespace OpenSim.Region.Environment.Modules.World.Land
77 public LandObject(LLUUID owner_id, bool is_group_owned, Scene scene) 77 public LandObject(LLUUID owner_id, bool is_group_owned, Scene scene)
78 { 78 {
79 m_scene = scene; 79 m_scene = scene;
80 landData.ownerID = owner_id; 80 landData.OwnerID = owner_id;
81 landData.isGroupOwned = is_group_owned; 81 landData.IsGroupOwned = is_group_owned;
82 } 82 }
83 83
84 #endregion 84 #endregion
@@ -107,7 +107,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
107 107
108 public ILandObject Copy() 108 public ILandObject Copy()
109 { 109 {
110 ILandObject newLand = new LandObject(landData.ownerID, landData.isGroupOwned, m_scene); 110 ILandObject newLand = new LandObject(landData.OwnerID, landData.IsGroupOwned, m_scene);
111 111
112 //Place all new variables here! 112 //Place all new variables here!
113 newLand.landBitmap = (bool[,]) (landBitmap.Clone()); 113 newLand.landBitmap = (bool[,]) (landBitmap.Clone());
@@ -139,7 +139,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
139 { 139 {
140 //Normal Calculations 140 //Normal Calculations
141 return Convert.ToInt32( 141 return Convert.ToInt32(
142 Math.Round((Convert.ToDecimal(landData.area) / Convert.ToDecimal(65536)) * m_scene.objectCapacity * 142 Math.Round((Convert.ToDecimal(landData.Area) / Convert.ToDecimal(65536)) * m_scene.objectCapacity *
143 Convert.ToDecimal(m_scene.RegionInfo.RegionSettings.ObjectBonus))); ; 143 Convert.ToDecimal(m_scene.RegionInfo.RegionSettings.ObjectBonus))); ;
144 } 144 }
145 } 145 }
@@ -165,9 +165,9 @@ namespace OpenSim.Region.Environment.Modules.World.Land
165 uint regionFlags = 336723974 & ~((uint)(Simulator.RegionFlags.AllowLandmark | Simulator.RegionFlags.AllowSetHome)); 165 uint regionFlags = 336723974 & ~((uint)(Simulator.RegionFlags.AllowLandmark | Simulator.RegionFlags.AllowSetHome));
166 if (estateModule != null) 166 if (estateModule != null)
167 regionFlags = estateModule.GetRegionFlags(); 167 regionFlags = estateModule.GetRegionFlags();
168 if ((landData.landFlags & (uint)Parcel.ParcelFlags.AllowLandmark) != 0) 168 if ((landData.Flags & (uint)Parcel.ParcelFlags.AllowLandmark) != 0)
169 regionFlags |= (uint)Simulator.RegionFlags.AllowLandmark; 169 regionFlags |= (uint)Simulator.RegionFlags.AllowLandmark;
170 if (landData.ownerID == remote_client.AgentId) 170 if (landData.OwnerID == remote_client.AgentId)
171 regionFlags |= (uint)Simulator.RegionFlags.AllowSetHome; 171 regionFlags |= (uint)Simulator.RegionFlags.AllowSetHome;
172 remote_client.SendLandProperties(remote_client, sequence_id, 172 remote_client.SendLandProperties(remote_client, sequence_id,
173 snap_selection, request_result, landData, 173 snap_selection, request_result, landData,
@@ -183,31 +183,31 @@ namespace OpenSim.Region.Environment.Modules.World.Land
183 //Needs later group support 183 //Needs later group support
184 LandData newData = landData.Copy(); 184 LandData newData = landData.Copy();
185 185
186 if (args.AuthBuyerID != newData.authBuyerID || args.SalePrice != newData.salePrice) 186 if (args.AuthBuyerID != newData.AuthBuyerID || args.SalePrice != newData.SalePrice)
187 { 187 {
188 if (m_scene.ExternalChecks.ExternalChecksCanSellParcel(remote_client.AgentId, this)) 188 if (m_scene.ExternalChecks.ExternalChecksCanSellParcel(remote_client.AgentId, this))
189 { 189 {
190 newData.authBuyerID = args.AuthBuyerID; 190 newData.AuthBuyerID = args.AuthBuyerID;
191 newData.salePrice = args.SalePrice; 191 newData.SalePrice = args.SalePrice;
192 } 192 }
193 } 193 }
194 newData.category = args.Category; 194 newData.Category = args.Category;
195 newData.landDesc = args.Desc; 195 newData.Description = args.Desc;
196 newData.groupID = args.GroupID; 196 newData.GroupID = args.GroupID;
197 newData.landingType = args.LandingType; 197 newData.LandingType = args.LandingType;
198 newData.mediaAutoScale = args.MediaAutoScale; 198 newData.MediaAutoScale = args.MediaAutoScale;
199 newData.mediaID = args.MediaID; 199 newData.MediaID = args.MediaID;
200 newData.mediaURL = args.MediaURL; 200 newData.MediaURL = args.MediaURL;
201 newData.musicURL = args.MusicURL; 201 newData.MusicURL = args.MusicURL;
202 newData.landName = args.Name; 202 newData.Name = args.Name;
203 newData.landFlags = args.ParcelFlags; 203 newData.Flags = args.ParcelFlags;
204 newData.passHours = args.PassHours; 204 newData.PassHours = args.PassHours;
205 newData.passPrice = args.PassPrice; 205 newData.PassPrice = args.PassPrice;
206 newData.snapshotID = args.SnapshotID; 206 newData.SnapshotID = args.SnapshotID;
207 newData.userLocation = args.UserLocation; 207 newData.UserLocation = args.UserLocation;
208 newData.userLookAt = args.UserLookAt; 208 newData.UserLookAt = args.UserLookAt;
209 209
210 m_scene.LandChannel.UpdateLandObject(landData.localID, newData); 210 m_scene.LandChannel.UpdateLandObject(landData.LocalID, newData);
211 211
212 sendLandUpdateToAvatarsOverMe(); 212 sendLandUpdateToAvatarsOverMe();
213 } 213 }
@@ -216,16 +216,16 @@ namespace OpenSim.Region.Environment.Modules.World.Land
216 public void updateLandSold(LLUUID avatarID, LLUUID groupID, bool groupOwned, uint AuctionID, int claimprice, int area) 216 public void updateLandSold(LLUUID avatarID, LLUUID groupID, bool groupOwned, uint AuctionID, int claimprice, int area)
217 { 217 {
218 LandData newData = landData.Copy(); 218 LandData newData = landData.Copy();
219 newData.ownerID = avatarID; 219 newData.OwnerID = avatarID;
220 newData.groupID = groupID; 220 newData.GroupID = groupID;
221 newData.isGroupOwned = groupOwned; 221 newData.IsGroupOwned = groupOwned;
222 //newData.auctionID = AuctionID; 222 //newData.auctionID = AuctionID;
223 newData.claimDate = Util.UnixTimeSinceEpoch(); 223 newData.ClaimDate = Util.UnixTimeSinceEpoch();
224 newData.claimPrice = claimprice; 224 newData.ClaimPrice = claimprice;
225 newData.salePrice = 0; 225 newData.SalePrice = 0;
226 newData.authBuyerID = LLUUID.Zero; 226 newData.AuthBuyerID = LLUUID.Zero;
227 newData.landFlags &= ~(uint) (Parcel.ParcelFlags.ForSale | Parcel.ParcelFlags.ForSaleObjects | Parcel.ParcelFlags.SellParcelObjects); 227 newData.Flags &= ~(uint) (Parcel.ParcelFlags.ForSale | Parcel.ParcelFlags.ForSaleObjects | Parcel.ParcelFlags.SellParcelObjects);
228 m_scene.LandChannel.UpdateLandObject(landData.localID, newData); 228 m_scene.LandChannel.UpdateLandObject(landData.LocalID, newData);
229 229
230 sendLandUpdateToAvatarsOverMe(); 230 sendLandUpdateToAvatarsOverMe();
231 } 231 }
@@ -245,13 +245,13 @@ namespace OpenSim.Region.Environment.Modules.World.Land
245 245
246 public bool isBannedFromLand(LLUUID avatar) 246 public bool isBannedFromLand(LLUUID avatar)
247 { 247 {
248 if ((landData.landFlags & (uint) Parcel.ParcelFlags.UseBanList) > 0) 248 if ((landData.Flags & (uint) Parcel.ParcelFlags.UseBanList) > 0)
249 { 249 {
250 ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); 250 ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry();
251 entry.AgentID = avatar; 251 entry.AgentID = avatar;
252 entry.Flags = ParcelManager.AccessList.Ban; 252 entry.Flags = ParcelManager.AccessList.Ban;
253 entry.Time = new DateTime(); 253 entry.Time = new DateTime();
254 if (landData.parcelAccessList.Contains(entry)) 254 if (landData.ParcelAccessList.Contains(entry))
255 { 255 {
256 //They are banned, so lets send them a notice about this parcel 256 //They are banned, so lets send them a notice about this parcel
257 return true; 257 return true;
@@ -262,13 +262,13 @@ namespace OpenSim.Region.Environment.Modules.World.Land
262 262
263 public bool isRestrictedFromLand(LLUUID avatar) 263 public bool isRestrictedFromLand(LLUUID avatar)
264 { 264 {
265 if ((landData.landFlags & (uint) Parcel.ParcelFlags.UseAccessList) > 0) 265 if ((landData.Flags & (uint) Parcel.ParcelFlags.UseAccessList) > 0)
266 { 266 {
267 ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); 267 ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry();
268 entry.AgentID = avatar; 268 entry.AgentID = avatar;
269 entry.Flags = ParcelManager.AccessList.Access; 269 entry.Flags = ParcelManager.AccessList.Access;
270 entry.Time = new DateTime(); 270 entry.Time = new DateTime();
271 if (!landData.parcelAccessList.Contains(entry)) 271 if (!landData.ParcelAccessList.Contains(entry))
272 { 272 {
273 //They are not allowed in this parcel, but not banned, so lets send them a notice about this parcel 273 //They are not allowed in this parcel, but not banned, so lets send them a notice about this parcel
274 return true; 274 return true;
@@ -302,9 +302,9 @@ namespace OpenSim.Region.Environment.Modules.World.Land
302 302
303 if (over != null) 303 if (over != null)
304 { 304 {
305 if (over.landData.localID == landData.localID) 305 if (over.landData.LocalID == landData.LocalID)
306 { 306 {
307 if (((over.landData.landFlags & (uint)Parcel.ParcelFlags.AllowDamage) != 0) && m_scene.RegionInfo.RegionSettings.AllowDamage) 307 if (((over.landData.Flags & (uint)Parcel.ParcelFlags.AllowDamage) != 0) && m_scene.RegionInfo.RegionSettings.AllowDamage)
308 avatars[i].Invulnerable = false; 308 avatars[i].Invulnerable = false;
309 else 309 else
310 avatars[i].Invulnerable = true; 310 avatars[i].Invulnerable = true;
@@ -322,7 +322,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
322 public List<LLUUID> createAccessListArrayByFlag(ParcelManager.AccessList flag) 322 public List<LLUUID> createAccessListArrayByFlag(ParcelManager.AccessList flag)
323 { 323 {
324 List<LLUUID> list = new List<LLUUID>(); 324 List<LLUUID> list = new List<LLUUID>();
325 foreach (ParcelManager.ParcelAccessEntry entry in landData.parcelAccessList) 325 foreach (ParcelManager.ParcelAccessEntry entry in landData.ParcelAccessList)
326 { 326 {
327 if (entry.Flags == flag) 327 if (entry.Flags == flag)
328 { 328 {
@@ -344,13 +344,13 @@ namespace OpenSim.Region.Environment.Modules.World.Land
344 if (flags == (uint) ParcelManager.AccessList.Access || flags == (uint) ParcelManager.AccessList.Both) 344 if (flags == (uint) ParcelManager.AccessList.Access || flags == (uint) ParcelManager.AccessList.Both)
345 { 345 {
346 List<LLUUID> avatars = createAccessListArrayByFlag(ParcelManager.AccessList.Access); 346 List<LLUUID> avatars = createAccessListArrayByFlag(ParcelManager.AccessList.Access);
347 remote_client.SendLandAccessListData(avatars,(uint) ParcelManager.AccessList.Access,landData.localID); 347 remote_client.SendLandAccessListData(avatars,(uint) ParcelManager.AccessList.Access,landData.LocalID);
348 } 348 }
349 349
350 if (flags == (uint) ParcelManager.AccessList.Ban || flags == (uint) ParcelManager.AccessList.Both) 350 if (flags == (uint) ParcelManager.AccessList.Ban || flags == (uint) ParcelManager.AccessList.Both)
351 { 351 {
352 List<LLUUID> avatars = createAccessListArrayByFlag(ParcelManager.AccessList.Ban); 352 List<LLUUID> avatars = createAccessListArrayByFlag(ParcelManager.AccessList.Ban);
353 remote_client.SendLandAccessListData(avatars, (uint)ParcelManager.AccessList.Ban, landData.localID); 353 remote_client.SendLandAccessListData(avatars, (uint)ParcelManager.AccessList.Ban, landData.LocalID);
354 } 354 }
355 } 355 }
356 356
@@ -364,7 +364,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
364 } 364 }
365 365
366 List<ParcelManager.ParcelAccessEntry> toRemove = new List<ParcelManager.ParcelAccessEntry>(); 366 List<ParcelManager.ParcelAccessEntry> toRemove = new List<ParcelManager.ParcelAccessEntry>();
367 foreach (ParcelManager.ParcelAccessEntry entry in newData.parcelAccessList) 367 foreach (ParcelManager.ParcelAccessEntry entry in newData.ParcelAccessList)
368 { 368 {
369 if (entry.Flags == (ParcelManager.AccessList) flags) 369 if (entry.Flags == (ParcelManager.AccessList) flags)
370 { 370 {
@@ -374,7 +374,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
374 374
375 foreach (ParcelManager.ParcelAccessEntry entry in toRemove) 375 foreach (ParcelManager.ParcelAccessEntry entry in toRemove)
376 { 376 {
377 newData.parcelAccessList.Remove(entry); 377 newData.ParcelAccessList.Remove(entry);
378 } 378 }
379 foreach (ParcelManager.ParcelAccessEntry entry in entries) 379 foreach (ParcelManager.ParcelAccessEntry entry in entries)
380 { 380 {
@@ -383,13 +383,13 @@ namespace OpenSim.Region.Environment.Modules.World.Land
383 temp.Time = new DateTime(); //Pointless? Yes. 383 temp.Time = new DateTime(); //Pointless? Yes.
384 temp.Flags = (ParcelManager.AccessList) flags; 384 temp.Flags = (ParcelManager.AccessList) flags;
385 385
386 if (!newData.parcelAccessList.Contains(temp)) 386 if (!newData.ParcelAccessList.Contains(temp))
387 { 387 {
388 newData.parcelAccessList.Add(temp); 388 newData.ParcelAccessList.Add(temp);
389 } 389 }
390 } 390 }
391 391
392 m_scene.LandChannel.UpdateLandObject(landData.localID, newData); 392 m_scene.LandChannel.UpdateLandObject(landData.LocalID, newData);
393 } 393 }
394 394
395 #endregion 395 #endregion
@@ -398,7 +398,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
398 398
399 public void updateLandBitmapByteArray() 399 public void updateLandBitmapByteArray()
400 { 400 {
401 landData.landBitmapByteArray = convertLandBitmapToBytes(); 401 landData.Bitmap = convertLandBitmapToBytes();
402 } 402 }
403 403
404 /// <summary> 404 /// <summary>
@@ -459,7 +459,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
459 landData.AABBMax = 459 landData.AABBMax =
460 new LLVector3((float) (max_x * 4), (float) (max_y * 4), 460 new LLVector3((float) (max_x * 4), (float) (max_y * 4),
461 (float) m_scene.Heightmap[tx, ty]); 461 (float) m_scene.Heightmap[tx, ty]);
462 landData.area = tempArea; 462 landData.Area = tempArea;
463 } 463 }
464 464
465 #endregion 465 #endregion
@@ -622,7 +622,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
622 int x = 0, y = 0, i = 0, bitNum = 0; 622 int x = 0, y = 0, i = 0, bitNum = 0;
623 for (i = 0; i < 512; i++) 623 for (i = 0; i < 512; i++)
624 { 624 {
625 tempByte = landData.landBitmapByteArray[i]; 625 tempByte = landData.Bitmap[i];
626 for (bitNum = 0; bitNum < 8; bitNum++) 626 for (bitNum = 0; bitNum < 8; bitNum++)
627 { 627 {
628 bool bit = Convert.ToBoolean(Convert.ToByte(tempByte >> bitNum) & (byte) 1); 628 bool bit = Convert.ToBoolean(Convert.ToByte(tempByte >> bitNum) & (byte) 1);
@@ -655,7 +655,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
655 { 655 {
656 if (obj.LocalId > 0) 656 if (obj.LocalId > 0)
657 { 657 {
658 if (request_type == LandChannel.LAND_SELECT_OBJECTS_OWNER && obj.OwnerID == landData.ownerID) 658 if (request_type == LandChannel.LAND_SELECT_OBJECTS_OWNER && obj.OwnerID == landData.OwnerID)
659 { 659 {
660 resultLocalIDs.Add(obj.LocalId); 660 resultLocalIDs.Add(obj.LocalId);
661 } 661 }
@@ -798,10 +798,10 @@ namespace OpenSim.Region.Environment.Modules.World.Land
798 798
799 public void resetLandPrimCounts() 799 public void resetLandPrimCounts()
800 { 800 {
801 landData.groupPrims = 0; 801 landData.GroupPrims = 0;
802 landData.ownerPrims = 0; 802 landData.OwnerPrims = 0;
803 landData.otherPrims = 0; 803 landData.OtherPrims = 0;
804 landData.selectedPrims = 0; 804 landData.SelectedPrims = 0;
805 805
806 806
807 lock (primsOverMe) 807 lock (primsOverMe)
@@ -816,17 +816,17 @@ namespace OpenSim.Region.Environment.Modules.World.Land
816 816
817 if (obj.IsSelected) 817 if (obj.IsSelected)
818 { 818 {
819 landData.selectedPrims += prim_count; 819 landData.SelectedPrims += prim_count;
820 } 820 }
821 else 821 else
822 { 822 {
823 if (prim_owner == landData.ownerID) 823 if (prim_owner == landData.OwnerID)
824 { 824 {
825 landData.ownerPrims += prim_count; 825 landData.OwnerPrims += prim_count;
826 } 826 }
827 else 827 else
828 { 828 {
829 landData.otherPrims += prim_count; 829 landData.OtherPrims += prim_count;
830 } 830 }
831 } 831 }
832 832
@@ -843,17 +843,17 @@ namespace OpenSim.Region.Environment.Modules.World.Land
843 LLUUID prim_owner = obj.OwnerID; 843 LLUUID prim_owner = obj.OwnerID;
844 int prim_count = obj.PrimCount; 844 int prim_count = obj.PrimCount;
845 845
846 if (prim_owner == landData.ownerID) 846 if (prim_owner == landData.OwnerID)
847 { 847 {
848 landData.ownerPrims -= prim_count; 848 landData.OwnerPrims -= prim_count;
849 } 849 }
850 else if (prim_owner == landData.groupID) 850 else if (prim_owner == landData.GroupID)
851 { 851 {
852 landData.groupPrims -= prim_count; 852 landData.GroupPrims -= prim_count;
853 } 853 }
854 else 854 else
855 { 855 {
856 landData.otherPrims -= prim_count; 856 landData.OtherPrims -= prim_count;
857 } 857 }
858 858
859 primsOverMe.Remove(obj); 859 primsOverMe.Remove(obj);
diff --git a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs
index b0d9a26..23db484 100644
--- a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs
+++ b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs
@@ -331,7 +331,7 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions
331 331
332 // Users should be able to edit what is over their land. 332 // Users should be able to edit what is over their land.
333 ILandObject parcel = m_scene.LandChannel.GetLandObject(task.AbsolutePosition.X, task.AbsolutePosition.Y); 333 ILandObject parcel = m_scene.LandChannel.GetLandObject(task.AbsolutePosition.X, task.AbsolutePosition.Y);
334 if (parcel != null && parcel.landData.ownerID == user) 334 if (parcel != null && parcel.landData.OwnerID == user)
335 return objectOwnerMask; 335 return objectOwnerMask;
336 336
337 // Admin objects should not be editable by the above 337 // Admin objects should not be editable by the above
@@ -423,7 +423,7 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions
423 423
424 // Users should be able to edit what is over their land. 424 // Users should be able to edit what is over their land.
425 ILandObject parcel = m_scene.LandChannel.GetLandObject(group.AbsolutePosition.X, group.AbsolutePosition.Y); 425 ILandObject parcel = m_scene.LandChannel.GetLandObject(group.AbsolutePosition.X, group.AbsolutePosition.Y);
426 if ((parcel != null) && (parcel.landData.ownerID == currentUser)) 426 if ((parcel != null) && (parcel.landData.OwnerID == currentUser))
427 { 427 {
428 permission = true; 428 permission = true;
429 } 429 }
@@ -492,12 +492,12 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions
492 { 492 {
493 bool permission = false; 493 bool permission = false;
494 494
495 if (parcel.landData.ownerID == user) 495 if (parcel.landData.OwnerID == user)
496 { 496 {
497 permission = true; 497 permission = true;
498 } 498 }
499 499
500 if (parcel.landData.isGroupOwned) 500 if (parcel.landData.IsGroupOwned)
501 { 501 {
502 // TODO: Need to do some extra checks here. Requires group code. 502 // TODO: Need to do some extra checks here. Requires group code.
503 } 503 }
@@ -723,7 +723,7 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions
723 return false; 723 return false;
724 } 724 }
725 725
726 if ((land.landData.landFlags & ((int)Parcel.ParcelFlags.AllowAllObjectEntry)) != 0) 726 if ((land.landData.Flags & ((int)Parcel.ParcelFlags.AllowAllObjectEntry)) != 0)
727 { 727 {
728 return true; 728 return true;
729 } 729 }
@@ -770,7 +770,7 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions
770 ILandObject land = m_scene.LandChannel.GetLandObject(objectPosition.X, objectPosition.Y); 770 ILandObject land = m_scene.LandChannel.GetLandObject(objectPosition.X, objectPosition.Y);
771 if (land == null) return false; 771 if (land == null) return false;
772 772
773 if ((land.landData.landFlags & ((int)Parcel.ParcelFlags.CreateObjects)) == 773 if ((land.landData.Flags & ((int)Parcel.ParcelFlags.CreateObjects)) ==
774 (int)Parcel.ParcelFlags.CreateObjects) 774 (int)Parcel.ParcelFlags.CreateObjects)
775 permission = true; 775 permission = true;
776 776