aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/ScenePresence.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs59
1 files changed, 32 insertions, 27 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index beff239..6f5b6fe 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -285,16 +285,10 @@ namespace OpenSim.Region.Framework.Scenes
285 285
286 #region Properties 286 #region Properties
287 287
288 protected PhysicsActor m_physicsActor;
289
290 /// <summary> 288 /// <summary>
291 /// Physical scene representation of this Avatar. 289 /// Physical scene representation of this Avatar.
292 /// </summary> 290 /// </summary>
293 public PhysicsActor PhysicsActor 291 public PhysicsActor PhysicsActor { get; private set; }
294 {
295 set { m_physicsActor = value; }
296 get { return m_physicsActor; }
297 }
298 292
299 private byte m_movementflag; 293 private byte m_movementflag;
300 294
@@ -1032,18 +1026,19 @@ namespace OpenSim.Region.Framework.Scenes
1032 { 1026 {
1033 if (PhysicsActor != null) 1027 if (PhysicsActor != null)
1034 { 1028 {
1035 try 1029// PhysicsActor.OnRequestTerseUpdate -= SendTerseUpdateToAllClients;
1036 { 1030 PhysicsActor.OnOutOfBounds -= OutOfBoundsCall;
1037 PhysicsActor.OnRequestTerseUpdate -= SendTerseUpdateToAllClients; 1031 m_scene.PhysicsScene.RemoveAvatar(PhysicsActor);
1038 PhysicsActor.OnOutOfBounds -= OutOfBoundsCall; 1032 PhysicsActor.UnSubscribeEvents();
1039 m_scene.PhysicsScene.RemoveAvatar(PhysicsActor); 1033 PhysicsActor.OnCollisionUpdate -= PhysicsCollisionUpdate;
1040 PhysicsActor.UnSubscribeEvents(); 1034 PhysicsActor = null;
1041 PhysicsActor.OnCollisionUpdate -= PhysicsCollisionUpdate;
1042 PhysicsActor = null;
1043 }
1044 catch
1045 { }
1046 } 1035 }
1036// else
1037// {
1038// m_log.ErrorFormat(
1039// "[SCENE PRESENCE]: Attempt to remove physics actor for {0} on {1} but this scene presence has no physics actor",
1040// Name, Scene.RegionInfo.RegionName);
1041// }
1047 } 1042 }
1048 1043
1049 /// <summary> 1044 /// <summary>
@@ -1925,7 +1920,7 @@ namespace OpenSim.Region.Framework.Scenes
1925// m_log.DebugFormat("[SCENE PRESENCE]: {0} {1}", SitTargetisSet, SitTargetUnOccupied); 1920// m_log.DebugFormat("[SCENE PRESENCE]: {0} {1}", SitTargetisSet, SitTargetUnOccupied);
1926 1921
1927 if (PhysicsActor != null) 1922 if (PhysicsActor != null)
1928 m_sitAvatarHeight = m_physicsActor.Size.Z; 1923 m_sitAvatarHeight = PhysicsActor.Size.Z;
1929 1924
1930 bool canSit = false; 1925 bool canSit = false;
1931 pos = part.AbsolutePosition + offset; 1926 pos = part.AbsolutePosition + offset;
@@ -2570,7 +2565,10 @@ namespace OpenSim.Region.Framework.Scenes
2570 // only send update from root agents to other clients; children are only "listening posts" 2565 // only send update from root agents to other clients; children are only "listening posts"
2571 if (IsChildAgent) 2566 if (IsChildAgent)
2572 { 2567 {
2573 m_log.Warn("[SCENE PRESENCE]: Attempt to send avatar data from a child agent"); 2568 m_log.WarnFormat(
2569 "[SCENE PRESENCE]: Attempt to send avatar data from a child agent for {0} in {1}",
2570 Name, Scene.RegionInfo.RegionName);
2571
2574 return; 2572 return;
2575 } 2573 }
2576 2574
@@ -2628,7 +2626,10 @@ namespace OpenSim.Region.Framework.Scenes
2628 // only send update from root agents to other clients; children are only "listening posts" 2626 // only send update from root agents to other clients; children are only "listening posts"
2629 if (IsChildAgent) 2627 if (IsChildAgent)
2630 { 2628 {
2631 m_log.Warn("[SCENE PRESENCE]: Attempt to send avatar data from a child agent"); 2629 m_log.WarnFormat(
2630 "[SCENE PRESENCE]: Attempt to send avatar data from a child agent for {0} in {1}",
2631 Name, Scene.RegionInfo.RegionName);
2632
2632 return; 2633 return;
2633 } 2634 }
2634 2635
@@ -3039,8 +3040,6 @@ namespace OpenSim.Region.Framework.Scenes
3039 3040
3040 CameraPosition = cAgentData.Center + offset; 3041 CameraPosition = cAgentData.Center + offset;
3041 3042
3042 //SetHeight(cAgentData.AVHeight);
3043
3044 if ((cAgentData.Throttles != null) && cAgentData.Throttles.Length > 0) 3043 if ((cAgentData.Throttles != null) && cAgentData.Throttles.Length > 0)
3045 ControllingClient.SetChildAgentThrottle(cAgentData.Throttles); 3044 ControllingClient.SetChildAgentThrottle(cAgentData.Throttles);
3046 3045
@@ -3251,6 +3250,13 @@ namespace OpenSim.Region.Framework.Scenes
3251// "[SCENE PRESENCE]: Adding physics actor for {0}, ifFlying = {1} in {2}", 3250// "[SCENE PRESENCE]: Adding physics actor for {0}, ifFlying = {1} in {2}",
3252// Name, isFlying, Scene.RegionInfo.RegionName); 3251// Name, isFlying, Scene.RegionInfo.RegionName);
3253 3252
3253 if (PhysicsActor != null)
3254 {
3255 m_log.ErrorFormat(
3256 "[SCENE PRESENCE]: Adding physics actor for {0} to {1} but this scene presence already has a physics actor",
3257 Name, Scene.RegionInfo.RegionName);
3258 }
3259
3254 if (Appearance.AvatarHeight == 0) 3260 if (Appearance.AvatarHeight == 0)
3255 Appearance.SetHeight(); 3261 Appearance.SetHeight();
3256 3262
@@ -3258,11 +3264,10 @@ namespace OpenSim.Region.Framework.Scenes
3258 3264
3259 Vector3 pVec = AbsolutePosition; 3265 Vector3 pVec = AbsolutePosition;
3260 3266
3261 // Old bug where the height was in centimeters instead of meters 3267 PhysicsActor = scene.AddAvatar(
3262 PhysicsActor = scene.AddAvatar(LocalId, Firstname + "." + Lastname, pVec, 3268 LocalId, Firstname + "." + Lastname, pVec,
3263 new Vector3(0f, 0f, Appearance.AvatarHeight), isFlying); 3269 new Vector3(0f, 0f, Appearance.AvatarHeight), isFlying);
3264 3270
3265 scene.AddPhysicsActorTaint(PhysicsActor);
3266 //PhysicsActor.OnRequestTerseUpdate += SendTerseUpdateToAllClients; 3271 //PhysicsActor.OnRequestTerseUpdate += SendTerseUpdateToAllClients;
3267 PhysicsActor.OnCollisionUpdate += PhysicsCollisionUpdate; 3272 PhysicsActor.OnCollisionUpdate += PhysicsCollisionUpdate;
3268 PhysicsActor.OnOutOfBounds += OutOfBoundsCall; // Called for PhysicsActors when there's something wrong 3273 PhysicsActor.OnOutOfBounds += OutOfBoundsCall; // Called for PhysicsActors when there's something wrong