From 362e10f6c08a68624ca6f9acffb1136635c53915 Mon Sep 17 00:00:00 2001 From: Jacek Antonelli Date: Sat, 26 Jun 2010 14:36:18 -0500 Subject: Unreverted an OpenSim teleport fix from cad41f1. Prevents the viewer from being told by OpenSim to teleport to the same region you are already in, which causes bad issues. It was reverted in 932dd4d but should have been kept. --- linden/indra/newview/llviewermessage.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'linden') diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp index ecbe0ef..b1c316d 100644 --- a/linden/indra/newview/llviewermessage.cpp +++ b/linden/indra/newview/llviewermessage.cpp @@ -3331,14 +3331,18 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**) // set our upstream host the new simulator and shuffle things as // appropriate. - LLVector3 shift_vector = regionp->getPosRegionFromGlobal( - gAgent.getRegion()->getOriginGlobal()); - gAgent.setRegion(regionp); - gObjectList.shiftObjects(shift_vector); - gAssetStorage->setUpstream(msg->getSender()); - gCacheName->setUpstream(msg->getSender()); - gViewerThrottle.sendToSim(); - gViewerWindow->sendShapeToSim(); + // Sometimes OpenSim will get here but still fail on a teleport -- MC + if (regionp != gAgent.getRegion()) + { + LLVector3 shift_vector = regionp->getPosRegionFromGlobal( + gAgent.getRegion()->getOriginGlobal()); + gAgent.setRegion(regionp); + gObjectList.shiftObjects(shift_vector); + gAssetStorage->setUpstream(msg->getSender()); + gCacheName->setUpstream(msg->getSender()); + gViewerThrottle.sendToSim(); + gViewerWindow->sendShapeToSim(); + } bool is_teleport = gAgent.getTeleportState() == LLAgent::TELEPORT_MOVING; -- cgit v1.1