Ansariel 2020-12-08 14:04:22 +01:00
commit fbf63f6d8e
160 changed files with 1110 additions and 3780 deletions

2
.gitignore vendored
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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; }

View File

@ -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));
};

View File

@ -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

View File

@ -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;
}

View File

@ -1794,6 +1794,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)
@ -1834,18 +1857,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
@ -2583,6 +2613,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.

View File

@ -1 +1 @@
6.4.12
6.4.13

View File

@ -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>

View File

@ -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>
@ -6624,6 +6637,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>
@ -9118,6 +9142,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>
@ -12203,6 +12249,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>

View File

@ -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
{

View File

@ -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;
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 KiB

After

Width:  |  Height:  |  Size: 192 KiB

View File

Before

Width:  |  Height:  |  Size: 192 KiB

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 KiB

After

Width:  |  Height:  |  Size: 192 KiB

View File

Before

Width:  |  Height:  |  Size: 192 KiB

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 KiB

After

Width:  |  Height:  |  Size: 192 KiB

View File

Before

Width:  |  Height:  |  Size: 192 KiB

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 KiB

After

Width:  |  Height:  |  Size: 192 KiB

View File

Before

Width:  |  Height:  |  Size: 192 KiB

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 KiB

After

Width:  |  Height:  |  Size: 192 KiB

View File

Before

Width:  |  Height:  |  Size: 192 KiB

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 KiB

After

Width:  |  Height:  |  Size: 192 KiB

View File

Before

Width:  |  Height:  |  Size: 192 KiB

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 KiB

After

Width:  |  Height:  |  Size: 192 KiB

View File

Before

Width:  |  Height:  |  Size: 192 KiB

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

View File

@ -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}"

View File

@ -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") &&

View File

@ -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;

View File

@ -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);

View File

@ -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

View File

@ -2993,16 +2993,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?

View File

@ -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>

View File

@ -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:

View File

@ -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();
}

View File

@ -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";

View File

@ -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));

View File

@ -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;

View File

@ -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;
}

View File

@ -2706,7 +2706,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;

View File

@ -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

View File

@ -471,6 +471,7 @@ void LLPanelObject::getState( )
root_objectp = objectp;
}
}
deactivateMeshFields();
}
LLCalc* calcp = LLCalc::getInstance();

View File

@ -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);
}
}

View File

@ -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

View File

@ -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)) )
{

View File

@ -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));

View File

@ -4649,11 +4649,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

View File

@ -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);

View File

@ -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);

View File

@ -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 );

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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
{

Binary file not shown.

Before

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 226 KiB

View File

@ -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);
}
// ============================================================================

View File

@ -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);
// =================

View File

@ -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);;
}));
}

View File

@ -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);

View File

@ -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

View File

@ -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" />

View File

@ -395,6 +395,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"/>

View File

@ -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"/>

View File

@ -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>

View File

@ -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>

View File

@ -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">

View File

@ -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.

View File

@ -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">

View File

@ -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"/>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>
@ -6598,19 +6601,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 &gt; Bewegung &gt; Movelock ist aktiviert.
</string>
<string name="BusyResponse">
Beschäftigt-Nachricht

View File

@ -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"

View File

@ -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"

View File

@ -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

View File

@ -989,7 +989,7 @@
select_on_focus="true"
top_delta="0"
width="190"
tool_tip="When people have &apos;Hover Tips on All Objects&apos; 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 &apos;Hover Tips&apos; 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"

View File

@ -1233,7 +1233,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"
@ -2670,9 +2682,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">
@ -2684,17 +2693,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>

View File

@ -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 &gt; Movement &gt; 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 -->

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -155,7 +155,7 @@
name="LabelItemDesc"
top_delta="-5"
width="210"
tool_tip="When people have &apos;Hover Tips on All Objects&apos; 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 &apos;Hover Tips&apos; 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"

View File

@ -167,7 +167,7 @@
max_length_bytes="127"
top_delta="-5"
width="225"
tool_tip="When people have &apos;Hover Tips on All Objects&apos; 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 &apos;Hover Tips&apos; 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"

View File

@ -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>
@ -2833,11 +2835,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 &gt; Movement &gt; Movelock is enabled</string>
<string name="BusyResponse">busy response</string>

View File

@ -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>

View File

@ -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">

View File

@ -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>

View File

@ -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>

View File

@ -5969,8 +5969,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 &gt; Movimiento &gt; Bloquear activado</string>
<string name="BusyResponse">respuesta de ocupado</string>
<string name="TeleportMaturityExceeded">
El residente no puede visitar esta región.

View File

@ -179,7 +179,7 @@
<text name="Description:">
Description :
</text>
<line_editor name="Object Description" tool_tip="Lorsque les utilisateurs sélectionnent &apos;Conseils de survol sur tous les objets&apos; 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 &apos;Astuces&apos; 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>

View File

@ -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">

View File

@ -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>

Some files were not shown because too many files have changed in this diff Show More