Breast physics is more fully implemented - Default values may be too subtle for some users, look for them in the Vanity preferences.

Client Tags are corrected, it was using the wrong value after being set.
Show LookAt now has a checkbox option in the Security tab for people who don't want to use the Advanced menu.
Logout/Teleport screen options are now controlled.

Signed-off-by: Beeks <HgDelirium@gmail.com>
This commit is contained in:
Beeks
2010-08-29 23:51:20 -04:00
parent a3f3dad4c4
commit f0cb6acf40
8 changed files with 8688 additions and 8503 deletions

View File

@@ -101,7 +101,6 @@
<key>Value</key> <key>Value</key>
<integer>1</integer> <integer>1</integer>
</map> </map>
<!-- Expanded Settings that have optionally Account-Specific alternatives -->
<key>BroadcastViewerEffects</key> <key>BroadcastViewerEffects</key>
<map> <map>
<key>Comment</key> <key>Comment</key>
@@ -113,95 +112,130 @@
<key>Value</key> <key>Value</key>
<integer>0</integer> <integer>0</integer>
</map> </map>
<key>AscentDisableLogoutScreens</key>
<map>
<key>Comment</key>
<string>Disable logout screen progress bar</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>AscentDisableTeleportScreens</key>
<map>
<key>Comment</key>
<string>Disable teleport screens</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>EmeraldUseProperArc</key>
<map>
<key>Comment</key>
<string>Enables/Disables a fixed ARC counter</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>EmeraldBoobMass</key>
<map>
<key>Comment</key>
<string>Mass of boobs.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>54.0</real>
</map>
<key>EmeraldBoobHardness</key>
<map>
<key>Comment</key>
<string>Hardness (dampening) of boobs.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>51</real>
</map>
<key>EmeraldBreastPhysicsToggle</key>
<map>
<key>Comment</key>
<string>Enables/Disables breast physics</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>EmeraldBreastSportsBra</key>
<map>
<key>Comment</key>
<string>allows disabling the physics for 1 av, in case their outfit looks wrong with it on</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>EmeraldBoobVelMax</key>
<map>
<key>Comment</key>
<string>Max amount of velocity boobs can have</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>64</real>
</map>
<key>EmeraldBoobFriction</key>
<map>
<key>Comment</key>
<string>Internal friction (brings boobs to rest). Shouldn't ever be above 1.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>80</real>
</map>
<key>EmeraldBoobVelMin</key>
<map>
<key>Comment</key>
<string>Friction Fraction of FPS (used to keep friction uniform through FPS change).</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>24</real>
</map>
<key>EmeraldBoobXYInfluence</key>
<map>
<key>Comment</key>
<string>Amount of influence along the X and Y planes.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>0.1</real>
</map>
<!-- Expanded Settings that have optionally Account-Specific alternatives -->
<!-- Ascent-Specific Settings --> <!-- Ascent-Specific Settings -->
<key>EmeraldBoobMass</key>
<map>
<key>Comment</key>
<string>Mass of boobs.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>54.0</real>
</map>
<key>EmeraldBoobHardness</key>
<map>
<key>Comment</key>
<string>Hardness (dampening) of boobs.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>51</real>
</map>
<key>EmeraldBreastPhysicsToggle</key>
<map>
<key>Comment</key>
<string>Enables/Disables breast physics</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>EmeraldBreastSportsBra</key>
<map>
<key>Comment</key>
<string>allows disabling the physics for 1 av, in case their outfit looks wrong with it on</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>EmeraldBoobVelMax</key>
<map>
<key>Comment</key>
<string>Max amount of velocity boobs can have</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>64</real>
</map>
<key>EmeraldBoobFriction</key>
<map>
<key>Comment</key>
<string>Internal friction (brings boobs to rest). Shouldn't ever be above 1.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>80</real>
</map>
<key>EmeraldBoobVelMin</key>
<map>
<key>Comment</key>
<string>Friction Fraction of FPS (used to keep friction uniform through FPS change).</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>24</real>
</map>
<key>EmeraldBoobXYInfluence</key>
<map>
<key>Comment</key>
<string>Amount of influence along the X and Y planes.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>0.1</real>
</map>
<key>AscentCmdLine</key> <key>AscentCmdLine</key>
<map> <map>
<key>Comment</key> <key>Comment</key>
@@ -301,7 +335,7 @@
<key>Value</key> <key>Value</key>
<string>mapto</string> <string>mapto</string>
</map> </map>
<key>AscentCmdLineMapToKeepPos</key> <key>AscentMapToKeepPos</key>
<map> <map>
<key>Comment</key> <key>Comment</key>
<string>Attempt to arrive in the same location you were at.</string> <string>Attempt to arrive in the same location you were at.</string>

View File

