From 3d81f25e34cd7d536ad0e36242703ac1bc56038d Mon Sep 17 00:00:00 2001
From: UbitUmarov
Date: Mon, 4 Aug 2014 20:32:11 +0100
Subject: Revert "start sending terrain in scenePresence after well defined
avatar. Minor"
This reverts commit 05a2feba5d780c57c252891a20071800fd9f2e3e.
---
.../Region/ClientStack/Linden/UDP/LLClientView.cs | 28 +++++-------------
.../Region/ClientStack/Linden/UDP/LLUDPServer.cs | 34 +++++++++++-----------
2 files changed, 25 insertions(+), 37 deletions(-)
(limited to 'OpenSim/Region/ClientStack')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 7d61577..34a2797 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -577,10 +577,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// Fire the callback for this connection closing
if (OnConnectionClosed != null)
- {
OnConnectionClosed(this);
- }
-
// Flush all of the packets out of the UDP server for this client
if (m_udpServer != null)
@@ -5521,7 +5518,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
AddLocalPacketHandler(PacketType.DeRezObject, HandlerDeRezObject);
AddLocalPacketHandler(PacketType.ModifyLand, HandlerModifyLand);
- AddLocalPacketHandler(PacketType.RegionHandshakeReply, HandlerRegionHandshakeReply, false);
+// AddLocalPacketHandler(PacketType.RegionHandshakeReply, HandlerRegionHandshakeReply, false);
+ AddLocalPacketHandler(PacketType.RegionHandshakeReply, HandlerRegionHandshakeReply, true);
AddLocalPacketHandler(PacketType.AgentWearablesRequest, HandlerAgentWearablesRequest);
AddLocalPacketHandler(PacketType.AgentSetAppearance, HandlerAgentSetAppearance);
@@ -5734,15 +5732,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
#region Scene/Avatar
// Threshold for body rotation to be a significant agent update
- // private const float QDELTA = 0.000001f;
- // QDELTA is now relative to abs of cos of angle between orientations
-
- private const float QDELTABODY = 1 - 0.0001f;
- private const float QDELTAHEAD = 1 - 0.0001f;
-
+ private const float QDELTA = 0.000001f;
// Threshold for camera rotation to be a significant agent update
private const float VDELTA = 0.01f;
-
+
///
/// This checks the update significance against the last update made.
///
@@ -5762,18 +5755,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
///
private bool CheckAgentMovementUpdateSignificance(AgentUpdatePacket.AgentDataBlock x)
{
- // float qdelta1 = 1 - (float)Math.Pow(Quaternion.Dot(x.BodyRotation, m_thisAgentUpdateArgs.BodyRotation), 2);
+ float qdelta1 = 1 - (float)Math.Pow(Quaternion.Dot(x.BodyRotation, m_thisAgentUpdateArgs.BodyRotation), 2);
//qdelta2 = 1 - (float)Math.Pow(Quaternion.Dot(x.HeadRotation, m_thisAgentUpdateArgs.HeadRotation), 2);
- // now using abs of cos
- float qdelta1 = (float)Math.Abs(Quaternion.Dot(x.BodyRotation, m_thisAgentUpdateArgs.BodyRotation));
- float qdelta2 = (float)Math.Abs(Quaternion.Dot(x.HeadRotation, m_thisAgentUpdateArgs.HeadRotation));
bool movementSignificant =
-// (qdelta1 > QDELTA) // significant if body rotation above threshold
- (qdelta1 < QDELTABODY) // higher angle lower cos
-// Ignoring head rotation altogether, because it's not being used for anything interesting up the stack
+ (qdelta1 > QDELTA) // significant if body rotation above threshold
+ // Ignoring head rotation altogether, because it's not being used for anything interesting up the stack
// || (qdelta2 > QDELTA * 10) // significant if head rotation above threshold
- || (qdelta2 < QDELTAHEAD) // using cos above
|| (x.ControlFlags != m_thisAgentUpdateArgs.ControlFlags) // significant if control flags changed
|| (x.ControlFlags != (byte)AgentManager.ControlFlags.NONE) // significant if user supplying any movement update commands
|| (x.Far != m_thisAgentUpdateArgs.Far) // significant if far distance changed
@@ -6488,7 +6476,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
Action handlerRegionHandShakeReply = OnRegionHandShakeReply;
if (handlerRegionHandShakeReply != null)
{
-// Thread.Sleep(500);
+ Thread.Sleep(500);
handlerRegionHandShakeReply(this);
}
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
index a3fdae1..b7c8594 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
@@ -1750,10 +1750,25 @@ namespace OpenSim.Region.ClientStack.LindenUDP
endPoint,
sessionInfo);
+ // Send ack straight away to let the viewer know that the connection is active.
+ // The client will be null if it already exists (e.g. if on a region crossing the client sends a use
+ // circuit code to the existing child agent. This is not particularly obvious.
+ SendAckImmediate(endPoint, uccp.Header.Sequence);
+
+ // We only want to send initial data to new clients, not ones which are being converted from child to root.
+ if (client != null)
+ {
+ AgentCircuitData aCircuit = m_scene.AuthenticateHandler.GetAgentCircuitData(uccp.CircuitCode.Code);
+ bool tp = (aCircuit.teleportFlags > 0);
+ // Let's delay this for TP agents, otherwise the viewer doesn't know where to get resources from
+ if (!tp)
+ client.SceneAgent.SendInitialDataToMe();
+ }
+
// Now we know we can handle more data
-// Thread.Sleep(200);
+ Thread.Sleep(200);
- // Obtain the pending queue and remove it from the cache
+ // Obtain the queue and remove it from the cache
Queue queue = null;
lock (m_pendingCache)
@@ -1775,21 +1790,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
PacketReceived(buf);
}
queue = null;
-
- // Send ack straight away to let the viewer know that the connection is active.
- // The client will be null if it already exists (e.g. if on a region crossing the client sends a use
- // circuit code to the existing child agent. This is not particularly obvious.
- SendAckImmediate(endPoint, uccp.Header.Sequence);
-
- // We only want to send initial data to new clients, not ones which are being converted from child to root.
- if (client != null)
- {
- AgentCircuitData aCircuit = m_scene.AuthenticateHandler.GetAgentCircuitData(uccp.CircuitCode.Code);
- bool tp = (aCircuit.teleportFlags > 0);
- // Let's delay this for TP agents, otherwise the viewer doesn't know where to get resources from
- if (!tp)
- client.SceneAgent.SendInitialDataToMe();
- }
}
else
{
--
cgit v1.1