* Eliminate SOG.FakeDeleteGroup() since it is now identical with DeleteGroup() (except that is didn't lock the parts, which was a potential race condition)

* Removed fake delete code from LSL_Api.SetFlexi - this code was never activiated anyway and didn't appear to make much sense on the surface
0.6.1-post-fixes
Justin Clarke Casey 2008-11-17 16:06:50 +00:00
parent 48a72f51a8
commit c41903077d
3 changed files with 1 additions and 47 deletions

View File

@ -96,7 +96,7 @@ namespace OpenSim.Region.Environment.Scenes
// Visually remove it, even if it isnt really gone yet. // Visually remove it, even if it isnt really gone yet.
if (permissionToDelete) if (permissionToDelete)
objectGroup.FakeDeleteGroup(); objectGroup.DeleteGroup(false);
} }
private void InventoryRunDeleteTimer(object sender, ElapsedEventArgs e) private void InventoryRunDeleteTimer(object sender, ElapsedEventArgs e)

View File

@ -1063,30 +1063,6 @@ namespace OpenSim.Region.Environment.Scenes
} }
} }
public void FakeDeleteGroup()
{
// If there are any updates queued for this object when the 'fake' delete happens, then make sure
// that they don't happen, otherwise the deleted objects will reappear
m_isDeleted = true;
DetachFromBackup();
foreach (SceneObjectPart part in m_parts.Values)
{
List<ScenePresence> avatars = Scene.GetScenePresences();
for (int i = 0; i < avatars.Count; i++)
{
if (avatars[i].ParentID == LocalId)
{
avatars[i].StandUp();
}
if (m_rootPart != null && part == m_rootPart)
avatars[i].ControllingClient.SendKillObject(m_regionHandle, part.LocalId);
}
}
}
public void AddScriptLPS(int count) public void AddScriptLPS(int count)
{ {
if (scriptScore + count >= float.MaxValue - count) if (scriptScore + count >= float.MaxValue - count)

View File

@ -1425,13 +1425,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
if (part == null) if (part == null)
return; return;
bool needs_fakedelete = false;
if (flexi) if (flexi)
{ {
if (!part.Shape.FlexiEntry)
{
needs_fakedelete = true;
}
part.Shape.FlexiEntry = true; // this setting flexi true isn't working, but the below parameters do part.Shape.FlexiEntry = true; // this setting flexi true isn't working, but the below parameters do
// work once the prim is already flexi // work once the prim is already flexi
part.Shape.FlexiSoftness = softness; part.Shape.FlexiSoftness = softness;
@ -1445,23 +1440,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
part.Shape.PathCurve = 0x80; part.Shape.PathCurve = 0x80;
} }
else
{
if (part.Shape.FlexiEntry)
{
needs_fakedelete = true;
}
part.Shape.FlexiEntry = false;
}
needs_fakedelete = false;
if (needs_fakedelete)
{
if (part.ParentGroup != null)
{
part.ParentGroup.FakeDeleteGroup();
}
}
part.ParentGroup.HasGroupChanged = true; part.ParentGroup.HasGroupChanged = true;
part.ScheduleFullUpdate(); part.ScheduleFullUpdate();