From f7ee6bb2ee7095141fc6f7a91eb45573f42e4327 Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Mon, 29 Jan 2007 05:13:10 +0000 Subject: [PATCH] Added handlers for TeleportCancel and TeleportLocal (TeleportLocal isn't 100% complete and I don't know what triggers TeleportCancel) git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@913 52acb1d6-8a22-11de-b505-999d5b087335 --- libsecondlife-cs/MainAvatar.cs | 41 +++++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/libsecondlife-cs/MainAvatar.cs b/libsecondlife-cs/MainAvatar.cs index 01e9a774..b2eeaab9 100644 --- a/libsecondlife-cs/MainAvatar.cs +++ b/libsecondlife-cs/MainAvatar.cs @@ -46,16 +46,18 @@ namespace libsecondlife /// public enum TeleportStatus { - /// + /// Unknown status None, - /// Teleport Start + /// Teleport initialized Start, - /// Teleport in Progress + /// Teleport in progress Progress, - /// Teleport Failed + /// Teleport failed Failed, - /// Teleport Completed - Finished + /// Teleport completed + Finished, + /// Teleport cancelled + Cancelled } /// @@ -437,6 +439,8 @@ namespace libsecondlife Client.Network.RegisterCallback(PacketType.TeleportProgress, callback); Client.Network.RegisterCallback(PacketType.TeleportFailed, callback); Client.Network.RegisterCallback(PacketType.TeleportFinish, callback); + Client.Network.RegisterCallback(PacketType.TeleportCancel, callback); + Client.Network.RegisterCallback(PacketType.TeleportLocal, callback); // Instant Message callback Client.Network.RegisterCallback(PacketType.ImprovedInstantMessage, new NetworkManager.PacketCallback(InstantMessageHandler)); @@ -1487,6 +1491,31 @@ namespace libsecondlife Client.Log(teleportMessage, Helpers.LogLevel.Warning); } } + else if (packet.Type == PacketType.TeleportCancel) + { + Client.DebugLog("TeleportCancel received from " + simulator.ToString()); + + teleportMessage = "Cancelled."; + TeleportStat = TeleportStatus.Cancelled; + + tpFinished = true; + } + else if (packet.Type == PacketType.TeleportLocal) + { + TeleportLocalPacket local = (TeleportLocalPacket)packet; + + LookAt = local.Info.LookAt; + Position = local.Info.Position; + + // TODO: Do something with these + //local.Info.LocationID; + //local.Info.TeleportFlags; + + teleportMessage = "Teleport finished"; + TeleportStat = TeleportStatus.Finished; + + tpFinished = true; + } if (OnTeleport != null) {