summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Payne (Vir Linden) <vir@lindenlab.com>2013-02-11 13:51:08 -0500
committerBrad Payne (Vir Linden) <vir@lindenlab.com>2013-02-11 13:51:08 -0500
commit026ee47e9eee44c5a85acf49983bd4502b367515 (patch)
tree95e68d4f59925ec791f29b79ad5f5cf954e87bc7
parentf3e407ae3f05e897de0b0d7daea4d31f09e73048 (diff)
parent93f07d4e2721d8bf163545ba2600aa5c3cd1c506 (diff)
merge
-rw-r--r--autobuild.xml4
-rw-r--r--indra/llappearance/lltexlayer.cpp40
2 files changed, 41 insertions, 3 deletions
diff --git a/autobuild.xml b/autobuild.xml
index 67d1b4a27b..41f9176f30 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -1290,9 +1290,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>4d0fffe0780f3874cf95ef5a2f3c8489</string>
+ <string>606926d8b873328149313ace29f5ab64</string>
<key>url</key>
- <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llappearanceutility-source/rev/269731/arch/Linux/installer/llappearanceutility_source-0.1-linux-20130130.tar.bz2</string>
+ <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llappearanceutility-source/rev/270205/arch/Linux/installer/llappearanceutility_source-0.1-linux-20130209.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
diff --git a/indra/llappearance/lltexlayer.cpp b/indra/llappearance/lltexlayer.cpp
index 15d531259f..3c23f5f293 100644
--- a/indra/llappearance/lltexlayer.cpp
+++ b/indra/llappearance/lltexlayer.cpp
@@ -932,7 +932,45 @@ LLWearableType::EType LLTexLayerInterface::getWearableType() const
ETextureIndex te = getLocalTextureIndex();
if (TEX_INVALID == te)
{
- return LLWearableType::WT_INVALID;
+ LLWearableType::EType type = LLWearableType::WT_INVALID;
+ param_color_list_t::const_iterator color_iter = mParamColorList.begin();
+ param_alpha_list_t::const_iterator alpha_iter = mParamAlphaList.begin();
+
+ for (; color_iter != mParamColorList.end(); color_iter++)
+ {
+ LLTexLayerParamColor* param = *color_iter;
+ if (param)
+ {
+ LLWearableType::EType new_type = (LLWearableType::EType)param->getWearableType();
+ if (new_type != LLWearableType::WT_INVALID && new_type != type)
+ {
+ if (type != LLWearableType::WT_INVALID)
+ {
+ return LLWearableType::WT_INVALID;
+ }
+ type = new_type;
+ }
+ }
+ }
+
+ for (; alpha_iter != mParamAlphaList.end(); alpha_iter++)
+ {
+ LLTexLayerParamAlpha* param = *alpha_iter;
+ if (param)
+ {
+ LLWearableType::EType new_type = (LLWearableType::EType)param->getWearableType();
+ if (new_type != LLWearableType::WT_INVALID && new_type != type)
+ {
+ if (type != LLWearableType::WT_INVALID)
+ {
+ return LLWearableType::WT_INVALID;
+ }
+ type = new_type;
+ }
+ }
+ }
+
+ return type;
}
return LLAvatarAppearanceDictionary::getTEWearableType(te);
}