From 63b6ab467a2d617b180284861baba544cac602d2 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Sun, 24 Aug 2008 00:51:21 +0000 Subject: Implements 80% of object buy (prim vendor). You can't buy the object yet, and the for sale setting doesn't survive a sim restart, but this is most of the plumbing. --- .../Region/ClientStack/LindenUDP/LLClientView.cs | 49 +++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/ClientStack') diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 83a1181..7c531f3 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -233,6 +233,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP private ScriptAnswer handlerScriptAnswer = null; private RequestPayPrice handlerRequestPayPrice = null; + private ObjectSaleInfo handlerObjectSaleInfo = null; + private ObjectBuy handlerObjectBuy = null; + private BuyObjectInventory handlerBuyObjectInventory = null; private ObjectDeselect handlerObjectDetach = null; private AgentSit handlerOnUndo = null; @@ -905,6 +908,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP public event UUIDNameRequest OnUUIDGroupNameRequest; public event ScriptAnswer OnScriptAnswer; public event RequestPayPrice OnRequestPayPrice; + public event ObjectSaleInfo OnObjectSaleInfo; + public event ObjectBuy OnObjectBuy; + public event BuyObjectInventory OnBuyObjectInventory; public event AgentSit OnUndo; public event ForceReleaseControls OnForceReleaseControls; public event GodLandStatRequest OnLandStatRequest; @@ -2523,7 +2529,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP LLUUID GroupUUID, short InventorySerial, LLUUID LastOwnerUUID, LLUUID ObjectUUID, LLUUID OwnerUUID, string TouchTitle, byte[] TextureID, string SitTitle, string ItemName, string ItemDescription, uint OwnerMask, uint NextOwnerMask, uint GroupMask, uint EveryoneMask, - uint BaseMask) + uint BaseMask, byte saleType, int salePrice) { ObjectPropertiesPacket proper = (ObjectPropertiesPacket)PacketPool.Instance.GetPacket(PacketType.ObjectProperties); // TODO: don't create new blocks if recycling an old packet @@ -2556,6 +2562,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP // proper.ObjectData[0].AggregatePerms = 53; // proper.ObjectData[0].AggregatePermTextures = 0; // proper.ObjectData[0].AggregatePermTexturesOwner = 0; + proper.ObjectData[0].SaleType = saleType; + proper.ObjectData[0].SalePrice = salePrice; proper.Header.Zerocoded = true; OutPacket(proper, ThrottleOutPacketType.Task); } @@ -5864,6 +5872,45 @@ namespace OpenSim.Region.ClientStack.LindenUDP } break; + case PacketType.ObjectSaleInfo: + ObjectSaleInfoPacket objectSaleInfoPacket = (ObjectSaleInfoPacket)Pack; + handlerObjectSaleInfo = OnObjectSaleInfo; + if (handlerObjectSaleInfo != null) + { + foreach (ObjectSaleInfoPacket.ObjectDataBlock d + in objectSaleInfoPacket.ObjectData) + { + handlerObjectSaleInfo(this, + objectSaleInfoPacket.AgentData.AgentID, + objectSaleInfoPacket.AgentData.SessionID, + d.LocalID, + d.SaleType, + d.SalePrice); + } + } + break; + + case PacketType.ObjectBuy: + ObjectBuyPacket objectBuyPacket = (ObjectBuyPacket)Pack; + handlerObjectBuy = OnObjectBuy; + Console.WriteLine(objectBuyPacket.ToString()); + if (handlerObjectBuy != null) + { + foreach (ObjectBuyPacket.ObjectDataBlock d + in objectBuyPacket.ObjectData) + { + handlerObjectBuy(this, + objectBuyPacket.AgentData.AgentID, + objectBuyPacket.AgentData.SessionID, + objectBuyPacket.AgentData.GroupID, + objectBuyPacket.AgentData.CategoryID, + d.ObjectLocalID, + d.SaleType, + d.SalePrice); + } + } + break; + #endregion #region Script Packets -- cgit v1.1