diff options
author | Melanie Thielker | 2008-09-09 03:48:09 +0000 |
---|---|---|
committer | Melanie Thielker | 2008-09-09 03:48:09 +0000 |
commit | 3ee91cb3c6d55c67d63c77db0c3cc4febf56eaff (patch) | |
tree | d0ce2c48857354ccf7f7bdfd2352cf1b16f1a1a4 | |
parent | Update svn properties, formatting cleanup. (diff) | |
download | opensim-SC-3ee91cb3c6d55c67d63c77db0c3cc4febf56eaff.zip opensim-SC-3ee91cb3c6d55c67d63c77db0c3cc4febf56eaff.tar.gz opensim-SC-3ee91cb3c6d55c67d63c77db0c3cc4febf56eaff.tar.bz2 opensim-SC-3ee91cb3c6d55c67d63c77db0c3cc4febf56eaff.tar.xz |
Preserve link numbers when items are taken into inventory and re-rezzed.
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index c049e86..1b2ea8e 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -357,13 +357,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
357 | xmlData = xmlData.Replace("</Guid></Guid>", "</Guid></UUID>"); | 357 | xmlData = xmlData.Replace("</Guid></Guid>", "</Guid></UUID>"); |
358 | StringReader sr = new StringReader(xmlData); | 358 | StringReader sr = new StringReader(xmlData); |
359 | XmlTextReader reader = new XmlTextReader(sr); | 359 | XmlTextReader reader = new XmlTextReader(sr); |
360 | |||
360 | try | 361 | try |
361 | { | 362 | { |
362 | reader.Read(); | 363 | reader.Read(); |
363 | reader.ReadStartElement("SceneObjectGroup"); | 364 | reader.ReadStartElement("SceneObjectGroup"); |
364 | reader.ReadStartElement("RootPart"); | 365 | reader.ReadStartElement("RootPart"); |
365 | m_rootPart = SceneObjectPart.FromXml(reader); | 366 | m_rootPart = SceneObjectPart.FromXml(reader); |
367 | int linkNum = m_rootPart.LinkNum; | ||
366 | AddPart(m_rootPart); | 368 | AddPart(m_rootPart); |
369 | m_rootPart.LinkNum = linkNum; | ||
367 | 370 | ||
368 | reader.ReadEndElement(); | 371 | reader.ReadEndElement(); |
369 | 372 | ||
@@ -377,7 +380,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
377 | reader.Read(); | 380 | reader.Read(); |
378 | SceneObjectPart part = SceneObjectPart.FromXml(reader); | 381 | SceneObjectPart part = SceneObjectPart.FromXml(reader); |
379 | part.LocalId = m_scene.PrimIDAllocate(); | 382 | part.LocalId = m_scene.PrimIDAllocate(); |
383 | linkNum = part.LinkNum; | ||
380 | AddPart(part); | 384 | AddPart(part); |
385 | part.LinkNum = linkNum; | ||
381 | part.RegionHandle = m_regionHandle; | 386 | part.RegionHandle = m_regionHandle; |
382 | 387 | ||
383 | part.TrimPermissions(); | 388 | part.TrimPermissions(); |
@@ -1459,7 +1464,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1459 | m_parts.Clear(); | 1464 | m_parts.Clear(); |
1460 | foreach (SceneObjectPart part in partsList) | 1465 | foreach (SceneObjectPart part in partsList) |
1461 | { | 1466 | { |
1462 | part.ResetIDs(m_parts.Count); | 1467 | part.ResetIDs(part.LinkNum); // Don't change link nums |
1463 | m_parts.Add(part.UUID, part); | 1468 | m_parts.Add(part.UUID, part); |
1464 | } | 1469 | } |
1465 | } | 1470 | } |