aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/Application/OpenSimBase.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs229
-rw-r--r--OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsActor.cs6
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs3
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs3
-rw-r--r--OpenSim/Region/Physics/Manager/PhysicsActor.cs3
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODECharacter.cs7
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODEPrim.cs1
-rw-r--r--OpenSim/Region/Physics/POSPlugin/POSCharacter.cs6
-rw-r--r--OpenSim/Region/Physics/POSPlugin/POSPrim.cs6
-rw-r--r--OpenSim/Region/Physics/PhysXPlugin/PhysXCharacter.cs6
-rw-r--r--OpenSim/Region/Physics/PhysXPlugin/PhysXPrim.cs6
-rw-r--r--OpenSim/Services/HypergridService/UserAgentService.cs8
13 files changed, 134 insertions, 152 deletions
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs
index 50baa56..9fdba92 100644
--- a/OpenSim/Region/Application/OpenSimBase.cs
+++ b/OpenSim/Region/Application/OpenSimBase.cs
@@ -46,7 +46,7 @@ using OpenSim.Region.Framework;
46using OpenSim.Region.Framework.Interfaces; 46using OpenSim.Region.Framework.Interfaces;
47using OpenSim.Region.Framework.Scenes; 47using OpenSim.Region.Framework.Scenes;
48using OpenSim.Region.Physics.Manager; 48using OpenSim.Region.Physics.Manager;
49using OpenSim.Server.Base; 49using OpenSim.Server.Base;
50using OpenSim.Services.Base; 50using OpenSim.Services.Base;
51using OpenSim.Services.Interfaces; 51using OpenSim.Services.Interfaces;
52using OpenSim.Services.UserAccountService; 52using OpenSim.Services.UserAccountService;
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 34b3c1d..b0a0046 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1180,10 +1180,10 @@ namespace OpenSim.Region.Framework.Scenes
1180 public void CompleteMovement(IClientAPI client, bool openChildAgents) 1180 public void CompleteMovement(IClientAPI client, bool openChildAgents)
1181 { 1181 {
1182// DateTime startTime = DateTime.Now; 1182// DateTime startTime = DateTime.Now;
1183 1183
1184// m_log.DebugFormat( 1184 m_log.DebugFormat(
1185// "[SCENE PRESENCE]: Completing movement of {0} into region {1}", 1185 "[SCENE PRESENCE]: Completing movement of {0} into region {1} in position {2}",
1186// client.Name, Scene.RegionInfo.RegionName); 1186 client.Name, Scene.RegionInfo.RegionName, AbsolutePosition);
1187 1187
1188 Vector3 look = Velocity; 1188 Vector3 look = Velocity;
1189 if ((look.X == 0) && (look.Y == 0) && (look.Z == 0)) 1189 if ((look.X == 0) && (look.Y == 0) && (look.Z == 0))
@@ -2405,9 +2405,7 @@ namespace OpenSim.Region.Framework.Scenes
2405 m_lastVelocity = Velocity; 2405 m_lastVelocity = Velocity;
2406 } 2406 }
2407 2407
2408 // followed suggestion from mic bowman. reversed the two lines below. 2408 CheckForBorderCrossing();
2409 if (ParentID == 0 && PhysicsActor != null || ParentID != 0) // Check that we have a physics actor or we're sitting on something
2410 CheckForBorderCrossing();
2411 2409
2412 CheckForSignificantMovement(); // sends update to the modules. 2410 CheckForSignificantMovement(); // sends update to the modules.
2413 } 2411 }
@@ -2760,146 +2758,143 @@ namespace OpenSim.Region.Framework.Scenes
2760 /// </remarks> 2758 /// </remarks>
2761 protected void CheckForBorderCrossing() 2759 protected void CheckForBorderCrossing()
2762 { 2760 {
2763 if (IsChildAgent) 2761 // Check that we we are not a child
2762 if (IsChildAgent)
2764 return; 2763 return;
2765 2764
2766 if (ParentID != 0) 2765 if (ParentID != 0)
2767 return; 2766 return;
2768 2767
2769 Vector3 pos2 = AbsolutePosition;
2770 Vector3 vel = Velocity;
2771 int neighbor = 0;
2772 int[] fix = new int[2];
2773
2774 float timeStep = 0.1f;
2775 pos2.X = pos2.X + (vel.X*timeStep);
2776 pos2.Y = pos2.Y + (vel.Y*timeStep);
2777 pos2.Z = pos2.Z + (vel.Z*timeStep);
2778
2779 if (!IsInTransit) 2768 if (!IsInTransit)
2780 { 2769 {
2781 // Checks if where it's headed exists a region 2770 Vector3 pos2 = AbsolutePosition;
2771 Vector3 vel = Velocity;
2772 int neighbor = 0;
2773 int[] fix = new int[2];
2774
2775 float timeStep = 0.1f;
2776 pos2.X = pos2.X + (vel.X * timeStep);
2777 pos2.Y = pos2.Y + (vel.Y * timeStep);
2778 pos2.Z = pos2.Z + (vel.Z * timeStep);
2782 2779
2783 bool needsTransit = false; 2780 if (!IsInTransit)
2784 if (m_scene.TestBorderCross(pos2, Cardinals.W))
2785 { 2781 {
2786 if (m_scene.TestBorderCross(pos2, Cardinals.S)) 2782 // Checks if where it's headed exists a region
2787 { 2783 bool needsTransit = false;
2788 needsTransit = true; 2784 if (m_scene.TestBorderCross(pos2, Cardinals.W))
2789 neighbor = m_scene.HaveNeighbor(Cardinals.SW, ref fix);
2790 }
2791 else if (m_scene.TestBorderCross(pos2, Cardinals.N))
2792 { 2785 {
2793 needsTransit = true; 2786 if (m_scene.TestBorderCross(pos2, Cardinals.S))
2794 neighbor = m_scene.HaveNeighbor(Cardinals.NW, ref fix); 2787 {
2788 needsTransit = true;
2789 neighbor = m_scene.HaveNeighbor(Cardinals.SW, ref fix);
2790 }
2791 else if (m_scene.TestBorderCross(pos2, Cardinals.N))
2792 {
2793 needsTransit = true;
2794 neighbor = m_scene.HaveNeighbor(Cardinals.NW, ref fix);
2795 }
2796 else
2797 {
2798 needsTransit = true;
2799 neighbor = m_scene.HaveNeighbor(Cardinals.W, ref fix);
2800 }
2795 } 2801 }
2796 else 2802 else if (m_scene.TestBorderCross(pos2, Cardinals.E))
2797 { 2803 {
2798 needsTransit = true; 2804 if (m_scene.TestBorderCross(pos2, Cardinals.S))
2799 neighbor = m_scene.HaveNeighbor(Cardinals.W, ref fix); 2805 {
2806 needsTransit = true;
2807 neighbor = m_scene.HaveNeighbor(Cardinals.SE, ref fix);
2808 }
2809 else if (m_scene.TestBorderCross(pos2, Cardinals.N))
2810 {
2811 needsTransit = true;
2812 neighbor = m_scene.HaveNeighbor(Cardinals.NE, ref fix);
2813 }
2814 else
2815 {
2816 needsTransit = true;
2817 neighbor = m_scene.HaveNeighbor(Cardinals.E, ref fix);
2818 }
2800 } 2819 }
2801 } 2820 else if (m_scene.TestBorderCross(pos2, Cardinals.S))
2802 else if (m_scene.TestBorderCross(pos2, Cardinals.E))
2803 {
2804 if (m_scene.TestBorderCross(pos2, Cardinals.S))
2805 { 2821 {
2806 needsTransit = true; 2822 needsTransit = true;
2807 neighbor = m_scene.HaveNeighbor(Cardinals.SE, ref fix); 2823 neighbor = m_scene.HaveNeighbor(Cardinals.S, ref fix);
2808 } 2824 }
2809 else if (m_scene.TestBorderCross(pos2, Cardinals.N)) 2825 else if (m_scene.TestBorderCross(pos2, Cardinals.N))
2810 { 2826 {
2811 needsTransit = true; 2827 needsTransit = true;
2812 neighbor = m_scene.HaveNeighbor(Cardinals.NE, ref fix); 2828 neighbor = m_scene.HaveNeighbor(Cardinals.N, ref fix);
2813 }
2814 else
2815 {
2816 needsTransit = true;
2817 neighbor = m_scene.HaveNeighbor(Cardinals.E, ref fix);
2818 } 2829 }
2819 }
2820 else if (m_scene.TestBorderCross(pos2, Cardinals.S))
2821 {
2822 needsTransit = true;
2823 neighbor = m_scene.HaveNeighbor(Cardinals.S, ref fix);
2824 }
2825 else if (m_scene.TestBorderCross(pos2, Cardinals.N))
2826 {
2827 needsTransit = true;
2828 neighbor = m_scene.HaveNeighbor(Cardinals.N, ref fix);
2829 }
2830 2830
2831 // Makes sure avatar does not end up outside region 2831 // Makes sure avatar does not end up outside region
2832 if (neighbor <= 0) 2832 if (neighbor <= 0)
2833 {
2834 if (needsTransit)
2835 { 2833 {
2836 if (m_requestedSitTargetUUID == UUID.Zero) 2834 if (needsTransit)
2837 { 2835 {
2838 bool isFlying = Flying; 2836 if (m_requestedSitTargetUUID == UUID.Zero)
2839 RemoveFromPhysicalScene(); 2837 {
2840 2838 bool isFlying = Flying;
2841 Vector3 pos = AbsolutePosition; 2839 RemoveFromPhysicalScene();
2842 if (AbsolutePosition.X < 0) 2840
2843 pos.X += Velocity.X * 2; 2841 Vector3 pos = AbsolutePosition;
2844 else if (AbsolutePosition.X > Constants.RegionSize) 2842 if (AbsolutePosition.X < 0)
2845 pos.X -= Velocity.X * 2; 2843 pos.X += Velocity.X * 2;
2846 if (AbsolutePosition.Y < 0) 2844 else if (AbsolutePosition.X > Constants.RegionSize)
2847 pos.Y += Velocity.Y * 2; 2845 pos.X -= Velocity.X * 2;
2848 else if (AbsolutePosition.Y > Constants.RegionSize) 2846 if (AbsolutePosition.Y < 0)
2849 pos.Y -= Velocity.Y * 2; 2847 pos.Y += Velocity.Y * 2;
2850 Velocity = Vector3.Zero; 2848 else if (AbsolutePosition.Y > Constants.RegionSize)
2851 AbsolutePosition = pos; 2849 pos.Y -= Velocity.Y * 2;
2852 2850 Velocity = Vector3.Zero;
2853// m_log.DebugFormat("[SCENE PRESENCE]: Prevented flyoff for {0} at {1}", Name, AbsolutePosition); 2851 AbsolutePosition = pos;
2854 2852
2855 AddToPhysicalScene(isFlying); 2853 m_log.DebugFormat("[SCENE PRESENCE]: Prevented flyoff for {0} at {1}", Name, AbsolutePosition);
2854
2855 AddToPhysicalScene(isFlying);
2856 }
2856 } 2857 }
2857 } 2858 }
2858 } 2859 else if (neighbor > 0)
2859 else if (neighbor > 0)
2860 {
2861 if (!CrossToNewRegion())
2862 { 2860 {
2863 if (m_requestedSitTargetUUID == UUID.Zero) 2861 if (!CrossToNewRegion())
2864 { 2862 {
2865 bool isFlying = Flying; 2863 if (m_requestedSitTargetUUID == UUID.Zero)
2866 RemoveFromPhysicalScene(); 2864 {
2867 2865 bool isFlying = Flying;
2868 Vector3 pos = AbsolutePosition; 2866 RemoveFromPhysicalScene();
2869 if (AbsolutePosition.X < 0) 2867
2870 pos.X += Velocity.X * 2; 2868 Vector3 pos = AbsolutePosition;
2871 else if (AbsolutePosition.X > Constants.RegionSize) 2869 if (AbsolutePosition.X < 0)
2872 pos.X -= Velocity.X * 2; 2870 pos.X += Velocity.X * 2;
2873 if (AbsolutePosition.Y < 0) 2871 else if (AbsolutePosition.X > Constants.RegionSize)
2874 pos.Y += Velocity.Y * 2; 2872 pos.X -= Velocity.X * 2;
2875 else if (AbsolutePosition.Y > Constants.RegionSize) 2873 if (AbsolutePosition.Y < 0)
2876 pos.Y -= Velocity.Y * 2; 2874 pos.Y += Velocity.Y * 2;
2877 Velocity = Vector3.Zero; 2875 else if (AbsolutePosition.Y > Constants.RegionSize)
2878 AbsolutePosition = pos; 2876 pos.Y -= Velocity.Y * 2;
2879 2877 Velocity = Vector3.Zero;
2880 AddToPhysicalScene(isFlying); 2878 AbsolutePosition = pos;
2879
2880 AddToPhysicalScene(isFlying);
2881 }
2881 } 2882 }
2882 } 2883 }
2883 } 2884 }
2884 } 2885 else
2885 else 2886 {
2886 { 2887 // This constant has been inferred from experimentation
2887 // We must remove the agent from the physical scene if it has been placed in transit. If we don't, 2888 // I'm not sure what this value should be, so I tried a few values.
2888 // then this method continues to be called from ScenePresence.Update() until the handover of the client between 2889 timeStep = 0.04f;
2889 // regions is completed. Since this handover can take more than 1000ms (due to the 1000ms 2890 pos2 = AbsolutePosition;
2890 // event queue polling response from the server), this results in the avatar pausing on the border 2891 pos2.X = pos2.X + (vel.X * timeStep);
2891 // for the handover period. 2892 pos2.Y = pos2.Y + (vel.Y * timeStep);
2892 RemoveFromPhysicalScene(); 2893 // Don't touch the Z
2893 2894 m_pos = pos2;
2894 // This constant has been inferred from experimentation 2895 m_log.DebugFormat("[SCENE PRESENCE]: In transit m_pos={0}", m_pos);
2895 // I'm not sure what this value should be, so I tried a few values. 2896 }
2896 timeStep = 0.04f; 2897 }
2897 pos2 = AbsolutePosition;
2898 pos2.X = pos2.X + (vel.X * timeStep);
2899 pos2.Y = pos2.Y + (vel.Y * timeStep);
2900 pos2.Z = pos2.Z + (vel.Z * timeStep);
2901 m_pos = pos2;
2902 }
2903 } 2898 }
2904 2899
2905 /// <summary> 2900 /// <summary>
diff --git a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsActor.cs b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsActor.cs
index 1e1d5e3..b1a3ff9 100644
--- a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsActor.cs
+++ b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsActor.cs
@@ -233,6 +233,7 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin
233 public override Vector3 Acceleration 233 public override Vector3 Acceleration
234 { 234 {
235 get { return _acceleration; } 235 get { return _acceleration; }
236 set { _acceleration = value; }
236 } 237 }
237 238
238 public override bool Kinematic 239 public override bool Kinematic
@@ -253,11 +254,6 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin
253 { 254 {
254 } 255 }
255 256
256 public void SetAcceleration(Vector3 accel)
257 {
258 _acceleration = accel;
259 }
260
261 public override void AddForce(Vector3 force, bool pushforce) 257 public override void AddForce(Vector3 force, bool pushforce)
262 { 258 {
263 } 259 }
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs
index 9a6857b..0cab5d1 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs
@@ -231,7 +231,8 @@ public class BSCharacter : PhysicsActor
231 } 231 }
232 } 232 }
233 public override Vector3 Acceleration { 233 public override Vector3 Acceleration {
234 get { return _acceleration; } 234 get { return _acceleration; }
235 set { _acceleration = value; }
235 } 236 }
236 public override Quaternion Orientation { 237 public override Quaternion Orientation {
237 get { return _orientation; } 238 get { return _orientation; }
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
index 8782e62..898436b 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
@@ -417,7 +417,8 @@ public sealed class BSPrim : PhysicsActor
417 } 417 }
418 } 418 }
419 public override OMV.Vector3 Acceleration { 419 public override OMV.Vector3 Acceleration {
420 get { return _acceleration; } 420 get { return _acceleration; }
421 set { _acceleration = value; }
421 } 422 }
422 public override OMV.Quaternion Orientation { 423 public override OMV.Quaternion Orientation {
423 get { return _orientation; } 424 get { return _orientation; }
diff --git a/OpenSim/Region/Physics/Manager/PhysicsActor.cs b/OpenSim/Region/Physics/Manager/PhysicsActor.cs
index c2acf97..0587054 100644
--- a/OpenSim/Region/Physics/Manager/PhysicsActor.cs
+++ b/OpenSim/Region/Physics/Manager/PhysicsActor.cs
@@ -261,7 +261,7 @@ namespace OpenSim.Region.Physics.Manager
261 261
262 public abstract Vector3 Torque { get; set; } 262 public abstract Vector3 Torque { get; set; }
263 public abstract float CollisionScore { get; set;} 263 public abstract float CollisionScore { get; set;}
264 public abstract Vector3 Acceleration { get; } 264 public abstract Vector3 Acceleration { get; set; }
265 public abstract Quaternion Orientation { get; set; } 265 public abstract Quaternion Orientation { get; set; }
266 public abstract int PhysicsActorType { get; set; } 266 public abstract int PhysicsActorType { get; set; }
267 public abstract bool IsPhysical { get; set; } 267 public abstract bool IsPhysical { get; set; }
@@ -458,6 +458,7 @@ namespace OpenSim.Region.Physics.Manager
458 public override Vector3 Acceleration 458 public override Vector3 Acceleration
459 { 459 {
460 get { return Vector3.Zero; } 460 get { return Vector3.Zero; }
461 set { }
461 } 462 }
462 463
463 public override bool IsPhysical 464 public override bool IsPhysical
diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
index f2bb4bf..68999fc 100644
--- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
+++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
@@ -690,12 +690,7 @@ namespace OpenSim.Region.Physics.OdePlugin
690 public override Vector3 Acceleration 690 public override Vector3 Acceleration
691 { 691 {
692 get { return _acceleration; } 692 get { return _acceleration; }
693 } 693 set { _acceleration = value; }
694
695 public void SetAcceleration(Vector3 accel)
696 {
697 m_pidControllerActive = true;
698 _acceleration = accel;
699 } 694 }
700 695
701 /// <summary> 696 /// <summary>
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
index af05a15..62e3763 100644
--- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
+++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
@@ -2497,6 +2497,7 @@ Console.WriteLine(" JointCreateFixed");
2497 public override Vector3 Acceleration 2497 public override Vector3 Acceleration
2498 { 2498 {
2499 get { return _acceleration; } 2499 get { return _acceleration; }
2500 set { _acceleration = value; }
2500 } 2501 }
2501 2502
2502 public override void AddForce(Vector3 force, bool pushforce) 2503 public override void AddForce(Vector3 force, bool pushforce)
diff --git a/OpenSim/Region/Physics/POSPlugin/POSCharacter.cs b/OpenSim/Region/Physics/POSPlugin/POSCharacter.cs
index a70179b..ae534ea 100644
--- a/OpenSim/Region/Physics/POSPlugin/POSCharacter.cs
+++ b/OpenSim/Region/Physics/POSPlugin/POSCharacter.cs
@@ -231,6 +231,7 @@ namespace OpenSim.Region.Physics.POSPlugin
231 public override Vector3 Acceleration 231 public override Vector3 Acceleration
232 { 232 {
233 get { return _acceleration; } 233 get { return _acceleration; }
234 set { _acceleration = value; }
234 } 235 }
235 236
236 public override bool Kinematic 237 public override bool Kinematic
@@ -251,11 +252,6 @@ namespace OpenSim.Region.Physics.POSPlugin
251 { 252 {
252 } 253 }
253 254
254 public void SetAcceleration(Vector3 accel)
255 {
256 _acceleration = accel;
257 }
258
259 public override void AddForce(Vector3 force, bool pushforce) 255 public override void AddForce(Vector3 force, bool pushforce)
260 { 256 {
261 } 257 }
diff --git a/OpenSim/Region/Physics/POSPlugin/POSPrim.cs b/OpenSim/Region/Physics/POSPlugin/POSPrim.cs
index 9ba5ebb..2ea8bfc 100644
--- a/OpenSim/Region/Physics/POSPlugin/POSPrim.cs
+++ b/OpenSim/Region/Physics/POSPlugin/POSPrim.cs
@@ -193,6 +193,7 @@ namespace OpenSim.Region.Physics.POSPlugin
193 public override Vector3 Acceleration 193 public override Vector3 Acceleration
194 { 194 {
195 get { return _acceleration; } 195 get { return _acceleration; }
196 set { _acceleration = value; }
196 } 197 }
197 198
198 public override bool Kinematic 199 public override bool Kinematic
@@ -201,11 +202,6 @@ namespace OpenSim.Region.Physics.POSPlugin
201 set { } 202 set { }
202 } 203 }
203 204
204 public void SetAcceleration(Vector3 accel)
205 {
206 _acceleration = accel;
207 }
208
209 public override void AddForce(Vector3 force, bool pushforce) 205 public override void AddForce(Vector3 force, bool pushforce)
210 { 206 {
211 } 207 }
diff --git a/OpenSim/Region/Physics/PhysXPlugin/PhysXCharacter.cs b/OpenSim/Region/Physics/PhysXPlugin/PhysXCharacter.cs
index 92261cd..9216a9e 100644
--- a/OpenSim/Region/Physics/PhysXPlugin/PhysXCharacter.cs
+++ b/OpenSim/Region/Physics/PhysXPlugin/PhysXCharacter.cs
@@ -233,11 +233,7 @@ namespace OpenSim.Region.Physics.PhysXPlugin
233 public override Vector3 Acceleration 233 public override Vector3 Acceleration
234 { 234 {
235 get { return _acceleration; } 235 get { return _acceleration; }
236 } 236 set { _acceleration = value; }
237
238 public void SetAcceleration(Vector3 accel)
239 {
240 _acceleration = accel;
241 } 237 }
242 238
243 public override void AddForce(Vector3 force, bool pushforce) 239 public override void AddForce(Vector3 force, bool pushforce)
diff --git a/OpenSim/Region/Physics/PhysXPlugin/PhysXPrim.cs b/OpenSim/Region/Physics/PhysXPlugin/PhysXPrim.cs
index c0e24fd..42bd119 100644
--- a/OpenSim/Region/Physics/PhysXPlugin/PhysXPrim.cs
+++ b/OpenSim/Region/Physics/PhysXPlugin/PhysXPrim.cs
@@ -207,11 +207,7 @@ namespace OpenSim.Region.Physics.PhysXPlugin
207 public override Vector3 Acceleration 207 public override Vector3 Acceleration
208 { 208 {
209 get { return _acceleration; } 209 get { return _acceleration; }
210 } 210 set { _acceleration = value; }
211
212 public void SetAcceleration(Vector3 accel)
213 {
214 _acceleration = accel;
215 } 211 }
216 212
217 public override void AddForce(Vector3 force, bool pushforce) 213 public override void AddForce(Vector3 force, bool pushforce)
diff --git a/OpenSim/Services/HypergridService/UserAgentService.cs b/OpenSim/Services/HypergridService/UserAgentService.cs
index 398a7b7..38bcce6 100644
--- a/OpenSim/Services/HypergridService/UserAgentService.cs
+++ b/OpenSim/Services/HypergridService/UserAgentService.cs
@@ -161,6 +161,14 @@ namespace OpenSim.Services.HypergridService
161 { 161 {
162 m_log.DebugFormat("[USER AGENT SERVICE]: Request to login user {0} {1} (@{2}) to grid {3}", 162 m_log.DebugFormat("[USER AGENT SERVICE]: Request to login user {0} {1} (@{2}) to grid {3}",
163 agentCircuit.firstname, agentCircuit.lastname, ((clientIP == null) ? "stored IP" : clientIP.Address.ToString()), gatekeeper.ServerURI); 163 agentCircuit.firstname, agentCircuit.lastname, ((clientIP == null) ? "stored IP" : clientIP.Address.ToString()), gatekeeper.ServerURI);
164
165 if (m_UserAccountService.GetUserAccount(UUID.Zero, agentCircuit.AgentID) == null)
166 {
167 m_log.WarnFormat("[USER AGENT SERVICE]: Someone attempted to lauch a foreign user from here {0} {1}", agentCircuit.firstname, agentCircuit.lastname);
168 reason = "Forbidden to launch your agents from here";
169 return false;
170 }
171
164 // Take the IP address + port of the gatekeeper (reg) plus the info of finalDestination 172 // Take the IP address + port of the gatekeeper (reg) plus the info of finalDestination
165 GridRegion region = new GridRegion(gatekeeper); 173 GridRegion region = new GridRegion(gatekeeper);
166 region.ServerURI = gatekeeper.ServerURI; 174 region.ServerURI = gatekeeper.ServerURI;