diff options
author | Justin Clark-Casey (justincc) | 2012-06-14 02:26:38 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-06-14 02:26:38 +0100 |
commit | 3c3ea196201b56407ccf6c21229064f7954c716d (patch) | |
tree | 3784c4e82497024bc50e1726b02ccfb6d893582f /OpenSim | |
parent | Merge branch 'master' of ssh://opensimulator.org/var/git/opensim (diff) | |
download | opensim-SC-3c3ea196201b56407ccf6c21229064f7954c716d.zip opensim-SC-3c3ea196201b56407ccf6c21229064f7954c716d.tar.gz opensim-SC-3c3ea196201b56407ccf6c21229064f7954c716d.tar.bz2 opensim-SC-3c3ea196201b56407ccf6c21229064f7954c716d.tar.xz |
Fix a bug where scene objects attached as HUDs through scripts would not disappear for other avatars.
We do this by sending a kill message for that object to all other avatars apart from the one that has the hud.
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs index 88071f6..d47b1ab 100644 --- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs | |||
@@ -562,6 +562,19 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
562 | { | 562 | { |
563 | m_scene.SendKillObject(new List<uint> { so.RootPart.LocalId }); | 563 | m_scene.SendKillObject(new List<uint> { so.RootPart.LocalId }); |
564 | } | 564 | } |
565 | else if (so.HasPrivateAttachmentPoint) | ||
566 | { | ||
567 | // m_log.DebugFormat( | ||
568 | // "[ATTACHMENTS MODULE]: Killing private HUD {0} for avatars other than {1} at attachment point {2}", | ||
569 | // so.Name, sp.Name, so.AttachmentPoint); | ||
570 | |||
571 | // Remove the client from everyone in the | ||
572 | m_scene.ForEachClient( | ||
573 | client => | ||
574 | { if (client.AgentId != so.AttachedAvatar) | ||
575 | client.SendKillObject(m_scene.RegionInfo.RegionHandle, new List<uint>() { so.LocalId }); | ||
576 | }); | ||
577 | } | ||
565 | 578 | ||
566 | so.IsSelected = false; // fudge.... | 579 | so.IsSelected = false; // fudge.... |
567 | so.ScheduleGroupForFullUpdate(); | 580 | so.ScheduleGroupForFullUpdate(); |