diff options
| author | Logan Dethrow <log@lindenlab.com> | 2012-11-15 15:20:46 -0500 |
|---|---|---|
| committer | Logan Dethrow <log@lindenlab.com> | 2012-11-15 15:20:46 -0500 |
| commit | 79dbaed1581a5d8212caebf6b6a3672660e2f5a9 (patch) | |
| tree | c3c539a8ce3ccfb4d7d1a66b58b56fce9b5c293b /indra/newview/llagent.cpp | |
| parent | f93604c399c889e06980554e1cb59a833e7f847d (diff) | |
| parent | 51a016a0cc6928dd2a685ce22dd6475e2610a5c5 (diff) | |
Merge lindenlab/sunshine-internal -> log/sunshine-internal
Diffstat (limited to 'indra/newview/llagent.cpp')
| -rwxr-xr-x | indra/newview/llagent.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 3e26eac59a..c49caf93be 100755 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -809,6 +809,18 @@ void LLAgent::standUp() } +void LLAgent::handleServerBakeRegionTransition(const LLUUID& region_id) +{ + llinfos << "called" << llendl; + + if (isAgentAvatarValid() && + !gAgentAvatarp->isUsingServerBakes() && + (mRegionp->getCentralBakeVersion()>0)) + { + LLAppearanceMgr::instance().requestServerAppearanceUpdate(); + } +} + //----------------------------------------------------------------------------- // setRegion() //----------------------------------------------------------------------------- @@ -904,6 +916,19 @@ void LLAgent::setRegion(LLViewerRegion *regionp) { LLEnvManagerNew::instance().onRegionCrossing(); } + + // If the newly entered region is using server bakes, and our + // current appearance is non-baked, request appearance update from + // server. + if (mRegionp->capabilitiesReceived()) + { + handleServerBakeRegionTransition(mRegionp->getRegionID()); + } + else + { + // Need to handle via callback after caps arrive. + mRegionp->setCapabilitiesReceivedCallback(boost::bind(&LLAgent::handleServerBakeRegionTransition,this,_1)); + } } |
