aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework')
-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 {