diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 1556d8aef1..164efe0799 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -2673,6 +2673,7 @@ namespace OpenSim.Region.Framework.Scenes return false; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] private DetectedObject CreateDetObject(SceneObjectPart obj) { return new DetectedObject() @@ -2689,6 +2690,7 @@ namespace OpenSim.Region.Framework.Scenes }; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] private DetectedObject CreateDetObject(ScenePresence av) { DetectedObject detobj = new DetectedObject() @@ -2710,6 +2712,7 @@ namespace OpenSim.Region.Framework.Scenes return detobj; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] private DetectedObject CreateDetObjectForGround() { return new DetectedObject() diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 0a9a7e1730..c7d92a21d8 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -6533,6 +6533,7 @@ namespace OpenSim.Region.Framework.Scenes return true; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] private DetectedObject CreateDetObject(SceneObjectPart obj) { return new DetectedObject() @@ -6549,6 +6550,7 @@ namespace OpenSim.Region.Framework.Scenes }; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] private DetectedObject CreateDetObject(ScenePresence av) { DetectedObject detobj = new DetectedObject() @@ -6571,6 +6573,7 @@ namespace OpenSim.Region.Framework.Scenes return detobj; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] private DetectedObject CreateDetObjectForGround() { DetectedObject detobj = new DetectedObject() @@ -6621,15 +6624,14 @@ namespace OpenSim.Region.Framework.Scenes private delegate void ScriptCollidingNotification(uint localID, ColliderArgs message); + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] private void SendCollisionEvent(SceneObjectGroup dest, scriptEvents ev, List colliders, ScriptCollidingNotification notify) { - ColliderArgs CollidingMessage; - if (colliders.Count > 0) { if ((dest.RootPart.ScriptEvents & ev) != 0) { - CollidingMessage = CreateColliderArgs(dest.RootPart, colliders); + ColliderArgs CollidingMessage = CreateColliderArgs(dest.RootPart, colliders); if (CollidingMessage.Colliders.Count > 0) notify(dest.RootPart.LocalId, CollidingMessage); @@ -6637,6 +6639,7 @@ namespace OpenSim.Region.Framework.Scenes } } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] private void SendLandCollisionEvent(SceneObjectGroup dest, scriptEvents ev, ScriptCollidingNotification notify) { if ((dest.RootPart.ScriptEvents & ev) != 0) @@ -6774,14 +6777,14 @@ namespace OpenSim.Region.Framework.Scenes for (int i = 0; i< attachements.Count; ++i) { SceneObjectGroup att = attachements[i]; - if ((att.ScriptEvents & scriptEvents.anyobjcollision) != 0) + if ((att.RootPart.ScriptEvents & scriptEvents.anyobjcollision) != 0) { SendCollisionEvent(att, scriptEvents.collision_start, startedColliders, m_scene.EventManager.TriggerScriptCollidingStart); SendCollisionEvent(att, scriptEvents.collision , m_lastColliders , m_scene.EventManager.TriggerScriptColliding); SendCollisionEvent(att, scriptEvents.collision_end , endedColliders , m_scene.EventManager.TriggerScriptCollidingEnd); } - if ((att.ScriptEvents & scriptEvents.anylandcollision) != 0) + if ((att.RootPart.ScriptEvents & scriptEvents.anylandcollision) != 0) { if (startLand) SendLandCollisionEvent(att, scriptEvents.land_collision_start, m_scene.EventManager.TriggerScriptLandCollidingStart);