Don't create links to the bridge when saving an outfit. Partial fix for FIRE-1474.

meow-7.2.2
Tonya Souther 2011-09-04 21:45:58 -05:00
parent cb32caa1d8
commit 09bcc26ecd
2 changed files with 29 additions and 15 deletions

View File

@ -60,6 +60,7 @@
//#define ROOT_FIRESTORM_FOLDER "#Firestorm" //moved to llinventoryfunctions to synch with the AO object
#define FS_BRIDGE_FOLDER "#LSL Bridge"
// If you change this, change it in llappearancemgr.cpp too. -- TS
#define FS_BRIDGE_NAME "#Firestorm LSL Bridge v"
#define FS_BRIDGE_MAJOR_VERSION 1
#define FS_BRIDGE_MINOR_VERSION 7

View File

@ -58,6 +58,10 @@
#include "fslslbridge.h"
//-TT
// Firestorm bridge name prefix. MUST correspond to the same variable in
// fslslbridge.cpp. -- TS
#define FS_BRIDGE_NAME "#Firestorm LSL Bridge v"
// RAII thingy to guarantee that a variable gets reset when the Setter
// goes out of scope. More general utility would be handy - TODO:
// check boost.
@ -1260,18 +1264,24 @@ void LLAppearanceMgr::shallowCopyCategoryContents(const LLUUID& src_id, const LL
++iter)
{
const LLViewerInventoryItem* item = (*iter);
std::string item_name = item->getName();
size_t bridge_name_len = sizeof(FS_BRIDGE_NAME) - 1;
switch (item->getActualType())
{
case LLAssetType::AT_LINK:
{
//LLInventoryItem::getDescription() is used for a new description
//to propagate ordering information saved in descriptions of links
link_inventory_item(gAgent.getID(),
item->getLinkedUUID(),
dst_id,
item->getName(),
item->LLInventoryItem::getDescription(),
LLAssetType::AT_LINK, cb);
if (item_name.substr(0,bridge_name_len) != FS_BRIDGE_NAME)
{
llinfos << "copying inventory link " << item_name << llendl;
//LLInventoryItem::getDescription() is used for a new description
//to propagate ordering information saved in descriptions of links
link_inventory_item(gAgent.getID(),
item->getLinkedUUID(),
dst_id,
item->getName(),
item->LLInventoryItem::getDescription(),
LLAssetType::AT_LINK, cb);
}
break;
}
case LLAssetType::AT_LINK_FOLDER:
@ -1294,13 +1304,16 @@ void LLAppearanceMgr::shallowCopyCategoryContents(const LLUUID& src_id, const LL
case LLAssetType::AT_BODYPART:
case LLAssetType::AT_GESTURE:
{
llinfos << "copying inventory item " << item->getName() << llendl;
copy_inventory_item(gAgent.getID(),
item->getPermissions().getOwner(),
item->getUUID(),
dst_id,
item->getName(),
cb);
if (item_name.substr(0,bridge_name_len) != FS_BRIDGE_NAME)
{
llinfos << "copying inventory item " << item_name << llendl;
copy_inventory_item(gAgent.getID(),
item->getPermissions().getOwner(),
item->getUUID(),
dst_id,
item_name,
cb);
}
break;
}
default: