aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Framework/IMoneyModule.cs2
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs8
-rw-r--r--OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs3
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs8
4 files changed, 14 insertions, 7 deletions
diff --git a/OpenSim/Framework/IMoneyModule.cs b/OpenSim/Framework/IMoneyModule.cs
index 415b7df..55c9613 100644
--- a/OpenSim/Framework/IMoneyModule.cs
+++ b/OpenSim/Framework/IMoneyModule.cs
@@ -33,7 +33,7 @@ namespace OpenSim.Framework
33 public interface IMoneyModule 33 public interface IMoneyModule
34 { 34 {
35 bool ObjectGiveMoney(UUID objectID, UUID fromID, UUID toID, 35 bool ObjectGiveMoney(UUID objectID, UUID fromID, UUID toID,
36 int amount, UUID txn); 36 int amount, UUID txn, out string reason);
37 37
38 int GetBalance(UUID agentID); 38 int GetBalance(UUID agentID);
39 bool UploadCovered(UUID agentID, int amount); 39 bool UploadCovered(UUID agentID, int amount);
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
index 588da10..aa00145 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
@@ -794,6 +794,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
794 XmlDocument doc = new XmlDocument(); 794 XmlDocument doc = new XmlDocument();
795 doc.LoadXml(xmlData); 795 doc.LoadXml(xmlData);
796 XmlElement e = (XmlElement)doc.SelectSingleNode("/CoalescedObject"); 796 XmlElement e = (XmlElement)doc.SelectSingleNode("/CoalescedObject");
797 Vector3 rez_pos;
797 if (e == null || attachment) // Single 798 if (e == null || attachment) // Single
798 { 799 {
799 SceneObjectGroup g = SceneObjectSerializer.FromOriginalXmlFormat(xmlData); 800 SceneObjectGroup g = SceneObjectSerializer.FromOriginalXmlFormat(xmlData);
@@ -815,6 +816,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
815 RayStart, RayEnd, RayTargetID, Quaternion.Identity, 816 RayStart, RayEnd, RayTargetID, Quaternion.Identity,
816 BypassRayCast, bRayEndIsIntersection, true, g.GetAxisAlignedBoundingBox(out offsetHeight), false); 817 BypassRayCast, bRayEndIsIntersection, true, g.GetAxisAlignedBoundingBox(out offsetHeight), false);
817 pos.Z += offsetHeight; 818 pos.Z += offsetHeight;
819 rez_pos = pos;
818 } 820 }
819 else 821 else
820 { 822 {
@@ -829,6 +831,8 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
829 BypassRayCast, bRayEndIsIntersection, true, 831 BypassRayCast, bRayEndIsIntersection, true,
830 bbox, false); 832 bbox, false);
831 833
834 rez_pos = pos;
835
832 pos -= bbox / 2; 836 pos -= bbox / 2;
833 837
834 XmlNodeList groups = e.SelectNodes("SceneObjectGroup"); 838 XmlNodeList groups = e.SelectNodes("SceneObjectGroup");
@@ -865,7 +869,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
865 primcount += g.PrimCount; 869 primcount += g.PrimCount;
866 870
867 if (!m_Scene.Permissions.CanRezObject( 871 if (!m_Scene.Permissions.CanRezObject(
868 primcount, remoteClient.AgentId, pos) 872 primcount, remoteClient.AgentId, rez_pos)
869 && !attachment) 873 && !attachment)
870 { 874 {
871 // The client operates in no fail mode. It will 875 // The client operates in no fail mode. It will
@@ -882,7 +886,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
882 return null; 886 return null;
883 } 887 }
884 888
885 if (item != null && !DoPreRezWhenFromItem(remoteClient, item, objlist, pos, veclist, attachment)) 889 if (item != null && !DoPreRezWhenFromItem(remoteClient, item, objlist, rez_pos, veclist, attachment))
886 return null; 890 return null;
887 891
888 for (int i = 0; i < objlist.Count; i++) 892 for (int i = 0; i < objlist.Count; i++)
diff --git a/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs b/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs
index 25f198b..bcb21d0 100644
--- a/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs
+++ b/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs
@@ -203,8 +203,9 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule
203 { 203 {
204 } 204 }
205 205
206 public bool ObjectGiveMoney(UUID objectID, UUID fromID, UUID toID, int amount, UUID txn) 206 public bool ObjectGiveMoney(UUID objectID, UUID fromID, UUID toID, int amount, UUID txn, out string result)
207 { 207 {
208 result = String.Empty;
208 string description = String.Format("Object {0} pays {1}", resolveObjectName(objectID), resolveAgentName(toID)); 209 string description = String.Format("Object {0} pays {1}", resolveObjectName(objectID), resolveAgentName(toID));
209 210
210 bool give_result = doMoneyTransfer(fromID, toID, amount, 2, description); 211 bool give_result = doMoneyTransfer(fromID, toID, amount, 2, description);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index d5f14bf..f05aaa9 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -3180,8 +3180,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3180 return; 3180 return;
3181 } 3181 }
3182 3182
3183 string reason;
3183 money.ObjectGiveMoney( 3184 money.ObjectGiveMoney(
3184 m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount,UUID.Zero); 3185 m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount,UUID.Zero, out reason);
3185 }); 3186 });
3186 3187
3187 return 0; 3188 return 0;
@@ -12841,8 +12842,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
12841 return; 12842 return;
12842 } 12843 }
12843 12844
12845 string reason;
12844 bool result = money.ObjectGiveMoney( 12846 bool result = money.ObjectGiveMoney(
12845 m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount, txn); 12847 m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount, txn, out reason);
12846 12848
12847 if (result) 12849 if (result)
12848 { 12850 {
@@ -12850,7 +12852,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
12850 return; 12852 return;
12851 } 12853 }
12852 12854
12853 replydata = "LINDENDOLLAR_INSUFFICIENTFUNDS"; 12855 replydata = reason;
12854 } 12856 }
12855 finally 12857 finally
12856 { 12858 {