Snapshot Freeze Time: add Langolier tag for new (invisible) avatars.

If an avatar TP's in while you are in Freeze Time mode, they now have a
visible tag with the tag 'Langolier' in it. After exiting Freeze Time
mode they become visible. Before they would stay invisible.
This commit is contained in:
Aleric Inglewood
2013-01-03 00:02:28 +01:00
parent cc276ff232
commit b0fe12f597
5 changed files with 27 additions and 14 deletions

View File

@@ -1011,7 +1011,7 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
mAttachmentGeometryBytes(0),
mAttachmentSurfaceArea(0.f),
mTurning(FALSE),
mFreezeTimeHidden(freeze_time),
mFreezeTimeLangolier(freeze_time),
mFreezeTimeDead(false),
mPelvisToFoot(0.f),
mLastSkeletonSerialNum( 0 ),
@@ -1238,7 +1238,7 @@ LLVOAvatar::~LLVOAvatar()
void LLVOAvatar::markDead()
{
static const LLCachedControl<bool> freeze_time("FreezeTime", false);
if (freeze_time && !mFreezeTimeHidden)
if (freeze_time && !mFreezeTimeLangolier)
{
// Delay the call to this function until FreezeTime is reset, otherwise avatars disappear from the frozen scene.
mFreezeTimeDead = true;
@@ -2884,11 +2884,6 @@ void LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
return;
}
if (mFreezeTimeHidden)
{
return;
}
checkTextureLoading() ;
// force immediate pixel area update on avatars using last frames data (before drawable or camera updates)
@@ -3682,6 +3677,7 @@ void LLVOAvatar::idleUpdateNameTagText(BOOL new_name)
}
bool is_friend = LLAvatarTracker::instance().isBuddy(getID());
bool is_cloud = getIsCloud();
bool is_langolier = isLangolier();
if (is_appearance != mNameAppearance)
{
@@ -3707,7 +3703,8 @@ void LLVOAvatar::idleUpdateNameTagText(BOOL new_name)
|| is_muted != mNameMute
|| is_appearance != mNameAppearance
|| is_friend != mNameFriend
|| is_cloud != mNameCloud)
|| is_cloud != mNameCloud
|| is_langolier != mNameLangolier)
{
LLColor4 name_tag_color = getNameTagColor(is_friend);
@@ -3717,7 +3714,7 @@ void LLVOAvatar::idleUpdateNameTagText(BOOL new_name)
std::string firstnameText;
std::string lastnameText;
if (is_away || is_muted || is_busy || is_appearance || !idle_string.empty())
if (is_away || is_muted || is_busy || is_appearance || is_langolier || !idle_string.empty())
{
std::string line;
if (is_away)
@@ -3740,7 +3737,12 @@ void LLVOAvatar::idleUpdateNameTagText(BOOL new_name)
line += LLTrans::getString("AvatarEditingAppearance"); //"(Editing Appearance)"
line += ", ";
}
if (is_cloud)
if (is_langolier)
{
line += LLTrans::getString("AvatarLangolier"); //"Langolier"
line += ", ";
}
else if (is_cloud)
{
line += LLTrans::getString("LoadingData"); //"Loading..."
line += ", ";
@@ -3867,6 +3869,7 @@ void LLVOAvatar::idleUpdateNameTagText(BOOL new_name)
mNameAppearance = is_appearance;
mNameFriend = is_friend;
mNameCloud = is_cloud;
mNameLangolier = is_langolier;
mTitle = title ? title->getString() : "";
LLStringFn::replace_ascii_controlchars(mTitle,LL_UNKNOWN_CHAR);
new_name = TRUE;
@@ -4104,13 +4107,14 @@ bool LLVOAvatar::isVisuallyMuted() const
return LLMuteList::getInstance()->isMuted(getID()) ||
(mAttachmentGeometryBytes > max_attachment_bytes && max_attachment_bytes > 0) ||
(mAttachmentSurfaceArea > max_attachment_area && max_attachment_area > 0.f);
(mAttachmentSurfaceArea > max_attachment_area && max_attachment_area > 0.f) ||
isLangolier();
}
void LLVOAvatar::resetFreezeTime()
{
bool dead = mFreezeTimeDead;
mFreezeTimeHidden = mFreezeTimeDead = false;
mFreezeTimeLangolier = mFreezeTimeDead = false;
if (dead)
{
markDead();
@@ -7591,7 +7595,7 @@ void LLVOAvatar::updateRuthTimer(bool loading)
return;
}
if (mPreviousFullyLoaded || mFreezeTimeHidden)
if (mPreviousFullyLoaded)
{
mRuthTimer.reset();
debugAvatarRezTime("AvatarRezCloudNotification","became cloud");