Initial AISv3 merge. New HTTP messages not plugged in yet.
This commit is contained in:
@@ -1078,6 +1078,8 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
|
||||
mIsEditingAppearance(FALSE),
|
||||
mUseLocalAppearance(FALSE),
|
||||
mUseServerBakes(FALSE), // FIXME DRANO consider using boost::optional, defaulting to unknown.
|
||||
mLastUpdateRequestCOFVersion(-1),
|
||||
mLastUpdateReceivedCOFVersion(-1),
|
||||
// <edit>
|
||||
mHasPhysicsParameters( false ),
|
||||
mIdleMinute(0),
|
||||
@@ -1144,6 +1146,7 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
|
||||
mRuthTimer.reset();
|
||||
mRuthDebugTimer.reset();
|
||||
mDebugExistenceTimer.reset();
|
||||
mLastAppearanceMessageTimer.reset();
|
||||
mPelvisOffset = LLVector3(0.0f,0.0f,0.0f);
|
||||
mLastPelvisToFoot = 0.0f;
|
||||
mPelvisFixup = 0.0f;
|
||||
@@ -3831,10 +3834,9 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
|
||||
mUseServerBakes, central_bake_version);
|
||||
std::string origin_string = bakedTextureOriginInfo();
|
||||
debug_line += " [" + origin_string + "]";
|
||||
const LLAppearanceMgr& appmgr(LLAppearanceMgr::instance());
|
||||
S32 curr_cof_version = appmgr.getCOFVersion();
|
||||
S32 last_request_cof_version = appmgr.getLastUpdateRequestCOFVersion();
|
||||
S32 last_received_cof_version = appmgr.getLastAppearanceUpdateCOFVersion();
|
||||
S32 curr_cof_version = LLAppearanceMgr::instance().getCOFVersion();
|
||||
S32 last_request_cof_version = mLastUpdateRequestCOFVersion;
|
||||
S32 last_received_cof_version = mLastUpdateReceivedCOFVersion;
|
||||
if (isSelf())
|
||||
{
|
||||
debug_line += llformat(" - cof: %d req: %d rcv:%d",
|
||||
@@ -3854,6 +3856,13 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
|
||||
debug_line += llformat(" %s", (mIsSitting ? "S" : "T"));
|
||||
debug_line += llformat("%s", (isMotionActive(ANIM_AGENT_SIT_GROUND_CONSTRAINED) ? "G" : "-"));
|
||||
}
|
||||
F32 elapsed = mLastAppearanceMessageTimer.getElapsedTimeF32();
|
||||
static const char *elapsed_chars = "Xx*...";
|
||||
U32 bucket = U32(elapsed*2);
|
||||
if (bucket < strlen(elapsed_chars))
|
||||
{
|
||||
debug_line += llformat(" %c", elapsed_chars[bucket]);
|
||||
}
|
||||
addDebugText(debug_line);
|
||||
}
|
||||
if (gSavedSettings.getBOOL("DebugAvatarCompositeBaked"))
|
||||
@@ -6350,7 +6359,7 @@ BOOL LLVOAvatar::updateGeometry(LLDrawable *drawable)
|
||||
//-----------------------------------------------------------------------------
|
||||
// updateSexDependentLayerSets()
|
||||
//-----------------------------------------------------------------------------
|
||||
void LLVOAvatar::updateSexDependentLayerSets( BOOL upload_bake )
|
||||
void LLVOAvatar::updateSexDependentLayerSets( bool upload_bake )
|
||||
{
|
||||
invalidateComposite( mBakedTextureDatas[BAKED_HEAD].mTexLayerSet, upload_bake );
|
||||
invalidateComposite( mBakedTextureDatas[BAKED_UPPER].mTexLayerSet, upload_bake );
|
||||
@@ -6958,6 +6967,29 @@ const std::string LLVOAvatar::getAttachedPointName(const LLUUID& inv_item_id)
|
||||
return LLStringUtil::null;
|
||||
}
|
||||
|
||||
LLViewerObject * LLVOAvatar::findAttachmentByID( const LLUUID & target_id ) const
|
||||
{
|
||||
for(attachment_map_t::const_iterator attachment_points_iter = mAttachmentPoints.begin();
|
||||
attachment_points_iter != gAgentAvatarp->mAttachmentPoints.end();
|
||||
++attachment_points_iter)
|
||||
{
|
||||
LLViewerJointAttachment* attachment = attachment_points_iter->second;
|
||||
for (LLViewerJointAttachment::attachedobjs_vec_t::iterator attachment_iter = attachment->mAttachedObjects.begin();
|
||||
attachment_iter != attachment->mAttachedObjects.end();
|
||||
++attachment_iter)
|
||||
{
|
||||
LLViewerObject *attached_object = (*attachment_iter);
|
||||
if (attached_object &&
|
||||
attached_object->getID() == target_id)
|
||||
{
|
||||
return attached_object;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLVOAvatar::invalidateComposite( LLTexLayerSet* layerset, BOOL upload_result )
|
||||
{
|
||||
@@ -7936,7 +7968,8 @@ void LLVOAvatar::dumpAppearanceMsgParams( const std::string& dump_prefix,
|
||||
LLVisualParam* param = getFirstVisualParam();
|
||||
for (S32 i = 0; i < (S32)params_for_dump.size(); i++)
|
||||
{
|
||||
while( param && (param->getGroup() != VISUAL_PARAM_GROUP_TWEAKABLE) ) // should not be any of group VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
|
||||
while( param && ((param->getGroup() != VISUAL_PARAM_GROUP_TWEAKABLE) &&
|
||||
(param->getGroup() != VISUAL_PARAM_GROUP_TRANSMIT_NOT_TWEAKABLE)) ) // should not be any of group VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
|
||||
{
|
||||
param = getNextVisualParam();
|
||||
}
|
||||
@@ -8017,7 +8050,8 @@ void LLVOAvatar::parseAppearanceMessage(LLMessageSystem* mesgsys, LLAppearanceMe
|
||||
{
|
||||
for( S32 i = 0; i < num_blocks; i++ )
|
||||
{
|
||||
while( param && (param->getGroup() != VISUAL_PARAM_GROUP_TWEAKABLE) ) // should not be any of group VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
|
||||
while( param && ((param->getGroup() != VISUAL_PARAM_GROUP_TWEAKABLE) &&
|
||||
(param->getGroup() != VISUAL_PARAM_GROUP_TRANSMIT_NOT_TWEAKABLE)) ) // should not be any of group VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
|
||||
{
|
||||
param = getNextVisualParam();
|
||||
}
|
||||
@@ -8038,7 +8072,8 @@ void LLVOAvatar::parseAppearanceMessage(LLMessageSystem* mesgsys, LLAppearanceMe
|
||||
}
|
||||
}
|
||||
|
||||
const S32 expected_tweakable_count = getVisualParamCountInGroup(VISUAL_PARAM_GROUP_TWEAKABLE); // don't worry about VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
|
||||
const S32 expected_tweakable_count = getVisualParamCountInGroup(VISUAL_PARAM_GROUP_TWEAKABLE) +
|
||||
getVisualParamCountInGroup(VISUAL_PARAM_GROUP_TRANSMIT_NOT_TWEAKABLE); // don't worry about VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
|
||||
if (num_blocks != expected_tweakable_count)
|
||||
{
|
||||
LL_DEBUGS("Avatar") << "Number of params in AvatarAppearance msg (" << num_blocks << ") does not match number of tweakable params in avatar xml file (" << expected_tweakable_count << "). Processing what we can. object: " << getID() << LL_ENDL;
|
||||
@@ -8114,6 +8149,8 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
|
||||
return;
|
||||
}
|
||||
|
||||
mLastAppearanceMessageTimer.reset();
|
||||
|
||||
ESex old_sex = getSex();
|
||||
|
||||
LLAppearanceMessageContents contents;
|
||||
@@ -8130,8 +8167,14 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
|
||||
return;
|
||||
}
|
||||
|
||||
if (appearance_version > 1)
|
||||
{
|
||||
LL_WARNS() << "unsupported appearance version " << appearance_version << ", discarding appearance message" << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
|
||||
S32 this_update_cof_version = contents.mCOFVersion;
|
||||
S32 last_update_request_cof_version = LLAppearanceMgr::instance().mLastUpdateRequestCOFVersion;
|
||||
S32 last_update_request_cof_version = mLastUpdateRequestCOFVersion;
|
||||
|
||||
// Only now that we have result of appearance_version can we decide whether to bail out.
|
||||
if( isSelf() )
|
||||
@@ -8140,8 +8183,6 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
|
||||
<< " last_update_request_cof_version " << last_update_request_cof_version
|
||||
<< " my_cof_version " << LLAppearanceMgr::instance().getCOFVersion() << LL_ENDL;
|
||||
|
||||
LLAppearanceMgr::instance().setLastAppearanceUpdateCOFVersion(this_update_cof_version);
|
||||
|
||||
if (getRegion() && (getRegion()->getCentralBakeVersion()==0))
|
||||
{
|
||||
LL_WARNS() << avString() << "Received AvatarAppearance message for self in non-server-bake region" << LL_ENDL;
|
||||
@@ -8189,8 +8230,16 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
|
||||
return;
|
||||
}
|
||||
|
||||
setIsUsingServerBakes(appearance_version > 0);
|
||||
// No backsies zone - if we get here, the message should be valid and usable, will be processed.
|
||||
|
||||
setIsUsingServerBakes(appearance_version > 0);
|
||||
|
||||
// Note:
|
||||
// RequestAgentUpdateAppearanceResponder::onRequestRequested()
|
||||
// assumes that cof version is only updated with server-bake
|
||||
// appearance messages.
|
||||
mLastUpdateReceivedCOFVersion = this_update_cof_version;
|
||||
|
||||
applyParsedTEMessage(contents.mTEContents);
|
||||
|
||||
SHClientTagMgr::instance().updateAvatarTag(this);
|
||||
@@ -8267,7 +8316,8 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
|
||||
}
|
||||
}
|
||||
}
|
||||
const S32 expected_tweakable_count = getVisualParamCountInGroup(VISUAL_PARAM_GROUP_TWEAKABLE); // don't worry about VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
|
||||
const S32 expected_tweakable_count = getVisualParamCountInGroup(VISUAL_PARAM_GROUP_TWEAKABLE) +
|
||||
getVisualParamCountInGroup(VISUAL_PARAM_GROUP_TRANSMIT_NOT_TWEAKABLE); // don't worry about VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
|
||||
if (num_params != expected_tweakable_count)
|
||||
{
|
||||
LL_DEBUGS("Avatar") << "Number of params in AvatarAppearance msg (" << num_params << ") does not match number of tweakable params in avatar xml file (" << expected_tweakable_count << "). Processing what we can. object: " << getID() << LL_ENDL;
|
||||
|
||||
Reference in New Issue
Block a user