diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 14 | ||||
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs | 2 |
2 files changed, 13 insertions, 3 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 465d76d..ddbd677 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/Physics/BulletSPlugin/BSPrim.cs b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs index 400d5d6..8fd054f 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs | |||
@@ -169,6 +169,7 @@ public sealed class BSPrim : BSPhysObject | |||
169 | public override PrimitiveBaseShape Shape { | 169 | public override PrimitiveBaseShape Shape { |
170 | set { | 170 | set { |
171 | BaseShape = value; | 171 | BaseShape = value; |
172 | LastAssetBuildFailed = false; | ||
172 | ForceBodyShapeRebuild(false); | 173 | ForceBodyShapeRebuild(false); |
173 | } | 174 | } |
174 | } | 175 | } |
@@ -178,7 +179,6 @@ public sealed class BSPrim : BSPhysObject | |||
178 | 179 | ||
179 | public override bool ForceBodyShapeRebuild(bool inTaintTime) | 180 | public override bool ForceBodyShapeRebuild(bool inTaintTime) |
180 | { | 181 | { |
181 | LastAssetBuildFailed = false; | ||
182 | PhysicsScene.TaintedObject(inTaintTime, "BSPrim.ForceBodyShapeRebuild", delegate() | 182 | PhysicsScene.TaintedObject(inTaintTime, "BSPrim.ForceBodyShapeRebuild", delegate() |
183 | { | 183 | { |
184 | _mass = CalculateMass(); // changing the shape changes the mass | 184 | _mass = CalculateMass(); // changing the shape changes the mass |