aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Framework/IClientAPI.cs2
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs10
-rw-r--r--OpenSim/Region/Environment/Interfaces/ILandObject.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs4
-rw-r--r--OpenSim/Region/Environment/Modules/World/Land/LandObject.cs8
5 files changed, 17 insertions, 9 deletions
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs
index 7531517..b32c7f6 100644
--- a/OpenSim/Framework/IClientAPI.cs
+++ b/OpenSim/Framework/IClientAPI.cs
@@ -174,7 +174,7 @@ namespace OpenSim.Framework
174 174
175 public delegate void ParcelPropertiesUpdateRequest(LandUpdateArgs args, int local_id, IClientAPI remote_client); 175 public delegate void ParcelPropertiesUpdateRequest(LandUpdateArgs args, int local_id, IClientAPI remote_client);
176 176
177 public delegate void ParcelSelectObjects(int land_local_id, int request_type, IClientAPI remote_client); 177 public delegate void ParcelSelectObjects(int land_local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client);
178 178
179 public delegate void ParcelObjectOwnerRequest(int local_id, IClientAPI remote_client); 179 public delegate void ParcelObjectOwnerRequest(int local_id, IClientAPI remote_client);
180 180
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 25927b6..b11a5e8 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -5713,12 +5713,20 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5713 case PacketType.ParcelSelectObjects: 5713 case PacketType.ParcelSelectObjects:
5714 ParcelSelectObjectsPacket selectPacket = (ParcelSelectObjectsPacket)Pack; 5714 ParcelSelectObjectsPacket selectPacket = (ParcelSelectObjectsPacket)Pack;
5715 5715
5716 List<UUID> returnIDs = new List<UUID>();
5717
5718 foreach(ParcelSelectObjectsPacket.ReturnIDsBlock rb in
5719 selectPacket.ReturnIDs)
5720 {
5721 returnIDs.Add(rb.ReturnID);
5722 }
5723
5716 handlerParcelSelectObjects = OnParcelSelectObjects; 5724 handlerParcelSelectObjects = OnParcelSelectObjects;
5717 5725
5718 if (handlerParcelSelectObjects != null) 5726 if (handlerParcelSelectObjects != null)
5719 { 5727 {
5720 handlerParcelSelectObjects(selectPacket.ParcelData.LocalID, 5728 handlerParcelSelectObjects(selectPacket.ParcelData.LocalID,
5721 Convert.ToInt32(selectPacket.ParcelData.ReturnType), this); 5729 Convert.ToInt32(selectPacket.ParcelData.ReturnType), returnIDs, this);
5722 } 5730 }
5723 break; 5731 break;
5724 case PacketType.ParcelObjectOwnersRequest: 5732 case PacketType.ParcelObjectOwnersRequest:
diff --git a/OpenSim/Region/Environment/Interfaces/ILandObject.cs b/OpenSim/Region/Environment/Interfaces/ILandObject.cs
index 85da000..9d51109 100644
--- a/OpenSim/Region/Environment/Interfaces/ILandObject.cs
+++ b/OpenSim/Region/Environment/Interfaces/ILandObject.cs
@@ -68,7 +68,7 @@ namespace OpenSim.Region.Environment.Interfaces
68 bool[,] getSquareLandBitmap(int start_x, int start_y, int end_x, int end_y); 68 bool[,] getSquareLandBitmap(int start_x, int start_y, int end_x, int end_y);
69 bool[,] modifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, bool set_value); 69 bool[,] modifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, bool set_value);
70 bool[,] mergeLandBitmaps(bool[,] bitmap_base, bool[,] bitmap_add); 70 bool[,] mergeLandBitmaps(bool[,] bitmap_base, bool[,] bitmap_add);
71 void sendForceObjectSelect(int local_id, int request_type, IClientAPI remote_client); 71 void sendForceObjectSelect(int local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client);
72 void sendLandObjectOwners(IClientAPI remote_client); 72 void sendLandObjectOwners(IClientAPI remote_client);
73 void returnObject(SceneObjectGroup obj); 73 void returnObject(SceneObjectGroup obj);
74 void returnLandObjects(uint type, UUID[] owners, IClientAPI remote_client); 74 void returnLandObjects(uint type, UUID[] owners, IClientAPI remote_client);
diff --git a/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs b/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs
index 89dde26..f656fb6 100644
--- a/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs
+++ b/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs
@@ -976,9 +976,9 @@ namespace OpenSim.Region.Environment.Modules.World.Land
976 join(west, south, east, north, remote_client.AgentId); 976 join(west, south, east, north, remote_client.AgentId);
977 } 977 }
978 978
979 public void handleParcelSelectObjectsRequest(int local_id, int request_type, IClientAPI remote_client) 979 public void handleParcelSelectObjectsRequest(int local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client)
980 { 980 {
981 m_landList[local_id].sendForceObjectSelect(local_id, request_type, remote_client); 981 m_landList[local_id].sendForceObjectSelect(local_id, request_type, returnIDs, remote_client);
982 } 982 }
983 983
984 public void handleParcelObjectOwnersRequest(int local_id, IClientAPI remote_client) 984 public void handleParcelObjectOwnersRequest(int local_id, IClientAPI remote_client)
diff --git a/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs b/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs
index 197d5c2..be806c2 100644
--- a/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs
+++ b/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs
@@ -645,7 +645,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
645 645
646 #region Object Select and Object Owner Listing 646 #region Object Select and Object Owner Listing
647 647
648 public void sendForceObjectSelect(int local_id, int request_type, IClientAPI remote_client) 648 public void sendForceObjectSelect(int local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client)
649 { 649 {
650 if (m_scene.ExternalChecks.ExternalChecksCanEditParcel(remote_client.AgentId, this)) 650 if (m_scene.ExternalChecks.ExternalChecksCanEditParcel(remote_client.AgentId, this))
651 { 651 {
@@ -662,9 +662,9 @@ namespace OpenSim.Region.Environment.Modules.World.Land
662 { 662 {
663 resultLocalIDs.Add(obj.LocalId); 663 resultLocalIDs.Add(obj.LocalId);
664 } 664 }
665 // else if (request_type == LandManager.LAND_SELECT_OBJECTS_GROUP && ...) // TODO: group support 665 else if (request_type == LandChannel.LAND_SELECT_OBJECTS_GROUP && obj.GroupID == landData.GroupID && landData.GroupID != UUID.Zero)
666 // { 666 {
667 // } 667 }
668 else if (request_type == LandChannel.LAND_SELECT_OBJECTS_OTHER && 668 else if (request_type == LandChannel.LAND_SELECT_OBJECTS_OTHER &&
669 obj.OwnerID != remote_client.AgentId) 669 obj.OwnerID != remote_client.AgentId)
670 { 670 {