aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs4
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs2
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODEPrim.cs13
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/CodeTools/CSCodeGenerator.cs20
5 files changed, 38 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 2e15b86..a430b1e 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1266,7 +1266,7 @@ namespace OpenSim.Region.Framework.Scenes
1266 // allocations, and there is no more work to be done until someone logs in 1266 // allocations, and there is no more work to be done until someone logs in
1267 GC.Collect(); 1267 GC.Collect();
1268 1268
1269 m_log.DebugFormat("[REGION]: Enabling Logins for {0}", RegionInfo.RegionName); 1269 m_log.DebugFormat("[REGION]: Enabling logins for {0}", RegionInfo.RegionName);
1270 loginsdisabled = false; 1270 loginsdisabled = false;
1271 } 1271 }
1272 } 1272 }
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index bf2f3d3..10b7d94 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -2075,6 +2075,7 @@ namespace OpenSim.Region.Framework.Scenes
2075 { 2075 {
2076 if (PhysActor != null) 2076 if (PhysActor != null)
2077 { 2077 {
2078
2078 Vector3 newpos = new Vector3(PhysActor.Position.GetBytes(), 0); 2079 Vector3 newpos = new Vector3(PhysActor.Position.GetBytes(), 0);
2079 2080
2080 if (m_parentGroup.Scene.TestBorderCross(newpos, Cardinals.N) | m_parentGroup.Scene.TestBorderCross(newpos, Cardinals.S) | m_parentGroup.Scene.TestBorderCross(newpos, Cardinals.E) | m_parentGroup.Scene.TestBorderCross(newpos, Cardinals.W)) 2081 if (m_parentGroup.Scene.TestBorderCross(newpos, Cardinals.N) | m_parentGroup.Scene.TestBorderCross(newpos, Cardinals.S) | m_parentGroup.Scene.TestBorderCross(newpos, Cardinals.E) | m_parentGroup.Scene.TestBorderCross(newpos, Cardinals.W))
@@ -2082,6 +2083,7 @@ namespace OpenSim.Region.Framework.Scenes
2082 m_parentGroup.AbsolutePosition = newpos; 2083 m_parentGroup.AbsolutePosition = newpos;
2083 return; 2084 return;
2084 } 2085 }
2086 //m_parentGroup.RootPart.m_groupPosition = newpos;
2085 } 2087 }
2086 ScheduleTerseUpdate(); 2088 ScheduleTerseUpdate();
2087 2089
@@ -2393,6 +2395,7 @@ namespace OpenSim.Region.Framework.Scenes
2393 if (!RotationOffset.ApproxEquals(m_lastRotation, ROTATION_TOLERANCE) || 2395 if (!RotationOffset.ApproxEquals(m_lastRotation, ROTATION_TOLERANCE) ||
2394 !Acceleration.Equals(m_lastAcceleration) || 2396 !Acceleration.Equals(m_lastAcceleration) ||
2395 !Velocity.ApproxEquals(m_lastVelocity, VELOCITY_TOLERANCE) || 2397 !Velocity.ApproxEquals(m_lastVelocity, VELOCITY_TOLERANCE) ||
2398 Velocity.ApproxEquals(Vector3.Zero, VELOCITY_TOLERANCE) ||
2396 !AngularVelocity.ApproxEquals(m_lastAngularVelocity, VELOCITY_TOLERANCE) || 2399 !AngularVelocity.ApproxEquals(m_lastAngularVelocity, VELOCITY_TOLERANCE) ||
2397 !OffsetPosition.ApproxEquals(m_lastPosition, POSITION_TOLERANCE) || 2400 !OffsetPosition.ApproxEquals(m_lastPosition, POSITION_TOLERANCE) ||
2398 Environment.TickCount - m_lastTerseSent > TIME_MS_TOLERANCE) 2401 Environment.TickCount - m_lastTerseSent > TIME_MS_TOLERANCE)
@@ -2427,6 +2430,7 @@ namespace OpenSim.Region.Framework.Scenes
2427 m_updateFlag = 0; //Same here 2430 m_updateFlag = 0; //Same here
2428 } 2431 }
2429 } 2432 }
2433 ClearUpdateSchedule();
2430 } 2434 }
2431 2435
2432 /// <summary> 2436 /// <summary>
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 1dedcf1..424c25b 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -995,6 +995,8 @@ namespace OpenSim.Region.Framework.Scenes
995 995
996 Animator.TrySetMovementAnimation("LAND"); 996 Animator.TrySetMovementAnimation("LAND");
997 SendFullUpdateToAllClients(); 997 SendFullUpdateToAllClients();
998 ControllingClient.SendAvatarTerseUpdate(new SendAvatarTerseData(m_rootRegionHandle, (ushort)(m_scene.TimeDilation * ushort.MaxValue), LocalId,
999 AbsolutePosition, Velocity, -Vector3.UnitZ, m_bodyRot, Vector4.UnitW, m_uuid, null, GetUpdatePriority(ControllingClient)));
998 } 1000 }
999 1001
1000 public void AddNeighbourRegion(ulong regionHandle, string cap) 1002 public void AddNeighbourRegion(ulong regionHandle, string cap)
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
index 2bf96e4..c7e0848 100644
--- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
+++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
@@ -2416,6 +2416,9 @@ Console.WriteLine(" JointCreateFixed");
2416 { 2416 {
2417 // Averate previous velocity with the new one so 2417 // Averate previous velocity with the new one so
2418 // client object interpolation works a 'little' better 2418 // client object interpolation works a 'little' better
2419 if (_zeroFlag)
2420 return Vector3.Zero;
2421
2419 Vector3 returnVelocity = Vector3.Zero; 2422 Vector3 returnVelocity = Vector3.Zero;
2420 returnVelocity.X = (m_lastVelocity.X + _velocity.X)/2; 2423 returnVelocity.X = (m_lastVelocity.X + _velocity.X)/2;
2421 returnVelocity.Y = (m_lastVelocity.Y + _velocity.Y)/2; 2424 returnVelocity.Y = (m_lastVelocity.Y + _velocity.Y)/2;
@@ -2702,7 +2705,7 @@ Console.WriteLine(" JointCreateFixed");
2702 //outofBounds = true; 2705 //outofBounds = true;
2703 } 2706 }
2704 2707
2705// float Adiff = 1.0f - Math.Abs(Quaternion.Dot(m_lastorientation, l_orientation)); 2708 //float Adiff = 1.0f - Math.Abs(Quaternion.Dot(m_lastorientation, l_orientation));
2706//Console.WriteLine("Adiff " + m_primName + " = " + Adiff); 2709//Console.WriteLine("Adiff " + m_primName + " = " + Adiff);
2707 if ((Math.Abs(m_lastposition.X - l_position.X) < 0.02) 2710 if ((Math.Abs(m_lastposition.X - l_position.X) < 0.02)
2708 && (Math.Abs(m_lastposition.Y - l_position.Y) < 0.02) 2711 && (Math.Abs(m_lastposition.Y - l_position.Y) < 0.02)
@@ -2718,6 +2721,8 @@ Console.WriteLine(" JointCreateFixed");
2718 { 2721 {
2719 //m_log.Debug(Math.Abs(m_lastposition.X - l_position.X).ToString()); 2722 //m_log.Debug(Math.Abs(m_lastposition.X - l_position.X).ToString());
2720 _zeroFlag = false; 2723 _zeroFlag = false;
2724 m_lastUpdateSent = false;
2725 //m_throttleUpdates = false;
2721 } 2726 }
2722 2727
2723 if (_zeroFlag) 2728 if (_zeroFlag)
@@ -2744,7 +2749,9 @@ Console.WriteLine(" JointCreateFixed");
2744 m_rotationalVelocity = pv; 2749 m_rotationalVelocity = pv;
2745 2750
2746 if (_parent == null) 2751 if (_parent == null)
2752 {
2747 base.RequestPhysicsterseUpdate(); 2753 base.RequestPhysicsterseUpdate();
2754 }
2748 2755
2749 m_lastUpdateSent = true; 2756 m_lastUpdateSent = true;
2750 } 2757 }
@@ -2754,7 +2761,9 @@ Console.WriteLine(" JointCreateFixed");
2754 if (lastZeroFlag != _zeroFlag) 2761 if (lastZeroFlag != _zeroFlag)
2755 { 2762 {
2756 if (_parent == null) 2763 if (_parent == null)
2764 {
2757 base.RequestPhysicsterseUpdate(); 2765 base.RequestPhysicsterseUpdate();
2766 }
2758 } 2767 }
2759 2768
2760 m_lastVelocity = _velocity; 2769 m_lastVelocity = _velocity;
@@ -2787,7 +2796,9 @@ Console.WriteLine(" JointCreateFixed");
2787 if (!m_throttleUpdates || throttleCounter > _parent_scene.geomUpdatesPerThrottledUpdate) 2796 if (!m_throttleUpdates || throttleCounter > _parent_scene.geomUpdatesPerThrottledUpdate)
2788 { 2797 {
2789 if (_parent == null) 2798 if (_parent == null)
2799 {
2790 base.RequestPhysicsterseUpdate(); 2800 base.RequestPhysicsterseUpdate();
2801 }
2791 } 2802 }
2792 else 2803 else
2793 { 2804 {
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSCodeGenerator.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSCodeGenerator.cs
index 41ecfd3..e427f50 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSCodeGenerator.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSCodeGenerator.cs
@@ -722,8 +722,26 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
722 if (fls.kids.Top is IdentExpression && 1 == fls.kids.Count) 722 if (fls.kids.Top is IdentExpression && 1 == fls.kids.Count)
723 return retstr; 723 return retstr;
724 724
725 foreach (SYMBOL s in fls.kids) 725 for (int i = 0; i < fls.kids.Count; i++)
726 { 726 {
727 SYMBOL s = (SYMBOL)fls.kids[i];
728
729 // Statements surrounded by parentheses in for loops
730 //
731 // e.g. for ((i = 0), (j = 7); (i < 10); (++i))
732 //
733 // are legal in LSL but not in C# so we need to discard the parentheses
734 //
735 // The following, however, does not appear to be legal in LLS
736 //
737 // for ((i = 0, j = 7); (i < 10); (++i))
738 //
739 // As of Friday 20th November 2009, the Linden Lab simulators appear simply never to compile or run this
740 // script but with no debug or warnings at all! Therefore, we won't deal with this yet (which looks
741 // like it would be considerably more complicated to handle).
742 while (s is ParenthesisExpression)
743 s = (SYMBOL)s.kids.Pop();
744
727 retstr += GenerateNode(s); 745 retstr += GenerateNode(s);
728 if (0 < comma--) 746 if (0 < comma--)
729 retstr += Generate(", "); 747 retstr += Generate(", ");