aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorMelanie2012-02-26 21:16:24 +0100
committerMelanie2012-02-26 21:16:24 +0100
commite5e5b94cbe6076f74d5ad2358d020f7d4f7ac18f (patch)
tree60d6192787ae633647b669ef6bf4421bbc1c4399 /OpenSim
parentMove KeyframeMotion from SOG to SOP because we can't persist it any (diff)
downloadopensim-SC-e5e5b94cbe6076f74d5ad2358d020f7d4f7ac18f.zip
opensim-SC-e5e5b94cbe6076f74d5ad2358d020f7d4f7ac18f.tar.gz
opensim-SC-e5e5b94cbe6076f74d5ad2358d020f7d4f7ac18f.tar.bz2
opensim-SC-e5e5b94cbe6076f74d5ad2358d020f7d4f7ac18f.tar.xz
Make llSetKeyframedMotion prims waut at the borders of down sims and try again
periodically.
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs6
-rw-r--r--OpenSim/Region/Framework/Scenes/KeyframeMotion.cs12
2 files changed, 18 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index 2498705..60a8f86 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -1746,6 +1746,12 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
1746 if (grp.RootPart.PhysActor != null) 1746 if (grp.RootPart.PhysActor != null)
1747 { 1747 {
1748 grp.RootPart.PhysActor.CrossingFailure(); 1748 grp.RootPart.PhysActor.CrossingFailure();
1749 if (grp.RootPart.KeyframeMotion != null)
1750 {
1751 grp.RootPart.Velocity = Vector3.Zero;
1752 grp.RootPart.KeyframeMotion.CrossingFailure();
1753 grp.SendGroupRootTerseUpdate();
1754 }
1749 } 1755 }
1750 } 1756 }
1751 1757
diff --git a/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs b/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs
index bf18f4d..b7b0d27 100644
--- a/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs
+++ b/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs
@@ -406,5 +406,17 @@ namespace OpenSim.Region.Framework.Scenes
406 m_group = tmp; 406 m_group = tmp;
407 return ms.ToArray(); 407 return ms.ToArray();
408 } 408 }
409
410 public void CrossingFailure()
411 {
412 // The serialization has stopped the timer, so let's wait a moment
413 // then retry the crossing. We'll get back here if it fails.
414 Util.FireAndForget(delegate (object x)
415 {
416 Thread.Sleep(60000);
417 if (m_running)
418 m_timer.Start();
419 });
420 }
409 } 421 }
410} 422}