diff options
Had to rename Rotation in SceneObjectGroup to GroupRotation to stop conflict with Rotation in entitybase (couldn't override as they are different types (LL vs Axiom) and didn't want to add new).
When you take prims into inventory (or delete them), they should now be removed from the prim datastore, so they no longer reappear in-world when you restart opensim.
Diffstat (limited to 'OpenSim/Region/Storage')
-rw-r--r-- | OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs b/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs index b5e9e1c..6f12c47 100644 --- a/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs +++ b/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs | |||
@@ -475,7 +475,24 @@ namespace OpenSim.DataStore.MonoSqliteStorage | |||
475 | 475 | ||
476 | public void RemoveObject(LLUUID obj) | 476 | public void RemoveObject(LLUUID obj) |
477 | { | 477 | { |
478 | // TODO: remove code | 478 | DataTable prims = ds.Tables["prims"]; |
479 | DataTable shapes = ds.Tables["primshapes"]; | ||
480 | |||
481 | string selectExp = "SceneGroupID = '" + obj.ToString() + "'"; | ||
482 | DataRow[] primRows = prims.Select(selectExp); | ||
483 | foreach (DataRow row in primRows) | ||
484 | { | ||
485 | LLUUID uuid = new LLUUID((string)row["UUID"]); | ||
486 | DataRow shapeRow = shapes.Rows.Find(uuid); | ||
487 | if (shapeRow != null) | ||
488 | { | ||
489 | shapeRow.Delete(); | ||
490 | } | ||
491 | row.Delete(); | ||
492 | } | ||
493 | |||
494 | primDa.Update(ds, "prims"); | ||
495 | shapeDa.Update(ds, "primshapes"); | ||
479 | } | 496 | } |
480 | 497 | ||
481 | public List<SceneObjectGroup> LoadObjects() | 498 | public List<SceneObjectGroup> LoadObjects() |