From efe3f3eb2a0a31b1da474974c7d8193c2b28e13f Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Sat, 18 Oct 2008 05:51:36 +0000 Subject: Megapatch. :) Fix skull attachment editing. Streamline Object terse updates. Add rezzing time to objects. Add Object return and traffic fields to land database. Add plumbing for auto return. Implement auto return. Contains a migration. May contain nuts. --- .../Region/ClientStack/LindenUDP/LLClientView.cs | 46 ++++++++++++---------- 1 file changed, 25 insertions(+), 21 deletions(-) (limited to 'OpenSim/Region/ClientStack') diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 2d6508a..412f969 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -132,7 +132,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP private FriendActionDelegate handlerApproveFriendRequest = null; //OnApproveFriendRequest; private FriendshipTermination handlerTerminateFriendship = null; //OnTerminateFriendship; private RezObject handlerRezObject = null; //OnRezObject; - private GenericCall4 handlerDeRezObject = null; //OnDeRezObject; + private DeRezObject handlerDeRezObject = null; //OnDeRezObject; private ModifyTerrain handlerModifyTerrain = null; private BakeTerrain handlerBakeTerrain = null; private EstateChangeInfo handlerEstateChangeInfo = null; @@ -269,6 +269,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP private DirLandQuery handlerDirLandQuery = null; private DirPopularQuery handlerDirPopularQuery = null; private DirClassifiedQuery handlerDirClassifiedQuery = null; + private ParcelSetOtherCleanTime handlerParcelSetOtherCleanTime = null; private MapItemRequest handlerMapItemRequest = null; @@ -851,7 +852,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP public event ChatMessage OnChatFromClient; public event TextureRequest OnRequestTexture; public event RezObject OnRezObject; - public event GenericCall4 OnDeRezObject; + public event DeRezObject OnDeRezObject; public event ModifyTerrain OnModifyTerrain; public event Action OnRegionHandShakeReply; public event GenericCall2 OnRequestWearables; @@ -1004,6 +1005,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP public event DirPopularQuery OnDirPopularQuery; public event DirClassifiedQuery OnDirClassifiedQuery; public event EventInfoRequest OnEventInfoRequest; + public event ParcelSetOtherCleanTime OnParcelSetOtherCleanTime; public event MapItemRequest OnMapItemRequest; @@ -2560,22 +2562,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP OutPacket(terse, ThrottleOutPacketType.Task | ThrottleOutPacketType.LowPriority); } - public void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, Vector3 position, - Quaternion rotation, Vector3 velocity, Vector3 rotationalvelocity) - { - if (rotation.X == rotation.Y && rotation.Y == rotation.Z && rotation.Z == rotation.W && rotation.W == 0) - rotation = Quaternion.Identity; - ImprovedTerseObjectUpdatePacket terse = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedTerseObjectUpdate); - // TODO: don't create new blocks if recycling an old packet - terse.RegionData.RegionHandle = regionHandle; - terse.RegionData.TimeDilation = timeDilation; - terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; - terse.ObjectData[0] = CreatePrimImprovedBlock(localID, position, rotation, velocity, rotationalvelocity, 0); - terse.Header.Reliable = false; - terse.Header.Zerocoded = true; - OutPacket(terse, ThrottleOutPacketType.Task | ThrottleOutPacketType.LowPriority); - } - public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, UUID AssetFullID) { AssetUploadCompletePacket newPack = new AssetUploadCompletePacket(); @@ -2922,7 +2908,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP updatePacket.ParcelData.AABBMin = landData.AABBMin; updatePacket.ParcelData.Area = landData.Area; updatePacket.ParcelData.AuctionID = landData.AuctionID; - updatePacket.ParcelData.AuthBuyerID = landData.AuthBuyerID; //unemplemented + updatePacket.ParcelData.AuthBuyerID = landData.AuthBuyerID; updatePacket.ParcelData.Bitmap = landData.Bitmap; @@ -2950,7 +2936,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP updatePacket.ParcelData.MediaURL = LLUtil.StringToPacketBytes(landData.MediaURL); updatePacket.ParcelData.MusicURL = LLUtil.StringToPacketBytes(landData.MusicURL); updatePacket.ParcelData.Name = Utils.StringToBytes(landData.Name); - updatePacket.ParcelData.OtherCleanTime = 0; //unemplemented + updatePacket.ParcelData.OtherCleanTime = landData.OtherCleanTime; updatePacket.ParcelData.OtherCount = 0; //unemplemented updatePacket.ParcelData.OtherPrims = landData.OtherPrims; updatePacket.ParcelData.OwnerID = landData.OwnerID; @@ -4190,10 +4176,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP } break; case PacketType.DeRezObject: + DeRezObjectPacket DeRezPacket = (DeRezObjectPacket) Pack; handlerDeRezObject = OnDeRezObject; if (handlerDeRezObject != null) { - handlerDeRezObject(Pack, this); + foreach (DeRezObjectPacket.ObjectDataBlock data in + DeRezPacket.ObjectData) + { + handlerDeRezObject(this, data.ObjectLocalID, + DeRezPacket.AgentBlock.GroupID, + DeRezPacket.AgentBlock.Destination, + DeRezPacket.AgentBlock.DestinationID); + } } break; case PacketType.ModifyLand: @@ -6443,6 +6437,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP } break; + case PacketType.ParcelSetOtherCleanTime: + ParcelSetOtherCleanTimePacket parcelSetOtherCleanTimePacket = (ParcelSetOtherCleanTimePacket)Pack; + handlerParcelSetOtherCleanTime = OnParcelSetOtherCleanTime; + if (handlerParcelSetOtherCleanTime != null) + { + handlerParcelSetOtherCleanTime(this, + parcelSetOtherCleanTimePacket.ParcelData.LocalID, + parcelSetOtherCleanTimePacket.ParcelData.OtherCleanTime); + } + break; default: m_log.Warn("[CLIENT]: unhandled packet " + Pack.ToString()); break; -- cgit v1.1