diff options
| author | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2010-07-07 17:02:37 -0400 | 
|---|---|---|
| committer | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2010-07-07 17:02:37 -0400 | 
| commit | aae0b2aea834f3533879cdd52284ede52091218d (patch) | |
| tree | 57226aa4d1f256ebebb4d13beef93523a3c85604 | |
| parent | 3ca975740f9a113708509249bb6f3d2b559e17a8 (diff) | |
| parent | 11621e88827e57010bf10eea6bdedcd4f1ffa793 (diff) | |
merge
| -rw-r--r-- | indra/newview/llviewerobject.cpp | 13 | 
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) | 
