diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs | 13 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/EventManager.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 10 |
3 files changed, 21 insertions, 10 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs index 0825a01..c8a25dd 100644 --- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs | |||
@@ -388,6 +388,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
388 | 388 | ||
389 | Dictionary<SceneObjectGroup, string> scriptStates = new Dictionary<SceneObjectGroup, string>(); | 389 | Dictionary<SceneObjectGroup, string> scriptStates = new Dictionary<SceneObjectGroup, string>(); |
390 | 390 | ||
391 | m_log.DebugFormat("[ATTACHMENTS MODULE]: enter PrepareScriptInstanceForSave loop"); | ||
391 | foreach (SceneObjectGroup so in attachments) | 392 | foreach (SceneObjectGroup so in attachments) |
392 | { | 393 | { |
393 | // Scripts MUST be snapshotted before the object is | 394 | // Scripts MUST be snapshotted before the object is |
@@ -398,13 +399,16 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
398 | scriptStates[so] = PrepareScriptInstanceForSave(so, false); | 399 | scriptStates[so] = PrepareScriptInstanceForSave(so, false); |
399 | } | 400 | } |
400 | 401 | ||
402 | m_log.DebugFormat("[ATTACHMENTS MODULE]: enter UpdateDetachedObject loop"); | ||
401 | lock (sp.AttachmentsSyncLock) | 403 | lock (sp.AttachmentsSyncLock) |
402 | { | 404 | { |
403 | foreach (SceneObjectGroup so in attachments) | 405 | foreach (SceneObjectGroup so in attachments) |
404 | UpdateDetachedObject(sp, so, scriptStates[so]); | 406 | UpdateDetachedObject(sp, so, scriptStates[so]); |
405 | 407 | m_log.DebugFormat("[ATTACHMENTS MODULE]: enter ClearAttachments"); | |
406 | sp.ClearAttachments(); | 408 | sp.ClearAttachments(); |
407 | } | 409 | } |
410 | m_log.DebugFormat("[ATTACHMENTS MODULE]: derez done"); | ||
411 | |||
408 | } | 412 | } |
409 | 413 | ||
410 | public void DeleteAttachmentsFromScene(IScenePresence sp, bool silent) | 414 | public void DeleteAttachmentsFromScene(IScenePresence sp, bool silent) |
@@ -1014,6 +1018,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
1014 | // Remove the object from the scene so no more updates | 1018 | // Remove the object from the scene so no more updates |
1015 | // are sent. Doing this before the below changes will ensure | 1019 | // are sent. Doing this before the below changes will ensure |
1016 | // updates can't cause "HUD artefacts" | 1020 | // updates can't cause "HUD artefacts" |
1021 | |||
1022 | m_log.WarnFormat("[ATTACHMENTS MODULE]: DeleteSceneObject"); | ||
1023 | |||
1017 | m_scene.DeleteSceneObject(so, false, false); | 1024 | m_scene.DeleteSceneObject(so, false, false); |
1018 | 1025 | ||
1019 | // Prepare sog for storage | 1026 | // Prepare sog for storage |
@@ -1023,6 +1030,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
1023 | 1030 | ||
1024 | if (saveChanged) | 1031 | if (saveChanged) |
1025 | { | 1032 | { |
1033 | m_log.WarnFormat("[ATTACHMENTS MODULE]: saveChanged true"); | ||
1034 | |||
1026 | // We cannot use AbsolutePosition here because that would | 1035 | // We cannot use AbsolutePosition here because that would |
1027 | // attempt to cross the prim as it is detached | 1036 | // attempt to cross the prim as it is detached |
1028 | so.ForEachPart(x => { x.GroupPosition = so.RootPart.AttachedPos; }); | 1037 | so.ForEachPart(x => { x.GroupPosition = so.RootPart.AttachedPos; }); |
@@ -1031,7 +1040,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
1031 | } | 1040 | } |
1032 | 1041 | ||
1033 | // Now, remove the scripts | 1042 | // Now, remove the scripts |
1043 | m_log.WarnFormat("[ATTACHMENTS MODULE]: remove scripts"); | ||
1034 | so.RemoveScriptInstances(true); | 1044 | so.RemoveScriptInstances(true); |
1045 | m_log.WarnFormat("[ATTACHMENTS MODULE]: UpdateDetachedObject done"); | ||
1035 | } | 1046 | } |
1036 | 1047 | ||
1037 | protected SceneObjectGroup RezSingleAttachmentFromInventoryInternal( | 1048 | protected SceneObjectGroup RezSingleAttachmentFromInventoryInternal( |
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs index 182c3fd..692e0c9 100644 --- a/OpenSim/Region/Framework/Scenes/EventManager.cs +++ b/OpenSim/Region/Framework/Scenes/EventManager.cs | |||
@@ -1366,9 +1366,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
1366 | { | 1366 | { |
1367 | try | 1367 | try |
1368 | { | 1368 | { |
1369 | m_log.ErrorFormat("[EVENT MANAGER]: OnRemovePresenceDelegate: {0}",d.Target.ToString()); | 1369 | // m_log.ErrorFormat("[EVENT MANAGER]: OnRemovePresenceDelegate: {0}",d.Target.ToString()); |
1370 | d(agentId); | 1370 | d(agentId); |
1371 | m_log.ErrorFormat("[EVENT MANAGER]: OnRemovePresenceDelegate done "); | 1371 | // m_log.ErrorFormat("[EVENT MANAGER]: OnRemovePresenceDelegate done "); |
1372 | } | 1372 | } |
1373 | catch (Exception e) | 1373 | catch (Exception e) |
1374 | { | 1374 | { |
@@ -2039,9 +2039,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
2039 | { | 2039 | { |
2040 | try | 2040 | try |
2041 | { | 2041 | { |
2042 | m_log.ErrorFormat("[EVENT MANAGER]: TriggerClientClosed: {0}", d.Target.ToString()); | 2042 | // m_log.ErrorFormat("[EVENT MANAGER]: TriggerClientClosed: {0}", d.Target.ToString()); |
2043 | d(ClientID, scene); | 2043 | d(ClientID, scene); |
2044 | m_log.ErrorFormat("[EVENT MANAGER]: TriggerClientClosed done "); | 2044 | // m_log.ErrorFormat("[EVENT MANAGER]: TriggerClientClosed done "); |
2045 | 2045 | ||
2046 | } | 2046 | } |
2047 | catch (Exception e) | 2047 | catch (Exception e) |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index c53f7af..0266faf 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -3640,17 +3640,17 @@ namespace OpenSim.Region.Framework.Scenes | |||
3640 | } | 3640 | } |
3641 | 3641 | ||
3642 | m_eventManager.TriggerClientClosed(agentID, this); | 3642 | m_eventManager.TriggerClientClosed(agentID, this); |
3643 | m_log.Debug("[Scene]TriggerClientClosed done"); | 3643 | // m_log.Debug("[Scene]TriggerClientClosed done"); |
3644 | m_eventManager.TriggerOnRemovePresence(agentID); | 3644 | m_eventManager.TriggerOnRemovePresence(agentID); |
3645 | m_log.Debug("[Scene]TriggerOnRemovePresence done"); | 3645 | // m_log.Debug("[Scene]TriggerOnRemovePresence done"); |
3646 | 3646 | ||
3647 | if (!isChildAgent) | 3647 | if (!isChildAgent) |
3648 | { | 3648 | { |
3649 | if (AttachmentsModule != null) | 3649 | if (AttachmentsModule != null) |
3650 | { | 3650 | { |
3651 | m_log.Debug("[Scene]DeRezAttachments"); | 3651 | // m_log.Debug("[Scene]DeRezAttachments"); |
3652 | AttachmentsModule.DeRezAttachments(avatar); | 3652 | AttachmentsModule.DeRezAttachments(avatar); |
3653 | m_log.Debug("[Scene]DeRezAttachments done"); | 3653 | // m_log.Debug("[Scene]DeRezAttachments done"); |
3654 | } | 3654 | } |
3655 | 3655 | ||
3656 | ForEachClient( | 3656 | ForEachClient( |
@@ -3665,7 +3665,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3665 | // It's possible for child agents to have transactions if changes are being made cross-border. | 3665 | // It's possible for child agents to have transactions if changes are being made cross-border. |
3666 | if (AgentTransactionsModule != null) | 3666 | if (AgentTransactionsModule != null) |
3667 | { | 3667 | { |
3668 | m_log.Debug("[Scene]RemoveAgentAssetTransactions"); | 3668 | // m_log.Debug("[Scene]RemoveAgentAssetTransactions"); |
3669 | AgentTransactionsModule.RemoveAgentAssetTransactions(agentID); | 3669 | AgentTransactionsModule.RemoveAgentAssetTransactions(agentID); |
3670 | } | 3670 | } |
3671 | m_log.Debug("[Scene] The avatar has left the building"); | 3671 | m_log.Debug("[Scene] The avatar has left the building"); |