aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/newview')
-rw-r--r--linden/indra/newview/CMakeLists.txt60
-rw-r--r--linden/indra/newview/app_settings/logcontrol.xml7
-rw-r--r--linden/indra/newview/app_settings/settings.xml13
-rw-r--r--linden/indra/newview/llappviewer.cpp8
-rw-r--r--linden/indra/newview/llaudiosourcevo.cpp2
-rw-r--r--linden/indra/newview/llfloaterabout.cpp5
-rw-r--r--linden/indra/newview/llpanelface.cpp31
-rw-r--r--linden/indra/newview/llpanelface.h1
-rw-r--r--linden/indra/newview/llpanelobject.cpp61
-rw-r--r--linden/indra/newview/llpanelobject.h1
-rw-r--r--linden/indra/newview/llpreviewlandmark.cpp10
-rw-r--r--linden/indra/newview/llpreviewsound.cpp3
-rw-r--r--linden/indra/newview/llstartup.cpp44
-rw-r--r--linden/indra/newview/llvieweraudio.cpp84
-rw-r--r--linden/indra/newview/llvieweraudio.h2
-rw-r--r--linden/indra/newview/llviewermessage.cpp9
-rw-r--r--linden/indra/newview/llviewertexteditor.cpp3
-rw-r--r--linden/indra/newview/llvoavatar.cpp11
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/alerts.xml67
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml164
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_tools.xml48
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/strings.xml360
-rw-r--r--linden/indra/newview/skins/silver/colors_base.xml13
-rwxr-xr-xlinden/indra/newview/viewer_manifest.py57
24 files changed, 650 insertions, 414 deletions
diff --git a/linden/indra/newview/CMakeLists.txt b/linden/indra/newview/CMakeLists.txt
index ddf6897..0205ceb 100644
--- a/linden/indra/newview/CMakeLists.txt
+++ b/linden/indra/newview/CMakeLists.txt
@@ -8,6 +8,7 @@ include(BuildVersion)
8include(DirectX) 8include(DirectX)
9include(ELFIO) 9include(ELFIO)
10include(FMOD) 10include(FMOD)
11include(OPENAL)
11include(FindOpenGL) 12include(FindOpenGL)
12include(LLAudio) 13include(LLAudio)
13include(LLCharacter) 14include(LLCharacter)
@@ -31,7 +32,6 @@ include(NDOF)
31include(TemplateCheck) 32include(TemplateCheck)
32include(UI) 33include(UI)
33include(UnixInstall) 34include(UnixInstall)
34include(LLKDU)
35include(ViewerMiscLibs) 35include(ViewerMiscLibs)
36 36
37if (WINDOWS) 37if (WINDOWS)
@@ -56,6 +56,7 @@ include_directories(
56 ${LLXML_INCLUDE_DIRS} 56 ${LLXML_INCLUDE_DIRS}
57 ${LSCRIPT_INCLUDE_DIRS} 57 ${LSCRIPT_INCLUDE_DIRS}
58 ${LSCRIPT_INCLUDE_DIRS}/lscript_compile 58 ${LSCRIPT_INCLUDE_DIRS}/lscript_compile
59 ${GSTREAMER_INCLUDE_DIRS}
59 ) 60 )
60 61
61set(viewer_SOURCE_FILES 62set(viewer_SOURCE_FILES
@@ -430,6 +431,9 @@ set(viewer_SOURCE_FILES
430 pipeline.cpp 431 pipeline.cpp
431 ) 432 )
432 433
434set(VIEWER_BINARY_NAME "imprudence-bin" CACHE STRING
435 "The name of the viewer executable to create.")
436
433if (LINUX) 437if (LINUX)
434 # We can't set these flags for Darwin, because they get passed to 438 # We can't set these flags for Darwin, because they get passed to
435 # the PPC compiler. Ugh. 439 # the PPC compiler. Ugh.
@@ -850,8 +854,8 @@ if (DARWIN)
850 secondlife.icns 854 secondlife.icns
851 macview.r 855 macview.r
852 gpu_table.txt 856 gpu_table.txt
853 Info-SecondLife.plist 857 Info-Imprudence.plist
854 SecondLife.nib/ 858 Imprudence.nib/
855 # CMake doesn't seem to support Xcode language variants well just yet 859 # CMake doesn't seem to support Xcode language variants well just yet
856 English.lproj/InfoPlist.strings 860 English.lproj/InfoPlist.strings
857 English.lproj/language.txt 861 English.lproj/language.txt
@@ -1239,8 +1243,13 @@ set_source_files_properties(${viewer_CHARACTER_FILES}
1239 1243
1240list(APPEND viewer_SOURCE_FILES ${viewer_CHARACTER_FILES}) 1244list(APPEND viewer_SOURCE_FILES ${viewer_CHARACTER_FILES})
1241 1245
1246
1247if (OPENAL)
1248 set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_OPENAL")
1249endif (OPENAL)
1250
1242if (FMOD) 1251if (FMOD)
1243 set_source_files_properties(llstartup.cpp PROPERTIES COMPILE_FLAGS -DLL_FMOD) 1252 set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMOD")
1244 1253
1245 if (NOT WINDOWS) 1254 if (NOT WINDOWS)
1246 set(fmodwrapper_SOURCE_FILES fmodwrapper.cpp) 1255 set(fmodwrapper_SOURCE_FILES fmodwrapper.cpp)
@@ -1260,6 +1269,8 @@ if (FMOD)
1260 endif (NOT WINDOWS) 1269 endif (NOT WINDOWS)
1261endif (FMOD) 1270endif (FMOD)
1262 1271
1272set_source_files_properties(llstartup.cpp PROPERTIES COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS}")
1273
1263list(APPEND viewer_SOURCE_FILES ${viewer_HEADER_FILES}) 1274list(APPEND viewer_SOURCE_FILES ${viewer_HEADER_FILES})
1264 1275
1265set_source_files_properties(${viewer_HEADER_FILES} 1276set_source_files_properties(${viewer_HEADER_FILES}
@@ -1272,10 +1283,6 @@ add_executable(imprudence-bin
1272 ) 1283 )
1273check_message_template(imprudence-bin) 1284check_message_template(imprudence-bin)
1274 1285
1275if (LLKDU_LIBRARY)
1276 add_dependencies(imprudence-bin ${LLKDU_LIBRARY})
1277endif (LLKDU_LIBRARY)
1278
1279set(PACKAGE OFF CACHE BOOL 1286set(PACKAGE OFF CACHE BOOL
1280 "Add a package target that builds an installer package.") 1287 "Add a package target that builds an installer package.")
1281 1288
@@ -1467,24 +1474,27 @@ if (DARWIN)
1467 ) 1474 )
1468 1475
1469 if (PACKAGE) 1476 if (PACKAGE)
1470 add_custom_target(package 1477 add_custom_target(package ALL DEPENDS imprudence-bin)
1471 COMMAND
1472 ${PYTHON_EXECUTABLE}
1473 ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
1474 --grid=${GRID}
1475 --configuration=${CMAKE_CFG_INTDIR}
1476 --channel=${VIEWER_CHANNEL}
1477 --login_channel=${VIEWER_CHANNEL}
1478 --source=${CMAKE_CURRENT_SOURCE_DIR}
1479 --artwork=${ARTWORK_DIR}
1480 --build=${CMAKE_CURRENT_BINARY_DIR}
1481 --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app
1482 --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched
1483 DEPENDS
1484 imprudence-bin
1485 ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
1486 )
1487 add_dependencies(package mac-updater mac-crash-logger) 1478 add_dependencies(package mac-updater mac-crash-logger)
1479
1480 add_custom_command(
1481 TARGET package POST_BUILD
1482 COMMAND ${PYTHON_EXECUTABLE}
1483 ARGS
1484 ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
1485 --grid=${GRID}
1486 --configuration=${CMAKE_CFG_INTDIR}
1487 --channel=${VIEWER_CHANNEL}
1488 --login_channel=${VIEWER_LOGIN_CHANNEL}
1489 --source=${CMAKE_CURRENT_SOURCE_DIR}
1490 --artwork=${ARTWORK_DIR}
1491 --build=${CMAKE_CURRENT_BINARY_DIR}
1492 --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app
1493 --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched
1494 DEPENDS
1495 ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
1496 )
1497
1488 endif (PACKAGE) 1498 endif (PACKAGE)
1489endif (DARWIN) 1499endif (DARWIN)
1490 1500
diff --git a/linden/indra/newview/app_settings/logcontrol.xml b/linden/indra/newview/app_settings/logcontrol.xml
index d7bb64c..f3b08f9 100644
--- a/linden/indra/newview/app_settings/logcontrol.xml
+++ b/linden/indra/newview/app_settings/logcontrol.xml
@@ -40,6 +40,13 @@
40 </array> 40 </array>
41 <key>tags</key> 41 <key>tags</key>
42 <array> 42 <array>
43 <string>OpenAL</string>
44 <string>AudioEngine</string>
45 <string>MediaImpl</string>
46 <string>MediaInfo</string>
47 <string>MediaCallback</string>
48 <string>MediaBuffering</string>
49 <string>MediaState</string>
43 </array> 50 </array>
44 </map> 51 </map>
45 </array> 52 </array>
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml
index ca3dd81..7e591bf 100644
--- a/linden/indra/newview/app_settings/settings.xml
+++ b/linden/indra/newview/app_settings/settings.xml
@@ -4820,7 +4820,7 @@
4820 <key>MuteAmbient</key> 4820 <key>MuteAmbient</key>
4821 <map> 4821 <map>
4822 <key>Comment</key> 4822 <key>Comment</key>
4823 <string>Ambient sound effects, such as wind noise, play at 0 volume</string> 4823 <string>Ambient sound effects, play at 0 volume</string>
4824 <key>Persist</key> 4824 <key>Persist</key>
4825 <integer>1</integer> 4825 <integer>1</integer>
4826 <key>Type</key> 4826 <key>Type</key>
@@ -4905,6 +4905,17 @@
4905 <key>Value</key> 4905 <key>Value</key>
4906 <integer>1</integer> 4906 <integer>1</integer>
4907 </map> 4907 </map>
4908 <key>MuteWind</key>
4909 <map>
4910 <key>Comment</key>
4911 <string>Mute inworld wind generation</string>
4912 <key>Persist</key>
4913 <integer>1</integer>
4914 <key>Type</key>
4915 <string>Boolean</string>
4916 <key>Value</key>
4917 <integer>1</integer>
4918 </map>
4908 <key>NewCacheLocation</key> 4919 <key>NewCacheLocation</key>
4909 <map> 4920 <map>
4910 <key>Comment</key> 4921 <key>Comment</key>
diff --git a/linden/indra/newview/llappviewer.cpp b/linden/indra/newview/llappviewer.cpp
index 14214b5..9e68078 100644
--- a/linden/indra/newview/llappviewer.cpp
+++ b/linden/indra/newview/llappviewer.cpp
@@ -109,6 +109,7 @@
109#include "llpostprocess.h" 109#include "llpostprocess.h"
110#include "llwlparammanager.h" 110#include "llwlparammanager.h"
111#include "llwaterparammanager.h" 111#include "llwaterparammanager.h"
112#include "llcalc.h"
112 113
113#include "lldebugview.h" 114#include "lldebugview.h"
114#include "llconsole.h" 115#include "llconsole.h"
@@ -1176,10 +1177,13 @@ bool LLAppViewer::cleanup()
1176 LLNotifyBox::cleanup(); 1177 LLNotifyBox::cleanup();
1177 1178
1178 LLWorldMap::getInstance()->reset(); // release any images 1179 LLWorldMap::getInstance()->reset(); // release any images
1180
1181 LLCalc::cleanUp();
1179 1182
1180 llinfos << "Global stuff deleted" << llendflush; 1183 llinfos << "Global stuff deleted" << llendflush;
1181 1184
1182#if !LL_RELEASE_FOR_DOWNLOAD 1185#if (!defined(LL_FMOD)) || (!LL_RELEASE_FOR_DOWNLOAD)
1186 // OpenAL likes to crash on exit if we *don't* explicitly shut it down.
1183 if (gAudiop) 1187 if (gAudiop)
1184 { 1188 {
1185 gAudiop->shutdown(); 1189 gAudiop->shutdown();
@@ -1601,7 +1605,7 @@ bool LLAppViewer::initConfiguration()
1601 1605
1602 // - set procedural settings 1606 // - set procedural settings
1603 gSavedSettings.setString("ClientSettingsFile", 1607 gSavedSettings.setString("ClientSettingsFile",
1604 gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, getSettingsFileName("Global"))); 1608 gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "settings_imprudence.xml"));
1605 1609
1606 gSavedSettings.setString("VersionChannelName", IMP_VIEWER_NAME); 1610 gSavedSettings.setString("VersionChannelName", IMP_VIEWER_NAME);
1607 1611
diff --git a/linden/indra/newview/llaudiosourcevo.cpp b/linden/indra/newview/llaudiosourcevo.cpp
index e668078..9c25d94 100644
--- a/linden/indra/newview/llaudiosourcevo.cpp
+++ b/linden/indra/newview/llaudiosourcevo.cpp
@@ -39,7 +39,7 @@
39#include "llviewerparcelmgr.h" 39#include "llviewerparcelmgr.h"
40 40
41LLAudioSourceVO::LLAudioSourceVO(const LLUUID &sound_id, const LLUUID& owner_id, const F32 gain, LLViewerObject *objectp) 41LLAudioSourceVO::LLAudioSourceVO(const LLUUID &sound_id, const LLUUID& owner_id, const F32 gain, LLViewerObject *objectp)
42: LLAudioSource(sound_id, owner_id, gain), 42: LLAudioSource(sound_id, owner_id, gain, LLAudioEngine::AUDIO_TYPE_SFX),
43 mObjectp(objectp), 43 mObjectp(objectp),
44 mActualGain(gain) 44 mActualGain(gain)
45{ 45{
diff --git a/linden/indra/newview/llfloaterabout.cpp b/linden/indra/newview/llfloaterabout.cpp
index af436c5..4953410 100644
--- a/linden/indra/newview/llfloaterabout.cpp
+++ b/linden/indra/newview/llfloaterabout.cpp
@@ -41,6 +41,7 @@
41 41
42#include "llcurl.h" 42#include "llcurl.h"
43#include "llimagej2c.h" 43#include "llimagej2c.h"
44#include "audioengine.h"
44 45
45#include "llviewertexteditor.h" 46#include "llviewertexteditor.h"
46#include "llviewercontrol.h" 47#include "llviewercontrol.h"
@@ -200,6 +201,10 @@ LLFloaterAbout::LLFloaterAbout()
200 support.append( LLImageJ2C::getEngineInfo() ); 201 support.append( LLImageJ2C::getEngineInfo() );
201 support.append("\n"); 202 support.append("\n");
202 203
204 support.append("Audio Driver Version: ");
205 support.append( gAudiop ? gAudiop->getDriverName(true) : "(none)" );
206 support.append("\n");
207
203 LLMediaManager *mgr = LLMediaManager::getInstance(); 208 LLMediaManager *mgr = LLMediaManager::getInstance();
204 if (mgr) 209 if (mgr)
205 { 210 {
diff --git a/linden/indra/newview/llpanelface.cpp b/linden/indra/newview/llpanelface.cpp
index 4742627..d1c34f1 100644
--- a/linden/indra/newview/llpanelface.cpp
+++ b/linden/indra/newview/llpanelface.cpp
@@ -35,6 +35,7 @@
35#include "llpanelface.h" 35#include "llpanelface.h"
36 36
37// library includes 37// library includes
38#include "llcalc.h"
38#include "llerror.h" 39#include "llerror.h"
39#include "llfocusmgr.h" 40#include "llfocusmgr.h"
40#include "llrect.h" 41#include "llrect.h"
@@ -60,6 +61,7 @@
60#include "llviewermedia.h" 61#include "llviewermedia.h"
61#include "llviewerobject.h" 62#include "llviewerobject.h"
62#include "llviewerstats.h" 63#include "llviewerstats.h"
64#include "llviewerwindow.h"
63#include "lluictrlfactory.h" 65#include "lluictrlfactory.h"
64 66
65// 67//
@@ -179,6 +181,7 @@ BOOL LLPanelFace::postBuild()
179 childSetCommitCallback("TexOffsetU",LLPanelFace::onCommitTextureInfo, this); 181 childSetCommitCallback("TexOffsetU",LLPanelFace::onCommitTextureInfo, this);
180 childSetCommitCallback("TexOffsetV",LLPanelFace::onCommitTextureInfo, this); 182 childSetCommitCallback("TexOffsetV",LLPanelFace::onCommitTextureInfo, this);
181 childSetAction("button align",onClickAutoFix,this); 183 childSetAction("button align",onClickAutoFix,this);
184 childSetAction("texture_math_constants",onClickTextureConstants,this);
182 185
183 clearCtrls(); 186 clearCtrls();
184 187
@@ -381,6 +384,7 @@ void LLPanelFace::sendTextureInfo()
381void LLPanelFace::getState() 384void LLPanelFace::getState()
382{ 385{
383 LLViewerObject* objectp = LLSelectMgr::getInstance()->getSelection()->getFirstObject(); 386 LLViewerObject* objectp = LLSelectMgr::getInstance()->getSelection()->getFirstObject();
387 LLCalc* calcp = LLCalc::getInstance();
384 388
385 if( objectp 389 if( objectp
386 && objectp->getPCode() == LL_PCODE_VOLUME 390 && objectp->getPCode() == LL_PCODE_VOLUME
@@ -754,6 +758,16 @@ void LLPanelFace::getState()
754 childSetEnabled("button apply",enabled); 758 childSetEnabled("button apply",enabled);
755 } 759 }
756 } 760 }
761 childSetEnabled("texture_math_constants",true);
762
763 // Set variable values for numeric expressions
764 calcp->setVar(LLCalc::TEX_U_SCALE, childGetValue("TexScaleU").asReal());
765 calcp->setVar(LLCalc::TEX_V_SCALE, childGetValue("TexScaleV").asReal());
766 calcp->setVar(LLCalc::TEX_U_OFFSET, childGetValue("TexOffsetU").asReal());
767 calcp->setVar(LLCalc::TEX_V_OFFSET, childGetValue("TexOffsetV").asReal());
768 calcp->setVar(LLCalc::TEX_ROTATION, childGetValue("TexRot").asReal());
769 calcp->setVar(LLCalc::TEX_TRANSPARENCY, childGetValue("ColorTrans").asReal());
770 calcp->setVar(LLCalc::TEX_GLOW, childGetValue("glow").asReal());
757 } 771 }
758 else 772 else
759 { 773 {
@@ -787,6 +801,17 @@ void LLPanelFace::getState()
787 801
788 childSetEnabled("button align",FALSE); 802 childSetEnabled("button align",FALSE);
789 childSetEnabled("button apply",FALSE); 803 childSetEnabled("button apply",FALSE);
804
805 childSetEnabled("texture_math_constants",false);
806
807 // Set variable values for numeric expressions
808 calcp->clearVar(LLCalc::TEX_U_SCALE);
809 calcp->clearVar(LLCalc::TEX_V_SCALE);
810 calcp->clearVar(LLCalc::TEX_U_OFFSET);
811 calcp->clearVar(LLCalc::TEX_V_OFFSET);
812 calcp->clearVar(LLCalc::TEX_ROTATION);
813 calcp->clearVar(LLCalc::TEX_TRANSPARENCY);
814 calcp->clearVar(LLCalc::TEX_GLOW);
790 } 815 }
791} 816}
792 817
@@ -969,3 +994,9 @@ void LLPanelFace::onClickAutoFix(void* userdata)
969 LLPanelFaceSendFunctor sendfunc; 994 LLPanelFaceSendFunctor sendfunc;
970 LLSelectMgr::getInstance()->getSelection()->applyToObjects(&sendfunc); 995 LLSelectMgr::getInstance()->getSelection()->applyToObjects(&sendfunc);
971} 996}
997
998// static
999void LLPanelFace::onClickTextureConstants(void *)
1000{
1001 gViewerWindow->alertXml("ClickTextureConstants");
1002} \ No newline at end of file
diff --git a/linden/indra/newview/llpanelface.h b/linden/indra/newview/llpanelface.h
index 230772b..b977583 100644
--- a/linden/indra/newview/llpanelface.h
+++ b/linden/indra/newview/llpanelface.h
@@ -88,6 +88,7 @@ protected:
88 88
89 static void onClickApply(void*); 89 static void onClickApply(void*);
90 static void onClickAutoFix(void*); 90 static void onClickAutoFix(void*);
91 static void onClickTextureConstants(void *);
91 static F32 valueGlow(LLViewerObject* object, S32 face); 92 static F32 valueGlow(LLViewerObject* object, S32 face);
92}; 93};
93 94
diff --git a/linden/indra/newview/llpanelobject.cpp b/linden/indra/newview/llpanelobject.cpp
index cc9d969..5cd8690 100644
--- a/linden/indra/newview/llpanelobject.cpp
+++ b/linden/indra/newview/llpanelobject.cpp
@@ -46,6 +46,7 @@
46// project includes 46// project includes
47#include "llagent.h" 47#include "llagent.h"
48#include "llbutton.h" 48#include "llbutton.h"
49#include "llcalc.h"
49#include "llcheckboxctrl.h" 50#include "llcheckboxctrl.h"
50#include "llcolorswatch.h" 51#include "llcolorswatch.h"
51#include "llcombobox.h" 52#include "llcombobox.h"
@@ -109,6 +110,9 @@ BOOL LLPanelObject::postBuild()
109 // Top 110 // Top
110 //-------------------------------------------------------- 111 //--------------------------------------------------------
111 112
113 // Build constant tipsheet
114 childSetAction("build_math_constants",onClickBuildConstants,this);
115
112 // Lock checkbox 116 // Lock checkbox
113 mCheckLock = getChild<LLCheckBoxCtrl>("checkbox locked"); 117 mCheckLock = getChild<LLCheckBoxCtrl>("checkbox locked");
114 childSetCommitCallback("checkbox locked",onCommitLock,this); 118 childSetCommitCallback("checkbox locked",onCommitLock,this);
@@ -341,6 +345,8 @@ void LLPanelObject::getState( )
341 } 345 }
342 } 346 }
343 347
348 LLCalc* calcp = LLCalc::getInstance();
349
344 LLVOVolume *volobjp = NULL; 350 LLVOVolume *volobjp = NULL;
345 if ( objectp && (objectp->getPCode() == LL_PCODE_VOLUME)) 351 if ( objectp && (objectp->getPCode() == LL_PCODE_VOLUME))
346 { 352 {
@@ -357,6 +363,7 @@ void LLPanelObject::getState( )
357 363
358 // Disable all text input fields 364 // Disable all text input fields
359 clearCtrls(); 365 clearCtrls();
366 calcp->clearAllVariables();
360 return; 367 return;
361 } 368 }
362 369
@@ -365,6 +372,7 @@ void LLPanelObject::getState( )
365 BOOL enable_scale = objectp->permMove() && objectp->permModify(); 372 BOOL enable_scale = objectp->permMove() && objectp->permModify();
366 BOOL enable_rotate = objectp->permMove() && ( (objectp->permModify() && !objectp->isAttachment()) || !gSavedSettings.getBOOL("EditLinkedParts")); 373 BOOL enable_rotate = objectp->permMove() && ( (objectp->permModify() && !objectp->isAttachment()) || !gSavedSettings.getBOOL("EditLinkedParts"));
367 374
375 childSetEnabled("build_math_constants",true);
368 LLVector3 vec; 376 LLVector3 vec;
369 if (enable_move) 377 if (enable_move)
370 { 378 {
@@ -372,12 +380,18 @@ void LLPanelObject::getState( )
372 mCtrlPosX->set( vec.mV[VX] ); 380 mCtrlPosX->set( vec.mV[VX] );
373 mCtrlPosY->set( vec.mV[VY] ); 381 mCtrlPosY->set( vec.mV[VY] );
374 mCtrlPosZ->set( vec.mV[VZ] ); 382 mCtrlPosZ->set( vec.mV[VZ] );
383 calcp->setVar(LLCalc::X_POS, vec.mV[VX]);
384 calcp->setVar(LLCalc::Y_POS, vec.mV[VY]);
385 calcp->setVar(LLCalc::Z_POS, vec.mV[VZ]);
375 } 386 }
376 else 387 else
377 { 388 {
378 mCtrlPosX->clear(); 389 mCtrlPosX->clear();
379 mCtrlPosY->clear(); 390 mCtrlPosY->clear();
380 mCtrlPosZ->clear(); 391 mCtrlPosZ->clear();
392 calcp->clearVar(LLCalc::X_POS);
393 calcp->clearVar(LLCalc::Y_POS);
394 calcp->clearVar(LLCalc::Z_POS);
381 } 395 }
382 396
383 397
@@ -392,12 +406,18 @@ void LLPanelObject::getState( )
392 mCtrlScaleX->set( vec.mV[VX] ); 406 mCtrlScaleX->set( vec.mV[VX] );
393 mCtrlScaleY->set( vec.mV[VY] ); 407 mCtrlScaleY->set( vec.mV[VY] );
394 mCtrlScaleZ->set( vec.mV[VZ] ); 408 mCtrlScaleZ->set( vec.mV[VZ] );
409 calcp->setVar(LLCalc::X_SCALE, vec.mV[VX]);
410 calcp->setVar(LLCalc::Y_SCALE, vec.mV[VY]);
411 calcp->setVar(LLCalc::Z_SCALE, vec.mV[VZ]);
395 } 412 }
396 else 413 else
397 { 414 {
398 mCtrlScaleX->clear(); 415 mCtrlScaleX->clear();
399 mCtrlScaleY->clear(); 416 mCtrlScaleY->clear();
400 mCtrlScaleZ->clear(); 417 mCtrlScaleZ->clear();
418 calcp->setVar(LLCalc::X_SCALE, 0.f);
419 calcp->setVar(LLCalc::Y_SCALE, 0.f);
420 calcp->setVar(LLCalc::Z_SCALE, 0.f);
401 } 421 }
402 422
403 mLabelSize->setEnabled( enable_scale ); 423 mLabelSize->setEnabled( enable_scale );
@@ -417,12 +437,18 @@ void LLPanelObject::getState( )
417 mCtrlRotX->set( mCurEulerDegrees.mV[VX] ); 437 mCtrlRotX->set( mCurEulerDegrees.mV[VX] );
418 mCtrlRotY->set( mCurEulerDegrees.mV[VY] ); 438 mCtrlRotY->set( mCurEulerDegrees.mV[VY] );
419 mCtrlRotZ->set( mCurEulerDegrees.mV[VZ] ); 439 mCtrlRotZ->set( mCurEulerDegrees.mV[VZ] );
440 calcp->setVar(LLCalc::X_ROT, mCurEulerDegrees.mV[VX]);
441 calcp->setVar(LLCalc::Y_ROT, mCurEulerDegrees.mV[VY]);
442 calcp->setVar(LLCalc::Z_ROT, mCurEulerDegrees.mV[VZ]);
420 } 443 }
421 else 444 else
422 { 445 {
423 mCtrlRotX->clear(); 446 mCtrlRotX->clear();
424 mCtrlRotY->clear(); 447 mCtrlRotY->clear();
425 mCtrlRotZ->clear(); 448 mCtrlRotZ->clear();
449 calcp->clearVar(LLCalc::X_ROT);
450 calcp->clearVar(LLCalc::Y_ROT);
451 calcp->clearVar(LLCalc::Z_ROT);
426 } 452 }
427 453
428 mLabelRotation->setEnabled( enable_rotate ); 454 mLabelRotation->setEnabled( enable_rotate );
@@ -678,8 +704,9 @@ void LLPanelObject::getState( )
678 F32 end_t = volume_params.getEndT(); 704 F32 end_t = volume_params.getEndT();
679 705
680 // Hollowness 706 // Hollowness
681 F32 hollow = volume_params.getHollow(); 707 F32 hollow = 100.f * volume_params.getHollow();
682 mSpinHollow->set( 100.f * hollow ); 708 mSpinHollow->set( hollow );
709 calcp->setVar(LLCalc::HOLLOW, hollow);
683 710
684 // All hollow objects allow a shape to be selected. 711 // All hollow objects allow a shape to be selected.
685 if (hollow > 0.f) 712 if (hollow > 0.f)
@@ -732,6 +759,10 @@ void LLPanelObject::getState( )
732 mSpinCutEnd ->set( cut_end ); 759 mSpinCutEnd ->set( cut_end );
733 mCtrlPathBegin ->set( adv_cut_begin ); 760 mCtrlPathBegin ->set( adv_cut_begin );
734 mCtrlPathEnd ->set( adv_cut_end ); 761 mCtrlPathEnd ->set( adv_cut_end );
762 calcp->setVar(LLCalc::CUT_BEGIN, cut_begin);
763 calcp->setVar(LLCalc::CUT_END, cut_end);
764 calcp->setVar(LLCalc::PATH_BEGIN, adv_cut_begin);
765 calcp->setVar(LLCalc::PATH_END, adv_cut_end);
735 766
736 // Twist 767 // Twist
737 F32 twist = volume_params.getTwist(); 768 F32 twist = volume_params.getTwist();
@@ -750,18 +781,24 @@ void LLPanelObject::getState( )
750 781
751 mSpinTwist ->set( twist ); 782 mSpinTwist ->set( twist );
752 mSpinTwistBegin ->set( twist_begin ); 783 mSpinTwistBegin ->set( twist_begin );
784 calcp->setVar(LLCalc::TWIST_END, twist);
785 calcp->setVar(LLCalc::TWIST_BEGIN, twist_begin);
753 786
754 // Shear 787 // Shear
755 F32 shear_x = volume_params.getShearX(); 788 F32 shear_x = volume_params.getShearX();
756 F32 shear_y = volume_params.getShearY(); 789 F32 shear_y = volume_params.getShearY();
757 mSpinShearX->set( shear_x ); 790 mSpinShearX->set( shear_x );
758 mSpinShearY->set( shear_y ); 791 mSpinShearY->set( shear_y );
792 calcp->setVar(LLCalc::X_SHEAR, shear_x);
793 calcp->setVar(LLCalc::Y_SHEAR, shear_y);
759 794
760 // Taper 795 // Taper
761 F32 taper_x = volume_params.getTaperX(); 796 F32 taper_x = volume_params.getTaperX();
762 F32 taper_y = volume_params.getTaperY(); 797 F32 taper_y = volume_params.getTaperY();
763 mSpinTaperX->set( taper_x ); 798 mSpinTaperX->set( taper_x );
764 mSpinTaperY->set( taper_y ); 799 mSpinTaperY->set( taper_y );
800 calcp->setVar(LLCalc::X_TAPER, taper_x);
801 calcp->setVar(LLCalc::Y_TAPER, taper_y);
765 802
766 // Radius offset. 803 // Radius offset.
767 F32 radius_offset = volume_params.getRadiusOffset(); 804 F32 radius_offset = volume_params.getRadiusOffset();
@@ -791,10 +828,12 @@ void LLPanelObject::getState( )
791 } 828 }
792 } 829 }
793 mSpinRadiusOffset->set( radius_offset); 830 mSpinRadiusOffset->set( radius_offset);
831 calcp->setVar(LLCalc::RADIUS_OFFSET, radius_offset);
794 832
795 // Revolutions 833 // Revolutions
796 F32 revolutions = volume_params.getRevolutions(); 834 F32 revolutions = volume_params.getRevolutions();
797 mSpinRevolutions->set( revolutions ); 835 mSpinRevolutions->set( revolutions );
836 calcp->setVar(LLCalc::REVOLUTIONS, revolutions);
798 837
799 // Skew 838 // Skew
800 F32 skew = volume_params.getSkew(); 839 F32 skew = volume_params.getSkew();
@@ -819,6 +858,7 @@ void LLPanelObject::getState( )
819 } 858 }
820 } 859 }
821 mSpinSkew->set( skew ); 860 mSpinSkew->set( skew );
861 calcp->setVar(LLCalc::SKEW, skew);
822 } 862 }
823 863
824 // Compute control visibility, label names, and twist range. 864 // Compute control visibility, label names, and twist range.
@@ -924,6 +964,8 @@ void LLPanelObject::getState( )
924 case MI_RING: 964 case MI_RING:
925 mSpinScaleX->set( scale_x ); 965 mSpinScaleX->set( scale_x );
926 mSpinScaleY->set( scale_y ); 966 mSpinScaleY->set( scale_y );
967 calcp->setVar(LLCalc::X_HOLE, scale_x);
968 calcp->setVar(LLCalc::Y_HOLE, scale_y);
927 mSpinScaleX->setMinValue(OBJECT_MIN_HOLE_SIZE); 969 mSpinScaleX->setMinValue(OBJECT_MIN_HOLE_SIZE);
928 mSpinScaleX->setMaxValue(OBJECT_MAX_HOLE_SIZE_X); 970 mSpinScaleX->setMaxValue(OBJECT_MAX_HOLE_SIZE_X);
929 mSpinScaleY->setMinValue(OBJECT_MIN_HOLE_SIZE); 971 mSpinScaleY->setMinValue(OBJECT_MIN_HOLE_SIZE);
@@ -934,6 +976,8 @@ void LLPanelObject::getState( )
934 { 976 {
935 mSpinScaleX->set( 1.f - scale_x ); 977 mSpinScaleX->set( 1.f - scale_x );
936 mSpinScaleY->set( 1.f - scale_y ); 978 mSpinScaleY->set( 1.f - scale_y );
979 calcp->setVar(LLCalc::X_HOLE, 1.f - scale_x);
980 calcp->setVar(LLCalc::Y_HOLE, 1.f - scale_y);
937 mSpinScaleX->setMinValue(-1.f); 981 mSpinScaleX->setMinValue(-1.f);
938 mSpinScaleX->setMaxValue(1.f); 982 mSpinScaleX->setMaxValue(1.f);
939 mSpinScaleY->setMinValue(-1.f); 983 mSpinScaleY->setMinValue(-1.f);
@@ -1148,7 +1192,7 @@ void LLPanelObject::getState( )
1148 mSculptTextureRevert = LLUUID::null; 1192 mSculptTextureRevert = LLUUID::null;
1149 } 1193 }
1150 1194
1151 1195
1152 //---------------------------------------------------------------------------- 1196 //----------------------------------------------------------------------------
1153 1197
1154 mObject = objectp; 1198 mObject = objectp;
@@ -1913,6 +1957,8 @@ void LLPanelObject::clearCtrls()
1913 childSetEnabled( "advanced_cut", FALSE ); 1957 childSetEnabled( "advanced_cut", FALSE );
1914 childSetEnabled( "advanced_dimple", FALSE ); 1958 childSetEnabled( "advanced_dimple", FALSE );
1915 childSetVisible("advanced_slice", FALSE); 1959 childSetVisible("advanced_slice", FALSE);
1960
1961 childSetEnabled("build_math_constants",false);
1916} 1962}
1917 1963
1918// 1964//
@@ -1954,6 +2000,9 @@ void LLPanelObject::onCommitRotation( LLUICtrl* ctrl, void* userdata )
1954 LLPanelObject* self = (LLPanelObject*) userdata; 2000 LLPanelObject* self = (LLPanelObject*) userdata;
1955 BOOL btn_down = ((LLSpinCtrl*)ctrl)->isMouseHeldDown() ; 2001 BOOL btn_down = ((LLSpinCtrl*)ctrl)->isMouseHeldDown() ;
1956 self->sendRotation(btn_down); 2002 self->sendRotation(btn_down);
2003
2004 // Needed to ensure all rotations are shown consistently in range
2005 self->refresh();
1957} 2006}
1958 2007
1959// static 2008// static
@@ -2048,3 +2097,9 @@ void LLPanelObject::onCommitSculptType(LLUICtrl *ctrl, void* userdata)
2048 2097
2049 self->sendSculpt(); 2098 self->sendSculpt();
2050} 2099}
2100
2101// static
2102void LLPanelObject::onClickBuildConstants(void *)
2103{
2104 gViewerWindow->alertXml("ClickBuildConstants");
2105}
diff --git a/linden/indra/newview/llpanelobject.h b/linden/indra/newview/llpanelobject.h
index afdfd30..b72289c 100644
--- a/linden/indra/newview/llpanelobject.h
+++ b/linden/indra/newview/llpanelobject.h
@@ -83,6 +83,7 @@ public:
83 static BOOL onDropSculpt( LLUICtrl* ctrl, LLInventoryItem* item, void* ud); 83 static BOOL onDropSculpt( LLUICtrl* ctrl, LLInventoryItem* item, void* ud);
84 static void onCommitSculptType( LLUICtrl *ctrl, void* userdata); 84 static void onCommitSculptType( LLUICtrl *ctrl, void* userdata);
85 85
86 static void onClickBuildConstants(void *);
86 87
87protected: 88protected:
88 void getState(); 89 void getState();
diff --git a/linden/indra/newview/llpreviewlandmark.cpp b/linden/indra/newview/llpreviewlandmark.cpp
index 01d77f6..dba603b 100644
--- a/linden/indra/newview/llpreviewlandmark.cpp
+++ b/linden/indra/newview/llpreviewlandmark.cpp
@@ -90,7 +90,15 @@ LLPreviewLandmark::LLPreviewLandmark(const std::string& name,
90{ 90{
91 91
92 mFactoryMap["place_details_panel"] = LLCallbackMap(LLPreviewLandmark::createPlaceDetail, this); 92 mFactoryMap["place_details_panel"] = LLCallbackMap(LLPreviewLandmark::createPlaceDetail, this);
93 LLUICtrlFactory::getInstance()->buildFloater(this, "floater_preview_existing_landmark.xml", &getFactoryMap()); 93 if (show_keep_discard)
94 {
95 LLUICtrlFactory::getInstance()->buildFloater(this, "floater_preview_new_landmark.xml", &getFactoryMap());
96 childSetAction("Discard btn",onDiscardBtn,this);
97 }
98 else
99 {
100 LLUICtrlFactory::getInstance()->buildFloater(this, "floater_preview_existing_landmark.xml", &getFactoryMap());
101 }
94 102
95 /* 103 /*
96 childSetCommitCallback("desc_editor", LLPreview::onText, this); 104 childSetCommitCallback("desc_editor", LLPreview::onText, this);
diff --git a/linden/indra/newview/llpreviewsound.cpp b/linden/indra/newview/llpreviewsound.cpp
index 9ba6fd5..6b79bfb 100644
--- a/linden/indra/newview/llpreviewsound.cpp
+++ b/linden/indra/newview/llpreviewsound.cpp
@@ -106,7 +106,6 @@ void LLPreviewSound::auditionSound( void *userdata )
106 if(item && gAudiop) 106 if(item && gAudiop)
107 { 107 {
108 LLVector3d lpos_global = gAgent.getPositionGlobal(); 108 LLVector3d lpos_global = gAgent.getPositionGlobal();
109 F32 volume = gSavedSettings.getBOOL("MuteSounds") ? 0.f : SOUND_GAIN * gSavedSettings.getF32("AudioLevelSFX"); 109 gAudiop->triggerSound(item->getAssetUUID(), gAgent.getID(), SOUND_GAIN, LLAudioEngine::AUDIO_TYPE_UI, lpos_global);
110 gAudiop->triggerSound(item->getAssetUUID(), gAgent.getID(), volume, lpos_global);
111 } 110 }
112} 111}
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp
index 6371f2b..c863d19 100644
--- a/linden/indra/newview/llstartup.cpp
+++ b/linden/indra/newview/llstartup.cpp
@@ -45,6 +45,10 @@
45# include "audioengine_fmod.h" 45# include "audioengine_fmod.h"
46#endif 46#endif
47 47
48#ifdef LL_OPENAL
49#include "audioengine_openal.h"
50#endif
51
48#include "llares.h" 52#include "llares.h"
49#include "llcachename.h" 53#include "llcachename.h"
50#include "llviewercontrol.h" 54#include "llviewercontrol.h"
@@ -579,10 +583,28 @@ bool idle_startup()
579 583
580 if (FALSE == gSavedSettings.getBOOL("NoAudio")) 584 if (FALSE == gSavedSettings.getBOOL("NoAudio"))
581 { 585 {
582#ifdef LL_FMOD
583 gAudiop = (LLAudioEngine *) new LLAudioEngine_FMOD();
584#else
585 gAudiop = NULL; 586 gAudiop = NULL;
587
588#ifdef LL_OPENAL
589 if (!gAudiop
590#if !LL_WINDOWS
591 && NULL == getenv("LL_BAD_OPENAL_DRIVER")
592#endif // !LL_WINDOWS
593 )
594 {
595 gAudiop = (LLAudioEngine *) new LLAudioEngine_OpenAL();
596 }
597#endif
598
599#ifdef LL_FMOD
600 if (!gAudiop
601#if !LL_WINDOWS
602 && NULL == getenv("LL_BAD_FMOD_DRIVER")
603#endif // !LL_WINDOWS
604 )
605 {
606 gAudiop = (LLAudioEngine *) new LLAudioEngine_FMOD();
607 }
586#endif 608#endif
587 609
588 if (gAudiop) 610 if (gAudiop)
@@ -595,15 +617,21 @@ bool idle_startup()
595 void* window_handle = NULL; 617 void* window_handle = NULL;
596#endif 618#endif
597 bool init = gAudiop->init(kAUDIO_NUM_SOURCES, window_handle); 619 bool init = gAudiop->init(kAUDIO_NUM_SOURCES, window_handle);
598 if(!init) 620 if(init)
621 {
622 gAudiop->setMuted(TRUE);
623 }
624 else
599 { 625 {
600 LL_WARNS("AppInit") << "Unable to initialize audio engine" << LL_ENDL; 626 LL_WARNS("AppInit") << "Unable to initialize audio engine" << LL_ENDL;
627 delete gAudiop;
628 gAudiop = NULL;
601 } 629 }
602 gAudiop->setMuted(TRUE);
603 } 630 }
604 } 631 }
605 632
606 LL_INFOS("AppInit") << "Audio Engine Initialized." << LL_ENDL; 633 LL_INFOS("AppInit") << "Audio Engine Initialized." << LL_ENDL;
634
607 635
608 if (LLTimer::knownBadTimer()) 636 if (LLTimer::knownBadTimer())
609 { 637 {
@@ -750,6 +778,12 @@ bool idle_startup()
750 gLoginMenuBarView->setVisible( TRUE ); 778 gLoginMenuBarView->setVisible( TRUE );
751 gLoginMenuBarView->setEnabled( TRUE ); 779 gLoginMenuBarView->setEnabled( TRUE );
752 780
781 // DEV-16927. The following code removes errant keystrokes that happen while the window is being
782 // first made visible.
783#ifdef _WIN32
784 MSG msg;
785 while( PeekMessage( &msg, /*All hWnds owned by this thread */ NULL, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE ) );
786#endif
753 timeout.reset(); 787 timeout.reset();
754 return FALSE; 788 return FALSE;
755 } 789 }
diff --git a/linden/indra/newview/llvieweraudio.cpp b/linden/indra/newview/llvieweraudio.cpp
index 122a0bc..bc25649 100644
--- a/linden/indra/newview/llvieweraudio.cpp
+++ b/linden/indra/newview/llvieweraudio.cpp
@@ -62,7 +62,7 @@ void init_audio()
62 62
63// load up our initial set of sounds we'll want so they're in memory and ready to be played 63// load up our initial set of sounds we'll want so they're in memory and ready to be played
64 64
65 BOOL mute_audio = gSavedSettings.getBOOL("MuteAudio"); 65 bool mute_audio = gSavedSettings.getBOOL("MuteAudio");
66 66
67 if (!mute_audio && FALSE == gSavedSettings.getBOOL("NoPreload")) 67 if (!mute_audio && FALSE == gSavedSettings.getBOOL("NoPreload"))
68 { 68 {
@@ -114,7 +114,9 @@ void init_audio()
114void audio_update_volume(bool force_update) 114void audio_update_volume(bool force_update)
115{ 115{
116 F32 master_volume = gSavedSettings.getF32("AudioLevelMaster"); 116 F32 master_volume = gSavedSettings.getF32("AudioLevelMaster");
117 BOOL mute_audio = gSavedSettings.getBOOL("MuteAudio"); 117 bool wind_muted = gSavedSettings.getBOOL("MuteWind");
118 bool mute_audio = gSavedSettings.getBOOL("MuteAudio");
119
118 if (!gViewerWindow->getActive() && (gSavedSettings.getBOOL("MuteWhenMinimized"))) 120 if (!gViewerWindow->getActive() && (gSavedSettings.getBOOL("MuteWhenMinimized")))
119 { 121 {
120 mute_audio = TRUE; 122 mute_audio = TRUE;
@@ -129,9 +131,9 @@ void audio_update_volume(bool force_update)
129 gAudiop->setDopplerFactor(gSavedSettings.getF32("AudioLevelDoppler")); 131 gAudiop->setDopplerFactor(gSavedSettings.getF32("AudioLevelDoppler"));
130 gAudiop->setDistanceFactor(gSavedSettings.getF32("AudioLevelDistance")); 132 gAudiop->setDistanceFactor(gSavedSettings.getF32("AudioLevelDistance"));
131 gAudiop->setRolloffFactor(gSavedSettings.getF32("AudioLevelRolloff")); 133 gAudiop->setRolloffFactor(gSavedSettings.getF32("AudioLevelRolloff"));
132#ifdef kAUDIO_ENABLE_WIND 134
135 if(wind_muted == false)
133 gAudiop->enableWind(!mute_audio); 136 gAudiop->enableWind(!mute_audio);
134#endif
135 137
136 gAudiop->setMuted(mute_audio); 138 gAudiop->setMuted(mute_audio);
137 139
@@ -197,46 +199,50 @@ void audio_update_listener()
197 199
198void audio_update_wind(bool force_update) 200void audio_update_wind(bool force_update)
199{ 201{
200#ifdef kAUDIO_ENABLE_WIND 202 bool wind_muted = gSavedSettings.getBOOL("MuteWind");
201 // 203 bool mute_audio = gSavedSettings.getBOOL("MuteAudio");
202 // Extract height above water to modulate filter by whether above/below water 204
203 // 205 if(!mute_audio && !wind_muted)
204 LLViewerRegion* region = gAgent.getRegion();
205 if (region)
206 { 206 {
207 static F32 last_camera_water_height = -1000.f;
208 LLVector3 camera_pos = gAgent.getCameraPositionAgent();
209 F32 camera_water_height = camera_pos.mV[VZ] - region->getWaterHeight();
210
211 // 207 //
212 // Don't update rolloff factor unless water surface has been crossed 208 // Extract height above water to modulate filter by whether above/below water
213 // 209 //
214 if (force_update || (last_camera_water_height * camera_water_height) < 0.f) 210 LLViewerRegion* region = gAgent.getRegion();
211 if (region)
215 { 212 {
216 if (camera_water_height < 0.f) 213 static F32 last_camera_water_height = -1000.f;
217 { 214 LLVector3 camera_pos = gAgent.getCameraPositionAgent();
218 gAudiop->setRolloffFactor(gSavedSettings.getF32("AudioLevelRolloff") * LL_ROLLOFF_MULTIPLIER_UNDER_WATER); 215 F32 camera_water_height = camera_pos.mV[VZ] - region->getWaterHeight();
219 } 216
220 else 217 //
218 // Don't update rolloff factor unless water surface has been crossed
219 //
220 if (force_update || (last_camera_water_height * camera_water_height) < 0.f)
221 { 221 {
222 gAudiop->setRolloffFactor(gSavedSettings.getF32("AudioLevelRolloff")); 222 if (camera_water_height < 0.f)
223 {
224 gAudiop->setRolloffFactor(gSavedSettings.getF32("AudioLevelRolloff") * LL_ROLLOFF_MULTIPLIER_UNDER_WATER);
225 }
226 else
227 {
228 gAudiop->setRolloffFactor(gSavedSettings.getF32("AudioLevelRolloff"));
229 }
223 } 230 }
231 // this line rotates the wind vector to be listener (agent) relative
232 // unfortunately we have to pre-translate to undo the translation that
233 // occurs in the transform call
234 gRelativeWindVec = gAgent.getFrameAgent().rotateToLocal(gWindVec - gAgent.getVelocity());
235
236 // don't use the setter setMaxWindGain() because we don't
237 // want to screw up the fade-in on startup by setting actual source gain
238 // outside the fade-in.
239 F32 ambient_volume = gSavedSettings.getF32("AudioLevelAmbient");
240 gAudiop->mMaxWindGain = gSavedSettings.getBOOL("MuteAmbient")
241 ? 0.f
242 : ambient_volume * ambient_volume;
243
244 last_camera_water_height = camera_water_height;
245 gAudiop->updateWind(gRelativeWindVec, camera_water_height);
224 } 246 }
225 // this line rotates the wind vector to be listener (agent) relative
226 // unfortunately we have to pre-translate to undo the translation that
227 // occurs in the transform call
228 gRelativeWindVec = gAgent.getFrameAgent().rotateToLocal(gWindVec - gAgent.getVelocity());
229
230 // don't use the setter setMaxWindGain() because we don't
231 // want to screw up the fade-in on startup by setting actual source gain
232 // outside the fade-in.
233 F32 ambient_volume = gSavedSettings.getF32("AudioLevelAmbient");
234 gAudiop->mMaxWindGain = gSavedSettings.getBOOL("MuteAmbient")
235 ? 0.f
236 : ambient_volume * ambient_volume;
237
238 last_camera_water_height = camera_water_height;
239 gAudiop->updateWind(gRelativeWindVec, camera_water_height);
240 } 247 }
241#endif
242} 248}
diff --git a/linden/indra/newview/llvieweraudio.h b/linden/indra/newview/llvieweraudio.h
index 6ab7c7f..b4a299c 100644
--- a/linden/indra/newview/llvieweraudio.h
+++ b/linden/indra/newview/llvieweraudio.h
@@ -32,8 +32,6 @@
32#ifndef LL_VIEWERAUDIO_H 32#ifndef LL_VIEWERAUDIO_H
33#define LL_VIEWERAUDIO_H 33#define LL_VIEWERAUDIO_H
34 34
35// comment out to turn off wind
36#define kAUDIO_ENABLE_WIND
37//#define kAUDIO_ENABLE_WATER 1 // comment out to turn off water 35//#define kAUDIO_ENABLE_WATER 1 // comment out to turn off water
38#define kAUDIO_NUM_BUFFERS 30 36#define kAUDIO_NUM_BUFFERS 30
39#define kAUDIO_NUM_SOURCES 30 37#define kAUDIO_NUM_SOURCES 30
diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp
index 0e39026..28ca198 100644
--- a/linden/indra/newview/llviewermessage.cpp
+++ b/linden/indra/newview/llviewermessage.cpp
@@ -833,9 +833,9 @@ void open_offer(const std::vector<LLUUID>& items, const std::string& from_name)
833 //if we are throttled, don't display them - Gigs 833 //if we are throttled, don't display them - Gigs
834 if (check_offer_throttle(from_name, false)) 834 if (check_offer_throttle(from_name, false))
835 { 835 {
836 // I'm not sure this is a good idea. JC 836 // I'm not sure this is a good idea. JC - Definitely a bad idea. HB
837 bool show_keep_discard = item->getPermissions().getCreator() != gAgent.getID(); 837 //bool show_keep_discard = item->getPermissions().getCreator() != gAgent.getID();
838 //bool show_keep_discard = true; 838 bool show_keep_discard = true;
839 switch(asset_type) 839 switch(asset_type)
840 { 840 {
841 case LLAssetType::AT_NOTECARD: 841 case LLAssetType::AT_NOTECARD:
@@ -3308,8 +3308,7 @@ void process_sound_trigger(LLMessageSystem *msg, void **)
3308 return; 3308 return;
3309 } 3309 }
3310 3310
3311 F32 volume = gSavedSettings.getBOOL("MuteSounds") ? 0.f : (gain * gSavedSettings.getF32("AudioLevelSFX")); 3311 gAudiop->triggerSound(sound_id, owner_id, gain, LLAudioEngine::AUDIO_TYPE_SFX, pos_global);
3312 gAudiop->triggerSound(sound_id, owner_id, volume, pos_global);
3313} 3312}
3314 3313
3315void process_preload_sound(LLMessageSystem *msg, void **user_data) 3314void process_preload_sound(LLMessageSystem *msg, void **user_data)
diff --git a/linden/indra/newview/llviewertexteditor.cpp b/linden/indra/newview/llviewertexteditor.cpp
index 8a55b3f..1dda1ca 100644
--- a/linden/indra/newview/llviewertexteditor.cpp
+++ b/linden/indra/newview/llviewertexteditor.cpp
@@ -1402,8 +1402,7 @@ void LLViewerTextEditor::openEmbeddedSound( LLInventoryItem* item )
1402 const F32 SOUND_GAIN = 1.0f; 1402 const F32 SOUND_GAIN = 1.0f;
1403 if(gAudiop) 1403 if(gAudiop)
1404 { 1404 {
1405 F32 volume = gSavedSettings.getBOOL("MuteSounds") ? 0.f : (SOUND_GAIN * gSavedSettings.getF32("AudioLevelSFX")); 1405 gAudiop->triggerSound(item->getAssetUUID(), gAgentID, SOUND_GAIN, LLAudioEngine::AUDIO_TYPE_UI, lpos_global);
1406 gAudiop->triggerSound(item->getAssetUUID(), gAgentID, volume, lpos_global);
1407 } 1406 }
1408 showCopyToInvDialog( item ); 1407 showCopyToInvDialog( item );
1409} 1408}
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp
index e480eb3..327cd57 100644
--- a/linden/indra/newview/llvoavatar.cpp
+++ b/linden/indra/newview/llvoavatar.cpp
@@ -3828,10 +3828,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
3828// AUDIO_STEP_LO_SPEED, AUDIO_STEP_HI_SPEED, 3828// AUDIO_STEP_LO_SPEED, AUDIO_STEP_HI_SPEED,
3829// AUDIO_STEP_LO_GAIN, AUDIO_STEP_HI_GAIN ); 3829// AUDIO_STEP_LO_GAIN, AUDIO_STEP_HI_GAIN );
3830 3830
3831 F32 ambient_volume = gSavedSettings.getF32("AudioLevelAmbient"); 3831 const F32 STEP_VOLUME = 0.5f;
3832 F32 gain = gSavedSettings.getBOOL("MuteAmbient")
3833 ? 0.f
3834 : (.50f * ambient_volume * ambient_volume);
3835 LLUUID& step_sound_id = getStepSound(); 3832 LLUUID& step_sound_id = getStepSound();
3836 3833
3837 LLVector3d foot_pos_global = gAgent.getPosGlobalFromAgent(foot_pos_agent); 3834 LLVector3d foot_pos_global = gAgent.getPosGlobalFromAgent(foot_pos_agent);
@@ -3839,7 +3836,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
3839 if (LLViewerParcelMgr::getInstance()->canHearSound(foot_pos_global) 3836 if (LLViewerParcelMgr::getInstance()->canHearSound(foot_pos_global)
3840 && !LLMuteList::getInstance()->isMuted(getID(), LLMute::flagObjectSounds)) 3837 && !LLMuteList::getInstance()->isMuted(getID(), LLMute::flagObjectSounds))
3841 { 3838 {
3842 gAudiop->triggerSound(step_sound_id, getID(), gain, foot_pos_global); 3839 gAudiop->triggerSound(step_sound_id, getID(), STEP_VOLUME, LLAudioEngine::AUDIO_TYPE_AMBIENT, foot_pos_global);
3843 } 3840 }
3844 } 3841 }
3845 } 3842 }
@@ -4819,8 +4816,8 @@ BOOL LLVOAvatar::processSingleAnimationStateChange( const LLUUID& anim_id, BOOL
4819 //else 4816 //else
4820 { 4817 {
4821 LLUUID sound_id = LLUUID(gSavedSettings.getString("UISndTyping")); 4818 LLUUID sound_id = LLUUID(gSavedSettings.getString("UISndTyping"));
4822 F32 volume = gSavedSettings.getBOOL("MuteSounds") ? 0.f : gSavedSettings.getF32("AudioLevelSFX"); 4819 gAudiop->triggerSound(sound_id, getID(), 1.0f, LLAudioEngine::AUDIO_TYPE_SFX, char_pos_global);
4823 gAudiop->triggerSound(sound_id, getID(), volume, char_pos_global); 4820
4824 } 4821 }
4825 } 4822 }
4826 } 4823 }
diff --git a/linden/indra/newview/skins/default/xui/en-us/alerts.xml b/linden/indra/newview/skins/default/xui/en-us/alerts.xml
index c2d4301..dc9b5ea 100644
--- a/linden/indra/newview/skins/default/xui/en-us/alerts.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/alerts.xml
@@ -385,6 +385,73 @@ Go to the Second Life web site for more information on partnering?
385 Cancel 385 Cancel
386 </option> 386 </option>
387 </alert> 387 </alert>
388 <alert modal="true" name="ClickBuildConstants">
389 <message name="message">
390 The following constants are accepted in this tab:
391
392 XP -- X-axis position
393 YP -- Y-axis position
394 ZP -- Z-axis position
395 XS -- X-axis size
396 YS -- Y-axis size
397 ZS -- Z-axis size
398 XR -- X-axis rotation
399 YR -- Y-axis rotation
400 ZR -- Z-axis rotation
401 CB -- Path cut begin
402 CE -- Path cut end
403 HLW -- Hollow size
404 SKW -- Skew
405 PB -- Slice/Dimple/Profile cut begin
406 PE -- Slice/Dimple/Profile cut end
407 XSH -- X-axis top shear
408 YSH -- Y-axis top shear
409 XHL -- X-axis hole size
410 YHL -- Y-axis hole size
411 XTP -- X-axis taper
412 YTP -- Y-axis taper
413 ROF -- Radius offset
414 REV -- Revolutions
415
416 * -- Multiplication
417 \ -- Division
418 + -- Addition
419 - -- Subtraction
420
421 Examples:
422
423 * Enter &apos;ZP + 20&apos; in the Z-axis position field
424 to move an object up 20 meters.
425 * Enter &apos;XS - YS&apos; in the X-axis size field
426 to subtract the Y size from the X size.
427 </message>
428 </alert>
429 <alert modal="true" name="ClickTextureConstants">
430 <message name="message">
431 The following constants are accepted in this tab:
432
433 TSU -- Repeats per face (horizontal)
434 TSV -- Repeats per face (vertical)
435 TOU -- Offsets per face (horizontal)
436 TOV -- Offsets per face (vertical)
437 TRNS -- Transparency
438 TROT -- Texture rotation
439 GLOW -- Glow
440
441 * -- Multiplication
442 \ -- Division
443 + -- Addition
444 - -- Subtraction
445
446 Examples:
447
448 * Enter &apos;TSU * 4&apos; in horizantal repeats field
449 to increase the amount of repeats by 4x.
450 * Enter &apos;TSV&apos; in the horizontal repeats field
451 to make the horizontal and vertical
452 repeats match.
453 </message>
454 </alert>
388 <alert modal="true" name="ClickWebProfileHelpAvatar"> 455 <alert modal="true" name="ClickWebProfileHelpAvatar">
389 <message name="message"> 456 <message name="message">
390 If this Resident has set a web profile URL then you can: 457 If this Resident has set a web profile URL then you can:
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml b/linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml
index be18c7e..72c92bd 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml
@@ -1,82 +1,82 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater border="true" bottom="-297" can_close="true" can_drag_on_left="false" 2<floater border="true" bottom="-297" can_close="true" can_drag_on_left="false"
3 can_minimize="true" can_resize="true" default_tab_group="1" enabled="true" 3 can_minimize="true" can_resize="true" default_tab_group="1" enabled="true"
4 follows="left|top|right|bottom" height="296" label="(unknown)" left="1" 4 follows="left|top|right|bottom" height="296" label="(unknown)" left="1"
5 min_height="200" min_width="360" mouse_opaque="true" name="im_floater" 5 min_height="200" min_width="360" mouse_opaque="true" name="im_floater"
6 rect_control="" title="(unknown)" width="501"> 6 rect_control="" title="(unknown)" width="501">
7 <string name="ringing"> 7 <string name="ringing">
8 Joining Voice Chat... 8 Joining Voice Chat...
9 </string> 9 </string>
10 <string name="connected"> 10 <string name="connected">
11 Connected, click End Call to hang up 11 Connected, click End Call to hang up
12 </string> 12 </string>
13 <string name="hang_up"> 13 <string name="hang_up">
14 Left Voice Chat 14 Left Voice Chat
15 </string> 15 </string>
16 <string name="voice_icon"> 16 <string name="voice_icon">
17 icn_voice-groupfocus.tga 17 icn_voice-groupfocus.tga
18 </string> 18 </string>
19 <string name="live_help_dialog" wordwrap="false"> 19 <string name="live_help_dialog" wordwrap="false">
20 *** Welcome to Help Request *** 20 *** Welcome to Help Request ***
21 Please first check our SL Help Pages by pressing F1, or by accessing the Knowledge Base http://secondlife.com/knowledgebase/ 21 Please first check our SL Help Pages by pressing F1, or by accessing the Knowledge Base http://secondlife.com/knowledgebase/
22 If your answer is not there, please enter your question to begin, then allow a few moments for available helpers to respond. 22 If your answer is not there, please enter your question to begin, then allow a few moments for available helpers to respond.
23 -=-=- Response times will vary, especially during peak times -=-=- 23 -=-=- Response times will vary, especially during peak times -=-=-
24 </string> 24 </string>
25 <string name="title_string"> 25 <string name="title_string">
26 Instant Message with [NAME] 26 Instant Message with [NAME]
27 </string> 27 </string>
28 <string name="typing_start_string"> 28 <string name="typing_start_string">
29 [NAME] is typing... 29 [NAME] is typing...
30 </string> 30 </string>
31 <string name="session_start_string"> 31 <string name="session_start_string">
32 Starting session with [NAME], please wait. 32 Starting session with [NAME], please wait.
33 </string> 33 </string>
34 <string name="moderated_chat_label"> 34 <string name="moderated_chat_label">
35 (Moderated: Voices off by default) 35 (Moderated: Voices off by default)
36 </string> 36 </string>
37 <string name="default_text_label"> 37 <string name="default_text_label">
38 Click here to instant message. 38 Click here to instant message.
39 </string> 39 </string>
40 <string name="muted_text_label"> 40 <string name="muted_text_label">
41 Your text chat has been disabled by a Group Moderator. 41 Your text chat has been disabled by a Group Moderator.
42 </string> 42 </string>
43 <layout_stack border="false" bottom="0" follows="left|top|right|bottom" height="276" left="0" 43 <layout_stack border="false" bottom="0" follows="left|top|right|bottom" height="276" left="0"
44 orientation="horizontal" tab_group="1" width="495" name="panels"> 44 orientation="horizontal" tab_group="1" width="495" name="panels">
45 <layout_panel border="false" bottom="0" default_tab_group="1" follows="left|top|bottom|right" 45 <layout_panel border="false" bottom="0" default_tab_group="1" follows="left|top|bottom|right"
46 height="130" left="0" min_width="210" name="im_contents_panel" width="175"> 46 height="130" left="0" min_width="210" name="im_contents_panel" width="175">
47 <button bottom="-20" follows="left|top" height="20" label="Group Info" left="5" 47 <button bottom="-20" follows="left|top" height="20" label="Group Info" left="5"
48 name="group_info_btn" tab_group="0" width="80" /> 48 name="group_info_btn" tab_group="0" width="80" />
49 <button bottom_delta="0" enabled="false" follows="left|top" halign="right" height="20" 49 <button bottom_delta="0" enabled="false" follows="left|top" halign="right" height="20"
50 image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left" 50 image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left"
51 label="Join Call" left_delta="85" name="start_call_btn" pad_right="12" 51 label="Join Call" left_delta="85" name="start_call_btn" pad_right="12"
52 width="80" /> 52 width="80" />
53 <button bottom_delta="0" follows="left|top" halign="right" height="20" 53 <button bottom_delta="0" follows="left|top" halign="right" height="20"
54 image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left" 54 image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left"
55 label="End Call" left_delta="0" name="end_call_btn" pad_right="12" 55 label="End Call" left_delta="0" name="end_call_btn" pad_right="12"
56 visible="false" width="80" /> 56 visible="false" width="80" />
57 <button bottom_delta="0" follows="right|top" height="20" label="&lt; &lt;" 57 <button bottom_delta="0" follows="right|top" height="20" label="&lt; &lt;"
58 label_selected="&gt; &gt;" left="143" name="toggle_active_speakers_btn" 58 label_selected="&gt; &gt;" left="143" name="toggle_active_speakers_btn"
59 right="176" 59 right="176"
60 tool_tip="Click here to toggle a list of active participants in this IM session." 60 tool_tip="Click here to toggle a list of active participants in this IM session."
61 visible="true" width="30" /> 61 visible="true" width="30" />
62 <text_editor type="string" length="1" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor" 62 <text_editor type="string" length="1" bg_readonly_color="ChatHistoryBgColor" bg_writeable_color="ChatHistoryBgColor"
63 bottom="30" embedded_items="false" enabled="false" 63 bottom="30" embedded_items="false" enabled="false"
64 follows="left|top|right|bottom" font="SansSerif" left="4" 64 follows="left|top|right|bottom" font="SansSerif" left="4"
65 max_length="2147483647" mouse_opaque="true" name="im_history" 65 max_length="2147483647" mouse_opaque="true" name="im_history"
66 text_color="ChatHistoryTextColor" 66 text_color="ChatHistoryTextColor"
67 text_readonly_color="ChatHistoryTextColor" top="104" width="170" 67 text_readonly_color="ChatHistoryTextColor" top="104" width="170"
68 word_wrap="true" /> 68 word_wrap="true" />
69 <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="7" 69 <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="7"
70 enabled="true" follows="left|right|bottom" font="SansSerif" height="20" 70 enabled="true" follows="left|right|bottom" font="SansSerif" height="20"
71 left="5" max_length="1022" mouse_opaque="true" name="chat_editor" 71 left="5" max_length="1022" mouse_opaque="true" name="chat_editor"
72 select_all_on_focus_received="false" select_on_focus="false" tab_group="1" 72 select_all_on_focus_received="false" select_on_focus="false" tab_group="1"
73 width="106" /> 73 width="106" />
74 <button bottom="7" enabled="true" follows="right|bottom" font="SansSerif" 74 <button bottom="7" enabled="true" follows="right|bottom" font="SansSerif"
75 halign="center" height="20" label="Send" left="116" mouse_opaque="true" 75 halign="center" height="20" label="Send" left="116" mouse_opaque="true"
76 name="send_btn" scale_image="true" width="60" /> 76 name="send_btn" scale_image="true" width="60" />
77 </layout_panel> 77 </layout_panel>
78 <layout_panel auto_resize="false" bottom="0" can_resize="true" 78 <layout_panel auto_resize="false" bottom="0" can_resize="true"
79 filename="panel_speaker_controls.xml" height="120" left="0" min_width="140" 79 filename="panel_speaker_controls.xml" height="120" left="0" min_width="140"
80 name="active_speakers_panel" top_delta="0" visible="false" width="140" /> 80 name="active_speakers_panel" top_delta="0" visible="false" width="140" />
81 </layout_stack> 81 </layout_stack>
82</floater> 82</floater>
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml
index 742da45..eb9b1c6 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml
@@ -587,7 +587,10 @@
587 mouse_opaque="true" name="edit_object" v_pad="0" width="252"> 587 mouse_opaque="true" name="edit_object" v_pad="0" width="252">
588 Edit object parameters: 588 Edit object parameters:
589 </text> 589 </text>
590 <check_box bottom_delta="-26" follows="left|top" font="SansSerifSmall" height="16" 590 <button bottom_delta="-10" follows="left|top" font="SansSerif" halign="center"
591 height="22" label="?" label_selected="?" right="-8" tool_tip="Object math constants"
592 mouse_opaque="true" name="build_math_constants" scale_image="true" width="22" />
593 <check_box bottom_delta="-16" follows="left|top" font="SansSerifSmall" height="16"
591 initial_value="false" label="Locked" left="8" mouse_opaque="true" 594 initial_value="false" label="Locked" left="8" mouse_opaque="true"
592 name="checkbox locked" 595 name="checkbox locked"
593 tool_tip="Prevents object from being moved or deleted. Frequently useful during building to avoid unintended edits." 596 tool_tip="Prevents object from being moved or deleted. Frequently useful during building to avoid unintended edits."
@@ -614,15 +617,15 @@
614 <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16" 617 <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16"
615 increment="0.01" initial_val="0" label="X" label_width="10" left="10" 618 increment="0.01" initial_val="0" label="X" label_width="10" left="10"
616 max_val="512" min_val="-256" mouse_opaque="true" name="Pos X" 619 max_val="512" min_val="-256" mouse_opaque="true" name="Pos X"
617 text_enabled_color="110, 15, 15, 255" width="87" /> 620 text_enabled_color="110, 15, 15, 255" width="96" />
618 <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16" 621 <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16"
619 increment="0.01" initial_val="0" label="Y" label_width="10" left="10" 622 increment="0.01" initial_val="0" label="Y" label_width="10" left="10"
620 max_val="512" min_val="-256" mouse_opaque="true" name="Pos Y" 623 max_val="512" min_val="-256" mouse_opaque="true" name="Pos Y"
621 text_enabled_color="0, 100, 40, 255" width="87" /> 624 text_enabled_color="0, 100, 40, 255" width="96" />
622 <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16" 625 <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16"
623 increment="0.01" initial_val="0" label="Z" label_width="10" left="10" 626 increment="0.01" initial_val="0" label="Z" label_width="10" left="10"
624 max_val="4096" min_val="0" mouse_opaque="true" name="Pos Z" 627 max_val="4096" min_val="0" mouse_opaque="true" name="Pos Z"
625 text_enabled_color="0, 67, 132, 255" width="87" /> 628 text_enabled_color="0, 67, 132, 255" width="96" />
626 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 629 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
627 bottom_delta="-16" drop_shadow_visible="true" follows="left|top" 630 bottom_delta="-16" drop_shadow_visible="true" follows="left|top"
628 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" 631 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
@@ -632,15 +635,15 @@
632 <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16" 635 <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16"
633 increment="0.01" initial_val="0" label="X" label_width="10" left="10" 636 increment="0.01" initial_val="0" label="X" label_width="10" left="10"
634 max_val="10" min_val="0.01" mouse_opaque="true" name="Scale X" 637 max_val="10" min_val="0.01" mouse_opaque="true" name="Scale X"
635 text_enabled_color="1, 1, 1, 1" width="87" /> 638 text_enabled_color="1, 1, 1, 1" width="96" />
636 <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16" 639 <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16"
637 increment="0.01" initial_val="0" label="Y" label_width="10" left="10" 640 increment="0.01" initial_val="0" label="Y" label_width="10" left="10"
638 max_val="10" min_val="0.01" mouse_opaque="true" name="Scale Y" 641 max_val="10" min_val="0.01" mouse_opaque="true" name="Scale Y"
639 text_enabled_color="1, 1, 1, 1" width="87" /> 642 text_enabled_color="1, 1, 1, 1" width="96" />
640 <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16" 643 <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16"
641 increment="0.01" initial_val="0" label="Z" label_width="10" left="10" 644 increment="0.01" initial_val="0" label="Z" label_width="10" left="10"
642 max_val="10" min_val="0.01" mouse_opaque="true" name="Scale Z" 645 max_val="10" min_val="0.01" mouse_opaque="true" name="Scale Z"
643 text_enabled_color="1, 1, 1, 1" width="87" /> 646 text_enabled_color="1, 1, 1, 1" width="96" />
644 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 647 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
645 bottom_delta="-16" drop_shadow_visible="true" follows="left|top" 648 bottom_delta="-16" drop_shadow_visible="true" follows="left|top"
646 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" 649 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
@@ -650,15 +653,15 @@
650 <spinner bottom_delta="-22" decimal_digits="2" follows="left|top" height="16" 653 <spinner bottom_delta="-22" decimal_digits="2" follows="left|top" height="16"
651 increment="1" initial_val="0" label="X" label_width="10" left="10" 654 increment="1" initial_val="0" label="X" label_width="10" left="10"
652 max_val="9999" min_val="-9999" mouse_opaque="true" name="Rot X" 655 max_val="9999" min_val="-9999" mouse_opaque="true" name="Rot X"
653 text_enabled_color="1, 1, 1, 1" width="87" /> 656 text_enabled_color="1, 1, 1, 1" width="96" />
654 <spinner bottom_delta="-18" decimal_digits="2" follows="left|top" height="16" 657 <spinner bottom_delta="-18" decimal_digits="2" follows="left|top" height="16"
655 increment="1" initial_val="0" label="Y" label_width="10" left="10" 658 increment="1" initial_val="0" label="Y" label_width="10" left="10"
656 max_val="9999" min_val="-9999" mouse_opaque="true" name="Rot Y" 659 max_val="9999" min_val="-9999" mouse_opaque="true" name="Rot Y"
657 text_enabled_color="1, 1, 1, 1" width="87" /> 660 text_enabled_color="1, 1, 1, 1" width="96" />
658 <spinner bottom_delta="-18" decimal_digits="2" follows="left|top" height="16" 661 <spinner bottom_delta="-18" decimal_digits="2" follows="left|top" height="16"
659 increment="1" initial_val="0" label="Z" label_width="10" left="10" 662 increment="1" initial_val="0" label="Z" label_width="10" left="10"
660 max_val="9999" min_val="-9999" mouse_opaque="true" name="Rot Z" 663 max_val="9999" min_val="-9999" mouse_opaque="true" name="Rot Z"
661 text_enabled_color="1, 1, 1, 1" width="87" /> 664 text_enabled_color="1, 1, 1, 1" width="96" />
662 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 665 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
663 bottom_delta="-16" drop_shadow_visible="true" follows="left|top" 666 bottom_delta="-16" drop_shadow_visible="true" follows="left|top"
664 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" 667 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
@@ -748,12 +751,12 @@
748 Skew 751 Skew
749 </text> 752 </text>
750 <spinner bottom_delta="-20" decimal_digits="1" follows="left|top" height="16" 753 <spinner bottom_delta="-20" decimal_digits="1" follows="left|top" height="16"
751 increment="5" initial_val="0" left="121" max_val="95" min_val="0" 754 increment="5" initial_val="0" left="121" max_val="95" min_val="0"
752 mouse_opaque="true" name="Scale 1" width="68" /> 755 mouse_opaque="true" name="Scale 1" width="68" label=" " label_width="10"/>
753 <spinner bottom_delta="0" decimal_digits="2" follows="left|top" height="16" 756 <spinner bottom_delta="0" decimal_digits="2" follows="left|top" height="16"
754 increment="0.05" initial_val="0" left_delta="73" max_val="0.95" 757 increment="0.05" initial_val="0" left_delta="73" max_val="0.95" label_width="10"
755 min_val="-0.95" mouse_opaque="true" name="Skew" width="68" /> 758 min_val="-0.95" mouse_opaque="true" name="Skew" width="68" label=" " />
756 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 759 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
757 bottom_delta="-15" drop_shadow_visible="true" follows="left|top" 760 bottom_delta="-15" drop_shadow_visible="true" follows="left|top"
758 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="121" 761 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="121"
759 mouse_opaque="true" name="Hollow Shape" v_pad="0" width="141"> 762 mouse_opaque="true" name="Hollow Shape" v_pad="0" width="141">
@@ -872,10 +875,10 @@
872 </text> 875 </text>
873 <spinner bottom_delta="-19" decimal_digits="3" follows="left|top" height="16" 876 <spinner bottom_delta="-19" decimal_digits="3" follows="left|top" height="16"
874 increment="0.05" initial_val="0" left="121" max_val="1" min_val="-1" 877 increment="0.05" initial_val="0" left="121" max_val="1" min_val="-1"
875 mouse_opaque="true" name="Radius Offset" width="68" /> 878 mouse_opaque="true" name="Radius Offset" width="68" label=" " label_width="10" />
876 <spinner bottom_delta="0" decimal_digits="2" follows="left|top" height="16" 879 <spinner bottom_delta="0" decimal_digits="2" follows="left|top" height="16"
877 increment="0.1" initial_val="1" left_delta="73" max_val="4" min_val="1" 880 increment="0.1" initial_val="1" left_delta="73" max_val="4" min_val="1"
878 mouse_opaque="true" name="Revolutions" width="68" /> 881 mouse_opaque="true" name="Revolutions" width="68" label=" " label_width="10" />
879 <texture_picker allow_no_texture="false" bottom="-211" can_apply_immediately="true" 882 <texture_picker allow_no_texture="false" bottom="-211" can_apply_immediately="true"
880 default_image_name="Default" follows="left|top" height="141" 883 default_image_name="Default" follows="left|top" height="141"
881 label="Sculpt Texture" left="121" mouse_opaque="true" 884 label="Sculpt Texture" left="121" mouse_opaque="true"
@@ -1018,7 +1021,7 @@
1018 </text> 1021 </text>
1019 <spinner bottom_delta="-20" decimal_digits="0" follows="left|top" height="16" 1022 <spinner bottom_delta="-20" decimal_digits="0" follows="left|top" height="16"
1020 increment="2" initial_val="0" left="180" max_val="100" min_val="0" 1023 increment="2" initial_val="0" left="180" max_val="100" min_val="0"
1021 mouse_opaque="true" name="ColorTrans" width="80" /> 1024 mouse_opaque="true" name="ColorTrans" width="58" />
1022 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 1025 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
1023 bottom_delta="-12" drop_shadow_visible="true" follows="left|top" 1026 bottom_delta="-12" drop_shadow_visible="true" follows="left|top"
1024 font="SansSerifSmall" h_pad="0" halign="left" height="10" 1027 font="SansSerifSmall" h_pad="0" halign="left" height="10"
@@ -1027,7 +1030,7 @@
1027 </text> 1030 </text>
1028 <spinner bottom_delta="-20" decimal_digits="2" follows="left|top" height="16" 1031 <spinner bottom_delta="-20" decimal_digits="2" follows="left|top" height="16"
1029 increment="0.1" initial_val="0" left="180" max_val="1" 1032 increment="0.1" initial_val="0" left="180" max_val="1"
1030 min_val="0" mouse_opaque="true" name="glow" width="80" /> 1033 min_val="0" mouse_opaque="true" name="glow" width="58" />
1031 <check_box bottom_delta="-23" follows="left|top" font="SansSerifSmall" height="16" 1034 <check_box bottom_delta="-23" follows="left|top" font="SansSerifSmall" height="16"
1032 initial_value="false" label="Full Bright" left="180" mouse_opaque="true" 1035 initial_value="false" label="Full Bright" left="180" mouse_opaque="true"
1033 name="checkbox fullbright" width="81" /> 1036 name="checkbox fullbright" width="81" />
@@ -1201,6 +1204,9 @@
1201 <button bottom="-360" follows="left|top" font="SansSerifSmall" halign="center" 1204 <button bottom="-360" follows="left|top" font="SansSerifSmall" halign="center"
1202 height="16" label="Align" label_selected="Align" left="112" 1205 height="16" label="Align" label_selected="Align" left="112"
1203 mouse_opaque="true" name="button align" scale_image="TRUE" width="68" /> 1206 mouse_opaque="true" name="button align" scale_image="TRUE" width="68" />
1207 <button bottom="-162" follows="left|top" font="SansSerif" halign="center"
1208 height="22" label="?" label_selected="?" right="-8" tool_tip="Texture math constants"
1209 mouse_opaque="true" name="texture_math_constants" scale_image="true" width="24" />
1204 </panel> 1210 </panel>
1205 <panel border="true" bottom="-383" follows="left|top|right|bottom" height="367" 1211 <panel border="true" bottom="-383" follows="left|top|right|bottom" height="367"
1206 label="Content" left="1" mouse_opaque="false" name="Contents" width="270"> 1212 label="Content" left="1" mouse_opaque="false" name="Contents" width="270">
diff --git a/linden/indra/newview/skins/default/xui/en-us/strings.xml b/linden/indra/newview/skins/default/xui/en-us/strings.xml
index e8c341e..dd73f20 100644
--- a/linden/indra/newview/skins/default/xui/en-us/strings.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/strings.xml
@@ -1,180 +1,180 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<!-- This file contains strings that used to be hardcoded in the source. 2<!-- This file contains strings that used to be hardcoded in the source.
3 It is only for those strings which don't belong in a floater. 3 It is only for those strings which don't belong in a floater.
4 For example, the strings used in avatar chat bubbles, and strings 4 For example, the strings used in avatar chat bubbles, and strings
5 that are returned from one component and may appear in many places--> 5 that are returned from one component and may appear in many places-->
6<strings> 6<strings>
7 7
8 <!-- Login --> 8 <!-- Login -->
9 <string name="LoginInProgress">Logging in. [APP_NAME] may appear frozen. Please wait.</string> 9 <string name="LoginInProgress">Logging in. [APP_NAME] may appear frozen. Please wait.</string>
10 <string name="LoginAuthenticating">Authenticating</string> 10 <string name="LoginAuthenticating">Authenticating</string>
11 <string name="LoginMaintenance">Performing account maintenance...</string> 11 <string name="LoginMaintenance">Performing account maintenance...</string>
12 <string name="LoginAttempt">Previous login attempt failed. Logging in, attempt [NUMBER]</string> 12 <string name="LoginAttempt">Previous login attempt failed. Logging in, attempt [NUMBER]</string>
13 <string name="LoginPrecaching">Loading world...</string> 13 <string name="LoginPrecaching">Loading world...</string>
14 <string name="LoginInitializingBrowser">Initializing embedded web browser...</string> 14 <string name="LoginInitializingBrowser">Initializing embedded web browser...</string>
15 <string name="LoginInitializingMultimedia">Initializing multimedia...</string> 15 <string name="LoginInitializingMultimedia">Initializing multimedia...</string>
16 <string name="LoginVerifyingCache">Verifying cache files (can take 60-90 seconds)...</string> 16 <string name="LoginVerifyingCache">Verifying cache files (can take 60-90 seconds)...</string>
17 <string name="LoginProcessingResponse">Processing Response...</string> 17 <string name="LoginProcessingResponse">Processing Response...</string>
18 <string name="LoginInitializingWorld">Initializing World...</string> 18 <string name="LoginInitializingWorld">Initializing World...</string>
19 <string name="LoginDecodingImages">Decoding images...</string> 19 <string name="LoginDecodingImages">Decoding images...</string>
20 <string name="LoginInitializingQuicktime">Initializing QuickTime...</string> 20 <string name="LoginInitializingQuicktime">Initializing QuickTime...</string>
21 <string name="LoginQuicktimeNotFound">QuickTime not found - unable to initialize.</string> 21 <string name="LoginQuicktimeNotFound">QuickTime not found - unable to initialize.</string>
22 <string name="LoginQuicktimeOK">QuickTime initialized successfully.</string> 22 <string name="LoginQuicktimeOK">QuickTime initialized successfully.</string>
23 <string name="LoginWaitingForRegionHandshake">Waiting for region handshake...</string> 23 <string name="LoginWaitingForRegionHandshake">Waiting for region handshake...</string>
24 <string name="LoginConnectingToRegion">Connecting to region...</string> 24 <string name="LoginConnectingToRegion">Connecting to region...</string>
25 <string name="LoginDownloadingClothing">Downloading clothing...</string> 25 <string name="LoginDownloadingClothing">Downloading clothing...</string>
26 <string name="LoginFailedNoNetwork">Network Error: Could not establish connection, please check your network connection.</string> 26 <string name="LoginFailedNoNetwork">Network Error: Could not establish connection, please check your network connection.</string>
27 27
28 28
29 <!-- Disconnection --> 29 <!-- Disconnection -->
30 <string name="AgentLostConnection">This region may be experiencing trouble. Please check your connection to the Internet.</string> 30 <string name="AgentLostConnection">This region may be experiencing trouble. Please check your connection to the Internet.</string>
31 31
32 32
33 <!-- Tooltip, llhoverview.cpp --> 33 <!-- Tooltip, llhoverview.cpp -->
34 <string name="TooltipPerson">Person</string><!-- Object under mouse pointer is an avatar --> 34 <string name="TooltipPerson">Person</string><!-- Object under mouse pointer is an avatar -->
35 <string name="TooltipNoName">(no name)</string> <!-- No name on an object --> 35 <string name="TooltipNoName">(no name)</string> <!-- No name on an object -->
36 <string name="TooltipOwner">Owner:</string> <!-- Owner name follows --> 36 <string name="TooltipOwner">Owner:</string> <!-- Owner name follows -->
37 <string name="TooltipPublic">Public</string> <!-- Public permissions on an object --> 37 <string name="TooltipPublic">Public</string> <!-- Public permissions on an object -->
38 <string name="TooltipIsGroup">(Group)</string> <!-- The name before this text is that of a group --> 38 <string name="TooltipIsGroup">(Group)</string> <!-- The name before this text is that of a group -->
39 <string name="TooltipFlagScript">Script</string> 39 <string name="TooltipFlagScript">Script</string>
40 <string name="TooltipFlagPhysics">Physics</string> 40 <string name="TooltipFlagPhysics">Physics</string>
41 <string name="TooltipFlagTouch">Touch</string> 41 <string name="TooltipFlagTouch">Touch</string>
42 <string name="TooltipFlagL$">L$</string> 42 <string name="TooltipFlagL$">L$</string>
43 <string name="TooltipFlagDropInventory">Drop Inventory</string> 43 <string name="TooltipFlagDropInventory">Drop Inventory</string>
44 <string name="TooltipFlagPhantom">Phantom</string> 44 <string name="TooltipFlagPhantom">Phantom</string>
45 <string name="TooltipFlagTemporary">Temporary</string> 45 <string name="TooltipFlagTemporary">Temporary</string>
46 <string name="TooltipFlagRightClickMenu">(Right-click for menu)</string> 46 <string name="TooltipFlagRightClickMenu">(Right-click for menu)</string>
47 <string name="TooltipFreeToCopy">Free to copy</string> 47 <string name="TooltipFreeToCopy">Free to copy</string>
48 <string name="TooltipForSaleL$">For Sale: L$[AMOUNT]</string> <!-- L$ version --> 48 <string name="TooltipForSaleL$">For Sale: L$[AMOUNT]</string> <!-- L$ version -->
49 <string name="TooltipForSaleMsg">For Sale: [MESSAGE]</string> <!-- Message (RetrievingData) --> 49 <string name="TooltipForSaleMsg">For Sale: [MESSAGE]</string> <!-- Message (RetrievingData) -->
50 <string name="TooltipFlagGroupBuild">Group Build</string> 50 <string name="TooltipFlagGroupBuild">Group Build</string>
51 <string name="TooltipFlagNoBuild">No Build</string> 51 <string name="TooltipFlagNoBuild">No Build</string>
52 <string name="TooltipFlagNoEdit">Group Build</string> 52 <string name="TooltipFlagNoEdit">Group Build</string>
53 <string name="TooltipFlagNotSafe">Not Safe</string><!-- damage area --> 53 <string name="TooltipFlagNotSafe">Not Safe</string><!-- damage area -->
54 <string name="TooltipFlagNoFly">No Fly</string> 54 <string name="TooltipFlagNoFly">No Fly</string>
55 <string name="TooltipFlagGroupScripts">Group Scripts</string> 55 <string name="TooltipFlagGroupScripts">Group Scripts</string>
56 <string name="TooltipFlagNoScripts">No Scripts</string> 56 <string name="TooltipFlagNoScripts">No Scripts</string>
57 <string name="TooltipLand">Land:</string> 57 <string name="TooltipLand">Land:</string>
58 <string name="TooltipMustSingleDrop">Only a single item can be dragged here</string> 58 <string name="TooltipMustSingleDrop">Only a single item can be dragged here</string>
59 59
60 60
61 <!-- Indicates that an avatar's name or other similar datum is being retrieved. General usage. --> 61 <!-- Indicates that an avatar's name or other similar datum is being retrieved. General usage. -->
62 <string name="RetrievingData">Retrieving...</string> 62 <string name="RetrievingData">Retrieving...</string>
63 63
64 <string name="ReleaseNotes">Release Notes</string> 64 <string name="ReleaseNotes">Release Notes</string>
65 65
66 <!-- Indicates something is being loaded. Maybe should be merged with RetrievingData --> 66 <!-- Indicates something is being loaded. Maybe should be merged with RetrievingData -->
67 <string name="LoadingData">Loading...</string> 67 <string name="LoadingData">Loading...</string>
68 68
69 69
70 <!-- namecache --> 70 <!-- namecache -->
71 <!-- Avatar name: text shown for LLUUID::null --> 71 <!-- Avatar name: text shown for LLUUID::null -->
72 <string name="AvatarNameNobody">(nobody)</string> 72 <string name="AvatarNameNobody">(nobody)</string>
73 73
74 <!-- Avatar name: text shown while fetching name --> 74 <!-- Avatar name: text shown while fetching name -->
75 <string name="AvatarNameWaiting">(waiting)</string> 75 <string name="AvatarNameWaiting">(waiting)</string>
76 76
77 <!-- Avatar name: text shown as an alternative to AvatarNameFetching, easter egg. --> 77 <!-- Avatar name: text shown as an alternative to AvatarNameFetching, easter egg. -->
78 <string name="AvatarNameHippos">(hippos)</string> 78 <string name="AvatarNameHippos">(hippos)</string>
79 79
80 <!-- Group name: text shown for LLUUID::null --> 80 <!-- Group name: text shown for LLUUID::null -->
81 <string name="GroupNameNone">(none)</string> 81 <string name="GroupNameNone">(none)</string>
82 82
83 <!-- Asset errors. Used in llassetstorage.cpp, translation from error code to error message. --> 83 <!-- Asset errors. Used in llassetstorage.cpp, translation from error code to error message. -->
84 <string name="AssetErrorNone">No error</string> 84 <string name="AssetErrorNone">No error</string>
85 <string name="AssetErrorRequestFailed">Asset request: failed</string> 85 <string name="AssetErrorRequestFailed">Asset request: failed</string>
86 <string name="AssetErrorNonexistentFile">Asset request: non-existent file</string> 86 <string name="AssetErrorNonexistentFile">Asset request: non-existent file</string>
87 <string name="AssetErrorNotInDatabase">Asset request: asset not found in database</string> 87 <string name="AssetErrorNotInDatabase">Asset request: asset not found in database</string>
88 <string name="AssetErrorEOF">End of file</string> 88 <string name="AssetErrorEOF">End of file</string>
89 <string name="AssetErrorCannotOpenFile">Cannot open file</string> 89 <string name="AssetErrorCannotOpenFile">Cannot open file</string>
90 <string name="AssetErrorFileNotFound">File not found</string> 90 <string name="AssetErrorFileNotFound">File not found</string>
91 <string name="AssetErrorTCPTimeout">File transfer timeout</string> 91 <string name="AssetErrorTCPTimeout">File transfer timeout</string>
92 <string name="AssetErrorCircuitGone">Circuit gone</string> 92 <string name="AssetErrorCircuitGone">Circuit gone</string>
93 <string name="AssetErrorUnknownStatus">Unknown status</string> 93 <string name="AssetErrorUnknownStatus">Unknown status</string>
94 94
95 <!-- llvoavatar. Displayed in the avatar's chat bubble --> 95 <!-- llvoavatar. Displayed in the avatar's chat bubble -->
96 <string name="AvatarEditingApparance">(Editing Appearance)</string> 96 <string name="AvatarEditingApparance">(Editing Appearance)</string>
97 <string name="AvatarAway">Away</string> 97 <string name="AvatarAway">Away</string>
98 <string name="AvatarBusy">Busy</string> 98 <string name="AvatarBusy">Busy</string>
99 <string name="AvatarMuted">Muted</string> 99 <string name="AvatarMuted">Muted</string>
100 100
101 <!-- animations --> 101 <!-- animations -->
102 <string name="anim_express_afraid">Afraid</string> 102 <string name="anim_express_afraid">Afraid</string>
103 <string name="anim_express_anger">Angry</string> 103 <string name="anim_express_anger">Angry</string>
104 <string name="anim_away">Away</string> 104 <string name="anim_away">Away</string>
105 <string name="anim_backflip">Backflip</string> 105 <string name="anim_backflip">Backflip</string>
106 <string name="anim_express_laugh">Belly Laugh</string> 106 <string name="anim_express_laugh">Belly Laugh</string>
107 <string name="anim_express_toothsmile">BigSmile</string> 107 <string name="anim_express_toothsmile">BigSmile</string>
108 <string name="anim_blowkiss">Blow Kiss</string> 108 <string name="anim_blowkiss">Blow Kiss</string>
109 <string name="anim_express_bored">Bored</string> 109 <string name="anim_express_bored">Bored</string>
110 <string name="anim_bow">Bow</string> 110 <string name="anim_bow">Bow</string>
111 <string name="anim_clap">Clap</string> 111 <string name="anim_clap">Clap</string>
112 <string name="anim_courtbow">Court Bow</string> 112 <string name="anim_courtbow">Court Bow</string>
113 <string name="anim_express_cry">Cry</string> 113 <string name="anim_express_cry">Cry</string>
114 <string name="anim_dance1">Dance 1</string> 114 <string name="anim_dance1">Dance 1</string>
115 <string name="anim_dance2">Dance 2</string> 115 <string name="anim_dance2">Dance 2</string>
116 <string name="anim_dance3">Dance 3</string> 116 <string name="anim_dance3">Dance 3</string>
117 <string name="anim_dance4">Dance 4</string> 117 <string name="anim_dance4">Dance 4</string>
118 <string name="anim_dance5">Dance 5</string> 118 <string name="anim_dance5">Dance 5</string>
119 <string name="anim_dance6">Dance 6</string> 119 <string name="anim_dance6">Dance 6</string>
120 <string name="anim_dance7">Dance 7</string> 120 <string name="anim_dance7">Dance 7</string>
121 <string name="anim_dance8">Dance 8</string> 121 <string name="anim_dance8">Dance 8</string>
122 <string name="anim_express_disdain">Disdain</string> 122 <string name="anim_express_disdain">Disdain</string>
123 <string name="anim_drink">Drink</string> 123 <string name="anim_drink">Drink</string>
124 <string name="anim_express_embarrased">Embarrassed</string> 124 <string name="anim_express_embarrased">Embarrassed</string>
125 <string name="anim_angry_fingerwag">Finger Wag</string> 125 <string name="anim_angry_fingerwag">Finger Wag</string>
126 <string name="anim_fist_pump">Fist Pump</string> 126 <string name="anim_fist_pump">Fist Pump</string>
127 <string name="anim_yoga_float">Floating Yoga</string> 127 <string name="anim_yoga_float">Floating Yoga</string>
128 <string name="anim_express_frown">Frown</string> 128 <string name="anim_express_frown">Frown</string>
129 <string name="anim_impatient">Impatient</string> 129 <string name="anim_impatient">Impatient</string>
130 <string name="anim_jumpforjoy">Jump For Joy</string> 130 <string name="anim_jumpforjoy">Jump For Joy</string>
131 <string name="anim_kissmybutt">Kiss My Butt</string> 131 <string name="anim_kissmybutt">Kiss My Butt</string>
132 <string name="anim_express_kiss">Kiss</string> 132 <string name="anim_express_kiss">Kiss</string>
133 <string name="anim_laugh_short">Laugh</string> 133 <string name="anim_laugh_short">Laugh</string>
134 <string name="anim_musclebeach">Muscle Beach</string> 134 <string name="anim_musclebeach">Muscle Beach</string>
135 <string name="anim_no_unhappy">No (Unhappy)</string> 135 <string name="anim_no_unhappy">No (Unhappy)</string>
136 <string name="anim_no_head">No</string> 136 <string name="anim_no_head">No</string>
137 <string name="anim_nyanya">Nya-nya-nya</string> 137 <string name="anim_nyanya">Nya-nya-nya</string>
138 <string name="anim_punch_onetwo">One-Two Punch</string> 138 <string name="anim_punch_onetwo">One-Two Punch</string>
139 <string name="anim_express_open_mouth">Open Mouth</string> 139 <string name="anim_express_open_mouth">Open Mouth</string>
140 <string name="anim_peace">Peace</string> 140 <string name="anim_peace">Peace</string>
141 <string name="anim_point_you">Point at Other</string> 141 <string name="anim_point_you">Point at Other</string>
142 <string name="anim_point_me">Point at Self</string> 142 <string name="anim_point_me">Point at Self</string>
143 <string name="anim_punch_l">Punch Left</string> 143 <string name="anim_punch_l">Punch Left</string>
144 <string name="anim_punch_r">Punch Right</string> 144 <string name="anim_punch_r">Punch Right</string>
145 <string name="anim_rps_countdown">RPS count</string> 145 <string name="anim_rps_countdown">RPS count</string>
146 <string name="anim_rps_paper">RPS paper</string> 146 <string name="anim_rps_paper">RPS paper</string>
147 <string name="anim_rps_rock">RPS rock</string> 147 <string name="anim_rps_rock">RPS rock</string>
148 <string name="anim_rps_scissors">RPS scissors</string> 148 <string name="anim_rps_scissors">RPS scissors</string>
149 <string name="anim_express_repulsed">Repulsed</string> 149 <string name="anim_express_repulsed">Repulsed</string>
150 <string name="anim_kick_roundhouse_r">Roundhouse Kick</string> 150 <string name="anim_kick_roundhouse_r">Roundhouse Kick</string>
151 <string name="anim_express_sad">Sad</string> 151 <string name="anim_express_sad">Sad</string>
152 <string name="anim_salute">Salute</string> 152 <string name="anim_salute">Salute</string>
153 <string name="anim_shout">Shout</string> 153 <string name="anim_shout">Shout</string>
154 <string name="anim_express_shrug">Shrug</string> 154 <string name="anim_express_shrug">Shrug</string>
155 <string name="anim_express_smile">Smile</string> 155 <string name="anim_express_smile">Smile</string>
156 <string name="anim_smoke_idle">Smoke Idle</string> 156 <string name="anim_smoke_idle">Smoke Idle</string>
157 <string name="anim_smoke_inhale">Smoke Inhale</string> 157 <string name="anim_smoke_inhale">Smoke Inhale</string>
158 <string name="anim_smoke_throw_down">Smoke Throw Down</string> 158 <string name="anim_smoke_throw_down">Smoke Throw Down</string>
159 <string name="anim_express_surprise">Surprise</string> 159 <string name="anim_express_surprise">Surprise</string>
160 <string name="anim_sword_strike_r">Sword Strike</string> 160 <string name="anim_sword_strike_r">Sword Strike</string>
161 <string name="anim_angry_tantrum">Tantrum</string> 161 <string name="anim_angry_tantrum">Tantrum</string>
162 <string name="anim_express_tongue_out">TongueOut</string> 162 <string name="anim_express_tongue_out">TongueOut</string>
163 <string name="anim_hello">Wave</string> 163 <string name="anim_hello">Wave</string>
164 <string name="anim_whisper">Whisper</string> 164 <string name="anim_whisper">Whisper</string>
165 <string name="anim_whistle">Whistle</string> 165 <string name="anim_whistle">Whistle</string>
166 <string name="anim_express_wink">Wink</string> 166 <string name="anim_express_wink">Wink</string>
167 <string name="anim_wink_hollywood">Wink (Hollywood)</string> 167 <string name="anim_wink_hollywood">Wink (Hollywood)</string>
168 <string name="anim_express_worry">Worry</string> 168 <string name="anim_express_worry">Worry</string>
169 <string name="anim_yes_happy">Yes (Happy)</string> 169 <string name="anim_yes_happy">Yes (Happy)</string>
170 <string name="anim_yes_head">Yes</string> 170 <string name="anim_yes_head">Yes</string>
171 171
172 <string name="texture_loading">Loading...</string> 172 <string name="texture_loading">Loading...</string>
173 <string name="worldmap_offline">Offline</string> 173 <string name="worldmap_offline">Offline</string>
174 174
175 <!-- Chat --> 175 <!-- Chat -->
176 <string name="whisper">whispers:</string> 176 <string name="whisper">whispers:</string>
177 <string name="shout">shouts:</string> 177 <string name="shout">shouts:</string>
178 178
179</strings> 179</strings>
180 180
diff --git a/linden/indra/newview/skins/silver/colors_base.xml b/linden/indra/newview/skins/silver/colors_base.xml
index 623b800..2cdfb73 100644
--- a/linden/indra/newview/skins/silver/colors_base.xml
+++ b/linden/indra/newview/skins/silver/colors_base.xml
@@ -100,9 +100,9 @@
100<PieMenuSelectedColor value="185, 200, 220, 120" /> <!-- Color of pie menu slice when selected --> 100<PieMenuSelectedColor value="185, 200, 220, 120" /> <!-- Color of pie menu slice when selected -->
101 101
102<!-- MENU BAR --> 102<!-- MENU BAR -->
103<ParcelTextColor value="40, 40, 90, 255" /> <!-- Parcel name on menu bar, normal state --> 103<ParcelTextColor value="40, 40, 90, 255" /> <!-- Parcel name on menu bar, normal state -->
104<ParcelHoverColor value="70, 70, 100, 255" /> <!-- Parcel name on menu bar, hover state --> 104<ParcelHoverColor value="70, 70, 100, 255" /> <!-- Parcel name on menu bar, hover state -->
105<TimeTextColor value="0, 30, 60, 255" /> <!-- SL Time on menu bar --> 105<TimeTextColor value="0, 30, 60, 255" /> <!-- SL Time on menu bar -->
106<BalanceTextColor value="0, 100, 40, 255" /> <!-- Linden dollar balance on menu bar --> 106<BalanceTextColor value="0, 100, 40, 255" /> <!-- Linden dollar balance on menu bar -->
107<HealthTextColor value="110, 15, 15, 255" /> <!-- Damage meter text on menu bar --> 107<HealthTextColor value="110, 15, 15, 255" /> <!-- Damage meter text on menu bar -->
108 108
@@ -175,14 +175,6 @@
175<FilterTextColor value="255, 200, 70, 255" /> <!-- Inventory search text --> 175<FilterTextColor value="255, 200, 70, 255" /> <!-- Inventory search text -->
176<InventorySearchStatusColor value="0, 0, 0, 255" /> <!-- "Searching..." --> 176<InventorySearchStatusColor value="0, 0, 0, 255" /> <!-- "Searching..." -->
177 177
178<!-- HELP WINDOW -->
179<HelpBgColor value="200, 209, 204, 255" />
180<HelpFgColor value="0, 0, 0, 255" />
181<HelpScrollTrackColor value="0, 0, 0, 255" />
182<HelpScrollThumbColor value="255, 255, 255, 255" />
183<HelpScrollHighlightColor value="115, 132, 155, 255" />
184<HelpScrollShadowColor value="0, 0, 0, 255" />
185
186<!-- MISC --> 178<!-- MISC -->
187<AvatarNameColor value="251, 175, 93, 255" /> <!-- Text color of avatar nametags --> 179<AvatarNameColor value="251, 175, 93, 255" /> <!-- Text color of avatar nametags -->
188<FocusColor value="239, 156, 0, 255" /> <!-- Color of the glow around UI controls with keyboard focus --> 180<FocusColor value="239, 156, 0, 255" /> <!-- Color of the glow around UI controls with keyboard focus -->
@@ -192,5 +184,4 @@
192<ContextSilhouetteColor value="239, 156, 0, 255" /> <!-- For "context" highlighting, i.e. pie menu --> 184<ContextSilhouetteColor value="239, 156, 0, 255" /> <!-- For "context" highlighting, i.e. pie menu -->
193<GroupOverTierColor value="110, 15, 15, 255" /> <!-- Warning text in Group Info window --> 185<GroupOverTierColor value="110, 15, 15, 255" /> <!-- Warning text in Group Info window -->
194<ConsoleBackground value="0, 0, 0, 255" /> <!-- Background for inworld chat --> 186<ConsoleBackground value="0, 0, 0, 255" /> <!-- Background for inworld chat -->
195
196</settings> 187</settings>
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py
index 62c9537..d8261c2 100755
--- a/linden/indra/newview/viewer_manifest.py
+++ b/linden/indra/newview/viewer_manifest.py
@@ -44,6 +44,16 @@ class ViewerManifest(LLManifest):
44 self.exclude("*.svn*") 44 self.exclude("*.svn*")
45 self.path(src="../../scripts/messages/message_template.msg", dst="app_settings/message_template.msg") 45 self.path(src="../../scripts/messages/message_template.msg", dst="app_settings/message_template.msg")
46 self.path(src="../../etc/message.xml", dst="app_settings/message.xml") 46 self.path(src="../../etc/message.xml", dst="app_settings/message.xml")
47 self.path(src="../../../ChangeLog.txt", dst="doc/ChangeLog.txt")
48 self.path(src="../../../CONTRIBUTE.txt", dst="doc/CONTRIBUTE.txt")
49 self.path(src="../../../MANIFESTO.txt", dst="doc/MANIFESTO.txt")
50 self.path(src="../../../README.txt", dst="doc/README.txt")
51 self.path(src="../../../RELEASE_NOTES.txt", dst="doc/RELEASE_NOTES.txt")
52 self.path(src="../../doc/contributions.txt", dst="doc/ll-contributions.txt")
53 self.path(src="../../doc/FLOSS-exception.txt", dst="doc/FLOSS-exception.txt")
54 self.path(src="../../doc/GPL-license.txt", dst="doc/GPL-license.txt")
55 self.path(src="../../doc/releasenotes-where.txt", dst="doc/ll-releasenotes-where.txt")
56#
47 57
48 if self.prefix(src="app_settings"): 58 if self.prefix(src="app_settings"):
49 self.exclude("logcontrol.xml") 59 self.exclude("logcontrol.xml")
@@ -171,9 +181,9 @@ class WindowsManifest(ViewerManifest):
171 def final_exe(self): 181 def final_exe(self):
172 if self.default_channel(): 182 if self.default_channel():
173 if self.default_grid(): 183 if self.default_grid():
174 return "Imprudence.exe" 184 return "imprudence.exe"
175 else: 185 else:
176 return "ImprudencePreview.exe" 186 return "imprudencepreview.exe"
177 else: 187 else:
178 return ''.join(self.channel().split()) + '.exe' 188 return ''.join(self.channel().split()) + '.exe'
179 189
@@ -183,14 +193,6 @@ class WindowsManifest(ViewerManifest):
183 # the final exe is complicated because we're not sure where it's coming from, 193 # the final exe is complicated because we're not sure where it's coming from,
184 # nor do we have a fixed name for the executable 194 # nor do we have a fixed name for the executable
185 self.path(self.find_existing_file('debug/imprudence-bin.exe', 'release/imprudence-bin.exe', 'relwithdebinfo/imprudence-bin.exe'), dst=self.final_exe()) 195 self.path(self.find_existing_file('debug/imprudence-bin.exe', 'release/imprudence-bin.exe', 'relwithdebinfo/imprudence-bin.exe'), dst=self.final_exe())
186 # need to get the kdu dll from any of the build directories as well
187 #self.path(self.find_existing_file(
188 # *FIX:Mani we need to add support for packaging specific targets.
189 #'../llkdu/debug/llkdu.dll',
190 #'../llkdu/release/llkdu.dll',
191 #'../llkdu/relwithdebinfo/llkdu.dll',
192 #'../../libraries/i686-win32/lib/release/llkdu.dll'),
193 # dst='llkdu.dll')
194 196
195 self.gather_documents() 197 self.gather_documents()
196 198
@@ -212,6 +214,12 @@ class WindowsManifest(ViewerManifest):
212 self.path("openjpeg.dll") 214 self.path("openjpeg.dll")
213 self.end_prefix() 215 self.end_prefix()
214 216
217 # For sound
218 if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""):
219 self.path("openal32.dll")
220 self.path("alut.dll")
221 self.end_prefix()
222
215 # Mozilla appears to force a dependency on these files so we need to ship it (CP) 223 # Mozilla appears to force a dependency on these files so we need to ship it (CP)
216 self.path("msvcr71.dll") 224 self.path("msvcr71.dll")
217 self.path("msvcp71.dll") 225 self.path("msvcp71.dll")
@@ -244,18 +252,20 @@ class WindowsManifest(ViewerManifest):
244 self.end_prefix() 252 self.end_prefix()
245 253
246 # Vivox runtimes 254 # Vivox runtimes
247 #if self.prefix(src="vivox-runtime/i686-win32", dst=""): 255 if self.prefix(src="vivox-runtime/i686-win32", dst=""):
256 # self.path("alut.dll")
257 self.path("wrap_oal.dll")
258
248 # self.path("SLVoice.exe") 259 # self.path("SLVoice.exe")
249 # self.path("SLVoiceAgent.exe") 260 # self.path("SLVoiceAgent.exe")
250 # self.path("libeay32.dll") 261 # self.path("libeay32.dll")
251 # self.path("srtp.dll") 262 # self.path("srtp.dll")
252 # self.path("ssleay32.dll") 263 # self.path("ssleay32.dll")
253 # self.path("tntk.dll") 264 # self.path("tntk.dll")
254 # self.path("alut.dll")
255 # self.path("vivoxsdk.dll") 265 # self.path("vivoxsdk.dll")
256 # self.path("ortp.dll") 266 # self.path("ortp.dll")
257 # self.path("wrap_oal.dll") 267
258 # self.end_prefix() 268 self.end_prefix()
259 269
260# # pull in the crash logger and updater from other projects 270# # pull in the crash logger and updater from other projects
261# self.path(src=self.find_existing_file( # tag:"crash-logger" here as a cue to the exporter 271# self.path(src=self.find_existing_file( # tag:"crash-logger" here as a cue to the exporter
@@ -440,17 +450,15 @@ class DarwinManifest(ViewerManifest):
440 self.path("Japanese.lproj") 450 self.path("Japanese.lproj")
441 self.path("Korean.lproj") 451 self.path("Korean.lproj")
442 452
453
443 # SLVoice and vivox lols 454 # SLVoice and vivox lols
444 #self.path("vivox-runtime/universal-darwin/libalut.dylib", "libalut.dylib") 455 self.path("vivox-runtime/universal-darwin/libalut.dylib", "libalut.dylib")
445 #self.path("vivox-runtime/universal-darwin/libopenal.dylib", "libopenal.dylib") 456 self.path("vivox-runtime/universal-darwin/libopenal.dylib", "libopenal.dylib")
446 #self.path("vivox-runtime/universal-darwin/libortp.dylib", "libortp.dylib") 457 #self.path("vivox-runtime/universal-darwin/libortp.dylib", "libortp.dylib")
447 #self.path("vivox-runtime/universal-darwin/libvivoxsdk.dylib", "libvivoxsdk.dylib") 458 #self.path("vivox-runtime/universal-darwin/libvivoxsdk.dylib", "libvivoxsdk.dylib")
448 #self.path("vivox-runtime/universal-darwin/SLVoice", "SLVoice") 459 #self.path("vivox-runtime/universal-darwin/SLVoice", "SLVoice")
449 #self.path("vivox-runtime/universal-darwin/SLVoiceAgent.app", "SLVoiceAgent.app") 460 #self.path("vivox-runtime/universal-darwin/SLVoiceAgent.app", "SLVoiceAgent.app")
450 461
451 # llkdu dynamic library
452# self.path("../../libraries/universal-darwin/lib_release/libllkdu.dylib", "libllkdu.dylib")
453
454 #libfmodwrapper.dylib 462 #libfmodwrapper.dylib
455 #self.path(self.args['configuration'] + "/libfmodwrapper.dylib", "libfmodwrapper.dylib") 463 #self.path(self.args['configuration'] + "/libfmodwrapper.dylib", "libfmodwrapper.dylib")
456 464
@@ -658,7 +666,6 @@ class Linux_i686Manifest(LinuxManifest):
658 self.path("app_settings/mozilla-runtime-linux-i686") 666 self.path("app_settings/mozilla-runtime-linux-i686")
659 667
660 if self.prefix("../../libraries/i686-linux/lib_release_client", dst="lib"): 668 if self.prefix("../../libraries/i686-linux/lib_release_client", dst="lib"):
661# self.path("libkdu_v42R.so")
662# self.path("libfmod-3.75.so") 669# self.path("libfmod-3.75.so")
663 self.path("libapr-1.so.0") 670 self.path("libapr-1.so.0")
664 self.path("libaprutil-1.so.0") 671 self.path("libaprutil-1.so.0")
@@ -673,19 +680,19 @@ class Linux_i686Manifest(LinuxManifest):
673 self.path("libopenjpeg.so.2") 680 self.path("libopenjpeg.so.2")
674 #self.path("libtcmalloc.so.0") - bugged 681 #self.path("libtcmalloc.so.0") - bugged
675 #self.path("libstacktrace.so.0") - probably bugged 682 #self.path("libstacktrace.so.0") - probably bugged
676# self.path("libllkdu.so", "../bin/libllkdu.so") # llkdu goes in bin for some reason
677 self.end_prefix("lib") 683 self.end_prefix("lib")
678 684
679 # Vivox runtimes 685 # Vivox runtimes
680 #if self.prefix(src="vivox-runtime/i686-linux", dst="bin"): 686 #if self.prefix(src="vivox-runtime/i686-linux", dst="bin"):
681 # self.path("SLVoice") 687 # self.path("SLVoice")
682 # self.end_prefix() 688 # self.end_prefix()
683 #if self.prefix(src="vivox-runtime/i686-linux", dst="lib"): 689
684 # self.path("libopenal.so.1") 690 if self.prefix(src="vivox-runtime/i686-linux", dst="lib"):
691 self.path("libopenal.so.1")
692 self.path("libalut.so")
685 # self.path("libortp.so") 693 # self.path("libortp.so")
686 # self.path("libvivoxsdk.so") 694 # self.path("libvivoxsdk.so")
687 # self.path("libalut.so") 695 self.end_prefix("lib")
688 # self.end_prefix("lib")
689 696
690class Linux_x86_64Manifest(LinuxManifest): 697class Linux_x86_64Manifest(LinuxManifest):
691 def construct(self): 698 def construct(self):