diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 47585f9..07f72c3 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -2674,7 +2674,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2674 | OutPacket(terse, ThrottleOutPacketType.Task); | 2674 | OutPacket(terse, ThrottleOutPacketType.Task); |
2675 | } | 2675 | } |
2676 | 2676 | ||
2677 | public void SendCoarseLocationUpdate(List<Vector3> CoarseLocations) | 2677 | public void SendCoarseLocationUpdate(List<UUID> users, List<Vector3> CoarseLocations) |
2678 | { | 2678 | { |
2679 | if (!IsActive) return; // We don't need to update inactive clients. | 2679 | if (!IsActive) return; // We don't need to update inactive clients. |
2680 | 2680 | ||
@@ -2684,14 +2684,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2684 | CoarseLocationUpdatePacket.IndexBlock ib = | 2684 | CoarseLocationUpdatePacket.IndexBlock ib = |
2685 | new CoarseLocationUpdatePacket.IndexBlock(); | 2685 | new CoarseLocationUpdatePacket.IndexBlock(); |
2686 | loc.Location = new CoarseLocationUpdatePacket.LocationBlock[total]; | 2686 | loc.Location = new CoarseLocationUpdatePacket.LocationBlock[total]; |
2687 | loc.AgentData = new CoarseLocationUpdatePacket.AgentDataBlock[total]; | ||
2688 | |||
2687 | for (int i = 0; i < total; i++) | 2689 | for (int i = 0; i < total; i++) |
2688 | { | 2690 | { |
2689 | CoarseLocationUpdatePacket.LocationBlock lb = | 2691 | CoarseLocationUpdatePacket.LocationBlock lb = |
2690 | new CoarseLocationUpdatePacket.LocationBlock(); | 2692 | new CoarseLocationUpdatePacket.LocationBlock(); |
2691 | lb.X = (byte)CoarseLocations[i].X; | 2693 | lb.X = (byte)CoarseLocations[i].X; |
2692 | lb.Y = (byte)CoarseLocations[i].Y; | 2694 | lb.Y = (byte)CoarseLocations[i].Y; |
2693 | lb.Z = (byte)(CoarseLocations[i].Z / 4); | 2695 | |
2696 | lb.Z = CoarseLocations[i].Z > 1024 ? (byte)0 : (byte)(CoarseLocations[i].Z * 0.25); | ||
2694 | loc.Location[i] = lb; | 2697 | loc.Location[i] = lb; |
2698 | loc.AgentData[i] = new CoarseLocationUpdatePacket.AgentDataBlock(); | ||
2699 | loc.AgentData[i].AgentID = users[i]; | ||
2695 | } | 2700 | } |
2696 | ib.You = -1; | 2701 | ib.You = -1; |
2697 | ib.Prey = -1; | 2702 | ib.Prey = -1; |