diff options
author | Loren Shih <seraph@lindenlab.com> | 2010-07-07 10:13:09 -0400 |
---|---|---|
committer | Loren Shih <seraph@lindenlab.com> | 2010-07-07 10:13:09 -0400 |
commit | aef4f6ccabe0b2f72296f1a4ae5634080396690a (patch) | |
tree | e70a5224e61e10763207dc02cfcccd062ce5b663 /indra/newview/llviewerobject.cpp | |
parent | a5522ff5bd94a740eb44ff33f33b4b4cd6f1c16e (diff) | |
parent | f85ed5a1064d1ed54ba7e25a6b85ca36664c7d61 (diff) |
automated merge
Diffstat (limited to 'indra/newview/llviewerobject.cpp')
-rw-r--r-- | indra/newview/llviewerobject.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 9027caa4ce..9a2866832a 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -762,7 +762,17 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, // Coordinates of objects on simulators are region-local. U64 region_handle; mesgsys->getU64Fast(_PREHASH_RegionData, _PREHASH_RegionHandle, region_handle); - mRegionp = LLWorld::getInstance()->getRegionFromHandle(region_handle); + + { + LLViewerRegion* regionp = LLWorld::getInstance()->getRegionFromHandle(region_handle); + if(regionp != mRegionp && regionp && mRegionp) + { + LLVector3 delta_pos = mRegionp->getOriginAgent() - regionp->getOriginAgent(); + setPosition(getPosition() + delta_pos) ; //update the region position immediately. + } + mRegionp = regionp ; + } + if (!mRegionp) { U32 x, y; |