aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/OpenSim.World/ParcelManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/OpenSim.World/ParcelManager.cs')
-rw-r--r--OpenSim/OpenSim.World/ParcelManager.cs51
1 files changed, 27 insertions, 24 deletions
diff --git a/OpenSim/OpenSim.World/ParcelManager.cs b/OpenSim/OpenSim.World/ParcelManager.cs
index 4a9bfb1..db6909d 100644
--- a/OpenSim/OpenSim.World/ParcelManager.cs
+++ b/OpenSim/OpenSim.World/ParcelManager.cs
@@ -35,7 +35,7 @@ using OpenSim.Framework.Types;
35 35
36namespace OpenSim.world 36namespace OpenSim.world
37{ 37{
38 38
39 39
40 #region ParcelManager Class 40 #region ParcelManager Class
41 /// <summary> 41 /// <summary>
@@ -62,7 +62,7 @@ namespace OpenSim.world
62 public const byte PARCEL_FLAG_PROPERTY_BORDER_SOUTH = (byte)128; //Equals 10000000 62 public const byte PARCEL_FLAG_PROPERTY_BORDER_SOUTH = (byte)128; //Equals 10000000
63 63
64 //RequestResults (I think these are right, they seem to work): 64 //RequestResults (I think these are right, they seem to work):
65 public const int PARCEL_RESULT_ONE_PARCEL = 0; // The request they made contained only one parcel 65 public const int PARCEL_RESULT_ONE_PARCEL = 0; // The request they made contained only one parcel
66 public const int PARCEL_RESULT_MULTIPLE_PARCELS = 1; // The request they made contained more than one parcel 66 public const int PARCEL_RESULT_MULTIPLE_PARCELS = 1; // The request they made contained more than one parcel
67 67
68 //These are other constants. Yay! 68 //These are other constants. Yay!
@@ -143,7 +143,7 @@ namespace OpenSim.world
143 } 143 }
144 parcelList[lastParcelLocalID].forceUpdateParcelInfo(); 144 parcelList[lastParcelLocalID].forceUpdateParcelInfo();
145 145
146 146
147 } 147 }
148 /// <summary> 148 /// <summary>
149 /// Removes a parcel from the list. Will not remove if local_id is still owning an area in parcelIDList 149 /// Removes a parcel from the list. Will not remove if local_id is still owning an area in parcelIDList
@@ -258,12 +258,12 @@ namespace OpenSim.world
258 int startParcelIndex = startParcel.parcelData.localID; 258 int startParcelIndex = startParcel.parcelData.localID;
259 parcelList[startParcelIndex].setParcelBitmap(Parcel.modifyParcelBitmapSquare(startParcel.getParcelBitmap(), start_x, start_y, end_x, end_y, false)); 259 parcelList[startParcelIndex].setParcelBitmap(Parcel.modifyParcelBitmapSquare(startParcel.getParcelBitmap(), start_x, start_y, end_x, end_y, false));
260 parcelList[startParcelIndex].forceUpdateParcelInfo(); 260 parcelList[startParcelIndex].forceUpdateParcelInfo();
261 261
262 262
263 //Now add the new parcel 263 //Now add the new parcel
264 addParcel(newParcel); 264 addParcel(newParcel);
265 265
266 266
267 267
268 268
269 269
@@ -282,7 +282,7 @@ namespace OpenSim.world
282 { 282 {
283 end_x -= 4; 283 end_x -= 4;
284 end_y -= 4; 284 end_y -= 4;
285 285
286 //NOTE: The following only connects the parcels in each corner and not all the parcels that are within the selection box! 286 //NOTE: The following only connects the parcels in each corner and not all the parcels that are within the selection box!
287 //This should be fixed later -- somewhat "incomplete code" --Ming 287 //This should be fixed later -- somewhat "incomplete code" --Ming
288 Parcel startParcel, endParcel; 288 Parcel startParcel, endParcel;
@@ -456,7 +456,7 @@ namespace OpenSim.world
456 public void handleParcelJoinRequest(int west, int south, int east, int north, IClientAPI remote_client) 456 public void handleParcelJoinRequest(int west, int south, int east, int north, IClientAPI remote_client)
457 { 457 {
458 join(west, south, east, north, remote_client.AgentId); 458 join(west, south, east, north, remote_client.AgentId);
459 459
460 } 460 }
461 #endregion 461 #endregion
462 462
@@ -543,7 +543,7 @@ namespace OpenSim.world
543 //Place all new variables here! 543 //Place all new variables here!
544 newParcel.parcelBitmap = (bool[,])(this.parcelBitmap.Clone()); 544 newParcel.parcelBitmap = (bool[,])(this.parcelBitmap.Clone());
545 newParcel.parcelData = parcelData.Copy(); 545 newParcel.parcelData = parcelData.Copy();
546 546
547 return newParcel; 547 return newParcel;
548 } 548 }
549 549
@@ -565,7 +565,7 @@ namespace OpenSim.world
565 updatePacket.ParcelData.AABBMin = parcelData.AABBMin; 565 updatePacket.ParcelData.AABBMin = parcelData.AABBMin;
566 updatePacket.ParcelData.Area = parcelData.area; 566 updatePacket.ParcelData.Area = parcelData.area;
567 updatePacket.ParcelData.AuctionID = parcelData.auctionID; 567 updatePacket.ParcelData.AuctionID = parcelData.auctionID;
568 updatePacket.ParcelData.AuthBuyerID =parcelData.authBuyerID; //unemplemented 568 updatePacket.ParcelData.AuthBuyerID = parcelData.authBuyerID; //unemplemented
569 569
570 updatePacket.ParcelData.Bitmap = parcelData.parcelBitmapByteArray; 570 updatePacket.ParcelData.Bitmap = parcelData.parcelBitmapByteArray;
571 571
@@ -606,7 +606,7 @@ namespace OpenSim.world
606 updatePacket.ParcelData.SequenceID = sequence_id; 606 updatePacket.ParcelData.SequenceID = sequence_id;
607 updatePacket.ParcelData.SimWideMaxPrims = 15000; //unemplemented 607 updatePacket.ParcelData.SimWideMaxPrims = 15000; //unemplemented
608 updatePacket.ParcelData.SimWideTotalPrims = 0; //unemplemented 608 updatePacket.ParcelData.SimWideTotalPrims = 0; //unemplemented
609 updatePacket.ParcelData.SnapSelection = snap_selection; 609 updatePacket.ParcelData.SnapSelection = snap_selection;
610 updatePacket.ParcelData.SnapshotID = parcelData.snapshotID; 610 updatePacket.ParcelData.SnapshotID = parcelData.snapshotID;
611 updatePacket.ParcelData.Status = (byte)parcelData.parcelStatus; 611 updatePacket.ParcelData.Status = (byte)parcelData.parcelStatus;
612 updatePacket.ParcelData.TotalPrims = 0; //unemplemented 612 updatePacket.ParcelData.TotalPrims = 0; //unemplemented
@@ -638,14 +638,17 @@ namespace OpenSim.world
638 parcelData.userLocation = packet.ParcelData.UserLocation; 638 parcelData.userLocation = packet.ParcelData.UserLocation;
639 parcelData.userLookAt = packet.ParcelData.UserLookAt; 639 parcelData.userLookAt = packet.ParcelData.UserLookAt;
640 640
641 foreach (Avatar av in m_world.Avatars.Values) 641 List<Avatar> avatars = m_world.RequestAvatarList();
642
643 for (int i = 0; i < avatars.Count; i++)
642 { 644 {
643 Parcel over = m_world.parcelManager.getParcel((int)Math.Round(av.Pos.X), (int)Math.Round(av.Pos.Y)); 645 Parcel over = m_world.parcelManager.getParcel((int)Math.Round(avatars[i].Pos.X), (int)Math.Round(avatars[i].Pos.Y));
644 if (over == this) 646 if (over == this)
645 { 647 {
646 sendParcelProperties(0, false, 0, av.ControllingClient); 648 sendParcelProperties(0, false, 0, avatars[i].ControllingClient);
647 } 649 }
648 } 650 }
651
649 } 652 }
650 } 653 }
651 #endregion 654 #endregion
@@ -720,7 +723,7 @@ namespace OpenSim.world
720 //Valid: Lets set it 723 //Valid: Lets set it
721 parcelBitmap = bitmap; 724 parcelBitmap = bitmap;
722 forceUpdateParcelInfo(); 725 forceUpdateParcelInfo();
723 726
724 } 727 }
725 } 728 }
726 /// <summary> 729 /// <summary>
@@ -761,23 +764,23 @@ namespace OpenSim.world
761 private bool[,] convertBytesToParcelBitmap() 764 private bool[,] convertBytesToParcelBitmap()
762 { 765 {
763 bool[,] tempConvertMap = new bool[64, 64]; 766 bool[,] tempConvertMap = new bool[64, 64];
764 tempConvertMap.Initialize(); 767 tempConvertMap.Initialize();
765 byte tempByte = 0; 768 byte tempByte = 0;
766 int x = 0, y = 0, i = 0, bitNum = 0; 769 int x = 0, y = 0, i = 0, bitNum = 0;
767 for(i = 0; i < 512; i++) 770 for (i = 0; i < 512; i++)
768 { 771 {
769 tempByte = parcelData.parcelBitmapByteArray[i]; 772 tempByte = parcelData.parcelBitmapByteArray[i];
770 for(bitNum = 0; bitNum < 8; bitNum++) 773 for (bitNum = 0; bitNum < 8; bitNum++)
771 { 774 {
772 bool bit = Convert.ToBoolean(Convert.ToByte(tempByte >> bitNum) & (byte)1); 775 bool bit = Convert.ToBoolean(Convert.ToByte(tempByte >> bitNum) & (byte)1);
773 tempConvertMap[x, y] = bit; 776 tempConvertMap[x, y] = bit;
774 x++; 777 x++;
775 if(x > 63) 778 if (x > 63)
776 { 779 {
777 x = 0; 780 x = 0;
778 y++; 781 y++;
779 } 782 }
780 783
781 } 784 }
782 785
783 } 786 }
@@ -859,7 +862,7 @@ namespace OpenSim.world
859 { 862 {
860 //Throw an exception - The bitmap is not 64x64 863 //Throw an exception - The bitmap is not 64x64
861 throw new Exception("Error: Invalid Parcel Bitmap - Bitmap_add in mergeParcelBitmaps"); 864 throw new Exception("Error: Invalid Parcel Bitmap - Bitmap_add in mergeParcelBitmaps");
862 865
863 } 866 }
864 867
865 int x, y; 868 int x, y;
@@ -879,9 +882,9 @@ namespace OpenSim.world
879 882
880 #endregion 883 #endregion
881 884
882 885
883 } 886 }
884 #endregion 887 #endregion
885 888
886 889
887} 890}