summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerobject.cpp
diff options
context:
space:
mode:
authorVadim Savchuk <vsavchuk@productengine.com>2010-07-09 14:56:56 +0300
committerVadim Savchuk <vsavchuk@productengine.com>2010-07-09 14:56:56 +0300
commit67a06e4df25aecd688938d437cb6ed0d150171fa (patch)
tree015d206ec9e6e22c54c2780d2bc594d692e47d3b /indra/newview/llviewerobject.cpp
parent222cd49ad556b883168b57c7f8839a4887864602 (diff)
parent0a2fc3e4b93c13854a1776456ebed7f53ceb67e8 (diff)
Merge from default branch
--HG-- branch : product-engine
Diffstat (limited to 'indra/newview/llviewerobject.cpp')
-rw-r--r--indra/newview/llviewerobject.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index 9a2866832a..6d93de2383 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -765,12 +765,19 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
{
LLViewerRegion* regionp = LLWorld::getInstance()->getRegionFromHandle(region_handle);
- if(regionp != mRegionp && regionp && mRegionp)
+ if(regionp != mRegionp && regionp && mRegionp)//region cross
{
+ //this is the redundant position and region update, but it is necessary in case the viewer misses the following
+ //position and region update messages from sim.
+ //this redundant update should not cause any problems.
LLVector3 delta_pos = mRegionp->getOriginAgent() - regionp->getOriginAgent();
- setPosition(getPosition() + delta_pos) ; //update the region position immediately.
+ setPositionParent(getPosition() + delta_pos); //update to the new region position immediately.
+ setRegion(regionp) ; //change the region.
+ }
+ else
+ {
+ mRegionp = regionp ;
}
- mRegionp = regionp ;
}
if (!mRegionp)