Merged in lindenlab/viewer-bear

AndreyL ProductEngine 2019-04-26 21:11:16 +03:00
commit b78b5da79a
7 changed files with 68 additions and 13 deletions

View File

@ -153,7 +153,6 @@ const U8 SIM_ACCESS_DOWN = 254;
const U8 SIM_ACCESS_MAX = SIM_ACCESS_ADULT;
// attachment constants
const S32 MAX_AGENT_ATTACHMENTS = 38;
const U8 ATTACHMENT_ADD = 0x80;
// god levels

View File

@ -1167,12 +1167,16 @@ bool LLAppViewer::init()
// ForceAddressSize
updater.args.add(stringize(gSavedSettings.getU32("ForceAddressSize")));
#if !LL_RELEASE_FOR_DOWNLOAD && !LL_SEND_CRASH_REPORTS
// This is neither a release package, nor crash-reporting enabled test build
// Note: pointless to launch on Windows - it shouldn't expect secondlife-bin.exe
LL_WARNS("LLLeap") << "Launching without version checker" << LL_ENDL;
#if LL_WINDOWS && !LL_RELEASE_FOR_DOWNLOAD && !LL_SEND_CRASH_REPORTS
// This is neither a release package, nor crash-reporting enabled test build
// try to run version updater, but don't bother if it fails (file might be missing)
LLLeap *leap_p = LLLeap::create(updater, false);
if (!leap_p)
{
LL_WARNS("LLLeap") << "Failed to run LLLeap" << LL_ENDL;
}
#else
// Run the updater. An exception from launching the updater should bother us.
// Run the updater. An exception from launching the updater should bother us.
LLLeap::create(updater, true);
#endif

View File

@ -42,6 +42,7 @@
#include "llwearableitemslist.h"
#include "llpaneloutfitedit.h"
#include "lltrans.h"
#include "llvoavatarself.h"
static LLPanelInjector<LLCOFWearables> t_cof_wearables("cof_wearables");
@ -330,7 +331,7 @@ void LLCOFWearables::setAttachmentsTitle()
{
if (mAttachmentsTab)
{
U32 free_slots = MAX_AGENT_ATTACHMENTS - mAttachments->size();
U32 free_slots = gAgentAvatarp->getMaxAttachments() - mAttachments->size();
LLStringUtil::format_map_t args_attachments;
args_attachments["[COUNT]"] = llformat ("%d", free_slots);

View File

@ -6302,7 +6302,7 @@ bool confirm_attachment_rez(const LLSD& notification, const LLSD& response)
if (!gAgentAvatarp->canAttachMoreObjects())
{
LLSD args;
args["MAX_ATTACHMENTS"] = llformat("%d", MAX_AGENT_ATTACHMENTS);
args["MAX_ATTACHMENTS"] = llformat("%d", gAgentAvatarp->getMaxAttachments());
LLNotificationsUtil::add("MaxAttachmentsOnOutfit", args);
return false;
}

View File

@ -66,6 +66,7 @@
#include "llrecentpeople.h"
#include "llviewercontrol.h" // for gSavedSettings
#include "llviewermenu.h" // for gMenuHolder
#include "llviewerregion.h"
#include "llvoiceclient.h"
#include "llworld.h"
#include "llspeakers.h"
@ -611,12 +612,23 @@ void LLPanelPeople::removePicker()
BOOL LLPanelPeople::postBuild()
{
S32 max_premium = PREMIUM_MAX_AGENT_GROUPS;
if (gAgent.getRegion())
{
LLSD features;
gAgent.getRegion()->getSimulatorFeatures(features);
if (features.has("MaxAgentGroupsPremium"))
{
max_premium = features["MaxAgentGroupsPremium"].asInteger();
}
}
getChild<LLFilterEditor>("nearby_filter_input")->setCommitCallback(boost::bind(&LLPanelPeople::onFilterEdit, this, _2));
getChild<LLFilterEditor>("friends_filter_input")->setCommitCallback(boost::bind(&LLPanelPeople::onFilterEdit, this, _2));
getChild<LLFilterEditor>("groups_filter_input")->setCommitCallback(boost::bind(&LLPanelPeople::onFilterEdit, this, _2));
getChild<LLFilterEditor>("recent_filter_input")->setCommitCallback(boost::bind(&LLPanelPeople::onFilterEdit, this, _2));
if(gMaxAgentGroups <= BASE_MAX_AGENT_GROUPS)
if(gMaxAgentGroups < max_premium)
{
getChild<LLTextBox>("groupcount")->setText(getString("GroupCountWithInfo"));
getChild<LLTextBox>("groupcount")->setURLClickedCallback(boost::bind(&LLPanelPeople::onGroupLimitInfo, this));
@ -1082,8 +1094,25 @@ void LLPanelPeople::onFilterEdit(const std::string& search_string)
void LLPanelPeople::onGroupLimitInfo()
{
LLSD args;
args["MAX_BASIC"] = BASE_MAX_AGENT_GROUPS;
args["MAX_PREMIUM"] = PREMIUM_MAX_AGENT_GROUPS;
S32 max_basic = BASE_MAX_AGENT_GROUPS;
S32 max_premium = PREMIUM_MAX_AGENT_GROUPS;
if (gAgent.getRegion())
{
LLSD features;
gAgent.getRegion()->getSimulatorFeatures(features);
if (features.has("MaxAgentGroupsBasic"))
{
max_basic = features["MaxAgentGroupsBasic"].asInteger();
}
if (features.has("MaxAgentGroupsPremium"))
{
max_premium = features["MaxAgentGroupsPremium"].asInteger();
}
}
args["MAX_BASIC"] = max_basic;
args["MAX_PREMIUM"] = max_premium;
LLNotificationsUtil::add("GroupLimitInfo", args);
}

View File

@ -7036,13 +7036,34 @@ U32 LLVOAvatar::getNumAttachments() const
return num_attachments;
}
//-----------------------------------------------------------------------------
// getMaxAttachments()
//-----------------------------------------------------------------------------
S32 LLVOAvatar::getMaxAttachments() const
{
const S32 MAX_AGENT_ATTACHMENTS = 38;
S32 max_attach = MAX_AGENT_ATTACHMENTS;
if (gAgent.getRegion())
{
LLSD features;
gAgent.getRegion()->getSimulatorFeatures(features);
if (features.has("MaxAgentAttachments"))
{
max_attach = features["MaxAgentAttachments"].asInteger();
}
}
return max_attach;
}
//-----------------------------------------------------------------------------
// canAttachMoreObjects()
// Returns true if we can attach <n> more objects.
//-----------------------------------------------------------------------------
BOOL LLVOAvatar::canAttachMoreObjects(U32 n) const
{
return (getNumAttachments() + n) <= MAX_AGENT_ATTACHMENTS;
return (getNumAttachments() + n) <= getMaxAttachments();
}
//-----------------------------------------------------------------------------
@ -7070,7 +7091,7 @@ S32 LLVOAvatar::getMaxAnimatedObjectAttachments() const
S32 max_attach = 0;
if (gSavedSettings.getBOOL("AnimatedObjectsIgnoreLimits"))
{
max_attach = MAX_AGENT_ATTACHMENTS;
max_attach = getMaxAttachments();
}
else
{

View File

@ -811,6 +811,7 @@ public:
BOOL hasHUDAttachment() const;
LLBBox getHUDBBox() const;
void resetHUDAttachments();
S32 getMaxAttachments() const;
BOOL canAttachMoreObjects(U32 n=1) const;
S32 getMaxAnimatedObjectAttachments() const;
BOOL canAttachMoreAnimatedObjects(U32 n=1) const;