* Disabling isSelected check on object persistence backup (at least temporarily), since it appears we sometimes either don't receive or don't register deselect packets when
prims are shift copied. * A better long term solution may be to address the problem of why we're not always seeing the deselects0.6.0-stable
parent
bc92d72828
commit
86c46e92cd
|
@ -1090,10 +1090,6 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
|
||||
LLUUID folderID = LLUUID.Zero;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
foreach (DeRezObjectPacket.ObjectDataBlock Data in DeRezPacket.ObjectData)
|
||||
{
|
||||
// m_log.DebugFormat(
|
||||
|
|
|
@ -402,7 +402,6 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
reader.Close();
|
||||
sr.Close();
|
||||
|
||||
|
||||
m_rootPart.LocalId = m_scene.PrimIDAllocate();
|
||||
m_rootPart.ParentID = 0;
|
||||
m_rootPart.RegionHandle = m_regionHandle;
|
||||
|
@ -521,9 +520,13 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
{
|
||||
if (InSceneBackup)
|
||||
{
|
||||
// m_log.DebugFormat(
|
||||
// "[SCENE OBJECT GROUP]: Attaching object {0} to scene presistence sweep", UUID);
|
||||
|
||||
m_scene.EventManager.OnBackup += ProcessBackup;
|
||||
}
|
||||
}
|
||||
|
||||
public LLVector3 GroupScale()
|
||||
{
|
||||
LLVector3 minScale = new LLVector3(Constants.RegionSize,Constants.RegionSize,Constants.RegionSize);
|
||||
|
@ -1073,9 +1076,14 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
public void ProcessBackup(IRegionDataStore datastore)
|
||||
{
|
||||
// don't backup while it's selected or you're asking for changes mid stream.
|
||||
if (HasGroupChanged && !IsSelected)
|
||||
if (HasGroupChanged)
|
||||
{
|
||||
m_log.InfoFormat("[SCENE]: STORING OBJECT {0}", UUID);
|
||||
// FIXME: Disabling this check temporarily since it seems that in some (as yet unidentified)
|
||||
// circumstances with shift copy, we never register that some prims have been deselected, even though
|
||||
// they are no longer selected in the client.
|
||||
// if (!IsSelected)
|
||||
// {
|
||||
m_log.InfoFormat("[SCENE OBJECT GROUP]: Storing object {0}", UUID);
|
||||
|
||||
SceneObjectGroup backup_group = Copy(OwnerID, GroupID, false);
|
||||
|
||||
|
@ -1085,6 +1093,12 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
backup_group.ForEachPart(delegate(SceneObjectPart part) { part.ProcessInventoryBackup(datastore); });
|
||||
|
||||
backup_group = null;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// m_log.DebugFormat(
|
||||
// "[SCENE OBJECT GROUP]: Did not update persistence of object {0} since it was still selected by an avatar during the backup sweep", UUID);
|
||||
// }
|
||||
}
|
||||
|
||||
// Why is storing the inventory outside of HasGroupChanged?
|
||||
|
@ -1209,8 +1223,6 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
m_rootPart.ScheduleFullUpdate();
|
||||
}
|
||||
|
||||
|
||||
|
||||
List<SceneObjectPart> partList = new List<SceneObjectPart>(m_parts.Values);
|
||||
foreach (SceneObjectPart part in partList)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue