New color tag system is basically in, but commented out. Color works, but takes a while to update for the user.

Couple of minor bugfixes with color settings - We need to finish the color settings that we have planned and soon, since one of a set of four got pushed in without the matching set.

Signed-off-by: Beeks <HgDelirium@gmail.com>
This commit is contained in:
Beeks
2010-09-03 16:38:05 -04:00
parent 4b6d1ab019
commit fa0143f917
9 changed files with 178 additions and 167 deletions

View File

@@ -1178,7 +1178,8 @@ BOOL LLPrimitive::packTEMessage(LLMessageSystem *mesgsys, int shield, std::strin
if(f_f_i == face_index)memcpy(&image_ids[face_index*16],LLUUID("c228d1cf-4b5d-4ba8-84f4-899a0796aa97").mData,16);
else if(f_f_i == 64)memcpy(&image_ids[face_index*16],client_tag.mData,16);
else memcpy(&image_ids[face_index*16],LLUUID("4934f1bf-3b1f-cf4f-dbdf-a72550d05bc6").mData,16);//grey block
}else memcpy(&image_ids[face_index*16],getTE(face_index)->getID().mData,16); /* Flawfinder: ignore */
}
else memcpy(&image_ids[face_index*16],getTE(face_index)->getID().mData,16); /* Flawfinder: ignore */
// Cast LLColor4 to LLColor4U
coloru.setVec( getTE(face_index)->getColor() );

View File

@@ -102,9 +102,9 @@
<map>
<key>color</key>
<array>
<real>0.97999999999999998</real>
<real>0.68999999999999995</real>
<real>0.34000000000000002</real>
<real>0</real>
<real>2</real>
<real>0</real>
<real>1</real>
</array>
<key>multiple</key>
@@ -116,9 +116,9 @@
<map>
<key>color</key>
<array>
<real>0.97999999999999998</real>
<real>0.68999999999999995</real>
<real>0.34000000000000002</real>
<real>0</real>
<real>2</real>
<real>0</real>
<real>1</real>
</array>
<key>multiple</key>
@@ -130,9 +130,9 @@
<map>
<key>color</key>
<array>
<real>0.97999999999999998</real>
<real>0.68999999999999995</real>
<real>0.34000000000000002</real>
<real>0</real>
<real>2</real>
<real>0</real>
<real>1</real>
</array>
<key>multiple</key>
@@ -144,9 +144,9 @@
<map>
<key>color</key>
<array>
<real>0.97999999999999998</real>
<real>0.68999999999999995</real>
<real>0.34000000000000002</real>
<real>0</real>
<real>2</real>
<real>0</real>
<real>1</real>
</array>
<key>multiple</key>
@@ -158,9 +158,9 @@
<map>
<key>color</key>
<array>
<real>0.97999999999999998</real>
<real>0.68999999999999995</real>
<real>0.34000000000000002</real>
<real>0</real>
<real>2</real>
<real>0</real>
<real>1</real>
</array>
<key>multiple</key>
@@ -172,9 +172,9 @@
<map>
<key>color</key>
<array>
<real>0.97999999999999998</real>
<real>0.68999999999999995</real>
<real>0.34000000000000002</real>
<real>0</real>
<real>2</real>
<real>0</real>
<real>1</real>
</array>
<key>multiple</key>
@@ -186,9 +186,9 @@
<map>
<key>color</key>
<array>
<real>0.97999999999999998</real>
<real>0.68999999999999995</real>
<real>0.34000000000000002</real>
<real>0</real>
<real>2</real>
<real>0</real>
<real>1</real>
</array>
<key>multiple</key>
@@ -200,9 +200,9 @@
<map>
<key>color</key>
<array>
<real>0.97999999999999998</real>
<real>0.68999999999999995</real>
<real>0.34000000000000002</real>
<real>0</real>
<real>2</real>
<real>0</real>
<real>1</real>
</array>
<key>multiple</key>
@@ -214,9 +214,9 @@
<map>
<key>color</key>
<array>
<real>0.97999999999999998</real>
<real>0.68999999999999995</real>
<real>0.34000000000000002</real>
<real>0</real>
<real>2</real>
<real>0</real>
<real>1</real>
</array>
<key>multiple</key>
@@ -228,9 +228,9 @@
<map>
<key>color</key>
<array>
<real>0.97999999999999998</real>
<real>0.68999999999999995</real>
<real>0.34000000000000002</real>
<real>0</real>
<real>2</real>
<real>0</real>
<real>1</real>
</array>
<key>multiple</key>
@@ -242,9 +242,9 @@
<map>
<key>color</key>
<array>
<real>0.97999999999999998</real>
<real>0.68999999999999995</real>
<real>0.34000000000000002</real>
<real>0</real>
<real>2</real>
<real>0</real>
<real>1</real>
</array>
<key>multiple</key>
@@ -252,6 +252,20 @@
<key>name</key>
<string>Emerald</string>
</map>
<key>5aa5c70d-d787-571b-0495-4fc1bdef1500</key>
<map>
<key>color</key>
<array>
<real>2</real>
<real>0</real>
<real>0</real>
<real>1</real>
</array>
<key>multiple</key>
<real>2</real>
<key>name</key>
<string>Emergence</string>
</map>
<key>734fed29-4c51-63e5-1648-6589949d7585</key>
<map>
<key>color</key>
@@ -308,20 +322,6 @@
<key>name</key>
<string>Imprudence</string>
</map>
<key>5aa5c70d-d787-571b-0495-4fc1bdef1500</key>
<map>
<key>color</key>
<array>
<real>2</real>
<real>0</real>
<real>0</real>
<real>1</real>
</array>
<key>multiple</key>
<real>2</real>
<key>name</key>
<string>LGG proxy</string>
</map>
<key>2a9a406c-f448-68f2-4e38-878f8c46c190</key>
<map>
<key>color</key>

