* Enabled dead region tracking for ChildAgentDataUpdates

** If the region fails 3 times, then ChildAgentDataUpdates no longer get sent to that region
* Enabled Child_Get_Tasks in grid mode.   
* When Child_Get_Tasks is enabled on neighbor regions, the neighbor region uses the client's draw distance to send out prim.   This is a lot less likely to flood the client now since the ChildAgentDataUpdate contains both the throttle settings and the draw distance.   This means that with this enabled, you can see prim in other regions in grid mode.   Very experimental.
This commit is contained in:
Teravus Ovares
2008-01-22 08:52:51 +00:00
parent 7d61705c3c
commit 5cf96daaf2
11 changed files with 278 additions and 114 deletions

View File

@@ -641,7 +641,8 @@ namespace OpenSim.Region.ClientStack
}
mov.Data.LookAt = look;
OutPacket(mov, ThrottleOutPacketType.Task);
// Hack to get this out immediately and skip the throttles
OutPacket(mov, ThrottleOutPacketType.Unknown);
}
/// <summary>
@@ -824,7 +825,8 @@ namespace OpenSim.Region.ClientStack
newSimPack.RegionData.SimPort = (ushort)externalIPEndPoint.Port;
newSimPack.RegionData.SeedCapability = Helpers.StringToField(capsURL);
OutPacket(newSimPack, ThrottleOutPacketType.Task);
// Hack to get this out immediately and skip throttles
OutPacket(newSimPack, ThrottleOutPacketType.Unknown);
}
public void SendMapBlock(List<MapBlockData> mapBlocks)
@@ -858,7 +860,9 @@ namespace OpenSim.Region.ClientStack
tpLocal.Info.LocationID = 2;
tpLocal.Info.LookAt = lookAt;
tpLocal.Info.Position = position;
OutPacket(tpLocal, ThrottleOutPacketType.Task);
// Hack to get this out immediately and skip throttles
OutPacket(tpLocal, ThrottleOutPacketType.Unknown);
}
public void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint newRegionEndPoint, uint locationID,
@@ -884,7 +888,9 @@ namespace OpenSim.Region.ClientStack
teleport.Info.SimPort = (ushort)newRegionEndPoint.Port;
teleport.Info.LocationID = 4;
teleport.Info.TeleportFlags = 1 << 4;
OutPacket(teleport, ThrottleOutPacketType.Task);
// Hack to get this out immediately and skip throttles.
OutPacket(teleport, ThrottleOutPacketType.Unknown);
}
/// <summary>
@@ -895,7 +901,9 @@ namespace OpenSim.Region.ClientStack
TeleportFailedPacket tpFailed = (TeleportFailedPacket)PacketPool.Instance.GetPacket(PacketType.TeleportFailed);
tpFailed.Info.AgentID = AgentId;
tpFailed.Info.Reason = Helpers.StringToField(reason);
OutPacket(tpFailed, ThrottleOutPacketType.Task);
// Hack to get this out immediately and skip throttles
OutPacket(tpFailed, ThrottleOutPacketType.Unknown);
}
/// <summary>
@@ -906,7 +914,9 @@ namespace OpenSim.Region.ClientStack
//TeleportStartPacket tpStart = (TeleportStartPacket)PacketPool.Instance.GetPacket(PacketType.TeleportStart);
TeleportStartPacket tpStart = new TeleportStartPacket();
tpStart.Info.TeleportFlags = 16; // Teleport via location
OutPacket(tpStart, ThrottleOutPacketType.Task);
// Hack to get this out immediately and skip throttles
OutPacket(tpStart, ThrottleOutPacketType.Unknown);
}
public void SendMoneyBalance(LLUUID transaction, bool success, byte[] description, int balance)
@@ -1882,7 +1892,7 @@ namespace OpenSim.Region.ClientStack
objectData.PathTwistBegin = primData.PathTwistBegin;
objectData.ExtraParams = primData.ExtraParams;
}
/// <summary>
/// Set some default values in a ObjectUpdatePacket
/// </summary>
@@ -2222,6 +2232,11 @@ namespace OpenSim.Region.ClientStack
*/
}
public byte[] GetThrottlesPacked(float multiplier)
{
return m_packetQueue.GetThrottlesPacked(multiplier);
}
public void SetChildAgentThrottle(byte[] throttles)
{
m_packetQueue.SetThrottleFromClient(throttles);