Update rlva (mainly in llviewermessage.cpp)
This commit is contained in:
@@ -1548,18 +1548,16 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD&
|
|||||||
// end has already copied the items into your inventory,
|
// end has already copied the items into your inventory,
|
||||||
// so we can fetch it out of our inventory.
|
// so we can fetch it out of our inventory.
|
||||||
// [RLVa:KB] - Checked: 2010-04-18 (RLVa-1.2.0e) | Modified: RLVa-1.2.0e
|
// [RLVa:KB] - Checked: 2010-04-18 (RLVa-1.2.0e) | Modified: RLVa-1.2.0e
|
||||||
#ifdef RLV_EXTENSION_GIVETORLV_A2A
|
|
||||||
if ( (rlv_handler_t::isEnabled()) && (!RlvSettings::getForbidGiveToRLV()) && (LLAssetType::AT_CATEGORY == mType) &&
|
if ( (rlv_handler_t::isEnabled()) && (!RlvSettings::getForbidGiveToRLV()) && (LLAssetType::AT_CATEGORY == mType) &&
|
||||||
(RlvInventory::instance().getSharedRoot()) && (mDesc.find(RLV_PUTINV_PREFIX) == 0) )
|
(RlvInventory::instance().getSharedRoot()) && (mDesc.find(RLV_PUTINV_PREFIX) == 0) )
|
||||||
{
|
{
|
||||||
RlvGiveToRLVAgentOffer* pOffer = new RlvGiveToRLVAgentOffer(mObjectID);
|
RlvGiveToRLVAgentOffer* pOfferObserver = new RlvGiveToRLVAgentOffer(mObjectID);
|
||||||
pOffer->startFetch();
|
pOfferObserver->startFetch();
|
||||||
if (pOffer->isFinished())
|
if (pOfferObserver->isFinished())
|
||||||
pOffer->done();
|
pOfferObserver->done();
|
||||||
else
|
else
|
||||||
gInventory.addObserver(pOffer);
|
gInventory.addObserver(pOfferObserver);
|
||||||
}
|
}
|
||||||
#endif // RLV_EXTENSION_GIVETORLV_A2A
|
|
||||||
// [/RLVa:KB]
|
// [/RLVa:KB]
|
||||||
|
|
||||||
LLOpenAgentOffer* open_agent_offer = new LLOpenAgentOffer(mObjectID, from_string);
|
LLOpenAgentOffer* open_agent_offer = new LLOpenAgentOffer(mObjectID, from_string);
|
||||||
@@ -1666,17 +1664,8 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD&
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void inventory_offer_handler(LLOfferInfo* info)
|
||||||
void inventory_offer_handler(LLOfferInfo* info, BOOL from_task)
|
|
||||||
{
|
{
|
||||||
//Until throttling is implemented, busy mode should reject inventory instead of silently
|
|
||||||
//accepting it. SEE SL-39554
|
|
||||||
if (gAgent.getBusy())
|
|
||||||
{
|
|
||||||
info->forceResponse(IOR_BUSY);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// NaCl - Antispam Registry
|
// NaCl - Antispam Registry
|
||||||
static LLCachedControl<bool> antispam(gSavedSettings,"_NACL_Antispam");
|
static LLCachedControl<bool> antispam(gSavedSettings,"_NACL_Antispam");
|
||||||
if(antispam || gSavedSettings.getBOOL("AntiSpamItemOffers") || NACLAntiSpamRegistry::checkQueue((U32)NACLAntiSpamRegistry::QUEUE_INVENTORY,info->mFromID))
|
if(antispam || gSavedSettings.getBOOL("AntiSpamItemOffers") || NACLAntiSpamRegistry::checkQueue((U32)NACLAntiSpamRegistry::QUEUE_INVENTORY,info->mFromID))
|
||||||
@@ -1712,13 +1701,6 @@ void inventory_offer_handler(LLOfferInfo* info, BOOL from_task)
|
|||||||
if(indx >= 0)
|
if(indx >= 0)
|
||||||
{
|
{
|
||||||
LLStringUtil::truncate(msg, indx);
|
LLStringUtil::truncate(msg, indx);
|
||||||
// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-04 (RLVa-1.0.0a) | Added: RLVa-1.0.0a
|
|
||||||
// TODO-RLVa: needs revisiting when LL saves open notifications to disk to accept them on the next relog
|
|
||||||
if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC))
|
|
||||||
{
|
|
||||||
RlvUtil::filterLocation(info->mDesc);
|
|
||||||
}
|
|
||||||
// [/RLVa:KB]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
LLSD args;
|
LLSD args;
|
||||||
@@ -1765,7 +1747,8 @@ void inventory_offer_handler(LLOfferInfo* info, BOOL from_task)
|
|||||||
std::string full_name;
|
std::string full_name;
|
||||||
if (gCacheName->getFullName(info->mFromID, full_name))
|
if (gCacheName->getFullName(info->mFromID, full_name))
|
||||||
{
|
{
|
||||||
// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e)
|
// [RLVa:KB] - Checked: 2010-11-02 (RLVa-1.2.2a) | Modified: RLVa-1.2.2a
|
||||||
|
// Only filter if the object owner is a nearby agent
|
||||||
if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (RlvUtil::isNearbyAgent(info->mFromID)) )
|
if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (RlvUtil::isNearbyAgent(info->mFromID)) )
|
||||||
{
|
{
|
||||||
full_name = RlvStrings::getAnonym(full_name);
|
full_name = RlvStrings::getAnonym(full_name);
|
||||||
@@ -1780,14 +1763,17 @@ void inventory_offer_handler(LLOfferInfo* info, BOOL from_task)
|
|||||||
LLNotification::Params p("ObjectGiveItem");
|
LLNotification::Params p("ObjectGiveItem");
|
||||||
p.substitutions(args).payload(payload).functor(boost::bind(&LLOfferInfo::inventory_offer_callback, info, _1, _2));
|
p.substitutions(args).payload(payload).functor(boost::bind(&LLOfferInfo::inventory_offer_callback, info, _1, _2));
|
||||||
|
|
||||||
if (from_task)
|
// Object -> Agent Inventory Offer
|
||||||
|
if (info->mFromObject)
|
||||||
{
|
{
|
||||||
p.name = name_found ? "ObjectGiveItem" : "ObjectGiveItemUnknownUser";
|
p.name = name_found ? "ObjectGiveItem" : "ObjectGiveItemUnknownUser";
|
||||||
}
|
}
|
||||||
else
|
else // Agent -> Agent Inventory Offer
|
||||||
{
|
{
|
||||||
// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e)
|
// [RLVa:KB] - Checked: 2010-11-02 (RLVa-1.2.2a) | Modified: RLVa-1.2.2a
|
||||||
if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (RlvUtil::isNearbyAgent(info->mFromID)) )
|
// Only filter if the offer is from a nearby agent and if there's no open IM session (doesn't necessarily have to be focused)
|
||||||
|
if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (RlvUtil::isNearbyAgent(info->mFromID)) &&
|
||||||
|
(!RlvUIEnabler::hasOpenIM(info->mFromID)) )
|
||||||
{
|
{
|
||||||
args["NAME"] = RlvStrings::getAnonym(info->mFromName);
|
args["NAME"] = RlvStrings::getAnonym(info->mFromName);
|
||||||
}
|
}
|
||||||
@@ -2225,11 +2211,16 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
|||||||
// [/RLVa:KB]
|
// [/RLVa:KB]
|
||||||
// else if (offline == IM_ONLINE && !is_linden && is_busy && name != SYSTEM_FROM)
|
// else if (offline == IM_ONLINE && !is_linden && is_busy && name != SYSTEM_FROM)
|
||||||
// [RLVa:KB] - Checked: 2010-11-30 (RLVa-1.3.0c) | Modified: RLVa-1.3.0c
|
// [RLVa:KB] - Checked: 2010-11-30 (RLVa-1.3.0c) | Modified: RLVa-1.3.0c
|
||||||
else if (offline == IM_ONLINE && !is_linden && is_busy && !is_muted && name != SYSTEM_FROM && gRlvHandler.canReceiveIM(from_id))
|
else if ( (offline == IM_ONLINE && !is_linden && is_busy && name != SYSTEM_FROM) && (gRlvHandler.canReceiveIM(from_id)) )
|
||||||
// [/RLVa:KB]
|
// [/RLVa:KB]
|
||||||
{
|
{
|
||||||
|
// return a standard "busy" message, but only do it to online IM
|
||||||
|
// (i.e. not other auto responses and not store-and-forward IM)
|
||||||
if (!gIMMgr->hasSession(session_id) || gSavedPerAccountSettings.getBOOL("AscentInstantMessageResponseRepeat"))
|
if (!gIMMgr->hasSession(session_id) || gSavedPerAccountSettings.getBOOL("AscentInstantMessageResponseRepeat"))
|
||||||
{
|
{
|
||||||
|
// if the user wants to repeat responses over and over or
|
||||||
|
// if there is not a panel for this conversation (i.e. it is a new IM conversation
|
||||||
|
// initiated by the other party) then...
|
||||||
if (to_id.notNull()) busy_message(msg, from_id);
|
if (to_id.notNull()) busy_message(msg, from_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2731,13 +2722,6 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
|||||||
info->mType = (LLAssetType::EType) bucketp->asset_type;
|
info->mType = (LLAssetType::EType) bucketp->asset_type;
|
||||||
info->mObjectID = bucketp->object_id;
|
info->mObjectID = bucketp->object_id;
|
||||||
info->mFromObject = FALSE;
|
info->mFromObject = FALSE;
|
||||||
|
|
||||||
// [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e)
|
|
||||||
if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (RlvUtil::isNearbyAgent(from_id)) )
|
|
||||||
{
|
|
||||||
name = RlvStrings::getAnonym(name);
|
|
||||||
}
|
|
||||||
// [/RLVa:KB]
|
|
||||||
}
|
}
|
||||||
else // IM_TASK_INVENTORY_OFFERED
|
else // IM_TASK_INVENTORY_OFFERED
|
||||||
{
|
{
|
||||||
@@ -2764,27 +2748,23 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
|||||||
//if (((is_busy && !is_owned_by_me) || is_muted))
|
//if (((is_busy && !is_owned_by_me) || is_muted))
|
||||||
if (is_muted)
|
if (is_muted)
|
||||||
{
|
{
|
||||||
|
// Prefetch the offered item so that it can be discarded by the appropriate observer. (EXT-4331)
|
||||||
|
LLInventoryFetchItemsObserver* fetch_item = new LLInventoryFetchItemsObserver(info->mObjectID);
|
||||||
|
fetch_item->startFetch();
|
||||||
|
delete fetch_item;
|
||||||
|
|
||||||
// Same as closing window
|
// Same as closing window
|
||||||
info->forceResponse(IOR_DECLINE);
|
info->forceResponse(IOR_DECLINE);
|
||||||
}
|
}
|
||||||
|
else if (is_busy && dialog != IM_TASK_INVENTORY_OFFERED) // busy mode must not affect interaction with objects (STORM-565)
|
||||||
|
{
|
||||||
|
// Until throttling is implemented, busy mode should reject inventory instead of silently
|
||||||
|
// accepting it. SEE SL-39554
|
||||||
|
info->forceResponse(IOR_DECLINE);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// [RLVa:KB] - Version: 1.23.4 | Checked: 2010-01-02 (RLVa-1.1.0l) | Modified: RLVa-1.1.0l
|
inventory_offer_handler(info);
|
||||||
if ( (rlv_handler_t::isEnabled()) &&
|
|
||||||
(
|
|
||||||
((IM_TASK_INVENTORY_OFFERED == dialog) && (info->mDesc.find(RLV_PUTINV_PREFIX) == 1))
|
|
||||||
#ifdef RLV_EXTENSION_GIVETORLV_A2A
|
|
||||||
|| ((IM_INVENTORY_OFFERED == dialog) && (info->mDesc.find(RLV_PUTINV_PREFIX) == 0))
|
|
||||||
#endif // RLV_EXTENSION_GIVETORLV_A2A
|
|
||||||
) &&
|
|
||||||
(RlvInventory::instance().getSharedRoot()) )
|
|
||||||
{
|
|
||||||
|
|
||||||
RlvUtil::warnGiveToRLV();
|
|
||||||
}
|
|
||||||
// [/RLVa:KB]
|
|
||||||
|
|
||||||
inventory_offer_handler(info, dialog == IM_TASK_INVENTORY_OFFERED);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -2844,7 +2824,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
|||||||
// {
|
// {
|
||||||
// return;
|
// return;
|
||||||
// }
|
// }
|
||||||
// [RLVa:KB] - Checked: 2011-09-17 (RLVa-1.1.4b) | Modified: RLVa-1.1.4b
|
// [RLVa:KB] - Checked: 2010-11-30 (RLVa-1.3.0c) | Modified: RLVa-1.3.0c
|
||||||
LLFloaterIMPanel* pIMFloater = gIMMgr->findFloaterBySession(session_id);
|
LLFloaterIMPanel* pIMFloater = gIMMgr->findFloaterBySession(session_id);
|
||||||
if (!pIMFloater)
|
if (!pIMFloater)
|
||||||
{
|
{
|
||||||
@@ -2919,15 +2899,6 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
|||||||
// Build a link to open the object IM info window.
|
// Build a link to open the object IM info window.
|
||||||
std::string location = ll_safe_string((char*)binary_bucket, binary_bucket_size);
|
std::string location = ll_safe_string((char*)binary_bucket, binary_bucket_size);
|
||||||
|
|
||||||
LLSD query_string;
|
|
||||||
query_string["owner"] = from_id;
|
|
||||||
query_string["slurl"] = location.c_str();
|
|
||||||
query_string["name"] = name;
|
|
||||||
if (from_group)
|
|
||||||
{
|
|
||||||
query_string["groupowned"] = "true";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (session_id.notNull())
|
if (session_id.notNull())
|
||||||
{
|
{
|
||||||
chat.mFromID = session_id;
|
chat.mFromID = session_id;
|
||||||
@@ -2958,11 +2929,38 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
|||||||
// IDEVO Some messages have embedded resident names
|
// IDEVO Some messages have embedded resident names
|
||||||
message = clean_name_from_task_im(message, from_group);
|
message = clean_name_from_task_im(message, from_group);
|
||||||
|
|
||||||
std::ostringstream link;
|
LLSD query_string;
|
||||||
link << "secondlife:///app/objectim/" << session_id
|
query_string["owner"] = from_id;
|
||||||
<< LLURI::mapToQueryString(query_string);
|
// [RLVa:KB] - Checked: 2010-04-22 (RLVa-1.2.0f) | Added: RLVa-1.2.0f
|
||||||
|
if (rlv_handler_t::isEnabled())
|
||||||
|
{
|
||||||
|
// NOTE: the chat message itself will be filtered in LLNearbyChatHandler::processChat()
|
||||||
|
if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (!from_group) && (RlvUtil::isNearbyAgent(from_id)) )
|
||||||
|
{
|
||||||
|
query_string["rlv_shownames"] = TRUE;
|
||||||
|
|
||||||
chat.mURL = link.str();
|
RlvUtil::filterNames(name);
|
||||||
|
chat.mFromName = name;
|
||||||
|
}
|
||||||
|
if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC))
|
||||||
|
{
|
||||||
|
std::string::size_type idxPos = location.find('/');
|
||||||
|
if ( (std::string::npos != idxPos) && (RlvUtil::isNearbyRegion(location.substr(0, idxPos))) )
|
||||||
|
location = RlvStrings::getString(RLV_STRING_HIDDEN_REGION);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// [/RLVa:KB]
|
||||||
|
query_string["slurl"] = location;
|
||||||
|
query_string["name"] = name;
|
||||||
|
if (from_group)
|
||||||
|
{
|
||||||
|
query_string["groupowned"] = "true";
|
||||||
|
}
|
||||||
|
|
||||||
|
// chat.mURL = LLSLURL("objectim", session_id, "").getSLURLString();
|
||||||
|
// [SL:KB] - Checked: 2010-11-02 (RLVa-1.2.2a) | Added: RLVa-1.2.2a
|
||||||
|
chat.mURL = LLSLURL("objectim", session_id, LLURI::mapToQueryString(query_string)).getSLURLString();
|
||||||
|
// [/SL:KB]
|
||||||
chat.mText = name + separator_string + message.substr(message_offset);
|
chat.mText = name + separator_string + message.substr(message_offset);
|
||||||
|
|
||||||
// Note: lie to LLFloaterChat::addChat(), pretending that this is NOT an IM, because
|
// Note: lie to LLFloaterChat::addChat(), pretending that this is NOT an IM, because
|
||||||
@@ -2980,16 +2978,6 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e)
|
|
||||||
// TODO-RLVa: what actually generates this?
|
|
||||||
if (rlv_handler_t::isEnabled())
|
|
||||||
{
|
|
||||||
if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC))
|
|
||||||
RlvUtil::filterLocation(message);
|
|
||||||
if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES))
|
|
||||||
RlvUtil::filterNames(message);
|
|
||||||
}
|
|
||||||
// [/RLVa:KB]
|
|
||||||
// Construct a viewer alert for this message.
|
// Construct a viewer alert for this message.
|
||||||
args["NAME"] = name;
|
args["NAME"] = name;
|
||||||
args["MESSAGE"] = message;
|
args["MESSAGE"] = message;
|
||||||
@@ -3034,24 +3022,6 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// [RLVa:KB] - Checked: 2010-12-11 (RLVa-1.2.2c) | Modified: RLVa-1.2.2c
|
|
||||||
if (rlv_handler_t::isEnabled())
|
|
||||||
{
|
|
||||||
if (!gRlvHandler.canTeleportViaLure(from_id))
|
|
||||||
{
|
|
||||||
RlvUtil::sendBusyMessage(from_id, RlvStrings::getString(RLV_STRING_BLOCKED_TPLURE_REMOTE));
|
|
||||||
if (is_busy)
|
|
||||||
busy_message(msg,from_id);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Censor lure message if: 1) restricted from receiving IMs from the sender, or 2) @showloc=n restricted
|
|
||||||
if ( (!gRlvHandler.canReceiveIM(from_id)) || (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) )
|
|
||||||
{
|
|
||||||
message = RlvStrings::getString(RLV_STRING_HIDDEN);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// [/RLVa:KB]
|
|
||||||
LLVector3 pos, look_at;
|
LLVector3 pos, look_at;
|
||||||
U64 region_handle(0);
|
U64 region_handle(0);
|
||||||
U8 region_access(SIM_ACCESS_MIN);
|
U8 region_access(SIM_ACCESS_MIN);
|
||||||
@@ -3103,6 +3073,26 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// [RLVa:KB] - Checked: 2010-12-11 (RLVa-1.2.2c) | Modified: RLVa-1.2.2c
|
||||||
|
if (rlv_handler_t::isEnabled())
|
||||||
|
{
|
||||||
|
if (!gRlvHandler.canTeleportViaLure(from_id))
|
||||||
|
{
|
||||||
|
RlvUtil::sendBusyMessage(from_id, RlvStrings::getString(RLV_STRING_BLOCKED_TPLURE_REMOTE));
|
||||||
|
if (is_busy)
|
||||||
|
busy_message(msg,from_id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Censor lure message if: 1) restricted from receiving IMs from the sender, or 2) @showloc=n restricted
|
||||||
|
if ( (!gRlvHandler.canReceiveIM(from_id)) || (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) )
|
||||||
|
{
|
||||||
|
message = RlvStrings::getString(RLV_STRING_HIDDEN);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// [/RLVa:KB]
|
||||||
|
|
||||||
LLSD args;
|
LLSD args;
|
||||||
// *TODO: Translate -> [FIRST] [LAST] (maybe)
|
// *TODO: Translate -> [FIRST] [LAST] (maybe)
|
||||||
args["NAME"] = name;
|
args["NAME"] = name;
|
||||||
@@ -3848,39 +3838,62 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
|
|||||||
( (CHAT_SOURCE_OBJECT == chat.mSourceType) && ((!is_owned_by_me) || (!is_attachment)) &&
|
( (CHAT_SOURCE_OBJECT == chat.mSourceType) && ((!is_owned_by_me) || (!is_attachment)) &&
|
||||||
(CHAT_TYPE_OWNER != chat.mChatType) ) )
|
(CHAT_TYPE_OWNER != chat.mChatType) ) )
|
||||||
{
|
{
|
||||||
if (!RlvUtil::isEmote(mesg))
|
bool fIsEmote = RlvUtil::isEmote(mesg);
|
||||||
|
if ((!fIsEmote) &&
|
||||||
|
(((gRlvHandler.hasBehaviour(RLV_BHVR_RECVCHAT)) && (!gRlvHandler.isException(RLV_BHVR_RECVCHAT, from_id))) ||
|
||||||
|
((gRlvHandler.hasBehaviour(RLV_BHVR_RECVCHATFROM)) && (gRlvHandler.isException(RLV_BHVR_RECVCHATFROM, from_id))) ))
|
||||||
{
|
{
|
||||||
if ( ((gRlvHandler.hasBehaviour(RLV_BHVR_RECVCHAT)) && (!gRlvHandler.isException(RLV_BHVR_RECVCHAT, from_id))) &&
|
if ( (gRlvHandler.filterChat(mesg, false)) && (!gSavedSettings.getBOOL("RestrainedLoveShowEllipsis")) )
|
||||||
((!gRlvHandler.hasBehaviour(RLV_BHVR_RECVCHATFROM)) || (gRlvHandler.isException(RLV_BHVR_RECVCHATFROM, from_id))) )
|
return;
|
||||||
{
|
|
||||||
gRlvHandler.filterChat(mesg, false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if ( ((gRlvHandler.hasBehaviour(RLV_BHVR_RECVEMOTE)) && (!gRlvHandler.isException(RLV_BHVR_RECVEMOTE, from_id))) &&
|
else if ((fIsEmote) &&
|
||||||
((!gRlvHandler.hasBehaviour(RLV_BHVR_RECVEMOTEFROM)) || (gRlvHandler.isException(RLV_BHVR_RECVEMOTEFROM, from_id))) )
|
(((gRlvHandler.hasBehaviour(RLV_BHVR_RECVEMOTE)) && (!gRlvHandler.isException(RLV_BHVR_RECVEMOTE, from_id))) ||
|
||||||
|
((gRlvHandler.hasBehaviour(RLV_BHVR_RECVEMOTEFROM)) && (gRlvHandler.isException(RLV_BHVR_RECVEMOTEFROM, from_id))) ))
|
||||||
{
|
{
|
||||||
|
if (!gSavedSettings.getBOOL("RestrainedLoveShowEllipsis"))
|
||||||
|
return;
|
||||||
mesg = "/me ...";
|
mesg = "/me ...";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Filtering "rules":
|
// Filtering "rules":
|
||||||
// avatar => filter only their name (unless it's this avie)
|
// avatar => filter only their name (unless it's this avie)
|
||||||
// other => filter everything except attachments this avie owns but then we still do filter their text
|
// other => filter everything
|
||||||
if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) &&
|
if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES))
|
||||||
((CHAT_SOURCE_AGENT != chat.mSourceType) || (chat.mFromID != gAgent.getID())) )
|
|
||||||
{
|
{
|
||||||
if (CHAT_SOURCE_AGENT == chat.mSourceType)
|
if (CHAT_SOURCE_AGENT != chat.mSourceType)
|
||||||
{
|
|
||||||
chat.mFromName = from_name = RlvStrings::getAnonym(from_name);
|
|
||||||
chat.mRlvNamesFiltered = TRUE;
|
|
||||||
}
|
|
||||||
else if ( (!is_owned_by_me) || (!is_attachment) )
|
|
||||||
{
|
{
|
||||||
RlvUtil::filterNames(chat.mFromName);
|
RlvUtil::filterNames(chat.mFromName);
|
||||||
}
|
}
|
||||||
|
else if (chat.mFromID != gAgent.getID())
|
||||||
|
{
|
||||||
|
chat.mFromName = RlvStrings::getAnonym(chat.mFromName);
|
||||||
|
chat.mRlvNamesFiltered = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create an "objectim" URL for objects if we're either @shownames or @showloc restricted
|
||||||
|
// (we need to do this now because we won't be have enough information to do it later on)
|
||||||
|
if ( (CHAT_SOURCE_OBJECT == chat.mSourceType) &&
|
||||||
|
((gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) || (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC))) )
|
||||||
|
{
|
||||||
|
LLSD sdQuery;
|
||||||
|
sdQuery["name"] = chat.mFromName;
|
||||||
|
sdQuery["owner"] = owner_id;
|
||||||
|
|
||||||
|
/* Singu Note: We don't use this field, seems like part of llinspectremoteobject
|
||||||
|
if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (!is_owned_by_me) )
|
||||||
|
sdQuery["rlv_shownames"] = true;
|
||||||
|
*/
|
||||||
|
|
||||||
|
const LLViewerRegion* pRegion = LLWorld::getInstance()->getRegionFromPosAgent(chat.mPosAgent);
|
||||||
|
if (pRegion)
|
||||||
|
sdQuery["slurl"] = LLSLURL(pRegion->getName(), chat.mPosAgent).getLocationString();
|
||||||
|
|
||||||
|
chat.mURL = LLSLURL("objectim", from_id, LLURI::mapToQueryString(sdQuery)).getSLURLString();
|
||||||
}
|
}
|
||||||
// [/RLVa:KB]
|
|
||||||
}
|
}
|
||||||
|
// [/RLVa:KB]
|
||||||
|
|
||||||
BOOL ircstyle = FALSE;
|
BOOL ircstyle = FALSE;
|
||||||
|
|
||||||
@@ -4486,10 +4499,7 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**)
|
|||||||
// know what you look like.
|
// know what you look like.
|
||||||
gAgent.sendAgentSetAppearance();
|
gAgent.sendAgentSetAppearance();
|
||||||
|
|
||||||
// [RLVa:KB] - Checked: 2009-07-04 (RLVa-1.0.0a)
|
if (isAgentAvatarValid())
|
||||||
if (isAgentAvatarValid() && !gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC))
|
|
||||||
// [/RLVa:KB]
|
|
||||||
// if (isAgentAvatarValid())
|
|
||||||
{
|
{
|
||||||
// Chat the "back" SLURL. (DEV-4907)
|
// Chat the "back" SLURL. (DEV-4907)
|
||||||
|
|
||||||
@@ -6545,6 +6555,15 @@ void process_alert_core(const std::string& message, BOOL modal)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::string new_msg =LLNotificationTemplates::instance().getGlobalString(text);
|
std::string new_msg =LLNotificationTemplates::instance().getGlobalString(text);
|
||||||
|
// [RLVa:KB] - Checked: 2012-02-07 (RLVa-1.4.5) | Added: RLVa-1.4.5
|
||||||
|
if ( (new_msg == text) && (rlv_handler_t::isEnabled()) )
|
||||||
|
{
|
||||||
|
if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC))
|
||||||
|
RlvUtil::filterLocation(new_msg);
|
||||||
|
if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES))
|
||||||
|
RlvUtil::filterNames(new_msg);
|
||||||
|
}
|
||||||
|
// [/RLVa:KB]
|
||||||
args["MESSAGE"] = new_msg;
|
args["MESSAGE"] = new_msg;
|
||||||
LLNotificationsUtil::add("SystemMessage", args);
|
LLNotificationsUtil::add("SystemMessage", args);
|
||||||
}
|
}
|
||||||
@@ -6553,6 +6572,15 @@ void process_alert_core(const std::string& message, BOOL modal)
|
|||||||
{
|
{
|
||||||
LLSD args;
|
LLSD args;
|
||||||
std::string new_msg =LLNotificationTemplates::instance().getGlobalString(message);
|
std::string new_msg =LLNotificationTemplates::instance().getGlobalString(message);
|
||||||
|
// [RLVa:KB] - Checked: 2012-02-07 (RLVa-1.4.5) | Added: RLVa-1.4.5
|
||||||
|
if ( (new_msg == message) && (rlv_handler_t::isEnabled()) )
|
||||||
|
{
|
||||||
|
if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC))
|
||||||
|
RlvUtil::filterLocation(new_msg);
|
||||||
|
if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES))
|
||||||
|
RlvUtil::filterNames(new_msg);
|
||||||
|
}
|
||||||
|
// [/RLVa:KB]
|
||||||
args["ERROR_MESSAGE"] = new_msg;
|
args["ERROR_MESSAGE"] = new_msg;
|
||||||
LLNotificationsUtil::add("ErrorMessage", args);
|
LLNotificationsUtil::add("ErrorMessage", args);
|
||||||
}
|
}
|
||||||
@@ -6568,6 +6596,16 @@ void process_alert_core(const std::string& message, BOOL modal)
|
|||||||
std::string localized_msg;
|
std::string localized_msg;
|
||||||
bool is_message_localized = LLTrans::findString(localized_msg, new_msg);
|
bool is_message_localized = LLTrans::findString(localized_msg, new_msg);
|
||||||
|
|
||||||
|
// [RLVa:KB] - Checked: 2012-02-07 (RLVa-1.4.5) | Added: RLVa-1.4.5
|
||||||
|
if ( (new_msg == message) && (rlv_handler_t::isEnabled()) )
|
||||||
|
{
|
||||||
|
if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC))
|
||||||
|
RlvUtil::filterLocation(new_msg);
|
||||||
|
if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES))
|
||||||
|
RlvUtil::filterNames(new_msg);
|
||||||
|
}
|
||||||
|
// [/RLVa:KB]
|
||||||
|
|
||||||
args["MESSAGE"] = is_message_localized ? localized_msg : new_msg;
|
args["MESSAGE"] = is_message_localized ? localized_msg : new_msg;
|
||||||
LLNotificationsUtil::add("SystemMessageTip", args);
|
LLNotificationsUtil::add("SystemMessageTip", args);
|
||||||
}
|
}
|
||||||
@@ -6793,11 +6831,21 @@ void notify_cautioned_script_question(const LLSD& notification, const LLSD& resp
|
|||||||
|
|
||||||
// log a chat message as long as at least one requested permission
|
// log a chat message as long as at least one requested permission
|
||||||
// is a caution permission
|
// is a caution permission
|
||||||
|
// [RLVa:KB] - Checked: 2012-07-28 (RLVa-1.4.7)
|
||||||
if (caution)
|
if (caution)
|
||||||
{
|
{
|
||||||
LLChat chat(notice.getString());
|
LLChat chat_msg(notice.getString());
|
||||||
LLFloaterChat::addChat(chat, FALSE, FALSE);
|
chat_msg.mFromName = SYSTEM_FROM;
|
||||||
|
chat_msg.mFromID = LLUUID::null;
|
||||||
|
chat_msg.mSourceType = CHAT_SOURCE_SYSTEM;
|
||||||
|
LLFloaterChat::addChat(chat_msg);
|
||||||
}
|
}
|
||||||
|
// [/RLVa:KB]
|
||||||
|
// if (caution)
|
||||||
|
// {
|
||||||
|
// LLChat chat(notice.getString());
|
||||||
|
// LLFloaterChat::addChat(chat, FALSE, FALSE);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6843,12 +6891,22 @@ bool script_question_cb(const LLSD& notification, const LLSD& response)
|
|||||||
msg->sendReliable(LLHost(notification["payload"]["sender"].asString()));
|
msg->sendReliable(LLHost(notification["payload"]["sender"].asString()));
|
||||||
|
|
||||||
// only log a chat message if caution prompts are enabled
|
// only log a chat message if caution prompts are enabled
|
||||||
if (gSavedSettings.getBOOL("PermissionsCautionEnabled"))
|
// if (gSavedSettings.getBOOL("PermissionsCautionEnabled"))
|
||||||
|
// [RLVa:KB] - Checked: 2012-07-28 (RLVa-1.4.7)
|
||||||
|
if ( (gSavedSettings.getBOOL("PermissionsCautionEnabled")) || (notification["payload"]["rlv_notify"].asBoolean()) )
|
||||||
|
// [/RLVa:KB]
|
||||||
{
|
{
|
||||||
// log a chat message, if appropriate
|
// log a chat message, if appropriate
|
||||||
notify_cautioned_script_question(notification, response, orig, allowed);
|
notify_cautioned_script_question(notification, response, orig, allowed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// [RLVa:KB] - Checked: 2012-07-28 (RLVa-1.4.7)
|
||||||
|
if ( (allowed) && (notification["payload"].has("rlv_blocked")) )
|
||||||
|
{
|
||||||
|
RlvUtil::notifyBlocked(notification["payload"]["rlv_blocked"], LLSD().with("OBJECT", notification["payload"]["object_name"]));
|
||||||
|
}
|
||||||
|
// [/RLVa:KB]
|
||||||
|
|
||||||
if ( response["Mute"] ) // mute
|
if ( response["Mute"] ) // mute
|
||||||
{
|
{
|
||||||
LLMuteList::getInstance()->add(LLMute(item_id, notification["payload"]["object_name"].asString(), LLMute::OBJECT));
|
LLMuteList::getInstance()->add(LLMute(item_id, notification["payload"]["object_name"].asString(), LLMute::OBJECT));
|
||||||
@@ -6978,24 +7036,31 @@ void process_script_question(LLMessageSystem *msg, void **user_data)
|
|||||||
payload["object_name"] = object_name;
|
payload["object_name"] = object_name;
|
||||||
payload["owner_name"] = owner_name;
|
payload["owner_name"] = owner_name;
|
||||||
|
|
||||||
// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-0.2.0e
|
// [RLVa:KB] - Checked: 2012-07-28 (RLVa-1.4.7)
|
||||||
S32 rlvQuestionsOther = questions;
|
if (rlv_handler_t::isEnabled())
|
||||||
|
|
||||||
if ( (rlv_handler_t::isEnabled()) && (gRlvHandler.hasBehaviour(RLV_BHVR_ACCEPTPERMISSION)) )
|
|
||||||
{
|
{
|
||||||
LLViewerObject* pObj = gObjectList.findObject(taskid);
|
RlvUtil::filterScriptQuestions(questions, payload);
|
||||||
if (pObj)
|
|
||||||
|
if ( (questions) && (gRlvHandler.hasBehaviour(RLV_BHVR_ACCEPTPERMISSION)) )
|
||||||
{
|
{
|
||||||
// if (pObj->permYouOwner())
|
const LLViewerObject* pObj = gObjectList.findObject(taskid);
|
||||||
// {
|
if (pObj)
|
||||||
// PERMISSION_TAKE_CONTROLS and PERMISSION_ATTACH are only auto-granted to objects this avie owns
|
{
|
||||||
rlvQuestionsOther &= ~(LSCRIPTRunTimePermissionBits[SCRIPT_PERMISSION_TAKE_CONTROLS] |
|
if ( (pObj->permYouOwner()) && (!pObj->isAttachment()) )
|
||||||
LSCRIPTRunTimePermissionBits[SCRIPT_PERMISSION_ATTACH]);
|
{
|
||||||
// }
|
questions &= ~(LSCRIPTRunTimePermissionBits[SCRIPT_PERMISSION_TAKE_CONTROLS] |
|
||||||
|
LSCRIPTRunTimePermissionBits[SCRIPT_PERMISSION_ATTACH]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
questions &= ~(LSCRIPTRunTimePermissionBits[SCRIPT_PERMISSION_TAKE_CONTROLS]);
|
||||||
|
}
|
||||||
|
payload["rlv_notify"] = !pObj->permYouOwner();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( (!caution) && (!rlvQuestionsOther) )
|
if ( (!caution) && (!questions) )
|
||||||
{
|
{
|
||||||
LLNotifications::instance().forceResponse(
|
LLNotifications::instance().forceResponse(
|
||||||
LLNotification::Params("ScriptQuestion").substitutions(args).payload(payload), 0/*YES*/);
|
LLNotification::Params("ScriptQuestion").substitutions(args).payload(payload), 0/*YES*/);
|
||||||
@@ -7425,7 +7490,7 @@ void handle_lure(const uuid_vec_t& ids)
|
|||||||
if (!gAgent.getRegion()) return;
|
if (!gAgent.getRegion()) return;
|
||||||
|
|
||||||
LLSD edit_args;
|
LLSD edit_args;
|
||||||
// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-04 (RLVa-1.0.0a)
|
// [RLVa:KB] - Checked: 2010-04-07 (RLVa-1.2.0d) | Modified: RLVa-1.0.0a
|
||||||
edit_args["REGION"] =
|
edit_args["REGION"] =
|
||||||
(!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) ? gAgent.getRegion()->getName() : RlvStrings::getString(RLV_STRING_HIDDEN);
|
(!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) ? gAgent.getRegion()->getName() : RlvStrings::getString(RLV_STRING_HIDDEN);
|
||||||
// [/RLVa:KB]
|
// [/RLVa:KB]
|
||||||
@@ -7436,7 +7501,7 @@ void handle_lure(const uuid_vec_t& ids)
|
|||||||
it != ids.end();
|
it != ids.end();
|
||||||
++it)
|
++it)
|
||||||
{
|
{
|
||||||
// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-07 (RLVa-1.0.0d) | Modified: RLVa-1.0.0a
|
// [RLVa:KB] - Checked: 2010-04-07 (RLVa-1.2.0d) | Modified: RLVa-1.0.0a
|
||||||
// Only allow offering teleports if everyone is a @tplure exception or able to map this avie under @showloc=n
|
// Only allow offering teleports if everyone is a @tplure exception or able to map this avie under @showloc=n
|
||||||
if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC))
|
if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
* Copyright (c) 2009-2011, Kitty Barnett
|
* Copyright (c) 2009-2011, Kitty Barnett
|
||||||
*
|
*
|
||||||
* The source code in this file is provided to you under the terms of the
|
* The source code in this file is provided to you under the terms of the
|
||||||
* GNU General Public License, version 2.0, but WITHOUT ANY WARRANTY;
|
* GNU Lesser General Public License, version 2.1, but WITHOUT ANY WARRANTY;
|
||||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
* PARTICULAR PURPOSE. Terms of the GPL can be found in doc/GPL-license.txt
|
* PARTICULAR PURPOSE. Terms of the LGPL can be found in doc/LGPL-licence.txt
|
||||||
* in this distribution, or online at http://www.gnu.org/licenses/gpl-2.0.txt
|
* in this distribution, or online at http://www.gnu.org/licenses/lgpl-2.1.txt
|
||||||
*
|
*
|
||||||
* By copying, modifying or distributing this software, you acknowledge that
|
* By copying, modifying or distributing this software, you acknowledge that
|
||||||
* you have read and understood your obligations described above, and agree to
|
* you have read and understood your obligations described above, and agree to
|
||||||
@@ -28,15 +28,13 @@
|
|||||||
#include "llviewerstats.h"
|
#include "llviewerstats.h"
|
||||||
#include "llvoavatar.h"
|
#include "llvoavatar.h"
|
||||||
#include "llworld.h"
|
#include "llworld.h"
|
||||||
#include "llnotifications.h"
|
|
||||||
|
|
||||||
#include "../lscript/lscript_byteformat.h" //Need LSCRIPTRunTimePermissionBits and SCRIPT_PERMISSION_*
|
|
||||||
|
|
||||||
#include "rlvcommon.h"
|
#include "rlvcommon.h"
|
||||||
#include "rlvhelper.h"
|
#include "rlvhelper.h"
|
||||||
#include "rlvhandler.h"
|
#include "rlvhandler.h"
|
||||||
#include "rlvlocks.h"
|
#include "rlvlocks.h"
|
||||||
|
|
||||||
|
#include "../lscript/lscript_byteformat.h" //Need LSCRIPTRunTimePermissionBits and SCRIPT_PERMISSION_*
|
||||||
#include <boost/algorithm/string.hpp>
|
#include <boost/algorithm/string.hpp>
|
||||||
|
|
||||||
using namespace LLOldEvents;
|
using namespace LLOldEvents;
|
||||||
@@ -72,14 +70,17 @@ using namespace LLOldEvents;
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
// Checked: 2009-11-13 (RLVa-1.1.0b) | Modified: RLVa-1.1.0b
|
// Checked: 2009-11-13 (RLVa-1.1.0b) | Modified: RLVa-1.1.0b
|
||||||
void RlvUtil::warnGiveToRLV()
|
/*
|
||||||
|
void RlvNotifications::warnGiveToRLV()
|
||||||
{
|
{
|
||||||
if ( (gSavedSettings.getWarning(RLV_SETTING_FIRSTUSE_GIVETORLV)) && (RlvSettings::getForbidGiveToRLV()) )
|
if ( (gSavedSettings.getWarning(RLV_SETTING_FIRSTUSE_GIVETORLV)) && (RlvSettings::getForbidGiveToRLV()) )
|
||||||
LLNotifications::instance().add(RLV_SETTING_FIRSTUSE_GIVETORLV, LLSD(), LLSD(), &RlvUtil::onGiveToRLVConfirmation);
|
LLNotifications::instance().add(RLV_SETTING_FIRSTUSE_GIVETORLV, LLSD(), LLSD(), &RlvUtil::onGiveToRLVConfirmation);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
// Checked: 2009-11-13 (RLVa-1.1.0b) | Modified: RLVa-1.1.0b
|
// Checked: 2009-11-13 (RLVa-1.1.0b) | Modified: RLVa-1.1.0b
|
||||||
void RlvUtil::onGiveToRLVConfirmation(const LLSD& notification, const LLSD& response)
|
/*
|
||||||
|
void RlvNotifications::onGiveToRLVConfirmation(const LLSD& notification, const LLSD& response)
|
||||||
{
|
{
|
||||||
gSavedSettings.setWarning(RLV_SETTING_FIRSTUSE_GIVETORLV, FALSE);
|
gSavedSettings.setWarning(RLV_SETTING_FIRSTUSE_GIVETORLV, FALSE);
|
||||||
|
|
||||||
@@ -87,6 +88,7 @@ void RlvUtil::onGiveToRLVConfirmation(const LLSD& notification, const LLSD& resp
|
|||||||
if ( (0 == idxOption) || (1 == idxOption) )
|
if ( (0 == idxOption) || (1 == idxOption) )
|
||||||
gSavedSettings.setBOOL(RLV_SETTING_FORBIDGIVETORLV, (idxOption == 1));
|
gSavedSettings.setBOOL(RLV_SETTING_FORBIDGIVETORLV, (idxOption == 1));
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
// RlvSettings
|
// RlvSettings
|
||||||
@@ -100,7 +102,7 @@ bool RlvSettings::fLegacyNaming = true;
|
|||||||
bool RlvSettings::fNoSetEnv = false;
|
bool RlvSettings::fNoSetEnv = false;
|
||||||
bool RlvSettings::fShowNameTags = false;
|
bool RlvSettings::fShowNameTags = false;
|
||||||
|
|
||||||
// Checked: 2009-12-18 (RLVa-1.1.0k) | Modified: RLVa-1.1.0i
|
// Checked: 2010-02-27 (RLVa-1.2.0a) | Modified: RLVa-1.1.0i
|
||||||
void RlvSettings::initClass()
|
void RlvSettings::initClass()
|
||||||
{
|
{
|
||||||
static bool fInitialized = false;
|
static bool fInitialized = false;
|
||||||
@@ -134,6 +136,7 @@ void RlvSettings::initClass()
|
|||||||
|
|
||||||
if (gSavedSettings.controlExists(RLV_SETTING_TOPLEVELMENU))
|
if (gSavedSettings.controlExists(RLV_SETTING_TOPLEVELMENU))
|
||||||
gSavedSettings.getControl(RLV_SETTING_TOPLEVELMENU)->getSignal()->connect(boost::bind(&onChangedMenuLevel));
|
gSavedSettings.getControl(RLV_SETTING_TOPLEVELMENU)->getSignal()->connect(boost::bind(&onChangedMenuLevel));
|
||||||
|
|
||||||
fInitialized = true;
|
fInitialized = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -163,6 +166,7 @@ bool RlvSettings::onChangedAvatarOffset(const LLSD& sdValue)
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Checked: 2011-08-16 (RLVa-1.4.0b) | Added: RLVa-1.4.0b
|
// Checked: 2011-08-16 (RLVa-1.4.0b) | Added: RLVa-1.4.0b
|
||||||
bool RlvSettings::onChangedMenuLevel()
|
bool RlvSettings::onChangedMenuLevel()
|
||||||
{
|
{
|
||||||
@@ -288,7 +292,7 @@ const std::string& RlvStrings::getAnonym(const std::string& strName)
|
|||||||
const std::string& RlvStrings::getString(const std::string& strStringName)
|
const std::string& RlvStrings::getString(const std::string& strStringName)
|
||||||
{
|
{
|
||||||
static const std::string strMissing = "(Missing RLVa string)";
|
static const std::string strMissing = "(Missing RLVa string)";
|
||||||
std::map<std::string, std::string>::const_iterator itString = m_StringMap.find(strStringName);
|
string_map_t::const_iterator itString = m_StringMap.find(strStringName);
|
||||||
return (itString != m_StringMap.end()) ? itString->second : strMissing;
|
return (itString != m_StringMap.end()) ? itString->second : strMissing;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -333,7 +337,7 @@ const char* RlvStrings::getStringFromReturnCode(ERlvCmdRet eRet)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Checked: 2012-02-25 (RLVa-1.4.5) | Modified: RLVa-1.4.5
|
// Checked: 2012-02-25 (RLVa-1.4.5) | Modified: RLVa-1.4.5
|
||||||
std::string RlvStrings::getVersion(bool fLegacy /*=false*/)
|
std::string RlvStrings::getVersion(bool fLegacy)
|
||||||
{
|
{
|
||||||
return llformat("%s viewer v%d.%d.%d (RLVa %d.%d.%d)",
|
return llformat("%s viewer v%d.%d.%d (RLVa %d.%d.%d)",
|
||||||
( (!fLegacy) ? "RestrainedLove" : "RestrainedLife" ),
|
( (!fLegacy) ? "RestrainedLove" : "RestrainedLife" ),
|
||||||
@@ -341,7 +345,7 @@ std::string RlvStrings::getVersion(bool fLegacy /*=false*/)
|
|||||||
RLVa_VERSION_MAJOR, RLVa_VERSION_MINOR, RLVa_VERSION_PATCH);
|
RLVa_VERSION_MAJOR, RLVa_VERSION_MINOR, RLVa_VERSION_PATCH);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Checked: 2010-04-18 (RLVa-1.2.0e) | Added: RLVa-1.2.0e
|
// Checked: 2010-04-18 (RLVa-1.4.0a) | Added: RLVa-1.2.0e
|
||||||
std::string RlvStrings::getVersionAbout()
|
std::string RlvStrings::getVersionAbout()
|
||||||
{
|
{
|
||||||
return llformat("RLV v%d.%d.%d / RLVa v%d.%d.%d%c" ,
|
return llformat("RLV v%d.%d.%d / RLVa v%d.%d.%d%c" ,
|
||||||
@@ -349,7 +353,7 @@ std::string RlvStrings::getVersionAbout()
|
|||||||
RLVa_VERSION_MAJOR, RLVa_VERSION_MINOR, RLVa_VERSION_PATCH, 'a' + RLVa_VERSION_BUILD);
|
RLVa_VERSION_MAJOR, RLVa_VERSION_MINOR, RLVa_VERSION_PATCH, 'a' + RLVa_VERSION_BUILD);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Checked: 2010-03-27 (RLVa-1.2.0b) | Modified: RLVa-1.1.0a
|
// Checked: 2010-03-27 (RLVa-1.4.0a) | Modified: RLVa-1.1.0a
|
||||||
std::string RlvStrings::getVersionNum()
|
std::string RlvStrings::getVersionNum()
|
||||||
{
|
{
|
||||||
return llformat("%d%02d%02d%02d", RLV_VERSION_MAJOR, RLV_VERSION_MINOR, RLV_VERSION_PATCH, RLV_VERSION_BUILD);
|
return llformat("%d%02d%02d%02d", RLV_VERSION_MAJOR, RLV_VERSION_MINOR, RLV_VERSION_PATCH, RLV_VERSION_BUILD);
|
||||||
@@ -370,9 +374,6 @@ bool RlvUtil::m_fForceTp = false;
|
|||||||
// Checked: 2009-07-04 (RLVa-1.0.0a) | Modified: RLVa-1.0.0a
|
// Checked: 2009-07-04 (RLVa-1.0.0a) | Modified: RLVa-1.0.0a
|
||||||
void RlvUtil::filterLocation(std::string& strUTF8Text)
|
void RlvUtil::filterLocation(std::string& strUTF8Text)
|
||||||
{
|
{
|
||||||
// TODO-RLVa: if either the region or parcel name is a simple word such as "a" or "the" then confusion will ensue?
|
|
||||||
// -> not sure how you would go about preventing this though :|...
|
|
||||||
|
|
||||||
// Filter any mention of the surrounding region names
|
// Filter any mention of the surrounding region names
|
||||||
LLWorld::region_list_t regions = LLWorld::getInstance()->getRegionList();
|
LLWorld::region_list_t regions = LLWorld::getInstance()->getRegionList();
|
||||||
const std::string& strHiddenRegion = RlvStrings::getString(RLV_STRING_HIDDEN_REGION);
|
const std::string& strHiddenRegion = RlvStrings::getString(RLV_STRING_HIDDEN_REGION);
|
||||||
@@ -510,7 +511,7 @@ void RlvUtil::notifyFailedAssertion(const std::string& strAssert, const std::str
|
|||||||
LLNotificationsUtil::add("SystemMessageTip", argsNotify);
|
LLNotificationsUtil::add("SystemMessageTip", argsNotify);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Checked: 2010-03-27 (RLVa-1.1.3a) | Modified: RLVa-1.2.0b
|
// Checked: 2010-03-27 (RLVa-1.2.0b) | Modified: RLVa-1.2.0b
|
||||||
void RlvUtil::sendBusyMessage(const LLUUID& idTo, const std::string& strMsg, const LLUUID& idSession)
|
void RlvUtil::sendBusyMessage(const LLUUID& idTo, const std::string& strMsg, const LLUUID& idSession)
|
||||||
{
|
{
|
||||||
// [See process_improved_im()]
|
// [See process_improved_im()]
|
||||||
@@ -596,15 +597,16 @@ void rlvMenuToggleVisible()
|
|||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RlvEnableIfNot::handleEvent(LLPointer<LLEvent>, const LLSD& userdata)
|
// Checked: 2010-04-23 (RLVa-1.2.0g) | Modified: RLVa-1.2.0g
|
||||||
|
bool RlvEnableIfNot::handleEvent(LLPointer<LLEvent>, const LLSD& sdParam)
|
||||||
{
|
{
|
||||||
bool fEnable = true;
|
bool fEnable = true;
|
||||||
if (rlv_handler_t::isEnabled())
|
if (rlv_handler_t::isEnabled())
|
||||||
{
|
{
|
||||||
ERlvBehaviour eBhvr = RlvCommand::getBehaviourFromString(userdata["data"].asString());
|
ERlvBehaviour eBhvr = RlvCommand::getBehaviourFromString(sdParam["data"].asString());
|
||||||
fEnable = (eBhvr != RLV_BHVR_UNKNOWN) ? !gRlvHandler.hasBehaviour(eBhvr) : true;
|
fEnable = (eBhvr != RLV_BHVR_UNKNOWN) ? !gRlvHandler.hasBehaviour(eBhvr) : true;
|
||||||
}
|
}
|
||||||
gMenuHolder->findControl(userdata["control"].asString())->setValue(fEnable);
|
gMenuHolder->findControl(sdParam["control"].asString())->setValue(fEnable);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
* Copyright (c) 2009-2011, Kitty Barnett
|
* Copyright (c) 2009-2011, Kitty Barnett
|
||||||
*
|
*
|
||||||
* The source code in this file is provided to you under the terms of the
|
* The source code in this file is provided to you under the terms of the
|
||||||
* GNU General Public License, version 2.0, but WITHOUT ANY WARRANTY;
|
* GNU Lesser General Public License, version 2.1, but WITHOUT ANY WARRANTY;
|
||||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
* PARTICULAR PURPOSE. Terms of the GPL can be found in doc/GPL-license.txt
|
* PARTICULAR PURPOSE. Terms of the LGPL can be found in doc/LGPL-licence.txt
|
||||||
* in this distribution, or online at http://www.gnu.org/licenses/gpl-2.0.txt
|
* in this distribution, or online at http://www.gnu.org/licenses/lgpl-2.1.txt
|
||||||
*
|
*
|
||||||
* By copying, modifying or distributing this software, you acknowledge that
|
* By copying, modifying or distributing this software, you acknowledge that
|
||||||
* you have read and understood your obligations described above, and agree to
|
* you have read and understood your obligations described above, and agree to
|
||||||
@@ -141,7 +141,8 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
static std::vector<std::string> m_Anonyms;
|
static std::vector<std::string> m_Anonyms;
|
||||||
static std::map<std::string, std::string> m_StringMap;
|
typedef std::map<std::string, std::string> string_map_t;
|
||||||
|
static string_map_t m_StringMap;
|
||||||
};
|
};
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
@@ -172,8 +173,6 @@ public:
|
|||||||
static bool sendChatReply(S32 nChannel, const std::string& strUTF8Text);
|
static bool sendChatReply(S32 nChannel, const std::string& strUTF8Text);
|
||||||
static bool sendChatReply(const std::string& strChannel, const std::string& strUTF8Text);
|
static bool sendChatReply(const std::string& strChannel, const std::string& strUTF8Text);
|
||||||
|
|
||||||
static void warnGiveToRLV();
|
|
||||||
static void onGiveToRLVConfirmation(const LLSD& notification, const LLSD& response);
|
|
||||||
protected:
|
protected:
|
||||||
static bool m_fForceTp; // @standtp
|
static bool m_fForceTp; // @standtp
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -34,7 +34,6 @@
|
|||||||
#define RLV_EXTENSION_CMD_GETSETDEBUG_EX // Extends the debug variables accessible through @getdebug_xxx/@setdebug_xxx
|
#define RLV_EXTENSION_CMD_GETSETDEBUG_EX // Extends the debug variables accessible through @getdebug_xxx/@setdebug_xxx
|
||||||
#define RLV_EXTENSION_CMD_FINDFOLDERS // @findfolders:<option>=<channel> - @findfolder with multiple results
|
#define RLV_EXTENSION_CMD_FINDFOLDERS // @findfolders:<option>=<channel> - @findfolder with multiple results
|
||||||
#define RLV_EXTENSION_FORCEWEAR_GESTURES // @attach*/detach* commands also (de)activate gestures
|
#define RLV_EXTENSION_FORCEWEAR_GESTURES // @attach*/detach* commands also (de)activate gestures
|
||||||
#define RLV_EXTENSION_GIVETORLV_A2A // Allow "Give to #RLV" on avatar-to-avatar inventory offers
|
|
||||||
#define RLV_EXTENSION_NOTIFY_BEHAVIOUR // Provides the option to show a customizable notification whenever a behaviour gets (un)set
|
#define RLV_EXTENSION_NOTIFY_BEHAVIOUR // Provides the option to show a customizable notification whenever a behaviour gets (un)set
|
||||||
#define RLV_EXTENSION_STARTLOCATION // Reenables "Start Location" at login if not @tploc=n or @unsit=n restricted at last logoff
|
#define RLV_EXTENSION_STARTLOCATION // Reenables "Start Location" at login if not @tploc=n or @unsit=n restricted at last logoff
|
||||||
#define RLV_EXPERIMENTAL // Enables/disables experimental features en masse
|
#define RLV_EXPERIMENTAL // Enables/disables experimental features en masse
|
||||||
|
|||||||
Reference in New Issue
Block a user