* 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 surface0.6.1-post-fixes
parent
48a72f51a8
commit
c41903077d
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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();
|
||||||
|
|
Loading…
Reference in New Issue