aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorSean Dague2008-02-08 16:09:24 +0000
committerSean Dague2008-02-08 16:09:24 +0000
commit7b4fb3b8bc62ff93927e88fef18cf5e2f931fa7e (patch)
tree941de0e5206aa2cb4c0aa5f7b45c16388851a9c0
parentfix the issue found on IRC this morning. The logging call was mistructured (diff)
downloadopensim-SC-7b4fb3b8bc62ff93927e88fef18cf5e2f931fa7e.zip
opensim-SC-7b4fb3b8bc62ff93927e88fef18cf5e2f931fa7e.tar.gz
opensim-SC-7b4fb3b8bc62ff93927e88fef18cf5e2f931fa7e.tar.bz2
opensim-SC-7b4fb3b8bc62ff93927e88fef18cf5e2f931fa7e.tar.xz
From: Kurt Taylor <krtaylor@us.ibm.com>
Attached is a patch for Mantis 25 - this fixes the problem of not having a touch_start happen for all prims in a linked group. So, with this, large builds can now have a single script in the base prim and it will run when any prim in the linked build is touched. The problem was that the objectgrab event was not being propagated to all the prims in the group.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs13
1 files changed, 12 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index 8adb281..86f10d7 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -148,7 +148,6 @@ namespace OpenSim.Region.Environment.Scenes
148 148
149 public virtual void ProcessObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient) 149 public virtual void ProcessObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient)
150 { 150 {
151 EventManager.TriggerObjectGrab(localID, offsetPos, remoteClient);
152 151
153 List<EntityBase> EntitieList = GetEntities(); 152 List<EntityBase> EntitieList = GetEntities();
154 153
@@ -158,9 +157,21 @@ namespace OpenSim.Region.Environment.Scenes
158 { 157 {
159 SceneObjectGroup obj = ent as SceneObjectGroup; 158 SceneObjectGroup obj = ent as SceneObjectGroup;
160 159
160 // Is this prim part of the group
161 if (obj.HasChildPrim(localID)) 161 if (obj.HasChildPrim(localID))
162 { 162 {
163 // Currently only grab/touch for the single prim
164 // the client handles rez correctly
163 obj.ObjectGrabHandler(localID, offsetPos, remoteClient); 165 obj.ObjectGrabHandler(localID, offsetPos, remoteClient);
166
167 // trigger event, one for each prim part in the group
168 // so that a touch to a non-root prim in a group will still
169 // trigger a touch_start for a script in the root prim
170 foreach (SceneObjectPart part in obj.Children.Values)
171 {
172 EventManager.TriggerObjectGrab(part.LocalID, part.OffsetPosition, remoteClient);
173 }
174
164 return; 175 return;
165 } 176 }
166 } 177 }