diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 17 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 41 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | 5 |
3 files changed, 40 insertions, 23 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 708da15..d8cb11c 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -737,12 +737,27 @@ namespace OpenSim.Region.Environment.Scenes | |||
737 | m_statsReporter.addOtherMS(otherMS); | 737 | m_statsReporter.addOtherMS(otherMS); |
738 | m_statsReporter.SetActiveScripts(m_innerScene.GetActiveScripts()); | 738 | m_statsReporter.SetActiveScripts(m_innerScene.GetActiveScripts()); |
739 | m_statsReporter.addScriptLines(m_innerScene.GetScriptLPS()); | 739 | m_statsReporter.addScriptLines(m_innerScene.GetScriptLPS()); |
740 | 740 | ||
741 | } | 741 | } |
742 | catch (NotImplementedException) | 742 | catch (NotImplementedException) |
743 | { | 743 | { |
744 | throw; | 744 | throw; |
745 | } | 745 | } |
746 | catch (System.AccessViolationException e) | ||
747 | { | ||
748 | m_log.Error("[Scene]: Failed with exception " + e.ToString() + " On Region: " + RegionInfo.RegionName); | ||
749 | |||
750 | } | ||
751 | catch (System.NullReferenceException e) | ||
752 | { | ||
753 | m_log.Error("[Scene]: Failed with exception " + e.ToString() + " On Region: " + RegionInfo.RegionName); | ||
754 | |||
755 | } | ||
756 | catch (System.InvalidOperationException e) | ||
757 | { | ||
758 | m_log.Error("[Scene]: Failed with exception " + e.ToString() + " On Region: " + RegionInfo.RegionName); | ||
759 | |||
760 | } | ||
746 | catch (Exception e) | 761 | catch (Exception e) |
747 | { | 762 | { |
748 | m_log.Error("[Scene]: Failed with exception " + e.ToString() + " On Region: " + RegionInfo.RegionName); | 763 | m_log.Error("[Scene]: Failed with exception " + e.ToString() + " On Region: " + RegionInfo.RegionName); |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index e8d4766..519858b 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -1265,23 +1265,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
1265 | if (part != null) | 1265 | if (part != null) |
1266 | { | 1266 | { |
1267 | part.UpdateShape(shapeBlock); | 1267 | part.UpdateShape(shapeBlock); |
1268 | } | ||
1269 | if (m_rootPart.PhysActor != null) | ||
1270 | { | ||
1271 | m_scene.PhysicsScene.RemovePrim(m_rootPart.PhysActor); | ||
1272 | m_rootPart.PhysActor = m_scene.PhysicsScene.AddPrimShape( | ||
1273 | m_rootPart.Name, | ||
1274 | m_rootPart.Shape, | ||
1275 | new PhysicsVector(m_rootPart.AbsolutePosition.X, m_rootPart.AbsolutePosition.Y, | ||
1276 | m_rootPart.AbsolutePosition.Z), | ||
1277 | new PhysicsVector(m_rootPart.Scale.X, m_rootPart.Scale.Y, m_rootPart.Scale.Z), | ||
1278 | new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, | ||
1279 | m_rootPart.RotationOffset.Y, m_rootPart.RotationOffset.Z), | ||
1280 | m_rootPart.PhysActor.IsPhysical); | ||
1281 | bool UsePhysics = ((m_rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) != 0); | ||
1282 | m_rootPart.DoPhysicsPropertyUpdate(UsePhysics, true); | ||
1283 | 1268 | ||
1269 | if (part.PhysActor != null) | ||
1270 | m_scene.PhysicsScene.AddPhysicsActorTaint(part.PhysActor); | ||
1284 | } | 1271 | } |
1272 | |||
1285 | } | 1273 | } |
1286 | 1274 | ||
1287 | #endregion | 1275 | #endregion |
@@ -1299,15 +1287,24 @@ namespace OpenSim.Region.Environment.Scenes | |||
1299 | if (part != null) | 1287 | if (part != null) |
1300 | { | 1288 | { |
1301 | part.Resize(scale); | 1289 | part.Resize(scale); |
1302 | if (part.UUID == m_rootPart.UUID) | 1290 | if (part.PhysActor != null) |
1303 | { | 1291 | { |
1304 | if (m_rootPart.PhysActor != null) | 1292 | part.PhysActor.Size = |
1305 | { | 1293 | new PhysicsVector(scale.X, scale.Y, scale.Z); |
1306 | m_rootPart.PhysActor.Size = | 1294 | m_scene.PhysicsScene.AddPhysicsActorTaint(part.PhysActor); |
1307 | new PhysicsVector(m_rootPart.Scale.X, m_rootPart.Scale.Y, m_rootPart.Scale.Z); | ||
1308 | m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor); | ||
1309 | } | ||
1310 | } | 1295 | } |
1296 | if (part.UUID != m_rootPart.UUID) | ||
1297 | ScheduleGroupForFullUpdate(); | ||
1298 | |||
1299 | //if (part.UUID == m_rootPart.UUID) | ||
1300 | //{ | ||
1301 | //if (m_rootPart.PhysActor != null) | ||
1302 | //{ | ||
1303 | //m_rootPart.PhysActor.Size = | ||
1304 | //new PhysicsVector(m_rootPart.Scale.X, m_rootPart.Scale.Y, m_rootPart.Scale.Z); | ||
1305 | //m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor); | ||
1306 | //} | ||
1307 | //} | ||
1311 | } | 1308 | } |
1312 | } | 1309 | } |
1313 | 1310 | ||
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index 1d5dd5b..5756a0b 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |||
@@ -1182,6 +1182,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
1182 | m_shape.PathTaperY = shapeBlock.PathTaperY; | 1182 | m_shape.PathTaperY = shapeBlock.PathTaperY; |
1183 | m_shape.PathTwist = shapeBlock.PathTwist; | 1183 | m_shape.PathTwist = shapeBlock.PathTwist; |
1184 | m_shape.PathTwistBegin = shapeBlock.PathTwistBegin; | 1184 | m_shape.PathTwistBegin = shapeBlock.PathTwistBegin; |
1185 | if (PhysActor != null) | ||
1186 | { | ||
1187 | PhysActor.Shape = m_shape; | ||
1188 | } | ||
1185 | ScheduleFullUpdate(); | 1189 | ScheduleFullUpdate(); |
1186 | } | 1190 | } |
1187 | 1191 | ||
@@ -1583,6 +1587,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1583 | public void Resize(LLVector3 scale) | 1587 | public void Resize(LLVector3 scale) |
1584 | { | 1588 | { |
1585 | m_shape.Scale = scale; | 1589 | m_shape.Scale = scale; |
1590 | |||
1586 | ScheduleFullUpdate(); | 1591 | ScheduleFullUpdate(); |
1587 | } | 1592 | } |
1588 | 1593 | ||