From 9102f6e5da1731aab9d1f9a449dce781ffd0ba36 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Fri, 5 Aug 2016 22:50:15 +0100 Subject: fill data for llDetected funtions of collisions closer to the event. (xengine wasn't update with this on merge bc was not used there). fix some parameters --- OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPart.cs') diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 0b8076a..0847b0b 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -2712,8 +2712,7 @@ namespace OpenSim.Region.Framework.Scenes detobj.velVector = obj.Velocity; detobj.colliderType = 0; detobj.groupUUID = obj.GroupID; - detobj.linkNumber = LinkNum; // pass my link number - + detobj.linkNumber = LinkNum; return detobj; } @@ -2726,9 +2725,13 @@ namespace OpenSim.Region.Framework.Scenes detobj.posVector = av.AbsolutePosition; detobj.rotQuat = av.Rotation; detobj.velVector = av.Velocity; - detobj.colliderType = 0; + detobj.colliderType = av.isNPC ? 0x20 : 0x1; // OpenSim\Region\ScriptEngine\Shared\Helpers.cs + if(av.IsSatOnObject) + detobj.colliderType |= 0x4; //passive + else if(detobj.velVector != Vector3.Zero) + detobj.colliderType |= 0x2; //active detobj.groupUUID = av.ControllingClient.ActiveGroupId; - detobj.linkNumber = LinkNum; // pass my link number + detobj.linkNumber = LinkNum; return detobj; } @@ -2842,7 +2845,8 @@ namespace OpenSim.Region.Framework.Scenes if (ParentGroup.Scene == null || ParentGroup.IsDeleted) return; - // single threaded here + // this a thread from physics ( heartbeat ) + CollisionEventUpdate a = (CollisionEventUpdate)e; Dictionary collissionswith = a.m_objCollisionList; List thisHitColliders = new List(); @@ -2860,7 +2864,6 @@ namespace OpenSim.Region.Framework.Scenes } m_lastColliders.Clear(); } - else { List soundinfolist = new List(); @@ -5256,7 +5259,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter { // subscribe to physics updates. pa.OnCollisionUpdate += PhysicsCollision; - pa.SubscribeEvents(50); // 20 reports per second + pa.SubscribeEvents(100); // 10 reports per second } else { -- cgit v1.1