From 73a36680bd5dacd4f2630c50115ef4c1f10dc387 Mon Sep 17 00:00:00 2001 From: mingchen Date: Wed, 6 Jun 2007 18:15:12 +0000 Subject: *Added new commands ('backup','show parcels','reset parcels') *Added parcel join support *Made parcel saving and loading much more efficient *Fixed bug that would not allow joining of parcel locally in the viewer (gives an error before sending to server) *Known Issue: Restoring parcels from storage is not working correctly. For now, do a 'reset parcels' to regenerate a standard parcel --- .../world/World.PacketHandlers.cs | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'OpenSim/OpenSim.RegionServer/world/World.PacketHandlers.cs') diff --git a/OpenSim/OpenSim.RegionServer/world/World.PacketHandlers.cs b/OpenSim/OpenSim.RegionServer/world/World.PacketHandlers.cs index 74a64a0..8513e30 100644 --- a/OpenSim/OpenSim.RegionServer/world/World.PacketHandlers.cs +++ b/OpenSim/OpenSim.RegionServer/world/World.PacketHandlers.cs @@ -325,7 +325,7 @@ namespace OpenSim.world { //Get the parcels within the bounds List temp = new List(); - int x, y; + int x, y, i; int inc_x = end_x - start_x; int inc_y = end_y - start_y; for(x = 0; x < inc_x; x++) @@ -335,13 +335,25 @@ namespace OpenSim.world OpenSim.RegionServer.world.Parcel currentParcel = parcelManager.getParcel(start_x + x, start_y + y); if(!temp.Contains(currentParcel)) { + currentParcel. + forceUpdateParcelInfo(); temp.Add(currentParcel); - currentParcel.forceUpdateParcelInfo(); - currentParcel.sendParcelProperties(sequence_id,snap_selection,remote_client); } } } + int requestResult = OpenSim.RegionServer.world.ParcelManager.PARCEL_RESULT_ONE_PARCEL; + if (temp.Count > 1) + { + requestResult = OpenSim.RegionServer.world.ParcelManager.PARCEL_RESULT_MULTIPLE_PARCELS; + } + + for (i = 0; i < temp.Count; i++) + { + temp[i].sendParcelProperties(sequence_id, snap_selection, requestResult, remote_client); + } + + parcelManager.sendParcelOverlay(remote_client); } @@ -349,6 +361,10 @@ namespace OpenSim.world { parcelManager.subdivide(west, south, east, north, remote_client.AgentID); } + void ParcelJoinRequest(int west, int south, int east, int north, ClientView remote_client) + { + parcelManager.join(west, south, east, north, remote_client.AgentID); + } #endregion /* -- cgit v1.1