diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/KeyframeMotion.cs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs b/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs index a3ebe6f..e3f979f 100644 --- a/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs +++ b/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs | |||
@@ -785,6 +785,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
785 | 785 | ||
786 | public Byte[] Serialize() | 786 | public Byte[] Serialize() |
787 | { | 787 | { |
788 | bool timerWasStopped; | ||
789 | lock (m_frames) | ||
790 | { | ||
791 | timerWasStopped = m_timerStopped; | ||
792 | } | ||
788 | StopTimer(); | 793 | StopTimer(); |
789 | MemoryStream ms = new MemoryStream(); | 794 | MemoryStream ms = new MemoryStream(); |
790 | 795 | ||
@@ -795,7 +800,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
795 | m_serializedPosition = tmp.AbsolutePosition; | 800 | m_serializedPosition = tmp.AbsolutePosition; |
796 | fmt.Serialize(ms, this); | 801 | fmt.Serialize(ms, this); |
797 | m_group = tmp; | 802 | m_group = tmp; |
798 | if (m_running && !m_waitingCrossing) | 803 | if (!timerWasStopped && m_running && !m_waitingCrossing) |
799 | StartTimer(); | 804 | StartTimer(); |
800 | 805 | ||
801 | return ms.ToArray(); | 806 | return ms.ToArray(); |