@@ -36,11 +36,13 @@
#include "ascentprefssys.h" #include "ascentprefssys.h"
#include "llcolorswatch.h" #include "llcolorswatch.h"
#include "llvoavatar.h" #include "llvoavatar.h"
#include "llhudeffectlookat.h"
#include "llagent.h" #include "llagent.h"
#include "llstartup.h" #include "llstartup.h"
#include "llviewercontrol.h" #include "llviewercontrol.h"
#include "lluictrlfactory.h" #include "lluictrlfactory.h"
#include "llcombobox.h" #include "llcombobox.h"
#include "llradiogroup.h"
#include "llwind.h" #include "llwind.h"
#include "llviewernetwork.h" #include "llviewernetwork.h"
#include "pipeline.h" #include "pipeline.h"
@@ -86,6 +88,7 @@ private:
BOOL mBroadcastViewerEffects; BOOL mBroadcastViewerEffects;
BOOL mDisablePointAtAndBeam; BOOL mDisablePointAtAndBeam;
BOOL mPrivateLookAt; BOOL mPrivateLookAt;
BOOL mShowLookAt;
BOOL mRevokePermsOnStandUp; BOOL mRevokePermsOnStandUp;
}; };
@@ -121,6 +124,10 @@ void LLPrefsAscentSysImpl::onCommitCheckBox(LLUICtrl* ctrl, void* user_data)
self->childDisable("speed_rez_seconds"); self->childDisable("speed_rez_seconds");
} }
} }
else if (ctrl->getControlName() == "ShowLookAt")
{
LLHUDEffectLookAt::sDebugLookAt = self->childGetValue("show_look_at_check").asBoolean();
}
} }
void LLPrefsAscentSysImpl::refreshValues() void LLPrefsAscentSysImpl::refreshValues()
@@ -155,6 +162,7 @@ void LLPrefsAscentSysImpl::refreshValues()
mBroadcastViewerEffects = gSavedSettings.getBOOL("BroadcastViewerEffects"); mBroadcastViewerEffects = gSavedSettings.getBOOL("BroadcastViewerEffects");
mDisablePointAtAndBeam = gSavedSettings.getBOOL("DisablePointAtAndBeam"); mDisablePointAtAndBeam = gSavedSettings.getBOOL("DisablePointAtAndBeam");
mPrivateLookAt = gSavedSettings.getBOOL("PrivateLookAt"); mPrivateLookAt = gSavedSettings.getBOOL("PrivateLookAt");
mShowLookAt = LLHUDEffectLookAt::sDebugLookAt;
mRevokePermsOnStandUp = gSavedSettings.getBOOL("RevokePermsOnStandUp"); mRevokePermsOnStandUp = gSavedSettings.getBOOL("RevokePermsOnStandUp");
} }
@@ -174,33 +182,9 @@ void LLPrefsAscentSysImpl::refresh()
childSetValue("seconds_in_chat_and_ims_check", mSecondsInChatAndIMs); childSetValue("seconds_in_chat_and_ims_check", mSecondsInChatAndIMs);
childSetValue("allow_mu_pose_check", mEnableMUPose); childSetValue("allow_mu_pose_check", mEnableMUPose);
childSetValue("close_ooc_check", mEnableOOCAutoClose); childSetValue("close_ooc_check", mEnableOOCAutoClose);
//Show Links LLRadioGroup* radioLinkOptions = getChild<LLRadioGroup>("objects_link");
//Time Format radioLinkOptions->selectNthItem(mLinksForChattingObjects);
//Date Format //childSetValue("objects_link", mLinksForChattingObjects);
childSetValue("seconds_in_chat_and_ims_check", mEnableOOCAutoClose);
//Save Performance --------------------------------------------------------------------
childSetValue("fetch_inventory_on_login_check", mFetchInventoryOnLogin);
childSetValue("enable_wind", mEnableLLWind);
childSetValue("enable_clouds", mEnableClouds);
childSetValue("speed_rez_check", mSpeedRez);
if (mSpeedRez)
{
childEnable("speed_rez_interval");
childEnable("speed_rez_seconds");
}
else
{
childDisable("speed_rez_interval");
childDisable("speed_rez_seconds");
}
//Command Line ------------------------------------------------------------------------
//Privacy -----------------------------------------------------------------------------
childSetValue("broadcast_viewer_effects", mBroadcastViewerEffects);
childSetValue("disable_point_at_and_beams_check", mDisablePointAtAndBeam);
childSetValue("private_look_at_check", mPrivateLookAt);
childSetValue("revoke_perms_on_stand_up_check", mRevokePermsOnStandUp);
std::string format = gSavedSettings.getString("ShortTimeFormat"); std::string format = gSavedSettings.getString("ShortTimeFormat");
if (format.find("%p") == -1) if (format.find("%p") == -1)
{ {
@@ -238,6 +222,31 @@ void LLPrefsAscentSysImpl::refresh()
{ {
combo->setCurrentByIndex(mDateFormat); combo->setCurrentByIndex(mDateFormat);
} }
childSetValue("seconds_in_chat_and_ims_check", mEnableOOCAutoClose);
//Save Performance --------------------------------------------------------------------
childSetValue("fetch_inventory_on_login_check", mFetchInventoryOnLogin);
childSetValue("enable_wind", mEnableLLWind);
childSetValue("enable_clouds", mEnableClouds);
childSetValue("speed_rez_check", mSpeedRez);
if (mSpeedRez)
{
childEnable("speed_rez_interval");
childEnable("speed_rez_seconds");
}
else
{
childDisable("speed_rez_interval");
childDisable("speed_rez_seconds");
}
//Command Line ------------------------------------------------------------------------
//Privacy -----------------------------------------------------------------------------
childSetValue("broadcast_viewer_effects", mBroadcastViewerEffects);
childSetValue("disable_point_at_and_beams_check", mDisablePointAtAndBeam);
childSetValue("private_look_at_check", mPrivateLookAt);
childSetValue("show_look_at_check", mShowLookAt);
childSetValue("revoke_perms_on_stand_up_check", mRevokePermsOnStandUp);
} }
void LLPrefsAscentSysImpl::cancel() void LLPrefsAscentSysImpl::cancel()
@@ -304,7 +313,7 @@ void LLPrefsAscentSysImpl::apply()
gSavedSettings.setBOOL("AscentHideTypingNotification", childGetValue("hide_typing_check")); gSavedSettings.setBOOL("AscentHideTypingNotification", childGetValue("hide_typing_check"));
gSavedSettings.setBOOL("AscentAllowMUpose", childGetValue("allow_mu_pose_check")); gSavedSettings.setBOOL("AscentAllowMUpose", childGetValue("allow_mu_pose_check"));
gSavedSettings.setBOOL("AscentAutoCloseOOC", childGetValue("close_ooc_check")); gSavedSettings.setBOOL("AscentAutoCloseOOC", childGetValue("close_ooc_check"));
gSavedSettings.setU32("LinksForChattingObjects", childGetValue("objects_link").asInteger()); //gSavedSettings.setU32("LinksForChattingObjects", childGetValue("objects_link"). );
LLComboBox* combo = getChild<LLComboBox>("time_format_combobox"); LLComboBox* combo = getChild<LLComboBox>("time_format_combobox");
if (combo) { if (combo) {
@@ -379,15 +388,16 @@ void LLPrefsAscentSysImpl::apply()
gSavedSettings.setString("AscentCmdTeleportToCam", childGetValue("AscentCmdTeleportToCam")); gSavedSettings.setString("AscentCmdTeleportToCam", childGetValue("AscentCmdTeleportToCam"));
gSavedSettings.setString("AscentCmdLineKeyToName", childGetValue("AscentCmdLineKeyToName")); gSavedSettings.setString("AscentCmdLineKeyToName", childGetValue("AscentCmdLineKeyToName"));
gSavedSettings.setString("AscentCmdLineOfferTp", childGetValue("AscentCmdLineOfferTp")); gSavedSettings.setString("AscentCmdLineOfferTp", childGetValue("AscentCmdLineOfferTp"));
gSavedSettings.setString("AscentCmdLineMapTo", childGetValue("AscentCmdLineMapTo")); gSavedSettings.setString("AscentCmdLineMapTo", childGetValue("AscentCmdLineMapTo"));
gSavedSettings.setBOOL("AscentCmdLineMapToKeepPos", childGetValue("AscentCmdLineMapToKeepPos")); gSavedSettings.setBOOL("AscentMapToKeepPos", childGetValue("AscentMapToKeepPos"));
gSavedSettings.setString("AscentCmdLineTP2", childGetValue("AscentCmdLineTP2")); gSavedSettings.setString("AscentCmdLineTP2", childGetValue("AscentCmdLineTP2"));
//Privacy -------------------------------------------------------------------------------- //Privacy --------------------------------------------------------------------------------
gSavedSettings.setBOOL("BroadcastViewerEffects", childGetValue("broadcast_viewer_effects")); gSavedSettings.setBOOL("BroadcastViewerEffects", childGetValue("broadcast_viewer_effects"));
gSavedSettings.setBOOL("DisablePointAtAndBeam", childGetValue("disable_point_at_and_beams_check")); gSavedSettings.setBOOL("DisablePointAtAndBeam", childGetValue("disable_point_at_and_beams_check"));
gSavedSettings.setBOOL("PrivateLookAt", childGetValue("private_look_at_check")); gSavedSettings.setBOOL("PrivateLookAt", childGetValue("private_look_at_check"));
LLHUDEffectLookAt::sDebugLookAt = childGetValue("show_look_at_check");
gSavedSettings.setBOOL("RevokePermsOnStandUp", childGetValue("revoke_perms_on_stand_up_check")); gSavedSettings.setBOOL("RevokePermsOnStandUp", childGetValue("revoke_perms_on_stand_up_check"));
refreshValues(); refreshValues();

View File

@@ -7514,13 +7514,13 @@ void LLAgent::sendAgentSetAppearance()
msg->nextBlockFast(_PREHASH_ObjectData); msg->nextBlockFast(_PREHASH_ObjectData);
// Tag changing support // Tag changing support
if (!gSavedSettings.controlExists("SpoofClientUUID")) if (!gSavedSettings.controlExists("AscentSpoofClientUUID"))
{ {
gSavedSettings.declareString("SpoofClientUUID", "8873757c-092a-98fb-1afd-ecd347566fcd", "FAKIN' BAKE-IN"); gSavedSettings.declareString("AscentSpoofClientUUID", "8873757c-092a-98fb-1afd-ecd347566fcd", "FAKIN' BAKE-IN");
gSavedSettings.setString("SpoofClientUUID", "8873757c-092a-98fb-1afd-ecd347566fcd"); gSavedSettings.setString("AscentSpoofClientUUID", "8873757c-092a-98fb-1afd-ecd347566fcd");
} }
mAvatarObject->packTEMessage( gMessageSystem, 1, gSavedSettings.getString("SpoofClientUUID") ); mAvatarObject->packTEMessage( gMessageSystem, 1, gSavedSettings.getString("AscentSpoofClientUUID") );
} }
else else
{ {

View File

@@ -86,8 +86,7 @@
#include "llvoiceclient.h" #include "llvoiceclient.h"
#include "llvoicevisualizer.h" // Ventrella #include "llvoicevisualizer.h" // Ventrella
#include "llsdserialize.h" //For the client definitions
#include "llsdserialize.h"
// <edit> // <edit>
#include "llfloaterexploreanimations.h" #include "llfloaterexploreanimations.h"
#include "llao.h" #include "llao.h"
@@ -710,6 +709,9 @@ BOOL LLVOAvatar::sJointDebug = FALSE;
EmeraldGlobalBoobConfig LLVOAvatar::sBoobConfig; EmeraldGlobalBoobConfig LLVOAvatar::sBoobConfig;
F32 LLVOAvatar::sAvMorphTime = 0.65f;
F32 LLVOAvatar::sUnbakedTime = 0.f; F32 LLVOAvatar::sUnbakedTime = 0.f;
F32 LLVOAvatar::sUnbakedUpdateTime = 0.f; F32 LLVOAvatar::sUnbakedUpdateTime = 0.f;
F32 LLVOAvatar::sGreyTime = 0.f; F32 LLVOAvatar::sGreyTime = 0.f;
@@ -1186,45 +1188,45 @@ void LLVOAvatar::dumpScratchTextureByteCount()
llinfos << "Scratch Texture GL: " << (sScratchTexBytes/1024) << "KB" << llendl; llinfos << "Scratch Texture GL: " << (sScratchTexBytes/1024) << "KB" << llendl;
} }
// static
void LLVOAvatar::getMeshInfo (mesh_info_t* mesh_info)
{
if (!mesh_info) return;
LLVOAvatarXmlInfo::mesh_info_list_t::iterator iter = sAvatarXmlInfo->mMeshInfoList.begin();
LLVOAvatarXmlInfo::mesh_info_list_t::iterator end = sAvatarXmlInfo->mMeshInfoList.end();
for (; iter != end; ++iter)
{
LLVOAvatarXmlInfo::LLVOAvatarMeshInfo* avatar_info = (*iter);
std::string type = avatar_info->mType;
S32 lod = avatar_info->mLOD;
std::string file = avatar_info->mMeshFileName;
mesh_info_t::iterator iter_info = mesh_info->find(type);
if(iter_info == mesh_info->end())
{
lod_mesh_map_t lod_mesh;
lod_mesh.insert(std::pair<S32,std::string>(lod, file));
mesh_info->insert(std::pair<std::string,lod_mesh_map_t>(type, lod_mesh));
}
else
{
lod_mesh_map_t& lod_mesh = iter_info->second;
lod_mesh_map_t::iterator iter_lod = lod_mesh.find(lod);
if (iter_lod == lod_mesh.end())
{
lod_mesh.insert(std::pair<S32,std::string>(lod, file));
}
else
{
// Should never happen
llwarns << "Duplicate mesh LOD " << type << " " << lod << " " << file << llendl;
}
}
}
return;
}
// static // static
@@ -2127,6 +2129,8 @@ void LLVOAvatar::buildCharacter()
if (attachment->getGroup() == i) if (attachment->getGroup() == i)
{ {
LLMenuItemCallGL* item; LLMenuItemCallGL* item;
item = new LLMenuItemCallGL(attachment->getName(), item = new LLMenuItemCallGL(attachment->getName(),
NULL, NULL,
object_selected_and_point_valid); object_selected_and_point_valid);
@@ -2190,6 +2194,8 @@ void LLVOAvatar::buildCharacter()
if (attachment->getGroup() == 8) if (attachment->getGroup() == 8)
{ {
LLMenuItemCallGL* item; LLMenuItemCallGL* item;
item = new LLMenuItemCallGL(attachment->getName(), item = new LLMenuItemCallGL(attachment->getName(),
NULL, NULL,
object_selected_and_point_valid); object_selected_and_point_valid);
@@ -2937,7 +2943,7 @@ void LLVOAvatar::idleUpdateAppearanceAnimation()
{ {
ESex avatar_sex = getSex(); ESex avatar_sex = getSex();
F32 appearance_anim_time = mAppearanceMorphTimer.getElapsedTimeF32(); F32 appearance_anim_time = mAppearanceMorphTimer.getElapsedTimeF32();
if (appearance_anim_time >= APPEARANCE_MORPH_TIME) if (appearance_anim_time >= sAvMorphTime)
{ {
mAppearanceAnimating = FALSE; mAppearanceAnimating = FALSE;
for (LLVisualParam *param = getFirstVisualParam(); for (LLVisualParam *param = getFirstVisualParam();
@@ -2958,15 +2964,15 @@ void LLVOAvatar::idleUpdateAppearanceAnimation()
} }
else else
{ {
F32 blend_frac = calc_bouncy_animation(appearance_anim_time / APPEARANCE_MORPH_TIME); F32 blend_frac = calc_bouncy_animation(appearance_anim_time / sAvMorphTime);
F32 last_blend_frac = calc_bouncy_animation(mLastAppearanceBlendTime / APPEARANCE_MORPH_TIME); F32 last_blend_frac = calc_bouncy_animation(mLastAppearanceBlendTime / sAvMorphTime);
F32 morph_amt; F32 morph_amt;
// if it's over 5 seconds, just forget the bouncy anim
if(sAvMorphTime > 5.f)
{
blend_frac = appearance_anim_time / sAvMorphTime;
last_blend_frac = mLastAppearanceBlendTime / sAvMorphTime;
}
if (last_blend_frac == 1.f) if (last_blend_frac == 1.f)
{ {
morph_amt = 1.f; morph_amt = 1.f;
@@ -3027,7 +3033,6 @@ void LLVOAvatar::idleUpdateBoobEffect()
EmeraldBoobState newBoobState = EmeraldBoobUtils::idleUpdate(sBoobConfig, mLocalBoobConfig, mBoobState, boobInputs); EmeraldBoobState newBoobState = EmeraldBoobUtils::idleUpdate(sBoobConfig, mLocalBoobConfig, mBoobState, boobInputs);
if(mBoobState.boobGrav != newBoobState.boobGrav) if(mBoobState.boobGrav != newBoobState.boobGrav)
{ {
LLVisualParam *param; LLVisualParam *param;
@@ -3440,7 +3445,8 @@ void LLVOAvatar::getClientInfo(std::string& client, LLColor4& color, BOOL useCom
color = LLColor4(0.5f, 0.0f, 0.0f); color = LLColor4(0.5f, 0.0f, 0.0f);
client = "Unknown"; client = "Unknown";
} }
else if (LLVOAvatar::sClientResolutionList.has("isComplete") && LLVOAvatar::sClientResolutionList.has(uuid_str)) { else if (LLVOAvatar::sClientResolutionList.has("isComplete") && LLVOAvatar::sClientResolutionList.has(uuid_str))
{
LLSD cllsd = LLVOAvatar::sClientResolutionList[uuid_str]; LLSD cllsd = LLVOAvatar::sClientResolutionList[uuid_str];
client = cllsd["name"].asString(); client = cllsd["name"].asString();
LLColor4 colour; LLColor4 colour;
@@ -3499,6 +3505,43 @@ void LLVOAvatar::getClientInfo(std::string& client, LLColor4& color, BOOL useCom
} }
} }
LLColor4 LLVOAvatar::getTagColorByUUID(std::string uuid_str) LLColor4 LLVOAvatar::getTagColorByUUID(std::string uuid_str)
{ {
if (uuid_str == "0bcd5f5d-a4ce-9ea4-f9e8-15132653b3d8") if (uuid_str == "0bcd5f5d-a4ce-9ea4-f9e8-15132653b3d8")
@@ -5631,7 +5674,7 @@ void LLVOAvatar::processAnimationStateChanges()
stop_glerror(); stop_glerror();
} }
//Here's that undeform function I was talking about. -HGB //Here's that undeform function I was talking about. -HgB
/* Bug-fixed Linden Labs style. Comment out 4ever. /* Bug-fixed Linden Labs style. Comment out 4ever.
std::string undeformers[] = std::string undeformers[] =
{ {
@@ -6915,22 +6958,6 @@ void LLVOAvatar::hideSkirt()
mMeshLOD[MESH_ID_SKIRT]->setVisible(FALSE, TRUE); mMeshLOD[MESH_ID_SKIRT]->setVisible(FALSE, TRUE);
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// requestLayerSetUpdate() // requestLayerSetUpdate()
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -9148,22 +9175,22 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
mesgsys->getU8Fast(_PREHASH_VisualParam, _PREHASH_ParamValue, value, i); mesgsys->getU8Fast(_PREHASH_VisualParam, _PREHASH_ParamValue, value, i);
F32 newWeight = U8_to_F32(value, param->getMinWeight(), param->getMaxWeight()); F32 newWeight = U8_to_F32(value, param->getMinWeight(), param->getMaxWeight());
if(param->getID() == 507 && newWeight != getActualBoobGrav())
{
llwarns << "Boob Grav SET to " << newWeight << " for " << getFullname() << llendl;
setActualBoobGrav(newWeight);
}
/*if(param->getID() == 795 && newWeight != getActualButtGrav())
{
llwarns << "Butt Grav SET to " << newWeight << " for " << getFullname() << llendl;
setActualButtGrav(newWeight);
}
if(param->getID() == 157 && newWeight != getActualFatGrav())
{
llwarns << "Fat Grav SET to " << newWeight << " for " << getFullname() << llendl;
setActualFatGrav(newWeight);
}
*/
if (is_first_appearance_message || (param->getWeight() != newWeight)) if (is_first_appearance_message || (param->getWeight() != newWeight))

View File

@@ -374,10 +374,10 @@ public:
void setLocTexTE( U8 te, LLViewerImage* image, BOOL set_by_user ); void setLocTexTE( U8 te, LLViewerImage* image, BOOL set_by_user );
void setupComposites(); void setupComposites();
typedef std::map<S32,std::string> lod_mesh_map_t;
typedef std::map<std::string,lod_mesh_map_t> mesh_info_t;
static void getMeshInfo (mesh_info_t* mesh_info);
//-------------------------------------------------------------------- //--------------------------------------------------------------------
// Handling partially loaded avatars (Ruth) // Handling partially loaded avatars (Ruth)
@@ -608,7 +608,7 @@ public:
static F32 sLODFactor; // user-settable LOD factor static F32 sLODFactor; // user-settable LOD factor
static BOOL sJointDebug; // output total number of joints being touched for each avatar static BOOL sJointDebug; // output total number of joints being touched for each avatar
static BOOL sDebugAvatarRotation; static BOOL sDebugAvatarRotation;
static F32 sAvMorphTime;
static S32 sNumVisibleAvatars; // Number of instances of this class static S32 sNumVisibleAvatars; // Number of instances of this class

View File

@@ -556,9 +556,54 @@ BOOL LLWearable::isDirty()
weight = llclamp( weight, param->getMinWeight(), param->getMaxWeight() ); weight = llclamp( weight, param->getMinWeight(), param->getMaxWeight() );
U8 a = F32_to_U8( param->getWeight(), param->getMinWeight(), param->getMaxWeight() ); U8 a = F32_to_U8( param->getWeight(), param->getMinWeight(), param->getMaxWeight() );
U8 b = F32_to_U8( weight, param->getMinWeight(), param->getMaxWeight() );
if(avatar->getAppearanceFlag() == true)
{
//boob
if(param->getID() == 507)
{
weight = get_if_there(mVisualParamMap, param->getID(), avatar->getActualBoobGrav());
weight = llclamp( weight, param->getMinWeight(), param->getMaxWeight() );
}
/*//butt
if(param->getID() == 795)
{
weight = get_if_there(mVisualParamMap, param->getID(), avatar->getActualButtGrav());
weight = llclamp( weight, param->getMinWeight(), param->getMaxWeight() );
}
//fat
if(param->getID() == 157)
{
weight = get_if_there(mVisualParamMap, param->getID(), avatar->getActualFatGrav());
weight = llclamp( weight, param->getMinWeight(), param->getMaxWeight() );
}
*/
}
else
{
//boob
if(param->getID() == 507)
{
a = F32_to_U8( avatar->getActualBoobGrav(), param->getMinWeight(), param->getMaxWeight() );
}
/*//butt
if(param->getID() == 795)
{
a = F32_to_U8( avatar->getActualButtGrav(), param->getMinWeight(), param->getMaxWeight() );
}
//fat
if(param->getID() == 157)
{
a = F32_to_U8( avatar->getActualFatGrav(), param->getMinWeight(), param->getMaxWeight() );
}
*/
}
U8 b = F32_to_U8( weight, param->getMinWeight(), param->getMaxWeight() );
if( a != b ) if( a != b )
{ {
llwarns << "param ID " << param->getID() << " was changed." << llendl;
return TRUE; return TRUE;
} }
} }
@@ -644,6 +689,16 @@ void LLWearable::writeToAvatar( BOOL set_by_user )
{ {
S32 param_id = param->getID(); S32 param_id = param->getID();
F32 weight = get_if_there(mVisualParamMap, param_id, param->getDefaultWeight()); F32 weight = get_if_there(mVisualParamMap, param_id, param->getDefaultWeight());
//ZOMG: When switching shapes from inventory
if(param_id == 507)
avatar->setActualBoobGrav(weight);
/*if(param_id == 795)
avatar->setActualButtGrav(weight);
if(param_id == 157)
avatar->setActualFatGrav(weight);
*/
// only animate with user-originated changes // only animate with user-originated changes
if (set_by_user) if (set_by_user)
{ {
@@ -781,6 +836,22 @@ void LLWearable::readFromAvatar()
{ {
if( (((LLViewerVisualParam*)param)->getWearableType() == mType) && (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE ) ) if( (((LLViewerVisualParam*)param)->getWearableType() == mType) && (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE ) )
{ {
//pretty sure is right
if(param->getID() == 507)
avatar->setActualBoobGrav(param->getWeight());
/*if(param->getID() == 151)
avatar->setActualButtGrav(param->getWeight());
if(param->getID() == 157)
avatar->setActualFatGrav(param->getWeight());
*/
//if(param->getID() == 507)
//{
// llwarns << "current = " << avatar->getActualBoobGrav() << llendl;
// llwarns << "param weight = " << param->getWeight() << llendl;
//}
mVisualParamMap[param->getID()] = param->getWeight(); mVisualParamMap[param->getID()] = param->getWeight();
} }
} }
@@ -832,6 +903,27 @@ void LLWearable::copyDataFrom( LLWearable* src )
{ {
S32 id = param->getID(); S32 id = param->getID();
F32 weight = get_if_there(src->mVisualParamMap, id, param->getDefaultWeight() ); F32 weight = get_if_there(src->mVisualParamMap, id, param->getDefaultWeight() );
//llwarns << "------------------------------" << llendl;
//llwarns << "copydatafrom" << llendl;
//llwarns << "------------------------------" << llendl;
//if(id == 507)
//{
// llwarns << "weight = " << weight << llendl;
// llwarns << "actual = " << avatar->getActualBoobGrav() << llendl;
// llwarns << "mVisualParamMap[id] = " << mVisualParamMap[id] << llendl;
//}
//pretty sure right
if(id == 507)
avatar->setActualBoobGrav(weight);
/*if(id == 795)
avatar->setActualButtGrav(weight);
if(id == 157)
avatar->setActualFatGrav(weight);
*/
mVisualParamMap[id] = weight; mVisualParamMap[id] = weight;
} }
} }

View File

@@ -29,6 +29,19 @@
tool_tip="Rez objects with the same group that the object is being rezzed on has, regardless of your active tag." tool_tip="Rez objects with the same group that the object is being rezzed on has, regardless of your active tag."
mouse_opaque="true" name="always_rez_in_group_check" radio_style="false" mouse_opaque="true" name="always_rez_in_group_check" radio_style="false"
width="400" /> width="400" />
<check_box bottom_delta="-20" control_name="AscentDisableTeleportScreens" enabled="true"
follows="left|top" font="SansSerifSmall" height="16" initial_value="true"
label="Disable the Teleport progress screens" left="10"
tool_tip="Viewer will not hide your UI while teleporting, allowing you to continue to read IMs."
mouse_opaque="true" name="always_rez_in_group_check" radio_style="false"
width="400" />
<check_box bottom_delta="-20" control_name="AscentDisableLogoutScreens" enabled="true"
follows="left|top" font="SansSerifSmall" height="16" initial_value="true"
label="Hide the Logout progress screen" left="10"
tool_tip="Does not hide the UI when logging out."
mouse_opaque="true" name="always_rez_in_group_check" radio_style="false"
width="400" />
</panel> </panel>
<panel border="true" left="1" bottom="-408" height="408" width="500" mouse_opaque="true" <panel border="true" left="1" bottom="-408" height="408" width="500" mouse_opaque="true"
follows="left|top|right|bottom" label="Chat/IM" name="Chat/IM"> follows="left|top|right|bottom" label="Chat/IM" name="Chat/IM">
@@ -265,8 +278,8 @@
tool_tip="" name="AscentCmdLineMapTo" control_name="AscentCmdLineMapTo" width="200"/> tool_tip="" name="AscentCmdLineMapTo" control_name="AscentCmdLineMapTo" width="200"/>
<check_box bottom_delta="-24" enabled="true" follows="left|top" font="SansSerifSmall" height="16" <check_box bottom_delta="-24" enabled="true" follows="left|top" font="SansSerifSmall" height="16"
initial_value="false" label="Use same position between sims" left_delta="0" mouse_opaque="true" initial_value="false" label="Use same position between sims" left_delta="0" mouse_opaque="true"
name="AscentCmdLineMapToKeepPos" radio_style="false" width="270" name="AscentMapToKeepPos" radio_style="false" width="270"
control_name="AscentCmdLineMapToKeepPos"/> control_name="AscentMapToKeepPos"/>
<text bottom_delta="-18" follows="left|top" font="SansSerifSmall" height="16" left_delta="0" <text bottom_delta="-18" follows="left|top" font="SansSerifSmall" height="16" left_delta="0"
name="cmd_line_text_13" width="512"> name="cmd_line_text_13" width="512">
Teleport to avatar (usage: cmd name)</text> Teleport to avatar (usage: cmd name)</text>
@@ -294,6 +307,12 @@
tool_tip="Turns off broadcasting headturns and lookat beacons for yourself." tool_tip="Turns off broadcasting headturns and lookat beacons for yourself."
mouse_opaque="true" name="private_look_at_check" radio_style="false" mouse_opaque="true" name="private_look_at_check" radio_style="false"
width="400" /> width="400" />
<check_box bottom_delta="-20" control_name="ShowLookAt" enabled="true"
follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
label="Show others' LookAt beacons" left="10"
tool_tip="Shows you where others are looking."
mouse_opaque="true" name="show_look_at_check" radio_style="false"
width="400" />
<check_box bottom_delta="-20" control_name="RevokePermsOnStandUp" enabled="true" <check_box bottom_delta="-20" control_name="RevokePermsOnStandUp" enabled="true"
follows="left|top" font="SansSerifSmall" height="16" initial_value="false" follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
label="On standing up, revoke perms for the object your avatar was sitting on" left="10" label="On standing up, revoke perms for the object your avatar was sitting on" left="10"

View File

@@ -3,38 +3,15 @@
border="true" label="Ascent Vanity" name="ascvan" enabled="true" mouse_opaque="true"> border="true" label="Ascent Vanity" name="ascvan" enabled="true" mouse_opaque="true">
<tab_container label="Ascent" bottom="0" height="440" width="500" left="0" <tab_container label="Ascent" bottom="0" height="440" width="500" left="0"
name="Ascent Vanity" tab_min_width="90" tab_position="top"> name="Ascent Vanity" tab_min_width="90" tab_position="top">
<panel border="true" left="1" bottom="-190" height="180" width="500" mouse_opaque="true" <panel border="true" left="1" bottom="-190" height="180" width="500" mouse_opaque="true"
follows="left|top|right|bottom" label="General" name="General"> follows="left|top|right|bottom" label="General" name="General">
<check_box bottom_delta="-25" control_name="AscentStoreSettingsPerAccount" enabled="true" <check_box bottom_delta="-25" control_name="AscentStoreSettingsPerAccount" enabled="true"
follows="left|top" font="SansSerifSmall" height="16" initial_value="true" follows="left|top" font="SansSerifSmall" height="16" initial_value="true"
label="Where applicable, save Vanity settings per-account." left="10" label="Where applicable, save Vanity settings per-account." left="10"
tool_tip="Saves settings per-account, allowing easier customization for alts." tool_tip="Saves settings per-account, allowing easier customization for alts."
mouse_opaque="true" name="use_account_settings_check" radio_style="false" mouse_opaque="true" name="use_account_settings_check" radio_style="false"
width="400" /> width="400" />
<check_box bottom="-50" enabled="true" follows="left|top" font="SansSerifSmall" height="16" </panel>
label="Enable enhanced physics on avatar breasts" left="10" mouse_opaque="true" name="EmBreastsToggle"
control_name="EmeraldBreastPhysicsToggle" width="126"/>
<slider bottom_delta="-20" left="10" name="EmeraldBoobMass" control_name="EmeraldBoobMass"
decimal_digits="0" enabled="true" follows="left|top" height="18" increment="1"
label="Breast mass:" label_width="100" max_val="100" min_val="1" mouse_opaque="true"
show_text="true" width="250" auto_resize="false" tool_tip=""/>
<slider bottom_delta="-20" left_delta="0" name="EmeraldBoobHardness" control_name="EmeraldBoobHardness"
decimal_digits="0" enabled="true" follows="left|top" height="18" increment="1"
label="Breast rebound:" label_width="100" max_val="100" min_val="1" mouse_opaque="true"
show_text="true" width="250" auto_resize="false" tool_tip=""/>
<slider bottom_delta="-20" left_delta="0" name="EmeraldBoobVelMax" control_name="EmeraldBoobVelMax"
decimal_digits="0" enabled="true" follows="left|top" height="18" increment="1"
label="Breast max vel:" label_width="100" max_val="100" min_val="1" mouse_opaque="true"
show_text="true" width="250" auto_resize="false" tool_tip=""/>
<slider bottom_delta="-20" left_delta="0" name="EmeraldBoobFriction" control_name="EmeraldBoobFriction"
decimal_digits="0" enabled="true" follows="left|top" height="18" increment="1"
label="Breast friction:" label_width="100" max_val="100" min_val="1" mouse_opaque="true"
show_text="true" width="250" auto_resize="false" tool_tip=""/>
<slider bottom_delta="-20" left_delta="0" name="EmeraldBoobVelMin" control_name="EmeraldBoobVelMin"
decimal_digits="0" enabled="true" follows="left|top" height="18" increment="1"
label="Breast min vel:" label_width="100" max_val="100" min_val="1" mouse_opaque="true"
show_text="true" width="250" auto_resize="false" tool_tip=""/>
</panel>
<panel border="true" left="1" bottom="-190" height="180" width="500" mouse_opaque="true" <panel border="true" left="1" bottom="-190" height="180" width="500" mouse_opaque="true"
follows="left|top|right|bottom" label="Colors" name="Colors"> follows="left|top|right|bottom" label="Colors" name="Colors">
<!-- Client tag options --> <!-- Client tag options -->
@@ -153,5 +130,31 @@
mouse_opaque="true" name="effect_color_swatch" mouse_opaque="true" name="effect_color_swatch"
tool_tip="Click to open Color Picker" width="32" /> tool_tip="Click to open Color Picker" width="32" />
</panel> </panel>
<panel border="true" left="1" bottom="-190" height="180" width="500" mouse_opaque="true"
follows="left|top|right|bottom" label="Body Dynamics" name="Body Dynamics">
<check_box bottom_delta="-25" enabled="true" follows="left|top" font="SansSerifSmall" height="16"
label="Enable enhanced physics on avatar breasts" left="10" mouse_opaque="true" name="EmBreastsToggle"
control_name="EmeraldBreastPhysicsToggle" width="126"/>
<slider bottom_delta="-20" left="10" name="EmeraldBoobMass" control_name="EmeraldBoobMass"
decimal_digits="0" enabled="true" follows="left|top" height="18" increment="1"
label="Breast mass:" label_width="100" max_val="100" min_val="1" mouse_opaque="true"
show_text="true" width="250" auto_resize="false" tool_tip=""/>
<slider bottom_delta="-20" left_delta="0" name="EmeraldBoobHardness" control_name="EmeraldBoobHardness"
decimal_digits="0" enabled="true" follows="left|top" height="18" increment="1"
label="Breast rebound:" label_width="100" max_val="100" min_val="1" mouse_opaque="true"
show_text="true" width="250" auto_resize="false" tool_tip=""/>
<slider bottom_delta="-20" left_delta="0" name="EmeraldBoobVelMax" control_name="EmeraldBoobVelMax"
decimal_digits="0" enabled="true" follows="left|top" height="18" increment="1"
label="Breast max vel:" label_width="100" max_val="100" min_val="1" mouse_opaque="true"
show_text="true" width="250" auto_resize="false" tool_tip=""/>
<slider bottom_delta="-20" left_delta="0" name="EmeraldBoobFriction" control_name="EmeraldBoobFriction"
decimal_digits="0" enabled="true" follows="left|top" height="18" increment="1"
label="Breast friction:" label_width="100" max_val="100" min_val="1" mouse_opaque="true"
show_text="true" width="250" auto_resize="false" tool_tip=""/>
<slider bottom_delta="-20" left_delta="0" name="EmeraldBoobVelMin" control_name="EmeraldBoobVelMin"
decimal_digits="0" enabled="true" follows="left|top" height="18" increment="1"
label="Breast min vel:" label_width="100" max_val="100" min_val="1" mouse_opaque="true"
show_text="true" width="250" auto_resize="false" tool_tip=""/>
</panel>
</tab_container> </tab_container>
</panel> </panel>