summaryrefslogtreecommitdiff
path: root/indra/newview/llagentwearables.cpp
diff options
context:
space:
mode:
authorNyx Linden <nyx@lindenlab.com>2013-04-03 19:04:57 -0400
committerNyx Linden <nyx@lindenlab.com>2013-04-03 19:04:57 -0400
commit4bcf1b911a4ea8e8ac8a6322918929732ec1b82d (patch)
treeeb6ef6f208b3f3370e4b91b4117753402c64b4d8 /indra/newview/llagentwearables.cpp
parent106864bb8a18f8e4ecc143581af5bb18302b5abf (diff)
SH-4051 REVERT teen accounts unable to remove underclothes even when switching outfits
Reverting fix as additional problems were found that could lead to even accidental nudity. This fix is not required for the current release as it is not a regression. Will review options for fixing for the next release.
Diffstat (limited to 'indra/newview/llagentwearables.cpp')
-rwxr-xr-xindra/newview/llagentwearables.cpp50
1 files changed, 9 insertions, 41 deletions
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index de9afe2e08..c88694ef76 100755
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -1124,19 +1124,14 @@ void LLAgentWearables::addWearableToAgentInventory(LLPointer<LLInventoryCallback
cb);
}
-void LLAgentWearables::removeWearable(const LLWearableType::EType type, bool do_remove_all, U32 index, BOOL will_replace)
+void LLAgentWearables::removeWearable(const LLWearableType::EType type, bool do_remove_all, U32 index)
{
- if (gAgent.isTeen() &&
+ if (gAgent.isTeen() &&
(type == LLWearableType::WT_UNDERSHIRT || type == LLWearableType::WT_UNDERPANTS))
{
// Can't take off underclothing in simple UI mode or on PG accounts
-
- if (getWearableCount(type) < 2 && !will_replace)
- {
- // if there is 0 or 1 undergarment worn, and we're not going to be immediately adding another,
- // we cannot allow the removal for teen accounts
- return;
- }
+ // TODO: enable the removing of a single undershirt/underpants if multiple are worn. - Nyx
+ return;
}
if (getWearableCount(type) == 0)
{
@@ -1244,31 +1239,6 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it
{
llinfos << "setWearableOutfit() start" << llendl;
- S32 count = wearables.count();
- llassert(items.count() == count);
- S32 i;
-
- bool has_undershirt = false;
- bool has_underpants = false;
-
- for (i = 0; i < count; i++)
- {
- LLViewerWearable* new_wearable = wearables[i];
- if (new_wearable)
- {
- const LLWearableType::EType type = new_wearable->getType();
- if (type == LLWearableType::WT_UNDERSHIRT)
- {
- has_undershirt = true;
- }
- if (type == LLWearableType::WT_UNDERPANTS)
- {
- has_underpants = true;
- }
- }
- }
-
-
// TODO: Removed check for ensuring that teens don't remove undershirt and underwear. Handle later
if (remove)
{
@@ -1278,17 +1248,15 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it
{
if (LLWearableType::getAssetType((LLWearableType::EType)type) == LLAssetType::AT_CLOTHING)
{
- bool will_replace = false;
- if ((type == LLWearableType::WT_UNDERSHIRT && has_undershirt) ||
- (type == LLWearableType::WT_UNDERPANTS && has_underpants))
- {
- will_replace = true;
- }
- removeWearable((LLWearableType::EType)type, true, 0, will_replace);
+ removeWearable((LLWearableType::EType)type, true, 0);
}
}
}
+ S32 count = wearables.count();
+ llassert(items.count() == count);
+
+ S32 i;
for (i = 0; i < count; i++)
{
LLViewerWearable* new_wearable = wearables[i];