Merge branch '0.6.9-post-fixes' into careminster

This commit is contained in:
Melanie
2010-04-05 18:10:36 +01:00
6 changed files with 199 additions and 59 deletions

View File

@@ -642,8 +642,10 @@ namespace OpenSim.Region.Framework.Scenes
}
ApplyPhysics(m_scene.m_physicalPrim);
ScheduleGroupForFullUpdate();
// Don't trigger the update here - otherwise some client issues occur when multiple updates are scheduled
// for the same object with very different properties. The caller must schedule the update.
//ScheduleGroupForFullUpdate();
}
public Vector3 GroupScale()
@@ -1045,10 +1047,11 @@ namespace OpenSim.Region.Framework.Scenes
// don't attach attachments to child agents
if (avatar.IsChildAgent) return;
// m_log.DebugFormat("[SOG]: Adding attachment {0} to avatar {1}", Name, avatar.Name);
DetachFromBackup();
// Remove from database and parcel prim count
//
m_scene.DeleteFromStorage(UUID);
m_scene.EventManager.TriggerParcelPrimCountTainted();
@@ -1074,7 +1077,6 @@ namespace OpenSim.Region.Framework.Scenes
SetAttachmentPoint(Convert.ToByte(attachmentpoint));
avatar.AddAttachment(this);
m_log.Debug("[SOG]: Added attachment " + UUID + " to avatar " + avatar.UUID);
if (!silent)
{
@@ -1091,6 +1093,12 @@ namespace OpenSim.Region.Framework.Scenes
ScheduleGroupForFullUpdate();
}
}
else
{
m_log.WarnFormat(
"[SOG]: Tried to add attachment {0} to avatar with UUID {1} in region {2} but the avatar is not present",
UUID, agentID, Scene.RegionInfo.RegionName);
}
}
public byte GetAttachmentPoint()
@@ -2136,6 +2144,8 @@ namespace OpenSim.Region.Framework.Scenes
public void ScheduleFullUpdateToAvatar(ScenePresence presence)
{
// m_log.DebugFormat("[SOG]: Scheduling full update for {0} {1} just to avatar {2}", Name, UUID, presence.Name);
RootPart.AddFullUpdateToAvatar(presence);
lockPartsForRead(true);
@@ -2170,6 +2180,8 @@ namespace OpenSim.Region.Framework.Scenes
/// </summary>
public void ScheduleGroupForFullUpdate()
{
// m_log.DebugFormat("[SOG]: Scheduling full update for {0} {1}", Name, UUID);
checkAtTargets();
RootPart.ScheduleFullUpdate();
@@ -2191,7 +2203,13 @@ namespace OpenSim.Region.Framework.Scenes
/// </summary>
public void ScheduleGroupForTerseUpdate()
{
<<<<<<< HEAD:OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
lockPartsForRead(true);
=======
// m_log.DebugFormat("[SOG]: Scheduling terse update for {0} {1}", Name, UUID);
lock (m_parts)
>>>>>>> 0.6.9-post-fixes:OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
{
foreach (SceneObjectPart part in m_parts.Values)
{
@@ -2207,9 +2225,11 @@ namespace OpenSim.Region.Framework.Scenes
/// Immediately send a full update for this scene object.
/// </summary>
public void SendGroupFullUpdate()
{
{
if (IsDeleted)
return;
// m_log.DebugFormat("[SOG]: Sending immediate full group update for {0} {1}", Name, UUID);
RootPart.SendFullUpdateToAllClients();
@@ -2229,7 +2249,7 @@ namespace OpenSim.Region.Framework.Scenes
/// <summary>
/// Immediately send an update for this scene object's root prim only.
/// This is for updates regarding the object as a whole, and none of its parts in particular.
/// Note: this may not be cused by opensim (it probably should) but it's used by
/// Note: this may not be used by opensim (it probably should) but it's used by
/// external modules.
/// </summary>
public void SendGroupRootTerseUpdate()
@@ -2244,6 +2264,7 @@ namespace OpenSim.Region.Framework.Scenes
{
if (m_scene == null) // Need to check here as it's null during object creation
return;
m_scene.SceneGraph.AddToUpdateList(this);
}
@@ -3744,8 +3765,15 @@ namespace OpenSim.Region.Framework.Scenes
HasGroupChanged = true;
}
<<<<<<< HEAD:OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
lockPartsForRead(false);
ScheduleGroupForFullUpdate();
=======
// Don't trigger the update here - otherwise some client issues occur when multiple updates are scheduled
// for the same object with very different properties. The caller must schedule the update.
//ScheduleGroupForFullUpdate();
>>>>>>> 0.6.9-post-fixes:OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
}
public void TriggerScriptChangedEvent(Changed val)