aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie2012-02-26 14:30:24 +0100
committerMelanie2012-02-26 14:30:24 +0100
commit8cdc115c91bd074539c5fbae719313d4dc616355 (patch)
treeb071a6011f0644044f02be9ecdd0e84ac957d468
parentFix an infinite recursion caused by checking the wrong values for (diff)
downloadopensim-SC-8cdc115c91bd074539c5fbae719313d4dc616355.zip
opensim-SC-8cdc115c91bd074539c5fbae719313d4dc616355.tar.gz
opensim-SC-8cdc115c91bd074539c5fbae719313d4dc616355.tar.bz2
opensim-SC-8cdc115c91bd074539c5fbae719313d4dc616355.tar.xz
Fix deserialization of Buoyancy, Force and Torque. Remove debug from the new
code.
-rw-r--r--OpenSim/Region/Framework/Scenes/KeyframeMotion.cs1
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs4
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs6
-rw-r--r--OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs5
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs4
5 files changed, 9 insertions, 11 deletions
diff --git a/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs b/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs
index 73db25b..7f651aa 100644
--- a/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs
+++ b/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs
@@ -245,7 +245,6 @@ namespace OpenSim.Region.Framework.Scenes
245 } 245 }
246 } 246 }
247 247
248 m_log.DebugFormat("[KEYFRAME]: Angle {0} aabb {1}", angle, aa_bb);
249 k.AngularVelocity = (new Vector3(0, 0, 1) * (Quaternion)k.Rotation) * (angle / (k.TimeMS / 1000)); 248 k.AngularVelocity = (new Vector3(0, 0, 1) * (Quaternion)k.Rotation) * (angle / (k.TimeMS / 1000));
250 k.TimeTotal = k.TimeMS; 249 k.TimeTotal = k.TimeMS;
251 250
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index d488189..ac2fe82 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -896,6 +896,10 @@ namespace OpenSim.Region.Framework.Scenes
896 ApplyPhysics(); 896 ApplyPhysics();
897 897
898 if (RootPart.PhysActor != null) 898 if (RootPart.PhysActor != null)
899 RootPart.Force = RootPart.Force;
900 if (RootPart.PhysActor != null)
901 RootPart.Torque = RootPart.Torque;
902 if (RootPart.PhysActor != null)
899 RootPart.Buoyancy = RootPart.Buoyancy; 903 RootPart.Buoyancy = RootPart.Buoyancy;
900 904
901 // Don't trigger the update here - otherwise some client issues occur when multiple updates are scheduled 905 // Don't trigger the update here - otherwise some client issues occur when multiple updates are scheduled
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 3ab7e5a..0728042 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -1313,7 +1313,7 @@ namespace OpenSim.Region.Framework.Scenes
1313 } 1313 }
1314 set 1314 set
1315 { 1315 {
1316 if (ParentGroup.RootPart != this) 1316 if (ParentGroup != null && ParentGroup.RootPart != null && ParentGroup.RootPart != this)
1317 { 1317 {
1318 ParentGroup.RootPart.Buoyancy = value; 1318 ParentGroup.RootPart.Buoyancy = value;
1319 return; 1319 return;
@@ -1336,7 +1336,7 @@ namespace OpenSim.Region.Framework.Scenes
1336 1336
1337 set 1337 set
1338 { 1338 {
1339 if (ParentGroup.RootPart != this) 1339 if (ParentGroup != null && ParentGroup.RootPart != null && ParentGroup.RootPart != this)
1340 { 1340 {
1341 ParentGroup.RootPart.Force = value; 1341 ParentGroup.RootPart.Force = value;
1342 return; 1342 return;
@@ -1359,7 +1359,7 @@ namespace OpenSim.Region.Framework.Scenes
1359 1359
1360 set 1360 set
1361 { 1361 {
1362 if (ParentGroup.RootPart != this) 1362 if (ParentGroup != null && ParentGroup.RootPart != null && ParentGroup.RootPart != this)
1363 { 1363 {
1364 ParentGroup.RootPart.Torque = value; 1364 ParentGroup.RootPart.Torque = value;
1365 return; 1365 return;
diff --git a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
index a9f3e84..118a63a 100644
--- a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
+++ b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
@@ -246,14 +246,9 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
246 246
247 XmlNodeList keymotion = doc.GetElementsByTagName("KeyframeMotion"); 247 XmlNodeList keymotion = doc.GetElementsByTagName("KeyframeMotion");
248 if (keymotion.Count > 0) 248 if (keymotion.Count > 0)
249 {
250 m_log.DebugFormat("[SERIALIZER]: Deserialized KeyframeMotion");
251 sceneObject.KeyframeMotion = KeyframeMotion.FromData(sceneObject, Convert.FromBase64String(keymotion[0].InnerText)); 249 sceneObject.KeyframeMotion = KeyframeMotion.FromData(sceneObject, Convert.FromBase64String(keymotion[0].InnerText));
252 }
253 else 250 else
254 {
255 sceneObject.KeyframeMotion = null; 251 sceneObject.KeyframeMotion = null;
256 }
257 252
258 // Script state may, or may not, exist. Not having any, is NOT 253 // Script state may, or may not, exist. Not having any, is NOT
259 // ever a problem. 254 // ever a problem.
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 9090311..e4ab14f 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -2484,13 +2484,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2484 public void llApplyRotationalImpulse(LSL_Vector force, int local) 2484 public void llApplyRotationalImpulse(LSL_Vector force, int local)
2485 { 2485 {
2486 m_host.AddScriptLPS(1); 2486 m_host.AddScriptLPS(1);
2487 m_host.ApplyAngularImpulse(new Vector3((float)force.x, (float)force.y, (float)force.z), local != 0); 2487 m_host.ParentGroup.RootPart.ApplyAngularImpulse(new Vector3((float)force.x, (float)force.y, (float)force.z), local != 0);
2488 } 2488 }
2489 2489
2490 public void llSetTorque(LSL_Vector torque, int local) 2490 public void llSetTorque(LSL_Vector torque, int local)
2491 { 2491 {
2492 m_host.AddScriptLPS(1); 2492 m_host.AddScriptLPS(1);
2493 m_host.SetAngularImpulse(new Vector3((float)torque.x, (float)torque.y, (float)torque.z), local != 0); 2493 m_host.ParentGroup.RootPart.SetAngularImpulse(new Vector3((float)torque.x, (float)torque.y, (float)torque.z), local != 0);
2494 } 2494 }
2495 2495
2496 public LSL_Vector llGetTorque() 2496 public LSL_Vector llGetTorque()