diff options
This started as way to correct Mantis #3158, which I believe should be fixed now. The flying status was temporarily being ignored, which caused the avie to drop sometimes -- there was a race condition. In the process it also fixes that annoying bug in basic physics where the avie would drop half-way to the ground upon region crossings (SetAppearance was missing). Additionally, a lot of child-agent-related code has been cleaned up; namely child agents are now consistently not added to physical scenes, and they also don't have appearances. All of that happens in MakeRoot, consistently.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs b/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs index fa59dbe..18935fb 100644 --- a/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs +++ b/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs | |||
@@ -102,13 +102,14 @@ namespace OpenSim.Region.Physics.PhysXPlugin | |||
102 | 102 | ||
103 | } | 103 | } |
104 | 104 | ||
105 | public override PhysicsActor AddAvatar(string avName, PhysicsVector position, PhysicsVector size) | 105 | public override PhysicsActor AddAvatar(string avName, PhysicsVector position, PhysicsVector size, bool isFlying) |
106 | { | 106 | { |
107 | Vec3 pos = new Vec3(); | 107 | Vec3 pos = new Vec3(); |
108 | pos.X = position.X; | 108 | pos.X = position.X; |
109 | pos.Y = position.Y; | 109 | pos.Y = position.Y; |
110 | pos.Z = position.Z; | 110 | pos.Z = position.Z; |
111 | PhysXCharacter act = new PhysXCharacter(scene.AddCharacter(pos)); | 111 | PhysXCharacter act = new PhysXCharacter(scene.AddCharacter(pos)); |
112 | act.Flying = isFlying; | ||
112 | act.Position = position; | 113 | act.Position = position; |
113 | _characters.Add(act); | 114 | _characters.Add(act); |
114 | return act; | 115 | return act; |