diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs b/OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs index 58c4e04..3b21c85 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs | |||
@@ -230,12 +230,24 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
230 | else if (!process.data.J2KDecodeWaiting) | 230 | else if (!process.data.J2KDecodeWaiting) |
231 | { | 231 | { |
232 | // Send more data at a time for higher discard levels | 232 | // Send more data at a time for higher discard levels |
233 | for (int i = 0; i < (2*(5 - process.data.DiscardLevel) + 1)*2; i++) | 233 | bool done = false; |
234 | for (int i = 0; i < (2*(process.data.DiscardLevel) + 1)*2; i++) | ||
234 | if (!process.data.SendPacket(m_client)) | 235 | if (!process.data.SendPacket(m_client)) |
235 | { | 236 | { |
237 | done = true; | ||
236 | pq[h] -= (500000*i); | 238 | pq[h] -= (500000*i); |
237 | break; | 239 | break; |
238 | } | 240 | } |
241 | if (!done) | ||
242 | { | ||
243 | for (int i = 0; i < (2 * (5- process.data.DiscardLevel) + 1) * 2; i++) | ||
244 | if (!process.data.SendPacket(m_client)) | ||
245 | { | ||
246 | done = true; | ||
247 | pq[h] -= (500000 * i); | ||
248 | break; | ||
249 | } | ||
250 | } | ||
239 | } | 251 | } |
240 | // If the priority is less then -4 billion, the client has forgotten about it, pop it off | 252 | // If the priority is less then -4 billion, the client has forgotten about it, pop it off |
241 | if (pq[h] < -400000000) | 253 | if (pq[h] < -400000000) |