Second take at HGTP-mesh bug: delay sending the initial data only for agents that are coming via TP (root agents)

user_profiles
Diva Canto 2013-05-14 09:06:58 -07:00
parent 645da54f25
commit 91091c3e54
2 changed files with 8 additions and 1 deletions

View File

@ -1373,7 +1373,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// We only want to send initial data to new clients, not ones which are being converted from child to root. // We only want to send initial data to new clients, not ones which are being converted from child to root.
if (client != null) if (client != null)
client.SceneAgent.SendInitialDataToMe(); {
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 meshes from
if (!tp)
client.SceneAgent.SendInitialDataToMe();
}
} }
else else
{ {

View File

@ -1348,6 +1348,7 @@ namespace OpenSim.Region.Framework.Scenes
// Create child agents in neighbouring regions // Create child agents in neighbouring regions
if (openChildAgents && !IsChildAgent) if (openChildAgents && !IsChildAgent)
{ {
SendInitialDataToMe();
IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>(); IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
if (m_agentTransfer != null) if (m_agentTransfer != null)
Util.FireAndForget(delegate { m_agentTransfer.EnableChildAgents(this); }); Util.FireAndForget(delegate { m_agentTransfer.EnableChildAgents(this); });