diff options
Diffstat (limited to 'OpenSim/Region/ClientStack')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 0a7d923..58fd2e7 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -3461,11 +3461,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3461 | new CoarseLocationUpdatePacket.IndexBlock(); | 3461 | new CoarseLocationUpdatePacket.IndexBlock(); |
3462 | loc.Location = new CoarseLocationUpdatePacket.LocationBlock[total]; | 3462 | loc.Location = new CoarseLocationUpdatePacket.LocationBlock[total]; |
3463 | loc.AgentData = new CoarseLocationUpdatePacket.AgentDataBlock[total]; | 3463 | loc.AgentData = new CoarseLocationUpdatePacket.AgentDataBlock[total]; |
3464 | 3464 | int selfindex = -1; | |
3465 | for (int i = 0; i < total; i++) | 3465 | for (int i = 0; i < total; i++) |
3466 | { | 3466 | { |
3467 | CoarseLocationUpdatePacket.LocationBlock lb = | 3467 | CoarseLocationUpdatePacket.LocationBlock lb = |
3468 | new CoarseLocationUpdatePacket.LocationBlock(); | 3468 | new CoarseLocationUpdatePacket.LocationBlock(); |
3469 | |||
3469 | lb.X = (byte)CoarseLocations[i].X; | 3470 | lb.X = (byte)CoarseLocations[i].X; |
3470 | lb.Y = (byte)CoarseLocations[i].Y; | 3471 | lb.Y = (byte)CoarseLocations[i].Y; |
3471 | 3472 | ||
@@ -3473,8 +3474,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3473 | loc.Location[i] = lb; | 3474 | loc.Location[i] = lb; |
3474 | loc.AgentData[i] = new CoarseLocationUpdatePacket.AgentDataBlock(); | 3475 | loc.AgentData[i] = new CoarseLocationUpdatePacket.AgentDataBlock(); |
3475 | loc.AgentData[i].AgentID = users[i]; | 3476 | loc.AgentData[i].AgentID = users[i]; |
3477 | if (users[i] == AgentId) | ||
3478 | selfindex = i; | ||
3476 | } | 3479 | } |
3477 | ib.You = -1; | 3480 | ib.You = (short)selfindex; |
3478 | ib.Prey = -1; | 3481 | ib.Prey = -1; |
3479 | loc.Index = ib; | 3482 | loc.Index = ib; |
3480 | loc.Header.Reliable = false; | 3483 | loc.Header.Reliable = false; |
@@ -10122,11 +10125,28 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
10122 | Utils.BytesToString(avatarNotesUpdate.Data.Notes)); | 10125 | Utils.BytesToString(avatarNotesUpdate.Data.Notes)); |
10123 | break; | 10126 | break; |
10124 | 10127 | ||
10125 | // case PacketType.AvatarInterestsUpdate: | 10128 | case PacketType.AvatarInterestsUpdate: |
10126 | // AvatarInterestsUpdatePacket avatarInterestUpdate = | 10129 | AvatarInterestsUpdatePacket avatarInterestUpdate = |
10127 | // (AvatarInterestsUpdatePacket)Pack; | 10130 | (AvatarInterestsUpdatePacket)Pack; |
10128 | // | 10131 | |
10129 | // break; | 10132 | #region Packet Session and User Check |
10133 | if (m_checkPackets) | ||
10134 | { | ||
10135 | if (avatarInterestUpdate.AgentData.SessionID != SessionId || | ||
10136 | avatarInterestUpdate.AgentData.AgentID != AgentId) | ||
10137 | break; | ||
10138 | } | ||
10139 | #endregion | ||
10140 | |||
10141 | AvatarInterestUpdate handlerAvatarInterestUpdate = OnAvatarInterestUpdate; | ||
10142 | if (handlerAvatarInterestUpdate != null) | ||
10143 | handlerAvatarInterestUpdate(this, | ||
10144 | avatarInterestUpdate.PropertiesData.WantToMask, | ||
10145 | Utils.BytesToString(avatarInterestUpdate.PropertiesData.WantToText), | ||
10146 | avatarInterestUpdate.PropertiesData.SkillsMask, | ||
10147 | Utils.BytesToString(avatarInterestUpdate.PropertiesData.SkillsText), | ||
10148 | Utils.BytesToString(avatarInterestUpdate.PropertiesData.LanguagesText)); | ||
10149 | break; | ||
10130 | 10150 | ||
10131 | case PacketType.PlacesQuery: | 10151 | case PacketType.PlacesQuery: |
10132 | PlacesQueryPacket placesQueryPacket = | 10152 | PlacesQueryPacket placesQueryPacket = |