From 25a998feb41057f5ad8a6190eae8f14426db1aa8 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Sun, 28 Sep 2008 02:57:53 +0000 Subject: * okay.. Now you can do border crossings with the security 'fixed' client.. with EventQueue enabled. * You occasionally loose the event queue if you cross back and forth between the same regions many multiples of times. * But Don't try to teleport! --- OpenSim/Region/Environment/Scenes/ScenePresence.cs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Environment/Scenes') diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index 7428612..02859cd 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs @@ -37,7 +37,9 @@ using OpenSim.Framework; using OpenSim.Framework.Communications.Cache; using OpenSim.Region.Environment.Interfaces; using OpenSim.Region.Environment.Types; +using OpenSim.Region.Interfaces; using OpenSim.Region.Physics.Manager; +using LLSD = OpenMetaverse.StructuredData.LLSD; namespace OpenSim.Region.Environment.Scenes @@ -2018,8 +2020,22 @@ namespace OpenSim.Region.Environment.Scenes m_log.DebugFormat( "[CAPS]: Sending new CAPS seed url {0} to client {1}", capsPath, m_uuid); - m_controllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.ExternalEndPoint, + IEventQueue eq = m_scene.RequestModuleInterface(); + if (eq != null) + { + + LLSD Item = EventQueueHelper.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.ExternalEndPoint, + capsPath, UUID, ControllingClient.SessionId); + eq.Enqueue(Item, UUID); + } + else + { + m_controllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.ExternalEndPoint, capsPath); + } + + + MakeChildAgent(); // now we have a child agent in this region. Request all interesting data about other (root) agents SendInitialFullUpdateToAllClients(); -- cgit v1.1