Skip to content

Commit aed164a

Browse files
committed
allow group to mod alphagamma on group objects
1 parent e7a7a30 commit aed164a

File tree

2 files changed

+27
-6
lines changed

2 files changed

+27
-6
lines changed

indra/newview/llpanelface.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1811,7 +1811,19 @@ void LLPanelFace::updateUI(bool force_set_values /*false*/)
18111811
calcp->clearVar(LLCalc::TEX_TRANSPARENCY);
18121812
calcp->clearVar(LLCalc::TEX_GLOW);
18131813
}
1814-
if (objectp && (objectp->permModify() || objectp->permYouOwner()))
1814+
1815+
bool agent_in_group = false;
1816+
if (objectp && objectp->permGroupOwner())
1817+
{
1818+
LLUUID owner_id;
1819+
std::string owner_name;
1820+
LLSelectMgr::getInstance()->selectGetOwner(owner_id, owner_name);
1821+
agent_in_group = gAgent.isInGroup(owner_id);
1822+
}
1823+
1824+
if (objectp && (objectp->permModify()
1825+
|| objectp->permYouOwner()
1826+
|| agent_in_group))
18151827
{
18161828
// AlphaGamma should enabled when modable or owned
18171829
U8 alpha_gamma = 100;

indra/newview/llselectmgr.cpp

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1730,18 +1730,21 @@ struct LLSelectMgrSendFunctor : public LLSelectedObjectFunctor
17301730

17311731
struct LLSelectMgrAlphaGammaBypassFunctor : public LLSelectedObjectFunctor
17321732
{
1733+
LLSelectMgrAlphaGammaBypassFunctor(bool agent_in_group) : mAgentInGroup(agent_in_group) {}
1734+
17331735
virtual bool apply(LLViewerObject* object)
17341736
{
17351737
if (object->permModify())
17361738
{
17371739
object->sendTEUpdate();
17381740
}
1739-
else if (object->permYouOwner())
1741+
else if (object->permYouOwner() || (object->permGroupOwner() && mAgentInGroup))
17401742
{
17411743
LLSelectMgr::packAlphaGammaBypass(object);
17421744
}
17431745
return true;
17441746
}
1747+
bool mAgentInGroup { false };
17451748
};
17461749

17471750
void LLObjectSelection::applyNoCopyTextureToTEs(LLViewerInventoryItem* item)
@@ -2340,24 +2343,30 @@ void LLSelectMgr::selectionSetBumpmap(U8 bumpmap, const LLUUID &image_id)
23402343

23412344
void LLSelectMgr::selectionSetAlphaGamma(U8 gamma)
23422345
{
2346+
LLUUID owner_id;
2347+
std::string owner_name;
2348+
LLSelectMgr::getInstance()->selectGetOwner(owner_id, owner_name);
2349+
bool agent_in_group = gAgent.isInGroup(owner_id);
2350+
23432351
struct f : public LLSelectedTEFunctor
23442352
{
23452353
U8 mAlphaGamma;
2346-
f(const U8 &t) : mAlphaGamma(t) {}
2354+
f(const U8 &t, bool agent_in_group) : mAlphaGamma(t), mAgentInGroup(agent_in_group) {}
23472355
bool apply(LLViewerObject *object, S32 te)
23482356
{
23492357
bool can_modify = object->permModify();
2350-
if (can_modify || object->permYouOwner())
2358+
if (can_modify || object->permYouOwner() || (object->permGroupOwner() && mAgentInGroup))
23512359
{
23522360
// update viewer side color in anticipation of update from simulator
23532361
object->setTEAlphaGamma(te, mAlphaGamma);
23542362
}
23552363
return true;
23562364
}
2357-
} setfunc(gamma);
2365+
bool mAgentInGroup { false };
2366+
} setfunc(gamma, agent_in_group);
23582367
getSelection()->applyToTEs(&setfunc);
23592368

2360-
LLSelectMgrAlphaGammaBypassFunctor sendfunc;
2369+
LLSelectMgrAlphaGammaBypassFunctor sendfunc(agent_in_group);
23612370
getSelection()->applyToObjects(&sendfunc);
23622371
}
23632372

0 commit comments

Comments
 (0)