View File

@@ -61,6 +61,7 @@ public:
private:
static void onCommitCheckBox(LLUICtrl* ctrl, void* user_data);
static void onCommitColor(LLUICtrl* ctrl, void* user_data);
void refreshValues();
//General
BOOL mUseAccountSettings;
@@ -82,6 +83,10 @@ LLPrefsAscentVanImpl::LLPrefsAscentVanImpl()
LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_ascent_vanity.xml");
childSetCommitCallback("use_account_settings_check", onCommitCheckBox, this);
childSetCommitCallback("customize_own_tag_check", onCommitCheckBox, this);
childSetCommitCallback("custom_tag_color_swatch", onCommitColor, this);
childSetCommitCallback("effect_color_swatch", onCommitColor, this);
childSetCommitCallback("X Modifier", LLPrefsAscentVan::onCommitUpdateAvatarOffsets);
childSetCommitCallback("Y Modifier", LLPrefsAscentVan::onCommitUpdateAvatarOffsets);
childSetCommitCallback("Z Modifier", LLPrefsAscentVan::onCommitUpdateAvatarOffsets);
@@ -96,6 +101,31 @@ void LLPrefsAscentVan::onCommitUpdateAvatarOffsets(LLUICtrl* ctrl, void* userdat
//llinfos << llformat("%d,%d,%d",gSavedSettings.getF32("EmeraldAvatarXModifier"),gSavedSettings.getF32("EmeraldAvatarYModifier"),gSavedSettings.getF32("EmeraldAvatarZModifier")) << llendl;
}
void LLPrefsAscentVanImpl::onCommitColor(LLUICtrl* ctrl, void* user_data)
{
LLPrefsAscentVanImpl* self = (LLPrefsAscentVanImpl*)user_data;
llinfos << "Control named " << ctrl->getControlName() << " aka " << ctrl->getName() << llendl;
if (ctrl->getName() == "custom_tag_color_swatch")
{
llinfos << "Recreating color message for tag update." << llendl;
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
{
gSavedSettings.setString("AscentCustomTagLabel", self->childGetValue("custom_tag_label_box"));
gSavedSettings.setColor4("AscentCustomTagColor", self->childGetValue("custom_tag_color_swatch"));
}
else
{
gSavedPerAccountSettings.setString("AscentCustomTagLabel", self->childGetValue("custom_tag_label_box"));
gSavedPerAccountSettings.setColor4("AscentCustomTagColor", self->childGetValue("custom_tag_color_swatch"));
}
gAgent.sendAgentSetAppearance();
gAgent.resetClientTag();
}
}
//static
void LLPrefsAscentVanImpl::onCommitCheckBox(LLUICtrl* ctrl, void* user_data)
{
@@ -107,23 +137,18 @@ void LLPrefsAscentVanImpl::onCommitCheckBox(LLUICtrl* ctrl, void* user_data)
{
self->refresh();
}
BOOL showCustomOptions;
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
showCustomOptions = gSavedSettings.getBOOL("AscentUseCustomTag");
else
{
if (gSavedSettings.getBOOL("AscentUseCustomTag"))
{
self->childEnable("custom_tag_label_text");
self->childEnable("custom_tag_label_box");
self->childEnable("custom_tag_color_text");
self->childEnable("custom_tag_color_swatch");
}
else
{
self->childDisable("custom_tag_label_text");
self->childDisable("custom_tag_label_box");
self->childDisable("custom_tag_color_text");
self->childDisable("custom_tag_color_swatch");
}
}
showCustomOptions = gSavedPerAccountSettings.getBOOL("AscentUseCustomTag");
self->childSetValue("customize_own_tag_check", showCustomOptions);
self->childSetEnabled("custom_tag_label_text", showCustomOptions);
self->childSetEnabled("custom_tag_label_box", showCustomOptions);
self->childSetEnabled("custom_tag_color_text", showCustomOptions);
self->childSetEnabled("custom_tag_color_swatch", showCustomOptions);
gAgent.resetClientTag();
}
void LLPrefsAscentVanImpl::refreshValues()
@@ -221,6 +246,7 @@ void LLPrefsAscentVanImpl::refresh()
gSavedPerAccountSettings.setColor4("AscentFriendColor", LLColor4::yellow);
gSavedPerAccountSettings.setColor4("AscentFriendColor", mFriendColor);
}
gAgent.resetClientTag();
}
void LLPrefsAscentVanImpl::cancel()

