Created new wearable type.
Added debug setting for disabling physics. Added disable-multiwear and disable-camera-reset to wearabletype.master
parent
78538f4f61
commit
981a43b355
|
|
@ -619,6 +619,19 @@
|
|||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
|
||||
<key>AvatarPhysics</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Enable avatar physics, such as breast physics.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
|
||||
<key>BackgroundYieldTime</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -9079,8 +9079,8 @@ render_pass="bump">
|
|||
sex="female"
|
||||
name="Breast_Physics_Mass"
|
||||
label="Breast Physics Mass"
|
||||
wearable="shape"
|
||||
edit_group="shape_physics"
|
||||
wearable="physics"
|
||||
edit_group="physics"
|
||||
label_min="Less"
|
||||
label_max="More"
|
||||
value_default="1"
|
||||
|
|
@ -9097,8 +9097,8 @@ render_pass="bump">
|
|||
sex="female"
|
||||
name="Breast_Physics_Smoothing"
|
||||
label="Breast Physics Smoothing"
|
||||
wearable="shape"
|
||||
edit_group="shape_physics"
|
||||
wearable="physics"
|
||||
edit_group="physics"
|
||||
label_min="Less"
|
||||
label_max="More"
|
||||
value_default="2"
|
||||
|
|
@ -9115,8 +9115,8 @@ render_pass="bump">
|
|||
sex="female"
|
||||
name="Breast_Physics_Gravity"
|
||||
label="Breast Physics Gravity"
|
||||
wearable="shape"
|
||||
edit_group="shape_physics"
|
||||
wearable="physics"
|
||||
edit_group="physics"
|
||||
label_min="Less"
|
||||
label_max="More"
|
||||
value_default="0"
|
||||
|
|
@ -9133,8 +9133,8 @@ render_pass="bump">
|
|||
sex="female"
|
||||
name="Breast_Physics_Side_Spring"
|
||||
label="Breast Physics Side Spring"
|
||||
wearable="shape"
|
||||
edit_group="shape_physics"
|
||||
wearable="physics"
|
||||
edit_group="physics"
|
||||
label_min="Less"
|
||||
label_max="More"
|
||||
value_default="3"
|
||||
|
|
@ -9151,8 +9151,8 @@ render_pass="bump">
|
|||
sex="female"
|
||||
name="Breast_Physics_Side_Gain"
|
||||
label="Breast Physics Side Gain"
|
||||
wearable="shape"
|
||||
edit_group="shape_physics"
|
||||
wearable="physics"
|
||||
edit_group="physics"
|
||||
label_min="Less"
|
||||
label_max="More"
|
||||
value_default="10"
|
||||
|
|
@ -9169,8 +9169,8 @@ render_pass="bump">
|
|||
sex="female"
|
||||
name="Breast_Physics_Side_Damping"
|
||||
label="Breast Physics Side Damping"
|
||||
wearable="shape"
|
||||
edit_group="shape_physics"
|
||||
wearable="physics"
|
||||
edit_group="physics"
|
||||
label_min="Less"
|
||||
label_max="More"
|
||||
value_default=".5"
|
||||
|
|
@ -9187,8 +9187,8 @@ render_pass="bump">
|
|||
sex="female"
|
||||
name="Breast_Physics_Side_Drag"
|
||||
label="Breast Physics Side Drag"
|
||||
wearable="shape"
|
||||
edit_group="shape_physics"
|
||||
wearable="physics"
|
||||
edit_group="physics"
|
||||
label_min="Less"
|
||||
label_max="More"
|
||||
value_default=".1"
|
||||
|
|
@ -9205,8 +9205,8 @@ render_pass="bump">
|
|||
sex="female"
|
||||
name="Breast_Physics_Side_Range"
|
||||
label="Breast Physics Side Range"
|
||||
wearable="shape"
|
||||
edit_group="shape_physics"
|
||||
wearable="physics"
|
||||
edit_group="physics"
|
||||
label_min="Less"
|
||||
label_max="More"
|
||||
value_default="10"
|
||||
|
|
@ -9224,8 +9224,8 @@ render_pass="bump">
|
|||
sex="female"
|
||||
name="Breast_Physics_UpDown_Spring"
|
||||
label="Breast Physics UpDown Spring"
|
||||
wearable="shape"
|
||||
edit_group="shape_physics"
|
||||
wearable="physics"
|
||||
edit_group="physics"
|
||||
label_min="Less"
|
||||
label_max="More"
|
||||
value_default="1.5"
|
||||
|
|
@ -9242,8 +9242,8 @@ render_pass="bump">
|
|||
sex="female"
|
||||
name="Breast_Physics_UpDown_Gain"
|
||||
label="Breast Physics UpDown Gain"
|
||||
wearable="shape"
|
||||
edit_group="shape_physics"
|
||||
wearable="physics"
|
||||
edit_group="physics"
|
||||
label_min="Less"
|
||||
label_max="More"
|
||||
value_default="50"
|
||||
|
|
@ -9260,8 +9260,8 @@ render_pass="bump">
|
|||
sex="female"
|
||||
name="Breast_Physics_UpDown_Damping"
|
||||
label="Breast Physics UpDown Damping"
|
||||
wearable="shape"
|
||||
edit_group="shape_physics"
|
||||
wearable="physics"
|
||||
edit_group="physics"
|
||||
label_min="Less"
|
||||
label_max="More"
|
||||
value_default=".1"
|
||||
|
|
@ -9278,8 +9278,8 @@ render_pass="bump">
|
|||
sex="female"
|
||||
name="Breast_Physics_UpDown_Drag"
|
||||
label="Breast Physics UpDown Drag"
|
||||
wearable="shape"
|
||||
edit_group="shape_physics"
|
||||
wearable="physics"
|
||||
edit_group="physics"
|
||||
label_min="Less"
|
||||
label_max="More"
|
||||
value_default=".1"
|
||||
|
|
@ -9296,8 +9296,8 @@ render_pass="bump">
|
|||
sex="female"
|
||||
name="Breast_Physics_UpDown_Range"
|
||||
label="Breast Physics UpDown Range"
|
||||
wearable="shape"
|
||||
edit_group="shape_physics"
|
||||
wearable="physics"
|
||||
edit_group="physics"
|
||||
label_min="Less"
|
||||
label_max="More"
|
||||
value_default="10"
|
||||
|
|
@ -9308,6 +9308,8 @@ render_pass="bump">
|
|||
<param_driver />
|
||||
</param>
|
||||
|
||||
|
||||
|
||||
<param
|
||||
id="1087"
|
||||
group="0"
|
||||
|
|
|
|||
|
|
@ -1717,6 +1717,7 @@ void LLAgentWearables::userRemoveAllClothesStep2(BOOL proceed)
|
|||
gAgentWearables.removeWearable(LLWearableType::WT_SKIRT,true,0);
|
||||
gAgentWearables.removeWearable(LLWearableType::WT_ALPHA,true,0);
|
||||
gAgentWearables.removeWearable(LLWearableType::WT_TATTOO,true,0);
|
||||
gAgentWearables.removeWearable(LLWearableType::WT_PHYSICS,true,0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2042,8 +2043,9 @@ void LLAgentWearables::editWearable(const LLUUID& item_id)
|
|||
return;
|
||||
}
|
||||
|
||||
const BOOL disable_camera_switch = LLWearableType::getDisableCameraSwitch(wearable->getType());
|
||||
LLPanel* panel = LLSideTray::getInstance()->getPanel("sidepanel_appearance");
|
||||
LLSidepanelAppearance::editWearable(wearable, panel);
|
||||
LLSidepanelAppearance::editWearable(wearable, panel, disable_camera_switch);
|
||||
}
|
||||
|
||||
// Request editing the item after it gets worn.
|
||||
|
|
|
|||
|
|
@ -4496,6 +4496,11 @@ void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
|
|||
disabled_items.push_back(std::string("Take Off"));
|
||||
disabled_items.push_back(std::string("Wearable Edit"));
|
||||
}
|
||||
if (gAgentWearables.isWearingWearableType(mWearableType) &&
|
||||
!LLWearableType::getAllowMultiwear(mWearableType))
|
||||
{
|
||||
disabled_items.push_back(std::string("Wearable Add"));
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -82,6 +82,8 @@ LLIconDictionary::LLIconDictionary()
|
|||
addEntry(LLInventoryIcon::ICONNAME_ANIMATION, new IconEntry("Inv_Animation"));
|
||||
addEntry(LLInventoryIcon::ICONNAME_GESTURE, new IconEntry("Inv_Gesture"));
|
||||
|
||||
addEntry(LLInventoryIcon::ICONNAME_CLOTHING_PHYSICS, new IconEntry("Inv_Physics"));
|
||||
|
||||
addEntry(LLInventoryIcon::ICONNAME_LINKITEM, new IconEntry("Inv_LinkItem"));
|
||||
addEntry(LLInventoryIcon::ICONNAME_LINKFOLDER, new IconEntry("Inv_LinkItem"));
|
||||
|
||||
|
|
|
|||
|
|
@ -66,9 +66,11 @@ public:
|
|||
ICONNAME_CLOTHING_SKIRT,
|
||||
ICONNAME_CLOTHING_ALPHA,
|
||||
ICONNAME_CLOTHING_TATTOO,
|
||||
|
||||
|
||||
ICONNAME_ANIMATION,
|
||||
ICONNAME_GESTURE,
|
||||
|
||||
ICONNAME_CLOTHING_PHYSICS,
|
||||
|
||||
ICONNAME_LINKITEM,
|
||||
ICONNAME_LINKFOLDER,
|
||||
|
|
|
|||
|
|
@ -72,7 +72,6 @@ enum ESubpart {
|
|||
SUBPART_SHAPE_MOUTH,
|
||||
SUBPART_SHAPE_CHIN,
|
||||
SUBPART_SHAPE_TORSO,
|
||||
SUBPART_SHAPE_PHYSICS,
|
||||
SUBPART_SHAPE_LEGS,
|
||||
SUBPART_SHAPE_WHOLE,
|
||||
SUBPART_SHAPE_DETAIL,
|
||||
|
|
@ -95,7 +94,8 @@ enum ESubpart {
|
|||
SUBPART_UNDERPANTS,
|
||||
SUBPART_SKIRT,
|
||||
SUBPART_ALPHA,
|
||||
SUBPART_TATTOO
|
||||
SUBPART_TATTOO,
|
||||
SUBPART_PHYSICS
|
||||
};
|
||||
|
||||
using namespace LLVOAvatarDefines;
|
||||
|
|
@ -219,7 +219,7 @@ LLEditWearableDictionary::Wearables::Wearables()
|
|||
// note the subpart that is listed first is treated as "default", regardless of what order is in enum.
|
||||
// Please match the order presented in XUI. -Nyx
|
||||
// this will affect what camera angle is shown when first editing a wearable
|
||||
addEntry(LLWearableType::WT_SHAPE, new WearableEntry(LLWearableType::WT_SHAPE,"edit_shape_title","shape_desc_text",0,0,10, SUBPART_SHAPE_WHOLE, SUBPART_SHAPE_HEAD, SUBPART_SHAPE_EYES, SUBPART_SHAPE_EARS, SUBPART_SHAPE_NOSE, SUBPART_SHAPE_MOUTH, SUBPART_SHAPE_CHIN, SUBPART_SHAPE_TORSO, SUBPART_SHAPE_LEGS, SUBPART_SHAPE_PHYSICS));
|
||||
addEntry(LLWearableType::WT_SHAPE, new WearableEntry(LLWearableType::WT_SHAPE,"edit_shape_title","shape_desc_text",0,0,9, SUBPART_SHAPE_WHOLE, SUBPART_SHAPE_HEAD, SUBPART_SHAPE_EYES, SUBPART_SHAPE_EARS, SUBPART_SHAPE_NOSE, SUBPART_SHAPE_MOUTH, SUBPART_SHAPE_CHIN, SUBPART_SHAPE_TORSO, SUBPART_SHAPE_LEGS));
|
||||
addEntry(LLWearableType::WT_SKIN, new WearableEntry(LLWearableType::WT_SKIN,"edit_skin_title","skin_desc_text",0,3,4, TEX_HEAD_BODYPAINT, TEX_UPPER_BODYPAINT, TEX_LOWER_BODYPAINT, SUBPART_SKIN_COLOR, SUBPART_SKIN_FACEDETAIL, SUBPART_SKIN_MAKEUP, SUBPART_SKIN_BODYDETAIL));
|
||||
addEntry(LLWearableType::WT_HAIR, new WearableEntry(LLWearableType::WT_HAIR,"edit_hair_title","hair_desc_text",0,1,4, TEX_HAIR, SUBPART_HAIR_COLOR, SUBPART_HAIR_STYLE, SUBPART_HAIR_EYEBROWS, SUBPART_HAIR_FACIAL));
|
||||
addEntry(LLWearableType::WT_EYES, new WearableEntry(LLWearableType::WT_EYES,"edit_eyes_title","eyes_desc_text",0,1,1, TEX_EYES_IRIS, SUBPART_EYES));
|
||||
|
|
@ -234,6 +234,7 @@ LLEditWearableDictionary::Wearables::Wearables()
|
|||
addEntry(LLWearableType::WT_SKIRT, new WearableEntry(LLWearableType::WT_SKIRT,"edit_skirt_title","skirt_desc_text",1,1,1, TEX_SKIRT, TEX_SKIRT, SUBPART_SKIRT));
|
||||
addEntry(LLWearableType::WT_ALPHA, new WearableEntry(LLWearableType::WT_ALPHA,"edit_alpha_title","alpha_desc_text",0,5,1, TEX_LOWER_ALPHA, TEX_UPPER_ALPHA, TEX_HEAD_ALPHA, TEX_EYES_ALPHA, TEX_HAIR_ALPHA, SUBPART_ALPHA));
|
||||
addEntry(LLWearableType::WT_TATTOO, new WearableEntry(LLWearableType::WT_TATTOO,"edit_tattoo_title","tattoo_desc_text",1,3,1, TEX_HEAD_TATTOO, TEX_LOWER_TATTOO, TEX_UPPER_TATTOO, TEX_HEAD_TATTOO, SUBPART_TATTOO));
|
||||
addEntry(LLWearableType::WT_PHYSICS, new WearableEntry(LLWearableType::WT_PHYSICS,"edit_physics_title","physics_desc_text",0,0,1, SUBPART_PHYSICS));
|
||||
}
|
||||
|
||||
LLEditWearableDictionary::WearableEntry::WearableEntry(LLWearableType::EType type,
|
||||
|
|
@ -279,7 +280,6 @@ LLEditWearableDictionary::Subparts::Subparts()
|
|||
addEntry(SUBPART_SHAPE_MOUTH, new SubpartEntry(SUBPART_SHAPE_MOUTH, "mHead", "shape_mouth", "shape_mouth_param_list", "shape_mouth_tab", LLVector3d(0.f, 0.f, 0.05f), LLVector3d(-0.5f, 0.05f, 0.07f),SEX_BOTH));
|
||||
addEntry(SUBPART_SHAPE_CHIN, new SubpartEntry(SUBPART_SHAPE_CHIN, "mHead", "shape_chin", "shape_chin_param_list", "shape_chin_tab", LLVector3d(0.f, 0.f, 0.05f), LLVector3d(-0.5f, 0.05f, 0.07f),SEX_BOTH));
|
||||
addEntry(SUBPART_SHAPE_TORSO, new SubpartEntry(SUBPART_SHAPE_TORSO, "mTorso", "shape_torso", "shape_torso_param_list", "shape_torso_tab", LLVector3d(0.f, 0.f, 0.3f), LLVector3d(-1.f, 0.15f, 0.3f),SEX_BOTH));
|
||||
addEntry(SUBPART_SHAPE_PHYSICS, new SubpartEntry(SUBPART_SHAPE_PHYSICS, "mTorso", "shape_physics", "shape_physics_param_list", "shape_physics_tab", LLVector3d(0.f, 0.f, 0.3f), LLVector3d(-1.f, 0.15f, 0.3f),SEX_FEMALE));
|
||||
addEntry(SUBPART_SHAPE_LEGS, new SubpartEntry(SUBPART_SHAPE_LEGS, "mPelvis", "shape_legs", "shape_legs_param_list", "shape_legs_tab", LLVector3d(0.f, 0.f, -0.5f), LLVector3d(-1.6f, 0.15f, -0.5f),SEX_BOTH));
|
||||
|
||||
addEntry(SUBPART_SKIN_COLOR, new SubpartEntry(SUBPART_SKIN_COLOR, "mHead", "skin_color", "skin_color_param_list", "skin_color_tab", LLVector3d(0.f, 0.f, 0.05f), LLVector3d(-0.5f, 0.05f, 0.07f),SEX_BOTH));
|
||||
|
|
@ -305,6 +305,7 @@ LLEditWearableDictionary::Subparts::Subparts()
|
|||
addEntry(SUBPART_UNDERPANTS, new SubpartEntry(SUBPART_UNDERPANTS, "mPelvis", "underpants", "underpants_main_param_list", "underpants_main_tab", LLVector3d(0.f, 0.f, -0.5f), LLVector3d(-1.6f, 0.15f, -0.5f),SEX_BOTH));
|
||||
addEntry(SUBPART_ALPHA, new SubpartEntry(SUBPART_ALPHA, "mPelvis", "alpha", "alpha_main_param_list", "alpha_main_tab", LLVector3d(0.f, 0.f, 0.1f), LLVector3d(-2.5f, 0.5f, 0.8f),SEX_BOTH));
|
||||
addEntry(SUBPART_TATTOO, new SubpartEntry(SUBPART_TATTOO, "mPelvis", "tattoo", "tattoo_main_param_list", "tattoo_main_tab", LLVector3d(0.f, 0.f, 0.1f), LLVector3d(-2.5f, 0.5f, 0.8f),SEX_BOTH));
|
||||
addEntry(SUBPART_PHYSICS, new SubpartEntry(SUBPART_PHYSICS, "mTorso", "physics", "physics_main_param_list", "physics_main_tab", LLVector3d(0.f, 0.f, 0.3f), LLVector3d(-1.f, 0.15f, 0.3f),SEX_FEMALE));
|
||||
}
|
||||
|
||||
LLEditWearableDictionary::SubpartEntry::SubpartEntry(ESubpart part,
|
||||
|
|
@ -741,6 +742,7 @@ BOOL LLPanelEditWearable::postBuild()
|
|||
mPanelSkirt = getChild<LLPanel>("edit_skirt_panel");
|
||||
mPanelAlpha = getChild<LLPanel>("edit_alpha_panel");
|
||||
mPanelTattoo = getChild<LLPanel>("edit_tattoo_panel");
|
||||
mPanelPhysics = getChild<LLPanel>("edit_physics_panel");
|
||||
|
||||
mTxtAvatarHeight = mPanelShape->getChild<LLTextBox>("avatar_height");
|
||||
|
||||
|
|
@ -1360,6 +1362,11 @@ LLPanel* LLPanelEditWearable::getPanel(LLWearableType::EType type)
|
|||
case LLWearableType::WT_TATTOO:
|
||||
return mPanelTattoo;
|
||||
break;
|
||||
|
||||
case LLWearableType::WT_PHYSICS:
|
||||
return mPanelPhysics;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -163,6 +163,7 @@ private:
|
|||
LLPanel *mPanelSkirt;
|
||||
LLPanel *mPanelAlpha;
|
||||
LLPanel *mPanelTattoo;
|
||||
LLPanel *mPanelPhysics;
|
||||
|
||||
typedef std::map<std::string, LLVOAvatarDefines::ETextureIndex> string_texture_index_map_t;
|
||||
string_texture_index_map_t mAlphaCheckbox2Index;
|
||||
|
|
|
|||
|
|
@ -466,6 +466,7 @@ BOOL LLPanelOutfitEdit::postBuild()
|
|||
mListViewItemTypes.push_back(new LLFilterItem(LLTrans::getString("skirt"), new LLFindActualWearablesOfType(LLWearableType::WT_SKIRT)));
|
||||
mListViewItemTypes.push_back(new LLFilterItem(LLTrans::getString("alpha"), new LLFindActualWearablesOfType(LLWearableType::WT_ALPHA)));
|
||||
mListViewItemTypes.push_back(new LLFilterItem(LLTrans::getString("tattoo"), new LLFindActualWearablesOfType(LLWearableType::WT_TATTOO)));
|
||||
mListViewItemTypes.push_back(new LLFilterItem(LLTrans::getString("physics"), new LLFindActualWearablesOfType(LLWearableType::WT_PHYSICS)));
|
||||
|
||||
mCurrentOutfitName = getChild<LLTextBox>("curr_outfit_name");
|
||||
mStatus = getChild<LLTextBox>("status");
|
||||
|
|
|
|||
|
|
@ -96,6 +96,7 @@ public:
|
|||
LVIT_SKIRT,
|
||||
LVIT_ALPHA,
|
||||
LVIT_TATTOO,
|
||||
LVIT_PHYSICS,
|
||||
NUM_LIST_VIEW_ITEM_TYPES
|
||||
} EListViewItemType;
|
||||
|
||||
|
|
|
|||
|
|
@ -434,14 +434,14 @@ void LLSidepanelAppearance::refreshCurrentOutfitName(const std::string& name)
|
|||
}
|
||||
|
||||
//static
|
||||
void LLSidepanelAppearance::editWearable(LLWearable *wearable, LLView *data)
|
||||
void LLSidepanelAppearance::editWearable(LLWearable *wearable, LLView *data, BOOL disable_camera_switch)
|
||||
{
|
||||
LLSideTray::getInstance()->showPanel("sidepanel_appearance");
|
||||
|
||||
LLSidepanelAppearance *panel = dynamic_cast<LLSidepanelAppearance*>(data);
|
||||
if (panel)
|
||||
{
|
||||
panel->showWearableEditPanel(wearable);
|
||||
panel->showWearableEditPanel(wearable, disable_camera_switch);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public:
|
|||
|
||||
void refreshCurrentOutfitName(const std::string& name = "");
|
||||
|
||||
static void editWearable(LLWearable *wearable, LLView *data);
|
||||
static void editWearable(LLWearable *wearable, LLView *data, BOOL disable_camera_switch = FALSE);
|
||||
|
||||
void fetchInventory();
|
||||
void inventoryFetched();
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@ public:
|
|||
mInventoryItemsDict["New Skirt"] = LLTrans::getString("New Skirt");
|
||||
mInventoryItemsDict["New Alpha"] = LLTrans::getString("New Alpha");
|
||||
mInventoryItemsDict["New Tattoo"] = LLTrans::getString("New Tattoo");
|
||||
mInventoryItemsDict["New Physics"] = LLTrans::getString("New Physics");
|
||||
mInventoryItemsDict["Invalid Wearable"] = LLTrans::getString("Invalid Wearable");
|
||||
|
||||
mInventoryItemsDict["New Gesture"] = LLTrans::getString("New Gesture");
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ extern F32 ANIM_SPEED_MIN;
|
|||
|
||||
#include <boost/lexical_cast.hpp>
|
||||
|
||||
#define OUTPUT_BREAST_DATA
|
||||
// #define OUTPUT_BREAST_DATA
|
||||
|
||||
using namespace LLVOAvatarDefines;
|
||||
|
||||
|
|
@ -787,6 +787,11 @@ public:
|
|||
// must return FALSE when the motion is completed.
|
||||
virtual BOOL onUpdate(F32 time, U8* joint_mask)
|
||||
{
|
||||
if (!gSavedSettings.getBOOL("AvatarPhysics"))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
FILE *fread = fopen("c:\\temp\\breast_data.txt","r");
|
||||
if (fread)
|
||||
|
|
|
|||
|
|
@ -443,6 +443,7 @@ clothing_to_string_map_t init_clothing_string_map()
|
|||
w_map.insert(std::make_pair(LLWearableType::WT_SKIRT, "skirt_not_worn"));
|
||||
w_map.insert(std::make_pair(LLWearableType::WT_ALPHA, "alpha_not_worn"));
|
||||
w_map.insert(std::make_pair(LLWearableType::WT_TATTOO, "tattoo_not_worn"));
|
||||
w_map.insert(std::make_pair(LLWearableType::WT_PHYSICS, "physics_not_worn"));
|
||||
return w_map;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -34,25 +34,27 @@ struct WearableEntry : public LLDictionaryEntry
|
|||
WearableEntry(const std::string &name,
|
||||
const std::string& default_new_name,
|
||||
LLAssetType::EType assetType,
|
||||
LLInventoryIcon::EIconName iconName);
|
||||
LLInventoryIcon::EIconName iconName,
|
||||
BOOL disable_camera_switch = FALSE,
|
||||
BOOL allow_multiwear = TRUE) :
|
||||
LLDictionaryEntry(name),
|
||||
mAssetType(assetType),
|
||||
mDefaultNewName(default_new_name),
|
||||
mLabel(LLTrans::getString(name)),
|
||||
mIconName(iconName),
|
||||
mDisableCameraSwitch(disable_camera_switch),
|
||||
mAllowMultiwear(allow_multiwear)
|
||||
{
|
||||
|
||||
}
|
||||
const LLAssetType::EType mAssetType;
|
||||
const std::string mLabel;
|
||||
const std::string mDefaultNewName; //keep mLabel for backward compatibility
|
||||
LLInventoryIcon::EIconName mIconName;
|
||||
BOOL mDisableCameraSwitch;
|
||||
BOOL mAllowMultiwear;
|
||||
};
|
||||
|
||||
WearableEntry::WearableEntry(const std::string &name,
|
||||
const std::string& default_new_name,
|
||||
LLAssetType::EType assetType,
|
||||
LLInventoryIcon::EIconName iconName) :
|
||||
LLDictionaryEntry(name),
|
||||
mAssetType(assetType),
|
||||
mDefaultNewName(default_new_name),
|
||||
mLabel(LLTrans::getString(name)),
|
||||
mIconName(iconName)
|
||||
{
|
||||
}
|
||||
|
||||
class LLWearableDictionary : public LLSingleton<LLWearableDictionary>,
|
||||
public LLDictionary<LLWearableType::EType, WearableEntry>
|
||||
{
|
||||
|
|
@ -62,23 +64,26 @@ public:
|
|||
|
||||
LLWearableDictionary::LLWearableDictionary()
|
||||
{
|
||||
addEntry(LLWearableType::WT_SHAPE, new WearableEntry("shape", "New Shape", LLAssetType::AT_BODYPART, LLInventoryIcon::ICONNAME_BODYPART_SHAPE));
|
||||
addEntry(LLWearableType::WT_SKIN, new WearableEntry("skin", "New Skin", LLAssetType::AT_BODYPART, LLInventoryIcon::ICONNAME_BODYPART_SKIN));
|
||||
addEntry(LLWearableType::WT_HAIR, new WearableEntry("hair", "New Hair", LLAssetType::AT_BODYPART, LLInventoryIcon::ICONNAME_BODYPART_HAIR));
|
||||
addEntry(LLWearableType::WT_EYES, new WearableEntry("eyes", "New Eyes", LLAssetType::AT_BODYPART, LLInventoryIcon::ICONNAME_BODYPART_EYES));
|
||||
addEntry(LLWearableType::WT_SHIRT, new WearableEntry("shirt", "New Shirt", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_SHIRT));
|
||||
addEntry(LLWearableType::WT_PANTS, new WearableEntry("pants", "New Pants", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_PANTS));
|
||||
addEntry(LLWearableType::WT_SHOES, new WearableEntry("shoes", "New Shoes", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_SHOES));
|
||||
addEntry(LLWearableType::WT_SOCKS, new WearableEntry("socks", "New Socks", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_SOCKS));
|
||||
addEntry(LLWearableType::WT_JACKET, new WearableEntry("jacket", "New Jacket", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_JACKET));
|
||||
addEntry(LLWearableType::WT_GLOVES, new WearableEntry("gloves", "New Gloves", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_GLOVES));
|
||||
addEntry(LLWearableType::WT_UNDERSHIRT, new WearableEntry("undershirt", "New Undershirt", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_UNDERSHIRT));
|
||||
addEntry(LLWearableType::WT_UNDERPANTS, new WearableEntry("underpants", "New Underpants", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_UNDERPANTS));
|
||||
addEntry(LLWearableType::WT_SKIRT, new WearableEntry("skirt", "New Skirt", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_SKIRT));
|
||||
addEntry(LLWearableType::WT_ALPHA, new WearableEntry("alpha", "New Alpha", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_ALPHA));
|
||||
addEntry(LLWearableType::WT_TATTOO, new WearableEntry("tattoo", "New Tattoo", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_TATTOO));
|
||||
addEntry(LLWearableType::WT_INVALID, new WearableEntry("invalid", "Invalid Wearable", LLAssetType::AT_NONE, LLInventoryIcon::ICONNAME_NONE));
|
||||
addEntry(LLWearableType::WT_NONE, new WearableEntry("none", "Invalid Wearable", LLAssetType::AT_NONE, LLInventoryIcon::ICONNAME_NONE));
|
||||
addEntry(LLWearableType::WT_SHAPE, new WearableEntry("shape", "New Shape", LLAssetType::AT_BODYPART, LLInventoryIcon::ICONNAME_BODYPART_SHAPE, FALSE, FALSE));
|
||||
addEntry(LLWearableType::WT_SKIN, new WearableEntry("skin", "New Skin", LLAssetType::AT_BODYPART, LLInventoryIcon::ICONNAME_BODYPART_SKIN, FALSE, FALSE));
|
||||
addEntry(LLWearableType::WT_HAIR, new WearableEntry("hair", "New Hair", LLAssetType::AT_BODYPART, LLInventoryIcon::ICONNAME_BODYPART_HAIR, FALSE, FALSE));
|
||||
addEntry(LLWearableType::WT_EYES, new WearableEntry("eyes", "New Eyes", LLAssetType::AT_BODYPART, LLInventoryIcon::ICONNAME_BODYPART_EYES, FALSE, FALSE));
|
||||
addEntry(LLWearableType::WT_SHIRT, new WearableEntry("shirt", "New Shirt", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_SHIRT, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_PANTS, new WearableEntry("pants", "New Pants", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_PANTS, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_SHOES, new WearableEntry("shoes", "New Shoes", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_SHOES, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_SOCKS, new WearableEntry("socks", "New Socks", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_SOCKS, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_JACKET, new WearableEntry("jacket", "New Jacket", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_JACKET, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_GLOVES, new WearableEntry("gloves", "New Gloves", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_GLOVES, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_UNDERSHIRT, new WearableEntry("undershirt", "New Undershirt", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_UNDERSHIRT, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_UNDERPANTS, new WearableEntry("underpants", "New Underpants", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_UNDERPANTS, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_SKIRT, new WearableEntry("skirt", "New Skirt", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_SKIRT, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_ALPHA, new WearableEntry("alpha", "New Alpha", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_ALPHA, FALSE, TRUE));
|
||||
addEntry(LLWearableType::WT_TATTOO, new WearableEntry("tattoo", "New Tattoo", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_TATTOO, FALSE, TRUE));
|
||||
|
||||
addEntry(LLWearableType::WT_PHYSICS, new WearableEntry("physics", "New Physics", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_PHYSICS, TRUE, FALSE));
|
||||
|
||||
addEntry(LLWearableType::WT_INVALID, new WearableEntry("invalid", "Invalid Wearable", LLAssetType::AT_NONE, LLInventoryIcon::ICONNAME_NONE, FALSE, FALSE));
|
||||
addEntry(LLWearableType::WT_NONE, new WearableEntry("none", "Invalid Wearable", LLAssetType::AT_NONE, LLInventoryIcon::ICONNAME_NONE, FALSE, FALSE));
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
@ -129,3 +134,19 @@ LLInventoryIcon::EIconName LLWearableType::getIconName(LLWearableType::EType typ
|
|||
return entry->mIconName;
|
||||
}
|
||||
|
||||
// static
|
||||
BOOL LLWearableType::getDisableCameraSwitch(LLWearableType::EType type)
|
||||
{
|
||||
const LLWearableDictionary *dict = LLWearableDictionary::getInstance();
|
||||
const WearableEntry *entry = dict->lookup(type);
|
||||
return entry->mDisableCameraSwitch;
|
||||
}
|
||||
|
||||
// static
|
||||
BOOL LLWearableType::getAllowMultiwear(LLWearableType::EType type)
|
||||
{
|
||||
const LLWearableDictionary *dict = LLWearableDictionary::getInstance();
|
||||
const WearableEntry *entry = dict->lookup(type);
|
||||
return entry->mAllowMultiwear;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,8 @@ public:
|
|||
WT_SKIRT = 12,
|
||||
WT_ALPHA = 13,
|
||||
WT_TATTOO = 14,
|
||||
WT_COUNT = 15,
|
||||
WT_PHYSICS = 15,
|
||||
WT_COUNT = 16,
|
||||
|
||||
WT_INVALID = 255,
|
||||
WT_NONE = -1,
|
||||
|
|
@ -64,6 +65,8 @@ public:
|
|||
static LLAssetType::EType getAssetType(EType type);
|
||||
static EType typeNameToType(const std::string& type_name);
|
||||
static LLInventoryIcon::EIconName getIconName(EType type);
|
||||
static BOOL getDisableCameraSwitch(EType type);
|
||||
static BOOL getAllowMultiwear(EType type);
|
||||
|
||||
protected:
|
||||
LLWearableType() {}
|
||||
|
|
|
|||
|
|
@ -223,6 +223,7 @@ with the same filename but different name
|
|||
<texture name="Inv_SysClosed" file_name="icons/Inv_SysClosed.png" preload="false" />
|
||||
<texture name="Inv_SysOpen" file_name="icons/Inv_SysOpen.png" preload="false" />
|
||||
<texture name="Inv_Tattoo" file_name="icons/Inv_Tattoo.png" preload="false" />
|
||||
<texture name="Inv_Physics" file_name="icons/Inv_Physics.png" preload="false" />
|
||||
<texture name="Inv_Texture" file_name="icons/Inv_Texture.png" preload="false" />
|
||||
<texture name="Inv_TrashClosed" file_name="icons/Inv_TrashClosed.png" preload="false" />
|
||||
<texture name="Inv_TrashOpen" file_name="icons/Inv_TrashOpen.png" preload="false" />
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -80,14 +80,6 @@ name="Edit Outfit">
|
|||
<menu_item_call.on_enable
|
||||
function="Edit.EnableEditShape" />
|
||||
</menu_item_call>
|
||||
<menu_item_call label="Edit My Physics"
|
||||
layout="topleft"
|
||||
name="Edit My Physics">
|
||||
<menu_item_call.on_click
|
||||
function="EditPhysics" />
|
||||
<menu_item_call.on_enable
|
||||
function="Edit.EnableEditPhysics" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="My Friends"
|
||||
layout="topleft"
|
||||
|
|
|
|||
|
|
@ -140,6 +140,18 @@
|
|||
function="Edit.EnableTakeOff"
|
||||
parameter="tattoo" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
enabled="false"
|
||||
label="Physics"
|
||||
layout="topleft"
|
||||
name="Self Physics">
|
||||
<menu_item_call.on_click
|
||||
function="Edit.TakeOff"
|
||||
parameter="physics" />
|
||||
<menu_item_call.on_enable
|
||||
function="Edit.EnableTakeOff"
|
||||
parameter="physics" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
enabled="false"
|
||||
label="Alpha"
|
||||
|
|
@ -206,14 +218,6 @@
|
|||
function="EditShape" />
|
||||
<menu_item_call.on_enable
|
||||
function="Edit.EnableEditShape" />
|
||||
</menu_item_call>
|
||||
<menu_item_call label="Edit My Physics"
|
||||
layout="topleft"
|
||||
name="Edit My Physics">
|
||||
<menu_item_call.on_click
|
||||
function="EditPhysics" />
|
||||
<menu_item_call.on_enable
|
||||
function="Edit.EnableEditPhysics" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="My Friends"
|
||||
|
|
|
|||
|
|
@ -200,6 +200,14 @@
|
|||
function="Inventory.DoCreate"
|
||||
parameter="tattoo" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="New Physics"
|
||||
layout="topleft"
|
||||
name="New Physics">
|
||||
<menu_item_call.on_click
|
||||
function="Inventory.DoCreate"
|
||||
parameter="physics" />
|
||||
</menu_item_call>
|
||||
</menu>
|
||||
<menu
|
||||
label="New Body Parts"
|
||||
|
|
|
|||
|
|
@ -188,6 +188,14 @@
|
|||
function="Inventory.DoCreate"
|
||||
parameter="tattoo" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="New Physics"
|
||||
layout="topleft"
|
||||
name="New Physics">
|
||||
<menu_item_call.on_click
|
||||
function="Inventory.DoCreate"
|
||||
parameter="physics" />
|
||||
</menu_item_call>
|
||||
</menu>
|
||||
<menu
|
||||
height="85"
|
||||
|
|
|
|||
|
|
@ -132,6 +132,14 @@
|
|||
function="Gear.Create"
|
||||
parameter="alpha" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="New Physics"
|
||||
layout="topleft"
|
||||
name="New Physics">
|
||||
<menu_item_call.on_click
|
||||
function="Gear.Create"
|
||||
parameter="physics" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="New Tattoo"
|
||||
layout="topleft"
|
||||
|
|
|
|||
|
|
@ -3305,6 +3305,16 @@
|
|||
function="Edit.EnableTakeOff"
|
||||
parameter="tattoo" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Physics"
|
||||
name="Physics">
|
||||
<menu_item_call.on_click
|
||||
function="Edit.TakeOff"
|
||||
parameter="physics" />
|
||||
<menu_item_call.on_enable
|
||||
function="Edit.EnableTakeOff"
|
||||
parameter="physics" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="All Clothes"
|
||||
name="All Clothes">
|
||||
|
|
|
|||
|
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<panel
|
||||
background_visible="true"
|
||||
follows="all"
|
||||
height="400"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="edit_physics_panel"
|
||||
top_pad="10"
|
||||
width="333" >
|
||||
<panel
|
||||
border="false"
|
||||
bg_alpha_color="DkGray2"
|
||||
bg_opaque_color="DkGray2"
|
||||
background_visible="true"
|
||||
background_opaque="true"
|
||||
follows="all"
|
||||
height="300"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="accordion_panel"
|
||||
top_pad="10"
|
||||
width="313">
|
||||
<accordion
|
||||
fit_parent="true"
|
||||
follows="all"
|
||||
height ="300"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="wearable_accordion"
|
||||
single_expansion="true"
|
||||
top="0"
|
||||
width="313">
|
||||
<accordion_tab
|
||||
layout="topleft"
|
||||
fit_panel="false"
|
||||
min_height="150"
|
||||
name="physics_main_tab"
|
||||
title="Physics">
|
||||
<scrolling_panel_list
|
||||
follows="all"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="physics_main_param_list"
|
||||
top="0"
|
||||
width="303" />
|
||||
</accordion_tab>
|
||||
</accordion>
|
||||
</panel>
|
||||
</panel>
|
||||
|
||||
|
|
@ -71,6 +71,10 @@
|
|||
name="edit_tattoo_title">
|
||||
Editing Tattoo
|
||||
</string>
|
||||
<string
|
||||
name="edit_physics_title">
|
||||
Editing Physics
|
||||
</string>
|
||||
<string
|
||||
name="shape_desc_text">
|
||||
Shape:
|
||||
|
|
@ -131,6 +135,10 @@
|
|||
name="tattoo_desc_text">
|
||||
Tattoo:
|
||||
</string>
|
||||
<string
|
||||
name="physics_desc_text">
|
||||
Physics:
|
||||
</string>
|
||||
<!-- Default width of the button should be to show it without label.
|
||||
Button will be extedned in code to show whole label when wearable is being changed.
|
||||
-->
|
||||
|
|
@ -407,6 +415,16 @@
|
|||
top="8"
|
||||
visible="false"
|
||||
width="333" />
|
||||
<panel
|
||||
filename="panel_edit_physics.xml"
|
||||
follows="all"
|
||||
height="425"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="edit_physics_panel"
|
||||
top="8"
|
||||
visible="false"
|
||||
width="333" />
|
||||
</panel>
|
||||
<panel
|
||||
follows="bottom|left|right"
|
||||
|
|
|
|||
|
|
@ -1813,6 +1813,7 @@ Clears (deletes) the media and all params from the given face.
|
|||
<string name="skirt">Skirt</string>
|
||||
<string name="alpha">Alpha</string>
|
||||
<string name="tattoo">Tattoo</string>
|
||||
<string name="physics">Physics</string>
|
||||
<string name="invalid">invalid</string>
|
||||
<string name="none">none</string>
|
||||
|
||||
|
|
@ -1828,6 +1829,7 @@ Clears (deletes) the media and all params from the given face.
|
|||
<string name="skirt_not_worn">Skirt not worn</string>
|
||||
<string name="alpha_not_worn">Alpha not worn</string>
|
||||
<string name="tattoo_not_worn">Tattoo not worn</string>
|
||||
<string name="physics_not_worn">Physics not worn</string>
|
||||
<string name="invalid_not_worn">invalid</string>
|
||||
|
||||
<!-- Create new wearable of the specified type -->
|
||||
|
|
@ -1846,6 +1848,7 @@ Clears (deletes) the media and all params from the given face.
|
|||
<string name="create_new_skirt">Create new skirt</string>
|
||||
<string name="create_new_alpha">Create new alpha</string>
|
||||
<string name="create_new_tattoo">Create new tattoo</string>
|
||||
<string name="create_new_physics">Create new physics</string>
|
||||
<string name="create_new_invalid">invalid</string>
|
||||
|
||||
<!-- Wearable List-->
|
||||
|
|
@ -3186,6 +3189,7 @@ Abuse Report</string>
|
|||
<string name="New Skirt">New Skirt</string>
|
||||
<string name="New Alpha">New Alpha</string>
|
||||
<string name="New Tattoo">New Tattoo</string>
|
||||
<string name="New Physics">New Physics</string>
|
||||
<string name="Invalid Wearable">Invalid Wearable</string>
|
||||
<string name="New Gesture">New Gesture</string>
|
||||
<string name="New Script">New Script</string>
|
||||
|
|
|
|||
Loading…
Reference in New Issue