aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/Environment/Scenes/AsyncSceneObjectGroupDeleter.cs2
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs24
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs22
3 files changed, 1 insertions, 47 deletions
diff --git a/OpenSim/Region/Environment/Scenes/AsyncSceneObjectGroupDeleter.cs b/OpenSim/Region/Environment/Scenes/AsyncSceneObjectGroupDeleter.cs
index 7ff78a5..b011600 100644
--- a/OpenSim/Region/Environment/Scenes/AsyncSceneObjectGroupDeleter.cs
+++ b/OpenSim/Region/Environment/Scenes/AsyncSceneObjectGroupDeleter.cs
@@ -96,7 +96,7 @@ namespace OpenSim.Region.Environment.Scenes
96 96
97 // Visually remove it, even if it isnt really gone yet. 97 // Visually remove it, even if it isnt really gone yet.
98 if (permissionToDelete) 98 if (permissionToDelete)
99 objectGroup.FakeDeleteGroup(); 99 objectGroup.DeleteGroup(false);
100 } 100 }
101 101
102 private void InventoryRunDeleteTimer(object sender, ElapsedEventArgs e) 102 private void InventoryRunDeleteTimer(object sender, ElapsedEventArgs e)
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 36b4e10..91caada 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -1063,30 +1063,6 @@ namespace OpenSim.Region.Environment.Scenes
1063 } 1063 }
1064 } 1064 }
1065 1065
1066 public void FakeDeleteGroup()
1067 {
1068 // If there are any updates queued for this object when the 'fake' delete happens, then make sure
1069 // that they don't happen, otherwise the deleted objects will reappear
1070 m_isDeleted = true;
1071
1072 DetachFromBackup();
1073
1074 foreach (SceneObjectPart part in m_parts.Values)
1075 {
1076 List<ScenePresence> avatars = Scene.GetScenePresences();
1077 for (int i = 0; i < avatars.Count; i++)
1078 {
1079 if (avatars[i].ParentID == LocalId)
1080 {
1081 avatars[i].StandUp();
1082 }
1083
1084 if (m_rootPart != null && part == m_rootPart)
1085 avatars[i].ControllingClient.SendKillObject(m_regionHandle, part.LocalId);
1086 }
1087 }
1088 }
1089
1090 public void AddScriptLPS(int count) 1066 public void AddScriptLPS(int count)
1091 { 1067 {
1092 if (scriptScore + count >= float.MaxValue - count) 1068 if (scriptScore + count >= float.MaxValue - count)
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index f8e9e96..40629c6 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -1425,13 +1425,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1425 if (part == null) 1425 if (part == null)
1426 return; 1426 return;
1427 1427
1428 bool needs_fakedelete = false;
1429 if (flexi) 1428 if (flexi)
1430 { 1429 {
1431 if (!part.Shape.FlexiEntry)
1432 {
1433 needs_fakedelete = true;
1434 }
1435 part.Shape.FlexiEntry = true; // this setting flexi true isn't working, but the below parameters do 1430 part.Shape.FlexiEntry = true; // this setting flexi true isn't working, but the below parameters do
1436 // work once the prim is already flexi 1431 // work once the prim is already flexi
1437 part.Shape.FlexiSoftness = softness; 1432 part.Shape.FlexiSoftness = softness;
@@ -1445,23 +1440,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1445 part.Shape.PathCurve = 0x80; 1440 part.Shape.PathCurve = 0x80;
1446 1441
1447 } 1442 }
1448 else
1449 {
1450 if (part.Shape.FlexiEntry)
1451 {
1452 needs_fakedelete = true;
1453 }
1454 part.Shape.FlexiEntry = false;
1455 }
1456
1457 needs_fakedelete = false;
1458 if (needs_fakedelete)
1459 {
1460 if (part.ParentGroup != null)
1461 {
1462 part.ParentGroup.FakeDeleteGroup();
1463 }
1464 }
1465 1443
1466 part.ParentGroup.HasGroupChanged = true; 1444 part.ParentGroup.HasGroupChanged = true;
1467 part.ScheduleFullUpdate(); 1445 part.ScheduleFullUpdate();