summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerobject.cpp
diff options
context:
space:
mode:
authorDessie Linden <dessie@lindenlab.com>2010-07-07 08:36:21 -0700
committerDessie Linden <dessie@lindenlab.com>2010-07-07 08:36:21 -0700
commitf6ac20860fb5110571802dd0a5ac76d236855ba7 (patch)
tree63731864000d07323e867d333da4f6f778bbdae1 /indra/newview/llviewerobject.cpp
parenta6b108641489caca1717b98cb888ef2de923f1fc (diff)
parentaef4f6ccabe0b2f72296f1a4ae5634080396690a (diff)
Merged from viewer-release
Diffstat (limited to 'indra/newview/llviewerobject.cpp')
-rw-r--r--indra/newview/llviewerobject.cpp12
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;