aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorRobert Adams2012-08-17 13:26:18 -0700
committerRobert Adams2012-08-17 13:34:20 -0700
commit5c192b9bab4eb3e921f54a94125215c3683f2eca (patch)
tree7891ae31aaa81debdd175f121c06a2de819891ad
parentBulletSim: add parameters and functionality to specify the mesh (diff)
downloadopensim-SC-5c192b9bab4eb3e921f54a94125215c3683f2eca.zip
opensim-SC-5c192b9bab4eb3e921f54a94125215c3683f2eca.tar.gz
opensim-SC-5c192b9bab4eb3e921f54a94125215c3683f2eca.tar.bz2
opensim-SC-5c192b9bab4eb3e921f54a94125215c3683f2eca.tar.xz
Modify order of code so SOP doesn't set the physics actor flying
property multiple times every time Update is called. This eliminates zillions of settings which is better for BulletSim. The should be no functionality change.
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs19
1 files changed, 12 insertions, 7 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 548dfd3..98afb75 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1385,17 +1385,22 @@ namespace OpenSim.Region.Framework.Scenes
1385 bool DCFlagKeyPressed = false; 1385 bool DCFlagKeyPressed = false;
1386 Vector3 agent_control_v3 = Vector3.Zero; 1386 Vector3 agent_control_v3 = Vector3.Zero;
1387 1387
1388 bool oldflying = Flying; 1388 bool newFlying = actor.Flying;
1389 1389
1390 if (ForceFly) 1390 if (ForceFly)
1391 actor.Flying = true; 1391 newFlying = true;
1392 else if (FlyDisabled) 1392 else if (FlyDisabled)
1393 actor.Flying = false; 1393 newFlying = false;
1394 else 1394 else
1395 actor.Flying = ((flags & AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0); 1395 newFlying = ((flags & AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0);
1396 1396
1397 if (actor.Flying != oldflying) 1397 if (actor.Flying != newFlying)
1398 update_movementflag = true; 1398 {
1399 // Note: ScenePresence.Flying is actually fetched from the physical actor
1400 // so setting PhysActor.Flying here also sets the ScenePresence's value.
1401 actor.Flying = newFlying;
1402 update_movementflag = true;
1403 }
1399 1404
1400 if (ParentID == 0) 1405 if (ParentID == 0)
1401 { 1406 {