diff options
Diffstat (limited to 'OpenSim.RegionServer')
-rw-r--r-- | OpenSim.RegionServer/world/Avatar.cs | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/OpenSim.RegionServer/world/Avatar.cs b/OpenSim.RegionServer/world/Avatar.cs index 792e2ff..c8a4539 100644 --- a/OpenSim.RegionServer/world/Avatar.cs +++ b/OpenSim.RegionServer/world/Avatar.cs | |||
@@ -274,10 +274,23 @@ namespace OpenSim.world | |||
274 | { | 274 | { |
275 | if (((uint)pack.AgentData.ControlFlags & (uint)MainAvatar.AgentUpdateFlags.AGENT_CONTROL_FLY) != 0) | 275 | if (((uint)pack.AgentData.ControlFlags & (uint)MainAvatar.AgentUpdateFlags.AGENT_CONTROL_FLY) != 0) |
276 | { | 276 | { |
277 | if (this._physActor.Flying == false) | ||
278 | { | ||
279 | this.current_anim = Animations.AnimsLLUUID["ANIM_AGENT_FLY"]; | ||
280 | this.anim_seq = 1; | ||
281 | this.SendAnimPack(); | ||
282 | } | ||
277 | this._physActor.Flying = true; | 283 | this._physActor.Flying = true; |
284 | |||
278 | } | 285 | } |
279 | else | 286 | else |
280 | { | 287 | { |
288 | if (this._physActor.Flying == true) | ||
289 | { | ||
290 | this.current_anim = Animations.AnimsLLUUID["ANIM_AGENT_STAND"]; | ||
291 | this.anim_seq = 1; | ||
292 | this.SendAnimPack(); | ||
293 | } | ||
281 | this._physActor.Flying = false; | 294 | this._physActor.Flying = false; |
282 | } | 295 | } |
283 | if (((uint)pack.AgentData.ControlFlags & (uint)MainAvatar.AgentUpdateFlags.AGENT_CONTROL_AT_POS) != 0) | 296 | if (((uint)pack.AgentData.ControlFlags & (uint)MainAvatar.AgentUpdateFlags.AGENT_CONTROL_AT_POS) != 0) |
@@ -286,7 +299,7 @@ namespace OpenSim.world | |||
286 | if (((movementflag & 1) == 0) || (q != this.bodyRot)) | 299 | if (((movementflag & 1) == 0) || (q != this.bodyRot)) |
287 | { | 300 | { |
288 | 301 | ||
289 | if ((movementflag & 1) == 0) | 302 | if (((movementflag & 1) == 0) && (!this._physActor.Flying)) |
290 | { | 303 | { |
291 | this.current_anim = Animations.AnimsLLUUID["ANIM_AGENT_WALK"]; | 304 | this.current_anim = Animations.AnimsLLUUID["ANIM_AGENT_WALK"]; |
292 | this.anim_seq = 1; | 305 | this.anim_seq = 1; |
@@ -395,10 +408,14 @@ namespace OpenSim.world | |||
395 | this.forcesList.Add(newVelocity); | 408 | this.forcesList.Add(newVelocity); |
396 | movementflag = 0; | 409 | movementflag = 0; |
397 | // We're standing still, so make it show! | 410 | // We're standing still, so make it show! |
398 | this.current_anim = Animations.AnimsLLUUID["ANIM_AGENT_STAND"]; | 411 | if (this._physActor.Flying == false) |
399 | this.anim_seq = 1; | 412 | { |
400 | this.SendAnimPack(); | 413 | this.current_anim = Animations.AnimsLLUUID["ANIM_AGENT_STAND"]; |
414 | this.anim_seq = 1; | ||
415 | this.SendAnimPack(); | ||
416 | } | ||
401 | this.movementflag = 16; | 417 | this.movementflag = 16; |
418 | |||
402 | } | 419 | } |
403 | } | 420 | } |
404 | } | 421 | } |