summaryrefslogtreecommitdiff
path: root/indra/llappearance/llwearabletype.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llappearance/llwearabletype.cpp')
-rw-r--r--indra/llappearance/llwearabletype.cpp34
1 files changed, 21 insertions, 13 deletions
diff --git a/indra/llappearance/llwearabletype.cpp b/indra/llappearance/llwearabletype.cpp
index 0e29bbe783..dc02b5e225 100644
--- a/indra/llappearance/llwearabletype.cpp
+++ b/indra/llappearance/llwearabletype.cpp
@@ -29,18 +29,6 @@
#include "llinventorytype.h"
#include "llinventorydefines.h"
-static LLTranslationBridge* sTrans = NULL;
-
-// static
-void LLWearableType::initClass(LLTranslationBridge* trans)
-{
- sTrans = trans;
-}
-
-void LLWearableType::cleanupClass()
-{
- delete sTrans;
-}
struct WearableEntry : public LLDictionaryEntry
{
@@ -53,7 +41,7 @@ struct WearableEntry : public LLDictionaryEntry
LLDictionaryEntry(name),
mAssetType(assetType),
mDefaultNewName(default_new_name),
- mLabel(sTrans->getString(name)),
+ mLabel(LLWearableType::getInstance()->mTrans->getString(name)),
mIconName(iconName),
mDisableCameraSwitch(disable_camera_switch),
mAllowMultiwear(allow_multiwear)
@@ -76,6 +64,12 @@ class LLWearableDictionary : public LLSingleton<LLWearableDictionary>,
LLWearableDictionary::LLWearableDictionary()
{
+ if (!LLWearableType::instanceExists())
+ {
+ // LLWearableType is effectively a wrapper around LLWearableDictionary and is used as storage for LLTranslationBridge
+ // Todo: consider merging LLWearableType and LLWearableDictionary
+ LL_WARNS() << "Initing LLWearableDictionary without LLWearableType" << LL_ENDL;
+ }
addEntry(LLWearableType::WT_SHAPE, new WearableEntry("shape", "New Shape", LLAssetType::AT_BODYPART, LLInventoryType::ICONNAME_BODYPART_SHAPE, FALSE, FALSE));
addEntry(LLWearableType::WT_SKIN, new WearableEntry("skin", "New Skin", LLAssetType::AT_BODYPART, LLInventoryType::ICONNAME_BODYPART_SKIN, FALSE, FALSE));
addEntry(LLWearableType::WT_HAIR, new WearableEntry("hair", "New Hair", LLAssetType::AT_BODYPART, LLInventoryType::ICONNAME_BODYPART_HAIR, FALSE, FALSE));
@@ -99,6 +93,20 @@ LLWearableDictionary::LLWearableDictionary()
addEntry(LLWearableType::WT_NONE, new WearableEntry("none", "Invalid Wearable", LLAssetType::AT_NONE, LLInventoryType::ICONNAME_NONE, FALSE, FALSE));
}
+
+// class LLWearableType
+
+LLWearableType::LLWearableType(LLTranslationBridge* trans)
+{
+ // LLTranslationBridge exists, but is not ready at this point in time since strings.xml is not yet loaded
+ mTrans = trans;
+}
+
+LLWearableType::~LLWearableType()
+{
+ delete mTrans;
+}
+
// static
LLWearableType::EType LLWearableType::typeNameToType(const std::string& type_name)
{