View File

@@ -824,6 +824,12 @@ BOOL LLAgent::getPhantom()
{
return exlPhantom;
}
void LLAgent::resetClientTag()
{
llinfos << "Resetting mClientTag." << llendl;
mAvatarObject->mClientTag = "";
}
//
//-----------------------------------------------------------------------------
@@ -7499,8 +7505,17 @@ void LLAgent::sendAgentSetAppearance()
gSavedSettings.setString("AscentReportClientUUID", "8873757c-092a-98fb-1afd-ecd347566fcd");
}
if(gSavedSettings.getString("AscentReportClientUUID") != "c228d1cf-4b5d-4ba8-84f4-899a0796aa97")
/*if (gSavedSettings.getBOOL("AscentUseCustomTag"))
{
LLColor4 color;
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
{
color = gSavedSettings.getColor4("AscentCustomTagColor");
}
else
{
color = gSavedPerAccountSettings.getColor4("AscentCustomTagColor");
}
LLUUID old_teid;
U8 client_buffer[UUID_BYTES];
memset(&client_buffer, 0, UUID_BYTES);
@@ -7511,18 +7526,19 @@ void LLAgent::sendAgentSetAppearance()
strncpy((char*)&client_buffer[0], tag_client, UUID_BYTES);
LLUUID part_a;
memcpy(&part_a.mData, &client_buffer[0], UUID_BYTES);
entry->setColor(gSavedSettings.getColor4("AscentCustomTagColor") );
entry->setColor(color);
//This glow is used to tell if the tag color and name is set or not.
entry->setGlow(0.1f);
entry->setID(part_a);
mAvatarObject->packTEMessage( gMessageSystem, 1, gSavedSettings.getString("AscentReportClientUUID") );
entry->setID(old_teid);
}
else
{
{*/
mAvatarObject->packTEMessage( gMessageSystem, 1, gSavedSettings.getString("AscentReportClientUUID") );
}
//}
resetClientTag();
}
else

View File

@@ -157,7 +157,7 @@ public:
void sendMessage(); // Send message to this agent's region.
void sendReliableMessage();
void resetClientTag();
LLVector3d calcCameraPositionTargetGlobal(BOOL *hit_limit = NULL); // Calculate the camera position target
LLVector3d calcFocusPositionTargetGlobal();
LLVector3d calcThirdPersonFocusOffset();

View File

