diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 22 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | 9 |
2 files changed, 27 insertions, 4 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index c839c05..c8c00c8 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -3834,11 +3834,25 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3834 | /// </summary> | 3834 | /// </summary> |
3835 | public void SendEntityUpdate(ISceneEntity entity, PrimUpdateFlags updateFlags) | 3835 | public void SendEntityUpdate(ISceneEntity entity, PrimUpdateFlags updateFlags) |
3836 | { | 3836 | { |
3837 | //double priority = m_prioritizer.GetUpdatePriority(this, entity); | 3837 | if (entity.UUID == m_agentId && !updateFlags.HasFlag(PrimUpdateFlags.FullUpdate)) |
3838 | uint priority = m_prioritizer.GetUpdatePriority(this, entity); | 3838 | { |
3839 | ImprovedTerseObjectUpdatePacket packet | ||
3840 | = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedTerseObjectUpdate); | ||
3839 | 3841 | ||
3840 | lock (m_entityUpdates.SyncRoot) | 3842 | packet.RegionData.RegionHandle = m_scene.RegionInfo.RegionHandle; |
3841 | m_entityUpdates.Enqueue(priority, new EntityUpdate(entity, updateFlags, m_scene.TimeDilation)); | 3843 | packet.RegionData.TimeDilation = Utils.FloatToUInt16(1, 0.0f, 1.0f); |
3844 | packet.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; | ||
3845 | packet.ObjectData[0] = CreateImprovedTerseBlock(entity, false); | ||
3846 | OutPacket(packet, ThrottleOutPacketType.Unknown, true); | ||
3847 | } | ||
3848 | else | ||
3849 | { | ||
3850 | //double priority = m_prioritizer.GetUpdatePriority(this, entity); | ||
3851 | uint priority = m_prioritizer.GetUpdatePriority(this, entity); | ||
3852 | |||
3853 | lock (m_entityUpdates.SyncRoot) | ||
3854 | m_entityUpdates.Enqueue(priority, new EntityUpdate(entity, updateFlags, m_scene.TimeDilation)); | ||
3855 | } | ||
3842 | } | 3856 | } |
3843 | 3857 | ||
3844 | /// <summary> | 3858 | /// <summary> |
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs index 64548f2..415a22e 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | |||
@@ -898,6 +898,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
898 | // packet so that it isn't sent before a queued update packet. | 898 | // packet so that it isn't sent before a queued update packet. |
899 | bool forceQueue = (type == PacketType.KillObject); | 899 | bool forceQueue = (type == PacketType.KillObject); |
900 | 900 | ||
901 | // if (type == PacketType.ImprovedTerseObjectUpdate) | ||
902 | // { | ||
903 | // m_log.DebugFormat("Direct send ITOU to {0} in {1}", udpClient.AgentID, Scene.Name); | ||
904 | // SendPacketFinal(outgoingPacket); | ||
905 | // return false; | ||
906 | // } | ||
907 | // else | ||
908 | // { | ||
901 | if (!outgoingPacket.Client.EnqueueOutgoing(outgoingPacket, forceQueue)) | 909 | if (!outgoingPacket.Client.EnqueueOutgoing(outgoingPacket, forceQueue)) |
902 | { | 910 | { |
903 | SendPacketFinal(outgoingPacket); | 911 | SendPacketFinal(outgoingPacket); |
@@ -907,6 +915,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
907 | { | 915 | { |
908 | return false; | 916 | return false; |
909 | } | 917 | } |
918 | // } | ||
910 | 919 | ||
911 | #endregion Queue or Send | 920 | #endregion Queue or Send |
912 | } | 921 | } |