diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index abf19d86e6..9721edb5c5 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -2447,7 +2447,7 @@ namespace OpenSim.Region.Framework.Scenes
RayStart, RayEnd, RayTargetID, Quaternion.Identity,
BypassRayCast, bRayEndIsIntersection, true, scale, false);
- RezObject(part, item, pos, null, Vector3.Zero, 0);
+ RezObject(part, item, pos, null, Vector3.Zero, 0, false);
}
}
@@ -2463,7 +2463,7 @@ namespace OpenSim.Region.Framework.Scenes
///
/// The SceneObjectGroup(s) rezzed, or null if rez was unsuccessful
public virtual List RezObject(
- SceneObjectPart sourcePart, TaskInventoryItem item, Vector3 pos, Quaternion? rot, Vector3 vel, int param)
+ SceneObjectPart sourcePart, TaskInventoryItem item, Vector3 pos, Quaternion? rot, Vector3 vel, int param, bool atRoot)
{
if (null == item)
return null;
@@ -2474,6 +2474,7 @@ namespace OpenSim.Region.Framework.Scenes
float offsetHeight;
bool success = sourcePart.Inventory.GetRezReadySceneObjects(item, out objlist, out veclist,out bbox, out offsetHeight);
+
if (!success)
return null;
diff --git a/OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs b/OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs
index 6e0ea7d869..020bb6c808 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs
@@ -97,7 +97,7 @@ namespace OpenSim.Region.Framework.Tests
Quaternion rezRot = new Quaternion(0.5f, 0.5f, 0.5f, 0.5f);
Vector3 rezVel = new Vector3(2, 2, 2);
- scene.RezObject(sop1, taskSceneObjectItem, rezPos, rezRot, rezVel, 0);
+ scene.RezObject(sop1, taskSceneObjectItem, rezPos, rezRot, rezVel, 0,false);
SceneObjectGroup rezzedObject = scene.GetSceneObjectGroup("tso");
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 5141e0ed6e..667a5621d6 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -3233,6 +3233,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
}
public void llRezAtRoot(string inventory, LSL_Vector pos, LSL_Vector vel, LSL_Rotation rot, int param)
+ {
+ doObjectRez(inventory, pos, vel, rot, param, true);
+ }
+
+ public void doObjectRez(string inventory, LSL_Vector pos, LSL_Vector vel, LSL_Rotation rot, int param, bool atRoot)
{
m_host.AddScriptLPS(1);
@@ -3260,10 +3265,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return;
}
- // need the magnitude later
- // float velmag = (float)Util.GetMagnitude(llvel);
-
- List new_groups = World.RezObject(m_host, item, pos, rot, vel, param);
+ List new_groups = World.RezObject(m_host, item, pos, rot, vel, param, atRoot);
// If either of these are null, then there was an unknown error.
if (new_groups == null)
@@ -3311,7 +3313,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
public void llRezObject(string inventory, LSL_Vector pos, LSL_Vector vel, LSL_Rotation rot, int param)
{
- llRezAtRoot(inventory, pos, vel, rot, param);
+ doObjectRez(inventory, pos, vel, rot, param, false);
}
public void llLookAt(LSL_Vector target, double strength, double damping)