aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden
diff options
context:
space:
mode:
Diffstat (limited to 'linden')
-rw-r--r--linden/indra/newview/CMakeLists.txt4
-rw-r--r--linden/indra/newview/llagent.cpp21
-rw-r--r--linden/indra/newview/llappviewer.cpp6
-rw-r--r--linden/indra/newview/llchatbar.cpp10
-rw-r--r--linden/indra/newview/llfirstuse.cpp41
-rw-r--r--linden/indra/newview/llfirstuse.h2
-rw-r--r--linden/indra/newview/llfloaterabout.cpp2
-rw-r--r--linden/indra/newview/llfloateravatarpicker.cpp24
-rw-r--r--linden/indra/newview/llfloaterchat.cpp5
-rw-r--r--linden/indra/newview/llfloatermap.cpp22
-rw-r--r--linden/indra/newview/llfloatermap.h4
-rw-r--r--linden/indra/newview/llfloaterobjectiminfo.cpp33
-rw-r--r--linden/indra/newview/llhudeffectlookat.cpp3
-rw-r--r--linden/indra/newview/llinventorybridge.cpp45
-rw-r--r--linden/indra/newview/llnetmap.cpp57
-rw-r--r--linden/indra/newview/llnotify.cpp2
-rw-r--r--linden/indra/newview/llpanelavatar.cpp2
-rw-r--r--linden/indra/newview/llpanelcontents.cpp18
-rw-r--r--linden/indra/newview/llpanelgeneral.cpp1
-rw-r--r--linden/indra/newview/llpanelinventory.cpp4
-rw-r--r--linden/indra/newview/llpanellogin.cpp10
-rw-r--r--linden/indra/newview/llpanelobject.cpp4
-rw-r--r--linden/indra/newview/llpanelpermissions.cpp13
-rw-r--r--linden/indra/newview/llselectmgr.cpp12
-rw-r--r--linden/indra/newview/llstartup.cpp11
-rw-r--r--linden/indra/newview/lltoolbar.cpp14
-rw-r--r--linden/indra/newview/lltoolpie.cpp28
-rw-r--r--linden/indra/newview/lltoolplacer.cpp2
-rw-r--r--linden/indra/newview/llviewercontrol.cpp28
-rw-r--r--linden/indra/newview/llviewermenu.cpp42
-rw-r--r--linden/indra/newview/llviewermessage.cpp185
-rw-r--r--linden/indra/newview/llviewerobject.cpp2
-rw-r--r--linden/indra/newview/llviewertexteditor.cpp2
-rw-r--r--linden/indra/newview/llvoavatar.cpp41
-rw-r--r--linden/indra/newview/llworldmapview.cpp11
-rw-r--r--linden/indra/newview/panelradar.cpp11
-rw-r--r--linden/indra/newview/rlvdefines.h4
-rw-r--r--linden/indra/newview/rlvextensions.cpp2
-rw-r--r--linden/indra/newview/rlvhandler.cpp25
-rw-r--r--linden/indra/newview/rlvhelper.cpp7
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/notifications.xml48
41 files changed, 573 insertions, 235 deletions
diff --git a/linden/indra/newview/CMakeLists.txt b/linden/indra/newview/CMakeLists.txt
index e0a35cb..a7b78f1 100644
--- a/linden/indra/newview/CMakeLists.txt
+++ b/linden/indra/newview/CMakeLists.txt
@@ -909,8 +909,6 @@ set(viewer_HEADER_FILES
909 pipeline.h 909 pipeline.h
910 primbackup.h 910 primbackup.h
911 randgauss.h 911 randgauss.h
912 VertexCache.h
913 VorbisFramework.h
914 rlvdefines.h 912 rlvdefines.h
915 rlvevent.h 913 rlvevent.h
916 rlvhandler.h 914 rlvhandler.h
@@ -918,6 +916,8 @@ set(viewer_HEADER_FILES
918 rlvmultistringsearch.h 916 rlvmultistringsearch.h
919 rlvextensions.h 917 rlvextensions.h
920 rlvfloaterbehaviour.h 918 rlvfloaterbehaviour.h
919 VertexCache.h
920 VorbisFramework.h
921 viewertime.h 921 viewertime.h
922 viewerversion.h 922 viewerversion.h
923 ) 923 )
diff --git a/linden/indra/newview/llagent.cpp b/linden/indra/newview/llagent.cpp
index ef05fae..38e1c0f 100644
--- a/linden/indra/newview/llagent.cpp
+++ b/linden/indra/newview/llagent.cpp
@@ -4307,16 +4307,14 @@ void LLAgent::changeCameraToCustomizeAvatar(BOOL avatar_animate, BOOL camera_ani
4307 return; 4307 return;
4308 } 4308 }
4309 4309
4310// if(gSavedSettings.getBOOL("AppearanceAnimate"))
4310// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) 4311// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g)
4311 if(gSavedSettings.getBOOL("AppearanceAnimate")) 4312 if ( (gSavedSettings.getBOOL("AppearanceAnimate")) &&
4312 if ( (gRlvHandler.hasBehaviour(RLV_BHVR_UNSIT)) && (mAvatarObject.notNull()) && (mAvatarObject->mIsSitting) ) 4313 ((!gRlvHandler.hasBehaviour(RLV_BHVR_UNSIT)) || ((mAvatarObject.notNull()) && (!mAvatarObject->mIsSitting))) )
4313 {
4314 return;
4315 }
4316// [/RLVa:KB] 4314// [/RLVa:KB]
4317 4315 {
4318 if(gSavedSettings.getBOOL("AppearanceAnimate"))
4319 setControlFlags(AGENT_CONTROL_STAND_UP); // force stand up 4316 setControlFlags(AGENT_CONTROL_STAND_UP); // force stand up
4317 }
4320 gViewerWindow->getWindow()->resetBusyCount(); 4318 gViewerWindow->getWindow()->resetBusyCount();
4321 4319
4322 if (gFaceEditToolset) 4320 if (gFaceEditToolset)
@@ -6285,8 +6283,7 @@ void LLAgent::setTeleportState(ETeleportState state)
6285 // We're outa here. Save "back" slurl. 6283 // We're outa here. Save "back" slurl.
6286 mTeleportSourceSLURL = getSLURL(); 6284 mTeleportSourceSLURL = getSLURL();
6287 } 6285 }
6288 6286// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-07 (RLVa-1.0.0d) | Added: RLVa-0.2.0b
6289// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-07 (RLVa-1.0.0d) | Added: RLVa-0.2.0b
6290 if ( (rlv_handler_t::isEnabled()) && (TELEPORT_NONE == mTeleportState) ) 6287 if ( (rlv_handler_t::isEnabled()) && (TELEPORT_NONE == mTeleportState) )
6291 { 6288 {
6292 gRlvHandler.setCanCancelTp(true); 6289 gRlvHandler.setCanCancelTp(true);
@@ -7473,7 +7470,7 @@ void LLAgent::removeWearable( EWearableType type )
7473 return; 7470 return;
7474 } 7471 }
7475 7472
7476// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-07 (RLVa-1.0.0d) 7473// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-07 (RLVa-1.0.0d)
7477 if ( (rlv_handler_t::isEnabled()) && (!gRlvHandler.isRemovable(type)) ) 7474 if ( (rlv_handler_t::isEnabled()) && (!gRlvHandler.isRemovable(type)) )
7478 { 7475 {
7479 return; 7476 return;
@@ -7616,9 +7613,9 @@ void LLAgent::setWearableOutfit(
7616 wearables_to_remove[WT_UNDERSHIRT] = (!gAgent.isTeen()) && remove && gRlvHandler.isRemovable(WT_UNDERSHIRT); 7613 wearables_to_remove[WT_UNDERSHIRT] = (!gAgent.isTeen()) && remove && gRlvHandler.isRemovable(WT_UNDERSHIRT);
7617 wearables_to_remove[WT_UNDERPANTS] = (!gAgent.isTeen()) && remove && gRlvHandler.isRemovable(WT_UNDERPANTS); 7614 wearables_to_remove[WT_UNDERPANTS] = (!gAgent.isTeen()) && remove && gRlvHandler.isRemovable(WT_UNDERPANTS);
7618 wearables_to_remove[WT_SKIRT] = remove && gRlvHandler.isRemovable(WT_SKIRT); 7615 wearables_to_remove[WT_SKIRT] = remove && gRlvHandler.isRemovable(WT_SKIRT);
7616 wearables_to_remove[WT_ALPHA] = remove && gRlvHandler.isRemovable(WT_ALPHA);
7617 wearables_to_remove[WT_TATTOO] = remove && gRlvHandler.isRemovable(WT_TATTOO);
7619// [/RLVa:KB] 7618// [/RLVa:KB]
7620 wearables_to_remove[WT_ALPHA] = remove;
7621 wearables_to_remove[WT_TATTOO] = remove;
7622 7619
7623 S32 count = wearables.count(); 7620 S32 count = wearables.count();
7624 llassert( items.count() == count ); 7621 llassert( items.count() == count );
diff --git a/linden/indra/newview/llappviewer.cpp b/linden/indra/newview/llappviewer.cpp
index f1cd447..d757ba6 100644
--- a/linden/indra/newview/llappviewer.cpp
+++ b/linden/indra/newview/llappviewer.cpp
@@ -1826,6 +1826,12 @@ bool LLAppViewer::initConfiguration()
1826 LLFirstUse::addConfigVariable("FirstMedia"); 1826 LLFirstUse::addConfigVariable("FirstMedia");
1827 LLFirstUse::addConfigVariable("FirstLoginScreen"); 1827 LLFirstUse::addConfigVariable("FirstLoginScreen");
1828 1828
1829// [RLVa:KB] - Checked: RLVa-1.0.3a (2009-09-10) | Added: RLVa-1.0.3a
1830 //LLFirstUse::addConfigVariable(RLV_SETTING_FIRSTUSE_DETACH);
1831 //LLFirstUse::addConfigVariable(RLV_SETTING_FIRSTUSE_ENABLEWEAR);
1832 //LLFirstUse::addConfigVariable(RLV_SETTING_FIRSTUSE_FARTOUCH);
1833// [/RLVa:KB]
1834
1829 // - read command line settings. 1835 // - read command line settings.
1830 LLControlGroupCLP clp; 1836 LLControlGroupCLP clp;
1831 std::string cmd_line_config = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, 1837 std::string cmd_line_config = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,
diff --git a/linden/indra/newview/llchatbar.cpp b/linden/indra/newview/llchatbar.cpp
index 5a7586e..3c977dd 100644
--- a/linden/indra/newview/llchatbar.cpp
+++ b/linden/indra/newview/llchatbar.cpp
@@ -558,16 +558,16 @@ void LLChatBar::onInputEditorKeystroke( LLLineEditor* caller, void* userdata )
558 558
559 S32 length = raw_text.length(); 559 S32 length = raw_text.length();
560 560
561 //if( (length > 0) && (raw_text[0] != '/') ) // forward slash is used for escape (eg. emote) sequences 561 if( (length > 0) && (raw_text[0] != '/') ) // forward slash is used for escape (eg. emote) sequences
562// [RLVa:KB] - Checked: 2009-07-07 (RLVa-1.0.0d)
563 if ( (length > 0) && (raw_text[0] != '/') && (!gRlvHandler.hasBehaviour(RLV_BHVR_REDIRCHAT)) )
564// [/RLVa:KB]
565 { 562 {
566 if (self->mChanCtrlEnabled && (S32)(self->mChannelControl->get()) != 0) 563 if (self->mChanCtrlEnabled && (S32)(self->mChannelControl->get()) != 0)
567 { 564 {
568 gAgent.stopTyping(); 565 gAgent.stopTyping();
569 } 566 }
570 else 567// else
568// [RLVa:KB] - Checked: 2009-07-07 (RLVa-1.0.0d)
569 else if (!gRlvHandler.hasBehaviour(RLV_BHVR_REDIRCHAT))
570// [/RLVa:KB]
571 { 571 {
572 gAgent.startTyping(); 572 gAgent.startTyping();
573 } 573 }
diff --git a/linden/indra/newview/llfirstuse.cpp b/linden/indra/newview/llfirstuse.cpp
index c0f07e5..886bb94 100644
--- a/linden/indra/newview/llfirstuse.cpp
+++ b/linden/indra/newview/llfirstuse.cpp
@@ -49,10 +49,6 @@
49#include "floatergriddefault.h" 49#include "floatergriddefault.h"
50#include "hippoGridManager.h" 50#include "hippoGridManager.h"
51 51
52// [RLVa:KB] - Version: 1.22.11
53#include "llviewerwindow.h"
54// [/RLVa:KB]
55
56// static 52// static
57std::set<std::string> LLFirstUse::sConfigVariables; 53std::set<std::string> LLFirstUse::sConfigVariables;
58 54
@@ -310,6 +306,43 @@ void LLFirstUse::useMedia()
310 } 306 }
311} 307}
312 308
309// [RLVa:KB] - Version: 1.23.4 | Checked: RLVa-1.0.3a (2009-09-10) | Added: RLVa-1.0.3a
310
311bool rlvHasVisibleFirstUseNotification()
312{
313 LLNotificationChannelPtr activeNotifications = LLNotifications::instance().getChannel("Notifications");
314 for (LLNotificationChannel::Iterator itNotif = activeNotifications->begin(); itNotif != activeNotifications->end(); itNotif++)
315 if ((*itNotif)->getName().find(RLV_SETTING_FIRSTUSE_PREFIX) == 0)
316 return true;
317 return false;
318}
319
320void LLFirstUse::showRlvFirstUseNotification(const std::string& strName)
321{
322 if ( (gSavedSettings.getWarning(strName)) && (!rlvHasVisibleFirstUseNotification()) )
323 {
324 gSavedSettings.setWarning(strName, FALSE);
325 LLNotifications::instance().add(strName);
326 }
327}
328
329void LLFirstUse::warnRlvGiveToRLV()
330{
331 if ( (gSavedSettings.getWarning(RLV_SETTING_FIRSTUSE_GIVETORLV)) && (RlvSettings::getForbidGiveToRLV()) )
332 LLNotifications::instance().add(RLV_SETTING_FIRSTUSE_GIVETORLV, LLSD(), LLSD(), &LLFirstUse::onRlvGiveToRLVConfirmation);
333}
334
335void LLFirstUse::onRlvGiveToRLVConfirmation(const LLSD& notification, const LLSD& response)
336{
337 gSavedSettings.setWarning(RLV_SETTING_FIRSTUSE_GIVETORLV, FALSE);
338
339 S32 idxOption = LLNotification::getSelectedOption(notification, response);
340 if ( (0 == idxOption) || (1 == idxOption) )
341 gSavedSettings.setBOOL(RLV_SETTING_FORBIDGIVETORLV, (idxOption == 1));
342}
343
344// [/RLVa:KB]
345
313void LLFirstUse::callbackClientTags(const LLSD& notification, const LLSD& response) 346void LLFirstUse::callbackClientTags(const LLSD& notification, const LLSD& response)
314{ 347{
315 gSavedSettings.setWarning("ClientTags", FALSE); 348 gSavedSettings.setWarning("ClientTags", FALSE);
diff --git a/linden/indra/newview/llfirstuse.h b/linden/indra/newview/llfirstuse.h
index bd44ece..c77f0b2 100644
--- a/linden/indra/newview/llfirstuse.h
+++ b/linden/indra/newview/llfirstuse.h
@@ -129,7 +129,7 @@ public:
129 129
130 static void warnRlvGiveToRLV(); 130 static void warnRlvGiveToRLV();
131protected: 131protected:
132 static void onRlvGiveToRLVConfirmation(S32 idxOption, void* pUserParam); 132 static void onRlvGiveToRLVConfirmation(const LLSD& notification, const LLSD& response);
133// [/RLVa:KB] 133// [/RLVa:KB]
134}; 134};
135 135
diff --git a/linden/indra/newview/llfloaterabout.cpp b/linden/indra/newview/llfloaterabout.cpp
index 7e6c43f..1945df4 100644
--- a/linden/indra/newview/llfloaterabout.cpp
+++ b/linden/indra/newview/llfloaterabout.cpp
@@ -141,7 +141,7 @@ LLFloaterAbout::LLFloaterAbout()
141 141
142 // Position 142 // Position
143 LLViewerRegion* region = gAgent.getRegion(); 143 LLViewerRegion* region = gAgent.getRegion();
144// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-04 (RLVa-1.0.0a) 144// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-04 (RLVa-1.0.0a)
145 if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) 145 if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC))
146 { 146 {
147 support.append(rlv_handler_t::cstrHidden); 147 support.append(rlv_handler_t::cstrHidden);
diff --git a/linden/indra/newview/llfloateravatarpicker.cpp b/linden/indra/newview/llfloateravatarpicker.cpp
index c5a6a37..4eca8af 100644
--- a/linden/indra/newview/llfloateravatarpicker.cpp
+++ b/linden/indra/newview/llfloateravatarpicker.cpp
@@ -351,6 +351,30 @@ void LLFloaterAvatarPicker::populateNearMe()
351void LLFloaterAvatarPicker::draw() 351void LLFloaterAvatarPicker::draw()
352{ 352{
353 LLFloater::draw(); 353 LLFloater::draw();
354
355// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e) | Added: RLVa-1.0.0e
356 // TODO-RLVa: this code needs revisiting
357 if (rlv_handler_t::isEnabled())
358 {
359 LLPanel* pNearMePanel = getChild<LLPanel>("NearMePanel");
360 if ( (pNearMePanel) && (childGetVisibleTab("ResidentChooserTabs") == pNearMePanel) )
361 {
362 if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES))
363 {
364 if (mNearMeListComplete)
365 {
366 getChild<LLScrollListCtrl>("NearMe")->deleteAllItems();
367 childSetEnabled("Select", false);
368 }
369 mNearMeListComplete = FALSE;
370 pNearMePanel->setCtrlsEnabled(FALSE);
371 return;
372 }
373 pNearMePanel->setCtrlsEnabled(TRUE);
374 }
375 }
376// [/RLVa:KB]
377
354 if (!mNearMeListComplete && childGetVisibleTab("ResidentChooserTabs") == getChild<LLPanel>("NearMePanel")) 378 if (!mNearMeListComplete && childGetVisibleTab("ResidentChooserTabs") == getChild<LLPanel>("NearMePanel"))
355 { 379 {
356 populateNearMe(); 380 populateNearMe();
diff --git a/linden/indra/newview/llfloaterchat.cpp b/linden/indra/newview/llfloaterchat.cpp
index 7613e36..b14930b 100644
--- a/linden/indra/newview/llfloaterchat.cpp
+++ b/linden/indra/newview/llfloaterchat.cpp
@@ -208,10 +208,11 @@ void add_timestamped_line(LLViewerTextEditor* edit, LLChat chat, const LLColor4&
208 // extract out the sender name and replace it with the hotlinked name. 208 // extract out the sender name and replace it with the hotlinked name.
209 if (chat.mSourceType == CHAT_SOURCE_AGENT && 209 if (chat.mSourceType == CHAT_SOURCE_AGENT &&
210 chat.mFromID != LLUUID::null && 210 chat.mFromID != LLUUID::null &&
211// chat.mFromID != gAgent.getID())
212// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e)
211 chat.mFromID != gAgent.getID() && 213 chat.mFromID != gAgent.getID() &&
212// [RLVa] - Version: 1.22.11 | Checked: 2009-07-08 (RLVa-1.0.0e)
213 (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) ) 214 (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) )
214// [/RLVa] 215// [/RLVa:KB]
215 { 216 {
216 chat.mURL = llformat("secondlife:///app/agent/%s/about",chat.mFromID.asString().c_str()); 217 chat.mURL = llformat("secondlife:///app/agent/%s/about",chat.mFromID.asString().c_str());
217 } 218 }
diff --git a/linden/indra/newview/llfloatermap.cpp b/linden/indra/newview/llfloatermap.cpp
index bfbc8bb..b56fb5f 100644
--- a/linden/indra/newview/llfloatermap.cpp
+++ b/linden/indra/newview/llfloatermap.cpp
@@ -154,18 +154,6 @@ void LLFloaterMap::draw()
154 } 154 }
155} 155}
156 156
157// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-05 (RLVa-1.0.0c)
158void LLFloaterMap::open()
159{
160 if (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWMINIMAP))
161 {
162 LLFloater::open();
163 LLFirstUse::useMiniMap();
164 }
165}
166// [/RLVa:KB]
167
168
169PanelRadar* LLFloaterMap::getRadar() 157PanelRadar* LLFloaterMap::getRadar()
170{ 158{
171 return mPanelRadar; 159 return mPanelRadar;
@@ -263,3 +251,13 @@ void LLFloaterMap::adjustLayout( bool expand )
263 toggle->setRect( temp_rect ); 251 toggle->setRect( temp_rect );
264 } 252 }
265} 253}
254
255// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-05 (RLVa-1.0.0c)
256void LLFloaterMap::open()
257{
258 if (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWMINIMAP))
259 {
260 LLFloater::open();
261 }
262}
263// [/RLVa:KB]
diff --git a/linden/indra/newview/llfloatermap.h b/linden/indra/newview/llfloatermap.h
index 5b0497f..6f7281e 100644
--- a/linden/indra/newview/llfloatermap.h
+++ b/linden/indra/newview/llfloatermap.h
@@ -55,8 +55,8 @@ public:
55 /*virtual*/ void onOpen(); 55 /*virtual*/ void onOpen();
56 /*virtual*/ void onClose(bool app_quitting); 56 /*virtual*/ void onClose(bool app_quitting);
57 /*virtual*/ BOOL canClose(); 57 /*virtual*/ BOOL canClose();
58// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-05 (RLVa-1.0.0c) 58// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-05 (RLVa-1.0.0c)
59 /*virtual*/ void open(); 59 /*virtual*/ void open();
60// [/RLVa:KB] 60// [/RLVa:KB]
61 61
62 PanelRadar* getRadar(); 62 PanelRadar* getRadar();
diff --git a/linden/indra/newview/llfloaterobjectiminfo.cpp b/linden/indra/newview/llfloaterobjectiminfo.cpp
index 7ef3af2..fa7964c 100644
--- a/linden/indra/newview/llfloaterobjectiminfo.cpp
+++ b/linden/indra/newview/llfloaterobjectiminfo.cpp
@@ -47,6 +47,10 @@
47#include "llurldispatcher.h" 47#include "llurldispatcher.h"
48#include "llviewercontrol.h" 48#include "llviewercontrol.h"
49 49
50// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-04 (RLVa-1.0.0a) | Added: RLVa-0.2.0g
51#include "rlvhandler.h"
52// [/RLVa:KB]
53
50//////////////////////////////////////////////////////////////////////////// 54////////////////////////////////////////////////////////////////////////////
51// LLFloaterObjectIMInfo 55// LLFloaterObjectIMInfo
52class LLFloaterObjectIMInfo : public LLFloater, public LLFloaterSingleton<LLFloaterObjectIMInfo> 56class LLFloaterObjectIMInfo : public LLFloater, public LLFloaterSingleton<LLFloaterObjectIMInfo>
@@ -100,7 +104,10 @@ void LLFloaterObjectIMInfo::update(const LLUUID& object_id, const std::string& n
100{ 104{
101 // When talking to an old region we won't have a slurl. 105 // When talking to an old region we won't have a slurl.
102 // The object id isn't really the object id either but we don't use it so who cares. 106 // The object id isn't really the object id either but we don't use it so who cares.
103 bool have_slurl = !slurl.empty(); 107 //bool have_slurl = !slurl.empty();
108// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-04 (RLVa-1.0.0a) | Added: RLVa-0.2.0g
109 bool have_slurl = (!slurl.empty()) && (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC));
110// [/RLVa:KB]
104 childSetVisible("Unknown_Slurl",!have_slurl); 111 childSetVisible("Unknown_Slurl",!have_slurl);
105 childSetVisible("Slurl",have_slurl); 112 childSetVisible("Slurl",have_slurl);
106 113
@@ -108,7 +115,10 @@ void LLFloaterObjectIMInfo::update(const LLUUID& object_id, const std::string& n
108 childSetText("Slurl",slurl); 115 childSetText("Slurl",slurl);
109 childSetText("OwnerName",std::string("")); 116 childSetText("OwnerName",std::string(""));
110 117
111 bool my_object = (owner_id == gAgentID); 118// bool my_object = (owner_id == gAgentID);
119// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e) | Added: RLVa-0.2.0g
120 bool my_object = (owner_id == gAgentID) || ((gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (gRlvHandler.isAgentNearby(owner_id)));
121// [/RLVa:KB]
112 childSetEnabled("Mute",!my_object); 122 childSetEnabled("Mute",!my_object);
113 123
114 mObjectID = object_id; 124 mObjectID = object_id;
@@ -139,7 +149,10 @@ void LLFloaterObjectIMInfo::onClickOwner(void* data)
139 { 149 {
140 LLFloaterGroupInfo::showFromUUID(self->mOwnerID); 150 LLFloaterGroupInfo::showFromUUID(self->mOwnerID);
141 } 151 }
142 else 152// else
153// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e) | Added: RLVa-0.2.0g
154 else if ( (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) || (!gRlvHandler.isAgentNearby(self->mOwnerID)) )
155// [/RLVa:KB]
143 { 156 {
144 LLFloaterAvatarInfo::showFromObject(self->mOwnerID); 157 LLFloaterAvatarInfo::showFromObject(self->mOwnerID);
145 } 158 }
@@ -151,6 +164,13 @@ void LLFloaterObjectIMInfo::onClickMute(void* data)
151 LLFloaterObjectIMInfo* self = (LLFloaterObjectIMInfo*)data; 164 LLFloaterObjectIMInfo* self = (LLFloaterObjectIMInfo*)data;
152 165
153 LLMute::EType mute_type = (self->mOwnerIsGroup) ? LLMute::GROUP : LLMute::AGENT; 166 LLMute::EType mute_type = (self->mOwnerIsGroup) ? LLMute::GROUP : LLMute::AGENT;
167// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e) | Added: RLVa-0.2.0g
168 if ( (LLMute::GROUP != mute_type) && (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (gRlvHandler.isAgentNearby(self->mOwnerID)) )
169 {
170 return;
171 }
172// [/RLVa:KB]
173
154 LLMute mute(self->mOwnerID, self->mOwnerName, mute_type); 174 LLMute mute(self->mOwnerID, self->mOwnerName, mute_type);
155 LLMuteList::getInstance()->add(mute); 175 LLMuteList::getInstance()->add(mute);
156 LLFloaterMute::showInstance(); 176 LLFloaterMute::showInstance();
@@ -167,6 +187,13 @@ void LLFloaterObjectIMInfo::nameCallback(const LLUUID& id, const std::string& fi
167 self->mOwnerName += " " + last; 187 self->mOwnerName += " " + last;
168 } 188 }
169 189
190// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e) | Added: RLVa-0.2.0g
191 if ( (!is_group) && (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (gRlvHandler.isAgentNearby(id)) )
192 {
193 self->mOwnerName = gRlvHandler.getAnonym(self->mOwnerName);
194 }
195// [/RLVa:KB]
196
170 self->childSetText("OwnerName",self->mOwnerName); 197 self->childSetText("OwnerName",self->mOwnerName);
171} 198}
172 199
diff --git a/linden/indra/newview/llhudeffectlookat.cpp b/linden/indra/newview/llhudeffectlookat.cpp
index a997910..561fce5 100644
--- a/linden/indra/newview/llhudeffectlookat.cpp
+++ b/linden/indra/newview/llhudeffectlookat.cpp
@@ -41,6 +41,7 @@
41#include "llagent.h" 41#include "llagent.h"
42#include "llvoavatar.h" 42#include "llvoavatar.h"
43#include "lldrawable.h" 43#include "lldrawable.h"
44#include "llviewercontrol.h"
44#include "llviewerobjectlist.h" 45#include "llviewerobjectlist.h"
45#include "llviewerwindow.h" 46#include "llviewerwindow.h"
46#include "llrendersphere.h" 47#include "llrendersphere.h"
@@ -593,11 +594,13 @@ void LLHUDEffectLookAt::render()
593 LLColor4 Color = LLColor4( (*mAttentions)[mTargetType].mColor, 1.0f ); 594 LLColor4 Color = LLColor4( (*mAttentions)[mTargetType].mColor, 1.0f );
594 std::string text = ((LLVOAvatar*)(LLViewerObject*)mSourceObject)->getFullname(); 595 std::string text = ((LLVOAvatar*)(LLViewerObject*)mSourceObject)->getFullname();
595 596
597// [RLVa:KB] - Imprudence-1.3.0
596 // Show anonyms in place of actual names when @shownames=n restricted 598 // Show anonyms in place of actual names when @shownames=n restricted
597 if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) 599 if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES))
598 { 600 {
599 text = gRlvHandler.getAnonym(text); 601 text = gRlvHandler.getAnonym(text);
600 } 602 }
603// [/RLVa:KB]
601 604
602 gViewerWindow->setupViewport(); 605 gViewerWindow->setupViewport();
603 hud_render_utf8text(text, render_pos, *fontp, LLFontGL::NORMAL, -0.5f * fontp->getWidthF32(text), 3.f, Color, FALSE ); 606 hud_render_utf8text(text, render_pos, *fontp, LLFontGL::NORMAL, -0.5f * fontp->getWidthF32(text), 3.f, Color, FALSE );
diff --git a/linden/indra/newview/llinventorybridge.cpp b/linden/indra/newview/llinventorybridge.cpp
index fe56ae0..41af123 100644
--- a/linden/indra/newview/llinventorybridge.cpp
+++ b/linden/indra/newview/llinventorybridge.cpp
@@ -3463,10 +3463,32 @@ void rez_attachment(LLViewerInventoryItem* item, LLViewerJointAttachment* attach
3463 3463
3464 if (attachment && attachment->getObject()) 3464 if (attachment && attachment->getObject())
3465 { 3465 {
3466// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a
3467 if ( (rlv_handler_t::isEnabled()) && // Can't replace an existing object if it's undetachable
3468 (gRlvHandler.isLockedAttachment(attach_pt, RLV_LOCK_ANY)) ) // or if we're not allowed to attach to that attach point
3469 {
3470 return;
3471 }
3472// [/RLVa:KB]
3466 LLNotifications::instance().add("ReplaceAttachment", LLSD(), payload, confirm_replace_attachment_rez); 3473 LLNotifications::instance().add("ReplaceAttachment", LLSD(), payload, confirm_replace_attachment_rez);
3467 } 3474 }
3468 else 3475 else
3469 { 3476 {
3477// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-10-10 (RLVa-1.0.5) | Modified: RLVa-1.0.5
3478 if ( (rlv_handler_t::isEnabled()) && (gRlvHandler.hasLockedAttachment(RLV_LOCK_ANY)) )
3479 {
3480 if (0 == attach_pt) // Can't wear on the default attachment point
3481 {
3482 if (!RlvSettings::getEnableWear()) // (unless "Enable Wear" is enabled)
3483 return;
3484 gRlvHandler.onWearAttachment(item->getUUID());
3485 }
3486 else if (gRlvHandler.isLockedAttachment(attach_pt, RLV_LOCK_ADD)) // and we can never wear on a non-attachable attach point
3487 {
3488 return;
3489 }
3490 }
3491// [/RLVa:KB]
3470 LLNotifications::instance().forceResponse(LLNotification::Params("ReplaceAttachment").payload(payload), 0/*YES*/); 3492 LLNotifications::instance().forceResponse(LLNotification::Params("ReplaceAttachment").payload(payload), 0/*YES*/);
3471 } 3493 }
3472} 3494}
@@ -3553,7 +3575,7 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
3553 items.push_back(std::string("RestoreToWorld Separator")); 3575 items.push_back(std::string("RestoreToWorld Separator"));
3554 items.push_back(std::string("Restore to Last Position")); 3576 items.push_back(std::string("Restore to Last Position"));
3555 3577
3556// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a 3578// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a
3557 if ( (rlv_handler_t::isEnabled()) && (!RlvSettings::getEnableWear()) && (gRlvHandler.hasLockedAttachment(RLV_LOCK_ANY)) ) 3579 if ( (rlv_handler_t::isEnabled()) && (!RlvSettings::getEnableWear()) && (gRlvHandler.hasLockedAttachment(RLV_LOCK_ANY)) )
3558 { 3580 {
3559 LLViewerJointAttachment* pAttachPt = gRlvHandler.getAttachPoint(item, true); // The item's name should specify 3581 LLViewerJointAttachment* pAttachPt = gRlvHandler.getAttachPoint(item, true); // The item's name should specify
@@ -4113,7 +4135,7 @@ void wear_inventory_category_on_avatar_step2( BOOL proceed, void* userdata )
4113 is_gesture); 4135 is_gesture);
4114 S32 gest_count = gest_item_array.count(); 4136 S32 gest_count = gest_item_array.count();
4115 4137
4116// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a 4138// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a
4117 if ( (rlv_handler_t::isEnabled()) && (gRlvHandler.hasLockedAttachment(RLV_LOCK_ANY)) ) 4139 if ( (rlv_handler_t::isEnabled()) && (gRlvHandler.hasLockedAttachment(RLV_LOCK_ANY)) )
4118 { 4140 {
4119 // Filter anything that we shouldn't be attaching 4141 // Filter anything that we shouldn't be attaching
@@ -4395,10 +4417,11 @@ void wear_attachments_on_avatar(const LLInventoryModel::item_array_t& items, BOO
4395 msg->addU8Fast(_PREHASH_TotalObjects, count ); 4417 msg->addU8Fast(_PREHASH_TotalObjects, count );
4396// msg->addBOOLFast(_PREHASH_FirstDetachAll, remove ); 4418// msg->addBOOLFast(_PREHASH_FirstDetachAll, remove );
4397// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5a) | Added: RLVa-1.0.5a 4419// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5a) | Added: RLVa-1.0.5a
4398 // This really should just *always* be FALSE since TRUE can result in loss of the current asset state 4420 // This really should just *always* be FALSE since TRUE can result in loss of the current asset state
4399 msg->addBOOLFast(_PREHASH_FirstDetachAll, remove && (!gRlvHandler.hasLockedAttachment(RLV_LOCK_ANY)) ); 4421 msg->addBOOLFast(_PREHASH_FirstDetachAll,
4422 (remove) && (!gRlvHandler.hasLockedAttachment(RLV_LOCK_ANY)) );
4400// [/RLVa:KB] 4423// [/RLVa:KB]
4401 } 4424 }
4402 4425
4403 LLInventoryItem* item = items.get(i); 4426 LLInventoryItem* item = items.get(i);
4404 msg->nextBlockFast(_PREHASH_ObjectData ); 4427 msg->nextBlockFast(_PREHASH_ObjectData );
@@ -4406,10 +4429,10 @@ void wear_attachments_on_avatar(const LLInventoryModel::item_array_t& items, BOO
4406 msg->addUUIDFast(_PREHASH_OwnerID, item->getPermissions().getOwner()); 4429 msg->addUUIDFast(_PREHASH_OwnerID, item->getPermissions().getOwner());
4407// msg->addU8Fast(_PREHASH_AttachmentPt, 0 ); // Wear at the previous or default attachment point 4430// msg->addU8Fast(_PREHASH_AttachmentPt, 0 ); // Wear at the previous or default attachment point
4408// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5a) | Added: RLVa-1.0.5a 4431// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5a) | Added: RLVa-1.0.5a
4409 msg->addU8Fast(_PREHASH_AttachmentPt, 4432 msg->addU8Fast(_PREHASH_AttachmentPt,
4410 ( (!rlv_handler_t::isEnabled()) || (RlvSettings::getEnableWear()) || (!gRlvHandler.hasLockedAttachment(RLV_LOCK_ANY)) ) 4433 ( (!rlv_handler_t::isEnabled()) || (RlvSettings::getEnableWear()) || (!gRlvHandler.hasLockedAttachment(RLV_LOCK_ANY)) )
4411 ? 0 4434 ? 0
4412 : gRlvHandler.getAttachPointIndex(gRlvHandler.getAttachPoint(item, true))); 4435 : gRlvHandler.getAttachPointIndex(gRlvHandler.getAttachPoint(item, true)));
4413// [/RLVa:KB] 4436// [/RLVa:KB]
4414 pack_permissions_slam(msg, item->getFlags(), item->getPermissions()); 4437 pack_permissions_slam(msg, item->getFlags(), item->getPermissions());
4415 msg->addStringFast(_PREHASH_Name, item->getName()); 4438 msg->addStringFast(_PREHASH_Name, item->getName());
@@ -4930,11 +4953,11 @@ void LLWearableBridge::onRemoveFromAvatarArrived(LLWearable* wearable,
4930 { 4953 {
4931 EWearableType type = wearable->getType(); 4954 EWearableType type = wearable->getType();
4932 4955
4933 //if( !(type==WT_SHAPE || type==WT_SKIN || type==WT_HAIR ) ) //&& 4956// if( !(type==WT_SHAPE || type==WT_SKIN || type==WT_HAIR ) ) //&&
4934 //!((!gAgent.isTeen()) && ( type==WT_UNDERPANTS || type==WT_UNDERSHIRT )) )
4935// [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e) | Added: RLVa-0.2.2a | SL big fix 4957// [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e) | Added: RLVa-0.2.2a | SL big fix
4936 if( !(type==WT_SHAPE || type==WT_SKIN || type==WT_HAIR || type==WT_EYES) ) 4958 if( !(type==WT_SHAPE || type==WT_SKIN || type==WT_HAIR || type==WT_EYES) )
4937// [/RLVa:KB] 4959// [/RLVa:KB]
4960 //!((!gAgent.isTeen()) && ( type==WT_UNDERPANTS || type==WT_UNDERSHIRT )) )
4938 { 4961 {
4939 gAgent.removeWearable( type ); 4962 gAgent.removeWearable( type );
4940 } 4963 }
diff --git a/linden/indra/newview/llnetmap.cpp b/linden/indra/newview/llnetmap.cpp
index 2b9810d..ec04337 100644
--- a/linden/indra/newview/llnetmap.cpp
+++ b/linden/indra/newview/llnetmap.cpp
@@ -370,7 +370,14 @@ void LLNetMap::draw()
370 else 370 else
371 { 371 {
372 // Show them muted even if they're friends 372 // Show them muted even if they're friends
373 if (LLMuteList::getInstance()->isMuted(avatar_ids[i])) 373// [RLVa:KB] - Version: 1.23.4 | Alternate: Imprudence-1.3 | Checked: 2009-07-08 (RLVa-1.0.0e) | Modified: RLVa-0.2.0b
374 if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES))
375 {
376 glyph_color = avatar_color;
377 }
378 else if (LLMuteList::getInstance()->isMuted(avatar_ids[i]))
379// [/RLVa:KB]
380// if (LLMuteList::getInstance()->isMuted(avatar_ids[i]))
374 { 381 {
375 glyph_color = muted_color; 382 glyph_color = muted_color;
376 } 383 }
@@ -388,15 +395,6 @@ void LLNetMap::draw()
388 } 395 }
389 } 396 }
390 397
391// [RLVa:KB] - Alternate: Imprudence-1.2.0
392 if ( gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES) )
393 {
394 // User is not allowed to see who it is, or even if it's a friend,
395 // due to RLV settings.
396 glyph_color = avatar_color;
397 }
398// [/RLVa:KB]
399
400 LLWorldMapView::drawAvatar( 398 LLWorldMapView::drawAvatar(
401 pos_map.mV[VX], pos_map.mV[VY], 399 pos_map.mV[VX], pos_map.mV[VY],
402 glyph_color, 400 glyph_color,
@@ -624,26 +622,17 @@ BOOL LLNetMap::handleToolTip( S32 x, S32 y, std::string& msg, LLRect* sticky_rec
624 std::string fullname; 622 std::string fullname;
625 if(mClosestAgentToCursor.notNull() && gCacheName->getFullName(mClosestAgentToCursor, fullname)) 623 if(mClosestAgentToCursor.notNull() && gCacheName->getFullName(mClosestAgentToCursor, fullname))
626 { 624 {
627// [RLVa:KB] - Alternate: Imprudence-1.2.0 625// msg.append(fullname);
628 // User is not allowed to see who it is, due to RLV settings. 626// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e) | Modified: RLVa-0.2.0b
629 msg.append( (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) ? fullname : gRlvHandler.getAnonym(fullname) ); 627 msg.append( (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) ? fullname : gRlvHandler.getAnonym(fullname) );
628// [/RLVa:KB]
630 msg.append("\n"); 629 msg.append("\n");
631 // [/RLVa:KB]
632 } 630 }
633 631
634// [RLVa:KB] - Alternate: Imprudence-1.2.0 632// msg.append( region->getName() );
635 if ( gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC) ) 633// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-04 (RLVa-1.0.0a) | Modified: RLVa-0.2.0b
636 { 634 msg.append( (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) ? region->getName() : rlv_handler_t::cstrHidden );
637 // User is not allowed to see where they are, due to RLV settings.
638 msg.append( rlv_handler_t::cstrHidden );
639 }
640 else
641 {
642 msg.append( region->getName() );
643 }
644// [/RLVa:KB] 635// [/RLVa:KB]
645
646
647 msg.append("\n"); 636 msg.append("\n");
648 gSavedSettings.getBOOL( "MiniMapTeleport" ) ? 637 gSavedSettings.getBOOL( "MiniMapTeleport" ) ?
649 msg.append(getString("tooltip_tp")) : msg.append(getString("tooltip_map")); 638 msg.append(getString("tooltip_tp")) : msg.append(getString("tooltip_map"));
@@ -1043,24 +1032,24 @@ bool LLNetMap::LLEnableTracking::handleEvent(LLPointer<LLEvent> event, const LLS
1043 1032
1044bool LLNetMap::LLShowAgentProfile::handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 1033bool LLNetMap::LLShowAgentProfile::handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
1045{ 1034{
1046// [RLVa:KB] - Alternate: Imprudence-1.2.0 1035 LLNetMap *self = mPtr;
1047 if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) 1036// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e) | Modified: RLVa-0.2.0b
1037 if (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES))
1048 { 1038 {
1049 return true; 1039 LLFloaterAvatarInfo::show(self->mClosestAgentAtLastRightClick);
1050 } 1040 }
1051// [/RLVa:KB] 1041// [/RLVa:KB]
1052 1042 //LLFloaterAvatarInfo::show(self->mClosestAgentAtLastRightClick);
1053 LLNetMap *self = mPtr;
1054 LLFloaterAvatarInfo::show(self->mClosestAgentAtLastRightClick);
1055 return true; 1043 return true;
1056} 1044}
1057 1045
1058bool LLNetMap::LLEnableProfile::handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 1046bool LLNetMap::LLEnableProfile::handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
1059{ 1047{
1060 LLNetMap *self = mPtr; 1048 LLNetMap *self = mPtr;
1061 //self->findControl(userdata["control"].asString())->setValue(self->isAgentUnderCursor()); 1049// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e) | Modified: RLVa-0.2.0b
1062// [RLVa:KB] - Alternate: Imprudence-1.2.0 1050 self->findControl(userdata["control"].asString())->setValue(
1063 self->findControl(userdata["control"].asString())->setValue(self->isAgentUnderCursor() && !gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)); 1051 (self->isAgentUnderCursor()) && (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) );
1064// [/RLVa:KB] 1052// [/RLVa:KB]
1053 //self->findControl(userdata["control"].asString())->setValue(self->isAgentUnderCursor());
1065 return true; 1054 return true;
1066} 1055}
diff --git a/linden/indra/newview/llnotify.cpp b/linden/indra/newview/llnotify.cpp
index 2afd185..ef57aaf 100644
--- a/linden/indra/newview/llnotify.cpp
+++ b/linden/indra/newview/llnotify.cpp
@@ -57,7 +57,7 @@
57 57
58#include "hippoGridManager.h" 58#include "hippoGridManager.h"
59 59
60// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-10 (RLVa-1.0.0e) | Added: RLVa-0.2.0b 60// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-10 (RLVa-1.0.0e) | Added: RLVa-0.2.0b
61#include "rlvhandler.h" 61#include "rlvhandler.h"
62// [/RLVa:KB] 62// [/RLVa:KB]
63 63
diff --git a/linden/indra/newview/llpanelavatar.cpp b/linden/indra/newview/llpanelavatar.cpp
index 1701f69..ad0f47f 100644
--- a/linden/indra/newview/llpanelavatar.cpp
+++ b/linden/indra/newview/llpanelavatar.cpp
@@ -869,7 +869,7 @@ void LLPanelAvatarClassified::processAvatarClassifiedReply(LLMessageSystem* msg,
869// static 869// static
870void LLPanelAvatarClassified::onClickNew(void* data) 870void LLPanelAvatarClassified::onClickNew(void* data)
871{ 871{
872// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-04 (RLVa-1.0.0a) 872// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-04 (RLVa-1.0.0a)
873 if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) 873 if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC))
874 { 874 {
875 return; 875 return;
diff --git a/linden/indra/newview/llpanelcontents.cpp b/linden/indra/newview/llpanelcontents.cpp
index 33cebec..e5c4f79 100644
--- a/linden/indra/newview/llpanelcontents.cpp
+++ b/linden/indra/newview/llpanelcontents.cpp
@@ -123,6 +123,24 @@ void LLPanelContents::getState(LLViewerObject *objectp )
123 && ( objectp->permYouOwner() || ( !group_id.isNull() && gAgent.isInGroup(group_id) ))); // solves SL-23488 123 && ( objectp->permYouOwner() || ( !group_id.isNull() && gAgent.isInGroup(group_id) ))); // solves SL-23488
124 BOOL all_volume = LLSelectMgr::getInstance()->selectionAllPCode( LL_PCODE_VOLUME ); 124 BOOL all_volume = LLSelectMgr::getInstance()->selectionAllPCode( LL_PCODE_VOLUME );
125 125
126// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a
127 if ( (rlv_handler_t::isEnabled()) && (editable) )
128 {
129 // Don't allow creation of new scripts if it's undetachable
130 editable = !gRlvHandler.isLockedAttachment(objectp, RLV_LOCK_REMOVE);
131
132 // Don't allow creation of new scripts if we're @unsit=n or @sittp=n restricted and we're sitting on the selection
133 if ( (editable) && ((gRlvHandler.hasBehaviour(RLV_BHVR_UNSIT)) || (gRlvHandler.hasBehaviour(RLV_BHVR_SITTP))) )
134 {
135 LLVOAvatar* pAvatar = gAgent.getAvatarObject();
136 // Only check the first (non-)root object because nothing else would result in enabling the button (see below)
137 LLViewerObject* pObj = LLSelectMgr::getInstance()->getSelection()->getFirstRootObject(TRUE);
138
139 editable = (pObj) && (pAvatar) && ((!pAvatar->mIsSitting) || (pAvatar->getRoot() != pObj->getRootEdit()));
140 }
141 }
142// [/RLVa:KB]
143
126 // Edit script button - ok if object is editable and there's an unambiguous destination for the object. 144 // Edit script button - ok if object is editable and there's an unambiguous destination for the object.
127 childSetEnabled("button new script", 145 childSetEnabled("button new script",
128 editable && 146 editable &&
diff --git a/linden/indra/newview/llpanelgeneral.cpp b/linden/indra/newview/llpanelgeneral.cpp
index 538eb22..287ee41 100644
--- a/linden/indra/newview/llpanelgeneral.cpp
+++ b/linden/indra/newview/llpanelgeneral.cpp
@@ -44,6 +44,7 @@
44 44
45#include "floatergridmanager.h" 45#include "floatergridmanager.h"
46#include "llagent.h" 46#include "llagent.h"
47#include "llappviewer.h"
47#include "llpanellogin.h" 48#include "llpanellogin.h"
48#include "llviewerregion.h" 49#include "llviewerregion.h"
49#include "viewertime.h" 50#include "viewertime.h"
diff --git a/linden/indra/newview/llpanelinventory.cpp b/linden/indra/newview/llpanelinventory.cpp
index f882362..85f6ea2 100644
--- a/linden/indra/newview/llpanelinventory.cpp
+++ b/linden/indra/newview/llpanelinventory.cpp
@@ -82,12 +82,12 @@
82#include "llviewerwindow.h" 82#include "llviewerwindow.h"
83#include "llwearable.h" 83#include "llwearable.h"
84 84
85#include "hippoGridManager.h"
86
85// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c) 87// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c)
86#include "llvoavatar.h" 88#include "llvoavatar.h"
87// [/RLVa:KB] 89// [/RLVa:KB]
88 90
89#include "hippoGridManager.h"
90
91///---------------------------------------------------------------------------- 91///----------------------------------------------------------------------------
92/// Local function declarations, constants, enums, and typedefs 92/// Local function declarations, constants, enums, and typedefs
93///---------------------------------------------------------------------------- 93///----------------------------------------------------------------------------
diff --git a/linden/indra/newview/llpanellogin.cpp b/linden/indra/newview/llpanellogin.cpp
index 460c67f..23b7785 100644
--- a/linden/indra/newview/llpanellogin.cpp
+++ b/linden/indra/newview/llpanellogin.cpp
@@ -83,7 +83,7 @@
83 83
84#include "llglheaders.h" 84#include "llglheaders.h"
85 85
86// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-08 (RLVa-1.0.0e) 86// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e)
87#include "rlvhandler.h" 87#include "rlvhandler.h"
88// [/RLVa:KB] 88// [/RLVa:KB]
89 89
@@ -737,18 +737,16 @@ void LLPanelLogin::refreshLocation( bool force_visible )
737 if ( ! force_visible ) 737 if ( ! force_visible )
738 show_start = gSavedSettings.getBOOL("ShowStartLocation"); 738 show_start = gSavedSettings.getBOOL("ShowStartLocation");
739 739
740
741// [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e) 740// [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e)
742// TODO-RLVa: figure out some way to make this work with RLV_EXTENSION_STARTLOCATION 741 // TODO-RLVa: figure out some way to make this work with RLV_EXTENSION_STARTLOCATION
743#ifndef RLV_EXTENSION_STARTLOCATION 742 #ifndef RLV_EXTENSION_STARTLOCATION
744 if (rlv_handler_t::isEnabled()) 743 if (rlv_handler_t::isEnabled())
745 { 744 {
746 show_start = FALSE; 745 show_start = FALSE;
747 } 746 }
748#endif // RLV_EXTENSION_STARTLOCATION 747 #endif // RLV_EXTENSION_STARTLOCATION
749// [/RLVa:KB] 748// [/RLVa:KB]
750 749
751
752 sInstance->childSetVisible("start_location_combo", show_start); 750 sInstance->childSetVisible("start_location_combo", show_start);
753 sInstance->childSetVisible("start_location_text", show_start); 751 sInstance->childSetVisible("start_location_text", show_start);
754 752
diff --git a/linden/indra/newview/llpanelobject.cpp b/linden/indra/newview/llpanelobject.cpp
index a0736f1..9ef7f91 100644
--- a/linden/indra/newview/llpanelobject.cpp
+++ b/linden/indra/newview/llpanelobject.cpp
@@ -76,10 +76,12 @@
76 76
77#include "lldrawpool.h" 77#include "lldrawpool.h"
78 78
79#include "hippoLimits.h"
80
79// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) 81// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g)
80#include "llvoavatar.h" 82#include "llvoavatar.h"
81// [/RLVa:KB] 83// [/RLVa:KB]
82#include "hippoLimits.h" 84
83// 85//
84// Constants 86// Constants
85// 87//
diff --git a/linden/indra/newview/llpanelpermissions.cpp b/linden/indra/newview/llpanelpermissions.cpp
index cd1aee7..a97d177 100644
--- a/linden/indra/newview/llpanelpermissions.cpp
+++ b/linden/indra/newview/llpanelpermissions.cpp
@@ -354,10 +354,7 @@ void LLPanelPermissions::refresh()
354 fRlvEnableOwner && owners_identical && (mOwnerID.notNull() || LLSelectMgr::getInstance()->selectIsGroupOwned())); 354 fRlvEnableOwner && owners_identical && (mOwnerID.notNull() || LLSelectMgr::getInstance()->selectIsGroupOwned()));
355// [/RLVa:KB] 355// [/RLVa:KB]
356 356
357 //if (owner_name != last_owner_name) 357 if (owner_name != last_owner_name)
358// [RLVa:KB]
359 if ( (owner_name != last_owner_name) && (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) )
360// [/RLVa:KB]
361 { 358 {
362 childSetEnabled("Last Owner:", TRUE); 359 childSetEnabled("Last Owner:", TRUE);
363 childSetText("Last Owner Name", last_owner_name); 360 childSetText("Last Owner Name", last_owner_name);
@@ -903,7 +900,13 @@ void LLPanelPermissions::onClickLastOwner(void *data)
903 900
904 if ( self->mLastOwnerID.notNull() ) 901 if ( self->mLastOwnerID.notNull() )
905 { 902 {
906 LLFloaterAvatarInfo::showFromObject(self->mLastOwnerID); 903// [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e)
904 if (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES))
905 {
906 LLFloaterAvatarInfo::showFromObject(self->mLastOwnerID);
907 }
908// [/RLVa:KB]
909// LLFloaterAvatarInfo::showFromObject(self->mLastOwnerID);
907 } 910 }
908} 911}
909 912
diff --git a/linden/indra/newview/llselectmgr.cpp b/linden/indra/newview/llselectmgr.cpp
index 8064245..83abcf4 100644
--- a/linden/indra/newview/llselectmgr.cpp
+++ b/linden/indra/newview/llselectmgr.cpp
@@ -3439,12 +3439,20 @@ void LLSelectMgr::deselectAllIfTooFar()
3439 } 3439 }
3440 3440
3441 LLVector3d selectionCenter = getSelectionCenterGlobal(); 3441 LLVector3d selectionCenter = getSelectionCenterGlobal();
3442 if (gSavedSettings.getBOOL("LimitSelectDistance") 3442
3443// if (gSavedSettings.getBOOL("LimitSelectDistance")
3444// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-0.2.0f
3445 BOOL fRlvFartouch = gRlvHandler.hasBehaviour(RLV_BHVR_FARTOUCH) && gFloaterTools->getVisible();
3446 if ( (gSavedSettings.getBOOL("LimitSelectDistance") || (fRlvFartouch) )
3447// [/RLVa:KB]
3443 && (!mSelectedObjects->getPrimaryObject() || !mSelectedObjects->getPrimaryObject()->isAvatar()) 3448 && (!mSelectedObjects->getPrimaryObject() || !mSelectedObjects->getPrimaryObject()->isAvatar())
3444 && !mSelectedObjects->isAttachment() 3449 && !mSelectedObjects->isAttachment()
3445 && !selectionCenter.isExactlyZero()) 3450 && !selectionCenter.isExactlyZero())
3446 { 3451 {
3447 F32 deselect_dist = gSavedSettings.getF32("MaxSelectDistance"); 3452// F32 deselect_dist = gSavedSettings.getF32("MaxSelectDistance");
3453// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-0.2.0f
3454 F32 deselect_dist = (!fRlvFartouch) ? gSavedSettings.getF32("MaxSelectDistance") : 1.5f;
3455// [/RLVa:KB]
3448 F32 deselect_dist_sq = deselect_dist * deselect_dist; 3456 F32 deselect_dist_sq = deselect_dist * deselect_dist;
3449 3457
3450 LLVector3d select_delta = gAgent.getPositionGlobal() - selectionCenter; 3458 LLVector3d select_delta = gAgent.getPositionGlobal() - selectionCenter;
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp
index cec2c4b..b12c253 100644
--- a/linden/indra/newview/llstartup.cpp
+++ b/linden/indra/newview/llstartup.cpp
@@ -399,7 +399,7 @@ bool idle_startup()
399 // Initialize stuff that doesn't need data from simulators 399 // Initialize stuff that doesn't need data from simulators
400 // 400 //
401 401
402// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-0.2.1d 402// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-0.2.1d
403 if ( (gSavedSettings.controlExists(RLV_SETTING_MAIN)) && (gSavedSettings.getBOOL(RLV_SETTING_MAIN)) ) 403 if ( (gSavedSettings.controlExists(RLV_SETTING_MAIN)) && (gSavedSettings.getBOOL(RLV_SETTING_MAIN)) )
404 rlv_handler_t::setEnabled(TRUE); 404 rlv_handler_t::setEnabled(TRUE);
405// [/RLVa:KB] 405// [/RLVa:KB]
@@ -2757,11 +2757,6 @@ bool idle_startup()
2757 // reset keyboard focus to sane state of pointing at world 2757 // reset keyboard focus to sane state of pointing at world
2758 gFocusMgr.setKeyboardFocus(NULL); 2758 gFocusMgr.setKeyboardFocus(NULL);
2759 2759
2760#if 0 // sjb: enable for auto-enabling timer display
2761 gDebugView->mFastTimerView->setVisible(TRUE);
2762#endif
2763
2764
2765// [RLVa:KB] - Alternate: Snowglobe-1.0 | Checked: 2009-08-05 (RLVa-1.0.1e) | Modified: RLVa-1.0.1e 2760// [RLVa:KB] - Alternate: Snowglobe-1.0 | Checked: 2009-08-05 (RLVa-1.0.1e) | Modified: RLVa-1.0.1e
2766 // RELEASE-RLVa: this should go in LLAppViewer::handleLoginComplete() but Imprudence doesn't call that function 2761 // RELEASE-RLVa: this should go in LLAppViewer::handleLoginComplete() but Imprudence doesn't call that function
2767 gRlvHandler.initLookupTables(); 2762 gRlvHandler.initLookupTables();
@@ -2779,6 +2774,10 @@ bool idle_startup()
2779 } 2774 }
2780// [/RLVa:KB] 2775// [/RLVa:KB]
2781 2776
2777#if 0 // sjb: enable for auto-enabling timer display
2778 gDebugView->mFastTimerView->setVisible(TRUE);
2779#endif
2780
2782 return TRUE; 2781 return TRUE;
2783 } 2782 }
2784 2783
diff --git a/linden/indra/newview/lltoolbar.cpp b/linden/indra/newview/lltoolbar.cpp
index cc6d4b8..645d29a 100644
--- a/linden/indra/newview/lltoolbar.cpp
+++ b/linden/indra/newview/lltoolbar.cpp
@@ -303,6 +303,20 @@ void LLToolBar::refresh()
303 } 303 }
304 gSavedSettings.setBOOL("BuildBtnState", build_mode); 304 gSavedSettings.setBOOL("BuildBtnState", build_mode);
305 305
306// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-10 (RLVa-1.0.0g)
307 // Called per-frame so this really can't be slow
308 if (rlv_handler_t::isEnabled())
309 {
310 // If we're rez-restricted, we can still edit => allow build floater
311 // If we're edit-restricted, we can still rez => allow build floater
312 childSetEnabled("build_btn", !(gRlvHandler.hasBehaviour(RLV_BHVR_REZ) && gRlvHandler.hasBehaviour(RLV_BHVR_EDIT)) );
313
314 childSetEnabled("map_btn", !gRlvHandler.hasBehaviour(RLV_BHVR_SHOWWORLDMAP) );
315 childSetEnabled("radar_btn", !gRlvHandler.hasBehaviour(RLV_BHVR_SHOWMINIMAP) );
316 childSetEnabled("inventory_btn", !gRlvHandler.hasBehaviour(RLV_BHVR_SHOWINV) );
317 }
318// [/RLVa:KB]
319
306 if (isInVisibleChain()) 320 if (isInVisibleChain())
307 { 321 {
308 updateCommunicateList(); 322 updateCommunicateList();
diff --git a/linden/indra/newview/lltoolpie.cpp b/linden/indra/newview/lltoolpie.cpp
index c2be831..262c349 100644
--- a/linden/indra/newview/lltoolpie.cpp
+++ b/linden/indra/newview/lltoolpie.cpp
@@ -373,22 +373,22 @@ BOOL LLToolPie::pickAndShowMenu(BOOL always_show)
373 //gMutePieMenu->setLabel("Mute"); 373 //gMutePieMenu->setLabel("Mute");
374 } 374 }
375 375
376// gPieAvatar->show(x, y, mPieMouseButtonDown);
376// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | Added: RLVa-0.2.0f 377// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | Added: RLVa-0.2.0f
377#ifdef RLV_EXPERIMENTAL_FARTOUCH_FEEDBACK 378 #ifdef RLV_EXPERIMENTAL_FARTOUCH_FEEDBACK
378 // If we have an empty selection under @fartouch=n don't show the pie menu but play the "operation block" sound 379 // If we have an empty selection under @fartouch=n don't show the pie menu but play the "operation block" sound
379 if ( (!gRlvHandler.hasBehaviour(RLV_BHVR_FARTOUCH)) || (!LLSelectMgr::getInstance()->getSelection()->isEmpty()) ) 380 if ( (!gRlvHandler.hasBehaviour(RLV_BHVR_FARTOUCH)) || (!LLSelectMgr::getInstance()->getSelection()->isEmpty()) )
380 { 381 {
381#endif // RLV_EXPERIMENTAL_FARTOUCH_FEEDBACK 382 #endif // RLV_EXPERIMENTAL_FARTOUCH_FEEDBACK
382 gPieAvatar->show(x, y, mPieMouseButtonDown); 383 gPieAvatar->show(x, y, mPieMouseButtonDown);
383#ifdef RLV_EXPERIMENTAL_FARTOUCH_FEEDBACK 384 #ifdef RLV_EXPERIMENTAL_FARTOUCH_FEEDBACK
384 } 385 }
385 else 386 else
386 { 387 {
387 make_ui_sound("UISndInvalidOp"); 388 make_ui_sound("UISndInvalidOp");
388 } 389 }
389#endif // RLV_EXPERIMENTAL_FARTOUCH_FEEDBACK 390 #endif // RLV_EXPERIMENTAL_FARTOUCH_FEEDBACK
390// [/RLVa:KB] 391// [/RLVa:KB]
391
392 } 392 }
393 else if (object->isAttachment() && !object->isHUDAttachment()) 393 else if (object->isAttachment() && !object->isHUDAttachment())
394 { 394 {
diff --git a/linden/indra/newview/lltoolplacer.cpp b/linden/indra/newview/lltoolplacer.cpp
index ba065b1..d5c4de1 100644
--- a/linden/indra/newview/lltoolplacer.cpp
+++ b/linden/indra/newview/lltoolplacer.cpp
@@ -288,7 +288,7 @@ BOOL LLToolPlacer::addObject( LLPCode pcode, S32 x, S32 y, U8 use_physics )
288 gMessageSystem->addU8Fast(_PREHASH_Material, material); 288 gMessageSystem->addU8Fast(_PREHASH_Material, material);
289 289
290 U32 flags = 0; // not selected 290 U32 flags = 0; // not selected
291 //if (create_selected) 291// if (create_selected)
292// [RLVa:KB] - Checked: 2009-07-04 (RLVa-1.0.0b) | Added: RLVa-1.0.0b 292// [RLVa:KB] - Checked: 2009-07-04 (RLVa-1.0.0b) | Added: RLVa-1.0.0b
293 if ( (create_selected) && (!gRlvHandler.hasBehaviour(RLV_BHVR_EDIT)) ) 293 if ( (create_selected) && (!gRlvHandler.hasBehaviour(RLV_BHVR_EDIT)) )
294// [/RLVa:KB] 294// [/RLVa:KB]
diff --git a/linden/indra/newview/llviewercontrol.cpp b/linden/indra/newview/llviewercontrol.cpp
index 0edb2c4..e1507d4 100644
--- a/linden/indra/newview/llviewercontrol.cpp
+++ b/linden/indra/newview/llviewercontrol.cpp
@@ -485,20 +485,6 @@ bool handleVoiceClientPrefsChanged(const LLSD& newvalue)
485 return true; 485 return true;
486} 486}
487 487
488// [RLVa:KB] - Checked: 2009-08-11 (RLVa-1.0.1h) | Added: RLVa-1.0.1h
489bool rlvHandleEnableLegacyNamingChanged(const LLSD& newvalue)
490{
491 rlv_handler_t::fLegacyNaming = newvalue.asBoolean();
492 return true;
493}
494
495bool rlvHandleShowNameTagsChanged(const LLSD& newvalue)
496{
497 RlvSettings::fShowNameTags = newvalue.asBoolean();
498 return true;
499}
500// [/RLVa:KB]
501
502bool handleMediaDebugLevelChanged(const LLSD& newvalue) 488bool handleMediaDebugLevelChanged(const LLSD& newvalue)
503{ 489{
504 LLMediaManager *mgr = LLMediaManager::getInstance(); 490 LLMediaManager *mgr = LLMediaManager::getInstance();
@@ -521,6 +507,20 @@ bool handleSliderScrollWheelMultiplierChanged(const LLSD& newvalue)
521 return true; 507 return true;
522} 508}
523 509
510// [RLVa:KB] - Checked: 2009-08-11 (RLVa-1.0.1h) | Added: RLVa-1.0.1h
511bool rlvHandleEnableLegacyNamingChanged(const LLSD& newvalue)
512{
513 rlv_handler_t::fLegacyNaming = newvalue.asBoolean();
514 return true;
515}
516
517bool rlvHandleShowNameTagsChanged(const LLSD& newvalue)
518{
519 RlvSettings::fShowNameTags = newvalue.asBoolean();
520 return true;
521}
522// [/RLVa:KB]
523
524//////////////////////////////////////////////////////////////////////////// 524////////////////////////////////////////////////////////////////////////////
525 525
526void settings_setup_listeners() 526void settings_setup_listeners()
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp
index 594694d..c5ce236 100644
--- a/linden/indra/newview/llviewermenu.cpp
+++ b/linden/indra/newview/llviewermenu.cpp
@@ -1424,7 +1424,7 @@ void init_debug_baked_texture_menu(LLMenuGL* menu)
1424 menu->createJumpKeys(); 1424 menu->createJumpKeys();
1425} 1425}
1426 1426
1427// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-1.0.0g 1427// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-1.0.0g
1428void init_debug_rlva_menu(LLMenuGL* menu) 1428void init_debug_rlva_menu(LLMenuGL* menu)
1429{ 1429{
1430 // Debug options 1430 // Debug options
@@ -1710,7 +1710,7 @@ class LLObjectEnableTouch : public view_listener_t
1710 { 1710 {
1711 LLViewerObject* obj = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject(); 1711 LLViewerObject* obj = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
1712 bool new_value = obj && obj->flagHandleTouch(); 1712 bool new_value = obj && obj->flagHandleTouch();
1713// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-10 (RLVa-1.0.0g) | Added: RLVa-0.2.0f 1713// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-10 (RLVa-1.0.0g) | Added: RLVa-0.2.0f
1714 // TODO-RLVa: this code is rather redundant since we'll never get an active selection to show a pie menu for 1714 // TODO-RLVa: this code is rather redundant since we'll never get an active selection to show a pie menu for
1715 if ( (new_value) && (gRlvHandler.hasBehaviour(RLV_BHVR_FARTOUCH)) && ((!obj->isAttachment()) || (!obj->permYouOwner())) && 1715 if ( (new_value) && (gRlvHandler.hasBehaviour(RLV_BHVR_FARTOUCH)) && ((!obj->isAttachment()) || (!obj->permYouOwner())) &&
1716 (dist_vec_squared(gAgent.getPositionAgent(), LLToolPie::getInstance()->getPick().mIntersection) > 1.5f * 1.5f) ) 1716 (dist_vec_squared(gAgent.getPositionAgent(), LLToolPie::getInstance()->getPick().mIntersection) > 1.5f * 1.5f) )
@@ -2525,13 +2525,6 @@ class LLObjectImportUpload : public view_listener_t
2525 2525
2526bool handle_go_to_confirm() 2526bool handle_go_to_confirm()
2527{ 2527{
2528// [RLVa:KB] - Checked: 2009-07-06 (RLVa-1.0.0c)
2529 if ( (rlv_handler_t::isEnabled()) && (gAgent.forwardGrabbed()) && (gRlvHandler.hasLockedAttachment(RLV_LOCK_REMOVE)) )
2530 {
2531 return true;
2532 }
2533// [/RLVa:KB]
2534
2535 std::string action = gSavedSettings.getString("GoAction"); 2528 std::string action = gSavedSettings.getString("GoAction");
2536 LLStringUtil::toLower(action); 2529 LLStringUtil::toLower(action);
2537 2530
@@ -2554,7 +2547,7 @@ bool handle_go_to()
2554 { 2547 {
2555 return true; 2548 return true;
2556 } 2549 }
2557 // [/RLVa:KB] 2550// [/RLVa:KB]
2558 2551
2559 handle_go_to_callback( LLSD(), LLSD(0) ); 2552 handle_go_to_callback( LLSD(), LLSD(0) );
2560 2553
@@ -2672,17 +2665,14 @@ class LLAvatarFreeze : public view_listener_t
2672 std::string fullname = avatar->getFullname(); 2665 std::string fullname = avatar->getFullname();
2673 LLSD payload; 2666 LLSD payload;
2674 payload["avatar_id"] = avatar->getID(); 2667 payload["avatar_id"] = avatar->getID();
2675// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-08 (RLVa-1.0.0e)
2676 if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (!fullname.empty()) )
2677 {
2678 fullname = gRlvHandler.getAnonym(fullname);
2679 }
2680// [/RLVa:KB]
2681 2668
2682 if (!fullname.empty()) 2669 if (!fullname.empty())
2683 { 2670 {
2684 LLSD args; 2671 LLSD args;
2685 args["AVATAR_NAME"] = fullname; 2672// args["AVATAR_NAME"] = fullname;
2673// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e)
2674 args["AVATAR_NAME"] = (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) ? fullname : gRlvHandler.getAnonym(fullname);
2675// [/RLVa:KB]
2686 LLNotifications::instance().add("FreezeAvatarFullname", 2676 LLNotifications::instance().add("FreezeAvatarFullname",
2687 args, 2677 args,
2688 payload, 2678 payload,
@@ -2807,7 +2797,7 @@ class LLAvatarEject : public view_listener_t
2807 LLSD payload; 2797 LLSD payload;
2808 payload["avatar_id"] = avatar->getID(); 2798 payload["avatar_id"] = avatar->getID();
2809 std::string fullname = avatar->getFullname(); 2799 std::string fullname = avatar->getFullname();
2810// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-08 (RLVa-1.0.0e) 2800// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e)
2811 if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (!fullname.empty()) ) 2801 if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (!fullname.empty()) )
2812 { 2802 {
2813 fullname = gRlvHandler.getAnonym(fullname); 2803 fullname = gRlvHandler.getAnonym(fullname);
@@ -4153,10 +4143,10 @@ class LLObjectReturn : public view_listener_t
4153 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 4143 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
4154 { 4144 {
4155 if (LLSelectMgr::getInstance()->getSelection()->isEmpty()) return true; 4145 if (LLSelectMgr::getInstance()->getSelection()->isEmpty()) return true;
4156// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-05 (RLVa-1.0.0b) 4146// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-05 (RLVa-1.0.0b)
4157 if ( (rlv_handler_t::isEnabled()) && (!rlvCanDeleteOrReturn()) ) return true; 4147 if ( (rlv_handler_t::isEnabled()) && (!rlvCanDeleteOrReturn()) ) return true;
4158// [/RLVa:KB] 4148// [/RLVa:KB]
4159 4149
4160 mObjectSelection = LLSelectMgr::getInstance()->getEditSelection(); 4150 mObjectSelection = LLSelectMgr::getInstance()->getEditSelection();
4161 4151
4162 LLNotifications::instance().add("ReturnToOwner", LLSD(), LLSD(), boost::bind(&LLObjectReturn::onReturnToOwner, this, _1, _2)); 4152 LLNotifications::instance().add("ReturnToOwner", LLSD(), LLSD(), boost::bind(&LLObjectReturn::onReturnToOwner, this, _1, _2));
@@ -4873,8 +4863,6 @@ class LLToolsEnableUnlink : public view_listener_t
4873 } 4863 }
4874 4864
4875// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-0.2.0g 4865// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-0.2.0g
4876 // The user might not be allowed to unlink this object due to RLV settings,
4877 // because it would unsit them if they are sitting on the object.
4878 if ( (new_value) && (gRlvHandler.hasBehaviour(RLV_BHVR_UNSIT)) && 4866 if ( (new_value) && (gRlvHandler.hasBehaviour(RLV_BHVR_UNSIT)) &&
4879 (gAgent.getAvatarObject()) && (gAgent.getAvatarObject()->mIsSitting) ) 4867 (gAgent.getAvatarObject()) && (gAgent.getAvatarObject()->mIsSitting) )
4880 { 4868 {
@@ -4896,8 +4884,6 @@ class LLToolsUnlink : public view_listener_t
4896 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 4884 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
4897 { 4885 {
4898// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-0.2.0g 4886// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-0.2.0g
4899 // The user might not be allowed to unlink this object due to RLV settings,
4900 // because it would unsit them if they are sitting on the object.
4901 if ( (gRlvHandler.hasBehaviour(RLV_BHVR_UNSIT)) && (gAgent.getAvatarObject()) && (gAgent.getAvatarObject()->mIsSitting) ) 4887 if ( (gRlvHandler.hasBehaviour(RLV_BHVR_UNSIT)) && (gAgent.getAvatarObject()) && (gAgent.getAvatarObject()->mIsSitting) )
4902 { 4888 {
4903 // Allow if the avie isn't sitting on any of the selected objects 4889 // Allow if the avie isn't sitting on any of the selected objects
@@ -10916,6 +10902,7 @@ class LLAdvancedCheckMaxBuildConstraints : public view_listener_t
10916/////////////// 10902///////////////
10917 10903
10918 10904
10905// [RLVa:KB] - Alternate: Imprudence-1.2.0
10919class RLVaMainToggle : public view_listener_t 10906class RLVaMainToggle : public view_listener_t
10920{ 10907{
10921 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 10908 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
@@ -10935,7 +10922,7 @@ class RLVaMainCheck : public view_listener_t
10935 return true; 10922 return true;
10936 } 10923 }
10937}; 10924};
10938 10925// [/RLVa:KB]
10939 10926
10940 10927
10941//////////////////// 10928////////////////////
@@ -10943,6 +10930,7 @@ class RLVaMainCheck : public view_listener_t
10943//////////////////// 10930////////////////////
10944 10931
10945 10932
10933// [RLVa:KB] - Alternate: Imprudence-1.2.0
10946class RLVaBehaviorsShow : public view_listener_t 10934class RLVaBehaviorsShow : public view_listener_t
10947{ 10935{
10948 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 10936 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
@@ -10951,7 +10939,7 @@ class RLVaBehaviorsShow : public view_listener_t
10951 return true; 10939 return true;
10952 } 10940 }
10953}; 10941};
10954 10942// [/RLVa:KB]
10955 10943
10956 10944
10957static void addMenu(view_listener_t *menu, const char *name) 10945static void addMenu(view_listener_t *menu, const char *name)
@@ -11369,8 +11357,10 @@ void initialize_menus()
11369 addMenu(new LLAdvancedCheckMaxBuildConstraints(), "Advanced.CheckMaxBuildConstraints"); 11357 addMenu(new LLAdvancedCheckMaxBuildConstraints(), "Advanced.CheckMaxBuildConstraints");
11370 11358
11371 // RLVa 11359 // RLVa
11360// [RLVa:KB] - Alternate: Imprudence-1.2.0
11372 addMenu(new RLVaMainToggle(), "RLVa.Main.Toggle"); 11361 addMenu(new RLVaMainToggle(), "RLVa.Main.Toggle");
11373 addMenu(new RLVaMainCheck(), "RLVa.Main.Enabled"); 11362 addMenu(new RLVaMainCheck(), "RLVa.Main.Enabled");
11374 addMenu(new RLVaBehaviorsShow(), "RLVa.Behaviors.Show"); 11363 addMenu(new RLVaBehaviorsShow(), "RLVa.Behaviors.Show");
11364// [/RLVa:KB]
11375 11365
11376} 11366}
diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp
index 7f2504c..af4b8d8 100644
--- a/linden/indra/newview/llviewermessage.cpp
+++ b/linden/indra/newview/llviewermessage.cpp
@@ -151,17 +151,17 @@
151#include "llwindebug.h" // For the invalid message handler 151#include "llwindebug.h" // For the invalid message handler
152#endif 152#endif
153 153
154// [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e)
155#include "llfloateravatarinfo.h"
156extern LLMap< const LLUUID, LLFloaterAvatarInfo* > gAvatarInfoInstances; // Only defined in llfloateravatarinfo.cpp
157// [/RLVa:KB]
158
159//silly spam define D: 154//silly spam define D:
160bool dialogSpamOn; 155bool dialogSpamOn;
161static LLFrameTimer d_spam; 156static LLFrameTimer d_spam;
162std::map< std::string , S32 > lastd_names; 157std::map< std::string , S32 > lastd_names;
163LLDynamicArray< std::string > blacklisted_names; 158LLDynamicArray< std::string > blacklisted_names;
164 159
160// [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e)
161#include "llfloateravatarinfo.h"
162extern LLMap< const LLUUID, LLFloaterAvatarInfo* > gAvatarInfoInstances; // Only defined in llfloateravatarinfo.cpp
163// [/RLVa:KB]
164
165// 165//
166// Constants 166// Constants
167// 167//
@@ -1116,8 +1116,17 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD&
1116 std::string first_name, last_name; 1116 std::string first_name, last_name;
1117 if (gCacheName->getName(mFromID, first_name, last_name)) 1117 if (gCacheName->getName(mFromID, first_name, last_name))
1118 { 1118 {
1119 from_string = std::string("An object named '") + mFromName + "' owned by " + first_name + " " + last_name; 1119// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e)
1120 chatHistory_string = mFromName + " owned by " + first_name + " " + last_name; 1120 std::string full_name = first_name + " " + last_name;
1121 if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (gRlvHandler.isAgentNearby(mFromID)) )
1122 {
1123 full_name = gRlvHandler.getAnonym(full_name);
1124 }
1125 from_string = std::string("An object named '") + mFromName + "' owned by " + full_name;
1126 chatHistory_string = mFromName + " owned by " + full_name;
1127// [/RLVa:KB]
1128 //from_string = std::string("An object named '") + mFromName + "' owned by " + first_name + " " + last_name;
1129 //chatHistory_string = mFromName + " owned by " + first_name + " " + last_name;
1121 } 1130 }
1122 else 1131 else
1123 { 1132 {
@@ -1136,6 +1145,21 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD&
1136 switch(button) 1145 switch(button)
1137 { 1146 {
1138 case IOR_ACCEPT: 1147 case IOR_ACCEPT:
1148// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-10 (RLVa-1.0.0g) | Added: RLVa-0.2.2a
1149 // Only change the inventory offer's destination folder to the shared root if:
1150 // - the user has enabled the feature
1151 // - the inventory offer came from a script (and specifies a folder)
1152 // - the name starts with the prefix [mDesc format (quotes are part of the string): "[OBJECTNAME] ( http://slurl.com/... )"]
1153 if ( (rlv_handler_t::isEnabled()) && (!RlvSettings::getForbidGiveToRLV()) &&
1154 (IM_TASK_INVENTORY_OFFERED == mIM) && (LLAssetType::AT_CATEGORY == mType) && (mDesc.find(RLV_PUTINV_PREFIX) == 1) )
1155 {
1156 LLViewerInventoryCategory* pRlvRoot = gRlvHandler.getSharedRoot();
1157 if (pRlvRoot)
1158 {
1159 mFolderID = pRlvRoot->getUUID();
1160 }
1161 }
1162// [/RLVa:KB]
1139 // ACCEPT. The math for the dialog works, because the accept 1163 // ACCEPT. The math for the dialog works, because the accept
1140 // for inventory_offered, task_inventory_offer or 1164 // for inventory_offered, task_inventory_offer or
1141 // group_notice_inventory is 1 greater than the offer integer value. 1165 // group_notice_inventory is 1 greater than the offer integer value.
@@ -1303,7 +1327,7 @@ void inventory_offer_handler(LLOfferInfo* info, BOOL from_task)
1303 if(indx >= 0) 1327 if(indx >= 0)
1304 { 1328 {
1305 LLStringUtil::truncate(msg, indx); 1329 LLStringUtil::truncate(msg, indx);
1306// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-04 (RLVa-1.0.0a) | Added: RLVa-1.0.0a 1330// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-04 (RLVa-1.0.0a) | Added: RLVa-1.0.0a
1307 // TODO-RLVa: needs revisiting when LL saves open notifications to disk to accept them on the next relog 1331 // TODO-RLVa: needs revisiting when LL saves open notifications to disk to accept them on the next relog
1308 if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) 1332 if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC))
1309 { 1333 {
@@ -1352,6 +1376,13 @@ void inventory_offer_handler(LLOfferInfo* info, BOOL from_task)
1352 std::string first_name, last_name; 1376 std::string first_name, last_name;
1353 if (gCacheName->getName(info->mFromID, first_name, last_name)) 1377 if (gCacheName->getName(info->mFromID, first_name, last_name))
1354 { 1378 {
1379// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e)
1380 if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (gRlvHandler.isAgentNearby(info->mFromID)) )
1381 {
1382 first_name = gRlvHandler.getAnonym(first_name.append(" ").append(last_name));
1383 last_name.clear();
1384 }
1385// [/RLVa:KB]
1355 args["FIRST"] = first_name; 1386 args["FIRST"] = first_name;
1356 args["LAST"] = last_name; 1387 args["LAST"] = last_name;
1357 name_found = TRUE; 1388 name_found = TRUE;
@@ -1371,6 +1402,12 @@ void inventory_offer_handler(LLOfferInfo* info, BOOL from_task)
1371 } 1402 }
1372 else 1403 else
1373 { 1404 {
1405// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e)
1406 if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (gRlvHandler.isAgentNearby(info->mFromID)) )
1407 {
1408 args["NAME"] = gRlvHandler.getAnonym(info->mFromName);
1409 }
1410// [/RLVa:KB]
1374 p.name = "UserGiveItem"; 1411 p.name = "UserGiveItem";
1375 } 1412 }
1376 1413
@@ -1628,11 +1665,11 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
1628 to_id.isNull() ) 1665 to_id.isNull() )
1629 do_auto_response = false; 1666 do_auto_response = false;
1630 1667
1631 // if( do_auto_response ) 1668// if( do_auto_response )
1632 // [RLVa:KB] - Alternate: Emerald-370 1669// [RLVa:KB] - Alternate: Emerald-370
1633 // Emerald specific: auto-response should be blocked if the avie is RLV @sendim=n restricted and the recipient is not an exception 1670 // Emerald specific: auto-response should be blocked if the avie is RLV @sendim=n restricted and the recipient is not an exception
1634 if ( (do_auto_response) && ( (!gRlvHandler.hasBehaviour(RLV_BHVR_SENDIM)) || (gRlvHandler.isException(RLV_BHVR_SENDIM, from_id)) ) ) 1671 if ( (do_auto_response) && ( (!gRlvHandler.hasBehaviour(RLV_BHVR_SENDIM)) || (gRlvHandler.isException(RLV_BHVR_SENDIM, from_id)) ) )
1635 // [/RLVa:KB] 1672// [/RLVa:KB]
1636 { 1673 {
1637 if((dialog == IM_NOTHING_SPECIAL && !is_auto_response) || 1674 if((dialog == IM_NOTHING_SPECIAL && !is_auto_response) ||
1638 (dialog == IM_TYPING_START && gSavedPerAccountSettings.getBOOL("InstantMessageShowOnTyping")) 1675 (dialog == IM_TYPING_START && gSavedPerAccountSettings.getBOOL("InstantMessageShowOnTyping"))
@@ -1860,7 +1897,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
1860 } 1897 }
1861 else if (to_id.isNull()) 1898 else if (to_id.isNull())
1862 { 1899 {
1863// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-08 (RLVa-1.0.0e) 1900// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e)
1864 // Filter region messages that weren't sent by a Linden 1901 // Filter region messages that weren't sent by a Linden
1865 if ( (rlv_handler_t::isEnabled()) && (LLMuteList::getInstance()) && 1902 if ( (rlv_handler_t::isEnabled()) && (LLMuteList::getInstance()) &&
1866 (!LLMuteList::getInstance()->isLinden(name)) && (from_id != gAgent.getID()) ) 1903 (!LLMuteList::getInstance()->isLinden(name)) && (from_id != gAgent.getID()) )
@@ -2160,6 +2197,14 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
2160 } 2197 }
2161 else 2198 else
2162 { 2199 {
2200// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-09-10 (RLVa-1.0.3a)
2201 if ( (rlv_handler_t::isEnabled()) && (dialog == IM_TASK_INVENTORY_OFFERED) &&
2202 (info->mDesc.find(RLV_PUTINV_PREFIX) == 1) && (gRlvHandler.getSharedRoot()) )
2203 {
2204 LLFirstUse::warnRlvGiveToRLV();
2205 }
2206// [/RLVa:KB]
2207
2163 inventory_offer_handler(info, dialog == IM_TASK_INVENTORY_OFFERED); 2208 inventory_offer_handler(info, dialog == IM_TASK_INVENTORY_OFFERED);
2164 } 2209 }
2165 } 2210 }
@@ -2167,13 +2212,23 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
2167 2212
2168 case IM_INVENTORY_ACCEPTED: 2213 case IM_INVENTORY_ACCEPTED:
2169 { 2214 {
2170 args["NAME"] = name; 2215// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e) | Modified: RLVa-0.2.0b
2216 bool fRlvObfuscate = (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) &&
2217 (gRlvHandler.isAgentNearby(from_id)) && (!gAvatarInfoInstances.checkData(from_id));
2218 args["NAME"] = (!fRlvObfuscate) ? name : gRlvHandler.getAnonym(name);
2219// [/RLVa:KB]
2220 //args["NAME"] = name;
2171 LLNotifications::instance().add("InventoryAccepted", args); 2221 LLNotifications::instance().add("InventoryAccepted", args);
2172 break; 2222 break;
2173 } 2223 }
2174 case IM_INVENTORY_DECLINED: 2224 case IM_INVENTORY_DECLINED:
2175 { 2225 {
2176 args["NAME"] = name; 2226// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e) | Modified: RLVa-0.2.0b
2227 bool fRlvObfuscate = (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) &&
2228 (gRlvHandler.isAgentNearby(from_id)) && (!gAvatarInfoInstances.checkData(from_id));
2229 args["NAME"] = (!fRlvObfuscate) ? name : gRlvHandler.getAnonym(name);
2230// [/RLVa:KB]
2231 //args["NAME"] = name;
2177 LLNotifications::instance().add("InventoryDeclined", args); 2232 LLNotifications::instance().add("InventoryDeclined", args);
2178 break; 2233 break;
2179 } 2234 }
@@ -2324,7 +2379,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
2324 return; 2379 return;
2325 } 2380 }
2326 { 2381 {
2327// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-08 (RLVa-1.0.0e) 2382// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e)
2328 // TODO-RLVa: what actually generates this? 2383 // TODO-RLVa: what actually generates this?
2329 if (rlv_handler_t::isEnabled()) 2384 if (rlv_handler_t::isEnabled())
2330 { 2385 {
@@ -2367,6 +2422,27 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
2367 } 2422 }
2368 else 2423 else
2369 { 2424 {
2425// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-07 (RLVa-1.0.0d)
2426 if (rlv_handler_t::isEnabled())
2427 {
2428 // Disallow if: 1) @tplure=n restricted (sender isn't an exception), or 2) @unsit=n restricted and currently sitting
2429 LLVOAvatar* pAvatar = gAgent.getAvatarObject();
2430 if ( ( (gRlvHandler.hasBehaviour(RLV_BHVR_TPLURE)) && (!gRlvHandler.isException(RLV_BHVR_TPLURE, from_id)) ) ||
2431 ( (gRlvHandler.hasBehaviour(RLV_BHVR_UNSIT)) && (pAvatar) && (pAvatar->mIsSitting) ) )
2432 {
2433 rlvSendBusyMessage(from_id, rlv_handler_t::cstrMsgTpLure);
2434 return;
2435 }
2436
2437 // Censor teleport message if: 1) @revcim=n restricted (sender isn't an exception), or 2) @showloc=n restricted
2438 if ( ( (gRlvHandler.hasBehaviour(RLV_BHVR_RECVIM)) && (!gRlvHandler.isException(RLV_BHVR_RECVIM, from_id)) ) ||
2439 (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) )
2440 {
2441 message = rlv_handler_t::cstrHidden;
2442 }
2443 }
2444// [/RLVa:KB]
2445
2370 LLSD args; 2446 LLSD args;
2371 // *TODO:translate -> [FIRST] [LAST] (maybe) 2447 // *TODO:translate -> [FIRST] [LAST] (maybe)
2372 args["NAME"] = name; 2448 args["NAME"] = name;
@@ -2375,7 +2451,21 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
2375 payload["from_id"] = from_id; 2451 payload["from_id"] = from_id;
2376 payload["lure_id"] = session_id; 2452 payload["lure_id"] = session_id;
2377 payload["godlike"] = FALSE; 2453 payload["godlike"] = FALSE;
2378 LLNotifications::instance().add("TeleportOffered", args, payload); 2454 //LLNotifications::instance().add("TeleportOffered", args, payload);
2455
2456// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-07 (RLVa-1.0.0d) | Modified: RLVa-0.2.0b
2457 if ( (rlv_handler_t::isEnabled()) &&
2458 ((gRlvHandler.hasBehaviour(RLV_BHVR_ACCEPTTP)) || (gRlvHandler.isException(RLV_BHVR_ACCEPTTP, from_id))) )
2459 {
2460 gRlvHandler.setCanCancelTp(false);
2461 LLNotifications::instance().forceResponse(LLNotification::Params("TeleportOffered").payload(payload), 0);
2462 }
2463 else
2464 {
2465 LLNotifications::instance().add("TeleportOffered", args, payload);
2466 }
2467// [/RLVa:KB]
2468 //LLNotifications::instance().add("TeleportOffered", args, payload);
2379 } 2469 }
2380 } 2470 }
2381 break; 2471 break;
@@ -2657,8 +2747,9 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
2657 // Make swirly things only for talking objects. (not script debug messages, though) 2747 // Make swirly things only for talking objects. (not script debug messages, though)
2658// if (chat.mSourceType == CHAT_SOURCE_OBJECT 2748// if (chat.mSourceType == CHAT_SOURCE_OBJECT
2659// && chat.mChatType != CHAT_TYPE_DEBUG_MSG) 2749// && chat.mChatType != CHAT_TYPE_DEBUG_MSG)
2660// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) 2750// [RLVa:KB] - Alternate: Snowglobe-1.2.4 | Checked: 2009-07-10 (RLVa-1.0.0g)
2661 // Don't show swirly things for llOwnerSay() chat here because we handle those further down 2751 // Don't show swirly things for llOwnerSay() chat here because we handle those further down
2752 // RELEASE-RLVa: if this code changes, remember to change the code down below as well
2662 if ( (chat.mSourceType == CHAT_SOURCE_OBJECT && chat.mChatType != CHAT_TYPE_DEBUG_MSG) && 2753 if ( (chat.mSourceType == CHAT_SOURCE_OBJECT && chat.mChatType != CHAT_TYPE_DEBUG_MSG) &&
2663 ((!rlv_handler_t::isEnabled()) || (CHAT_TYPE_OWNER != chat.mChatType)) ) 2754 ((!rlv_handler_t::isEnabled()) || (CHAT_TYPE_OWNER != chat.mChatType)) )
2664// [/RLVa:KB] 2755// [/RLVa:KB]
@@ -2985,7 +3076,7 @@ void process_teleport_start(LLMessageSystem *msg, void**)
2985 U32 teleport_flags = 0x0; 3076 U32 teleport_flags = 0x0;
2986 msg->getU32("Info", "TeleportFlags", teleport_flags); 3077 msg->getU32("Info", "TeleportFlags", teleport_flags);
2987 3078
2988 //if (teleport_flags & TELEPORT_FLAGS_DISABLE_CANCEL) 3079// if (teleport_flags & TELEPORT_FLAGS_DISABLE_CANCEL)
2989// [RLVa:KB] - Checked: 2009-07-07 (RLVa-1.0.0d) | Added: RLVa-0.2.0b 3080// [RLVa:KB] - Checked: 2009-07-07 (RLVa-1.0.0d) | Added: RLVa-0.2.0b
2990 if ( (teleport_flags & TELEPORT_FLAGS_DISABLE_CANCEL) || (!gRlvHandler.getCanCancelTp()) ) 3081 if ( (teleport_flags & TELEPORT_FLAGS_DISABLE_CANCEL) || (!gRlvHandler.getCanCancelTp()) )
2991// [/RLVa:KB] 3082// [/RLVa:KB]
@@ -5365,8 +5456,32 @@ void process_script_question(LLMessageSystem *msg, void **user_data)
5365 payload["object_name"] = object_name; 5456 payload["object_name"] = object_name;
5366 payload["owner_name"] = owner_name; 5457 payload["owner_name"] = owner_name;
5367 5458
5459// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-0.2.0e
5460 S32 rlvQuestionsOther = questions;
5461
5462 if ( (rlv_handler_t::isEnabled()) && (gRlvHandler.hasBehaviour(RLV_BHVR_ACCEPTPERMISSION)) )
5463 {
5464 LLViewerObject* pObj = gObjectList.findObject(taskid);
5465 if (pObj)
5466 {
5467 if (pObj->permYouOwner())
5468 {
5469 // PERMISSION_TAKE_CONTROLS and PERMISSION_ATTACH are only auto-granted to objects this avie owns
5470 rlvQuestionsOther &= ~(LSCRIPTRunTimePermissionBits[SCRIPT_PERMISSION_TAKE_CONTROLS] |
5471 LSCRIPTRunTimePermissionBits[SCRIPT_PERMISSION_ATTACH]);
5472 }
5473 }
5474 }
5475
5476 if ( (!caution) && (!rlvQuestionsOther) )
5477 {
5478 LLNotifications::instance().forceResponse(
5479 LLNotification::Params("ScriptQuestion").substitutions(args).payload(payload), 0/*YES*/);
5480 }
5481 else if (gSavedSettings.getBOOL("PermissionsCautionEnabled"))
5482// [/RLVa:KB]
5368 // check whether cautions are even enabled or not 5483 // check whether cautions are even enabled or not
5369 if (gSavedSettings.getBOOL("PermissionsCautionEnabled")) 5484 //if (gSavedSettings.getBOOL("PermissionsCautionEnabled"))
5370 { 5485 {
5371 // display the caution permissions prompt 5486 // display the caution permissions prompt
5372 LLNotifications::instance().add(caution ? "ScriptQuestionCaution" : "ScriptQuestion", args, payload); 5487 LLNotifications::instance().add(caution ? "ScriptQuestionCaution" : "ScriptQuestion", args, payload);
@@ -5697,6 +5812,21 @@ bool handle_lure_callback(const LLSD& notification, const LLSD& response)
5697 5812
5698 if(0 == option) 5813 if(0 == option)
5699 { 5814 {
5815// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-0.2.0b
5816 if (gRlvHandler.hasBehaviour(RLV_BHVR_SENDIM))
5817 {
5818 for (LLSD::array_const_iterator it = notification["payload"]["ids"].beginArray();
5819 it != notification["payload"]["ids"].endArray(); ++it)
5820 {
5821 if (!gRlvHandler.isException(RLV_BHVR_SENDIM, it->asUUID()))
5822 {
5823 text = rlv_handler_t::cstrHidden;
5824 break;
5825 }
5826 }
5827 }
5828// [/RLVa:KB]
5829
5700 LLMessageSystem* msg = gMessageSystem; 5830 LLMessageSystem* msg = gMessageSystem;
5701 msg->newMessageFast(_PREHASH_StartLure); 5831 msg->newMessageFast(_PREHASH_StartLure);
5702 msg->nextBlockFast(_PREHASH_AgentData); 5832 msg->nextBlockFast(_PREHASH_AgentData);
@@ -5729,13 +5859,28 @@ void handle_lure(const LLUUID& invitee)
5729void handle_lure(LLDynamicArray<LLUUID>& ids) 5859void handle_lure(LLDynamicArray<LLUUID>& ids)
5730{ 5860{
5731 LLSD edit_args; 5861 LLSD edit_args;
5732 edit_args["REGION"] = gAgent.getRegion()->getName(); 5862// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-04 (RLVa-1.0.0a)
5863 edit_args["REGION"] = (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) ? gAgent.getRegion()->getName() : rlv_handler_t::cstrHidden;
5864// [/RLVa:KB]
5865 //edit_args["REGION"] = gAgent.getRegion()->getName();
5733 5866
5734 LLSD payload; 5867 LLSD payload;
5735 for (LLDynamicArray<LLUUID>::iterator it = ids.begin(); 5868 for (LLDynamicArray<LLUUID>::iterator it = ids.begin();
5736 it != ids.end(); 5869 it != ids.end();
5737 ++it) 5870 ++it)
5738 { 5871 {
5872// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-07 (RLVa-1.0.0d) | Modified: RLVa-1.0.0a
5873 // Only allow offering teleports if everyone is a @tplure exception or able to map this avie under @showloc=n
5874 if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC))
5875 {
5876 const LLRelationship* pBuddyInfo = LLAvatarTracker::instance().getBuddyInfo(*it);
5877 if ( (!gRlvHandler.isException(RLV_BHVR_TPLURE, *it, RLV_CHECK_PERMISSIVE)) &&
5878 ((!pBuddyInfo) || (!pBuddyInfo->isOnline()) || (!pBuddyInfo->isRightGrantedTo(LLRelationship::GRANT_MAP_LOCATION))) )
5879 {
5880 return;
5881 }
5882 }
5883// [/RLVa:KB]
5739 payload["ids"].append(*it); 5884 payload["ids"].append(*it);
5740 } 5885 }
5741 if (gAgent.isGodlike()) 5886 if (gAgent.isGodlike())
diff --git a/linden/indra/newview/llviewerobject.cpp b/linden/indra/newview/llviewerobject.cpp
index 6e74caf..a854583 100644
--- a/linden/indra/newview/llviewerobject.cpp
+++ b/linden/indra/newview/llviewerobject.cpp
@@ -1419,7 +1419,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
1419 coloru.mV[3] = 255 - coloru.mV[3]; 1419 coloru.mV[3] = 255 - coloru.mV[3];
1420 mText->setColor(LLColor4(coloru)); 1420 mText->setColor(LLColor4(coloru));
1421 mText->setStringUTF8(temp_string); 1421 mText->setStringUTF8(temp_string);
1422// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-09 (RLVa-1.0.0f) | Added: RLVa-1.0.0f 1422// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-09 (RLVa-1.0.0f) | Added: RLVa-1.0.0f
1423 if (rlv_handler_t::isEnabled()) 1423 if (rlv_handler_t::isEnabled())
1424 { 1424 {
1425 mText->setObjectText(temp_string); 1425 mText->setObjectText(temp_string);
diff --git a/linden/indra/newview/llviewertexteditor.cpp b/linden/indra/newview/llviewertexteditor.cpp
index cee346e..0e16282 100644
--- a/linden/indra/newview/llviewertexteditor.cpp
+++ b/linden/indra/newview/llviewertexteditor.cpp
@@ -1387,7 +1387,7 @@ BOOL LLViewerTextEditor::openEmbeddedItem(LLInventoryItem* item, llwchar wc)
1387 1387
1388void LLViewerTextEditor::openEmbeddedTexture( LLInventoryItem* item, llwchar wc ) 1388void LLViewerTextEditor::openEmbeddedTexture( LLInventoryItem* item, llwchar wc )
1389{ 1389{
1390// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-10-13 (RLVa-1.0.5c) | Added: RLVa-1.0.5c 1390// [RLVa:KB] - Checked: 2009-10-13 (RLVa-1.0.5c) | Added: RLVa-1.0.5c
1391 if (gRlvHandler.hasBehaviour(RLV_BHVR_VIEWTEXTURE)) 1391 if (gRlvHandler.hasBehaviour(RLV_BHVR_VIEWTEXTURE))
1392 { 1392 {
1393 return; 1393 return;
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp
index f3eec54..513d43c 100644
--- a/linden/indra/newview/llvoavatar.cpp
+++ b/linden/indra/newview/llvoavatar.cpp
@@ -93,10 +93,12 @@
93#else 93#else
94#include "boost/lexical_cast.hpp" 94#include "boost/lexical_cast.hpp"
95#endif 95#endif
96#include "hippoLimits.h"// getMaxPrimScale
97
96// [RLVa:KB] 98// [RLVa:KB]
97#include "llstartup.h" 99#include "llstartup.h"
98// [/RLVa:KB] 100// [/RLVa:KB]
99#include "hippoLimits.h"// getMaxPrimScale 101
100using namespace LLVOAvatarDefines; 102using namespace LLVOAvatarDefines;
101 103
102//----------------------------------------------------------------------------- 104//-----------------------------------------------------------------------------
@@ -3626,30 +3628,33 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
3626 || is_appearance != mNameAppearance || client.length() != 0) 3628 || is_appearance != mNameAppearance || client.length() != 0)
3627 { 3629 {
3628 std::string line; 3630 std::string line;
3629 3631// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e) | Added: RLVa-0.2.0b
3630 if (mRenderGroupTitles && title && title->getString() && title->getString()[0] != '\0') 3632 if (!fRlvShowNames)
3631 { 3633 {
3632 line += title->getString(); 3634// [/RLVa:KB]
3633 //LLStringFn::replace_ascii_controlchars(line,LL_UNKNOWN_CHAR); IMP-136 -- McCabe 3635 if (mRenderGroupTitles && title && title->getString() && title->getString()[0] != '\0')
3634 line += "\n"; 3636 {
3635 line += firstname->getString(); 3637 line += title->getString();
3638 //LLStringFn::replace_ascii_controlchars(line,LL_UNKNOWN_CHAR); IMP-136 -- McCabe
3639 line += "\n";
3640 line += firstname->getString();
3641 }
3642 else
3643 {
3644 line += firstname->getString();
3645 }
3646
3647 line += " ";
3648 line += lastname->getString();
3649// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e) | Added: RLVa-0.2.0b
3636 } 3650 }
3637 else 3651 else
3638 { 3652 {
3639 line += firstname->getString(); 3653 line = gRlvHandler.getAnonym(line.assign(firstname->getString()).append(" ").append(lastname->getString()));
3640 }
3641
3642 line += " ";
3643 line += lastname->getString();
3644
3645// [RLVa:KB]
3646 if (fRlvShowNames)
3647 {
3648 // User is not allowed to see who it is, due to RLV settings.
3649 line = gRlvHandler.getAnonym(line);
3650 } 3654 }
3651// [/RLVa:KB] 3655// [/RLVa:KB]
3652 3656
3657
3653 BOOL need_comma = FALSE; 3658 BOOL need_comma = FALSE;
3654 3659
3655 bool show_client = client.length() != 0 && gSavedSettings.getBOOL("ShowClientNameTag"); 3660 bool show_client = client.length() != 0 && gSavedSettings.getBOOL("ShowClientNameTag");
diff --git a/linden/indra/newview/llworldmapview.cpp b/linden/indra/newview/llworldmapview.cpp
index c10faa5..2e28d18 100644
--- a/linden/indra/newview/llworldmapview.cpp
+++ b/linden/indra/newview/llworldmapview.cpp
@@ -1246,13 +1246,16 @@ BOOL LLWorldMapView::handleToolTip( S32 x, S32 y, std::string& msg, LLRect* stic
1246 { 1246 {
1247 LLViewerRegion *region = gAgent.getRegion(); 1247 LLViewerRegion *region = gAgent.getRegion();
1248 1248
1249// std::string message =
1250// llformat("%s (%s)",
1251// info->mName.c_str(),
1252// LLViewerRegion::accessToString(info->mAccess).c_str());
1253// [RLVa:KB] - Alternate: Snowglobe-1.0 | Checked: 2009-07-04 (RLVa-1.0.0a)
1249 std::string message = 1254 std::string message =
1250 llformat("%s (%s)", 1255 llformat("%s (%s)",
1251 //info->mName.c_str(), 1256 (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) ? info->mName.c_str() : rlv_handler_t::cstrHidden.c_str(),
1252// [RLVa:KB] - Alternate: Snowglobe-1.0 | Checked: 2009-07-04 (RLVa-1.0.0a)
1253 (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) ? info->mName.c_str() : rlv_handler_t::cstrHidden.c_str(),
1254// [/RLVa:KB]
1255 LLViewerRegion::accessToString(info->mAccess).c_str()); 1257 LLViewerRegion::accessToString(info->mAccess).c_str());
1258// [/RLVa:KB]
1256 1259
1257 if (info->mAccess != SIM_ACCESS_DOWN) 1260 if (info->mAccess != SIM_ACCESS_DOWN)
1258 { 1261 {
diff --git a/linden/indra/newview/panelradar.cpp b/linden/indra/newview/panelradar.cpp
index c5fc3db..b323a77 100644
--- a/linden/indra/newview/panelradar.cpp
+++ b/linden/indra/newview/panelradar.cpp
@@ -47,6 +47,7 @@
47#include "llscrolllistctrl.h" 47#include "llscrolllistctrl.h"
48#include "lltracker.h" 48#include "lltracker.h"
49#include "lluictrlfactory.h" 49#include "lluictrlfactory.h"
50#include "llviewercontrol.h"
50#include "llviewerobjectlist.h" 51#include "llviewerobjectlist.h"
51#include "llviewermenu.h" 52#include "llviewermenu.h"
52#include "llviewermessage.h" 53#include "llviewermessage.h"
@@ -291,12 +292,12 @@ void PanelRadar::updateRadarDisplay()
291 element["id"] = entry->getID(); 292 element["id"] = entry->getID();
292 element["columns"][0]["column"] = "avatar_name"; 293 element["columns"][0]["column"] = "avatar_name";
293 element["columns"][0]["type"] = "text"; 294 element["columns"][0]["type"] = "text";
295// element["columns"][0]["value"] = typing + entry->getName() + " " + mute_text;
294// [RLVa:KB] - Alternate: Imprudence-1.2.0 296// [RLVa:KB] - Alternate: Imprudence-1.2.0
295 //element["columns"][0]["value"] = typing + entry->getName() + " " + mute_text; 297 element["columns"][0]["value"] =
296 std::string fullname = (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) ? 298 (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES))
297 gRlvHandler.getAnonym(fullname) : 299 ? gRlvHandler.getAnonym(entry->getName())
298 typing + entry->getName() + " " + mute_text; 300 : typing + entry->getName() + " " + mute_text;
299 element["columns"][0]["value"] = fullname;
300// [/RLVa:KB] 301// [/RLVa:KB]
301 element["columns"][1]["column"] = "avatar_distance"; 302 element["columns"][1]["column"] = "avatar_distance";
302 element["columns"][1]["type"] = "text"; 303 element["columns"][1]["type"] = "text";
diff --git a/linden/indra/newview/rlvdefines.h b/linden/indra/newview/rlvdefines.h
index 3785b0a..21d7105 100644
--- a/linden/indra/newview/rlvdefines.h
+++ b/linden/indra/newview/rlvdefines.h
@@ -71,7 +71,7 @@ const S32 RLVa_VERSION_BUILD = 4;
71 // Uncomment to enable the Advanced / RLVa / Unit Tests menu (non-public) 71 // Uncomment to enable the Advanced / RLVa / Unit Tests menu (non-public)
72 //#define RLV_DEBUG_TESTS 72 //#define RLV_DEBUG_TESTS
73#else 73#else
74 // Uncomment if you want extended debugging information on release builds 74 // Uncomment if you want extended debugging information in release builds
75 //#define RLV_DEBUG 75 //#define RLV_DEBUG
76 // Don't halt execution on errors in release 76 // Don't halt execution on errors in release
77 #define RLV_ERRS LL_WARNS("RLV") 77 #define RLV_ERRS LL_WARNS("RLV")
@@ -82,7 +82,7 @@ const S32 RLVa_VERSION_BUILD = 4;
82#define RLV_ROOT_FOLDER "#RLV" 82#define RLV_ROOT_FOLDER "#RLV"
83#define RLV_CMD_PREFIX '@' 83#define RLV_CMD_PREFIX '@'
84#define RLV_PUTINV_PREFIX "#RLV/~" 84#define RLV_PUTINV_PREFIX "#RLV/~"
85#define RLV_SETROT_OFFSET F_PI_BY_TWO // @setrot is off by 90° with the rest of SL 85#define RLV_SETROT_OFFSET F_PI_BY_TWO // @setrot is off by 90° with the rest of SL
86 86
87#define RLV_FOLDER_FLAG_NOSTRIP "nostrip" 87#define RLV_FOLDER_FLAG_NOSTRIP "nostrip"
88#define RLV_FOLDER_PREFIX_HIDDEN '.' 88#define RLV_FOLDER_PREFIX_HIDDEN '.'
diff --git a/linden/indra/newview/rlvextensions.cpp b/linden/indra/newview/rlvextensions.cpp
index 769d3cc..f31c62e 100644
--- a/linden/indra/newview/rlvextensions.cpp
+++ b/linden/indra/newview/rlvextensions.cpp
@@ -97,7 +97,7 @@ BOOL RlvExtGetSet::processCommand(const LLUUID& idObj, const RlvCommand& rlvCmd)
97 F32 nAngle = 0.0f; 97 F32 nAngle = 0.0f;
98 if (LLStringUtil::convertToF32(rlvCmd.getOption(), nAngle)) 98 if (LLStringUtil::convertToF32(rlvCmd.getOption(), nAngle))
99 { 99 {
100 nAngle = RLV_SETROT_OFFSET - nAngle; 100 nAngle += RLV_SETROT_OFFSET;
101 101
102 gAgent.startCameraAnimation(); 102 gAgent.startCameraAnimation();
103 103
diff --git a/linden/indra/newview/rlvhandler.cpp b/linden/indra/newview/rlvhandler.cpp
index 68453af..904ed37 100644
--- a/linden/indra/newview/rlvhandler.cpp
+++ b/linden/indra/newview/rlvhandler.cpp
@@ -31,6 +31,10 @@
31#include "rlvextensions.h" 31#include "rlvextensions.h"
32#include "rlvhandler.h" 32#include "rlvhandler.h"
33 33
34// Only defined in llinventorybridge.cpp
35#if RLV_TARGET < RLV_MAKE_TARGET(1, 23, 0) // Version: 1.22.11
36 void confirm_replace_attachment_rez(S32 option, void* user_data);
37#endif
34// Only defined in llinventorymodel.cpp 38// Only defined in llinventorymodel.cpp
35extern const char* NEW_CATEGORY_NAME; 39extern const char* NEW_CATEGORY_NAME;
36 40
@@ -112,7 +116,7 @@ static bool rlvParseNotifyOption(const std::string& strOption, S32& nChannel, st
112 116
113// Checked: 2009-08-04 (RLVa-1.0.1d) | Modified: RLVa-1.0.1d 117// Checked: 2009-08-04 (RLVa-1.0.1d) | Modified: RLVa-1.0.1d
114RlvHandler::RlvHandler() 118RlvHandler::RlvHandler()
115 : m_fCanCancelTp(true), m_idCurObject(LLUUID::null), m_pCurCommand(NULL), m_pGCTimer(NULL), m_pWLSnapshot(NULL), m_pBhvrNotify(NULL) 119 : m_fCanCancelTp(false), m_idCurObject(LLUUID::null), m_pCurCommand(NULL), m_pGCTimer(NULL), m_pWLSnapshot(NULL), m_pBhvrNotify(NULL)
116{ 120{
117 // Array auto-initialization to 0 is non-standard? (Compiler warning in VC-8.0) 121 // Array auto-initialization to 0 is non-standard? (Compiler warning in VC-8.0)
118 memset(m_LayersAdd, 0, sizeof(S16) * WT_COUNT); 122 memset(m_LayersAdd, 0, sizeof(S16) * WT_COUNT);
@@ -596,8 +600,13 @@ BOOL RlvHandler::processAddCommand(const LLUUID& uuid, const RlvCommand& rlvCmd)
596 case RLV_BHVR_SHOWMINIMAP: // @showminimap=n - Checked: 2009-07-05 (RLVa-1.0.0c) 600 case RLV_BHVR_SHOWMINIMAP: // @showminimap=n - Checked: 2009-07-05 (RLVa-1.0.0c)
597 { 601 {
598 // Simulate clicking the Minimap button [see LLToolBar::onClickRadar()] 602 // Simulate clicking the Minimap button [see LLToolBar::onClickRadar()]
599 if (LLFloaterMap::instanceVisible()) 603 #if RLV_TARGET < RLV_MAKE_TARGET(1, 23, 0) // Version: 1.22.11
604 if (gFloaterMap->getVisible())
605 LLFloaterMap::toggle(NULL);
606 #else // Version: 1.23.4
607 if (LLFloaterMap::instanceVisible())
600 LLFloaterMap::hideInstance(); 608 LLFloaterMap::hideInstance();
609 #endif
601 } 610 }
602 break; 611 break;
603 #ifdef RLV_EXTENSION_STARTLOCATION 612 #ifdef RLV_EXTENSION_STARTLOCATION
@@ -1097,8 +1106,8 @@ BOOL RlvHandler::processReplyCommand(const LLUUID& uuid, const RlvCommand& rlvCm
1097 1106
1098 const EWearableType layerTypes[] = 1107 const EWearableType layerTypes[] =
1099 { 1108 {
1100 WT_GLOVES, WT_JACKET, WT_PANTS, WT_SHIRT, WT_SHOES, WT_SKIRT, WT_ALPHA, WT_TATTOO, WT_SOCKS, 1109 WT_GLOVES, WT_JACKET, WT_PANTS, WT_SHIRT, WT_SHOES, WT_SKIRT, WT_SOCKS,
1101 WT_UNDERPANTS, WT_UNDERSHIRT, WT_SKIN, WT_EYES, WT_HAIR, WT_SHAPE 1110 WT_UNDERPANTS, WT_UNDERSHIRT, WT_SKIN, WT_EYES, WT_HAIR, WT_SHAPE, WT_ALPHA, WT_TATTOO
1102 }; 1111 };
1103 1112
1104 #ifdef RLV_EXPERIMENTAL_COMPOSITE_FOLDING 1113 #ifdef RLV_EXPERIMENTAL_COMPOSITE_FOLDING
@@ -1601,8 +1610,8 @@ void RlvHandler::filterNames(std::string& strUTF8Text) const
1601 // -> the cost of multi string matching them all at once seems to be about the same as calling rlvStringReplace 1610 // -> the cost of multi string matching them all at once seems to be about the same as calling rlvStringReplace
1602 // twice so that would be a tremendous gain (and we'd get first name and word matching for free) 1611 // twice so that would be a tremendous gain (and we'd get first name and word matching for free)
1603 #if RLV_TARGET < RLV_MAKE_TARGET(1, 23, 0) // Version: 1.22.11 1612 #if RLV_TARGET < RLV_MAKE_TARGET(1, 23, 0) // Version: 1.22.11
1604 for (LLWorld::region_list_t::const_iterator itRegion = LLWorld::getInstance()->getRegionList().begin(); 1613 for (LLWorld::region_list_t::const_iterator itRegion = LLWorld::getInstance()->mActiveRegionList.begin();
1605 itRegion != LLWorld::getInstance()->getRegionList().end(); ++itRegion) 1614 itRegion != LLWorld::getInstance()->mActiveRegionList.end(); ++itRegion)
1606 { 1615 {
1607 LLViewerRegion* pRegion = *itRegion; 1616 LLViewerRegion* pRegion = *itRegion;
1608 1617
@@ -1688,8 +1697,8 @@ bool RlvHandler::redirectChatOrEmote(const std::string& strUTF8Text) const
1688BOOL RlvHandler::isAgentNearby(const LLUUID& uuid) const 1697BOOL RlvHandler::isAgentNearby(const LLUUID& uuid) const
1689{ 1698{
1690 #if RLV_TARGET < RLV_MAKE_TARGET(1, 23, 0) // Version: 1.22.11 1699 #if RLV_TARGET < RLV_MAKE_TARGET(1, 23, 0) // Version: 1.22.11
1691 for (LLWorld::region_list_t::const_iterator itRegion = LLWorld::getInstance()->getRegionList().begin(); 1700 for (LLWorld::region_list_t::const_iterator itRegion = LLWorld::getInstance()->mActiveRegionList.begin();
1692 itRegion != LLWorld::getInstance()->getRegionList().end(); ++itRegion) 1701 itRegion != LLWorld::getInstance()->mActiveRegionList.end(); ++itRegion)
1693 { 1702 {
1694 LLViewerRegion* pRegion = *itRegion; 1703 LLViewerRegion* pRegion = *itRegion;
1695 1704
diff --git a/linden/indra/newview/rlvhelper.cpp b/linden/indra/newview/rlvhelper.cpp
index 67ffbe2..f509a43 100644
--- a/linden/indra/newview/rlvhelper.cpp
+++ b/linden/indra/newview/rlvhelper.cpp
@@ -1,7 +1,6 @@
1#include "llviewerprecompiledheaders.h" 1#include "llviewerprecompiledheaders.h"
2#include "llagent.h" 2#include "llagent.h"
3#include "llfloaterwindlight.h" 3#include "llfloaterwindlight.h"
4#include "llinventoryview.h"
5#include "llviewerobject.h" 4#include "llviewerobject.h"
6#include "llviewerstats.h" 5#include "llviewerstats.h"
7#include "llviewerwindow.h" 6#include "llviewerwindow.h"
@@ -12,12 +11,6 @@
12#include "rlvevent.h" 11#include "rlvevent.h"
13#include "rlvhandler.h" 12#include "rlvhandler.h"
14 13
15// Only defined in llinventorybridge.cpp
16#if RLV_TARGET < RLV_MAKE_TARGET(1, 23, 0) // Version: 1.22.11
17 #include "llinventorybridge.h"
18 void confirm_replace_attachment_rez(S32 option, void* user_data);
19#endif
20
21// ============================================================================ 14// ============================================================================
22// Static variable initialization 15// Static variable initialization
23// 16//
diff --git a/linden/indra/newview/skins/default/xui/en-us/notifications.xml b/linden/indra/newview/skins/default/xui/en-us/notifications.xml
index 8eb2233..108728d 100644
--- a/linden/indra/newview/skins/default/xui/en-us/notifications.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/notifications.xml
@@ -56,6 +56,20 @@ Always choose this option
56 </form> 56 </form>
57</template> 57</template>
58 58
59<template name="okcancelbuttonscanceldefault">
60 <form>
61 <button
62 index="0"
63 name="OK"
64 text="$yestext"/>
65 <button
66 default="true"
67 index="1"
68 name="Cancel"
69 text="$notext"/>
70 </form>
71</template>
72
59<template name="okcancelignore"> 73<template name="okcancelignore">
60 <form> 74 <form>
61 <button 75 <button
@@ -6369,6 +6383,40 @@ You have begun playing media. Media can set to play automatically in the prefer
6369</notification> 6383</notification>
6370 6384
6371<notification 6385<notification
6386 icon="notify.tga"
6387 name="FirstRLVDetach"
6388 type="notify">
6389One of your attachments was made nondetachable using Restrained Life.
6390Please note that this also disables the &apos;Wear&apos; option on all prim attachments in your inventory unless they are properly named.
6391
6392For more information search for &apos;Restrained Life&apos; on the SL wiki.
6393</notification>
6394
6395<notification
6396 icon="notify.tga"
6397 name="FirstRLVFartouch"
6398 type="notify">
6399You have been fartouch restricted: you will be unable to touch objects farther than 1.5m from your avatar until the restriction is lifted.
6400
6401Tip: if an object is out of range the mouse cursor will not change as you hover over it and you'll hear an error sound if you try to right-click it.
6402</notification>
6403
6404<notification
6405 icon="alertmodal.tga"
6406 name="FirstRLVGiveToRLV"
6407 type="alertmodal">
6408Folders starting with &apos;#RLV/~&apos; can automatically be placed under your #RLV shared folder after you accept the inventory offer.
6409
6410Please note that - if enabled - the accepted inventory items will instantly be available to scripts and will have full use of the RLV API which may cause unexpected or undesirable situations.
6411
6412Do you want to enable this feature?
6413 <usetemplate
6414 name="okcancelbuttonscanceldefault"
6415 notext="No"
6416 yestext="Yes"/>
6417</notification>
6418
6419<notification
6372 icon="notifytip.tga" 6420 icon="notifytip.tga"
6373 name="MaxListSelectMessage" 6421 name="MaxListSelectMessage"
6374 type="notifytip"> 6422 type="notifytip">