Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm
|
|
@ -51,6 +51,8 @@ indra/newview/pilot.txt
|
|||
indra/newview/pilot.xml
|
||||
indra/newview/res-sdl/ll_icon.*
|
||||
indra/newview/res/ll_icon.*
|
||||
indra/newview/res-sdl/firestorm_icon.*
|
||||
indra/newview/res/firestorm_icon.*
|
||||
indra/newview/search_history.txt
|
||||
indra/newview/teleport_history.txt
|
||||
indra/newview/typed_locations.txt
|
||||
|
|
|
|||
|
|
@ -103,10 +103,26 @@ if(WINDOWS)
|
|||
set(MSVC_VER 120)
|
||||
elseif (MSVC_VERSION GREATER_EQUAL 1910 AND MSVC_VERSION LESS 1920) # Visual Studio 2017
|
||||
set(MSVC_VER 140)
|
||||
set(MSVC_TOOLSET_VER 141)
|
||||
elseif (MSVC_VERSION GREATER_EQUAL 1920 AND MSVC_VERSION LESS 1930) # Visual Studio 2019
|
||||
set(MSVC_VER 140)
|
||||
set(MSVC_TOOLSET_VER 142)
|
||||
else (MSVC80)
|
||||
MESSAGE(WARNING "New MSVC_VERSION ${MSVC_VERSION} of MSVC: adapt Copy3rdPartyLibs.cmake")
|
||||
endif (MSVC80)
|
||||
|
||||
# <FS:Ansariel> Try using the VC runtime redistributables that came with the VS installation first
|
||||
if (MSVC_TOOLSET_VER AND DEFINED ENV{VCTOOLSREDISTDIR})
|
||||
if(ADDRESS_SIZE EQUAL 32)
|
||||
set(redist_find_path "$ENV{VCTOOLSREDISTDIR}x86\\Microsoft.VC${MSVC_TOOLSET_VER}.CRT")
|
||||
else(ADDRESS_SIZE EQUAL 32)
|
||||
set(redist_find_path "$ENV{VCTOOLSREDISTDIR}x64\\Microsoft.VC${MSVC_TOOLSET_VER}.CRT")
|
||||
endif(ADDRESS_SIZE EQUAL 32)
|
||||
get_filename_component(redist_path "${redist_find_path}" ABSOLUTE)
|
||||
MESSAGE(STATUS "VC Runtime redist path: ${redist_path}")
|
||||
endif (MSVC_TOOLSET_VER AND DEFINED ENV{VCTOOLSREDISTDIR})
|
||||
# </FS:Ansariel>
|
||||
|
||||
if(ADDRESS_SIZE EQUAL 32)
|
||||
# this folder contains the 32bit DLLs.. (yes really!)
|
||||
set(registry_find_path "[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/SysWOW64")
|
||||
|
|
@ -125,10 +141,19 @@ if(WINDOWS)
|
|||
# Check each of them.
|
||||
foreach(release_msvc_file
|
||||
msvcp${MSVC_VER}.dll
|
||||
msvcr${MSVC_VER}.dll
|
||||
#msvcr${MSVC_VER}.dll # <FS:Ansariel> Can't build with older VS versions anyway - no need trying to copy this file
|
||||
vcruntime${MSVC_VER}.dll
|
||||
)
|
||||
if(EXISTS "${registry_path}/${release_msvc_file}")
|
||||
# <FS:Ansariel> Try using the VC runtime redistributables that came with the VS installation first
|
||||
if(redist_path AND EXISTS "${redist_path}/${release_msvc_file}")
|
||||
MESSAGE(STATUS "Copying redist file from ${redist_path}/${release_msvc_file}")
|
||||
to_staging_dirs(
|
||||
${redist_path}
|
||||
third_party_targets
|
||||
${release_msvc_file})
|
||||
# </FS:Ansariel>
|
||||
elseif(EXISTS "${registry_path}/${release_msvc_file}")
|
||||
MESSAGE(STATUS "Copying redist file from ${registry_path}/${release_msvc_file}")
|
||||
to_staging_dirs(
|
||||
${registry_path}
|
||||
third_party_targets
|
||||
|
|
|
|||
|
|
@ -1276,6 +1276,58 @@ std::string LLStringUtil::getLocale(void)
|
|||
template<>
|
||||
void LLStringUtil::formatNumber(std::string& numStr, std::string decimals)
|
||||
{
|
||||
// <FS:ND> Windows does not/cannot use UTF8 in char strings(1). So to get valid conversions we need to widen the strings to wchar_t(2) do the formatting in std::wstring, then convert
|
||||
// down to UTF8 again.
|
||||
// 1: Since Win 10 Build 17134 (April 2018 Update) Windows can work with UTF8, so using a codepage like Linux/OSX (lang_region.uf8) via (for example) <string name="MicrosoftLocale">de_DE.UTF-8</string>
|
||||
// in language_settings.xml could work.
|
||||
// 2: The LL way would be to use llwachr/LLWString and thus in UTF32. But std::basic_string< llwchar > is unusable to what seems
|
||||
// a crt bug (https://stackoverflow.com/questions/48716223/compile-error-for-char-based-stl-stream-containers-in-visual-studio)
|
||||
// A workaround would be using std::basic_stringstream< char32_t > then using later std::transform to static_cast each code point from char32_t to llwchar (u32) and thus create a LLWString from
|
||||
// a std::basic_string< char32_t >.
|
||||
//
|
||||
// For Linux/OSX the old routinewith std::stringstream should be fine. Those systems use a UTF8 codepage.
|
||||
#if LL_WINDOWS
|
||||
std::wstringstream strStream;
|
||||
S32 intDecimals = 0;
|
||||
|
||||
std::wstring wDecimals = utf8str_to_utf16str(decimals);
|
||||
std::wstring wNumStr = utf8str_to_utf16str(numStr);
|
||||
LLStringUtilBase<wchar_t>::convertToS32 (wDecimals, intDecimals);
|
||||
if (!sLocale.empty())
|
||||
{
|
||||
// std::locale() throws if the locale is unknown! (EXT-7926)
|
||||
try
|
||||
{
|
||||
// <FS:Ansariel> Use user's system locale setting for number formatting
|
||||
//strStream.imbue(std::locale(sLocale.c_str()));
|
||||
strStream.imbue(std::locale(""));
|
||||
} catch (const std::exception &)
|
||||
{
|
||||
LL_WARNS_ONCE("Locale") << "Cannot set locale to " << sLocale << LL_ENDL;
|
||||
}
|
||||
}
|
||||
|
||||
if (!intDecimals)
|
||||
{
|
||||
S32 intStr;
|
||||
|
||||
if (LLStringUtilBase<wchar_t>::convertToS32(wNumStr, intStr))
|
||||
{
|
||||
strStream << intStr;
|
||||
numStr = wstring_to_utf8str( strStream.str() );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
F32 floatStr;
|
||||
|
||||
if (LLStringUtilBase<wchar_t>::convertToF32(wNumStr, floatStr))
|
||||
{
|
||||
strStream << std::fixed << std::showpoint << std::setprecision(intDecimals) << floatStr;
|
||||
numStr = wstring_to_utf8str( strStream.str() );
|
||||
}
|
||||
}
|
||||
#else
|
||||
std::stringstream strStream;
|
||||
S32 intDecimals = 0;
|
||||
|
||||
|
|
@ -1285,7 +1337,7 @@ void LLStringUtil::formatNumber(std::string& numStr, std::string decimals)
|
|||
// std::locale() throws if the locale is unknown! (EXT-7926)
|
||||
try
|
||||
{
|
||||
// <FS:Ansariel> FIRE-6070: Use user's system locale setting for number formatting
|
||||
// <FS:Ansariel> Use user's system locale setting for number formatting
|
||||
//strStream.imbue(std::locale(sLocale.c_str()));
|
||||
strStream.imbue(std::locale(""));
|
||||
} catch (const std::exception &)
|
||||
|
|
@ -1302,11 +1354,6 @@ void LLStringUtil::formatNumber(std::string& numStr, std::string decimals)
|
|||
{
|
||||
strStream << intStr;
|
||||
numStr = strStream.str();
|
||||
// <FS:Ansariel> FIRE-6070: Fix random symbols in formatted numbers in some locales
|
||||
#ifdef LL_WINDOWS
|
||||
numStr = ll_convert_string_to_utf8_string(numStr);
|
||||
#endif
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -1317,13 +1364,9 @@ void LLStringUtil::formatNumber(std::string& numStr, std::string decimals)
|
|||
{
|
||||
strStream << std::fixed << std::showpoint << std::setprecision(intDecimals) << floatStr;
|
||||
numStr = strStream.str();
|
||||
// <FS:Ansariel> FIRE-6070: Fix random symbols in formatted numbers in some locales
|
||||
#ifdef LL_WINDOWS
|
||||
numStr = ll_convert_string_to_utf8_string(numStr);
|
||||
#endif
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
|
|||
|
|
@ -178,6 +178,10 @@ public:
|
|||
|
||||
static bool isSpace(char elem) { return isspace((unsigned char)elem) != 0; }
|
||||
static bool isSpace(llwchar elem) { return iswspace(elem) != 0; }
|
||||
// <FS:ND/> Specialisation needed for correct number formatting
|
||||
#if LL_WINDOWS
|
||||
static bool isSpace(wchar_t elem) { return iswspace(elem) != 0; }
|
||||
#endif
|
||||
|
||||
static bool isUpper(char elem) { return isupper((unsigned char)elem) != 0; }
|
||||
static bool isUpper(llwchar elem) { return iswupper(elem) != 0; }
|
||||
|
|
|
|||
|
|
@ -102,6 +102,8 @@ LLFolderDictionary::LLFolderDictionary()
|
|||
|
||||
addEntry(LLFolderType::FT_SETTINGS, new FolderEntry("settings", TRUE));
|
||||
|
||||
addEntry(LLFolderType::FT_MY_SUITCASE, new FolderEntry("suitcase", TRUE)); // <FS:Ansariel> OpenSim HG-support
|
||||
|
||||
addEntry(LLFolderType::FT_NONE, new FolderEntry("-1", FALSE));
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -99,6 +99,8 @@ public:
|
|||
FT_RLV = 59,
|
||||
// </FS:Ansariel> Folder types for our own virtual system folders
|
||||
|
||||
FT_MY_SUITCASE = 100, // <FS:Ansariel> OpenSim HG-support
|
||||
|
||||
FT_COUNT,
|
||||
|
||||
FT_NONE = -1
|
||||
|
|
|
|||
|
|
@ -430,6 +430,7 @@ LLWindowWin32::LLWindowWin32(LLWindowCallbacks* callbacks,
|
|||
memset(mCurrentGammaRamp, 0, sizeof(mCurrentGammaRamp));
|
||||
memset(mPrevGammaRamp, 0, sizeof(mPrevGammaRamp));
|
||||
mCustomGammaSet = FALSE;
|
||||
mWindowHandle = NULL; // <FS:Ansariel> Initialize...
|
||||
|
||||
if (!SystemParametersInfo(SPI_GETMOUSEVANISH, 0, &mMouseVanish, 0))
|
||||
{
|
||||
|
|
@ -1141,7 +1142,9 @@ BOOL LLWindowWin32::switchContext(BOOL fullscreen, const LLCoordScreen &size, BO
|
|||
<< " Height: " << (window_rect.bottom - window_rect.top)
|
||||
<< " Fullscreen: " << mFullscreen
|
||||
<< LL_ENDL;
|
||||
if (!destroy_window_handler(mWindowHandle))
|
||||
// <FS:Ansariel> Only try destroying an existing window
|
||||
//if (!destroy_window_handler(mWindowHandle))
|
||||
if (mWindowHandle && !destroy_window_handler(mWindowHandle))
|
||||
{
|
||||
LL_WARNS("Window") << "Failed to properly close window before recreating it!" << LL_ENDL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1796,6 +1796,29 @@ if (LINUX)
|
|||
SET_SOURCE_FILES_PROPERTIES(llviewermenu.cpp PROPERTIES COMPILE_FLAGS -fno-var-tracking-assignments)
|
||||
endif()
|
||||
# </FS:ND>
|
||||
|
||||
# Replace the icons with the appropriate ones for the channel
|
||||
# ('test' is the default)
|
||||
set(ICON_PATH "private")
|
||||
string(TOLOWER ${VIEWER_CHANNEL} channel_lower)
|
||||
if(channel_lower MATCHES "release")
|
||||
set(ICON_PATH "release")
|
||||
elseif(channel_lower MATCHES "beta")
|
||||
set(ICON_PATH "beta")
|
||||
elseif(channel_lower MATCHES "project")
|
||||
set(ICON_PATH "project")
|
||||
endif()
|
||||
|
||||
if (OPENSIM)
|
||||
set(ICON_PATH "${ICON_PATH}-os")
|
||||
endif (OPENSIM)
|
||||
|
||||
message(STATUS "Copying icons for ${ICON_PATH}")
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/icons/${ICON_PATH}/firestorm_256.bmp"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/res-sdl/firestorm_icon.BMP"
|
||||
)
|
||||
endif (LINUX)
|
||||
|
||||
if (WINDOWS)
|
||||
|
|
@ -1836,18 +1859,25 @@ if (WINDOWS)
|
|||
# Replace the icons with the appropriate ones for the channel
|
||||
# ('test' is the default)
|
||||
set(ICON_PATH "private")
|
||||
set(VIEWER_MACOSX_PHASE "d")
|
||||
#set(VIEWER_MACOSX_PHASE "d") # <FS:Ansariel> Moved to OSX section
|
||||
string(TOLOWER ${VIEWER_CHANNEL} channel_lower)
|
||||
if(channel_lower MATCHES "release")
|
||||
set(ICON_PATH "release")
|
||||
set(VIEWER_MACOSX_PHASE "f")
|
||||
#set(VIEWER_MACOSX_PHASE "f") # <FS:Ansariel> Moved to OSX section
|
||||
elseif(channel_lower MATCHES "beta")
|
||||
set(ICON_PATH "beta")
|
||||
set(VIEWER_MACOSX_PHASE "b")
|
||||
#set(VIEWER_MACOSX_PHASE "b") # <FS:Ansariel> Moved to OSX section
|
||||
elseif(channel_lower MATCHES "project")
|
||||
set(ICON_PATH "project")
|
||||
set(VIEWER_MACOSX_PHASE "a")
|
||||
#set(VIEWER_MACOSX_PHASE "a") # <FS:Ansariel> Moved to OSX section
|
||||
endif()
|
||||
|
||||
# <FS:Ansariel> FIRE-24335: Use different icon for OpenSim version
|
||||
if (OPENSIM)
|
||||
set(ICON_PATH "${ICON_PATH}-os")
|
||||
endif (OPENSIM)
|
||||
# <FS:Ansariel>
|
||||
|
||||
message(STATUS "Copying icons for ${ICON_PATH}")
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
|
|
@ -2585,6 +2615,18 @@ endif (NOT ENABLE_MEDIA_PLUGINS)
|
|||
endif (LINUX)
|
||||
|
||||
if (DARWIN)
|
||||
# <FS:Ansariel> Moved from Windows section
|
||||
set(VIEWER_MACOSX_PHASE "d")
|
||||
string(TOLOWER ${VIEWER_CHANNEL} channel_lower)
|
||||
if(channel_lower MATCHES "release")
|
||||
set(VIEWER_MACOSX_PHASE "f")
|
||||
elseif(channel_lower MATCHES "beta")
|
||||
set(VIEWER_MACOSX_PHASE "b")
|
||||
elseif(channel_lower MATCHES "project")
|
||||
set(VIEWER_MACOSX_PHASE "a")
|
||||
endif()
|
||||
# </FS:Ansariel>
|
||||
|
||||
# These all get set with PROPERTIES. It's not that the property names are
|
||||
# magically known to CMake -- it's that these names are referenced in the
|
||||
# Info-SecondLife.plist file in the configure_file() directive below.
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
6.4.12
|
||||
6.4.13
|
||||
|
|
|
|||
|
|
@ -7,6 +7,11 @@
|
|||
<string>CameraFocusTransitionTime</string>
|
||||
<string>CameraFNumber</string>
|
||||
<string>FramePerSecondLimit</string>
|
||||
<string>FSAllowWaterDistortionOcclusion</string>
|
||||
<string>FSDynamicTextureMemory</string>
|
||||
<string>FSDynamicTextureMemoryCacheReserve</string>
|
||||
<string>FSDynamicTextureMemoryGPUReserve</string>
|
||||
<string>FSDynamicTextureMemoryMinTextureMemory</string>
|
||||
<string>FSLimitFramerate</string>
|
||||
<string>FSRenderDoFUnderwater</string>
|
||||
<string>FSRenderVignette</string>
|
||||
|
|
|
|||
|
|
@ -210,6 +210,19 @@
|
|||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
|
||||
<key>FSAvatarTurnSpeed</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Modify the speed at which the avatar responds to turning movements. 0-100 percent of max rate</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>0.0</real>
|
||||
</map>
|
||||
|
||||
<key>FSUseLegacyClienttags</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
@ -6635,6 +6648,17 @@
|
|||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>FSOpenSimAlwaysForceShowGrid</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Soft enable/disable the startup behaviour of OpenSim builds to allow gridlist access</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>ForceMandatoryUpdate</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
@ -9129,6 +9153,28 @@
|
|||
<key>Backup</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>FSMeshUploadAutoEnableWeights</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Automatically set weights enabled for meshes with rigging info</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>FSMeshUploadAutoShowWeightsWhenEnabled</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Automatically show weights in preview for meshes with rigging info</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>MeshPreviewCanvasColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
@ -12214,6 +12260,28 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<integer>0</integer>
|
||||
</map>
|
||||
<!-- </FS:TS> FIRE-16251 -->
|
||||
<key>FSFocusPointLocked</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether the focus point used for DoF is currently Locked in place</string>
|
||||
<key>Persist</key>
|
||||
<integer>0</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>FSFocusPointFollowsPointer</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Allows the Depth of Field focus to actively follow the mouse point</string>
|
||||
<key>Persist</key>
|
||||
<integer>0</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
|
||||
<key>CameraDoFResScale</key>
|
||||
<map>
|
||||
|
|
|
|||
|
|
@ -265,14 +265,14 @@ bool FSLSLBridge::lslToViewer(const std::string& message, const LLUUID& fromID,
|
|||
if (gSavedPerAccountSettings.getF32("UseLSLFlightAssist") > 0.f)
|
||||
{
|
||||
viewerToLSL(llformat("UseLSLFlightAssist|%.1f", gSavedPerAccountSettings.getF32("UseLSLFlightAssist")) );
|
||||
report_to_nearby_chat(LLTrans::getString("FlightAssistEnabled"));
|
||||
LLNotificationsUtil::add("FlightAssistEnabled", LLSD());
|
||||
}
|
||||
|
||||
// <FS:PP> Inform user, if movelock was enabled at login
|
||||
if (gSavedPerAccountSettings.getBOOL("UseMoveLock"))
|
||||
{
|
||||
updateBoolSettingValue("UseMoveLock");
|
||||
report_to_nearby_chat(LLTrans::getString("MovelockEnabling"));
|
||||
LLNotificationsUtil::add("MovelockEnabling", LLSD());
|
||||
make_ui_sound("UISndMovelockToggle");
|
||||
}
|
||||
// </FS:PP>
|
||||
|
|
@ -291,7 +291,7 @@ bool FSLSLBridge::lslToViewer(const std::string& message, const LLUUID& fromID,
|
|||
{
|
||||
// Don't call for update here and only change setting to 'false', getCommitSignal()->connect->boost in llviewercontrol.cpp will send a message to Bridge anyway
|
||||
gSavedPerAccountSettings.setBOOL("UseMoveLock", false);
|
||||
report_to_nearby_chat(LLTrans::getString("MovelockDisabling"));
|
||||
LLNotificationsUtil::add("MovelockDisabling", LLSD());
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@ LLSLURL::LLSLURL(const std::string& slurl)
|
|||
hop = "hop://" + hop;
|
||||
slurl_uri = LLURI(hop);
|
||||
|
||||
LL_DEBUGS("SLURL") << "hypergrid slurl " << hop <<LL_ENDL;
|
||||
LL_DEBUGS("SLURL") << "hypergrid slurl " << hop << "hg=" << (mHypergrid?"true":"false") << LL_ENDL;
|
||||
}
|
||||
|
||||
LLSD path_array = slurl_uri.pathArray();
|
||||
|
|
@ -334,13 +334,16 @@ LLSLURL::LLSLURL(const std::string& slurl)
|
|||
}
|
||||
|
||||
probe_grid = LLGridManager::getInstance()->getGridByProbing(hypergrid);
|
||||
LL_DEBUGS("SLURL") << "Probing Hypergrid (trimmed): " << hypergrid << "(" << hyper_trimmed << ")" << LL_ENDL;
|
||||
LL_DEBUGS("SLURL") << "Probing result: " << (probe_grid.empty()?"NOT FOUND":probe_grid.c_str()) << LL_ENDL;
|
||||
if (probe_grid.empty())
|
||||
{
|
||||
probe_grid = LLGridManager::getInstance()->getGridByProbing(slurl_uri.hostName());
|
||||
LL_DEBUGS("SLURL") << "Probing hostName: " << slurl_uri.hostName() << LL_ENDL;
|
||||
LL_DEBUGS("SLURL") << "Probing result: " << (probe_grid.empty()?"NOT FOUND":probe_grid.c_str()) << LL_ENDL;
|
||||
LL_DEBUGS("SLURL") << "slurl_uri.hostNameAndPort(): " << slurl_uri.hostNameAndPort() << LL_ENDL;
|
||||
}
|
||||
|
||||
LL_DEBUGS("SLURL") << "Probing result: " << probe_grid << LL_ENDL;
|
||||
LL_DEBUGS("SLURL") << "slurl_uri.hostNameAndPort(): " << slurl_uri.hostNameAndPort() << LL_ENDL;
|
||||
|
||||
if ((slurl_uri.scheme() == LLSLURL::SLURL_HTTP_SCHEME || slurl_uri.scheme() == LLSLURL::SLURL_HTTPS_SCHEME) && slurl_uri.hostNameAndPort() != probe_grid)
|
||||
{
|
||||
|
|
@ -353,12 +356,17 @@ LLSLURL::LLSLURL(const std::string& slurl)
|
|||
// unlike the stinky maingrid style
|
||||
if (probe_grid.empty())
|
||||
{
|
||||
LL_DEBUGS("SLURL") << "Fallback to hostname and port as grid" << LL_ENDL;
|
||||
mGrid = slurl_uri.hostNameAndPort();
|
||||
}
|
||||
else
|
||||
{
|
||||
mGrid = probe_grid;
|
||||
mHypergrid = LLGridManager::getInstance()->isHyperGrid(probe_grid);
|
||||
if(!mHypergrid)// only check if we have not already decided HG is true
|
||||
{
|
||||
mHypergrid = LLGridManager::getInstance()->isHyperGrid(probe_grid);
|
||||
}
|
||||
LL_DEBUGS("SLURL") << "using probe result: " << mGrid << " hg=" << ((mHypergrid)?"true":"false") << LL_ENDL;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 192 KiB After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 192 KiB After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 192 KiB After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 192 KiB After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 192 KiB After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 192 KiB After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 192 KiB After Width: | Height: | Size: 192 KiB |
|
After Width: | Height: | Size: 153 KiB |
|
|
@ -85,8 +85,12 @@ Name ${INSTNAME}
|
|||
|
||||
;SubCaption 0 $(LicenseSubTitleSetup) # Override "license agreement" text
|
||||
|
||||
!define MUI_ICON "%%SOURCE%%\installers\windows\firestorm_icon.ico"
|
||||
!define MUI_UNICON "%%SOURCE%%\installers\windows\firestorm_icon.ico"
|
||||
# <FS:Ansariel> FIRE-24335: Use different icon for OpenSim version
|
||||
#!define MUI_ICON "%%SOURCE%%\installers\windows\firestorm_icon_os.ico"
|
||||
#!define MUI_UNICON "%%SOURCE%%\installers\windows\firestorm_icon_os.ico"
|
||||
!define MUI_ICON "%%SOURCE%%\installers\windows\firestorm_icon${ICON_SUFFIX}.ico"
|
||||
!define MUI_UNICON "%%SOURCE%%\installers\windows\firestorm_icon${ICON_SUFFIX}.ico"
|
||||
# </FS:Ansariel>
|
||||
|
||||
BrandingText " " # Bottom of window text
|
||||
Icon "${MUI_ICON}"
|
||||
|
|
|
|||
|
|
@ -106,16 +106,32 @@ void LFSimFeatureHandler::setSupportedFeatures()
|
|||
|
||||
if(extras.has("GridURL"))
|
||||
{
|
||||
mGridURL = extras["GridURL"].asString();
|
||||
auto pos = mGridURL.find("://");
|
||||
// If we have GridURL specified in the extras then we use this by default
|
||||
mHyperGridPrefix = extras["GridURL"].asString();
|
||||
auto pos = mHyperGridPrefix.find("://");
|
||||
if( pos != std::string::npos)
|
||||
{
|
||||
mGridURL = mGridURL.substr(pos+3,mGridURL.size()-(pos+3));
|
||||
// We always strip off the protocol prefix if it exists
|
||||
// Note: we do not attempt to clear trailing port numbers or / or even directories.
|
||||
mHyperGridPrefix = mHyperGridPrefix.substr(pos+3,mHyperGridPrefix.size()-(pos+3));
|
||||
}
|
||||
LL_DEBUGS() << "Setting HyperGrid URL to \"GridURL\" [" << mHyperGridPrefix << "]" << LL_ENDL;
|
||||
}
|
||||
#ifdef OPENSIM
|
||||
else if (LLGridManager::instance().getGatekeeper() != std::string{})
|
||||
{
|
||||
// Note: this is a tentative test pending further use of gatekeeper
|
||||
// worst case this is checking the login grid and will simply be the same as the fallback
|
||||
// If the GridURL is not available then we will try to use the Gatekeeper which is expected to be present.
|
||||
mHyperGridPrefix = LLGridManager::instance().getGatekeeper();
|
||||
LL_DEBUGS() << "Setting HyperGrid URL to \"Gatekeeper\" [" << mHyperGridPrefix << "]" << LL_ENDL;
|
||||
}
|
||||
#endif
|
||||
else
|
||||
{
|
||||
mGridURL = LLGridManager::instance().getGridId();
|
||||
// Just in case that fails we will default back to the current grid
|
||||
mHyperGridPrefix = LLGridManager::instance().getGridId();
|
||||
LL_DEBUGS() << "Setting HyperGrid URL to fallback of current grid (target grid is misconfigured) [" << mHyperGridPrefix << "]" << LL_ENDL;
|
||||
}
|
||||
|
||||
if (extras.has("SimulatorFPS") && extras.has("SimulatorFPSFactor") &&
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ public:
|
|||
// Accessors
|
||||
bool simSupportsExport() const { return mSupportsExport; }
|
||||
std::string mapServerURL() const { return mMapServerURL; }
|
||||
std::string gridURL() const { return mGridURL; }
|
||||
std::string hyperGridURL() const { return mHyperGridPrefix; }
|
||||
std::string searchURL() const { return mSearchURL; }
|
||||
U32 sayRange() const { return mSayRange; }
|
||||
U32 shoutRange() const { return mShoutRange; }
|
||||
|
|
@ -114,7 +114,7 @@ private:
|
|||
// SignaledTypes
|
||||
SignaledType<bool> mSupportsExport;
|
||||
std::string mMapServerURL;
|
||||
std::string mGridURL;
|
||||
std::string mHyperGridPrefix;
|
||||
SignaledType<std::string> mSearchURL;
|
||||
SignaledType<U32> mSayRange;
|
||||
SignaledType<U32> mShoutRange;
|
||||
|
|
|
|||
|
|
@ -4685,7 +4685,7 @@ bool LLAgent::hasPendingTeleportRequest()
|
|||
|
||||
void LLAgent::startTeleportRequest()
|
||||
{
|
||||
LL_INFOS("Telport") << "Agent handling start teleport request." << LL_ENDL;
|
||||
LL_INFOS("Teleport") << "Agent handling start teleport request." << LL_ENDL; // <FS:Beq> fix mistyped tag
|
||||
if(LLVoiceClient::instanceExists())
|
||||
{
|
||||
LLVoiceClient::getInstance()->setHidden(TRUE);
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ void LLAgentUI::buildSLURL(LLSLURL& slurl, const bool escaped /*= true*/)
|
|||
#ifdef OPENSIM
|
||||
if (LLGridManager::instance().isInOpenSim())
|
||||
{
|
||||
return_slurl = LLSLURL(LFSimFeatureHandler::getInstance()->gridURL(), regionp->getName(), gAgent.getPositionAgent());
|
||||
return_slurl = LLSLURL(LFSimFeatureHandler::getInstance()->hyperGridURL(), regionp->getName(), gAgent.getPositionAgent());
|
||||
}
|
||||
else
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -2995,16 +2995,19 @@ bool LLAppViewer::initConfiguration()
|
|||
}
|
||||
// </FS>
|
||||
|
||||
// <FS:CR> Set ForceShowGrid to TRUE on first run if we're on an OpenSim build
|
||||
#ifdef OPENSIM
|
||||
if (!gSavedSettings.getBOOL("ForceShowGrid"))
|
||||
gSavedSettings.setBOOL("ForceShowGrid", TRUE);
|
||||
#endif // OPENSIM
|
||||
// </FS:CR>
|
||||
|
||||
gSavedSettings.setBOOL("FirstRunThisInstall", FALSE);
|
||||
}
|
||||
|
||||
// <FS:Beq> FIRE-29819 Set ForceShowGrid to TRUE always, unless expressly disabled
|
||||
// FSOpenSimAlwaysForcesShowGrid is added to allow closed grids to soft disable the default behaviour
|
||||
#if OPENSIM && !SINGLEGRID
|
||||
if (!gSavedSettings.getBOOL("ForceShowGrid") && gSavedSettings.getBOOL("FSOpenSimAlwaysForceShowGrid"))
|
||||
{
|
||||
gSavedSettings.setBOOL("ForceShowGrid", TRUE);
|
||||
}
|
||||
#endif
|
||||
// </FS:Beq>
|
||||
// <FS:CR> Compatibility with old backups
|
||||
// Put gSavedSettings here, gSavedPerAccountSettings in llstartup.cpp
|
||||
// *TODO: Should we keep these around forever or just three release cycles?
|
||||
|
|
|
|||
|
|
@ -2157,7 +2157,7 @@ void LLDrawPoolAvatar::updateRiggedFaceVertexBuffer(
|
|||
{
|
||||
LLMatrix4a final_mat;
|
||||
// <FS:ND> Use the SSE2 version
|
||||
LLSkinningUtil::getPerVertexSkinMatrix(weights[j].getF32ptr(), mat, false, final_mat, max_joints);
|
||||
// LLSkinningUtil::getPerVertexSkinMatrix(weights[j].getF32ptr(), mat, false, final_mat, max_joints);
|
||||
FSSkinningUtil::getPerVertexSkinMatrixSSE(weights[j], mat, false, final_mat, max_joints);
|
||||
// </FS:ND>
|
||||
|
||||
|
|
|
|||
|
|
@ -259,6 +259,9 @@ public:
|
|||
|
||||
void initialize();
|
||||
bool isInitialized();
|
||||
// [RLVa:KB] - @setenv
|
||||
virtual bool isTransition() { return false; }
|
||||
// [/RLVa:KB]
|
||||
|
||||
void clear();
|
||||
|
||||
|
|
@ -318,6 +321,9 @@ public:
|
|||
|
||||
virtual bool applyTimeDelta(const LLSettingsBase::Seconds& delta) override;
|
||||
virtual void animate() override;
|
||||
// [RLVa:KB] - @setenv
|
||||
bool isTransition() override { return true; }
|
||||
// [/RLVa:KB]
|
||||
|
||||
protected:
|
||||
LLSettingsSky::ptr_t mStartSky;
|
||||
|
|
@ -327,6 +333,9 @@ public:
|
|||
};
|
||||
|
||||
DayInstance::ptr_t getSelectedEnvironmentInstance();
|
||||
// [RLVa:KB] - @setenv
|
||||
DayInstance::ptr_t getCurrentEnvironmentInstance() { return mCurrentEnvironment; }
|
||||
// [/RLVa:KB]
|
||||
DayInstance::ptr_t getSharedEnvironmentInstance();
|
||||
|
||||
protected:
|
||||
|
|
|
|||
|
|
@ -41,6 +41,9 @@
|
|||
#include "llweb.h"
|
||||
#include "llwindow.h"
|
||||
#include "llappviewer.h"
|
||||
#ifdef OPENSIM
|
||||
#include "fsgridhandler.h" // <FS:Beq> FIRE-30481 open sim buy floater fixup
|
||||
#endif
|
||||
|
||||
static const S32 STANDARD_BUY_AMOUNT = 2000;
|
||||
static const S32 MINIMUM_BALANCE_AMOUNT = 0;
|
||||
|
|
@ -183,6 +186,16 @@ void LLFloaterBuyCurrencyUI::updateUI()
|
|||
LLSD args;
|
||||
args["TITLE"] = getString("info_cannot_buy");
|
||||
args["MESSAGE"] = mManager.errorMessage();
|
||||
// <FS:Beq> FIRE-30481 restore access to help/donate link for OpenSim
|
||||
#ifdef OPENSIM
|
||||
if( !LLGridManager::getInstance()->isInSecondLife() )
|
||||
{
|
||||
args["LINK"] = mManager.errorURI();
|
||||
LLNotificationsUtil::add("CouldNotBuyCurrencyOS", args);
|
||||
}
|
||||
else // trailing else required for OS builds
|
||||
#endif
|
||||
// </FS:Beq>
|
||||
LLNotificationsUtil::add("CouldNotBuyCurrency", args);
|
||||
closeFloater();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@
|
|||
#include "llsliderctrl.h"
|
||||
#include "llspinctrl.h"
|
||||
#include "lltabcontainer.h"
|
||||
#include "llcolorswatch.h" // <FS:Beq>
|
||||
#include "lltrans.h"
|
||||
#include "llcallbacklist.h"
|
||||
#include "llviewertexteditor.h"
|
||||
|
|
@ -193,6 +194,15 @@ BOOL LLFloaterModelPreview::postBuild()
|
|||
getChild<LLCheckBoxCtrl>("show_joint_overrides")->setCommitCallback(boost::bind(&LLFloaterModelPreview::onViewOptionChecked, this, _1));
|
||||
getChild<LLCheckBoxCtrl>("show_joint_positions")->setCommitCallback(boost::bind(&LLFloaterModelPreview::onViewOptionChecked, this, _1));
|
||||
getChild<LLCheckBoxCtrl>("show_uv_guide")->setCommitCallback(boost::bind(&LLFloaterModelPreview::onViewOptionChecked, this, _1)); // <FS:Beq> - Add UV guide overlay to pmesh preview
|
||||
// <FS:Beq> support for settings panel of floater
|
||||
const auto& preview_refresh_cb = [this](LLUICtrl *, const LLSD &){ if(this->mModelPreview){mModelPreview->refresh();}};
|
||||
getChild<LLColorSwatchCtrl>("mesh_preview_canvas_color")->setCommitCallback(preview_refresh_cb);
|
||||
getChild<LLColorSwatchCtrl>("mesh_preview_edge_color")->setCommitCallback(preview_refresh_cb);
|
||||
getChild<LLColorSwatchCtrl>("mesh_preview_physics_edge_color")->setCommitCallback(preview_refresh_cb);
|
||||
getChild<LLColorSwatchCtrl>("mesh_preview_physics_fill_color")->setCommitCallback(preview_refresh_cb);
|
||||
getChild<LLColorSwatchCtrl>("mesh_preview_degenerate_edge_color")->setCommitCallback(preview_refresh_cb);
|
||||
getChild<LLColorSwatchCtrl>("mesh_preview_degenerate_fill_color")->setCommitCallback(preview_refresh_cb);
|
||||
// </FS:Beq>
|
||||
|
||||
childDisable("upload_skin");
|
||||
childDisable("upload_joints");
|
||||
|
|
@ -560,11 +570,13 @@ void add_row_to_list(LLScrollListCtrl *listp,
|
|||
|
||||
cell_params.column = "model_name";
|
||||
cell_params.value = name;
|
||||
cell_params.font_halign = LLFontGL::LEFT; // <FS:Beq> Fix ugly alignment
|
||||
|
||||
item_params.columns.add(cell_params);
|
||||
|
||||
cell_params.column = "axis_x";
|
||||
cell_params.value = vx;
|
||||
cell_params.font_halign = LLFontGL::RIGHT; // <FS:Beq> Fix ugly alignment
|
||||
item_params.columns.add(cell_params);
|
||||
|
||||
cell_params.column = "axis_y";
|
||||
|
|
|
|||
|
|
@ -815,7 +815,7 @@ BOOL LLFloaterPreference::postBuild()
|
|||
// [/SL:KB]
|
||||
|
||||
// <FS:AW opensim preferences>
|
||||
#if !defined(OPENSIM) || defined(SINGLEGRID)// <FS:AW optional opensim support/>
|
||||
#if !defined(OPENSIM) || defined(SINGLEGRID)
|
||||
// Hide the opensim tab if opensim isn't enabled
|
||||
LLTabContainer* tab_container = getChild<LLTabContainer>("pref core");
|
||||
if (tab_container)
|
||||
|
|
@ -824,9 +824,11 @@ BOOL LLFloaterPreference::postBuild()
|
|||
if (opensim_panel)
|
||||
tab_container->removeTabPanel(opensim_panel);
|
||||
}
|
||||
#endif
|
||||
#if defined(OPENSIM) && !defined(SINGLEGRID)
|
||||
childSetEnabled("show_grid_selection_check", !gSavedSettings.getBOOL("FSOpenSimAlwaysForceShowGrid"));
|
||||
#endif
|
||||
// </FS:AW opensim preferences>
|
||||
#endif // OPENSIM // <FS:AW optional opensim support/>
|
||||
|
||||
|
||||
// <FS:Zi> Pie menu
|
||||
gSavedSettings.getControl("OverridePieColors")->getSignal()->connect(boost::bind(&LLFloaterPreference::onPieColorsOverrideChanged, this));
|
||||
|
|
|
|||
|
|
@ -3844,7 +3844,12 @@ LLFolderType::EType LLFolderBridge::getPreferredType() const
|
|||
LLViewerInventoryCategory* cat = getCategory();
|
||||
if(cat)
|
||||
{
|
||||
// <FS:Ansariel> Special virtual system folder icons
|
||||
// <FS:Ansariel> Special virtual system folder icons; Since these folders can be user-created
|
||||
// and not protected, we will assign the folder type here instead of in
|
||||
// LLFolderDictionary. By latter and not declaring them as protected so the user
|
||||
// could delete them if they desire, they would not show up within the list of
|
||||
// protected folders in inventory, by underneath them among the other normal
|
||||
// folders, which is not desired.
|
||||
//preferred_type = cat->getPreferredType();
|
||||
std::string catName(cat->getName());
|
||||
if (catName == ROOT_FIRESTORM_FOLDER) preferred_type = LLFolderType::FT_FIRESTORM;
|
||||
|
|
|
|||
|
|
@ -49,6 +49,9 @@
|
|||
|
||||
// Firestorm includes
|
||||
#include "llappearancemgr.h" // needed to query whether we are in COF
|
||||
#ifdef OPENSIM
|
||||
#include "fsgridhandler.h" // <FS:Beq> need to check if in opensim
|
||||
#endif
|
||||
|
||||
LLTrace::BlockTimerStatHandle FT_FILTER_CLIPBOARD("Filter Clipboard");
|
||||
|
||||
|
|
@ -283,6 +286,14 @@ bool LLInventoryFilter::checkFolder(const LLUUID& folder_id) const
|
|||
if (!cat)
|
||||
return folder_id.isNull();
|
||||
LLFolderType::EType cat_type = cat->getPreferredType();
|
||||
// <FS:Beq> FIRE-30501 suitcase missing on 32 bit viewer.
|
||||
#ifdef OPENSIM
|
||||
if (LLGridManager::getInstance()->isInOpenSim() && cat_type == LLFolderType::FT_MY_SUITCASE)
|
||||
{
|
||||
return true; // suitcase will always be shown
|
||||
}
|
||||
#endif
|
||||
// </FS:Beq>
|
||||
if (cat_type != LLFolderType::FT_NONE && (1LL << cat_type & mFilterOps.mFilterCategoryTypes) == U64(0))
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2707,7 +2707,15 @@ void LLInventoryAction::doToSelected(LLInventoryModel* model, LLFolderView* root
|
|||
if (folder_item)
|
||||
{
|
||||
LLInvFVBridge* bridge = dynamic_cast<LLInvFVBridge*>(folder_item->getViewModelItem());
|
||||
if (!bridge || !bridge->isMultiPreviewAllowed())
|
||||
// <FS:Ansariel> FIRE-30518: Multi-preview not working for contents of rezzed objects
|
||||
// This should prevent multi-previews of settings, but for object inventory items
|
||||
// this check is always false, since content items in object inventories
|
||||
// have LLTaskInvFVBridges instead of LLInvFVBridges. Since settings can't be
|
||||
// opened from inside objects anyway, so restrict the check for actions performed
|
||||
// on avatar inventories.
|
||||
//if (!bridge || !bridge->isMultiPreviewAllowed())
|
||||
if ("open" == action && (!bridge || !bridge->isMultiPreviewAllowed()))
|
||||
// </FS:Ansariel>
|
||||
{
|
||||
open_multi_preview = false;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -1084,7 +1084,9 @@ void LLModelPreview::loadModelCallback(S32 loaded_lod)
|
|||
{
|
||||
fmp->enableViewOption("show_joint_overrides");
|
||||
mViewOption["show_joint_overrides"] = true;
|
||||
fmp->childSetValue("show_joint_overrides", true); // <FS:Beq> make sure option appears checked, when value is being forced true
|
||||
fmp->enableViewOption("show_joint_positions");
|
||||
fmp->childSetValue("show_joint_positions", true); // <FS:Beq> make sure option appears checked, when value is being forced true
|
||||
mViewOption["show_joint_positions"] = true;
|
||||
fmp->childSetValue("upload_joints", true);
|
||||
}
|
||||
|
|
@ -2998,6 +3000,8 @@ BOOL LLModelPreview::render()
|
|||
static LLCachedControl<LLColor4> deg_fill_col(gSavedSettings, "MeshPreviewDegenerateFillColor");
|
||||
static LLCachedControl<F32> deg_edge_width(gSavedSettings, "MeshPreviewDegenerateEdgeWidth");
|
||||
static LLCachedControl<F32> deg_point_size(gSavedSettings, "MeshPreviewDegeneratePointSize");
|
||||
static LLCachedControl<bool> auto_enable_weight_upload(gSavedSettings, "FSMeshUploadAutoEnableWeights");
|
||||
static LLCachedControl<bool> auto_enable_show_weights(gSavedSettings, "FSMeshUploadAutoShowWeightsWhenEnabled");
|
||||
// </FS:Beq>
|
||||
|
||||
S32 width = getWidth();
|
||||
|
|
@ -3078,17 +3082,39 @@ BOOL LLModelPreview::render()
|
|||
{
|
||||
// auto enable weight upload if weights are present
|
||||
// (note: all these UI updates need to be somewhere that is not render)
|
||||
mViewOption["show_skin_weight"] = true;
|
||||
skin_weight = true;
|
||||
fmp->childSetValue("upload_skin", true);
|
||||
// <FS:Beq> BUG-229632 auto enable weights slows manual workflow
|
||||
// mViewOption["show_skin_weight"] = true;
|
||||
// skin_weight = true;
|
||||
// fmp->childSetValue("upload_skin", true);
|
||||
LL_DEBUGS("MeshUpload") << "FSU auto_enable_weights_upload = " << auto_enable_weight_upload() << LL_ENDL;
|
||||
LL_DEBUGS("MeshUpload") << "FSU auto_enable_show_weights = " << auto_enable_show_weights() << LL_ENDL;
|
||||
upload_skin=auto_enable_weight_upload();
|
||||
fmp->childSetValue("upload_skin", upload_skin);
|
||||
|
||||
skin_weight = upload_skin && auto_enable_show_weights();
|
||||
mViewOption["show_skin_weight"] = skin_weight;
|
||||
mFMP->childSetValue("show_skin_weight", skin_weight);
|
||||
fmp->setViewOptionEnabled("show_skin_weight", upload_skin);
|
||||
fmp->setViewOptionEnabled("show_joint_overrides", upload_skin);
|
||||
fmp->setViewOptionEnabled("show_joint_positions", upload_skin);
|
||||
// </FS:Beq>
|
||||
mFirstSkinUpdate = false;
|
||||
}
|
||||
|
||||
fmp->enableViewOption("show_skin_weight");
|
||||
fmp->setViewOptionEnabled("show_joint_overrides", skin_weight);
|
||||
fmp->setViewOptionEnabled("show_joint_positions", skin_weight);
|
||||
// <FS:Beq> BUG-229632 auto enable weights slows manual workflow
|
||||
// fmp->enableViewOption("show_skin_weight");
|
||||
// fmp->setViewOptionEnabled("show_joint_overrides", skin_weight);
|
||||
// fmp->setViewOptionEnabled("show_joint_posi
|
||||
else
|
||||
{
|
||||
LL_DEBUGS("MeshUpload") << "NOT FSU auto_enable_weights_upload = " << auto_enable_weight_upload() << LL_ENDL;
|
||||
LL_DEBUGS("MeshUpload") << "NOT FSU auto_enable_show_weights = " << auto_enable_show_weights() << LL_ENDL;
|
||||
fmp->setViewOptionEnabled("show_skin_weight", upload_skin);
|
||||
fmp->setViewOptionEnabled("show_joint_overrides", upload_skin);
|
||||
fmp->setViewOptionEnabled("show_joint_positions", upload_skin);
|
||||
}
|
||||
// </FS:Beq>
|
||||
mFMP->childEnable("upload_skin");
|
||||
mFMP->childSetValue("show_skin_weight", skin_weight);
|
||||
// mFMP->childSetValue("show_skin_weight", skin_weight); // <FS:Beq/> BUG-229632
|
||||
|
||||
}
|
||||
else if ((flags & LEGACY_RIG_FLAG_TOO_MANY_JOINTS) > 0)
|
||||
|
|
@ -3099,6 +3125,12 @@ BOOL LLModelPreview::render()
|
|||
{
|
||||
mFMP->childSetVisible("skin_unknown_joint", true);
|
||||
}
|
||||
// <FS:Beq> defensive code to wanr for incorrect flags - no behavioural change
|
||||
else
|
||||
{
|
||||
LL_WARNS("MeshUpload") << "Unexpected flags combination on weights check" << LL_ENDL;
|
||||
}
|
||||
// </FS:Beq>
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -471,6 +471,7 @@ void LLPanelObject::getState( )
|
|||
root_objectp = objectp;
|
||||
}
|
||||
}
|
||||
deactivateMeshFields();
|
||||
}
|
||||
|
||||
LLCalc* calcp = LLCalc::getInstance();
|
||||
|
|
|
|||
|
|
@ -559,10 +559,11 @@ void LLScriptFloaterManager::onAddNotification(const LLUUID& notification_id)
|
|||
|
||||
if(it != mNotifications.end())
|
||||
{
|
||||
auto old_id = it->first; // <FS:Beq> store UUID to prevent use after free - Rye
|
||||
LLChicletPanel * chiclet_panelp = LLChicletBar::getInstance()->getChicletPanel();
|
||||
if (NULL != chiclet_panelp)
|
||||
{
|
||||
LLIMChiclet * chicletp = chiclet_panelp->findChiclet<LLIMChiclet>(it->first);
|
||||
LLIMChiclet * chicletp = chiclet_panelp->findChiclet<LLIMChiclet>(old_id); // <FS:Beq> avoid use after free - Rye
|
||||
if (NULL != chicletp)
|
||||
{
|
||||
// Pass the new_message icon state further.
|
||||
|
|
@ -571,14 +572,14 @@ void LLScriptFloaterManager::onAddNotification(const LLUUID& notification_id)
|
|||
}
|
||||
}
|
||||
|
||||
LLScriptFloater* floater = LLFloaterReg::findTypedInstance<LLScriptFloater>("script_floater", it->first);
|
||||
LLScriptFloater* floater = LLFloaterReg::findTypedInstance<LLScriptFloater>("script_floater", old_id); // <FS:Beq> avoid use after free - Rye
|
||||
if (floater)
|
||||
{
|
||||
// Generate chiclet with a "new message" indicator if a docked window was opened but not in focus. See EXT-3142.
|
||||
set_new_message |= !floater->hasFocus();
|
||||
}
|
||||
|
||||
removeNotification(it->first);
|
||||
removeNotification(old_id);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5639,9 +5639,18 @@ void LLSelectMgr::processObjectProperties(LLMessageSystem* msg, void** user_data
|
|||
}
|
||||
else
|
||||
{
|
||||
if (node->mInventorySerial != inv_serial && node->getObject())
|
||||
// <FS:Beq> FIRE-19738 Object content caching improvement
|
||||
// if (node->mInventorySerial != inv_serial && node->getObject())
|
||||
// {
|
||||
// node->getObject()->dirtyInventory();
|
||||
if ( node->mInventorySerial != inv_serial )
|
||||
{
|
||||
node->getObject()->dirtyInventory();
|
||||
auto obj = node->getObject();
|
||||
if( obj && obj->getInventorySerial() != inv_serial )
|
||||
{
|
||||
obj->dirtyInventory();
|
||||
}
|
||||
// </FS:Beq>
|
||||
}
|
||||
|
||||
// save texture data as soon as we get texture perms first time
|
||||
|
|
|
|||
|
|
@ -1286,8 +1286,6 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l
|
|||
final_name = LLTrans::getString("TooltipPerson");;
|
||||
}
|
||||
|
||||
// *HACK: We may select this object, so pretend it was clicked
|
||||
mPick = mHoverPick;
|
||||
// [RLVa:KB] - Checked: RLVa-1.2.0
|
||||
if ( (!RlvActions::isRlvEnabled()) ||
|
||||
( (RlvActions::canInteract(hover_object, mHoverPick.mObjectOffset)) && (RlvActions::canShowName(RlvActions::SNC_DEFAULT, hover_object->getID())) ) )
|
||||
|
|
@ -1558,8 +1556,6 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l
|
|||
|
||||
if (show_all_object_tips || needs_tip)
|
||||
{
|
||||
// We may select this object, so pretend it was clicked
|
||||
mPick = mHoverPick;
|
||||
// [RLVa:KB] - Checked: RLVa-1.2.1
|
||||
if ( (!RlvActions::isRlvEnabled()) || (RlvActions::canInteract(hover_object, mHoverPick.mObjectOffset)) )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -181,6 +181,9 @@ LLViewerFolderDictionary::LLViewerFolderDictionary()
|
|||
addEntry(LLFolderType::FT_RLV, new ViewerFolderEntry("RLV", "Inv_RLVOpen", "Inv_RLVClosed", FALSE, true));
|
||||
// </FS:Ansariel> Special Firestorm folder
|
||||
|
||||
// <FS:Ansariel> OpenSim HG-support
|
||||
addEntry(LLFolderType::FT_MY_SUITCASE, new ViewerFolderEntry("My Suitcase", "Inv_SuitcaseOpen", "Inv_SuitcaseClosed", FALSE, true));
|
||||
|
||||
for (U32 type = (U32)LLFolderType::FT_ENSEMBLE_START; type <= (U32)LLFolderType::FT_ENSEMBLE_END; ++type)
|
||||
{
|
||||
addEntry((LLFolderType::EType)type, new ViewerFolderEntry("New Folder", "Inv_FolderOpen", "Inv_FolderClosed", FALSE, false));
|
||||
|
|
|
|||
|
|
@ -4644,11 +4644,11 @@ class FSSelfToggleMoveLock : public view_listener_t
|
|||
gSavedPerAccountSettings.setBOOL("UseMoveLock", new_value);
|
||||
if (new_value)
|
||||
{
|
||||
report_to_nearby_chat(LLTrans::getString("MovelockEnabling"));
|
||||
LLNotificationsUtil::add("MovelockEnabling", LLSD());
|
||||
}
|
||||
else
|
||||
{
|
||||
report_to_nearby_chat(LLTrans::getString("MovelockDisabling"));
|
||||
LLNotificationsUtil::add("MovelockDisabling", LLSD());
|
||||
}
|
||||
}
|
||||
#ifdef OPENSIM
|
||||
|
|
|
|||
|
|
@ -5294,7 +5294,7 @@ LLViewerObject* LLViewerWindow::cursorIntersect(S32 mouse_x, S32 mouse_y, F32 de
|
|||
LLVector3 mouse_world_start = mouse_point_global;
|
||||
LLVector3 mouse_world_end = mouse_point_global + mouse_direction_global * depth;
|
||||
|
||||
if (!LLViewerJoystick::getInstance()->getOverrideCamera())
|
||||
if (!LLViewerJoystick::getInstance()->getOverrideCamera() && !gPipeline.FSFocusPointFollowsPointer) // <FS:Beq> FIRE-16728 Add free aim mouse and focus lock
|
||||
{ //always set raycast intersection to mouse_world_end unless
|
||||
//flycam is on (for DoF effect)
|
||||
gDebugRaycastIntersection.load3(mouse_world_end.mV);
|
||||
|
|
|
|||
|
|
@ -4779,7 +4779,12 @@ void LLVOAvatar::updateOrientation(LLAgent& agent, F32 speed, F32 delta_time)
|
|||
}
|
||||
else
|
||||
{
|
||||
pelvis_lag_time = PELVIS_LAG_WALKING;
|
||||
// <FS:Beq> FIRE-29581 remove stones from wet sack for Willow
|
||||
// pelvis_lag_time = PELVIS_LAG_WALKING;
|
||||
static constexpr F32 turn_rate_delta{0.0019f}; // linear scale
|
||||
static LLCachedControl<F32> turn_speed(gSavedSettings, "FSAvatarTurnSpeed", 0.0f); // 0 is default. We can't go slower.
|
||||
pelvis_lag_time = llmax(PELVIS_LAG_WALKING - (llclamp(turn_speed(), 0.f, 100.f) * turn_rate_delta), F_ALMOST_ZERO);
|
||||
// </FS:Beq>
|
||||
}
|
||||
|
||||
F32 u = llclamp((delta_time / pelvis_lag_time), 0.0f, 1.0f);
|
||||
|
|
|
|||
|
|
@ -759,7 +759,7 @@ BOOL LLVOAvatarSelf::buildMenus()
|
|||
item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);
|
||||
gDetachScreenPieMenu->addChild(item);
|
||||
// <FS:Ansariel> FIRE-7893: "Detach" sub-menu on inspect menu without function
|
||||
gInspectSelfDetachScreenMenu->addChild(item);
|
||||
gInspectSelfDetachScreenMenu->addChild(LLUICtrlFactory::create<LLMenuItemCallGL>(item_params));
|
||||
|
||||
// <FS:Zi> Pie menu
|
||||
slice_params.name =(slice_params.label );
|
||||
|
|
|
|||
|
|
@ -272,11 +272,13 @@ void PieMenu::draw()
|
|||
gl_rect_2d(0, r.getHeight(), r.getWidth(), 0, LLColor4::white, FALSE);
|
||||
#endif
|
||||
|
||||
LLUIColorTable& colortable = LLUIColorTable::instance();
|
||||
|
||||
// set up pie menu colors
|
||||
LLColor4 lineColor = LLUIColorTable::instance().getColor("PieMenuLineColor");
|
||||
LLColor4 selectedColor = LLUIColorTable::instance().getColor("PieMenuSelectedColor");
|
||||
LLColor4 textColor = LLUIColorTable::instance().getColor("PieMenuTextColor");
|
||||
LLColor4 bgColor = LLUIColorTable::instance().getColor("PieMenuBgColor");
|
||||
LLColor4 lineColor = colortable.getColor("PieMenuLineColor");
|
||||
LLColor4 selectedColor = colortable.getColor("PieMenuSelectedColor");
|
||||
LLColor4 textColor = colortable.getColor("PieMenuTextColor");
|
||||
LLColor4 bgColor = colortable.getColor("PieMenuBgColor");
|
||||
LLColor4 borderColor = bgColor % 0.3f;
|
||||
|
||||
// if the user wants their own colors, apply them here
|
||||
|
|
@ -285,9 +287,9 @@ void PieMenu::draw()
|
|||
{
|
||||
static LLCachedControl<F32> sPieMenuOpacity(gSavedSettings, "PieMenuOpacity");
|
||||
static LLCachedControl<F32> sPieMenuFade(gSavedSettings, "PieMenuFade");
|
||||
bgColor = LLUIColorTable::instance().getColor("PieMenuBgColorOverride") % sPieMenuOpacity;
|
||||
bgColor = colortable.getColor("PieMenuBgColorOverride") % sPieMenuOpacity;
|
||||
borderColor = bgColor % (1.f - sPieMenuFade);
|
||||
selectedColor = LLUIColorTable::instance().getColor("PieMenuSelectedColorOverride");
|
||||
selectedColor = colortable.getColor("PieMenuSelectedColorOverride");
|
||||
}
|
||||
static LLCachedControl<bool> sPieMenuPopupFontEffect(gSavedSettings, "PieMenuPopupFontEffect");
|
||||
static LLCachedControl<bool> sPieMenuOuterRingShade(gSavedSettings, "PieMenuOuterRingShade");
|
||||
|
|
@ -300,11 +302,8 @@ void PieMenu::draw()
|
|||
|
||||
S32 steps = 100;
|
||||
|
||||
// remember to take the UI scaling into account
|
||||
LLVector2 scale = gViewerWindow->getDisplayScale();
|
||||
|
||||
// move origin point to the center of our rectangle
|
||||
gGL.translatef(r.getWidth() / 2.f * scale.mV[VX], r.getHeight() / 2.f * scale.mV[VY], 0.f);
|
||||
LLUI::instance().translate(r.getWidth() / 2.f, r.getHeight() / 2.f);
|
||||
|
||||
// draw the general pie background
|
||||
gl_washer_2d(PIE_OUTER_SIZE * factor, PIE_INNER_SIZE, steps, bgColor, borderColor);
|
||||
|
|
|
|||
|
|
@ -185,6 +185,10 @@ bool LLPipeline::RenderDepthOfFieldInEditMode;
|
|||
//<FS:TS> FIRE-16251: Depth of field does not work underwater
|
||||
bool LLPipeline::FSRenderDepthOfFieldUnderwater;
|
||||
//</FS:TS> FIRE-16251
|
||||
// <FS:Beq> FIRE-16728 Add free aim mouse and focus lock
|
||||
bool LLPipeline::FSFocusPointLocked;
|
||||
bool LLPipeline::FSFocusPointFollowsPointer;
|
||||
// </FS:Beq>
|
||||
F32 LLPipeline::CameraFocusTransitionTime;
|
||||
F32 LLPipeline::CameraFNumber;
|
||||
F32 LLPipeline::CameraFocalLength;
|
||||
|
|
@ -658,6 +662,10 @@ void LLPipeline::init()
|
|||
connectRefreshCachedSettingsSafe("RenderAttachedLights");
|
||||
connectRefreshCachedSettingsSafe("RenderAttachedParticles");
|
||||
// </FS:Ansariel>
|
||||
// <FS:Beq> FIRE-16728 Add free aim mouse and focus lock
|
||||
connectRefreshCachedSettingsSafe("FSFocusPointLocked");
|
||||
connectRefreshCachedSettingsSafe("FSFocusPointFollowsPointer");
|
||||
// </FS:Beq>
|
||||
}
|
||||
|
||||
LLPipeline::~LLPipeline()
|
||||
|
|
@ -805,7 +813,10 @@ void LLPipeline::requestResizeShadowTexture()
|
|||
void LLPipeline::resizeShadowTexture()
|
||||
{
|
||||
releaseShadowTargets();
|
||||
allocateShadowBuffer(mScreenWidth, mScreenHeight);
|
||||
// <FS:Beq> FIRE-30538 don;t pass zero screen size to shadow buff allocator
|
||||
// allocateShadowBuffer(mScreenWidth, mScreenHeight);
|
||||
allocateShadowBuffer( mScreen.getWidth(), mScreen.getHeight() );
|
||||
// </FS:Beq>
|
||||
gResizeShadowTexture = FALSE;
|
||||
}
|
||||
|
||||
|
|
@ -1227,6 +1238,10 @@ void LLPipeline::refreshCachedSettings()
|
|||
//<FS:TS> FIRE-16251: Depth of Field does not work underwater
|
||||
FSRenderDepthOfFieldUnderwater = gSavedSettings.getBOOL("FSRenderDoFUnderwater");
|
||||
//</FS:TS> FIRE-16251
|
||||
// <FS:Beq> FIRE-16728 Add free aim mouse and focus lock
|
||||
FSFocusPointLocked = gSavedSettings.getBOOL("FSFocusPointLocked");
|
||||
FSFocusPointFollowsPointer = gSavedSettings.getBOOL("FSFocusPointFollowsPointer");
|
||||
// </FS:Beq>
|
||||
CameraFocusTransitionTime = gSavedSettings.getF32("CameraFocusTransitionTime");
|
||||
CameraFNumber = gSavedSettings.getF32("CameraFNumber");
|
||||
CameraFocalLength = gSavedSettings.getF32("CameraFocalLength");
|
||||
|
|
@ -4252,11 +4267,6 @@ void LLPipeline::renderHighlights()
|
|||
glStencilFunc(GL_ALWAYS, 0, 0xFFFFFFFF);
|
||||
glStencilOp(GL_REPLACE, GL_REPLACE, GL_REPLACE);
|
||||
|
||||
if (canUseVertexShaders())
|
||||
{
|
||||
gHighlightProgram.bind();
|
||||
}
|
||||
|
||||
gGL.setColorMask(false, false);
|
||||
|
||||
if (LLGLSLShader::sNoFixedFunction)
|
||||
|
|
@ -7915,6 +7925,15 @@ void LLPipeline::renderFinalize()
|
|||
|
||||
LLVector3 focus_point;
|
||||
|
||||
// <FS:Beq> FIRE-16728 focus point lock & free focus DoF - based on a feature developed by NiranV Dean
|
||||
static LLVector3 last_focus_point{};
|
||||
if( LLPipeline::FSFocusPointLocked && !last_focus_point.isExactlyZero() )
|
||||
{
|
||||
focus_point = last_focus_point;
|
||||
}
|
||||
else
|
||||
{
|
||||
// </FS:Beq>
|
||||
LLViewerObject *obj = LLViewerMediaFocus::getInstance()->getFocusedObject();
|
||||
if (obj && obj->mDrawable && obj->isSelected())
|
||||
{ // focus on selected media object
|
||||
|
|
@ -7928,10 +7947,11 @@ void LLPipeline::renderFinalize()
|
|||
}
|
||||
}
|
||||
}
|
||||
}// <FS:Beq/> support focus point lock
|
||||
|
||||
if (focus_point.isExactlyZero())
|
||||
{
|
||||
if (LLViewerJoystick::getInstance()->getOverrideCamera())
|
||||
if (LLViewerJoystick::getInstance()->getOverrideCamera() || LLPipeline::FSFocusPointFollowsPointer) // <FS:Beq/> FIRE-16728 Add free aim mouse and focus lock
|
||||
{ // focus on point under cursor
|
||||
focus_point.set(gDebugRaycastIntersection.getF32ptr());
|
||||
}
|
||||
|
|
@ -7954,7 +7974,9 @@ void LLPipeline::renderFinalize()
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// <FS:Beq> FIRE-16728 Add free aim mouse and focus lock
|
||||
last_focus_point = focus_point;
|
||||
// </FS:Beq>
|
||||
LLVector3 eye = LLViewerCamera::getInstance()->getOrigin();
|
||||
F32 target_distance = 16.f;
|
||||
if (!focus_point.isExactlyZero())
|
||||
|
|
@ -8957,24 +8979,6 @@ void LLPipeline::renderDeferredLighting(LLRenderTarget *screen_target)
|
|||
// send light color to shader in linear space
|
||||
LLColor3 col = volume->getLightLinearColor();
|
||||
|
||||
// fade also works as flicker prevention during reparenting
|
||||
// because reparenting causes distance to jump temporary
|
||||
F32 fade = iter->fade;
|
||||
if (fade < LIGHT_FADE_TIME)
|
||||
{
|
||||
// fade in/out light
|
||||
if (fade >= 0.f)
|
||||
{
|
||||
fade = fade / LIGHT_FADE_TIME;
|
||||
}
|
||||
else
|
||||
{
|
||||
fade = 1.f + fade / LIGHT_FADE_TIME;
|
||||
}
|
||||
fade = llclamp(fade, 0.f, 1.f);
|
||||
col *= fade;
|
||||
}
|
||||
|
||||
if (col.magVecSquared() < 0.001f)
|
||||
{
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -958,6 +958,10 @@ public:
|
|||
//<FS:TS> FIRE-16251: Depth of Field does not work underwater
|
||||
static bool FSRenderDepthOfFieldUnderwater;
|
||||
//</FS:TS> FIRE-16251
|
||||
// <FS:Beq> FIRE-16728
|
||||
static bool FSFocusPointLocked;
|
||||
static bool FSFocusPointFollowsPointer;
|
||||
// </FS:Beq>
|
||||
static F32 CameraFocusTransitionTime;
|
||||
static F32 CameraFNumber;
|
||||
static F32 CameraFocalLength;
|
||||
|
|
|
|||
|
|
@ -1372,8 +1372,6 @@ void FloaterQuickPrefs::updateControl(const std::string& controlName, ControlEnt
|
|||
if (var)
|
||||
{
|
||||
widget->setValue(var->getValue());
|
||||
widget->setToolTip(var->getComment());
|
||||
label_textbox->setToolTip(var->getComment());
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 226 KiB |
|
|
@ -368,9 +368,11 @@ bool RlvActions::isLocalTp(const LLVector3d& posGlobal)
|
|||
// WindLight
|
||||
//
|
||||
|
||||
bool RlvActions::canChangeEnvironment()
|
||||
bool RlvActions::canChangeEnvironment(const LLUUID& idRlvObject)
|
||||
{
|
||||
return !gRlvHandler.hasBehaviour(RLV_BHVR_SETENV);
|
||||
// User can (partially) change their environment settings if:
|
||||
// - not specifically restricted from changing their environment (by any object other than the one specified)
|
||||
return (idRlvObject.isNull()) ? !gRlvHandler.hasBehaviour(RLV_BHVR_SETENV) : !gRlvHandler.hasBehaviourExcept(RLV_BHVR_SETENV, idRlvObject);
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
|
|
|
|||
|
|
@ -219,9 +219,9 @@ public:
|
|||
// =========
|
||||
public:
|
||||
/*
|
||||
* Returns true if the user can make changes to their WindLight environment
|
||||
* Returns true if the user can make changes to their WindLight environment
|
||||
*/
|
||||
static bool canChangeEnvironment();
|
||||
static bool canChangeEnvironment(const LLUUID& idRlvObject = LLUUID::null);
|
||||
|
||||
|
||||
// =================
|
||||
|
|
|
|||
|
|
@ -472,11 +472,43 @@ LLEnvironment::EnvSelection_t RlvEnvironment::getTargetEnvironment()
|
|||
return RlvActions::canChangeEnvironment() ? LLEnvironment::ENV_LOCAL : LLEnvironment::ENV_EDIT;
|
||||
}
|
||||
|
||||
// static
|
||||
LLSettingsSky::ptr_t RlvEnvironment::getTargetSky(bool forSetCmd)
|
||||
{
|
||||
LLEnvironment* pEnv = LLEnvironment::getInstance();
|
||||
|
||||
if (forSetCmd)
|
||||
{
|
||||
LLEnvironment::EnvSelection_t targetEnv = getTargetEnvironment();
|
||||
bool isSharedEnv = !pEnv->getEnvironmentFixedSky(targetEnv),
|
||||
hasLocalDayCycle = !isSharedEnv && pEnv->getEnvironmentDay(targetEnv),
|
||||
isLocalTransition = !hasLocalDayCycle && pEnv->getCurrentEnvironmentInstance()->isTransition();
|
||||
if ( (isSharedEnv) || (hasLocalDayCycle) || (isLocalTransition) )
|
||||
{
|
||||
LLSettingsSky::ptr_t pSky = (isSharedEnv) ? pEnv->getEnvironmentFixedSky(LLEnvironment::ENV_PARCEL, true)->buildClone()
|
||||
: (hasLocalDayCycle) ? pEnv->getEnvironmentFixedSky(targetEnv)->buildClone()
|
||||
: pEnv->getEnvironmentFixedSky(targetEnv);
|
||||
pEnv->setEnvironment(targetEnv, pSky);
|
||||
pEnv->setSelectedEnvironment(targetEnv, LLEnvironment::TRANSITION_INSTANT);
|
||||
pEnv->updateEnvironment(LLEnvironment::TRANSITION_INSTANT);
|
||||
}
|
||||
}
|
||||
|
||||
return pEnv->getCurrentSky();
|
||||
}
|
||||
|
||||
|
||||
// static
|
||||
bool RlvEnvironment::onHandleCommand(const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet, const std::string& strCmdPrefix, const handler_map_t& fnLookup, const legacy_handler_map_t& legacyFnLookup)
|
||||
{
|
||||
if ( (rlvCmd.getBehaviour().length() > strCmdPrefix.length() + 2) && (boost::starts_with(rlvCmd.getBehaviour(), strCmdPrefix)) )
|
||||
{
|
||||
if ( (RLV_TYPE_FORCE == rlvCmd.getParamType()) && (!RlvActions::canChangeEnvironment(rlvCmd.getObjectID())) )
|
||||
{
|
||||
cmdRet = RLV_RET_FAILED_LOCK;
|
||||
return true;
|
||||
}
|
||||
|
||||
std::string strEnvCommand = rlvCmd.getBehaviour().substr(strCmdPrefix.length());
|
||||
|
||||
handler_map_t::const_iterator itFnEntry = fnLookup.find(strEnvCommand);
|
||||
|
|
@ -517,21 +549,21 @@ bool RlvEnvironment::onForceCommand(const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet
|
|||
template<>
|
||||
std::string RlvEnvironment::handleGetFn<float>(const std::function<float(LLSettingsSky::ptr_t)>& fn)
|
||||
{
|
||||
LLSettingsSky::ptr_t pSky = LLEnvironment::instance().getCurrentSky();
|
||||
LLSettingsSky::ptr_t pSky = getTargetSky();
|
||||
return std::to_string(fn(pSky));
|
||||
}
|
||||
|
||||
template<>
|
||||
std::string RlvEnvironment::handleGetFn<LLUUID>(const std::function<LLUUID(LLSettingsSky::ptr_t)>& fn)
|
||||
{
|
||||
LLSettingsSky::ptr_t pSky = LLEnvironment::instance().getCurrentSky();
|
||||
LLSettingsSky::ptr_t pSky = getTargetSky();
|
||||
return fn(pSky).asString();
|
||||
}
|
||||
|
||||
template<>
|
||||
std::string RlvEnvironment::handleGetFn<LLVector2>(const std::function<LLVector2(LLSettingsSky::ptr_t)>& fn)
|
||||
{
|
||||
LLSettingsSky::ptr_t pSky = LLEnvironment::instance().getCurrentSky();
|
||||
LLSettingsSky::ptr_t pSky = getTargetSky();
|
||||
LLVector2 replyVec = fn(pSky);
|
||||
return llformat("%f/%f", replyVec.mV[VX], replyVec.mV[VY]);
|
||||
}
|
||||
|
|
@ -539,7 +571,7 @@ std::string RlvEnvironment::handleGetFn<LLVector2>(const std::function<LLVector2
|
|||
template<>
|
||||
std::string RlvEnvironment::handleGetFn<LLColor3>(const std::function<LLColor3(LLSettingsSky::ptr_t)>& fn)
|
||||
{
|
||||
LLSettingsSky::ptr_t pSky = LLEnvironment::instance().getCurrentSky();
|
||||
LLSettingsSky::ptr_t pSky = getTargetSky();
|
||||
LLColor3 replyColor = fn(pSky);
|
||||
return llformat("%f/%f/%f", replyColor.mV[VX], replyColor.mV[VY], replyColor.mV[VZ]);
|
||||
}
|
||||
|
|
@ -551,7 +583,7 @@ ERlvCmdRet RlvEnvironment::handleSetFn(const std::string& strRlvOption, const st
|
|||
if (!RlvCommandOptionHelper::parseOption<T>(strRlvOption, optionValue))
|
||||
return RLV_RET_FAILED_PARAM;
|
||||
|
||||
LLSettingsSky::ptr_t pSky = LLEnvironment::instance().getCurrentSky();
|
||||
LLSettingsSky::ptr_t pSky = getTargetSky(true);
|
||||
fn(pSky, optionValue);
|
||||
pSky->update();
|
||||
return RLV_RET_SUCCESS;
|
||||
|
|
@ -562,7 +594,7 @@ std::string RlvEnvironment::handleLegacyGetFn<LLVector2>(const std::function<con
|
|||
{
|
||||
if (idxComponent >= 2)
|
||||
return LLStringUtil::null;
|
||||
return std::to_string(getFn(LLEnvironment::instance().getCurrentSky()).mV[idxComponent]);
|
||||
return std::to_string(getFn(getTargetSky()).mV[idxComponent]);
|
||||
}
|
||||
|
||||
template<>
|
||||
|
|
@ -570,11 +602,11 @@ std::string RlvEnvironment::handleLegacyGetFn<LLColor3>(const std::function<cons
|
|||
{
|
||||
if ( (idxComponent >= VRED) && (idxComponent <= VBLUE) )
|
||||
{
|
||||
return std::to_string(getFn(LLEnvironment::instance().getCurrentSky()).mV[idxComponent]);
|
||||
return std::to_string(getFn(getTargetSky()).mV[idxComponent]);
|
||||
}
|
||||
else if (idxComponent == VALPHA)
|
||||
{
|
||||
const LLColor3& clr = getFn(LLEnvironment::instance().getCurrentSky());
|
||||
const LLColor3& clr = getFn(getTargetSky());
|
||||
return std::to_string(llmax(clr.mV[VRED], clr.mV[VGREEN], clr.mV[VBLUE]));
|
||||
}
|
||||
return LLStringUtil::null;
|
||||
|
|
@ -586,7 +618,7 @@ ERlvCmdRet RlvEnvironment::handleLegacySetFn<LLVector2>(float optionValue, LLVec
|
|||
if (idxComponent >= 2)
|
||||
return RLV_RET_FAILED_UNKNOWN;
|
||||
|
||||
LLSettingsSky::ptr_t pSky = LLEnvironment::instance().getCurrentSky();
|
||||
LLSettingsSky::ptr_t pSky = getTargetSky(true);
|
||||
curValue.mV[idxComponent] = optionValue;
|
||||
setFn(pSky, curValue);
|
||||
pSky->update();
|
||||
|
|
@ -597,7 +629,7 @@ ERlvCmdRet RlvEnvironment::handleLegacySetFn<LLVector2>(float optionValue, LLVec
|
|||
template<>
|
||||
ERlvCmdRet RlvEnvironment::handleLegacySetFn<LLColor3>(float optionValue, LLColor3 curValue, const std::function<void(LLSettingsSkyPtr_t, const LLColor3&)>& setFn, U32 idxComponent)
|
||||
{
|
||||
LLSettingsSky::ptr_t pSky = LLEnvironment::instance().getCurrentSky();
|
||||
LLSettingsSky::ptr_t pSky = getTargetSky(true);
|
||||
if ( (idxComponent >= VRED) && (idxComponent <= VBLUE) )
|
||||
{
|
||||
curValue.mV[idxComponent] = optionValue;
|
||||
|
|
@ -691,7 +723,7 @@ void RlvEnvironment::registerLegacySkyFn(const std::string& strFnName, const std
|
|||
float optionValue;
|
||||
if (!RlvCommandOptionHelper::parseOption(strRlvOption, optionValue))
|
||||
return RLV_RET_FAILED_PARAM;
|
||||
return handleLegacySetFn<T>(optionValue, getFn(LLEnvironment::instance().getCurrentSky()), setFn, idxComponent);;
|
||||
return handleLegacySetFn<T>(optionValue, getFn(getTargetSky(true)), setFn, idxComponent);;
|
||||
}));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ public:
|
|||
bool onForceCommand(const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet) override;
|
||||
protected:
|
||||
static LLEnvironment::EnvSelection_t getTargetEnvironment();
|
||||
static LLSettingsSky::ptr_t getTargetSky(bool forSetCmd = false);
|
||||
typedef std::map<std::string, std::function<ERlvCmdRet(const std::string&)>> handler_map_t;
|
||||
typedef std::map<std::string, std::function<ERlvCmdRet(const std::string&, U32)>> legacy_handler_map_t;
|
||||
static bool onHandleCommand(const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet, const std::string& strCmdPrefix, const handler_map_t& fnLookup, const legacy_handler_map_t& legacyFnLookup);
|
||||
|
|
|
|||
|
|
@ -2518,7 +2518,7 @@ void RlvBehaviourToggleHandler<RLV_BHVR_SHOWINV>::onCommandToggle(ERlvBehaviour
|
|||
template<> template<>
|
||||
void RlvBehaviourToggleHandler<RLV_BHVR_SHOWNAMES>::onCommandToggle(ERlvBehaviour eBhvr, bool fHasBhvr)
|
||||
{
|
||||
if (LLApp::isExiting())
|
||||
if (LLApp::isExiting() || gDoDisconnect)
|
||||
return; // Nothing to do if the viewer is shutting down
|
||||
|
||||
// Update the shownames context
|
||||
|
|
@ -2530,10 +2530,10 @@ void RlvBehaviourToggleHandler<RLV_BHVR_SHOWNAMES>::onCommandToggle(ERlvBehaviou
|
|||
//RLV_ASSERT( (pPeoplePanel) && (pPeoplePanel->getNearbyList()) );
|
||||
//if ( (pPeoplePanel) && (pPeoplePanel->getNearbyList()) )
|
||||
// pPeoplePanel->getNearbyList()->updateAvatarNames();
|
||||
FSRadar* pRadar = FSRadar::getInstance();
|
||||
RLV_ASSERT( (pRadar) );
|
||||
if ( (pRadar) )
|
||||
pRadar->updateNames();
|
||||
if (FSRadar::instanceExists())
|
||||
{
|
||||
FSRadar::instance().updateNames();
|
||||
}
|
||||
// </FS:Ansariel> [Standalone radar]
|
||||
|
||||
// Refresh the speaker list
|
||||
|
|
|
|||
|
|
@ -86,6 +86,9 @@
|
|||
<texture name="Inv_RLVOpen" file_name="legacy/inv_folder_RLVa.tga" />
|
||||
<texture name="Inv_RLVClosed" file_name="legacy/inv_folder_RLVa.tga" />
|
||||
|
||||
<texture name="Inv_SuitcaseOpen" file_name="legacy/inv_folder_suitcase.tga" />
|
||||
<texture name="Inv_SuitcaseClosed" file_name="legacy/inv_folder_suitcase.tga" />
|
||||
|
||||
<!-- Marketplace Listings folders -->
|
||||
<texture name="Inv_StockFolderClosed" file_name="legacy/inv_folder_stock_closed.tga" />
|
||||
<texture name="Inv_StockFolderOpen" file_name="legacy/inv_folder_stock_open.tga" />
|
||||
|
|
|
|||
|
|
@ -394,6 +394,9 @@ with the same filename but different name
|
|||
<texture name="Inv_PhoenixClosed" file_name="icons/Inv_SysClosed.png" />
|
||||
<texture name="Inv_RLVOpen" file_name="icons/Inv_SysOpen.png" />
|
||||
<texture name="Inv_RLVClosed" file_name="icons/Inv_SysClosed.png" />
|
||||
|
||||
<texture name="Inv_SuitcaseOpen" file_name="icons/Inv_SysOpen.png" />
|
||||
<texture name="Inv_SuitcaseClosed" file_name="icons/Inv_SysClosed.png" />
|
||||
|
||||
<texture name="Linden_Dollar_Alert" file_name="widgets/Linden_Dollar_Alert.png"/>
|
||||
<texture name="Linden_Dollar_Background" file_name="widgets/Linden_Dollar_Background.png"/>
|
||||
|
|
|
|||
|
|
@ -359,18 +359,35 @@
|
|||
<scroll_list.columns label="Y" name="axis_y"/>
|
||||
<scroll_list.columns label="Z" name="axis_z"/>
|
||||
</scroll_list>
|
||||
<panel name="avatar_model_hint_panel" left="380" width="230">
|
||||
<text name="avatar_model_hint_text" width="220">
|
||||
Hinweis:
|
||||
Zu viele Objekte nutzen unnötigerweise den Standard-Anhängepunkt (Rechte Hand).
|
||||
|
||||
Bitte ziehen Sie einen anderen Anhängepunkt nahe der Objektposition in Betracht.
|
||||
</text>
|
||||
</panel>
|
||||
</panel>
|
||||
<panel label="Protokoll" name="logs_panel">
|
||||
<check_box label="Detailliertes Log anzeigen" name="verbose_logging"/>
|
||||
</panel>
|
||||
<panel label="Vorschau-Einstellungen" name="mesh_preview_settings_panel">
|
||||
<text name="mesh_upload_behaviour_label">
|
||||
Modell-Upload-Verhaltenseinstellungen:
|
||||
</text>
|
||||
<check_box label="Gewichte automatisch aktivieren" tool_tip="Automatisch die Gewichte für Netze mit Rigging-Informationen aktivieren" name="mesh_preview_auto_weights"/>
|
||||
<check_box label="Automatische Vorschau für Gewichte" tool_tip="Zeigt automatisch die Gewichte für Netze mit Rigging-Informationen in der Vorschau" name="mesh_preview_auto_show_weights"/>
|
||||
<text name="mesh_preview_colors_label">
|
||||
Farben für Modell-Upload:
|
||||
</text>
|
||||
<text name="user_label">
|
||||
Allgemein:
|
||||
</text>
|
||||
<color_swatch label="Hintergrund" tool_tip="Hintergrundfarbe für den Uploader" name="mesh_preview_canvas_color"/>
|
||||
<color_swatch label="Modell-Kanten" tool_tip="Farbe für Kanten des Modells im Vorschau-Fenster" name="mesh_preview_edge_color"/>
|
||||
<text name="physics_settings_label">
|
||||
Physik:
|
||||
</text>
|
||||
<color_swatch label="Physik-Kanten" tool_tip="Kantenfarbe für Physik-Dreiecke im Vorschau-Fenster" name="mesh_preview_physics_edge_color"/>
|
||||
<color_swatch label="Physik-Füllfarbe" tool_tip="Füllfarbe für Physik-Modell im Vorschau-Fenster" name="mesh_preview_physics_fill_color"/>
|
||||
<text name="physics_issues_setting_label">
|
||||
Physik-Probleme:
|
||||
</text>
|
||||
<color_swatch label="Schlechte Kante" tool_tip="Farbe für degenerierte (dünne) Dreiecks-Kanten im Vorschau-Fenster" name="mesh_preview_degenerate_edge_color"/>
|
||||
<color_swatch label="Schlechte Dreiecke" tool_tip="Füllfarbe für degenerierte (dünne) Dreiecke im Vorschau-Fenster" name="mesh_degenerate_fill_color"/>
|
||||
</panel>
|
||||
</tab_container>
|
||||
<panel name="weights_and_warning_panel">
|
||||
<button label="Gewichte und Gebühr berechnen" name="calculate_btn" tool_tip="Gewichte und Gebühr berechnen" width="200"/>
|
||||
|
|
|
|||
|
|
@ -194,6 +194,7 @@
|
|||
<panel name="P_DoF_Settings">
|
||||
<check_box label="Schärfentiefe aktivieren" name="UseDepthofField" tool_tip="Diese Einstellung aktiviert die Schärfentiefe, die die Ausdehnung des Bildausschnitts festlegt, der noch scharf dargestellt wird. Falls diese Funktion nicht benötigt wird, sollte sie deaktiviert werden, um die Framerate zu erhöhen. Falls diese Funktion nicht aktiviert werden kann oder kein Effekt sichtbar ist, muss „Erweitertes Beleuchtungsmodell“ auf dem Reiter „Licht“ aktiviert werden."/>
|
||||
<check_box label="Schärfentiefe unter Wasser aktivieren" tool_tip="Normalerweise ist die Schärfentiefe selbst bei aktivierter Einstellungen unter Wasser deaktiviert. Diese Einstellung hebt diese Restriktion auf. Hinweis: Es kann eventuell notwendig sein, unter Wasser den Kamerafokus auf das gewünschte Objekt neu zu setzen." name="UseDoFUnderwater"/>
|
||||
<check_box label="Schärfentiefe-Fokus folgt Mauszeiger" name="FSFocusPointFollowsPointer" tool_tip="Der Fokus der Schärfentiefe folgt der Maus, ähnlich dem Verhalten bei der Verwendung einer Flycam. In Verbindung mit fixiertem Schärfentiefe-Fokus verwenden."/>
|
||||
<check_box label="Aktuelles Kamera-Sichtfeld (FOV) anzeigen" name="MIC_Show_FOV" tool_tip="Zeigt das aktuelle vertikale Sichtfeld der Kamera an. Im Viewer ist es wie im echten Leben möglich, die Brennweite der Kameralinse zu verändern. Je kleiner der Sichtbereich, desto größer die Brennweite. Eine 50mm-Linse hat ein Sichtfeld von 27.0 Grad. Siehe auch http://de.wikipedia.org/wiki/Bildwinkel für weitergehende Informationen. ACHTUNG: DIESE EINSTELLUNG SOLLTE VOR DEM FOTOGRAFIEREN AUSGESCHALTET WERDEN, DA SIE SONST AUF DEM BILD ERSCHEINT!"/>
|
||||
</panel>
|
||||
|
||||
|
|
|
|||
|
|
@ -201,7 +201,7 @@
|
|||
<text name="Description:">
|
||||
Beschreibung:
|
||||
</text>
|
||||
<line_editor name="Object Description" tool_tip="Bei Auswahl der Option „Schwebe-Tipps für alle Objekte“ in den Viewer-Einstellungen wird für alle Objekte das Popup mit der Objektbeschreibung unter dem Mauszeiger eingeblendet. Die formelle Beschreibung ist auf 127 Byte begrenzt, und alle längeren Zeichenketten werden gekürzt."/>
|
||||
<line_editor name="Object Description" tool_tip="Bei Auswahl der Option „Schwebe-Tipps“ in den Viewer-Einstellungen wird für alle Objekte das Popup mit der Objektbeschreibung unter dem Mauszeiger eingeblendet. Die formelle Beschreibung ist auf 127 Byte begrenzt, und alle längeren Zeichenketten werden gekürzt."/>
|
||||
<text name="Creator:">
|
||||
Ersteller:
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -126,6 +126,7 @@
|
|||
<menu label="Foto und Video" name="photo_and_video">
|
||||
<menu_item_call label="Fototools" name="phototools_item_call"/>
|
||||
<menu_item_call label="Kameratools" name="cameratools_item_call"/>
|
||||
<menu_item_check label="Schärfentiefe-Fokus fixieren" name="lock_focus_point"/>
|
||||
</menu>
|
||||
<menu_item_call label="Umgebungssuche" name="area_search"/>
|
||||
<menu_item_call label="Sound-Explorer" name="Sound Explorer"/>
|
||||
|
|
@ -286,7 +287,6 @@
|
|||
<menu label="Schwebe-Tipps" name="Hover Tips">
|
||||
<menu_item_check label="Tipps anzeigen" name="Show Tips"/>
|
||||
<menu_item_check label="Landtipps" name="Land Tips"/>
|
||||
<menu_item_check label="Tipps zu allen Objekten" name="Tips On All Objects"/>
|
||||
</menu>
|
||||
</menu>
|
||||
<menu label="Darstellungstypen" name="Rendering Types">
|
||||
|
|
|
|||
|
|
@ -533,6 +533,16 @@ Um Medien nur auf einer Fläche einzufügen, wählen Sie „Oberfläche auswähl
|
|||
<notification name="MustAgreeToLogIn">
|
||||
Bevor Sie sich in [CURRENT_GRID] anmelden können, müssen Sie den Allgemeinen Geschäftsbedingungen, Datenschutzbestimmungen und Servicebedingungen zustimmen.
|
||||
</notification>
|
||||
<notification name="CouldNotBuyCurrency">
|
||||
[TITLE]
|
||||
[MESSAGE]
|
||||
<usetemplate name="okbutton" yestext="OK"/>
|
||||
</notification>
|
||||
<notification name="CouldNotBuyCurrencyOS">
|
||||
[TITLE]
|
||||
[MESSAGE]
|
||||
<usetemplate name="okcancelbuttons" notext="Nein" yestext="OK"/>
|
||||
</notification>
|
||||
<notification name="CouldNotPutOnOutfit">
|
||||
Outfit konnte nicht angezogen werden.
|
||||
Der Outfit-Ordner enthält keine Kleidung, Körperteile oder Anhänge.
|
||||
|
|
@ -4934,6 +4944,15 @@ Möchten Sie diese Informationen übermitteln?
|
|||
<notification name="MovelockDisabled">
|
||||
Movelock deaktiviert.
|
||||
</notification>
|
||||
<notification name="MovelockEnabling">
|
||||
Aktiviere Movelock...
|
||||
</notification>
|
||||
<notification name="MovelockDisabling">
|
||||
Deaktiviere Movelock...
|
||||
</notification>
|
||||
<notification name="FlightAssistEnabled">
|
||||
Flug-Assistent ist aktiviert.
|
||||
</notification>
|
||||
<notification label="Alle Einstellungen zurücksetzen" name="FirestormClearSettingsPrompt">
|
||||
Ein Zurücksetzen aller Einstellungen kann bei Problemen hilfreich sein, allerdings müssen Sie anschließend jegliche Anpassungen erneut vornehmen.
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<check_box label="Mehrere Viewer zulassen" name="allow_multiple_viewer_check"/>
|
||||
<check_box label="Bei Anmeldung Gridauswahl anzeigen" name="show_grid_selection_check"/>
|
||||
<check_box label="Menü „Erweitert“ anzeigen" name="show_advanced_menu_check"/>
|
||||
<check_box label="Menü „Entwickler“ anzeigen" name="show_develop_menu_check"/>
|
||||
<check_box label="Menü „Entwickler“ anzeigen (Benutzung auf eigene Gefahr!)" name="show_develop_menu_check"/>
|
||||
<check_box label="VRAM-Ermittlung über WMI auf Windows-Systemen deaktivieren" name="FSDisableWMIProbing"/>
|
||||
<check_box label="Zeitschritte für Animationen aktivieren (experimentell)" name="UseAnimationTimeSteps" tool_tip="Diese Einstellung kann die Render-Komplexität für entfernte Avatare verringen, aber dadurch können deren Animationen in falscher Geschwindigkeit abgespielt werden."/>
|
||||
<text name="BackgroundYieldTimeText">
|
||||
|
|
|
|||
|
|
@ -173,6 +173,7 @@
|
|||
<check_box label="Szene als Wireframe darstellen" name="Wireframe"/>
|
||||
<check_box label="Angehängte Lichter rendern" tool_tip="Diese Option aktiviert alle Lichtquellen, die Avatare angehängt haben, wie z.B. Facelights. Nützlich, um beispielsweise Facelights zu deaktivieren falls notwendig." name="Render Attached Lights"/>
|
||||
<check_box label="Angehängte Partikel rendern" name="Render Attached Particles"/>
|
||||
<check_box label="Objekt-Verdeckung für Wasser-Verzerrungseffekte aktivieren" name="dist_occl" tool_tip="Falls aktiviert, wird die Objekt-Verdeckung bei der Generierung der Wasser-Verzerrungseffekte wieder aktiviert. Die Darstellung ist ohne Verdeckung exakter, allerdings kann sich hierdurch die Performance signifikant verschlechtern."/>
|
||||
<slider name="MaxFPS" label="FPS:"/>
|
||||
<slider label="Pre-Caching-Verzögerung bevor die Welt angezeigt wird." tool_tip="Setzt die Verzögerung, nach der die Welt angezeigt wird, nachdem man selbst als Online gemeldet wird. (Standard: 6 Sekunden)" name="PrecachingDelay"/>
|
||||
<text name="PrecachingDelayText" width="60">
|
||||
|
|
@ -186,6 +187,7 @@
|
|||
<check_box label="Schärfentiefe aktivieren (Bereiche außerhalb des Kamerafokus erscheinen unscharf)" name="UseDoF"/>
|
||||
<check_box label="Im Editier-Modus aktivieren" name="RenderDepthOfFieldInEditMode"/>
|
||||
<check_box label="Unter Wasser aktivieren" name="FSRenderDoFUnderwater"/>
|
||||
<check_box label="Schärfentiefe-Fokus folgt Mauszeiger" name="FSFocusPointFollowsPointer" tool_tip="Der Fokus der Schärfentiefe folgt der Maus, ähnlich dem Verhalten bei der Verwendung einer Flycam. In Verbindung mit fixiertem Schärfentiefe-Fokus verwenden."/>
|
||||
<slider label="Kamera-Blendenzahl (k-Wert):" name="CameraFNum" tool_tip="Kamera-Blendenzahl (k-Wert) für die Schärfentiefe" label_width="195" width="409"/>
|
||||
<slider label="Kamera-Brennweite in mm:" name="CameraFocal" tool_tip="Kamera-Brennweite für die Schärfentiefe (in Millimeter)" label_width="195" width="409"/>
|
||||
<slider label="Kamera-Sichtfeld (Grad):" name="Camera FOV" tool_tip="Vertikales Kamera-Sichtfeld für die Schärfentiefe (in Grad)" label_width="195" width="409"/>
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@
|
|||
<check_box label="Warten auf Vor-Sprung- und Lande-Animationen deaktivieren" name="FSIgnoreFinishAnimation"/>
|
||||
<check_box label="Avataren des Rückwärtsgehen in der lokalen Ansicht erlauben (SL-Standard)" name="FSDisableTurningAroundWhenWalkingBackwards" tool_tip="Falls aktiviert, gehen Avatare auf dem eigenen Bildschirm beim Rückwärtsgehen rückwärts, anstatt sich umzudrehen und anschließend vorwärts zu gehen. Diese Option hat nur lokalen Effekt und hat keinen Einfluss auf was andere sehen. Dies ist die Standardeinstellung im Second Life Viewer und kann u.U. durch den AO des Avatars übersteuert werden."/>
|
||||
<check_box label="Avatar zum ausgewählten Objekt drehen" name="FSTurnAvatarToSelectedObject" tool_tip="Dreht den Avatar mit dem Gesicht zum aktuell ausgewählten Objekt."/>
|
||||
<slider label_width="180" label="Avatar-Rotationsgeschwindigkeit" name="av_turn_spd" tool_tip="Veränderte die Rate, mit der der Avatar sich dreht. 0 - 100 als geschätzte Prozent der maximalen Rotationsrate. Hohe Werte führen zu zackigen und ruckartigen Bewegungen." width="305" />
|
||||
<text name="Region_Crossing_Movement_Label" width="245">
|
||||
Bewegungsvorhersage beim Regionswechsel:
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
<text name="LabelItemDescTitle">
|
||||
Beschreibung:
|
||||
</text>
|
||||
<line_editor name="LabelItemDesc" tool_tip="Bei Auswahl der Option „Schwebe-Tipps für alle Objekte“ in den Viewer-Einstellungen wird für alle Objekte das Popup mit der Objektbeschreibung unter dem Mauszeiger eingeblendet. Die formelle Beschreibung ist auf 127 Byte begrenzt, und alle längeren Zeichenketten werden gekürzt."/>
|
||||
<line_editor name="LabelItemDesc" tool_tip="Bei Auswahl der Option „Schwebe-Tipps“ in den Viewer-Einstellungen wird für alle Objekte das Popup mit der Objektbeschreibung unter dem Mauszeiger eingeblendet. Die formelle Beschreibung ist auf 127 Byte begrenzt, und alle längeren Zeichenketten werden gekürzt."/>
|
||||
<text name="LabelCreatorTitle">
|
||||
Ersteller:
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@
|
|||
<text name="Description:">
|
||||
Beschreibung:
|
||||
</text>
|
||||
<line_editor name="Object Description" tool_tip="Bei Auswahl der Option „Schwebe-Tipps für alle Objekte“ in den Viewer-Einstellungen wird für alle Objekte das Popup mit der Objektbeschreibung unter dem Mauszeiger eingeblendet. Die formelle Beschreibung ist auf 127 Byte begrenzt, und alle längeren Zeichenketten werden gekürzt."/>
|
||||
<line_editor name="Object Description" tool_tip="Bei Auswahl der Option „Schwebe-Tipps“ in den Viewer-Einstellungen wird für alle Objekte das Popup mit der Objektbeschreibung unter dem Mauszeiger eingeblendet. Die formelle Beschreibung ist auf 127 Byte begrenzt, und alle längeren Zeichenketten werden gekürzt."/>
|
||||
<text name="CreatorNameLabel">
|
||||
Ersteller:
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -2026,6 +2026,9 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich unter http://suppo
|
|||
<string name="InvFolder All">
|
||||
Alle
|
||||
</string>
|
||||
<string name="InvFolder My Suitcase">
|
||||
Mein Koffer
|
||||
</string>
|
||||
<string name="no_attachments">
|
||||
Keine Anhänge getragen
|
||||
</string>
|
||||
|
|
@ -6583,19 +6586,7 @@ Support-Bereich der Website Secondlife.com und melden Sie das Problem.
|
|||
</string>
|
||||
|
||||
<string name="MovelockEnabled">
|
||||
Movelock aktiviert.
|
||||
</string>
|
||||
<string name="MovelockDisabled">
|
||||
Movelock deaktiviert.
|
||||
</string>
|
||||
<string name="MovelockEnabling">
|
||||
Aktiviere Movelock...
|
||||
</string>
|
||||
<string name="MovelockDisabling">
|
||||
Deaktiviere Movelock...
|
||||
</string>
|
||||
<string name="FlightAssistEnabled">
|
||||
Flug-Assistent ist aktiviert.
|
||||
Avatar > Bewegung > Movelock ist aktiviert.
|
||||
</string>
|
||||
<string name="BusyResponse">
|
||||
Beschäftigt-Nachricht
|
||||
|
|
|
|||
|
|
@ -139,27 +139,6 @@
|
|||
width="85" />
|
||||
</layout_panel>
|
||||
|
||||
<layout_panel
|
||||
follows="bottom|left|right"
|
||||
height="23"
|
||||
layout="bottomleft"
|
||||
left_pad="3"
|
||||
mouse_opaque="false"
|
||||
name="edit_btn_lp"
|
||||
auto_resize="true"
|
||||
width="86">
|
||||
<button
|
||||
follows="bottom|left|right"
|
||||
height="23"
|
||||
label="Edit"
|
||||
layout="topleft"
|
||||
left="1"
|
||||
name="edit_btn"
|
||||
tool_tip="Edit this landmark"
|
||||
top="0"
|
||||
width="85" />
|
||||
</layout_panel>
|
||||
|
||||
<layout_panel
|
||||
follows="bottom|right"
|
||||
height="23"
|
||||
|
|
|
|||
|
|
@ -1304,14 +1304,14 @@
|
|||
name="pos_overrides_list"
|
||||
column_padding="0"
|
||||
draw_heading="true"
|
||||
draw_stripes="false"
|
||||
draw_stripes="true"
|
||||
heading_height="23"
|
||||
height="100"
|
||||
height="199"
|
||||
left_delta="0"
|
||||
top_pad="0"
|
||||
width="385">
|
||||
<scroll_list.columns
|
||||
label="Model"
|
||||
<scroll_list.columns
|
||||
label="Model"
|
||||
name="model_name"
|
||||
relative_width="0.49" />
|
||||
<scroll_list.columns
|
||||
|
|
@ -1327,30 +1327,6 @@
|
|||
name="axis_z"
|
||||
relative_width="0.17" />
|
||||
</scroll_list>
|
||||
<panel
|
||||
follows="top|left"
|
||||
layout="topleft"
|
||||
border="true"
|
||||
left="410"
|
||||
height="110"
|
||||
top_pad="5"
|
||||
width="200"
|
||||
name="avatar_model_hint_panel"
|
||||
>
|
||||
<text
|
||||
left="5"
|
||||
width="190"
|
||||
height="110"
|
||||
name="avatar_model_hint_text"
|
||||
wrap="true"
|
||||
word_wrap="true"
|
||||
type="string">
|
||||
Tip:
|
||||
Too many items use the default (right hand) unnecessarily.
|
||||
|
||||
Please consider using an attachment point close to the item's position on the body.
|
||||
</text>
|
||||
</panel>
|
||||
</panel>
|
||||
<panel
|
||||
label="Log"
|
||||
|
|
@ -1397,9 +1373,169 @@ Please consider using an attachment point close to the item's position on the bo
|
|||
word_wrap="true">
|
||||
</text_editor>
|
||||
</panel>
|
||||
<panel
|
||||
label="Preview Settings"
|
||||
layout="topleft"
|
||||
name="mesh_preview_settings_panel">
|
||||
<view_border
|
||||
bevel_style="none"
|
||||
follows="top|left"
|
||||
height="306"
|
||||
layout="topleft"
|
||||
left="3"
|
||||
ignore_tab="false"
|
||||
right="-21"
|
||||
name="mesh_preview_settings_tab_border"
|
||||
top_pad="0"
|
||||
width="619" />
|
||||
<text
|
||||
follows="left|top"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
height="12"
|
||||
name="mesh_upload_behaviour_label"
|
||||
top="8"
|
||||
width="300">
|
||||
Model Upload Behaviour Settings:
|
||||
</text>
|
||||
<check_box
|
||||
height="15"
|
||||
control_name="FSMeshUploadAutoEnableWeights"
|
||||
follows="top|left"
|
||||
top_pad="8"
|
||||
left="24"
|
||||
width="300"
|
||||
label="Auto-enable weights"
|
||||
tool_tip="Automatically set weights enabled for meshes with rigging info"
|
||||
name="mesh_preview_auto_weights"/>
|
||||
<check_box
|
||||
control_name="FSMeshUploadAutoShowWeightsWhenEnabled"
|
||||
follows="top|left"
|
||||
top_pad="8"
|
||||
left="24"
|
||||
width="300"
|
||||
label="Auto-preview weights"
|
||||
tool_tip="Automatically show weights in preview for meshes with rigging info"
|
||||
name="mesh_preview_auto_show_weights"/>
|
||||
<text
|
||||
follows="left|top"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
height="12"
|
||||
name="mesh_preview_colors_label"
|
||||
top_pad="10"
|
||||
width="300">
|
||||
Model Upload Preview Colors:
|
||||
</text>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="left|top"
|
||||
height="14"
|
||||
layout="topleft"
|
||||
left="24"
|
||||
valign="center"
|
||||
mouse_opaque="false"
|
||||
name="user_label"
|
||||
top_pad="20"
|
||||
width="100">
|
||||
General:
|
||||
</text>
|
||||
<color_swatch
|
||||
control_name="MeshPreviewCanvasColor"
|
||||
follows="top|left"
|
||||
left_pad="14"
|
||||
height="64"
|
||||
width="120"
|
||||
top_delta="-12"
|
||||
can_apply_immediately="true"
|
||||
label="Background"
|
||||
tool_tip="Canvas color for the Mesh uploader"
|
||||
name="mesh_preview_canvas_color"/>
|
||||
<color_swatch
|
||||
control_name="MeshPreviewEdgeColor"
|
||||
follows="top|left"
|
||||
left_pad="24"
|
||||
height="64"
|
||||
width="120"
|
||||
can_apply_immediately="true"
|
||||
label="Model Edge"
|
||||
tool_tip="Edge color for the model in preview window on the Mesh uploader"
|
||||
name="mesh_preview_edge_color"/>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="left|top"
|
||||
height="14"
|
||||
layout="topleft"
|
||||
left="24"
|
||||
valign="center"
|
||||
mouse_opaque="false"
|
||||
name="physics_settings_label"
|
||||
top_pad="20"
|
||||
width="100">
|
||||
Physics:
|
||||
</text>
|
||||
<color_swatch
|
||||
control_name="MeshPreviewPhysicsEdgeColor"
|
||||
follows="top|left"
|
||||
left_pad="14"
|
||||
height="64"
|
||||
can_apply_immediately="true"
|
||||
width="120"
|
||||
top_delta="-12"
|
||||
label="Physics Edge"
|
||||
tool_tip="Edge color for physics triangles in preview window on the Mesh uploader"
|
||||
name="mesh_preview_physics_edge_color"/>
|
||||
<color_swatch
|
||||
control_name="MeshPreviewPhysicsFillColor"
|
||||
follows="top|left"
|
||||
left_pad="20"
|
||||
height="64"
|
||||
width="120"
|
||||
can_apply_immediately="true"
|
||||
label="Physics Fill"
|
||||
tool_tip="Fill color for physics model in preview window on the Mesh uploader"
|
||||
name="mesh_preview_physics_fill_color"/>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="left|top"
|
||||
height="14"
|
||||
layout="topleft"
|
||||
left="24"
|
||||
valign="center"
|
||||
mouse_opaque="false"
|
||||
name="physics_issues_setting_label"
|
||||
top_pad="24"
|
||||
width="100">
|
||||
Physics Issues:
|
||||
</text>
|
||||
<color_swatch
|
||||
control_name="MeshPreviewDegenerateEdgeColor"
|
||||
follows="top|left"
|
||||
left_pad="14"
|
||||
height="64"
|
||||
width="120"
|
||||
top_delta="-12"
|
||||
can_apply_immediately="true"
|
||||
label="Bad Triangle Edge"
|
||||
tool_tip="Edge color for degenerate (thin) triangles in preview window on the Mesh uploader"
|
||||
name="mesh_preview_degenerate_edge_color"/>
|
||||
<color_swatch
|
||||
control_name="MeshPreviewDegenerateFillColor"
|
||||
follows="top|left"
|
||||
left_pad="24"
|
||||
height="64"
|
||||
width="120"
|
||||
can_apply_immediately="true"
|
||||
label="Bad Triangle Fill"
|
||||
tool_tip="Fill color for degenerate (thin) triangles in preview window on the Mesh uploader"
|
||||
name="mesh_degenerate_fill_color"/>
|
||||
</panel>
|
||||
</tab_container>
|
||||
<panel
|
||||
follows="top|left|bottom"
|
||||
follows="top|left|bottom"
|
||||
layout="topleft"
|
||||
height="195"
|
||||
left="4"
|
||||
|
|
|
|||
|
|
@ -1428,7 +1428,7 @@
|
|||
top_pad="5"
|
||||
left="4"
|
||||
width="275"
|
||||
height="69"
|
||||
height="85"
|
||||
border_visible="true"
|
||||
background_visible="true">
|
||||
<check_box
|
||||
|
|
@ -1454,6 +1454,16 @@
|
|||
tool_tip="Normally, Depth of Field is disabled when underwater, even with the above box checked. This setting will remove that restriction. Note that you may have to manually refocus your camera on desired objects by alt-clicking on them when you're underwater."
|
||||
name="UseDoFUnderwater">
|
||||
</check_box>
|
||||
<check_box
|
||||
control_name="FSFocusPointFollowsPointer"
|
||||
enabled_control="RenderDepthOfField"
|
||||
height="16"
|
||||
label="Depth of Field focus follows pointer"
|
||||
layout="topleft"
|
||||
name="FSFocusPointFollowsPointer"
|
||||
tool_tip="Depth of Field focus will follow your mouse, this behaviour matches that seen when using flycam. Use in conjunction with lock"
|
||||
top_pad="4"
|
||||
width="256"/>
|
||||
<check_box
|
||||
follows="top|left"
|
||||
layout="topleft"
|
||||
|
|
@ -1479,7 +1489,7 @@
|
|||
top_pad="5"
|
||||
left="4"
|
||||
width="275"
|
||||
height="195"
|
||||
height="175"
|
||||
border_visible="true"
|
||||
background_visible="true">
|
||||
<text
|
||||
|
|
|
|||
|
|
@ -989,7 +989,7 @@
|
|||
select_on_focus="true"
|
||||
top_delta="0"
|
||||
width="190"
|
||||
tool_tip="When people have 'Hover Tips on All Objects' selected in the viewer's settings, they'll see the object description pop-up for any object under their mouse pointer. The prim description is limited to 127 bytes any string longer then that will be truncated." />
|
||||
tool_tip="When people have 'Hover Tips' selected in the viewer's settings, they'll see the object description pop-up for any object under their mouse pointer. The prim description is limited to 127 bytes any string longer then that will be truncated." />
|
||||
<text
|
||||
type="string"
|
||||
left="10"
|
||||
|
|
|
|||
|
|
@ -1234,7 +1234,19 @@
|
|||
<menu_item_call.on_click
|
||||
function="Floater.Toggle"
|
||||
parameter="phototools_camera" />
|
||||
</menu_item_call>
|
||||
</menu_item_call>
|
||||
<menu_item_check
|
||||
label="Depth of Field Focus lock"
|
||||
layout="topleft"
|
||||
shortcut="alt|shift|X"
|
||||
name="lock_focus_point">
|
||||
<menu_item_check.on_check
|
||||
function="CheckControl"
|
||||
parameter="FSFocusPointLocked" />
|
||||
<menu_item_check.on_click
|
||||
function="ToggleControl"
|
||||
parameter="FSFocusPointLocked" />
|
||||
</menu_item_check>
|
||||
</menu>
|
||||
<menu_item_call
|
||||
label="Area Search"
|
||||
|
|
@ -2671,9 +2683,6 @@
|
|||
<menu_item_check.on_click
|
||||
function="View.ShowHoverTips" />
|
||||
</menu_item_check>
|
||||
|
||||
<menu_item_separator/>
|
||||
|
||||
<menu_item_check
|
||||
label="Show Land Tooltips"
|
||||
name="Land Tips">
|
||||
|
|
@ -2685,17 +2694,6 @@
|
|||
<menu_item_check.on_enable
|
||||
function="View.CheckShowHoverTips" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
label="Show Tips On All Objects"
|
||||
name="Tips On All Objects">
|
||||
<menu_item_check.on_check
|
||||
control="ShowAllObjectHoverTip" />
|
||||
<menu_item_check.on_click
|
||||
function="ToggleControl"
|
||||
parameter="ShowAllObjectHoverTip" />
|
||||
<menu_item_check.on_enable
|
||||
function="View.CheckShowHoverTips" />
|
||||
</menu_item_check>
|
||||
</menu>
|
||||
|
||||
</menu>
|
||||
|
|
|
|||
|
|
@ -1353,6 +1353,25 @@ You must agree to the Terms and Conditions, Privacy Policy, and Terms of Service
|
|||
name="okbutton"
|
||||
yestext="OK"/>
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="alertmodal.tga"
|
||||
name="CouldNotBuyCurrencyOS"
|
||||
type="alertmodal">
|
||||
[TITLE]
|
||||
[MESSAGE]
|
||||
<tag>confirm</tag>
|
||||
<url
|
||||
option="0"
|
||||
name="url"
|
||||
target = "_external">
|
||||
[LINK]
|
||||
</url>
|
||||
<usetemplate
|
||||
name="okcancelbuttons"
|
||||
notext="No"
|
||||
yestext="OK"/>
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="alertmodal.tga"
|
||||
|
|
@ -10574,6 +10593,27 @@ Movelock enabled. Use Avatar > Movement > Movelock to disable.
|
|||
Movelock disabled.
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="notifytip.tga"
|
||||
name="MovelockEnabling"
|
||||
type="notifytip">
|
||||
Enabling movelock...
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="notifytip.tga"
|
||||
name="MovelockDisabling"
|
||||
type="notifytip">
|
||||
Disabling movelock...
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="notifytip.tga"
|
||||
name="FlightAssistEnabled"
|
||||
type="notifytip">
|
||||
Flight Assist is enabled
|
||||
</notification>
|
||||
|
||||
<!-- Firestorm Phantom -->
|
||||
|
||||
<!-- Firestorm Reset Settings -->
|
||||
|
|
|
|||
|
|
@ -323,7 +323,6 @@
|
|||
enabled="false"
|
||||
use_bg_color="true"
|
||||
bg_color="DkGray0"
|
||||
parse_urls="false"
|
||||
follows="left|top|right"
|
||||
height="22"
|
||||
layout="topleft"
|
||||
|
|
@ -331,7 +330,6 @@
|
|||
name="title_value"
|
||||
text_color="white"
|
||||
top_delta="-3"
|
||||
use_ellipses="true"
|
||||
right="-1" />
|
||||
|
||||
<line_editor
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@
|
|||
control_name="QAMode"
|
||||
follows="top|left"
|
||||
height="15"
|
||||
label="Show Developer Menu"
|
||||
label="Show Developer Menu (Use at own risk!)"
|
||||
layout="topleft"
|
||||
left="30"
|
||||
name="show_develop_menu_check"
|
||||
|
|
|
|||
|
|
@ -1622,7 +1622,7 @@
|
|||
top_pad="8"
|
||||
follows="left|top"
|
||||
height="16"
|
||||
label="Enable extend script info details"
|
||||
label="Enable extended script info details"
|
||||
tool_tip="If enabled, extend basic script info feature with various details useful for builders"
|
||||
name="FSScriptInfoExtended"
|
||||
enabled_control="UseLSLBridge"
|
||||
|
|
|
|||
|
|
@ -1340,13 +1340,23 @@
|
|||
top_pad="9"
|
||||
label="Render Attached Particles"
|
||||
name="Render Attached Particles">
|
||||
<check_box.on_check
|
||||
<check_box.on_check
|
||||
function="CheckControl"
|
||||
parameter="RenderAttachedParticles"/>
|
||||
<check_box.check_button.commit_callback
|
||||
<check_box.check_button.commit_callback
|
||||
function="Advanced.HandleAttachedLightParticles"
|
||||
parameter="RenderAttachedParticles"/>
|
||||
</check_box>
|
||||
<check_box
|
||||
follows="top|left"
|
||||
layout="topleft"
|
||||
left="20"
|
||||
top_pad="9"
|
||||
control_name="FSAllowWaterDistortionOcclusion"
|
||||
label="Occlude objects for water distortion map"
|
||||
name="dist_occl"
|
||||
tool_tip="If allowed, object occlusion will be restored for generation of the water distortion maps. Visuals are more correct without occlusion, but this can have a significant impact on rendering performance."
|
||||
/>
|
||||
<slider
|
||||
control_name="PrecachingDelay"
|
||||
decimal_digits="0"
|
||||
|
|
@ -1454,6 +1464,16 @@
|
|||
name="FSRenderDoFUnderwater"
|
||||
top_pad="4"
|
||||
width="256"/>
|
||||
<check_box
|
||||
control_name="FSFocusPointFollowsPointer"
|
||||
enabled_control="RenderDepthOfField"
|
||||
height="16"
|
||||
label="Depth of Field focus follows pointer"
|
||||
layout="topleft"
|
||||
name="FSFocusPointFollowsPointer"
|
||||
tool_tip="Depth of Field (DoF) focus will follow your mouse, this behaviour matches that seen when using flycam. Use in conjunction with DoF focus lock"
|
||||
top_pad="4"
|
||||
width="256"/>
|
||||
<slider
|
||||
enabled_control="RenderDepthOfField"
|
||||
control_name="CameraFNumber"
|
||||
|
|
|
|||
|
|
@ -547,6 +547,24 @@
|
|||
width="270"
|
||||
control_name="FSTurnAvatarToSelectedObject"
|
||||
tool_tip="Turns your avatar around to face the object you are currently selecting."/>
|
||||
<slider
|
||||
can_edit_text="true"
|
||||
control_name="FSAvatarTurnSpeed"
|
||||
decimal_digits="2"
|
||||
follows="left|top"
|
||||
height="16"
|
||||
increment="0.5"
|
||||
initial_value="0.00"
|
||||
layout="topleft"
|
||||
label_width="150"
|
||||
label="Avatar Rotation Turn Speed"
|
||||
top_pad="2"
|
||||
max_val="100.0"
|
||||
min_val="0.0"
|
||||
name="av_turn_spd"
|
||||
tool_tip="Alters the rate at which your avatar responds to turning. 0-100 as estimated percentage of max turn rate. High values will be snappy/jerky"
|
||||
show_text="true"
|
||||
width="275" />
|
||||
<text
|
||||
follows="left|top"
|
||||
type="string"
|
||||
|
|
@ -629,7 +647,7 @@
|
|||
left="10"
|
||||
name="single_click_action_lbl"
|
||||
width="150"
|
||||
top_pad="20">
|
||||
top_pad="10">
|
||||
Single click on land:
|
||||
</text>
|
||||
<combo_box
|
||||
|
|
@ -700,7 +718,7 @@
|
|||
label="Joystick Configuration"
|
||||
left="100"
|
||||
name="joystick_setup_button"
|
||||
top_pad="15"
|
||||
top_pad="10"
|
||||
width="155">
|
||||
<button.commit_callback
|
||||
function="Floater.Show"
|
||||
|
|
|
|||
|
|
@ -155,7 +155,7 @@
|
|||
name="LabelItemDesc"
|
||||
top_delta="-5"
|
||||
width="210"
|
||||
tool_tip="When people have 'Hover Tips on All Objects' selected in the viewer's settings, they'll see the object description pop-up for any object under their mouse pointer. The prim description is limited to 127 bytes any string longer then that will be truncated." />
|
||||
tool_tip="When people have 'Hover Tips' selected in the viewer's settings, they'll see the object description pop-up for any object under their mouse pointer. The prim description is limited to 127 bytes any string longer then that will be truncated." />
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
|
|
|
|||
|
|
@ -167,7 +167,7 @@
|
|||
max_length_bytes="127"
|
||||
top_delta="-5"
|
||||
width="225"
|
||||
tool_tip="When people have 'Hover Tips on All Objects' selected in the viewer's settings, they'll see the object description pop-up for any object under their mouse pointer. The prim description is limited to 127 bytes any string longer then that will be truncated." />
|
||||
tool_tip="When people have 'Hover Tips' selected in the viewer's settings, they'll see the object description pop-up for any object under their mouse pointer. The prim description is limited to 127 bytes any string longer then that will be truncated." />
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
|
|
|
|||
|
|
@ -932,6 +932,8 @@ If you continue to receive this message, please contact Second Life support for
|
|||
<string name="InvFolder #Firestorm">#Firestorm</string>
|
||||
<string name="InvFolder #Phoenix">#Phoenix</string>
|
||||
<string name="InvFolder #RLV">#RLV</string>
|
||||
|
||||
<string name="InvFolder My Suitcase">My Suitcase</string>
|
||||
|
||||
<string name="no_attachments">No attachments worn</string>
|
||||
<string name="Attachments remain">Attachments ([COUNT] remain)</string>
|
||||
|
|
@ -2829,11 +2831,7 @@ Try enclosing path to the editor with double quotes.
|
|||
<string name="Collision_PhysicalObject">[NAME] hit you with a physical object.</string>
|
||||
<string name="Collision_UnknownType">[NAME] caused a collision of unknown type.</string>
|
||||
|
||||
<string name="MovelockEnabled">Movelock enabled</string>
|
||||
<string name="MovelockDisabled">Movelock disabled</string>
|
||||
<string name="MovelockEnabling">Enabling movelock...</string>
|
||||
<string name="MovelockDisabling">Disabling movelock...</string>
|
||||
<string name="FlightAssistEnabled">Flight Assist is enabled</string>
|
||||
<string name="MovelockEnabled">Avatar > Movement > Movelock is enabled</string>
|
||||
|
||||
<string name="BusyResponse">busy response</string>
|
||||
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@
|
|||
<text name="Description:">
|
||||
Descripción:
|
||||
</text>
|
||||
<line_editor name="Object Description" tool_tip="Cuando la opción «Mostrar Consejos al pasar el cursor en Todos los objetos» en los parámetros del visor esté seleccionada, cada vez que coloques el cursor del mouse sobre un objeto aparecerá su descripción. La descripción del prim está limitada a 127 bytes, cualquier string más larga quedará recortada."/>
|
||||
<line_editor name="Object Description" tool_tip="Cuando la opción «Bulas» en los parámetros del visor esté seleccionada, cada vez que coloques el cursor del mouse sobre un objeto aparecerá su descripción. La descripción del prim está limitada a 127 bytes, cualquier string más larga quedará recortada."/>
|
||||
<text name="Creator:">
|
||||
Creador:
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -285,7 +285,6 @@
|
|||
<menu label="Bulas" name="Hover Tips">
|
||||
<menu_item_check label="Mostrar bulas" name="Show Tips"/>
|
||||
<menu_item_check label="Mostrar bulas de terreno" name="Land Tips"/>
|
||||
<menu_item_check label="Mostrar bulas en todos los objetos" name="Tips On All Objects"/>
|
||||
</menu>
|
||||
</menu>
|
||||
<menu label="Objetos representados" name="Rendering Types">
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
<text name="LabelItemDescTitle">
|
||||
Descripción:
|
||||
</text>
|
||||
<line_editor name="LabelItemDesc" tool_tip="Cuando la opción «Mostrar Consejos al pasar el cursor en Todos los objetos» en los parámetros del visor esté seleccionada, cada vez que coloques el cursor del mouse sobre un objeto aparecerá su descripción. La descripción del prim está limitada a 127 bytes, cualquier string más larga quedará recortada."/>
|
||||
<line_editor name="LabelItemDesc" tool_tip="Cuando la opción «Bulas» en los parámetros del visor esté seleccionada, cada vez que coloques el cursor del mouse sobre un objeto aparecerá su descripción. La descripción del prim está limitada a 127 bytes, cualquier string más larga quedará recortada."/>
|
||||
<text name="LabelCreatorTitle">
|
||||
Creador:
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@
|
|||
<text name="Description:">
|
||||
Descripción:
|
||||
</text>
|
||||
<line_editor name="Object Description" tool_tip="Cuando la opción «Mostrar Consejos al pasar el cursor en Todos los objetos» en los parámetros del visor esté seleccionada, cada vez que coloques el cursor del mouse sobre un objeto aparecerá su descripción. La descripción del prim está limitada a 127 bytes, cualquier string más larga quedará recortada."/>
|
||||
<line_editor name="Object Description" tool_tip="Cuando la opción «Bulas» en los parámetros del visor esté seleccionada, cada vez que coloques el cursor del mouse sobre un objeto aparecerá su descripción. La descripción del prim está limitada a 127 bytes, cualquier string más larga quedará recortada."/>
|
||||
<text name="CreatorNameLabel">
|
||||
Creador:
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -5957,8 +5957,7 @@ Inténtalo incluyendo la ruta de acceso al editor entre comillas
|
|||
<string name="Collision_ScriptedObject">[NAME] te ha golpeado con un objeto con scripts.</string>
|
||||
<string name="Collision_PhysicalObject">[NAME] te ha golpeado con un objeto físico.</string>
|
||||
<string name="Collision_UnknownType">[NAME] ha causado una colisión de tipo desconocido.</string>
|
||||
<string name="MovelockEnabled">Bloqueo de movimiento activado</string>
|
||||
<string name="MovelockDisabled">Bloqueo de movimiento desactivado</string>
|
||||
<string name="MovelockEnabled">Avatar > Movimiento > Bloquear activado</string>
|
||||
<string name="BusyResponse">respuesta de ocupado</string>
|
||||
<string name="TeleportMaturityExceeded">
|
||||
El residente no puede visitar esta región.
|
||||
|
|
|
|||
|
|
@ -179,7 +179,7 @@
|
|||
<text name="Description:">
|
||||
Description :
|
||||
</text>
|
||||
<line_editor name="Object Description" tool_tip="Lorsque les utilisateurs sélectionnent 'Conseils de survol sur tous les objets' dans les paramètres de la visionneuse, la description contextuelle de chaque objet apparaît sous le pointeur de la souris. La description de la prim est limitée à 127 octets, toute chaîne supérieure à cette limite sera tronquée."/>
|
||||
<line_editor name="Object Description" tool_tip="Lorsque les utilisateurs sélectionnent 'Astuces' dans les paramètres de la visionneuse, la description contextuelle de chaque objet apparaît sous le pointeur de la souris. La description de la prim est limitée à 127 octets, toute chaîne supérieure à cette limite sera tronquée."/>
|
||||
<text name="Creator:">
|
||||
Créateur :
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -260,7 +260,6 @@
|
|||
<menu label="Conseils" name="Hover Tips">
|
||||
<menu_item_check label="Afficher les conseils" name="Show Tips"/>
|
||||
<menu_item_check label="Afficher les conseils à propose des terrains" name="Land Tips"/>
|
||||
<menu_item_check label="Afficher les conseils sur tous les objets" name="Tips On All Objects"/>
|
||||
</menu>
|
||||
</menu>
|
||||
<menu label="Types de rendu" name="Rendering Types">
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<check_box label="Autoriser les clients multiples (Peut réduire la stabilité et la performance)" name="allow_multiple_viewer_check"/>
|
||||
<check_box label="Autoriser la connexion à d'autres grilles (Elles ne supportent pas toutes Firestorm)" name="show_grid_selection_check"/>
|
||||
<check_box label="Afficher le menu Avancé (Utilisez le à vos propres risques !)" name="show_advanced_menu_check"/>
|
||||
<check_box label="Afficher le menu Développeur" name="show_develop_menu_check"/>
|
||||
<check_box label="Afficher le menu Développeur (Utilisez le à vos propres risques !)" name="show_develop_menu_check"/>
|
||||
<check_box label="Désactiver la détection de VRAM par l'analyse WMI sur les systèmes Windows" name="FSDisableWMIProbing"/>
|
||||
<check_box tool_tip="Ce paramètre réduira le chargement dû au rendu des avatars distants mais peut aussi provoquer des animations incorrectes pour ces mêmes avatars" label="Activer la temporisation d'animations (expérimental)" name="UseAnimationTimeSteps"/>
|
||||
<text name="BackgroundYieldTimeText">Durée en millisecondes de temporisation des trames quand [APP_NAME] n'est pas au premier plan (40 par défaut) :</text>
|
||||
|
|
|
|||