aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorUbitUmarov2016-07-27 01:57:20 +0100
committerUbitUmarov2016-07-27 01:57:20 +0100
commitd6e16c5130026e7e7cf977fa7e18182aabf50ebd (patch)
treea9d01208c63bb5db23061425cb80b789ded2c5fa /OpenSim/Region
parent take friends out of onMakeRoot if crossing (diff)
downloadopensim-SC-d6e16c5130026e7e7cf977fa7e18182aabf50ebd.zip
opensim-SC-d6e16c5130026e7e7cf977fa7e18182aabf50ebd.tar.gz
opensim-SC-d6e16c5130026e7e7cf977fa7e18182aabf50ebd.tar.bz2
opensim-SC-d6e16c5130026e7e7cf977fa7e18182aabf50ebd.tar.xz
missing changes about friends on crossings, and missing angular velocity clear on sits
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs18
1 files changed, 14 insertions, 4 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index c925719..eac7cbc 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -2189,8 +2189,12 @@ namespace OpenSim.Region.Framework.Scenes
2189 { 2189 {
2190 IFriendsModule friendsModule = m_scene.RequestModuleInterface<IFriendsModule>(); 2190 IFriendsModule friendsModule = m_scene.RequestModuleInterface<IFriendsModule>();
2191 if (friendsModule != null) 2191 if (friendsModule != null)
2192 friendsModule.SendFriendsOnlineIfNeeded(ControllingClient); 2192 {
2193 2193 if(gotCrossUpdate)
2194 friendsModule.IsNpwRoot(this);
2195 else
2196 friendsModule.SendFriendsOnlineIfNeeded(ControllingClient);
2197 }
2194 m_log.DebugFormat("[CompleteMovement] friendsModule: {0}ms", Util.EnvironmentTickCountSubtract(ts)); 2198 m_log.DebugFormat("[CompleteMovement] friendsModule: {0}ms", Util.EnvironmentTickCountSubtract(ts));
2195 2199
2196 } 2200 }
@@ -3163,6 +3167,7 @@ namespace OpenSim.Region.Framework.Scenes
3163 ResetMoveToTarget(); 3167 ResetMoveToTarget();
3164 3168
3165 Velocity = Vector3.Zero; 3169 Velocity = Vector3.Zero;
3170 m_AngularVelocity = Vector3.Zero;
3166 3171
3167 part.AddSittingAvatar(this); 3172 part.AddSittingAvatar(this);
3168 3173
@@ -3488,9 +3493,10 @@ namespace OpenSim.Region.Framework.Scenes
3488 part.AddSittingAvatar(this); 3493 part.AddSittingAvatar(this);
3489 ParentPart = part; 3494 ParentPart = part;
3490 ParentID = m_requestedSitTargetID; 3495 ParentID = m_requestedSitTargetID;
3496
3497 RemoveFromPhysicalScene();
3491 m_AngularVelocity = Vector3.Zero; 3498 m_AngularVelocity = Vector3.Zero;
3492 Velocity = Vector3.Zero; 3499 Velocity = Vector3.Zero;
3493 RemoveFromPhysicalScene();
3494 3500
3495 m_requestedSitTargetID = 0; 3501 m_requestedSitTargetID = 0;
3496 3502
@@ -3513,13 +3519,15 @@ namespace OpenSim.Region.Framework.Scenes
3513 return; 3519 return;
3514 3520
3515// m_updateCount = 0; // Kill animation update burst so that the SIT_G.. will stick.. 3521// m_updateCount = 0; // Kill animation update burst so that the SIT_G.. will stick..
3516 m_AngularVelocity = Vector3.Zero;
3517 sitAnimation = "SIT_GROUND_CONSTRAINED"; 3522 sitAnimation = "SIT_GROUND_CONSTRAINED";
3518// Animator.TrySetMovementAnimation("SIT_GROUND_CONSTRAINED"); 3523// Animator.TrySetMovementAnimation("SIT_GROUND_CONSTRAINED");
3519// TriggerScenePresenceUpdated(); 3524// TriggerScenePresenceUpdated();
3520 SitGround = true; 3525 SitGround = true;
3521 RemoveFromPhysicalScene(); 3526 RemoveFromPhysicalScene();
3522 3527
3528 m_AngularVelocity = Vector3.Zero;
3529 Velocity = Vector3.Zero;
3530
3523 Animator.SetMovementAnimations("SITGROUND"); 3531 Animator.SetMovementAnimations("SITGROUND");
3524 TriggerScenePresenceUpdated(); 3532 TriggerScenePresenceUpdated();
3525 } 3533 }
@@ -4236,6 +4244,8 @@ namespace OpenSim.Region.Framework.Scenes
4236 pos.Y -= Velocity.Y * 2; 4244 pos.Y -= Velocity.Y * 2;
4237 4245
4238 Velocity = Vector3.Zero; 4246 Velocity = Vector3.Zero;
4247 m_AngularVelocity = Vector3.Zero;
4248
4239 AbsolutePosition = pos; 4249 AbsolutePosition = pos;
4240 4250
4241 AddToPhysicalScene(isFlying); 4251 AddToPhysicalScene(isFlying);