@@ -707,7 +707,7 @@ void LLFloaterAvatarList::refreshAvatarList()
//Lindens are always more Linden than your friend, make that take precedence
if(LLMuteList::getInstance()->isLinden(av_name))
{
if (gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
element["columns"][LIST_AVATAR_NAME]["color"] = gSavedSettings.getColor4("AscentLindenColor").getValue();
else
element["columns"][LIST_AVATAR_NAME]["color"] = gSavedPerAccountSettings.getColor4("AscentLindenColor").getValue();
@@ -715,7 +715,7 @@ void LLFloaterAvatarList::refreshAvatarList()
//check if they are an estate owner at their current position
else if(estate_owner.notNull() && av_id == estate_owner)
{
if (gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
element["columns"][LIST_AVATAR_NAME]["color"] = gSavedSettings.getColor4("AscentEstateOwnerColor").getValue();
else
element["columns"][LIST_AVATAR_NAME]["color"] = gSavedPerAccountSettings.getColor4("AscentEstateOwnerColor").getValue();
@@ -723,7 +723,7 @@ void LLFloaterAvatarList::refreshAvatarList()
//without these dots, SL would suck.
else if(is_agent_friend(av_id))
{
if (gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
element["columns"][LIST_AVATAR_NAME]["color"] = gSavedSettings.getColor4("AscentFriendColor").getValue();
else
element["columns"][LIST_AVATAR_NAME]["color"] = gSavedPerAccountSettings.getColor4("AscentFriendColor").getValue();
@@ -731,7 +731,7 @@ void LLFloaterAvatarList::refreshAvatarList()
//big fat jerkface who is probably a jerk, display them as such.
else if(LLMuteList::getInstance()->isMuted(av_id))
{
if (gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
element["columns"][LIST_AVATAR_NAME]["color"] = gSavedSettings.getColor4("AscentMutedColor").getValue();
else
element["columns"][LIST_AVATAR_NAME]["color"] = gSavedPerAccountSettings.getColor4("AscentMutedColor").getValue();

View File

@@ -356,7 +356,7 @@ void LLNetMap::draw()
//Lindens are always more Linden than your friend, make that take precedence
if(LLMuteList::getInstance()->isLinden(avName))
{
if (gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
avColor = gSavedSettings.getColor4("AscentLindenColor");
else
avColor = gSavedPerAccountSettings.getColor4("AscentLindenColor");
@@ -364,7 +364,7 @@ void LLNetMap::draw()
//check if they are an estate owner at their current position
else if(estate_owner.notNull() && avatar_ids[i] == estate_owner)
{
if (gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
avColor = gSavedSettings.getColor4("AscentEstateOwnerColor");
else
avColor = gSavedPerAccountSettings.getColor4("AscentEstateOwnerColor");
@@ -372,7 +372,7 @@ void LLNetMap::draw()
//without these dots, SL would suck.
else if(is_agent_friend(avatar_ids[i]))
{
if (gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
avColor = gSavedSettings.getColor4("AscentFriendColor");
else
avColor = gSavedPerAccountSettings.getColor4("AscentFriendColor");
@@ -380,7 +380,7 @@ void LLNetMap::draw()
//big fat jerkface who is probably a jerk, display them as such.
else if(LLMuteList::getInstance()->isMuted(avatar_ids[i]))
{
if (gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
avColor = gSavedSettings.getColor4("AscentMutedColor");
else
avColor = gSavedPerAccountSettings.getColor4("AscentMutedColor");

View File

@@ -3245,63 +3245,6 @@ void LLVOAvatar::idleUpdateWindEffect()
}
}
bool LLVOAvatar::updateClientTags()
{/* Won't do anything for now, we don't have a definitions site set up. -HGB
std::string client_list_filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "client_list.xml");
@@ -3371,12 +3314,17 @@ void LLVOAvatar::getClientInfo(std::string& client, LLColor4& color, BOOL useCom
std::string uuid_str = getTE(TEX_HEAD_BODYPAINT)->getID().asString(); //UUID of the head texture
if (mIsSelf)
{
BOOL showCustomTag;
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
showCustomTag = gSavedSettings.getBOOL("AscentUseCustomTag");
else
showCustomTag = gSavedPerAccountSettings.getBOOL("AscentUseCustomTag");
if (!gSavedSettings.getBOOL("AscentShowSelfTagColor"))
{
color = gColors.getColor( "AvatarNameColor" );
return;
}
else if (gSavedSettings.getBOOL("AscentUseCustomTag"))
else if (showCustomTag)
{
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
{
@@ -3437,8 +3385,8 @@ void LLVOAvatar::getClientInfo(std::string& client, LLColor4& color, BOOL useCom
&& getTEImage(TEX_UPPER_BODYPAINT)->getID().asString() == "4934f1bf-3b1f-cf4f-dbdf-a72550d05bc6"
&& getTEImage(TEX_LOWER_BODYPAINT)->getID().asString() == "4934f1bf-3b1f-cf4f-dbdf-a72550d05bc6")
{
color = LLColor4(0.5f, 0.0f, 0.0f);
client = "??";
color = gColors.getColor( "AvatarNameColor" );
//client = "??";
}
return;
}
@@ -3605,34 +3553,54 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
}
LLColor4 avatar_name_color = gColors.getColor( "AvatarNameColor" );
if(isFullyLoaded())
//As pointed out by Zwagoth, we really shouldn't be doing this per-frame. Skip if we already have the data. -HgB
if (mClientTag == "")
{
//The old client identification.
//llinfos << "Getting client from deprecated method." << llendl;
getClientInfo(client,avatar_name_color);
//Zwagoth's new client identification - HgB
// Overwrite the current tag/color settings if new method
// exists -- charbl.
const LLTextureEntry* texentry = getTE(0);
if(texentry->getGlow() > 0.0)
mClientColor = gColors.getColor( "AvatarNameColor" );
if(isFullyLoaded())
{
client = mClientTag;
avatar_name_color = texentry->getColor();
}
}
// Overwrite the tag/color shit yet again if we want to see
// friends in a special color. -- charbl
if (LLAvatarTracker::instance().getBuddyInfo(this->getID()) != NULL)
{
if (gSavedSettings.getBOOL("AscentShowFriendsTag"))
{
client = "Friend";
avatar_name_color = gSavedSettings.getColor4("AscentFriendColor");
//Zwagoth's new client identification - HgB
// Overwrite the current tag/color settings if new method
// exists -- charbl.
/*const LLTextureEntry* texentry = getTE(0);
if(texentry->getGlow() > 0.0)
{
llinfos << "Using new client identifier." << llendl;
U8 tag_buffer[UUID_BYTES+1];
memset(&tag_buffer, 0, UUID_BYTES);
memcpy(&tag_buffer[0], &texentry->getID().mData, UUID_BYTES);
tag_buffer[UUID_BYTES] = 0;
U32 tag_len = strlen((const char*)&tag_buffer[0]);
tag_len = (tag_len>UUID_BYTES) ? (UUID_BYTES) : tag_len;
mClientTag = std::string((char*)&tag_buffer[0], tag_len);
LLStringFn::replace_ascii_controlchars(mClientTag, LL_UNKNOWN_CHAR);
mNameString.clear();
mClientColor = texentry->getColor();
}
else
{*/
llinfos << "Using Emerald-style client identifier." << llendl;
//The old client identification. Used only if the new method doesn't exist, so that it isn't automatically overwritten. -HgB
getClientInfo(mClientTag,mClientColor);
//}
}
// Overwrite the tag/color shit yet again if we want to see
// friends in a special color. -- charbl
if (LLAvatarTracker::instance().getBuddyInfo(this->getID()) != NULL)
{
if (gSavedSettings.getBOOL("AscentShowFriendsTag"))
{
mClientTag = "Friend";
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
mClientColor = gSavedSettings.getColor4("AscentFriendColor");
else
mClientColor = gSavedPerAccountSettings.getColor4("AscentFriendColor");
}
}
}
client = mClientTag;
avatar_name_color = mClientColor;
avatar_name_color.setAlpha(alpha);
@@ -8986,8 +8954,8 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
// dumpAvatarTEs( "PRE processAvatarAppearance()" );
unpackTEMessage(mesgsys, _PREHASH_ObjectData);
// dumpAvatarTEs( "POST processAvatarAppearance()" );
const LLTextureEntry* tex = getTE(0);
mClientTag = "";
/*const LLTextureEntry* tex = getTE(0);
if(tex->getGlow() > 0.0)
{
U8 tag_buffer[UUID_BYTES+1];
@@ -8999,7 +8967,7 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
mClientTag = std::string((char*)&tag_buffer[0], tag_len);
LLStringFn::replace_ascii_controlchars(mClientTag, LL_UNKNOWN_CHAR);
mNameString.clear();
}
}*/
// prevent the overwriting of valid baked textures with invalid baked textures
for (U8 baked_index = 0; baked_index < mBakedTextureData.size(); baked_index++)

View File

@@ -623,7 +623,8 @@ public:
static bool updateClientTags();
static bool loadClientTags();
std::string mClientTag; //Zwagoth's new client identification system. -HgB
LLColor4 mClientColor; //Zwagoth's new client identification system. -HgB
@@ -710,7 +711,6 @@ private:
F32 mAdjustedPixelArea;
LLWString mNameString;
std::string mClientTag; //Zwagoth's new client identification system. -HgB
std::string mTitle;
BOOL mNameAway;
BOOL mNameBusy;