diff options
Diffstat (limited to '')
-rw-r--r-- | linden/indra/newview/llviewermessage.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
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**) | |||
3331 | 3331 | ||
3332 | // set our upstream host the new simulator and shuffle things as | 3332 | // set our upstream host the new simulator and shuffle things as |
3333 | // appropriate. | 3333 | // appropriate. |
3334 | LLVector3 shift_vector = regionp->getPosRegionFromGlobal( | 3334 | // Sometimes OpenSim will get here but still fail on a teleport -- MC |
3335 | gAgent.getRegion()->getOriginGlobal()); | 3335 | if (regionp != gAgent.getRegion()) |
3336 | gAgent.setRegion(regionp); | 3336 | { |
3337 | gObjectList.shiftObjects(shift_vector); | 3337 | LLVector3 shift_vector = regionp->getPosRegionFromGlobal( |
3338 | gAssetStorage->setUpstream(msg->getSender()); | 3338 | gAgent.getRegion()->getOriginGlobal()); |
3339 | gCacheName->setUpstream(msg->getSender()); | 3339 | gAgent.setRegion(regionp); |
3340 | gViewerThrottle.sendToSim(); | 3340 | gObjectList.shiftObjects(shift_vector); |
3341 | gViewerWindow->sendShapeToSim(); | 3341 | gAssetStorage->setUpstream(msg->getSender()); |
3342 | gCacheName->setUpstream(msg->getSender()); | ||
3343 | gViewerThrottle.sendToSim(); | ||
3344 | gViewerWindow->sendShapeToSim(); | ||
3345 | } | ||
3342 | 3346 | ||
3343 | bool is_teleport = gAgent.getTeleportState() == LLAgent::TELEPORT_MOVING; | 3347 | bool is_teleport = gAgent.getTeleportState() == LLAgent::TELEPORT_MOVING; |
3344 | 3348 | ||