diff options
32 files changed, 993 insertions, 250 deletions
diff --git a/linden/indra/llrender/llglimmediate.cpp b/linden/indra/llrender/llglimmediate.cpp deleted file mode 100644 index 17c2182..0000000 --- a/linden/indra/llrender/llglimmediate.cpp +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #error This file has been renamed llrender.cpp | ||
diff --git a/linden/indra/llrender/llglimmediate.h b/linden/indra/llrender/llglimmediate.h deleted file mode 100644 index 4a7a0eb..0000000 --- a/linden/indra/llrender/llglimmediate.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #error This file has been renamed llrender.h | ||
diff --git a/linden/indra/llui/llcombobox.cpp b/linden/indra/llui/llcombobox.cpp index ce75f03..be34325 100644 --- a/linden/indra/llui/llcombobox.cpp +++ b/linden/indra/llui/llcombobox.cpp | |||
@@ -213,6 +213,21 @@ LLView* LLComboBox::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory * | |||
213 | combo_box->selectFirstItem(); | 213 | combo_box->selectFirstItem(); |
214 | } | 214 | } |
215 | 215 | ||
216 | const std::string& control_name = combo_box->getControlName(); | ||
217 | if (!control_name.empty()) | ||
218 | { | ||
219 | LLControlVariable* control = combo_box->findControl(control_name); | ||
220 | if (control != NULL) | ||
221 | { | ||
222 | combo_box->setValue( control->getValue() ); | ||
223 | } | ||
224 | else | ||
225 | { | ||
226 | llwarns << "combo_box \"" << name << "\" has control_name \"" | ||
227 | << control_name << "\", but control is NULL." << llendl; | ||
228 | } | ||
229 | } | ||
230 | |||
216 | return combo_box; | 231 | return combo_box; |
217 | } | 232 | } |
218 | 233 | ||
@@ -244,6 +259,7 @@ void LLComboBox::onCommit() | |||
244 | mTextEntry->setValue(getSimple()); | 259 | mTextEntry->setValue(getSimple()); |
245 | mTextEntry->setTentative(FALSE); | 260 | mTextEntry->setTentative(FALSE); |
246 | } | 261 | } |
262 | setControlValue( getValue() ); | ||
247 | LLUICtrl::onCommit(); | 263 | LLUICtrl::onCommit(); |
248 | } | 264 | } |
249 | 265 | ||
diff --git a/linden/indra/llui/llview.h b/linden/indra/llui/llview.h index 539adea..7e09dfa 100644 --- a/linden/indra/llui/llview.h +++ b/linden/indra/llui/llview.h | |||
@@ -488,7 +488,7 @@ public: | |||
488 | // did we find *something* with that name? | 488 | // did we find *something* with that name? |
489 | if (child) | 489 | if (child) |
490 | { | 490 | { |
491 | llwarns << "Found child named " << name << " but of wrong type " << typeid(child).name() << ", expecting " << typeid(T).name() << llendl; | 491 | LL_DEBUGS("View") << "Found child named " << name << " but of wrong type " << typeid(child).name() << ", expecting " << typeid(T).name() << LL_ENDL; |
492 | } | 492 | } |
493 | if (create_if_missing) | 493 | if (create_if_missing) |
494 | { | 494 | { |
@@ -515,7 +515,7 @@ public: | |||
515 | std::string xml_tag = LLWidgetClassRegistry::getInstance()->getTag<T>(); | 515 | std::string xml_tag = LLWidgetClassRegistry::getInstance()->getTag<T>(); |
516 | if (xml_tag.empty()) | 516 | if (xml_tag.empty()) |
517 | { | 517 | { |
518 | llwarns << "No xml tag registered for this class " << llendl; | 518 | LL_DEBUGS("View") << "No xml tag registered for this class " << LL_ENDL; |
519 | return NULL; | 519 | return NULL; |
520 | } | 520 | } |
521 | // create dummy xml node (<button name="foo"/>) | 521 | // create dummy xml node (<button name="foo"/>) |
@@ -526,13 +526,13 @@ public: | |||
526 | if (widget) | 526 | if (widget) |
527 | { | 527 | { |
528 | // need non-const to update private dummy widget cache | 528 | // need non-const to update private dummy widget cache |
529 | llwarns << "Making dummy " << xml_tag << " named " << name << " in " << getName() << llendl; | 529 | LL_DEBUGS("View") << "Making dummy " << xml_tag << " named " << name << " in " << getName() << LL_ENDL; |
530 | mDummyWidgets.insert(std::make_pair(name, widget)); | 530 | mDummyWidgets.insert(std::make_pair(name, widget)); |
531 | } | 531 | } |
532 | else | 532 | else |
533 | { | 533 | { |
534 | // dynamic cast will fail if T::fromXML only registered for base class | 534 | // dynamic cast will fail if T::fromXML only registered for base class |
535 | llwarns << "Failed to create dummy widget of requested type " << llendl; | 535 | LL_DEBUGS("View") << "Failed to create dummy widget of requested type " << LL_ENDL; |
536 | return NULL; | 536 | return NULL; |
537 | } | 537 | } |
538 | } | 538 | } |
diff --git a/linden/indra/newview/CMakeLists.txt b/linden/indra/newview/CMakeLists.txt index 934eac0..313f0c4 100644 --- a/linden/indra/newview/CMakeLists.txt +++ b/linden/indra/newview/CMakeLists.txt | |||
@@ -77,6 +77,7 @@ set(viewer_SOURCE_FILES | |||
77 | hippoRestRequest.cpp | 77 | hippoRestRequest.cpp |
78 | jcfloater_animation_list.cpp | 78 | jcfloater_animation_list.cpp |
79 | jcfloaterareasearch.cpp | 79 | jcfloaterareasearch.cpp |
80 | lightshare.cpp | ||
80 | llagent.cpp | 81 | llagent.cpp |
81 | llagentaccess.cpp | 82 | llagentaccess.cpp |
82 | llagentdata.cpp | 83 | llagentdata.cpp |
@@ -509,6 +510,7 @@ set(viewer_HEADER_FILES | |||
509 | hippoRestRequest.h | 510 | hippoRestRequest.h |
510 | jcfloater_animation_list.h | 511 | jcfloater_animation_list.h |
511 | jcfloaterareasearch.h | 512 | jcfloaterareasearch.h |
513 | lightshare.h | ||
512 | llagent.h | 514 | llagent.h |
513 | llagentaccess.h | 515 | llagentaccess.h |
514 | llagentdata.h | 516 | llagentdata.h |
diff --git a/linden/indra/newview/app_settings/logcontrol.xml b/linden/indra/newview/app_settings/logcontrol.xml index 570de83..4d3288f 100644 --- a/linden/indra/newview/app_settings/logcontrol.xml +++ b/linden/indra/newview/app_settings/logcontrol.xml | |||
@@ -51,8 +51,10 @@ | |||
51 | <!--<string>AppCache</string>--> | 51 | <!--<string>AppCache</string>--> |
52 | <!--<string>APR</string>--> | 52 | <!--<string>APR</string>--> |
53 | <!--<string>AudioEngine</string>--> | 53 | <!--<string>AudioEngine</string>--> |
54 | <!--<string>BodyPhysics</string>--> | ||
54 | <!--<string>InitInfo</string>--> | 55 | <!--<string>InitInfo</string>--> |
55 | <!--<string>isOwnedSelf</string>--> | 56 | <!--<string>isOwnedSelf</string>--> |
57 | <!--<string>HUDEffect</string>--> | ||
56 | <!--<string>MarkerFile</string>--> | 58 | <!--<string>MarkerFile</string>--> |
57 | <!--<string>MediaImpl</string>--> | 59 | <!--<string>MediaImpl</string>--> |
58 | <!--<string>MediaInfo</string>--> | 60 | <!--<string>MediaInfo</string>--> |
@@ -69,7 +71,7 @@ | |||
69 | <!--<string>Openjpeg</string>--> | 71 | <!--<string>Openjpeg</string>--> |
70 | <!--<string>RLV</string>--> | 72 | <!--<string>RLV</string>--> |
71 | <!--<string>VOAvatar</string>--> | 73 | <!--<string>VOAvatar</string>--> |
72 | 74 | <!--<string>View</string>--> | |
73 | <!--<string>ViewerImages</string>--> | 75 | <!--<string>ViewerImages</string>--> |
74 | <!--<string>Throttle</string>--> | 76 | <!--<string>Throttle</string>--> |
75 | <!--<string>Voice</string>--> | 77 | <!--<string>Voice</string>--> |
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml index 396cf90..9c95b1f 100644 --- a/linden/indra/newview/app_settings/settings.xml +++ b/linden/indra/newview/app_settings/settings.xml | |||
@@ -4,6 +4,28 @@ | |||
4 | 4 | ||
5 | <!-- Imprudence-specific settings --> | 5 | <!-- Imprudence-specific settings --> |
6 | 6 | ||
7 | <key>AllowMUpose</key> | ||
8 | <map> | ||
9 | <key>Comment</key> | ||
10 | <string>Allow MU* pose style in chat and IM (':' works like '/me ')</string> | ||
11 | <key>Persist</key> | ||
12 | <integer>1</integer> | ||
13 | <key>Type</key> | ||
14 | <string>Boolean</string> | ||
15 | <key>Value</key> | ||
16 | <integer>0</integer> | ||
17 | </map> | ||
18 | <key>AutoCloseOOC</key> | ||
19 | <map> | ||
20 | <key>Comment</key> | ||
21 | <string>Auto-close OOC chat (i.e. add \"))\" if not found and \"((\" was used)</string> | ||
22 | <key>Persist</key> | ||
23 | <integer>1</integer> | ||
24 | <key>Type</key> | ||
25 | <string>Boolean</string> | ||
26 | <key>Value</key> | ||
27 | <integer>0</integer> | ||
28 | </map> | ||
7 | <key>AppearanceAnimate</key> | 29 | <key>AppearanceAnimate</key> |
8 | <map> | 30 | <map> |
9 | <key>Comment</key> | 31 | <key>Comment</key> |
@@ -310,6 +332,28 @@ | |||
310 | <key>Value</key> | 332 | <key>Value</key> |
311 | <integer>0</integer> | 333 | <integer>0</integer> |
312 | </map> | 334 | </map> |
335 | <key>LightShareAllowed</key> | ||
336 | <map> | ||
337 | <key>Comment</key> | ||
338 | <string>Allow LightShare (Windlight settings broadcast from the region): Never (0), Ask (1), or Always (2).</string> | ||
339 | <key>Persist</key> | ||
340 | <integer>1</integer> | ||
341 | <key>Type</key> | ||
342 | <string>U32</string> | ||
343 | <key>Value</key> | ||
344 | <integer>0</integer> | ||
345 | </map> | ||
346 | <key>LightShareIgnoreTimer</key> | ||
347 | <map> | ||
348 | <key>Comment</key> | ||
349 | <string>After ignoring a region Windlight settings message, new messages are ignored for this many seconds. The timer starts again each time a message is ignored.</string> | ||
350 | <key>Persist</key> | ||
351 | <integer>1</integer> | ||
352 | <key>Type</key> | ||
353 | <string>F32</string> | ||
354 | <key>Value</key> | ||
355 | <integer>30</integer> | ||
356 | </map> | ||
313 | <key>MapShowAgentCount</key> | 357 | <key>MapShowAgentCount</key> |
314 | <map> | 358 | <map> |
315 | <key>Comment</key> | 359 | <key>Comment</key> |
@@ -447,6 +491,17 @@ | |||
447 | <key>Value</key> | 491 | <key>Value</key> |
448 | <integer>0</integer> | 492 | <integer>0</integer> |
449 | </map> | 493 | </map> |
494 | <key>PrivatePointAtTarget</key> | ||
495 | <map> | ||
496 | <key>Comment</key> | ||
497 | <string>If true, viewer won't show the editing arm motion.</string> | ||
498 | <key>Persist</key> | ||
499 | <integer>1</integer> | ||
500 | <key>Type</key> | ||
501 | <string>Boolean</string> | ||
502 | <key>Value</key> | ||
503 | <integer>0</integer> | ||
504 | </map> | ||
450 | <key>SavedRenderFarClip</key> | 505 | <key>SavedRenderFarClip</key> |
451 | <map> | 506 | <map> |
452 | <key>Comment</key> | 507 | <key>Comment</key> |
@@ -1033,7 +1088,28 @@ | |||
1033 | </map> | 1088 | </map> |
1034 | 1089 | ||
1035 | <!-- Begin: Client Name Tag --> | 1090 | <!-- Begin: Client Name Tag --> |
1036 | 1091 | <key>ShowClientColor</key> | |
1092 | <map> | ||
1093 | <key>Comment</key> | ||
1094 | <string>Show *others* clients specific color in the name tag</string> | ||
1095 | <key>Persist</key> | ||
1096 | <integer>1</integer> | ||
1097 | <key>Type</key> | ||
1098 | <string>Boolean</string> | ||
1099 | <key>Value</key> | ||
1100 | <integer>1</integer> | ||
1101 | </map> | ||
1102 | <key>ShowClientNameHoverTip</key> | ||
1103 | <map> | ||
1104 | <key>Comment</key> | ||
1105 | <string>Show *others* client in the hovertip</string> | ||
1106 | <key>Persist</key> | ||
1107 | <integer>1</integer> | ||
1108 | <key>Type</key> | ||
1109 | <string>Boolean</string> | ||
1110 | <key>Value</key> | ||
1111 | <integer>1</integer> | ||
1112 | </map> | ||
1037 | <key>ShowClientNameTag</key> | 1113 | <key>ShowClientNameTag</key> |
1038 | <map> | 1114 | <map> |
1039 | <key>Comment</key> | 1115 | <key>Comment</key> |
@@ -1045,7 +1121,7 @@ | |||
1045 | <key>Value</key> | 1121 | <key>Value</key> |
1046 | <integer>1</integer> | 1122 | <integer>1</integer> |
1047 | </map> | 1123 | </map> |
1048 | 1124 | ||
1049 | <key>ShowMyClientTagToOthers</key> | 1125 | <key>ShowMyClientTagToOthers</key> |
1050 | <map> | 1126 | <map> |
1051 | <key>Comment</key> | 1127 | <key>Comment</key> |
@@ -1316,32 +1392,6 @@ | |||
1316 | <key>Value</key> | 1392 | <key>Value</key> |
1317 | <integer>0</integer> | 1393 | <integer>0</integer> |
1318 | </map> | 1394 | </map> |
1319 | |||
1320 | <!-- Begin: MUpose --> | ||
1321 | <key>AllowMUpose</key> | ||
1322 | <map> | ||
1323 | <key>Comment</key> | ||
1324 | <string>Allow MU* pose style in chat and IM (with ':' as a synonymous to '/me ')</string> | ||
1325 | <key>Persist</key> | ||
1326 | <integer>1</integer> | ||
1327 | <key>Type</key> | ||
1328 | <string>Boolean</string> | ||
1329 | <key>Value</key> | ||
1330 | <integer>1</integer> | ||
1331 | </map> | ||
1332 | <key>AutoCloseOOC</key> | ||
1333 | <map> | ||
1334 | <key>Comment</key> | ||
1335 | <string>Auto-close OOC chat (i.e. add \"))\" if not found and \"((\" was used)</string> | ||
1336 | <key>Persist</key> | ||
1337 | <integer>1</integer> | ||
1338 | <key>Type</key> | ||
1339 | <string>Boolean</string> | ||
1340 | <key>Value</key> | ||
1341 | <integer>1</integer> | ||
1342 | </map> | ||
1343 | <!-- End: MUpose --> | ||
1344 | |||
1345 | <key>AllowIdleAFK</key> | 1395 | <key>AllowIdleAFK</key> |
1346 | <map> | 1396 | <map> |
1347 | <key>Comment</key> | 1397 | <key>Comment</key> |
@@ -12275,21 +12325,6 @@ | |||
12275 | <key>Value</key> | 12325 | <key>Value</key> |
12276 | <integer>1</integer> | 12326 | <integer>1</integer> |
12277 | </map> | 12327 | </map> |
12278 | |||
12279 | <!-- Begin: Use Serverside Windlight Settings --> | ||
12280 | <key>UseServersideWindlightSettings</key> | ||
12281 | <map> | ||
12282 | <key>Comment</key> | ||
12283 | <string>Whether or not to use Windlight settings presented by the server.</string> | ||
12284 | <key>Persist</key> | ||
12285 | <integer>1</integer> | ||
12286 | <key>Type</key> | ||
12287 | <string>Boolean</string> | ||
12288 | <key>Value</key> | ||
12289 | <integer>1</integer> | ||
12290 | </map> | ||
12291 | <!-- End: Use Serverside Windlight Settings --> | ||
12292 | |||
12293 | <key>UseStartScreen</key> | 12328 | <key>UseStartScreen</key> |
12294 | <map> | 12329 | <map> |
12295 | <key>Comment</key> | 12330 | <key>Comment</key> |
diff --git a/linden/indra/newview/lightshare.cpp b/linden/indra/newview/lightshare.cpp new file mode 100644 index 0000000..b422236 --- /dev/null +++ b/linden/indra/newview/lightshare.cpp | |||
@@ -0,0 +1,406 @@ | |||
1 | /** | ||
2 | * @file lightshare.cpp | ||
3 | * @brief Handler for Meta7 Lightshare (region-side Windlight settings). | ||
4 | * | ||
5 | * Copyright (c) 2010, Tom Grimshaw (Tom Meta) | ||
6 | * Copyright (c) 2010, Jacek Antonelli | ||
7 | * | ||
8 | * The source code in this file ("Source Code") is provided to you | ||
9 | * under the terms of the GNU General Public License, version 2.0 | ||
10 | * ("GPL"). Terms of the GPL can be found in doc/GPL-license.txt in | ||
11 | * this distribution, or online at | ||
12 | * http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
13 | * | ||
14 | * There are special exceptions to the terms and conditions of the GPL as | ||
15 | * it is applied to this Source Code. View the full text of the exception | ||
16 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
17 | * online at | ||
18 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
19 | * | ||
20 | * By copying, modifying or distributing this software, you acknowledge | ||
21 | * that you have read and understood your obligations described above, | ||
22 | * and agree to abide by those obligations. | ||
23 | * | ||
24 | * ALL SOURCE CODE IS PROVIDED "AS IS." THE AUTHOR MAKES NO | ||
25 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
26 | * COMPLETENESS OR PERFORMANCE. | ||
27 | */ | ||
28 | |||
29 | |||
30 | #include "lightshare.h" | ||
31 | |||
32 | #include "linden_common.h" | ||
33 | #include "llviewercontrol.h" | ||
34 | #include "llwaterparammanager.h" | ||
35 | #include "llwaterparamset.h" | ||
36 | #include "llwlparammanager.h" | ||
37 | #include "llwlparamset.h" | ||
38 | #include "message.h" | ||
39 | #include "meta7windlight.h" | ||
40 | |||
41 | |||
42 | const std::string WindlightMessage::sWaterPresetName = "(Region settings)"; | ||
43 | const std::string WindlightMessage::sSkyPresetName = "(Region settings)"; | ||
44 | |||
45 | |||
46 | WindlightMessage* WindlightMessage::sMostRecent = NULL; | ||
47 | LLTimer* WindlightMessage::sIgnoreTimer = new LLTimer(); | ||
48 | bool WindlightMessage::sIgnoreRegion = false; | ||
49 | |||
50 | |||
51 | WindlightMessage::WindlightMessage( LLMessageSystem* msg ) : | ||
52 | mPacket(NULL), | ||
53 | mWater(NULL), | ||
54 | mSky(NULL), | ||
55 | mWaterNormal(NULL), | ||
56 | mIsValid(false) | ||
57 | { | ||
58 | std::string method; | ||
59 | msg->getStringFast(_PREHASH_MethodData, _PREHASH_Method, method); | ||
60 | |||
61 | if( method != "Windlight" ) | ||
62 | { | ||
63 | return; // Wrong message type, somehow. | ||
64 | } | ||
65 | |||
66 | S32 size = msg->getSizeFast(_PREHASH_ParamList, 0, | ||
67 | _PREHASH_Parameter); | ||
68 | |||
69 | if( size < 0 || 250 < size ) | ||
70 | { | ||
71 | return; // Too small or too big. | ||
72 | } | ||
73 | |||
74 | // Unpack and process the message's binary payload. | ||
75 | char buf[250]; | ||
76 | msg->getBinaryDataFast(_PREHASH_ParamList, | ||
77 | _PREHASH_Parameter, | ||
78 | buf, size, 0, 249); | ||
79 | |||
80 | mWater = new LLWaterParamSet(); | ||
81 | mSky = new LLWLParamSet(); | ||
82 | mWaterNormal = new LLUUID(); | ||
83 | |||
84 | process_packet(&buf[0]); | ||
85 | process_water(); | ||
86 | process_sky(); | ||
87 | |||
88 | // *TODO: Actually validate the settings. | ||
89 | mIsValid = true; | ||
90 | } | ||
91 | |||
92 | |||
93 | WindlightMessage::~WindlightMessage() | ||
94 | { | ||
95 | delete mWater; | ||
96 | delete mSky; | ||
97 | delete mWaterNormal; | ||
98 | } | ||
99 | |||
100 | |||
101 | // static | ||
102 | void WindlightMessage::processWindlight(LLMessageSystem* msg, void**) | ||
103 | { | ||
104 | if( gSavedSettings.getU32("UseLightShare") <= LIGHTSHARE_NEVER ) | ||
105 | return; | ||
106 | |||
107 | WindlightMessage* wl = new WindlightMessage(msg); | ||
108 | |||
109 | if( !wl->isValid() ) | ||
110 | return; | ||
111 | |||
112 | std::string water = LLWaterParamManager::instance()->mCurParams.mName; | ||
113 | std::string sky = LLWLParamManager::instance()->mCurParams.mName; | ||
114 | |||
115 | // If they are using region settings already, or LightShare is | ||
116 | // always allowed, just apply the new settings, don't bother asking. | ||
117 | if( gSavedSettings.getU32("UseLightShare") == LIGHTSHARE_ALWAYS || | ||
118 | (sky == sSkyPresetName && water == sWaterPresetName) ) | ||
119 | { | ||
120 | wl->apply(); | ||
121 | delete wl; | ||
122 | return; | ||
123 | } | ||
124 | |||
125 | if( !ignoreTimerHasExpired() ) | ||
126 | { | ||
127 | // The user recently ignored a windlight message, so ignore | ||
128 | // this one too, and restart the timer. | ||
129 | restartIgnoreTimer(); | ||
130 | delete wl; | ||
131 | return; | ||
132 | } | ||
133 | |||
134 | if(sIgnoreRegion) | ||
135 | { | ||
136 | // We are ignoring new settings until user enters a new region. | ||
137 | delete wl; | ||
138 | return; | ||
139 | } | ||
140 | |||
141 | if( gSavedSettings.getU32("UseLightShare") == LIGHTSHARE_ASK && | ||
142 | sMostRecent == NULL ) | ||
143 | { | ||
144 | // No most recent, so store this and create notification | ||
145 | // asking the user whether to apply or not. | ||
146 | sMostRecent = wl; | ||
147 | LLNotifications::instance().add("ConfirmLightShare", LLSD(), LLSD(), | ||
148 | boost::bind(&applyCallback, _1, _2)); | ||
149 | return; | ||
150 | } | ||
151 | else | ||
152 | { | ||
153 | // No new notification (to avoid spamming the user), just | ||
154 | // store this as most recent. | ||
155 | delete sMostRecent; | ||
156 | sMostRecent = wl; | ||
157 | return; | ||
158 | } | ||
159 | } | ||
160 | |||
161 | |||
162 | // static | ||
163 | bool WindlightMessage::applyCallback(const LLSD& notification, | ||
164 | const LLSD& response) | ||
165 | { | ||
166 | S32 option = LLNotification::getSelectedOption(notification, response); | ||
167 | |||
168 | switch(option) | ||
169 | { | ||
170 | case 0:{ | ||
171 | // "Apply" | ||
172 | sMostRecent->apply(); | ||
173 | break; | ||
174 | } | ||
175 | case 1:{ | ||
176 | // "Not Now", ignore until the region stops spamming | ||
177 | restartIgnoreTimer(); | ||
178 | break; | ||
179 | } | ||
180 | case 2:{ | ||
181 | // "Ignore", ignore all until user leaves the region | ||
182 | sIgnoreRegion = true; | ||
183 | break; | ||
184 | } | ||
185 | } | ||
186 | |||
187 | delete sMostRecent; | ||
188 | sMostRecent = NULL; | ||
189 | |||
190 | return false; | ||
191 | } | ||
192 | |||
193 | |||
194 | // static | ||
195 | void WindlightMessage::resetRegion() | ||
196 | { | ||
197 | sIgnoreRegion = false; | ||
198 | } | ||
199 | |||
200 | |||
201 | // static | ||
202 | void WindlightMessage::restartIgnoreTimer() | ||
203 | { | ||
204 | F32 time = gSavedSettings.getF32("LightShareIgnoreTimer"); | ||
205 | sIgnoreTimer->start(); | ||
206 | sIgnoreTimer->setTimerExpirySec( (time < 0) ? 0 : time ); | ||
207 | } | ||
208 | |||
209 | // static | ||
210 | bool WindlightMessage::ignoreTimerHasExpired() | ||
211 | { | ||
212 | return sIgnoreTimer->hasExpired(); | ||
213 | } | ||
214 | |||
215 | |||
216 | bool WindlightMessage::apply() | ||
217 | { | ||
218 | LLWaterParamManager* water_mgr = LLWaterParamManager::instance(); | ||
219 | LLWLParamManager* sky_mgr = LLWLParamManager::instance(); | ||
220 | |||
221 | mWater->mName = sWaterPresetName; | ||
222 | water_mgr->removeParamSet( sWaterPresetName, false ); | ||
223 | water_mgr->addParamSet( sWaterPresetName, *mWater ); | ||
224 | water_mgr->savePreset( sWaterPresetName ); | ||
225 | water_mgr->loadPreset( sWaterPresetName, true ); | ||
226 | water_mgr->setNormalMapID( *mWaterNormal ); | ||
227 | |||
228 | mSky->mName = sSkyPresetName; | ||
229 | sky_mgr->mAnimator.mIsRunning = false; | ||
230 | sky_mgr->mAnimator.mUseLindenTime = false; | ||
231 | sky_mgr->removeParamSet( sSkyPresetName, false ); | ||
232 | sky_mgr->addParamSet( sSkyPresetName, *mSky ); | ||
233 | sky_mgr->savePreset( sSkyPresetName ); | ||
234 | sky_mgr->loadPreset( sSkyPresetName, true ); | ||
235 | |||
236 | return true; | ||
237 | } | ||
238 | |||
239 | |||
240 | bool WindlightMessage::isValid() | ||
241 | { | ||
242 | return mIsValid; | ||
243 | } | ||
244 | |||
245 | |||
246 | void WindlightMessage::process_packet( char* buf ) | ||
247 | { | ||
248 | // *FIXME: Horrible idea, fragile, not byte-order or endian | ||
249 | // safe, no validation, etc. etc. -Jacek | ||
250 | mPacket = (Meta7WindlightPacket*)buf; | ||
251 | } | ||
252 | |||
253 | |||
254 | void WindlightMessage::process_water() | ||
255 | { | ||
256 | mWater->set("waterFogColor", | ||
257 | mPacket->waterColor.red / 256.f, | ||
258 | mPacket->waterColor.green / 256.f, | ||
259 | mPacket->waterColor.blue / 256.f); | ||
260 | |||
261 | mWater->set("waterFogDensity", | ||
262 | pow(2.0f, mPacket->waterFogDensityExponent)); | ||
263 | |||
264 | mWater->set("underWaterFogMod", mPacket->underwaterFogModifier); | ||
265 | |||
266 | mWater->set("normScale", | ||
267 | mPacket->reflectionWaveletScale.X, | ||
268 | mPacket->reflectionWaveletScale.Y, | ||
269 | mPacket->reflectionWaveletScale.Z); | ||
270 | |||
271 | mWater->set("fresnelScale", mPacket->fresnelScale); | ||
272 | mWater->set("fresnelOffset", mPacket->fresnelOffset); | ||
273 | mWater->set("scaleAbove", mPacket->refractScaleAbove); | ||
274 | mWater->set("scaleBelow", mPacket->refractScaleBelow); | ||
275 | mWater->set("blurMultiplier", mPacket->blurMultiplier); | ||
276 | |||
277 | mWater->set("wave1Dir", | ||
278 | mPacket->littleWaveDirection.X, | ||
279 | mPacket->littleWaveDirection.Y); | ||
280 | |||
281 | mWater->set("wave2Dir", | ||
282 | mPacket->bigWaveDirection.X, | ||
283 | mPacket->bigWaveDirection.Y); | ||
284 | |||
285 | |||
286 | // Format a UUID string from a block of raw bytes. Ugh. | ||
287 | std::string uuid = llformat( | ||
288 | "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", | ||
289 | (U8)(mPacket->normalMapTexture[0]), | ||
290 | (U8)(mPacket->normalMapTexture[1]), | ||
291 | (U8)(mPacket->normalMapTexture[2]), | ||
292 | (U8)(mPacket->normalMapTexture[3]), | ||
293 | (U8)(mPacket->normalMapTexture[4]), | ||
294 | (U8)(mPacket->normalMapTexture[5]), | ||
295 | (U8)(mPacket->normalMapTexture[6]), | ||
296 | (U8)(mPacket->normalMapTexture[7]), | ||
297 | (U8)(mPacket->normalMapTexture[8]), | ||
298 | (U8)(mPacket->normalMapTexture[9]), | ||
299 | (U8)(mPacket->normalMapTexture[10]), | ||
300 | (U8)(mPacket->normalMapTexture[11]), | ||
301 | (U8)(mPacket->normalMapTexture[12]), | ||
302 | (U8)(mPacket->normalMapTexture[13]), | ||
303 | (U8)(mPacket->normalMapTexture[14]), | ||
304 | (U8)(mPacket->normalMapTexture[15])); | ||
305 | |||
306 | mWaterNormal->set(uuid); | ||
307 | } | ||
308 | |||
309 | |||
310 | void WindlightMessage::process_sky() | ||
311 | { | ||
312 | mSky->setSunAngle(F_TWO_PI * mPacket->sunMoonPosiiton); | ||
313 | mSky->setEastAngle(F_TWO_PI * mPacket->eastAngle); | ||
314 | |||
315 | mSky->set("sunlight_color", | ||
316 | mPacket->sunMoonColor.red * 3.0f, | ||
317 | mPacket->sunMoonColor.green * 3.0f, | ||
318 | mPacket->sunMoonColor.blue * 3.0f, | ||
319 | mPacket->sunMoonColor.alpha * 3.0f); | ||
320 | |||
321 | mSky->set("ambient", | ||
322 | mPacket->ambient.red * 3.0f, | ||
323 | mPacket->ambient.green * 3.0f, | ||
324 | mPacket->ambient.blue * 3.0f, | ||
325 | mPacket->ambient.alpha * 3.0f); | ||
326 | |||
327 | mSky->set("blue_horizon", | ||
328 | mPacket->horizon.red * 2.0f, | ||
329 | mPacket->horizon.green *2.0f, | ||
330 | mPacket->horizon.blue * 2.0f, | ||
331 | mPacket->horizon.alpha * 2.0f); | ||
332 | |||
333 | mSky->set("blue_density", | ||
334 | mPacket->blueDensity.red * 2.0f, | ||
335 | mPacket->blueDensity.green * 2.0f, | ||
336 | mPacket->blueDensity.blue * 2.0f, | ||
337 | mPacket->blueDensity.alpha * 2.0f); | ||
338 | |||
339 | mSky->set("haze_horizon", | ||
340 | mPacket->hazeHorizon, | ||
341 | mPacket->hazeHorizon, | ||
342 | mPacket->hazeHorizon, | ||
343 | 1.f); | ||
344 | |||
345 | mSky->set("haze_density", | ||
346 | mPacket->hazeDensity, | ||
347 | 0.f, 0.f, 1.f); | ||
348 | |||
349 | mSky->set("cloud_shadow", | ||
350 | mPacket->cloudCoverage, | ||
351 | 0.f, 0.f, 1.f); | ||
352 | |||
353 | mSky->set("density_multiplier", | ||
354 | mPacket->densityMultiplier / 1000.0f, | ||
355 | 0.f, 0.f, 1.f); | ||
356 | |||
357 | mSky->set("distance_multiplier", | ||
358 | mPacket->distanceMultiplier, | ||
359 | 0.f, 0.f, 1.f); | ||
360 | |||
361 | mSky->set("max_y", | ||
362 | (F32)mPacket->maxAltitude, | ||
363 | 0.f, 0.f, 1.f); | ||
364 | |||
365 | mSky->set("cloud_color", | ||
366 | mPacket->cloudColor.red, | ||
367 | mPacket->cloudColor.green, | ||
368 | mPacket->cloudColor.blue, | ||
369 | mPacket->cloudColor.alpha); | ||
370 | |||
371 | mSky->set("cloud_pos_density1", | ||
372 | mPacket->cloudXYDensity.X, | ||
373 | mPacket->cloudXYDensity.Y, | ||
374 | mPacket->cloudXYDensity.Z, | ||
375 | 1.f); | ||
376 | |||
377 | mSky->set("cloud_pos_density2", | ||
378 | mPacket->cloudDetailXYDensity.X, | ||
379 | mPacket->cloudDetailXYDensity.Y, | ||
380 | mPacket->cloudDetailXYDensity.Z, | ||
381 | 1.f); | ||
382 | |||
383 | mSky->set("cloud_scale", | ||
384 | mPacket->cloudScale, | ||
385 | 0.f, 0.f, 1.f); | ||
386 | |||
387 | mSky->set("gamma", | ||
388 | mPacket->sceneGamma, | ||
389 | 0.f, 0.f, 1.f); | ||
390 | |||
391 | mSky->set("glow", | ||
392 | (2 - mPacket->sunGlowSize) * 20, | ||
393 | 0.f, | ||
394 | -mPacket->sunGlowFocus * 5, | ||
395 | 1.f); | ||
396 | |||
397 | mSky->setCloudScrollX(mPacket->cloudScrollX + 10.0f); | ||
398 | mSky->setCloudScrollY(mPacket->cloudScrollY + 10.0f); | ||
399 | |||
400 | mSky->setEnableCloudScrollX(!mPacket->cloudScrollXLock); | ||
401 | mSky->setEnableCloudScrollY(!mPacket->cloudScrollYLock); | ||
402 | |||
403 | mSky->setStarBrightness(mPacket->starBrightness); | ||
404 | } | ||
405 | |||
406 | |||
diff --git a/linden/indra/newview/lightshare.h b/linden/indra/newview/lightshare.h new file mode 100644 index 0000000..e3cccf0 --- /dev/null +++ b/linden/indra/newview/lightshare.h | |||
@@ -0,0 +1,124 @@ | |||
1 | /** | ||
2 | * @file lightshare.h | ||
3 | * @brief WindlightMessage class definition. | ||
4 | * | ||
5 | * Copyright (c) 2010, Jacek Antonelli | ||
6 | * | ||
7 | * The source code in this file ("Source Code") is provided to you | ||
8 | * under the terms of the GNU General Public License, version 2.0 | ||
9 | * ("GPL"). Terms of the GPL can be found in doc/GPL-license.txt in | ||
10 | * this distribution, or online at | ||
11 | * http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
12 | * | ||
13 | * There are special exceptions to the terms and conditions of the GPL as | ||
14 | * it is applied to this Source Code. View the full text of the exception | ||
15 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
16 | * online at | ||
17 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
18 | * | ||
19 | * By copying, modifying or distributing this software, you acknowledge | ||
20 | * that you have read and understood your obligations described above, | ||
21 | * and agree to abide by those obligations. | ||
22 | * | ||
23 | * ALL SOURCE CODE IS PROVIDED "AS IS." THE AUTHOR MAKES NO | ||
24 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
25 | * COMPLETENESS OR PERFORMANCE. | ||
26 | */ | ||
27 | |||
28 | |||
29 | #ifndef LIGHTSHARE_H | ||
30 | #define LIGHTSHARE_H | ||
31 | |||
32 | #include <string> | ||
33 | |||
34 | struct Meta7WindlightPacket; | ||
35 | class LLMessageSystem; | ||
36 | class LLSD; | ||
37 | class LLTimer; | ||
38 | class LLUUID; | ||
39 | class LLWaterParamSet; | ||
40 | class LLWLParamSet; | ||
41 | |||
42 | |||
43 | // Encapsulates a "Windlight" (LightShare) message sent from the | ||
44 | // region, allowing the settings to be applied at a later time. | ||
45 | // | ||
46 | class WindlightMessage | ||
47 | { | ||
48 | public: | ||
49 | |||
50 | // The meanings of the LightShareAllowed user setting. | ||
51 | enum LIGHTSHARE_ALLOWED | ||
52 | { | ||
53 | LIGHTSHARE_NEVER = 0, | ||
54 | LIGHTSHARE_ASK = 1, | ||
55 | LIGHTSHARE_ALWAYS = 2, | ||
56 | }; | ||
57 | |||
58 | // Constructs a new WindlightMessage instance from a GenericMessage | ||
59 | // with the "Windlight" method, such as those sent by a | ||
60 | // Lightshare-enabled OpenSim region. | ||
61 | WindlightMessage( LLMessageSystem* msg ); | ||
62 | |||
63 | ~WindlightMessage(); | ||
64 | |||
65 | // The name of the water preset where the region settings are stored. | ||
66 | static const std::string sWaterPresetName; | ||
67 | |||
68 | // The name of the sky preset where the region settings are stored. | ||
69 | static const std::string sSkyPresetName; | ||
70 | |||
71 | // Message handler for GenericMessage with the "Windlight" method. | ||
72 | // Creates and applies a new WindlightMessage (or prompts user). | ||
73 | static void processWindlight(LLMessageSystem* msg, void**); | ||
74 | |||
75 | // Callback when the user interacts with the notification. | ||
76 | static bool applyCallback(const LLSD& notification, | ||
77 | const LLSD& response); | ||
78 | |||
79 | // Called after the user has entered a new region, to reset the | ||
80 | // "ignore while in this region" state. | ||
81 | static void resetRegion(); | ||
82 | |||
83 | // Applies/activates the Windlight settings from the message. | ||
84 | bool apply(); | ||
85 | |||
86 | // Returns true if the message contains valid Windlight settings. | ||
87 | // (But there's no real validation yet, so this is always true.) | ||
88 | bool isValid(); | ||
89 | |||
90 | |||
91 | protected: | ||
92 | |||
93 | // Restart the timer for temporarily ignoring settings. | ||
94 | static void restartIgnoreTimer(); | ||
95 | |||
96 | // Returns true if the ignore timer has expired (i.e. new settings | ||
97 | // should not be ignored anymore). | ||
98 | static bool ignoreTimerHasExpired(); | ||
99 | |||
100 | |||
101 | private: | ||
102 | |||
103 | static WindlightMessage* sMostRecent; | ||
104 | static LLTimer* sIgnoreTimer; | ||
105 | static bool sIgnoreRegion; | ||
106 | |||
107 | Meta7WindlightPacket* mPacket; | ||
108 | LLWaterParamSet* mWater; | ||
109 | LLWLParamSet* mSky; | ||
110 | LLUUID* mWaterNormal; | ||
111 | bool mIsValid; | ||
112 | |||
113 | // Converts the message's raw bytes into a Meta7WindlightPacket. | ||
114 | void process_packet( char* buf ); | ||
115 | |||
116 | // Constructs a LLWaterParamSet from the Meta7WindlightPacket. | ||
117 | void process_water(); | ||
118 | |||
119 | // Constructs a LLWLParamSet from the Meta7WindlightPacket. | ||
120 | void process_sky(); | ||
121 | |||
122 | }; | ||
123 | |||
124 | #endif | ||
diff --git a/linden/indra/newview/llfilepicker.cpp b/linden/indra/newview/llfilepicker.cpp index d953e45..40b1abb 100644 --- a/linden/indra/newview/llfilepicker.cpp +++ b/linden/indra/newview/llfilepicker.cpp | |||
@@ -1177,7 +1177,7 @@ BOOL LLFilePicker::getSaveFile( ESaveFilter filter, const std::string& filename | |||
1177 | break; | 1177 | break; |
1178 | case FFSAVE_RAW: | 1178 | case FFSAVE_RAW: |
1179 | caption += add_simple_pattern_filter_to_gtkchooser | 1179 | caption += add_simple_pattern_filter_to_gtkchooser |
1180 | (picker, "*.raw", LLTrans::getString("raw_file") + " (*.raw)"); | 1180 | (picker, "*.raw", LLTrans::getString("dot_raw_file") + " (*.raw)"); |
1181 | suggest_ext = ".raw"; | 1181 | suggest_ext = ".raw"; |
1182 | break; | 1182 | break; |
1183 | case FFSAVE_J2C: | 1183 | case FFSAVE_J2C: |
diff --git a/linden/indra/newview/llglsandbox.cpp b/linden/indra/newview/llglsandbox.cpp index e9077a9..3acfbf3 100644 --- a/linden/indra/newview/llglsandbox.cpp +++ b/linden/indra/newview/llglsandbox.cpp | |||
@@ -71,18 +71,6 @@ | |||
71 | 71 | ||
72 | BOOL LLAgent::setLookAt(ELookAtType target_type, LLViewerObject *object, LLVector3 position) | 72 | BOOL LLAgent::setLookAt(ELookAtType target_type, LLViewerObject *object, LLVector3 position) |
73 | { | 73 | { |
74 | if (object && target_type != LOOKAT_TARGET_NONE && gSavedSettings.getBOOL("PrivateLookAtTarget")) | ||
75 | { | ||
76 | target_type = LOOKAT_TARGET_NONE; | ||
77 | object = mAvatarObject; | ||
78 | position.clearVec(); | ||
79 | LLViewerObject* source_obj = mLookAt->getSourceObject(); | ||
80 | if (source_obj) | ||
81 | { | ||
82 | mLookAt->setTargetObject(source_obj); | ||
83 | } | ||
84 | } | ||
85 | |||
86 | if(object && object->isAttachment()) | 74 | if(object && object->isAttachment()) |
87 | { | 75 | { |
88 | LLViewerObject* parent = object; | 76 | LLViewerObject* parent = object; |
@@ -109,18 +97,12 @@ BOOL LLAgent::setLookAt(ELookAtType target_type, LLViewerObject *object, LLVecto | |||
109 | BOOL LLAgent::setPointAt(EPointAtType target_type, LLViewerObject *object, LLVector3 position) | 97 | BOOL LLAgent::setPointAt(EPointAtType target_type, LLViewerObject *object, LLVector3 position) |
110 | { | 98 | { |
111 | // disallow pointing at attachments and avatars | 99 | // disallow pointing at attachments and avatars |
112 | if (object && (object->isAttachment() || object->isAvatar())) | 100 | bool private_pointat = gSavedSettings.getBOOL("PrivatePointAtTarget");//this is the arm motion |
101 | if (object && (object->isAttachment() || object->isAvatar() || private_pointat)) | ||
113 | { | 102 | { |
114 | return FALSE; | 103 | return FALSE; |
115 | } | 104 | } |
116 | 105 | ||
117 | if (object && target_type != POINTAT_TARGET_NONE && gSavedSettings.getBOOL("PrivateLookAtTarget")) | ||
118 | { | ||
119 | target_type = POINTAT_TARGET_NONE; | ||
120 | object = NULL; | ||
121 | position.clearVec(); | ||
122 | } | ||
123 | |||
124 | if(!mPointAt || mPointAt->isDead()) | 106 | if(!mPointAt || mPointAt->isDead()) |
125 | { | 107 | { |
126 | mPointAt = (LLHUDEffectPointAt *)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_POINTAT); | 108 | mPointAt = (LLHUDEffectPointAt *)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_POINTAT); |
diff --git a/linden/indra/newview/llhoverview.cpp b/linden/indra/newview/llhoverview.cpp index 5d59818..8c367ab 100644 --- a/linden/indra/newview/llhoverview.cpp +++ b/linden/indra/newview/llhoverview.cpp | |||
@@ -64,6 +64,7 @@ | |||
64 | #include "llviewerparcelmgr.h" | 64 | #include "llviewerparcelmgr.h" |
65 | #include "llviewerregion.h" | 65 | #include "llviewerregion.h" |
66 | #include "llviewerwindow.h" | 66 | #include "llviewerwindow.h" |
67 | #include "llvoavatar.h" | ||
67 | #include "llglheaders.h" | 68 | #include "llglheaders.h" |
68 | #include "llviewerimagelist.h" | 69 | #include "llviewerimagelist.h" |
69 | //#include "lltoolobjpicker.h" | 70 | //#include "lltoolobjpicker.h" |
@@ -272,6 +273,31 @@ void LLHoverView::updateText() | |||
272 | line.append(LLTrans::getString("TooltipPerson")); | 273 | line.append(LLTrans::getString("TooltipPerson")); |
273 | } | 274 | } |
274 | mText.push_back(line); | 275 | mText.push_back(line); |
276 | |||
277 | if (gSavedSettings.getBOOL("ShowClientNameHoverTip")) | ||
278 | { | ||
279 | LLColor4 color; | ||
280 | std::string client; | ||
281 | LLVOAvatar* avatar = (LLVOAvatar*)hit_object; | ||
282 | if (avatar->isSelf()) | ||
283 | { | ||
284 | client="Client: Imprudence"; | ||
285 | } | ||
286 | else | ||
287 | { | ||
288 | LLVOAvatar::resolveClient(color, client, avatar); | ||
289 | if(client.empty() ||client == "Invalid" || client == "Failure") | ||
290 | { | ||
291 | client = "Client: <not available>"; | ||
292 | } | ||
293 | else | ||
294 | { | ||
295 | client = "Client: " + client; | ||
296 | } | ||
297 | } | ||
298 | mText.push_back(client); | ||
299 | |||
300 | } | ||
275 | } | 301 | } |
276 | else | 302 | else |
277 | { | 303 | { |
diff --git a/linden/indra/newview/llhudeffectbeam.cpp b/linden/indra/newview/llhudeffectbeam.cpp index a7c1214..f6dff50 100644 --- a/linden/indra/newview/llhudeffectbeam.cpp +++ b/linden/indra/newview/llhudeffectbeam.cpp | |||
@@ -83,9 +83,30 @@ LLHUDEffectBeam::~LLHUDEffectBeam() | |||
83 | 83 | ||
84 | void LLHUDEffectBeam::packData(LLMessageSystem *mesgsys) | 84 | void LLHUDEffectBeam::packData(LLMessageSystem *mesgsys) |
85 | { | 85 | { |
86 | if (!mSourceObject) | 86 | LLViewerObject* source_object = (LLViewerObject*)mSourceObject; |
87 | |||
88 | if (!source_object) | ||
89 | { | ||
90 | markDead(); | ||
91 | return; | ||
92 | } | ||
93 | else if (!source_object->isAvatar()) | ||
87 | { | 94 | { |
88 | llwarns << "Missing source object!" << llendl; | 95 | LL_DEBUGS("HUDEffect")<<"Non-Avatar HUDEffectBeam message for ID: " |
96 | << source_object->getID().asString()<< LL_ENDL; | ||
97 | markDead(); | ||
98 | return; | ||
99 | } | ||
100 | else | ||
101 | { | ||
102 | LLVOAvatar* source_avatar = (LLVOAvatar*)source_object; | ||
103 | if (!source_avatar->isSelf()) | ||
104 | { | ||
105 | LL_DEBUGS("HUDEffect")<<"Non-self HUDEffectBeam message for ID: " | ||
106 | << source_avatar->getID().asString()<< LL_ENDL; | ||
107 | markDead(); | ||
108 | return; | ||
109 | } | ||
89 | } | 110 | } |
90 | 111 | ||
91 | // Pack the default data | 112 | // Pack the default data |
diff --git a/linden/indra/newview/llhudeffectlookat.cpp b/linden/indra/newview/llhudeffectlookat.cpp index 60b2b89..a997910 100644 --- a/linden/indra/newview/llhudeffectlookat.cpp +++ b/linden/indra/newview/llhudeffectlookat.cpp | |||
@@ -269,6 +269,51 @@ LLHUDEffectLookAt::~LLHUDEffectLookAt() | |||
269 | //----------------------------------------------------------------------------- | 269 | //----------------------------------------------------------------------------- |
270 | void LLHUDEffectLookAt::packData(LLMessageSystem *mesgsys) | 270 | void LLHUDEffectLookAt::packData(LLMessageSystem *mesgsys) |
271 | { | 271 | { |
272 | // pack both target object and position | ||
273 | // position interpreted as offset if target object is non-null | ||
274 | ELookAtType target_type = mTargetType; | ||
275 | LLVector3d target_offset_global = mTargetOffsetGlobal; | ||
276 | LLViewerObject* target_object = (LLViewerObject*)mTargetObject; | ||
277 | |||
278 | |||
279 | LLViewerObject* source_object = (LLViewerObject*)mSourceObject; | ||
280 | LLVOAvatar* source_avatar = NULL; | ||
281 | |||
282 | if (!source_object) | ||
283 | { | ||
284 | markDead(); | ||
285 | return; | ||
286 | } | ||
287 | if (source_object->isAvatar()) //strange enough that non-objects try | ||
288 | //to send a lookat message ... | ||
289 | { | ||
290 | source_avatar = (LLVOAvatar*)source_object; | ||
291 | } | ||
292 | else //... more strange if its an non-avatar object ... | ||
293 | { | ||
294 | LL_DEBUGS("HUDEffect")<<"Non-Avatar HUDEffectLookAt message for ID: " << source_object->getID().asString()<< LL_ENDL; | ||
295 | markDead(); | ||
296 | return; | ||
297 | } | ||
298 | |||
299 | |||
300 | bool is_self = source_avatar->isSelf(); | ||
301 | bool is_private = gSavedSettings.getBOOL("PrivateLookAtTarget"); | ||
302 | if (!is_self) //... very strange if it is not self. But happens. Also at local opensim. | ||
303 | { | ||
304 | LL_DEBUGS("HUDEffect")<< "Non-self Avatar HUDEffectLookAt message for ID: " << source_avatar->getID().asString() << LL_ENDL; | ||
305 | markDead(); | ||
306 | return; | ||
307 | } | ||
308 | else if (is_private && target_type != LOOKAT_TARGET_AUTO_LISTEN) | ||
309 | { | ||
310 | //this mimicks "do nothing" | ||
311 | target_type = LOOKAT_TARGET_AUTO_LISTEN; | ||
312 | target_offset_global.setVec(2.5, 0.0, 0.0); | ||
313 | target_object = mSourceObject; | ||
314 | } | ||
315 | |||
316 | |||
272 | // Pack the default data | 317 | // Pack the default data |
273 | LLHUDEffect::packData(mesgsys); | 318 | LLHUDEffect::packData(mesgsys); |
274 | 319 | ||
@@ -280,25 +325,23 @@ void LLHUDEffectLookAt::packData(LLMessageSystem *mesgsys) | |||
280 | { | 325 | { |
281 | htonmemcpy(&(packed_data[SOURCE_AVATAR]), mSourceObject->mID.mData, MVT_LLUUID, 16); | 326 | htonmemcpy(&(packed_data[SOURCE_AVATAR]), mSourceObject->mID.mData, MVT_LLUUID, 16); |
282 | } | 327 | } |
283 | else | 328 | else //um ... we already returned ... how's that the case? |
284 | { | 329 | { |
285 | htonmemcpy(&(packed_data[SOURCE_AVATAR]), LLUUID::null.mData, MVT_LLUUID, 16); | 330 | htonmemcpy(&(packed_data[SOURCE_AVATAR]), LLUUID::null.mData, MVT_LLUUID, 16); |
286 | } | 331 | } |
287 | 332 | ||
288 | // pack both target object and position | ||
289 | // position interpreted as offset if target object is non-null | ||
290 | if (mTargetObject) | 333 | if (mTargetObject) |
291 | { | 334 | { |
292 | htonmemcpy(&(packed_data[TARGET_OBJECT]), mTargetObject->mID.mData, MVT_LLUUID, 16); | 335 | htonmemcpy(&(packed_data[TARGET_OBJECT]), target_object->mID.mData, MVT_LLUUID, 16); |
293 | } | 336 | } |
294 | else | 337 | else |
295 | { | 338 | { |
296 | htonmemcpy(&(packed_data[TARGET_OBJECT]), LLUUID::null.mData, MVT_LLUUID, 16); | 339 | htonmemcpy(&(packed_data[TARGET_OBJECT]), LLUUID::null.mData, MVT_LLUUID, 16); |
297 | } | 340 | } |
298 | 341 | ||
299 | htonmemcpy(&(packed_data[TARGET_POS]), mTargetOffsetGlobal.mdV, MVT_LLVector3d, 24); | 342 | htonmemcpy(&(packed_data[TARGET_POS]), target_offset_global.mdV, MVT_LLVector3d, 24); |
300 | 343 | ||
301 | U8 lookAtTypePacked = (U8)mTargetType; | 344 | U8 lookAtTypePacked = (U8)target_type; |
302 | 345 | ||
303 | htonmemcpy(&(packed_data[LOOKAT_TYPE]), &lookAtTypePacked, MVT_U8, 1); | 346 | htonmemcpy(&(packed_data[LOOKAT_TYPE]), &lookAtTypePacked, MVT_U8, 1); |
304 | 347 | ||
@@ -370,7 +413,7 @@ void LLHUDEffectLookAt::unpackData(LLMessageSystem *mesgsys, S32 blocknum) | |||
370 | htonmemcpy(&lookAtTypeUnpacked, &(packed_data[LOOKAT_TYPE]), MVT_U8, 1); | 413 | htonmemcpy(&lookAtTypeUnpacked, &(packed_data[LOOKAT_TYPE]), MVT_U8, 1); |
371 | if (lookAtTypeUnpacked > 10) | 414 | if (lookAtTypeUnpacked > 10) |
372 | { | 415 | { |
373 | LL_DEBUGS("LookAt")<< "wrong lookAtTypeUnpacked: " << lookAtTypeUnpacked << LL_ENDL; | 416 | LL_DEBUGS("HUDEffect")<< "wrong lookAtTypeUnpacked: " << lookAtTypeUnpacked << LL_ENDL; |
374 | lookAtTypeUnpacked = 0; | 417 | lookAtTypeUnpacked = 0; |
375 | } | 418 | } |
376 | 419 | ||
diff --git a/linden/indra/newview/llhudeffectpointat.cpp b/linden/indra/newview/llhudeffectpointat.cpp index 2b82748..17485cf 100644 --- a/linden/indra/newview/llhudeffectpointat.cpp +++ b/linden/indra/newview/llhudeffectpointat.cpp | |||
@@ -103,6 +103,32 @@ LLHUDEffectPointAt::~LLHUDEffectPointAt() | |||
103 | //----------------------------------------------------------------------------- | 103 | //----------------------------------------------------------------------------- |
104 | void LLHUDEffectPointAt::packData(LLMessageSystem *mesgsys) | 104 | void LLHUDEffectPointAt::packData(LLMessageSystem *mesgsys) |
105 | { | 105 | { |
106 | LLViewerObject* source_object = (LLViewerObject*)mSourceObject; | ||
107 | |||
108 | if (!source_object) | ||
109 | { | ||
110 | markDead(); | ||
111 | return; | ||
112 | } | ||
113 | else if (!source_object->isAvatar()) | ||
114 | { | ||
115 | LL_DEBUGS("HUDEffect")<<"Non-Avatar HUDEffectPointAt message for ID: " | ||
116 | << source_object->getID().asString()<< LL_ENDL; | ||
117 | markDead(); | ||
118 | return; | ||
119 | } | ||
120 | else | ||
121 | { | ||
122 | LLVOAvatar* source_avatar = (LLVOAvatar*)source_object; | ||
123 | if (!source_avatar->isSelf()) | ||
124 | { | ||
125 | LL_DEBUGS("HUDEffect")<<"Non-self HUDEffectPointAt message for ID: " | ||
126 | << source_avatar->getID().asString()<< LL_ENDL; | ||
127 | markDead(); | ||
128 | return; | ||
129 | } | ||
130 | } | ||
131 | |||
106 | // Pack the default data | 132 | // Pack the default data |
107 | LLHUDEffect::packData(mesgsys); | 133 | LLHUDEffect::packData(mesgsys); |
108 | 134 | ||
diff --git a/linden/indra/newview/llprefsadvanced.cpp b/linden/indra/newview/llprefsadvanced.cpp index 6489f52..60c936a 100644 --- a/linden/indra/newview/llprefsadvanced.cpp +++ b/linden/indra/newview/llprefsadvanced.cpp | |||
@@ -58,7 +58,8 @@ BOOL LLPrefsAdvanced::postBuild() | |||
58 | childSetValue("disable_log_screen_check", gSavedSettings.getBOOL("DisableLoginLogoutScreens")); | 58 | childSetValue("disable_log_screen_check", gSavedSettings.getBOOL("DisableLoginLogoutScreens")); |
59 | childSetValue("disable_tp_screen_check", gSavedSettings.getBOOL("DisableTeleportScreens")); | 59 | childSetValue("disable_tp_screen_check", gSavedSettings.getBOOL("DisableTeleportScreens")); |
60 | childSetValue("client_name_tag_check", gSavedSettings.getBOOL("ShowClientNameTag")); | 60 | childSetValue("client_name_tag_check", gSavedSettings.getBOOL("ShowClientNameTag")); |
61 | childSetValue("windlight_check", gSavedSettings.getBOOL("UseServersideWindlightSettings")); | 61 | childSetValue("client_name_color_check", gSavedSettings.getBOOL("ShowClientColor")); |
62 | childSetValue("client_name_hover_check", gSavedSettings.getBOOL("ShowClientNameHoverTip")); | ||
62 | childSetValue("client_name_tag_broadcast_check", gSavedSettings.getBOOL("ShowMyClientTagToOthers")); | 63 | childSetValue("client_name_tag_broadcast_check", gSavedSettings.getBOOL("ShowMyClientTagToOthers")); |
63 | childSetValue("http_texture_check", gSavedSettings.getBOOL("ImagePipelineUseHTTP")); | 64 | childSetValue("http_texture_check", gSavedSettings.getBOOL("ImagePipelineUseHTTP")); |
64 | childSetValue("speed_rez_check", gSavedSettings.getBOOL("SpeedRez")); | 65 | childSetValue("speed_rez_check", gSavedSettings.getBOOL("SpeedRez")); |
@@ -66,6 +67,11 @@ BOOL LLPrefsAdvanced::postBuild() | |||
66 | childSetValue("appearance_anim_check", gSavedSettings.getBOOL("AppearanceAnimate")); | 67 | childSetValue("appearance_anim_check", gSavedSettings.getBOOL("AppearanceAnimate")); |
67 | childSetValue("legacy_pie_menu_checkbox", gSavedSettings.getBOOL("LegacyPieEnabled")); | 68 | childSetValue("legacy_pie_menu_checkbox", gSavedSettings.getBOOL("LegacyPieEnabled")); |
68 | childSetValue("language_is_public", gSavedSettings.getBOOL("LanguageIsPublic")); | 69 | childSetValue("language_is_public", gSavedSettings.getBOOL("LanguageIsPublic")); |
70 | childSetValue("allow_mupose", gSavedSettings.getBOOL("AllowMUpose")); | ||
71 | childSetValue("auto_close_ooc", gSavedSettings.getBOOL("AutoCloseOOC")); | ||
72 | |||
73 | childSetValue("lightshare_combo", | ||
74 | LLSD((S32)gSavedSettings.getU32("LightShareAllowed"))); | ||
69 | 75 | ||
70 | LLComboBox* crash_behavior_combobox = getChild<LLComboBox>("crash_behavior_combobox"); | 76 | LLComboBox* crash_behavior_combobox = getChild<LLComboBox>("crash_behavior_combobox"); |
71 | crash_behavior_combobox->setCurrentByIndex(gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING)); | 77 | crash_behavior_combobox->setCurrentByIndex(gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING)); |
@@ -80,12 +86,18 @@ void LLPrefsAdvanced::apply() | |||
80 | gSavedSettings.setBOOL("DisableLoginLogoutScreens", childGetValue("disable_log_screen_check")); | 86 | gSavedSettings.setBOOL("DisableLoginLogoutScreens", childGetValue("disable_log_screen_check")); |
81 | gSavedSettings.setBOOL("DisableTeleportScreens", childGetValue("disable_tp_screen_check")); | 87 | gSavedSettings.setBOOL("DisableTeleportScreens", childGetValue("disable_tp_screen_check")); |
82 | gSavedSettings.setBOOL("ShowClientNameTag", childGetValue("client_name_tag_check")); | 88 | gSavedSettings.setBOOL("ShowClientNameTag", childGetValue("client_name_tag_check")); |
89 | gSavedSettings.setBOOL("ShowClientColor", childGetValue("client_name_color_check")); | ||
90 | gSavedSettings.setBOOL("ShowClientNameHoverTip", childGetValue("client_name_hover_check")); | ||
83 | gSavedSettings.setBOOL("ImagePipelineUseHTTP", childGetValue("http_texture_check")); | 91 | gSavedSettings.setBOOL("ImagePipelineUseHTTP", childGetValue("http_texture_check")); |
84 | gSavedSettings.setBOOL("SpeedRez", childGetValue("speed_rez_check")); | 92 | gSavedSettings.setBOOL("SpeedRez", childGetValue("speed_rez_check")); |
85 | gSavedSettings.setU32("SpeedRezInterval", childGetValue("speed_rez_interval_spinner").asReal()); | 93 | gSavedSettings.setU32("SpeedRezInterval", childGetValue("speed_rez_interval_spinner").asReal()); |
86 | gSavedSettings.setBOOL("AppearanceAnimate", childGetValue("appearance_anim_check")); | 94 | gSavedSettings.setBOOL("AppearanceAnimate", childGetValue("appearance_anim_check")); |
87 | gSavedSettings.setBOOL("UseServersideWindlightSettings", childGetValue("windlight_check")); | ||
88 | gSavedSettings.setBOOL("LanguageIsPublic", childGetValue("language_is_public")); | 95 | gSavedSettings.setBOOL("LanguageIsPublic", childGetValue("language_is_public")); |
96 | gSavedSettings.setBOOL("AllowMUpose", childGetValue("allow_mupose")); | ||
97 | gSavedSettings.setBOOL("AutoCloseOOC", childGetValue("auto_close_ooc")); | ||
98 | gSavedSettings.setU32("LightShareAllowed", | ||
99 | (U32)childGetValue("lightshare_combo").asInteger()); | ||
100 | |||
89 | 101 | ||
90 | // Need to force a rebake when ClothingLayerProtection toggled for it take effect -- MC | 102 | // Need to force a rebake when ClothingLayerProtection toggled for it take effect -- MC |
91 | if (gSavedSettings.getBOOL("ShowMyClientTagToOthers") != (BOOL)childGetValue("client_name_tag_broadcast_check")) | 103 | if (gSavedSettings.getBOOL("ShowMyClientTagToOthers") != (BOOL)childGetValue("client_name_tag_broadcast_check")) |
diff --git a/linden/indra/newview/lltextureview.cpp b/linden/indra/newview/lltextureview.cpp index cda01fa..04cebf5 100644 --- a/linden/indra/newview/lltextureview.cpp +++ b/linden/indra/newview/lltextureview.cpp | |||
@@ -666,6 +666,10 @@ void LLTextureView::draw() | |||
666 | iter != gImageList.mImageList.end(); ) | 666 | iter != gImageList.mImageList.end(); ) |
667 | { | 667 | { |
668 | LLPointer<LLViewerImage> imagep = *iter++; | 668 | LLPointer<LLViewerImage> imagep = *iter++; |
669 | if(!imagep->hasFetcher()) | ||
670 | { | ||
671 | continue ; | ||
672 | } | ||
669 | 673 | ||
670 | S32 cur_discard = imagep->getDiscardLevel(); | 674 | S32 cur_discard = imagep->getDiscardLevel(); |
671 | S32 desired_discard = imagep->mDesiredDiscardLevel; | 675 | S32 desired_discard = imagep->mDesiredDiscardLevel; |
@@ -711,7 +715,7 @@ void LLTextureView::draw() | |||
711 | pri = imagep->getDecodePriority(); | 715 | pri = imagep->getDecodePriority(); |
712 | } | 716 | } |
713 | pri = llclamp(pri, 0.0f, HIGH_PRIORITY-1.f); | 717 | pri = llclamp(pri, 0.0f, HIGH_PRIORITY-1.f); |
714 | 718 | ||
715 | if (sDebugImages.find(imagep) != sDebugImages.end()) | 719 | if (sDebugImages.find(imagep) != sDebugImages.end()) |
716 | { | 720 | { |
717 | pri += 4*HIGH_PRIORITY; | 721 | pri += 4*HIGH_PRIORITY; |
@@ -773,7 +777,7 @@ void LLTextureView::draw() | |||
773 | { | 777 | { |
774 | display_image_list.insert(std::make_pair(pri, imagep)); | 778 | display_image_list.insert(std::make_pair(pri, imagep)); |
775 | } | 779 | } |
776 | } | 780 | }//for |
777 | 781 | ||
778 | if (mPrintList) | 782 | if (mPrintList) |
779 | { | 783 | { |
diff --git a/linden/indra/newview/llviewergenericmessage.cpp b/linden/indra/newview/llviewergenericmessage.cpp index c9954b3..8078888 100644 --- a/linden/indra/newview/llviewergenericmessage.cpp +++ b/linden/indra/newview/llviewergenericmessage.cpp | |||
@@ -32,18 +32,15 @@ | |||
32 | */ | 32 | */ |
33 | 33 | ||
34 | #include "llviewerprecompiledheaders.h" | 34 | #include "llviewerprecompiledheaders.h" |
35 | |||
36 | #include "llviewergenericmessage.h" | 35 | #include "llviewergenericmessage.h" |
37 | #include "meta7windlight.h" | 36 | |
38 | #include "lldispatcher.h" | 37 | #include "lldispatcher.h" |
39 | #include "lluuid.h" | 38 | #include "lluuid.h" |
40 | #include "message.h" | 39 | #include "message.h" |
41 | #include "llagent.h" | 40 | #include "llagent.h" |
42 | #include "llwaterparamset.h" | ||
43 | #include "llwaterparammanager.h" | ||
44 | #include "llwlparamset.h" | ||
45 | #include "llwlparammanager.h" | ||
46 | #include "lluuid.h" | 41 | #include "lluuid.h" |
42 | #include "lightshare.h" | ||
43 | |||
47 | 44 | ||
48 | LLDispatcher gGenericDispatcher; | 45 | LLDispatcher gGenericDispatcher; |
49 | 46 | ||
@@ -88,109 +85,20 @@ void process_generic_message(LLMessageSystem* msg, void**) | |||
88 | std::string method; | 85 | std::string method; |
89 | msg->getStringFast(_PREHASH_MethodData, _PREHASH_Method, method); | 86 | msg->getStringFast(_PREHASH_MethodData, _PREHASH_Method, method); |
90 | 87 | ||
91 | //This needs to be handled by a dispatcher really, but I'm not sure where is the best place to put it | 88 | // TODO: Use a proper dispatcher. |
92 | if (method == "Windlight" && gSavedSettings.getBOOL("UseServersideWindlightSettings")) | 89 | if(method == "Windlight") |
93 | { | 90 | { |
94 | //Meta7 WindLight packet | 91 | WindlightMessage::processWindlight(msg, NULL); |
95 | //We are delivering with an agentID of NULL_KEY so as to be | 92 | return; |
96 | //friendly and not trigger a warning for unsupporting clients. | ||
97 | S32 count = msg->getNumberOfBlocksFast(_PREHASH_ParamList); | ||
98 | for (S32 i = 0; i < count; ++i) | ||
99 | { | ||
100 | // our param is binary data) | ||
101 | S32 size = msg->getSizeFast(_PREHASH_ParamList, i, _PREHASH_Parameter); | ||
102 | if (size >= 0) | ||
103 | { | ||
104 | char buf[250]; | ||
105 | msg->getBinaryDataFast( | ||
106 | _PREHASH_ParamList, _PREHASH_Parameter, | ||
107 | buf, size, i, 249); | ||
108 | |||
109 | Meta7WindlightPacket* wl = (Meta7WindlightPacket*)buf; | ||
110 | |||
111 | LLWaterParamManager * param_mgr = LLWaterParamManager::instance(); | ||
112 | LLWaterParamSet & param_set = param_mgr->mCurParams; | ||
113 | |||
114 | param_set.set("waterFogColor", wl->waterColor.red / 256.f, wl->waterColor.green / 256.f, wl->waterColor.blue / 256.f); | ||
115 | param_set.set("waterFogDensity", pow(2.0f, wl->waterFogDensityExponent)); | ||
116 | param_set.set("underWaterFogMod", wl->underwaterFogModifier); | ||
117 | param_set.set("normScale", wl->reflectionWaveletScale.X,wl->reflectionWaveletScale.Y,wl->reflectionWaveletScale.Z); | ||
118 | param_set.set("fresnelScale", wl->fresnelScale); | ||
119 | param_set.set("fresnelOffset", wl->fresnelOffset); | ||
120 | param_set.set("scaleAbove", wl->refractScaleAbove); | ||
121 | param_set.set("scaleBelow", wl->refractScaleBelow); | ||
122 | param_set.set("blurMultiplier", wl->blurMultiplier); | ||
123 | param_set.set("wave1Dir", wl->littleWaveDirection.X, wl->littleWaveDirection.Y); | ||
124 | param_set.set("wave2Dir", wl->bigWaveDirection.X, wl->bigWaveDirection.Y); | ||
125 | |||
126 | LLUUID normalMapTexture; | ||
127 | |||
128 | std::string out = llformat( | ||
129 | "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", | ||
130 | (U8)(wl->normalMapTexture[0]), | ||
131 | (U8)(wl->normalMapTexture[1]), | ||
132 | (U8)(wl->normalMapTexture[2]), | ||
133 | (U8)(wl->normalMapTexture[3]), | ||
134 | (U8)(wl->normalMapTexture[4]), | ||
135 | (U8)(wl->normalMapTexture[5]), | ||
136 | (U8)(wl->normalMapTexture[6]), | ||
137 | (U8)(wl->normalMapTexture[7]), | ||
138 | (U8)(wl->normalMapTexture[8]), | ||
139 | (U8)(wl->normalMapTexture[9]), | ||
140 | (U8)(wl->normalMapTexture[10]), | ||
141 | (U8)(wl->normalMapTexture[11]), | ||
142 | (U8)(wl->normalMapTexture[12]), | ||
143 | (U8)(wl->normalMapTexture[13]), | ||
144 | (U8)(wl->normalMapTexture[14]), | ||
145 | (U8)(wl->normalMapTexture[15])); | ||
146 | |||
147 | normalMapTexture.set(out); | ||
148 | |||
149 | param_mgr->setParamSet( "Meta7CurrentRegion", param_set); | ||
150 | param_mgr->setNormalMapID(normalMapTexture); | ||
151 | |||
152 | LLWLParamManager * wl_param_mgr = LLWLParamManager::instance(); | ||
153 | LLWLParamSet & wl_param_set = wl_param_mgr->mCurParams; | ||
154 | wl_param_set.setSunAngle(F_TWO_PI * wl->sunMoonPosiiton); | ||
155 | wl_param_set.setEastAngle(F_TWO_PI * wl->eastAngle); | ||
156 | wl_param_set.set("sunlight_color", wl->sunMoonColor.red * 3.0f, wl->sunMoonColor.green * 3.0f, wl->sunMoonColor.blue * 3.0f, wl->sunMoonColor.alpha * 3.0f); | ||
157 | wl_param_set.set("ambient", wl->ambient.red * 3.0f, wl->ambient.green * 3.0f, wl->ambient.blue * 3.0f, wl->ambient.alpha * 3.0f); | ||
158 | wl_param_set.set("blue_horizon", wl->horizon.red * 2.0f, wl->horizon.green *2.0f, wl->horizon.blue * 2.0f, wl->horizon.alpha * 2.0f); | ||
159 | wl_param_set.set("blue_density", wl->blueDensity.red * 2.0f, wl->blueDensity.green * 2.0f, wl->blueDensity.blue * 2.0f, wl->blueDensity.alpha * 2.0f); | ||
160 | wl_param_set.set("haze_horizon", wl->hazeHorizon, wl->hazeHorizon, wl->hazeHorizon, 1.f); | ||
161 | wl_param_set.set("haze_density", wl->hazeDensity, wl->hazeDensity, wl->hazeDensity, 1.f); | ||
162 | wl_param_set.set("cloud_shadow", wl->cloudCoverage, wl->cloudCoverage, wl->cloudCoverage, wl->cloudCoverage); | ||
163 | wl_param_set.set("density_multiplier", wl->densityMultiplier / 1000.0f); | ||
164 | wl_param_set.set("distance_multiplier", wl->distanceMultiplier, wl->distanceMultiplier, wl->distanceMultiplier, wl->distanceMultiplier); | ||
165 | wl_param_set.set("max_y",(F32)wl->maxAltitude); | ||
166 | wl_param_set.set("cloud_color", wl->cloudColor.red, wl->cloudColor.green, wl->cloudColor.blue, wl->cloudColor.alpha); | ||
167 | wl_param_set.set("cloud_pos_density1", wl->cloudXYDensity.X, wl->cloudXYDensity.Y, wl->cloudXYDensity.Z); | ||
168 | wl_param_set.set("cloud_pos_density2", wl->cloudDetailXYDensity.X, wl->cloudDetailXYDensity.Y, wl->cloudDetailXYDensity.Z); | ||
169 | wl_param_set.set("cloud_scale", wl->cloudScale, 0.f, 0.f, 1.f); | ||
170 | wl_param_set.set("gamma", wl->sceneGamma, wl->sceneGamma, wl->sceneGamma, 0.0f); | ||
171 | wl_param_set.set("glow",(2 - wl->sunGlowSize) * 20 , 0.f, -wl->sunGlowFocus * 5); | ||
172 | wl_param_set.setCloudScrollX(wl->cloudScrollX + 10.0f); | ||
173 | wl_param_set.setCloudScrollY(wl->cloudScrollY + 10.0f); | ||
174 | wl_param_set.setEnableCloudScrollX(!wl->cloudScrollXLock); | ||
175 | wl_param_set.setEnableCloudScrollY(!wl->cloudScrollYLock); | ||
176 | wl_param_set.setStarBrightness(wl->starBrightness); | ||
177 | wl_param_mgr->removeParamSet("Meta7-CurrentRegion",true); | ||
178 | wl_param_mgr->addParamSet( "Meta7-CurrentRegion", wl_param_set); | ||
179 | wl_param_mgr->savePreset( "Meta7-CurrentRegion"); | ||
180 | LLWLParamManager::instance()->mAnimator.mIsRunning = false; | ||
181 | LLWLParamManager::instance()->mAnimator.mUseLindenTime = false; | ||
182 | wl_param_mgr->loadPreset( "Meta7-CurrentRegion",true); | ||
183 | } | ||
184 | } | ||
185 | } | 93 | } |
186 | else if (agent_id != gAgent.getID()) | 94 | |
95 | if( agent_id != gAgent.getID() ) | ||
187 | { | 96 | { |
188 | llwarns << "GenericMessage for wrong agent" << llendl; | 97 | llwarns << "GenericMessage for wrong agent" << llendl; |
189 | return; | 98 | return; |
190 | } | 99 | } |
191 | else | 100 | else |
192 | { | 101 | { |
193 | |||
194 | std::string request; | 102 | std::string request; |
195 | LLUUID invoice; | 103 | LLUUID invoice; |
196 | LLDispatcher::sparam_t strings; | 104 | LLDispatcher::sparam_t strings; |
diff --git a/linden/indra/newview/llviewerimage.h b/linden/indra/newview/llviewerimage.h index fdf8ff0..fc27f17 100644 --- a/linden/indra/newview/llviewerimage.h +++ b/linden/indra/newview/llviewerimage.h | |||
@@ -277,7 +277,7 @@ public: | |||
277 | void setDecodePriority(F32 priority = -1.0f); | 277 | void setDecodePriority(F32 priority = -1.0f); |
278 | 278 | ||
279 | bool updateFetch(); | 279 | bool updateFetch(); |
280 | 280 | BOOL hasFetcher() const { return mHasFetcher;} | |
281 | // Override the computation of discard levels if we know the exact output | 281 | // Override the computation of discard levels if we know the exact output |
282 | // size of the image. Used for UI textures to not decode, even if we have | 282 | // size of the image. Used for UI textures to not decode, even if we have |
283 | // more data. | 283 | // more data. |
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp index 6a7a818..fb69389 100644 --- a/linden/indra/newview/llviewermenu.cpp +++ b/linden/indra/newview/llviewermenu.cpp | |||
@@ -546,6 +546,11 @@ void LLMenuParcelObserver::changed() | |||
546 | // code required to calculate anything about the menus | 546 | // code required to calculate anything about the menus |
547 | void pre_init_menus() | 547 | void pre_init_menus() |
548 | { | 548 | { |
549 | if (gMenuHolder) | ||
550 | { | ||
551 | cleanup_menus(); | ||
552 | } | ||
553 | |||
549 | // static information | 554 | // static information |
550 | LLColor4 color; | 555 | LLColor4 color; |
551 | color = gColors.getColor( "MenuDefaultBgColor" ); | 556 | color = gColors.getColor( "MenuDefaultBgColor" ); |
@@ -10143,15 +10148,28 @@ class LLAdvancedTogglePrivateLookPointAt : public view_listener_t | |||
10143 | { | 10148 | { |
10144 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | 10149 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) |
10145 | { | 10150 | { |
10146 | // Noate: PrivateLookAtTarget also hides point at -- MC | 10151 | std::string command = userdata.asString(); |
10147 | bool new_value = !gSavedSettings.getBOOL("PrivateLookAtTarget"); | 10152 | if ("Look" == command) |
10148 | if (new_value) | ||
10149 | { | 10153 | { |
10150 | // Disable show look at and show point at if you make yours private. It's only fair, after all -- MC | 10154 | bool new_value = !gSavedSettings.getBOOL("PrivateLookAtTarget"); |
10151 | LLHUDEffectLookAt::sDebugLookAt = FALSE; | 10155 | if (new_value) |
10152 | LLHUDEffectPointAt::sDebugPointAt = FALSE; | 10156 | { |
10157 | // Disable show look at and show point at if you make yours private. It's only fair, after all -- MC | ||
10158 | LLHUDEffectLookAt::sDebugLookAt = FALSE; | ||
10159 | LLHUDEffectPointAt::sDebugPointAt = FALSE; | ||
10160 | } | ||
10161 | gSavedSettings.setBOOL("PrivateLookAtTarget", new_value); | ||
10153 | } | 10162 | } |
10154 | gSavedSettings.setBOOL("PrivateLookAtTarget", new_value); | 10163 | else if ("Point" == command) |
10164 | { | ||
10165 | bool new_value = !gSavedSettings.getBOOL("PrivatePointAtTarget"); | ||
10166 | |||
10167 | // do not disable show look at and show point at if you make yours private, | ||
10168 | // since this only hides the arm motion while editing -- AW | ||
10169 | |||
10170 | gSavedSettings.setBOOL("PrivatePointAtTarget", new_value); | ||
10171 | } | ||
10172 | |||
10155 | return true; | 10173 | return true; |
10156 | } | 10174 | } |
10157 | }; | 10175 | }; |
@@ -10160,9 +10178,19 @@ class LLAdvancedCheckPrivateLookPointAt : public view_listener_t | |||
10160 | { | 10178 | { |
10161 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | 10179 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) |
10162 | { | 10180 | { |
10163 | bool new_value = gSavedSettings.getBOOL("PrivateLookAtTarget"); | 10181 | std::string command = userdata["data"].asString(); |
10164 | std::string control_name = userdata["control"].asString(); | 10182 | if ("Look" == command) |
10165 | gMenuHolder->findControl(control_name)->setValue(new_value); | 10183 | { |
10184 | bool new_value = gSavedSettings.getBOOL("PrivateLookAtTarget"); | ||
10185 | std::string control_name = userdata["control"].asString(); | ||
10186 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
10187 | } | ||
10188 | else if ("Point" == command) | ||
10189 | { | ||
10190 | bool new_value = gSavedSettings.getBOOL("PrivatePointAtTarget"); | ||
10191 | std::string control_name = userdata["control"].asString(); | ||
10192 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
10193 | } | ||
10166 | return true; | 10194 | return true; |
10167 | } | 10195 | } |
10168 | }; | 10196 | }; |
diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp index ecbe0ef..bc1aedb 100644 --- a/linden/indra/newview/llviewermessage.cpp +++ b/linden/indra/newview/llviewermessage.cpp | |||
@@ -65,6 +65,7 @@ | |||
65 | #include "lltimer.h" | 65 | #include "lltimer.h" |
66 | #include "llmd5.h" | 66 | #include "llmd5.h" |
67 | 67 | ||
68 | #include "lightshare.h" | ||
68 | #include "llagent.h" | 69 | #include "llagent.h" |
69 | #include "llcallingcard.h" | 70 | #include "llcallingcard.h" |
70 | #include "llconsole.h" | 71 | #include "llconsole.h" |
@@ -138,8 +139,6 @@ | |||
138 | #include "llviewerdisplay.h" | 139 | #include "llviewerdisplay.h" |
139 | #include "llkeythrottle.h" | 140 | #include "llkeythrottle.h" |
140 | 141 | ||
141 | #include "llwlparammanager.h" | ||
142 | #include "llwaterparammanager.h" | ||
143 | #include "panelradarentry.h" | 142 | #include "panelradarentry.h" |
144 | 143 | ||
145 | #include <boost/tokenizer.hpp> | 144 | #include <boost/tokenizer.hpp> |
@@ -3224,10 +3223,6 @@ void process_teleport_finish(LLMessageSystem* msg, void**) | |||
3224 | gCacheName->setUpstream(sim); | 3223 | gCacheName->setUpstream(sim); |
3225 | */ | 3224 | */ |
3226 | 3225 | ||
3227 | // Reset windlight settings to default | ||
3228 | LLWLParamManager::instance()->mAnimator.mIsRunning = true; | ||
3229 | LLWLParamManager::instance()->mAnimator.mUseLindenTime = true; | ||
3230 | |||
3231 | // now, use the circuit info to tell simulator about us! | 3226 | // now, use the circuit info to tell simulator about us! |
3232 | LL_INFOS("Messaging") << "process_teleport_finish() Enabling " | 3227 | LL_INFOS("Messaging") << "process_teleport_finish() Enabling " |
3233 | << sim_host << " with code " << msg->mOurCircuitCode << LL_ENDL; | 3228 | << sim_host << " with code " << msg->mOurCircuitCode << LL_ENDL; |
@@ -3259,6 +3254,9 @@ void process_teleport_finish(LLMessageSystem* msg, void**) | |||
3259 | // gTeleportDisplay = TRUE; | 3254 | // gTeleportDisplay = TRUE; |
3260 | // gTeleportDisplayTimer.reset(); | 3255 | // gTeleportDisplayTimer.reset(); |
3261 | // gViewerWindow->setShowProgress(TRUE); | 3256 | // gViewerWindow->setShowProgress(TRUE); |
3257 | |||
3258 | // Tell the LightShare handler that we have changed regions. | ||
3259 | WindlightMessage::resetRegion(); | ||
3262 | } | 3260 | } |
3263 | 3261 | ||
3264 | // stuff we have to do every time we get an AvatarInitComplete from a sim | 3262 | // stuff we have to do every time we get an AvatarInitComplete from a sim |
@@ -3506,6 +3504,9 @@ void process_crossed_region(LLMessageSystem* msg, void**) | |||
3506 | 3504 | ||
3507 | LLViewerRegion* regionp = LLWorld::getInstance()->addRegion(region_handle, sim_host); | 3505 | LLViewerRegion* regionp = LLWorld::getInstance()->addRegion(region_handle, sim_host); |
3508 | regionp->setSeedCapability(seedCap); | 3506 | regionp->setSeedCapability(seedCap); |
3507 | |||
3508 | // Tell the LightShare handler that we have changed regions. | ||
3509 | WindlightMessage::resetRegion(); | ||
3509 | } | 3510 | } |
3510 | 3511 | ||
3511 | 3512 | ||
diff --git a/linden/indra/newview/llviewerregion.cpp b/linden/indra/newview/llviewerregion.cpp index 69405d2..4257f70 100644 --- a/linden/indra/newview/llviewerregion.cpp +++ b/linden/indra/newview/llviewerregion.cpp | |||
@@ -374,7 +374,7 @@ void LLViewerRegion::saveCache() | |||
374 | 374 | ||
375 | std::string filename; | 375 | std::string filename; |
376 | filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,"") + gDirUtilp->getDirDelimiter() + | 376 | filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,"") + gDirUtilp->getDirDelimiter() + |
377 | llformat("sobjects_%d_%d.slc", U32(mHandle>>32)/REGION_WIDTH_UNITS, U32(mHandle)/REGION_WIDTH_UNITS ); | 377 | llformat("objects_%d_%d.slc", U32(mHandle>>32)/REGION_WIDTH_UNITS, U32(mHandle)/REGION_WIDTH_UNITS ); |
378 | 378 | ||
379 | LLFILE* fp = LLFile::fopen(filename, "wb"); /* Flawfinder: ignore */ | 379 | LLFILE* fp = LLFile::fopen(filename, "wb"); /* Flawfinder: ignore */ |
380 | if (!fp) | 380 | if (!fp) |
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp index 200b3a6..2732d48 100644 --- a/linden/indra/newview/llvoavatar.cpp +++ b/linden/indra/newview/llvoavatar.cpp | |||
@@ -3544,21 +3544,29 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last) | |||
3544 | } | 3544 | } |
3545 | 3545 | ||
3546 | LLColor4 avatar_name_color = gColors.getColor( "AvatarNameColor" ); | 3546 | LLColor4 avatar_name_color = gColors.getColor( "AvatarNameColor" ); |
3547 | if (gSavedSettings.getBOOL("ShowClientNameTag")) | 3547 | LLColor4 client_color = avatar_name_color; |
3548 | |||
3549 | if(!mIsSelf) //don't know your own client ? | ||
3548 | { | 3550 | { |
3549 | if(!mIsSelf) //don't know your own client ? | 3551 | new_name = TRUE; //lol or see the last client used |
3550 | { | 3552 | { |
3551 | new_name = TRUE; //lol or see the last client used | 3553 | resolveClient(client_color,client, this); |
3552 | { | ||
3553 | resolveClient(avatar_name_color,client, this); | ||
3554 | } | ||
3555 | } | ||
3556 | else | ||
3557 | { | ||
3558 | // Set your own name to the Imprudence color -- MC | ||
3559 | avatar_name_color = LLColor4(0.79f,0.44f,0.88f); | ||
3560 | } | 3554 | } |
3561 | } | 3555 | } |
3556 | else | ||
3557 | { | ||
3558 | // Set your own name to the Imprudence color -- MC | ||
3559 | client_color = LLColor4(0.79f,0.44f,0.88f); | ||
3560 | } | ||
3561 | if (gSavedSettings.getBOOL("ShowClientColor")) | ||
3562 | { | ||
3563 | avatar_name_color = client_color; | ||
3564 | } | ||
3565 | if (!gSavedSettings.getBOOL("ShowClientNameTag")) | ||
3566 | { | ||
3567 | client.clear(); | ||
3568 | } | ||
3569 | |||
3562 | avatar_name_color.setAlpha(alpha); | 3570 | avatar_name_color.setAlpha(alpha); |
3563 | mNameText->setColor(avatar_name_color); | 3571 | mNameText->setColor(avatar_name_color); |
3564 | 3572 | ||
@@ -8552,17 +8560,17 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys ) | |||
8552 | 8560 | ||
8553 | if(param->getID() == 507 && newWeight != getActualBoobGrav()) | 8561 | if(param->getID() == 507 && newWeight != getActualBoobGrav()) |
8554 | { | 8562 | { |
8555 | llwarns << "Boob Grav SET to " << newWeight << " for " << getFullname() << llendl; | 8563 | LL_DEBUGS("BodyPhysics")<< "Boob Grav SET to " << newWeight << " for " << getFullname() << LL_ENDL; |
8556 | setActualBoobGrav(newWeight); | 8564 | setActualBoobGrav(newWeight); |
8557 | } | 8565 | } |
8558 | if(param->getID() == 795 && newWeight != getActualButtGrav()) | 8566 | if(param->getID() == 795 && newWeight != getActualButtGrav()) |
8559 | { | 8567 | { |
8560 | llwarns << "Butt Grav SET to " << newWeight << " for " << getFullname() << llendl; | 8568 | LL_DEBUGS("BodyPhysics")<< "Butt Grav SET to " << newWeight << " for " << getFullname() << LL_ENDL; |
8561 | setActualButtGrav(newWeight); | 8569 | setActualButtGrav(newWeight); |
8562 | } | 8570 | } |
8563 | if(param->getID() == 157 && newWeight != getActualFatGrav()) | 8571 | if(param->getID() == 157 && newWeight != getActualFatGrav()) |
8564 | { | 8572 | { |
8565 | llwarns << "Fat Grav SET to " << newWeight << " for " << getFullname() << llendl; | 8573 | LL_DEBUGS("BodyPhysics")<< "Fat Grav SET to " << newWeight << " for " << getFullname() << LL_ENDL; |
8566 | setActualFatGrav(newWeight); | 8574 | setActualFatGrav(newWeight); |
8567 | } | 8575 | } |
8568 | 8576 | ||
diff --git a/linden/indra/newview/llvoavatar.h b/linden/indra/newview/llvoavatar.h index 36ed22a..0c32244 100644 --- a/linden/indra/newview/llvoavatar.h +++ b/linden/indra/newview/llvoavatar.h | |||
@@ -658,10 +658,11 @@ private: | |||
658 | static LLVector3d sBeamLastAt; | 658 | static LLVector3d sBeamLastAt; |
659 | static LLSD sClientResolutionList; | 659 | static LLSD sClientResolutionList; |
660 | 660 | ||
661 | public: //anything against having this public? | ||
661 | static void resolveClient(LLColor4& avatar_name_color, std::string& client, LLVOAvatar* avatar); | 662 | static void resolveClient(LLColor4& avatar_name_color, std::string& client, LLVOAvatar* avatar); |
662 | //Imprudence FIXME | 663 | //Imprudence FIXME |
663 | // friend class LLFloaterAvatarList; | 664 | // friend class LLFloaterAvatarList; |
664 | 665 | // friend class LLHoverView; | |
665 | protected: | 666 | protected: |
666 | LLPointer<LLHUDEffectSpiral> mBeam; | 667 | LLPointer<LLHUDEffectSpiral> mBeam; |
667 | LLFrameTimer mBeamTimer; | 668 | LLFrameTimer mBeamTimer; |
diff --git a/linden/indra/newview/llwindlightremotectrl.cpp b/linden/indra/newview/llwindlightremotectrl.cpp index 0beb3e5..b5c15a5 100644 --- a/linden/indra/newview/llwindlightremotectrl.cpp +++ b/linden/indra/newview/llwindlightremotectrl.cpp | |||
@@ -173,8 +173,7 @@ void LLWindlightRemoteCtrl::refreshPresets() | |||
173 | mPresetsCombo->addSimpleElement(getString("midnight"), ADD_BOTTOM); | 173 | mPresetsCombo->addSimpleElement(getString("midnight"), ADD_BOTTOM); |
174 | mPresetsCombo->addSimpleElement(getString("revert_region"), ADD_BOTTOM); | 174 | mPresetsCombo->addSimpleElement(getString("revert_region"), ADD_BOTTOM); |
175 | 175 | ||
176 | if (mPresetsCombo->getSelectedItemLabel() != currentParams.mName && | 176 | if (!currentParams.mName.empty()) |
177 | !currentParams.mName.empty()) | ||
178 | { | 177 | { |
179 | mPresetsCombo->selectByValue(LLSD(currentParams.mName)); | 178 | mPresetsCombo->selectByValue(LLSD(currentParams.mName)); |
180 | } | 179 | } |
diff --git a/linden/indra/newview/meta7windlight.h b/linden/indra/newview/meta7windlight.h index 9927558..04ce86d 100644 --- a/linden/indra/newview/meta7windlight.h +++ b/linden/indra/newview/meta7windlight.h | |||
@@ -1,3 +1,36 @@ | |||
1 | /** | ||
2 | * @file lightshare.cpp | ||
3 | * @brief Handler for Meta7 Lightshare (region-side Windlight settings). | ||
4 | * | ||
5 | * Copyright (c) 2010, Tom Meta / Meta7 Project | ||
6 | * | ||
7 | * The source code in this file ("Source Code") is provided to you | ||
8 | * under the terms of the GNU General Public License, version 2.0 | ||
9 | * ("GPL"). Terms of the GPL can be found in doc/GPL-license.txt in | ||
10 | * this distribution, or online at | ||
11 | * http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
12 | * | ||
13 | * There are special exceptions to the terms and conditions of the GPL as | ||
14 | * it is applied to this Source Code. View the full text of the exception | ||
15 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
16 | * online at | ||
17 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
18 | * | ||
19 | * By copying, modifying or distributing this software, you acknowledge | ||
20 | * that you have read and understood your obligations described above, | ||
21 | * and agree to abide by those obligations. | ||
22 | * | ||
23 | * ALL SOURCE CODE IS PROVIDED "AS IS." THE AUTHOR MAKES NO | ||
24 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
25 | * COMPLETENESS OR PERFORMANCE. | ||
26 | */ | ||
27 | |||
28 | |||
29 | #ifndef META7WINDLIGHT_H | ||
30 | #define META7WINDLIGHT_H | ||
31 | |||
32 | #include "linden_common.h" | ||
33 | |||
1 | struct M7Color3{ | 34 | struct M7Color3{ |
2 | M7Color3(){}; | 35 | M7Color3(){}; |
3 | M7Color3(F32 pRed, F32 pGreen, F32 pBlue) | 36 | M7Color3(F32 pRed, F32 pGreen, F32 pBlue) |
@@ -94,3 +127,5 @@ struct Meta7WindlightPacket { | |||
94 | 127 | ||
95 | 128 | ||
96 | }; | 129 | }; |
130 | |||
131 | #endif | ||
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_ao.xml b/linden/indra/newview/skins/default/xui/en-us/floater_ao.xml index 134bd13..17c205f 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_ao.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_ao.xml | |||
@@ -135,7 +135,7 @@ | |||
135 | mouse_opaque="true" name="textdefaultwalk" v_pad="0" width="180"> | 135 | mouse_opaque="true" name="textdefaultwalk" v_pad="0" width="180"> |
136 | Default Walk: | 136 | Default Walk: |
137 | </text> | 137 | </text> |
138 | <combo_box name="walks" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" control_name="AODefaultWalk" /> | 138 | <combo_box name="walks" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" /> |
139 | 139 | ||
140 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 140 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
141 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | 141 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" |
@@ -143,105 +143,105 @@ | |||
143 | mouse_opaque="true" name="textdefaultrun" v_pad="0" width="180"> | 143 | mouse_opaque="true" name="textdefaultrun" v_pad="0" width="180"> |
144 | Default Run: | 144 | Default Run: |
145 | </text> | 145 | </text> |
146 | <combo_box name="runs" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" control_name="AODefaultRun" /> | 146 | <combo_box name="runs" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" /> |
147 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 147 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
148 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | 148 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" |
149 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" | 149 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" |
150 | mouse_opaque="true" name="textdefaultjump" v_pad="0" width="180"> | 150 | mouse_opaque="true" name="textdefaultjump" v_pad="0" width="180"> |
151 | Default Jump: | 151 | Default Jump: |
152 | </text> | 152 | </text> |
153 | <combo_box name="jumps" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" control_name="AODefaultJump" /> | 153 | <combo_box name="jumps" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" /> |
154 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 154 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
155 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | 155 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" |
156 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" | 156 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" |
157 | mouse_opaque="true" name="textdefaultsit" v_pad="0" width="180"> | 157 | mouse_opaque="true" name="textdefaultsit" v_pad="0" width="180"> |
158 | Default Sit: | 158 | Default Sit: |
159 | </text> | 159 | </text> |
160 | <combo_box name="sits" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" control_name="AODefaultSit" /> | 160 | <combo_box name="sits" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" /> |
161 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 161 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
162 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | 162 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" |
163 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" | 163 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" |
164 | mouse_opaque="true" name="textdefaultgsit" v_pad="0" width="180"> | 164 | mouse_opaque="true" name="textdefaultgsit" v_pad="0" width="180"> |
165 | Default Groundsit: | 165 | Default Groundsit: |
166 | </text> | 166 | </text> |
167 | <combo_box name="gsits" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" control_name="AODefaultGroundSit" /> | 167 | <combo_box name="gsits" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" /> |
168 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 168 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
169 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | 169 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" |
170 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" | 170 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" |
171 | mouse_opaque="true" name="textdefaultcrouch" v_pad="0" width="180"> | 171 | mouse_opaque="true" name="textdefaultcrouch" v_pad="0" width="180"> |
172 | Default Crouch: | 172 | Default Crouch: |
173 | </text> | 173 | </text> |
174 | <combo_box name="crouchs" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" control_name="AODefaultCrouch" /> | 174 | <combo_box name="crouchs" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" /> |
175 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 175 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
176 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | 176 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" |
177 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" | 177 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" |
178 | mouse_opaque="true" name="textdefaultcrouchwalk" v_pad="0" width="180"> | 178 | mouse_opaque="true" name="textdefaultcrouchwalk" v_pad="0" width="180"> |
179 | Default Crouchwalk: | 179 | Default Crouchwalk: |
180 | </text> | 180 | </text> |
181 | <combo_box name="cwalks" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" control_name="AODefaultCrouchWalk" /> | 181 | <combo_box name="cwalks" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" /> |
182 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 182 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
183 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | 183 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" |
184 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" | 184 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" |
185 | mouse_opaque="true" name="textdefaultfall" v_pad="0" width="180"> | 185 | mouse_opaque="true" name="textdefaultfall" v_pad="0" width="180"> |
186 | Default Fall: | 186 | Default Fall: |
187 | </text> | 187 | </text> |
188 | <combo_box name="falls" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" control_name="AODefaultFall" /> | 188 | <combo_box name="falls" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" /> |
189 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 189 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
190 | bottom_delta="280" drop_shadow_visible="true" follows="left|bottom" | 190 | bottom_delta="280" drop_shadow_visible="true" follows="left|bottom" |
191 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="200" | 191 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="200" |
192 | mouse_opaque="true" name="textdefaulthover" v_pad="0" width="180"> | 192 | mouse_opaque="true" name="textdefaulthover" v_pad="0" width="180"> |
193 | Default Hover: | 193 | Default Hover: |
194 | </text> | 194 | </text> |
195 | <combo_box name="hovers" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" control_name="AODefaultHover" /> | 195 | <combo_box name="hovers" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" /> |
196 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 196 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
197 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | 197 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" |
198 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" | 198 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" |
199 | mouse_opaque="true" name="textdefaultfly" v_pad="0" width="180"> | 199 | mouse_opaque="true" name="textdefaultfly" v_pad="0" width="180"> |
200 | Default Fly: | 200 | Default Fly: |
201 | </text> | 201 | </text> |
202 | <combo_box name="flys" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" control_name="AODefaultFly" /> | 202 | <combo_box name="flys" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" /> |
203 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 203 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
204 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | 204 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" |
205 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" | 205 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" |
206 | mouse_opaque="true" name="textdefaultflyslow" v_pad="0" width="180"> | 206 | mouse_opaque="true" name="textdefaultflyslow" v_pad="0" width="180"> |
207 | Default Slow Fly: | 207 | Default Slow Fly: |
208 | </text> | 208 | </text> |
209 | <combo_box name="flyslows" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" control_name="AODefaultFlySlow" /> | 209 | <combo_box name="flyslows" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" /> |
210 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 210 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
211 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | 211 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" |
212 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" | 212 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" |
213 | mouse_opaque="true" name="textdefaultflyup" v_pad="0" width="180"> | 213 | mouse_opaque="true" name="textdefaultflyup" v_pad="0" width="180"> |
214 | Default Upward Fly: | 214 | Default Upward Fly: |
215 | </text> | 215 | </text> |
216 | <combo_box name="flyups" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" control_name="AODefaultFlyUp" /> | 216 | <combo_box name="flyups" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" /> |
217 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 217 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
218 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | 218 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" |
219 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" | 219 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" |
220 | mouse_opaque="true" name="textdefaultflydown" v_pad="0" width="180"> | 220 | mouse_opaque="true" name="textdefaultflydown" v_pad="0" width="180"> |
221 | Default Downward Fly: | 221 | Default Downward Fly: |
222 | </text> | 222 | </text> |
223 | <combo_box name="flydowns" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" control_name="AODefaultFlyDown" /> | 223 | <combo_box name="flydowns" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" /> |
224 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 224 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
225 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | 225 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" |
226 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" | 226 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" |
227 | mouse_opaque="true" name="textdefaultland" v_pad="0" width="180"> | 227 | mouse_opaque="true" name="textdefaultland" v_pad="0" width="180"> |
228 | Default Land: | 228 | Default Land: |
229 | </text> | 229 | </text> |
230 | <combo_box name="lands" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" control_name="AODefaultLand" /> | 230 | <combo_box name="lands" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" /> |
231 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 231 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
232 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | 232 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" |
233 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" | 233 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" |
234 | mouse_opaque="true" name="textdefaultstandup" v_pad="0" width="180"> | 234 | mouse_opaque="true" name="textdefaultstandup" v_pad="0" width="180"> |
235 | Default Standup: | 235 | Default Standup: |
236 | </text> | 236 | </text> |
237 | <combo_box name="standups" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" control_name="AODefaultStandUp" /> | 237 | <combo_box name="standups" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" /> |
238 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 238 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
239 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | 239 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" |
240 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" | 240 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" |
241 | mouse_opaque="true" name="textdefaultprejump" v_pad="0" width="180"> | 241 | mouse_opaque="true" name="textdefaultprejump" v_pad="0" width="180"> |
242 | Default Pre-Jump: | 242 | Default Pre-Jump: |
243 | </text> | 243 | </text> |
244 | <combo_box name="prejumps" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" control_name="AODefaultPreJump" /> | 244 | <combo_box name="prejumps" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" /> |
245 | </panel> | 245 | </panel> |
246 | </tab_container> | 246 | </tab_container> |
247 | </floater> \ No newline at end of file | 247 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_hardware_settings.xml b/linden/indra/newview/skins/default/xui/en-us/floater_hardware_settings.xml index 8d5d6b4..24a895b 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_hardware_settings.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_hardware_settings.xml | |||
@@ -19,7 +19,7 @@ | |||
19 | left="10" mouse_opaque="true" name="Antialiasing:" v_pad="0" width="128"> | 19 | left="10" mouse_opaque="true" name="Antialiasing:" v_pad="0" width="128"> |
20 | Antialiasing: | 20 | Antialiasing: |
21 | </text> | 21 | </text> |
22 | <combo_box bottom="-65" control_name="RenderFSAASamples" enabled="true" follows="left|top" | 22 | <combo_box bottom="-65" enabled="true" follows="left|top" |
23 | font="SansSerifSmall" height="16" initial_value="false" | 23 | font="SansSerifSmall" height="16" initial_value="false" |
24 | label="Antialiasing" left="148" | 24 | label="Antialiasing" left="148" |
25 | mouse_opaque="true" name="fsaa" width="64"> | 25 | mouse_opaque="true" name="fsaa" width="64"> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml index 5d97a60..8033ba7 100644 --- a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml +++ b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml | |||
@@ -1860,12 +1860,19 @@ | |||
1860 | <on_check function="Advanced.CheckShowPointAt" | 1860 | <on_check function="Advanced.CheckShowPointAt" |
1861 | userdata="" /> | 1861 | userdata="" /> |
1862 | </menu_item_check> | 1862 | </menu_item_check> |
1863 | <menu_item_check name="Private Look/Point At" | 1863 | <menu_item_check name="Private Look At" |
1864 | label="Private Look/Point At"> | 1864 | label="Private Look At"> |
1865 | <on_click function="Advanced.TogglePrivateLookPointAt" | 1865 | <on_click function="Advanced.TogglePrivateLookPointAt" |
1866 | userdata="" /> | 1866 | userdata="Look" /> |
1867 | <on_check function="Advanced.CheckPrivateLookPointAt" | 1867 | <on_check function="Advanced.CheckPrivateLookPointAt" |
1868 | userdata="" /> | 1868 | userdata="Look" /> |
1869 | </menu_item_check> | ||
1870 | <menu_item_check name="Private Point At" | ||
1871 | label="Private Point At"> | ||
1872 | <on_click function="Advanced.TogglePrivateLookPointAt" | ||
1873 | userdata="Point" /> | ||
1874 | <on_check function="Advanced.CheckPrivateLookPointAt" | ||
1875 | userdata="Point" /> | ||
1869 | </menu_item_check> | 1876 | </menu_item_check> |
1870 | <menu_item_check name="Debug Joint Updates" | 1877 | <menu_item_check name="Debug Joint Updates" |
1871 | label="Debug Joint Updates"> | 1878 | label="Debug Joint Updates"> |
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 975f10b..c59d713 100644 --- a/linden/indra/newview/skins/default/xui/en-us/notifications.xml +++ b/linden/indra/newview/skins/default/xui/en-us/notifications.xml | |||
@@ -6992,6 +6992,20 @@ Shadows cannot be enabled due to your graphics settings being set too low. Make | |||
6992 | Note: To comply with the Second Life Terms of Service, Imprudence did not download any texture files for the exported object(s). | 6992 | Note: To comply with the Second Life Terms of Service, Imprudence did not download any texture files for the exported object(s). |
6993 | </notification> | 6993 | </notification> |
6994 | 6994 | ||
6995 | <notification | ||
6996 | name="ConfirmLightShare" | ||
6997 | type="notify" | ||
6998 | icon="notify.tga"> | ||
6999 | This region is broadcasting custom sky and water settings. | ||
7000 | |||
7001 | Apply this region's settings? ("Ignore" will ignore all region settings until you leave this region.) | ||
7002 | <form name="form"> | ||
7003 | <button index="0" name="apply" text="Apply"/> | ||
7004 | <button index="1" name="temp" text="Not Now"/> | ||
7005 | <button index="2" name="region" text="Ignore"/> | ||
7006 | </form> | ||
7007 | </notification> | ||
7008 | |||
6995 | 7009 | ||
6996 | <!--End Imprudence notifications--> | 7010 | <!--End Imprudence notifications--> |
6997 | 7011 | ||
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml index af8cb1e..ce2bbc1 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml | |||
@@ -14,10 +14,24 @@ | |||
14 | font="SansSerifSmall" height="16" initial_value="false" | 14 | font="SansSerifSmall" height="16" initial_value="false" |
15 | label="Disable teleport screen" left="12" mouse_opaque="true" | 15 | label="Disable teleport screen" left="12" mouse_opaque="true" |
16 | name="disable_tp_screen_check" radio_style="false" width="217" /> | 16 | name="disable_tp_screen_check" radio_style="false" width="217" /> |
17 | <check_box bottom_delta="-25" enabled="true" follows="left|top" | 17 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
18 | bottom_delta="-25" drop_shadow_visible="true" follows="left|top" | ||
19 | font="SansSerifsmall" h_pad="0" halign="left" height="16" left="16" | ||
20 | mouse_opaque="true" name="online_no" v_pad="0" width="200"> | ||
21 | Show client names: | ||
22 | </text> | ||
23 | <check_box bottom_delta="0" enabled="true" follows="left|top" | ||
24 | font="SansSerifSmall" height="16" initial_value="false" | ||
25 | label="in nametag" left_delta="100" mouse_opaque="true" | ||
26 | name="client_name_tag_check" radio_style="false" width="160" /> | ||
27 | <check_box bottom_delta="0" enabled="true" follows="left|top" | ||
18 | font="SansSerifSmall" height="16" initial_value="false" | 28 | font="SansSerifSmall" height="16" initial_value="false" |
19 | label="Show client names in nametag" left="12" mouse_opaque="true" | 29 | label="changing nametag color" left_delta="80" mouse_opaque="true" |
20 | name="client_name_tag_check" radio_style="false" width="217" /> | 30 | name="client_name_color_check" radio_style="false" width="160" /> |
31 | <check_box bottom_delta="0" enabled="true" follows="left|top" | ||
32 | font="SansSerifSmall" height="16" initial_value="false" | ||
33 | label="in tooltip" left_delta="140" mouse_opaque="true" | ||
34 | name="client_name_hover_check" radio_style="false" width="160" /> | ||
21 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | 35 | <check_box bottom_delta="-18" enabled="true" follows="left|top" |
22 | font="SansSerifSmall" height="16" initial_value="false" | 36 | font="SansSerifSmall" height="16" initial_value="false" |
23 | label="Broadcast your client name to others" left="12" mouse_opaque="true" | 37 | label="Broadcast your client name to others" left="12" mouse_opaque="true" |
@@ -26,11 +40,28 @@ | |||
26 | font="SansSerifSmall" height="16" initial_value="false" | 40 | font="SansSerifSmall" height="16" initial_value="false" |
27 | label="Enable shadows (WARNING: unstable and requires Ultra graphics)" left="12" mouse_opaque="true" | 41 | label="Enable shadows (WARNING: unstable and requires Ultra graphics)" left="12" mouse_opaque="true" |
28 | name="shadows_check" radio_style="false" width="217" /> | 42 | name="shadows_check" radio_style="false" width="217" /> |
43 | |||
44 | |||
45 | <text bottom_delta="-25" left="16" height="15" width="220" | ||
46 | follows="top|left"> | ||
47 | Allow region Windlight settings (LightShare): | ||
48 | </text> | ||
49 | <combo_box name="lightshare_combo" | ||
50 | bottom_delta="-2" left="240" height="18" width="120" | ||
51 | allow_text_entry="false" follows="left|top"> | ||
52 | <combo_item type="string" name="never" value="0"> | ||
53 | Never | ||
54 | </combo_item> | ||
55 | <combo_item type="string" name="ask" value="1"> | ||
56 | Ask me every time | ||
57 | </combo_item> | ||
58 | <combo_item type="string" name="always" value="2"> | ||
59 | Always | ||
60 | </combo_item> | ||
61 | </combo_box> | ||
62 | |||
63 | |||
29 | <check_box bottom_delta="-25" enabled="true" follows="left|top" | 64 | <check_box bottom_delta="-25" enabled="true" follows="left|top" |
30 | font="SansSerifSmall" height="16" initial_value="true" | ||
31 | label="Use server-side WindLight settings" left="12" mouse_opaque="true" | ||
32 | name="windlight_check" radio_style="false" width="217" /> | ||
33 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | ||
34 | font="SansSerifSmall" height="16" initial_value="false" | 65 | font="SansSerifSmall" height="16" initial_value="false" |
35 | label="Use HTTP texture fetching" left="12" mouse_opaque="true" | 66 | label="Use HTTP texture fetching" left="12" mouse_opaque="true" |
36 | name="http_texture_check" radio_style="false" width="217" /> | 67 | name="http_texture_check" radio_style="false" width="217" /> |
@@ -63,6 +94,20 @@ | |||
63 | mouse_opaque="true" name="language_is_public" | 94 | mouse_opaque="true" name="language_is_public" |
64 | radio_style="false" tool_tip="This lets in-world objects know your preferred language." | 95 | radio_style="false" tool_tip="This lets in-world objects know your preferred language." |
65 | width="256" /> | 96 | width="256" /> |
97 | |||
98 | <check_box bottom_delta="-25" enabled="true" | ||
99 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | ||
100 | initial_value="false" label="Use MU* pose style chat and IM" left="12" | ||
101 | mouse_opaque="true" name="allow_mupose" | ||
102 | radio_style="false" tool_tip="Use MU* pose style in chat and IM (with ':' as a synonymous to '/me ')." | ||
103 | width="256" /> | ||
104 | <check_box bottom_delta="0" enabled="true" | ||
105 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | ||
106 | initial_value="false" label="Auto-close OOC chat" left_delta="180" | ||
107 | mouse_opaque="true" name="auto_close_ooc" | ||
108 | radio_style="false" tool_tip="Auto-close OOC chat (i.e. add )) if not found and (( was used)." | ||
109 | width="256" /> | ||
110 | |||
66 | <!-- Uncomment when we start using the crash logger - MC --> | 111 | <!-- Uncomment when we start using the crash logger - MC --> |
67 | <!--<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 112 | <!--<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
68 | bottom_delta="-30" drop_shadow_visible="true" enabled="true" follows="left|top" | 113 | bottom_delta="-30" drop_shadow_visible="true" enabled="true" follows="left|top" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml index 49ab842..199f2a8 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml | |||
@@ -117,7 +117,7 @@ | |||
117 | I want to access content rated: | 117 | I want to access content rated: |
118 | </text> | 118 | </text> |
119 | <combo_box bottom="-318" follows="left|top" height="18" left="315" | 119 | <combo_box bottom="-318" follows="left|top" height="18" left="315" |
120 | mouse_opaque="true" name="maturity_desired_combobox" width="150" control_name="PreferredMaturity"> | 120 | mouse_opaque="true" name="maturity_desired_combobox" width="150"> |
121 | <combo_item name="Desired_Adult" value="42"> | 121 | <combo_item name="Desired_Adult" value="42"> |
122 | PG, Mature and Adult | 122 | PG, Mature and Adult |
123 | </combo_item> | 123 | </combo_item> |