From 8de395d379ba3278b2160b66dd8da7f973a2cf10 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Fri, 3 Oct 2008 09:53:49 +0000 Subject: * EventQueueGet is now working. * Switched it on by default * Updated OpenSim.ini.example to reflect this * Caught a UDP Server issue that occurs when the network pipe is saturated * Still experimental :D --- .../Environment/Scenes/SceneCommunicationService.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs') diff --git a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs index 3f3a68d..c33c777 100644 --- a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs @@ -608,6 +608,8 @@ namespace OpenSim.Region.Environment.Scenes { bool destRegionUp = false; + IEventQueue eq = avatar.Scene.RequestModuleInterface(); + if (regionHandle == m_regionInfo.RegionHandle) { // Teleport within the same region @@ -628,7 +630,12 @@ namespace OpenSim.Region.Environment.Scenes { position.Z = newPosZ; } - avatar.ControllingClient.SendTeleportLocationStart(); + + // Only send this if the event queue is null + if (eq == null) + avatar.ControllingClient.SendTeleportLocationStart(); + + avatar.ControllingClient.SendLocalTeleport(position, lookAt, teleportFlags); avatar.Teleport(position); } @@ -637,7 +644,9 @@ namespace OpenSim.Region.Environment.Scenes RegionInfo reg = RequestNeighbouringRegionInfo(regionHandle); if (reg != null) { - avatar.ControllingClient.SendTeleportLocationStart(); + if (eq == null) + avatar.ControllingClient.SendTeleportLocationStart(); + AgentCircuitData agent = avatar.ControllingClient.RequestClientInfo(); agent.BaseFolder = UUID.Zero; agent.InventoryFolder = UUID.Zero; @@ -687,7 +696,7 @@ namespace OpenSim.Region.Environment.Scenes m_log.DebugFormat( "[CAPS]: Sending new CAPS seed url {0} to client {1}", capsPath, avatar.UUID); - IEventQueue eq = avatar.Scene.RequestModuleInterface(); + if (eq != null) { LLSD Item = EventQueueHelper.TeleportFinishEvent(reg.RegionHandle, 13, reg.ExternalEndPoint, -- cgit v1.1