Clean up indentation
parent
9ccbf6bee8
commit
5d2d6ddd5e
|
|
@ -253,7 +253,7 @@ struct LLAppearanceMessageContents
|
|||
};
|
||||
|
||||
struct LLVOAvatarChildJoint : public LLInitParam::ChoiceBlock<LLVOAvatarChildJoint>
|
||||
{
|
||||
{
|
||||
Alternative<Lazy<struct LLVOAvatarBoneInfo, IS_A_BLOCK> > bone;
|
||||
Alternative<LLVOAvatarCollisionVolumeInfo> collision_volume;
|
||||
|
||||
|
|
@ -1660,15 +1660,15 @@ void LLVOAvatar::releaseMeshData()
|
|||
LLFace* facep = mDrawable->getFace(0);
|
||||
if (facep)
|
||||
{
|
||||
facep->setSize(0, 0);
|
||||
for(S32 i = mNumInitFaces ; i < mDrawable->getNumFaces(); i++)
|
||||
{
|
||||
facep = mDrawable->getFace(i);
|
||||
facep->setSize(0, 0);
|
||||
for(S32 i = mNumInitFaces ; i < mDrawable->getNumFaces(); i++)
|
||||
{
|
||||
facep = mDrawable->getFace(i);
|
||||
if (facep)
|
||||
{
|
||||
facep->setSize(0, 0);
|
||||
}
|
||||
}
|
||||
facep->setSize(0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1855,11 +1855,11 @@ U32 LLVOAvatar::processUpdateMessage(LLMessageSystem *mesgsys,
|
|||
U32 retval = LLViewerObject::processUpdateMessage(mesgsys, user_data, block_num, update_type, dp);
|
||||
|
||||
// Print out arrival information once we have name of avatar.
|
||||
if (has_name && getNVPair("FirstName"))
|
||||
{
|
||||
mDebugExistenceTimer.reset();
|
||||
if (has_name && getNVPair("FirstName"))
|
||||
{
|
||||
mDebugExistenceTimer.reset();
|
||||
debugAvatarRezTime("AvatarRezArrivedNotification","avatar arrived");
|
||||
}
|
||||
}
|
||||
|
||||
if(retval & LLViewerObject::INVALID_UPDATE)
|
||||
{
|
||||
|
|
@ -1889,22 +1889,22 @@ LLViewerFetchedTexture *LLVOAvatar::getBakedTextureImage(const U8 te, const LLUU
|
|||
}
|
||||
|
||||
if (!result)
|
||||
{
|
||||
{
|
||||
const std::string url = getImageURL(te,uuid);
|
||||
if (!url.empty())
|
||||
{
|
||||
{
|
||||
LL_DEBUGS("Avatar") << avString() << "from URL " << url << llendl;
|
||||
result = LLViewerTextureManager::getFetchedTextureFromUrl(
|
||||
url, FTT_SERVER_BAKE, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, uuid);
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_DEBUGS("Avatar") << avString() << "from host " << uuid << llendl;
|
||||
LLHost host = getObjectHost();
|
||||
result = LLViewerTextureManager::getFetchedTexture(
|
||||
uuid, FTT_HOST_BAKE, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, host);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -2398,8 +2398,8 @@ void LLVOAvatar::idleUpdateLoadingEffect()
|
|||
{
|
||||
LL_INFOS("Avatar") << avString() << "self isFullyLoaded, mFirstFullyVisible" << LL_ENDL;
|
||||
mFirstFullyVisible = FALSE;
|
||||
LLAppearanceMgr::instance().onFirstFullyVisible();
|
||||
}
|
||||
LLAppearanceMgr::instance().onFirstFullyVisible();
|
||||
}
|
||||
if (isFullyLoaded() && mFirstFullyVisible && !isSelf())
|
||||
{
|
||||
LL_INFOS("Avatar") << avString() << "other isFullyLoaded, mFirstFullyVisible" << LL_ENDL;
|
||||
|
|
@ -4072,7 +4072,7 @@ U32 LLVOAvatar::renderTransparent(BOOL first_pass)
|
|||
{
|
||||
LLViewerJoint* hair_mesh = getViewerJoint(MESH_ID_HAIR);
|
||||
if (hair_mesh)
|
||||
{
|
||||
{
|
||||
num_indices += hair_mesh->render(mAdjustedPixelArea, first_pass, mIsDummy);
|
||||
}
|
||||
first_pass = FALSE;
|
||||
|
|
@ -5199,8 +5199,8 @@ BOOL LLVOAvatar::loadSkeletonNode ()
|
|||
{
|
||||
if (!LLAvatarAppearance::loadSkeletonNode())
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// ATTACHMENTS
|
||||
{
|
||||
|
|
@ -5731,20 +5731,21 @@ void LLVOAvatar::cleanupAttachedMesh( LLViewerObject* pVO )
|
|||
if (pSkinData
|
||||
&& pSkinData->mJointNames.size() > 20 // full rig
|
||||
&& pSkinData->mAlternateBindMatrix.size() > 0)
|
||||
{
|
||||
LLVOAvatar::resetJointPositionsToDefault();
|
||||
//Need to handle the repositioning of the cam, updating rig data etc during outfit editing
|
||||
//This handles the case where we detach a replacement rig.
|
||||
if ( gAgentCamera.cameraCustomizeAvatar() )
|
||||
{
|
||||
gAgent.unpauseAnimation();
|
||||
//Still want to refocus on head bone
|
||||
gAgentCamera.changeCameraToCustomizeAvatar();
|
||||
}
|
||||
}
|
||||
{
|
||||
LLVOAvatar::resetJointPositionsToDefault();
|
||||
//Need to handle the repositioning of the cam, updating rig data etc during outfit editing
|
||||
//This handles the case where we detach a replacement rig.
|
||||
if ( gAgentCamera.cameraCustomizeAvatar() )
|
||||
{
|
||||
gAgent.unpauseAnimation();
|
||||
//Still want to refocus on head bone
|
||||
gAgentCamera.changeCameraToCustomizeAvatar();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// detachObject()
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -5957,18 +5958,18 @@ BOOL LLVOAvatar::isWearingWearableType(LLWearableType::EType type) const
|
|||
{
|
||||
const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = tex_iter->second;
|
||||
if (texture_dict->mWearableType == type)
|
||||
{
|
||||
{
|
||||
// Thus, you must check to see if the corresponding baked texture is defined.
|
||||
// NOTE: this is a poor substitute if you actually want to know about individual pieces of clothing
|
||||
// this works for detecting a skirt (most important), but is ineffective at any piece of clothing that
|
||||
// gets baked into a texture that always exists (upper or lower).
|
||||
if (texture_dict->mIsUsedByBakedTexture)
|
||||
{
|
||||
{
|
||||
const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
|
||||
return isTextureDefined(LLAvatarAppearanceDictionary::getInstance()->getBakedTexture(baked_index)->mTextureIndex);
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
|
@ -6033,7 +6034,7 @@ void LLVOAvatar::onGlobalColorChanged(const LLTexGlobalColor* global_color, BOOL
|
|||
{
|
||||
LLAvatarJointMesh* mesh = (*iter);
|
||||
if (mesh)
|
||||
{
|
||||
{
|
||||
mesh->setColor( color );
|
||||
}
|
||||
}
|
||||
|
|
@ -6101,9 +6102,9 @@ void LLVOAvatar::updateRezzedStatusTimers()
|
|||
{
|
||||
// load level has decreased. start phase timers for higher load levels.
|
||||
for (S32 i = rez_status+1; i <= mLastRezzedStatus; i++)
|
||||
{
|
||||
{
|
||||
startPhase("load_" + LLVOAvatar::rezStatusToString(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (rez_status > mLastRezzedStatus)
|
||||
{
|
||||
|
|
@ -6112,9 +6113,9 @@ void LLVOAvatar::updateRezzedStatusTimers()
|
|||
{
|
||||
stopPhase("load_" + LLVOAvatar::rezStatusToString(i));
|
||||
stopPhase("first_load_" + LLVOAvatar::rezStatusToString(i), false);
|
||||
}
|
||||
}
|
||||
if (rez_status == 3)
|
||||
{
|
||||
{
|
||||
// "fully loaded", mark any pending appearance change complete.
|
||||
selfStopPhase("update_appearance_from_cof");
|
||||
selfStopPhase("wear_inventory_category", false);
|
||||
|
|
@ -6148,7 +6149,7 @@ void LLVOAvatar::startPhase(const std::string& phase_name)
|
|||
}
|
||||
|
||||
void LLVOAvatar::stopPhase(const std::string& phase_name, bool err_check)
|
||||
{
|
||||
{
|
||||
F32 elapsed;
|
||||
bool completed;
|
||||
if (getPhases().getPhaseValues(phase_name, elapsed, completed))
|
||||
|
|
@ -6180,7 +6181,7 @@ void LLVOAvatar::stopPhase(const std::string& phase_name, bool err_check)
|
|||
void LLVOAvatar::logPendingPhases()
|
||||
{
|
||||
if (!isAgentAvatarValid())
|
||||
{
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -6196,14 +6197,14 @@ void LLVOAvatar::logPendingPhases()
|
|||
if (!completed)
|
||||
{
|
||||
logMetricsTimerRecord(phase_name, elapsed, completed);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
void LLVOAvatar::logPendingPhasesAllAvatars()
|
||||
{
|
||||
{
|
||||
for (std::vector<LLCharacter*>::iterator iter = LLCharacter::sInstances.begin();
|
||||
iter != LLCharacter::sInstances.end(); ++iter)
|
||||
{
|
||||
|
|
@ -6214,14 +6215,14 @@ void LLVOAvatar::logPendingPhasesAllAvatars()
|
|||
}
|
||||
inst->logPendingPhases();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LLVOAvatar::logMetricsTimerRecord(const std::string& phase_name, F32 elapsed, bool completed)
|
||||
{
|
||||
{
|
||||
if (!isAgentAvatarValid())
|
||||
{
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
LLSD record;
|
||||
record["timer_name"] = phase_name;
|
||||
|
|
@ -6230,10 +6231,10 @@ void LLVOAvatar::logMetricsTimerRecord(const std::string& phase_name, F32 elapse
|
|||
record["completed"] = completed;
|
||||
U32 grid_x(0), grid_y(0);
|
||||
if (getRegion())
|
||||
{
|
||||
{
|
||||
record["central_bake_version"] = LLSD::Integer(getRegion()->getCentralBakeVersion());
|
||||
grid_from_region_handle(getRegion()->getHandle(), &grid_x, &grid_y);
|
||||
}
|
||||
}
|
||||
record["grid_x"] = LLSD::Integer(grid_x);
|
||||
record["grid_y"] = LLSD::Integer(grid_y);
|
||||
record["is_using_server_bakes"] = ((bool) isUsingServerBakes());
|
||||
|
|
@ -6294,8 +6295,8 @@ BOOL LLVOAvatar::processFullyLoadedChange(bool loading)
|
|||
|
||||
mFullyLoaded = (mFullyLoadedTimer.getElapsedTimeF32() > PAUSE);
|
||||
|
||||
if (!mPreviousFullyLoaded && !loading && mFullyLoaded)
|
||||
{
|
||||
if (!mPreviousFullyLoaded && !loading && mFullyLoaded)
|
||||
{
|
||||
debugAvatarRezTime("AvatarRezNotification","fully loaded");
|
||||
}
|
||||
|
||||
|
|
@ -6629,13 +6630,13 @@ void LLVOAvatar::applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_com
|
|||
|
||||
for (morph_list_t::const_iterator iter = mBakedTextureDatas[index].mMaskedMorphs.begin();
|
||||
iter != mBakedTextureDatas[index].mMaskedMorphs.end(); ++iter)
|
||||
{
|
||||
{
|
||||
const LLMaskedMorph* maskedMorph = (*iter);
|
||||
LLPolyMorphTarget* morph_target = dynamic_cast<LLPolyMorphTarget*>(maskedMorph->mMorphTarget);
|
||||
if (morph_target)
|
||||
{
|
||||
{
|
||||
morph_target->applyMask(tex_data, width, height, num_components, maskedMorph->mInvert);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -6918,7 +6919,7 @@ void dump_visual_param(apr_file_t* file, LLVisualParam* viewer_param, F32 value)
|
|||
LLWearableType::getTypeName(LLWearableType::EType(wtype)).c_str()
|
||||
// param_location_name(vparam->getParamLocation()).c_str()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void LLVOAvatar::dumpAppearanceMsgParams( const std::string& dump_prefix,
|
||||
|
|
@ -6933,9 +6934,9 @@ void LLVOAvatar::dumpAppearanceMsgParams( const std::string& dump_prefix,
|
|||
outfile.open(fullpath, LL_APR_WB );
|
||||
apr_file_t* file = outfile.getFileHandle();
|
||||
if (!file)
|
||||
{
|
||||
return;
|
||||
}
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_DEBUGS("Avatar") << "dumping appearance message to " << fullpath << llendl;
|
||||
|
|
@ -6969,7 +6970,7 @@ void LLVOAvatar::dumpAppearanceMsgParams( const std::string& dump_prefix,
|
|||
apr_file_printf( file, "\t\t<texture te=\"%i\" uuid=\"%s\"/>\n", i, uuid_str.c_str());
|
||||
}
|
||||
apr_file_printf(file, "</textures>\n");
|
||||
}
|
||||
}
|
||||
|
||||
void LLVOAvatar::parseAppearanceMessage(LLMessageSystem* mesgsys, LLAppearanceMessageContents& contents)
|
||||
{
|
||||
|
|
@ -7214,19 +7215,19 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
|
|||
LLVisualParam* param = contents.mParams[i];
|
||||
F32 newWeight = contents.mParamWeights[i];
|
||||
|
||||
if (is_first_appearance_message || (param->getWeight() != newWeight))
|
||||
if (is_first_appearance_message || (param->getWeight() != newWeight))
|
||||
{
|
||||
params_changed = TRUE;
|
||||
if(is_first_appearance_message)
|
||||
{
|
||||
params_changed = TRUE;
|
||||
if(is_first_appearance_message)
|
||||
{
|
||||
param->setWeight(newWeight, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
interp_params = TRUE;
|
||||
param->setAnimationTarget(newWeight, FALSE);
|
||||
}
|
||||
param->setWeight(newWeight, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
interp_params = TRUE;
|
||||
param->setAnimationTarget(newWeight, FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
const S32 expected_tweakable_count = getVisualParamCountInGroup(VISUAL_PARAM_GROUP_TWEAKABLE); // don't worry about VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
|
||||
if (num_params != expected_tweakable_count)
|
||||
|
|
@ -7482,12 +7483,12 @@ void LLVOAvatar::useBakedTexture( const LLUUID& id )
|
|||
avatar_joint_mesh_list_t::iterator iter = mBakedTextureDatas[i].mJointMeshes.begin();
|
||||
avatar_joint_mesh_list_t::iterator end = mBakedTextureDatas[i].mJointMeshes.end();
|
||||
for (; iter != end; ++iter)
|
||||
{
|
||||
{
|
||||
LLAvatarJointMesh* mesh = (*iter);
|
||||
if (mesh)
|
||||
{
|
||||
{
|
||||
mesh->setTexture( image_baked );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -7511,7 +7512,7 @@ void LLVOAvatar::useBakedTexture( const LLUUID& id )
|
|||
{
|
||||
LLAvatarJointMesh* mesh = (*iter);
|
||||
if (mesh)
|
||||
{
|
||||
{
|
||||
mesh->setColor( LLColor4::white );
|
||||
}
|
||||
}
|
||||
|
|
@ -7530,7 +7531,7 @@ std::string get_sequential_numbered_file_name(const std::string& prefix,
|
|||
file_num_type::iterator it = file_nums.find(prefix);
|
||||
S32 num = 0;
|
||||
if (it != file_nums.end())
|
||||
{
|
||||
{
|
||||
num = it->second;
|
||||
}
|
||||
file_nums[prefix] = num+1;
|
||||
|
|
@ -7547,7 +7548,7 @@ void LLVOAvatar::dumpArchetypeXML(const std::string& prefix, bool group_by_weara
|
|||
outprefix = getFullname() + (isSelf()?"_s":"_o");
|
||||
}
|
||||
if (outprefix.empty())
|
||||
{
|
||||
{
|
||||
outprefix = getFullname() + (isSelf()?"_s":"_o");
|
||||
}
|
||||
if (outprefix.empty())
|
||||
|
|
@ -7576,36 +7577,36 @@ void LLVOAvatar::dumpArchetypeXML(const std::string& prefix, bool group_by_weara
|
|||
if (group_by_wearables)
|
||||
{
|
||||
for (S32 type = LLWearableType::WT_SHAPE; type < LLWearableType::WT_COUNT; type++)
|
||||
{
|
||||
const std::string& wearable_name = LLWearableType::getTypeName((LLWearableType::EType)type);
|
||||
apr_file_printf( file, "\n\t\t<!-- wearable: %s -->\n", wearable_name.c_str() );
|
||||
{
|
||||
const std::string& wearable_name = LLWearableType::getTypeName((LLWearableType::EType)type);
|
||||
apr_file_printf( file, "\n\t\t<!-- wearable: %s -->\n", wearable_name.c_str() );
|
||||
|
||||
for (LLVisualParam* param = getFirstVisualParam(); param; param = getNextVisualParam())
|
||||
{
|
||||
LLViewerVisualParam* viewer_param = (LLViewerVisualParam*)param;
|
||||
if( (viewer_param->getWearableType() == type) &&
|
||||
(viewer_param->isTweakable() ) )
|
||||
{
|
||||
dump_visual_param(file, viewer_param, viewer_param->getWeight());
|
||||
}
|
||||
}
|
||||
|
||||
for (U8 te = 0; te < TEX_NUM_INDICES; te++)
|
||||
{
|
||||
if (LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex)te) == type)
|
||||
{
|
||||
// MULTIPLE_WEARABLES: extend to multiple wearables?
|
||||
LLViewerTexture* te_image = getImage((ETextureIndex)te, 0);
|
||||
if( te_image )
|
||||
LLViewerVisualParam* viewer_param = (LLViewerVisualParam*)param;
|
||||
if( (viewer_param->getWearableType() == type) &&
|
||||
(viewer_param->isTweakable() ) )
|
||||
{
|
||||
std::string uuid_str;
|
||||
te_image->getID().toString( uuid_str );
|
||||
apr_file_printf( file, "\t\t<texture te=\"%i\" uuid=\"%s\"/>\n", te, uuid_str.c_str());
|
||||
dump_visual_param(file, viewer_param, viewer_param->getWeight());
|
||||
}
|
||||
}
|
||||
|
||||
for (U8 te = 0; te < TEX_NUM_INDICES; te++)
|
||||
{
|
||||
if (LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex)te) == type)
|
||||
{
|
||||
// MULTIPLE_WEARABLES: extend to multiple wearables?
|
||||
LLViewerTexture* te_image = getImage((ETextureIndex)te, 0);
|
||||
if( te_image )
|
||||
{
|
||||
std::string uuid_str;
|
||||
te_image->getID().toString( uuid_str );
|
||||
apr_file_printf( file, "\t\t<texture te=\"%i\" uuid=\"%s\"/>\n", te, uuid_str.c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Just dump all params sequentially.
|
||||
|
|
@ -7756,7 +7757,7 @@ void LLVOAvatar::bodySizeChanged()
|
|||
{ // notify simulator of change in size
|
||||
// but not if we are in the middle of updating appearance
|
||||
gAgent.sendAgentSetAppearance();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BOOL LLVOAvatar::isUsingServerBakes() const
|
||||
|
|
@ -7768,21 +7769,21 @@ BOOL LLVOAvatar::isUsingServerBakes() const
|
|||
F32 wt = appearance_version_param->getWeight();
|
||||
F32 expect_wt = mUseServerBakes ? 1.0 : 0.0;
|
||||
if (!is_approx_equal(wt,expect_wt))
|
||||
{
|
||||
{
|
||||
llwarns << "wt " << wt << " differs from expected " << expect_wt << llendl;
|
||||
}
|
||||
#endif
|
||||
|
||||
return mUseServerBakes;
|
||||
}
|
||||
}
|
||||
|
||||
void LLVOAvatar::setIsUsingServerBakes(BOOL newval)
|
||||
{
|
||||
{
|
||||
mUseServerBakes = newval;
|
||||
LLVisualParam* appearance_version_param = getVisualParam(11000);
|
||||
llassert(appearance_version_param);
|
||||
appearance_version_param->setWeight(newval ? 1.0 : 0.0, false);
|
||||
}
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLVOAvatar::removeMissingBakedTextures()
|
||||
|
|
|
|||
|
|
@ -1075,9 +1075,9 @@ void LLVOAvatarSelf::wearableUpdated( LLWearableType::EType type, BOOL upload_re
|
|||
// Physics type has no associated baked textures, but change of params needs to be sent to
|
||||
// other avatars.
|
||||
if (type == LLWearableType::WT_PHYSICS)
|
||||
{
|
||||
{
|
||||
gAgent.sendAgentSetAppearance();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -1799,11 +1799,11 @@ void LLVOAvatarSelf::setLocalTexture(ETextureIndex type, LLViewerTexture* src_te
|
|||
{
|
||||
requestLayerSetUpdate(type);
|
||||
if (isEditingAppearance())
|
||||
{
|
||||
LLVisualParamHint::requestHintUpdates();
|
||||
{
|
||||
LLVisualParamHint::requestHintUpdates();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
tex->setLoadedCallback(onLocalTextureLoaded, desired_discard, TRUE, FALSE, new LLAvatarTexData(getID(), type), NULL);
|
||||
|
|
@ -2959,7 +2959,7 @@ void LLVOAvatarSelf::onCustomizeStart(bool disable_camera_switch)
|
|||
gAgentAvatarp->mUseLocalAppearance = true;
|
||||
|
||||
if (gSavedSettings.getBOOL("AppearanceCameraMovement") && !disable_camera_switch)
|
||||
{
|
||||
{
|
||||
gAgentCamera.changeCameraToCustomizeAvatar();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue