aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneGraph.cs1
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs24
3 files changed, 18 insertions, 9 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 315b340..9c80d3e 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -2701,7 +2701,7 @@ namespace OpenSim.Region.Framework.Scenes
2701 RootPrim.RemFlag(PrimFlags.TemporaryOnRez); 2701 RootPrim.RemFlag(PrimFlags.TemporaryOnRez);
2702 2702
2703 if (AttachmentsModule != null) 2703 if (AttachmentsModule != null)
2704 AttachmentsModule.AttachObject(sp, grp, 0, false); 2704 AttachmentsModule.AttachObject(sp, grp, 0, false, false);
2705 } 2705 }
2706 else 2706 else
2707 { 2707 {
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 23a0550..a62c1ac 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -359,7 +359,6 @@ namespace OpenSim.Region.Framework.Scenes
359 if (pa != null && pa.IsPhysical && vel != Vector3.Zero) 359 if (pa != null && pa.IsPhysical && vel != Vector3.Zero)
360 { 360 {
361 sceneObject.RootPart.ApplyImpulse((vel * sceneObject.GetMass()), false); 361 sceneObject.RootPart.ApplyImpulse((vel * sceneObject.GetMass()), false);
362 sceneObject.Velocity = vel;
363 } 362 }
364 363
365 return true; 364 return true;
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index bb8d065..61ef827 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -2640,15 +2640,25 @@ namespace OpenSim.Region.Framework.Scenes
2640 2640
2641 private void SendLandCollisionEvent(scriptEvents ev, ScriptCollidingNotification notify) 2641 private void SendLandCollisionEvent(scriptEvents ev, ScriptCollidingNotification notify)
2642 { 2642 {
2643 if ((ParentGroup.RootPart.ScriptEvents & ev) != 0) 2643 bool sendToRoot = true;
2644 { 2644
2645 ColliderArgs LandCollidingMessage = new ColliderArgs(); 2645 ColliderArgs LandCollidingMessage = new ColliderArgs();
2646 List<DetectedObject> colliding = new List<DetectedObject>(); 2646 List<DetectedObject> colliding = new List<DetectedObject>();
2647 2647
2648 colliding.Add(CreateDetObjectForGround()); 2648 colliding.Add(CreateDetObjectForGround());
2649 LandCollidingMessage.Colliders = colliding; 2649 LandCollidingMessage.Colliders = colliding;
2650 2650
2651 if (Inventory.ContainsScripts())
2652 {
2653 if (!PassCollisions)
2654 sendToRoot = false;
2655 }
2656 if ((ScriptEvents & ev) != 0)
2651 notify(LocalId, LandCollidingMessage); 2657 notify(LocalId, LandCollidingMessage);
2658
2659 if ((ParentGroup.RootPart.ScriptEvents & ev) != 0 && sendToRoot)
2660 {
2661 notify(ParentGroup.RootPart.LocalId, LandCollidingMessage);
2652 } 2662 }
2653 } 2663 }
2654 2664