summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorTodd Stinson <stinson@lindenlab.com>2012-05-15 19:10:03 -0700
committerTodd Stinson <stinson@lindenlab.com>2012-05-15 19:10:03 -0700
commit52b624aa3db193cec0980e369be3ff1a8e5faa24 (patch)
tree921969700b6d8b1dad3c60e913b754cddeba0999 /indra
parent91acda05d57c360924a46696a44a5b7841b84543 (diff)
EXP-1928: Removing ability to restart a teleport via lure because the re-attempt will fail on the server.
Diffstat (limited to 'indra')
-rwxr-xr-xindra/newview/llagent.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index d27fc252d8..3b1e894ed3 100755
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -3604,7 +3604,6 @@ bool LLAgent::teleportCore(bool is_local)
void LLAgent::restartFailedTeleportRequest()
{
- llassert(hasFailedTeleportRequest());
if (hasFailedTeleportRequest())
{
mFailedTeleportRequest->doTeleport();
@@ -3707,8 +3706,29 @@ void LLAgent::doTeleportViaLandmark(const LLUUID& landmark_asset_id)
void LLAgent::teleportViaLure(const LLUUID& lure_id, BOOL godlike)
{
+#if 0
+ // stinson 05/15/2012 : cannot restart a teleport via lure because of server-side restrictions
+ // The current scenario is as follows:
+ // 1. User A initializes a request for User B to teleport via lure
+ // 2. User B accepts the teleport via lure request
+ // 3. The server sees the init request from User A and the accept request from User B and matches them up
+ // 4. The server then removes the paired requests up from the "queue"
+ // 5. The server then fails User B's teleport for reason of maturity level (for example)
+ // 6. User B's viewer prompts user to increase their maturity level profile value.
+ // 7. User B confirms and accepts increase in maturity level
+ // 8. User B's viewer then attempts to teleport via lure again
+ // 9. This fails on the server because User A's initial request has been removed from the "queue" in step 4
mCurrentTeleportRequest = LLTeleportRequestPtr(new LLTeleportRequestViaLure(lure_id, godlike));
mCurrentTeleportRequest->doTeleport();
+#else
+ // Clear any current and failed teleports.
+ mCurrentTeleportRequest.reset();
+ clearFailedTeleportRequest();
+
+ // Do not persist the teleport via lure request as it is only temporary and cannot be restarted
+ LLTeleportRequestPtr currentTeleportRequest = LLTeleportRequestPtr(new LLTeleportRequestViaLure(lure_id, godlike));
+ currentTeleportRequest->doTeleport();
+#endif
}
void LLAgent::doTeleportViaLure(const LLUUID& lure_id, BOOL godlike)