diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | 84 |
1 files changed, 43 insertions, 41 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs index 6dc9968..bb19996 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | |||
@@ -139,48 +139,50 @@ namespace OpenSim.Region.Environment.Scenes | |||
139 | { | 139 | { |
140 | // Console.WriteLine("Chat message"); | 140 | // Console.WriteLine("Chat message"); |
141 | ScenePresence avatar = null; | 141 | ScenePresence avatar = null; |
142 | foreach (IClientAPI client in m_clientThreads.Values) | ||
143 | { | ||
144 | int dis = -1000; | ||
145 | if (this.Avatars.ContainsKey(client.AgentId)) | ||
146 | { | ||
147 | |||
148 | avatar = this.Avatars[client.AgentId]; | ||
149 | // int dis = Util.fast_distance2d((int)(client.ClientAvatar.Pos.X - simClient.ClientAvatar.Pos.X), (int)(client.ClientAvatar.Pos.Y - simClient.ClientAvatar.Pos.Y)); | ||
150 | dis= (int)avatar.Pos.GetDistanceTo(fromPos); | ||
151 | //Console.WriteLine("found avatar at " +dis); | ||
152 | |||
153 | } | ||
154 | |||
155 | switch (type) | ||
156 | { | ||
157 | case 0: // Whisper | ||
158 | if ((dis < 10) && (dis > -10)) | ||
159 | { | ||
160 | //should change so the message is sent through the avatar rather than direct to the ClientView | ||
161 | client.SendChatMessage(message, type, fromPos, fromName, fromAgentID); | ||
162 | } | ||
163 | break; | ||
164 | case 1: // Say | ||
165 | if ((dis < 30) && (dis > -30)) | ||
166 | { | ||
167 | Console.WriteLine("sending chat"); | ||
168 | client.SendChatMessage(message, type, fromPos, fromName, fromAgentID); | ||
169 | } | ||
170 | break; | ||
171 | case 2: // Shout | ||
172 | if ((dis < 100) && (dis > -100)) | ||
173 | { | ||
174 | client.SendChatMessage(message, type, fromPos, fromName, fromAgentID); | ||
175 | } | ||
176 | break; | ||
177 | 142 | ||
178 | case 0xff: // Broadcast | 143 | m_clientThreads.ForEachClient(delegate(IClientAPI client) |
179 | client.SendChatMessage(message, type, fromPos, fromName, fromAgentID); | 144 | { |
180 | break; | 145 | int dis = -1000; |
181 | } | 146 | if (this.Avatars.ContainsKey(client.AgentId)) |
182 | 147 | { | |
183 | } | 148 | avatar = this.Avatars[client.AgentId]; |
149 | // int dis = Util.fast_distance2d((int)(client.ClientAvatar.Pos.X - simClient.ClientAvatar.Pos.X), (int)(client.ClientAvatar.Pos.Y - simClient.ClientAvatar.Pos.Y)); | ||
150 | dis = (int) avatar.Pos.GetDistanceTo(fromPos); | ||
151 | //Console.WriteLine("found avatar at " +dis); | ||
152 | } | ||
153 | |||
154 | switch (type) | ||
155 | { | ||
156 | case 0: // Whisper | ||
157 | if ((dis < 10) && (dis > -10)) | ||
158 | { | ||
159 | //should change so the message is sent through the avatar rather than direct to the ClientView | ||
160 | client.SendChatMessage(message, type, fromPos, fromName, | ||
161 | fromAgentID); | ||
162 | } | ||
163 | break; | ||
164 | case 1: // Say | ||
165 | if ((dis < 30) && (dis > -30)) | ||
166 | { | ||
167 | Console.WriteLine("sending chat"); | ||
168 | client.SendChatMessage(message, type, fromPos, fromName, | ||
169 | fromAgentID); | ||
170 | } | ||
171 | break; | ||
172 | case 2: // Shout | ||
173 | if ((dis < 100) && (dis > -100)) | ||
174 | { | ||
175 | client.SendChatMessage(message, type, fromPos, fromName, | ||
176 | fromAgentID); | ||
177 | } | ||
178 | break; | ||
179 | |||
180 | case 0xff: // Broadcast | ||
181 | client.SendChatMessage(message, type, fromPos, fromName, | ||
182 | fromAgentID); | ||
183 | break; | ||
184 | } | ||
185 | }); | ||
184 | } | 186 | } |
185 | 187 | ||
186 | /// <summary> | 188 | /// <summary> |