diff options
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 786ae6e..bb374ed 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -3825,7 +3825,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3825 | List<String> nametable = new List<String>(); | 3825 | List<String> nametable = new List<String>(); |
3826 | World.ForEachRootScenePresence(delegate(ScenePresence presence) | 3826 | World.ForEachRootScenePresence(delegate(ScenePresence presence) |
3827 | { | 3827 | { |
3828 | if (presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID)) | 3828 | SceneObjectPart sitPart = presence.ParentPart; |
3829 | if (sitPart != null && m_host.ParentGroup.HasChildPrim(sitPart.LocalId)) | ||
3829 | nametable.Add(presence.ControllingClient.Name); | 3830 | nametable.Add(presence.ControllingClient.Name); |
3830 | }); | 3831 | }); |
3831 | 3832 | ||
@@ -4393,22 +4394,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
4393 | 4394 | ||
4394 | // Find pushee position | 4395 | // Find pushee position |
4395 | // Pushee Linked? | 4396 | // Pushee Linked? |
4396 | if (pusheeav.ParentID != 0) | 4397 | SceneObjectPart sitPart = pusheeav.ParentPart; |
4397 | { | 4398 | if (sitPart != null) |
4398 | SceneObjectPart parentobj = World.GetSceneObjectPart(pusheeav.ParentID); | 4399 | PusheePos = sitPart.AbsolutePosition; |
4399 | if (parentobj != null) | ||
4400 | { | ||
4401 | PusheePos = parentobj.AbsolutePosition; | ||
4402 | } | ||
4403 | else | ||
4404 | { | ||
4405 | PusheePos = pusheeav.AbsolutePosition; | ||
4406 | } | ||
4407 | } | ||
4408 | else | 4400 | else |
4409 | { | ||
4410 | PusheePos = pusheeav.AbsolutePosition; | 4401 | PusheePos = pusheeav.AbsolutePosition; |
4411 | } | ||
4412 | } | 4402 | } |
4413 | 4403 | ||
4414 | if (!pusheeIsAvatar) | 4404 | if (!pusheeIsAvatar) |
@@ -5603,7 +5593,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5603 | flags |= ScriptBaseClass.AGENT_IN_AIR; | 5593 | flags |= ScriptBaseClass.AGENT_IN_AIR; |
5604 | } | 5594 | } |
5605 | 5595 | ||
5606 | if (agent.ParentID != 0) | 5596 | if (agent.ParentPart != null) |
5607 | { | 5597 | { |
5608 | flags |= ScriptBaseClass.AGENT_ON_OBJECT; | 5598 | flags |= ScriptBaseClass.AGENT_ON_OBJECT; |
5609 | flags |= ScriptBaseClass.AGENT_SITTING; | 5599 | flags |= ScriptBaseClass.AGENT_SITTING; |
@@ -7692,7 +7682,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
7692 | World.ForEachRootScenePresence(delegate(ScenePresence presence) | 7682 | World.ForEachRootScenePresence(delegate(ScenePresence presence) |
7693 | { | 7683 | { |
7694 | if (presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID)) | 7684 | if (presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID)) |
7695 | avatarCount++; | 7685 | avatarCount++; |
7696 | }); | 7686 | }); |
7697 | 7687 | ||
7698 | return m_host.ParentGroup.PrimCount + avatarCount; | 7688 | return m_host.ParentGroup.PrimCount + avatarCount; |