From 4bcf1b911a4ea8e8ac8a6322918929732ec1b82d Mon Sep 17 00:00:00 2001
From: Nyx Linden <nyx@lindenlab.com>
Date: Wed, 3 Apr 2013 19:04:57 -0400
Subject: [PATCH] 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.
---
 indra/newview/llagentwearables.cpp | 50 ++++++------------------------
 indra/newview/llagentwearables.h   |  2 +-
 2 files changed, 10 insertions(+), 42 deletions(-)

diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index de9afe2e085..c88694ef76b 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];
diff --git a/indra/newview/llagentwearables.h b/indra/newview/llagentwearables.h
index f2f224a5736..5be46486367 100644
--- a/indra/newview/llagentwearables.h
+++ b/indra/newview/llagentwearables.h
@@ -146,7 +146,7 @@ class LLAgentWearables : public LLInitClass<LLAgentWearables>, public LLWearable
 	// Removing wearables
 	//--------------------------------------------------------------------
 public:
-	void			removeWearable(const LLWearableType::EType type, bool do_remove_all /*= false*/, U32 index /*= 0*/, BOOL will_replace = false);
+	void			removeWearable(const LLWearableType::EType type, bool do_remove_all /*= false*/, U32 index /*= 0*/);
 private:
 	void			removeWearableFinal(const LLWearableType::EType type, bool do_remove_all /*= false*/, U32 index /*= 0*/);
 protected:
-- 
GitLab