diff options
author | UbitUmarov | 2018-11-12 22:54:37 +0000 |
---|---|---|
committer | UbitUmarov | 2018-11-12 22:54:37 +0000 |
commit | d31854ee3ca6e6c1f62a96f118f2d70a045a3b7d (patch) | |
tree | 7c728ba3a77b7dff8eb88a3205296b68cb5829e9 /OpenSim | |
parent | FSAssets: truncate assets name and description to max size (diff) | |
download | opensim-SC-d31854ee3ca6e6c1f62a96f118f2d70a045a3b7d.zip opensim-SC-d31854ee3ca6e6c1f62a96f118f2d70a045a3b7d.tar.gz opensim-SC-d31854ee3ca6e6c1f62a96f118f2d70a045a3b7d.tar.bz2 opensim-SC-d31854ee3ca6e6c1f62a96f118f2d70a045a3b7d.tar.xz |
BuySell: a few changes on sell copy
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs b/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs index 6a8f4c0..76ac7ed 100644 --- a/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs +++ b/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs | |||
@@ -112,17 +112,17 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell | |||
112 | 112 | ||
113 | public bool BuyObject(IClientAPI remoteClient, UUID categoryID, uint localID, byte saleType, int salePrice) | 113 | public bool BuyObject(IClientAPI remoteClient, UUID categoryID, uint localID, byte saleType, int salePrice) |
114 | { | 114 | { |
115 | SceneObjectPart part = m_scene.GetSceneObjectPart(localID); | 115 | SceneObjectPart rootpart = m_scene.GetSceneObjectPart(localID); |
116 | 116 | ||
117 | if (part == null) | 117 | if (rootpart == null) |
118 | return false; | 118 | return false; |
119 | 119 | ||
120 | SceneObjectGroup group = part.ParentGroup; | 120 | SceneObjectGroup group = rootpart.ParentGroup; |
121 | if(group == null || group.IsDeleted || group.inTransit) | 121 | if(group == null || group.IsDeleted || group.inTransit) |
122 | return false; | 122 | return false; |
123 | 123 | ||
124 | // make sure we are not buying a child part | 124 | // make sure we are not buying a child part |
125 | part = group.RootPart; | 125 | rootpart = group.RootPart; |
126 | 126 | ||
127 | switch (saleType) | 127 | switch (saleType) |
128 | { | 128 | { |
@@ -149,15 +149,15 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell | |||
149 | group.InvalidateDeepEffectivePerms(); | 149 | group.InvalidateDeepEffectivePerms(); |
150 | } | 150 | } |
151 | 151 | ||
152 | part.ObjectSaleType = 0; | 152 | rootpart.ObjectSaleType = 0; |
153 | part.SalePrice = 10; | 153 | rootpart.SalePrice = 10; |
154 | part.ClickAction = Convert.ToByte(0); | 154 | rootpart.ClickAction = Convert.ToByte(0); |
155 | 155 | ||
156 | group.HasGroupChanged = true; | 156 | group.HasGroupChanged = true; |
157 | part.SendPropertiesToClient(remoteClient); | 157 | rootpart.SendPropertiesToClient(remoteClient); |
158 | part.TriggerScriptChangedEvent(Changed.OWNER); | 158 | rootpart.TriggerScriptChangedEvent(Changed.OWNER); |
159 | group.ResumeScripts(); | 159 | group.ResumeScripts(); |
160 | part.ScheduleFullUpdate(); | 160 | rootpart.ScheduleFullUpdate(); |
161 | 161 | ||
162 | break; | 162 | break; |
163 | 163 | ||
@@ -180,23 +180,25 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell | |||
180 | 180 | ||
181 | string sceneObjectXml = SceneObjectSerializer.ToOriginalXmlFormat(group); | 181 | string sceneObjectXml = SceneObjectSerializer.ToOriginalXmlFormat(group); |
182 | 182 | ||
183 | string name = rootpart.Name; | ||
184 | string desc = rootpart.Description; | ||
185 | |||
183 | AssetBase asset = m_scene.CreateAsset( | 186 | AssetBase asset = m_scene.CreateAsset( |
184 | group.GetPartName(localID), | 187 | name, desc, |
185 | group.GetPartDescription(localID), | ||
186 | (sbyte)AssetType.Object, | 188 | (sbyte)AssetType.Object, |
187 | Utils.StringToBytes(sceneObjectXml), | 189 | Utils.StringToBytes(sceneObjectXml), |
188 | group.OwnerID); | 190 | rootpart.CreatorID); |
189 | m_scene.AssetService.Store(asset); | 191 | m_scene.AssetService.Store(asset); |
190 | 192 | ||
191 | InventoryItemBase item = new InventoryItemBase(); | 193 | InventoryItemBase item = new InventoryItemBase(); |
192 | item.CreatorId = part.CreatorID.ToString(); | 194 | item.CreatorId = rootpart.CreatorID.ToString(); |
193 | item.CreatorData = part.CreatorData; | 195 | item.CreatorData = rootpart.CreatorData; |
194 | 196 | ||
195 | item.ID = UUID.Random(); | 197 | item.ID = UUID.Random(); |
196 | item.Owner = remoteClient.AgentId; | 198 | item.Owner = remoteClient.AgentId; |
197 | item.AssetID = asset.FullID; | 199 | item.AssetID = asset.FullID; |
198 | item.Description = asset.Description; | 200 | item.Description = desc; |
199 | item.Name = asset.Name; | 201 | item.Name = name; |
200 | item.AssetType = asset.Type; | 202 | item.AssetType = asset.Type; |
201 | item.InvType = (int)InventoryType.Object; | 203 | item.InvType = (int)InventoryType.Object; |
202 | item.Folder = categoryID; | 204 | item.Folder = categoryID; |
@@ -205,15 +207,15 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell | |||
205 | // apply parts inventory next perms | 207 | // apply parts inventory next perms |
206 | PermissionsUtil.ApplyNoModFoldedPermissions(perms, ref perms); | 208 | PermissionsUtil.ApplyNoModFoldedPermissions(perms, ref perms); |
207 | // change to next owner perms | 209 | // change to next owner perms |
208 | perms &= part.NextOwnerMask; | 210 | perms &= rootpart.NextOwnerMask; |
209 | // update folded | 211 | // update folded |
210 | perms = PermissionsUtil.FixAndFoldPermissions(perms); | 212 | perms = PermissionsUtil.FixAndFoldPermissions(perms); |
211 | 213 | ||
212 | item.BasePermissions = perms; | 214 | item.BasePermissions = perms; |
213 | item.CurrentPermissions = perms; | 215 | item.CurrentPermissions = perms; |
214 | item.NextPermissions = part.NextOwnerMask & perms; | 216 | item.NextPermissions = rootpart.NextOwnerMask & perms; |
215 | item.EveryOnePermissions = part.EveryoneMask & perms; | 217 | item.EveryOnePermissions = rootpart.EveryoneMask & perms; |
216 | item.GroupPermissions = part.GroupMask & perms; | 218 | item.GroupPermissions = rootpart.GroupMask & perms; |
217 | 219 | ||
218 | item.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm; | 220 | item.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm; |
219 | item.CreationDate = Util.UnixTimeSinceEpoch(); | 221 | item.CreationDate = Util.UnixTimeSinceEpoch(); |
@@ -231,13 +233,13 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell | |||
231 | break; | 233 | break; |
232 | 234 | ||
233 | case 3: // Sell contents | 235 | case 3: // Sell contents |
234 | List<UUID> invList = part.Inventory.GetInventoryList(); | 236 | List<UUID> invList = rootpart.Inventory.GetInventoryList(); |
235 | 237 | ||
236 | bool okToSell = true; | 238 | bool okToSell = true; |
237 | 239 | ||
238 | foreach (UUID invID in invList) | 240 | foreach (UUID invID in invList) |
239 | { | 241 | { |
240 | TaskInventoryItem item1 = part.Inventory.GetInventoryItem(invID); | 242 | TaskInventoryItem item1 = rootpart.Inventory.GetInventoryItem(invID); |
241 | if ((item1.CurrentPermissions & | 243 | if ((item1.CurrentPermissions & |
242 | (uint)PermissionMask.Transfer) == 0) | 244 | (uint)PermissionMask.Transfer) == 0) |
243 | { | 245 | { |
@@ -255,7 +257,7 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell | |||
255 | } | 257 | } |
256 | 258 | ||
257 | if (invList.Count > 0) | 259 | if (invList.Count > 0) |
258 | m_scene.MoveTaskInventoryItems(remoteClient.AgentId, part.Name, part, invList); | 260 | m_scene.MoveTaskInventoryItems(remoteClient.AgentId, rootpart.Name, rootpart, invList); |
259 | break; | 261 | break; |
260 | } | 262 | } |
261 | 263 | ||