aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes
diff options
context:
space:
mode:
authoridb2008-12-05 16:48:47 +0000
committeridb2008-12-05 16:48:47 +0000
commit7ae9ec217d6e1ec039fbd6ed16c952d56cc63dc6 (patch)
tree6fed56271b075ef0c9c42e3cc899e86e54ea4c25 /OpenSim/Region/Environment/Scenes
parentFixed Mantis #2756 (diff)
downloadopensim-SC_OLD-7ae9ec217d6e1ec039fbd6ed16c952d56cc63dc6.zip
opensim-SC_OLD-7ae9ec217d6e1ec039fbd6ed16c952d56cc63dc6.tar.gz
opensim-SC_OLD-7ae9ec217d6e1ec039fbd6ed16c952d56cc63dc6.tar.bz2
opensim-SC_OLD-7ae9ec217d6e1ec039fbd6ed16c952d56cc63dc6.tar.xz
Implementation of the llDetectedTouch* functions
Diffstat (limited to 'OpenSim/Region/Environment/Scenes')
-rw-r--r--OpenSim/Region/Environment/Scenes/EventManager.cs6
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs8
2 files changed, 9 insertions, 5 deletions
diff --git a/OpenSim/Region/Environment/Scenes/EventManager.cs b/OpenSim/Region/Environment/Scenes/EventManager.cs
index 598f8b4..ad25670 100644
--- a/OpenSim/Region/Environment/Scenes/EventManager.cs
+++ b/OpenSim/Region/Environment/Scenes/EventManager.cs
@@ -92,7 +92,7 @@ namespace OpenSim.Region.Environment.Scenes
92 92
93 public event OnShutdownDelegate OnShutdown; 93 public event OnShutdownDelegate OnShutdown;
94 94
95 public delegate void ObjectGrabDelegate(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient); 95 public delegate void ObjectGrabDelegate(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs);
96 public delegate void ObjectDeGrabDelegate(uint localID, uint originalID, IClientAPI remoteClient); 96 public delegate void ObjectDeGrabDelegate(uint localID, uint originalID, IClientAPI remoteClient);
97 public delegate void ScriptResetDelegate(uint localID, UUID itemID); 97 public delegate void ScriptResetDelegate(uint localID, UUID itemID);
98 98
@@ -530,12 +530,12 @@ namespace OpenSim.Region.Environment.Scenes
530 handlerShutdown(); 530 handlerShutdown();
531 } 531 }
532 532
533 public void TriggerObjectGrab(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient) 533 public void TriggerObjectGrab(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs)
534 { 534 {
535 handlerObjectGrab = OnObjectGrab; 535 handlerObjectGrab = OnObjectGrab;
536 if (handlerObjectGrab != null) 536 if (handlerObjectGrab != null)
537 { 537 {
538 handlerObjectGrab(localID, originalID, offsetPos, remoteClient); 538 handlerObjectGrab(localID, originalID, offsetPos, remoteClient, surfaceArgs);
539 } 539 }
540 } 540 }
541 541
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index 2bd1f1c..8d12a94 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -217,6 +217,10 @@ namespace OpenSim.Region.Environment.Scenes
217 217
218 List<EntityBase> EntityList = GetEntities(); 218 List<EntityBase> EntityList = GetEntities();
219 219
220 SurfaceTouchEventArgs surfaceArg = null;
221 if (surfaceArgs != null && surfaceArgs.Count > 0)
222 surfaceArg = surfaceArgs[0];
223
220 foreach (EntityBase ent in EntityList) 224 foreach (EntityBase ent in EntityList)
221 { 225 {
222 if (ent is SceneObjectGroup) 226 if (ent is SceneObjectGroup)
@@ -236,9 +240,9 @@ namespace OpenSim.Region.Environment.Scenes
236 // If the touched prim handles touches, deliver it 240 // If the touched prim handles touches, deliver it
237 // If not, deliver to root prim 241 // If not, deliver to root prim
238 if ((part.ScriptEvents & scriptEvents.touch_start) != 0) 242 if ((part.ScriptEvents & scriptEvents.touch_start) != 0)
239 EventManager.TriggerObjectGrab(part.LocalId, 0, part.OffsetPosition, remoteClient); 243 EventManager.TriggerObjectGrab(part.LocalId, 0, part.OffsetPosition, remoteClient, surfaceArg);
240 else 244 else
241 EventManager.TriggerObjectGrab(obj.RootPart.LocalId, part.LocalId, part.OffsetPosition, remoteClient); 245 EventManager.TriggerObjectGrab(obj.RootPart.LocalId, part.LocalId, part.OffsetPosition, remoteClient, surfaceArg);
242 246
243 return; 247 return;
244 } 248 }