mirror of
https://github.com/opensim/opensim.git
synced 2026-08-06 01:06:30 +08:00
Revert "start sending terrain in scenePresence after well defined avatar. Minor"
This reverts commit 05a2feba5d.
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// This checks the update significance against the last update made.
|
||||
/// </summary>
|
||||
@@ -5762,18 +5755,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||
/// <param name='x'></param>
|
||||
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<IClientAPI> handlerRegionHandShakeReply = OnRegionHandShakeReply;
|
||||
if (handlerRegionHandShakeReply != null)
|
||||
{
|
||||
// Thread.Sleep(500);
|
||||
Thread.Sleep(500);
|
||||
handlerRegionHandShakeReply(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -1750,10 +1750,25 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||
endPoint,
|
||||
sessionInfo);
|
||||
|
||||
// Now we know we can handle more data
|
||||
// Thread.Sleep(200);
|
||||
// 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();
|
||||
}
|
||||
|
||||
// Obtain the pending queue and remove it from the cache
|
||||
// Now we know we can handle more data
|
||||
Thread.Sleep(200);
|
||||
|
||||
// Obtain the queue and remove it from the cache
|
||||
Queue<UDPPacketBuffer> 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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user