From 1b2380db847513443a0641596e085757d0a77cb0 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Fri, 3 Oct 2008 16:18:38 +0000 Subject: Cause objects to be removed from the database when they go temp or get attached. Also make sure that parcel prim counts get updated --- OpenSim/Region/Environment/Scenes/Scene.cs | 5 +++++ OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 13 ++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 2e28cca..5ab40cc 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -4215,5 +4215,10 @@ namespace OpenSim.Region.Environment.Scenes } } } + + public void DeleteFromStorage(UUID uuid) + { + m_storageManager.DataStore.RemoveObject(uuid, m_regInfo.RegionID); + } } } diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 9a418b8..c779a5d 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs @@ -714,8 +714,13 @@ namespace OpenSim.Region.Environment.Scenes if (avatar.IsChildAgent) return; DetachFromBackup(); - m_rootPart.AttachedAvatar = agentID; + // Remove from database and parcel prim count + // + m_scene.DeleteFromStorage(UUID); + m_scene.EventManager.TriggerParcelPrimCountTainted(); + + m_rootPart.AttachedAvatar = agentID; if (m_rootPart.PhysActor != null) { @@ -2082,7 +2087,13 @@ namespace OpenSim.Region.Environment.Scenes SceneObjectPart selectionPart = GetChildPart(localID); if (data[47] != 0) // Temporary + { DetachFromBackup(); + // Remove from database and parcel prim count + // + m_scene.DeleteFromStorage(UUID); + m_scene.EventManager.TriggerParcelPrimCountTainted(); + } if (selectionPart != null) { -- cgit v1.1