aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs14
-rw-r--r--OpenSim/Region/Framework/Interfaces/ISearchModule.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs14
3 files changed, 22 insertions, 8 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index d46adb8..0a865ab 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -6601,8 +6601,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP
6601 6601
6602 AgentRequestSit handlerAgentRequestSit = OnAgentRequestSit; 6602 AgentRequestSit handlerAgentRequestSit = OnAgentRequestSit;
6603 if (handlerAgentRequestSit != null) 6603 if (handlerAgentRequestSit != null)
6604 handlerAgentRequestSit(this, agentRequestSit.AgentData.AgentID, 6604 if (!(agentRequestSit.AgentData == null
6605 agentRequestSit.TargetObject.TargetID, agentRequestSit.TargetObject.Offset); 6605 || agentRequestSit.TargetObject == null
6606 || agentRequestSit.TargetObject.TargetID == null
6607 || agentRequestSit.TargetObject.Offset == null))
6608 {
6609 var sp = m_scene.GetScenePresence(agentRequestSit.AgentData.AgentID);
6610 if (sp == null || sp.ParentID != 0) // ignore packet if agent is already sitting
6611 return true;
6612
6613 handlerAgentRequestSit(this, agentRequestSit.AgentData.AgentID,
6614 agentRequestSit.TargetObject.TargetID, agentRequestSit.TargetObject.Offset);
6615 }
6606 } 6616 }
6607 return true; 6617 return true;
6608 } 6618 }
diff --git a/OpenSim/Region/Framework/Interfaces/ISearchModule.cs b/OpenSim/Region/Framework/Interfaces/ISearchModule.cs
index 64bf72c..d56d188 100644
--- a/OpenSim/Region/Framework/Interfaces/ISearchModule.cs
+++ b/OpenSim/Region/Framework/Interfaces/ISearchModule.cs
@@ -31,6 +31,6 @@ namespace OpenSim.Framework
31{ 31{
32 public interface ISearchModule 32 public interface ISearchModule
33 { 33 {
34 34 void Refresh();
35 } 35 }
36} 36}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 1e1e574..525e575 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -2260,7 +2260,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2260 return end; 2260 return end;
2261 } 2261 }
2262 2262
2263 protected LSL_Vector GetSetPosTarget(SceneObjectPart part, LSL_Vector targetPos, LSL_Vector fromPos) 2263 protected LSL_Vector GetSetPosTarget(SceneObjectPart part, LSL_Vector targetPos, LSL_Vector fromPos, bool adjust)
2264 { 2264 {
2265 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 2265 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
2266 return fromPos; 2266 return fromPos;
@@ -2276,9 +2276,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2276 if ((targetPos.z < ground) && disable_underground_movement && m_host.ParentGroup.AttachmentPoint == 0) 2276 if ((targetPos.z < ground) && disable_underground_movement && m_host.ParentGroup.AttachmentPoint == 0)
2277 targetPos.z = ground; 2277 targetPos.z = ground;
2278 } 2278 }
2279 LSL_Vector real_vec = SetPosAdjust(fromPos, targetPos); 2279 if (adjust)
2280 return SetPosAdjust(fromPos, targetPos);
2280 2281
2281 return real_vec; 2282 return targetPos;
2282 } 2283 }
2283 2284
2284 /// <summary> 2285 /// <summary>
@@ -2293,7 +2294,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2293 return; 2294 return;
2294 2295
2295 LSL_Vector currentPos = GetPartLocalPos(part); 2296 LSL_Vector currentPos = GetPartLocalPos(part);
2296 LSL_Vector toPos = GetSetPosTarget(part, targetPos, currentPos); 2297 LSL_Vector toPos = GetSetPosTarget(part, targetPos, currentPos, adjust);
2297 2298
2298 2299
2299 if (part.ParentGroup.RootPart == part) 2300 if (part.ParentGroup.RootPart == part)
@@ -7925,7 +7926,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7925 return null; 7926 return null;
7926 7927
7927 v=rules.GetVector3Item(idx++); 7928 v=rules.GetVector3Item(idx++);
7928 currentPosition = GetSetPosTarget(part, v, currentPosition); 7929 if (part.IsRoot && !part.ParentGroup.IsAttachment)
7930 currentPosition = GetSetPosTarget(part, v, currentPosition, true);
7931 else
7932 currentPosition = GetSetPosTarget(part, v, currentPosition, false);
7929 positionChanged = true; 7933 positionChanged = true;
7930 7934
7931 break; 7935 break;