diff options
Diffstat (limited to 'OpenSim/Region/ClientStack')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 79 |
1 files changed, 34 insertions, 45 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 60f0075..bb491a1 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -5266,6 +5266,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5266 | AddLocalPacketHandler(PacketType.GroupVoteHistoryRequest, HandleGroupVoteHistoryRequest); | 5266 | AddLocalPacketHandler(PacketType.GroupVoteHistoryRequest, HandleGroupVoteHistoryRequest); |
5267 | AddLocalPacketHandler(PacketType.SimWideDeletes, HandleSimWideDeletes); | 5267 | AddLocalPacketHandler(PacketType.SimWideDeletes, HandleSimWideDeletes); |
5268 | AddLocalPacketHandler(PacketType.SendPostcard, HandleSendPostcard); | 5268 | AddLocalPacketHandler(PacketType.SendPostcard, HandleSendPostcard); |
5269 | |||
5270 | AddGenericPacketHandler("autopilot", HandleAutopilot); | ||
5269 | } | 5271 | } |
5270 | 5272 | ||
5271 | #region Packet Handlers | 5273 | #region Packet Handlers |
@@ -5308,7 +5310,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5308 | ); | 5310 | ); |
5309 | } | 5311 | } |
5310 | else | 5312 | else |
5313 | { | ||
5311 | update = true; | 5314 | update = true; |
5315 | } | ||
5312 | 5316 | ||
5313 | // These should be ordered from most-likely to | 5317 | // These should be ordered from most-likely to |
5314 | // least likely to change. I've made an initial | 5318 | // least likely to change. I've made an initial |
@@ -5316,6 +5320,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5316 | 5320 | ||
5317 | if (update) | 5321 | if (update) |
5318 | { | 5322 | { |
5323 | // m_log.DebugFormat("[LLCLIENTVIEW]: Triggered AgentUpdate for {0}", sener.Name); | ||
5324 | |||
5319 | AgentUpdateArgs arg = new AgentUpdateArgs(); | 5325 | AgentUpdateArgs arg = new AgentUpdateArgs(); |
5320 | arg.AgentID = x.AgentID; | 5326 | arg.AgentID = x.AgentID; |
5321 | arg.BodyRotation = x.BodyRotation; | 5327 | arg.BodyRotation = x.BodyRotation; |
@@ -11609,54 +11615,37 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
11609 | return false; | 11615 | return false; |
11610 | } | 11616 | } |
11611 | 11617 | ||
11612 | /// <summary> | 11618 | protected void HandleAutopilot(Object sender, string method, List<String> args) |
11613 | /// Breaks down the genericMessagePacket into specific events | ||
11614 | /// </summary> | ||
11615 | /// <param name="gmMethod"></param> | ||
11616 | /// <param name="gmInvoice"></param> | ||
11617 | /// <param name="gmParams"></param> | ||
11618 | public void DecipherGenericMessage(string gmMethod, UUID gmInvoice, GenericMessagePacket.ParamListBlock[] gmParams) | ||
11619 | { | 11619 | { |
11620 | switch (gmMethod) | 11620 | try |
11621 | { | 11621 | { |
11622 | case "autopilot": | 11622 | float locx = 0f; |
11623 | float locx; | 11623 | float locy = 0f; |
11624 | float locy; | 11624 | float locz = 0f; |
11625 | float locz; | 11625 | uint regionX = 0; |
11626 | 11626 | uint regionY = 0; | |
11627 | try | 11627 | try |
11628 | { | 11628 | { |
11629 | uint regionX; | 11629 | Utils.LongToUInts(m_scene.RegionInfo.RegionHandle, out regionX, out regionY); |
11630 | uint regionY; | 11630 | locx = Convert.ToSingle(args[0]) - (float)regionX; |
11631 | Utils.LongToUInts(Scene.RegionInfo.RegionHandle, out regionX, out regionY); | 11631 | locy = Convert.ToSingle(args[1]) - (float)regionY; |
11632 | locx = Convert.ToSingle(Utils.BytesToString(gmParams[0].Parameter)) - regionX; | 11632 | locz = Convert.ToSingle(args[2]); |
11633 | locy = Convert.ToSingle(Utils.BytesToString(gmParams[1].Parameter)) - regionY; | 11633 | } |
11634 | locz = Convert.ToSingle(Utils.BytesToString(gmParams[2].Parameter)); | 11634 | catch (InvalidCastException) |
11635 | } | 11635 | { |
11636 | catch (InvalidCastException) | 11636 | m_log.Error("[CLIENT]: Invalid autopilot request"); |
11637 | { | 11637 | return; |
11638 | m_log.Error("[CLIENT]: Invalid autopilot request"); | 11638 | } |
11639 | return; | ||
11640 | } | ||
11641 | |||
11642 | UpdateVector handlerAutoPilotGo = OnAutoPilotGo; | ||
11643 | if (handlerAutoPilotGo != null) | ||
11644 | { | ||
11645 | handlerAutoPilotGo(0, new Vector3(locx, locy, locz), this); | ||
11646 | } | ||
11647 | m_log.InfoFormat("[CLIENT]: Client Requests autopilot to position <{0},{1},{2}>", locx, locy, locz); | ||
11648 | |||
11649 | |||
11650 | break; | ||
11651 | default: | ||
11652 | m_log.Debug("[CLIENT]: Unknown Generic Message, Method: " + gmMethod + ". Invoice: " + gmInvoice + ". Dumping Params:"); | ||
11653 | for (int hi = 0; hi < gmParams.Length; hi++) | ||
11654 | { | ||
11655 | Console.WriteLine(gmParams[hi].ToString()); | ||
11656 | } | ||
11657 | //gmpack.MethodData. | ||
11658 | break; | ||
11659 | 11639 | ||
11640 | UpdateVector handlerAutoPilotGo = OnAutoPilotGo; | ||
11641 | if (handlerAutoPilotGo != null) | ||
11642 | { | ||
11643 | handlerAutoPilotGo(0, new Vector3(locx, locy, locz), this); | ||
11644 | } | ||
11645 | } | ||
11646 | catch (Exception e) | ||
11647 | { | ||
11648 | m_log.ErrorFormat("[LLCLIENTVIEW]: HandleAutopilot exception {0} {1}", e.Message, e.StackTrace); | ||
11660 | } | 11649 | } |
11661 | } | 11650 | } |
11662 | 11651 | ||