diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 61 |
1 files changed, 39 insertions, 22 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 4860da0..363ee54 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -460,6 +460,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
460 | } | 460 | } |
461 | 461 | ||
462 | public bool SendLogoutPacketWhenClosing { set { m_SendLogoutPacketWhenClosing = value; } } | 462 | public bool SendLogoutPacketWhenClosing { set { m_SendLogoutPacketWhenClosing = value; } } |
463 | |||
463 | 464 | ||
464 | #endregion Properties | 465 | #endregion Properties |
465 | 466 | ||
@@ -585,6 +586,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
585 | // Disable UDP handling for this client | 586 | // Disable UDP handling for this client |
586 | m_udpClient.Shutdown(); | 587 | m_udpClient.Shutdown(); |
587 | 588 | ||
589 | |||
588 | //m_log.InfoFormat("[CLIENTVIEW] Memory pre GC {0}", System.GC.GetTotalMemory(false)); | 590 | //m_log.InfoFormat("[CLIENTVIEW] Memory pre GC {0}", System.GC.GetTotalMemory(false)); |
589 | //GC.Collect(); | 591 | //GC.Collect(); |
590 | //m_log.InfoFormat("[CLIENTVIEW] Memory post GC {0}", System.GC.GetTotalMemory(true)); | 592 | //m_log.InfoFormat("[CLIENTVIEW] Memory post GC {0}", System.GC.GetTotalMemory(true)); |
@@ -2750,8 +2752,21 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2750 | req.AssetInf.ID, req.AssetInf.Metadata.ContentType); | 2752 | req.AssetInf.ID, req.AssetInf.Metadata.ContentType); |
2751 | return; | 2753 | return; |
2752 | } | 2754 | } |
2755 | int WearableOut = 0; | ||
2756 | bool isWearable = false; | ||
2757 | |||
2758 | if (req.AssetInf != null) | ||
2759 | isWearable = | ||
2760 | ((AssetType) req.AssetInf.Type == | ||
2761 | AssetType.Bodypart || (AssetType) req.AssetInf.Type == AssetType.Clothing); | ||
2753 | 2762 | ||
2754 | //m_log.Debug("sending asset " + req.RequestAssetID); | 2763 | |
2764 | //m_log.Debug("sending asset " + req.RequestAssetID + ", iswearable: " + isWearable); | ||
2765 | |||
2766 | |||
2767 | //if (isWearable) | ||
2768 | // m_log.Debug((AssetType)req.AssetInf.Type); | ||
2769 | |||
2755 | TransferInfoPacket Transfer = new TransferInfoPacket(); | 2770 | TransferInfoPacket Transfer = new TransferInfoPacket(); |
2756 | Transfer.TransferInfo.ChannelType = 2; | 2771 | Transfer.TransferInfo.ChannelType = 2; |
2757 | Transfer.TransferInfo.Status = 0; | 2772 | Transfer.TransferInfo.Status = 0; |
@@ -2773,7 +2788,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2773 | Transfer.TransferInfo.Size = req.AssetInf.Data.Length; | 2788 | Transfer.TransferInfo.Size = req.AssetInf.Data.Length; |
2774 | Transfer.TransferInfo.TransferID = req.TransferRequestID; | 2789 | Transfer.TransferInfo.TransferID = req.TransferRequestID; |
2775 | Transfer.Header.Zerocoded = true; | 2790 | Transfer.Header.Zerocoded = true; |
2776 | OutPacket(Transfer, ThrottleOutPacketType.Asset); | 2791 | OutPacket(Transfer, isWearable ? ThrottleOutPacketType.State : ThrottleOutPacketType.Asset); |
2777 | 2792 | ||
2778 | if (req.NumPackets == 1) | 2793 | if (req.NumPackets == 1) |
2779 | { | 2794 | { |
@@ -2784,7 +2799,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2784 | TransferPacket.TransferData.Data = req.AssetInf.Data; | 2799 | TransferPacket.TransferData.Data = req.AssetInf.Data; |
2785 | TransferPacket.TransferData.Status = 1; | 2800 | TransferPacket.TransferData.Status = 1; |
2786 | TransferPacket.Header.Zerocoded = true; | 2801 | TransferPacket.Header.Zerocoded = true; |
2787 | OutPacket(TransferPacket, ThrottleOutPacketType.Asset); | 2802 | OutPacket(TransferPacket, isWearable ? ThrottleOutPacketType.State : ThrottleOutPacketType.Asset); |
2788 | } | 2803 | } |
2789 | else | 2804 | else |
2790 | { | 2805 | { |
@@ -2817,7 +2832,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2817 | TransferPacket.TransferData.Status = 1; | 2832 | TransferPacket.TransferData.Status = 1; |
2818 | } | 2833 | } |
2819 | TransferPacket.Header.Zerocoded = true; | 2834 | TransferPacket.Header.Zerocoded = true; |
2820 | OutPacket(TransferPacket, ThrottleOutPacketType.Asset); | 2835 | OutPacket(TransferPacket, isWearable ? ThrottleOutPacketType.State : ThrottleOutPacketType.Asset); |
2821 | 2836 | ||
2822 | processedLength += chunkSize; | 2837 | processedLength += chunkSize; |
2823 | packetNumber++; | 2838 | packetNumber++; |
@@ -3572,24 +3587,25 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3572 | aw.WearableData = new AgentWearablesUpdatePacket.WearableDataBlock[count]; | 3587 | aw.WearableData = new AgentWearablesUpdatePacket.WearableDataBlock[count]; |
3573 | AgentWearablesUpdatePacket.WearableDataBlock awb; | 3588 | AgentWearablesUpdatePacket.WearableDataBlock awb; |
3574 | int idx = 0; | 3589 | int idx = 0; |
3575 | for (int i = 0; i < wearables.Length; i++) | 3590 | |
3576 | { | 3591 | for (int i = 0; i < wearables.Length; i++) |
3577 | for (int j = 0; j < wearables[i].Count; j++) | 3592 | { |
3578 | { | 3593 | for (int j = 0; j < wearables[i].Count; j++) |
3579 | awb = new AgentWearablesUpdatePacket.WearableDataBlock(); | 3594 | { |
3580 | awb.WearableType = (byte)i; | 3595 | awb = new AgentWearablesUpdatePacket.WearableDataBlock(); |
3581 | awb.AssetID = wearables[i][j].AssetID; | 3596 | awb.WearableType = (byte) i; |
3582 | awb.ItemID = wearables[i][j].ItemID; | 3597 | awb.AssetID = wearables[i][j].AssetID; |
3583 | aw.WearableData[idx] = awb; | 3598 | awb.ItemID = wearables[i][j].ItemID; |
3584 | idx++; | 3599 | aw.WearableData[idx] = awb; |
3585 | 3600 | idx++; | |
3586 | // m_log.DebugFormat( | 3601 | |
3587 | // "[APPEARANCE]: Sending wearable item/asset {0} {1} (index {2}) for {3}", | 3602 | // m_log.DebugFormat( |
3588 | // awb.ItemID, awb.AssetID, i, Name); | 3603 | // "[APPEARANCE]: Sending wearable item/asset {0} {1} (index {2}) for {3}", |
3589 | } | 3604 | // awb.ItemID, awb.AssetID, i, Name); |
3590 | } | 3605 | } |
3606 | } | ||
3591 | 3607 | ||
3592 | OutPacket(aw, ThrottleOutPacketType.Task); | 3608 | OutPacket(aw, ThrottleOutPacketType.State); |
3593 | } | 3609 | } |
3594 | 3610 | ||
3595 | public void SendAppearance(UUID agentID, byte[] visualParams, byte[] textureEntry) | 3611 | public void SendAppearance(UUID agentID, byte[] visualParams, byte[] textureEntry) |
@@ -3614,7 +3630,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3614 | avp.Sender.IsTrial = false; | 3630 | avp.Sender.IsTrial = false; |
3615 | avp.Sender.ID = agentID; | 3631 | avp.Sender.ID = agentID; |
3616 | //m_log.DebugFormat("[CLIENT]: Sending appearance for {0} to {1}", agentID.ToString(), AgentId.ToString()); | 3632 | //m_log.DebugFormat("[CLIENT]: Sending appearance for {0} to {1}", agentID.ToString(), AgentId.ToString()); |
3617 | OutPacket(avp, ThrottleOutPacketType.Task); | 3633 | OutPacket(avp, ThrottleOutPacketType.State); |
3618 | } | 3634 | } |
3619 | 3635 | ||
3620 | public void SendAnimations(UUID[] animations, int[] seqs, UUID sourceAgentId, UUID[] objectIDs) | 3636 | public void SendAnimations(UUID[] animations, int[] seqs, UUID sourceAgentId, UUID[] objectIDs) |
@@ -7798,6 +7814,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
7798 | // surrounding scene | 7814 | // surrounding scene |
7799 | if ((ImageType)block.Type == ImageType.Baked) | 7815 | if ((ImageType)block.Type == ImageType.Baked) |
7800 | args.Priority *= 2.0f; | 7816 | args.Priority *= 2.0f; |
7817 | int wearableout = 0; | ||
7801 | 7818 | ||
7802 | ImageManager.EnqueueReq(args); | 7819 | ImageManager.EnqueueReq(args); |
7803 | } | 7820 | } |