From 15ce73caca9ea6448e34b95d344cbbf5c9507f6d Mon Sep 17 00:00:00 2001
From: PixelTomsen
Date: Tue, 21 Feb 2012 19:37:14 +0100
Subject: Fix:Cannot drag inventory from child prim into inventory
http://opensimulator.org/mantis/view.php?id=5569
---
OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
(limited to 'OpenSim')
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index 6cc78b8..132f15d 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -1144,6 +1144,11 @@ namespace OpenSim.Region.Framework.Scenes
return;
}
+ UUID partUUID = part.UUID;
+ SceneObjectGroup group = part.ParentGroup;
+ if (group != null)
+ partUUID = group.RootPart.UUID;
+
TaskInventoryItem taskItem = part.Inventory.GetInventoryItem(itemId);
if (null == taskItem)
@@ -1155,19 +1160,18 @@ namespace OpenSim.Region.Framework.Scenes
return;
}
- TaskInventoryItem item = part.Inventory.GetInventoryItem(itemId);
- if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0)
+ if ((taskItem.CurrentPermissions & (uint)PermissionMask.Copy) == 0)
{
// If the item to be moved is no copy, we need to be able to
// edit the prim.
- if (!Permissions.CanEditObjectInventory(part.UUID, remoteClient.AgentId))
+ if (!Permissions.CanEditObjectInventory(partUUID, remoteClient.AgentId))
return;
}
else
{
// If the item is copiable, then we just need to have perms
// on it. The delete check is a pure rights check
- if (!Permissions.CanDeleteObject(part.UUID, remoteClient.AgentId))
+ if (!Permissions.CanDeleteObject(partUUID, remoteClient.AgentId))
return;
}
--
cgit v1.1
From 76f411147d69b2a57c8eb7db0f48f3341ca5fd51 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 21 Feb 2012 22:49:06 +0000
Subject: Revert "Fix:Cannot drag inventory from child prim into inventory
http://opensimulator.org/mantis/view.php?id=5569"
This reverts commit 15ce73caca9ea6448e34b95d344cbbf5c9507f6d.
As per the COMMENTS in http://opensimulator.org/mantis/view.php?id=5569, I was going to fix this in a more general way.
---
OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
(limited to 'OpenSim')
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index 132f15d..6cc78b8 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -1144,11 +1144,6 @@ namespace OpenSim.Region.Framework.Scenes
return;
}
- UUID partUUID = part.UUID;
- SceneObjectGroup group = part.ParentGroup;
- if (group != null)
- partUUID = group.RootPart.UUID;
-
TaskInventoryItem taskItem = part.Inventory.GetInventoryItem(itemId);
if (null == taskItem)
@@ -1160,18 +1155,19 @@ namespace OpenSim.Region.Framework.Scenes
return;
}
- if ((taskItem.CurrentPermissions & (uint)PermissionMask.Copy) == 0)
+ TaskInventoryItem item = part.Inventory.GetInventoryItem(itemId);
+ if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0)
{
// If the item to be moved is no copy, we need to be able to
// edit the prim.
- if (!Permissions.CanEditObjectInventory(partUUID, remoteClient.AgentId))
+ if (!Permissions.CanEditObjectInventory(part.UUID, remoteClient.AgentId))
return;
}
else
{
// If the item is copiable, then we just need to have perms
// on it. The delete check is a pure rights check
- if (!Permissions.CanDeleteObject(partUUID, remoteClient.AgentId))
+ if (!Permissions.CanDeleteObject(part.UUID, remoteClient.AgentId))
return;
}
--
cgit v1.1
From 5397a6d4c626818af9aed1e2e0dedd430fb4b948 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 21 Feb 2012 22:54:30 +0000
Subject: Fix problem with dragging child part inventory item to user
inventory.
This fixes the problem by fixing the permissions module to look at root part permissions rather than having to do this for every caller.
Resolves http://opensimulator.org/mantis/view.php?id=5569
---
.../World/Permissions/PermissionsModule.cs | 22 +++-------------------
OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 12 +-----------
2 files changed, 4 insertions(+), 30 deletions(-)
(limited to 'OpenSim')
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
index f3c6a30..7023984 100644
--- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
+++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
@@ -677,18 +677,12 @@ namespace OpenSim.Region.CoreModules.World.Permissions
bool permission = false;
bool locked = false;
- if (!m_scene.Entities.ContainsKey(objId))
- {
- return false;
- }
+ SceneObjectPart part = m_scene.GetSceneObjectPart(objId);
- // If it's not an object, we cant edit it.
- if ((!(m_scene.Entities[objId] is SceneObjectGroup)))
- {
+ if (part == null)
return false;
- }
- SceneObjectGroup group = (SceneObjectGroup)m_scene.Entities[objId];
+ SceneObjectGroup group = part.ParentGroup;
UUID objectOwner = group.OwnerID;
locked = ((group.RootPart.OwnerMask & PERM_LOCKED) == 0);
@@ -977,16 +971,6 @@ namespace OpenSim.Region.CoreModules.World.Permissions
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
if (m_bypassPermissions) return m_bypassPermissionsValue;
- SceneObjectPart part = m_scene.GetSceneObjectPart(objectID);
-
- // If we selected a sub-prim to edit, the objectID won't represent the object, but only a part.
- // We have to check the permissions of the group, though.
- if (part.ParentID != 0)
- {
- objectID = part.ParentUUID;
- part = m_scene.GetSceneObjectPart(objectID);
- }
-
return GenericObjectPermission(editorID, objectID, false);
}
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index 6cc78b8..83e3a45 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -1146,17 +1146,7 @@ namespace OpenSim.Region.Framework.Scenes
TaskInventoryItem taskItem = part.Inventory.GetInventoryItem(itemId);
- if (null == taskItem)
- {
- m_log.WarnFormat("[PRIM INVENTORY]: Move of inventory item {0} from prim with local id {1} failed"
- + " because the inventory item could not be found",
- itemId, primLocalId);
-
- return;
- }
-
- TaskInventoryItem item = part.Inventory.GetInventoryItem(itemId);
- if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0)
+ if ((taskItem.CurrentPermissions & (uint)PermissionMask.Copy) == 0)
{
// If the item to be moved is no copy, we need to be able to
// edit the prim.
--
cgit v1.1
From 1c533eb5200d5a2443731abba55b6cd34eb067f7 Mon Sep 17 00:00:00 2001
From: PixelTomsen
Date: Tue, 21 Feb 2012 20:57:51 +0100
Subject: Fix:LINK_ROOT flag for llGetLinkName() by SinglePrim
---
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 0bdd84a..61a6907 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -3845,7 +3845,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
// Single prim
if (m_host.LinkNum == 0)
{
- if (linknum == 0)
+ if (linknum == 0 || linknum == ScriptBaseClass.LINK_ROOT)
return m_host.Name;
else
return UUID.Zero.ToString();
--
cgit v1.1
From cf9b3e7708f0cf58c94fcfd76974733c37ac0d1c Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 21 Feb 2012 23:41:48 +0000
Subject: Restore the taskItem null check that I accidentally blatted in
5397a6d
This is a valid check because the caller could supply an invalid uuid.
---
OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 9 +++++++++
1 file changed, 9 insertions(+)
(limited to 'OpenSim')
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index 83e3a45..23f39a8 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -1146,6 +1146,15 @@ namespace OpenSim.Region.Framework.Scenes
TaskInventoryItem taskItem = part.Inventory.GetInventoryItem(itemId);
+ if (null == taskItem)
+ {
+ m_log.WarnFormat("[PRIM INVENTORY]: Move of inventory item {0} from prim with local id {1} failed"
+ + " because the inventory item could not be found",
+ itemId, primLocalId);
+
+ return;
+ }
+
if ((taskItem.CurrentPermissions & (uint)PermissionMask.Copy) == 0)
{
// If the item to be moved is no copy, we need to be able to
--
cgit v1.1
From 5d312671855bf5fda2ae5960fdcd19f1d9f1d1cb Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Wed, 22 Feb 2012 00:55:16 +0000
Subject: Remove two spurious m_sceneGraph != null checks in Scene.cs. It's
set in constructor and never subsequent set to null.
---
OpenSim/Region/Framework/Scenes/Scene.cs | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
(limited to 'OpenSim')
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index e7f835c..ec32701 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -4257,10 +4257,7 @@ namespace OpenSim.Region.Framework.Scenes
///
public void ForEachRootScenePresence(Action action)
{
- if (m_sceneGraph != null)
- {
- m_sceneGraph.ForEachAvatar(action);
- }
+ m_sceneGraph.ForEachAvatar(action);
}
///
@@ -4269,10 +4266,7 @@ namespace OpenSim.Region.Framework.Scenes
///
public void ForEachScenePresence(Action action)
{
- if (m_sceneGraph != null)
- {
- m_sceneGraph.ForEachScenePresence(action);
- }
+ m_sceneGraph.ForEachScenePresence(action);
}
///
--
cgit v1.1
From 1dfc9902649bfb4f02340644a0589fe139a3322a Mon Sep 17 00:00:00 2001
From: Melanie
Date: Thu, 23 Feb 2012 01:40:30 +0000
Subject: Add a position parameter to region crossing of objects. This avoids
the potential bad update that places an object at the opposite side of the
origin sim for a moment before actually crossing it. Especially important in
grids like OSG where lag between sims is high.
---
.../Framework/EntityTransfer/EntityTransferModule.cs | 9 ++++-----
.../Simulation/LocalSimulationConnector.cs | 6 +++---
.../Simulation/RemoteSimulationConnector.cs | 6 +++---
OpenSim/Region/Framework/Scenes/Scene.cs | 5 ++++-
OpenSim/Region/Framework/Scenes/ScenePresence.cs | 2 +-
OpenSim/Server/Handlers/Simulation/ObjectHandlers.cs | 10 +++++++---
.../Connectors/Simulation/SimulationServiceConnector.cs | 3 ++-
OpenSim/Services/Interfaces/ISimulationService.cs | 2 +-
8 files changed, 25 insertions(+), 18 deletions(-)
(limited to 'OpenSim')
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index 8f047ea..f6e4dbf 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -1704,14 +1704,13 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
// Offset the positions for the new region across the border
Vector3 oldGroupPosition = grp.RootPart.GroupPosition;
- grp.RootPart.GroupPosition = pos;
// If we fail to cross the border, then reset the position of the scene object on that border.
uint x = 0, y = 0;
Utils.LongToUInts(newRegionHandle, out x, out y);
GridRegion destination = scene.GridService.GetRegionByPosition(scene.RegionInfo.ScopeID, (int)x, (int)y);
- if (destination == null || !CrossPrimGroupIntoNewRegion(destination, grp, silent))
+ if (destination == null || !CrossPrimGroupIntoNewRegion(destination, pos, grp, silent))
{
m_log.InfoFormat("[ENTITY TRANSFER MODULE] cross region transfer failed for object {0}",grp.UUID);
@@ -1741,7 +1740,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
/// true if the crossing itself was successful, false on failure
/// FIMXE: we still return true if the crossing object was not successfully deleted from the originating region
///
- protected bool CrossPrimGroupIntoNewRegion(GridRegion destination, SceneObjectGroup grp, bool silent)
+ protected bool CrossPrimGroupIntoNewRegion(GridRegion destination, Vector3 newPosition, SceneObjectGroup grp, bool silent)
{
//m_log.Debug(" >>> CrossPrimGroupIntoNewRegion <<<");
@@ -1766,7 +1765,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
//if (m_interregionCommsOut != null)
// successYN = m_interregionCommsOut.SendCreateObject(newRegionHandle, grp, true);
if (m_aScene.SimulationService != null)
- successYN = m_aScene.SimulationService.CreateObject(destination, grp, true);
+ successYN = m_aScene.SimulationService.CreateObject(destination, newPosition, grp, true);
if (successYN)
{
@@ -1825,7 +1824,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
gobj.IsAttachment = false;
//gobj.RootPart.LastOwnerID = gobj.GetFromAssetID();
m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Sending attachment {0} to region {1}", gobj.UUID, destination.RegionName);
- CrossPrimGroupIntoNewRegion(destination, gobj, silent);
+ CrossPrimGroupIntoNewRegion(destination, Vector3.Zero, gobj, silent);
}
}
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs
index a17c6ae..85e7e94 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs
@@ -315,7 +315,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
* Object-related communications
*/
- public bool CreateObject(GridRegion destination, ISceneObject sog, bool isLocalCall)
+ public bool CreateObject(GridRegion destination, Vector3 newPosition, ISceneObject sog, bool isLocalCall)
{
if (destination == null)
return false;
@@ -330,12 +330,12 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
// We need to make a local copy of the object
ISceneObject sogClone = sog.CloneForNewScene();
sogClone.SetState(sog.GetStateSnapshot(), s);
- return s.IncomingCreateObject(sogClone);
+ return s.IncomingCreateObject(newPosition, sogClone);
}
else
{
// Use the object as it came through the wire
- return s.IncomingCreateObject(sog);
+ return s.IncomingCreateObject(newPosition, sog);
}
}
}
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs
index f8cea71..eaf9506 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs
@@ -282,13 +282,13 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
* Object-related communications
*/
- public bool CreateObject(GridRegion destination, ISceneObject sog, bool isLocalCall)
+ public bool CreateObject(GridRegion destination, Vector3 newPosition, ISceneObject sog, bool isLocalCall)
{
if (destination == null)
return false;
// Try local first
- if (m_localBackend.CreateObject(destination, sog, isLocalCall))
+ if (m_localBackend.CreateObject(destination, newPosition, sog, isLocalCall))
{
//m_log.Debug("[REST COMMS]: LocalBackEnd SendCreateObject succeeded");
return true;
@@ -296,7 +296,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
// else do the remote thing
if (!m_localBackend.IsLocalRegion(destination.RegionHandle))
- return m_remoteConnector.CreateObject(destination, sog, isLocalCall);
+ return m_remoteConnector.CreateObject(destination, newPosition, sog, isLocalCall);
return false;
}
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index e7f835c..7b79732 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -2317,7 +2317,7 @@ namespace OpenSim.Region.Framework.Scenes
///
///
///
- public bool IncomingCreateObject(ISceneObject sog)
+ public bool IncomingCreateObject(Vector3 newPosition, ISceneObject sog)
{
//m_log.DebugFormat(" >>> IncomingCreateObject(sog) <<< {0} deleted? {1} isAttach? {2}", ((SceneObjectGroup)sog).AbsolutePosition,
// ((SceneObjectGroup)sog).IsDeleted, ((SceneObjectGroup)sog).RootPart.IsAttachment);
@@ -2333,6 +2333,9 @@ namespace OpenSim.Region.Framework.Scenes
return false;
}
+ if (newPosition != Vector3.Zero)
+ newObject.RootPart.GroupPosition = newPosition;
+
if (!AddSceneObject(newObject))
{
m_log.DebugFormat("[SCENE]: Problem adding scene object {0} in {1} ", sog.UUID, RegionInfo.RegionName);
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index daf711c..9cfdf9f 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -3223,7 +3223,7 @@ namespace OpenSim.Region.Framework.Scenes
((SceneObjectGroup)so).LocalId = 0;
((SceneObjectGroup)so).RootPart.ClearUpdateSchedule();
so.SetState(cAgent.AttachmentObjectStates[i++], m_scene);
- m_scene.IncomingCreateObject(so);
+ m_scene.IncomingCreateObject(Vector3.Zero, so);
}
}
}
diff --git a/OpenSim/Server/Handlers/Simulation/ObjectHandlers.cs b/OpenSim/Server/Handlers/Simulation/ObjectHandlers.cs
index 984b843..f0d8f69 100644
--- a/OpenSim/Server/Handlers/Simulation/ObjectHandlers.cs
+++ b/OpenSim/Server/Handlers/Simulation/ObjectHandlers.cs
@@ -136,6 +136,8 @@ namespace OpenSim.Server.Handlers.Simulation
int x = 0, y = 0;
UUID uuid = UUID.Zero;
string regionname = string.Empty;
+ Vector3 newPosition = Vector3.Zero;
+
if (args.ContainsKey("destination_x") && args["destination_x"] != null)
Int32.TryParse(args["destination_x"].AsString(), out x);
if (args.ContainsKey("destination_y") && args["destination_y"] != null)
@@ -144,6 +146,8 @@ namespace OpenSim.Server.Handlers.Simulation
UUID.TryParse(args["destination_uuid"].AsString(), out uuid);
if (args.ContainsKey("destination_name") && args["destination_name"] != null)
regionname = args["destination_name"].ToString();
+ if (args.ContainsKey("new_position") && args["new_position"] != null)
+ Vector3.TryParse(args["new_position"], out newPosition);
GridRegion destination = new GridRegion();
destination.RegionID = uuid;
@@ -199,7 +203,7 @@ namespace OpenSim.Server.Handlers.Simulation
try
{
// This is the meaning of POST object
- result = CreateObject(destination, sog);
+ result = CreateObject(destination, newPosition, sog);
}
catch (Exception e)
{
@@ -211,9 +215,9 @@ namespace OpenSim.Server.Handlers.Simulation
}
// subclasses can override this
- protected virtual bool CreateObject(GridRegion destination, ISceneObject sog)
+ protected virtual bool CreateObject(GridRegion destination, Vector3 newPosition, ISceneObject sog)
{
- return m_SimulationService.CreateObject(destination, sog, false);
+ return m_SimulationService.CreateObject(destination, newPosition, sog, false);
}
protected virtual void DoObjectPut(Hashtable request, Hashtable responsedata, UUID regionID)
diff --git a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
index 65f01b3..cb003d1 100644
--- a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
@@ -408,7 +408,7 @@ namespace OpenSim.Services.Connectors.Simulation
///
///
///
- public bool CreateObject(GridRegion destination, ISceneObject sog, bool isLocalCall)
+ public bool CreateObject(GridRegion destination, Vector3 newPosition, ISceneObject sog, bool isLocalCall)
{
// m_log.DebugFormat("[REMOTE SIMULATION CONNECTOR]: CreateObject start");
@@ -421,6 +421,7 @@ namespace OpenSim.Services.Connectors.Simulation
args["sog"] = OSD.FromString(sog.ToXml2());
args["extra"] = OSD.FromString(sog.ExtraToXmlString());
args["modified"] = OSD.FromBoolean(sog.HasGroupChanged);
+ args["new_position"] = newPosition.ToString();
string state = sog.GetStateSnapshot();
if (state.Length > 0)
diff --git a/OpenSim/Services/Interfaces/ISimulationService.cs b/OpenSim/Services/Interfaces/ISimulationService.cs
index 5f9ce6d..36fd6fc 100644
--- a/OpenSim/Services/Interfaces/ISimulationService.cs
+++ b/OpenSim/Services/Interfaces/ISimulationService.cs
@@ -98,7 +98,7 @@ namespace OpenSim.Services.Interfaces
///
///
///
- bool CreateObject(GridRegion destination, ISceneObject sog, bool isLocalCall);
+ bool CreateObject(GridRegion destination, Vector3 newPosition, ISceneObject sog, bool isLocalCall);
///
/// Create an object from the user's inventory in the destination region.
--
cgit v1.1