diff options
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index f580e5a..78043bd 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -4221,26 +4221,22 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4221 | 4221 | ||
4222 | if (!canUseImproved && !canUseCompressed) | 4222 | if (!canUseImproved && !canUseCompressed) |
4223 | { | 4223 | { |
4224 | ObjectUpdatePacket.ObjectDataBlock ablock; | ||
4224 | if (update.Entity is ScenePresence) | 4225 | if (update.Entity is ScenePresence) |
4225 | { | 4226 | ablock = CreateAvatarUpdateBlock((ScenePresence)update.Entity); |
4226 | ObjectUpdatePacket.ObjectDataBlock ablock = | ||
4227 | CreateAvatarUpdateBlock((ScenePresence)update.Entity); | ||
4228 | objectUpdateBlocks.Value.Add(ablock); | ||
4229 | maxUpdatesBytes -= ablock.Length; | ||
4230 | } | ||
4231 | else | 4227 | else |
4232 | { | 4228 | ablock = CreatePrimUpdateBlock((SceneObjectPart)update.Entity, this.m_agentId); |
4233 | ObjectUpdatePacket.ObjectDataBlock ablock = | 4229 | objectUpdateBlocks.Value.Add(ablock); |
4234 | CreatePrimUpdateBlock((SceneObjectPart)update.Entity, this.m_agentId); | 4230 | objectUpdates.Value.Add(update); |
4235 | objectUpdateBlocks.Value.Add(ablock); | 4231 | maxUpdatesBytes -= ablock.Length; |
4236 | maxUpdatesBytes -= ablock.Length; | 4232 | |
4237 | } | ||
4238 | } | 4233 | } |
4239 | else if (!canUseImproved) | 4234 | else if (!canUseImproved) |
4240 | { | 4235 | { |
4241 | ObjectUpdateCompressedPacket.ObjectDataBlock ablock = | 4236 | ObjectUpdateCompressedPacket.ObjectDataBlock ablock = |
4242 | CreateCompressedUpdateBlock((SceneObjectPart)update.Entity, updateFlags); | 4237 | CreateCompressedUpdateBlock((SceneObjectPart)update.Entity, updateFlags); |
4243 | compressedUpdateBlocks.Value.Add(ablock); | 4238 | compressedUpdateBlocks.Value.Add(ablock); |
4239 | compressedUpdates.Value.Add(update); | ||
4244 | maxUpdatesBytes -= ablock.Length; | 4240 | maxUpdatesBytes -= ablock.Length; |
4245 | } | 4241 | } |
4246 | else | 4242 | else |
@@ -4251,6 +4247,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4251 | ImprovedTerseObjectUpdatePacket.ObjectDataBlock ablock = | 4247 | ImprovedTerseObjectUpdatePacket.ObjectDataBlock ablock = |
4252 | CreateImprovedTerseBlock(update.Entity, updateFlags.HasFlag(PrimUpdateFlags.Textures)); | 4248 | CreateImprovedTerseBlock(update.Entity, updateFlags.HasFlag(PrimUpdateFlags.Textures)); |
4253 | terseAgentUpdateBlocks.Value.Add(ablock); | 4249 | terseAgentUpdateBlocks.Value.Add(ablock); |
4250 | terseAgentUpdates.Value.Add(update); | ||
4254 | maxUpdatesBytes -= ablock.Length; | 4251 | maxUpdatesBytes -= ablock.Length; |
4255 | } | 4252 | } |
4256 | else | 4253 | else |
@@ -4259,6 +4256,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4259 | ImprovedTerseObjectUpdatePacket.ObjectDataBlock ablock = | 4256 | ImprovedTerseObjectUpdatePacket.ObjectDataBlock ablock = |
4260 | CreateImprovedTerseBlock(update.Entity, updateFlags.HasFlag(PrimUpdateFlags.Textures)); | 4257 | CreateImprovedTerseBlock(update.Entity, updateFlags.HasFlag(PrimUpdateFlags.Textures)); |
4261 | terseUpdateBlocks.Value.Add(ablock); | 4258 | terseUpdateBlocks.Value.Add(ablock); |
4259 | terseUpdates.Value.Add(update); | ||
4262 | maxUpdatesBytes -= ablock.Length; | 4260 | maxUpdatesBytes -= ablock.Length; |
4263 | } | 4261 | } |
4264 | } | 4262 | } |
@@ -4290,7 +4288,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4290 | for (int i = 0; i < blocks.Count; i++) | 4288 | for (int i = 0; i < blocks.Count; i++) |
4291 | packet.ObjectData[i] = blocks[i]; | 4289 | packet.ObjectData[i] = blocks[i]; |
4292 | 4290 | ||
4293 | OutPacket(packet, ThrottleOutPacketType.Unknown, true, delegate(OutgoingPacket oPacket) { ResendPrimUpdates(terseUpdates.Value, oPacket); }); | 4291 | OutPacket(packet, ThrottleOutPacketType.Unknown, true, delegate(OutgoingPacket oPacket) { ResendPrimUpdates(terseAgentUpdates.Value, oPacket); }); |
4294 | } | 4292 | } |
4295 | 4293 | ||
4296 | if (objectUpdateBlocks.IsValueCreated) | 4294 | if (objectUpdateBlocks.IsValueCreated) |
@@ -4305,7 +4303,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4305 | for (int i = 0; i < blocks.Count; i++) | 4303 | for (int i = 0; i < blocks.Count; i++) |
4306 | packet.ObjectData[i] = blocks[i]; | 4304 | packet.ObjectData[i] = blocks[i]; |
4307 | 4305 | ||
4308 | OutPacket(packet, ThrottleOutPacketType.Task, true); | 4306 | OutPacket(packet, ThrottleOutPacketType.Task, true, delegate(OutgoingPacket oPacket) { ResendPrimUpdates(objectUpdates.Value, oPacket); }); |
4309 | } | 4307 | } |
4310 | 4308 | ||
4311 | if (compressedUpdateBlocks.IsValueCreated) | 4309 | if (compressedUpdateBlocks.IsValueCreated) |
@@ -4320,7 +4318,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4320 | for (int i = 0; i < blocks.Count; i++) | 4318 | for (int i = 0; i < blocks.Count; i++) |
4321 | packet.ObjectData[i] = blocks[i]; | 4319 | packet.ObjectData[i] = blocks[i]; |
4322 | 4320 | ||
4323 | OutPacket(packet, ThrottleOutPacketType.Task, true); | 4321 | OutPacket(packet, ThrottleOutPacketType.Task, true, delegate(OutgoingPacket oPacket) { ResendPrimUpdates(compressedUpdates.Value, oPacket); }); |
4324 | } | 4322 | } |
4325 | 4323 | ||
4326 | if (terseUpdateBlocks.IsValueCreated) | 4324 | if (terseUpdateBlocks.IsValueCreated) |