diff options
-rw-r--r-- | OpenSim.RegionServer/ClientView.ProcessPackets.cs | 12 | ||||
-rw-r--r-- | OpenSim.RegionServer/ClientView.cs | 10 | ||||
-rw-r--r-- | OpenSim.RegionServer/world/Avatar.Update.cs | 5 | ||||
-rw-r--r-- | OpenSim.RegionServer/world/World.PacketHandlers.cs | 14 | ||||
-rw-r--r-- | OpenSim.RegionServer/world/World.cs | 2 |
5 files changed, 27 insertions, 16 deletions
diff --git a/OpenSim.RegionServer/ClientView.ProcessPackets.cs b/OpenSim.RegionServer/ClientView.ProcessPackets.cs index 16f418d..708c143 100644 --- a/OpenSim.RegionServer/ClientView.ProcessPackets.cs +++ b/OpenSim.RegionServer/ClientView.ProcessPackets.cs | |||
@@ -38,6 +38,7 @@ namespace OpenSim | |||
38 | public event GenericCall2 OnCompleteMovementToRegion; | 38 | public event GenericCall2 OnCompleteMovementToRegion; |
39 | public event GenericCall3 OnAgentUpdate; | 39 | public event GenericCall3 OnAgentUpdate; |
40 | public event StartAnim OnStartAnim; | 40 | public event StartAnim OnStartAnim; |
41 | public event GenericCall OnRequestAvatarsData; | ||
41 | 42 | ||
42 | protected override void ProcessInPacket(Packet Pack) | 43 | protected override void ProcessInPacket(Packet Pack) |
43 | { | 44 | { |
@@ -106,16 +107,7 @@ namespace OpenSim | |||
106 | break; | 107 | break; |
107 | case PacketType.AgentWearablesRequest: | 108 | case PacketType.AgentWearablesRequest: |
108 | OnRequestWearables(this); | 109 | OnRequestWearables(this); |
109 | //need to move the follow to a event system | 110 | OnRequestAvatarsData(this); |
110 | foreach (ClientView client in m_clientThreads.Values) | ||
111 | { | ||
112 | if (client.AgentID != this.AgentID) | ||
113 | { | ||
114 | ObjectUpdatePacket objupdate = client.ClientAvatar.CreateUpdatePacket(); | ||
115 | this.OutPacket(objupdate); | ||
116 | client.ClientAvatar.SendAppearanceToOtherAgent(this.ClientAvatar); | ||
117 | } | ||
118 | } | ||
119 | break; | 111 | break; |
120 | case PacketType.AgentSetAppearance: | 112 | case PacketType.AgentSetAppearance: |
121 | AgentSetAppearancePacket appear = (AgentSetAppearancePacket)Pack; | 113 | AgentSetAppearancePacket appear = (AgentSetAppearancePacket)Pack; |
diff --git a/OpenSim.RegionServer/ClientView.cs b/OpenSim.RegionServer/ClientView.cs index 63bbfab..ccea2f3 100644 --- a/OpenSim.RegionServer/ClientView.cs +++ b/OpenSim.RegionServer/ClientView.cs | |||
@@ -52,6 +52,9 @@ namespace OpenSim | |||
52 | /// </summary> | 52 | /// </summary> |
53 | public partial class ClientView : ClientViewBase | 53 | public partial class ClientView : ClientViewBase |
54 | { | 54 | { |
55 | protected static Dictionary<PacketType, PacketMethod> PacketHandlers = new Dictionary<PacketType, PacketMethod>(); //Global/static handlers for all clients | ||
56 | protected Dictionary<PacketType, PacketMethod> m_packetHandlers = new Dictionary<PacketType, PacketMethod>(); //local handlers for this instance | ||
57 | |||
55 | public LLUUID AgentID; | 58 | public LLUUID AgentID; |
56 | public LLUUID SessionID; | 59 | public LLUUID SessionID; |
57 | public LLUUID SecureSessionID = LLUUID.Zero; | 60 | public LLUUID SecureSessionID = LLUUID.Zero; |
@@ -75,10 +78,6 @@ namespace OpenSim | |||
75 | private RegionInfo m_regionData; | 78 | private RegionInfo m_regionData; |
76 | protected AuthenticateSessionsBase m_authenticateSessionsHandler; | 79 | protected AuthenticateSessionsBase m_authenticateSessionsHandler; |
77 | 80 | ||
78 | protected static Dictionary<PacketType, PacketMethod> PacketHandlers = new Dictionary<PacketType, PacketMethod>(); //Global/static handlers for all clients | ||
79 | |||
80 | protected Dictionary<PacketType, PacketMethod> m_packetHandlers = new Dictionary<PacketType, PacketMethod>(); //local handlers for this instance | ||
81 | |||
82 | public IUserServer UserServer | 81 | public IUserServer UserServer |
83 | { | 82 | { |
84 | set | 83 | set |
@@ -233,8 +232,6 @@ namespace OpenSim | |||
233 | return result; | 232 | return result; |
234 | } | 233 | } |
235 | 234 | ||
236 | # endregion | ||
237 | |||
238 | protected virtual void ClientLoop() | 235 | protected virtual void ClientLoop() |
239 | { | 236 | { |
240 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "OpenSimClient.cs:ClientLoop() - Entered loop"); | 237 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "OpenSimClient.cs:ClientLoop() - Entered loop"); |
@@ -253,6 +250,7 @@ namespace OpenSim | |||
253 | } | 250 | } |
254 | } | 251 | } |
255 | } | 252 | } |
253 | # endregion | ||
256 | 254 | ||
257 | # region Setup | 255 | # region Setup |
258 | 256 | ||
diff --git a/OpenSim.RegionServer/world/Avatar.Update.cs b/OpenSim.RegionServer/world/Avatar.Update.cs index ee72ba3..266fc38 100644 --- a/OpenSim.RegionServer/world/Avatar.Update.cs +++ b/OpenSim.RegionServer/world/Avatar.Update.cs | |||
@@ -93,6 +93,11 @@ namespace OpenSim.world | |||
93 | } | 93 | } |
94 | 94 | ||
95 | } | 95 | } |
96 | public void SendUpdateToOtherClient(Avatar RemoteAvatar) | ||
97 | { | ||
98 | ObjectUpdatePacket objupdate = CreateUpdatePacket(); | ||
99 | RemoteAvatar.SendPacketToViewer(objupdate); | ||
100 | } | ||
96 | 101 | ||
97 | public ObjectUpdatePacket CreateUpdatePacket() | 102 | public ObjectUpdatePacket CreateUpdatePacket() |
98 | { | 103 | { |
diff --git a/OpenSim.RegionServer/world/World.PacketHandlers.cs b/OpenSim.RegionServer/world/World.PacketHandlers.cs index d12013a..119bb19 100644 --- a/OpenSim.RegionServer/world/World.PacketHandlers.cs +++ b/OpenSim.RegionServer/world/World.PacketHandlers.cs | |||
@@ -168,6 +168,20 @@ namespace OpenSim.world | |||
168 | return true; | 168 | return true; |
169 | } | 169 | } |
170 | 170 | ||
171 | public void SendAvatarsToClient(ClientView RemoteClient) | ||
172 | { | ||
173 | foreach (ClientView client in m_clientThreads.Values) | ||
174 | { | ||
175 | if (client.AgentID != RemoteClient.AgentID) | ||
176 | { | ||
177 | // ObjectUpdatePacket objupdate = client.ClientAvatar.CreateUpdatePacket(); | ||
178 | // RemoteClient.OutPacket(objupdate); | ||
179 | client.ClientAvatar.SendUpdateToOtherClient(RemoteClient.ClientAvatar); | ||
180 | client.ClientAvatar.SendAppearanceToOtherAgent(RemoteClient.ClientAvatar); | ||
181 | } | ||
182 | } | ||
183 | } | ||
184 | |||
171 | /* | 185 | /* |
172 | public void RequestMapBlock(ClientView simClient, int minX, int minY, int maxX, int maxY) | 186 | public void RequestMapBlock(ClientView simClient, int minX, int minY, int maxX, int maxY) |
173 | { | 187 | { |
diff --git a/OpenSim.RegionServer/world/World.cs b/OpenSim.RegionServer/world/World.cs index 70ca680..99fb8e0 100644 --- a/OpenSim.RegionServer/world/World.cs +++ b/OpenSim.RegionServer/world/World.cs | |||
@@ -538,6 +538,8 @@ namespace OpenSim.world | |||
538 | agentClient.OnModifyTerrain += new ClientView.ModifyTerrain(this.ModifyTerrain); | 538 | agentClient.OnModifyTerrain += new ClientView.ModifyTerrain(this.ModifyTerrain); |
539 | agentClient.OnRegionHandShakeReply += new ClientView.GenericCall(this.SendLayerData); | 539 | agentClient.OnRegionHandShakeReply += new ClientView.GenericCall(this.SendLayerData); |
540 | agentClient.OnRequestWearables += new ClientView.GenericCall(this.GetInitialPrims); | 540 | agentClient.OnRequestWearables += new ClientView.GenericCall(this.GetInitialPrims); |
541 | agentClient.OnRequestAvatarsData += new ClientView.GenericCall(this.SendAvatarsToClient); | ||
542 | |||
541 | try | 543 | try |
542 | { | 544 | { |
543 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "World.cs:AddViewerAgent() - Creating new avatar for remote viewer agent"); | 545 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "World.cs:AddViewerAgent() - Creating new avatar for remote viewer agent"); |