diff --git a/etc/message.xml b/etc/message.xml index 04cdbc8f2..8dfd75e13 100644 --- a/etc/message.xml +++ b/etc/message.xml @@ -672,7 +672,10 @@ FetchInventoryDescendents false - + + WebFetchInventoryDescendents + false + FetchInventory true diff --git a/indra/CMakeLists.txt b/indra/CMakeLists.txt index 3b1c1e467..11d3f7ab7 100644 --- a/indra/CMakeLists.txt +++ b/indra/CMakeLists.txt @@ -30,6 +30,8 @@ include(Versions) include(UnixInstall) +set (GCC_DISABLE_FATAL_WARNINGS TRUE) + if (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE ReleaseSSE2 CACHE STRING "Build type. One of: Debug Release ReleaseSSE2 RelWithDebInfo" FORCE) diff --git a/indra/llcommon/llassettype.cpp b/indra/llcommon/llassettype.cpp index 6aea07fd0..8391f3d2f 100644 --- a/indra/llcommon/llassettype.cpp +++ b/indra/llcommon/llassettype.cpp @@ -103,12 +103,10 @@ LLAssetDictionary::LLAssetDictionary() //addEntry(LLAssetType::AT_FAVORITE, new AssetEntry("FAVORITE", "favorite", "", false, false, false)); addEntry(LLAssetType::AT_LINK, new AssetEntry("LINK", "link", "sym link", false, false, true)); addEntry(LLAssetType::AT_LINK_FOLDER, new AssetEntry("FOLDER_LINK", "link_f", "sym folder link", false, false, true)); - //addEntry(LLAssetType::AT_CURRENT_OUTFIT, new AssetEntry("FOLDER_LINK", "current", "current outfit", false, false, false)); - //addEntry(LLAssetType::AT_OUTFIT, new AssetEntry("OUTFIT", "outfit", "outfit", false, false, false)); - //addEntry(LLAssetType::AT_MY_OUTFITS, new AssetEntry("MY_OUTFITS", "my_otfts", "my outfits", false, false, false)); -#if MESH_ENABLED - addEntry(LLAssetType::AT_MESH, new AssetEntry("MESH", "mesh", "mesh", false, false, false)); -#endif //MESH_ENABLED + addEntry(LLAssetType::AT_CURRENT_OUTFIT, new AssetEntry("FOLDER_LINK", "current", "current outfit", false, false, false)); + addEntry(LLAssetType::AT_OUTFIT, new AssetEntry("OUTFIT", "outfit", "outfit", false, false, false)); + addEntry(LLAssetType::AT_MY_OUTFITS, new AssetEntry("MY_OUTFITS", "my_otfts", "my outfits", false, false, false)); + addEntry(LLAssetType::AT_MESH, new AssetEntry("MESH", "mesh", "mesh", false, true, true)); addEntry(LLAssetType::AT_NONE, new AssetEntry("NONE", "-1", NULL, false, false, false)); }; diff --git a/indra/llcommon/llassettype.h b/indra/llcommon/llassettype.h index 4590fc831..c253754ab 100644 --- a/indra/llcommon/llassettype.h +++ b/indra/llcommon/llassettype.h @@ -139,18 +139,16 @@ public: // Inventory folder link AT_LINK_FOLDER = 25, - //AT_CURRENT_OUTFIT = 46, + AT_CURRENT_OUTFIT = 46, - //AT_OUTFIT = 47, + AT_OUTFIT = 47, - //AT_MY_OUTFITS = 48, + AT_MY_OUTFITS = 48, -#if MESH_ENABLED AT_MESH = 49, // Mesh data in our proprietary SLM format AT_COUNT = 50, -#endif //MESH_ENABLED // +*********************************************+ // | TO ADD AN ELEMENT TO THIS ENUM: | // +*********************************************+ @@ -160,10 +158,6 @@ public: // | 4. ADD TO LLAssetType::mAssetTypeHumanNames | // +*********************************************+ - //AT_COUNT = 49, -#if !MESH_ENABLED - AT_COUNT = 26, -#endif //!MESH_ENABLED AT_NONE = -1 }; diff --git a/indra/llcommon/stdenums.h b/indra/llcommon/stdenums.h index 1a5678dde..ef0582f95 100644 --- a/indra/llcommon/stdenums.h +++ b/indra/llcommon/stdenums.h @@ -55,7 +55,8 @@ enum EDragAndDropType DAD_ANIMATION = 12, DAD_GESTURE = 13, DAD_LINK = 14, - DAD_COUNT = 15, // number of types in this enum + DAD_MESH = 15, + DAD_COUNT = 16, // number of types in this enum }; // Reasons for drags to be denied. diff --git a/indra/llimage/llimagej2c.cpp b/indra/llimage/llimagej2c.cpp index 9640d3e62..fc4829b2b 100644 --- a/indra/llimage/llimagej2c.cpp +++ b/indra/llimage/llimagej2c.cpp @@ -28,6 +28,11 @@ * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ */ +#if LL_LINUX && defined(LL_STANDALONE) +#include +#include +#endif + #include "linden_common.h" #include "apr_pools.h" @@ -85,9 +90,15 @@ void LLImageJ2C::openDSO() j2cimpl_dso_memory_pool.create(); //attempt to load the shared library +#if LL_LINUX && defined(LL_STANDALONE) + void *dso_handle = dlopen(dso_path.c_str(), RTLD_NOW | RTLD_GLOBAL); + rv = (!dso_handle)?APR_EDSOOPEN:apr_os_dso_handle_put(&j2cimpl_dso_handle, + dso_handle, j2cimpl_dso_memory_pool()); +#else rv = apr_dso_load(&j2cimpl_dso_handle, dso_path.c_str(), j2cimpl_dso_memory_pool()); +#endif //now, check for success if ( rv == APR_SUCCESS ) diff --git a/indra/llinventory/llinventorytype.h b/indra/llinventory/llinventorytype.h index f4ab79d03..f833ec692 100644 --- a/indra/llinventory/llinventorytype.h +++ b/indra/llinventory/llinventorytype.h @@ -67,7 +67,9 @@ public: IT_WEARABLE = 18, IT_ANIMATION = 19, IT_GESTURE = 20, - IT_COUNT = 21, + + IT_MESH = 22, + IT_COUNT = 23, IT_NONE = -1 }; diff --git a/indra/llmessage/message_prehash.cpp b/indra/llmessage/message_prehash.cpp index 855d1cccf..ad6ab9111 100644 --- a/indra/llmessage/message_prehash.cpp +++ b/indra/llmessage/message_prehash.cpp @@ -43,6 +43,8 @@ F32 gPrehashVersionNumber = 2.000f; char* _PREHASH_X = LLMessageStringTable::getInstance()->getString("X"); char* _PREHASH_Y = LLMessageStringTable::getInstance()->getString("Y"); char* _PREHASH_Z = LLMessageStringTable::getInstance()->getString("Z"); +char* _PREHASH_SizeX = LLMessageStringTable::getInstance()->getString("SizeX"); +char* _PREHASH_SizeY = LLMessageStringTable::getInstance()->getString("SizeY"); char* _PREHASH_AddFlags = LLMessageStringTable::getInstance()->getString("AddFlags"); char* _PREHASH_FailureInfo = LLMessageStringTable::getInstance()->getString("FailureInfo"); char* _PREHASH_MapData = LLMessageStringTable::getInstance()->getString("MapData"); diff --git a/indra/llmessage/message_prehash.h b/indra/llmessage/message_prehash.h index 77cfe710a..19a851a21 100644 --- a/indra/llmessage/message_prehash.h +++ b/indra/llmessage/message_prehash.h @@ -43,6 +43,8 @@ extern F32 gPrehashVersionNumber; extern char * _PREHASH_X; extern char * _PREHASH_Y; extern char * _PREHASH_Z; +extern char * _PREHASH_SizeX; +extern char * _PREHASH_SizeY; extern char * _PREHASH_AddFlags; extern char * _PREHASH_FailureInfo; extern char * _PREHASH_MapData; diff --git a/indra/llplugin/CMakeLists.txt b/indra/llplugin/CMakeLists.txt index 4b5420b6b..231b10bfa 100644 --- a/indra/llplugin/CMakeLists.txt +++ b/indra/llplugin/CMakeLists.txt @@ -65,6 +65,9 @@ endif (NOT WORD_SIZE EQUAL 32) list(APPEND llplugin_SOURCE_FILES ${llplugin_HEADER_FILES}) add_library (llplugin ${llplugin_SOURCE_FILES}) +if(LINUX AND STANDALONE) + target_link_libraries (llplugin rt dl) +endif(LINUX AND STANDALONE) add_dependencies(llplugin prepare) diff --git a/indra/llplugin/llplugininstance.cpp b/indra/llplugin/llplugininstance.cpp index 793fb22f4..a8da3051a 100644 --- a/indra/llplugin/llplugininstance.cpp +++ b/indra/llplugin/llplugininstance.cpp @@ -32,6 +32,10 @@ * * @endcond */ +#if LL_LINUX && defined(LL_STANDALONE) +#include +#include +#endif #include "linden_common.h" @@ -83,16 +87,25 @@ int LLPluginInstance::load(std::string &plugin_file) { pluginInitFunction init_function = NULL; +#if LL_LINUX && defined(LL_STANDALONE) + void *dso_handle = dlopen(plugin_file.c_str(), RTLD_NOW | RTLD_GLOBAL); + int result = (!dso_handle)?APR_EDSOOPEN:apr_os_dso_handle_put(&mDSOHandle, + dso_handle, AIAPRRootPool::get()()); +#else int result = apr_dso_load(&mDSOHandle, plugin_file.c_str(), LLAPRRootPool::get()()); +#endif if(result != APR_SUCCESS) { char buf[1024]; apr_dso_error(mDSOHandle, buf, sizeof(buf)); +#if LL_LINUX && defined(LL_STANDALONE) + LL_WARNS("Plugin") << "plugin load " << plugin_file << " failed with error " << result << " , additional info string: " << buf << LL_ENDL; +#else LL_WARNS("Plugin") << "apr_dso_load of " << plugin_file << " failed with error " << result << " , additional info string: " << buf << LL_ENDL; - +#endif } if(result == APR_SUCCESS) diff --git a/indra/llplugin/llpluginprocessparent.cpp b/indra/llplugin/llpluginprocessparent.cpp index 0d68738e7..6ba2f323b 100644 --- a/indra/llplugin/llpluginprocessparent.cpp +++ b/indra/llplugin/llpluginprocessparent.cpp @@ -40,6 +40,7 @@ #include "llpluginmessageclasses.h" #if LL_LINUX #include +#include #endif #include "llapr.h" @@ -406,7 +407,23 @@ void LLPluginProcessParent::idle(void) std::string const terminal_command = (env = getenv("LL_DEBUG_TERMINAL_COMMAND")) ? env : "/usr/bin/xterm -geometry 160x24+0+0 -e %s"; char const* const gdb_path = (env = getenv("LL_DEBUG_GDB_PATH")) ? env : "/usr/bin/gdb"; cmd << gdb_path << " -n /proc/" << mProcess.getProcessID() << "/exe " << mProcess.getProcessID(); - std::vector tokens = boost::program_options::split_unix(terminal_command, " "); + + typedef boost::tokenizer< boost::escaped_list_separator< + char>, typename std::basic_string< + char>::const_iterator, + std::basic_string > tokenizerT; + + tokenizerT tok(terminal_command.begin(), + terminal_command.end(), + boost::escaped_list_separator< char >("\\", + " ", "'\"")); + std::vector< std::basic_string > tokens; + for (typename tokenizerT::iterator + cur_token(tok.begin()), end_token(tok.end()); + cur_token != end_token; ++cur_token) { + if (!cur_token->empty()) + tokens.push_back(*cur_token); + } std::vector::iterator token = tokens.begin(); mDebugger.setExecutable(*token); while (++token != tokens.end()) diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index 0a951e7e9..df583eb62 100644 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -2418,6 +2418,12 @@ BOOL LLTextEditor::handleEditKey(const KEY key, const MASK mask) } } + if( handled ) + { + // take selection to 'primary' clipboard + updatePrimary(); + } + return handled; } diff --git a/indra/llwindow/CMakeLists.txt b/indra/llwindow/CMakeLists.txt index 8d927f7e9..e5d61d180 100644 --- a/indra/llwindow/CMakeLists.txt +++ b/indra/llwindow/CMakeLists.txt @@ -49,6 +49,7 @@ set(llwindow_HEADER_FILES set(viewer_SOURCE_FILES llwindow.cpp + llmousehandler.cpp ) set(viewer_HEADER_FILES diff --git a/indra/llwindow/llmousehandler.cpp b/indra/llwindow/llmousehandler.cpp new file mode 100644 index 000000000..8695e92f7 --- /dev/null +++ b/indra/llwindow/llmousehandler.cpp @@ -0,0 +1,58 @@ +/** + * @file llmousehandler.cpp + * @brief LLMouseHandler class implementation + * + * $LicenseInfo:firstyear=2001&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2010, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#include "llmousehandler.h" + +//virtual +BOOL LLMouseHandler::handleAnyMouseClick(S32 x, S32 y, MASK mask, EClickType clicktype, BOOL down) +{ + BOOL handled = FALSE; + if (down) + { + switch (clicktype) + { + case CLICK_LEFT: handled = handleMouseDown(x, y, mask); break; + case CLICK_RIGHT: handled = handleRightMouseDown(x, y, mask); break; + case CLICK_MIDDLE: handled = handleMiddleMouseDown(x, y, mask); break; + case CLICK_DOUBLELEFT: handled = handleDoubleClick(x, y, mask); break; + default: + llwarns << "Unhandled enum." << llendl; + } + } + else + { + switch (clicktype) + { + case CLICK_LEFT: handled = handleMouseUp(x, y, mask); break; + case CLICK_RIGHT: handled = handleRightMouseUp(x, y, mask); break; + case CLICK_MIDDLE: handled = handleMiddleMouseUp(x, y, mask); break; + case CLICK_DOUBLELEFT: handled = handleDoubleClick(x, y, mask); break; + default: + llwarns << "Unhandled enum." << llendl; + } + } + return handled; +} diff --git a/indra/llwindow/llmousehandler.h b/indra/llwindow/llmousehandler.h index f3a2edd8a..7bd0f2eeb 100644 --- a/indra/llwindow/llmousehandler.h +++ b/indra/llwindow/llmousehandler.h @@ -33,9 +33,10 @@ #ifndef LL_MOUSEHANDLER_H #define LL_MOUSEHANDLER_H -#include "llstring.h" +#include "linden_common.h" +#include "llrect.h" -// Abstract interface. +// Mostly-abstract interface. // Intended for use via multiple inheritance. // A class may have as many interfaces as it likes, but never needs to inherit one more than once. @@ -49,13 +50,23 @@ public: SHOW_IF_NOT_BLOCKED, SHOW_ALWAYS, } EShowToolTip; + typedef enum { + CLICK_LEFT, + CLICK_MIDDLE, + CLICK_RIGHT, + CLICK_DOUBLELEFT + } EClickType; + virtual BOOL handleAnyMouseClick(S32 x, S32 y, MASK mask, EClickType clicktype, BOOL down); virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask) = 0; virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask) = 0; - virtual BOOL handleHover(S32 x, S32 y, MASK mask) = 0; - virtual BOOL handleScrollWheel(S32 x, S32 y, S32 clicks) = 0; - virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask) = 0; + virtual BOOL handleMiddleMouseDown(S32 x, S32 y, MASK mask) = 0; + virtual BOOL handleMiddleMouseUp(S32 x, S32 y, MASK mask) = 0; virtual BOOL handleRightMouseDown(S32 x, S32 y, MASK mask) = 0; virtual BOOL handleRightMouseUp(S32 x, S32 y, MASK mask) = 0; + virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask) = 0; + + virtual BOOL handleHover(S32 x, S32 y, MASK mask) = 0; + virtual BOOL handleScrollWheel(S32 x, S32 y, S32 clicks) = 0; virtual BOOL handleToolTip(S32 x, S32 y, std::string& msg, LLRect* sticky_rect_screen) = 0; virtual EShowToolTip getShowToolTip() { return SHOW_IF_NOT_BLOCKED; }; virtual const std::string& getName() const = 0; diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp index 2023beaf0..59c76d4d0 100644 --- a/indra/llwindow/llwindowsdl.cpp +++ b/indra/llwindow/llwindowsdl.cpp @@ -1372,7 +1372,7 @@ BOOL LLWindowSDL::pasteTextFromPrimary(LLWString &dst) BOOL LLWindowSDL::copyTextToPrimary(const LLWString &s) { - return FALSE; // unsupported + return FALSE; // unsupported } #endif // LL_GTK diff --git a/indra/llwindow/llwindowsdl.h b/indra/llwindow/llwindowsdl.h index d46ffcdd9..a6b9ff4f9 100644 --- a/indra/llwindow/llwindowsdl.h +++ b/indra/llwindow/llwindowsdl.h @@ -82,6 +82,7 @@ public: /*virtual*/ void captureMouse(); /*virtual*/ void releaseMouse(); /*virtual*/ void setMouseClipping( BOOL b ); + /*virtual*/ BOOL isClipboardTextAvailable(); /*virtual*/ BOOL pasteTextFromClipboard(LLWString &dst); /*virtual*/ BOOL copyTextToClipboard(const LLWString & src); @@ -89,7 +90,7 @@ public: /*virtual*/ BOOL isPrimaryTextAvailable(); /*virtual*/ BOOL pasteTextFromPrimary(LLWString &dst); /*virtual*/ BOOL copyTextToPrimary(const LLWString & src); - + /*virtual*/ void flashIcon(F32 seconds); /*virtual*/ F32 getGamma(); /*virtual*/ BOOL setGamma(const F32 gamma); // Set the gamma diff --git a/indra/lscript/lscript_library/lscript_library.cpp b/indra/lscript/lscript_library/lscript_library.cpp index ffbb91340..919fb758c 100644 --- a/indra/lscript/lscript_library/lscript_library.cpp +++ b/indra/lscript/lscript_library/lscript_library.cpp @@ -462,29 +462,35 @@ void LLScriptLibrary::init() addFunction(10.f, 0.f, dummy_func, "llGetLinkNumberOfSides", "i", "i"); // IDEVO Name lookup calls, see lscript_avatar_names.h - addFunction(10.f, 0.f, dummy_func, "llGetUsername", "s", "k"); - addFunction(10.f, 0.f, dummy_func, "llRequestUsername", "k", "k"); - addFunction(10.f, 0.f, dummy_func, "llGetDisplayName", "s", "k"); + addFunction(10.f, 0.f, dummy_func, "llGetUsername", "s", "k"); + addFunction(10.f, 0.f, dummy_func, "llRequestUsername", "k", "k"); + addFunction(10.f, 0.f, dummy_func, "llGetDisplayName", "s", "k"); addFunction(10.f, 0.f, dummy_func, "llRequestDisplayName", "k", "k"); - addFunction(10.f, 0.f, dummy_func, "llGetEnv", "s", "s"); addFunction(10.f, 0.f, dummy_func, "llRegionSayTo", NULL, "kis"); // Adding missing (more recent) LSL functions. - addFunction(10.f, 0.f, dummy_func, "llCastRay", "l", "vvl"); - addFunction(10.f, 0.f, dummy_func, "llGetSPMaxMemory", "i", NULL); - addFunction(10.f, 0.f, dummy_func, "llGetUsedMemory", "i", NULL); - addFunction(10.f, 0.f, dummy_func, "llGodLikeRezObject", NULL, "kv"); - addFunction(10.f, 0.f, dummy_func, "llScriptProfiler", NULL, "i"); - addFunction(10.f, 0.f, dummy_func, "llSetInventoryPermMask", NULL, "sii"); - addFunction(10.f, 0.f, dummy_func, "llSetObjectPermMask", NULL, "ii"); - - // energy, sleep, dummy_func, name, return type, parameters, help text, gods-only - - // IF YOU ADD NEW SCRIPT CALLS, YOU MUST PUT THEM AT THE END OF THIS LIST. - // Otherwise the bytecode numbers for each call will be wrong, and all - // existing scripts will crash. + addFunction(10.f, 0.f, dummy_func, "llCastRay", "l", "vvl"); + addFunction(10.f, 0.f, dummy_func, "llGetSPMaxMemory", "i", NULL); + addFunction(10.f, 0.f, dummy_func, "llGetUsedMemory", "i", NULL); + addFunction(10.f, 0.f, dummy_func, "llGodLikeRezObject", NULL, "kv"); + addFunction(10.f, 0.f, dummy_func, "llScriptProfiler", NULL, "i"); + addFunction(10.f, 0.f, dummy_func, "llSetInventoryPermMask", NULL, "sii"); + addFunction(10.f, 0.f, dummy_func, "llSetObjectPermMask", NULL, "ii"); + // Even more recent + addFunction(10.f, 0.f, dummy_func, "llSetMemoryLimit", "i", "i"); + addFunction(10.f, 0.f, dummy_func, "llSetLinkMedia", "i", "iil"); + addFunction(10.f, 0.f, dummy_func, "llGetLinkMedia", "l", "iil"); + addFunction(10.f, 0.f, dummy_func, "llClearLinkMedia", "i", "ii"); + addFunction(10.f, 0.f, dummy_func, "llSetLinkCamera", NULL, "ivv"); + addFunction(10.f, 0.f, dummy_func, "llSetContentType", NULL, "ki"); + addFunction(10.f, 0.f, dummy_func, "llLinkSitTarget", NULL, "ivr"); + addFunction(10.f, 0.f, dummy_func, "llAvatarOnLinkSitTarget", "k", "i"); + /* No info on these new functions yet.... + * addFunction(10.f, 0.f, dummy_func, "llSetVelocity", "", ""); + * addFunction(10.f, 0.f, dummy_func, "llSetRotationalVelocity", "", ""); + */ // REGARDING OSSL FUNCTIONS // These additions should be posted underneath the llFunctions @@ -496,6 +502,8 @@ void LLScriptLibrary::init() // OSSL corrections and syntax additions added + set in same order as found in OSSL_stub.cs of OpenSim Source (Updated PM October-21-2010 // based on OpenSimulator Ver. 0.7.x DEV/Master Git # a7acb650d400a280a7b9edabd304376dff9c81af - a7acb65-r/14142 // Updates by WhiteStar Magic + + // It should be noted though, that the order of OSSL functions is not important for correct functionality. addFunction(10.f, 0.f, dummy_func, "osSetRegionWaterHeight", NULL, "f"); addFunction(10.f, 0.f, dummy_func, "osSetRegionSunSettings", NULL, "iif"); @@ -583,12 +591,15 @@ void LLScriptLibrary::init() addFunction(10.f, 0.f, dummy_func, "osUnixTimeToTimestamp", "s", "i"); addFunction(10.f, 0.f, dummy_func, "osSetPenColor", NULL, "ss"); addFunction(10.f, 0.f, dummy_func, "osGetSunParam","f", "s"); - addFunction(10.f, 0.f, dummy_func, "osSetSunParam", "sf", NULL); + addFunction(10.f, 0.f, dummy_func, "osSetSunParam", NULL, "sf"); addFunction(10.f, 0.f, dummy_func, "osSetParcelDetails", NULL, "vl"); addFunction(10.f, 0.f, dummy_func, "osGetTerrainHeight", "f", "ii"); addFunction(10.f, 0.f, dummy_func, "osSetTerrainHeight", NULL, "iif"); addFunction(10.f, 0.f, dummy_func, "osGetAvatarList", "l", NULL); addFunction(10.f, 0.f, dummy_func, "osTeleportOwner", NULL, "svv"); + addFunction(10.f, 0.f, dummy_func, "osGetWindParam","f", "ss"); + addFunction(10.f, 0.f, dummy_func, "osSetWindParam", NULL, "ssf"); + // LightShare functions addFunction(10.f, 0.f, dummy_func, "cmSetWindlightScene", "i", "l"); @@ -599,6 +610,20 @@ void LLScriptLibrary::init() addFunction(10.f, 0.f, dummy_func, "lsSetWindlightScene", "i", "l"); addFunction(10.f, 0.f, dummy_func, "lsSetWindlightSceneTargeted", "i", "lk"); addFunction(10.f, 0.f, dummy_func, "lsGetWindlightScene", "l", "l"); + + // New OSSL functions 08-10-2011 + addFunction(10.f, 0.f, dummy_func, "osNpcSaveAppearance", "k", "ks"); + addFunction(10.f, 0.f, dummy_func, "osNpcLoadAppearance", NULL, "ks"); + addFunction(10.f, 0.f, dummy_func, "osNpcMoveToTarget", NULL, "kvi"); + addFunction(10.f, 0.f, dummy_func, "osOwnerSaveAppearance", "k", "s"); + + // More new stuffs + addFunction(10.f, 0.f, dummy_func, "osNpcGetRot", "r", "k"); + addFunction(10.f, 0.f, dummy_func, "osNpcSetRot", NULL, "kr"); + addFunction(10.f, 0.f, dummy_func, "osAgentSaveAppearance", "k", "ks"); + addFunction(10.f, 0.f, dummy_func, "osNpcGetPos", "v", "k"); + addFunction(10.f, 0.f, dummy_func, "osNpcStopMoveToTarget", NULL, "k"); + } LLScriptLibraryFunction::LLScriptLibraryFunction(F32 eu, F32 st, void (*exec_func)(LLScriptLibData *, LLScriptLibData *, const LLUUID &), const char *name, const char *ret_type, const char *args, BOOL god_only) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 1e347b6bd..3d3298acc 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -232,6 +232,7 @@ set(viewer_SOURCE_FILES llfloaterproperties.cpp llfloaterregioninfo.cpp llfloaterreporter.cpp + llfloatersearchreplace.cpp llfloaterscriptdebug.cpp llfloatersellland.cpp llfloatersettingsdebug.cpp @@ -715,6 +716,7 @@ set(viewer_HEADER_FILES llfloaterproperties.h llfloaterregioninfo.h llfloaterreporter.h + llfloatersearchreplace.h llfloaterscriptdebug.h llfloatersellland.h llfloatersettingsdebug.h diff --git a/indra/newview/app_settings/client_tags_sg1.xml b/indra/newview/app_settings/client_tags_sg1.xml index 2bca70a9d..bdbd53003 100644 --- a/indra/newview/app_settings/client_tags_sg1.xml +++ b/indra/newview/app_settings/client_tags_sg1.xml @@ -1 +1,1443 @@ -841ef25b-3b90-caf9-ea3d-5649e755db65nameCombat Cubedcolor0.494117647058820.59215686274510.682352941176471adcbe893-7643-fd12-f61c-0b39717e2e32nametyk3ncolor0.99215686274510.59215686274510.58431372549021ccb509cf-cc69-e569-38f1-5086c687afd1nameRubycolor0.862745098039220.294117647058820.388235294117651d3eb4a5f-aec5-4bcb-b007-cce9efe89d37namerivlifecolor0.329411764705880.427450980392160.121568627450981c252d89d-6f7c-7d90-f430-d140d2e3fbbenameVLifecolor0.99215686274510.345098039215690.18431372549021eviltrue1c29480c-c608-df87-28bb-964fb64c5366nameGeminicolor0.862745098039220.760784313725490.3882352941176512c9c1e0b-e5d1-263e-16b1-7fc6d169f3d6namePhoxSLcolor0.494117647058820.843137254901960.682352941176471eviltrue0f6723d2-5b23-6b58-08ab-308112b33786nameCryoLifecolor0.329411764705880.109803921568630.788235294117651eviltrue58a8b7ec-1455-7162-5d96-d3c3ead2ed71nameCombat Cubedcolor0.494117647058820.59215686274510.682352941176471f5a48821-9a98-d09e-8d6a-50cc08ba9a47nameNeilLifecolor0.996078431372550.894117647058820.121568627450981eviltrue734fed29-4c51-63e5-1648-6589949d7585nameExplicitcolor0.60.427450980392160.80784313725491ccda2b3b-e72c-a112-e126-fee238b67218nameEmeraldcolor0.329411764705880.894117647058820.1215686274509812a9a406c-f448-68f2-4e38-878f8c46c190nameMeerkatcolor0.99215686274510.79215686274510.533333333333331b6820989-bf42-ff59-ddde-fd3fd3a74fe4nameMeerkatcolor0.99215686274510.79215686274510.5333333333333313ab7e2fa-9572-ef36-1a30-d855dbea4f92nameCombat Cubedcolor0.494117647058820.59215686274510.6823529411764719422e9d7-7b11-83e4-6262-4a8db4716a3bnameBetaLifecolor0.996078431372550.227450980392160.7882352941176514da16427-d81e-e816-f346-aaf4741b8056nameiLifecolor0.996078431372550.894117647058820.788235294117651ffce04ff-5303-4909-a044-d37af7ab0b0enameCorgicolor0.99215686274510.59215686274510.180392156862751eviltruec5b570ca-bb7e-3c81-afd1-f62646b20014nameKung Fucolor0.996078431372550.894117647058820.788235294117651cc7a030f-282f-c165-44d2-b5ee572e72bfnameImprudencecolor0.80784313725490.466666666666670.8196078431372514e8dcf80-336b-b1d8-ef3e-08dacf015a0fnameSapphirecolor0.329411764705880.227450980392160.1215686274509815aa5c70d-d787-571b-0495-4fc1bdef1500nameLGG Proxycolor0.996078431372550.227450980392160.1215686274509810bcd5f5d-a4ce-9ea4-f9e8-15132653b3d8nameMoyMixcolor0.99215686274510.560784313725490.6549019607843118183e823-c443-2142-6eb6-2ab763d4f81cnameDay Oh proxycolor0.494117647058820.345098039215690.6823529411764713da8a69a-58ca-023f-2161-57f2ab3b5702nameOperatorcolor00.7372549019607811eviltrueed63fbd0-589e-fe1d-a3d0-16905efaa96bnamePhoenixcolor0.662745098039220.227450980392160.12549019607843181b3e921-ee31-aa57-ff9b-ec1f28e41da1nameInfinitycolor0.729411764705880.627450980392160.3882352941176515262d71a-88f7-ef40-3b15-00ea148ab4b5nameGemini.Botcolor0.862745098039220.760784313725490.38823529411765177662f23-c77a-9b4d-5558-26b757b2144cnamePSLcolor0.79215686274510.443137254901960.580392156862751e734563e-1c31-2a35-3ed5-8552c807439fnameCombat Cubedcolor0.494117647058820.59215686274510.682352941176471f3fd74a6-fee7-4b2f-93ae-ddcb5991da04namePSLcolor0.79215686274510.443137254901960.580392156862751f5feab57-bde5-2074-97af-517290213eaanameOnyxcolor0.360784313725490.360784313725490.360784313725491eviltruee52d21f7-3c8b-819f-a3db-65c432295dacnameCryoLifecolor0.329411764705880.109803921568630.788235294117651eviltrue7c4d47a3-0c51-04d1-fa47-e4f3ac12f59bnameKung Fucolor0.996078431372550.894117647058820.78823529411765192fc8bff-c604-815a-a716-60be97ed53d1nameBananacolor10.60.101960784313731b32f01bc-f9b3-4535-b1f3-99dc38f022dbnameMeta7color11118873757c-092a-98fb-1afd-ecd347566fcdnameAscentcolor0.3764705882352911128b4da3f-5f9b-f44e-1387-6a115ab482c5nameDiamondcolor0.81568627450980.79215686274510.682352941176471c1936b62-6db5-1bc2-cfb6-54b040db74b4nameShenaniganscolor0.78431372549020.78431372549020.4705882352941217d65a82d-df53-1e5d-65ea-f82c98fa9d16nameBSDcolor0.631372549019610.125490196078430.937254901960781287aaa37-2f88-275a-edf4-7ea6bb82fb8dnamelolcatcolor0.698039215686270.133333333333330.133333333333331806a8249-e235-f051-ac4c-0a58b570f1c1nameLunacolor0.439215686274510.7215686274509811d64bf2e9-651f-0b6e-9e8f-4311d42287e3namePie_Viewercolor0.498039215686270.247058823529411129705410-bcdf-bfd5-e811-5fca794dfbc1nameHippoMeowcolor0.20.9568627450980411e8dd2ab3-e074-710c-bac9-e80790990bffnameCombat Cubedcolor0.494117647058820.59215686274510.682352941176471b8c99aa0-6e82-0a84-3fc9-f73dc89471c2nameProlapsedPussyLifecolor0.6666666666666700.61ffb65745-2120-e248-33e0-13dd9166b3banameTWHcolor10.129411764705880.129411764705881eviltrueb33b69ae-6b6c-b395-0175-ce76a871173bnameNicholascolor0.40.2666666666666711af8c86bd-c377-c331-7476-58abeb7af8fcnameThe Sorcerercolor0.541176470588240.168627450980390.886274509803921049af712-22c9-b2c4-50c7-90a9f1d1e5efnameGNRcolor0.901960784313730.901960784313730.9019607843137319ee02f6b-c244-75d4-1737-da8afb9d8d52nameHackedcolor0.933333333333330.9333333333333311ed943d3f-7a29-8339-11b9-cd0c06a1241bname/yiff/color0.478431372549020.478431372549020.4784313725490214ca51a79-41c0-91ec-7c58-a5195951bda2nameHorny Thelcolor10.27058823529412018cc85294-c3d9-8f9f-e507-c324ef49786enameIncognitoLifecolor000191144252-196e-bac9-3737-92752eee612dnameCaninecolor0.870588235294120.85882352941176119995490f-b248-46f2-91ed-910289676f99name$color0.254901960784310.254901960784310.254901960784311745ac6b7-5b03-450d-6b01-577da127d7d2nameZidonukecolor000.588235294117651d2fd7988-786f-40bc-54cb-c2ad557a639dnameFirestormcolor0.94117647058824001bb7fba3a-e7e0-14d6-b1ae-ce43f67745abnameApple Lifecolor010.0039215686274511c3e958f3-cfb5-9e8b-edb7-d12d5c0623d5nameWinkycolor0.262745098039220.431372549019610.93333333333333154d93609-1392-2a93-255c-a9dd429ecca5nameEmergencecolor0.815686274509800157f9da7c-0323-c412-58be-80b0441b887enameNeon Glowcolor0.282352941176470.254901960784310.909803921568631481a055f-36b5-af82-ac49-24709f013e50nameNanocolor0.705882352941180.8470588235294101f25263b7-6167-4f34-a4ef-af65213b2e39nameSingularitycolor0.705882352941180.78431372549020.78431372549021734bae36-a197-b087-ee2d-a098d58fed55nameMoreland Grovecolor10.498039215686270.4980392156862716c622b79-b49d-b5da-e4d1-2f45ecec6106nameVolt Viewercolor1101f8551a21-c960-5132-366a-f55ea63d97c3nameHackercolor0.643137254901960.643137254901960.6431372549019614e6c4027-9bbd-2dc5-2c00-c55a08fd49d1nameDOWN SYNDROMEcolor0.0823529411764710.0745098039215690.07450980392156912b459a3b-5420-21a1-7dda-eccf02de6c37nameSuncolor0.254901960784310.368627450980390.525490196078431af22a7af-a3f9-b4e4-79de-3d9f4653f9e3nameFoxy!color0.745098039215690.235294117647060.1960784313725514b84e182-f0cc-d8da-94c8-25b59c4e4b99nameDeus Ex Machinacolor0.980392156862750.549019607843140101f13da6-fd61-82be-5a8b-68f2d165d8cdnameSmilodoncolor10.50196078431373014b6f6b75-bf77-d1ff-0000-000000000000nameKokuacolor0.749019607843140.466666666666670.807843137254919a4d13d4-b36b-ff89-715b-9b53091c1473nameSuperLifecolor0.882352941176470.8823529411764701bdef8fc2-df54-fa80-757a-f7f346bbcf77nameKoreDEVcolor0.545098039215690.270588235294120.0745098039215691d0770263-aec5-6a26-f987-37c14e8f6523nameHXO-Lifecolor000.882352941176471eviltrue1a1d86b2-edda-aa01-6e23-5b0cc7c2fe35nameS3aiancolor0.0470588235294120.0039215686274510.8823529411764713386a955-641c-1113-18e7-d4a5165a62bdnameStreetLifecolor0.545098039215690.545098039215690.51372549019608114ae222f-cf97-fcff-6b90-21593d824dbdnameFuckLifecolor0.039215686274510.0156862745098040.078431372549021b2848bed-38b3-3d6b-6ebe-7b4cb7d4994anameKoreDEV-Ghostcolor0.039215686274510.196078431372550.078431372549021c58fca06-33b3-827d-d81c-a886a631affcnameWhalecolor10.6117647058823501a1057672-e67b-7b40-118c-4e6898457dcbnameTeeLifecolor0.3529411764705900.0039215686274511f709044d-3f7e-3d94-6c40-17e9d456d35anameGod Proxycolor00.86666666666667010b6bc011-15c7-721d-f4c9-cdbaf3448dbanameMoonBotcolor0.588235294117650.156862745098040.901960784313731f40db76a-f6fc-449f-a6e8-47e1484fa294nameJoinOurHomoMafiacolor10.313725490196080.6588235294117612d02f0a7-48a0-46b3-944f-6a0a7523aaf6nameHomoLifecolor0.858823529411760.0352941176470590.4313725490196113f23c201-e73a-4b86-b294-5fef9919dc23nameShottacolor00.5019607843137311c1d1a634-7d1f-70ac-513e-471c3a81d01bnamec1Tanzanitecolor0.545098039215690.0352941176470590.964705882352941397554b9-3e2f-4255-5fde-76f93e71295bnameGenesiscolor0.749019607843140.749019607843140.749019607843141e5a99018-4886-d48d-4793-54514f3c5a7bnameMarzWorldcolor0.827450980392160.827450980392160.827450980392161869e0c1a-a2d9-4b92-bd70-5044d6bd2284nameBluebirdcolor0.0196078431372550.588235294117650.984313725490218cdf6c66-2f8f-1aa9-f8ee-0493acf90328nameNexuscolor0.40784313725490.133333333333330.5450980392156911fb9ce5c-bb36-a0c1-72b5-e4f3406c6d56nameLucidcolor0.678431372549020.988235294117650.9725490196078416043a54c-b320-523a-ed15-a8fdd2ebc923nameBlunixcolor0.047058823529412011611300d4-9188-102f-9530-68c7f52dc17anameC1501color0.980392156862750.380392156862750.576470588235291e46e7c2b-1de3-5347-db43-42ee4e1f5bf2nameVoscolor0.705882352941180.705882352941180.705882352941181697e702f-29e2-2a31-8dcd-b53f5c25a27cnameMilkshakecolor0.745098039215690.631372549019610.525490196078431ae4e92fb-023d-23ba-d060-3403f953ab1anamePhoenixcolor0.996078431372550.560784313725490.6549019607843115d9581af-d615-bc16-2667-2f04f8eeefe4namePhoenixcolor0.329411764705880.894117647058820.1215686274509815f0e7c32-38c3-9214-01f0-fb16a5b40128namePhoenixcolor110.18431372549021e35f7d40-6071-4b29-9727-5647bdafb5d5namePhoenixcolor1111e71b780e-1a57-400d-4649-959f69ec7d51namePhoenixcolor0.996078431372550.227450980392160.1215686274509815bb6e4a6-8e24-7c92-be2e-91419bb0ebcbnamePhoenixcolor0.349019607843140.3490196078431411e4117c3f-cc02-d537-665d-c31b8c11bb18nameEmeraldcolor10118cf0577c-22d3-6a73-523c-15c0a90d6c27namePhoenixcolor0.729411764705880.360784313725490.654901960784311ddf41cfa-f5c5-0dee-3ed9-f3fb0adb1eadnamePhoenixcolor1011dd0ccfa2-8124-b165-176d-f3dc08f4189enamePhoenixcolor0.50196078431373011c1c189f5-6dab-fc03-ea5a-f9f68f90b018namePhoenixcolor0.996078431372550.396078431372550.121568627450981bf33bd15-7020-cce1-3725-48923440b7eenameEmeraldcolor0.980392156862750.690196078431370.3411764705882411e0948ab-706a-b309-434c-a694436a79benameEmeraldcolor1111072343d0-1ce9-0952-4106-5312af4a789anameEmeraldcolor0.996078431372550.560784313725490.6549019607843111da8eb54-a70f-bd4a-77e5-c7b815c3b2a2nameEmeraldcolor0.996078431372550.227450980392160.1215686274509814eb67510-0924-ebb1-50ca-8af5694cd267nameEmeraldcolor0.349019607843140.3490196078431411e741e2bf-cf8c-191c-97f2-b2709a843dfcnameEmeraldcolor0.996078431372550.396078431372550.1215686274509818078ffb3-840c-d037-caf3-5cd02c2e7040nameEmeraldcolor110.18431372549021602243f4-8fb1-ac00-d5bc-7ab50c4433b7nameEmeraldcolor0.501960784313730110ae2f973-98c1-a4e8-9f4b-9db2044ab079nameEmeraldcolor0.729411764705880.360784313725490.654901960784311isCompletetrue \ No newline at end of file + + + + 841ef25b-3b90-caf9-ea3d-5649e755db65 + + name + Combat Cubed + color + + 0.49411764705882 + 0.5921568627451 + 0.68235294117647 + 1 + + + adcbe893-7643-fd12-f61c-0b39717e2e32 + + name + tyk3n + color + + 0.9921568627451 + 0.5921568627451 + 0.5843137254902 + 1 + + + ccb509cf-cc69-e569-38f1-5086c687afd1 + + name + Ruby + color + + 0.86274509803922 + 0.29411764705882 + 0.38823529411765 + 1 + + + d3eb4a5f-aec5-4bcb-b007-cce9efe89d37 + + name + rivlife + color + + 0.32941176470588 + 0.42745098039216 + 0.12156862745098 + 1 + + + c252d89d-6f7c-7d90-f430-d140d2e3fbbe + + name + VLife + color + + 0.9921568627451 + 0.34509803921569 + 0.1843137254902 + 1 + + evil + true + + 1c29480c-c608-df87-28bb-964fb64c5366 + + name + Gemini + color + + 0.86274509803922 + 0.76078431372549 + 0.38823529411765 + 1 + + + 2c9c1e0b-e5d1-263e-16b1-7fc6d169f3d6 + + name + PhoxSL + color + + 0.49411764705882 + 0.84313725490196 + 0.68235294117647 + 1 + + evil + true + + 0f6723d2-5b23-6b58-08ab-308112b33786 + + name + CryoLife + color + + 0.32941176470588 + 0.10980392156863 + 0.78823529411765 + 1 + + evil + true + + 58a8b7ec-1455-7162-5d96-d3c3ead2ed71 + + name + Combat Cubed + color + + 0.49411764705882 + 0.5921568627451 + 0.68235294117647 + 1 + + + f5a48821-9a98-d09e-8d6a-50cc08ba9a47 + + name + NeilLife + color + + 0.99607843137255 + 0.89411764705882 + 0.12156862745098 + 1 + + evil + true + + 734fed29-4c51-63e5-1648-6589949d7585 + + name + Explicit + color + + 0.6 + 0.42745098039216 + 0.8078431372549 + 1 + + + ccda2b3b-e72c-a112-e126-fee238b67218 + + name + Emerald + color + + 0.32941176470588 + 0.89411764705882 + 0.12156862745098 + 1 + + + 2a9a406c-f448-68f2-4e38-878f8c46c190 + + name + Meerkat + color + + 0.9921568627451 + 0.7921568627451 + 0.53333333333333 + 1 + + + b6820989-bf42-ff59-ddde-fd3fd3a74fe4 + + name + Meerkat + color + + 0.9921568627451 + 0.7921568627451 + 0.53333333333333 + 1 + + + 3ab7e2fa-9572-ef36-1a30-d855dbea4f92 + + name + Combat Cubed + color + + 0.49411764705882 + 0.5921568627451 + 0.68235294117647 + 1 + + + 9422e9d7-7b11-83e4-6262-4a8db4716a3b + + name + BetaLife + color + + 0.99607843137255 + 0.22745098039216 + 0.78823529411765 + 1 + + + 4da16427-d81e-e816-f346-aaf4741b8056 + + name + iLife + color + + 0.99607843137255 + 0.89411764705882 + 0.78823529411765 + 1 + + + ffce04ff-5303-4909-a044-d37af7ab0b0e + + name + Corgi + color + + 0.9921568627451 + 0.5921568627451 + 0.18039215686275 + 1 + + evil + true + + c5b570ca-bb7e-3c81-afd1-f62646b20014 + + name + Kung Fu + color + + 0.99607843137255 + 0.89411764705882 + 0.78823529411765 + 1 + + + cc7a030f-282f-c165-44d2-b5ee572e72bf + + name + Imprudence + color + + 0.8078431372549 + 0.46666666666667 + 0.81960784313725 + 1 + + + 4e8dcf80-336b-b1d8-ef3e-08dacf015a0f + + name + Sapphire + color + + 0.32941176470588 + 0.22745098039216 + 0.12156862745098 + 1 + + + 5aa5c70d-d787-571b-0495-4fc1bdef1500 + + name + LGG Proxy + color + + 0.99607843137255 + 0.22745098039216 + 0.12156862745098 + 1 + + + 0bcd5f5d-a4ce-9ea4-f9e8-15132653b3d8 + + name + MoyMix + color + + 0.9921568627451 + 0.56078431372549 + 0.65490196078431 + 1 + + + 8183e823-c443-2142-6eb6-2ab763d4f81c + + name + Day Oh proxy + color + + 0.49411764705882 + 0.34509803921569 + 0.68235294117647 + 1 + + + 3da8a69a-58ca-023f-2161-57f2ab3b5702 + + name + Operator + color + + 0 + 0.73725490196078 + 1 + 1 + + evil + true + + ed63fbd0-589e-fe1d-a3d0-16905efaa96b + + name + Phoenix + color + + 0.66274509803922 + 0.22745098039216 + 0.12549019607843 + 1 + + + 81b3e921-ee31-aa57-ff9b-ec1f28e41da1 + + name + Infinity + color + + 0.72941176470588 + 0.62745098039216 + 0.38823529411765 + 1 + + + 5262d71a-88f7-ef40-3b15-00ea148ab4b5 + + name + Gemini.Bot + color + + 0.86274509803922 + 0.76078431372549 + 0.38823529411765 + 1 + + + 77662f23-c77a-9b4d-5558-26b757b2144c + + name + PSL + color + + 0.7921568627451 + 0.44313725490196 + 0.58039215686275 + 1 + + + e734563e-1c31-2a35-3ed5-8552c807439f + + name + Combat Cubed + color + + 0.49411764705882 + 0.5921568627451 + 0.68235294117647 + 1 + + + f3fd74a6-fee7-4b2f-93ae-ddcb5991da04 + + name + PSL + color + + 0.7921568627451 + 0.44313725490196 + 0.58039215686275 + 1 + + + f5feab57-bde5-2074-97af-517290213eaa + + name + Onyx + color + + 0.36078431372549 + 0.36078431372549 + 0.36078431372549 + 1 + + evil + true + + e52d21f7-3c8b-819f-a3db-65c432295dac + + name + CryoLife + color + + 0.32941176470588 + 0.10980392156863 + 0.78823529411765 + 1 + + evil + true + + 7c4d47a3-0c51-04d1-fa47-e4f3ac12f59b + + name + Kung Fu + color + + 0.99607843137255 + 0.89411764705882 + 0.78823529411765 + 1 + + + 92fc8bff-c604-815a-a716-60be97ed53d1 + + name + Banana + color + + 1 + 0.6 + 0.10196078431373 + 1 + + + b32f01bc-f9b3-4535-b1f3-99dc38f022db + + name + Meta7 + color + + 1 + 1 + 1 + 1 + + + 8873757c-092a-98fb-1afd-ecd347566fcd + + name + Ascent + color + + 0.37647058823529 + 1 + 1 + 1 + + + 28b4da3f-5f9b-f44e-1387-6a115ab482c5 + + name + Diamond + color + + 0.8156862745098 + 0.7921568627451 + 0.68235294117647 + 1 + + + c1936b62-6db5-1bc2-cfb6-54b040db74b4 + + name + Shenanigans + color + + 0.7843137254902 + 0.7843137254902 + 0.47058823529412 + 1 + + + 7d65a82d-df53-1e5d-65ea-f82c98fa9d16 + + name + BSD + color + + 0.63137254901961 + 0.12549019607843 + 0.93725490196078 + 1 + + + 287aaa37-2f88-275a-edf4-7ea6bb82fb8d + + name + lolcat + color + + 0.69803921568627 + 0.13333333333333 + 0.13333333333333 + 1 + + + 806a8249-e235-f051-ac4c-0a58b570f1c1 + + name + Luna + color + + 0.43921568627451 + 0.72156862745098 + 1 + 1 + + + d64bf2e9-651f-0b6e-9e8f-4311d42287e3 + + name + Pie_Viewer + color + + 0.49803921568627 + 0.24705882352941 + 1 + 1 + + + 29705410-bcdf-bfd5-e811-5fca794dfbc1 + + name + HippoMeow + color + + 0.2 + 0.95686274509804 + 1 + 1 + + + e8dd2ab3-e074-710c-bac9-e80790990bff + + name + Combat Cubed + color + + 0.49411764705882 + 0.5921568627451 + 0.68235294117647 + 1 + + + b8c99aa0-6e82-0a84-3fc9-f73dc89471c2 + + name + ProlapsedPussyLife + color + + 0.66666666666667 + 0 + 0.6 + 1 + + + ffb65745-2120-e248-33e0-13dd9166b3ba + + name + TWH + color + + 1 + 0.12941176470588 + 0.12941176470588 + 1 + + evil + true + + b33b69ae-6b6c-b395-0175-ce76a871173b + + name + Nicholas + color + + 0.4 + 0.26666666666667 + 1 + 1 + + + af8c86bd-c377-c331-7476-58abeb7af8fc + + name + The Sorcerer + color + + 0.54117647058824 + 0.16862745098039 + 0.88627450980392 + 1 + + + 049af712-22c9-b2c4-50c7-90a9f1d1e5ef + + name + GNR + color + + 0.90196078431373 + 0.90196078431373 + 0.90196078431373 + 1 + + + 9ee02f6b-c244-75d4-1737-da8afb9d8d52 + + name + Hacked + color + + 0.93333333333333 + 0.93333333333333 + 1 + 1 + + + ed943d3f-7a29-8339-11b9-cd0c06a1241b + + name + /yiff/ + color + + 0.47843137254902 + 0.47843137254902 + 0.47843137254902 + 1 + + + 4ca51a79-41c0-91ec-7c58-a5195951bda2 + + name + Horny Thel + color + + 1 + 0.27058823529412 + 0 + 1 + + + 8cc85294-c3d9-8f9f-e507-c324ef49786e + + name + IncognitoLife + color + + 0 + 0 + 0 + 1 + + + 91144252-196e-bac9-3737-92752eee612d + + name + Canine + color + + 0.87058823529412 + 0.85882352941176 + 1 + 1 + + + 9995490f-b248-46f2-91ed-910289676f99 + + name + $ + color + + 0.25490196078431 + 0.25490196078431 + 0.25490196078431 + 1 + + + 745ac6b7-5b03-450d-6b01-577da127d7d2 + + name + Zidonuke + color + + 0 + 0 + 0.58823529411765 + 1 + + + d2fd7988-786f-40bc-54cb-c2ad557a639d + + name + Firestorm + color + + 0.94117647058824 + 0 + 0 + 1 + + + bb7fba3a-e7e0-14d6-b1ae-ce43f67745ab + + name + Apple Life + color + + 0 + 1 + 0.003921568627451 + 1 + + + c3e958f3-cfb5-9e8b-edb7-d12d5c0623d5 + + name + Winky + color + + 0.26274509803922 + 0.43137254901961 + 0.93333333333333 + 1 + + + 54d93609-1392-2a93-255c-a9dd429ecca5 + + name + Emergence + color + + 0.8156862745098 + 0 + 0 + 1 + + + 57f9da7c-0323-c412-58be-80b0441b887e + + name + Neon Glow + color + + 0.28235294117647 + 0.25490196078431 + 0.90980392156863 + 1 + + + 481a055f-36b5-af82-ac49-24709f013e50 + + name + Nano + color + + 0.70588235294118 + 0.84705882352941 + 0 + 1 + + + f25263b7-6167-4f34-a4ef-af65213b2e39 + + name + Singularity + color + + 0.70588235294118 + 0.7843137254902 + 0.7843137254902 + 1 + + + 734bae36-a197-b087-ee2d-a098d58fed55 + + name + Moreland Grove + color + + 1 + 0.49803921568627 + 0.49803921568627 + 1 + + + 6c622b79-b49d-b5da-e4d1-2f45ecec6106 + + name + Volt Viewer + color + + 1 + 1 + 0 + 1 + + + f8551a21-c960-5132-366a-f55ea63d97c3 + + name + Hacker + color + + 0.64313725490196 + 0.64313725490196 + 0.64313725490196 + 1 + + + 4e6c4027-9bbd-2dc5-2c00-c55a08fd49d1 + + name + DOWN SYNDROME + color + + 0.082352941176471 + 0.074509803921569 + 0.074509803921569 + 1 + + + 2b459a3b-5420-21a1-7dda-eccf02de6c37 + + name + Sun + color + + 0.25490196078431 + 0.36862745098039 + 0.52549019607843 + 1 + + + af22a7af-a3f9-b4e4-79de-3d9f4653f9e3 + + name + Foxy! + color + + 0.74509803921569 + 0.23529411764706 + 0.19607843137255 + 1 + + + 4b84e182-f0cc-d8da-94c8-25b59c4e4b99 + + name + Deus Ex Machina + color + + 0.98039215686275 + 0.54901960784314 + 0 + 1 + + + 01f13da6-fd61-82be-5a8b-68f2d165d8cd + + name + Smilodon + color + + 1 + 0.50196078431373 + 0 + 1 + + + 4b6f6b75-bf77-d1ff-0000-000000000000 + + name + Kokua + color + + 0.74901960784314 + 0.46666666666667 + 0.8078431372549 + 1 + + + 9a4d13d4-b36b-ff89-715b-9b53091c1473 + + name + SuperLife + color + + 0.88235294117647 + 0.88235294117647 + 0 + 1 + + + bdef8fc2-df54-fa80-757a-f7f346bbcf77 + + name + KoreDEV + color + + 0.54509803921569 + 0.27058823529412 + 0.074509803921569 + 1 + + + d0770263-aec5-6a26-f987-37c14e8f6523 + + name + HXO-Life + color + + 0 + 0 + 0.88235294117647 + 1 + + evil + true + + 1a1d86b2-edda-aa01-6e23-5b0cc7c2fe35 + + name + S3aian + color + + 0.047058823529412 + 0.003921568627451 + 0.88235294117647 + 1 + + + 3386a955-641c-1113-18e7-d4a5165a62bd + + name + StreetLife + color + + 0.54509803921569 + 0.54509803921569 + 0.51372549019608 + 1 + + + 14ae222f-cf97-fcff-6b90-21593d824dbd + + name + FuckLife + color + + 0.03921568627451 + 0.015686274509804 + 0.07843137254902 + 1 + + + b2848bed-38b3-3d6b-6ebe-7b4cb7d4994a + + name + KoreDEV-Ghost + color + + 0.03921568627451 + 0.19607843137255 + 0.07843137254902 + 1 + + + c58fca06-33b3-827d-d81c-a886a631affc + + name + Whale + color + + 1 + 0.61176470588235 + 0 + 1 + + + a1057672-e67b-7b40-118c-4e6898457dcb + + name + TeeLife + color + + 0.35294117647059 + 0 + 0.003921568627451 + 1 + + + f709044d-3f7e-3d94-6c40-17e9d456d35a + + name + God Proxy + color + + 0 + 0.86666666666667 + 0 + 1 + + + 0b6bc011-15c7-721d-f4c9-cdbaf3448dba + + name + MoonBot + color + + 0.58823529411765 + 0.15686274509804 + 0.90196078431373 + 1 + + + f40db76a-f6fc-449f-a6e8-47e1484fa294 + + name + JoinOurHomoMafia + color + + 1 + 0.31372549019608 + 0.65882352941176 + 1 + + + 2d02f0a7-48a0-46b3-944f-6a0a7523aaf6 + + name + HomoLife + color + + 0.85882352941176 + 0.035294117647059 + 0.43137254901961 + 1 + + + 3f23c201-e73a-4b86-b294-5fef9919dc23 + + name + Shotta + color + + 0 + 0.50196078431373 + 1 + 1 + + + c1d1a634-7d1f-70ac-513e-471c3a81d01b + + name + c1Tanzanite + color + + 0.54509803921569 + 0.035294117647059 + 0.96470588235294 + 1 + + + 397554b9-3e2f-4255-5fde-76f93e71295b + + name + Genesis + color + + 0.74901960784314 + 0.74901960784314 + 0.74901960784314 + 1 + + + e5a99018-4886-d48d-4793-54514f3c5a7b + + name + MarzWorld + color + + 0.82745098039216 + 0.82745098039216 + 0.82745098039216 + 1 + + + 869e0c1a-a2d9-4b92-bd70-5044d6bd2284 + + name + Bluebird + color + + 0.019607843137255 + 0.58823529411765 + 0.9843137254902 + 1 + + + 8cdf6c66-2f8f-1aa9-f8ee-0493acf90328 + + name + Nexus + color + + 0.4078431372549 + 0.13333333333333 + 0.54509803921569 + 1 + + + 1fb9ce5c-bb36-a0c1-72b5-e4f3406c6d56 + + name + Lucid + color + + 0.67843137254902 + 0.98823529411765 + 0.97254901960784 + 1 + + + 6043a54c-b320-523a-ed15-a8fdd2ebc923 + + name + Blunix + color + + 0.047058823529412 + 0 + 1 + 1 + + + 611300d4-9188-102f-9530-68c7f52dc17a + + name + C1501 + color + + 0.98039215686275 + 0.38039215686275 + 0.57647058823529 + 1 + + + e46e7c2b-1de3-5347-db43-42ee4e1f5bf2 + + name + Vos + color + + 0.70588235294118 + 0.70588235294118 + 0.70588235294118 + 1 + + + 697e702f-29e2-2a31-8dcd-b53f5c25a27c + + name + Milkshake + color + + 0.74509803921569 + 0.63137254901961 + 0.52549019607843 + 1 + + + ae4e92fb-023d-23ba-d060-3403f953ab1a + + name + Phoenix + color + + 0.99607843137255 + 0.56078431372549 + 0.65490196078431 + 1 + + + 5d9581af-d615-bc16-2667-2f04f8eeefe4 + + name + Phoenix + color + + 0.32941176470588 + 0.89411764705882 + 0.12156862745098 + 1 + + + 5f0e7c32-38c3-9214-01f0-fb16a5b40128 + + name + Phoenix + color + + 1 + 1 + 0.1843137254902 + 1 + + + e35f7d40-6071-4b29-9727-5647bdafb5d5 + + name + Phoenix + color + + 1 + 1 + 1 + 1 + + + e71b780e-1a57-400d-4649-959f69ec7d51 + + name + Phoenix + color + + 0.99607843137255 + 0.22745098039216 + 0.12156862745098 + 1 + + + 5bb6e4a6-8e24-7c92-be2e-91419bb0ebcb + + name + Phoenix + color + + 0.34901960784314 + 0.34901960784314 + 1 + 1 + + + e4117c3f-cc02-d537-665d-c31b8c11bb18 + + name + Emerald + color + + 1 + 0 + 1 + 1 + + + 8cf0577c-22d3-6a73-523c-15c0a90d6c27 + + name + Phoenix + color + + 0.72941176470588 + 0.36078431372549 + 0.65490196078431 + 1 + + + ddf41cfa-f5c5-0dee-3ed9-f3fb0adb1ead + + name + Phoenix + color + + 1 + 0 + 1 + 1 + + + dd0ccfa2-8124-b165-176d-f3dc08f4189e + + name + Phoenix + color + + 0.50196078431373 + 0 + 1 + 1 + + + c1c189f5-6dab-fc03-ea5a-f9f68f90b018 + + name + Phoenix + color + + 0.99607843137255 + 0.39607843137255 + 0.12156862745098 + 1 + + + bf33bd15-7020-cce1-3725-48923440b7ee + + name + Emerald + color + + 0.98039215686275 + 0.69019607843137 + 0.34117647058824 + 1 + + + 1e0948ab-706a-b309-434c-a694436a79be + + name + Emerald + color + + 1 + 1 + 1 + 1 + + + 072343d0-1ce9-0952-4106-5312af4a789a + + name + Emerald + color + + 0.99607843137255 + 0.56078431372549 + 0.65490196078431 + 1 + + + 1da8eb54-a70f-bd4a-77e5-c7b815c3b2a2 + + name + Emerald + color + + 0.99607843137255 + 0.22745098039216 + 0.12156862745098 + 1 + + + 4eb67510-0924-ebb1-50ca-8af5694cd267 + + name + Emerald + color + + 0.34901960784314 + 0.34901960784314 + 1 + 1 + + + e741e2bf-cf8c-191c-97f2-b2709a843dfc + + name + Emerald + color + + 0.99607843137255 + 0.39607843137255 + 0.12156862745098 + 1 + + + 8078ffb3-840c-d037-caf3-5cd02c2e7040 + + name + Emerald + color + + 1 + 1 + 0.1843137254902 + 1 + + + 602243f4-8fb1-ac00-d5bc-7ab50c4433b7 + + name + Emerald + color + + 0.50196078431373 + 0 + 1 + 1 + + + 0ae2f973-98c1-a4e8-9f4b-9db2044ab079 + + name + Emerald + color + + 0.72941176470588 + 0.36078431372549 + 0.65490196078431 + 1 + + + b748af88-58e2-995b-cf26-9486dea8e830 + + name + Radegast + color + + 0.56862 + 0.78431 + 1 + 1 + + + isComplete + true + + diff --git a/indra/newview/app_settings/grass.xml b/indra/newview/app_settings/grass.xml index 4fc3b798a..e59487c2b 100644 --- a/indra/newview/app_settings/grass.xml +++ b/indra/newview/app_settings/grass.xml @@ -1,47 +1,46 @@ - \ No newline at end of file diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index ae3059556..3cb5445cd 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -212,7 +212,7 @@ Type Boolean Value - 0 + 1 MediaFilterRect @@ -14538,5 +14538,27 @@ Value 1 + LastGrass + + Comment + The last grass selected in the create dialog + Persist + 1 + Type + String + Value + Random + + LastTree + + Comment + The last tree selected in the create dialog + Persist + 1 + Type + String + Value + Random + diff --git a/indra/newview/app_settings/windlight/days/Colder%20Tones.xml b/indra/newview/app_settings/windlight/days/Colder%20Tones.xml new file mode 100644 index 000000000..63d0b099e --- /dev/null +++ b/indra/newview/app_settings/windlight/days/Colder%20Tones.xml @@ -0,0 +1,28 @@ + + + + 0 + Midnight + + + 0.24999989569187164 + Purple + + + 0.49999979138374329 + Blue Midday + + + 0.74999970197677612 + Blizzard + + + 0.87499958276748657 + Ghost + + + 0.99999958276748657 + Midnight + + + diff --git a/indra/newview/app_settings/windlight/days/Dynamic%20Richness.xml b/indra/newview/app_settings/windlight/days/Dynamic%20Richness.xml new file mode 100644 index 000000000..f75b52e6e --- /dev/null +++ b/indra/newview/app_settings/windlight/days/Dynamic%20Richness.xml @@ -0,0 +1,32 @@ + + + + 0 + Night + + + 0.12499994784593582 + Blizzard + + + 0.24999989569187164 + Sunrise + + + 0.49999979138374329 + Midday 3 + + + 0.68749970197677612 + Pirate + + + 0.81249970197677612 + Coastal Sunset + + + 0.99999958276748657 + Midnight + + + diff --git a/indra/newview/app_settings/windlight/days/Pirate%27s%20Dream.xml b/indra/newview/app_settings/windlight/days/Pirate%27s%20Dream.xml new file mode 100644 index 000000000..6dc1ba9f4 --- /dev/null +++ b/indra/newview/app_settings/windlight/days/Pirate%27s%20Dream.xml @@ -0,0 +1,44 @@ + + + + 0 + A-12AM + + + 0.12499994784593582 + A-3AM + + + 0.22222213447093964 + Barcelona + + + 0.30208322405815125 + Sunrise + + + 0.37499985098838806 + Sailor's Delight + + + 0.53819423913955688 + Coastal Afternoon + + + 0.63194417953491211 + Pirate + + + 0.7048608660697937 + Desert Sunset + + + 0.74999970197677612 + Coastal Sunset + + + 0.87499958276748657 + Blizzard + + + diff --git a/indra/newview/app_settings/windlight/days/Psycho%20Strobe%21.xml b/indra/newview/app_settings/windlight/days/Psycho%20Strobe%21.xml new file mode 100644 index 000000000..302af5a9b --- /dev/null +++ b/indra/newview/app_settings/windlight/days/Psycho%20Strobe%21.xml @@ -0,0 +1,72 @@ + + + + 0 + Sheer Surreality + + + 0.062499973922967911 + A-12AM + + + 0.12499994784593582 + Sheer Surreality + + + 0.18749992549419403 + A-3AM + + + 0.24999989569187164 + Sheer Surreality + + + 0.31249985098838806 + A-6AM + + + 0.37499985098838806 + Sheer Surreality + + + 0.43749979138374329 + A-9AM + + + 0.49999979138374329 + Sheer Surreality + + + 0.5624997615814209 + A-12PM + + + 0.62499970197677612 + Sheer Surreality + + + 0.68749970197677612 + A-3PM + + + 0.74999970197677612 + Sheer Surreality + + + 0.81249970197677612 + A-6PM + + + 0.87499958276748657 + Sheer Surreality + + + 0.93749958276748657 + A-9PM + + + 0.99999958276748657 + Sheer Surreality + + + diff --git a/indra/newview/app_settings/windlight/days/Tropicalia.xml b/indra/newview/app_settings/windlight/days/Tropicalia.xml new file mode 100644 index 000000000..89a56d4a1 --- /dev/null +++ b/indra/newview/app_settings/windlight/days/Tropicalia.xml @@ -0,0 +1,32 @@ + + + + 0.062499973922967911 + Purple + + + 0.16666659712791443 + Funky Funky + + + 0.31249985098838806 + Sunrise + + + 0.49999979138374329 + Fine Day + + + 0.66666638851165771 + Desert Sunset + + + 0.74999970197677612 + Sailor's Delight + + + 0.95833295583724976 + Midnight + + + diff --git a/indra/newview/app_settings/windlight/days/Weird-O.xml b/indra/newview/app_settings/windlight/days/Weird-O.xml new file mode 100644 index 000000000..1e312f246 --- /dev/null +++ b/indra/newview/app_settings/windlight/days/Weird-O.xml @@ -0,0 +1,56 @@ + + + + 0 + Funky Funky + + + 0.13194438815116882 + Funky Funky Funky + + + 0.26041656732559204 + Gelatto + + + 0.40624985098838806 + Funky Funky Funky + + + 0.43749979138374329 + Ghost + + + 0.46874979138374329 + Gelatto + + + 0.5486108660697937 + Sheer Surreality + + + 0.6076386570930481 + Gelatto + + + 0.68055528402328491 + Ghost + + + 0.75694411993026733 + Sheer Surreality + + + 0.87847185134887695 + Gelatto + + + 0.91319411993026733 + Funky Funky Funky + + + 0.96527737379074097 + Funky Funky Funky + + + diff --git a/indra/newview/app_settings/windlight/skies/B5%2DShadowDancing.xml b/indra/newview/app_settings/windlight/skies/B5%2DShadowDancing.xml new file mode 100644 index 000000000..a1a8f026d --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/B5%2DShadowDancing.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.26999998092651367 + 0.26999998092651367 + 0.26999998092651367 + 0.08999999612569809 + + blue_density + + 0.37999999523162842 + 0.37999999523162842 + 0.37999999523162842 + 0.18999999761581421 + + blue_horizon + + 0.69999998807907104 + 0.69999998807907104 + 0.69999998807907104 + 0.34999999403953552 + + cloud_color + + 0 + 0 + 0 + 0 + + cloud_pos_density1 + + 0.2800000011920929 + 0.59999996423721313 + 1 + 1 + + cloud_pos_density2 + + 0 + 0 + 0 + 1 + + cloud_scale + + 0.2199999988079071 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.069999776780605 + 9.9299997761845589 + + cloud_shadow + + 0.22999998927116394 + 0 + 0 + 1 + + density_multiplier + + 0.00039999998989515007 + 0 + 0 + 1 + + distance_multiplier + + 8.6000003814697266 + 0 + 0 + 1 + + east_angle + 2.7017695903778076 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.5099999904632568 + 0 + 0 + 1 + + glow + + 13.600001335144043 + 0.0010000000474974513 + -0.39999997615814209 + 1 + + haze_density + + 0.81999999284744263 + 0 + 0 + 1 + + haze_horizon + + 0.59999996423721313 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.42413315176963806 + 0.087851203978061676 + -0.90132862329483032 + 0 + + max_y + + 2562 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 0.74000000953674316 + sun_angle + 0.087964601814746857 + sunlight_color + + 1.1999999284744263 + 1.1999999284744263 + 1.1999999284744263 + 0.39999997615814209 + + + diff --git a/indra/newview/app_settings/windlight/skies/Bryn%20Oh%27s%20Annas%20Many%20Murders.xml b/indra/newview/app_settings/windlight/skies/Bryn%20Oh%27s%20Annas%20Many%20Murders.xml new file mode 100644 index 000000000..f585ddb6d --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Bryn%20Oh%27s%20Annas%20Many%20Murders.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.21000000834465027 + 0.08999999612569809 + 0 + 0.070000000298023224 + + blue_density + + 0.17999999225139618 + 0.19999998807907104 + 0.14000000059604645 + 0.2199999988079071 + + blue_horizon + + 0.29999998211860657 + 0.17999999225139618 + 0.19999998807907104 + 0.29999998211860657 + + cloud_color + + 0.61000001430511475 + 0.53999996185302734 + 0.56000000238418579 + 0.61000001430511475 + + cloud_pos_density1 + + 0.44999998807907104 + 0.55000001192092896 + 0.059999998658895493 + 1 + + cloud_pos_density2 + + 0.53999996185302734 + 0.47999998927116394 + 0.039999999105930328 + 1 + + cloud_scale + + 0.18000000715255737 + 0 + 0 + 1 + + cloud_scroll_rate + + 12.989999771118164 + 10.510000228881836 + + cloud_shadow + + 0.63999998569488525 + 0 + 0 + 1 + + density_multiplier + + 0.00020999999833293259 + 0 + 0 + 1 + + distance_multiplier + + 23 + 0 + 0 + 1 + + east_angle + 2.0106194019317627 + enable_cloud_scroll + + 1 + 1 + + gamma + + 0.74000000953674316 + 0 + 0 + 1 + + glow + + 20 + 0.0010000000474974513 + -0 + 1 + + haze_density + + 4 + 0 + 0 + 1 + + haze_horizon + + 0.17000000178813934 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.90482699871063232 + 1.7484555314695172e-007 + -0.42577937245368958 + 0 + + max_y + + 322 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 0 + sun_angle + 6.2831854820251465 + sunlight_color + + 0.65999996662139893 + 0.53999996185302734 + 0.59999996423721313 + 0.65999996662139893 + + + diff --git a/indra/newview/app_settings/windlight/skies/Bryn%20Oh%27s%20BLUNIVERSE.xml b/indra/newview/app_settings/windlight/skies/Bryn%20Oh%27s%20BLUNIVERSE.xml new file mode 100644 index 000000000..8c2082e43 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Bryn%20Oh%27s%20BLUNIVERSE.xml @@ -0,0 +1,141 @@ + + + ambient + + 0 + 0 + 0.14999999105930328 + 0.14999999105930328 + + blue_density + + 0 + 0.37999999523162842 + 0.56000000238418579 + 0.56000000238418579 + + blue_horizon + + 0.45999997854232788 + 0.37999999523162842 + 0.57999998331069946 + 0.57999998331069946 + + cloud_color + + 0.11999999731779099 + 0.10999999940395355 + 0.11999999731779099 + 0.11999999731779099 + + cloud_pos_density1 + + 0.69999998807907104 + 0.34999999403953552 + 0.79999995231628418 + 1 + + cloud_pos_density2 + + 0.29999998211860657 + 0.17000000178813934 + 0.17000000178813934 + 1 + + cloud_scale + + 0.39999997615814209 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.359999656677246 + 10.029999732971191 + + cloud_shadow + + 0.29999998211860657 + 0 + 0 + 1 + + density_multiplier + + 9.9999997473787516e-005 + 0 + 0 + 1 + + distance_multiplier + + 37.200000762939453 + 0 + 0 + 1 + + east_angle + 1.1938052177429199 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.0099999904632568 + 0 + 0 + 1 + + glow + + 3.8000011444091797 + 0.0010000000474974513 + -1.5999999046325684 + 1 + + haze_density + + 1.2699999809265137 + 0 + 0 + 1 + + haze_horizon + + 0.35999998450279236 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0.76900023221969604 + 0.56208312511444092 + -0.30446872115135193 + 0 + + max_y + + 349 + 0 + 0 + 1 + + preset_num + 24 + star_brightness + 2 + sun_angle + 2.5446903705596924 + sunlight_color + + 1.4099999666213989 + 1.6500000953674316 + 2.0399999618530273 + 2.0399999618530273 + + + diff --git a/indra/newview/app_settings/windlight/skies/Bryn%20Oh%27s%20Immersiva%20Grey%20Dust.xml b/indra/newview/app_settings/windlight/skies/Bryn%20Oh%27s%20Immersiva%20Grey%20Dust.xml new file mode 100644 index 000000000..2a07b39d0 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Bryn%20Oh%27s%20Immersiva%20Grey%20Dust.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.32999998331069946 + 0.23999999463558197 + 0.029999999329447746 + 0.32999998331069946 + + blue_density + + 0.15999999642372131 + 0.15999999642372131 + 0.47999998927116394 + 0.47999998927116394 + + blue_horizon + + 0.19999998807907104 + 0.19999998807907104 + 0.43999999761581421 + 0.43999999761581421 + + cloud_color + + 0.48999997973442078 + 0.50999999046325684 + 0.64999997615814209 + 0.64999997615814209 + + cloud_pos_density1 + + 0.48999997973442078 + 0.50999999046325684 + 0.2199999988079071 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.039999999105930328 + 1 + + cloud_scale + + 0.11999999731779099 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.659999847412109 + 20 + + cloud_shadow + + 0.70999997854232788 + 0 + 0 + 1 + + density_multiplier + + 0.00018999999156221747 + 0 + 0 + 1 + + distance_multiplier + + 24.30000114440918 + 0 + 0 + 1 + + east_angle + 2.3876104354858398 + enable_cloud_scroll + + 1 + 0 + + gamma + + 0.94999998807907104 + 0 + 0 + 1 + + glow + + 20 + 0.0010000000474974513 + -0.29999998211860657 + 1 + + haze_density + + 3.7799999713897705 + 0 + 0 + 1 + + haze_horizon + + 0.15999999642372131 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0.64833343029022217 + 0.32094338536262512 + 0.69040501117706299 + 0 + + max_y + + 376 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 0 + sun_angle + 2.8148672580718994 + sunlight_color + + 0.75 + 0.71999996900558472 + 0.77999997138977051 + 0.77999997138977051 + + + diff --git a/indra/newview/app_settings/windlight/skies/Bryn%20Oh%27s%20Mayfly.xml b/indra/newview/app_settings/windlight/skies/Bryn%20Oh%27s%20Mayfly.xml new file mode 100644 index 000000000..272d1e041 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Bryn%20Oh%27s%20Mayfly.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.21000000834465027 + 0.23999999463558197 + 0.32999998331069946 + 0.10999999940395355 + + blue_density + + 0.15999999642372131 + 0.43999999761581421 + 0.89999997615814209 + 0.89999997615814209 + + blue_horizon + + 0 + 0 + 0.059999998658895493 + 0.029999999329447746 + + cloud_color + + 0.29999998211860657 + 0.31999999284744263 + 0.22999998927116394 + 0.31999999284744263 + + cloud_pos_density1 + + 0.98999994993209839 + 1 + 1 + 1 + + cloud_pos_density2 + + 1.6884100437164307 + 0.52609699964523315 + 0.125 + 1 + + cloud_scale + + 0.15000000596046448 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.359999656677246 + 10.219999313354492 + + cloud_shadow + + 0.42999997735023499 + 0 + 0 + 1 + + density_multiplier + + 0.00052000000141561031 + 0 + 0 + 1 + + distance_multiplier + + 3.4000000953674316 + 0 + 0 + 1 + + east_angle + 4.8380527496337891 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1 + 0 + 0 + 1 + + glow + + 7.7999997138977051 + 0.0010000000474974513 + -0.59999996423721313 + 1 + + haze_density + + 1.1100000143051147 + 0 + 0 + 1 + + haze_horizon + + 0.12999999523162842 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.98646044731140137 + 0.10661106556653976 + -0.12461899220943451 + 0 + + max_y + + 591 + 0 + 0 + 1 + + preset_num + 22 + star_brightness + 0.71999996900558472 + sun_angle + 3.0347785949707031 + sunlight_color + + 1.5 + 1.5299999713897705 + 2.8499999046325684 + 0.94999998807907104 + + + diff --git a/indra/newview/app_settings/windlight/skies/Fairy%20blue%20%28Paulina%29.xml b/indra/newview/app_settings/windlight/skies/Fairy%20blue%20%28Paulina%29.xml new file mode 100644 index 000000000..a426aac29 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Fairy%20blue%20%28Paulina%29.xml @@ -0,0 +1,141 @@ + + + ambient + + 1.2300000190734863 + 1.2300000190734863 + 1.1914535760879517 + 0.40999999642372131 + + blue_density + + 0.2199999988079071 + 0.57999998331069946 + 0.55851858854293823 + 0.68000000715255737 + + blue_horizon + + 0.2159720099190805 + 0.36269319055529792 + 0.41333344578742803 + 0.62444435060024084 + + cloud_color + + 0.22616269560725816 + 0.22616269560725816 + 0.22616269560725816 + 0.99997991561308353 + + cloud_pos_density1 + + 0.4699999988079071 + 0.5 + 0.88000017954328535 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.41999998605913369 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.499400261264498 + 10.010999906567616 + + cloud_shadow + + 0.22999998927116394 + 0 + 0 + 1 + + density_multiplier + + 0.00011000000085914508 + 0 + 0 + 1 + + distance_multiplier + + 16.200000762939453 + 0 + 0 + 1 + + east_angle + 6.2831854820251465 + enable_cloud_scroll + + 0 + 0 + + gamma + + 1.8899999856948853 + 0 + 0 + 1 + + glow + + 0.19999980926513672 + 0.0010000000474974513 + -2.2000000476837158 + 1 + + haze_density + + 1.8899999856948853 + 0 + 0 + 1 + + haze_horizon + + 0 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 1.2670240323586768e-007 + 0.68911367654800415 + -0.72465324401855469 + 0 + + max_y + + 403 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 1.2999999523162842 + sun_angle + 2.3813273906707764 + sunlight_color + + 0.52803641557693481 + 0.52897685766220093 + 0.56999999284744263 + 0.18999999761581421 + + + diff --git a/indra/newview/app_settings/windlight/skies/Fairy%20dark%20blue%20%28Paulina%29.xml b/indra/newview/app_settings/windlight/skies/Fairy%20dark%20blue%20%28Paulina%29.xml new file mode 100644 index 000000000..4fbdfe121 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Fairy%20dark%20blue%20%28Paulina%29.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.58604651689529419 + 0.7813953161239624 + 1.0499999523162842 + 0.34999999403953552 + + blue_density + + 0.43999999761581421 + 0.43999999761581421 + 0.43999999761581421 + 0.2199999988079071 + + blue_horizon + + 0.2159720099190805 + 0.36269319055529792 + 0.41333344578742803 + 0.62444435060024084 + + cloud_color + + 0.22616269560725816 + 0.22616269560725816 + 0.22616269560725816 + 0.99997991561308353 + + cloud_pos_density1 + + 0.4699999988079071 + 0.5 + 0.88000017954328535 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.41999998605913369 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.499400261264498 + 10.010999906567616 + + cloud_shadow + + 0.22999998927116394 + 0 + 0 + 1 + + density_multiplier + + 0.0002899999963119626 + 0 + 0 + 1 + + distance_multiplier + + 16.200000762939453 + 0 + 0 + 1 + + east_angle + 1.1938052177429199 + enable_cloud_scroll + + 0 + 0 + + gamma + + 1.6200000047683716 + 0 + 0 + 1 + + glow + + 0.19999980926513672 + 0.0010000000474974513 + -2.2000000476837158 + 1 + + haze_density + + 1.8899999856948853 + 0 + 0 + 1 + + haze_horizon + + 0 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.9034002423286438 + 0.23649945855140686 + 0.35768145322799683 + 1 + + max_y + + 1047 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 1.2999999523162842 + sun_angle + 3.3803541660308838 + sunlight_color + + 2.3344762325286865 + 2.3386342525482178 + 2.5199999809265137 + 0.8399999737739563 + + + diff --git a/indra/newview/app_settings/windlight/skies/Fairy%20light%20pink%20%28Paulina%29.xml b/indra/newview/app_settings/windlight/skies/Fairy%20light%20pink%20%28Paulina%29.xml new file mode 100644 index 000000000..a3d67ac73 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Fairy%20light%20pink%20%28Paulina%29.xml @@ -0,0 +1,141 @@ + + + ambient + + 1.7400000095367432 + 1.4500001668930054 + 1.353333592414856 + 0.57999998331069946 + + blue_density + + 0.17032256722450256 + 0.47999998927116394 + 0.3449999988079071 + 0.23999999463558197 + + blue_horizon + + 0.93999999761581421 + 0.2199999988079071 + 0.25999999046325684 + 0.93999999761581421 + + cloud_color + + 0.22616269560725816 + 0.22616269560725816 + 0.22616269560725816 + 0.99997991561308353 + + cloud_pos_density1 + + 0.4699999988079071 + 0.5 + 0.88000017954328535 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.41999998605913369 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.499400261264498 + 10.010999906567616 + + cloud_shadow + + 0.22999998927116394 + 0 + 0 + 1 + + density_multiplier + + 0.00089999998454004526 + 0 + 0 + 1 + + distance_multiplier + + 4.0999999046325684 + 0 + 0 + 1 + + east_angle + 4.6495571136474609 + enable_cloud_scroll + + 0 + 0 + + gamma + + 1.2799999713897705 + 0 + 0 + 1 + + glow + + 0.19999980926513672 + 0.0010000000474974513 + -2.2000000476837158 + 1 + + haze_density + + 0.2199999988079071 + 0 + 0 + 1 + + haze_horizon + + 0.08999999612569809 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0.72322285175323486 + 0.68911415338516235 + -0.045501336455345154 + 1 + + max_y + + 4000 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 2 + sun_angle + 3.9018585681915283 + sunlight_color + + 1.9521123170852661 + 2.0000483989715576 + 2.0999999046325684 + 0.69999998807907104 + + + diff --git a/indra/newview/app_settings/windlight/skies/Fairy%20warm%20pinks%20%28Paulina%29.xml b/indra/newview/app_settings/windlight/skies/Fairy%20warm%20pinks%20%28Paulina%29.xml new file mode 100644 index 000000000..72d3345c4 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Fairy%20warm%20pinks%20%28Paulina%29.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.68999993801116943 + 0.44999998807907104 + 0.42000001668930054 + 0.68999993801116943 + + blue_density + + 0.25714284181594849 + 0.71428567171096802 + 1 + 0.5 + + blue_horizon + + 0.56000000238418579 + 0.17999999225139618 + 0.25999999046325684 + 0.56000000238418579 + + cloud_color + + 0.22616269560725816 + 0.22616269560725816 + 0.22616269560725816 + 0.99997991561308353 + + cloud_pos_density1 + + 0.4699999988079071 + 0.5 + 0.88000017954328535 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.41999998605913369 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.499400261264498 + 10.010999906567616 + + cloud_shadow + + 0.22999998927116394 + 0 + 0 + 1 + + density_multiplier + + 0.00042999998549930751 + 0 + 0 + 1 + + distance_multiplier + + 9.5 + 0 + 0 + 1 + + east_angle + 0.81681406497955322 + enable_cloud_scroll + + 0 + 0 + + gamma + + 1.8199999332427979 + 0 + 0 + 1 + + glow + + 0.19999980926513672 + 0.0010000000474974513 + -2.2000000476837158 + 1 + + haze_density + + 0.31999999284744263 + 0 + 0 + 1 + + haze_horizon + + 0.029999999329447746 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0.63206756114959717 + 0.49818456172943115 + -0.59355098009109497 + 1 + + max_y + + 4000 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 2 + sun_angle + 5.7616815567016602 + sunlight_color + + 1.7400000095367432 + 1.5899999141693115 + 0.71999996900558472 + 1.7400000095367432 + + + diff --git a/indra/newview/app_settings/windlight/skies/Midday.xml b/indra/newview/app_settings/windlight/skies/Midday.xml new file mode 100644 index 000000000..119b3e141 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Midday.xml @@ -0,0 +1,141 @@ + + + ambient + + 1.0499999523162842 + 1.0499999523162842 + 1.0499999523162842 + 0.34999999403953552 + + blue_density + + 0.24475815892219543 + 0.44872328639030457 + 0.75999999046325684 + 0.37999999523162842 + + blue_horizon + + 0.49548381567001343 + 0.49548381567001343 + 0.63999998569488525 + 0.31999999284744263 + + cloud_color + + 0.40999999642372131 + 0.40999999642372131 + 0.40999999642372131 + 0.40999999642372131 + + cloud_pos_density1 + + 1.6884100437164307 + 0.52609699964523315 + 1 + 1 + + cloud_pos_density2 + + 1.6884100437164307 + 0.52609699964523315 + 0.125 + 1 + + cloud_scale + + 0.41999998688697815 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.199999809265137 + 10.01099967956543 + + cloud_shadow + + 0.26999998092651367 + 0 + 0 + 1 + + density_multiplier + + 0.00017999998817685992 + 0 + 0 + 1 + + distance_multiplier + + 0.80000001192092896 + 0 + 0 + 1 + + east_angle + 0 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1 + 0 + 0 + 1 + + glow + + 5 + 0.0010000000474974513 + -0.47999998927116394 + 1 + + haze_density + + 0.69999998807907104 + 0 + 0 + 1 + + haze_horizon + + 0.18999999761581421 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0 + 1 + -4.3711388286737929e-008 + 0 + + max_y + + 1605 + 0 + 0 + 1 + + preset_num + 22 + star_brightness + 0 + sun_angle + 1.5707963705062866 + sunlight_color + + 0.7342105507850647 + 0.78157895803451538 + 0.89999997615814209 + 0.29999998211860657 + + + diff --git a/indra/newview/app_settings/windlight/skies/Midnight.xml b/indra/newview/app_settings/windlight/skies/Midnight.xml new file mode 100644 index 000000000..0aba31214 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Midnight.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.20405027270317078 + 0.24246673285961151 + 0.32999998331069946 + 0.10999999940395355 + + blue_density + + 0.44999998807907104 + 0.44999998807907104 + 0.44999998807907104 + 1 + + blue_horizon + + 0.23999999463558197 + 0.23999999463558197 + 0.23999999463558197 + 1 + + cloud_color + + 0.22615399956703186 + 0.22615399956703186 + 0.22615399956703186 + 1 + + cloud_pos_density1 + + 1.6884100437164307 + 0.52609699964523315 + 0.87999999523162842 + 1 + + cloud_pos_density2 + + 1.6884100437164307 + 0.52609699964523315 + 0.125 + 1 + + cloud_scale + + 0.41999998688697815 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.26999998092651367 + 0 + 0 + 1 + + density_multiplier + + 0.00030000001424923539 + 0 + 0 + 1 + + distance_multiplier + + 0 + 0 + 0 + 1 + + east_angle + 0 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1 + 0 + 0 + 1 + + glow + + 5 + 0.0010000000474974513 + -0.47999998927116394 + 1 + + haze_density + + 4 + 0 + 0 + 1 + + haze_horizon + + 0 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0 + 1 + -4.8876205482883961e-007 + 1 + + max_y + + 906.20001220703125 + 0 + 0 + 1 + + preset_num + 22 + star_brightness + 2 + sun_angle + 4.7123894691467285 + sunlight_color + + 0.34876692295074463 + 0.35574248433113098 + 0.65999996662139893 + 0.2199999988079071 + + + diff --git a/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Black%20fog%201.xml b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Black%20fog%201.xml new file mode 100644 index 000000000..4dee8354e --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Black%20fog%201.xml @@ -0,0 +1,141 @@ + + + ambient + + 0 + 0 + 0 + 0 + + blue_density + + 0.5 + 0.5 + 0.5 + 0.25 + + blue_horizon + + 0.56000000238418579 + 0.56000000238418579 + 0.56000000238418579 + 0.2800000011920929 + + cloud_color + + 0.22617273092134837 + 0.2261830306064212 + 0.22618354559006093 + 1 + + cloud_pos_density1 + + 0.5 + 0.5 + 1 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.12499716758729562 + 1 + + cloud_scale + + 0.22999998927116394 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.499370784775238 + 10.011009025563908 + + cloud_shadow + + 0.26999998092651367 + 0 + 0 + 1 + + density_multiplier + + 0.00089999998454004526 + 0 + 0 + 1 + + distance_multiplier + + 100 + 0 + 0 + 1 + + east_angle + 0 + enable_cloud_scroll + + 0 + 0 + + gamma + + 0.19999998807907104 + 0 + 0 + 1 + + glow + + 20 + 0.0010000000474974513 + -2.5 + 1 + + haze_density + + 0 + 0 + 0 + 1 + + haze_horizon + + 0 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0 + 1 + -4.3711388286737929e-008 + 0 + + max_y + + 4000 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 2 + sun_angle + 1.5707963705062866 + sunlight_color + + 3 + 3 + 3 + 1 + + + diff --git a/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Black%20fog%202.xml b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Black%20fog%202.xml new file mode 100644 index 000000000..ef93fdc08 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Black%20fog%202.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.29999998211860657 + 0.29999998211860657 + 0.29999998211860657 + 0.099999994039535522 + + blue_density + + 0.5 + 0.5 + 0.5 + 0.25 + + blue_horizon + + 0.56000000238418579 + 0.56000000238418579 + 0.56000000238418579 + 0.2800000011920929 + + cloud_color + + 0 + 0 + 0 + 0 + + cloud_pos_density1 + + 0 + 0 + 0 + 1 + + cloud_pos_density2 + + 0 + 0 + 0 + 1 + + cloud_scale + + 0.0099999997764825821 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.499370784775238 + 10.011009025563908 + + cloud_shadow + + 0 + 0 + 0 + 1 + + density_multiplier + + 0.00089999998454004526 + 0 + 0 + 1 + + distance_multiplier + + 100 + 0 + 0 + 1 + + east_angle + 0 + enable_cloud_scroll + + 0 + 0 + + gamma + + 0.19999998807907104 + 0 + 0 + 1 + + glow + + 0.19999980926513672 + 0.0010000000474974513 + -2.5 + 1 + + haze_density + + 0 + 0 + 0 + 1 + + haze_horizon + + 0 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0 + 1 + -4.3711388286737929e-008 + 0 + + max_y + + 4000 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 0 + sun_angle + 1.5707963705062866 + sunlight_color + + 3 + 3 + 3 + 1 + + + diff --git a/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Drawing%20blue.xml b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Drawing%20blue.xml new file mode 100644 index 000000000..69a23e7f9 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Drawing%20blue.xml @@ -0,0 +1,141 @@ + + + ambient + + 0 + 0 + 3 + 3 + + blue_density + + 0 + 0 + 2 + 2 + + blue_horizon + + 0 + 0 + 2 + 2 + + cloud_color + + 0 + 1 + 0 + 1 + + cloud_pos_density1 + + 1 + 1 + 1 + 1 + + cloud_pos_density2 + + 1 + 1 + 1 + 1 + + cloud_scale + + 1 + 0 + 0 + 1 + + cloud_scroll_rate + + 9.8000001907348633 + 8.9899997711181641 + + cloud_shadow + + 0 + 0 + 0 + 1 + + density_multiplier + + 0.00026999998954124749 + 0 + 0 + 1 + + distance_multiplier + + 100 + 0 + 0 + 1 + + east_angle + 2.6389377117156982 + enable_cloud_scroll + + 0 + 0 + + gamma + + 0.0099999997764825821 + 0 + 0 + 1 + + glow + + 20 + 0.0010000000474974513 + 0 + 1 + + haze_density + + 0.0099999997764825821 + 0 + 0 + 1 + + haze_horizon + + 1 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0.48175370693206787 + 0 + 0.87630659341812134 + 0 + + max_y + + 1 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 0 + sun_angle + 3.2107079029083252 + sunlight_color + + 0 + 0 + 3 + 3 + + + diff --git a/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Drawing%20extreme.xml b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Drawing%20extreme.xml new file mode 100644 index 000000000..09d9c3546 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Drawing%20extreme.xml @@ -0,0 +1,141 @@ + + + ambient + + 3 + 3 + 3 + 3 + + blue_density + + 2 + 2 + 2 + 2 + + blue_horizon + + 2 + 2 + 2 + 2 + + cloud_color + + 1 + 1 + 1 + 1 + + cloud_pos_density1 + + 1 + 1 + 1 + 1 + + cloud_pos_density2 + + 1 + 1 + 1 + 1 + + cloud_scale + + 1 + 0 + 0 + 1 + + cloud_scroll_rate + + 9.8000001907348633 + 8.9899997711181641 + + cloud_shadow + + 0 + 0 + 0 + 1 + + density_multiplier + + 0.00089999998454004526 + 0 + 0 + 1 + + distance_multiplier + + 100 + 0 + 0 + 1 + + east_angle + 3.1415927410125732 + enable_cloud_scroll + + 0 + 0 + + gamma + + 0.0099999997764825821 + 0 + 0 + 1 + + glow + + 0.19999980926513672 + 0.0010000000474974513 + -2.5 + 1 + + haze_density + + 0 + 0 + 0 + 1 + + haze_horizon + + 0 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -8.7422776573475858e-008 + 0 + 1 + 0 + + max_y + + 1 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 0 + sun_angle + 3.1415927410125732 + sunlight_color + + 3 + 3 + 3 + 3 + + + diff --git a/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Drawing%20green.xml b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Drawing%20green.xml new file mode 100644 index 000000000..9343abe71 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Drawing%20green.xml @@ -0,0 +1,141 @@ + + + ambient + + 0 + 3 + 0 + 3 + + blue_density + + 0 + 2 + 0 + 2 + + blue_horizon + + 0 + 2 + 0 + 2 + + cloud_color + + 0 + 1 + 0 + 1 + + cloud_pos_density1 + + 1 + 1 + 1 + 1 + + cloud_pos_density2 + + 1 + 1 + 1 + 1 + + cloud_scale + + 1 + 0 + 0 + 1 + + cloud_scroll_rate + + 9.8000001907348633 + 8.9899997711181641 + + cloud_shadow + + 0 + 0 + 0 + 1 + + density_multiplier + + 0.00026999998954124749 + 0 + 0 + 1 + + distance_multiplier + + 100 + 0 + 0 + 1 + + east_angle + 2.6389377117156982 + enable_cloud_scroll + + 0 + 0 + + gamma + + 0.0099999997764825821 + 0 + 0 + 1 + + glow + + 20 + 0.0010000000474974513 + 0 + 1 + + haze_density + + 0.0099999997764825821 + 0 + 0 + 1 + + haze_horizon + + 1 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0.48175376653671265 + 0 + 0.87630665302276611 + 0 + + max_y + + 1 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 0 + sun_angle + 3.2107079029083252 + sunlight_color + + 0 + 3 + 0 + 3 + + + diff --git a/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Drawing%20red.xml b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Drawing%20red.xml new file mode 100644 index 000000000..0ce00b1e8 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Drawing%20red.xml @@ -0,0 +1,141 @@ + + + ambient + + 3 + 0 + 0 + 3 + + blue_density + + 2 + 0 + 0 + 2 + + blue_horizon + + 2 + 0 + 0 + 2 + + cloud_color + + 0 + 1 + 0 + 1 + + cloud_pos_density1 + + 1 + 1 + 1 + 1 + + cloud_pos_density2 + + 1 + 1 + 1 + 1 + + cloud_scale + + 1 + 0 + 0 + 1 + + cloud_scroll_rate + + 9.8000001907348633 + 8.9899997711181641 + + cloud_shadow + + 0 + 0 + 0 + 1 + + density_multiplier + + 0.00026999998954124749 + 0 + 0 + 1 + + distance_multiplier + + 100 + 0 + 0 + 1 + + east_angle + 2.6389377117156982 + enable_cloud_scroll + + 0 + 0 + + gamma + + 0.0099999997764825821 + 0 + 0 + 1 + + glow + + 20 + 0.0010000000474974513 + 0 + 1 + + haze_density + + 0.0099999997764825821 + 0 + 0 + 1 + + haze_horizon + + 1 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0.48175376653671265 + 0 + 0.87630665302276611 + 0 + + max_y + + 1 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 0 + sun_angle + 3.2107079029083252 + sunlight_color + + 3 + 0 + 0 + 3 + + + diff --git a/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Drawing%20underground%20comic.xml b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Drawing%20underground%20comic.xml new file mode 100644 index 000000000..62ebaa233 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20Drawing%20underground%20comic.xml @@ -0,0 +1,141 @@ + + + ambient + + 3 + 3 + 3 + 3 + + blue_density + + 0.35000002384185791 + 0.28999707102775574 + 0.57999998331069946 + 0.57999998331069946 + + blue_horizon + + 0.56000000238418579 + 0.42976745963096619 + 0.2734883725643158 + 0.56000000238418579 + + cloud_color + + 1 + 1 + 1 + 1 + + cloud_pos_density1 + + 1 + 1 + 1 + 1 + + cloud_pos_density2 + + 1 + 1 + 1 + 1 + + cloud_scale + + 1 + 0 + 0 + 1 + + cloud_scroll_rate + + 9.8000001907348633 + 8.9899997711181641 + + cloud_shadow + + 0 + 0 + 0 + 1 + + density_multiplier + + 0.00020999999833293259 + 0 + 0 + 1 + + distance_multiplier + + 24.200000762939453 + 0 + 0 + 1 + + east_angle + 3.1415927410125732 + enable_cloud_scroll + + 0 + 0 + + gamma + + 0.0099999997764825821 + 0 + 0 + 1 + + glow + + 0.19999980926513672 + 0.0010000000474974513 + -2.5 + 1 + + haze_density + + 0.56000000238418579 + 0 + 0 + 1 + + haze_horizon + + 0.2199999988079071 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -8.7422776573475858e-008 + 0 + 1 + 0 + + max_y + + 632 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 0 + sun_angle + 3.1415927410125732 + sunlight_color + + 3 + 3 + 3 + 3 + + + diff --git a/indra/newview/app_settings/windlight/skies/Orac%20%2D%20fog.xml b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20fog.xml new file mode 100644 index 000000000..088f09cbb --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20fog.xml @@ -0,0 +1,141 @@ + + + ambient + + 0 + 0 + 0 + 0 + + blue_density + + 0.39999997615814209 + 0.39999997615814209 + 0.39999997615814209 + 0.19999998807907104 + + blue_horizon + + 1 + 1 + 1 + 0.5 + + cloud_color + + 0.22617273092134837 + 0.2261830306064212 + 0.22618354559006093 + 1 + + cloud_pos_density1 + + 0.5 + 0.5 + 1 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.12499716758729562 + 1 + + cloud_scale + + 0.22999998927116394 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.499370784775238 + 10.011009025563908 + + cloud_shadow + + 0.26999998092651367 + 0 + 0 + 1 + + density_multiplier + + 0.00089999998454004526 + 0 + 0 + 1 + + distance_multiplier + + 100 + 0 + 0 + 1 + + east_angle + 0 + enable_cloud_scroll + + 0 + 0 + + gamma + + 1 + 0 + 0 + 1 + + glow + + 0.19999980926513672 + 0.0010000000474974513 + 0 + 1 + + haze_density + + 0.5 + 0 + 0 + 1 + + haze_horizon + + 0.32999998331069946 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0 + 1 + -4.3711388286737929e-008 + 0 + + max_y + + 4000 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 0 + sun_angle + 1.5707963705062866 + sunlight_color + + 3 + 3 + 3 + 1 + + + diff --git a/indra/newview/app_settings/windlight/skies/Orac%20%2D%20gray.xml b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20gray.xml new file mode 100644 index 000000000..fbbf36485 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20gray.xml @@ -0,0 +1,141 @@ + + + ambient + + 0 + 0 + 0 + 0 + + blue_density + + 2 + 2 + 2 + 1 + + blue_horizon + + 2 + 2 + 2 + 1 + + cloud_color + + 0.22617273092134837 + 0.2261830306064212 + 0.22618354559006093 + 1 + + cloud_pos_density1 + + 0.5 + 0.5 + 1 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.12499716758729562 + 1 + + cloud_scale + + 0.22999998927116394 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.499370784775238 + 10.011009025563908 + + cloud_shadow + + 0.26999998092651367 + 0 + 0 + 1 + + density_multiplier + + 0.00089999998454004526 + 0 + 0 + 1 + + distance_multiplier + + 100 + 0 + 0 + 1 + + east_angle + 0 + enable_cloud_scroll + + 0 + 0 + + gamma + + 1 + 0 + 0 + 1 + + glow + + 20 + 0.0010000000474974513 + 0 + 1 + + haze_density + + 1 + 0 + 0 + 1 + + haze_horizon + + 0 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0 + 0 + 1 + 0 + + max_y + + 1 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 0 + sun_angle + 0 + sunlight_color + + 3 + 3 + 3 + 1 + + + diff --git a/indra/newview/app_settings/windlight/skies/Orac%20%2D%20green.xml b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20green.xml new file mode 100644 index 000000000..8c5e8f119 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Orac%20%2D%20green.xml @@ -0,0 +1,141 @@ + + + ambient + + 0 + 1.2599999904632568 + 0 + 1.2599999904632568 + + blue_density + + 0.019999999552965164 + 0.019999999552965164 + 0.019999999552965164 + 0.0099999997764825821 + + blue_horizon + + 0 + 0 + 0 + 0 + + cloud_color + + 0 + 0.5 + 0 + 0.5 + + cloud_pos_density1 + + 0 + 0 + 0.5 + 1 + + cloud_pos_density2 + + 0 + 0 + 0 + 1 + + cloud_scale + + 1 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.5 + 0 + 0 + 1 + + density_multiplier + + 0 + 0 + 0 + 1 + + distance_multiplier + + 0 + 0 + 0 + 1 + + east_angle + 0.062831856310367584 + enable_cloud_scroll + + 0 + 0 + + gamma + + 1 + 0 + 0 + 1 + + glow + + 20 + 0.0010000000474974513 + 0 + 1 + + haze_density + + 0 + 0 + 0 + 1 + + haze_horizon + + 0 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.05404643714427948 + 0.509041428565979 + 0.85904353857040405 + 0 + + max_y + + 1 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 0 + sun_angle + 0.53407078981399536 + sunlight_color + + 0 + 1.1399999856948853 + 0 + 1.1399999856948853 + + + diff --git a/indra/newview/app_settings/windlight/skies/Orange%20Incubus.xml b/indra/newview/app_settings/windlight/skies/Orange%20Incubus.xml new file mode 100644 index 000000000..6ab92ce6f --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Orange%20Incubus.xml @@ -0,0 +1,142 @@ + + + + ambient + + 1.8999998569488525 + 0.80384618043899536 + 2.8499999046325684 + 0.94999998807907104 + + blue_density + + 0.43999999761581421 + 0 + 0 + 0.2199999988079071 + + blue_horizon + + 0.2800000011920929 + 0 + 0 + 0.2800000011920929 + + cloud_color + + 0.75 + 0.56999999284744263 + 0 + 0.75 + + cloud_pos_density1 + + 1 + 0.48999997973442078 + 0.34999999403953552 + 1 + + cloud_pos_density2 + + 0.31000000238418579 + 0 + 0 + 1 + + cloud_scale + + 0.59999996423721313 + 0 + 0 + 1 + + cloud_scroll_rate + + 8.1899995803833008 + 9.7199993133544922 + + cloud_shadow + + 0.28999999165534973 + 0 + 0 + 1 + + density_multiplier + + 9.9999997473787516e-006 + 0 + 0 + 1 + + distance_multiplier + + 18.100000381469727 + 0 + 0 + 1 + + east_angle + 2.4504423141479492 + enable_cloud_scroll + + 1 + 1 + + gamma + + 0.57999998331069946 + 0 + 0 + 1 + + glow + + 20 + 0.0010000000474974513 + -2.2000000476837158 + 1 + + haze_density + + 4 + 0 + 0 + 1 + + haze_horizon + + 0.019999999552965164 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 3.1154863222582208e-007 + 1 + 3.765976543945726e-007 + 1 + + max_y + + 4000 + 0 + 0 + 1 + + preset_num + 26 + star_brightness + 2 + sun_angle + 4.7123894691467285 + sunlight_color + + 0 + 0.80999994277954102 + 2.0699999332427979 + 2.0699999332427979 + + + diff --git a/indra/newview/app_settings/windlight/skies/PaperSnow.xml b/indra/newview/app_settings/windlight/skies/PaperSnow.xml new file mode 100644 index 000000000..a34ac8df6 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/PaperSnow.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.62999999523162842 + 0.62999999523162842 + 0.62999999523162842 + 0.62999999523162842 + + blue_density + + 0.56000000238418579 + 0.56000000238418579 + 0.23999999463558197 + 0.56000000238418579 + + blue_horizon + + 0.59999996423721313 + 0.59999996423721313 + 0.68000000715255737 + 0.74000000953674316 + + cloud_color + + 0.12862999737262726 + 0.12862999737262726 + 0.12862999737262726 + 1 + + cloud_pos_density1 + + 0.88419097661972046 + 0.53047597408294678 + 0.4270470142364502 + 1 + + cloud_pos_density2 + + 0.38419300317764282 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.41999998688697815 + 0 + 0 + 1 + + cloud_scroll_rate + + 10 + 10 + + cloud_shadow + + 0.61711597442626953 + 0 + 0 + 1 + + density_multiplier + + 0.00013000000035390258 + 0 + 0 + 1 + + distance_multiplier + + 16.200000762939453 + 0 + 0 + 1 + + east_angle + 0 + enable_cloud_scroll + + 1 + 1 + + gamma + + 0.94999998807907104 + 0 + 0 + 1 + + glow + + 6.4079799652099609 + 0.0012815999798476696 + -0.44999998807907104 + 1 + + haze_density + + 4 + 0 + 0 + 1 + + haze_horizon + + 0.12999999523162842 + 0.21744099259376526 + 0.21744099259376526 + 1 + + lightnorm + + 0 + 0.25477027893066406 + -0.96700161695480347 + 1 + + max_y + + 4000 + 0 + 0 + 1 + + preset_num + 2 + star_brightness + 0 + sun_angle + 6.0255751609802246 + sunlight_color + + 3 + 3 + 3 + 1 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Abracadabra.xml b/indra/newview/app_settings/windlight/skies/Places%20Abracadabra.xml new file mode 100644 index 000000000..21e73f0a4 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Abracadabra.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.35999998450279236 + 0.25200003385543823 + 0 + 0.11999999731779099 + + blue_density + + 0.97999995946884155 + 0.97999995946884155 + 0.97999995946884155 + 0.48999997973442078 + + blue_horizon + + 0.47999998927116394 + 0.29999998211860657 + 0.2800000011920929 + 0.51999998092651367 + + cloud_color + + 0.50999999046325684 + 0.50999999046325684 + 0.50999999046325684 + 1 + + cloud_pos_density1 + + 0.5 + 0.5 + 1 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.079999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.25999999046325684 + 0 + 0 + 1 + + density_multiplier + + 0.00022000000171829015 + 0 + 0 + 1 + + distance_multiplier + + 31.100000381469727 + 0 + 0 + 1 + + east_angle + 4.3353981971740723 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1 + 0 + 0 + 1 + + glow + + 5 + 0.0010000000474974513 + -0.33000001311302185 + 1 + + haze_density + + 1.2699999809265137 + 0 + 0 + 1 + + haze_horizon + + 0.2800000011920929 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.86661803722381592 + 0.36227512359619141 + 0.34311801195144653 + 0 + + max_y + + 752 + 0 + 0 + 1 + + preset_num + 21 + star_brightness + 0 + sun_angle + 2.7708849906921387 + sunlight_color + + 1.3799998760223389 + 1.3799998760223389 + 1.3799998760223389 + 0.45999997854232788 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Abracadabra2.xml b/indra/newview/app_settings/windlight/skies/Places%20Abracadabra2.xml new file mode 100644 index 000000000..55158516c --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Abracadabra2.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.35999998450279236 + 0.25200003385543823 + 0 + 0.11999999731779099 + + blue_density + + 0.97999995946884155 + 0.97999995946884155 + 0.97999995946884155 + 0.48999997973442078 + + blue_horizon + + 0.47999998927116394 + 0.53999996185302734 + 0.45999997854232788 + 0.53999996185302734 + + cloud_color + + 0.50999999046325684 + 0.50999999046325684 + 0.50999999046325684 + 1 + + cloud_pos_density1 + + 0.5 + 0.5 + 1 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.079999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.25999999046325684 + 0 + 0 + 1 + + density_multiplier + + 0.00013000000035390258 + 0 + 0 + 1 + + distance_multiplier + + 24.30000114440918 + 0 + 0 + 1 + + east_angle + 5.9061942100524902 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.6899999380111694 + 0 + 0 + 1 + + glow + + 15.59999942779541 + 0.0010000000474974513 + -0.59999996423721313 + 1 + + haze_density + + 1.2699999809265137 + 0 + 0 + 1 + + haze_horizon + + 0.26999998092651367 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.34311828017234802 + 0.36227512359619141 + -0.86661791801452637 + 0 + + max_y + + 483 + 0 + 0 + 1 + + preset_num + 21 + star_brightness + 0 + sun_angle + 2.7708849906921387 + sunlight_color + + 1.3799998760223389 + 1.3799998760223389 + 1.3799998760223389 + 0.45999997854232788 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Abracadabra3.xml b/indra/newview/app_settings/windlight/skies/Places%20Abracadabra3.xml new file mode 100644 index 000000000..9b5388ab6 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Abracadabra3.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.35999998450279236 + 0.25200003385543823 + 0 + 0.11999999731779099 + + blue_density + + 0.97999995946884155 + 0.97999995946884155 + 0.97999995946884155 + 0.48999997973442078 + + blue_horizon + + 0.47999998927116394 + 0.53999996185302734 + 0.45999997854232788 + 0.53999996185302734 + + cloud_color + + 0.50999999046325684 + 0.50999999046325684 + 0.50999999046325684 + 1 + + cloud_pos_density1 + + 0.5 + 0.5 + 1 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.079999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.25999999046325684 + 0 + 0 + 1 + + density_multiplier + + 0.00013000000035390258 + 0 + 0 + 1 + + distance_multiplier + + 24.30000114440918 + 0 + 0 + 1 + + east_angle + 5.026547908782959 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.6899999380111694 + 0 + 0 + 1 + + glow + + 15.59999942779541 + 0.0010000000474974513 + -0.59999996423721313 + 1 + + haze_density + + 1.2699999809265137 + 0 + 0 + 1 + + haze_horizon + + 0.26999998092651367 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.88645249605178833 + 0.36227512359619141 + -0.28802555799484253 + 0 + + max_y + + 483 + 0 + 0 + 1 + + preset_num + 21 + star_brightness + 0 + sun_angle + 2.7708849906921387 + sunlight_color + + 1.3799998760223389 + 1.3799998760223389 + 1.3799998760223389 + 0.45999997854232788 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Annamaria.xml b/indra/newview/app_settings/windlight/skies/Places%20Annamaria.xml new file mode 100644 index 000000000..15876975d --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Annamaria.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.17999999225139618 + 0.17999999225139618 + 0 + 0.17999999225139618 + + blue_density + + 0.97999995946884155 + 0.97999995946884155 + 0.75999999046325684 + 1 + + blue_horizon + + 0.084897957742214203 + 0.11000000685453415 + 0.25999999046325684 + 0.12999999523162842 + + cloud_color + + 0.47999998927116394 + 0.47999998927116394 + 0.47999998927116394 + 0.47999998927116394 + + cloud_pos_density1 + + 0.63999998569488525 + 0.5 + 0.56999999284744263 + 1 + + cloud_pos_density2 + + 0.37000000476837158 + 0.35999998450279236 + 0 + 1 + + cloud_scale + + 0.079999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.219999775290489 + 9.9899997767060995 + + cloud_shadow + + 0.31999999284744263 + 0 + 0 + 1 + + density_multiplier + + 0.00013000000035390258 + 0 + 0 + 1 + + distance_multiplier + + 2 + 0 + 0 + 1 + + east_angle + 3.1415927410125732 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1 + 0 + 0 + 1 + + glow + + 5.3999996185302734 + 0.0010000000474974513 + -0.33000001311302185 + 1 + + haze_density + + 1.8899999856948853 + 0 + 0 + 1 + + haze_horizon + + 0.23999999463558197 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -8.1484252234531596e-008 + 0.36227512359619141 + 0.93207120895385742 + 0 + + max_y + + 671 + 0 + 0 + 1 + + preset_num + 21 + star_brightness + 0.2199999988079071 + sun_angle + 2.7708849906921387 + sunlight_color + + 1.3799998760223389 + 1.3799998760223389 + 1.3799998760223389 + 1.3799998760223389 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Astryls%20Wild.xml b/indra/newview/app_settings/windlight/skies/Places%20Astryls%20Wild.xml new file mode 100644 index 000000000..c9783190b --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Astryls%20Wild.xml @@ -0,0 +1,141 @@ + + + ambient + + 1.7372221946716309 + 1.7699999809265137 + 1.5899999141693115 + 1.7999999523162842 + + blue_density + + 0.5 + 0.97999995946884155 + 0.97999995946884155 + 0.48999997973442078 + + blue_horizon + + 0.31999999284744263 + 0.2800000011920929 + 0.37999999523162842 + 0.37999999523162842 + + cloud_color + + 0.50999999046325684 + 0.50999999046325684 + 0.50999999046325684 + 1 + + cloud_pos_density1 + + 0.5 + 0.5 + 1 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.079999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.25999999046325684 + 0 + 0 + 1 + + density_multiplier + + 0.00053999997908249497 + 0 + 0 + 1 + + distance_multiplier + + 8.8000001907348633 + 0 + 0 + 1 + + east_angle + 0.56548666954040527 + enable_cloud_scroll + + 1 + 1 + + gamma + + 0.94999998807907104 + 0 + 0 + 1 + + glow + + 11.600000381469727 + 0.0010000000474974513 + -2.2999999523162842 + 1 + + haze_density + + 1.4299999475479126 + 0 + 0 + 1 + + haze_horizon + + 0.15999999642372131 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0.38828861713409424 + 0.68911367654800415 + -0.61184495687484741 + 0 + + max_y + + 886 + 0 + 0 + 1 + + preset_num + 21 + star_brightness + 0 + sun_angle + 2.3813273906707764 + sunlight_color + + 1.4399999380111694 + 1.4699999094009399 + 1.4399999380111694 + 1.4699999094009399 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Babbage.xml b/indra/newview/app_settings/windlight/skies/Places%20Babbage.xml new file mode 100644 index 000000000..a7176d14e --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Babbage.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.32999998331069946 + 0.32999998331069946 + 0.32999998331069946 + 0.10999999940395355 + + blue_density + + 0 + 0.39999699592590332 + 0.80000197887420654 + 0.97999995946884155 + + blue_horizon + + 0.16199998557567596 + 0.76855206489562988 + 0.89999997615814209 + 0.44999998807907104 + + cloud_color + + 0.69999998807907104 + 0.69999998807907104 + 0.69999998807907104 + 0.69999998807907104 + + cloud_pos_density1 + + 0.5 + 0.5 + 0.53999996185302734 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.29999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.39999997615814209 + 0 + 0 + 1 + + density_multiplier + + 0.00072999997064471245 + 0 + 0 + 1 + + distance_multiplier + + 7.4000000953674316 + 0 + 0 + 1 + + east_angle + 0 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1 + 0 + 0 + 1 + + glow + + 3.7999999523162842 + 0.0010000000474974513 + -0.5 + 1 + + haze_density + + 4 + 0 + 0 + 1 + + haze_horizon + + 0.64999997615814209 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0 + 1 + -4.3711388286737929e-008 + 0 + + max_y + + 1745 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 0 + sun_angle + 1.5707963705062866 + sunlight_color + + 0.53999996185302734 + 0.53999996185302734 + 0.53999996185302734 + 0.17999999225139618 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Beach%20Cay%20Surreal.xml b/indra/newview/app_settings/windlight/skies/Places%20Beach%20Cay%20Surreal.xml new file mode 100644 index 000000000..1b06037ae --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Beach%20Cay%20Surreal.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.35999998450279236 + 0.25200003385543823 + 0 + 0.11999999731779099 + + blue_density + + 0.97999995946884155 + 0.97999995946884155 + 0.97999995946884155 + 0.48999997973442078 + + blue_horizon + + 0.47999998927116394 + 0.53999996185302734 + 0.45999997854232788 + 0.53999996185302734 + + cloud_color + + 0.50999999046325684 + 0.50999999046325684 + 0.50999999046325684 + 1 + + cloud_pos_density1 + + 0.5 + 0.5 + 1 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.079999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.25999999046325684 + 0 + 0 + 1 + + density_multiplier + + 7.0000001869630069e-005 + 0 + 0 + 1 + + distance_multiplier + + 31.100000381469727 + 0 + 0 + 1 + + east_angle + 4.0840702056884766 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.6899999380111694 + 0 + 0 + 1 + + glow + + 15.59999942779541 + 0.0010000000474974513 + -0.59999996423721313 + 1 + + haze_density + + 1.2699999809265137 + 0 + 0 + 1 + + haze_horizon + + 0.26999998092651367 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.75406128168106079 + 0.36227512359619141 + 0.54785788059234619 + 0 + + max_y + + 403 + 0 + 0 + 1 + + preset_num + 21 + star_brightness + 0 + sun_angle + 2.7708849906921387 + sunlight_color + + 1.3799998760223389 + 1.3799998760223389 + 1.3799998760223389 + 0.45999997854232788 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Beach%20Cay.xml b/indra/newview/app_settings/windlight/skies/Places%20Beach%20Cay.xml new file mode 100644 index 000000000..d4fa195fe --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Beach%20Cay.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.21000000834465027 + 0.029999999329447746 + 0 + 0.21000000834465027 + + blue_density + + 0.29999998211860657 + 0.29999998211860657 + 0.29999998211860657 + 0.14999999105930328 + + blue_horizon + + 0.47999998927116394 + 0.17142856121063232 + 0 + 0.23999999463558197 + + cloud_color + + 0.26999998092651367 + 0.34999999403953552 + 0.029999999329447746 + 0.34999999403953552 + + cloud_pos_density1 + + 0.85999995470046997 + 0.42999997735023499 + 0.45999997854232788 + 1 + + cloud_pos_density2 + + 1 + 1 + 0.099999994039535522 + 1 + + cloud_scale + + 0.14000000059604645 + 0 + 0 + 1 + + cloud_scroll_rate + + 9.644780158996582 + 10.423800468444824 + + cloud_shadow + + 0.2800000011920929 + 0 + 0 + 1 + + density_multiplier + + 0.00013999998918734491 + 0 + 0 + 1 + + distance_multiplier + + 37.799999237060547 + 0 + 0 + 1 + + east_angle + 1.7592918872833252 + enable_cloud_scroll + + 1 + 1 + + gamma + + 2.2999999523162842 + 0 + 0 + 1 + + glow + + 2.5999999046325684 + 0.0013735899701714516 + -2.5 + 1 + + haze_density + + 1.7300000190734863 + 0 + 0 + 1 + + haze_horizon + + 0.14999999105930328 + 0.13210900127887726 + 0.13210900127887726 + 1 + + lightnorm + + -0.98228722810745239 + 0 + -0.187381312251091 + 0 + + max_y + + 1396 + 0 + 0 + 1 + + preset_num + 5 + star_brightness + 2 + sun_angle + 0 + sunlight_color + + 1.9199999570846558 + 1.7699999809265137 + 0 + 1.9199999570846558 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Bentham.xml b/indra/newview/app_settings/windlight/skies/Places%20Bentham.xml new file mode 100644 index 000000000..db35e04ec --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Bentham.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.59999996423721313 + 0.4888889491558075 + 0.40000000596046448 + 0.19999998807907104 + + blue_density + + 1.059999942779541 + 0.47638890147209167 + 0.47638890147209167 + 1.059999942779541 + + blue_horizon + + 0.14000000059604645 + 0.31999999284744263 + 0.62000000476837158 + 0.62000000476837158 + + cloud_color + + 0.28999999165534973 + 0.28999999165534973 + 0.31999999284744263 + 0.31999999284744263 + + cloud_pos_density1 + + 0.5 + 0.5 + 1 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.079999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 9.9299993515014648 + + cloud_shadow + + 0.32999998331069946 + 0 + 0 + 1 + + density_multiplier + + 0.00032999998074956238 + 0 + 0 + 1 + + distance_multiplier + + 6.8000001907348633 + 0 + 0 + 1 + + east_angle + 4.7752208709716797 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.0799999237060547 + 0 + 0 + 1 + + glow + + 5 + 0.0010000000474974513 + -0.33000001311302185 + 1 + + haze_density + + 1.8899999856948853 + 0 + 0 + 1 + + haze_horizon + + 0.23999999463558197 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.91343516111373901 + 0.4029063880443573 + -0.057468503713607788 + 0 + + max_y + + 644 + 0 + 0 + 1 + + preset_num + 21 + star_brightness + 0 + sun_angle + 2.7269024848937988 + sunlight_color + + 2.25 + 1.8899999856948853 + 1.6800000667572021 + 2.25 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Cornfield.xml b/indra/newview/app_settings/windlight/skies/Places%20Cornfield.xml new file mode 100644 index 000000000..77416688e --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Cornfield.xml @@ -0,0 +1,141 @@ + + + ambient + + 1.7400000095367432 + 1.619999885559082 + 1.4099999666213989 + 2.4600000381469727 + + blue_density + + 0.97999995946884155 + 0.97999995946884155 + 0.97999995946884155 + 0.48999997973442078 + + blue_horizon + + 0.2800000011920929 + 0.29999998211860657 + 0.37999999523162842 + 0.39999997615814209 + + cloud_color + + 0.50999999046325684 + 0.50999999046325684 + 0.50999999046325684 + 1 + + cloud_pos_density1 + + 0.5 + 0.5 + 1 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.079999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.25999999046325684 + 0 + 0 + 1 + + density_multiplier + + 0.00031000000308267772 + 0 + 0 + 1 + + distance_multiplier + + 6.8000001907348633 + 0 + 0 + 1 + + east_angle + 4.5238933563232422 + enable_cloud_scroll + + 1 + 1 + + gamma + + 0.74000000953674316 + 0 + 0 + 1 + + glow + + 11.600000381469727 + 0.0010000000474974513 + -2.2999999523162842 + 1 + + haze_density + + 1.4299999475479126 + 0 + 0 + 1 + + haze_horizon + + 0.15999999642372131 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.71181762218475342 + 0.68911367654800415 + 0.1357865184545517 + 0 + + max_y + + 242 + 0 + 0 + 1 + + preset_num + 21 + star_brightness + 0 + sun_angle + 2.3813273906707764 + sunlight_color + + 1.4399999380111694 + 1.4399999380111694 + 1.4399999380111694 + 0.47999998927116394 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Cromac.xml b/indra/newview/app_settings/windlight/skies/Places%20Cromac.xml new file mode 100644 index 000000000..efec78721 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Cromac.xml @@ -0,0 +1,141 @@ + + + ambient + + 1.0799999237060547 + 0.98999994993209839 + 0.77999997138977051 + 1.0799999237060547 + + blue_density + + 0.64736837148666382 + 0.48414888978004456 + 0.81999999284744263 + 0.40999999642372131 + + blue_horizon + + 0.5 + 0.49548381567001343 + 0.45999997854232788 + 0.51999998092651367 + + cloud_color + + 0.4100000062111997 + 0.4100000062111997 + 0.4100000062111997 + 0.4100000062111997 + + cloud_pos_density1 + + 0.14000000059604645 + 0.62000000476837158 + 1 + 1 + + cloud_pos_density2 + + 0.35999998450279236 + 0.56999999284744263 + 0.12999999523162842 + 1 + + cloud_scale + + 0.35999998450279236 + 0 + 0 + 1.0000000149011612 + + cloud_scroll_rate + + 10.199999791580112 + 10.010999679880427 + + cloud_shadow + + 0.29999998211860657 + 0 + 0 + 1.0000000149011612 + + density_multiplier + + 7.9999997979030013e-005 + 0 + 0 + 1.0000000149011612 + + distance_multiplier + + 5.4000000953674316 + 0 + 0 + 1.0000000149011612 + + east_angle + 4.2725663185119629 + enable_cloud_scroll + + 1 + 1 + + gamma + + 2.8399999141693115 + 0 + 0 + 1.0000000149011612 + + glow + + 5 + 0.0010000000474974513 + -0.55000001192092896 + 1 + + haze_density + + 0.31999999284744263 + 0 + 0 + 1 + + haze_horizon + + 0.17999999225139618 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.14154624938964844 + 0.98768830299377441 + 0.066606558859348297 + 0 + + max_y + + 805 + 0 + 0 + 1.0000000149011612 + + preset_num + 28 + star_brightness + 0.25999999046325684 + sun_angle + 1.7278760671615601 + sunlight_color + + 0.69882339239120483 + 0.8258824348449707 + 1.0799999237060547 + 0.35999998450279236 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Crucible.xml b/indra/newview/app_settings/windlight/skies/Places%20Crucible.xml new file mode 100644 index 000000000..08c15adf0 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Crucible.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.20405015781398106 + 0.24246659642869872 + 0.33000011563842691 + 0.11000042485298422 + + blue_density + + 0.44999968444335536 + 0.44999993884084688 + 0.45000033684982554 + 1 + + blue_horizon + + 0.2399998628207527 + 0.23999996847777538 + 0.24000000489354534 + 1 + + cloud_color + + 0.22615399956703186 + 0.22615399956703186 + 0.22615399956703186 + 1 + + cloud_pos_density1 + + 1.6884100437164307 + 0.52609699964523315 + 0.87999999523162842 + 1 + + cloud_pos_density2 + + 1.6884100437164307 + 0.52609699964523315 + 0.125 + 1 + + cloud_scale + + 0.41999998688697815 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.26999998092651367 + 0 + 0 + 1 + + density_multiplier + + 0.00030000017352815878 + 0 + 0 + 1 + + distance_multiplier + + 2.6920993051460229e-006 + 0 + 0 + 1 + + east_angle + 0 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1 + 0 + 0 + 1 + + glow + + 5 + 0.0010000000474974513 + -0.47999998927116394 + 1 + + haze_density + + 3.9999967092453517 + 0 + 0 + 1 + + haze_horizon + + 1.5953180371869324e-007 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0 + 0.99963462352752686 + 0.027029547840356827 + 1 + + max_y + + 906.19966977159493 + 0 + 0 + 1 + + preset_num + 22 + star_brightness + 1.9999979734420776 + sun_angle + 4.6853561401367187 + sunlight_color + + 0.34876771076233126 + 0.35574326291055058 + 0.66000120168018839 + 0.22000041117803448 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20District8.xml b/indra/newview/app_settings/windlight/skies/Places%20District8.xml new file mode 100644 index 000000000..0ef69a361 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20District8.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.26999998092651367 + 0.21000000834465027 + 0.08999999612569809 + 0.26999998092651367 + + blue_density + + 0.71999996900558472 + 1.0199999809265137 + 1.059999942779541 + 1.059999942779541 + + blue_horizon + + 0.35999998450279236 + 0.36272725462913513 + 0.41999998688697815 + 0.5 + + cloud_color + + 0.50999999046325684 + 0.50999999046325684 + 0.50999999046325684 + 1 + + cloud_pos_density1 + + 0.5 + 0.5 + 1 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.079999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.25 + 0 + 0 + 1 + + density_multiplier + + 0.00020999999833293259 + 0 + 0 + 1 + + distance_multiplier + + 4.7000002861022949 + 0 + 0 + 1 + + east_angle + 3.3300881385803223 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.2200000286102295 + 0 + 0 + 1 + + glow + + 16.600000381469727 + 0.0010000000474974513 + -0.049999997019767761 + 1 + + haze_density + + 2.1599998474121094 + 0 + 0 + 1 + + haze_horizon + + 0.25999999046325684 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0.17994101345539093 + 0.27899131178855896 + -0.94328427314758301 + 1 + + max_y + + 698 + 0 + 0 + 1 + + preset_num + 21 + star_brightness + 0 + sun_angle + 3.4243361949920654 + sunlight_color + + 2.0999999046325684 + 2.1599998474121094 + 2.1599998474121094 + 2.1599998474121094 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Duskwood.xml b/indra/newview/app_settings/windlight/skies/Places%20Duskwood.xml new file mode 100644 index 000000000..2389e9660 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Duskwood.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.17999999225139618 + 0.17999999225139618 + 0 + 0.17999999225139618 + + blue_density + + 0.97999995946884155 + 0.97999995946884155 + 0.75999999046325684 + 1 + + blue_horizon + + 0.084897957742214203 + 0.11000000685453415 + 0.25999999046325684 + 0.12999999523162842 + + cloud_color + + 0.47999998927116394 + 0.47999998927116394 + 0.47999998927116394 + 0.47999998927116394 + + cloud_pos_density1 + + 0.63999998569488525 + 0.5 + 0.56999999284744263 + 1 + + cloud_pos_density2 + + 0.37000000476837158 + 0.35999998450279236 + 0 + 1 + + cloud_scale + + 0.079999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.219999775290489 + 9.9899997767060995 + + cloud_shadow + + 0.31999999284744263 + 0 + 0 + 1 + + density_multiplier + + 0.00031000000308267772 + 0 + 0 + 1 + + distance_multiplier + + 33.100002288818359 + 0 + 0 + 1 + + east_angle + 3.1415927410125732 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1 + 0 + 0 + 1 + + glow + + 5.3999996185302734 + 0.0010000000474974513 + -0.33000001311302185 + 1 + + haze_density + + 1.8899999856948853 + 0 + 0 + 1 + + haze_horizon + + 0.23999999463558197 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -8.1484252234531596e-008 + 0.36227512359619141 + 0.93207120895385742 + 0 + + max_y + + 671 + 0 + 0 + 1 + + preset_num + 21 + star_brightness + 0.2199999988079071 + sun_angle + 2.7708849906921387 + sunlight_color + + 1.3799998760223389 + 1.3799998760223389 + 1.3799998760223389 + 1.3799998760223389 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Eridu.xml b/indra/newview/app_settings/windlight/skies/Places%20Eridu.xml new file mode 100644 index 000000000..d93310016 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Eridu.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.50999999046325684 + 0.57310229539871216 + 0.59999996423721313 + 0.59999996423721313 + + blue_density + + 0.14522500336170197 + 0.39999699592590332 + 0.80000197887420654 + 1 + + blue_horizon + + 0.15130999684333801 + 0.30000001192092896 + 0.35131001472473145 + 1 + + cloud_color + + 0.12862999737262726 + 0.12862999737262726 + 0.12862999737262726 + 1 + + cloud_pos_density1 + + 0.88419097661972046 + 0.53047597408294678 + 0.4270470142364502 + 1 + + cloud_pos_density2 + + 0.38419300317764282 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.41999998688697815 + 0 + 0 + 1 + + cloud_scroll_rate + + 10 + 10 + + cloud_shadow + + 0.61711597442626953 + 0 + 0 + 1 + + density_multiplier + + 0.0001250890054507181 + 0 + 0 + 1 + + distance_multiplier + + 11.40000057220459 + 0 + 0 + 1 + + east_angle + 5.4035391807556152 + enable_cloud_scroll + + 1 + 1 + + gamma + + 0.87999999523162842 + 0 + 0 + 1 + + glow + + 6.4079799652099609 + 0.0012815999798476696 + -0.42292699217796326 + 1 + + haze_density + + 4 + 0 + 0 + 1 + + haze_horizon + + 0.21744099259376526 + 0.21744099259376526 + 0.21744099259376526 + 1 + + lightnorm + + 0.76102709770202637 + 0.15643447637557983 + 0.62957614660263062 + 0 + + max_y + + 4000 + 0 + 0 + 1 + + preset_num + 2 + star_brightness + 0 + sun_angle + 0.15707963705062866 + sunlight_color + + 3 + 3 + 3 + 1 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Erie.xml b/indra/newview/app_settings/windlight/skies/Places%20Erie.xml new file mode 100644 index 000000000..7be0e3ffd --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Erie.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.26999998092651367 + 0.26999998092651367 + 0.26999998092651367 + 0.08999999612569809 + + blue_density + + 0.35999998450279236 + 0.35999998450279236 + 0.35999998450279236 + 0.17999999225139618 + + blue_horizon + + 0.16199998557567596 + 0.76855206489562988 + 1.9799998998641968 + 1.9799998998641968 + + cloud_color + + 0.69999998807907104 + 0.69999998807907104 + 0.69999998807907104 + 0.69999998807907104 + + cloud_pos_density1 + + 0.5 + 0.5 + 0.53999996185302734 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.29999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.39999997615814209 + 0 + 0 + 1 + + density_multiplier + + 0.00054999999701976776 + 0 + 0 + 1 + + distance_multiplier + + 6.0999999046325684 + 0 + 0 + 1 + + east_angle + 0 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.5499999523162842 + 0 + 0 + 1 + + glow + + 3.7999999523162842 + 0.0010000000474974513 + -0.5 + 1 + + haze_density + + 4 + 0 + 0 + 1 + + haze_horizon + + 0.64999997615814209 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0 + 1 + -4.3711388286737929e-008 + 0 + + max_y + + 1745 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 0 + sun_angle + 1.5707963705062866 + sunlight_color + + 0.08999999612569809 + 0.070000007748603821 + 0.08999999612569809 + 0.029999999329447746 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Eugene%202.xml b/indra/newview/app_settings/windlight/skies/Places%20Eugene%202.xml new file mode 100644 index 000000000..85a0a2d93 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Eugene%202.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.21000000834465027 + 0.029999997466802597 + 0 + 0.070000000298023224 + + blue_density + + 0.29999998211860657 + 0.29999998211860657 + 0.29999998211860657 + 0.14999999105930328 + + blue_horizon + + 0.47999998927116394 + 0.47999998927116394 + 0.47999998927116394 + 0.47999998927116394 + + cloud_color + + 0.29999998211860657 + 0.34999999403953552 + 0.029999999329447746 + 0.34999999403953552 + + cloud_pos_density1 + + 0.85999995470046997 + 0.42999997735023499 + 0.45999997854232788 + 1 + + cloud_pos_density2 + + 1 + 1 + 0.099999994039535522 + 1 + + cloud_scale + + 0.14000000059604645 + 0 + 0 + 1 + + cloud_scroll_rate + + 9.644780158996582 + 10.423800468444824 + + cloud_shadow + + 0.2800000011920929 + 0 + 0 + 1 + + density_multiplier + + 0.00013999998918734491 + 0 + 0 + 1 + + distance_multiplier + + 37.799999237060547 + 0 + 0 + 1 + + east_angle + 1.382300853729248 + enable_cloud_scroll + + 1 + 1 + + gamma + + 4.190000057220459 + 0 + 0 + 1 + + glow + + 8.8000011444091797 + 0.0013735899701714516 + -0.94999998807907104 + 1 + + haze_density + + 4 + 0 + 0 + 1 + + haze_horizon + + 0.019999999552965164 + 0.13210900127887726 + 0.13210900127887726 + 1 + + lightnorm + + -0.98228728771209717 + 0 + 0.18738122284412384 + 0 + + max_y + + 1396 + 0 + 0 + 1 + + preset_num + 5 + star_brightness + 2 + sun_angle + 0 + sunlight_color + + 1.2300000190734863 + 0.82000011205673218 + 0.84000003337860107 + 1.2899999618530273 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Eugene%20BL.xml b/indra/newview/app_settings/windlight/skies/Places%20Eugene%20BL.xml new file mode 100644 index 000000000..2402f44d0 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Eugene%20BL.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.21000000834465027 + 0.029999997466802597 + 0 + 0.070000000298023224 + + blue_density + + 0.29999998211860657 + 0.29999998211860657 + 0.29999998211860657 + 0.14999999105930328 + + blue_horizon + + 0.47999998927116394 + 0.17142856121063232 + 0 + 0.23999999463558197 + + cloud_color + + 0.29999998211860657 + 0.34999999403953552 + 0.029999999329447746 + 0.34999999403953552 + + cloud_pos_density1 + + 0.85999995470046997 + 0.42999997735023499 + 0.45999997854232788 + 1 + + cloud_pos_density2 + + 1 + 1 + 0.099999994039535522 + 1 + + cloud_scale + + 0.14000000059604645 + 0 + 0 + 1 + + cloud_scroll_rate + + 9.644780158996582 + 10.423800468444824 + + cloud_shadow + + 0.2800000011920929 + 0 + 0 + 1 + + density_multiplier + + 0.00013999998918734491 + 0 + 0 + 1 + + distance_multiplier + + 37.799999237060547 + 0 + 0 + 1 + + east_angle + 1.382300853729248 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.1499999761581421 + 0 + 0 + 1 + + glow + + 8.8000011444091797 + 0.0013735899701714516 + -0.94999998807907104 + 1 + + haze_density + + 1.7300000190734863 + 0 + 0 + 1 + + haze_horizon + + 0.14999999105930328 + 0.13210900127887726 + 0.13210900127887726 + 1 + + lightnorm + + -0.98228728771209717 + 0 + 0.18738122284412384 + 0 + + max_y + + 1396 + 0 + 0 + 1 + + preset_num + 5 + star_brightness + 2 + sun_angle + 0 + sunlight_color + + 1.2300000190734863 + 0.82000011205673218 + 0 + 0.40999999642372131 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Greed.xml b/indra/newview/app_settings/windlight/skies/Places%20Greed.xml new file mode 100644 index 000000000..268716b94 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Greed.xml @@ -0,0 +1,141 @@ + + + ambient + + 1.1699999570846558 + 0.95727264881134033 + 0.95727264881134033 + 0.38999998569488525 + + blue_density + + 0.14522500336170197 + 0.39999699592590332 + 0.80000197887420654 + 1 + + blue_horizon + + 0.10767599940299988 + 0.21348699927330017 + 0.25 + 1 + + cloud_color + + 0.22615399956703186 + 0.22615399956703186 + 0.22615399956703186 + 1 + + cloud_pos_density1 + + 1.6884100437164307 + 0.52609699964523315 + 0.87999999523162842 + 1 + + cloud_pos_density2 + + 1.6884100437164307 + 0.52609699964523315 + 0.125 + 1 + + cloud_scale + + 0.41999998688697815 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.26999998092651367 + 0 + 0 + 1 + + density_multiplier + + 0.00046000001020729542 + 0 + 0 + 1 + + distance_multiplier + + 1 + 0 + 0 + 1 + + east_angle + 5.4035391807556152 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.6200000047683716 + 0 + 0 + 1 + + glow + + 4.2000007629394531 + 0.0010000000474974513 + -0 + 1 + + haze_density + + 0.69999998807907104 + 0 + 0 + 1 + + haze_horizon + + 0.15999999642372131 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.75594335794448853 + 0.19354932010173798 + -0.6253705620765686 + 0 + + max_y + + 562.5 + 0 + 0 + 1 + + preset_num + 22 + star_brightness + 0 + sun_angle + 2.9468140602111816 + sunlight_color + + 2.8385701179504395 + 2.8385701179504395 + 2.8385701179504395 + 1 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Greed2.xml b/indra/newview/app_settings/windlight/skies/Places%20Greed2.xml new file mode 100644 index 000000000..ec5282f7e --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Greed2.xml @@ -0,0 +1,141 @@ + + + ambient + + 1.1699999570846558 + 0.95727264881134033 + 0.95727264881134033 + 0.38999998569488525 + + blue_density + + 0.14522500336170197 + 0.39999699592590332 + 0.80000197887420654 + 1 + + blue_horizon + + 0.10767599940299988 + 0.21348699927330017 + 0.25 + 1 + + cloud_color + + 0.22615399956703186 + 0.22615399956703186 + 0.22615399956703186 + 1 + + cloud_pos_density1 + + 1.6884100437164307 + 0.52609699964523315 + 0.87999999523162842 + 1 + + cloud_pos_density2 + + 1.6884100437164307 + 0.52609699964523315 + 0.125 + 1 + + cloud_scale + + 0.41999998688697815 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.26999998092651367 + 0 + 0 + 1 + + density_multiplier + + 0.00046000001020729542 + 0 + 0 + 1 + + distance_multiplier + + 1 + 0 + 0 + 1 + + east_angle + 2.9530971050262451 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.2200000286102295 + 0 + 0 + 1 + + glow + + 4.2000007629394531 + 0.0010000000474974513 + -0 + 1 + + haze_density + + 0.69999998807907104 + 0 + 0 + 1 + + haze_horizon + + 0.15999999642372131 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0.18383802473545074 + 0.19354932010173798 + 0.96371269226074219 + 0 + + max_y + + 562.5 + 0 + 0 + 1 + + preset_num + 22 + star_brightness + 0 + sun_angle + 2.9468140602111816 + sunlight_color + + 2.8385701179504395 + 2.8385701179504395 + 2.8385701179504395 + 1 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Imagine.xml b/indra/newview/app_settings/windlight/skies/Places%20Imagine.xml new file mode 100644 index 000000000..48fba1e31 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Imagine.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.68999993801116943 + 0.68999993801116943 + 0.68999993801116943 + 0.68999993801116943 + + blue_density + + 0.97999995946884155 + 0.97999995946884155 + 0.97999995946884155 + 0.48999997973442078 + + blue_horizon + + 0.25999999046325684 + 0.29999998211860657 + 0.37999999523162842 + 0.37999999523162842 + + cloud_color + + 0.50999999046325684 + 0.50999999046325684 + 0.50999999046325684 + 1 + + cloud_pos_density1 + + 0.5 + 0.5 + 1 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.079999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.25999999046325684 + 0 + 0 + 1 + + density_multiplier + + 0.00038999997195787728 + 0 + 0 + 1 + + distance_multiplier + + 11.5 + 0 + 0 + 1 + + east_angle + 5.7176985740661621 + enable_cloud_scroll + + 1 + 1 + + gamma + + 0.68000000715255737 + 0 + 0 + 1 + + glow + + 12.399999618530273 + 0.0010000000474974513 + -1.8500000238418579 + 1 + + haze_density + + 1.8899999856948853 + 0 + 0 + 1 + + haze_horizon + + 0.23999999463558197 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.41922605037689209 + 0.6227877140045166 + -0.6605944037437439 + 0 + + max_y + + 940 + 0 + 0 + 1 + + preset_num + 21 + star_brightness + 0 + sun_angle + 2.4692919254302979 + sunlight_color + + 2.6700000762939453 + 2.6700000762939453 + 2.6700000762939453 + 0.88999998569488525 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Kingsport.xml b/indra/newview/app_settings/windlight/skies/Places%20Kingsport.xml new file mode 100644 index 000000000..dfaf68596 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Kingsport.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.32999998331069946 + 0.32999998331069946 + 0.32999998331069946 + 0.32999998331069946 + + blue_density + + 0 + 0 + 0 + 0 + + blue_horizon + + 0.16199998557567596 + 0.76855206489562988 + 0.89999997615814209 + 0.44999998807907104 + + cloud_color + + 0.69999998807907104 + 0.69999998807907104 + 0.69999998807907104 + 0.69999998807907104 + + cloud_pos_density1 + + 0.5 + 0.5 + 0.53999996185302734 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.29999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.39999997615814209 + 0 + 0 + 1 + + density_multiplier + + 0.00058999995235353708 + 0 + 0 + 1 + + distance_multiplier + + 12.800000190734863 + 0 + 0 + 1 + + east_angle + 0 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.4199999570846558 + 0 + 0 + 1 + + glow + + 3.7999999523162842 + 0.0010000000474974513 + -0.5 + 1 + + haze_density + + 4 + 0 + 0 + 1 + + haze_horizon + + 0.64999997615814209 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0 + 1 + -4.3711388286737929e-008 + 0 + + max_y + + 2013 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 0 + sun_angle + 1.5707963705062866 + sunlight_color + + 0.53999996185302734 + 0.53999996185302734 + 0.53999996185302734 + 0.17999999225139618 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Kunming.xml b/indra/newview/app_settings/windlight/skies/Places%20Kunming.xml new file mode 100644 index 000000000..e641bebcc --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Kunming.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.89999997615814209 + 0.80999994277954102 + 0.80999994277954102 + 0.89999997615814209 + + blue_density + + 0.14522500336170197 + 0.39999699592590332 + 0.80000197887420654 + 1 + + blue_horizon + + 0.10767599940299988 + 0.21348699927330017 + 0.25 + 1 + + cloud_color + + 0.22615399956703186 + 0.22615399956703186 + 0.22615399956703186 + 1 + + cloud_pos_density1 + + 0.5 + 0.5 + 0.87999999523162842 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.32999998331069946 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.48999997973442078 + 0 + 0 + 1 + + density_multiplier + + 0.00059999997029080987 + 0 + 0 + 1 + + distance_multiplier + + 18.200000762939453 + 0 + 0 + 1 + + east_angle + 3.2044246196746826 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.4199999570846558 + 0 + 0 + 1 + + glow + + 5 + 0.0010000000474974513 + -0.39999997615814209 + 1 + + haze_density + + 0.68000000715255737 + 0 + 0 + 1 + + haze_horizon + + 0.43999999761581421 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.062790632247924805 + 0 + 0.99802672863006592 + 0 + + max_y + + 859 + 0 + 0 + 1 + + preset_num + 21 + star_brightness + 0 + sun_angle + 3.2044248580932617 + sunlight_color + + 2.8385701179504395 + 2.8385701179504395 + 2.8385701179504395 + 1 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Las%20Legunas.xml b/indra/newview/app_settings/windlight/skies/Places%20Las%20Legunas.xml new file mode 100644 index 000000000..4121f8fa6 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Las%20Legunas.xml @@ -0,0 +1,141 @@ + + + ambient + + 1.7372221946716309 + 1.7699999809265137 + 1.5899999141693115 + 1.7999999523162842 + + blue_density + + 0.5 + 0.97999995946884155 + 0.97999995946884155 + 0.48999997973442078 + + blue_horizon + + 0.31999999284744263 + 0.2800000011920929 + 0.37999999523162842 + 0.37999999523162842 + + cloud_color + + 0.50999999046325684 + 0.50999999046325684 + 0.50999999046325684 + 1 + + cloud_pos_density1 + + 0.8399999737739563 + 0.5899999737739563 + 1 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.079999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.17000000178813934 + 0 + 0 + 1 + + density_multiplier + + 0.00033999999868683517 + 0 + 0 + 1 + + distance_multiplier + + 4.0999999046325684 + 0 + 0 + 1 + + east_angle + 0.56548666954040527 + enable_cloud_scroll + + 1 + 1 + + gamma + + 0.94999998807907104 + 0 + 0 + 1 + + glow + + 11.600000381469727 + 0.0010000000474974513 + -2.2999999523162842 + 1 + + haze_density + + 1.9199999570846558 + 0 + 0 + 1 + + haze_horizon + + 0.15999999642372131 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0.38828861713409424 + 0.68911367654800415 + -0.61184495687484741 + 0 + + max_y + + 403 + 0 + 0 + 1 + + preset_num + 21 + star_brightness + 0 + sun_angle + 2.3813273906707764 + sunlight_color + + 1.4399999380111694 + 1.4699999094009399 + 1.4399999380111694 + 1.4699999094009399 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Legacies.xml b/indra/newview/app_settings/windlight/skies/Places%20Legacies.xml new file mode 100644 index 000000000..a8284bb2a --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Legacies.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.32999998331069946 + 0.32999998331069946 + 0.32999998331069946 + 0.10999999940395355 + + blue_density + + 0.19999998807907104 + 0.39999699592590332 + 1.0199999809265137 + 1.0199999809265137 + + blue_horizon + + 0.16199998557567596 + 0.76855206489562988 + 0.89999997615814209 + 0.44999998807907104 + + cloud_color + + 0.69999998807907104 + 0.69999998807907104 + 0.69999998807907104 + 0.69999998807907104 + + cloud_pos_density1 + + 0.5 + 0.5 + 0.53999996185302734 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.29999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.39999997615814209 + 0 + 0 + 1 + + density_multiplier + + 0.00039999998989515007 + 0 + 0 + 1 + + distance_multiplier + + 14.199999809265137 + 0 + 0 + 1 + + east_angle + 0 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.2799999713897705 + 0 + 0 + 1 + + glow + + 3.7999999523162842 + 0.0010000000474974513 + -0.39999997615814209 + 1 + + haze_density + + 3.8599998950958252 + 0 + 0 + 1 + + haze_horizon + + 0.77999997138977051 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0 + 0.99715888500213623 + -0.07532694935798645 + 0 + + max_y + + 1745 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 0 + sun_angle + 1.6461946964263916 + sunlight_color + + 0.53999996185302734 + 0.53999996185302734 + 0.53999996185302734 + 0.17999999225139618 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Midian.xml b/indra/newview/app_settings/windlight/skies/Places%20Midian.xml new file mode 100644 index 000000000..40a34a4a9 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Midian.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.85248766300455259 + 0.69348653809556993 + 0.71145841248196007 + 0.83318269234937503 + + blue_density + + 0.20779243499502797 + 0.41026214234642566 + 0.72814986965084927 + 1 + + blue_horizon + + 0.13484086845960519 + 0.21892986884401466 + 0.24794709491764877 + 1 + + cloud_color + + 0.22615399956703186 + 0.22615399956703186 + 0.22615399956703186 + 1 + + cloud_pos_density1 + + 1.6884100437164307 + 0.52609699964523315 + 0.87999999523162842 + 1 + + cloud_pos_density2 + + 1.6884100437164307 + 0.52609699964523315 + 0.125 + 1 + + cloud_scale + + 0.41999998688697815 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.26999998092651367 + 0 + 0 + 1 + + density_multiplier + + 0.00029999998514540493 + 0 + 0 + 1 + + distance_multiplier + + 4.0999999046325684 + 0 + 0 + 1 + + east_angle + 6.2831854820251465 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.3500000238418579 + 0 + 0 + 1 + + glow + + 5 + 0.0010000000474974513 + -0.47999998927116394 + 1 + + haze_density + + 1.3774588671593051 + 0 + 0 + 1 + + haze_horizon + + 0.29999998211860657 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 1.7484556735780643e-007 + 0 + -1 + 0 + + max_y + + 564 + 0 + 0 + 1 + + preset_num + 22 + star_brightness + 0.41058114171028137 + sun_angle + 3.2044248580932617 + sunlight_color + + 2.3274268943138168 + 2.3288588977004565 + 2.3913246215581694 + 0.83987117651068388 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Mother.xml b/indra/newview/app_settings/windlight/skies/Places%20Mother.xml new file mode 100644 index 000000000..753cf0706 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Mother.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.71999996900558472 + 0.54638898372650146 + 0.58705025911331177 + 0.71999996900558472 + + blue_density + + 0.28678349408657766 + 0.42322183665254443 + 0.63743695308465931 + 1 + + blue_horizon + + 0.16913637525681224 + 0.22580146354854946 + 0.24535531286049661 + 1 + + cloud_color + + 0.22615399956703186 + 0.22615399956703186 + 0.22615399956703186 + 1 + + cloud_pos_density1 + + 1.6884100437164307 + 0.52609699964523315 + 0.70999997854232788 + 1 + + cloud_pos_density2 + + 1.6884100437164307 + 0.20999999344348907 + 0.125 + 1 + + cloud_scale + + 0.3399999737739563 + 0 + 0 + 1 + + cloud_scroll_rate + + 8.6099996566772461 + 6.2799997329711914 + + cloud_shadow + + 0.23999999463558197 + 0 + 0 + 1 + + density_multiplier + + 0.00031999999191612005 + 0 + 0 + 1 + + distance_multiplier + + 40.5 + 0 + 0 + 1 + + east_angle + 1.8849555253982544 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.7599999904632568 + 0 + 0 + 1 + + glow + + 5.7999992370605469 + 0.0010000000474974513 + -1.1000000238418579 + 1 + + haze_density + + 2.2327472009226881 + 0 + 0 + 1 + + haze_horizon + + 0.085684981703968377 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.60160976648330688 + 0.77450323104858398 + -0.19547481834888458 + 1 + + max_y + + 644 + 0 + 0 + 1 + + preset_num + 22 + star_brightness + 0.92893773317337036 + sun_angle + 4.027522087097168 + sunlight_color + + 2.624443531036377 + 2.6294984817504883 + 2.8499999046325684 + 0.94999998807907104 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Old%20New%20York.xml b/indra/newview/app_settings/windlight/skies/Places%20Old%20New%20York.xml new file mode 100644 index 000000000..df356084b --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Old%20New%20York.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.56999999284744263 + 0.59999996423721313 + 0.71999996900558472 + 0.71999996900558472 + + blue_density + + 0.14522500336170197 + 0.39999699592590332 + 0.80000197887420654 + 1 + + blue_horizon + + 0.23999999463558197 + 0.30000001192092896 + 0.35131001472473145 + 0.37999999523162842 + + cloud_color + + 0.12862999737262726 + 0.12862999737262726 + 0.12862999737262726 + 1 + + cloud_pos_density1 + + 0.88419097661972046 + 0.53047597408294678 + 0.4270470142364502 + 1 + + cloud_pos_density2 + + 0.38419300317764282 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.41999998688697815 + 0 + 0 + 1 + + cloud_scroll_rate + + 10 + 10 + + cloud_shadow + + 0.61711597442626953 + 0 + 0 + 1 + + density_multiplier + + 0.00013000000035390258 + 0 + 0 + 1 + + distance_multiplier + + 18.899999618530273 + 0 + 0 + 1 + + east_angle + 5.4035391807556152 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.6899999380111694 + 0 + 0 + 1 + + glow + + 4.4000005722045898 + 0.0012815999798476696 + -0.64999997615814209 + 1 + + haze_density + + 4 + 0 + 0 + 1 + + haze_horizon + + 0.17000000178813934 + 0.21744099259376526 + 0.21744099259376526 + 1 + + lightnorm + + 0.76102709770202637 + 0.15643447637557983 + 0.62957614660263062 + 0 + + max_y + + 4000 + 0 + 0 + 1 + + preset_num + 2 + star_brightness + 0.65999996662139893 + sun_angle + 0.15707963705062866 + sunlight_color + + 1.3199999332427979 + 0.69959986209869385 + 0.71279996633529663 + 0.43999999761581421 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Paris%202.xml b/indra/newview/app_settings/windlight/skies/Places%20Paris%202.xml new file mode 100644 index 000000000..431ee1867 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Paris%202.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.85248766300455259 + 0.69348653809556993 + 0.71145841248196007 + 0.83318269234937503 + + blue_density + + 0.20779243499502797 + 0.41026214234642566 + 0.72814986965084927 + 1 + + blue_horizon + + 0.13484086845960519 + 0.21892986884401466 + 0.24794709491764877 + 1 + + cloud_color + + 0.22615399956703186 + 0.22615399956703186 + 0.22615399956703186 + 1 + + cloud_pos_density1 + + 1.6884100437164307 + 0.52609699964523315 + 0.87999999523162842 + 1 + + cloud_pos_density2 + + 1.6884100437164307 + 0.52609699964523315 + 0.125 + 1 + + cloud_scale + + 0.34999999403953552 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.31999999284744263 + 0 + 0 + 1 + + density_multiplier + + 0.00029999998514540493 + 0 + 0 + 1 + + distance_multiplier + + 4.0999999046325684 + 0 + 0 + 1 + + east_angle + 3.0787608623504639 + enable_cloud_scroll + + 1 + 1 + + gamma + + 2.1599998474121094 + 0 + 0 + 1 + + glow + + 8.4000015258789063 + 0.0010000000474974513 + -0.34999999403953552 + 1 + + haze_density + + 1.3774588671593051 + 0 + 0 + 1 + + haze_horizon + + 0.29999998211860657 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0.062790460884571075 + 0 + 0.99802672863006592 + 0 + + max_y + + 564 + 0 + 0 + 1 + + preset_num + 22 + star_brightness + 0.41058114171028137 + sun_angle + 3.2044248580932617 + sunlight_color + + 2.3274268943138168 + 2.3288588977004565 + 2.3913246215581694 + 0.83987117651068388 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Paris.xml b/indra/newview/app_settings/windlight/skies/Places%20Paris.xml new file mode 100644 index 000000000..ebd2970c9 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Paris.xml @@ -0,0 +1,141 @@ + + + ambient + + 1.2300000190734863 + 1.0553969144821167 + 1.0920002460479736 + 1.2300000190734863 + + blue_density + + 0.57999998331069946 + 0.59999996423721313 + 0.77111077308654785 + 0.55220913887023926 + + blue_horizon + + 0.29999998211860657 + 0.41715732216835022 + 0.53167486190795898 + 0.65999996662139893 + + cloud_color + + 0.35893553611745688 + 0.35893553611745688 + 0.35893553611745688 + 0.57387644052505493 + + cloud_pos_density1 + + 1.6884100437164307 + 0.52609699964523315 + 0.96666919575807242 + 1 + + cloud_pos_density2 + + 1.6884100437164307 + 0.52609699964523315 + 0.125 + 1 + + cloud_scale + + 0.41999999993404913 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.283160487214445 + 10.010999818490745 + + cloud_shadow + + 0.23999999463558197 + 0 + 0 + 1 + + density_multiplier + + 7.0000001869630069e-005 + 0 + 0 + 1 + + distance_multiplier + + 2 + 0 + 0 + 1 + + east_angle + 3.8955750465393066 + enable_cloud_scroll + + 1 + 1 + + gamma + + 2.2300000190734863 + 0 + 0 + 1 + + glow + + 7.4000000953674316 + 0.0010000000474974513 + -0 + 1 + + haze_density + + 1.0499999523162842 + 0 + 0 + 1 + + haze_horizon + + 0.37999999523162842 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.68454724550247192 + 0 + 0.72896856069564819 + 0 + + max_y + + 268 + 0 + 0 + 1 + + preset_num + 22 + star_brightness + 0 + sun_angle + 3.2044248580932617 + sunlight_color + + 1.3187105655670166 + 1.3529220819473267 + 1.7100000381469727 + 1.7100000381469727 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Pathfinder.xml b/indra/newview/app_settings/windlight/skies/Places%20Pathfinder.xml new file mode 100644 index 000000000..43e69daea --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Pathfinder.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.47999998927116394 + 0.39111119508743286 + 0.31999999284744263 + 0.47999998927116394 + + blue_density + + 0.059999998658895493 + 0.059999998658895493 + 0.059999998658895493 + 0.029999999329447746 + + blue_horizon + + 1.8600000143051147 + 0.47999998927116394 + 0.47999998927116394 + 1.8600000143051147 + + cloud_color + + 0.28999999165534973 + 0.28999999165534973 + 0.31999999284744263 + 0.31999999284744263 + + cloud_pos_density1 + + 0.5 + 0.5 + 1 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.079999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 9.9299993515014648 + + cloud_shadow + + 0.32999998331069946 + 0 + 0 + 1 + + density_multiplier + + 0.00019999999494757503 + 0 + 0 + 1 + + distance_multiplier + + 3.4000000953674316 + 0 + 0 + 1 + + east_angle + 1.8849555253982544 + enable_cloud_scroll + + 1 + 1 + + gamma + + 0.74000000953674316 + 0 + 0 + 1 + + glow + + 5 + 0.0010000000474974513 + -0.33000001311302185 + 1 + + haze_density + + 2.809999942779541 + 0 + 0 + 1 + + haze_horizon + + 0.23999999463558197 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0.87044608592987061 + 0.4029063880443573 + 0.28282502293586731 + 0 + + max_y + + 752 + 0 + 0 + 1 + + preset_num + 21 + star_brightness + 0 + sun_angle + 2.7269024848937988 + sunlight_color + + 1.8600000143051147 + 1.7699999809265137 + 1.6537500619888306 + 1.8600000143051147 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Sand.xml b/indra/newview/app_settings/windlight/skies/Places%20Sand.xml new file mode 100644 index 000000000..da66198d5 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Sand.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.59999996423721313 + 0.4888889491558075 + 0.40000000596046448 + 0.19999998807907104 + + blue_density + + 2 + 0.97999995946884155 + 0.97999995946884155 + 2 + + blue_horizon + + 0.71999996900558472 + 0.50086963176727295 + 0.50086963176727295 + 0.35999998450279236 + + cloud_color + + 0.28999999165534973 + 0.28999999165534973 + 0.31999999284744263 + 0.31999999284744263 + + cloud_pos_density1 + + 0.5 + 0.5 + 1 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.079999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 9.9299993515014648 + + cloud_shadow + + 0.32999998331069946 + 0 + 0 + 1 + + density_multiplier + + 0.00031000000308267772 + 0 + 0 + 1 + + distance_multiplier + + 6.8000001907348633 + 0 + 0 + 1 + + east_angle + 5.6548666954040527 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.1499999761581421 + 0 + 0 + 1 + + glow + + 5 + 0.0010000000474974513 + -0.33000001311302185 + 1 + + haze_density + + 1.8899999856948853 + 0 + 0 + 1 + + haze_horizon + + 0.23999999463558197 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.53796529769897461 + 0.4029063880443573 + -0.74044561386108398 + 0 + + max_y + + 752 + 0 + 0 + 1 + + preset_num + 21 + star_brightness + 0 + sun_angle + 2.7269024848937988 + sunlight_color + + 2.25 + 1.8899999856948853 + 1.6800000667572021 + 2.25 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Terre%20Des%20Mortes.xml b/indra/newview/app_settings/windlight/skies/Places%20Terre%20Des%20Mortes.xml new file mode 100644 index 000000000..00ae35765 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Terre%20Des%20Mortes.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.21000000834465027 + 0.26999998092651367 + 0.35999998450279236 + 0.35999998450279236 + + blue_density + + 0.97999995946884155 + 0.97999995946884155 + 0.97999995946884155 + 0.48999997973442078 + + blue_horizon + + 0.25999999046325684 + 0.29999998211860657 + 0.37999999523162842 + 0.37999999523162842 + + cloud_color + + 0.50999999046325684 + 0.50999999046325684 + 0.50999999046325684 + 1 + + cloud_pos_density1 + + 0.5 + 0.5 + 1 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.079999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.25999999046325684 + 0 + 0 + 1 + + density_multiplier + + 0.00076999998418614268 + 0 + 0 + 1 + + distance_multiplier + + 16.899999618530273 + 0 + 0 + 1 + + east_angle + 4.0840702056884766 + enable_cloud_scroll + + 1 + 1 + + gamma + + 0.74000000953674316 + 0 + 0 + 1 + + glow + + 5 + 0.0010000000474974513 + -0.33000001311302185 + 1 + + haze_density + + 1.8899999856948853 + 0 + 0 + 1 + + haze_horizon + + 0.23999999463558197 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.63296741247177124 + 0.6227877140045166 + 0.45987796783447266 + 0 + + max_y + + 752 + 0 + 0 + 1 + + preset_num + 21 + star_brightness + 0 + sun_angle + 2.4692919254302979 + sunlight_color + + 1.4399999380111694 + 1.4399999380111694 + 1.4399999380111694 + 0.47999998927116394 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Urbania.xml b/indra/newview/app_settings/windlight/skies/Places%20Urbania.xml new file mode 100644 index 000000000..4aed800ea --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Urbania.xml @@ -0,0 +1,141 @@ + + + ambient + + 0 + 0.029999997466802597 + 0 + 0.029999999329447746 + + blue_density + + 0.29999998211860657 + 0.29999998211860657 + 0.29999998211860657 + 0.14999999105930328 + + blue_horizon + + 0.39999997615814209 + 0.17142856121063232 + 0 + 0.39999997615814209 + + cloud_color + + 0.29999998211860657 + 0.34999999403953552 + 0.029999999329447746 + 0.34999999403953552 + + cloud_pos_density1 + + 0.85999995470046997 + 0.42999997735023499 + 0.45999997854232788 + 1 + + cloud_pos_density2 + + 1 + 1 + 0.099999994039535522 + 1 + + cloud_scale + + 0.14000000059604645 + 0 + 0 + 1 + + cloud_scroll_rate + + 9.644780158996582 + 10.423800468444824 + + cloud_shadow + + 0.2800000011920929 + 0 + 0 + 1 + + density_multiplier + + 0.00058999995235353708 + 0 + 0 + 1 + + distance_multiplier + + 20.30000114440918 + 0 + 0 + 1 + + east_angle + 1.2566369771957397 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.9599999189376831 + 0 + 0 + 1 + + glow + + 8.8000011444091797 + 0.0013735899701714516 + -0.94999998807907104 + 1 + + haze_density + + 1.7300000190734863 + 0 + 0 + 1 + + haze_horizon + + 0.45999997854232788 + 0.13210900127887726 + 0.13210900127887726 + 1 + + lightnorm + + -0.95105648040771484 + 0 + 0.30901706218719482 + 0 + + max_y + + 1450 + 0 + 0 + 1 + + preset_num + 5 + star_brightness + 2 + sun_angle + 0 + sunlight_color + + 1.2300000190734863 + 0.82000011205673218 + 0 + 0.40999999642372131 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20Wiccan.xml b/indra/newview/app_settings/windlight/skies/Places%20Wiccan.xml new file mode 100644 index 000000000..7e220c9ff --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20Wiccan.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.71999996900558472 + 0.54638898372650146 + 0.58705025911331177 + 0.71999996900558472 + + blue_density + + 0.28678349408657766 + 0.42322183665254443 + 0.63743695308465931 + 1 + + blue_horizon + + 0.16913637525681224 + 0.22580146354854946 + 0.24535531286049661 + 1 + + cloud_color + + 0.22615399956703186 + 0.22615399956703186 + 0.22615399956703186 + 1 + + cloud_pos_density1 + + 1.6884100437164307 + 0.52609699964523315 + 0.70999997854232788 + 1 + + cloud_pos_density2 + + 1.6884100437164307 + 0.20999999344348907 + 0.125 + 1 + + cloud_scale + + 0.3399999737739563 + 0 + 0 + 1 + + cloud_scroll_rate + + 8.6099996566772461 + 6.2799997329711914 + + cloud_shadow + + 0.23999999463558197 + 0 + 0 + 1 + + density_multiplier + + 0.00038568499229132969 + 0 + 0 + 1 + + distance_multiplier + + 0.53555402121232365 + 0 + 0 + 1 + + east_angle + 6.2831854820251465 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.6899999380111694 + 0 + 0 + 1 + + glow + + 5 + 0.0010000000474974513 + -0.47999998927116394 + 1 + + haze_density + + 2.2327472009226881 + 0 + 0 + 1 + + haze_horizon + + 0.085684981703968377 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -1.6790306744951522e-007 + 0.27899131178855896 + 0.96029365062713623 + 1 + + max_y + + 722.13795372575987 + 0 + 0 + 1 + + preset_num + 22 + star_brightness + 0.92893773317337036 + sun_angle + 3.4243361949920654 + sunlight_color + + 2.624443531036377 + 2.6294984817504883 + 2.8499999046325684 + 0.94999998807907104 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%20alirium.xml b/indra/newview/app_settings/windlight/skies/Places%20alirium.xml new file mode 100644 index 000000000..6bed05a85 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%20alirium.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.26999998092651367 + 0.21000000834465027 + 0.08999999612569809 + 0.26999998092651367 + + blue_density + + 0.47886797785758972 + 0.90452831983566284 + 0.93999999761581421 + 0.4699999988079071 + + blue_horizon + + 0.28636360168457031 + 0.36272725462913513 + 0.41999998688697815 + 0.20999999344348907 + + cloud_color + + 0.50999999046325684 + 0.50999999046325684 + 0.50999999046325684 + 0.50999999046325684 + + cloud_pos_density1 + + 0.5 + 0.5 + 1 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.10999999940395355 + 1 + + cloud_scale + + 0.079999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.800000190734863 + 10.01099967956543 + + cloud_shadow + + 0.22999998927116394 + 0 + 0 + 1 + + density_multiplier + + 0.00013000000035390258 + 0 + 0 + 1 + + distance_multiplier + + 6.8000001907348633 + 0 + 0 + 1 + + east_angle + 4.2725663185119629 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.7599999904632568 + 0 + 0 + 1 + + glow + + 16.600000381469727 + 0.0010000000474974513 + -0.24999998509883881 + 1 + + haze_density + + 1.1899999380111694 + 0 + 0 + 1 + + haze_horizon + + 0.2199999988079071 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.84336334466934204 + 0.36227512359619141 + 0.39685636758804321 + 0 + + max_y + + 564 + 0 + 0 + 1 + + preset_num + 21 + star_brightness + 0 + sun_angle + 2.7708849906921387 + sunlight_color + + 2.4600000381469727 + 2.4600000381469727 + 2.4600000381469727 + 0.81999999284744263 + + + diff --git a/indra/newview/app_settings/windlight/skies/Places%2DEmbryo.xml b/indra/newview/app_settings/windlight/skies/Places%2DEmbryo.xml new file mode 100644 index 000000000..66d490aa9 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Places%2DEmbryo.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.35999998450279236 + 0.23999999463558197 + 0 + 0.35999998450279236 + + blue_density + + 0.15999999642372131 + 0.15999999642372131 + 0.15999999642372131 + 0.079999998211860657 + + blue_horizon + + 0.19999998807907104 + 0.19999998807907104 + 0.19999998807907104 + 0.099999994039535522 + + cloud_color + + 0.50999999046325684 + 0.50999999046325684 + 0.50999999046325684 + 0.50999999046325684 + + cloud_pos_density1 + + 0.53999996185302734 + 0.50999999046325684 + 0.2199999988079071 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.039999999105930328 + 1 + + cloud_scale + + 0.15999999642372131 + 0 + 0 + 1 + + cloud_scroll_rate + + 20 + 20 + + cloud_shadow + + 0.68000000715255737 + 0 + 0 + 1 + + density_multiplier + + 0.00020999999833293259 + 0 + 0 + 1 + + distance_multiplier + + 23 + 0 + 0 + 1 + + east_angle + 2.2619466781616211 + enable_cloud_scroll + + 0 + 0 + + gamma + + 0.94999998807907104 + 0 + 0 + 1 + + glow + + 20 + 0.0010000000474974513 + 0 + 1 + + haze_density + + 4 + 0 + 0 + 1 + + haze_horizon + + 0.17000000178813934 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0.70520544052124023 + 0.4029063880443573 + 0.58339667320251465 + 0 + + max_y + + 322 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 0 + sun_angle + 2.7269024848937988 + sunlight_color + + 0.71999996900558472 + 0.71999996900558472 + 0.71999996900558472 + 0.23999999463558197 + + + diff --git a/indra/newview/app_settings/windlight/skies/StrawberrySingh%2Ecom%20%2D%20Closeups.xml b/indra/newview/app_settings/windlight/skies/StrawberrySingh%2Ecom%20%2D%20Closeups.xml new file mode 100644 index 000000000..d9a45e832 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/StrawberrySingh%2Ecom%20%2D%20Closeups.xml @@ -0,0 +1,141 @@ + + + ambient + + 1.9524954557418823 + 2.0699999332427979 + 2.059481143951416 + 0.68999999761581421 + + blue_density + + 2 + 2 + 2 + 1 + + blue_horizon + + 1.5 + 1.5 + 1.5 + 0.75 + + cloud_color + + 0.40999999642372131 + 0.40999999642372131 + 0.40999999642372131 + 0.40999999642372131 + + cloud_pos_density1 + + 1.6884100437164307 + 0.52609699964523315 + 1 + 1 + + cloud_pos_density2 + + 1.6884100437164307 + 0.52609699964523315 + 0.125 + 1 + + cloud_scale + + 0.41999998688697815 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.199999809265137 + 10.01099967956543 + + cloud_shadow + + 0.12999999523162842 + 0 + 0 + 1 + + density_multiplier + + 0.0002899999963119626 + 0 + 0 + 1 + + distance_multiplier + + 0 + 0 + 0 + 1 + + east_angle + 0 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1.2599999904632568 + 0 + 0 + 1 + + glow + + 10.199999809265137 + 0.0010000000474974513 + -1.3999999761581421 + 1 + + haze_density + + 1.0099999904632568 + 0 + 0 + 1 + + haze_horizon + + 0.5 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0 + 0 + 1 + 0 + + max_y + + 493 + 0 + 0 + 1 + + preset_num + 22 + star_brightness + 0 + sun_angle + 0 + sunlight_color + + 1.5299999713897705 + 1.5299999713897705 + 1.5299999713897705 + 0.50999999046325684 + + + diff --git a/indra/newview/app_settings/windlight/skies/Sunrise.xml b/indra/newview/app_settings/windlight/skies/Sunrise.xml new file mode 100644 index 000000000..bbc7aeec5 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Sunrise.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.80999994277954102 + 0.46289783716201782 + 0.62999993562698364 + 0.26999998092651367 + + blue_density + + 0.15793180465698242 + 0.43499568104743958 + 0.87000000476837158 + 0.87000000476837158 + + blue_horizon + + 0.20673196017742157 + 0.40988314151763916 + 0.47999998927116394 + 0.47999998927116394 + + cloud_color + + 0.22616604226328718 + 0.22616604226328718 + 0.22616604226328718 + 0.99997219085526012 + + cloud_pos_density1 + + 1.6884100437164307 + 0.52609699964523315 + 0.88000025272481253 + 1 + + cloud_pos_density2 + + 1.6884100437164307 + 0.52609699964523315 + 0.125 + 1 + + cloud_scale + + 0.41999998688697815 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013883861 + 10.010999679576344 + + cloud_shadow + + 0.26999998092651367 + 0 + 0 + 1 + + density_multiplier + + 0.00062000000616535544 + 0 + 0 + 1 + + distance_multiplier + + 2.6999279499073054 + 0 + 0 + 1 + + east_angle + 0 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1 + 0 + 0 + 1 + + glow + + 5.0009990693069994 + 0.0010000000474963411 + -0.48000101923815919 + 1 + + haze_density + + 0.53999996185302734 + 0 + 0 + 1 + + haze_horizon + + 0.15999999642372131 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0 + 0.094108223915100098 + 0.99556195735931396 + 0 + + max_y + + 563 + 0 + 0 + 1 + + preset_num + 22 + star_brightness + 0 + sun_angle + 0.094247691333293915 + sunlight_color + + 2.369999885559082 + 2.369999885559082 + 2.369999885559082 + 0.78999996185302734 + + + diff --git a/indra/newview/app_settings/windlight/skies/Sunset%20Pink%20%28Paulina%29.xml b/indra/newview/app_settings/windlight/skies/Sunset%20Pink%20%28Paulina%29.xml new file mode 100644 index 000000000..9b5b74f03 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Sunset%20Pink%20%28Paulina%29.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.65999996662139893 + 0.30564266443252563 + 0.31655827164649963 + 0.2199999988079071 + + blue_density + + 1.1599999666213989 + 0.59999996423721313 + 1.3199999332427979 + 1.3199999332427979 + + blue_horizon + + 0.71153849363327026 + 0.74000000953674316 + 0.74000000953674316 + 0.37000000476837158 + + cloud_color + + 0 + 0 + 0.0099999997764825821 + 0.0099999997764825821 + + cloud_pos_density1 + + 0.53999996185302734 + 0.50999999046325684 + 0.23999999463558197 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.059999998658895493 + 1 + + cloud_scale + + 0.15999999642372131 + 0 + 0 + 1 + + cloud_scroll_rate + + 20 + 20 + + cloud_shadow + + 0.2199999988079071 + 0 + 0 + 1 + + density_multiplier + + 4.9999998736893758e-005 + 0 + 0 + 1 + + distance_multiplier + + 8.1000003814697266 + 0 + 0 + 1 + + east_angle + 3.5185837745666504 + enable_cloud_scroll + + 0 + 0 + + gamma + + 0.61000001430511475 + 0 + 0 + 1 + + glow + + 0.59999942779541016 + 0.0010000000474974513 + -0.59999996423721313 + 1 + + haze_density + + 1.8600000143051147 + 0 + 0 + 1 + + haze_horizon + + 0.76999998092651367 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + -0.36805915832519531 + 0.01884840801358223 + 0.92961132526397705 + 0 + + max_y + + 2443 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 1.8600000143051147 + sun_angle + 3.1227431297302246 + sunlight_color + + 1.1999999284744263 + 0.7486223578453064 + 0.39302670955657959 + 1.1999999284744263 + + + diff --git a/indra/newview/app_settings/windlight/skies/Sunset.xml b/indra/newview/app_settings/windlight/skies/Sunset.xml new file mode 100644 index 000000000..ebf08e1a3 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Sunset.xml @@ -0,0 +1,142 @@ + + + ambient + + 1.0199999809265137 + 0.80999994277954102 + 0.80999994277954102 + 1.0199999809265137 + + blue_density + + 0.14522500336170197 + 0.39999699592590332 + 0.80000197887420654 + 1 + + blue_horizon + + 0.10767599940299988 + 0.21348699927330017 + 0.25 + 1 + + cloud_color + + 0.22615399956703186 + 0.22615399956703186 + 0.22615399956703186 + 1 + + cloud_pos_density1 + + 1.6884100437164307 + 0.52609699964523315 + 0.87999999523162842 + 1 + + cloud_pos_density2 + + 1.6884100437164307 + 0.52609699964523315 + 0.125 + 1 + + cloud_scale + + 0.41999998688697815 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.26999998092651367 + 0 + 0 + 1 + + density_multiplier + + 0.00046000001020729542 + 0 + 0 + 1 + + distance_multiplier + + 1 + 0 + 0 + 1 + + east_angle + 0 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1 + 0 + 0 + 1 + + glow + + 5 + 0.0010000000474974513 + -0.47999998927116394 + 1 + + haze_density + + 0.69999998807907104 + 0 + 0 + 1 + + haze_horizon + + 0.15999999642372131 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0 + 0.07532646507024765 + -0.99715894460678101 + 0 + + max_y + + 562.5 + 0 + 0 + 1 + + preset_num + 22 + star_brightness + 0 + sun_angle + 3.0661947727203369 + sunlight_color + + 2.8385701179504395 + 2.8385701179504395 + 2.8385701179504395 + 1 + + + + diff --git a/indra/newview/app_settings/windlight/skies/Surreal%20%2D%20Brazil%20%28Paulina%29.xml b/indra/newview/app_settings/windlight/skies/Surreal%20%2D%20Brazil%20%28Paulina%29.xml new file mode 100644 index 000000000..97044da7b --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Surreal%20%2D%20Brazil%20%28Paulina%29.xml @@ -0,0 +1,141 @@ + + + ambient + + 1.5 + 2.2799999713897705 + 0.93000000715255737 + 2.2799999713897705 + + blue_density + + 1.2799999713897705 + 1.2999999523162842 + 1.3999999761581421 + 1.3999999761581421 + + blue_horizon + + 1 + 1.1200000047683716 + 0.068059712648391724 + 1.1200000047683716 + + cloud_color + + 0.52756190160579308 + 0.52756190160579308 + 0.52756190160579308 + 1 + + cloud_pos_density1 + + 0.72999995946884155 + 0.34000000357627869 + 0.32999998331069946 + 1 + + cloud_pos_density2 + + 0.28999999165534973 + 0.84999996423721313 + 0.019999999552965164 + 1 + + cloud_scale + + 0.32999998058761548 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.499399946934318 + 10.010999746491507 + + cloud_shadow + + 0.34999999403953552 + 0 + 0 + 1 + + density_multiplier + + 5.999999848427251e-005 + 0 + 0 + 1 + + distance_multiplier + + 12.800000190734863 + 0 + 0 + 1 + + east_angle + 3.8327431678771973 + enable_cloud_scroll + + 0 + 0 + + gamma + + 0.14000000059604645 + 0 + 0 + 1 + + glow + + 10 + 0.0010000000474974513 + -1.0499999523162842 + 1 + + haze_density + + 0.18999999761581421 + 0 + 0 + 1 + + haze_horizon + + 0.5899999737739563 + 0.19915598630905151 + 0.19915598630905151 + 1 + + lightnorm + + -0.60370332002639771 + 0.32094338536262512 + 0.72975176572799683 + 0 + + max_y + + 537 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 1.2200000286102295 + sun_angle + 2.8148672580718994 + sunlight_color + + 3 + 2.3461534976959229 + 3 + 1 + + + diff --git a/indra/newview/app_settings/windlight/skies/Surreal%20%2D%20Fire%20%28Paulina%29.xml b/indra/newview/app_settings/windlight/skies/Surreal%20%2D%20Fire%20%28Paulina%29.xml new file mode 100644 index 000000000..5519f5ec9 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Surreal%20%2D%20Fire%20%28Paulina%29.xml @@ -0,0 +1,141 @@ + + + ambient + + 3 + 3 + 3 + 3 + + blue_density + + 0.89999997615814209 + 0 + 0.41999998688697815 + 0.89999997615814209 + + blue_horizon + + 1.4800000190734863 + 1.6799999475479126 + 2 + 2 + + cloud_color + + 0.52756190160579308 + 0.52756190160579308 + 0.52756190160579308 + 1 + + cloud_pos_density1 + + 0.72999995946884155 + 0.34000000357627869 + 0.32999998331069946 + 1 + + cloud_pos_density2 + + 0.28999999165534973 + 0.84999996423721313 + 0.019999999552965164 + 1 + + cloud_scale + + 0.32999998058761548 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.499399946934318 + 10.010999746491507 + + cloud_shadow + + 0.28999999165534973 + 0 + 0 + 1 + + density_multiplier + + 0.00020999999833293259 + 0 + 0 + 1 + + distance_multiplier + + 8.1000003814697266 + 0 + 0 + 1 + + east_angle + 3.2044246196746826 + enable_cloud_scroll + + 0 + 0 + + gamma + + 0.070000000298023224 + 0 + 0 + 1 + + glow + + 3.0000019073486328 + 0.0010000000474974513 + -1.0499999523162842 + 1 + + haze_density + + 2.8899998664855957 + 0 + 0 + 1 + + haze_horizon + + 0.62000000476837158 + 0.19915598630905151 + 0.19915598630905151 + 1 + + lightnorm + + 0.061363283544778824 + 0.21200713515281677 + -0.97533971071243286 + 0 + + max_y + + 752 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 1.2200000286102295 + sun_angle + 0.21362832188606262 + sunlight_color + + 3 + 3 + 3 + 3 + + + diff --git a/indra/newview/app_settings/windlight/skies/Surreal%20%2D%20Flirt%20%28Paulina%29.xml b/indra/newview/app_settings/windlight/skies/Surreal%20%2D%20Flirt%20%28Paulina%29.xml new file mode 100644 index 000000000..70dd0d106 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Surreal%20%2D%20Flirt%20%28Paulina%29.xml @@ -0,0 +1,141 @@ + + + ambient + + 3 + 3 + 3 + 3 + + blue_density + + 1 + 0 + 0.41999998688697815 + 1 + + blue_horizon + + 1.4399999380111694 + 2 + 2 + 2 + + cloud_color + + 0.52756190160579308 + 0.52756190160579308 + 0.52756190160579308 + 1 + + cloud_pos_density1 + + 0.72999995946884155 + 0.34000000357627869 + 0.32999998331069946 + 1 + + cloud_pos_density2 + + 0.28999999165534973 + 0.84999996423721313 + 0.019999999552965164 + 1 + + cloud_scale + + 0.32999998058761548 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.499399946934318 + 10.010999746491507 + + cloud_shadow + + 0.28999999165534973 + 0 + 0 + 1 + + density_multiplier + + 0.0006399999838322401 + 0 + 0 + 1 + + distance_multiplier + + 5.4000000953674316 + 0 + 0 + 1 + + east_angle + 1.8221237659454346 + enable_cloud_scroll + + 0 + 0 + + gamma + + 0.070000000298023224 + 0 + 0 + 1 + + glow + + 2.2000002861022949 + 0.0010000000474974513 + -1.4499999284744263 + 1 + + haze_density + + 2.8899998664855957 + 0 + 0 + 1 + + haze_horizon + + 0.62000000476837158 + 0.19915598630905151 + 0.19915598630905151 + 1 + + lightnorm + + -0.96764647960662842 + 0.043968122452497482 + -0.2484494149684906 + 0 + + max_y + + 27 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 2 + sun_angle + 0.043982300907373428 + sunlight_color + + 3 + 3 + 3 + 1 + + + diff --git a/indra/newview/app_settings/windlight/skies/Surreal%20%2D%20Night%20%28Paulina%29.xml b/indra/newview/app_settings/windlight/skies/Surreal%20%2D%20Night%20%28Paulina%29.xml new file mode 100644 index 000000000..80ee99ef6 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Surreal%20%2D%20Night%20%28Paulina%29.xml @@ -0,0 +1,141 @@ + + + ambient + + 3 + 3 + 3 + 3 + + blue_density + + 1 + 0 + 0.41999998688697815 + 1 + + blue_horizon + + 1.4800000190734863 + 1.6799999475479126 + 2 + 2 + + cloud_color + + 0.52756190160579308 + 0.52756190160579308 + 0.52756190160579308 + 1 + + cloud_pos_density1 + + 0.72999995946884155 + 0.34000000357627869 + 0.32999998331069946 + 1 + + cloud_pos_density2 + + 0.28999999165534973 + 0.84999996423721313 + 0.019999999552965164 + 1 + + cloud_scale + + 0.32999998058761548 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.499399946934318 + 10.010999746491507 + + cloud_shadow + + 0.28999999165534973 + 0 + 0 + 1 + + density_multiplier + + 0 + 0 + 0 + 1 + + distance_multiplier + + 22.30000114440918 + 0 + 0 + 1 + + east_angle + 1.8221237659454346 + enable_cloud_scroll + + 0 + 0 + + gamma + + 0.070000000298023224 + 0 + 0 + 1 + + glow + + 3.0000019073486328 + 0.0010000000474974513 + -1.0499999523162842 + 1 + + haze_density + + 2.8899998664855957 + 0 + 0 + 1 + + haze_horizon + + 0.62000000476837158 + 0.19915598630905151 + 0.19915598630905151 + 1 + + lightnorm + + -0.96764647960662842 + 0.043968122452497482 + -0.2484494149684906 + 0 + + max_y + + 1289 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 1.2200000286102295 + sun_angle + 0.043982300907373428 + sunlight_color + + 3 + 3 + 3 + 1 + + + diff --git a/indra/newview/app_settings/windlight/skies/Surreal%20%2D%20Summer%20%28Paulina%29.xml b/indra/newview/app_settings/windlight/skies/Surreal%20%2D%20Summer%20%28Paulina%29.xml new file mode 100644 index 000000000..6929904cc --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/Surreal%20%2D%20Summer%20%28Paulina%29.xml @@ -0,0 +1,141 @@ + + + ambient + + 1.5 + 2.2799999713897705 + 0.93000000715255737 + 2.2799999713897705 + + blue_density + + 1.4800000190734863 + 1.4399999380111694 + 2 + 2 + + blue_horizon + + 1.2400000095367432 + 1.1399999856948853 + 0.71999996900558472 + 1.2799999713897705 + + cloud_color + + 0.2199999988079071 + 0.23999999463558197 + 0.68999999761581421 + 0.68999999761581421 + + cloud_pos_density1 + + 0.72999995946884155 + 0.34000000357627869 + 0.32999998331069946 + 1 + + cloud_pos_density2 + + 0.28999999165534973 + 0.84999996423721313 + 0.019999999552965164 + 1 + + cloud_scale + + 0.42999997735023499 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.499399946934318 + 10.010999746491507 + + cloud_shadow + + 0.65999996662139893 + 0 + 0 + 1 + + density_multiplier + + 1.9999999494757503e-005 + 0 + 0 + 1 + + distance_multiplier + + 15.5 + 0 + 0 + 1 + + east_angle + 4.1469020843505859 + enable_cloud_scroll + + 0 + 0 + + gamma + + 0.14000000059604645 + 0 + 0 + 1 + + glow + + 10 + 0.0010000000474974513 + -1.0499999523162842 + 1 + + haze_density + + 1.6999999284744263 + 0 + 0 + 1 + + haze_horizon + + 0.52999997138977051 + 0.19915598630905151 + 0.19915598630905151 + 1 + + lightnorm + + -0.82513469457626343 + 0.21200692653656006 + 0.52364665269851685 + 1 + + max_y + + 456 + 0 + 0 + 1 + + preset_num + 18 + star_brightness + 1.2200000286102295 + sun_angle + 6.0695571899414062 + sunlight_color + + 3 + 1.3499999046325684 + 3 + 3 + + + diff --git a/indra/newview/app_settings/windlight/skies/names.txt b/indra/newview/app_settings/windlight/skies/names.txt new file mode 100644 index 000000000..2d80cde58 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/names.txt @@ -0,0 +1,77 @@ +- Orac - Black fog 1 +- Orac - Black fog 2 +- Orac - Drawing blue +- Orac - Drawing extreme +- Orac - Drawing green +- Orac - Drawing red +- Orac - Drawing underground comic +- Orac - fog +- Orac - gray +- Orac - green +AnaLu - outdoor city night +AnaLutetia - AvatarOpt(2) +AnaLutetia - AvatarOpt2 whiter +AnaLutetia - outdoor +AnaLutetia - Studio Light +AnaLutetia - STUDIO2 +AnaLutetia - STUDIO3 +AnaLutetia-default +AnaLutetia-outdoor2(2) +AnaLutetia +B5-ShadowDancing +CB'%s %Rouge 1 +CB'%s %Rouge 2 +CB'%s %Rouge 3 +CB'%s %Rouge 4 +CB'%s %Rouge 5 +CB'%s %Rouge 6 +Fairy blue (Paulina) +Fairy dark blue (Paulina) +Fairy light pink (Paulina) +Fairy warm pinks (Paulina) +PaperSnow +Places Abracadabra +Places Abracadabra2 +Places Abracadabra3 +Places alirium +Places Annamaria +Places Astryls Wild +Places Babbage +Places Beach Cay Surreal +Places Beach Cay +Places Bentham +Places Cornfield +Places Cromac +Places Crucible +Places District8 +Places Duskwood +Places Eridu +Places Erie +Places Eugene 2 +Places Eugene BL +Places Greed +Places Greed2 +Places Imagine +Places Kingsport +Places Kunming +Places Las Legunas +Places Legacies +Places Midian +Places Mother +Places Old New York +Places Paris 2 +Places Paris +Places Pathfinder +Places Sand +Places Terre Des Mortes +Places Urbania +Places Wiccan +Places-Embryo +StrawberrySingh.com - Closeups +Sunset Pink (Paulina) +Surreal - Brazil (Paulina) +Surreal - Fire (Paulina) +Surreal - Flirt (Paulina) +Surreal - Night (Paulina) +Surreal - Summer (Paulina) +wastelands \ No newline at end of file diff --git a/indra/newview/app_settings/windlight/skies/wastelands.xml b/indra/newview/app_settings/windlight/skies/wastelands.xml new file mode 100644 index 000000000..ffb22cf37 --- /dev/null +++ b/indra/newview/app_settings/windlight/skies/wastelands.xml @@ -0,0 +1,141 @@ + + + ambient + + 0.29999998211860657 + 0.17999999225139618 + 0 + 0.29999998211860657 + + blue_density + + 0.97999995946884155 + 0.97999995946884155 + 0.97999995946884155 + 0.48999997973442078 + + blue_horizon + + 0.31999999284744263 + 0.31999999284744263 + 0.31999999284744263 + 0.15999999642372131 + + cloud_color + + 0.50999999046325684 + 0.50999999046325684 + 0.50999999046325684 + 1 + + cloud_pos_density1 + + 0.5 + 0.5 + 1 + 1 + + cloud_pos_density2 + + 0.5 + 0.5 + 0.125 + 1 + + cloud_scale + + 0.079999998211860657 + 0 + 0 + 1 + + cloud_scroll_rate + + 10.49940013885498 + 10.01099967956543 + + cloud_shadow + + 0.25999999046325684 + 0 + 0 + 1 + + density_multiplier + + 0.00031000000308267772 + 0 + 0 + 1 + + distance_multiplier + + 6.8000001907348633 + 0 + 0 + 1 + + east_angle + 0 + enable_cloud_scroll + + 1 + 1 + + gamma + + 1 + 0 + 0 + 1 + + glow + + 5 + 0.0010000000474974513 + -0.33000001311302185 + 1 + + haze_density + + 1.8899999856948853 + 0 + 0 + 1 + + haze_horizon + + 0.23999999463558197 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0 + 0.36227512359619141 + -0.93207120895385742 + 0 + + max_y + + 752 + 0 + 0 + 1 + + preset_num + 21 + star_brightness + 0 + sun_angle + 2.7708849906921387 + sunlight_color + + 1.3799998760223389 + 1.3799998760223389 + 1.3799998760223389 + 0.45999997854232788 + + + \ No newline at end of file diff --git a/indra/newview/linux_tools/wrapper.sh b/indra/newview/linux_tools/wrapper.sh index 34cb59877..64f14a7c8 100755 --- a/indra/newview/linux_tools/wrapper.sh +++ b/indra/newview/linux_tools/wrapper.sh @@ -116,10 +116,13 @@ fi export VIEWER_BINARY='singularity-do-not-run-directly' BINARY_TYPE=$(expr match "$(file -b bin/$VIEWER_BINARY)" '\(.*executable\)') +QPP=qt4/plugins/imageformats/ if [ "${BINARY_TYPE}" == "ELF 64-bit LSB executable" ]; then - export SL_ENV='LD_LIBRARY_PATH="`pwd`"/lib64:"`pwd`"/lib32:"${LD_LIBRARY_PATH}"' + QTPLUGINS=/usr/lib64/$QPP:/lib64/$QPP:/usr/local/lib64/$QPP + export SL_ENV='LD_LIBRARY_PATH="`pwd`"/lib64:"`pwd`"/lib32:$QTPLUGINS:"${LD_LIBRARY_PATH}"' else - export SL_ENV='LD_LIBRARY_PATH="`pwd`"/lib:"${LD_LIBRARY_PATH}"' + QTPLUGINS=/usr/lib/$QPP:/lib/$QPP:/usr/local/lib/$QPP + export SL_ENV='LD_LIBRARY_PATH="`pwd`"/lib:$QTPLUGINS:"${LD_LIBRARY_PATH}"' fi export SL_CMD='$LL_WRAPPER bin/$VIEWER_BINARY' diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 5d733fd8b..1bacedada 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -3582,7 +3582,7 @@ void LLAgent::teleportViaLocation(const LLVector3d& pos_global) (F32)(pos_global.mdV[VY] - region_origin.mdV[VY]), (F32)(pos_global.mdV[VZ])); pos_local += offset; - teleportRequest(handle, pos_local); + teleportRequest(info->getHandle(), pos_local); } else if(regionp && teleportCore(regionp->getHandle() == to_region_handle_global((F32)pos_global.mdV[VX], (F32)pos_global.mdV[VY]))) @@ -3631,6 +3631,10 @@ void LLAgent::teleportViaLocationLookAt(const LLVector3d& pos_global) mbTeleportKeepsLookAt = true; gAgentCamera.setFocusOnAvatar(FALSE, ANIMATE); // detach camera form avatar, so it keeps direction U64 region_handle = to_region_handle(pos_global); + LLSimInfo* simInfo = LLWorldMap::instance().simInfoFromHandle(region_handle); + if(simInfo) + region_handle = simInfo->getHandle(); + LLVector3 pos_local = (LLVector3)(pos_global - from_region_handle(region_handle)); teleportRequest(region_handle, pos_local, getTeleportKeepsLookAt()); } diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index 5637e0716..886348d1a 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -523,6 +523,13 @@ BOOL LLAgentWearables::isWearableCopyable(LLWearableType::EType type) const return FALSE; } +BOOL LLAgentWearables::areWearablesLoaded() const +{ + if(gSavedSettings.getBOOL("RenderUnloadedAvatar")) + return TRUE; + return mWearablesLoaded; +} + U32 LLAgentWearables::getWearablePermMask(LLWearableType::EType type) const { LLUUID item_id = getWearableItemID(type); diff --git a/indra/newview/llagentwearables.h b/indra/newview/llagentwearables.h index 75fb03b0a..70f9b0969 100644 --- a/indra/newview/llagentwearables.h +++ b/indra/newview/llagentwearables.h @@ -82,7 +82,7 @@ public: BOOL isWearableModifiable(const LLUUID& item_id) const; BOOL isWearableCopyable(LLWearableType::EType type) const; - BOOL areWearablesLoaded() const { return mWearablesLoaded; }; + BOOL areWearablesLoaded() const; void updateWearablesLoaded(); //void checkWearablesLoaded() const; //bool canMoveWearable(const LLUUID& item_id, bool closer_to_body); diff --git a/indra/newview/llappviewerlinux_api_dbus.cpp b/indra/newview/llappviewerlinux_api_dbus.cpp index ee160d015..b475eeedb 100644 --- a/indra/newview/llappviewerlinux_api_dbus.cpp +++ b/indra/newview/llappviewerlinux_api_dbus.cpp @@ -32,6 +32,11 @@ #if LL_DBUS_ENABLED +#ifdef LL_STANDALONE +#include +#include +#endif + #include "linden_common.h" extern "C" { @@ -71,9 +76,17 @@ bool grab_dbus_syms(std::string dbus_dso_name) //attempt to load the shared library apr_pool_create(&sSymDBUSDSOMemoryPool, NULL); +#ifdef LL_STANDALONE + void *dso_handle = dlopen(dbus_dso_name.c_str(), RTLD_NOW | RTLD_GLOBAL); + rv = (!dso_handle)?APR_EDSOOPEN:apr_os_dso_handle_put(&sSymDBUSDSOHandle, + dso_handle, sSymDBUSDSOMemoryPool); + + if ( APR_SUCCESS == rv ) +#else if ( APR_SUCCESS == (rv = apr_dso_load(&sSymDBUSDSOHandle, dbus_dso_name.c_str(), sSymDBUSDSOMemoryPool) )) +#endif { INFOMSG("Found DSO: %s", dbus_dso_name.c_str()); diff --git a/indra/newview/llfloateravatartextures.cpp b/indra/newview/llfloateravatartextures.cpp index 5f656bae2..70f79f3c5 100644 --- a/indra/newview/llfloateravatartextures.cpp +++ b/indra/newview/llfloateravatartextures.cpp @@ -165,9 +165,7 @@ void LLFloaterAvatarTextures::refresh() // static void LLFloaterAvatarTextures::onClickDump(void* data) { -// -//#if !LL_RELEASE_FOR_DOWNLOAD -// +#if !LL_RELEASE_FOR_DOWNLOAD LLFloaterAvatarTextures* self = (LLFloaterAvatarTextures*)data; LLVOAvatar* avatarp = find_avatar(self->mID); if (!avatarp) return; @@ -179,7 +177,5 @@ void LLFloaterAvatarTextures::onClickDump(void* data) llinfos << "Avatar TE " << i << " id " << te->getID() << llendl; } -// -//#endif -// +#endif } diff --git a/indra/newview/llfloaterchat.cpp b/indra/newview/llfloaterchat.cpp index b3693c5de..bfc046b7a 100644 --- a/indra/newview/llfloaterchat.cpp +++ b/indra/newview/llfloaterchat.cpp @@ -609,11 +609,14 @@ LLColor4 get_text_color(const LLChat& chat) static const LLCachedControl mKeywordsChangeColor(gSavedPerAccountSettings, "KeywordsChangeColor", false); static const LLCachedControl mKeywordsColor(gSavedPerAccountSettings, "KeywordsColor", LLColor4(1.f, 1.f, 1.f, 1.f)); - if (gAgent.getID() != chat.mFromID) + if ((gAgent.getID() != chat.mFromID) && (chat.mSourceType != CHAT_SOURCE_SYSTEM)) { if (mKeywordsChangeColor) { - if (AscentKeyword::hasKeyword(chat.mText, 1)) + std::string shortmsg(chat.mText); + shortmsg.erase(0, chat.mFromName.length()); + + if (AscentKeyword::hasKeyword(shortmsg, 1)) { text_color = mKeywordsColor; } diff --git a/indra/newview/llfloatercustomize.cpp b/indra/newview/llfloatercustomize.cpp index a6b60a7cf..5e6f8f1a5 100644 --- a/indra/newview/llfloatercustomize.cpp +++ b/indra/newview/llfloatercustomize.cpp @@ -2694,7 +2694,7 @@ void LLFloaterCustomize::generateVisualParamHints(LLViewerJointMesh* joint_mesh, void LLFloaterCustomize::setWearable(LLWearableType::EType type, LLWearable* wearable, U32 perm_mask, BOOL is_complete) { - llassert( type < WT_COUNT ); + llassert( type < LLWearableType::WT_COUNT ); gSavedSettings.setU32("AvatarSex", (gAgentAvatarp->getSex() == SEX_MALE) ); LLPanelEditWearable* panel = mWearablePanelList[ type ]; diff --git a/indra/newview/llfloatersearchreplace.cpp b/indra/newview/llfloatersearchreplace.cpp new file mode 100644 index 000000000..a339a54a8 --- /dev/null +++ b/indra/newview/llfloatersearchreplace.cpp @@ -0,0 +1,114 @@ +#include "llviewerprecompiledheaders.h" +#include "llcheckboxctrl.h" +#include "llfocusmgr.h" +#include "lluictrlfactory.h" + +#include "llfloatersearchreplace.h" + +const S32 SEARCH_REPLACE_WIDTH = 300; +const S32 SEARCH_REPLACE_HEIGHT = 120; +const std::string SEARCH_REPLACE_TITLE = "Search and Replace"; + +LLFloaterSearchReplace* LLFloaterSearchReplace::sInstance = NULL; + +LLFloaterSearchReplace::LLFloaterSearchReplace() : mEditor(NULL), + LLFloater(std::string("searchreplace"), LLRect(0, 0, SEARCH_REPLACE_WIDTH, SEARCH_REPLACE_HEIGHT), SEARCH_REPLACE_TITLE) +{ + LLUICtrlFactory::getInstance()->buildFloater(this, "floater_search_replace.xml"); +} + +LLFloaterSearchReplace::~LLFloaterSearchReplace() +{ + sInstance = NULL; +} + +void LLFloaterSearchReplace::open() +{ + LLFloater::open(); + + if (mEditor) + { + bool fReadOnly = mEditor->isReadOnly(); + childSetEnabled("replace_label", !fReadOnly); + childSetEnabled("replace_text", !fReadOnly); + childSetEnabled("replace_btn", !fReadOnly); + childSetEnabled("replace_all_btn", !fReadOnly); + } + + childSetFocus("search_text", TRUE); +} + +BOOL LLFloaterSearchReplace::postBuild() +{ + childSetAction("search_btn", onBtnSearch, this); + childSetAction("replace_btn", onBtnReplace, this); + childSetAction("replace_all_btn", onBtnReplaceAll, this); + + setDefaultBtn("search_btn"); + + return TRUE; +} + +void LLFloaterSearchReplace::show(LLTextEditor* editor) +{ + if (!sInstance) + { + sInstance = new LLFloaterSearchReplace(); + } + + if ( (sInstance) && (editor) ) + { + sInstance->mEditor = editor; + + LLFloater* newdependee, *olddependee = sInstance->getDependee(); + LLView* viewp = editor->getParent(); + while (viewp) + { + newdependee = dynamic_cast(viewp); + if (newdependee) + { + if (newdependee != olddependee) + { + if (olddependee) + olddependee->removeDependentFloater(sInstance); + + if (!newdependee->getHost()) + newdependee->addDependentFloater(sInstance); + else + newdependee->getHost()->addDependentFloater(sInstance); + } + break; + } + viewp = viewp->getParent(); + } + + sInstance->open(); + } +} + +void LLFloaterSearchReplace::onBtnSearch(void* userdata) +{ + if ( (!sInstance) || (!sInstance->mEditor) || (!sInstance->getDependee()) ) + return; + + LLCheckBoxCtrl* caseChk = sInstance->getChild("case_text"); + sInstance->mEditor->selectNext(sInstance->childGetText("search_text"), caseChk->get()); +} + +void LLFloaterSearchReplace::onBtnReplace(void* userdata) +{ + if ( (!sInstance) || (!sInstance->mEditor) || (!sInstance->getDependee()) ) + return; + + LLCheckBoxCtrl* caseChk = sInstance->getChild("case_text"); + sInstance->mEditor->replaceText(sInstance->childGetText("search_text"), sInstance->childGetText("replace_text"), caseChk->get()); +} + +void LLFloaterSearchReplace::onBtnReplaceAll(void* userdata) +{ + if ( (!sInstance) || (!sInstance->mEditor) || (!sInstance->getDependee()) ) + return; + + LLCheckBoxCtrl* caseChk = sInstance->getChild("case_text"); + sInstance->mEditor->replaceTextAll(sInstance->childGetText("search_text"), sInstance->childGetText("replace_text"), caseChk->get()); +} diff --git a/indra/newview/llfloatersearchreplace.h b/indra/newview/llfloatersearchreplace.h new file mode 100644 index 000000000..9dcd0352b --- /dev/null +++ b/indra/newview/llfloatersearchreplace.h @@ -0,0 +1,32 @@ +#ifndef LL_LLFLOATERSEARCHREPLACE_H +#define LL_LLFLOATERSEARCHREPLACE_H + +#include "llfloater.h" +#include "lltexteditor.h" + +class LLFloaterSearchReplace : public LLFloater +{ +private: + LLFloaterSearchReplace(); + virtual ~LLFloaterSearchReplace(); + +public: + virtual void open(); + virtual BOOL postBuild(); + +public: + static void show(LLTextEditor* editor); + + static void onBtnSearch(void* userdata); + static void onBtnReplace(void* userdata); + static void onBtnReplaceAll(void* userdata); + + static LLFloaterSearchReplace* getInstance() { return sInstance; } + +private: + LLTextEditor* mEditor; + + static LLFloaterSearchReplace* sInstance; +}; + +#endif // LL_LLFLOATERSEARCHREPLACE_H diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp index 0a9b5dd1d..66fdaa4c4 100644 --- a/indra/newview/llfloatertools.cpp +++ b/indra/newview/llfloatertools.cpp @@ -87,6 +87,8 @@ #include "qtoolalign.h" //Thank Qarl! +#include "llvograss.h" +#include "llvotree.h" // Globals LLFloaterTools *gFloaterTools = NULL; @@ -295,6 +297,8 @@ BOOL LLFloaterTools::postBuild() llwarns << "Tool button not found! DOA Pending." << llendl; } } + mComboTreesGrass = getChild("trees_grass"); + childSetCommitCallback("trees_grass", onSelectTreesGrass, (void*)0); mCheckCopySelection = getChild("checkbox copy selection"); childSetValue("checkbox copy selection",(BOOL)gSavedSettings.getBOOL("CreateToolCopySelection")); mCheckSticky = getChild("checkbox sticky"); @@ -392,6 +396,7 @@ LLFloaterTools::LLFloaterTools() mBtnDuplicate(NULL), mBtnDuplicateInPlace(NULL), + mComboTreesGrass(NULL), mCheckSticky(NULL), mCheckCopySelection(NULL), mCheckCopyCenters(NULL), @@ -721,6 +726,8 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask) mBtnCreate ->setToggleState( tool == LLToolCompCreate::getInstance() ); + updateTreeGrassCombo(create_visible); + if (mCheckCopySelection && mCheckCopySelection->get()) { @@ -1058,3 +1065,77 @@ void LLFloaterTools::onFocusReceived() LLToolMgr::getInstance()->setCurrentToolset(gBasicToolset); LLFloater::onFocusReceived(); } + +// static +void LLFloaterTools::onSelectTreesGrass(LLUICtrl*, void*) +{ + const std::string &selected = gFloaterTools->mComboTreesGrass->getValue(); + LLPCode pcode = LLToolPlacer::getObjectType(); + if (pcode == LLToolPlacerPanel::sTree) + { + gSavedSettings.setString("LastTree", selected); + } + else if (pcode == LLToolPlacerPanel::sGrass) + { + gSavedSettings.setString("LastGrass", selected); + } +} + +void LLFloaterTools::updateTreeGrassCombo(bool visible) +{ + LLTextBox* tree_grass_label = getChild("tree_grass_label"); + if (visible) + { + LLPCode pcode = LLToolPlacer::getObjectType(); + std::map::iterator it, end; + std::string selected; + if (pcode == LLToolPlacerPanel::sTree) + { + tree_grass_label->setVisible(visible); + LLButton* button = getChild("ToolTree"); + tree_grass_label->setText(button->getToolTip()); + + selected = gSavedSettings.getString("LastTree"); + it = LLVOTree::sSpeciesNames.begin(); + end = LLVOTree::sSpeciesNames.end(); + } + else if (pcode == LLToolPlacerPanel::sGrass) + { + tree_grass_label->setVisible(visible); + LLButton* button = getChild("ToolGrass"); + tree_grass_label->setText(button->getToolTip()); + + selected = gSavedSettings.getString("LastGrass"); + it = LLVOGrass::sSpeciesNames.begin(); + end = LLVOGrass::sSpeciesNames.end(); + } + else + { + mComboTreesGrass->removeall(); + mComboTreesGrass->setLabel(LLStringExplicit("")); // LLComboBox::removeall() does not clear the label + mComboTreesGrass->setEnabled(false); + mComboTreesGrass->setVisible(false); + tree_grass_label->setVisible(false); + return; + } + + mComboTreesGrass->removeall(); + mComboTreesGrass->add("Random"); + + int select = 0, i = 0; + + while (it != end) + { + const std::string &species = it->first; + mComboTreesGrass->add(species); ++i; + if (species == selected) select = i; + ++it; + } + // if saved species not found, default to "Random" + mComboTreesGrass->selectNthItem(select); + mComboTreesGrass->setEnabled(true); + } + + mComboTreesGrass->setVisible(visible); + tree_grass_label->setVisible(visible); +} diff --git a/indra/newview/llfloatertools.h b/indra/newview/llfloatertools.h index 85308315f..a06e2728c 100644 --- a/indra/newview/llfloatertools.h +++ b/indra/newview/llfloatertools.h @@ -155,6 +155,7 @@ public: LLButton *mBtnDuplicateInPlace; // Create buttons + LLComboBox *mComboTreesGrass; LLCheckBoxCtrl *mCheckSticky; LLCheckBoxCtrl *mCheckCopySelection; LLCheckBoxCtrl *mCheckCopyCenters; @@ -194,6 +195,9 @@ private: BOOL mDirty; std::map mStatusText; + + void updateTreeGrassCombo(bool visible); + static void onSelectTreesGrass(LLUICtrl*, void*); }; extern LLFloaterTools *gFloaterTools; diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp index e6b463d6f..fb66019d8 100644 --- a/indra/newview/llfloaterworldmap.cpp +++ b/indra/newview/llfloaterworldmap.cpp @@ -651,10 +651,11 @@ void LLFloaterWorldMap::trackLocation(const LLVector3d& pos_global) return; } - std::string sim_name; - LLWorldMap::getInstance()->simNameFromPosGlobal( pos_global, sim_name ); - F32 region_x = (F32)fmod( pos_global.mdV[VX], (F64)REGION_WIDTH_METERS ); - F32 region_y = (F32)fmod( pos_global.mdV[VY], (F64)REGION_WIDTH_METERS ); + std::string sim_name = sim_info->getName(); + U32 locX, locY; + from_region_handle(sim_info->getHandle(), &locX, &locY); + F32 region_x = pos_global.mdV[VX] - locX; + F32 region_y = pos_global.mdV[VY] - locY; std::string full_name = llformat("%s (%d, %d, %d)", // sim_name.c_str(), // [RLVa:KB] - Alternate: Snowglobe-1.2.4 | Checked: 2009-07-04 (RLVa-1.0.0a) diff --git a/indra/newview/llhudicon.cpp b/indra/newview/llhudicon.cpp index 9da28a2de..6b9ad6a17 100644 --- a/indra/newview/llhudicon.cpp +++ b/indra/newview/llhudicon.cpp @@ -213,7 +213,7 @@ BOOL LLHUDIcon::lineSegmentIntersect(const LLVector3& start, const LLVector3& en if (mHidden) return FALSE; - if (mSourceObject.isNull() || mImagep.isNull()) + if (mSourceObject.isNull() || mImagep.isNull() || mSourceObject->mDrawable.isNull()) { markDead(); return FALSE; diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 65f3ba72a..4cfe6fa91 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -200,6 +200,7 @@ std::string ICON_NAME[ICON_NAME_COUNT] = "inv_link_item.tga", "inv_link_folder.tga" + "inv_item_mesh.png" }; struct LLWearInfo @@ -1119,6 +1120,13 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, // Only should happen for broken links. new_listener = new LLLinkItemBridge(inventory, uuid); break; + case LLAssetType::AT_MESH: + if(!(inv_type == LLInventoryType::IT_MESH)) + { + llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << LLInventoryType::lookupHumanReadable(inv_type) << " on uuid " << uuid << llendl; + } + new_listener = new LLMeshBridge(inventory, uuid); + break; default: llinfos << "Unhandled asset type (llassetstorage.h): " << (S32)asset_type << llendl; @@ -5707,3 +5715,59 @@ const LLUUID &LLLinkFolderBridge::getFolderID() const return LLUUID::null; } +// +=================================================+ +// | LLMeshBridge | +// +=================================================+ + +LLUIImagePtr LLMeshBridge::getIcon() const +{ + return get_item_icon(LLAssetType::AT_TEXTURE, LLInventoryType::IT_TEXTURE, 0, FALSE); +} + +void LLMeshBridge::openItem() +{ + LLViewerInventoryItem* item = getItem(); + + if (item) + { + // open mesh + } +} + +void LLMeshBridge::previewItem() +{ + LLViewerInventoryItem* item = getItem(); + if(item) + { + // preview mesh + } +} + + +void LLMeshBridge::buildContextMenu(LLMenuGL& menu, U32 flags) +{ + lldebugs << "LLMeshBridge::buildContextMenu()" << llendl; + std::vector items; + std::vector disabled_items; + + if(isItemInTrash()) + { + items.push_back(std::string("Purge Item")); + if (!isItemRemovable()) + { + disabled_items.push_back(std::string("Purge Item")); + } + + items.push_back(std::string("Restore Item")); + } + else + { + items.push_back(std::string("Properties")); + + getClipboardEntries(true, items, disabled_items, flags); + } + + + hide_context_entries(menu, items, disabled_items); +} + diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h index af74e9091..5b385f538 100644 --- a/indra/newview/llinventorybridge.h +++ b/indra/newview/llinventorybridge.h @@ -85,6 +85,7 @@ enum EInventoryIcon LINKITEM_ICON_NAME, LINKFOLDER_ICON_NAME, + MESH_ICON_NAME, ICON_NAME_COUNT }; @@ -646,6 +647,21 @@ protected: static std::string sPrefix; }; +class LLMeshBridge : public LLItemBridge +{ + friend class LLInvFVBridge; +public: + virtual LLUIImagePtr getIcon() const; + virtual void openItem(); + virtual void previewItem(); + virtual void buildContextMenu(LLMenuGL& menu, U32 flags); + +protected: + LLMeshBridge(LLInventoryPanel* inventory, + const LLUUID& uuid) : + LLItemBridge(inventory, uuid) {} +}; + void rez_attachment(LLViewerInventoryItem* item, LLViewerJointAttachment* attachment, bool replace = false); diff --git a/indra/newview/llinventoryview.cpp b/indra/newview/llinventoryview.cpp index ea8d1e0c6..8edef568b 100644 --- a/indra/newview/llinventoryview.cpp +++ b/indra/newview/llinventoryview.cpp @@ -588,6 +588,7 @@ BOOL LLInventoryView::postBuild() childSetAction("Inventory.ResetAll",onResetAll,this); childSetAction("Inventory.ExpandAll",onExpandAll,this); + childSetAction("collapse_btn", onCollapseAll, this); //panel->getFilter()->markDefault(); return TRUE; @@ -1354,6 +1355,19 @@ void LLInventoryView::onExpandAll(void* userdata) } +//static +void LLInventoryView::onCollapseAll(void* userdata) +{ + LLInventoryView* self = (LLInventoryView*) userdata; + self->mActivePanel = (LLInventoryPanel*)self->childGetVisibleTab("inventory filter tabs"); + + if (!self->mActivePanel) + { + return; + } + self->mActivePanel->closeAllFolders(); +} + //static void LLInventoryView::onFilterSelected(void* userdata, bool from_click) { @@ -1541,6 +1555,9 @@ std::string get_item_icon_name(LLAssetType::EType asset_type, case LLAssetType::AT_GESTURE: idx = GESTURE_ICON_NAME; break; + case LLAssetType::AT_MESH: + idx = MESH_ICON_NAME; + break; default: break; } diff --git a/indra/newview/llinventoryview.h b/indra/newview/llinventoryview.h index d9c8e4c07..492e79d33 100644 --- a/indra/newview/llinventoryview.h +++ b/indra/newview/llinventoryview.h @@ -282,6 +282,7 @@ public: static void onFilterSelected(void* userdata, bool from_click); static void onResetAll(void* userdata); static void onExpandAll(void* userdata); + static void onCollapseAll(void* userdata); static void onSelectionChange(const std::deque &items, BOOL user_action, void* data); const std::string getFilterSubString() { return mActivePanel->getFilterSubString(); } diff --git a/indra/newview/llmapresponders.cpp b/indra/newview/llmapresponders.cpp index ae0090e42..cf0769bce 100644 --- a/indra/newview/llmapresponders.cpp +++ b/indra/newview/llmapresponders.cpp @@ -120,6 +120,8 @@ void LLMapLayerResponder::result(const LLSD& result) S32 x_regions = map_block["X"]; S32 y_regions = map_block["Y"]; + S32 x_size = map_block["SizeX"]; + S32 y_size = map_block["SizeY"]; std::string name = map_block["Name"]; S32 access = map_block["Access"]; S32 region_flags = map_block["RegionFlags"]; @@ -165,6 +167,7 @@ void LLMapLayerResponder::result(const LLSD& result) siminfo->setRegionFlags( region_flags ); siminfo->setWaterHeight( (F32) water_height ); siminfo->setMapImageID( image_id, agent_flags ); + siminfo->setSize((U16)x_size, (U16)y_size); if (use_web_map_tiles) { siminfo->mCurrentImage = LLWorldMap::loadObjectsTile((U32)x_regions, (U32)y_regions); diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index 842ab3b97..8124e841d 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -966,6 +966,42 @@ void LLMediaCtrl::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event) LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_NAME_CHANGED" << LL_ENDL; }; break; + + case MEDIA_EVENT_NAVIGATE_ERROR_PAGE: + { + LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_NAVIGATE_ERROR_PAGE" << LL_ENDL; + }; + break; + + case MEDIA_EVENT_CLOSE_REQUEST: + { + LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CLOSE_REQUEST" << LL_ENDL; + }; + break; + + case MEDIA_EVENT_PICK_FILE_REQUEST: + { + LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_PICK_FILE_REQUEST" << LL_ENDL; + }; + break; + + case MEDIA_EVENT_GEOMETRY_CHANGE: + { + LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_GEOMETRY_CHANGE" << LL_ENDL; + }; + break; + + case MEDIA_EVENT_AUTH_REQUEST: + { + LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_AUTH_REQUEST" << LL_ENDL; + }; + break; + + case MEDIA_EVENT_LINK_HOVERED: + { + LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_LINK_HOVERED" << LL_ENDL; + }; + break; default: { diff --git a/indra/newview/llnetmap.cpp b/indra/newview/llnetmap.cpp index 02964a038..bc147fd7d 100644 --- a/indra/newview/llnetmap.cpp +++ b/indra/newview/llnetmap.cpp @@ -240,7 +240,6 @@ void LLNetMap::draw() } // figure out where agent is - S32 region_width = llround(LLWorld::getInstance()->getRegionWidthInMeters()); LLColor4 this_region_color = gColors.getColor( "NetMapThisRegion" ); LLColor4 live_region_color = gColors.getColor( "NetMapLiveRegion" ); LLColor4 dead_region_color = gColors.getColor( "NetMapDeadRegion" ); @@ -249,6 +248,7 @@ void LLNetMap::draw() iter != LLWorld::getInstance()->getRegionList().end(); ++iter) { LLViewerRegion* regionp = *iter; + S32 region_width = llround(regionp->getWidth()); // Find x and y position relative to camera's center. LLVector3 origin_agent = regionp->getOriginAgent(); LLVector3 rel_region_pos = origin_agent - gAgentCamera.getCameraPositionAgent(); @@ -328,8 +328,6 @@ void LLNetMap::draw() LLVector3 map_center_agent = gAgent.getPosAgentFromGlobal(mObjectImageCenterGlobal); map_center_agent -= gAgentCamera.getCameraPositionAgent(); - map_center_agent.mV[VX] *= mScale/region_width; - map_center_agent.mV[VY] *= mScale/region_width; gGL.getTexUnit(0)->bind(mObjectImagep); F32 image_half_width = 0.5f*mObjectMapPixels; @@ -685,7 +683,7 @@ BOOL LLNetMap::handleToolTip( S32 x, S32 y, std::string& msg, LLRect* sticky_rec // [/RLVa:KB] //msg.append( region->getName() ); -#ifndef LL_RELEASE_FOR_DOWNLOAD +//#ifndef LL_RELEASE_FOR_DOWNLOAD std::string buffer; msg.append("\n"); buffer = region->getHost().getHostName(); @@ -693,7 +691,7 @@ BOOL LLNetMap::handleToolTip( S32 x, S32 y, std::string& msg, LLRect* sticky_rec msg.append("\n"); buffer = region->getHost().getString(); msg.append(buffer); -#endif +//#endif msg.append("\n"); msg.append(getToolTip()); diff --git a/indra/newview/lloverlaybar.cpp b/indra/newview/lloverlaybar.cpp index 1ad90584d..8bdd7b376 100644 --- a/indra/newview/lloverlaybar.cpp +++ b/indra/newview/lloverlaybar.cpp @@ -464,7 +464,7 @@ void LLOverlayBar::onClickStandUp(void*) void LLOverlayBar::onClickCancelTP(void* data) { LLOverlayBar* self = (LLOverlayBar*)data; - self->setCancelTPButtonVisible(FALSE,std::string("Cancel")); + self->setCancelTPButtonVisible(FALSE, std::string("Cancel TP")); gAgent.teleportCancel(); llinfos << "trying to cancel teleport" << llendl; } @@ -529,6 +529,7 @@ void LLOverlayBar::toggleMediaPlay(void*) LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); if (parcel) { + LLViewerParcelMedia::sIsUserAction = true; LLViewerParcelMedia::play(parcel); } } @@ -554,7 +555,8 @@ void LLOverlayBar::toggleMusicPlay(void*) // stream is stopped, it doesn't return the right thing - commenting out for now. // if ( gAudiop->isInternetStreamPlaying() == 0 ) { - gAudiop->startInternetStream(parcel->getMusicURL()); + LLViewerParcelMedia::sIsUserAction = true; + LLViewerParcelMedia::playStreamingMusic(parcel); } } } diff --git a/indra/newview/llpaneldisplay.cpp b/indra/newview/llpaneldisplay.cpp index 925ca40c7..f000d840b 100644 --- a/indra/newview/llpaneldisplay.cpp +++ b/indra/newview/llpaneldisplay.cpp @@ -260,6 +260,9 @@ BOOL LLPanelDisplay::postBuild() // Avatar Render Mode mCtrlAvatarCloth = getChild("AvatarCloth"); mCtrlAvatarImpostors = getChild("AvatarImpostors"); + mCtrlAvatarImpostors->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable); + mCtrlAvatarImpostors->setCallbackUserData(this); + mCtrlNonImpostors = getChild("AvatarMaxVisible"); //---------------------------------------------------------------------------- // radio set for lighting detail @@ -417,6 +420,7 @@ void LLPanelDisplay::refresh() // avatar settings mAvatarImpostors = gSavedSettings.getBOOL("RenderUseImpostors"); + mNonImpostors = gSavedSettings.getS32("RenderAvatarMaxVisible"); mAvatarCloth = gSavedSettings.getBOOL("RenderAvatarCloth"); // Draw distance @@ -514,6 +518,9 @@ void LLPanelDisplay::refreshEnabledState() //GI won't do anything with shadows off, but disabling it here is less than intuitive. Ignore shadow setting for now. mCtrlDeferredGI->setEnabled(mCtrlShadowDetail->getEnabled()/* && gSavedSettings.getS32("RenderShadowDetail") > 0*/); + // Disable max non-impostors slider if avatar impostors are off + mCtrlNonImpostors->setEnabled(gSavedSettings.getBOOL("RenderUseImpostors")); + // Vertex Shaders // mCtrlShaderEnable->setEnabled(LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable")); // [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-0.2.0a @@ -612,6 +619,7 @@ void LLPanelDisplay::disableUnavailableSettings() { mCtrlAvatarImpostors->setEnabled(FALSE); mCtrlAvatarImpostors->setValue(FALSE); + mCtrlNonImpostors->setEnabled(FALSE); } // disabled deferred if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred")) @@ -654,6 +662,7 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden) llassert(mCtrlAvatarVP != NULL); llassert(mCtrlShaderEnable != NULL); llassert(mCtrlAvatarImpostors != NULL); + llassert(mCtrlNonImpostors != NULL); llassert(mCtrlAvatarCloth != NULL); llassert(mRadioLightingDetail2 != NULL); @@ -702,6 +711,7 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden) mCtrlAvatarVP->setVisible(!isHidden); mCtrlShaderEnable->setVisible(!isHidden); mCtrlAvatarImpostors->setVisible(!isHidden); + mCtrlNonImpostors->setVisible(!isHidden); mCtrlAvatarCloth->setVisible(!isHidden); mRadioLightingDetail2->setVisible(!isHidden); @@ -752,6 +762,7 @@ void LLPanelDisplay::cancel() gSavedSettings.setS32("RenderShadowDetail", mShadowDetail); gSavedSettings.setBOOL("RenderUseImpostors", mAvatarImpostors); + gSavedSettings.setS32("RenderAvatarMaxVisible", mNonImpostors); gSavedSettings.setBOOL("RenderAvatarCloth", mAvatarCloth); gSavedSettings.setBOOL("RenderLocalLights", mLocalLights); @@ -994,6 +1005,11 @@ void LLPanelDisplay::onVertexShaderEnable(LLUICtrl* self, void* data) void LLPanelDisplay::setHardwareDefaults(void* user_data) { LLFeatureManager::getInstance()->applyRecommendedSettings(); + LLControlVariable* controlp = gSavedSettings.getControl("RenderAvatarMaxVisible"); + if (controlp) + { + controlp->resetToDefault(true); + } LLFloaterPreference::refreshEnabledGraphics(); } diff --git a/indra/newview/llpaneldisplay.h b/indra/newview/llpaneldisplay.h index a36311390..5631a7ca9 100644 --- a/indra/newview/llpaneldisplay.h +++ b/indra/newview/llpaneldisplay.h @@ -106,6 +106,7 @@ protected: LLSliderCtrl *mCtrlSkyFactor; // LOD for terrain LLSliderCtrl *mCtrlMaxParticle; // Max Particle LLSliderCtrl *mCtrlPostProcess; // Max Particle + LLSliderCtrl *mCtrlNonImpostors; // Max non-impostors LLCheckBoxCtrl *mCtrlBumpShiny; LLCheckBoxCtrl *mCtrlWindLight; @@ -162,6 +163,7 @@ protected: S32 mShadowDetail; BOOL mAvatarImpostors; + S32 mNonImpostors; BOOL mAvatarCloth; S32 mAvatarMode; BOOL mLocalLights; diff --git a/indra/newview/llpreview.cpp b/indra/newview/llpreview.cpp index f7a6d45e8..5b2c9cfae 100644 --- a/indra/newview/llpreview.cpp +++ b/indra/newview/llpreview.cpp @@ -47,6 +47,9 @@ #include "llviewerobject.h" #include "llviewerobjectlist.h" #include "lldbstrings.h" +#include "llfloatersearchreplace.h" +#include "llpreviewnotecard.h" +#include "llpreviewscript.h" #include "llagent.h" #include "llvoavatarself.h" #include "llselectmgr.h" @@ -579,6 +582,24 @@ void LLMultiPreview::tabOpen(LLFloater* opened_floater, bool from_click) { opened_preview->loadAsset(); } + + LLFloater* search_floater = LLFloaterSearchReplace::getInstance(); + if (search_floater && search_floater->getDependee() == this) + { + LLPreviewNotecard* notecard_preview; LLPreviewLSL* script_preview; + if ((notecard_preview = dynamic_cast(opened_preview)) != NULL) + { + LLFloaterSearchReplace::show(notecard_preview->getEditor()); + } + else if ((script_preview = dynamic_cast(opened_preview)) != NULL) + { + LLFloaterSearchReplace::show(script_preview->getEditor()); + } + else + { + search_floater->setVisible(FALSE); + } + } } //static diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp index 98ed9a409..dea4215df 100644 --- a/indra/newview/llpreviewnotecard.cpp +++ b/indra/newview/llpreviewnotecard.cpp @@ -42,6 +42,7 @@ #include "llassetuploadresponders.h" #include "llviewerwindow.h" #include "llbutton.h" +#include "llfloatersearchreplace.h" #include "llinventorymodel.h" #include "lllineeditor.h" #include "llnotificationsutil.h" @@ -112,7 +113,6 @@ LLPreviewNotecard::LLPreviewNotecard(const std::string& name, else { LLUICtrlFactory::getInstance()->buildFloater(this,"floater_preview_notecard.xml"); - childSetAction("Save",onClickSave,this); // childSetAction("Get Items", onClickGetItems, this); // @@ -126,6 +126,7 @@ LLPreviewNotecard::LLPreviewNotecard(const std::string& name, } } } + childSetAction("Save",onClickSave,this); // only assert shape if not hosted in a multifloater if (!getHost()) @@ -154,6 +155,8 @@ LLPreviewNotecard::LLPreviewNotecard(const std::string& name, editor->setHandleEditKeysDirectly(TRUE); } + initMenu(); + gAgentCamera.changeCameraToDefault(); } @@ -223,6 +226,12 @@ BOOL LLPreviewNotecard::handleKeyHere(KEY key, MASK mask) return TRUE; } + if ('F' == key && (mask & MASK_CONTROL) && !(mask & (MASK_SHIFT | MASK_ALT))) + { + LLFloaterSearchReplace::show(getChild("Notecard Editor")); + return TRUE; + } + return LLPreview::handleKeyHere(key, mask); } @@ -776,4 +785,221 @@ LLTextEditor* LLPreviewNotecard::getEditor() return getChild("Notecard Editor"); } +void LLPreviewNotecard::initMenu() +{ + LLMenuItemCallGL* menuItem = getChild("Undo"); + menuItem->setMenuCallback(onUndoMenu, this); + menuItem->setEnabledCallback(enableUndoMenu); + + menuItem = getChild("Redo"); + menuItem->setMenuCallback(onRedoMenu, this); + menuItem->setEnabledCallback(enableRedoMenu); + + menuItem = getChild("Cut"); + menuItem->setMenuCallback(onCutMenu, this); + menuItem->setEnabledCallback(enableCutMenu); + + menuItem = getChild("Copy"); + menuItem->setMenuCallback(onCopyMenu, this); + menuItem->setEnabledCallback(enableCopyMenu); + + menuItem = getChild("Paste"); + menuItem->setMenuCallback(onPasteMenu, this); + menuItem->setEnabledCallback(enablePasteMenu); + + menuItem = getChild("Select All"); + menuItem->setMenuCallback(onSelectAllMenu, this); + menuItem->setEnabledCallback(enableSelectAllMenu); + + menuItem = getChild("Deselect"); + menuItem->setMenuCallback(onDeselectMenu, this); + menuItem->setEnabledCallback(enableDeselectMenu); + + menuItem = getChild("Search / Replace..."); + menuItem->setMenuCallback(onSearchMenu, this); + menuItem->setEnabledCallback(NULL); +} + +// static +void LLPreviewNotecard::onSearchMenu(void* userdata) +{ + LLPreviewNotecard* self = (LLPreviewNotecard*)userdata; + if (self) + { + LLViewerTextEditor* editor = self->getChild("Notecard Editor"); + if (editor) + { + LLFloaterSearchReplace::show(editor); + } + } +} + +// static +void LLPreviewNotecard::onUndoMenu(void* userdata) +{ + LLPreviewNotecard* self = (LLPreviewNotecard*)userdata; + if (self) + { + LLViewerTextEditor* editor = self->getChild("Notecard Editor"); + if (editor) + { + editor->undo(); + } + } +} + +// static +void LLPreviewNotecard::onRedoMenu(void* userdata) +{ + LLPreviewNotecard* self = (LLPreviewNotecard*)userdata; + if (self) + { + LLViewerTextEditor* editor = self->getChild("Notecard Editor"); + if (editor) + { + editor->redo(); + } + } +} + +// static +void LLPreviewNotecard::onCutMenu(void* userdata) +{ + LLPreviewNotecard* self = (LLPreviewNotecard*)userdata; + if (self) + { + LLViewerTextEditor* editor = self->getChild("Notecard Editor"); + if (editor) + { + editor->cut(); + } + } +} + +// static +void LLPreviewNotecard::onCopyMenu(void* userdata) +{ + LLPreviewNotecard* self = (LLPreviewNotecard*)userdata; + if (self) + { + LLViewerTextEditor* editor = self->getChild("Notecard Editor"); + if (editor) + { + editor->copy(); + } + } +} + +// static +void LLPreviewNotecard::onPasteMenu(void* userdata) +{ + LLPreviewNotecard* self = (LLPreviewNotecard*)userdata; + if (self) + { + LLViewerTextEditor* editor = self->getChild("Notecard Editor"); + if (editor) + { + editor->paste(); + } + } +} + +// static +void LLPreviewNotecard::onSelectAllMenu(void* userdata) +{ + LLPreviewNotecard* self = (LLPreviewNotecard*)userdata; + if (self) + { + LLViewerTextEditor* editor = self->getChild("Notecard Editor"); + if (editor) + { + editor->selectAll(); + } + } +} + +// static +void LLPreviewNotecard::onDeselectMenu(void* userdata) +{ + LLPreviewNotecard* self = (LLPreviewNotecard*)userdata; + if (self) + { + LLViewerTextEditor* editor = self->getChild("Notecard Editor"); + if (editor) + { + editor->deselect(); + } + } +} + +// static +BOOL LLPreviewNotecard::enableUndoMenu(void* userdata) +{ + LLPreviewNotecard* self = (LLPreviewNotecard*)userdata; + if (!self) return FALSE; + LLViewerTextEditor* editor = self->getChild("Notecard Editor"); + if (!editor) return FALSE; + return editor->canUndo(); +} + +// static +BOOL LLPreviewNotecard::enableRedoMenu(void* userdata) +{ + LLPreviewNotecard* self = (LLPreviewNotecard*)userdata; + if (!self) return FALSE; + LLViewerTextEditor* editor = self->getChild("Notecard Editor"); + if (!editor) return FALSE; + return editor->canRedo(); +} + +// static +BOOL LLPreviewNotecard::enableCutMenu(void* userdata) +{ + LLPreviewNotecard* self = (LLPreviewNotecard*)userdata; + if (!self) return FALSE; + LLViewerTextEditor* editor = self->getChild("Notecard Editor"); + if (!editor) return FALSE; + return editor->canCut(); +} + +// static +BOOL LLPreviewNotecard::enableCopyMenu(void* userdata) +{ + LLPreviewNotecard* self = (LLPreviewNotecard*)userdata; + if (!self) return FALSE; + LLViewerTextEditor* editor = self->getChild("Notecard Editor"); + if (!editor) return FALSE; + return editor->canCopy(); +} + +// static +BOOL LLPreviewNotecard::enablePasteMenu(void* userdata) +{ + LLPreviewNotecard* self = (LLPreviewNotecard*)userdata; + if (!self) return FALSE; + LLViewerTextEditor* editor = self->getChild("Notecard Editor"); + if (!editor) return FALSE; + return editor->canPaste(); +} + +// static +BOOL LLPreviewNotecard::enableSelectAllMenu(void* userdata) +{ + LLPreviewNotecard* self = (LLPreviewNotecard*)userdata; + if (!self) return FALSE; + LLViewerTextEditor* editor = self->getChild("Notecard Editor"); + if (!editor) return FALSE; + return editor->canSelectAll(); +} + +// static +BOOL LLPreviewNotecard::enableDeselectMenu(void* userdata) +{ + LLPreviewNotecard* self = (LLPreviewNotecard*)userdata; + if (!self) return FALSE; + LLViewerTextEditor* editor = self->getChild("Notecard Editor"); + if (!editor) return FALSE; + return editor->canDeselect(); +} + // EOF diff --git a/indra/newview/llpreviewnotecard.h b/indra/newview/llpreviewnotecard.h index 04568bf65..442673c0c 100644 --- a/indra/newview/llpreviewnotecard.h +++ b/indra/newview/llpreviewnotecard.h @@ -45,6 +45,8 @@ class LLTextEditor; class LLViewerTextEditor; +class LLTextEditor; +class LLMenuBarGL; class LLButton; class AIFilePicker; @@ -117,6 +119,25 @@ protected: virtual const char *getTitleName() const { return "Note"; } + void initMenu(); + + static void onSearchMenu(void* userdata); + static void onUndoMenu(void* userdata); + static void onRedoMenu(void* userdata); + static void onCutMenu(void* userdata); + static void onCopyMenu(void* userdata); + static void onPasteMenu(void* userdata); + static void onSelectAllMenu(void* userdata); + static void onDeselectMenu(void* userdata); + + static BOOL enableUndoMenu(void* userdata); + static BOOL enableRedoMenu(void* userdata); + static BOOL enableCutMenu(void* userdata); + static BOOL enableCopyMenu(void* userdata); + static BOOL enablePasteMenu(void* userdata); + static BOOL enableSelectAllMenu(void* userdata); + static BOOL enableDeselectMenu(void* userdata); + protected: LLViewerTextEditor* mEditor; LLButton* mSaveBtn; diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index 320268092..446a96979 100644 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -79,6 +79,7 @@ #include "lldir.h" #include "llcombobox.h" //#include "llfloaterchat.h" +#include "llfloatersearchreplace.h" #include "llviewerstats.h" #include "llviewertexteditor.h" #include "llviewerwindow.h" @@ -136,10 +137,6 @@ const S32 SCRIPT_MIN_HEIGHT = const S32 MAX_EXPORT_SIZE = 1000; -const S32 SCRIPT_SEARCH_WIDTH = 300; -const S32 SCRIPT_SEARCH_HEIGHT = 120; -const S32 SCRIPT_SEARCH_LABEL_WIDTH = 50; -const S32 SCRIPT_SEARCH_BUTTON_WIDTH = 80; const S32 TEXT_EDIT_COLUMN_HEIGHT = 16; const S32 MAX_HISTORY_COUNT = 10; const F32 LIVE_HELP_REFRESH_TIME = 1.f; @@ -150,148 +147,6 @@ static bool have_script_upload_cap(LLUUID& object_id) return object && (! object->getRegion()->getCapability("UpdateScriptTask").empty()); } -/// --------------------------------------------------------------------------- -/// LLFloaterScriptSearch -/// --------------------------------------------------------------------------- -class LLFloaterScriptSearch : public LLFloater -{ -public: - LLFloaterScriptSearch(std::string title, LLRect rect, LLScriptEdCore* editor_core); - ~LLFloaterScriptSearch(); - - static void show(LLScriptEdCore* editor_core); - static void onBtnSearch(void* userdata); - void handleBtnSearch(); - - static void onBtnReplace(void* userdata); - void handleBtnReplace(); - - static void onBtnReplaceAll(void* userdata); - void handleBtnReplaceAll(); - - LLScriptEdCore* getEditorCore() { return mEditorCore; } - static LLFloaterScriptSearch* getInstance() { return sInstance; } - - void open(); /*Flawfinder: ignore*/ - -private: - - LLScriptEdCore* mEditorCore; - - static LLFloaterScriptSearch* sInstance; -}; - -LLFloaterScriptSearch* LLFloaterScriptSearch::sInstance = NULL; - -LLFloaterScriptSearch::LLFloaterScriptSearch(std::string title, LLRect rect, LLScriptEdCore* editor_core) - : LLFloater("script search",rect,title), mEditorCore(editor_core) -{ - - LLUICtrlFactory::getInstance()->buildFloater(this,"floater_script_search.xml"); - - childSetAction("search_btn", onBtnSearch,this); - childSetAction("replace_btn", onBtnReplace,this); - childSetAction("replace_all_btn", onBtnReplaceAll,this); - - setDefaultBtn("search_btn"); - - if (!getHost()) - { - LLRect curRect = getRect(); - translate(rect.mLeft - curRect.mLeft, rect.mTop - curRect.mTop); - } - - sInstance = this; - - childSetFocus("search_text", TRUE); - - // find floater in which script panel is embedded - LLView* viewp = (LLView*)editor_core; - while(viewp) - { - LLFloater* floaterp = dynamic_cast(viewp); - if (floaterp) - { - floaterp->addDependentFloater(this); - break; - } - viewp = viewp->getParent(); - } -} - -//static -void LLFloaterScriptSearch::show(LLScriptEdCore* editor_core) -{ - if (sInstance && sInstance->mEditorCore && sInstance->mEditorCore != editor_core) - { - sInstance->close(); - delete sInstance; - } - - if (!sInstance) - { - S32 left = 0; - S32 top = 0; - gFloaterView->getNewFloaterPosition(&left,&top); - - // sInstance will be assigned in the constructor. - new LLFloaterScriptSearch("Script Search",LLRect(left,top,left + SCRIPT_SEARCH_WIDTH,top - SCRIPT_SEARCH_HEIGHT),editor_core); - } - - sInstance->open(); /*Flawfinder: ignore*/ -} - -LLFloaterScriptSearch::~LLFloaterScriptSearch() -{ - sInstance = NULL; -} - -// static -void LLFloaterScriptSearch::onBtnSearch(void *userdata) -{ - LLFloaterScriptSearch* self = (LLFloaterScriptSearch*)userdata; - self->handleBtnSearch(); -} - -void LLFloaterScriptSearch::handleBtnSearch() -{ - LLCheckBoxCtrl* caseChk = getChild("case_text"); - mEditorCore->mEditor->selectNext(childGetText("search_text"), caseChk->get()); -} - -// static -void LLFloaterScriptSearch::onBtnReplace(void *userdata) -{ - LLFloaterScriptSearch* self = (LLFloaterScriptSearch*)userdata; - self->handleBtnReplace(); -} - -void LLFloaterScriptSearch::handleBtnReplace() -{ - LLCheckBoxCtrl* caseChk = getChild("case_text"); - mEditorCore->mEditor->replaceText(childGetText("search_text"), childGetText("replace_text"), caseChk->get()); -} - -// static -void LLFloaterScriptSearch::onBtnReplaceAll(void *userdata) -{ - LLFloaterScriptSearch* self = (LLFloaterScriptSearch*)userdata; - self->handleBtnReplaceAll(); -} - -void LLFloaterScriptSearch::handleBtnReplaceAll() -{ - LLCheckBoxCtrl* caseChk = getChild("case_text"); - mEditorCore->mEditor->replaceTextAll(childGetText("search_text"), childGetText("replace_text"), caseChk->get()); -} - -void LLFloaterScriptSearch::open() /*Flawfinder: ignore*/ -{ - LLFloater::open(); /*Flawfinder: ignore*/ - childSetFocus("search_text", TRUE); -} - - /// --------------------------------------------------------------------------- /// LLScriptEdCore /// --------------------------------------------------------------------------- @@ -435,14 +290,6 @@ LLScriptEdCore::LLScriptEdCore( LLScriptEdCore::~LLScriptEdCore() { deleteBridges(); - - // If the search window is up for this editor, close it. - LLFloaterScriptSearch* script_search = LLFloaterScriptSearch::getInstance(); - if (script_search && script_search->getEditorCore() == this) - { - script_search->close(); - delete script_search; - } } BOOL LLScriptEdCore::tick() @@ -486,6 +333,10 @@ void LLScriptEdCore::initMenu() menuItem->setMenuCallback(onSelectAllMenu, this); menuItem->setEnabledCallback(enableSelectAllMenu); + menuItem = getChild("Deselect"); + menuItem->setMenuCallback(onDeselectMenu, this); + menuItem->setEnabledCallback(enableDeselectMenu); + menuItem = getChild("Search / Replace..."); menuItem->setMenuCallback(onSearchMenu, this); menuItem->setEnabledCallback(NULL); @@ -933,7 +784,10 @@ void LLScriptEdCore::onBtnUndoChanges( void* userdata ) void LLScriptEdCore::onSearchMenu(void* userdata) { LLScriptEdCore* sec = (LLScriptEdCore*)userdata; - LLFloaterScriptSearch::show(sec); + if (sec && sec->mEditor) + { + LLFloaterSearchReplace::show(sec->mEditor); + } } // static @@ -1341,7 +1195,10 @@ void LLPreviewLSL::onSearchReplace(void* userdata) { LLPreviewLSL* self = (LLPreviewLSL*)userdata; LLScriptEdCore* sec = self->mScriptEd; - LLFloaterScriptSearch::show(sec); + if (sec && sec->mEditor) + { + LLFloaterSearchReplace::show(sec->mEditor); + } } // static @@ -2195,7 +2052,10 @@ void LLLiveLSLEditor::onSearchReplace(void* userdata) LLLiveLSLEditor* self = (LLLiveLSLEditor*)userdata; LLScriptEdCore* sec = self->mScriptEd; - LLFloaterScriptSearch::show(sec); + if (sec && sec->mEditor) + { + LLFloaterSearchReplace::show(sec->mEditor); + } } struct LLLiveLSLSaveData diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h index f4390927d..436d68d4f 100644 --- a/indra/newview/llpreviewscript.h +++ b/indra/newview/llpreviewscript.h @@ -51,7 +51,6 @@ class LLScrollListCtrl; class LLViewerObject; struct LLEntryAndEdCore; class LLMenuBarGL; -class LLFloaterScriptSearch; class LLKeywordToken; class AIFilePicker; @@ -61,7 +60,6 @@ class LLScriptEdCore : public LLPanel, public LLEventTimer friend class LLPreviewScript; friend class LLPreviewLSL; friend class LLLiveLSLEditor; - friend class LLFloaterScriptSearch; public: LLScriptEdCore( @@ -204,6 +202,7 @@ protected: static void onSaveBytecodeComplete(const LLUUID& asset_uuid, void* user_data, S32 status, LLExtStat ext_status); public: static LLPreviewLSL* getInstance(const LLUUID& uuid); + LLTextEditor* getEditor() { return mScriptEd->mEditor; } protected: static void* createScriptEdPanel(void* userdata); diff --git a/indra/newview/llsurface.cpp b/indra/newview/llsurface.cpp index e0dc129ad..5e2ed8694 100644 --- a/indra/newview/llsurface.cpp +++ b/indra/newview/llsurface.cpp @@ -699,14 +699,14 @@ void LLSurface::decompressDCTPatch(LLBitPack &bitpack, LLGroupHeader *gopp, BOOL } if (b_large_patch) - { - i = ph.patchids >> 16; //x - j = ph.patchids & 0xFFFF; //y - } - else - { - i = ph.patchids >> 5; //x - j = ph.patchids & 0x1F; //y + { + i = ph.patchids >> 16; //x + j = ph.patchids & 0xFFFF; //y + } + else + { + i = ph.patchids >> 5; //x + j = ph.patchids & 0x1F; //y } if ((i >= mPatchesPerEdge) || (j >= mPatchesPerEdge)) diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index a72d6b5e0..1f4815d53 100644 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -1380,6 +1380,12 @@ bool LLTextureFetchWorker::doWork(S32 param) setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority); return false ; } + else + { + // UDP is not an option, we are dead + resetFormattedData(); + return true; // failed + } } else if (mGetStatus == HTTP_SERVICE_UNAVAILABLE) { @@ -1402,7 +1408,9 @@ bool LLTextureFetchWorker::doWork(S32 param) if (mHTTPFailCount >= max_attempts) { - if (cur_size > 0) + // Make max_attempts attempt at decoding what data we have, + // then bail forever on this image + if (cur_size > 0 && (mHTTPFailCount < (max_attempts+1)) ) { // Use available data mLoadedDiscard = mFormattedImage->getDiscardLevel(); @@ -1411,9 +1419,21 @@ bool LLTextureFetchWorker::doWork(S32 param) } else { - resetFormattedData(); - mState = DONE; - return true; // failed + //roll back to try UDP + if(mCanUseNET) + { + mState = INIT ; + mCanUseHTTP = false ; + setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority); + return false ; + } + else + { + // UDP is not an option, we are dead + resetFormattedData(); + mState = DONE; + return true; // failed + } } } else diff --git a/indra/newview/lltool.cpp b/indra/newview/lltool.cpp index 1a11957fb..6ebeb870a 100644 --- a/indra/newview/lltool.cpp +++ b/indra/newview/lltool.cpp @@ -127,6 +127,20 @@ BOOL LLTool::handleRightMouseUp(S32 x, S32 y, MASK mask) return FALSE; } +BOOL LLTool::handleMiddleMouseDown(S32 x,S32 y,MASK mask) +{ + // by default, didn't handle it + // llinfos << "LLTool::handleMiddleMouseDown" << llendl; + return FALSE; +} + +BOOL LLTool::handleMiddleMouseUp(S32 x, S32 y, MASK mask) +{ + // by default, didn't handle it + // llinfos << "LLTool::handleMiddleMouseUp" << llendl; + return FALSE; +} + BOOL LLTool::handleToolTip(S32 x, S32 y, std::string& msg, LLRect* sticky_rect_screen) { // by default, didn't handle it diff --git a/indra/newview/lltool.h b/indra/newview/lltool.h index 249088fd3..f954a8c24 100644 --- a/indra/newview/lltool.h +++ b/indra/newview/lltool.h @@ -57,6 +57,9 @@ public: // Virtual functions inherited from LLMouseHandler virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); + virtual BOOL handleMiddleMouseDown(S32 x, S32 y, MASK mask); + virtual BOOL handleMiddleMouseUp(S32 x, S32 y, MASK mask); + virtual BOOL handleHover(S32 x, S32 y, MASK mask); virtual BOOL handleScrollWheel(S32 x, S32 y, S32 clicks); virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask); diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index aaa4f5e77..32e7c2777 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -665,8 +665,6 @@ BOOL LLToolPie::handleHover(S32 x, S32 y, MASK mask) */ - gViewerWindow->getWindow()->setCursor(UI_CURSOR_ARROW); - LLViewerObject *object = NULL; LLViewerObject *parent = NULL; // object = gViewerWindow->getHoverPick().getObject(); diff --git a/indra/newview/lltoolplacer.cpp b/indra/newview/lltoolplacer.cpp index db49bbdd7..9e59b9cc4 100644 --- a/indra/newview/lltoolplacer.cpp +++ b/indra/newview/lltoolplacer.cpp @@ -175,7 +175,18 @@ BOOL LLToolPlacer::raycastForNewObjPos( S32 x, S32 y, LLViewerObject** hit_obj, return TRUE; } - +S32 LLToolPlacer::getTreeGrassSpecies(std::map &table, const char *control, S32 max) +{ + const std::string &species = gSavedSettings.getString(control); + std::map::iterator it; + it = table.find(species); + if (it != table.end()) { + return it->second; + } else { + // if saved species not found, default to "Random" + return (rand() % max); + } +} BOOL LLToolPlacer::addObject( LLPCode pcode, S32 x, S32 y, U8 use_physics ) { LLVector3 ray_start_region; @@ -220,13 +231,13 @@ BOOL LLToolPlacer::addObject( LLPCode pcode, S32 x, S32 y, U8 use_physics ) case LL_PCODE_LEGACY_GRASS: // Randomize size of grass patch scale.setVec(10.f + ll_frand(20.f), 10.f + ll_frand(20.f), 1.f + ll_frand(2.f)); - state = rand() % LLVOGrass::sMaxGrassSpecies; + state = getTreeGrassSpecies(LLVOGrass::sSpeciesNames, "LastGrass", LLVOGrass::sMaxGrassSpecies); break; case LL_PCODE_LEGACY_TREE: case LL_PCODE_TREE_NEW: - state = rand() % LLVOTree::sMaxTreeSpecies; + state = getTreeGrassSpecies(LLVOTree::sSpeciesNames, "LastTree", LLVOTree::sMaxTreeSpecies); break; case LL_PCODE_SPHERE: diff --git a/indra/newview/lltoolplacer.h b/indra/newview/lltoolplacer.h index d478f7b1c..702fc1f50 100644 --- a/indra/newview/lltoolplacer.h +++ b/indra/newview/lltoolplacer.h @@ -62,6 +62,7 @@ protected: private: BOOL addObject( LLPCode pcode, S32 x, S32 y, U8 use_physics ); + S32 getTreeGrassSpecies(std::map &table, const char *control, S32 max); BOOL raycastForNewObjPos( S32 x, S32 y, LLViewerObject** hit_obj, S32* hit_face, BOOL* b_hit_land, LLVector3* ray_start_region, LLVector3* ray_end_region, LLViewerRegion** region ); BOOL addDuplicate(S32 x, S32 y); diff --git a/indra/newview/llviewerassettype.cpp b/indra/newview/llviewerassettype.cpp index 5bab702cf..3eee60882 100644 --- a/indra/newview/llviewerassettype.cpp +++ b/indra/newview/llviewerassettype.cpp @@ -86,6 +86,8 @@ LLViewerAssetDictionary::LLViewerAssetDictionary() addEntry(LLViewerAssetType::AT_LINK, new ViewerAssetEntry(DAD_LINK)); addEntry(LLViewerAssetType::AT_LINK_FOLDER, new ViewerAssetEntry(DAD_LINK)); + addEntry(LLViewerAssetType::AT_MESH, new ViewerAssetEntry(DAD_MESH)); + addEntry(LLViewerAssetType::AT_NONE, new ViewerAssetEntry(DAD_NONE)); }; diff --git a/indra/newview/llviewerparcelmedia.cpp b/indra/newview/llviewerparcelmedia.cpp index a233136b5..1493f4abb 100644 --- a/indra/newview/llviewerparcelmedia.cpp +++ b/indra/newview/llviewerparcelmedia.cpp @@ -561,6 +561,42 @@ void LLViewerParcelMedia::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_NAME_CHANGED" << LL_ENDL; }; break; + + case MEDIA_EVENT_NAVIGATE_ERROR_PAGE: + { + LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_NAVIGATE_ERROR_PAGE" << LL_ENDL; + }; + break; + + case MEDIA_EVENT_CLOSE_REQUEST: + { + LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CLOSE_REQUEST" << LL_ENDL; + }; + break; + + case MEDIA_EVENT_PICK_FILE_REQUEST: + { + LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_PICK_FILE_REQUEST" << LL_ENDL; + }; + break; + + case MEDIA_EVENT_GEOMETRY_CHANGE: + { + LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_GEOMETRY_CHANGE" << LL_ENDL; + }; + break; + + case MEDIA_EVENT_AUTH_REQUEST: + { + LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_AUTH_REQUEST" << LL_ENDL; + }; + break; + + case MEDIA_EVENT_LINK_HOVERED: + { + LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_LINK_HOVERED" << LL_ENDL; + }; + break; default: { diff --git a/indra/newview/llviewerparceloverlay.cpp b/indra/newview/llviewerparceloverlay.cpp index 7989b6686..f56802ac7 100644 --- a/indra/newview/llviewerparceloverlay.cpp +++ b/indra/newview/llviewerparceloverlay.cpp @@ -414,7 +414,7 @@ void LLViewerParcelOverlay::uncompressLandOverlay(S32 chunk, U8 *packed_overlay) { // Unpack the message data into the ownership array S32 size = mParcelGridsPerEdge * mParcelGridsPerEdge; - S32 mParcelOverLayChunks = mRegionSize * mRegionSize / (128 * 128); + S32 mParcelOverLayChunks = mRegionSize * mRegionSize / (128 * 128); S32 chunk_size = size / mParcelOverLayChunks; memcpy(mOwnership + chunk*chunk_size, packed_overlay, chunk_size); /*Flawfinder: ignore*/ diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 51a02a053..060d5df69 100644 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -1,1748 +1,1748 @@ -/** - * @file llviewerregion.cpp - * @brief Implementation of the LLViewerRegion class. - * - * $LicenseInfo:firstyear=2000&license=viewergpl$ - * - * Copyright (c) 2000-2009, Linden Research, Inc. - * - * Second Life Viewer Source Code - * The source code in this file ("Source Code") is provided by Linden Lab - * to you under the terms of the GNU General Public License, version 2.0 - * ("GPL"), unless you have obtained a separate licensing agreement - * ("Other License"), formally executed by you and Linden Lab. Terms of - * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 - * - * There are special exceptions to the terms and conditions of the GPL as - * it is applied to this Source Code. View the full text of the exception - * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at - * http://secondlifegrid.net/programs/open_source/licensing/flossexception - * - * By copying, modifying or distributing this software, you acknowledge - * that you have read and understood your obligations described above, - * and agree to abide by those obligations. - * - * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO - * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. - * $/LicenseInfo$ - */ - -#include "llviewerprecompiledheaders.h" - -#include "llviewerregion.h" - -#include "indra_constants.h" -#include "llmath.h" -#include "llhttpclient.h" -#include "llregionflags.h" -#include "llregionhandle.h" -#include "llsurface.h" -#include "message.h" -//#include "vmath.h" -#include "v3math.h" -#include "v4math.h" - -#include "llagent.h" -#include "llagentcamera.h" -#include "llcallingcard.h" -#include "llcaphttpsender.h" -#include "lldir.h" -#include "lleventpoll.h" -#include "llfloatergodtools.h" -#include "llfloaterreporter.h" -#include "llfloaterregioninfo.h" -#include "llhttpnode.h" -#include "llsdutil.h" -#include "llstartup.h" -#include "lltrans.h" -#include "llurldispatcher.h" -#include "llviewerobjectlist.h" -#include "llviewerparceloverlay.h" -#include "llvlmanager.h" -#include "llvlcomposition.h" -#include "llvocache.h" -#include "llvoclouds.h" -#include "llworld.h" -#include "llspatialpartition.h" -#include "stringize.h" -#include "llviewercontrol.h" -#include "llsdserialize.h" -#include "llviewerparcelmgr.h" - -extern BOOL gNoRender; - -#ifdef LL_WINDOWS - #pragma warning(disable:4355) -#endif - -const F32 WATER_TEXTURE_SCALE = 8.f; // Number of times to repeat the water texture across a region -const S16 MAX_MAP_DIST = 10; -typedef std::map CapabilityMap; - -class LLViewerRegionImpl { -public: - LLViewerRegionImpl(LLViewerRegion * region, LLHost const & host) - : mHost(host), - mCompositionp(NULL), - mEventPoll(NULL)//, - // I'd prefer to set the LLCapabilityListener name to match the region - // name -- it's disappointing that's not available at construction time. - // We could instead store an LLCapabilityListener*, making - // setRegionNameAndZone() replace the instance. Would that pose - // consistency problems? Can we even request a capability before calling - // setRegionNameAndZone()? - // For testability -- the new Michael Feathers paradigm -- - // LLCapabilityListener binds all the globals it expects to need at - // construction time. - //mCapabilityListener(host.getString(), gMessageSystem, *region, - //gAgent.getID(), gAgent.getSessionID()) - { - } - - void buildCapabilityNames(LLSD& capabilityNames); - - // The surfaces and other layers - LLSurface* mLandp; - - // Region geometry data - LLVector3d mOriginGlobal; // Location of southwest corner of region (meters) - LLVector3d mCenterGlobal; // Location of center in world space (meters) - LLHost mHost; - - // The unique ID for this region. - LLUUID mRegionID; - - // region/estate owner - usually null. - LLUUID mOwnerID; - - // Network statistics for the region's circuit... - LLTimer mLastNetUpdate; - - // Misc - LLVLComposition *mCompositionp; // Composition layer for the surface - - LLVOCacheEntry::vocache_entry_map_t mCacheMap; - // time? - // LRU info? - - // Cache ID is unique per-region, across renames, moving locations, - // etc. - LLUUID mCacheID; - - CapabilityMap mCapabilities; - - LLEventPoll* mEventPoll; - - /// Post an event to this LLCapabilityListener to invoke a capability message on - /// this LLViewerRegion's server - /// (https://wiki.lindenlab.com/wiki/Viewer:Messaging/Messaging_Notes#Capabilities) - //LLCapabilityListener mCapabilityListener; - - //spatial partitions for objects in this region - std::vector mObjectPartition; - - LLHTTPClient::ResponderPtr mHttpResponderPtr ; -}; - -class BaseCapabilitiesComplete : public LLHTTPClient::Responder -{ - LOG_CLASS(BaseCapabilitiesComplete); -public: - BaseCapabilitiesComplete(LLViewerRegion* region) - : mRegion(region) - { } - virtual ~BaseCapabilitiesComplete() - { - if(mRegion) - { - mRegion->setHttpResponderPtrNULL() ; - } - } - - void setRegion(LLViewerRegion* region) - { - mRegion = region ; - } - - void error(U32 statusNum, const std::string& reason) - { - LL_WARNS2("AppInit", "Capabilities") << statusNum << ": " << reason << LL_ENDL; - - if (STATE_SEED_GRANTED_WAIT == LLStartUp::getStartupState()) - { - LLStartUp::setStartupState( STATE_SEED_CAP_GRANTED ); - } - } - - void result(const LLSD& content) - { - if(!mRegion || LLHTTPClient::ResponderPtr(this) != mRegion->getHttpResponderPtr()) //region is removed or responder is not created. - { - return ; - } - - LLSD::map_const_iterator iter; - for(iter = content.beginMap(); iter != content.endMap(); ++iter) - { - mRegion->setCapability(iter->first, iter->second); - LL_DEBUGS2("AppInit", "Capabilities") << "got capability for " - << iter->first << LL_ENDL; - - /* HACK we're waiting for the ServerReleaseNotes */ - if (iter->first == "ServerReleaseNotes" && mRegion->getReleaseNotesRequested()) - { - mRegion->showReleaseNotes(); - } - } - - mRegion->setCapabilitiesReceived(true); - - if (STATE_SEED_GRANTED_WAIT == LLStartUp::getStartupState()) - { - LLStartUp::setStartupState( STATE_SEED_CAP_GRANTED ); - } - } - - static boost::intrusive_ptr build( - LLViewerRegion* region) - { - return boost::intrusive_ptr( - new BaseCapabilitiesComplete(region)); - } - -private: - LLViewerRegion* mRegion; -}; - - -LLViewerRegion::LLViewerRegion(const U64 &handle, - const LLHost &host, - const U32 grids_per_region_edge, - const U32 grids_per_patch_edge, - const F32 region_width_meters) -: mImpl(new LLViewerRegionImpl(this, host)), - mHandle(handle), - mTimeDilation(1.0f), - mName(""), - mZoning(""), - mIsEstateManager(FALSE), - mRegionFlags( REGION_FLAGS_DEFAULT ), - mSimAccess( SIM_ACCESS_MIN ), - mBillableFactor(1.0), - mMaxTasks(DEFAULT_MAX_REGION_WIDE_PRIM_COUNT), - mClassID(0), - mCPURatio(0), - mColoName("unknown"), - mProductSKU("unknown"), - mProductName("unknown"), - mHttpUrl(""), - mCacheLoaded(FALSE), - mCacheDirty(FALSE), - mReleaseNotesRequested(FALSE), - mCapabilitiesReceived(false), - mWidth(region_width_meters) -{ - mImpl->mOriginGlobal = from_region_handle(handle); - updateRenderMatrix(); - - mImpl->mLandp = new LLSurface('l', NULL); - - if (!gNoRender) - { - // Create the composition layer for the surface - mImpl->mCompositionp = - new LLVLComposition(mImpl->mLandp, - grids_per_region_edge, - mWidth / grids_per_region_edge); - mImpl->mCompositionp->setSurface(mImpl->mLandp); - - // Create the surfaces - mImpl->mLandp->setRegion(this); - mImpl->mLandp->create(grids_per_region_edge, - grids_per_patch_edge, - mImpl->mOriginGlobal, - mWidth); - } - - if (!gNoRender) - { - mParcelOverlay = new LLViewerParcelOverlay(this, mWidth); - //Re-init the parcel mgr for this sim - LLViewerParcelMgr::getInstance()->init(mWidth); - } - else - { - mParcelOverlay = NULL; - } - - setOriginGlobal(from_region_handle(handle)); - calculateCenterGlobal(); - - // Create the object lists - initStats(); - - //create object partitions - //MUST MATCH declaration of eObjectPartitions - mImpl->mObjectPartition.push_back(new LLHUDPartition()); //PARTITION_HUD - mImpl->mObjectPartition.push_back(new LLTerrainPartition()); //PARTITION_TERRAIN - mImpl->mObjectPartition.push_back(new LLVoidWaterPartition()); //PARTITION_VOIDWATER - mImpl->mObjectPartition.push_back(new LLWaterPartition()); //PARTITION_WATER - mImpl->mObjectPartition.push_back(new LLTreePartition()); //PARTITION_TREE - mImpl->mObjectPartition.push_back(new LLParticlePartition()); //PARTITION_PARTICLE - mImpl->mObjectPartition.push_back(new LLCloudPartition()); //PARTITION_CLOUD - mImpl->mObjectPartition.push_back(new LLGrassPartition()); //PARTITION_GRASS - mImpl->mObjectPartition.push_back(new LLVolumePartition()); //PARTITION_VOLUME - mImpl->mObjectPartition.push_back(new LLBridgePartition()); //PARTITION_BRIDGE - mImpl->mObjectPartition.push_back(new LLHUDParticlePartition());//PARTITION_HUD_PARTICLE - mImpl->mObjectPartition.push_back(NULL); //PARTITION_NONE -} - - -void LLViewerRegion::initStats() -{ - mImpl->mLastNetUpdate.reset(); - mPacketsIn = 0; - mBitsIn = 0; - mLastBitsIn = 0; - mLastPacketsIn = 0; - mPacketsOut = 0; - mLastPacketsOut = 0; - mPacketsLost = 0; - mLastPacketsLost = 0; - mPingDelay = 0; - mAlive = false; // can become false if circuit disconnects -} - -LLViewerRegion::~LLViewerRegion() -{ - if(mImpl->mHttpResponderPtr) - { - (static_cast(mImpl->mHttpResponderPtr.get()))->setRegion(NULL) ; - } - - gVLManager.cleanupData(this); - // Can't do this on destruction, because the neighbor pointers might be invalid. - // This should be reference counted... - disconnectAllNeighbors(); - mCloudLayer.destroy(); - LLViewerPartSim::getInstance()->cleanupRegion(this); - - gObjectList.killObjects(this); - - delete mImpl->mCompositionp; - delete mParcelOverlay; - delete mImpl->mLandp; - delete mImpl->mEventPoll; - LLHTTPSender::clearSender(mImpl->mHost); - - saveObjectCache(); - - std::for_each(mImpl->mObjectPartition.begin(), mImpl->mObjectPartition.end(), DeletePointer()); - - delete mImpl; - mImpl = NULL; -} - -/*LLEventPump& LLViewerRegion::getCapAPI() const -{ - return mImpl->mCapabilityListener.getCapAPI(); -}*/ - -/*virtual*/ -const LLHost& LLViewerRegion::getHost() const -{ - return mImpl->mHost; -} - -LLSurface & LLViewerRegion::getLand() const -{ - return *mImpl->mLandp; -} - -const LLUUID& LLViewerRegion::getRegionID() const -{ - return mImpl->mRegionID; -} - -void LLViewerRegion::setRegionID(const LLUUID& region_id) -{ - mImpl->mRegionID = region_id; -} - -void LLViewerRegion::loadObjectCache() -{ - if (mCacheLoaded) - { - return; - } - - // Presume success. If it fails, we don't want to try again. - mCacheLoaded = TRUE; - - if(LLVOCache::hasInstance()) - { - LLVOCache::getInstance()->readFromCache(mHandle, mImpl->mCacheID, mImpl->mCacheMap) ; - } -} - - -void LLViewerRegion::saveObjectCache() -{ - if (!mCacheLoaded) - { - return; - } - - if (mImpl->mCacheMap.empty()) - { - return; - } - - if(LLVOCache::hasInstance()) - { - LLVOCache::getInstance()->writeToCache(mHandle, mImpl->mCacheID, mImpl->mCacheMap, mCacheDirty) ; - mCacheDirty = FALSE; - } - - for(LLVOCacheEntry::vocache_entry_map_t::iterator iter = mImpl->mCacheMap.begin(); iter != mImpl->mCacheMap.end(); ++iter) - { - delete iter->second; - } - mImpl->mCacheMap.clear(); -} - -void LLViewerRegion::sendMessage() -{ - gMessageSystem->sendMessage(mImpl->mHost); -} - -void LLViewerRegion::sendReliableMessage() -{ - gMessageSystem->sendReliable(mImpl->mHost); -} - -void LLViewerRegion::setFlags(BOOL b, U32 flags) -{ - if (b) - { - mRegionFlags |= flags; - } - else - { - mRegionFlags &= ~flags; - } -} - -void LLViewerRegion::setWaterHeight(F32 water_level) -{ - mImpl->mLandp->setWaterHeight(water_level); -} - -F32 LLViewerRegion::getWaterHeight() const -{ - return mImpl->mLandp->getWaterHeight(); -} - -BOOL LLViewerRegion::isVoiceEnabled() const -{ - return (getRegionFlags() & REGION_FLAGS_ALLOW_VOICE); -} - -void LLViewerRegion::setRegionFlags(U32 flags) -{ - mRegionFlags = flags; -} - - -void LLViewerRegion::setOriginGlobal(const LLVector3d &origin_global) -{ - mImpl->mOriginGlobal = origin_global; - updateRenderMatrix(); - mImpl->mLandp->setOriginGlobal(origin_global); - mWind.setOriginGlobal(origin_global); - mCloudLayer.setOriginGlobal(origin_global); - calculateCenterGlobal(); -} - -void LLViewerRegion::updateRenderMatrix() -{ - mRenderMatrix.setTranslation(getOriginAgent()); -} - -void LLViewerRegion::setTimeDilation(F32 time_dilation) -{ - mTimeDilation = time_dilation; -} - -const LLVector3d & LLViewerRegion::getOriginGlobal() const -{ - return mImpl->mOriginGlobal; -} - -LLVector3 LLViewerRegion::getOriginAgent() const -{ - return gAgent.getPosAgentFromGlobal(mImpl->mOriginGlobal); -} - -const LLVector3d & LLViewerRegion::getCenterGlobal() const -{ - return mImpl->mCenterGlobal; -} - -LLVector3 LLViewerRegion::getCenterAgent() const -{ - return gAgent.getPosAgentFromGlobal(mImpl->mCenterGlobal); -} - -void LLViewerRegion::setOwner(const LLUUID& owner_id) -{ - mImpl->mOwnerID = owner_id; -} - -const LLUUID& LLViewerRegion::getOwner() const -{ - return mImpl->mOwnerID; -} - -void LLViewerRegion::setRegionNameAndZone (const std::string& name_zone) -{ - std::string::size_type pipe_pos = name_zone.find('|'); - S32 length = name_zone.size(); - if (pipe_pos != std::string::npos) - { - mName = name_zone.substr(0, pipe_pos); - mZoning = name_zone.substr(pipe_pos+1, length-(pipe_pos+1)); - } - else - { - mName = name_zone; - mZoning = ""; - } - - LLStringUtil::stripNonprintable(mName); - LLStringUtil::stripNonprintable(mZoning); -} - -BOOL LLViewerRegion::canManageEstate() const -{ - return gAgent.isGodlike() - || isEstateManager() - || gAgent.getID() == getOwner(); -} - -const std::string LLViewerRegion::getSimAccessString() const -{ - return accessToString(mSimAccess); -} - - -// static -std::string LLViewerRegion::regionFlagsToString(U32 flags) -{ - std::string result; - if (flags & REGION_FLAGS_SANDBOX) - { - if(!result.empty()) result += ", "; - result += "Sandbox"; - } - - if (flags & REGION_FLAGS_ALLOW_DAMAGE) - { - if(!result.empty()) result += ", "; - result += "Not Safe"; - } - // - //These dont seem to have value anymore. - /*if (!(flags & REGION_FLAGS_PUBLIC_ALLOWED)) - { - if(!result.empty()) result += ", "; - result += "Private"; - } - - if (!(flags & REGION_FLAGS_ALLOW_VOICE)) - { - if(!result.empty()) result += ", "; - result += "Voice Disabled"; - }*/ - if (flags & REGION_FLAGS_ALLOW_LANDMARK) - { - if(!result.empty()) result += ", "; - result += "Create Landmarks"; - } - - if (flags & REGION_FLAGS_ALLOW_DIRECT_TELEPORT) - { - if(!result.empty()) result += ", "; - result += "Direct Teleport"; - } - - if (flags & REGION_FLAGS_DENY_ANONYMOUS) - { - if(!result.empty()) result += ", "; - result += "Payment Info needed"; - } - - if (flags & REGION_FLAGS_DENY_AGEUNVERIFIED) - { - if(!result.empty()) result += ", "; - result += "Age Verified"; - } - - if (flags & REGION_FLAGS_BLOCK_FLY) - { - if(!result.empty()) result += ", "; - result += "No Fly"; - } - - // - - return result; -} - -// static -std::string LLViewerRegion::accessToString(U8 sim_access) -{ - switch(sim_access) - { - case SIM_ACCESS_PG: - return LLTrans::getString("SIM_ACCESS_PG"); - - case SIM_ACCESS_MATURE: - return LLTrans::getString("SIM_ACCESS_MATURE"); - - case SIM_ACCESS_ADULT: - return LLTrans::getString("SIM_ACCESS_ADULT"); - - case SIM_ACCESS_DOWN: - return LLTrans::getString("SIM_ACCESS_DOWN"); - - case SIM_ACCESS_MIN: - default: - return LLTrans::getString("SIM_ACCESS_MIN"); - } -} - -// static -std::string LLViewerRegion::accessToShortString(U8 sim_access) -{ - switch(sim_access) /* Flawfinder: ignore */ - { - case SIM_ACCESS_PG: - return "PG"; - - case SIM_ACCESS_MATURE: - return "M"; - - case SIM_ACCESS_ADULT: - return "A"; - - case SIM_ACCESS_MIN: - default: - return "U"; - } -} - -// static -void LLViewerRegion::processRegionInfo(LLMessageSystem* msg, void**) -{ - // send it to 'observers' - LLFloaterGodTools::processRegionInfo(msg); - LLFloaterRegionInfo::processRegionInfo(msg); - LLFloaterReporter::processRegionInfo(msg); -} - -void LLViewerRegion::setCacheID(const LLUUID& id) -{ - mImpl->mCacheID = id; -} - -S32 LLViewerRegion::renderPropertyLines() -{ - if (mParcelOverlay) - { - return mParcelOverlay->renderPropertyLines(); - } - else - { - return 0; - } -} - -// This gets called when the height field changes. -void LLViewerRegion::dirtyHeights() -{ - // Property lines need to be reconstructed when the land changes. - if (mParcelOverlay) - { - mParcelOverlay->setDirty(); - } -} - -BOOL LLViewerRegion::idleUpdate(F32 max_update_time) -{ - // did_update returns TRUE if we did at least one significant update - BOOL did_update = mImpl->mLandp->idleUpdate(max_update_time); - - if (mParcelOverlay) - { - // Hopefully not a significant time sink... - mParcelOverlay->idleUpdate(); - } - - return did_update; -} - - -// As above, but forcibly do the update. -void LLViewerRegion::forceUpdate() -{ - mImpl->mLandp->idleUpdate(0.f); - - if (mParcelOverlay) - { - mParcelOverlay->idleUpdate(true); - } -} - -void LLViewerRegion::connectNeighbor(LLViewerRegion *neighborp, U32 direction) -{ - mImpl->mLandp->connectNeighbor(neighborp->mImpl->mLandp, direction); - mCloudLayer.connectNeighbor(&(neighborp->mCloudLayer), direction); -} - - -void LLViewerRegion::disconnectAllNeighbors() -{ - mImpl->mLandp->disconnectAllNeighbors(); - mCloudLayer.disconnectAllNeighbors(); -} - -LLVLComposition * LLViewerRegion::getComposition() const -{ - return mImpl->mCompositionp; -} - -F32 LLViewerRegion::getCompositionXY(const S32 x, const S32 y) const -{ - if (x >= 256) - { - if (y >= 256) - { - LLVector3d center = getCenterGlobal() + LLVector3d(256.f, 256.f, 0.f); - LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromPosGlobal(center); - if (regionp) - { - // OK, we need to do some hackery here - different simulators no longer use - // the same composition values, necessarily. - // If we're attempting to blend, then we want to make the fractional part of - // this region match the fractional of the adjacent. For now, just minimize - // the delta. - F32 our_comp = getComposition()->getValueScaled(255, 255); - F32 adj_comp = regionp->getComposition()->getValueScaled(x - 256.f, y - 256.f); - while (llabs(our_comp - adj_comp) >= 1.f) - { - if (our_comp > adj_comp) - { - adj_comp += 1.f; - } - else - { - adj_comp -= 1.f; - } - } - return adj_comp; - } - } - else - { - LLVector3d center = getCenterGlobal() + LLVector3d(256.f, 0, 0.f); - LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromPosGlobal(center); - if (regionp) - { - // OK, we need to do some hackery here - different simulators no longer use - // the same composition values, necessarily. - // If we're attempting to blend, then we want to make the fractional part of - // this region match the fractional of the adjacent. For now, just minimize - // the delta. - F32 our_comp = getComposition()->getValueScaled(255.f, (F32)y); - F32 adj_comp = regionp->getComposition()->getValueScaled(x - 256.f, (F32)y); - while (llabs(our_comp - adj_comp) >= 1.f) - { - if (our_comp > adj_comp) - { - adj_comp += 1.f; - } - else - { - adj_comp -= 1.f; - } - } - return adj_comp; - } - } - } - else if (y >= 256) - { - LLVector3d center = getCenterGlobal() + LLVector3d(0.f, 256.f, 0.f); - LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromPosGlobal(center); - if (regionp) - { - // OK, we need to do some hackery here - different simulators no longer use - // the same composition values, necessarily. - // If we're attempting to blend, then we want to make the fractional part of - // this region match the fractional of the adjacent. For now, just minimize - // the delta. - F32 our_comp = getComposition()->getValueScaled((F32)x, 255.f); - F32 adj_comp = regionp->getComposition()->getValueScaled((F32)x, y - 256.f); - while (llabs(our_comp - adj_comp) >= 1.f) - { - if (our_comp > adj_comp) - { - adj_comp += 1.f; - } - else - { - adj_comp -= 1.f; - } - } - return adj_comp; - } - } - - return getComposition()->getValueScaled((F32)x, (F32)y); -} - -void LLViewerRegion::calculateCenterGlobal() -{ - mImpl->mCenterGlobal = mImpl->mOriginGlobal; - mImpl->mCenterGlobal.mdV[VX] += 0.5 * mWidth; - mImpl->mCenterGlobal.mdV[VY] += 0.5 * mWidth; - mImpl->mCenterGlobal.mdV[VZ] = 0.5 * mImpl->mLandp->getMinZ() + mImpl->mLandp->getMaxZ(); -} - -void LLViewerRegion::calculateCameraDistance() -{ - mCameraDistanceSquared = (F32)(gAgentCamera.getCameraPositionGlobal() - getCenterGlobal()).magVecSquared(); -} - -U32 LLViewerRegion::getNetDetailsForLCD() -{ - return mPingDelay; -} - -std::ostream& operator<<(std::ostream &s, const LLViewerRegion ®ion) -{ - s << "{ "; - s << region.mImpl->mHost; - s << " mOriginGlobal = " << region.getOriginGlobal()<< "\n"; - std::string name(region.getName()), zone(region.getZoning()); - if (! name.empty()) - { - s << " mName = " << name << '\n'; - } - if (! zone.empty()) - { - s << " mZoning = " << zone << '\n'; - } - s << "}"; - return s; -} - - -// ---------------- Protected Member Functions ---------------- - -void LLViewerRegion::updateNetStats() -{ - F32 dt = mImpl->mLastNetUpdate.getElapsedTimeAndResetF32(); - - LLCircuitData *cdp = gMessageSystem->mCircuitInfo.findCircuit(mImpl->mHost); - if (!cdp) - { - mAlive = false; - return; - } - - mAlive = true; - mDeltaTime = dt; - - mLastPacketsIn = mPacketsIn; - mLastBitsIn = mBitsIn; - mLastPacketsOut = mPacketsOut; - mLastPacketsLost = mPacketsLost; - - mPacketsIn = cdp->getPacketsIn(); - mBitsIn = 8 * cdp->getBytesIn(); - mPacketsOut = cdp->getPacketsOut(); - mPacketsLost = cdp->getPacketsLost(); - mPingDelay = cdp->getPingDelay(); - - mBitStat.addValue(mBitsIn - mLastBitsIn); - mPacketsStat.addValue(mPacketsIn - mLastPacketsIn); - mPacketsLostStat.addValue(mPacketsLost); -} - - -U32 LLViewerRegion::getPacketsLost() const -{ - LLCircuitData *cdp = gMessageSystem->mCircuitInfo.findCircuit(mImpl->mHost); - if (!cdp) - { - llinfos << "LLViewerRegion::getPacketsLost couldn't find circuit for " << mImpl->mHost << llendl; - return 0; - } - else - { - return cdp->getPacketsLost(); - } -} - -void LLViewerRegion::setHttpResponderPtrNULL() -{ - mImpl->mHttpResponderPtr = NULL; -} - -const LLHTTPClient::ResponderPtr LLViewerRegion::getHttpResponderPtr() const -{ - return mImpl->mHttpResponderPtr; -} - -BOOL LLViewerRegion::pointInRegionGlobal(const LLVector3d &point_global) const -{ - LLVector3 pos_region = getPosRegionFromGlobal(point_global); - - if (pos_region.mV[VX] < 0) - { - return FALSE; - } - if (pos_region.mV[VX] >= mWidth) - { - return FALSE; - } - if (pos_region.mV[VY] < 0) - { - return FALSE; - } - if (pos_region.mV[VY] >= mWidth) - { - return FALSE; - } - return TRUE; -} - -LLVector3 LLViewerRegion::getPosRegionFromGlobal(const LLVector3d &point_global) const -{ - LLVector3 pos_region; - pos_region.setVec(point_global - mImpl->mOriginGlobal); - return pos_region; -} - -LLVector3d LLViewerRegion::getPosGlobalFromRegion(const LLVector3 &pos_region) const -{ - LLVector3d pos_region_d; - pos_region_d.setVec(pos_region); - return pos_region_d + mImpl->mOriginGlobal; -} - -LLVector3 LLViewerRegion::getPosAgentFromRegion(const LLVector3 &pos_region) const -{ - LLVector3d pos_global = getPosGlobalFromRegion(pos_region); - - return gAgent.getPosAgentFromGlobal(pos_global); -} - -LLVector3 LLViewerRegion::getPosRegionFromAgent(const LLVector3 &pos_agent) const -{ - return pos_agent - getOriginAgent(); -} - -F32 LLViewerRegion::getLandHeightRegion(const LLVector3& region_pos) -{ - return mImpl->mLandp->resolveHeightRegion( region_pos ); -} - -bool LLViewerRegion::isAlive() -{ - return mAlive; -} - -BOOL LLViewerRegion::isOwnedSelf(const LLVector3& pos) -{ - if (mParcelOverlay) - { - return mParcelOverlay->isOwnedSelf(pos); - } else { - return FALSE; - } -} - -// Owned by a group you belong to? (officer or member) -BOOL LLViewerRegion::isOwnedGroup(const LLVector3& pos) -{ - if (mParcelOverlay) - { - return mParcelOverlay->isOwnedGroup(pos); - } else { - return FALSE; - } -} - -// the new TCP coarse location handler node -class CoarseLocationUpdate : public LLHTTPNode -{ -public: - virtual void post( - ResponsePtr responder, - const LLSD& context, - const LLSD& input) const - { - LLHost host(input["sender"].asString()); - LLViewerRegion* region = LLWorld::getInstance()->getRegion(host); - if( !region ) - { - return; - } - - S32 target_index = input["body"]["Index"][0]["Prey"].asInteger(); - S32 you_index = input["body"]["Index"][0]["You" ].asInteger(); - - LLDynamicArray* avatar_locs = ®ion->mMapAvatars; - LLDynamicArray* avatar_ids = ®ion->mMapAvatarIDs; - avatar_locs->reset(); - avatar_ids->reset(); - - //llinfos << "coarse locations agent[0] " << input["body"]["AgentData"][0]["AgentID"].asUUID() << llendl; - //llinfos << "my agent id = " << gAgent.getID() << llendl; - //llinfos << ll_pretty_print_sd(input) << llendl; - - LLSD - locs = input["body"]["Location"], - agents = input["body"]["AgentData"]; - LLSD::array_iterator - locs_it = locs.beginArray(), - agents_it = agents.beginArray(); - BOOL has_agent_data = input["body"].has("AgentData"); - - for(int i=0; - locs_it != locs.endArray(); - i++, locs_it++) - { - U8 - x = locs_it->get("X").asInteger(), - y = locs_it->get("Y").asInteger(), - z = locs_it->get("Z").asInteger(); - // treat the target specially for the map, and don't add you or the target - if(i == target_index) - { - LLVector3d global_pos(region->getOriginGlobal()); - global_pos.mdV[VX] += (F64)x; - global_pos.mdV[VY] += (F64)y; - global_pos.mdV[VZ] += (F64)z * 4.0; - LLAvatarTracker::instance().setTrackedCoarseLocation(global_pos); - } - else if( i != you_index) - { - U32 loc = x << 16 | y << 8 | z; loc = loc; - U32 pos = 0x0; - pos |= x; - pos <<= 8; - pos |= y; - pos <<= 8; - pos |= z; - avatar_locs->put(pos); - //llinfos << "next pos: " << x << "," << y << "," << z << ": " << pos << llendl; - if(has_agent_data) // for backwards compatibility with old message format - { - LLUUID agent_id(agents_it->get("AgentID").asUUID()); - //llinfos << "next agent: " << agent_id.asString() << llendl; - avatar_ids->put(agent_id); - } - } - if (has_agent_data) - { - agents_it++; - } - } - } -}; - -// build the coarse location HTTP node under the "/message" URL -LLHTTPRegistration - gHTTPRegistrationCoarseLocationUpdate( - "/message/CoarseLocationUpdate"); - - -// the deprecated coarse location handler -void LLViewerRegion::updateCoarseLocations(LLMessageSystem* msg) -{ - //llinfos << "CoarseLocationUpdate" << llendl; - mMapAvatars.reset(); - mMapAvatarIDs.reset(); // only matters in a rare case but it's good to be safe. - - U8 x_pos = 0; - U8 y_pos = 0; - U8 z_pos = 0; - - U32 pos = 0x0; - - S16 agent_index; - S16 target_index; - msg->getS16Fast(_PREHASH_Index, _PREHASH_You, agent_index); - msg->getS16Fast(_PREHASH_Index, _PREHASH_Prey, target_index); - - BOOL has_agent_data = msg->has(_PREHASH_AgentData); - S32 count = msg->getNumberOfBlocksFast(_PREHASH_Location); - for(S32 i = 0; i < count; i++) - { - msg->getU8Fast(_PREHASH_Location, _PREHASH_X, x_pos, i); - msg->getU8Fast(_PREHASH_Location, _PREHASH_Y, y_pos, i); - msg->getU8Fast(_PREHASH_Location, _PREHASH_Z, z_pos, i); - LLUUID agent_id = LLUUID::null; - if(has_agent_data) - { - msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, agent_id, i); - } - - //llinfos << " object X: " << (S32)x_pos << " Y: " << (S32)y_pos - // << " Z: " << (S32)(z_pos * 4) - // << llendl; - - // treat the target specially for the map - if(i == target_index) - { - LLVector3d global_pos(mImpl->mOriginGlobal); - global_pos.mdV[VX] += (F64)(x_pos); - global_pos.mdV[VY] += (F64)(y_pos); - global_pos.mdV[VZ] += (F64)(z_pos) * 4.0; - LLAvatarTracker::instance().setTrackedCoarseLocation(global_pos); - } - - //don't add you - if( i != agent_index) - { - pos = 0x0; - pos |= x_pos; - pos <<= 8; - pos |= y_pos; - pos <<= 8; - pos |= z_pos; - mMapAvatars.put(pos); - if(has_agent_data) - { - mMapAvatarIDs.put(agent_id); - } - } - } -} - -void LLViewerRegion::getInfo(LLSD& info) -{ - info["Region"]["Host"] = getHost().getIPandPort(); - info["Region"]["Name"] = getName(); - U32 x, y; - from_region_handle(getHandle(), &x, &y); - info["Region"]["Handle"]["x"] = (LLSD::Integer)x; - info["Region"]["Handle"]["y"] = (LLSD::Integer)y; -} - -void LLViewerRegion::getSimulatorFeatures(LLSD& sim_features) -{ - sim_features = mSimulatorFeatures; -} - -void LLViewerRegion::setSimulatorFeatures(const LLSD& sim_features) -{ - std::stringstream str; - - LLSDSerialize::toPrettyXML(sim_features, str); - llinfos << str.str() << llendl; - mSimulatorFeatures = sim_features; -} - -LLViewerRegion::eCacheUpdateResult LLViewerRegion::cacheFullUpdate(LLViewerObject* objectp, LLDataPackerBinaryBuffer &dp) -{ - U32 local_id = objectp->getLocalID(); - U32 crc = objectp->getCRC(); - - LLVOCacheEntry* entry = get_if_there(mImpl->mCacheMap, local_id, (LLVOCacheEntry*)NULL); - - if (entry) - { - // we've seen this object before - if (entry->getCRC() == crc) - { - // Record a hit - entry->recordDupe(); - return CACHE_UPDATE_DUPE; - } - - // Update the cache entry - mImpl->mCacheMap.erase(local_id); - delete entry; - entry = new LLVOCacheEntry(local_id, crc, dp); - mImpl->mCacheMap[local_id] = entry; - return CACHE_UPDATE_CHANGED; - } - - // we haven't seen this object before - - // Create new entry and add to map - eCacheUpdateResult result = CACHE_UPDATE_ADDED; - if (mImpl->mCacheMap.size() > MAX_OBJECT_CACHE_ENTRIES) - { - mImpl->mCacheMap.erase(mImpl->mCacheMap.begin()); - result = CACHE_UPDATE_REPLACED; - - } - entry = new LLVOCacheEntry(local_id, crc, dp); - - mImpl->mCacheMap[local_id] = entry; - return result; -} - -// Get data packer for this object, if we have cached data -// AND the CRC matches. JC -LLDataPacker *LLViewerRegion::getDP(U32 local_id, U32 crc, U8 &cache_miss_type) -{ - //llassert(mCacheLoaded); This assert failes often, changing to early-out -- davep, 2010/10/18 - - LLVOCacheEntry* entry = get_if_there(mImpl->mCacheMap, local_id, (LLVOCacheEntry*)NULL); - - if (entry) - { - // we've seen this object before - if (entry->getCRC() == crc) - { - // Record a hit - entry->recordHit(); - cache_miss_type = CACHE_MISS_TYPE_NONE; - return entry->getDP(crc); - } - else - { - // llinfos << "CRC miss for " << local_id << llendl; - cache_miss_type = CACHE_MISS_TYPE_CRC; - mCacheMissCRC.put(local_id); - } - } - else - { - // llinfos << "Cache miss for " << local_id << llendl; - cache_miss_type = CACHE_MISS_TYPE_FULL; - mCacheMissFull.put(local_id); - } - - return NULL; -} - -void LLViewerRegion::addCacheMissFull(const U32 local_id) -{ - mCacheMissFull.put(local_id); -} - -void LLViewerRegion::requestCacheMisses() -{ - S32 full_count = mCacheMissFull.count(); - S32 crc_count = mCacheMissCRC.count(); - if (full_count == 0 && crc_count == 0) return; - - LLMessageSystem* msg = gMessageSystem; - BOOL start_new_message = TRUE; - S32 blocks = 0; - S32 i; - - // Send full cache miss updates. For these, we KNOW we don't - // have a viewer object. - for (i = 0; i < full_count; i++) - { - if (start_new_message) - { - msg->newMessageFast(_PREHASH_RequestMultipleObjects); - msg->nextBlockFast(_PREHASH_AgentData); - msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); - msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); - start_new_message = FALSE; - } - - msg->nextBlockFast(_PREHASH_ObjectData); - msg->addU8Fast(_PREHASH_CacheMissType, CACHE_MISS_TYPE_FULL); - msg->addU32Fast(_PREHASH_ID, mCacheMissFull[i]); - blocks++; - - if (blocks >= 255) - { - sendReliableMessage(); - start_new_message = TRUE; - blocks = 0; - } - } - - // Send CRC miss updates. For these, we _might_ have a viewer object, - // but probably not. - for (i = 0; i < crc_count; i++) - { - if (start_new_message) - { - msg->newMessageFast(_PREHASH_RequestMultipleObjects); - msg->nextBlockFast(_PREHASH_AgentData); - msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); - msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); - start_new_message = FALSE; - } - - msg->nextBlockFast(_PREHASH_ObjectData); - msg->addU8Fast(_PREHASH_CacheMissType, CACHE_MISS_TYPE_CRC); - msg->addU32Fast(_PREHASH_ID, mCacheMissCRC[i]); - blocks++; - - if (blocks >= 255) - { - sendReliableMessage(); - start_new_message = TRUE; - blocks = 0; - } - } - - // finish any pending message - if (!start_new_message) - { - sendReliableMessage(); - } - mCacheMissFull.reset(); - mCacheMissCRC.reset(); - - mCacheDirty = TRUE ; - // llinfos << "KILLDEBUG Sent cache miss full " << full_count << " crc " << crc_count << llendl; - #if LL_RECORD_VIEWER_STATS - LLViewerStatsRecorder::instance()->beginObjectUpdateEvents(this); - LLViewerStatsRecorder::instance()->recordRequestCacheMissesEvent(full_count + crc_count); - LLViewerStatsRecorder::instance()->endObjectUpdateEvents(); - #endif -} - -void LLViewerRegion::dumpCache() -{ - const S32 BINS = 4; - S32 hit_bin[BINS]; - S32 change_bin[BINS]; - - S32 i; - for (i = 0; i < BINS; ++i) - { - hit_bin[i] = 0; - change_bin[i] = 0; - } - - LLVOCacheEntry *entry; - for(LLVOCacheEntry::vocache_entry_map_t::iterator iter = mImpl->mCacheMap.begin(); iter != mImpl->mCacheMap.end(); ++iter) - { - entry = iter->second ; - - S32 hits = entry->getHitCount(); - S32 changes = entry->getCRCChangeCount(); - - hits = llclamp(hits, 0, BINS-1); - changes = llclamp(changes, 0, BINS-1); - - hit_bin[hits]++; - change_bin[changes]++; - } - - llinfos << "Count " << mImpl->mCacheMap.size() << llendl; - for (i = 0; i < BINS; i++) - { - llinfos << "Hits " << i << " " << hit_bin[i] << llendl; - } - for (i = 0; i < BINS; i++) - { - llinfos << "Changes " << i << " " << change_bin[i] << llendl; - } -} - -void LLViewerRegion::unpackRegionHandshake() -{ - LLMessageSystem *msg = gMessageSystem; - - U32 region_flags; - U8 sim_access; - std::string sim_name; - LLUUID sim_owner; - BOOL is_estate_manager; - F32 water_height; - F32 billable_factor; - LLUUID cache_id; - - msg->getU32 ("RegionInfo", "RegionFlags", region_flags); - msg->getU8 ("RegionInfo", "SimAccess", sim_access); - msg->getString ("RegionInfo", "SimName", sim_name); - msg->getUUID ("RegionInfo", "SimOwner", sim_owner); - msg->getBOOL ("RegionInfo", "IsEstateManager", is_estate_manager); - msg->getF32 ("RegionInfo", "WaterHeight", water_height); - msg->getF32 ("RegionInfo", "BillableFactor", billable_factor); - msg->getUUID ("RegionInfo", "CacheID", cache_id ); - - setRegionFlags(region_flags); - setSimAccess(sim_access); - setRegionNameAndZone(sim_name); - setOwner(sim_owner); - setIsEstateManager(is_estate_manager); - setWaterHeight(water_height); - setBillableFactor(billable_factor); - setCacheID(cache_id); - - LLUUID region_id; - msg->getUUID("RegionInfo2", "RegionID", region_id); - setRegionID(region_id); - - // Retrieve the CR-53 (Homestead/Land SKU) information - S32 classID = 0; - S32 cpuRatio = 0; - std::string coloName; - std::string productSKU; - std::string productName; - - // the only reasonable way to decide if we actually have any data is to - // check to see if any of these fields have positive sizes - if (msg->getSize("RegionInfo3", "ColoName") > 0 || - msg->getSize("RegionInfo3", "ProductSKU") > 0 || - msg->getSize("RegionInfo3", "ProductName") > 0) - { - msg->getS32 ("RegionInfo3", "CPUClassID", classID); - msg->getS32 ("RegionInfo3", "CPURatio", cpuRatio); - msg->getString ("RegionInfo3", "ColoName", coloName); - msg->getString ("RegionInfo3", "ProductSKU", productSKU); - msg->getString ("RegionInfo3", "ProductName", productName); - - mClassID = classID; - mCPURatio = cpuRatio; - mColoName = coloName; - mProductSKU = productSKU; - mProductName = productName; - } - - LLVLComposition *compp = getComposition(); - if (compp) - { - LLUUID tmp_id; - - msg->getUUID("RegionInfo", "TerrainDetail0", tmp_id); - compp->setDetailTextureID(0, tmp_id); - msg->getUUID("RegionInfo", "TerrainDetail1", tmp_id); - compp->setDetailTextureID(1, tmp_id); - msg->getUUID("RegionInfo", "TerrainDetail2", tmp_id); - compp->setDetailTextureID(2, tmp_id); - msg->getUUID("RegionInfo", "TerrainDetail3", tmp_id); - compp->setDetailTextureID(3, tmp_id); - - F32 tmp_f32; - msg->getF32("RegionInfo", "TerrainStartHeight00", tmp_f32); - compp->setStartHeight(0, tmp_f32); - msg->getF32("RegionInfo", "TerrainStartHeight01", tmp_f32); - compp->setStartHeight(1, tmp_f32); - msg->getF32("RegionInfo", "TerrainStartHeight10", tmp_f32); - compp->setStartHeight(2, tmp_f32); - msg->getF32("RegionInfo", "TerrainStartHeight11", tmp_f32); - compp->setStartHeight(3, tmp_f32); - - msg->getF32("RegionInfo", "TerrainHeightRange00", tmp_f32); - compp->setHeightRange(0, tmp_f32); - msg->getF32("RegionInfo", "TerrainHeightRange01", tmp_f32); - compp->setHeightRange(1, tmp_f32); - msg->getF32("RegionInfo", "TerrainHeightRange10", tmp_f32); - compp->setHeightRange(2, tmp_f32); - msg->getF32("RegionInfo", "TerrainHeightRange11", tmp_f32); - compp->setHeightRange(3, tmp_f32); - - // If this is an UPDATE (params already ready, we need to regenerate - // all of our terrain stuff, by - if (compp->getParamsReady()) - { - getLand().dirtyAllPatches(); - } - else - { - compp->setParamsReady(); - } - } - - - // Now that we have the name, we can load the cache file - // off disk. - loadObjectCache(); - - // After loading cache, signal that simulator can start - // sending data. - // TODO: Send all upstream viewer->sim handshake info here. - LLHost host = msg->getSender(); - msg->newMessage("RegionHandshakeReply"); - msg->nextBlock("AgentData"); - msg->addUUID("AgentID", gAgent.getID()); - msg->addUUID("SessionID", gAgent.getSessionID()); - msg->nextBlock("RegionInfo"); - msg->addU32("Flags", 0x0 ); - msg->sendReliable(host); -} - - -void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames) -{ - //capabilityNames.append("AttachmentResources"); //Script limits (llfloaterscriptlimits.cpp) - //capabilityNames.append("AvatarPickerSearch"); //Display name/SLID lookup (llfloateravatarpicker.cpp) - capabilityNames.append("ChatSessionRequest"); - capabilityNames.append("CopyInventoryFromNotecard"); - capabilityNames.append("DispatchRegionInfo"); - capabilityNames.append("EstateChangeInfo"); - capabilityNames.append("EventQueueGet"); - /*capabilityNames.append("EnvironmentSettings"); - capabilityNames.append("ObjectMedia"); - capabilityNames.append("ObjectMediaNavigate");*/ - - if (false)//gSavedSettings.getBOOL("UseHTTPInventory")) //Caps suffixed with 2 by LL. Don't update until rest of fetch system is updated first. - { - capabilityNames.append("FetchLib"); - capabilityNames.append("FetchLibDescendents"); - capabilityNames.append("FetchInventory"); - capabilityNames.append("FetchInventoryDescendents"); - } - - capabilityNames.append("GetDisplayNames"); - capabilityNames.append("GetTexture"); -#if MESH_ENABLED - capabilityNames.append("GetMesh"); - capabilityNames.append("GetObjectCost"); - capabilityNames.append("GetObjectPhysicsData"); -#endif //MESH_ENABLED - capabilityNames.append("GroupProposalBallot"); - - capabilityNames.append("HomeLocation"); - //capabilityNames.append("LandResources"); //Script limits (llfloaterscriptlimits.cpp) - capabilityNames.append("MapLayer"); - capabilityNames.append("MapLayerGod"); -#if MESH_IMPORT - capabilityNames.append("MeshUploadFlag"); -#endif //MESH_IMPORT - capabilityNames.append("NewFileAgentInventory"); - capabilityNames.append("ParcelPropertiesUpdate"); - capabilityNames.append("ParcelMediaURLFilterList"); - capabilityNames.append("ParcelNavigateMedia"); - capabilityNames.append("ParcelVoiceInfoRequest"); - capabilityNames.append("ProductInfoRequest"); - capabilityNames.append("ProvisionVoiceAccountRequest"); - capabilityNames.append("RemoteParcelRequest"); - capabilityNames.append("RequestTextureDownload"); - capabilityNames.append("ResourceCostSelected"); //Unreferenced? - capabilityNames.append("SearchStatRequest"); - capabilityNames.append("SearchStatTracking"); - capabilityNames.append("SendPostcard"); - capabilityNames.append("SendUserReport"); - capabilityNames.append("SendUserReportWithScreenshot"); - capabilityNames.append("ServerReleaseNotes"); - //capabilityNames.append("SimConsole"); - capabilityNames.append("SimulatorFeatures"); - capabilityNames.append("SetDisplayName"); - //capabilityNames.append("SimConsoleAsync"); - capabilityNames.append("StartGroupProposal"); - capabilityNames.append("TextureStats"); - capabilityNames.append("UntrustedSimulatorMessage"); - capabilityNames.append("UpdateAgentInformation"); - capabilityNames.append("UpdateAgentLanguage"); - capabilityNames.append("UpdateGestureAgentInventory"); - capabilityNames.append("UpdateNotecardAgentInventory"); - capabilityNames.append("UpdateScriptAgent"); - capabilityNames.append("UpdateGestureTaskInventory"); - capabilityNames.append("UpdateNotecardTaskInventory"); - capabilityNames.append("UpdateScriptTask"); - capabilityNames.append("UploadBakedTexture"); - //capabilityNames.append("ViewerMetrics"); - capabilityNames.append("ViewerStartAuction"); - capabilityNames.append("ViewerStats"); - // Please add new capabilities alphabetically to reduce - // merge conflicts. -} -void LLViewerRegion::setSeedCapability(const std::string& url) -{ - if (getCapability("Seed") == url) - { - // llwarns << "Ignoring duplicate seed capability" << llendl; - return; - } - - delete mImpl->mEventPoll; - mImpl->mEventPoll = NULL; - - mImpl->mCapabilities.clear(); - setCapability("Seed", url); - - LLSD capabilityNames = LLSD::emptyArray(); - - mImpl->buildCapabilityNames(capabilityNames); - - - llinfos << "posting to seed " << url << llendl; - - mImpl->mHttpResponderPtr = BaseCapabilitiesComplete::build(this) ; - LLHTTPClient::post(url, capabilityNames, mImpl->mHttpResponderPtr); -} - -class SimulatorFeaturesReceived : public LLHTTPClient::Responder -{ - LOG_CLASS(SimulatorFeaturesReceived); -public: - SimulatorFeaturesReceived(LLViewerRegion* region) - : mRegion(region) - { } - - - void error(U32 statusNum, const std::string& reason) - { - LL_WARNS2("AppInit", "SimulatorFeatures") << statusNum << ": " << reason << LL_ENDL; - } - - void result(const LLSD& content) - { - if(!mRegion) //region is removed or responder is not created. - { - return ; - } - - mRegion->setSimulatorFeatures(content); - } - - static boost::intrusive_ptr build( - LLViewerRegion* region) - { - return boost::intrusive_ptr( - new SimulatorFeaturesReceived(region)); - } - -private: - LLViewerRegion* mRegion; -}; - - -void LLViewerRegion::setCapability(const std::string& name, const std::string& url) -{ - if(name == "EventQueueGet") - { - delete mImpl->mEventPoll; - mImpl->mEventPoll = NULL; - mImpl->mEventPoll = new LLEventPoll(url, getHost()); - } - else if(name == "UntrustedSimulatorMessage") - { - LLHTTPSender::setSender(mImpl->mHost, new LLCapHTTPSender(url)); - } - else if (name == "SimulatorFeatures") - { - // kick off a request for simulator features - LLHTTPClient::get(url, new SimulatorFeaturesReceived(this)); - } - else - { - mImpl->mCapabilities[name] = url; - if(name == "GetTexture") - { - mHttpUrl = url ; - } - } -} - -bool LLViewerRegion::isSpecialCapabilityName(const std::string &name) -{ - return name == "EventQueueGet" || name == "UntrustedSimulatorMessage"; -} - -std::string LLViewerRegion::getCapability(const std::string& name) const -{ - CapabilityMap::const_iterator iter = mImpl->mCapabilities.find(name); - if(iter == mImpl->mCapabilities.end()) - { - return ""; - } - return iter->second; -} - -bool LLViewerRegion::capabilitiesReceived() const -{ - return mCapabilitiesReceived; -} - -void LLViewerRegion::setCapabilitiesReceived(bool received) -{ - mCapabilitiesReceived = received; - - // Tell interested parties that we've received capabilities, - // so that they can safely use getCapability(). - if (received) - { - mCapabilitiesReceivedSignal(getRegionID()); - - // This is a single-shot signal. Forget callbacks to save resources. - mCapabilitiesReceivedSignal.disconnect_all_slots(); - } -} - -boost::signals2::connection LLViewerRegion::setCapabilitiesReceivedCallback(const caps_received_signal_t::slot_type& cb) -{ - return mCapabilitiesReceivedSignal.connect(cb); -} - -void LLViewerRegion::logActiveCapabilities() const -{ - int count = 0; - CapabilityMap::const_iterator iter; - for (iter = mImpl->mCapabilities.begin(); iter != mImpl->mCapabilities.end(); ++iter, ++count) - { - if (!iter->second.empty()) - { - llinfos << iter->first << " URL is " << iter->second << llendl; - } - } - llinfos << "Dumped " << count << " entries." << llendl; -} - -LLSpatialPartition* LLViewerRegion::getSpatialPartition(U32 type) -{ - if (type < mImpl->mObjectPartition.size()) - { - return mImpl->mObjectPartition[type]; - } - return NULL; -} - -void LLViewerRegion::showReleaseNotes() -{ - std::string url = this->getCapability("ServerReleaseNotes"); - - if (url.empty()) { - // HACK haven't received the capability yet, we'll wait until - // it arives. - mReleaseNotesRequested = TRUE; - return; - } - - LLWeb::loadURL(url); - mReleaseNotesRequested = FALSE; -} - -std::string LLViewerRegion::getDescription() const -{ - return stringize(*this); -} - -#if MESH_ENABLED -bool LLViewerRegion::meshUploadEnabled() const -{ - return (mSimulatorFeatures.has("MeshUploadEnabled") && - mSimulatorFeatures["MeshUploadEnabled"].asBoolean()); -} - -bool LLViewerRegion::meshRezEnabled() const -{ - return (mSimulatorFeatures.has("MeshRezEnabled") && - mSimulatorFeatures["MeshRezEnabled"].asBoolean()); -} -#endif //MESH_ENABLED - +/** + * @file llviewerregion.cpp + * @brief Implementation of the LLViewerRegion class. + * + * $LicenseInfo:firstyear=2000&license=viewergpl$ + * + * Copyright (c) 2000-2009, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ + +#include "llviewerprecompiledheaders.h" + +#include "llviewerregion.h" + +#include "indra_constants.h" +#include "llmath.h" +#include "llhttpclient.h" +#include "llregionflags.h" +#include "llregionhandle.h" +#include "llsurface.h" +#include "message.h" +//#include "vmath.h" +#include "v3math.h" +#include "v4math.h" + +#include "llagent.h" +#include "llagentcamera.h" +#include "llcallingcard.h" +#include "llcaphttpsender.h" +#include "lldir.h" +#include "lleventpoll.h" +#include "llfloatergodtools.h" +#include "llfloaterreporter.h" +#include "llfloaterregioninfo.h" +#include "llhttpnode.h" +#include "llsdutil.h" +#include "llstartup.h" +#include "lltrans.h" +#include "llurldispatcher.h" +#include "llviewerobjectlist.h" +#include "llviewerparceloverlay.h" +#include "llvlmanager.h" +#include "llvlcomposition.h" +#include "llvocache.h" +#include "llvoclouds.h" +#include "llworld.h" +#include "llspatialpartition.h" +#include "stringize.h" +#include "llviewercontrol.h" +#include "llsdserialize.h" +#include "llviewerparcelmgr.h" + +extern BOOL gNoRender; + +#ifdef LL_WINDOWS + #pragma warning(disable:4355) +#endif + +const F32 WATER_TEXTURE_SCALE = 8.f; // Number of times to repeat the water texture across a region +const S16 MAX_MAP_DIST = 10; +typedef std::map CapabilityMap; + +class LLViewerRegionImpl { +public: + LLViewerRegionImpl(LLViewerRegion * region, LLHost const & host) + : mHost(host), + mCompositionp(NULL), + mEventPoll(NULL)//, + // I'd prefer to set the LLCapabilityListener name to match the region + // name -- it's disappointing that's not available at construction time. + // We could instead store an LLCapabilityListener*, making + // setRegionNameAndZone() replace the instance. Would that pose + // consistency problems? Can we even request a capability before calling + // setRegionNameAndZone()? + // For testability -- the new Michael Feathers paradigm -- + // LLCapabilityListener binds all the globals it expects to need at + // construction time. + //mCapabilityListener(host.getString(), gMessageSystem, *region, + //gAgent.getID(), gAgent.getSessionID()) + { + } + + void buildCapabilityNames(LLSD& capabilityNames); + + // The surfaces and other layers + LLSurface* mLandp; + + // Region geometry data + LLVector3d mOriginGlobal; // Location of southwest corner of region (meters) + LLVector3d mCenterGlobal; // Location of center in world space (meters) + LLHost mHost; + + // The unique ID for this region. + LLUUID mRegionID; + + // region/estate owner - usually null. + LLUUID mOwnerID; + + // Network statistics for the region's circuit... + LLTimer mLastNetUpdate; + + // Misc + LLVLComposition *mCompositionp; // Composition layer for the surface + + LLVOCacheEntry::vocache_entry_map_t mCacheMap; + // time? + // LRU info? + + // Cache ID is unique per-region, across renames, moving locations, + // etc. + LLUUID mCacheID; + + CapabilityMap mCapabilities; + + LLEventPoll* mEventPoll; + + /// Post an event to this LLCapabilityListener to invoke a capability message on + /// this LLViewerRegion's server + /// (https://wiki.lindenlab.com/wiki/Viewer:Messaging/Messaging_Notes#Capabilities) + //LLCapabilityListener mCapabilityListener; + + //spatial partitions for objects in this region + std::vector mObjectPartition; + + LLHTTPClient::ResponderPtr mHttpResponderPtr ; +}; + +class BaseCapabilitiesComplete : public LLHTTPClient::Responder +{ + LOG_CLASS(BaseCapabilitiesComplete); +public: + BaseCapabilitiesComplete(LLViewerRegion* region) + : mRegion(region) + { } + virtual ~BaseCapabilitiesComplete() + { + if(mRegion) + { + mRegion->setHttpResponderPtrNULL() ; + } + } + + void setRegion(LLViewerRegion* region) + { + mRegion = region ; + } + + void error(U32 statusNum, const std::string& reason) + { + LL_WARNS2("AppInit", "Capabilities") << statusNum << ": " << reason << LL_ENDL; + + if (STATE_SEED_GRANTED_WAIT == LLStartUp::getStartupState()) + { + LLStartUp::setStartupState( STATE_SEED_CAP_GRANTED ); + } + } + + void result(const LLSD& content) + { + if(!mRegion || LLHTTPClient::ResponderPtr(this) != mRegion->getHttpResponderPtr()) //region is removed or responder is not created. + { + return ; + } + + LLSD::map_const_iterator iter; + for(iter = content.beginMap(); iter != content.endMap(); ++iter) + { + mRegion->setCapability(iter->first, iter->second); + LL_DEBUGS2("AppInit", "Capabilities") << "got capability for " + << iter->first << LL_ENDL; + + /* HACK we're waiting for the ServerReleaseNotes */ + if (iter->first == "ServerReleaseNotes" && mRegion->getReleaseNotesRequested()) + { + mRegion->showReleaseNotes(); + } + } + + mRegion->setCapabilitiesReceived(true); + + if (STATE_SEED_GRANTED_WAIT == LLStartUp::getStartupState()) + { + LLStartUp::setStartupState( STATE_SEED_CAP_GRANTED ); + } + } + + static boost::intrusive_ptr build( + LLViewerRegion* region) + { + return boost::intrusive_ptr( + new BaseCapabilitiesComplete(region)); + } + +private: + LLViewerRegion* mRegion; +}; + + +LLViewerRegion::LLViewerRegion(const U64 &handle, + const LLHost &host, + const U32 grids_per_region_edge, + const U32 grids_per_patch_edge, + const F32 region_width_meters) +: mImpl(new LLViewerRegionImpl(this, host)), + mHandle(handle), + mTimeDilation(1.0f), + mName(""), + mZoning(""), + mIsEstateManager(FALSE), + mRegionFlags( REGION_FLAGS_DEFAULT ), + mSimAccess( SIM_ACCESS_MIN ), + mBillableFactor(1.0), + mMaxTasks(DEFAULT_MAX_REGION_WIDE_PRIM_COUNT), + mClassID(0), + mCPURatio(0), + mColoName("unknown"), + mProductSKU("unknown"), + mProductName("unknown"), + mHttpUrl(""), + mCacheLoaded(FALSE), + mCacheDirty(FALSE), + mReleaseNotesRequested(FALSE), + mCapabilitiesReceived(false), + mWidth(region_width_meters) +{ + mImpl->mOriginGlobal = from_region_handle(handle); + updateRenderMatrix(); + + mImpl->mLandp = new LLSurface('l', NULL); + + if (!gNoRender) + { + // Create the composition layer for the surface + mImpl->mCompositionp = + new LLVLComposition(mImpl->mLandp, + grids_per_region_edge, + mWidth / grids_per_region_edge); + mImpl->mCompositionp->setSurface(mImpl->mLandp); + + // Create the surfaces + mImpl->mLandp->setRegion(this); + mImpl->mLandp->create(grids_per_region_edge, + grids_per_patch_edge, + mImpl->mOriginGlobal, + mWidth); + } + + if (!gNoRender) + { + mParcelOverlay = new LLViewerParcelOverlay(this, mWidth); + //Re-init the parcel mgr for this sim + LLViewerParcelMgr::getInstance()->init(mWidth); + } + else + { + mParcelOverlay = NULL; + } + + setOriginGlobal(from_region_handle(handle)); + calculateCenterGlobal(); + + // Create the object lists + initStats(); + + //create object partitions + //MUST MATCH declaration of eObjectPartitions + mImpl->mObjectPartition.push_back(new LLHUDPartition()); //PARTITION_HUD + mImpl->mObjectPartition.push_back(new LLTerrainPartition()); //PARTITION_TERRAIN + mImpl->mObjectPartition.push_back(new LLVoidWaterPartition()); //PARTITION_VOIDWATER + mImpl->mObjectPartition.push_back(new LLWaterPartition()); //PARTITION_WATER + mImpl->mObjectPartition.push_back(new LLTreePartition()); //PARTITION_TREE + mImpl->mObjectPartition.push_back(new LLParticlePartition()); //PARTITION_PARTICLE + mImpl->mObjectPartition.push_back(new LLCloudPartition()); //PARTITION_CLOUD + mImpl->mObjectPartition.push_back(new LLGrassPartition()); //PARTITION_GRASS + mImpl->mObjectPartition.push_back(new LLVolumePartition()); //PARTITION_VOLUME + mImpl->mObjectPartition.push_back(new LLBridgePartition()); //PARTITION_BRIDGE + mImpl->mObjectPartition.push_back(new LLHUDParticlePartition());//PARTITION_HUD_PARTICLE + mImpl->mObjectPartition.push_back(NULL); //PARTITION_NONE +} + + +void LLViewerRegion::initStats() +{ + mImpl->mLastNetUpdate.reset(); + mPacketsIn = 0; + mBitsIn = 0; + mLastBitsIn = 0; + mLastPacketsIn = 0; + mPacketsOut = 0; + mLastPacketsOut = 0; + mPacketsLost = 0; + mLastPacketsLost = 0; + mPingDelay = 0; + mAlive = false; // can become false if circuit disconnects +} + +LLViewerRegion::~LLViewerRegion() +{ + if(mImpl->mHttpResponderPtr) + { + (static_cast(mImpl->mHttpResponderPtr.get()))->setRegion(NULL) ; + } + + gVLManager.cleanupData(this); + // Can't do this on destruction, because the neighbor pointers might be invalid. + // This should be reference counted... + disconnectAllNeighbors(); + mCloudLayer.destroy(); + LLViewerPartSim::getInstance()->cleanupRegion(this); + + gObjectList.killObjects(this); + + delete mImpl->mCompositionp; + delete mParcelOverlay; + delete mImpl->mLandp; + delete mImpl->mEventPoll; + LLHTTPSender::clearSender(mImpl->mHost); + + saveObjectCache(); + + std::for_each(mImpl->mObjectPartition.begin(), mImpl->mObjectPartition.end(), DeletePointer()); + + delete mImpl; + mImpl = NULL; +} + +/*LLEventPump& LLViewerRegion::getCapAPI() const +{ + return mImpl->mCapabilityListener.getCapAPI(); +}*/ + +/*virtual*/ +const LLHost& LLViewerRegion::getHost() const +{ + return mImpl->mHost; +} + +LLSurface & LLViewerRegion::getLand() const +{ + return *mImpl->mLandp; +} + +const LLUUID& LLViewerRegion::getRegionID() const +{ + return mImpl->mRegionID; +} + +void LLViewerRegion::setRegionID(const LLUUID& region_id) +{ + mImpl->mRegionID = region_id; +} + +void LLViewerRegion::loadObjectCache() +{ + if (mCacheLoaded) + { + return; + } + + // Presume success. If it fails, we don't want to try again. + mCacheLoaded = TRUE; + + if(LLVOCache::hasInstance()) + { + LLVOCache::getInstance()->readFromCache(mHandle, mImpl->mCacheID, mImpl->mCacheMap) ; + } +} + + +void LLViewerRegion::saveObjectCache() +{ + if (!mCacheLoaded) + { + return; + } + + if (mImpl->mCacheMap.empty()) + { + return; + } + + if(LLVOCache::hasInstance()) + { + LLVOCache::getInstance()->writeToCache(mHandle, mImpl->mCacheID, mImpl->mCacheMap, mCacheDirty) ; + mCacheDirty = FALSE; + } + + for(LLVOCacheEntry::vocache_entry_map_t::iterator iter = mImpl->mCacheMap.begin(); iter != mImpl->mCacheMap.end(); ++iter) + { + delete iter->second; + } + mImpl->mCacheMap.clear(); +} + +void LLViewerRegion::sendMessage() +{ + gMessageSystem->sendMessage(mImpl->mHost); +} + +void LLViewerRegion::sendReliableMessage() +{ + gMessageSystem->sendReliable(mImpl->mHost); +} + +void LLViewerRegion::setFlags(BOOL b, U32 flags) +{ + if (b) + { + mRegionFlags |= flags; + } + else + { + mRegionFlags &= ~flags; + } +} + +void LLViewerRegion::setWaterHeight(F32 water_level) +{ + mImpl->mLandp->setWaterHeight(water_level); +} + +F32 LLViewerRegion::getWaterHeight() const +{ + return mImpl->mLandp->getWaterHeight(); +} + +BOOL LLViewerRegion::isVoiceEnabled() const +{ + return (getRegionFlags() & REGION_FLAGS_ALLOW_VOICE); +} + +void LLViewerRegion::setRegionFlags(U32 flags) +{ + mRegionFlags = flags; +} + + +void LLViewerRegion::setOriginGlobal(const LLVector3d &origin_global) +{ + mImpl->mOriginGlobal = origin_global; + updateRenderMatrix(); + mImpl->mLandp->setOriginGlobal(origin_global); + mWind.setOriginGlobal(origin_global); + mCloudLayer.setOriginGlobal(origin_global); + calculateCenterGlobal(); +} + +void LLViewerRegion::updateRenderMatrix() +{ + mRenderMatrix.setTranslation(getOriginAgent()); +} + +void LLViewerRegion::setTimeDilation(F32 time_dilation) +{ + mTimeDilation = time_dilation; +} + +const LLVector3d & LLViewerRegion::getOriginGlobal() const +{ + return mImpl->mOriginGlobal; +} + +LLVector3 LLViewerRegion::getOriginAgent() const +{ + return gAgent.getPosAgentFromGlobal(mImpl->mOriginGlobal); +} + +const LLVector3d & LLViewerRegion::getCenterGlobal() const +{ + return mImpl->mCenterGlobal; +} + +LLVector3 LLViewerRegion::getCenterAgent() const +{ + return gAgent.getPosAgentFromGlobal(mImpl->mCenterGlobal); +} + +void LLViewerRegion::setOwner(const LLUUID& owner_id) +{ + mImpl->mOwnerID = owner_id; +} + +const LLUUID& LLViewerRegion::getOwner() const +{ + return mImpl->mOwnerID; +} + +void LLViewerRegion::setRegionNameAndZone (const std::string& name_zone) +{ + std::string::size_type pipe_pos = name_zone.find('|'); + S32 length = name_zone.size(); + if (pipe_pos != std::string::npos) + { + mName = name_zone.substr(0, pipe_pos); + mZoning = name_zone.substr(pipe_pos+1, length-(pipe_pos+1)); + } + else + { + mName = name_zone; + mZoning = ""; + } + + LLStringUtil::stripNonprintable(mName); + LLStringUtil::stripNonprintable(mZoning); +} + +BOOL LLViewerRegion::canManageEstate() const +{ + return gAgent.isGodlike() + || isEstateManager() + || gAgent.getID() == getOwner(); +} + +const std::string LLViewerRegion::getSimAccessString() const +{ + return accessToString(mSimAccess); +} + + +// static +std::string LLViewerRegion::regionFlagsToString(U32 flags) +{ + std::string result; + if (flags & REGION_FLAGS_SANDBOX) + { + if(!result.empty()) result += ", "; + result += "Sandbox"; + } + + if (flags & REGION_FLAGS_ALLOW_DAMAGE) + { + if(!result.empty()) result += ", "; + result += "Not Safe"; + } + // + //These dont seem to have value anymore. + /*if (!(flags & REGION_FLAGS_PUBLIC_ALLOWED)) + { + if(!result.empty()) result += ", "; + result += "Private"; + } + + if (!(flags & REGION_FLAGS_ALLOW_VOICE)) + { + if(!result.empty()) result += ", "; + result += "Voice Disabled"; + }*/ + if (flags & REGION_FLAGS_ALLOW_LANDMARK) + { + if(!result.empty()) result += ", "; + result += "Create Landmarks"; + } + + if (flags & REGION_FLAGS_ALLOW_DIRECT_TELEPORT) + { + if(!result.empty()) result += ", "; + result += "Direct Teleport"; + } + + if (flags & REGION_FLAGS_DENY_ANONYMOUS) + { + if(!result.empty()) result += ", "; + result += "Payment Info needed"; + } + + if (flags & REGION_FLAGS_DENY_AGEUNVERIFIED) + { + if(!result.empty()) result += ", "; + result += "Age Verified"; + } + + if (flags & REGION_FLAGS_BLOCK_FLY) + { + if(!result.empty()) result += ", "; + result += "No Fly"; + } + + // + + return result; +} + +// static +std::string LLViewerRegion::accessToString(U8 sim_access) +{ + switch(sim_access) + { + case SIM_ACCESS_PG: + return LLTrans::getString("SIM_ACCESS_PG"); + + case SIM_ACCESS_MATURE: + return LLTrans::getString("SIM_ACCESS_MATURE"); + + case SIM_ACCESS_ADULT: + return LLTrans::getString("SIM_ACCESS_ADULT"); + + case SIM_ACCESS_DOWN: + return LLTrans::getString("SIM_ACCESS_DOWN"); + + case SIM_ACCESS_MIN: + default: + return LLTrans::getString("SIM_ACCESS_MIN"); + } +} + +// static +std::string LLViewerRegion::accessToShortString(U8 sim_access) +{ + switch(sim_access) /* Flawfinder: ignore */ + { + case SIM_ACCESS_PG: + return "PG"; + + case SIM_ACCESS_MATURE: + return "M"; + + case SIM_ACCESS_ADULT: + return "A"; + + case SIM_ACCESS_MIN: + default: + return "U"; + } +} + +// static +void LLViewerRegion::processRegionInfo(LLMessageSystem* msg, void**) +{ + // send it to 'observers' + LLFloaterGodTools::processRegionInfo(msg); + LLFloaterRegionInfo::processRegionInfo(msg); + LLFloaterReporter::processRegionInfo(msg); +} + +void LLViewerRegion::setCacheID(const LLUUID& id) +{ + mImpl->mCacheID = id; +} + +S32 LLViewerRegion::renderPropertyLines() +{ + if (mParcelOverlay) + { + return mParcelOverlay->renderPropertyLines(); + } + else + { + return 0; + } +} + +// This gets called when the height field changes. +void LLViewerRegion::dirtyHeights() +{ + // Property lines need to be reconstructed when the land changes. + if (mParcelOverlay) + { + mParcelOverlay->setDirty(); + } +} + +BOOL LLViewerRegion::idleUpdate(F32 max_update_time) +{ + // did_update returns TRUE if we did at least one significant update + BOOL did_update = mImpl->mLandp->idleUpdate(max_update_time); + + if (mParcelOverlay) + { + // Hopefully not a significant time sink... + mParcelOverlay->idleUpdate(); + } + + return did_update; +} + + +// As above, but forcibly do the update. +void LLViewerRegion::forceUpdate() +{ + mImpl->mLandp->idleUpdate(0.f); + + if (mParcelOverlay) + { + mParcelOverlay->idleUpdate(true); + } +} + +void LLViewerRegion::connectNeighbor(LLViewerRegion *neighborp, U32 direction) +{ + mImpl->mLandp->connectNeighbor(neighborp->mImpl->mLandp, direction); + mCloudLayer.connectNeighbor(&(neighborp->mCloudLayer), direction); +} + + +void LLViewerRegion::disconnectAllNeighbors() +{ + mImpl->mLandp->disconnectAllNeighbors(); + mCloudLayer.disconnectAllNeighbors(); +} + +LLVLComposition * LLViewerRegion::getComposition() const +{ + return mImpl->mCompositionp; +} + +F32 LLViewerRegion::getCompositionXY(const S32 x, const S32 y) const +{ + if (x >= 256) + { + if (y >= 256) + { + LLVector3d center = getCenterGlobal() + LLVector3d(256.f, 256.f, 0.f); + LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromPosGlobal(center); + if (regionp) + { + // OK, we need to do some hackery here - different simulators no longer use + // the same composition values, necessarily. + // If we're attempting to blend, then we want to make the fractional part of + // this region match the fractional of the adjacent. For now, just minimize + // the delta. + F32 our_comp = getComposition()->getValueScaled(255, 255); + F32 adj_comp = regionp->getComposition()->getValueScaled(x - 256.f, y - 256.f); + while (llabs(our_comp - adj_comp) >= 1.f) + { + if (our_comp > adj_comp) + { + adj_comp += 1.f; + } + else + { + adj_comp -= 1.f; + } + } + return adj_comp; + } + } + else + { + LLVector3d center = getCenterGlobal() + LLVector3d(256.f, 0, 0.f); + LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromPosGlobal(center); + if (regionp) + { + // OK, we need to do some hackery here - different simulators no longer use + // the same composition values, necessarily. + // If we're attempting to blend, then we want to make the fractional part of + // this region match the fractional of the adjacent. For now, just minimize + // the delta. + F32 our_comp = getComposition()->getValueScaled(255.f, (F32)y); + F32 adj_comp = regionp->getComposition()->getValueScaled(x - 256.f, (F32)y); + while (llabs(our_comp - adj_comp) >= 1.f) + { + if (our_comp > adj_comp) + { + adj_comp += 1.f; + } + else + { + adj_comp -= 1.f; + } + } + return adj_comp; + } + } + } + else if (y >= 256) + { + LLVector3d center = getCenterGlobal() + LLVector3d(0.f, 256.f, 0.f); + LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromPosGlobal(center); + if (regionp) + { + // OK, we need to do some hackery here - different simulators no longer use + // the same composition values, necessarily. + // If we're attempting to blend, then we want to make the fractional part of + // this region match the fractional of the adjacent. For now, just minimize + // the delta. + F32 our_comp = getComposition()->getValueScaled((F32)x, 255.f); + F32 adj_comp = regionp->getComposition()->getValueScaled((F32)x, y - 256.f); + while (llabs(our_comp - adj_comp) >= 1.f) + { + if (our_comp > adj_comp) + { + adj_comp += 1.f; + } + else + { + adj_comp -= 1.f; + } + } + return adj_comp; + } + } + + return getComposition()->getValueScaled((F32)x, (F32)y); +} + +void LLViewerRegion::calculateCenterGlobal() +{ + mImpl->mCenterGlobal = mImpl->mOriginGlobal; + mImpl->mCenterGlobal.mdV[VX] += 0.5 * mWidth; + mImpl->mCenterGlobal.mdV[VY] += 0.5 * mWidth; + mImpl->mCenterGlobal.mdV[VZ] = 0.5 * mImpl->mLandp->getMinZ() + mImpl->mLandp->getMaxZ(); +} + +void LLViewerRegion::calculateCameraDistance() +{ + mCameraDistanceSquared = (F32)(gAgentCamera.getCameraPositionGlobal() - getCenterGlobal()).magVecSquared(); +} + +U32 LLViewerRegion::getNetDetailsForLCD() +{ + return mPingDelay; +} + +std::ostream& operator<<(std::ostream &s, const LLViewerRegion ®ion) +{ + s << "{ "; + s << region.mImpl->mHost; + s << " mOriginGlobal = " << region.getOriginGlobal()<< "\n"; + std::string name(region.getName()), zone(region.getZoning()); + if (! name.empty()) + { + s << " mName = " << name << '\n'; + } + if (! zone.empty()) + { + s << " mZoning = " << zone << '\n'; + } + s << "}"; + return s; +} + + +// ---------------- Protected Member Functions ---------------- + +void LLViewerRegion::updateNetStats() +{ + F32 dt = mImpl->mLastNetUpdate.getElapsedTimeAndResetF32(); + + LLCircuitData *cdp = gMessageSystem->mCircuitInfo.findCircuit(mImpl->mHost); + if (!cdp) + { + mAlive = false; + return; + } + + mAlive = true; + mDeltaTime = dt; + + mLastPacketsIn = mPacketsIn; + mLastBitsIn = mBitsIn; + mLastPacketsOut = mPacketsOut; + mLastPacketsLost = mPacketsLost; + + mPacketsIn = cdp->getPacketsIn(); + mBitsIn = 8 * cdp->getBytesIn(); + mPacketsOut = cdp->getPacketsOut(); + mPacketsLost = cdp->getPacketsLost(); + mPingDelay = cdp->getPingDelay(); + + mBitStat.addValue(mBitsIn - mLastBitsIn); + mPacketsStat.addValue(mPacketsIn - mLastPacketsIn); + mPacketsLostStat.addValue(mPacketsLost); +} + + +U32 LLViewerRegion::getPacketsLost() const +{ + LLCircuitData *cdp = gMessageSystem->mCircuitInfo.findCircuit(mImpl->mHost); + if (!cdp) + { + llinfos << "LLViewerRegion::getPacketsLost couldn't find circuit for " << mImpl->mHost << llendl; + return 0; + } + else + { + return cdp->getPacketsLost(); + } +} + +void LLViewerRegion::setHttpResponderPtrNULL() +{ + mImpl->mHttpResponderPtr = NULL; +} + +const LLHTTPClient::ResponderPtr LLViewerRegion::getHttpResponderPtr() const +{ + return mImpl->mHttpResponderPtr; +} + +BOOL LLViewerRegion::pointInRegionGlobal(const LLVector3d &point_global) const +{ + LLVector3 pos_region = getPosRegionFromGlobal(point_global); + + if (pos_region.mV[VX] < 0) + { + return FALSE; + } + if (pos_region.mV[VX] >= mWidth) + { + return FALSE; + } + if (pos_region.mV[VY] < 0) + { + return FALSE; + } + if (pos_region.mV[VY] >= mWidth) + { + return FALSE; + } + return TRUE; +} + +LLVector3 LLViewerRegion::getPosRegionFromGlobal(const LLVector3d &point_global) const +{ + LLVector3 pos_region; + pos_region.setVec(point_global - mImpl->mOriginGlobal); + return pos_region; +} + +LLVector3d LLViewerRegion::getPosGlobalFromRegion(const LLVector3 &pos_region) const +{ + LLVector3d pos_region_d; + pos_region_d.setVec(pos_region); + return pos_region_d + mImpl->mOriginGlobal; +} + +LLVector3 LLViewerRegion::getPosAgentFromRegion(const LLVector3 &pos_region) const +{ + LLVector3d pos_global = getPosGlobalFromRegion(pos_region); + + return gAgent.getPosAgentFromGlobal(pos_global); +} + +LLVector3 LLViewerRegion::getPosRegionFromAgent(const LLVector3 &pos_agent) const +{ + return pos_agent - getOriginAgent(); +} + +F32 LLViewerRegion::getLandHeightRegion(const LLVector3& region_pos) +{ + return mImpl->mLandp->resolveHeightRegion( region_pos ); +} + +bool LLViewerRegion::isAlive() +{ + return mAlive; +} + +BOOL LLViewerRegion::isOwnedSelf(const LLVector3& pos) +{ + if (mParcelOverlay) + { + return mParcelOverlay->isOwnedSelf(pos); + } else { + return FALSE; + } +} + +// Owned by a group you belong to? (officer or member) +BOOL LLViewerRegion::isOwnedGroup(const LLVector3& pos) +{ + if (mParcelOverlay) + { + return mParcelOverlay->isOwnedGroup(pos); + } else { + return FALSE; + } +} + +// the new TCP coarse location handler node +class CoarseLocationUpdate : public LLHTTPNode +{ +public: + virtual void post( + ResponsePtr responder, + const LLSD& context, + const LLSD& input) const + { + LLHost host(input["sender"].asString()); + LLViewerRegion* region = LLWorld::getInstance()->getRegion(host); + if( !region ) + { + return; + } + + S32 target_index = input["body"]["Index"][0]["Prey"].asInteger(); + S32 you_index = input["body"]["Index"][0]["You" ].asInteger(); + + LLDynamicArray* avatar_locs = ®ion->mMapAvatars; + LLDynamicArray* avatar_ids = ®ion->mMapAvatarIDs; + avatar_locs->reset(); + avatar_ids->reset(); + + //llinfos << "coarse locations agent[0] " << input["body"]["AgentData"][0]["AgentID"].asUUID() << llendl; + //llinfos << "my agent id = " << gAgent.getID() << llendl; + //llinfos << ll_pretty_print_sd(input) << llendl; + + LLSD + locs = input["body"]["Location"], + agents = input["body"]["AgentData"]; + LLSD::array_iterator + locs_it = locs.beginArray(), + agents_it = agents.beginArray(); + BOOL has_agent_data = input["body"].has("AgentData"); + + for(int i=0; + locs_it != locs.endArray(); + i++, locs_it++) + { + U8 + x = locs_it->get("X").asInteger(), + y = locs_it->get("Y").asInteger(), + z = locs_it->get("Z").asInteger(); + // treat the target specially for the map, and don't add you or the target + if(i == target_index) + { + LLVector3d global_pos(region->getOriginGlobal()); + global_pos.mdV[VX] += (F64)x; + global_pos.mdV[VY] += (F64)y; + global_pos.mdV[VZ] += (F64)z * 4.0; + LLAvatarTracker::instance().setTrackedCoarseLocation(global_pos); + } + else if( i != you_index) + { + U32 loc = x << 16 | y << 8 | z; loc = loc; + U32 pos = 0x0; + pos |= x; + pos <<= 8; + pos |= y; + pos <<= 8; + pos |= z; + avatar_locs->put(pos); + //llinfos << "next pos: " << x << "," << y << "," << z << ": " << pos << llendl; + if(has_agent_data) // for backwards compatibility with old message format + { + LLUUID agent_id(agents_it->get("AgentID").asUUID()); + //llinfos << "next agent: " << agent_id.asString() << llendl; + avatar_ids->put(agent_id); + } + } + if (has_agent_data) + { + agents_it++; + } + } + } +}; + +// build the coarse location HTTP node under the "/message" URL +LLHTTPRegistration + gHTTPRegistrationCoarseLocationUpdate( + "/message/CoarseLocationUpdate"); + + +// the deprecated coarse location handler +void LLViewerRegion::updateCoarseLocations(LLMessageSystem* msg) +{ + //llinfos << "CoarseLocationUpdate" << llendl; + mMapAvatars.reset(); + mMapAvatarIDs.reset(); // only matters in a rare case but it's good to be safe. + + U8 x_pos = 0; + U8 y_pos = 0; + U8 z_pos = 0; + + U32 pos = 0x0; + + S16 agent_index; + S16 target_index; + msg->getS16Fast(_PREHASH_Index, _PREHASH_You, agent_index); + msg->getS16Fast(_PREHASH_Index, _PREHASH_Prey, target_index); + + BOOL has_agent_data = msg->has(_PREHASH_AgentData); + S32 count = msg->getNumberOfBlocksFast(_PREHASH_Location); + for(S32 i = 0; i < count; i++) + { + msg->getU8Fast(_PREHASH_Location, _PREHASH_X, x_pos, i); + msg->getU8Fast(_PREHASH_Location, _PREHASH_Y, y_pos, i); + msg->getU8Fast(_PREHASH_Location, _PREHASH_Z, z_pos, i); + LLUUID agent_id = LLUUID::null; + if(has_agent_data) + { + msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, agent_id, i); + } + + //llinfos << " object X: " << (S32)x_pos << " Y: " << (S32)y_pos + // << " Z: " << (S32)(z_pos * 4) + // << llendl; + + // treat the target specially for the map + if(i == target_index) + { + LLVector3d global_pos(mImpl->mOriginGlobal); + global_pos.mdV[VX] += (F64)(x_pos); + global_pos.mdV[VY] += (F64)(y_pos); + global_pos.mdV[VZ] += (F64)(z_pos) * 4.0; + LLAvatarTracker::instance().setTrackedCoarseLocation(global_pos); + } + + //don't add you + if( i != agent_index) + { + pos = 0x0; + pos |= x_pos; + pos <<= 8; + pos |= y_pos; + pos <<= 8; + pos |= z_pos; + mMapAvatars.put(pos); + if(has_agent_data) + { + mMapAvatarIDs.put(agent_id); + } + } + } +} + +void LLViewerRegion::getInfo(LLSD& info) +{ + info["Region"]["Host"] = getHost().getIPandPort(); + info["Region"]["Name"] = getName(); + U32 x, y; + from_region_handle(getHandle(), &x, &y); + info["Region"]["Handle"]["x"] = (LLSD::Integer)x; + info["Region"]["Handle"]["y"] = (LLSD::Integer)y; +} + +void LLViewerRegion::getSimulatorFeatures(LLSD& sim_features) +{ + sim_features = mSimulatorFeatures; +} + +void LLViewerRegion::setSimulatorFeatures(const LLSD& sim_features) +{ + std::stringstream str; + + LLSDSerialize::toPrettyXML(sim_features, str); + llinfos << str.str() << llendl; + mSimulatorFeatures = sim_features; +} + +LLViewerRegion::eCacheUpdateResult LLViewerRegion::cacheFullUpdate(LLViewerObject* objectp, LLDataPackerBinaryBuffer &dp) +{ + U32 local_id = objectp->getLocalID(); + U32 crc = objectp->getCRC(); + + LLVOCacheEntry* entry = get_if_there(mImpl->mCacheMap, local_id, (LLVOCacheEntry*)NULL); + + if (entry) + { + // we've seen this object before + if (entry->getCRC() == crc) + { + // Record a hit + entry->recordDupe(); + return CACHE_UPDATE_DUPE; + } + + // Update the cache entry + mImpl->mCacheMap.erase(local_id); + delete entry; + entry = new LLVOCacheEntry(local_id, crc, dp); + mImpl->mCacheMap[local_id] = entry; + return CACHE_UPDATE_CHANGED; + } + + // we haven't seen this object before + + // Create new entry and add to map + eCacheUpdateResult result = CACHE_UPDATE_ADDED; + if (mImpl->mCacheMap.size() > MAX_OBJECT_CACHE_ENTRIES) + { + mImpl->mCacheMap.erase(mImpl->mCacheMap.begin()); + result = CACHE_UPDATE_REPLACED; + + } + entry = new LLVOCacheEntry(local_id, crc, dp); + + mImpl->mCacheMap[local_id] = entry; + return result; +} + +// Get data packer for this object, if we have cached data +// AND the CRC matches. JC +LLDataPacker *LLViewerRegion::getDP(U32 local_id, U32 crc, U8 &cache_miss_type) +{ + //llassert(mCacheLoaded); This assert failes often, changing to early-out -- davep, 2010/10/18 + + LLVOCacheEntry* entry = get_if_there(mImpl->mCacheMap, local_id, (LLVOCacheEntry*)NULL); + + if (entry) + { + // we've seen this object before + if (entry->getCRC() == crc) + { + // Record a hit + entry->recordHit(); + cache_miss_type = CACHE_MISS_TYPE_NONE; + return entry->getDP(crc); + } + else + { + // llinfos << "CRC miss for " << local_id << llendl; + cache_miss_type = CACHE_MISS_TYPE_CRC; + mCacheMissCRC.put(local_id); + } + } + else + { + // llinfos << "Cache miss for " << local_id << llendl; + cache_miss_type = CACHE_MISS_TYPE_FULL; + mCacheMissFull.put(local_id); + } + + return NULL; +} + +void LLViewerRegion::addCacheMissFull(const U32 local_id) +{ + mCacheMissFull.put(local_id); +} + +void LLViewerRegion::requestCacheMisses() +{ + S32 full_count = mCacheMissFull.count(); + S32 crc_count = mCacheMissCRC.count(); + if (full_count == 0 && crc_count == 0) return; + + LLMessageSystem* msg = gMessageSystem; + BOOL start_new_message = TRUE; + S32 blocks = 0; + S32 i; + + // Send full cache miss updates. For these, we KNOW we don't + // have a viewer object. + for (i = 0; i < full_count; i++) + { + if (start_new_message) + { + msg->newMessageFast(_PREHASH_RequestMultipleObjects); + msg->nextBlockFast(_PREHASH_AgentData); + msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); + msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); + start_new_message = FALSE; + } + + msg->nextBlockFast(_PREHASH_ObjectData); + msg->addU8Fast(_PREHASH_CacheMissType, CACHE_MISS_TYPE_FULL); + msg->addU32Fast(_PREHASH_ID, mCacheMissFull[i]); + blocks++; + + if (blocks >= 255) + { + sendReliableMessage(); + start_new_message = TRUE; + blocks = 0; + } + } + + // Send CRC miss updates. For these, we _might_ have a viewer object, + // but probably not. + for (i = 0; i < crc_count; i++) + { + if (start_new_message) + { + msg->newMessageFast(_PREHASH_RequestMultipleObjects); + msg->nextBlockFast(_PREHASH_AgentData); + msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); + msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); + start_new_message = FALSE; + } + + msg->nextBlockFast(_PREHASH_ObjectData); + msg->addU8Fast(_PREHASH_CacheMissType, CACHE_MISS_TYPE_CRC); + msg->addU32Fast(_PREHASH_ID, mCacheMissCRC[i]); + blocks++; + + if (blocks >= 255) + { + sendReliableMessage(); + start_new_message = TRUE; + blocks = 0; + } + } + + // finish any pending message + if (!start_new_message) + { + sendReliableMessage(); + } + mCacheMissFull.reset(); + mCacheMissCRC.reset(); + + mCacheDirty = TRUE ; + // llinfos << "KILLDEBUG Sent cache miss full " << full_count << " crc " << crc_count << llendl; + #if LL_RECORD_VIEWER_STATS + LLViewerStatsRecorder::instance()->beginObjectUpdateEvents(this); + LLViewerStatsRecorder::instance()->recordRequestCacheMissesEvent(full_count + crc_count); + LLViewerStatsRecorder::instance()->endObjectUpdateEvents(); + #endif +} + +void LLViewerRegion::dumpCache() +{ + const S32 BINS = 4; + S32 hit_bin[BINS]; + S32 change_bin[BINS]; + + S32 i; + for (i = 0; i < BINS; ++i) + { + hit_bin[i] = 0; + change_bin[i] = 0; + } + + LLVOCacheEntry *entry; + for(LLVOCacheEntry::vocache_entry_map_t::iterator iter = mImpl->mCacheMap.begin(); iter != mImpl->mCacheMap.end(); ++iter) + { + entry = iter->second ; + + S32 hits = entry->getHitCount(); + S32 changes = entry->getCRCChangeCount(); + + hits = llclamp(hits, 0, BINS-1); + changes = llclamp(changes, 0, BINS-1); + + hit_bin[hits]++; + change_bin[changes]++; + } + + llinfos << "Count " << mImpl->mCacheMap.size() << llendl; + for (i = 0; i < BINS; i++) + { + llinfos << "Hits " << i << " " << hit_bin[i] << llendl; + } + for (i = 0; i < BINS; i++) + { + llinfos << "Changes " << i << " " << change_bin[i] << llendl; + } +} + +void LLViewerRegion::unpackRegionHandshake() +{ + LLMessageSystem *msg = gMessageSystem; + + U32 region_flags; + U8 sim_access; + std::string sim_name; + LLUUID sim_owner; + BOOL is_estate_manager; + F32 water_height; + F32 billable_factor; + LLUUID cache_id; + + msg->getU32 ("RegionInfo", "RegionFlags", region_flags); + msg->getU8 ("RegionInfo", "SimAccess", sim_access); + msg->getString ("RegionInfo", "SimName", sim_name); + msg->getUUID ("RegionInfo", "SimOwner", sim_owner); + msg->getBOOL ("RegionInfo", "IsEstateManager", is_estate_manager); + msg->getF32 ("RegionInfo", "WaterHeight", water_height); + msg->getF32 ("RegionInfo", "BillableFactor", billable_factor); + msg->getUUID ("RegionInfo", "CacheID", cache_id ); + + setRegionFlags(region_flags); + setSimAccess(sim_access); + setRegionNameAndZone(sim_name); + setOwner(sim_owner); + setIsEstateManager(is_estate_manager); + setWaterHeight(water_height); + setBillableFactor(billable_factor); + setCacheID(cache_id); + + LLUUID region_id; + msg->getUUID("RegionInfo2", "RegionID", region_id); + setRegionID(region_id); + + // Retrieve the CR-53 (Homestead/Land SKU) information + S32 classID = 0; + S32 cpuRatio = 0; + std::string coloName; + std::string productSKU; + std::string productName; + + // the only reasonable way to decide if we actually have any data is to + // check to see if any of these fields have positive sizes + if (msg->getSize("RegionInfo3", "ColoName") > 0 || + msg->getSize("RegionInfo3", "ProductSKU") > 0 || + msg->getSize("RegionInfo3", "ProductName") > 0) + { + msg->getS32 ("RegionInfo3", "CPUClassID", classID); + msg->getS32 ("RegionInfo3", "CPURatio", cpuRatio); + msg->getString ("RegionInfo3", "ColoName", coloName); + msg->getString ("RegionInfo3", "ProductSKU", productSKU); + msg->getString ("RegionInfo3", "ProductName", productName); + + mClassID = classID; + mCPURatio = cpuRatio; + mColoName = coloName; + mProductSKU = productSKU; + mProductName = productName; + } + + LLVLComposition *compp = getComposition(); + if (compp) + { + LLUUID tmp_id; + + msg->getUUID("RegionInfo", "TerrainDetail0", tmp_id); + compp->setDetailTextureID(0, tmp_id); + msg->getUUID("RegionInfo", "TerrainDetail1", tmp_id); + compp->setDetailTextureID(1, tmp_id); + msg->getUUID("RegionInfo", "TerrainDetail2", tmp_id); + compp->setDetailTextureID(2, tmp_id); + msg->getUUID("RegionInfo", "TerrainDetail3", tmp_id); + compp->setDetailTextureID(3, tmp_id); + + F32 tmp_f32; + msg->getF32("RegionInfo", "TerrainStartHeight00", tmp_f32); + compp->setStartHeight(0, tmp_f32); + msg->getF32("RegionInfo", "TerrainStartHeight01", tmp_f32); + compp->setStartHeight(1, tmp_f32); + msg->getF32("RegionInfo", "TerrainStartHeight10", tmp_f32); + compp->setStartHeight(2, tmp_f32); + msg->getF32("RegionInfo", "TerrainStartHeight11", tmp_f32); + compp->setStartHeight(3, tmp_f32); + + msg->getF32("RegionInfo", "TerrainHeightRange00", tmp_f32); + compp->setHeightRange(0, tmp_f32); + msg->getF32("RegionInfo", "TerrainHeightRange01", tmp_f32); + compp->setHeightRange(1, tmp_f32); + msg->getF32("RegionInfo", "TerrainHeightRange10", tmp_f32); + compp->setHeightRange(2, tmp_f32); + msg->getF32("RegionInfo", "TerrainHeightRange11", tmp_f32); + compp->setHeightRange(3, tmp_f32); + + // If this is an UPDATE (params already ready, we need to regenerate + // all of our terrain stuff, by + if (compp->getParamsReady()) + { + getLand().dirtyAllPatches(); + } + else + { + compp->setParamsReady(); + } + } + + + // Now that we have the name, we can load the cache file + // off disk. + loadObjectCache(); + + // After loading cache, signal that simulator can start + // sending data. + // TODO: Send all upstream viewer->sim handshake info here. + LLHost host = msg->getSender(); + msg->newMessage("RegionHandshakeReply"); + msg->nextBlock("AgentData"); + msg->addUUID("AgentID", gAgent.getID()); + msg->addUUID("SessionID", gAgent.getSessionID()); + msg->nextBlock("RegionInfo"); + msg->addU32("Flags", 0x0 ); + msg->sendReliable(host); +} + + +void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames) +{ + //capabilityNames.append("AttachmentResources"); //Script limits (llfloaterscriptlimits.cpp) + //capabilityNames.append("AvatarPickerSearch"); //Display name/SLID lookup (llfloateravatarpicker.cpp) + capabilityNames.append("ChatSessionRequest"); + capabilityNames.append("CopyInventoryFromNotecard"); + capabilityNames.append("DispatchRegionInfo"); + capabilityNames.append("EstateChangeInfo"); + capabilityNames.append("EventQueueGet"); + /*capabilityNames.append("EnvironmentSettings"); + capabilityNames.append("ObjectMedia"); + capabilityNames.append("ObjectMediaNavigate");*/ + + if (false)//gSavedSettings.getBOOL("UseHTTPInventory")) //Caps suffixed with 2 by LL. Don't update until rest of fetch system is updated first. + { + capabilityNames.append("FetchLib"); + capabilityNames.append("FetchLibDescendents"); + capabilityNames.append("FetchInventory"); + capabilityNames.append("FetchInventoryDescendents"); + } + + capabilityNames.append("GetDisplayNames"); + capabilityNames.append("GetTexture"); +#if MESH_ENABLED + capabilityNames.append("GetMesh"); + capabilityNames.append("GetObjectCost"); + capabilityNames.append("GetObjectPhysicsData"); +#endif //MESH_ENABLED + capabilityNames.append("GroupProposalBallot"); + + capabilityNames.append("HomeLocation"); + //capabilityNames.append("LandResources"); //Script limits (llfloaterscriptlimits.cpp) + capabilityNames.append("MapLayer"); + capabilityNames.append("MapLayerGod"); +#if MESH_IMPORT + capabilityNames.append("MeshUploadFlag"); +#endif //MESH_IMPORT + capabilityNames.append("NewFileAgentInventory"); + capabilityNames.append("ParcelPropertiesUpdate"); + capabilityNames.append("ParcelMediaURLFilterList"); + capabilityNames.append("ParcelNavigateMedia"); + capabilityNames.append("ParcelVoiceInfoRequest"); + capabilityNames.append("ProductInfoRequest"); + capabilityNames.append("ProvisionVoiceAccountRequest"); + capabilityNames.append("RemoteParcelRequest"); + capabilityNames.append("RequestTextureDownload"); + capabilityNames.append("ResourceCostSelected"); //Unreferenced? + capabilityNames.append("SearchStatRequest"); + capabilityNames.append("SearchStatTracking"); + capabilityNames.append("SendPostcard"); + capabilityNames.append("SendUserReport"); + capabilityNames.append("SendUserReportWithScreenshot"); + capabilityNames.append("ServerReleaseNotes"); + //capabilityNames.append("SimConsole"); + capabilityNames.append("SimulatorFeatures"); + capabilityNames.append("SetDisplayName"); + //capabilityNames.append("SimConsoleAsync"); + capabilityNames.append("StartGroupProposal"); + capabilityNames.append("TextureStats"); + capabilityNames.append("UntrustedSimulatorMessage"); + capabilityNames.append("UpdateAgentInformation"); + capabilityNames.append("UpdateAgentLanguage"); + capabilityNames.append("UpdateGestureAgentInventory"); + capabilityNames.append("UpdateNotecardAgentInventory"); + capabilityNames.append("UpdateScriptAgent"); + capabilityNames.append("UpdateGestureTaskInventory"); + capabilityNames.append("UpdateNotecardTaskInventory"); + capabilityNames.append("UpdateScriptTask"); + capabilityNames.append("UploadBakedTexture"); + //capabilityNames.append("ViewerMetrics"); + capabilityNames.append("ViewerStartAuction"); + capabilityNames.append("ViewerStats"); + // Please add new capabilities alphabetically to reduce + // merge conflicts. +} +void LLViewerRegion::setSeedCapability(const std::string& url) +{ + if (getCapability("Seed") == url) + { + // llwarns << "Ignoring duplicate seed capability" << llendl; + return; + } + + delete mImpl->mEventPoll; + mImpl->mEventPoll = NULL; + + mImpl->mCapabilities.clear(); + setCapability("Seed", url); + + LLSD capabilityNames = LLSD::emptyArray(); + + mImpl->buildCapabilityNames(capabilityNames); + + + llinfos << "posting to seed " << url << llendl; + + mImpl->mHttpResponderPtr = BaseCapabilitiesComplete::build(this) ; + LLHTTPClient::post(url, capabilityNames, mImpl->mHttpResponderPtr); +} + +class SimulatorFeaturesReceived : public LLHTTPClient::Responder +{ + LOG_CLASS(SimulatorFeaturesReceived); +public: + SimulatorFeaturesReceived(LLViewerRegion* region) + : mRegion(region) + { } + + + void error(U32 statusNum, const std::string& reason) + { + LL_WARNS2("AppInit", "SimulatorFeatures") << statusNum << ": " << reason << LL_ENDL; + } + + void result(const LLSD& content) + { + if(!mRegion) //region is removed or responder is not created. + { + return ; + } + + mRegion->setSimulatorFeatures(content); + } + + static boost::intrusive_ptr build( + LLViewerRegion* region) + { + return boost::intrusive_ptr( + new SimulatorFeaturesReceived(region)); + } + +private: + LLViewerRegion* mRegion; +}; + + +void LLViewerRegion::setCapability(const std::string& name, const std::string& url) +{ + if(name == "EventQueueGet") + { + delete mImpl->mEventPoll; + mImpl->mEventPoll = NULL; + mImpl->mEventPoll = new LLEventPoll(url, getHost()); + } + else if(name == "UntrustedSimulatorMessage") + { + LLHTTPSender::setSender(mImpl->mHost, new LLCapHTTPSender(url)); + } + else if (name == "SimulatorFeatures") + { + // kick off a request for simulator features + LLHTTPClient::get(url, new SimulatorFeaturesReceived(this)); + } + else + { + mImpl->mCapabilities[name] = url; + if(name == "GetTexture") + { + mHttpUrl = url ; + } + } +} + +bool LLViewerRegion::isSpecialCapabilityName(const std::string &name) +{ + return name == "EventQueueGet" || name == "UntrustedSimulatorMessage"; +} + +std::string LLViewerRegion::getCapability(const std::string& name) const +{ + CapabilityMap::const_iterator iter = mImpl->mCapabilities.find(name); + if(iter == mImpl->mCapabilities.end()) + { + return ""; + } + return iter->second; +} + +bool LLViewerRegion::capabilitiesReceived() const +{ + return mCapabilitiesReceived; +} + +void LLViewerRegion::setCapabilitiesReceived(bool received) +{ + mCapabilitiesReceived = received; + + // Tell interested parties that we've received capabilities, + // so that they can safely use getCapability(). + if (received) + { + mCapabilitiesReceivedSignal(getRegionID()); + + // This is a single-shot signal. Forget callbacks to save resources. + mCapabilitiesReceivedSignal.disconnect_all_slots(); + } +} + +boost::signals2::connection LLViewerRegion::setCapabilitiesReceivedCallback(const caps_received_signal_t::slot_type& cb) +{ + return mCapabilitiesReceivedSignal.connect(cb); +} + +void LLViewerRegion::logActiveCapabilities() const +{ + int count = 0; + CapabilityMap::const_iterator iter; + for (iter = mImpl->mCapabilities.begin(); iter != mImpl->mCapabilities.end(); ++iter, ++count) + { + if (!iter->second.empty()) + { + llinfos << iter->first << " URL is " << iter->second << llendl; + } + } + llinfos << "Dumped " << count << " entries." << llendl; +} + +LLSpatialPartition* LLViewerRegion::getSpatialPartition(U32 type) +{ + if (type < mImpl->mObjectPartition.size()) + { + return mImpl->mObjectPartition[type]; + } + return NULL; +} + +void LLViewerRegion::showReleaseNotes() +{ + std::string url = this->getCapability("ServerReleaseNotes"); + + if (url.empty()) { + // HACK haven't received the capability yet, we'll wait until + // it arives. + mReleaseNotesRequested = TRUE; + return; + } + + LLWeb::loadURL(url); + mReleaseNotesRequested = FALSE; +} + +std::string LLViewerRegion::getDescription() const +{ + return stringize(*this); +} + +#if MESH_ENABLED +bool LLViewerRegion::meshUploadEnabled() const +{ + return (mSimulatorFeatures.has("MeshUploadEnabled") && + mSimulatorFeatures["MeshUploadEnabled"].asBoolean()); +} + +bool LLViewerRegion::meshRezEnabled() const +{ + return (mSimulatorFeatures.has("MeshRezEnabled") && + mSimulatorFeatures["MeshRezEnabled"].asBoolean()); +} +#endif //MESH_ENABLED + diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index b32fafaf8..2426c75a5 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -770,47 +770,84 @@ bool LLViewerWindow::shouldShowToolTipFor(LLMouseHandler *mh) return false; } -BOOL LLViewerWindow::handleMouseDown(LLWindow *window, LLCoordGL pos, MASK mask) +BOOL LLViewerWindow::handleAnyMouseClick(LLWindow *window, LLCoordGL pos, MASK mask, LLMouseHandler::EClickType clicktype, BOOL down) { + std::string buttonname; + std::string buttonstatestr; + BOOL handled = FALSE; S32 x = pos.mX; S32 y = pos.mY; x = llround((F32)x / mDisplayScale.mV[VX]); y = llround((F32)y / mDisplayScale.mV[VY]); - LLView::sMouseHandlerMessage.clear(); + if (down) + buttonstatestr = "down"; + else + buttonstatestr = "up"; - if (gDebugClicks) + switch (clicktype) { - llinfos << "ViewerWindow left mouse down at " << x << "," << y << llendl; + case LLMouseHandler::CLICK_LEFT: + mLeftMouseDown = down; + buttonname = "Left"; + break; + case LLMouseHandler::CLICK_RIGHT: + mRightMouseDown = down; + buttonname = "Right"; + break; + case LLMouseHandler::CLICK_MIDDLE: + mMiddleMouseDown = down; + buttonname = "Middle"; + break; + case LLMouseHandler::CLICK_DOUBLELEFT: + mLeftMouseDown = down; + buttonname = "Left Double Click"; + break; } + LLView::sMouseHandlerMessage.clear(); + if (gMenuBarView) { // stop ALT-key access to menu gMenuBarView->resetMenuTrigger(); } - mLeftMouseDown = TRUE; + if (gDebugClicks) + { + llinfos << "ViewerWindow " << buttonname << " mouse " << buttonstatestr << " at " << x << "," << y << llendl; + } // Make sure we get a coresponding mouseup event, even if the mouse leaves the window - mWindow->captureMouse(); + if (down) + { + mWindow->captureMouse(); + } + else + { + mWindow->releaseMouse(); + } // Indicate mouse was active gMouseIdleTimer.reset(); // Hide tooltips on mousedown - mToolTipBlocked = TRUE; + if (down) + { + mToolTipBlocked = TRUE; + mToolTip->setVisible(FALSE); + } - // Also hide hover info on mousedown + // Also hide hover info on mousedown/mouseup if (gHoverView) { gHoverView->cancelHover(); } // Don't let the user move the mouse out of the window until mouse up. - if( LLToolMgr::getInstance()->getCurrentTool()->clipMouseWhenDown() ) + if (LLToolMgr::getInstance()->getCurrentTool()->clipMouseWhenDown()) { - mWindow->setMouseClipping(TRUE); + mWindow->setMouseClipping(down); } LLMouseHandler* mouse_captor = gFocusMgr.getMouseCapture(); @@ -821,10 +858,9 @@ BOOL LLViewerWindow::handleMouseDown(LLWindow *window, LLCoordGL pos, MASK mask mouse_captor->screenPointToLocal( x, y, &local_x, &local_y ); if (LLView::sDebugMouseHandling) { - llinfos << "Left Mouse Down handled by captor " << mouse_captor->getName() << llendl; + llinfos << buttonname << " Mouse " << buttonstatestr << " handled by captor " << mouse_captor->getName() << llendl; } - - return mouse_captor->handleMouseDown(local_x, local_y, mask); + return mouse_captor->handleAnyMouseClick(local_x, local_y, mask, clicktype, down); } // Topmost view gets a chance before the hierarchy @@ -833,216 +869,94 @@ BOOL LLViewerWindow::handleMouseDown(LLWindow *window, LLCoordGL pos, MASK mask { S32 local_x, local_y; top_ctrl->screenPointToLocal( x, y, &local_x, &local_y ); - if (top_ctrl->pointInView(local_x, local_y)) + + if (down) { - return top_ctrl->handleMouseDown(local_x, local_y, mask); - } + if (top_ctrl->pointInView(local_x, local_y)) + { + return top_ctrl->handleAnyMouseClick(local_x, local_y, mask, clicktype, down) ; + } + else + { + gFocusMgr.setTopCtrl(NULL); + } + } else - { - gFocusMgr.setTopCtrl(NULL); - } + handled = top_ctrl->pointInView(local_x, local_y) && top_ctrl->handleMouseUp(local_x, local_y, mask); } // Give the UI views a chance to process the click - if( mRootView->handleMouseDown(x, y, mask) ) + if( mRootView->handleAnyMouseClick(x, y, mask, clicktype, down) ) { if (LLView::sDebugMouseHandling) { - llinfos << "Left Mouse Down" << LLView::sMouseHandlerMessage << llendl; + llinfos << buttonname << " Mouse " << buttonstatestr << " " << LLView::sMouseHandlerMessage << llendl; } return TRUE; } else if (LLView::sDebugMouseHandling) { - llinfos << "Left Mouse Down not handled by view" << llendl; + llinfos << buttonname << " Mouse " << buttonstatestr << " not handled by view" << llendl; } - // Do not allow tool manager to handle mouseclicks if we have disconnected - if (gDisconnected) + if (down) { - return FALSE; - } + // Do not allow tool manager to handle mouseclicks if we have disconnected + if (gDisconnected) + { + return FALSE; + } - if(LLToolMgr::getInstance()->getCurrentTool()->handleMouseDown( x, y, mask ) ) + if(LLToolMgr::getInstance()->getCurrentTool()->handleAnyMouseClick( x, y, mask, clicktype, down ) ) + { + // This is necessary to force clicks in the world to cause edit + // boxes that might have keyboard focus to relinquish it, and hence + // cause a commit to update their value. JC + gFocusMgr.setKeyboardFocus(NULL); + return TRUE; + } + } + else { - // This is necessary to force clicks in the world to cause edit - // boxes that might have keyboard focus to relinquish it, and hence - // cause a commit to update their value. JC - gFocusMgr.setKeyboardFocus(NULL); - return TRUE; + mWindow->releaseMouse(); + + LLTool *tool = LLToolMgr::getInstance()->getCurrentTool(); + if( !handled ) + { + handled = mRootView->handleAnyMouseClick(x, y, mask, clicktype, down); + } + + if( !handled ) + { + if (tool) + { + handled = tool->handleAnyMouseClick(x, y, mask, clicktype, down); + } + } } - return FALSE; + return (!down); +} + +BOOL LLViewerWindow::handleMouseDown(LLWindow *window, LLCoordGL pos, MASK mask) +{ + BOOL down = TRUE; + return handleAnyMouseClick(window,pos,mask,LLMouseHandler::CLICK_LEFT,down); } BOOL LLViewerWindow::handleDoubleClick(LLWindow *window, LLCoordGL pos, MASK mask) { - S32 x = pos.mX; - S32 y = pos.mY; - x = llround((F32)x / mDisplayScale.mV[VX]); - y = llround((F32)y / mDisplayScale.mV[VY]); - - LLView::sMouseHandlerMessage.clear(); - - if (gDebugClicks) - { - llinfos << "ViewerWindow left mouse double-click at " << x << "," << y << llendl; - } - - mLeftMouseDown = TRUE; - - // Hide tooltips - if( mToolTip ) - { - mToolTip->setVisible( FALSE ); - } - - LLMouseHandler* mouse_captor = gFocusMgr.getMouseCapture(); - if( mouse_captor ) - { - S32 local_x; - S32 local_y; - mouse_captor->screenPointToLocal( x, y, &local_x, &local_y ); - if (LLView::sDebugMouseHandling) - { - llinfos << "Left Mouse Down handled by captor " << mouse_captor->getName() << llendl; - } - - return mouse_captor->handleDoubleClick(local_x, local_y, mask); - } - - // Check for hit on UI. - LLUICtrl* top_ctrl = gFocusMgr.getTopCtrl(); - if (top_ctrl) - { - S32 local_x, local_y; - top_ctrl->screenPointToLocal( x, y, &local_x, &local_y ); - if (top_ctrl->pointInView(local_x, local_y)) - { - return top_ctrl->handleDoubleClick(local_x, local_y, mask); - } - else - { - gFocusMgr.setTopCtrl(NULL); - } - } - - if (mRootView->handleDoubleClick(x, y, mask)) - { - if (LLView::sDebugMouseHandling) - { - llinfos << "Left Mouse Down" << LLView::sMouseHandlerMessage << llendl; - } - return TRUE; - } - else if (LLView::sDebugMouseHandling) - { - llinfos << "Left Mouse Down not handled by view" << llendl; - } - - // Why is this here? JC 9/3/2002 - if (gNoRender) - { - return TRUE; - } - - if(LLToolMgr::getInstance()->getCurrentTool()->handleDoubleClick( x, y, mask ) ) - { - return TRUE; - } - - // if we got this far and nothing handled a double click, pass a normal mouse down - return handleMouseDown(window, pos, mask); + // try handling as a double-click first, then a single-click if that + // wasn't handled. + BOOL down = TRUE; + return handleAnyMouseClick(window,pos,mask,LLMouseHandler::CLICK_DOUBLELEFT,down) || + handleMouseDown(window, pos, mask); } BOOL LLViewerWindow::handleMouseUp(LLWindow *window, LLCoordGL pos, MASK mask) { - S32 x = pos.mX; - S32 y = pos.mY; - x = llround((F32)x / mDisplayScale.mV[VX]); - y = llround((F32)y / mDisplayScale.mV[VY]); - - LLView::sMouseHandlerMessage.clear(); - - if (gDebugClicks) - { - llinfos << "ViewerWindow left mouse up" << llendl; - } - - mLeftMouseDown = FALSE; - - // Indicate mouse was active - gMouseIdleTimer.reset(); - - // Hide tooltips on mouseup - if( mToolTip ) - { - mToolTip->setVisible( FALSE ); - } - - // Also hide hover info on mouseup - if (gHoverView) gHoverView->cancelHover(); - - BOOL handled = FALSE; - - mWindow->releaseMouse(); - - LLTool *tool = LLToolMgr::getInstance()->getCurrentTool(); - - if( tool->clipMouseWhenDown() ) - { - mWindow->setMouseClipping(FALSE); - } - - LLMouseHandler* mouse_captor = gFocusMgr.getMouseCapture(); - if( mouse_captor ) - { - S32 local_x; - S32 local_y; - mouse_captor->screenPointToLocal( x, y, &local_x, &local_y ); - if (LLView::sDebugMouseHandling) - { - llinfos << "Left Mouse Up handled by captor " << mouse_captor->getName() << llendl; - } - - return mouse_captor->handleMouseUp(local_x, local_y, mask); - } - - LLUICtrl* top_ctrl = gFocusMgr.getTopCtrl(); - if (top_ctrl) - { - S32 local_x, local_y; - top_ctrl->screenPointToLocal( x, y, &local_x, &local_y ); - handled = top_ctrl->pointInView(local_x, local_y) && top_ctrl->handleMouseUp(local_x, local_y, mask); - } - - if( !handled ) - { - handled = mRootView->handleMouseUp(x, y, mask); - } - - if (LLView::sDebugMouseHandling) - { - if (handled) - { - llinfos << "Left Mouse Up" << LLView::sMouseHandlerMessage << llendl; - } - else - { - llinfos << "Left Mouse Up not handled by view" << llendl; - } - } - - if( !handled ) - { - if (tool) - { - handled = tool->handleMouseUp(x, y, mask); - } - } - - // Always handled as far as the OS is concerned. - return TRUE; + BOOL down = FALSE; + return handleAnyMouseClick(window,pos,mask,LLMouseHandler::CLICK_LEFT,down); } @@ -1055,89 +969,11 @@ BOOL LLViewerWindow::handleRightMouseDown(LLWindow *window, LLCoordGL pos, MASK LLView::sMouseHandlerMessage.clear(); - if (gDebugClicks) - { - llinfos << "ViewerWindow right mouse down at " << x << "," << y << llendl; - } + BOOL down = TRUE; + BOOL handle = handleAnyMouseClick(window,pos,mask,LLMouseHandler::CLICK_RIGHT,down); + if (handle) + return handle; - if (gMenuBarView) - { - // stop ALT-key access to menu - gMenuBarView->resetMenuTrigger(); - } - - mRightMouseDown = TRUE; - - // Make sure we get a coresponding mouseup event, even if the mouse leaves the window - mWindow->captureMouse(); - - // Hide tooltips - if( mToolTip ) - { - mToolTip->setVisible( FALSE ); - } - - // Also hide hover info on mousedown - if (gHoverView) - { - gHoverView->cancelHover(); - } - - // Don't let the user move the mouse out of the window until mouse up. - if( LLToolMgr::getInstance()->getCurrentTool()->clipMouseWhenDown() ) - { - mWindow->setMouseClipping(TRUE); - } - - LLMouseHandler* mouse_captor = gFocusMgr.getMouseCapture(); - if( mouse_captor ) - { - S32 local_x; - S32 local_y; - mouse_captor->screenPointToLocal( x, y, &local_x, &local_y ); - if (LLView::sDebugMouseHandling) - { - llinfos << "Right Mouse Down handled by captor " << mouse_captor->getName() << llendl; - } - return mouse_captor->handleRightMouseDown(local_x, local_y, mask); - } - - LLUICtrl* top_ctrl = gFocusMgr.getTopCtrl(); - if (top_ctrl) - { - S32 local_x, local_y; - top_ctrl->screenPointToLocal( x, y, &local_x, &local_y ); - if (top_ctrl->pointInView(local_x, local_y)) - { - return top_ctrl->handleRightMouseDown(local_x, local_y, mask); - } - else - { - gFocusMgr.setTopCtrl(NULL); - } - } - - if( mRootView->handleRightMouseDown(x, y, mask) ) - { - if (LLView::sDebugMouseHandling) - { - llinfos << "Right Mouse Down" << LLView::sMouseHandlerMessage << llendl; - } - return TRUE; - } - else if (LLView::sDebugMouseHandling) - { - llinfos << "Right Mouse Down not handled by view" << llendl; - } - - if(LLToolMgr::getInstance()->getCurrentTool()->handleRightMouseDown( x, y, mask ) ) - { - // This is necessary to force clicks in the world to cause edit - // boxes that might have keyboard focus to relinquish it, and hence - // cause a commit to update their value. JC - gFocusMgr.setKeyboardFocus(NULL); - return TRUE; - } // *HACK: this should be rolled into the composite tool logic, not // hardcoded at the top level. @@ -1155,97 +991,15 @@ BOOL LLViewerWindow::handleRightMouseDown(LLWindow *window, LLCoordGL pos, MASK BOOL LLViewerWindow::handleRightMouseUp(LLWindow *window, LLCoordGL pos, MASK mask) { - S32 x = pos.mX; - S32 y = pos.mY; - x = llround((F32)x / mDisplayScale.mV[VX]); - y = llround((F32)y / mDisplayScale.mV[VY]); - - LLView::sMouseHandlerMessage.clear(); - - // Don't care about caps lock for mouse events. - if (gDebugClicks) - { - llinfos << "ViewerWindow right mouse up" << llendl; - } - - mRightMouseDown = FALSE; - - // Indicate mouse was active - gMouseIdleTimer.reset(); - - // Hide tooltips on mouseup - if( mToolTip ) - { - mToolTip->setVisible( FALSE ); - } - - // Also hide hover info on mouseup - if (gHoverView) gHoverView->cancelHover(); - - BOOL handled = FALSE; - - mWindow->releaseMouse(); - - LLTool *tool = LLToolMgr::getInstance()->getCurrentTool(); - - if( tool->clipMouseWhenDown() ) - { - mWindow->setMouseClipping(FALSE); - } - - LLMouseHandler* mouse_captor = gFocusMgr.getMouseCapture(); - if( mouse_captor ) - { - S32 local_x; - S32 local_y; - mouse_captor->screenPointToLocal( x, y, &local_x, &local_y ); - if (LLView::sDebugMouseHandling) - { - llinfos << "Right Mouse Up handled by captor " << mouse_captor->getName() << llendl; - } - return mouse_captor->handleRightMouseUp(local_x, local_y, mask); - } - - LLUICtrl* top_ctrl = gFocusMgr.getTopCtrl(); - if (top_ctrl) - { - S32 local_x, local_y; - top_ctrl->screenPointToLocal( x, y, &local_x, &local_y ); - handled = top_ctrl->pointInView(local_x, local_y) && top_ctrl->handleRightMouseUp(local_x, local_y, mask); - } - - if( !handled ) - { - handled = mRootView->handleRightMouseUp(x, y, mask); - } - - if (LLView::sDebugMouseHandling) - { - if (handled) - { - llinfos << "Right Mouse Up" << LLView::sMouseHandlerMessage << llendl; - } - else - { - llinfos << "Right Mouse Up not handled by view" << llendl; - } - } - - if( !handled ) - { - if (tool) - { - handled = tool->handleRightMouseUp(x, y, mask); - } - } - - // Always handled as far as the OS is concerned. - return TRUE; + BOOL down = FALSE; + return handleAnyMouseClick(window,pos,mask,LLMouseHandler::CLICK_RIGHT,down); } BOOL LLViewerWindow::handleMiddleMouseDown(LLWindow *window, LLCoordGL pos, MASK mask) { + BOOL down = TRUE; gVoiceClient->middleMouseState(true); + handleAnyMouseClick(window,pos,mask,LLMouseHandler::CLICK_MIDDLE,down); // Always handled as far as the OS is concerned. return TRUE; @@ -1253,7 +1007,9 @@ BOOL LLViewerWindow::handleMiddleMouseDown(LLWindow *window, LLCoordGL pos, MAS BOOL LLViewerWindow::handleMiddleMouseUp(LLWindow *window, LLCoordGL pos, MASK mask) { + BOOL down = FALSE; gVoiceClient->middleMouseState(false); + handleAnyMouseClick(window,pos,mask,LLMouseHandler::CLICK_MIDDLE,down); // Always handled as far as the OS is concerned. return TRUE; @@ -1638,6 +1394,7 @@ LLViewerWindow::LLViewerWindow( mWindowRectRaw(0, height, width, 0), mWindowRectScaled(0, height, width, 0), mLeftMouseDown(FALSE), + mMiddleMouseDown(FALSE), mRightMouseDown(FALSE), mToolTip(NULL), mToolTipBlocked(FALSE), diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h index c5ae97049..0b03fcf01 100644 --- a/indra/newview/llviewerwindow.h +++ b/indra/newview/llviewerwindow.h @@ -50,6 +50,7 @@ #include "llstat.h" #include "llmousehandler.h" #include "llalertdialog.h" +#include "llmousehandler.h" #include "llnotifications.h" class LLView; @@ -152,6 +153,7 @@ public: /*virtual*/ BOOL handleTranslatedKeyUp(KEY key, MASK mask); /*virtual*/ void handleScanKey(KEY key, BOOL key_down, BOOL key_up, BOOL key_level); /*virtual*/ BOOL handleUnicodeChar(llwchar uni_char, MASK mask); // NOT going to handle extended + /*virtual*/ BOOL handleAnyMouseClick(LLWindow *window, LLCoordGL pos, MASK mask, LLMouseHandler::EClickType clicktype, BOOL down); /*virtual*/ BOOL handleMouseDown(LLWindow *window, LLCoordGL pos, MASK mask); /*virtual*/ BOOL handleMouseUp(LLWindow *window, LLCoordGL pos, MASK mask); /*virtual*/ BOOL handleCloseRequest(LLWindow *window); @@ -229,6 +231,7 @@ public: LLCoordGL getCurrentMouseDelta() const { return mCurrentMouseDelta; } LLStat * getMouseVelocityStat() { return &mMouseVelocityStat; } BOOL getLeftMouseDown() const { return mLeftMouseDown; } + BOOL getMiddleMouseDown() const { return mMiddleMouseDown; } BOOL getRightMouseDown() const { return mRightMouseDown; } const LLPickInfo& getLastPick() const { return mLastPick; } @@ -405,6 +408,7 @@ protected: LLCoordGL mCurrentMouseDelta; //amount mouse moved this frame LLStat mMouseVelocityStat; BOOL mLeftMouseDown; + BOOL mMiddleMouseDown; BOOL mRightMouseDown; LLProgressView *mProgressView; diff --git a/indra/newview/llvoavatardefines.cpp b/indra/newview/llvoavatardefines.cpp index ad906d27f..c0ec8fc61 100644 --- a/indra/newview/llvoavatardefines.cpp +++ b/indra/newview/llvoavatardefines.cpp @@ -42,6 +42,7 @@ using namespace LLVOAvatarDefines; /********************************************************************************* * Edit this function to add/remove/change textures and mesh definitions for avatars. + * If these are changed, they MUST be changed in floater_avatar_textures.xml as well! */ LLVOAvatarDictionary::Textures::Textures() diff --git a/indra/newview/llvograss.cpp b/indra/newview/llvograss.cpp index 1d350d635..25337f0ef 100644 --- a/indra/newview/llvograss.cpp +++ b/indra/newview/llvograss.cpp @@ -74,6 +74,8 @@ F32 w_mod[GRASS_MAX_BLADES]; // Factor to modulate wind movement by to rand LLVOGrass::SpeciesMap LLVOGrass::sSpeciesTable; S32 LLVOGrass::sMaxGrassSpecies = 0; +LLVOGrass::SpeciesNames LLVOGrass::sSpeciesNames; + LLVOGrass::LLVOGrass(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp) : LLAlphaObject(id, pcode, regionp) @@ -198,6 +200,11 @@ void LLVOGrass::initClass() if (species >= sMaxGrassSpecies) sMaxGrassSpecies = species + 1; + std::string name; + static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name"); + success &= grass_def->getFastAttributeString(name_string, name); + sSpeciesNames[name] = species; + if (!success) { std::string name; diff --git a/indra/newview/llvograss.h b/indra/newview/llvograss.h index 6a6fcc31c..8519d02cd 100644 --- a/indra/newview/llvograss.h +++ b/indra/newview/llvograss.h @@ -117,6 +117,9 @@ public: F32 mBladeWindAngle; F32 mBWAOverlap; + typedef std::map SpeciesNames; + static SpeciesNames sSpeciesNames; + protected: ~LLVOGrass(); diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp index 65110b074..7a96fe309 100644 --- a/indra/newview/llvoiceclient.cpp +++ b/indra/newview/llvoiceclient.cpp @@ -29,8 +29,12 @@ * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ */ - #include "llviewerprecompiledheaders.h" + +#if LL_LINUX && defined(LL_STANDALONE) +#include +#endif + #include "llvoiceclient.h" #include @@ -1637,10 +1641,23 @@ void LLVoiceClient::stateMachine() { // Launch the voice daemon - // *FIX:Mani - Using the executable dir instead - // of mAppRODataDir, the working directory from which the app - // is launched. - //std::string exe_path = gDirUtilp->getAppRODataDir(); +#if LL_LINUX && defined(LL_STANDALONE) + // Look for the vivox daemon in the executable path list + // using glib first. + char *voice_path = g_find_program_in_path ("SLVoice"); + std::string exe_path; + if (voice_path) { + exe_path = llformat("%s", voice_path); + free(voice_path); + } else { + exe_path = gDirUtilp->getExecutableDir() + + gDirUtilp->getDirDelimiter() + "SLVoice"; + } +#else + // *FIX:Mani - Using the executable dir instead + // of mAppRODataDir, the working directory from which the + // app is launched. + //std::string exe_path = gDirUtilp->getAppRODataDir(); std::string exe_path = gDirUtilp->getExecutableDir(); exe_path += gDirUtilp->getDirDelimiter(); #if LL_WINDOWS @@ -1649,6 +1666,7 @@ void LLVoiceClient::stateMachine() exe_path += "../Resources/SLVoice"; #else exe_path += "SLVoice"; +#endif #endif // See if the vivox executable exists llstat s; diff --git a/indra/newview/llvotree.cpp b/indra/newview/llvotree.cpp index 08dbc4df5..8ab942851 100644 --- a/indra/newview/llvotree.cpp +++ b/indra/newview/llvotree.cpp @@ -83,6 +83,8 @@ F32 LLVOTree::sTreeFactor = 1.f; LLVOTree::SpeciesMap LLVOTree::sSpeciesTable; S32 LLVOTree::sMaxTreeSpecies = 0; +LLVOTree::SpeciesNames LLVOTree::sSpeciesNames; + // Tree variables and functions LLVOTree::LLVOTree(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp): @@ -242,6 +244,11 @@ void LLVOTree::initClass() sSpeciesTable[species] = newTree; if (species >= sMaxTreeSpecies) sMaxTreeSpecies = species + 1; + + std::string name; + static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name"); + success &= tree_def->getFastAttributeString(name_string, name); + sSpeciesNames[name] = species; if (!success) { diff --git a/indra/newview/llvotree.h b/indra/newview/llvotree.h index 7e961471f..befe3665c 100644 --- a/indra/newview/llvotree.h +++ b/indra/newview/llvotree.h @@ -153,6 +153,10 @@ public: }; static F32 sTreeFactor; // Tree level of detail factor + + typedef std::map SpeciesNames; + static SpeciesNames sSpeciesNames; + static const S32 sMAX_NUM_TREE_LOD_LEVELS ; friend class LLDrawPoolTree; diff --git a/indra/newview/llworld.cpp b/indra/newview/llworld.cpp index 38317f5e0..da2644d10 100644 --- a/indra/newview/llworld.cpp +++ b/indra/newview/llworld.cpp @@ -172,7 +172,7 @@ LLViewerRegion* LLWorld::addRegion(const U64 ®ion_handle, const LLHost &host, U32 iindex = 0; U32 jindex = 0; - mWidth = region_size_x; + mWidth = region_size_x; mWidthInMeters = mWidth * mScale; from_region_handle(region_handle, &iindex, &jindex); S32 x = (S32)(iindex/256); @@ -1256,16 +1256,16 @@ void process_enable_simulator(LLMessageSystem *msg, void **user_data) // which simulator should we modify? LLHost sim(ip_u32, port); - U32 region_size_x = 256; - msg->getU32Fast(_PREHASH_SimulatorInfo, _PREHASH_RegionSizeX, region_size_x); - - U32 region_size_y = 256; - msg->getU32Fast(_PREHASH_SimulatorInfo, _PREHASH_RegionSizeY, region_size_y); - - if (region_size_y == 0 || region_size_x == 0) - { - region_size_x = 256; - region_size_y = 256; + U32 region_size_x = 256; + msg->getU32Fast(_PREHASH_SimulatorInfo, _PREHASH_RegionSizeX, region_size_x); + + U32 region_size_y = 256; + msg->getU32Fast(_PREHASH_SimulatorInfo, _PREHASH_RegionSizeY, region_size_y); + + if (region_size_y == 0 || region_size_x == 0) + { + region_size_x = 256; + region_size_y = 256; } // Viewer trusts the simulator. diff --git a/indra/newview/llworldmap.cpp b/indra/newview/llworldmap.cpp index c6ec2047a..0a8996f5d 100644 --- a/indra/newview/llworldmap.cpp +++ b/indra/newview/llworldmap.cpp @@ -293,12 +293,27 @@ LLSimInfo* LLWorldMap::simInfoFromPosGlobal(const LLVector3d& pos_global) return simInfoFromHandle(handle); } -LLSimInfo* LLWorldMap::simInfoFromHandle(const U64 handle) +LLSimInfo* LLWorldMap::simInfoFromHandle(const U64 findhandle) { - sim_info_map_t::iterator it = mSimInfoMap.find(handle); - if (it != mSimInfoMap.end()) - { - return it->second; + std::map::const_iterator it; + for (it = LLWorldMap::getInstance()->mSimInfoMap.begin(); it != LLWorldMap::getInstance()->mSimInfoMap.end(); ++it) + { + const U64 handle = (*it).first; + LLSimInfo* info = (*it).second; + if(handle == findhandle) + { + return info; + } + U32 x = 0, y = 0; + from_region_handle(findhandle, &x, &y); + U32 checkRegionX, checkRegionY; + from_region_handle(handle, &checkRegionX, &checkRegionY); + + if(x >= checkRegionX && x < (checkRegionX + info->getSizeX()) && + y >= checkRegionY && y < (checkRegionY + info->getSizeY())) + { + return info; + } } return NULL; } @@ -659,6 +674,8 @@ void LLWorldMap::processMapBlockReply(LLMessageSystem* msg, void**) { U16 x_regions; U16 y_regions; + U16 x_size = 256; + U16 y_size = 256; std::string name; U8 accesscode; U32 region_flags; @@ -673,9 +690,19 @@ void LLWorldMap::processMapBlockReply(LLMessageSystem* msg, void**) msg->getU8Fast(_PREHASH_Data, _PREHASH_WaterHeight, water_height, block); msg->getU8Fast(_PREHASH_Data, _PREHASH_Agents, agents, block); msg->getUUIDFast(_PREHASH_Data, _PREHASH_MapImageID, image_id, block); + if(msg->getNumberOfBlocksFast(_PREHASH_Size) > 0) + { + msg->getU16Fast(_PREHASH_Size, _PREHASH_SizeX, x_size, block); + msg->getU16Fast(_PREHASH_Size, _PREHASH_SizeY, y_size, block); + } + if(x_size == 0 || (x_size % 16) != 0|| (y_size % 16) != 0) + { + x_size = 256; + y_size = 256; + } U32 x_meters = x_regions * REGION_WIDTH_UNITS; - U32 y_meters = y_regions * REGION_WIDTH_UNITS; + U32 y_meters = y_regions * REGION_WIDTH_UNITS; U64 handle = to_region_handle(x_meters, y_meters); @@ -714,6 +741,7 @@ void LLWorldMap::processMapBlockReply(LLMessageSystem* msg, void**) siminfo->setRegionFlags( region_flags ); siminfo->setWaterHeight((F32) water_height); siminfo->setMapImageID( image_id, agent_flags ); + siminfo->setSize( x_size, y_size ); #ifdef IMMEDIATE_IMAGE_LOAD if (use_web_map_tiles) diff --git a/indra/newview/llworldmap.h b/indra/newview/llworldmap.h index c87b514ad..c41bf28c3 100644 --- a/indra/newview/llworldmap.h +++ b/indra/newview/llworldmap.h @@ -100,6 +100,7 @@ public: void updateAgentCount(F64 time); // Send an item request for agent count on that region if time's up // Setters void setName(std::string& name) { mName = name; } + void setSize(U16 sizeX, U16 sizeY) { mSizeX = sizeX; mSizeY = sizeY; } void setAccess (U8 accesscode) { mAccess = accesscode; } void setRegionFlags (U32 region_flags) { mRegionFlags = region_flags; } void setWaterHeight (F32 water_height) { mWaterHeight = water_height; } @@ -117,6 +118,8 @@ public: const F32 getWaterHeight() const { return mWaterHeight; } const F32 getAlpha() const { return mAlpha; } const U64 getHandle() const { return mHandle; } + const U16 getSizeX() const { return mSizeX; } + const U16 getSizeY() const { return mSizeY; } bool isName(const std::string& name) const; bool isDown() { return (mAccess == SIM_ACCESS_DOWN); } bool isPG() { return (mAccess <= SIM_ACCESS_PG); } @@ -130,7 +133,9 @@ private: U8 mAccess; U32 mRegionFlags; F32 mWaterHeight; - + U16 mSizeX; + U16 mSizeY; + F32 mAlpha; public: diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp index 575e8120b..0edb7765d 100644 --- a/indra/newview/llworldmapview.cpp +++ b/indra/newview/llworldmapview.cpp @@ -644,7 +644,7 @@ void LLWorldMapView::drawTiles(S32 width, S32 height) { { continue; // better to draw nothing than the missing asset image } - + LLVector3d origin_global((F64)layer->LayerExtents.mLeft * REGION_WIDTH_METERS, (F64)layer->LayerExtents.mBottom * REGION_WIDTH_METERS, 0.f); // Find x and y position relative to camera's center. @@ -674,7 +674,8 @@ void LLWorldMapView::drawTiles(S32 width, S32 height) { } current_image->setBoostLevel(LLViewerTexture::BOOST_MAP_VISIBLE); - current_image->setKnownDrawSize(llround(pix_width * LLUI::sGLScaleFactor.mV[VX]), llround(pix_height * LLUI::sGLScaleFactor.mV[VY])); + current_image->setKnownDrawSize(llround(pix_width * LLUI::sGLScaleFactor.mV[VX]), + llround(pix_height * LLUI::sGLScaleFactor.mV[VY])); if (!current_image->hasGLTexture()) { @@ -762,8 +763,8 @@ void LLWorldMapView::drawTiles(S32 width, S32 height) { // When the view isn't panned, 0,0 = center of rectangle F32 bottom = sPanY + half_height + relative_y; F32 left = sPanX + half_width + relative_x; - F32 top = bottom + sMapScale ; - F32 right = left + sMapScale ; + F32 top = bottom + sMapScale * ((F32)info->getSizeY() / 256.f); + F32 right = left + sMapScale * ((F32)info->getSizeX() / 256.f); // Switch to world map texture (if available for this region) if either: // 1. Tiles are zoomed out small enough, or @@ -815,7 +816,8 @@ void LLWorldMapView::drawTiles(S32 width, S32 height) { (textures_requested_this_tick < MAX_REQUEST_PER_TICK))) { textures_requested_this_tick++; - if (use_web_map_tiles) + if (use_web_map_tiles && info->getSizeX() == REGION_WIDTH_UNITS && + info->getSizeY() == REGION_WIDTH_UNITS) { LLVector3d region_pos = info->getGlobalOrigin(); info->mCurrentImage = LLWorldMap::loadObjectsTile((U32)(region_pos.mdV[VX] / REGION_WIDTH_UNITS), (U32)(region_pos.mdV[VY] / REGION_WIDTH_UNITS)); @@ -852,13 +854,15 @@ void LLWorldMapView::drawTiles(S32 width, S32 height) { if (simimage != NULL) { simimage->setBoostLevel(LLViewerTexture::BOOST_MAP); - simimage->setKnownDrawSize(llround(draw_size * LLUI::sGLScaleFactor.mV[VX]), llround(draw_size * LLUI::sGLScaleFactor.mV[VY])); + simimage->setKnownDrawSize(llround(draw_size * LLUI::sGLScaleFactor.mV[VX] * ((F32)info->getSizeX() / REGION_WIDTH_UNITS)), + llround(draw_size * LLUI::sGLScaleFactor.mV[VY] * ((F32)info->getSizeY() / REGION_WIDTH_UNITS))); } if (overlayimage != NULL) { overlayimage->setBoostLevel(LLViewerTexture::BOOST_MAP); - overlayimage->setKnownDrawSize(llround(draw_size * LLUI::sGLScaleFactor.mV[VX]), llround(draw_size * LLUI::sGLScaleFactor.mV[VY])); + overlayimage->setKnownDrawSize(llround(draw_size * LLUI::sGLScaleFactor.mV[VX] * ((F32)info->getSizeX() / REGION_WIDTH_UNITS)), + llround(draw_size * LLUI::sGLScaleFactor.mV[VY] * ((F32)info->getSizeY() / REGION_WIDTH_UNITS))); } // LLTextureView::addDebugImage(simimage); @@ -1255,8 +1259,17 @@ bool LLWorldMapView::drawMipmapLevel(S32 width, S32 height, S32 level, bool load F32 left = pos_screen[VX]; F32 bottom = pos_screen[VY]; // Compute the NE corner coordinates of the tile now - pos_global[VX] += tile_width; - pos_global[VY] += tile_width; + LLSimInfo* simInfo = LLWorldMap::instance().simInfoFromHandle(to_region_handle(grid_x, grid_y)); + if(simInfo != NULL) + { + pos_global[VX] += ((F32)tile_width * ((F32)simInfo->getSizeX() / REGION_WIDTH_METERS)); + pos_global[VY] += ((F32)tile_width * ((F32)simInfo->getSizeY() / REGION_WIDTH_METERS)); + } + else + { + pos_global[VX] += tile_width; + pos_global[VY] += tile_width; + } pos_screen = globalPosToView (pos_global); F32 right = pos_screen[VX]; F32 top = pos_screen[VY]; @@ -1283,11 +1296,6 @@ bool LLWorldMapView::drawMipmapLevel(S32 width, S32 height, S32 level, bool load drawTileOutline(level, top, left, bottom, right); #endif // DEBUG_DRAW_TILE } - //else - //{ - // Waiting for a tile -> the level is not complete - // LL_INFOS("World Map") << "Unfetched tile. level = " << level << LL_ENDL; - //} } else { diff --git a/indra/newview/skins/default/xui/en-us/floater_avatar_textures.xml b/indra/newview/skins/default/xui/en-us/floater_avatar_textures.xml index e83fb1904..d860a185e 100644 --- a/indra/newview/skins/default/xui/en-us/floater_avatar_textures.xml +++ b/indra/newview/skins/default/xui/en-us/floater_avatar_textures.xml @@ -12,34 +12,34 @@ >