diff options
Diffstat (limited to 'indra')
-rw-r--r-- | indra/llappearance/llavatarappearancedefines.h | 1 | ||||
-rw-r--r-- | indra/llappearance/lltexlayer.cpp | 20 | ||||
-rw-r--r-- | indra/llappearance/lltexlayer.h | 4 |
3 files changed, 21 insertions, 4 deletions
diff --git a/indra/llappearance/llavatarappearancedefines.h b/indra/llappearance/llavatarappearancedefines.h index 0351f28429..2e073bf5d2 100644 --- a/indra/llappearance/llavatarappearancedefines.h +++ b/indra/llappearance/llavatarappearancedefines.h @@ -46,6 +46,7 @@ extern const S32 IMPOSTOR_PERIOD; //-------------------------------------------------------------------- enum ETextureIndex { + TEX_INVALID = -1, TEX_HEAD_BODYPAINT = 0, TEX_UPPER_SHIRT, TEX_LOWER_PANTS, diff --git a/indra/llappearance/lltexlayer.cpp b/indra/llappearance/lltexlayer.cpp index 79d870c61d..6f079b4abb 100644 --- a/indra/llappearance/lltexlayer.cpp +++ b/indra/llappearance/lltexlayer.cpp @@ -903,6 +903,21 @@ const std::string& LLTexLayerInterface::getName() const return mInfo->mName; } +ETextureIndex LLTexLayerInterface::getLocalTextureIndex() const +{ + return (ETextureIndex) mInfo->mLocalTexture; +} + +LLWearableType::EType LLTexLayerInterface::getWearableType() const +{ + ETextureIndex te = getLocalTextureIndex(); + if (TEX_INVALID == te) + { + return LLWearableType::WT_INVALID; + } + return LLAvatarAppearanceDictionary::getTEWearableType(te); +} + LLTexLayerInterface::ERenderPass LLTexLayerInterface::getRenderPass() const { return mInfo->mRenderPass; @@ -1585,13 +1600,12 @@ U32 LLTexLayerTemplate::updateWearableCache() const { mWearableCache.clear(); - S32 te = mInfo->mLocalTexture; - if (te == -1) + LLWearableType::EType wearable_type = getWearableType(); + if (LLWearableType::WT_INVALID == wearable_type) { //this isn't a cloneable layer return 0; } - LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex)te); U32 num_wearables = getAvatarAppearance()->getWearableData()->getWearableCount(wearable_type); U32 added = 0; for (U32 i = 0; i < num_wearables; i++) diff --git a/indra/llappearance/lltexlayer.h b/indra/llappearance/lltexlayer.h index a288d7fc50..f9f8bdd817 100644 --- a/indra/llappearance/lltexlayer.h +++ b/indra/llappearance/lltexlayer.h @@ -72,6 +72,8 @@ public: const LLTexLayerInfo* getInfo() const { return mInfo; } virtual BOOL setInfo(const LLTexLayerInfo *info, LLWearable* wearable); // sets mInfo, calls initialization functions + LLWearableType::EType getWearableType() const; + LLAvatarAppearanceDefines::ETextureIndex getLocalTextureIndex() const; const std::string& getName() const; const LLTexLayerSet* const getTexLayerSet() const { return mTexLayerSet; } @@ -211,7 +213,7 @@ public: LLAvatarAppearance* getAvatarAppearance() const { return mAvatarAppearance; } const std::string getBodyRegionName() const; BOOL hasComposite() const { return (mComposite.notNull()); } - LLAvatarAppearanceDefines::EBakedTextureIndex getBakedTexIndex() { return mBakedTexIndex; } + LLAvatarAppearanceDefines::EBakedTextureIndex getBakedTexIndex() const { return mBakedTexIndex; } void setBakedTexIndex(LLAvatarAppearanceDefines::EBakedTextureIndex index) { mBakedTexIndex = index; } BOOL isVisible() const { return mIsVisible; } |