diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 9 | ||||
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs | 4 |
2 files changed, 9 insertions, 4 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index be6ac0a..96f650e 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -4479,6 +4479,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
4479 | } | 4479 | } |
4480 | } | 4480 | } |
4481 | } | 4481 | } |
4482 | |||
4482 | if (pushAllowed) | 4483 | if (pushAllowed) |
4483 | { | 4484 | { |
4484 | float distance = (PusheePos - m_host.AbsolutePosition).Length(); | 4485 | float distance = (PusheePos - m_host.AbsolutePosition).Length(); |
@@ -4507,17 +4508,21 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
4507 | applied_linear_impulse *= scaling_factor; | 4508 | applied_linear_impulse *= scaling_factor; |
4508 | 4509 | ||
4509 | } | 4510 | } |
4511 | |||
4510 | if (pusheeIsAvatar) | 4512 | if (pusheeIsAvatar) |
4511 | { | 4513 | { |
4512 | if (pusheeav != null) | 4514 | if (pusheeav != null) |
4513 | { | 4515 | { |
4514 | if (pusheeav.PhysicsActor != null) | 4516 | PhysicsActor pa = pusheeav.PhysicsActor; |
4517 | |||
4518 | if (pa != null) | ||
4515 | { | 4519 | { |
4516 | if (local != 0) | 4520 | if (local != 0) |
4517 | { | 4521 | { |
4518 | applied_linear_impulse *= m_host.GetWorldRotation(); | 4522 | applied_linear_impulse *= m_host.GetWorldRotation(); |
4519 | } | 4523 | } |
4520 | pusheeav.PhysicsActor.AddForce(applied_linear_impulse, true); | 4524 | |
4525 | pa.AddForce(applied_linear_impulse, true); | ||
4521 | } | 4526 | } |
4522 | } | 4527 | } |
4523 | } | 4528 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs index 669cc37..bf19a42 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs | |||
@@ -595,7 +595,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance | |||
595 | if (!m_coopTermination) | 595 | if (!m_coopTermination) |
596 | { | 596 | { |
597 | // If we're not co-operative terminating then try and wait for the event to complete before stopping | 597 | // If we're not co-operative terminating then try and wait for the event to complete before stopping |
598 | if (workItem.Wait(new TimeSpan((long)timeout * 100000))) | 598 | if (workItem.Wait(timeout)) |
599 | return true; | 599 | return true; |
600 | } | 600 | } |
601 | else | 601 | else |
@@ -610,7 +610,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance | |||
610 | 610 | ||
611 | // For now, we will wait forever since the event should always cleanly terminate once LSL loop | 611 | // For now, we will wait forever since the event should always cleanly terminate once LSL loop |
612 | // checking is implemented. May want to allow a shorter timeout option later. | 612 | // checking is implemented. May want to allow a shorter timeout option later. |
613 | if (workItem.Wait(TimeSpan.MaxValue)) | 613 | if (workItem.Wait(Timeout.Infinite)) |
614 | { | 614 | { |
615 | if (DebugLevel >= 1) | 615 | if (DebugLevel >= 1) |
616 | m_log.DebugFormat( | 616 | m_log.DebugFormat( |