diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/ScenePresence.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 86 |
1 files changed, 39 insertions, 47 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 8fae032..5acd51e 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -1823,12 +1823,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
1823 | Scene.SimulationService.ReleaseAgent(originID, UUID, m_callbackURI); | 1823 | Scene.SimulationService.ReleaseAgent(originID, UUID, m_callbackURI); |
1824 | m_callbackURI = null; | 1824 | m_callbackURI = null; |
1825 | } | 1825 | } |
1826 | // else | 1826 | // else |
1827 | // { | 1827 | // { |
1828 | // m_log.DebugFormat( | 1828 | // m_log.DebugFormat( |
1829 | // "[SCENE PRESENCE]: No callback provided on CompleteMovement of {0} {1} to {2}", | 1829 | // "[SCENE PRESENCE]: No callback provided on CompleteMovement of {0} {1} to {2}", |
1830 | // client.Name, client.AgentId, m_scene.RegionInfo.RegionName); | 1830 | // client.Name, client.AgentId, m_scene.RegionInfo.RegionName); |
1831 | // } | 1831 | // } |
1832 | 1832 | ||
1833 | m_previusParcelHide = false; | 1833 | m_previusParcelHide = false; |
1834 | m_previusParcelUUID = UUID.Zero; | 1834 | m_previusParcelUUID = UUID.Zero; |
@@ -1838,59 +1838,51 @@ namespace OpenSim.Region.Framework.Scenes | |||
1838 | // send initial land overlay and parcel | 1838 | // send initial land overlay and parcel |
1839 | ILandChannel landch = m_scene.LandChannel; | 1839 | ILandChannel landch = m_scene.LandChannel; |
1840 | if (landch != null) | 1840 | if (landch != null) |
1841 | { | ||
1842 | landch.sendClientInitialLandInfo(client); | 1841 | landch.sendClientInitialLandInfo(client); |
1843 | if (!IsChildAgent) | ||
1844 | { | ||
1845 | newhide = m_currentParcelHide; | ||
1846 | m_currentParcelHide = false; | ||
1847 | } | ||
1848 | } | ||
1849 | |||
1850 | // send agentData to all clients including us (?) | ||
1851 | // get appearance | ||
1852 | // if in cache sent it to all clients | ||
1853 | // send what we have to us, even if not in cache ( bad? ) | ||
1854 | ValidateAndSendAppearanceAndAgentData(); | ||
1855 | 1842 | ||
1856 | // attachments | 1843 | if (!IsChildAgent) |
1857 | if (isNPC || (TeleportFlags & TeleportFlags.ViaLogin) != 0) | ||
1858 | { | 1844 | { |
1859 | if (Scene.AttachmentsModule != null) | 1845 | newhide = m_currentParcelHide; |
1846 | m_currentParcelHide = false; | ||
1847 | |||
1848 | ValidateAndSendAppearanceAndAgentData(); | ||
1849 | |||
1850 | // attachments | ||
1851 | if (isNPC || (TeleportFlags & TeleportFlags.ViaLogin) != 0) | ||
1852 | { | ||
1853 | if (Scene.AttachmentsModule != null) | ||
1860 | // Util.FireAndForget( | 1854 | // Util.FireAndForget( |
1861 | // o => | 1855 | // o => |
1862 | // { | 1856 | // { |
1863 | Scene.AttachmentsModule.RezAttachments(this); | 1857 | Scene.AttachmentsModule.RezAttachments(this); |
1864 | // }); | 1858 | // }); |
1865 | } | 1859 | } |
1866 | else | 1860 | else |
1867 | { | ||
1868 | List<SceneObjectGroup> attachments = GetAttachments(); | ||
1869 | |||
1870 | if (attachments.Count > 0) | ||
1871 | { | 1861 | { |
1872 | m_log.DebugFormat( | 1862 | List<SceneObjectGroup> attachments = GetAttachments(); |
1873 | "[SCENE PRESENCE]: Restarting scripts in attachments for {0} in {1}", Name, Scene.Name); | ||
1874 | 1863 | ||
1875 | // Resume scripts this possible should also be moved down after sending the avatar to viewer ? | 1864 | if (attachments.Count > 0) |
1876 | foreach (SceneObjectGroup sog in attachments) | ||
1877 | { | 1865 | { |
1878 | sog.ScheduleGroupForFullUpdate(); | 1866 | m_log.DebugFormat( |
1879 | sog.RootPart.ParentGroup.CreateScriptInstances(0, false, m_scene.DefaultScriptEngine, GetStateSource()); | 1867 | "[SCENE PRESENCE]: Restarting scripts in attachments for {0} in {1}", Name, Scene.Name); |
1880 | sog.ResumeScripts(); | 1868 | |
1869 | // Resume scripts this possible should also be moved down after sending the avatar to viewer ? | ||
1870 | foreach (SceneObjectGroup sog in attachments) | ||
1871 | { | ||
1872 | sog.ScheduleGroupForFullUpdate(); | ||
1873 | sog.RootPart.ParentGroup.CreateScriptInstances(0, false, m_scene.DefaultScriptEngine, GetStateSource()); | ||
1874 | sog.ResumeScripts(); | ||
1875 | } | ||
1881 | } | 1876 | } |
1882 | } | 1877 | } |
1883 | } | ||
1884 | // m_log.DebugFormat( | ||
1885 | // "[SCENE PRESENCE]: Completing movement of {0} into region {1} took {2}ms", | ||
1886 | // client.Name, Scene.RegionInfo.RegionName, (DateTime.Now - startTime).Milliseconds); | ||
1887 | 1878 | ||
1888 | // Create child agents in neighbouring regions | 1879 | // Create child agents in neighbouring regions |
1889 | if (openChildAgents && !IsChildAgent) | 1880 | if (openChildAgents) |
1890 | { | 1881 | { |
1891 | IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>(); | 1882 | IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>(); |
1892 | if (m_agentTransfer != null) | 1883 | if (m_agentTransfer != null) |
1893 | m_agentTransfer.EnableChildAgents(this); | 1884 | m_agentTransfer.EnableChildAgents(this); |
1885 | } | ||
1894 | } | 1886 | } |
1895 | 1887 | ||
1896 | // send the rest of the world | 1888 | // send the rest of the world |