Merge remote branch 'Ascent/master'
Conflicts: indra/llaudio/llaudioengine.cpp indra/llcommon/llqueuedthread.cpp indra/llimage/llimage.cpp indra/llimage/llimagepng.cpp indra/llimage/llimagepng.h indra/llimagej2coj/llimagej2coj.cpp indra/llrender/llimagegl.cpp indra/llrender/llrender.cpp indra/newview/ascentprefssys.cpp indra/newview/ascentprefsvan.cpp indra/newview/gpu_table.txt indra/newview/llfloaterauction.cpp indra/newview/llsavedsettingsglue.cpp indra/newview/llsavedsettingsglue.h indra/newview/llstartup.cpp indra/newview/llviewercontrol.cpp indra/newview/llviewercontrol.h indra/newview/llvoavatar.cpp indra/newview/pipeline.cpp indra/newview/skins/default/xui/en-us/panel_preferences_ascent_system.xml
This commit is contained in:
@@ -992,7 +992,7 @@ LLAudioData * LLAudioEngine::getAudioData(const LLUUID &audio_uuid)
|
|||||||
delete sourcep;
|
delete sourcep;
|
||||||
if(chan)
|
if(chan)
|
||||||
chan->cleanup();
|
chan->cleanup();
|
||||||
mAllSources.erase(iter2++);
|
mAllSources.erase(iter2++);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
++iter2;
|
++iter2;
|
||||||
|
|||||||
@@ -435,7 +435,6 @@ S32 LLQueuedThread::processNextRequest()
|
|||||||
{
|
{
|
||||||
lockData();
|
lockData();
|
||||||
req->setStatus(STATUS_COMPLETE);
|
req->setStatus(STATUS_COMPLETE);
|
||||||
|
|
||||||
|
|
||||||
req->finishRequest(true);
|
req->finishRequest(true);
|
||||||
|
|
||||||
|
|||||||
@@ -117,7 +117,6 @@ BOOL LLImagePNG::encode(const LLImageRaw* raw_image, F32 encode_time)
|
|||||||
setSize(raw_image->getWidth(), raw_image->getHeight(), raw_image->getComponents());
|
setSize(raw_image->getWidth(), raw_image->getHeight(), raw_image->getComponents());
|
||||||
|
|
||||||
U32 bufferSize = getWidth() * getHeight() * getComponents() + 1024;
|
U32 bufferSize = getWidth() * getHeight() * getComponents() + 1024;
|
||||||
|
|
||||||
//New implementation
|
//New implementation
|
||||||
allocateData(bufferSize); //Set to largest possible size.
|
allocateData(bufferSize); //Set to largest possible size.
|
||||||
if(isBufferInvalid()) //Checking
|
if(isBufferInvalid()) //Checking
|
||||||
@@ -125,15 +124,13 @@ BOOL LLImagePNG::encode(const LLImageRaw* raw_image, F32 encode_time)
|
|||||||
setLastError("LLImagePNG::encode failed allocateData");
|
setLastError("LLImagePNG::encode failed allocateData");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
// Delegate actual encoding work to wrapper
|
||||||
// Delegate actual encoding work to wrapper
|
|
||||||
LLPngWrapper pngWrapper;
|
LLPngWrapper pngWrapper;
|
||||||
if (! pngWrapper.writePng(raw_image, getData()))
|
if (! pngWrapper.writePng(raw_image, getData()))
|
||||||
{
|
{
|
||||||
setLastError(pngWrapper.getErrorMessage());
|
setLastError(pngWrapper.getErrorMessage());
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Resize internal buffer.
|
// Resize internal buffer.
|
||||||
if(!reallocateData(pngWrapper.getFinalSize())) //Shrink. Returns NULL on failure.
|
if(!reallocateData(pngWrapper.getFinalSize())) //Shrink. Returns NULL on failure.
|
||||||
{
|
{
|
||||||
@@ -141,9 +138,7 @@ BOOL LLImagePNG::encode(const LLImageRaw* raw_image, F32 encode_time)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
/*U8* mTmpWriteBuffer = new U8[ bufferSize ];
|
||||||
|
|
||||||
/*U8* mTmpWriteBuffer = new U8[ bufferSize ];
|
|
||||||
|
|
||||||
// Delegate actual encoding work to wrapper
|
// Delegate actual encoding work to wrapper
|
||||||
LLPngWrapper pngWrapper;
|
LLPngWrapper pngWrapper;
|
||||||
|
|||||||
@@ -1564,9 +1564,10 @@ void LLImageGL::setNoDelete()
|
|||||||
void LLImageGL::updatePickMask(S32 width, S32 height, const U8* data_in)
|
void LLImageGL::updatePickMask(S32 width, S32 height, const U8* data_in)
|
||||||
{
|
{
|
||||||
delete [] mPickMask; //Always happens regardless.
|
delete [] mPickMask; //Always happens regardless.
|
||||||
|
|
||||||
mPickMask = NULL;
|
mPickMask = NULL;
|
||||||
|
|
||||||
mPickMaskSize = 0;
|
mPickMaskSize = 0;
|
||||||
|
|
||||||
if (!(mFormatType != GL_UNSIGNED_BYTE ||
|
if (!(mFormatType != GL_UNSIGNED_BYTE ||
|
||||||
mFormatPrimary != GL_RGBA)) //can only generate a pick mask for this sort of texture
|
mFormatPrimary != GL_RGBA)) //can only generate a pick mask for this sort of texture
|
||||||
{
|
{
|
||||||
@@ -1582,7 +1583,6 @@ void LLImageGL::updatePickMask(S32 width, S32 height, const U8* data_in)
|
|||||||
memset(mPickMask, 0, sizeof(U8) * mPickMaskSize);
|
memset(mPickMask, 0, sizeof(U8) * mPickMaskSize);
|
||||||
|
|
||||||
U32 pick_bit = 0;
|
U32 pick_bit = 0;
|
||||||
|
|
||||||
for (S32 y = 0; y < height; y += 2)
|
for (S32 y = 0; y < height; y += 2)
|
||||||
{
|
{
|
||||||
for (S32 x = 0; x < width; x += 2)
|
for (S32 x = 0; x < width; x += 2)
|
||||||
@@ -1600,7 +1600,7 @@ void LLImageGL::updatePickMask(S32 width, S32 height, const U8* data_in)
|
|||||||
|
|
||||||
mPickMask[pick_idx] |= 1 << pick_offset;
|
mPickMask[pick_idx] |= 1 << pick_offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
++pick_bit;
|
++pick_bit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -298,7 +298,7 @@ bool LLTexUnit::bindManual(eTextureType type, U32 texture, bool hasMips)
|
|||||||
if(mCurrTexture != texture)
|
if(mCurrTexture != texture)
|
||||||
{
|
{
|
||||||
gGL.flush();
|
gGL.flush();
|
||||||
|
|
||||||
activate();
|
activate();
|
||||||
enable(type);
|
enable(type);
|
||||||
mCurrTexture = texture;
|
mCurrTexture = texture;
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ include_directories(
|
|||||||
)
|
)
|
||||||
|
|
||||||
set(viewer_SOURCE_FILES
|
set(viewer_SOURCE_FILES
|
||||||
|
ascentdaycyclemanager.cpp
|
||||||
ascentfloatercontactgroups.cpp
|
ascentfloatercontactgroups.cpp
|
||||||
ascentprefssys.cpp
|
ascentprefssys.cpp
|
||||||
ascentprefsvan.cpp
|
ascentprefsvan.cpp
|
||||||
@@ -513,6 +514,7 @@ endif (LINUX)
|
|||||||
set(viewer_HEADER_FILES
|
set(viewer_HEADER_FILES
|
||||||
CMakeLists.txt
|
CMakeLists.txt
|
||||||
ViewerInstall.cmake
|
ViewerInstall.cmake
|
||||||
|
ascentdaycyclemanager.h
|
||||||
ascentfloatercontactgroups.h
|
ascentfloatercontactgroups.h
|
||||||
ascentprefssys.h
|
ascentprefssys.h
|
||||||
ascentprefsvan.h
|
ascentprefsvan.h
|
||||||
|
|||||||
@@ -817,16 +817,17 @@
|
|||||||
<key>Value</key>
|
<key>Value</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
</map>
|
</map>
|
||||||
<key>AscentUploadFolder</key>
|
<key>AscentUploadSettings</key>
|
||||||
<map>
|
<map>
|
||||||
<key>Comment</key>
|
<key>Comment</key>
|
||||||
<string>Active folder for the Uploader</string>
|
<string>Settings for upload browser</string>
|
||||||
<key>Persist</key>
|
<key>Type</key>
|
||||||
<integer>1</integer>
|
<string>LLSD</string>
|
||||||
<key>Type</key>
|
<key>Value</key>
|
||||||
<string>String</string>
|
<map>
|
||||||
<key>Value</key>
|
<key>ActivePath</key>
|
||||||
<string>None</string>
|
<string>None</string>
|
||||||
|
</map>
|
||||||
</map>
|
</map>
|
||||||
<key>AscentUseCustomTag</key>
|
<key>AscentUseCustomTag</key>
|
||||||
<map>
|
<map>
|
||||||
@@ -866,6 +867,17 @@
|
|||||||
<key>Value</key>
|
<key>Value</key>
|
||||||
<string>Custom</string>
|
<string>Custom</string>
|
||||||
</map>
|
</map>
|
||||||
|
<key>AscentActiveDayCycle</key>
|
||||||
|
<map>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>Day cycle currently in use</string>
|
||||||
|
<key>Persist</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>String</string>
|
||||||
|
<key>Value</key>
|
||||||
|
<string>Default</string>
|
||||||
|
</map>
|
||||||
<key>AscentAutoCloseOOC</key>
|
<key>AscentAutoCloseOOC</key>
|
||||||
<map>
|
<map>
|
||||||
<key>Comment</key>
|
<key>Comment</key>
|
||||||
|
|||||||
@@ -1,36 +1,36 @@
|
|||||||
<llsd>
|
<llsd>
|
||||||
<array>
|
<array>
|
||||||
<array>
|
<array>
|
||||||
<real>0</real>
|
<real>0</real>
|
||||||
<string>A-12AM</string>
|
<string>A-12AM</string>
|
||||||
</array>
|
</array>
|
||||||
<array>
|
<array>
|
||||||
<real>0.125</real>
|
<real>0.125</real>
|
||||||
<string>A-3AM</string>
|
<string>A-3AM</string>
|
||||||
</array>
|
</array>
|
||||||
<array>
|
<array>
|
||||||
<real>0.25</real>
|
<real>0.25</real>
|
||||||
<string>A-6AM</string>
|
<string>A-6AM</string>
|
||||||
</array>
|
</array>
|
||||||
<array>
|
<array>
|
||||||
<real>0.375</real>
|
<real>0.375</real>
|
||||||
<string>A-9AM</string>
|
<string>A-9AM</string>
|
||||||
</array>
|
</array>
|
||||||
<array>
|
<array>
|
||||||
<real>0.5</real>
|
<real>0.5</real>
|
||||||
<string>A-12PM</string>
|
<string>A-12PM</string>
|
||||||
</array>
|
</array>
|
||||||
<array>
|
<array>
|
||||||
<real>0.625</real>
|
<real>0.625</real>
|
||||||
<string>A-3PM</string>
|
<string>A-3PM</string>
|
||||||
</array>
|
</array>
|
||||||
<array>
|
<array>
|
||||||
<real>0.75</real>
|
<real>0.75</real>
|
||||||
<string>A-6PM</string>
|
<string>A-6PM</string>
|
||||||
</array>
|
</array>
|
||||||
<array>
|
<array>
|
||||||
<real>0.875</real>
|
<real>0.875</real>
|
||||||
<string>A-9PM</string>
|
<string>A-9PM</string>
|
||||||
</array>
|
</array>
|
||||||
</array>
|
</array>
|
||||||
</llsd>
|
</llsd>
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
<llsd>
|
||||||
|
<array>
|
||||||
|
<array>
|
||||||
|
<real>0</real>
|
||||||
|
<string>E-12am</string>
|
||||||
|
</array>
|
||||||
|
<array>
|
||||||
|
<real>0.125</real>
|
||||||
|
<string>E-3am</string>
|
||||||
|
</array>
|
||||||
|
<array>
|
||||||
|
<real>0.1666666716337204</real>
|
||||||
|
<string>E-4am</string>
|
||||||
|
</array>
|
||||||
|
<array>
|
||||||
|
<real>0.25</real>
|
||||||
|
<string>E-6am</string>
|
||||||
|
</array>
|
||||||
|
<array>
|
||||||
|
<real>0.375</real>
|
||||||
|
<string>E-9am</string>
|
||||||
|
</array>
|
||||||
|
<array>
|
||||||
|
<real>0.5</real>
|
||||||
|
<string>E-12pm</string>
|
||||||
|
</array>
|
||||||
|
<array>
|
||||||
|
<real>0.625</real>
|
||||||
|
<string>E-3pm</string>
|
||||||
|
</array>
|
||||||
|
<array>
|
||||||
|
<real>0.75</real>
|
||||||
|
<string>E-6pm</string>
|
||||||
|
</array>
|
||||||
|
<array>
|
||||||
|
<real>0.79166668653488159</real>
|
||||||
|
<string>E-7pm</string>
|
||||||
|
</array>
|
||||||
|
<array>
|
||||||
|
<real>0.875</real>
|
||||||
|
<string>E-9pm</string>
|
||||||
|
</array>
|
||||||
|
</array>
|
||||||
|
</llsd>
|
||||||
141
indra/newview/app_settings/windlight/skies/E%2D12am.xml
Normal file
141
indra/newview/app_settings/windlight/skies/E%2D12am.xml
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
<llsd>
|
||||||
|
<map>
|
||||||
|
<key>ambient</key>
|
||||||
|
<array>
|
||||||
|
<real>0.17999999225139618</real>
|
||||||
|
<real>0.26999998092651367</real>
|
||||||
|
<real>0.32999998331069946</real>
|
||||||
|
<real>0.32999998331069946</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_density</key>
|
||||||
|
<array>
|
||||||
|
<real>0.56341457366943359</real>
|
||||||
|
<real>0.65999996662139893</real>
|
||||||
|
<real>0.5473170280456543</real>
|
||||||
|
<real>0.32999998331069946</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0.099999994039535522</real>
|
||||||
|
<real>0.14000000059604645</real>
|
||||||
|
<real>0.15999999642372131</real>
|
||||||
|
<real>0.15999999642372131</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_color</key>
|
||||||
|
<array>
|
||||||
|
<real>0.22615399956703186</real>
|
||||||
|
<real>0.31999999284744263</real>
|
||||||
|
<real>0.34000000357627869</real>
|
||||||
|
<real>0.34000000357627869</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density1</key>
|
||||||
|
<array>
|
||||||
|
<real>1.6884100437164307</real>
|
||||||
|
<real>0.52609699964523315</real>
|
||||||
|
<real>0.87999999523162842</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density2</key>
|
||||||
|
<array>
|
||||||
|
<real>1.6884100437164307</real>
|
||||||
|
<real>0.52609699964523315</real>
|
||||||
|
<real>0.125</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scale</key>
|
||||||
|
<array>
|
||||||
|
<real>0.41999998688697815</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scroll_rate</key>
|
||||||
|
<array>
|
||||||
|
<real>10.069999694824219</real>
|
||||||
|
<real>10.01099967956543</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_shadow</key>
|
||||||
|
<array>
|
||||||
|
<real>0.11999999731779099</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>density_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>7.9999997979030013e-005</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>distance_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>27</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>east_angle</key>
|
||||||
|
<real>0</real>
|
||||||
|
<key>enable_cloud_scroll</key>
|
||||||
|
<array>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
</array>
|
||||||
|
<key>gamma</key>
|
||||||
|
<array>
|
||||||
|
<real>1.0099999904632568</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>glow</key>
|
||||||
|
<array>
|
||||||
|
<real>5</real>
|
||||||
|
<real>0.0010000000474974513</real>
|
||||||
|
<real>-0.47999998927116394</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_density</key>
|
||||||
|
<array>
|
||||||
|
<real>1.7999999523162842</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0.20999999344348907</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>lightnorm</key>
|
||||||
|
<array>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0.99992102384567261</real>
|
||||||
|
<real>-0.012566247954964638</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>max_y</key>
|
||||||
|
<array>
|
||||||
|
<real>906.19991350494092</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>preset_num</key>
|
||||||
|
<integer>22</integer>
|
||||||
|
<key>star_brightness</key>
|
||||||
|
<real>1.9999994039535522</real>
|
||||||
|
<key>sun_angle</key>
|
||||||
|
<real>4.7249555587768555</real>
|
||||||
|
<key>sunlight_color</key>
|
||||||
|
<array>
|
||||||
|
<real>0.14999999105930328</real>
|
||||||
|
<real>0.21000000834465027</real>
|
||||||
|
<real>0.26999998092651367</real>
|
||||||
|
<real>0.26999998092651367</real>
|
||||||
|
</array>
|
||||||
|
</map>
|
||||||
|
</llsd>
|
||||||
141
indra/newview/app_settings/windlight/skies/E%2D12pm.xml
Normal file
141
indra/newview/app_settings/windlight/skies/E%2D12pm.xml
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
<llsd>
|
||||||
|
<map>
|
||||||
|
<key>ambient</key>
|
||||||
|
<array>
|
||||||
|
<real>1.0799999237060547</real>
|
||||||
|
<real>1.0660644769668579</real>
|
||||||
|
<real>0.89999997615814209</real>
|
||||||
|
<real>0.35999998450279236</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_density</key>
|
||||||
|
<array>
|
||||||
|
<real>0.2800000011920929</real>
|
||||||
|
<real>0.39393550157546997</real>
|
||||||
|
<real>0.47999998927116394</real>
|
||||||
|
<real>0.47999998927116394</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0.41999998688697815</real>
|
||||||
|
<real>0.62000000476837158</real>
|
||||||
|
<real>1.0399999618530273</real>
|
||||||
|
<real>1.0399999618530273</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_color</key>
|
||||||
|
<array>
|
||||||
|
<real>0.31000000238418579</real>
|
||||||
|
<real>0.31000000238418579</real>
|
||||||
|
<real>0.31000000238418579</real>
|
||||||
|
<real>0.31000000238418579</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density1</key>
|
||||||
|
<array>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.69569224119186401</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density2</key>
|
||||||
|
<array>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.125</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scale</key>
|
||||||
|
<array>
|
||||||
|
<real>0.26999998092651367</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scroll_rate</key>
|
||||||
|
<array>
|
||||||
|
<real>10.139999389648437</real>
|
||||||
|
<real>10.01099967956543</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_shadow</key>
|
||||||
|
<array>
|
||||||
|
<real>0.11999999731779099</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>density_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>0.00020999999833293259</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>distance_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>7.4000000953674316</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>east_angle</key>
|
||||||
|
<real>0</real>
|
||||||
|
<key>enable_cloud_scroll</key>
|
||||||
|
<array>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
</array>
|
||||||
|
<key>gamma</key>
|
||||||
|
<array>
|
||||||
|
<real>0.94999998807907104</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>glow</key>
|
||||||
|
<array>
|
||||||
|
<real>12.600000381469727</real>
|
||||||
|
<real>0.0010000000474974513</real>
|
||||||
|
<real>-0.64999997615814209</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_density</key>
|
||||||
|
<array>
|
||||||
|
<real>1.9099999666213989</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0.25999999046325684</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>lightnorm</key>
|
||||||
|
<array>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0.99950653314590454</real>
|
||||||
|
<real>-0.031410936266183853</real>
|
||||||
|
<real>0</real>
|
||||||
|
</array>
|
||||||
|
<key>max_y</key>
|
||||||
|
<array>
|
||||||
|
<real>600</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>preset_num</key>
|
||||||
|
<integer>10</integer>
|
||||||
|
<key>star_brightness</key>
|
||||||
|
<real>0</real>
|
||||||
|
<key>sun_angle</key>
|
||||||
|
<real>1.6022124290466309</real>
|
||||||
|
<key>sunlight_color</key>
|
||||||
|
<array>
|
||||||
|
<real>0.77586203813552856</real>
|
||||||
|
<real>0.89999997615814209</real>
|
||||||
|
<real>0.84000003337860107</real>
|
||||||
|
<real>0.89999997615814209</real>
|
||||||
|
</array>
|
||||||
|
</map>
|
||||||
|
</llsd>
|
||||||
141
indra/newview/app_settings/windlight/skies/E%2D3am.xml
Normal file
141
indra/newview/app_settings/windlight/skies/E%2D3am.xml
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
<llsd>
|
||||||
|
<map>
|
||||||
|
<key>ambient</key>
|
||||||
|
<array>
|
||||||
|
<real>0.17999999225139618</real>
|
||||||
|
<real>0.26999998092651367</real>
|
||||||
|
<real>0.32999998331069946</real>
|
||||||
|
<real>0.32999998331069946</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_density</key>
|
||||||
|
<array>
|
||||||
|
<real>0.56000000238418579</real>
|
||||||
|
<real>0.65999996662139893</real>
|
||||||
|
<real>0.53999996185302734</real>
|
||||||
|
<real>0.65999996662139893</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0.099999994039535522</real>
|
||||||
|
<real>0.14000000059604645</real>
|
||||||
|
<real>0.15999999642372131</real>
|
||||||
|
<real>0.15999999642372131</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_color</key>
|
||||||
|
<array>
|
||||||
|
<real>0.22615399956703186</real>
|
||||||
|
<real>0.31999999284744263</real>
|
||||||
|
<real>0.34000000357627869</real>
|
||||||
|
<real>0.34000000357627869</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density1</key>
|
||||||
|
<array>
|
||||||
|
<real>1.6884100437164307</real>
|
||||||
|
<real>0.52609699964523315</real>
|
||||||
|
<real>0.87999999523162842</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density2</key>
|
||||||
|
<array>
|
||||||
|
<real>1.6884100437164307</real>
|
||||||
|
<real>0.52609699964523315</real>
|
||||||
|
<real>0.125</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scale</key>
|
||||||
|
<array>
|
||||||
|
<real>0.41999998688697815</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scroll_rate</key>
|
||||||
|
<array>
|
||||||
|
<real>10.069999694824219</real>
|
||||||
|
<real>10.01099967956543</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_shadow</key>
|
||||||
|
<array>
|
||||||
|
<real>0.26999998092651367</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>density_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>0.00026000000070780516</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>distance_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>24.30000114440918</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>east_angle</key>
|
||||||
|
<real>0</real>
|
||||||
|
<key>enable_cloud_scroll</key>
|
||||||
|
<array>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
</array>
|
||||||
|
<key>gamma</key>
|
||||||
|
<array>
|
||||||
|
<real>1.0099999904632568</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>glow</key>
|
||||||
|
<array>
|
||||||
|
<real>5</real>
|
||||||
|
<real>0.0010000000474974513</real>
|
||||||
|
<real>-0.47999998927116394</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_density</key>
|
||||||
|
<array>
|
||||||
|
<real>1.4599999189376831</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0.20999999344348907</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>lightnorm</key>
|
||||||
|
<array>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0.84767758846282959</real>
|
||||||
|
<real>-0.53051173686981201</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>max_y</key>
|
||||||
|
<array>
|
||||||
|
<real>1074</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>preset_num</key>
|
||||||
|
<integer>22</integer>
|
||||||
|
<key>star_brightness</key>
|
||||||
|
<real>1.9999994039535522</real>
|
||||||
|
<key>sun_angle</key>
|
||||||
|
<real>5.2715930938720703</real>
|
||||||
|
<key>sunlight_color</key>
|
||||||
|
<array>
|
||||||
|
<real>0.14999999105930328</real>
|
||||||
|
<real>0.21000000834465027</real>
|
||||||
|
<real>0.26999998092651367</real>
|
||||||
|
<real>0.26999998092651367</real>
|
||||||
|
</array>
|
||||||
|
</map>
|
||||||
|
</llsd>
|
||||||
141
indra/newview/app_settings/windlight/skies/E%2D3pm.xml
Normal file
141
indra/newview/app_settings/windlight/skies/E%2D3pm.xml
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
<llsd>
|
||||||
|
<map>
|
||||||
|
<key>ambient</key>
|
||||||
|
<array>
|
||||||
|
<real>1.2571429014205933</real>
|
||||||
|
<real>1.3199999332427979</real>
|
||||||
|
<real>1.0057142972946167</real>
|
||||||
|
<real>0.43999999761581421</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_density</key>
|
||||||
|
<array>
|
||||||
|
<real>0.20495410263538361</real>
|
||||||
|
<real>0.56451046466827393</real>
|
||||||
|
<real>0.69999998807907104</real>
|
||||||
|
<real>0.34999999403953552</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0.39999997615814209</real>
|
||||||
|
<real>0.6721307635307312</real>
|
||||||
|
<real>1</real>
|
||||||
|
<real>0.5</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_color</key>
|
||||||
|
<array>
|
||||||
|
<real>0.53962135314941406</real>
|
||||||
|
<real>0.53962135314941406</real>
|
||||||
|
<real>0.53962135314941406</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density1</key>
|
||||||
|
<array>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.69569224119186401</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density2</key>
|
||||||
|
<array>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.125</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scale</key>
|
||||||
|
<array>
|
||||||
|
<real>0.10999999195337296</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scroll_rate</key>
|
||||||
|
<array>
|
||||||
|
<real>10.139999389648437</real>
|
||||||
|
<real>10.01099967956543</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_shadow</key>
|
||||||
|
<array>
|
||||||
|
<real>0.08999999612569809</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>density_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>0.00016999999934341758</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>distance_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>5.3000001907348633</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>east_angle</key>
|
||||||
|
<real>0</real>
|
||||||
|
<key>enable_cloud_scroll</key>
|
||||||
|
<array>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
</array>
|
||||||
|
<key>gamma</key>
|
||||||
|
<array>
|
||||||
|
<real>0.91999995708465576</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>glow</key>
|
||||||
|
<array>
|
||||||
|
<real>10.799999237060547</real>
|
||||||
|
<real>0.0010000000474974513</real>
|
||||||
|
<real>-0.64999997615814209</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_density</key>
|
||||||
|
<array>
|
||||||
|
<real>1.9099999666213989</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0.25999999046325684</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>lightnorm</key>
|
||||||
|
<array>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0.85099434852600098</real>
|
||||||
|
<real>-0.52517479658126831</real>
|
||||||
|
<real>0</real>
|
||||||
|
</array>
|
||||||
|
<key>max_y</key>
|
||||||
|
<array>
|
||||||
|
<real>600</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>preset_num</key>
|
||||||
|
<integer>10</integer>
|
||||||
|
<key>star_brightness</key>
|
||||||
|
<real>0</real>
|
||||||
|
<key>sun_angle</key>
|
||||||
|
<real>2.1237168312072754</real>
|
||||||
|
<key>sunlight_color</key>
|
||||||
|
<array>
|
||||||
|
<real>0.66705864667892456</real>
|
||||||
|
<real>0.80999994277954102</real>
|
||||||
|
<real>0.64323520660400391</real>
|
||||||
|
<real>0.26999998092651367</real>
|
||||||
|
</array>
|
||||||
|
</map>
|
||||||
|
</llsd>
|
||||||
141
indra/newview/app_settings/windlight/skies/E%2D4am.xml
Normal file
141
indra/newview/app_settings/windlight/skies/E%2D4am.xml
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
<llsd>
|
||||||
|
<map>
|
||||||
|
<key>ambient</key>
|
||||||
|
<array>
|
||||||
|
<real>0.17999999225139618</real>
|
||||||
|
<real>0.26999998092651367</real>
|
||||||
|
<real>0.32999998331069946</real>
|
||||||
|
<real>0.32999998331069946</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_density</key>
|
||||||
|
<array>
|
||||||
|
<real>0.58048778772354126</real>
|
||||||
|
<real>0.68000000715255737</real>
|
||||||
|
<real>0.56390243768692017</real>
|
||||||
|
<real>0.34000000357627869</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0.099999994039535522</real>
|
||||||
|
<real>0.14000000059604645</real>
|
||||||
|
<real>0.15999999642372131</real>
|
||||||
|
<real>0.15999999642372131</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_color</key>
|
||||||
|
<array>
|
||||||
|
<real>0.22615399956703186</real>
|
||||||
|
<real>0.31999999284744263</real>
|
||||||
|
<real>0.34000000357627869</real>
|
||||||
|
<real>0.34000000357627869</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density1</key>
|
||||||
|
<array>
|
||||||
|
<real>1.6884100437164307</real>
|
||||||
|
<real>0.52609699964523315</real>
|
||||||
|
<real>0.87999999523162842</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density2</key>
|
||||||
|
<array>
|
||||||
|
<real>1.6884100437164307</real>
|
||||||
|
<real>0.52609699964523315</real>
|
||||||
|
<real>0.125</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scale</key>
|
||||||
|
<array>
|
||||||
|
<real>0.41999998688697815</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scroll_rate</key>
|
||||||
|
<array>
|
||||||
|
<real>10.069999694824219</real>
|
||||||
|
<real>10.01099967956543</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_shadow</key>
|
||||||
|
<array>
|
||||||
|
<real>0.26999998092651367</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>density_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>0.00026000000070780516</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>distance_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>24.30000114440918</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>east_angle</key>
|
||||||
|
<real>0</real>
|
||||||
|
<key>enable_cloud_scroll</key>
|
||||||
|
<array>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
</array>
|
||||||
|
<key>gamma</key>
|
||||||
|
<array>
|
||||||
|
<real>1.0099999904632568</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>glow</key>
|
||||||
|
<array>
|
||||||
|
<real>5</real>
|
||||||
|
<real>0.0010000000474974513</real>
|
||||||
|
<real>-0.47999998927116394</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_density</key>
|
||||||
|
<array>
|
||||||
|
<real>1.4599999189376831</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0.22999998927116394</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>lightnorm</key>
|
||||||
|
<array>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0.65658539533615112</real>
|
||||||
|
<real>-0.75425165891647339</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>max_y</key>
|
||||||
|
<array>
|
||||||
|
<real>1074</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>preset_num</key>
|
||||||
|
<integer>22</integer>
|
||||||
|
<key>star_brightness</key>
|
||||||
|
<real>1.9999994039535522</real>
|
||||||
|
<key>sun_angle</key>
|
||||||
|
<real>5.5669026374816895</real>
|
||||||
|
<key>sunlight_color</key>
|
||||||
|
<array>
|
||||||
|
<real>0.14999999105930328</real>
|
||||||
|
<real>0.23999999463558197</real>
|
||||||
|
<real>0.26999998092651367</real>
|
||||||
|
<real>0.26999998092651367</real>
|
||||||
|
</array>
|
||||||
|
</map>
|
||||||
|
</llsd>
|
||||||
141
indra/newview/app_settings/windlight/skies/E%2D6am.xml
Normal file
141
indra/newview/app_settings/windlight/skies/E%2D6am.xml
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
<llsd>
|
||||||
|
<map>
|
||||||
|
<key>ambient</key>
|
||||||
|
<array>
|
||||||
|
<real>0.95999997854232788</real>
|
||||||
|
<real>0.74666666984558105</real>
|
||||||
|
<real>0.39111104607582092</real>
|
||||||
|
<real>0.31999999284744263</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_density</key>
|
||||||
|
<array>
|
||||||
|
<real>0.35999998450279236</real>
|
||||||
|
<real>0.49999505281448364</real>
|
||||||
|
<real>1</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0.60923081636428833</real>
|
||||||
|
<real>0.89999997615814209</real>
|
||||||
|
<real>0.44999998807907104</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_color</key>
|
||||||
|
<array>
|
||||||
|
<real>0.41999998688697815</real>
|
||||||
|
<real>0.41999998688697815</real>
|
||||||
|
<real>0.41999998688697815</real>
|
||||||
|
<real>0.41999998688697815</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density1</key>
|
||||||
|
<array>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.69569224119186401</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density2</key>
|
||||||
|
<array>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.125</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scale</key>
|
||||||
|
<array>
|
||||||
|
<real>0.41999998688697815</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scroll_rate</key>
|
||||||
|
<array>
|
||||||
|
<real>10.139999389648437</real>
|
||||||
|
<real>10.01099967956543</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_shadow</key>
|
||||||
|
<array>
|
||||||
|
<real>0.29999998211860657</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>density_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>0.00013000000035390258</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>distance_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>19.100000381469727</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>east_angle</key>
|
||||||
|
<real>0</real>
|
||||||
|
<key>enable_cloud_scroll</key>
|
||||||
|
<array>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
</array>
|
||||||
|
<key>gamma</key>
|
||||||
|
<array>
|
||||||
|
<real>0.81000000238418579</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>glow</key>
|
||||||
|
<array>
|
||||||
|
<real>20</real>
|
||||||
|
<real>0.0010000000474974513</real>
|
||||||
|
<real>-1.5999999046325684</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_density</key>
|
||||||
|
<array>
|
||||||
|
<real>2.3199999332427979</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0.38999998569488525</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>lightnorm</key>
|
||||||
|
<array>
|
||||||
|
<real>-0</real>
|
||||||
|
<real>0.12533323466777802</real>
|
||||||
|
<real>0.99211472272872925</real>
|
||||||
|
<real>0</real>
|
||||||
|
</array>
|
||||||
|
<key>max_y</key>
|
||||||
|
<array>
|
||||||
|
<real>600</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>preset_num</key>
|
||||||
|
<integer>10</integer>
|
||||||
|
<key>star_brightness</key>
|
||||||
|
<real>0.2199999988079071</real>
|
||||||
|
<key>sun_angle</key>
|
||||||
|
<real>0.12566371262073517</real>
|
||||||
|
<key>sunlight_color</key>
|
||||||
|
<array>
|
||||||
|
<real>1.8300000429153442</real>
|
||||||
|
<real>1.0707448720932007</real>
|
||||||
|
<real>0.61773747205734253</real>
|
||||||
|
<real>0.61000001430511475</real>
|
||||||
|
</array>
|
||||||
|
</map>
|
||||||
|
</llsd>
|
||||||
141
indra/newview/app_settings/windlight/skies/E%2D6pm.xml
Normal file
141
indra/newview/app_settings/windlight/skies/E%2D6pm.xml
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
<llsd>
|
||||||
|
<map>
|
||||||
|
<key>ambient</key>
|
||||||
|
<array>
|
||||||
|
<real>0.65999996662139893</real>
|
||||||
|
<real>0.65999996662139893</real>
|
||||||
|
<real>0.50999999046325684</real>
|
||||||
|
<real>0.2199999988079071</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_density</key>
|
||||||
|
<array>
|
||||||
|
<real>0.18153078854084015</real>
|
||||||
|
<real>0.49999505281448364</real>
|
||||||
|
<real>0.65999996662139893</real>
|
||||||
|
<real>0.65999996662139893</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0.43070217967033386</real>
|
||||||
|
<real>0.85394656658172607</real>
|
||||||
|
<real>1.0399999618530273</real>
|
||||||
|
<real>1.0399999618530273</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_color</key>
|
||||||
|
<array>
|
||||||
|
<real>0.34000000357627869</real>
|
||||||
|
<real>0.34000000357627869</real>
|
||||||
|
<real>0.34000000357627869</real>
|
||||||
|
<real>0.34000000357627869</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density1</key>
|
||||||
|
<array>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.69569224119186401</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density2</key>
|
||||||
|
<array>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.125</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scale</key>
|
||||||
|
<array>
|
||||||
|
<real>0.26999998092651367</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scroll_rate</key>
|
||||||
|
<array>
|
||||||
|
<real>10.139999389648437</real>
|
||||||
|
<real>10</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_shadow</key>
|
||||||
|
<array>
|
||||||
|
<real>0.10999999940395355</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>density_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>0.00016999999934341758</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>distance_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>5.3000001907348633</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>east_angle</key>
|
||||||
|
<real>0</real>
|
||||||
|
<key>enable_cloud_scroll</key>
|
||||||
|
<array>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
</array>
|
||||||
|
<key>gamma</key>
|
||||||
|
<array>
|
||||||
|
<real>1.0499999523162842</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>glow</key>
|
||||||
|
<array>
|
||||||
|
<real>11.19999885559082</real>
|
||||||
|
<real>0.0010000000474974513</real>
|
||||||
|
<real>-0.44999998807907104</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_density</key>
|
||||||
|
<array>
|
||||||
|
<real>1.8499999046325684</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0.35999998450279236</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>lightnorm</key>
|
||||||
|
<array>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0.70264989137649536</real>
|
||||||
|
<real>-0.7115357518196106</real>
|
||||||
|
<real>0</real>
|
||||||
|
</array>
|
||||||
|
<key>max_y</key>
|
||||||
|
<array>
|
||||||
|
<real>600</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>preset_num</key>
|
||||||
|
<integer>10</integer>
|
||||||
|
<key>star_brightness</key>
|
||||||
|
<real>0.08999999612569809</real>
|
||||||
|
<key>sun_angle</key>
|
||||||
|
<real>2.3624777793884277</real>
|
||||||
|
<key>sunlight_color</key>
|
||||||
|
<array>
|
||||||
|
<real>0.84000003337860107</real>
|
||||||
|
<real>0.87000000476837158</real>
|
||||||
|
<real>0.80999994277954102</real>
|
||||||
|
<real>0.87000000476837158</real>
|
||||||
|
</array>
|
||||||
|
</map>
|
||||||
|
</llsd>
|
||||||
141
indra/newview/app_settings/windlight/skies/E%2D7pm.xml
Normal file
141
indra/newview/app_settings/windlight/skies/E%2D7pm.xml
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
<llsd>
|
||||||
|
<map>
|
||||||
|
<key>ambient</key>
|
||||||
|
<array>
|
||||||
|
<real>0.53999996185302734</real>
|
||||||
|
<real>0.36947363615036011</real>
|
||||||
|
<real>0.22736841440200806</real>
|
||||||
|
<real>0.17999999225139618</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_density</key>
|
||||||
|
<array>
|
||||||
|
<real>0.22608692944049835</real>
|
||||||
|
<real>0.59193676710128784</real>
|
||||||
|
<real>1.0399999618530273</real>
|
||||||
|
<real>0.51999998092651367</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0.63999998569488525</real>
|
||||||
|
<real>1.1399999856948853</real>
|
||||||
|
<real>1.2799999713897705</real>
|
||||||
|
<real>0.63999998569488525</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_color</key>
|
||||||
|
<array>
|
||||||
|
<real>0.31000000238418579</real>
|
||||||
|
<real>0.31000000238418579</real>
|
||||||
|
<real>0.31000000238418579</real>
|
||||||
|
<real>0.31000000238418579</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density1</key>
|
||||||
|
<array>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.69569224119186401</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density2</key>
|
||||||
|
<array>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.125</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scale</key>
|
||||||
|
<array>
|
||||||
|
<real>0.23444875962174549</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scroll_rate</key>
|
||||||
|
<array>
|
||||||
|
<real>10.139999389648437</real>
|
||||||
|
<real>10.002444075434141</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_shadow</key>
|
||||||
|
<array>
|
||||||
|
<real>0.10999999940395355</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>density_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>0.00019999999494757503</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>distance_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>5.3000001907348633</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>east_angle</key>
|
||||||
|
<real>0</real>
|
||||||
|
<key>enable_cloud_scroll</key>
|
||||||
|
<array>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
</array>
|
||||||
|
<key>gamma</key>
|
||||||
|
<array>
|
||||||
|
<real>1.0799999237060547</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>glow</key>
|
||||||
|
<array>
|
||||||
|
<real>20</real>
|
||||||
|
<real>0.0010000000474974513</real>
|
||||||
|
<real>-1.4499999284744263</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_density</key>
|
||||||
|
<array>
|
||||||
|
<real>1.8399999141693115</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0.55000001192092896</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>lightnorm</key>
|
||||||
|
<array>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0.2729516327381134</real>
|
||||||
|
<real>-0.96202772855758667</real>
|
||||||
|
<real>0</real>
|
||||||
|
</array>
|
||||||
|
<key>max_y</key>
|
||||||
|
<array>
|
||||||
|
<real>600</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>preset_num</key>
|
||||||
|
<integer>10</integer>
|
||||||
|
<key>star_brightness</key>
|
||||||
|
<real>0.17000000178813934</real>
|
||||||
|
<key>sun_angle</key>
|
||||||
|
<real>2.8651328086853027</real>
|
||||||
|
<key>sunlight_color</key>
|
||||||
|
<array>
|
||||||
|
<real>1.1100000143051147</real>
|
||||||
|
<real>0.7580488920211792</real>
|
||||||
|
<real>0.54146337509155273</real>
|
||||||
|
<real>0.37000000476837158</real>
|
||||||
|
</array>
|
||||||
|
</map>
|
||||||
|
</llsd>
|
||||||
141
indra/newview/app_settings/windlight/skies/E%2D9am.xml
Normal file
141
indra/newview/app_settings/windlight/skies/E%2D9am.xml
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
<llsd>
|
||||||
|
<map>
|
||||||
|
<key>ambient</key>
|
||||||
|
<array>
|
||||||
|
<real>0.44785711169242859</real>
|
||||||
|
<real>0.56999999284744263</real>
|
||||||
|
<real>0.44785711169242859</real>
|
||||||
|
<real>0.18999999761581421</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_density</key>
|
||||||
|
<array>
|
||||||
|
<real>0.2800000011920929</real>
|
||||||
|
<real>0.37999999523162842</real>
|
||||||
|
<real>0.53999996185302734</real>
|
||||||
|
<real>0.53999996185302734</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0.35999998450279236</real>
|
||||||
|
<real>0.85394656658172607</real>
|
||||||
|
<real>1.1000000238418579</real>
|
||||||
|
<real>1.1000000238418579</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_color</key>
|
||||||
|
<array>
|
||||||
|
<real>0.53962135314941406</real>
|
||||||
|
<real>0.53962135314941406</real>
|
||||||
|
<real>0.53962135314941406</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density1</key>
|
||||||
|
<array>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.69569224119186401</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density2</key>
|
||||||
|
<array>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.125</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scale</key>
|
||||||
|
<array>
|
||||||
|
<real>0.26999998092651367</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scroll_rate</key>
|
||||||
|
<array>
|
||||||
|
<real>10.139999389648437</real>
|
||||||
|
<real>10.01099967956543</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_shadow</key>
|
||||||
|
<array>
|
||||||
|
<real>0.22999998927116394</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>density_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>0.00019999999494757503</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>distance_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>8.6000003814697266</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>east_angle</key>
|
||||||
|
<real>0</real>
|
||||||
|
<key>enable_cloud_scroll</key>
|
||||||
|
<array>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
</array>
|
||||||
|
<key>gamma</key>
|
||||||
|
<array>
|
||||||
|
<real>0.81000000238418579</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>glow</key>
|
||||||
|
<array>
|
||||||
|
<real>14.800000190734863</real>
|
||||||
|
<real>0.0010000000474974513</real>
|
||||||
|
<real>-0.34999999403953552</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_density</key>
|
||||||
|
<array>
|
||||||
|
<real>1.9099999666213989</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0.49740666151046753</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>lightnorm</key>
|
||||||
|
<array>
|
||||||
|
<real>-0</real>
|
||||||
|
<real>0.80156701803207397</real>
|
||||||
|
<real>0.59790498018264771</real>
|
||||||
|
<real>0</real>
|
||||||
|
</array>
|
||||||
|
<key>max_y</key>
|
||||||
|
<array>
|
||||||
|
<real>600</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>preset_num</key>
|
||||||
|
<integer>10</integer>
|
||||||
|
<key>star_brightness</key>
|
||||||
|
<real>0</real>
|
||||||
|
<key>sun_angle</key>
|
||||||
|
<real>0.92991143465042114</real>
|
||||||
|
<key>sunlight_color</key>
|
||||||
|
<array>
|
||||||
|
<real>0.84000003337860107</real>
|
||||||
|
<real>0.77538466453552246</real>
|
||||||
|
<real>0.68999993801116943</real>
|
||||||
|
<real>0.2800000011920929</real>
|
||||||
|
</array>
|
||||||
|
</map>
|
||||||
|
</llsd>
|
||||||
141
indra/newview/app_settings/windlight/skies/E%2D9pm.xml
Normal file
141
indra/newview/app_settings/windlight/skies/E%2D9pm.xml
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
<llsd>
|
||||||
|
<map>
|
||||||
|
<key>ambient</key>
|
||||||
|
<array>
|
||||||
|
<real>0.21000000834465027</real>
|
||||||
|
<real>0.29999998211860657</real>
|
||||||
|
<real>0.32999998331069946</real>
|
||||||
|
<real>0.32999998331069946</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_density</key>
|
||||||
|
<array>
|
||||||
|
<real>0.25999999046325684</real>
|
||||||
|
<real>0.53999996185302734</real>
|
||||||
|
<real>0.65999996662139893</real>
|
||||||
|
<real>0.65999996662139893</real>
|
||||||
|
</array>
|
||||||
|
<key>blue_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0.11000000685453415</real>
|
||||||
|
<real>0.13999997079372406</real>
|
||||||
|
<real>0.15999999642372131</real>
|
||||||
|
<real>0.079999998211860657</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_color</key>
|
||||||
|
<array>
|
||||||
|
<real>0.25</real>
|
||||||
|
<real>0.25</real>
|
||||||
|
<real>0.25</real>
|
||||||
|
<real>0.25</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density1</key>
|
||||||
|
<array>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.69569224119186401</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_pos_density2</key>
|
||||||
|
<array>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.5</real>
|
||||||
|
<real>0.125</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scale</key>
|
||||||
|
<array>
|
||||||
|
<real>0.10999999195337296</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_scroll_rate</key>
|
||||||
|
<array>
|
||||||
|
<real>10.139999389648437</real>
|
||||||
|
<real>10.01099967956543</real>
|
||||||
|
</array>
|
||||||
|
<key>cloud_shadow</key>
|
||||||
|
<array>
|
||||||
|
<real>0.11999999731779099</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>density_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>0.00016999999934341758</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>distance_multiplier</key>
|
||||||
|
<array>
|
||||||
|
<real>5.3000001907348633</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>east_angle</key>
|
||||||
|
<real>0</real>
|
||||||
|
<key>enable_cloud_scroll</key>
|
||||||
|
<array>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
<boolean>1</boolean>
|
||||||
|
</array>
|
||||||
|
<key>gamma</key>
|
||||||
|
<array>
|
||||||
|
<real>0.87999999523162842</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>glow</key>
|
||||||
|
<array>
|
||||||
|
<real>11.600000381469727</real>
|
||||||
|
<real>0.0010000000474974513</real>
|
||||||
|
<real>-0.74999994039535522</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_density</key>
|
||||||
|
<array>
|
||||||
|
<real>1.75</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>haze_horizon</key>
|
||||||
|
<array>
|
||||||
|
<real>0.34000000357627869</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>0.19915600121021271</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>lightnorm</key>
|
||||||
|
<array>
|
||||||
|
<real>-0</real>
|
||||||
|
<real>0.7862887978553772</real>
|
||||||
|
<real>0.6178591251373291</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>max_y</key>
|
||||||
|
<array>
|
||||||
|
<real>600</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>0</real>
|
||||||
|
<real>1</real>
|
||||||
|
</array>
|
||||||
|
<key>preset_num</key>
|
||||||
|
<integer>10</integer>
|
||||||
|
<key>star_brightness</key>
|
||||||
|
<real>0.35999998450279236</real>
|
||||||
|
<key>sun_angle</key>
|
||||||
|
<real>4.0463719367980957</real>
|
||||||
|
<key>sunlight_color</key>
|
||||||
|
<array>
|
||||||
|
<real>0.14538462460041046</real>
|
||||||
|
<real>0.20769229531288147</real>
|
||||||
|
<real>0.26999998092651367</real>
|
||||||
|
<real>0.08999999612569809</real>
|
||||||
|
</array>
|
||||||
|
</map>
|
||||||
|
</llsd>
|
||||||
378
indra/newview/ascentdaycyclemanager.cpp
Normal file
378
indra/newview/ascentdaycyclemanager.cpp
Normal file
@@ -0,0 +1,378 @@
|
|||||||
|
/**
|
||||||
|
* @file ascentdaycyclemanager.cpp
|
||||||
|
* @Author Duncan Garrett
|
||||||
|
* Manager for Windlight Daycycles so we can actually save more than one
|
||||||
|
*
|
||||||
|
* Created August 27 2010
|
||||||
|
*
|
||||||
|
* ALL SOURCE CODE IS PROVIDED "AS IS." THE CREATOR MAKES NO
|
||||||
|
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||||
|
* COMPLETENESS OR PERFORMANCE.
|
||||||
|
* k ilu bye
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "llviewerprecompiledheaders.h"
|
||||||
|
|
||||||
|
#include "ascentdaycyclemanager.h"
|
||||||
|
|
||||||
|
#include "pipeline.h"
|
||||||
|
#include "llsky.h"
|
||||||
|
|
||||||
|
#include "llsliderctrl.h"
|
||||||
|
#include "llspinctrl.h"
|
||||||
|
#include "llcheckboxctrl.h"
|
||||||
|
#include "lluictrlfactory.h"
|
||||||
|
#include "llviewercamera.h"
|
||||||
|
#include "llcombobox.h"
|
||||||
|
#include "lllineeditor.h"
|
||||||
|
#include "llsdserialize.h"
|
||||||
|
|
||||||
|
#include "v4math.h"
|
||||||
|
#include "llviewerdisplay.h"
|
||||||
|
#include "llviewercontrol.h"
|
||||||
|
#include "llviewerwindow.h"
|
||||||
|
#include "lldrawpoolwater.h"
|
||||||
|
#include "llagent.h"
|
||||||
|
#include "llviewerregion.h"
|
||||||
|
|
||||||
|
#include "llwldaycycle.h"
|
||||||
|
#include "llfloaterwindlight.h"
|
||||||
|
#include "llfloaterdaycycle.h"
|
||||||
|
#include "llfloaterenvsettings.h"
|
||||||
|
|
||||||
|
#include "curl/curl.h"
|
||||||
|
|
||||||
|
AscentDayCycleManager * AscentDayCycleManager::sInstance = NULL;
|
||||||
|
|
||||||
|
AscentDayCycleManager::AscentDayCycleManager()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
AscentDayCycleManager::~AscentDayCycleManager()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void AscentDayCycleManager::loadPresets(const std::string& file_name)
|
||||||
|
{
|
||||||
|
std::string path_name(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/days", ""));
|
||||||
|
LL_INFOS2("AppInit", "Shaders") << "Loading Default Day Cycle preset from " << path_name << LL_ENDL;
|
||||||
|
|
||||||
|
bool found = true;
|
||||||
|
while(found)
|
||||||
|
{
|
||||||
|
std::string name;
|
||||||
|
found = gDirUtilp->getNextFileInDir(path_name, "*.xml", name, false);
|
||||||
|
if(found)
|
||||||
|
{
|
||||||
|
|
||||||
|
name=name.erase(name.length()-4);
|
||||||
|
|
||||||
|
// bugfix for SL-46920: preventing filenames that break stuff.
|
||||||
|
char * curl_str = curl_unescape(name.c_str(), name.size());
|
||||||
|
std::string unescaped_name(curl_str);
|
||||||
|
curl_free(curl_str);
|
||||||
|
curl_str = NULL;
|
||||||
|
|
||||||
|
LL_DEBUGS2("AppInit", "Shaders") << "name: " << name << LL_ENDL;
|
||||||
|
loadPreset(unescaped_name,FALSE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// And repeat for user presets, note the user presets will modify any system presets already loaded
|
||||||
|
|
||||||
|
std::string path_name2(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/days", ""));
|
||||||
|
LL_INFOS2("AppInit", "Shaders") << "Loading User Daycycle preset from " << path_name2 << LL_ENDL;
|
||||||
|
|
||||||
|
found = true;
|
||||||
|
while(found)
|
||||||
|
{
|
||||||
|
std::string name;
|
||||||
|
found = gDirUtilp->getNextFileInDir(path_name2, "*.xml", name, false);
|
||||||
|
if(found)
|
||||||
|
{
|
||||||
|
name=name.erase(name.length()-4);
|
||||||
|
|
||||||
|
// bugfix for SL-46920: preventing filenames that break stuff.
|
||||||
|
char * curl_str = curl_unescape(name.c_str(), name.size());
|
||||||
|
std::string unescaped_name(curl_str);
|
||||||
|
curl_free(curl_str);
|
||||||
|
curl_str = NULL;
|
||||||
|
|
||||||
|
LL_DEBUGS2("AppInit", "Shaders") << "name: " << name << LL_ENDL;
|
||||||
|
loadPreset(unescaped_name,FALSE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void AscentDayCycleManager::savePresets(const std::string & fileName)
|
||||||
|
{
|
||||||
|
//Nobody currently calls me, but if they did, then its reasonable to write the data out to the user's folder
|
||||||
|
//and not over the RO system wide version.
|
||||||
|
|
||||||
|
LLSD paramsData(LLSD::emptyMap());
|
||||||
|
|
||||||
|
std::string pathName(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight", fileName));
|
||||||
|
|
||||||
|
/*for(std::map<std::string, LLWLDayCycle>::iterator mIt = mParamList.begin();
|
||||||
|
mIt != mParamList.end();
|
||||||
|
++mIt)
|
||||||
|
{
|
||||||
|
paramsData[mIt->first] = mIt->second.getAll();
|
||||||
|
}*/
|
||||||
|
|
||||||
|
llofstream presetsXML(pathName);
|
||||||
|
|
||||||
|
LLPointer<LLSDFormatter> formatter = new LLSDXMLFormatter();
|
||||||
|
|
||||||
|
formatter->format(paramsData, presetsXML, LLSDFormatter::OPTIONS_PRETTY);
|
||||||
|
|
||||||
|
presetsXML.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
void AscentDayCycleManager::loadPreset(const std::string & name,bool propagate)
|
||||||
|
{
|
||||||
|
|
||||||
|
// bugfix for SL-46920: preventing filenames that break stuff.
|
||||||
|
char * curl_str = curl_escape(name.c_str(), name.size());
|
||||||
|
std::string escaped_filename(curl_str);
|
||||||
|
curl_free(curl_str);
|
||||||
|
curl_str = NULL;
|
||||||
|
|
||||||
|
escaped_filename += ".xml";
|
||||||
|
|
||||||
|
std::string pathName(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/days", escaped_filename));
|
||||||
|
llinfos << "Loading Day Cycle preset from " << pathName << llendl;
|
||||||
|
|
||||||
|
llifstream presetsXML;
|
||||||
|
presetsXML.open(pathName.c_str());
|
||||||
|
|
||||||
|
// That failed, try loading from the users area instead.
|
||||||
|
if(!presetsXML)
|
||||||
|
{
|
||||||
|
pathName=gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/days", escaped_filename);
|
||||||
|
llinfos << "Loading User Day Cycle preset from " << pathName << llendl;
|
||||||
|
presetsXML.open(pathName.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (presetsXML)
|
||||||
|
{
|
||||||
|
LLSD paramsData(LLSD::emptyMap());
|
||||||
|
|
||||||
|
LLPointer<LLSDParser> parser = new LLSDXMLParser();
|
||||||
|
|
||||||
|
parser->parse(presetsXML, paramsData, LLSDSerialize::SIZE_UNLIMITED);
|
||||||
|
|
||||||
|
std::map<std::string, LLWLDayCycle>::iterator mIt = mParamList.find(name);
|
||||||
|
if(mIt == mParamList.end())
|
||||||
|
{
|
||||||
|
addParamSet(name, paramsData);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
setParamSet(name, paramsData);
|
||||||
|
}
|
||||||
|
presetsXML.close();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
llwarns << "Can't find " << name << llendl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void AscentDayCycleManager::savePreset(const std::string & name)
|
||||||
|
{
|
||||||
|
// bugfix for SL-46920: preventing filenames that break stuff.
|
||||||
|
char * curl_str = curl_escape(name.c_str(), name.size());
|
||||||
|
std::string escaped_filename(curl_str);
|
||||||
|
curl_free(curl_str);
|
||||||
|
curl_str = NULL;
|
||||||
|
|
||||||
|
escaped_filename += ".xml";
|
||||||
|
|
||||||
|
// make an empty llsd
|
||||||
|
LLSD paramsData(LLSD::emptyMap());
|
||||||
|
std::string pathName(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/days", escaped_filename));
|
||||||
|
|
||||||
|
// fill it with LLSD windlight params
|
||||||
|
//paramsData = mParamList[name].getAll();
|
||||||
|
|
||||||
|
// write to file
|
||||||
|
llofstream presetsXML(pathName);
|
||||||
|
LLPointer<LLSDFormatter> formatter = new LLSDXMLFormatter();
|
||||||
|
formatter->format(paramsData, presetsXML, LLSDFormatter::OPTIONS_PRETTY);
|
||||||
|
presetsXML.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
void AscentDayCycleManager::update(LLViewerCamera * cam)
|
||||||
|
{
|
||||||
|
LLFastTimer ftm(LLFastTimer::FTM_UPDATE_WLPARAM);
|
||||||
|
|
||||||
|
// sync menus if they exist
|
||||||
|
if(LLFloaterWindLight::isOpen())
|
||||||
|
{
|
||||||
|
LLFloaterWindLight::instance()->syncMenu();
|
||||||
|
}
|
||||||
|
if(LLFloaterDayCycle::isOpen())
|
||||||
|
{
|
||||||
|
LLFloaterDayCycle::instance()->syncMenu();
|
||||||
|
}
|
||||||
|
if(LLFloaterEnvSettings::isOpen())
|
||||||
|
{
|
||||||
|
LLFloaterEnvSettings::instance()->syncMenu();
|
||||||
|
}
|
||||||
|
|
||||||
|
stop_glerror();
|
||||||
|
}
|
||||||
|
|
||||||
|
// static
|
||||||
|
void AscentDayCycleManager::initClass(void)
|
||||||
|
{
|
||||||
|
instance();
|
||||||
|
}
|
||||||
|
|
||||||
|
// static
|
||||||
|
void AscentDayCycleManager::cleanupClass()
|
||||||
|
{
|
||||||
|
delete sInstance;
|
||||||
|
sInstance = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AscentDayCycleManager::resetAnimator(F32 curTime, bool run)
|
||||||
|
{
|
||||||
|
mAnimator.setTrack(mDay.mTimeMap, mDay.mDayRate,
|
||||||
|
curTime, run);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
bool AscentDayCycleManager::addParamSet(const std::string& name, LLWLDayCycle& param)
|
||||||
|
{
|
||||||
|
// add a new one if not one there already
|
||||||
|
std::map<std::string, LLWLDayCycle>::iterator mIt = mParamList.find(name);
|
||||||
|
if(mIt == mParamList.end())
|
||||||
|
{
|
||||||
|
mParamList[name] = param;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL AscentDayCycleManager::addParamSet(const std::string& name, LLSD const & param)
|
||||||
|
{
|
||||||
|
// add a new one if not one there already
|
||||||
|
std::map<std::string, LLWLDayCycle>::const_iterator finder = mParamList.find(name);
|
||||||
|
if(finder == mParamList.end())
|
||||||
|
{
|
||||||
|
mParamList[name].mName = name;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AscentDayCycleManager::getParamSet(const std::string& name, LLWLDayCycle& param)
|
||||||
|
{
|
||||||
|
// find it and set it
|
||||||
|
std::map<std::string, LLWLDayCycle>::iterator mIt = mParamList.find(name);
|
||||||
|
if(mIt != mParamList.end())
|
||||||
|
{
|
||||||
|
param = mParamList[name];
|
||||||
|
param.mName = name;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AscentDayCycleManager::setParamSet(const std::string& name, LLWLDayCycle& param)
|
||||||
|
{
|
||||||
|
mParamList[name] = param;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AscentDayCycleManager::setParamSet(const std::string& name, const LLSD & param)
|
||||||
|
{
|
||||||
|
// quick, non robust (we won't be working with files, but assets) check
|
||||||
|
if(!param.isMap())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AscentDayCycleManager::removeParamSet(const std::string& name, bool delete_from_disk)
|
||||||
|
{
|
||||||
|
// remove from param list
|
||||||
|
std::map<std::string, LLWLDayCycle>::iterator mIt = mParamList.find(name);
|
||||||
|
if(mIt != mParamList.end())
|
||||||
|
{
|
||||||
|
mParamList.erase(mIt);
|
||||||
|
}
|
||||||
|
|
||||||
|
F32 key;
|
||||||
|
|
||||||
|
// remove all references
|
||||||
|
bool stat = true;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
// get it
|
||||||
|
stat = mDay.getKey(name, key);
|
||||||
|
if(stat == false)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// and remove
|
||||||
|
stat = mDay.removeKey(key);
|
||||||
|
|
||||||
|
} while(stat == true);
|
||||||
|
|
||||||
|
if(delete_from_disk)
|
||||||
|
{
|
||||||
|
std::string path_name(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/days", ""));
|
||||||
|
|
||||||
|
// use full curl escaped name
|
||||||
|
char * curl_str = curl_escape(name.c_str(), name.size());
|
||||||
|
std::string escaped_name(curl_str);
|
||||||
|
curl_free(curl_str);
|
||||||
|
curl_str = NULL;
|
||||||
|
|
||||||
|
gDirUtilp->deleteFilesInDir(path_name, escaped_name + ".xml");
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// static
|
||||||
|
AscentDayCycleManager * AscentDayCycleManager::instance()
|
||||||
|
{
|
||||||
|
if(NULL == sInstance)
|
||||||
|
{
|
||||||
|
sInstance = new AscentDayCycleManager();
|
||||||
|
|
||||||
|
sInstance->loadPresets(LLStringUtil::null);
|
||||||
|
|
||||||
|
// load the day
|
||||||
|
sInstance->mDay.loadDayCycle(gSavedSettings.getString("AscentActiveDayCycle"));
|
||||||
|
|
||||||
|
// *HACK - sets cloud scrolling to what we want... fix this better in the future
|
||||||
|
sInstance->getParamSet("Default", sInstance->mCurParams);
|
||||||
|
|
||||||
|
// set it to noon
|
||||||
|
sInstance->resetAnimator(0.5, true);
|
||||||
|
|
||||||
|
// but use linden time sets it to what the estate is
|
||||||
|
sInstance->mAnimator.mUseLindenTime = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return sInstance;
|
||||||
|
}
|
||||||
109
indra/newview/ascentdaycyclemanager.h
Normal file
109
indra/newview/ascentdaycyclemanager.h
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
/**
|
||||||
|
* @file ascentdaycyclemanager.h
|
||||||
|
* @Author Duncan Garrett
|
||||||
|
* Manager for Windlight Daycycles so we can actually save more than one
|
||||||
|
*
|
||||||
|
* Created October 04 2010
|
||||||
|
*
|
||||||
|
* ALL SOURCE CODE IS PROVIDED "AS IS." THE CREATOR MAKES NO
|
||||||
|
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||||
|
* COMPLETENESS OR PERFORMANCE.
|
||||||
|
* k ilu bye
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef ASCENT_DAYCYCLEMANAGER_H
|
||||||
|
#define ASCENT_DAYCYCLEMANAGER_H
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <map>
|
||||||
|
#include "llwldaycycle.h"
|
||||||
|
#include "llwlanimator.h"
|
||||||
|
#include "llwldaycycle.h"
|
||||||
|
#include "llviewercamera.h"
|
||||||
|
|
||||||
|
/// WindLight parameter manager class - what controls all the wind light shaders
|
||||||
|
class AscentDayCycleManager
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
AscentDayCycleManager();
|
||||||
|
~AscentDayCycleManager();
|
||||||
|
|
||||||
|
/// load a preset file
|
||||||
|
void loadPresets(const std::string & fileName);
|
||||||
|
|
||||||
|
/// save the preset file
|
||||||
|
void savePresets(const std::string & fileName);
|
||||||
|
|
||||||
|
/// load an individual preset into the sky
|
||||||
|
void loadPreset(const std::string & name,bool propogate=true);
|
||||||
|
|
||||||
|
/// save the parameter presets to file
|
||||||
|
void savePreset(const std::string & name);
|
||||||
|
|
||||||
|
/// Set shader uniforms dirty, so they'll update automatically.
|
||||||
|
void propagateParameters(void);
|
||||||
|
|
||||||
|
/// Update shader uniforms that have changed.
|
||||||
|
void updateShaderUniforms(LLGLSLShader * shader);
|
||||||
|
|
||||||
|
/// setup the animator to run
|
||||||
|
void resetAnimator(F32 curTime, bool run);
|
||||||
|
|
||||||
|
/// update information camera dependent parameters
|
||||||
|
void update(LLViewerCamera * cam);
|
||||||
|
|
||||||
|
|
||||||
|
/// Perform global initialization for this class.
|
||||||
|
static void initClass(void);
|
||||||
|
|
||||||
|
// Cleanup of global data that's only inited once per class.
|
||||||
|
static void cleanupClass();
|
||||||
|
|
||||||
|
/// add a param to the list
|
||||||
|
bool addParamSet(const std::string& name, LLWLDayCycle& param);
|
||||||
|
|
||||||
|
/// add a param to the list
|
||||||
|
BOOL addParamSet(const std::string& name, LLSD const & param);
|
||||||
|
|
||||||
|
/// get a param from the list
|
||||||
|
bool getParamSet(const std::string& name, LLWLDayCycle& param);
|
||||||
|
|
||||||
|
/// set the param in the list with a new param
|
||||||
|
bool setParamSet(const std::string& name, LLWLDayCycle& param);
|
||||||
|
|
||||||
|
/// set the param in the list with a new param
|
||||||
|
bool setParamSet(const std::string& name, LLSD const & param);
|
||||||
|
|
||||||
|
/// gets rid of a parameter and any references to it
|
||||||
|
/// returns true if successful
|
||||||
|
bool removeParamSet(const std::string& name, bool delete_from_disk);
|
||||||
|
|
||||||
|
// singleton pattern implementation
|
||||||
|
static AscentDayCycleManager * instance();
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
// helper variables
|
||||||
|
LLWLAnimator mAnimator;
|
||||||
|
|
||||||
|
|
||||||
|
// list of params and how they're cycled for days
|
||||||
|
LLWLDayCycle mDay;
|
||||||
|
|
||||||
|
LLWLDayCycle mCurParams;
|
||||||
|
|
||||||
|
/// Sun Delta Terrain tweak variables.
|
||||||
|
F32 mSunDeltaYaw;
|
||||||
|
|
||||||
|
// list of all the day cycles, listed by name
|
||||||
|
std::map<std::string, LLWLDayCycle> mParamList;
|
||||||
|
|
||||||
|
|
||||||
|
private:
|
||||||
|
// our parameter manager singleton instance
|
||||||
|
static AscentDayCycleManager * sInstance;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
#include "llcombobox.h" //Combo dropdowns
|
#include "llcombobox.h" //Combo dropdowns
|
||||||
#include "llscrolllistctrl.h" //List box for filenames
|
#include "llscrolllistctrl.h" //List box for filenames
|
||||||
#include "lluictrlfactory.h" //Loads the XUI
|
#include "lluictrlfactory.h" //Loads the XUI
|
||||||
|
#include "llresmgr.h"
|
||||||
// project includes
|
// project includes
|
||||||
#include "llviewercontrol.h"
|
#include "llviewercontrol.h"
|
||||||
#include "llviewerwindow.h"
|
#include "llviewerwindow.h"
|
||||||
@@ -84,8 +84,13 @@ void ASFloaterContactGroups::onBtnSave(void* userdata)
|
|||||||
LLScrollListCtrl* scroller = self->getChild<LLScrollListCtrl>("group_scroll_list");
|
LLScrollListCtrl* scroller = self->getChild<LLScrollListCtrl>("group_scroll_list");
|
||||||
if(scroller != NULL)
|
if(scroller != NULL)
|
||||||
{
|
{
|
||||||
for (S32 i = self->mSelectedUUIDs.count(); i > 0; --i)
|
for (S32 i = (self->mSelectedUUIDs.count() - 1); i >= 0; --i)
|
||||||
{
|
{
|
||||||
|
std::string i_str;
|
||||||
|
LLResMgr::getInstance()->getIntegerString(i_str, i);
|
||||||
|
LLChat msg("Adding index " + i_str + ": " + self->mSelectedUUIDs.get(i).asString());
|
||||||
|
LLFloaterChat::addChat(msg);
|
||||||
|
|
||||||
self->addContactMember(scroller->getValue().asString(), self->mSelectedUUIDs.get(i));
|
self->addContactMember(scroller->getValue().asString(), self->mSelectedUUIDs.get(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -116,7 +116,6 @@ LLPrefsAscentSysImpl::LLPrefsAscentSysImpl()
|
|||||||
childSetCommitCallback("system_folder_check", onCommitCheckBox, this);
|
childSetCommitCallback("system_folder_check", onCommitCheckBox, this);
|
||||||
childSetCommitCallback("show_look_at_check", onCommitCheckBox, this);
|
childSetCommitCallback("show_look_at_check", onCommitCheckBox, this);
|
||||||
childSetCommitCallback("enable_clouds", onCommitCheckBox, this);
|
childSetCommitCallback("enable_clouds", onCommitCheckBox, this);
|
||||||
|
|
||||||
refreshValues();
|
refreshValues();
|
||||||
refresh();
|
refresh();
|
||||||
}
|
}
|
||||||
@@ -187,10 +186,8 @@ void LLPrefsAscentSysImpl::refreshValues()
|
|||||||
//Performance -------------------------------------------------------------------------
|
//Performance -------------------------------------------------------------------------
|
||||||
mFetchInventoryOnLogin = gSavedSettings.getBOOL("FetchInventoryOnLogin");
|
mFetchInventoryOnLogin = gSavedSettings.getBOOL("FetchInventoryOnLogin");
|
||||||
mEnableLLWind = gSavedSettings.getBOOL("WindEnabled");
|
mEnableLLWind = gSavedSettings.getBOOL("WindEnabled");
|
||||||
|
mEnableClouds = gSavedSettings.getBOOL("CloudsEnabled");
|
||||||
mEnableClouds = gSavedSettings.getBOOL("CloudsEnabled");
|
mEnableClassicClouds = gSavedSettings.getBOOL("SkyUseClassicClouds");
|
||||||
mEnableClassicClouds = gSavedSettings.getBOOL("SkyUseClassicClouds");
|
|
||||||
|
|
||||||
mSpeedRez = gSavedSettings.getBOOL("SpeedRez");
|
mSpeedRez = gSavedSettings.getBOOL("SpeedRez");
|
||||||
mSpeedRezInterval = gSavedSettings.getU32("SpeedRezInterval");
|
mSpeedRezInterval = gSavedSettings.getU32("SpeedRezInterval");
|
||||||
|
|
||||||
@@ -295,7 +292,7 @@ void LLPrefsAscentSysImpl::refresh()
|
|||||||
childSetValue("fetch_inventory_on_login_check", mFetchInventoryOnLogin);
|
childSetValue("fetch_inventory_on_login_check", mFetchInventoryOnLogin);
|
||||||
childSetValue("enable_wind", mEnableLLWind);
|
childSetValue("enable_wind", mEnableLLWind);
|
||||||
childSetValue("enable_clouds", mEnableClouds);
|
childSetValue("enable_clouds", mEnableClouds);
|
||||||
childSetValue("enable_classic_clouds", mEnableClassicClouds);
|
childSetValue("enable_classic_clouds", mEnableClassicClouds);
|
||||||
gLLWindEnabled = mEnableLLWind;
|
gLLWindEnabled = mEnableLLWind;
|
||||||
childSetValue("speed_rez_check", mSpeedRez);
|
childSetValue("speed_rez_check", mSpeedRez);
|
||||||
childSetEnabled("speed_rez_interval", mSpeedRez);
|
childSetEnabled("speed_rez_interval", mSpeedRez);
|
||||||
@@ -335,7 +332,7 @@ void LLPrefsAscentSysImpl::cancel()
|
|||||||
childSetValue("fetch_inventory_on_login_check", mFetchInventoryOnLogin);
|
childSetValue("fetch_inventory_on_login_check", mFetchInventoryOnLogin);
|
||||||
childSetValue("enable_wind", mEnableLLWind);
|
childSetValue("enable_wind", mEnableLLWind);
|
||||||
childSetValue("enable_clouds", mEnableClouds);
|
childSetValue("enable_clouds", mEnableClouds);
|
||||||
childSetValue("enable_classic_clouds", mEnableClassicClouds);
|
childSetValue("enable_classic_clouds", mEnableClassicClouds);
|
||||||
childSetValue("speed_rez_check", mSpeedRez);
|
childSetValue("speed_rez_check", mSpeedRez);
|
||||||
if (mSpeedRez)
|
if (mSpeedRez)
|
||||||
{
|
{
|
||||||
@@ -357,7 +354,6 @@ void LLPrefsAscentSysImpl::cancel()
|
|||||||
|
|
||||||
childSetValue("enable_clouds", mEnableClouds);
|
childSetValue("enable_clouds", mEnableClouds);
|
||||||
childSetValue("enable_classic_clouds", mEnableClassicClouds);
|
childSetValue("enable_classic_clouds", mEnableClassicClouds);
|
||||||
|
|
||||||
gLLWindEnabled = mEnableLLWind;
|
gLLWindEnabled = mEnableLLWind;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -526,4 +522,4 @@ void LLPrefsAscentSys::cancel()
|
|||||||
LLPanel* LLPrefsAscentSys::getPanel()
|
LLPanel* LLPrefsAscentSys::getPanel()
|
||||||
{
|
{
|
||||||
return &impl;
|
return &impl;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -202,15 +202,15 @@ void LLPrefsAscentVanImpl::refreshValues()
|
|||||||
//Colors
|
//Colors
|
||||||
mShowSelfClientTag = gSavedSettings.getBOOL("AscentShowSelfTag");
|
mShowSelfClientTag = gSavedSettings.getBOOL("AscentShowSelfTag");
|
||||||
mShowSelfClientTagColor = gSavedSettings.getBOOL("AscentShowSelfTagColor");
|
mShowSelfClientTagColor = gSavedSettings.getBOOL("AscentShowSelfTagColor");
|
||||||
mCustomTagOn = gCOASavedSettings->getBOOL("AscentUseCustomTag");
|
mCustomTagOn = gSavedSettings.getBOOL("AscentUseCustomTag");
|
||||||
|
|
||||||
mSelectedClient = gCOASavedSettings->getU32("AscentReportClientIndex");
|
|
||||||
mEffectColor = gCOASavedSettings->getColor4("EffectColor");
|
|
||||||
|
|
||||||
childSetEnabled("custom_tag_label_text", mCustomTagOn);
|
mSelectedClient = gCOASavedSettings->getU32("AscentReportClientIndex");
|
||||||
childSetEnabled("custom_tag_label_box", mCustomTagOn);
|
mEffectColor = gCOASavedSettings->getColor4("EffectColor");
|
||||||
childSetEnabled("custom_tag_color_text", mCustomTagOn);
|
|
||||||
childSetEnabled("custom_tag_color_swatch", mCustomTagOn);
|
childSetEnabled("custom_tag_label_text", mCustomTagOn);
|
||||||
|
childSetEnabled("custom_tag_label_box", mCustomTagOn);
|
||||||
|
childSetEnabled("custom_tag_color_text", mCustomTagOn);
|
||||||
|
childSetEnabled("custom_tag_color_swatch", mCustomTagOn);
|
||||||
|
|
||||||
mCustomTagLabel = gCOASavedSettings->getString("AscentCustomTagLabel");
|
mCustomTagLabel = gCOASavedSettings->getString("AscentCustomTagLabel");
|
||||||
mCustomTagColor = gCOASavedSettings->getColor4("AscentCustomTagColor");
|
mCustomTagColor = gCOASavedSettings->getColor4("AscentCustomTagColor");
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
/// Local function declarations, constants, enums, and typedefs
|
/// Local function declarations, constants, enums, and typedefs
|
||||||
///----------------------------------------------------------------------------
|
///----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
LLSD ASFloaterUploadBrowser::mUploaderSettings;
|
||||||
ASFloaterUploadBrowser* ASFloaterUploadBrowser::sInstance = NULL;
|
ASFloaterUploadBrowser* ASFloaterUploadBrowser::sInstance = NULL;
|
||||||
|
|
||||||
|
|
||||||
@@ -43,24 +44,37 @@ ASFloaterUploadBrowser::ASFloaterUploadBrowser()
|
|||||||
: LLFloater(std::string("floater_upload_browser"), std::string("FloaterUploadRect"), LLStringUtil::null)
|
: LLFloater(std::string("floater_upload_browser"), std::string("FloaterUploadRect"), LLStringUtil::null)
|
||||||
{
|
{
|
||||||
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_upload_browser.xml");
|
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_upload_browser.xml");
|
||||||
mPathName = gSavedSettings.getString("AscentUploadFolder");
|
|
||||||
|
mUploaderSettings.clear();
|
||||||
|
mUploaderSettings = gSavedSettings.getLLSD("AscentUploadSettings");
|
||||||
|
|
||||||
|
mPathName = mUploaderSettings["ActivePath"].asString();
|
||||||
if (mPathName == "None")
|
if (mPathName == "None")
|
||||||
mPathName = gDirUtilp->getExecutableDir();
|
mPathName = gDirUtilp->getExecutableDir();
|
||||||
mFilterType = "None";
|
mFilterType = "None";
|
||||||
|
|
||||||
|
|
||||||
//File list ------------------------------------------------------
|
//File list ------------------------------------------------------
|
||||||
mFileList = getChild<LLScrollListCtrl>("file_list");
|
mFileList = getChild<LLScrollListCtrl>("file_list");
|
||||||
childSetCommitCallback("file_list", onClickFile, this);
|
childSetCommitCallback("file_list", onClickFile, this);
|
||||||
childSetDoubleClickCallback("file_list", onDoubleClick);
|
childSetDoubleClickCallback("file_list", onDoubleClick);
|
||||||
|
|
||||||
//Above File List ------------------------------------------------
|
//Above File List ------------------------------------------------
|
||||||
|
|
||||||
mBookmarkCombo = getChild<LLComboBox>("bookmark_combo");
|
mBookmarkCombo = getChild<LLComboBox>("bookmark_combo");
|
||||||
|
S32 index;
|
||||||
|
for (index = 0; index < mUploaderSettings["Bookmarks"].size(); index++)
|
||||||
|
{
|
||||||
|
std::string bookmark = mUploaderSettings["Bookmarks"][index].asString();
|
||||||
|
if (bookmark != "")
|
||||||
|
mBookmarkCombo->add(bookmark, ADD_BOTTOM);
|
||||||
|
}
|
||||||
|
|
||||||
mDriveCombo = getChild<LLComboBox>("drive_combo");
|
mDriveCombo = getChild<LLComboBox>("drive_combo");
|
||||||
childSetCommitCallback("drive_combo", onChangeDrives, this);
|
childSetCommitCallback("drive_combo", onChangeDrives, this);
|
||||||
//This is so unbelievably shitty I can't believe it -HgB
|
//This is so unbelievably shitty I can't handle it -HgB
|
||||||
std::string drive_letters[] = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}; //Oh my god it's somehow worse now -HgB
|
std::string drive_letters[] = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}; //Oh my god it's somehow worse now -HgB
|
||||||
S32 index;
|
|
||||||
mDriveCombo->removeall();
|
mDriveCombo->removeall();
|
||||||
for (index = 0; index < 26; index++)
|
for (index = 0; index < 26; index++)
|
||||||
{
|
{
|
||||||
@@ -73,7 +87,7 @@ ASFloaterUploadBrowser::ASFloaterUploadBrowser()
|
|||||||
}
|
}
|
||||||
|
|
||||||
childSetAction("directory_button", onClickFilepathGoto, this);
|
childSetAction("directory_button", onClickFilepathGoto, this);
|
||||||
|
childSetCommitCallback("dir_path", onDirCommit, (void*)this);
|
||||||
//Below File List ------------------------------------------------
|
//Below File List ------------------------------------------------
|
||||||
childSetCommitCallback("file_filter_combo", onUpdateFilter, this);
|
childSetCommitCallback("file_filter_combo", onUpdateFilter, this);
|
||||||
|
|
||||||
@@ -81,8 +95,8 @@ ASFloaterUploadBrowser::ASFloaterUploadBrowser()
|
|||||||
refresh();
|
refresh();
|
||||||
mFileList->sortByColumn(std::string("file_name"), TRUE);
|
mFileList->sortByColumn(std::string("file_name"), TRUE);
|
||||||
mFileList->sortByColumn(std::string("file_type"), TRUE);
|
mFileList->sortByColumn(std::string("file_type"), TRUE);
|
||||||
|
childHide("multiple_uploads_label");
|
||||||
|
childHide("bad_image_text");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Destroys the object
|
// Destroys the object
|
||||||
@@ -91,12 +105,19 @@ ASFloaterUploadBrowser::~ASFloaterUploadBrowser()
|
|||||||
sInstance = NULL;
|
sInstance = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
//static
|
void ASFloaterUploadBrowser::onDirCommit(LLUICtrl* ctrl, void* data)
|
||||||
void ASFloaterUploadBrowser::onClickFilepathGoto(void* data)
|
|
||||||
{
|
{
|
||||||
ASFloaterUploadBrowser* panelp = (ASFloaterUploadBrowser*)data;
|
ASFloaterUploadBrowser* panelp = (ASFloaterUploadBrowser*)data;
|
||||||
std::string new_path = panelp->childGetValue("dir_path");
|
if (panelp)
|
||||||
if (new_path != panelp->mPathName)
|
{
|
||||||
|
panelp->onClickFilepathGoto(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ASFloaterUploadBrowser::updateBrowser(void* data, std::string new_path)
|
||||||
|
{
|
||||||
|
ASFloaterUploadBrowser* panelp = (ASFloaterUploadBrowser*)data;
|
||||||
|
if ((new_path != panelp->mPathName)||(new_path == ""))
|
||||||
{
|
{
|
||||||
panelp->mPathName = new_path;
|
panelp->mPathName = new_path;
|
||||||
panelp->refresh();
|
panelp->refresh();
|
||||||
@@ -105,6 +126,14 @@ void ASFloaterUploadBrowser::onClickFilepathGoto(void* data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//static
|
||||||
|
void ASFloaterUploadBrowser::onClickFilepathGoto(void* data)
|
||||||
|
{
|
||||||
|
ASFloaterUploadBrowser* panelp = (ASFloaterUploadBrowser*)data;
|
||||||
|
std::string new_path = panelp->childGetValue("dir_path");
|
||||||
|
panelp->updateBrowser(data, new_path);
|
||||||
|
}
|
||||||
|
|
||||||
void ASFloaterUploadBrowser::onClickFile(LLUICtrl* ctrl, void* user_data)
|
void ASFloaterUploadBrowser::onClickFile(LLUICtrl* ctrl, void* user_data)
|
||||||
{
|
{
|
||||||
ASFloaterUploadBrowser* panelp = (ASFloaterUploadBrowser*)user_data;
|
ASFloaterUploadBrowser* panelp = (ASFloaterUploadBrowser*)user_data;
|
||||||
@@ -116,10 +145,7 @@ void ASFloaterUploadBrowser::onChangeDrives(LLUICtrl* ctrl, void* user_data)
|
|||||||
ASFloaterUploadBrowser* panelp = (ASFloaterUploadBrowser*)user_data;
|
ASFloaterUploadBrowser* panelp = (ASFloaterUploadBrowser*)user_data;
|
||||||
if (panelp->mDriveCombo->getSelectedValue().asString() != panelp->mFilterType)
|
if (panelp->mDriveCombo->getSelectedValue().asString() != panelp->mFilterType)
|
||||||
{
|
{
|
||||||
panelp->mPathName = panelp->mDriveCombo->getSelectedValue().asString();
|
panelp->updateBrowser(user_data, panelp->mDriveCombo->getSelectedValue().asString());
|
||||||
panelp->refresh();
|
|
||||||
panelp->mFileList->selectFirstItem();
|
|
||||||
panelp->childSetValue("asset_name", "");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,9 +157,7 @@ void ASFloaterUploadBrowser::onUpdateFilter(LLUICtrl* ctrl, void* user_data)
|
|||||||
{
|
{
|
||||||
panelp->mFilterType = "";
|
panelp->mFilterType = "";
|
||||||
panelp->mFilterType = combo->getSelectedValue().asString();
|
panelp->mFilterType = combo->getSelectedValue().asString();
|
||||||
panelp->refresh();
|
panelp->updateBrowser(user_data, "");
|
||||||
panelp->mFileList->selectFirstItem();
|
|
||||||
panelp->childSetValue("asset_name", "");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -148,21 +172,44 @@ void ASFloaterUploadBrowser::refreshUploadOptions()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (mFileList->getFirstSelected()->getColumn(LIST_FILE_TYPE)->getValue().asInteger() == LIST_TYPE_FILE)
|
if (mFileList->getFirstSelected()->getColumn(LIST_ASSET_TYPE)->getValue().asInteger() == LIST_TYPE_FILE)
|
||||||
{
|
{
|
||||||
|
std::string name;
|
||||||
|
bool show_tex = false;
|
||||||
|
bool show_snd = false;
|
||||||
|
bool show_anm = false;
|
||||||
|
bool show_multiple = false;
|
||||||
if (mFileList->getAllSelected().size() > 1)
|
if (mFileList->getAllSelected().size() > 1)
|
||||||
{
|
{
|
||||||
|
|
||||||
llinfos << "Selected multiple files." << llendl;
|
llinfos << "Selected multiple files." << llendl;
|
||||||
childSetValue("asset_name", "(Multiple)");
|
name = "(Multiple)";
|
||||||
childSetLabelArg("upload_button", "[COST]", std::string("$L" + (10 * mFileList->getAllSelected().size())));
|
show_multiple = true;
|
||||||
|
childSetValue("multiple_uploads_label", "Multiple files selected. Total cost is: " + llformat("%d", mFileList->getAllSelected().size() * 10));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
llinfos << "Selected a file." << llendl;
|
int type = mFileList->getFirstSelected()->getColumn(LIST_FILE_TYPE)->getValue().asInteger();
|
||||||
std::string name = mFileList->getFirstSelected()->getColumn(LIST_FILE_NAME)->getValue().asString();
|
llinfos << "Selected a file, type" << type << llendl;
|
||||||
childSetValue("asset_name", name);
|
if (type == FILE_TEXTURE)
|
||||||
childSetLabelArg("upload_button", "[COST]", std::string("$L10"));
|
{
|
||||||
|
show_tex = true;
|
||||||
|
}
|
||||||
|
else if (type == FILE_SOUND)
|
||||||
|
{
|
||||||
|
show_snd = true;
|
||||||
|
}
|
||||||
|
else if (type == FILE_ANIMATION)
|
||||||
|
{
|
||||||
|
show_anm = true;
|
||||||
|
}
|
||||||
|
name = mFileList->getFirstSelected()->getColumn(LIST_FILE_NAME)->getValue().asString();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
childSetVisible("texture_preview_label", (show_tex && !show_multiple));
|
||||||
|
childSetVisible("texture_preview_combo", (show_tex && !show_multiple));
|
||||||
|
childSetVisible("multiple_uploads_label", show_multiple);
|
||||||
|
childSetValue("asset_name", name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -176,14 +223,14 @@ void ASFloaterUploadBrowser::onDoubleClick(void* user_data)
|
|||||||
|
|
||||||
void ASFloaterUploadBrowser::handleDoubleClick()
|
void ASFloaterUploadBrowser::handleDoubleClick()
|
||||||
{
|
{
|
||||||
if (mFileList->getFirstSelected()->getColumn(LIST_FILE_TYPE)->getValue().asInteger() == LIST_TYPE_PARENT)
|
if (mFileList->getFirstSelected()->getColumn(LIST_ASSET_TYPE)->getValue().asInteger() == LIST_TYPE_PARENT)
|
||||||
{
|
{
|
||||||
S32 dirLimiterIndex = mPathName.find_last_of(gDirUtilp->getDirDelimiter());
|
S32 dirLimiterIndex = mPathName.find_last_of(gDirUtilp->getDirDelimiter());
|
||||||
mPathName = mPathName.substr(0, dirLimiterIndex);
|
mPathName = mPathName.substr(0, dirLimiterIndex);
|
||||||
refresh();
|
refresh();
|
||||||
mFileList->selectFirstItem();
|
mFileList->selectFirstItem();
|
||||||
}
|
}
|
||||||
else if (mFileList->getFirstSelected()->getColumn(LIST_FILE_TYPE)->getValue().asInteger() == LIST_TYPE_FOLDER)
|
else if (mFileList->getFirstSelected()->getColumn(LIST_ASSET_TYPE)->getValue().asInteger() == LIST_TYPE_FOLDER)
|
||||||
{
|
{
|
||||||
//Make sure that it's an actual folder so you don't get stuck - Specifically meant for files with no extension. -HgB
|
//Make sure that it's an actual folder so you don't get stuck - Specifically meant for files with no extension. -HgB
|
||||||
std::string new_path = mPathName + gDirUtilp->getDirDelimiter() + mFileList->getFirstSelected()->getColumn(LIST_FILE_NAME)->getValue().asString();
|
std::string new_path = mPathName + gDirUtilp->getDirDelimiter() + mFileList->getFirstSelected()->getColumn(LIST_FILE_NAME)->getValue().asString();
|
||||||
@@ -205,7 +252,8 @@ void ASFloaterUploadBrowser::refresh()
|
|||||||
mFileList->deselectAllItems();
|
mFileList->deselectAllItems();
|
||||||
mFileList->deleteAllItems();
|
mFileList->deleteAllItems();
|
||||||
childSetValue("dir_path", gDirUtilp->getDirName(fullPath));
|
childSetValue("dir_path", gDirUtilp->getDirName(fullPath));
|
||||||
gSavedSettings.setString("AscentUploadFolder", mPathName);
|
mUploaderSettings["ActivePath"] = mPathName;
|
||||||
|
gSavedSettings.setLLSD("AscentUploadSettings", mUploaderSettings);
|
||||||
gDirUtilp->getNextFileInDir(gDirUtilp->getChatLogsDir(),"*", filename, false); //Clears the last file
|
gDirUtilp->getNextFileInDir(gDirUtilp->getChatLogsDir(),"*", filename, false); //Clears the last file
|
||||||
bool found = true;
|
bool found = true;
|
||||||
S32 file_count = 0;
|
S32 file_count = 0;
|
||||||
@@ -229,46 +277,62 @@ void ASFloaterUploadBrowser::refresh()
|
|||||||
filetype_column["column"] = "file_type";
|
filetype_column["column"] = "file_type";
|
||||||
filetype_column["type"] = "number";
|
filetype_column["type"] = "number";
|
||||||
|
|
||||||
|
LLSD& assettype_column = element["columns"][LIST_ASSET_TYPE];
|
||||||
|
assettype_column["column"] = "asset_type";
|
||||||
|
assettype_column["type"] = "number";
|
||||||
|
|
||||||
LLSD& invtype_column = element["columns"][LIST_INVENTORY_TYPE];
|
LLSD& invtype_column = element["columns"][LIST_INVENTORY_TYPE];
|
||||||
invtype_column["column"] = "icon_inventory_type";
|
invtype_column["column"] = "icon_inventory_type";
|
||||||
invtype_column["type"] = "icon";
|
invtype_column["type"] = "icon";
|
||||||
invtype_column["value"] = "inv_folder_trash.tga";
|
invtype_column["value"] = "inv_folder_trash.tga";
|
||||||
|
|
||||||
|
|
||||||
if (((extensionL == "jpeg")||(extensionL == "jpg")||(extensionL == "tga")
|
if (((extensionL == "jpeg")||(extensionL == "jpg")||(extensionL == "tga")
|
||||||
||(extensionL == "png")||(extensionL == "bmp"))&&((mFilterType == "None")||(mFilterType == "Texture")))
|
||(extensionL == "png")||(extensionL == "bmp"))&&((mFilterType == "None")||(mFilterType == "Texture")))
|
||||||
{
|
{
|
||||||
invtype_column["value"] = "inv_item_texture.tga";
|
invtype_column["value"] = "inv_item_texture.tga";
|
||||||
filename_column["value"] = filename.substr(0, periodIndex);
|
filename_column["value"] = filename.substr(0, periodIndex);
|
||||||
filetype_column["value"] = LIST_TYPE_FILE;
|
filetype_column["value"] = FILE_TEXTURE;
|
||||||
|
assettype_column["value"] = LIST_TYPE_FILE;
|
||||||
|
|
||||||
}
|
}
|
||||||
else if ((extensionL == "wav")&&((mFilterType == "None")||(mFilterType == "Sound")))
|
else if ((extensionL == "wav")&&((mFilterType == "None")||(mFilterType == "Sound")))
|
||||||
{
|
{
|
||||||
invtype_column["value"] = "inv_item_sound.tga";
|
invtype_column["value"] = "inv_item_sound.tga";
|
||||||
filename_column["value"] = filename.substr(0, periodIndex);
|
filename_column["value"] = filename.substr(0, periodIndex);
|
||||||
filetype_column["value"] = LIST_TYPE_FILE;
|
filetype_column["value"] = FILE_SOUND;
|
||||||
|
assettype_column["value"] = LIST_TYPE_FILE;
|
||||||
}
|
}
|
||||||
else if (((extensionL == "bvh")||(extensionL == "anim"))&&((mFilterType == "None")||(mFilterType == "Animation")))
|
else if (((extensionL == "bvh")||(extensionL == "anim"))&&((mFilterType == "None")||(mFilterType == "Animation")))
|
||||||
{
|
{
|
||||||
invtype_column["value"] = "inv_item_animation.tga";
|
invtype_column["value"] = "inv_item_animation.tga";
|
||||||
filename_column["value"] = filename.substr(0, periodIndex);
|
filename_column["value"] = filename.substr(0, periodIndex);
|
||||||
filetype_column["value"] = LIST_TYPE_FILE;
|
filetype_column["value"] = FILE_ANIMATION;
|
||||||
|
assettype_column["value"] = LIST_TYPE_FILE;
|
||||||
}
|
}
|
||||||
else if ((extension == filename.substr(0, filename.length() - 1))&&(filename != "."))
|
else if ((extension == filename.substr(0, filename.length() - 1))&&(filename != "."))
|
||||||
{
|
{
|
||||||
invtype_column["value"] = "inv_folder_plain_closed.tga";
|
std::string test_path = mPathName + gDirUtilp->getDirDelimiter() + filename + gDirUtilp->getDirDelimiter();
|
||||||
filename_column["value"] = filename;
|
S32 file_count = gDirUtilp->countFilesInDir(test_path, "*.*");
|
||||||
filetype_column["value"] = LIST_TYPE_FOLDER;
|
if(file_count)
|
||||||
|
{
|
||||||
|
invtype_column["value"] = "inv_folder_plain_closed.tga";
|
||||||
|
filename_column["value"] = filename;
|
||||||
|
filetype_column["value"] = FOLDER;
|
||||||
|
assettype_column["value"] = LIST_TYPE_FOLDER;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (filename == "..")
|
else if (filename == "..")
|
||||||
{
|
{
|
||||||
invtype_column["value"] = "inv_folder_plain_open.tga";
|
invtype_column["value"] = "inv_folder_plain_open.tga";
|
||||||
filename_column["value"] = filename;
|
filename_column["value"] = filename;
|
||||||
filetype_column["value"] = LIST_TYPE_PARENT;
|
filetype_column["value"] = FOLDER;
|
||||||
|
assettype_column["value"] = LIST_TYPE_PARENT;
|
||||||
}
|
}
|
||||||
if (invtype_column["value"].asString() != "inv_folder_trash.tga")
|
if (invtype_column["value"].asString() != "inv_folder_trash.tga")
|
||||||
{
|
{
|
||||||
mFileList->addElement(element, ADD_BOTTOM);
|
mFileList->addElement(element, ADD_BOTTOM);
|
||||||
if (filetype_column["value"].asInteger() == LIST_TYPE_FILE)
|
if (assettype_column["value"].asInteger() == LIST_TYPE_FILE)
|
||||||
{
|
{
|
||||||
file_count++;
|
file_count++;
|
||||||
}
|
}
|
||||||
@@ -278,6 +342,8 @@ void ASFloaterUploadBrowser::refresh()
|
|||||||
|
|
||||||
std::string result;
|
std::string result;
|
||||||
LLResMgr::getInstance()->getIntegerString(result, file_count);
|
LLResMgr::getInstance()->getIntegerString(result, file_count);
|
||||||
|
if (result == "")
|
||||||
|
result = "0";
|
||||||
childSetTextArg("result_label", "[COUNT]", result);
|
childSetTextArg("result_label", "[COUNT]", result);
|
||||||
|
|
||||||
mFileList->sortItems();
|
mFileList->sortItems();
|
||||||
|
|||||||
@@ -28,10 +28,11 @@ public:
|
|||||||
static void onClickFile(LLUICtrl* ctrl, void* user_data);
|
static void onClickFile(LLUICtrl* ctrl, void* user_data);
|
||||||
static void onUpdateFilter(LLUICtrl* ctrl, void* user_data);
|
static void onUpdateFilter(LLUICtrl* ctrl, void* user_data);
|
||||||
static void onDoubleClick(void* user_data);
|
static void onDoubleClick(void* user_data);
|
||||||
|
static void onDirCommit (LLUICtrl* ctrl, void* data);
|
||||||
static void onChangeDrives(LLUICtrl* ctrl, void* user_data);
|
static void onChangeDrives(LLUICtrl* ctrl, void* user_data);
|
||||||
static void onClickFilepathGoto(void* data);
|
static void onClickFilepathGoto(void* data);
|
||||||
|
|
||||||
|
void updateBrowser(void* data, std::string new_path);
|
||||||
void refresh();
|
void refresh();
|
||||||
void refreshUploadOptions();
|
void refreshUploadOptions();
|
||||||
void handleDoubleClick();
|
void handleDoubleClick();
|
||||||
@@ -40,10 +41,12 @@ public:
|
|||||||
std::vector<LLSD> datas;
|
std::vector<LLSD> datas;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
static LLSD mUploaderSettings;
|
||||||
static ASFloaterUploadBrowser* sInstance;
|
static ASFloaterUploadBrowser* sInstance;
|
||||||
enum FILE_COLUMN_ORDER
|
enum FILE_COLUMN_ORDER
|
||||||
{
|
{
|
||||||
LIST_FILE_TYPE,
|
LIST_FILE_TYPE,
|
||||||
|
LIST_ASSET_TYPE,
|
||||||
LIST_INVENTORY_TYPE,
|
LIST_INVENTORY_TYPE,
|
||||||
LIST_FILE_NAME,
|
LIST_FILE_NAME,
|
||||||
LIST_DATA
|
LIST_DATA
|
||||||
@@ -54,6 +57,13 @@ private:
|
|||||||
LIST_TYPE_FOLDER,
|
LIST_TYPE_FOLDER,
|
||||||
LIST_TYPE_FILE
|
LIST_TYPE_FILE
|
||||||
};
|
};
|
||||||
|
enum FILE_TYPE
|
||||||
|
{
|
||||||
|
FOLDER,
|
||||||
|
FILE_TEXTURE,
|
||||||
|
FILE_SOUND,
|
||||||
|
FILE_ANIMATION
|
||||||
|
};
|
||||||
LLScrollListCtrl* mFileList;
|
LLScrollListCtrl* mFileList;
|
||||||
LLComboBox* mDriveCombo;
|
LLComboBox* mDriveCombo;
|
||||||
LLComboBox* mBookmarkCombo;
|
LLComboBox* mBookmarkCombo;
|
||||||
|
|||||||
@@ -164,15 +164,15 @@ Matrox .*Matrox.* 0 0
|
|||||||
Mesa .*Mesa.* 0 0
|
Mesa .*Mesa.* 0 0
|
||||||
NVIDIA GT 120 .*NVIDIA.*GeForce.*GT.*12.* 2 1
|
NVIDIA GT 120 .*NVIDIA.*GeForce.*GT.*12.* 2 1
|
||||||
NVIDIA GT 130 .*NVIDIA.*GeForce.*GT.*13.* 3 1
|
NVIDIA GT 130 .*NVIDIA.*GeForce.*GT.*13.* 3 1
|
||||||
NVIDIA GT 220 .*NVIDIA.*GeForce.*GT.*22.* 3 1
|
NVIDIA GT 220 .*NVIDIA.*GeForce.*GT.*22.* 3 1
|
||||||
NVIDIA GTS 250 .*NVIDIA.*GeForce.*GTS.*25.* 3 1
|
NVIDIA GTS 250 .*NVIDIA.*GeForce.*GTS.*25.* 3 1
|
||||||
NVIDIA GTX 260 .*NVIDIA.*GeForce.*GTX.*26.* 3 1
|
NVIDIA GTX 260 .*NVIDIA.*GeForce.*GTX.*26.* 3 1
|
||||||
NVIDIA GTX 270 .*NVIDIA.*GeForce.*GTX.*27.* 3 1
|
NVIDIA GTX 270 .*NVIDIA.*GeForce.*GTX.*27.* 3 1
|
||||||
NVIDIA GTX 280 .*NVIDIA.*GeForce.*GTX.*28.* 3 1
|
NVIDIA GTX 280 .*NVIDIA.*GeForce.*GTX.*28.* 3 1
|
||||||
NVIDIA GTX 290 .*NVIDIA.*GeForce.*GTX.*29.* 3 1
|
NVIDIA GTX 290 .*NVIDIA.*GeForce.*GTX.*29.* 3 1
|
||||||
NVIDIA GTX 460 .*NVIDIA.*GeForce.*GTX.*46.* 3 1
|
NVIDIA GTX 460 .*NVIDIA.*GeForce.*GTX.*46.* 3 1
|
||||||
NVIDIA GTX 470 .*NVIDIA.*GeForce.*GTX.*47.* 3 1
|
NVIDIA GTX 470 .*NVIDIA.*GeForce.*GTX.*47.* 3 1
|
||||||
NVIDIA GTX 480 .*NVIDIA.*GeForce.*GTX.*48.* 3 1
|
NVIDIA GTX 480 .*NVIDIA.*GeForce.*GTX.*48.* 3 1
|
||||||
NVIDIA C51 .*NVIDIA.*C51.* 0 1
|
NVIDIA C51 .*NVIDIA.*C51.* 0 1
|
||||||
NVIDIA G72 .*NVIDIA.*G72.* 1 1
|
NVIDIA G72 .*NVIDIA.*G72.* 1 1
|
||||||
NVIDIA G73 .*NVIDIA.*G73.* 1 1
|
NVIDIA G73 .*NVIDIA.*G73.* 1 1
|
||||||
|
|||||||
@@ -347,7 +347,7 @@ LLAppViewer::LLUpdaterInfo *LLAppViewer::sUpdaterInfo = NULL ;
|
|||||||
void idle_afk_check()
|
void idle_afk_check()
|
||||||
{
|
{
|
||||||
// check idle timers
|
// check idle timers
|
||||||
if (gAllowIdleAFK && (gAwayTriggerTimer.getElapsedTimeF32() > gSavedSettings.getF32("AFKTimeout")))
|
if (gAllowIdleAFK && (gAwayTriggerTimer.getElapsedTimeF32() > gSavedSettings.getF32("AFKTimeout")) && (gSavedSettings.getF32("AFKTimeout") > 0))
|
||||||
{
|
{
|
||||||
gAgent.setAFK();
|
gAgent.setAFK();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -732,8 +732,26 @@ std::string LLAppViewerLinux::generateSerialNumber()
|
|||||||
{
|
{
|
||||||
char serial_md5[MD5HEX_STR_SIZE];
|
char serial_md5[MD5HEX_STR_SIZE];
|
||||||
serial_md5[0] = 0;
|
serial_md5[0] = 0;
|
||||||
|
std::string best;
|
||||||
|
std::string uuiddir("/dev/disk/by-uuid/");
|
||||||
|
|
||||||
// TODO
|
// trawl /dev/disk/by-uuid looking for a good-looking UUID to grab
|
||||||
|
std::string this_name;
|
||||||
|
BOOL wrap = FALSE;
|
||||||
|
while (gDirUtilp->getNextFileInDir(uuiddir, "*", this_name, wrap))
|
||||||
|
{
|
||||||
|
if (this_name.length() > best.length() ||
|
||||||
|
(this_name.length() == best.length() &&
|
||||||
|
this_name > best))
|
||||||
|
{
|
||||||
|
// longest (and secondarily alphabetically last) so far
|
||||||
|
best = this_name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// we don't return the actual serial number, just a hash of it.
|
||||||
|
LLMD5 md5( reinterpret_cast<const unsigned char*>(best.c_str()) );
|
||||||
|
md5.hex_digest(serial_md5);
|
||||||
|
|
||||||
return serial_md5;
|
return serial_md5;
|
||||||
}
|
}
|
||||||
@@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
#include "llagent.h"
|
#include "llagent.h"
|
||||||
#include "llcombobox.h"
|
#include "llcombobox.h"
|
||||||
#include "llnotify.h"
|
#include "llnotify.h"
|
||||||
#include "llviewerimagelist.h"
|
#include "llviewerimagelist.h"
|
||||||
#include "llviewerparcelmgr.h"
|
#include "llviewerparcelmgr.h"
|
||||||
#include "llviewerregion.h"
|
#include "llviewerregion.h"
|
||||||
|
|||||||
@@ -37,6 +37,7 @@
|
|||||||
#include "pipeline.h"
|
#include "pipeline.h"
|
||||||
#include "llsky.h"
|
#include "llsky.h"
|
||||||
|
|
||||||
|
#include "llboost.h"
|
||||||
#include "llsliderctrl.h"
|
#include "llsliderctrl.h"
|
||||||
#include "llmultislider.h"
|
#include "llmultislider.h"
|
||||||
#include "llmultisliderctrl.h"
|
#include "llmultisliderctrl.h"
|
||||||
@@ -54,12 +55,16 @@
|
|||||||
#include "llviewerwindow.h"
|
#include "llviewerwindow.h"
|
||||||
|
|
||||||
#include "llwlparamset.h"
|
#include "llwlparamset.h"
|
||||||
|
#include "llwldaycycle.h"
|
||||||
#include "llwlparammanager.h"
|
#include "llwlparammanager.h"
|
||||||
|
#include "ascentdaycyclemanager.h" //Ascent Addition
|
||||||
#include "llpostprocess.h"
|
#include "llpostprocess.h"
|
||||||
#include "llfloaterwindlight.h"
|
#include "llfloaterwindlight.h"
|
||||||
|
|
||||||
|
|
||||||
LLFloaterDayCycle* LLFloaterDayCycle::sDayCycle = NULL;
|
LLFloaterDayCycle* LLFloaterDayCycle::sDayCycle = NULL;
|
||||||
|
|
||||||
|
std::set<std::string> LLFloaterDayCycle::sDefaultPresets;
|
||||||
std::map<std::string, LLWLSkyKey> LLFloaterDayCycle::sSliderToKey;
|
std::map<std::string, LLWLSkyKey> LLFloaterDayCycle::sSliderToKey;
|
||||||
const F32 LLFloaterDayCycle::sHoursPerDay = 24.0f;
|
const F32 LLFloaterDayCycle::sHoursPerDay = 24.0f;
|
||||||
|
|
||||||
@@ -88,6 +93,37 @@ LLFloaterDayCycle::LLFloaterDayCycle() : LLFloater(std::string("Day Cycle Floate
|
|||||||
|
|
||||||
sldr->addSlider();
|
sldr->addSlider();
|
||||||
|
|
||||||
|
// add the combo boxes
|
||||||
|
LLComboBox* comboBox = getChild<LLComboBox>("DayCyclePresetsCombo");
|
||||||
|
|
||||||
|
if(comboBox != NULL) {
|
||||||
|
|
||||||
|
std::map<std::string, LLWLDayCycle>::iterator mIt =
|
||||||
|
AscentDayCycleManager::instance()->mParamList.begin();
|
||||||
|
for(; mIt != AscentDayCycleManager::instance()->mParamList.end(); mIt++)
|
||||||
|
{
|
||||||
|
comboBox->add(mIt->first);
|
||||||
|
}
|
||||||
|
|
||||||
|
// entry for when we're in estate time
|
||||||
|
comboBox->add(LLStringUtil::null);
|
||||||
|
|
||||||
|
// set defaults on combo boxes
|
||||||
|
comboBox->selectByValue(LLSD("Default"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// add the list of presets
|
||||||
|
std::string def_days = getString("DaycycleDefaultNames");
|
||||||
|
|
||||||
|
// no editing or deleting of the blank string
|
||||||
|
sDefaultPresets.insert("");
|
||||||
|
boost_tokenizer tokens(def_days, boost::char_separator<char>(":"));
|
||||||
|
for (boost_tokenizer::iterator token_iter = tokens.begin(); token_iter != tokens.end(); ++token_iter)
|
||||||
|
{
|
||||||
|
std::string tok(*token_iter);
|
||||||
|
//sDefaultPresets.insert(tok);
|
||||||
|
}
|
||||||
|
|
||||||
// load it up
|
// load it up
|
||||||
initCallbacks();
|
initCallbacks();
|
||||||
}
|
}
|
||||||
@@ -130,6 +166,15 @@ void LLFloaterDayCycle::initCallbacks(void)
|
|||||||
childSetAction("WLLoadDayCycle", onLoadDayCycle, NULL);
|
childSetAction("WLLoadDayCycle", onLoadDayCycle, NULL);
|
||||||
childSetAction("WLSaveDayCycle", onSaveDayCycle, NULL);
|
childSetAction("WLSaveDayCycle", onSaveDayCycle, NULL);
|
||||||
|
|
||||||
|
LLComboBox* comboBox = getChild<LLComboBox>("DayCyclePresetsCombo");
|
||||||
|
|
||||||
|
//childSetAction("WLLoadPreset", onLoadPreset, comboBox);
|
||||||
|
childSetAction("DayCycleNewPreset", onNewPreset, comboBox);
|
||||||
|
childSetAction("DayCycleSavePreset", onSavePreset, comboBox);
|
||||||
|
childSetAction("DayCycleDeletePreset", onDeletePreset, comboBox);
|
||||||
|
|
||||||
|
comboBox->setCommitCallback(onChangePresetName);
|
||||||
|
|
||||||
childSetAction("WLAddKey", onAddKey, NULL);
|
childSetAction("WLAddKey", onAddKey, NULL);
|
||||||
childSetAction("WLDeleteKey", onDeleteKey, NULL);
|
childSetAction("WLDeleteKey", onDeleteKey, NULL);
|
||||||
}
|
}
|
||||||
@@ -268,6 +313,216 @@ void LLFloaterDayCycle::onClose(bool app_quitting)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LLFloaterDayCycle::onNewPreset(void* userData)
|
||||||
|
{
|
||||||
|
LLNotifications::instance().add("NewDaycyclePreset", LLSD(), LLSD(), newPromptCallback);
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLFloaterDayCycle::onSavePreset(void* userData)
|
||||||
|
{
|
||||||
|
// get the name
|
||||||
|
LLComboBox* comboBox = sDayCycle->getChild<LLComboBox>(
|
||||||
|
"DayCyclePresetsCombo");
|
||||||
|
|
||||||
|
// don't save the empty name
|
||||||
|
if(comboBox->getSelectedItemLabel() == "")
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// check to see if it's a default and shouldn't be overwritten
|
||||||
|
std::set<std::string>::iterator sIt = sDefaultPresets.find(
|
||||||
|
comboBox->getSelectedItemLabel());
|
||||||
|
if(sIt != sDefaultPresets.end() && !gSavedSettings.getBOOL("SkyEditPresets"))
|
||||||
|
{
|
||||||
|
LLNotifications::instance().add("WLNoEditDefault");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
LLWLParamManager::instance()->mCurParams.mName =
|
||||||
|
comboBox->getSelectedItemLabel();
|
||||||
|
|
||||||
|
LLNotifications::instance().add("WLSavePresetAlert", LLSD(), LLSD(), saveAlertCallback);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool LLFloaterDayCycle::saveAlertCallback(const LLSD& notification, const LLSD& response)
|
||||||
|
{
|
||||||
|
S32 option = LLNotification::getSelectedOption(notification, response);
|
||||||
|
// if they choose save, do it. Otherwise, don't do anything
|
||||||
|
if(option == 0)
|
||||||
|
{
|
||||||
|
LLComboBox* combo_box = sDayCycle->getChild<LLComboBox>("DayCyclePresetsCombo");
|
||||||
|
// comment this back in to save to file
|
||||||
|
LLWLParamManager::instance()->mDay.saveDayCycle(combo_box->getSelectedValue().asString());
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLFloaterDayCycle::onDeletePreset(void* userData)
|
||||||
|
{
|
||||||
|
LLComboBox* combo_box = sDayCycle->getChild<LLComboBox>(
|
||||||
|
"DayCyclePresetsCombo");
|
||||||
|
|
||||||
|
if(combo_box->getSelectedValue().asString() == "")
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
LLSD args;
|
||||||
|
args["SKY"] = combo_box->getSelectedValue().asString();
|
||||||
|
LLNotifications::instance().add("WLDeletePresetAlert", args, LLSD(),
|
||||||
|
boost::bind(&LLFloaterDayCycle::deleteAlertCallback, sDayCycle, _1, _2));
|
||||||
|
}
|
||||||
|
|
||||||
|
bool LLFloaterDayCycle::deleteAlertCallback(const LLSD& notification, const LLSD& response)
|
||||||
|
{
|
||||||
|
S32 option = LLNotification::getSelectedOption(notification, response);
|
||||||
|
|
||||||
|
// if they choose delete, do it. Otherwise, don't do anything
|
||||||
|
if(option == 0)
|
||||||
|
{
|
||||||
|
LLComboBox* combo_box = getChild<LLComboBox>(
|
||||||
|
"DayCyclePresetsCombo");
|
||||||
|
LLFloaterDayCycle* day_cycle = NULL;
|
||||||
|
LLComboBox* key_combo = NULL;
|
||||||
|
LLMultiSliderCtrl* mult_sldr = NULL;
|
||||||
|
|
||||||
|
if(LLFloaterDayCycle::isOpen())
|
||||||
|
{
|
||||||
|
day_cycle = LLFloaterDayCycle::instance();
|
||||||
|
key_combo = day_cycle->getChild<LLComboBox>(
|
||||||
|
"WLKeyPresets");
|
||||||
|
mult_sldr = day_cycle->getChild<LLMultiSliderCtrl>("WLDayCycleKeys");
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string name(combo_box->getSelectedValue().asString());
|
||||||
|
|
||||||
|
// check to see if it's a default and shouldn't be deleted
|
||||||
|
std::set<std::string>::iterator sIt = sDefaultPresets.find(name);
|
||||||
|
if(sIt != sDefaultPresets.end())
|
||||||
|
{
|
||||||
|
LLNotifications::instance().add("WLNoEditDefault");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
AscentDayCycleManager::instance()->removeParamSet(name, true);
|
||||||
|
|
||||||
|
// remove and choose another
|
||||||
|
S32 new_index = combo_box->getCurrentIndex();
|
||||||
|
|
||||||
|
combo_box->remove(name);
|
||||||
|
if(key_combo != NULL)
|
||||||
|
{
|
||||||
|
key_combo->remove(name);
|
||||||
|
|
||||||
|
// remove from slider, as well
|
||||||
|
day_cycle->deletePreset(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
// pick the previously selected index after delete
|
||||||
|
if(new_index > 0)
|
||||||
|
{
|
||||||
|
new_index--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(combo_box->getItemCount() > 0)
|
||||||
|
{
|
||||||
|
combo_box->setCurrentByIndex(new_index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool LLFloaterDayCycle::newPromptCallback(const LLSD& notification, const LLSD& response)
|
||||||
|
{
|
||||||
|
std::string text = response["message"].asString();
|
||||||
|
S32 option = LLNotification::getSelectedOption(notification, response);
|
||||||
|
|
||||||
|
if(text == "")
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(option == 0) {
|
||||||
|
LLComboBox* comboBox = sDayCycle->getChild<LLComboBox>(
|
||||||
|
"DayCyclePresetsCombo");
|
||||||
|
|
||||||
|
LLFloaterDayCycle* sDayCycle = NULL;
|
||||||
|
LLComboBox* keyCombo = NULL;
|
||||||
|
if(LLFloaterDayCycle::isOpen())
|
||||||
|
{
|
||||||
|
sDayCycle = LLFloaterDayCycle::instance();
|
||||||
|
keyCombo = sDayCycle->getChild<LLComboBox>(
|
||||||
|
"WLKeyPresets");
|
||||||
|
}
|
||||||
|
|
||||||
|
// add the current parameters to the list
|
||||||
|
// see if it's there first
|
||||||
|
std::map<std::string, LLWLDayCycle>::iterator mIt =
|
||||||
|
AscentDayCycleManager::instance()->mParamList.find(text);
|
||||||
|
|
||||||
|
// if not there, add a new one
|
||||||
|
if(mIt == AscentDayCycleManager::instance()->mParamList.end())
|
||||||
|
{
|
||||||
|
AscentDayCycleManager::instance()->addParamSet(text,
|
||||||
|
AscentDayCycleManager::instance()->mCurParams);
|
||||||
|
comboBox->add(text);
|
||||||
|
comboBox->sortByName();
|
||||||
|
|
||||||
|
// add a blank to the bottom
|
||||||
|
comboBox->selectFirstItem();
|
||||||
|
if(comboBox->getSimple() == "")
|
||||||
|
{
|
||||||
|
comboBox->remove(0);
|
||||||
|
}
|
||||||
|
comboBox->add(LLStringUtil::null);
|
||||||
|
|
||||||
|
comboBox->setSelectedByValue(text, true);
|
||||||
|
if(LLFloaterDayCycle::isOpen())
|
||||||
|
{
|
||||||
|
keyCombo->add(text);
|
||||||
|
keyCombo->sortByName();
|
||||||
|
}
|
||||||
|
LLWLParamManager::instance()->mDay.saveDayCycle(text);
|
||||||
|
|
||||||
|
// otherwise, send a message to the user
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LLNotifications::instance().add("ExistsSkyPresetAlert");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLFloaterDayCycle::onChangePresetName(LLUICtrl* ctrl, void * userData)
|
||||||
|
{
|
||||||
|
|
||||||
|
LLComboBox * combo_box = static_cast<LLComboBox*>(ctrl);
|
||||||
|
|
||||||
|
if(combo_box->getSimple() == "")
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
LLWLParamManager::instance()->mDay.loadDayCycle(combo_box->getSelectedValue().asString());
|
||||||
|
gSavedSettings.setString("AscentActiveDayCycle", combo_box->getSelectedValue().asString());
|
||||||
|
// sync it all up
|
||||||
|
syncSliderTrack();
|
||||||
|
syncMenu();
|
||||||
|
|
||||||
|
// set the param manager's track to the new one
|
||||||
|
LLMultiSliderCtrl* tSldr;
|
||||||
|
tSldr = sDayCycle->getChild<LLMultiSliderCtrl>(
|
||||||
|
"WLTimeSlider");
|
||||||
|
LLWLParamManager::instance()->resetAnimator(
|
||||||
|
tSldr->getCurSliderValue() / sHoursPerDay, false);
|
||||||
|
|
||||||
|
// and draw it
|
||||||
|
LLWLParamManager::instance()->mAnimator.update(
|
||||||
|
LLWLParamManager::instance()->mCurParams);
|
||||||
|
}
|
||||||
|
|
||||||
void LLFloaterDayCycle::onRunAnimSky(void* userData)
|
void LLFloaterDayCycle::onRunAnimSky(void* userData)
|
||||||
{
|
{
|
||||||
// if no keys, do nothing
|
// if no keys, do nothing
|
||||||
@@ -307,8 +562,8 @@ void LLFloaterDayCycle::onStopAnimSky(void* userData)
|
|||||||
|
|
||||||
void LLFloaterDayCycle::onUseLindenTime(void* userData)
|
void LLFloaterDayCycle::onUseLindenTime(void* userData)
|
||||||
{
|
{
|
||||||
LLFloaterWindLight* wl = LLFloaterWindLight::instance();
|
LLFloaterDayCycle* dc = LLFloaterDayCycle::instance();
|
||||||
LLComboBox* box = wl->getChild<LLComboBox>("WLPresetsCombo");
|
LLComboBox* box = dc->getChild<LLComboBox>("DayCyclePresetsCombo");
|
||||||
box->selectByValue("");
|
box->selectByValue("");
|
||||||
|
|
||||||
LLWLParamManager::instance()->mAnimator.mIsRunning = true;
|
LLWLParamManager::instance()->mAnimator.mIsRunning = true;
|
||||||
@@ -317,7 +572,7 @@ void LLFloaterDayCycle::onUseLindenTime(void* userData)
|
|||||||
|
|
||||||
void LLFloaterDayCycle::onLoadDayCycle(void* userData)
|
void LLFloaterDayCycle::onLoadDayCycle(void* userData)
|
||||||
{
|
{
|
||||||
LLWLParamManager::instance()->mDay.loadDayCycle("Default.xml");
|
//LLWLParamManager::instance()->mDay.loadDayCycle("Default.xml");
|
||||||
|
|
||||||
// sync it all up
|
// sync it all up
|
||||||
syncSliderTrack();
|
syncSliderTrack();
|
||||||
@@ -337,7 +592,7 @@ void LLFloaterDayCycle::onLoadDayCycle(void* userData)
|
|||||||
|
|
||||||
void LLFloaterDayCycle::onSaveDayCycle(void* userData)
|
void LLFloaterDayCycle::onSaveDayCycle(void* userData)
|
||||||
{
|
{
|
||||||
LLWLParamManager::instance()->mDay.saveDayCycle("Default.xml");
|
//LLWLParamManager::instance()->mDay.saveDayCycle("Default.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -99,10 +99,30 @@ public:
|
|||||||
/// delete a key frame
|
/// delete a key frame
|
||||||
static void onDeleteKey(void* userData);
|
static void onDeleteKey(void* userData);
|
||||||
|
|
||||||
/// button to load day
|
/// when user hits the load preset button
|
||||||
|
static void onNewPreset(void* userData);
|
||||||
|
|
||||||
|
/// when user hits the save preset button
|
||||||
|
static void onSavePreset(void* userData);
|
||||||
|
|
||||||
|
/// prompts a user when overwriting a preset
|
||||||
|
static bool saveAlertCallback(const LLSD& notification, const LLSD& response);
|
||||||
|
|
||||||
|
/// when user hits the save preset button
|
||||||
|
static void onDeletePreset(void* userData);
|
||||||
|
|
||||||
|
/// prompts a user when overwriting a preset
|
||||||
|
bool deleteAlertCallback(const LLSD& notification, const LLSD& response);
|
||||||
|
|
||||||
|
static bool newPromptCallback(const LLSD& notification, const LLSD& response);
|
||||||
|
|
||||||
|
/// what to do when you change the preset name
|
||||||
|
static void onChangePresetName(LLUICtrl* ctrl, void* userData);
|
||||||
|
|
||||||
|
/// button to load day OLD -HgB
|
||||||
static void onLoadDayCycle(void* userData);
|
static void onLoadDayCycle(void* userData);
|
||||||
|
|
||||||
/// button to save day
|
/// button to save day OLD -HgB
|
||||||
static void onSaveDayCycle(void* userData);
|
static void onSaveDayCycle(void* userData);
|
||||||
|
|
||||||
/// toggle for Linden time
|
/// toggle for Linden time
|
||||||
@@ -140,6 +160,9 @@ private:
|
|||||||
// map of sliders to parameters
|
// map of sliders to parameters
|
||||||
static std::map<std::string, LLWLSkyKey> sSliderToKey;
|
static std::map<std::string, LLWLSkyKey> sSliderToKey;
|
||||||
|
|
||||||
|
//Presets default
|
||||||
|
static std::set<std::string> sDefaultPresets;
|
||||||
|
|
||||||
static const F32 sHoursPerDay;
|
static const F32 sHoursPerDay;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -241,12 +241,11 @@ void LLPanelFriends::populateContactGroupSelect()
|
|||||||
|
|
||||||
void LLPanelFriends::setContactGroup(std::string contact_grp)
|
void LLPanelFriends::setContactGroup(std::string contact_grp)
|
||||||
{
|
{
|
||||||
if (contact_grp != "All")
|
LLChat msg("Group set to " + contact_grp);
|
||||||
{
|
LLFloaterChat::addChat(msg);
|
||||||
filterContacts();
|
refreshNames(LLFriendObserver::ADD);
|
||||||
categorizeContacts();
|
refreshUI();
|
||||||
}
|
categorizeContacts();
|
||||||
else refreshNames(LLFriendObserver::ADD);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLPanelFriends::categorizeContacts()
|
void LLPanelFriends::categorizeContacts()
|
||||||
@@ -264,17 +263,45 @@ void LLPanelFriends::categorizeContacts()
|
|||||||
std::vector<LLScrollListItem*> vFriends = mFriendsList->getAllData(); // all of it.
|
std::vector<LLScrollListItem*> vFriends = mFriendsList->getAllData(); // all of it.
|
||||||
for (std::vector<LLScrollListItem*>::iterator itr = vFriends.begin(); itr != vFriends.end(); ++itr)
|
for (std::vector<LLScrollListItem*>::iterator itr = vFriends.begin(); itr != vFriends.end(); ++itr)
|
||||||
{
|
{
|
||||||
BOOL show_entry = (contact_groups[group_name][(*itr)->getUUID().asString()].size() != 0);
|
BOOL show_entry = false;//contact_groups[group_name].has((*itr)->getUUID().asString());
|
||||||
|
|
||||||
|
S32 count = contact_groups[group_name].size();
|
||||||
|
int i;
|
||||||
|
for(i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
if (contact_groups[group_name][i].asString() == (*itr)->getUUID().asString())
|
||||||
|
{
|
||||||
|
show_entry = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!show_entry)
|
if (!show_entry)
|
||||||
{
|
{
|
||||||
|
LLChat msg("False: contact_groups['" + group_name + "'].has('" + (*itr)->getUUID().asString() + "');");
|
||||||
|
LLFloaterChat::addChat(msg);
|
||||||
mFriendsList->deleteItems((*itr)->getValue());
|
mFriendsList->deleteItems((*itr)->getValue());
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LLChat msg("True: contact_groups['" + group_name + "'].has('" + (*itr)->getUUID().asString() + "');");
|
||||||
|
LLFloaterChat::addChat(msg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LLChat msg("Group set to all.");
|
||||||
|
LLFloaterChat::addChat(msg);
|
||||||
|
}
|
||||||
|
|
||||||
refreshUI();
|
refreshUI();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LLChat msg("Null combo.");
|
||||||
|
LLFloaterChat::addChat(msg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLPanelFriends::filterContacts()
|
void LLPanelFriends::filterContacts()
|
||||||
@@ -325,10 +352,7 @@ void LLPanelFriends::onChangeContactGroup(LLUICtrl* ctrl, void* user_data)
|
|||||||
if(panelp)
|
if(panelp)
|
||||||
{
|
{
|
||||||
LLComboBox* combo = panelp->getChild<LLComboBox>("buddy_group_combobox");
|
LLComboBox* combo = panelp->getChild<LLComboBox>("buddy_group_combobox");
|
||||||
if (combo->getValue().asString() != "All")
|
panelp->setContactGroup(combo->getValue().asString());
|
||||||
{
|
|
||||||
panelp->setContactGroup(combo->getValue().asString());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// --
|
// --
|
||||||
|
|||||||
@@ -2050,6 +2050,18 @@ void LLFloaterIMPanel::sendMsg()
|
|||||||
utf8text.insert(0,"[[");
|
utf8text.insert(0,"[[");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Convert MU*s style poses into IRC emotes here.
|
||||||
|
if (gSavedSettings.getBOOL("AscentAllowMUpose") && utf8text.find(":") == 0 && utf8text.length() > 3)
|
||||||
|
{
|
||||||
|
if (utf8text.find(":'") == 0)
|
||||||
|
{
|
||||||
|
utf8text.replace(0, 1, "/me");
|
||||||
|
}
|
||||||
|
else if (isalpha(utf8text.at(1))) // Do not prevent smileys and such.
|
||||||
|
{
|
||||||
|
utf8text.replace(0, 1, "/me ");
|
||||||
|
}
|
||||||
|
}
|
||||||
utf8text = utf8str_truncate(utf8text, MAX_MSG_BUF_SIZE - 1);
|
utf8text = utf8str_truncate(utf8text, MAX_MSG_BUF_SIZE - 1);
|
||||||
|
|
||||||
if ( mSessionInitialized )
|
if ( mSessionInitialized )
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ void dec_busy_count()
|
|||||||
|
|
||||||
// Function declarations
|
// Function declarations
|
||||||
struct LLWearableHoldingPattern;
|
struct LLWearableHoldingPattern;
|
||||||
void wear_inventory_category_on_avatar(LLInventoryCategory* category, BOOL append);
|
void wear_inventory_category_on_avatar(LLInventoryCategory* category, BOOL append, BOOL replace = FALSE);
|
||||||
void wear_inventory_category_on_avatar_step2( BOOL proceed, void* userdata);
|
void wear_inventory_category_on_avatar_step2( BOOL proceed, void* userdata);
|
||||||
void wear_inventory_category_on_avatar_loop(LLWearable* wearable, void*);
|
void wear_inventory_category_on_avatar_loop(LLWearable* wearable, void*);
|
||||||
void wear_inventory_category_on_avatar_step3(LLWearableHoldingPattern* holder, BOOL append);
|
void wear_inventory_category_on_avatar_step3(LLWearableHoldingPattern* holder, BOOL append);
|
||||||
@@ -183,6 +183,7 @@ struct LLWearInfo
|
|||||||
{
|
{
|
||||||
LLUUID mCategoryID;
|
LLUUID mCategoryID;
|
||||||
BOOL mAppend;
|
BOOL mAppend;
|
||||||
|
BOOL mReplace;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -2106,6 +2107,10 @@ void LLFolderBridge::performAction(LLFolderView* folder, LLInventoryModel* model
|
|||||||
{
|
{
|
||||||
modifyOutfit(TRUE);
|
modifyOutfit(TRUE);
|
||||||
}
|
}
|
||||||
|
else if ("wearitems" == action)
|
||||||
|
{
|
||||||
|
modifyOutfit(TRUE, TRUE);
|
||||||
|
}
|
||||||
else if ("removefromoutfit" == action)
|
else if ("removefromoutfit" == action)
|
||||||
{
|
{
|
||||||
// <edit> derf
|
// <edit> derf
|
||||||
@@ -2495,6 +2500,7 @@ void LLFolderBridge::folderOptionsMenu()
|
|||||||
{
|
{
|
||||||
// </edit>
|
// </edit>
|
||||||
mItems.push_back(std::string("Add To Outfit"));
|
mItems.push_back(std::string("Add To Outfit"));
|
||||||
|
mItems.push_back(std::string("Wear Items"));
|
||||||
mItems.push_back(std::string("Replace Outfit"));
|
mItems.push_back(std::string("Replace Outfit"));
|
||||||
// <edit>
|
// <edit>
|
||||||
}
|
}
|
||||||
@@ -2857,7 +2863,7 @@ void LLFolderBridge::createWearable(LLUUID parent_id, EWearableType type)
|
|||||||
LLPointer<LLInventoryCallback>(NULL));
|
LLPointer<LLInventoryCallback>(NULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLFolderBridge::modifyOutfit(BOOL append)
|
void LLFolderBridge::modifyOutfit(BOOL append, BOOL replace)
|
||||||
{
|
{
|
||||||
// <edit> derf
|
// <edit> derf
|
||||||
if(std::find(LLInventoryPanel::sInstances.begin(), LLInventoryPanel::sInstances.end(), mInventoryPanel) == LLInventoryPanel::sInstances.end())
|
if(std::find(LLInventoryPanel::sInstances.begin(), LLInventoryPanel::sInstances.end(), mInventoryPanel) == LLInventoryPanel::sInstances.end())
|
||||||
@@ -2871,7 +2877,7 @@ void LLFolderBridge::modifyOutfit(BOOL append)
|
|||||||
LLViewerInventoryCategory* cat = getCategory();
|
LLViewerInventoryCategory* cat = getCategory();
|
||||||
if(!cat) return;
|
if(!cat) return;
|
||||||
|
|
||||||
wear_inventory_category_on_avatar( cat, append );
|
wear_inventory_category_on_avatar(cat, append, replace);
|
||||||
}
|
}
|
||||||
|
|
||||||
// helper stuff
|
// helper stuff
|
||||||
@@ -4791,7 +4797,7 @@ void wear_inventory_category(LLInventoryCategory* category, bool copy, bool appe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// *NOTE: hack to get from avatar inventory to avatar
|
// *NOTE: hack to get from avatar inventory to avatar
|
||||||
void wear_inventory_category_on_avatar( LLInventoryCategory* category, BOOL append )
|
void wear_inventory_category_on_avatar(LLInventoryCategory* category, BOOL append, BOOL replace)
|
||||||
{
|
{
|
||||||
// Avoid unintentionally overwriting old wearables. We have to do
|
// Avoid unintentionally overwriting old wearables. We have to do
|
||||||
// this up front to avoid having to deal with the case of multiple
|
// this up front to avoid having to deal with the case of multiple
|
||||||
@@ -4802,6 +4808,7 @@ void wear_inventory_category_on_avatar( LLInventoryCategory* category, BOOL appe
|
|||||||
|
|
||||||
LLWearInfo* userdata = new LLWearInfo;
|
LLWearInfo* userdata = new LLWearInfo;
|
||||||
userdata->mAppend = append;
|
userdata->mAppend = append;
|
||||||
|
userdata->mReplace = replace;
|
||||||
userdata->mCategoryID = category->getUUID();
|
userdata->mCategoryID = category->getUUID();
|
||||||
|
|
||||||
if( gFloaterCustomize )
|
if( gFloaterCustomize )
|
||||||
@@ -4999,7 +5006,7 @@ void wear_inventory_category_on_avatar_step2( BOOL proceed, void* userdata )
|
|||||||
msg->nextBlockFast(_PREHASH_ObjectData );
|
msg->nextBlockFast(_PREHASH_ObjectData );
|
||||||
msg->addUUIDFast(_PREHASH_ItemID, item->getLinkedUUID());
|
msg->addUUIDFast(_PREHASH_ItemID, item->getLinkedUUID());
|
||||||
msg->addUUIDFast(_PREHASH_OwnerID, item->getPermissions().getOwner());
|
msg->addUUIDFast(_PREHASH_OwnerID, item->getPermissions().getOwner());
|
||||||
msg->addU8Fast(_PREHASH_AttachmentPt, 0 | ATTACHMENT_ADD); // Wear at the previous or default attachment point
|
msg->addU8Fast(_PREHASH_AttachmentPt, wear_info->mReplace ? 0 : ATTACHMENT_ADD); // Wear at the previous or default attachment point
|
||||||
pack_permissions_slam(msg, item->getFlags(), item->getPermissions());
|
pack_permissions_slam(msg, item->getFlags(), item->getPermissions());
|
||||||
msg->addStringFast(_PREHASH_Name, item->getName());
|
msg->addStringFast(_PREHASH_Name, item->getName());
|
||||||
msg->addStringFast(_PREHASH_Description, item->getDescription());
|
msg->addStringFast(_PREHASH_Description, item->getDescription());
|
||||||
|
|||||||
@@ -344,7 +344,7 @@ protected:
|
|||||||
|
|
||||||
BOOL checkFolderForContentsOfType(LLInventoryModel* model, LLInventoryCollectFunctor& typeToCheck);
|
BOOL checkFolderForContentsOfType(LLInventoryModel* model, LLInventoryCollectFunctor& typeToCheck);
|
||||||
|
|
||||||
void modifyOutfit(BOOL append);
|
void modifyOutfit(BOOL append, BOOL replace = FALSE);
|
||||||
public:
|
public:
|
||||||
static LLFolderBridge* sSelf;
|
static LLFolderBridge* sSelf;
|
||||||
static void staticFolderOptionsMenu();
|
static void staticFolderOptionsMenu();
|
||||||
|
|||||||
@@ -182,4 +182,4 @@ void gCOASavedSettings->setColor4(const std::string &name, LLColor4 value)
|
|||||||
gSavedSettings.setColor4(name, value);
|
gSavedSettings.setColor4(name, value);
|
||||||
else
|
else
|
||||||
gSavedPerAccountSettings.setColor4(name, value);
|
gSavedPerAccountSettings.setColor4(name, value);
|
||||||
}*/
|
}*/
|
||||||
|
|||||||
@@ -41,8 +41,7 @@ class LLUICtrl;
|
|||||||
// and assign the control name as a const char* to the userdata.
|
// and assign the control name as a const char* to the userdata.
|
||||||
class LLSavedSettingsGlue
|
class LLSavedSettingsGlue
|
||||||
{
|
{
|
||||||
public:
|
public:/*
|
||||||
/*
|
|
||||||
static void setBOOL(LLUICtrl* ctrl, void* name);
|
static void setBOOL(LLUICtrl* ctrl, void* name);
|
||||||
static void setS32(LLUICtrl* ctrl, void* name);
|
static void setS32(LLUICtrl* ctrl, void* name);
|
||||||
static void setF32(LLUICtrl* ctrl, void* name);
|
static void setF32(LLUICtrl* ctrl, void* name);
|
||||||
|
|||||||
@@ -193,11 +193,13 @@
|
|||||||
#include "llsocks5.h"
|
#include "llsocks5.h"
|
||||||
#include "jcfloaterareasearch.h"
|
#include "jcfloaterareasearch.h"
|
||||||
|
|
||||||
|
|
||||||
// <edit>
|
// <edit>
|
||||||
#include "llpanellogin.h"
|
#include "llpanellogin.h"
|
||||||
//#include "llfloateravatars.h"
|
//#include "llfloateravatars.h"
|
||||||
//#include "llactivation.h"
|
//#include "llactivation.h"
|
||||||
#include "wlfPanel_AdvSettings.h" //Lower right Windlight and Rendering options
|
#include "wlfPanel_AdvSettings.h" //Lower right Windlight and Rendering options
|
||||||
|
#include "ascentdaycyclemanager.h"
|
||||||
#include "llao.h"
|
#include "llao.h"
|
||||||
#include "llfloaterblacklist.h"
|
#include "llfloaterblacklist.h"
|
||||||
#include "scriptcounter.h"
|
#include "scriptcounter.h"
|
||||||
@@ -2528,6 +2530,7 @@ bool idle_startup()
|
|||||||
// init the shader managers
|
// init the shader managers
|
||||||
LLPostProcess::initClass();
|
LLPostProcess::initClass();
|
||||||
LLWLParamManager::initClass();
|
LLWLParamManager::initClass();
|
||||||
|
AscentDayCycleManager::initClass();
|
||||||
LLWaterParamManager::initClass();
|
LLWaterParamManager::initClass();
|
||||||
|
|
||||||
// RN: don't initialize VO classes in drone mode, they are too closely tied to rendering
|
// RN: don't initialize VO classes in drone mode, they are too closely tied to rendering
|
||||||
@@ -2638,9 +2641,10 @@ bool idle_startup()
|
|||||||
|
|
||||||
/*if (gSavedSettings.getBOOL("BeaconAlwaysOn"))
|
/*if (gSavedSettings.getBOOL("BeaconAlwaysOn"))
|
||||||
{
|
{
|
||||||
LLFloaterBeacons::showInstance(); DIE
|
LLFloaterBeacons::showInstance(); DIE -HgB
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
|
||||||
if (!gNoRender)
|
if (!gNoRender)
|
||||||
{
|
{
|
||||||
//Set up cloud rendertypes. Passed argument is unused.
|
//Set up cloud rendertypes. Passed argument is unused.
|
||||||
|
|||||||
@@ -1039,8 +1039,6 @@ LLXMLNodePtr LLTextureCtrl::getXML(bool save_children) const
|
|||||||
|
|
||||||
node->createChild("allow_invisible_texture", TRUE)->setBoolValue(mAllowInvisibleTexture);
|
node->createChild("allow_invisible_texture", TRUE)->setBoolValue(mAllowInvisibleTexture);
|
||||||
|
|
||||||
node->createChild("allow_invisible_texture", TRUE)->setBoolValue(mAllowInvisibleTexture);
|
|
||||||
|
|
||||||
node->createChild("can_apply_immediately", TRUE)->setBoolValue(mCanApplyImmediately );
|
node->createChild("can_apply_immediately", TRUE)->setBoolValue(mCanApplyImmediately );
|
||||||
|
|
||||||
return node;
|
return node;
|
||||||
@@ -1584,5 +1582,3 @@ BOOL LLToolTexEyedropper::handleHover(S32 x, S32 y, MASK mask)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ extern std::map<std::string, LLControlGroup*> gSettings;
|
|||||||
void create_graphics_group(LLControlGroup& group);
|
void create_graphics_group(LLControlGroup& group);
|
||||||
|
|
||||||
// saved at end of session
|
// saved at end of session
|
||||||
|
extern LLControlGroup *gCOASavedSettings;
|
||||||
extern LLControlGroup gSavedPerAccountSettings;
|
extern LLControlGroup gSavedPerAccountSettings;
|
||||||
|
|
||||||
// Read-only
|
// Read-only
|
||||||
@@ -66,10 +67,12 @@ extern LLControlGroup gCrashSettings;
|
|||||||
extern std::string gLastRunVersion;
|
extern std::string gLastRunVersion;
|
||||||
extern std::string gCurrentVersion;
|
extern std::string gCurrentVersion;
|
||||||
|
|
||||||
|
|
||||||
bool handleCloudSettingsChanged(const LLSD& newvalue);
|
bool handleCloudSettingsChanged(const LLSD& newvalue);
|
||||||
|
|
||||||
//NOTE: LLCachedControl moved to llxml/llcontrol.h make it easier to use in other projects.
|
//NOTE: LLCachedControl moved to llxml/llcontrol.h make it easier to use in other projects.
|
||||||
|
|
||||||
|
|
||||||
//A template would be a little awkward to use here.. so.. a preprocessor macro. Alas. onCommitControlSetting(gSavedSettings) etc.
|
//A template would be a little awkward to use here.. so.. a preprocessor macro. Alas. onCommitControlSetting(gSavedSettings) etc.
|
||||||
inline void onCommitControlSetting_gSavedSettings(LLUICtrl* ctrl, void* name) {gSavedSettings.setValue((const char*)name,ctrl->getValue());}
|
inline void onCommitControlSetting_gSavedSettings(LLUICtrl* ctrl, void* name) {gSavedSettings.setValue((const char*)name,ctrl->getValue());}
|
||||||
inline void onCommitControlSetting_gSavedPerAccountSettings(LLUICtrl* ctrl, void* name) {gSavedPerAccountSettings.setValue((const char*)name,ctrl->getValue());}
|
inline void onCommitControlSetting_gSavedPerAccountSettings(LLUICtrl* ctrl, void* name) {gSavedPerAccountSettings.setValue((const char*)name,ctrl->getValue());}
|
||||||
|
|||||||
@@ -39,6 +39,7 @@
|
|||||||
|
|
||||||
#include "llaudioengine.h"
|
#include "llaudioengine.h"
|
||||||
#include "noise.h"
|
#include "noise.h"
|
||||||
|
#include "llsdserialize.h"
|
||||||
|
|
||||||
#include "llagent.h" // Get state values from here
|
#include "llagent.h" // Get state values from here
|
||||||
#include "llviewercontrol.h"
|
#include "llviewercontrol.h"
|
||||||
@@ -53,6 +54,7 @@
|
|||||||
|
|
||||||
#include "llhudeffecttrail.h"
|
#include "llhudeffecttrail.h"
|
||||||
#include "llhudmanager.h"
|
#include "llhudmanager.h"
|
||||||
|
#include "llinventorybridge.h"
|
||||||
#include "llinventoryview.h"
|
#include "llinventoryview.h"
|
||||||
#include "llkeyframefallmotion.h"
|
#include "llkeyframefallmotion.h"
|
||||||
#include "llkeyframestandmotion.h"
|
#include "llkeyframestandmotion.h"
|
||||||
@@ -720,6 +722,10 @@ F32 LLVOAvatar::sGreyTime = 0.f;
|
|||||||
F32 LLVOAvatar::sGreyUpdateTime = 0.f;
|
F32 LLVOAvatar::sGreyUpdateTime = 0.f;
|
||||||
bool LLVOAvatar::sDoProperArc = true;
|
bool LLVOAvatar::sDoProperArc = true;
|
||||||
|
|
||||||
|
// Globals
|
||||||
|
LLFrameTimer gAttachmentsTimer;
|
||||||
|
bool gAttachmentsListDirty = true;
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Helper functions
|
// Helper functions
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@@ -834,6 +840,7 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
|
|||||||
{
|
{
|
||||||
mIsSelf = TRUE;
|
mIsSelf = TRUE;
|
||||||
gAgent.setAvatarObject(this);
|
gAgent.setAvatarObject(this);
|
||||||
|
gAttachmentsTimer.reset();
|
||||||
lldebugs << "Marking avatar as self " << id << llendl;
|
lldebugs << "Marking avatar as self " << id << llendl;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -2720,6 +2727,10 @@ BOOL LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
|
|||||||
|
|
||||||
// attach objects that were waiting for a drawable
|
// attach objects that were waiting for a drawable
|
||||||
lazyAttach();
|
lazyAttach();
|
||||||
|
if (mIsSelf)
|
||||||
|
{
|
||||||
|
checkAttachments();
|
||||||
|
}
|
||||||
|
|
||||||
// animate the character
|
// animate the character
|
||||||
// store off last frame's root position to be consistent with camera position
|
// store off last frame's root position to be consistent with camera position
|
||||||
@@ -2756,6 +2767,133 @@ BOOL LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LLVOAvatar::checkAttachments()
|
||||||
|
{
|
||||||
|
const F32 LAZY_ATTACH_DELAY = 15.0f;
|
||||||
|
static bool first_run = true;
|
||||||
|
|
||||||
|
if (!mIsSelf)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mPendingAttachment.size() == 0)
|
||||||
|
{
|
||||||
|
if (first_run)
|
||||||
|
{
|
||||||
|
if (gAttachmentsTimer.getElapsedTimeF32() > LAZY_ATTACH_DELAY)
|
||||||
|
{
|
||||||
|
first_run = false;
|
||||||
|
LLVOAvatar* avatarp = gAgent.getAvatarObject();
|
||||||
|
if (!avatarp) return;
|
||||||
|
std::set<LLUUID> worn;
|
||||||
|
for (LLVOAvatar::attachment_map_t::iterator iter = avatarp->mAttachmentPoints.begin();
|
||||||
|
iter != avatarp->mAttachmentPoints.end(); )
|
||||||
|
{
|
||||||
|
LLVOAvatar::attachment_map_t::iterator curiter = iter++;
|
||||||
|
LLViewerJointAttachment* attachment = curiter->second;
|
||||||
|
for (LLViewerJointAttachment::attachedobjs_vec_t::iterator attachment_iter = attachment->mAttachedObjects.begin();
|
||||||
|
attachment_iter != attachment->mAttachedObjects.end();
|
||||||
|
++attachment_iter)
|
||||||
|
{
|
||||||
|
LLViewerObject *attached_object = (*attachment_iter);
|
||||||
|
if (attached_object)
|
||||||
|
{
|
||||||
|
worn.insert(attached_object->getAttachmentItemID());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "attachments.xml");
|
||||||
|
//llinfos << "Reading the saved worn attachments list from: " << filename << llendl;
|
||||||
|
LLSD list;
|
||||||
|
llifstream llsd_xml;
|
||||||
|
llsd_xml.open(filename.c_str(), std::ios::in | std::ios::binary);
|
||||||
|
if (llsd_xml.is_open())
|
||||||
|
{
|
||||||
|
LLSDSerialize::fromXML(list, llsd_xml);
|
||||||
|
for (LLSD::map_iterator iter = list.beginMap(); iter != list.endMap(); iter++)
|
||||||
|
{
|
||||||
|
LLSD array = iter->second;
|
||||||
|
if (array.isArray())
|
||||||
|
{
|
||||||
|
for (int i = 0; i < array.size(); i++)
|
||||||
|
{
|
||||||
|
LLSD map = array[i];
|
||||||
|
if (map.has("inv_item_id"))
|
||||||
|
{
|
||||||
|
LLUUID item_id = map.get("inv_item_id");
|
||||||
|
if (worn.find(item_id) == worn.end())
|
||||||
|
{
|
||||||
|
LLViewerInventoryItem* item = gInventory.getItem(item_id);
|
||||||
|
if (item)
|
||||||
|
{
|
||||||
|
rez_attachment(item, NULL, false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
llwarns << item_id.asString() << " not found in inventory, could not reattach." << llendl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
llwarns << "Malformed attachments list file (no \"inv_item_id\" key). Aborting." << llendl;
|
||||||
|
llsd_xml.close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
llwarns << "Malformed attachments list file (not an array). Aborting." << llendl;
|
||||||
|
llsd_xml.close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
llsd_xml.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (gAttachmentsListDirty)
|
||||||
|
{
|
||||||
|
gAttachmentsListDirty = false;
|
||||||
|
LLSD list;
|
||||||
|
LLSD array = list.emptyArray();
|
||||||
|
LLVOAvatar* avatarp = gAgent.getAvatarObject();
|
||||||
|
if (!avatarp) return;
|
||||||
|
for (LLVOAvatar::attachment_map_t::iterator iter = avatarp->mAttachmentPoints.begin();
|
||||||
|
iter != avatarp->mAttachmentPoints.end(); )
|
||||||
|
{
|
||||||
|
LLVOAvatar::attachment_map_t::iterator curiter = iter++;
|
||||||
|
LLViewerJointAttachment* attachment = curiter->second;
|
||||||
|
for (LLViewerJointAttachment::attachedobjs_vec_t::iterator attachment_iter = attachment->mAttachedObjects.begin();
|
||||||
|
attachment_iter != attachment->mAttachedObjects.end();
|
||||||
|
++attachment_iter)
|
||||||
|
{
|
||||||
|
LLViewerObject *attached_object = (*attachment_iter);
|
||||||
|
if (attached_object)
|
||||||
|
{
|
||||||
|
LLSD entry = list.emptyMap();
|
||||||
|
entry.insert("inv_item_id", attached_object->getAttachmentItemID());
|
||||||
|
array.append(entry);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
list.insert("attachments", array);
|
||||||
|
std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "attachments.xml");
|
||||||
|
llofstream list_file(filename);
|
||||||
|
LLSDSerialize::toPrettyXML(list, list_file);
|
||||||
|
list_file.close();
|
||||||
|
//llinfos << "Worn attachments list saved to: " << filename << llendl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gAttachmentsListDirty = true;
|
||||||
|
gAttachmentsTimer.reset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void LLVOAvatar::idleUpdateVoiceVisualizer(bool voice_enabled)
|
void LLVOAvatar::idleUpdateVoiceVisualizer(bool voice_enabled)
|
||||||
{
|
{
|
||||||
// disable voice visualizer when in mouselook
|
// disable voice visualizer when in mouselook
|
||||||
@@ -3511,9 +3649,6 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
|
|||||||
new_name = TRUE;
|
new_name = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
LLNameValue *title = getNVPair("Title");
|
|
||||||
LLNameValue* firstname = getNVPair("FirstName");
|
|
||||||
LLNameValue* lastname = getNVPair("LastName");
|
|
||||||
|
|
||||||
// <edit>
|
// <edit>
|
||||||
std::string client;
|
std::string client;
|
||||||
@@ -3601,41 +3736,35 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
|
|||||||
mClientTag = "Friend";
|
mClientTag = "Friend";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
if (!mIsSelf && gSavedSettings.getBOOL("AscentUseStatusColors"))
|
||||||
|
|
||||||
static LLCachedControl<bool> ascent_use_status_colors("AscentUseStatusColors",true);
|
|
||||||
if (!mIsSelf && ascent_use_status_colors)
|
|
||||||
{
|
|
||||||
LLViewerRegion* parent_estate = LLWorld::getInstance()->getRegionFromPosGlobal(this->getPositionGlobal());
|
|
||||||
LLUUID estate_owner = LLUUID::null;
|
|
||||||
if(parent_estate && parent_estate->isAlive())
|
|
||||||
{
|
{
|
||||||
estate_owner = parent_estate->getOwner();
|
LLViewerRegion* parent_estate = LLWorld::getInstance()->getRegionFromPosGlobal(this->getPositionGlobal());
|
||||||
}
|
LLUUID estate_owner = LLUUID::null;
|
||||||
|
if(parent_estate && parent_estate->isAlive())
|
||||||
std::string name;
|
{
|
||||||
name += firstname->getString();
|
estate_owner = parent_estate->getOwner();
|
||||||
name += " ";
|
}
|
||||||
name += lastname->getString();
|
|
||||||
//Lindens are always more Linden than your friend, make that take precedence
|
//Lindens are always more Linden than your friend, make that take precedence
|
||||||
if(LLMuteList::getInstance()->isLinden(name))
|
if(LLMuteList::getInstance()->isLinden(getFullname()))
|
||||||
{
|
{
|
||||||
mClientColor = gCOASavedSettings->getColor4("AscentLindenColor").getValue();
|
mClientColor = gCOASavedSettings->getColor4("AscentLindenColor").getValue();
|
||||||
}
|
}
|
||||||
//check if they are an estate owner at their current position
|
//check if they are an estate owner at their current position
|
||||||
else if(estate_owner.notNull() && this->getID() == estate_owner)
|
else if(estate_owner.notNull() && this->getID() == estate_owner)
|
||||||
{
|
{
|
||||||
mClientColor = gCOASavedSettings->getColor4("AscentEstateOwnerColor").getValue();
|
mClientColor = gCOASavedSettings->getColor4("AscentEstateOwnerColor").getValue();
|
||||||
}
|
}
|
||||||
//without these dots, SL would suck.
|
//without these dots, SL would suck.
|
||||||
else if (LLAvatarTracker::instance().getBuddyInfo(this->getID()) != NULL)
|
else if (LLAvatarTracker::instance().getBuddyInfo(this->getID()) != NULL)
|
||||||
{
|
{
|
||||||
mClientColor = gCOASavedSettings->getColor4("AscentFriendColor");
|
mClientColor = gCOASavedSettings->getColor4("AscentFriendColor");
|
||||||
}
|
}
|
||||||
//big fat jerkface who is probably a jerk, display them as such.
|
//big fat jerkface who is probably a jerk, display them as such.
|
||||||
else if(LLMuteList::getInstance()->isMuted(this->getID()))
|
else if(LLMuteList::getInstance()->isMuted(this->getID()))
|
||||||
{
|
{
|
||||||
mClientColor = gCOASavedSettings->getColor4("AscentMutedColor").getValue();
|
mClientColor = gCOASavedSettings->getColor4("AscentMutedColor").getValue();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3680,8 +3809,10 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
|
|||||||
sNumVisibleChatBubbles--;
|
sNumVisibleChatBubbles--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LLNameValue *title = getNVPair("Title");
|
||||||
|
LLNameValue* firstname = getNVPair("FirstName");
|
||||||
|
LLNameValue* lastname = getNVPair("LastName");
|
||||||
|
|
||||||
if (mNameText.notNull() && firstname && lastname)
|
if (mNameText.notNull() && firstname && lastname)
|
||||||
{
|
{
|
||||||
@@ -6968,12 +7099,22 @@ void LLVOAvatar::addChild(LLViewerObject *childp)
|
|||||||
{
|
{
|
||||||
mPendingAttachment.push_back(childp);
|
mPendingAttachment.push_back(childp);
|
||||||
}
|
}
|
||||||
|
if (mIsSelf)
|
||||||
|
{
|
||||||
|
gAttachmentsListDirty = true;
|
||||||
|
gAttachmentsTimer.reset();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLVOAvatar::removeChild(LLViewerObject *childp)
|
void LLVOAvatar::removeChild(LLViewerObject *childp)
|
||||||
{
|
{
|
||||||
LLViewerObject::removeChild(childp);
|
LLViewerObject::removeChild(childp);
|
||||||
detachObject(childp);
|
detachObject(childp);
|
||||||
|
if (mIsSelf)
|
||||||
|
{
|
||||||
|
gAttachmentsListDirty = true;
|
||||||
|
gAttachmentsTimer.reset();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LLViewerJointAttachment* LLVOAvatar::getTargetAttachmentPoint(LLViewerObject* viewer_object)
|
LLViewerJointAttachment* LLVOAvatar::getTargetAttachmentPoint(LLViewerObject* viewer_object)
|
||||||
@@ -7096,6 +7237,11 @@ void LLVOAvatar::lazyAttach()
|
|||||||
if (mPendingAttachment[i]->mDrawable)
|
if (mPendingAttachment[i]->mDrawable)
|
||||||
{
|
{
|
||||||
attachObject(mPendingAttachment[i]);
|
attachObject(mPendingAttachment[i]);
|
||||||
|
if (mIsSelf)
|
||||||
|
{
|
||||||
|
gAttachmentsListDirty = true;
|
||||||
|
gAttachmentsTimer.reset();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -7104,6 +7250,11 @@ void LLVOAvatar::lazyAttach()
|
|||||||
}
|
}
|
||||||
|
|
||||||
mPendingAttachment = still_pending;
|
mPendingAttachment = still_pending;
|
||||||
|
if (mIsSelf && still_pending.size() > 0)
|
||||||
|
{
|
||||||
|
gAttachmentsListDirty = true;
|
||||||
|
gAttachmentsTimer.reset();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLVOAvatar::resetHUDAttachments()
|
void LLVOAvatar::resetHUDAttachments()
|
||||||
@@ -9243,7 +9394,10 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
|
|||||||
}
|
}
|
||||||
if( param )
|
if( param )
|
||||||
{
|
{
|
||||||
llwarns << "Number of params in AvatarAppearance msg does not match number of params in avatar xml file for " << getFullname() << " (Prematurely reached end of list at " << param->getName() << ")." << llendl;
|
if (param->getName() == "tattoo_red")
|
||||||
|
llinfos << getFullname() << " does not have tattoo tinting." << llendl;
|
||||||
|
else
|
||||||
|
llwarns << "Number of params in AvatarAppearance msg does not match number of params in avatar xml file for " << getFullname() << " (Prematurely reached end of list at " << param->getName() << ")." << llendl;
|
||||||
//return; //ASC-TTRFE
|
//return; //ASC-TTRFE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -301,6 +301,7 @@ public:
|
|||||||
BOOL attachObject(LLViewerObject *viewer_object);
|
BOOL attachObject(LLViewerObject *viewer_object);
|
||||||
BOOL detachObject(LLViewerObject *viewer_object);
|
BOOL detachObject(LLViewerObject *viewer_object);
|
||||||
void lazyAttach();
|
void lazyAttach();
|
||||||
|
void checkAttachments();
|
||||||
|
|
||||||
void sitOnObject(LLViewerObject *sit_object);
|
void sitOnObject(LLViewerObject *sit_object);
|
||||||
void getOffObject();
|
void getOffObject();
|
||||||
|
|||||||
@@ -40,7 +40,9 @@
|
|||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
LLWLDayCycle::LLWLDayCycle() : mDayRate(120)
|
LLWLDayCycle::LLWLDayCycle() :
|
||||||
|
mDayRate(120),
|
||||||
|
mName("Unnamed Cycle")
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,22 +56,39 @@ void LLWLDayCycle::loadDayCycle(const std::string & fileName)
|
|||||||
// clear the first few things
|
// clear the first few things
|
||||||
mTimeMap.clear();
|
mTimeMap.clear();
|
||||||
|
|
||||||
// now load the file
|
// bugfix for SL-46920: preventing filenames that break stuff.
|
||||||
std::string pathName(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,
|
char * curl_str = curl_escape(fileName.c_str(), fileName.size());
|
||||||
"windlight/days", fileName));
|
std::string escaped_filename(curl_str);
|
||||||
llinfos << "Loading DayCycle settings from " << pathName << llendl;
|
curl_free(curl_str);
|
||||||
|
curl_str = NULL;
|
||||||
llifstream day_cycle_xml(pathName);
|
|
||||||
if (day_cycle_xml.is_open())
|
escaped_filename += ".xml";
|
||||||
|
|
||||||
|
std::string pathName(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/days", escaped_filename));
|
||||||
|
llinfos << "Loading Day Cycle preset from " << pathName << llendl;
|
||||||
|
|
||||||
|
llifstream day_cycle_xml;
|
||||||
|
day_cycle_xml.open(pathName.c_str());
|
||||||
|
|
||||||
|
// That failed, try loading from the users area instead.
|
||||||
|
if(!day_cycle_xml)
|
||||||
|
{
|
||||||
|
pathName=gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/days", escaped_filename);
|
||||||
|
llinfos << "Loading User Day Cycle preset from " << pathName << llendl;
|
||||||
|
day_cycle_xml.open(pathName.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (day_cycle_xml)
|
||||||
{
|
{
|
||||||
// load and parse it
|
// load and parse it
|
||||||
LLSD day_data(LLSD::emptyArray());
|
LLSD day_data(LLSD::emptyArray());
|
||||||
LLPointer<LLSDParser> parser = new LLSDXMLParser();
|
LLPointer<LLSDParser> parser = new LLSDXMLParser();
|
||||||
parser->parse(day_cycle_xml, day_data, LLSDSerialize::SIZE_UNLIMITED);
|
parser->parse(day_cycle_xml, day_data, LLSDSerialize::SIZE_UNLIMITED);
|
||||||
|
llinfos << "Loading day cycle into timeline..." << llendl;
|
||||||
// add each key
|
// add each key
|
||||||
for(S32 i = 0; i < day_data.size(); ++i)
|
for(S32 i = 0; i < day_data.size(); ++i)
|
||||||
{
|
{
|
||||||
|
llinfos << "Loading value" << i << llendl;
|
||||||
// make sure it's a two array
|
// make sure it's a two array
|
||||||
if(day_data[i].size() != 2)
|
if(day_data[i].size() != 2)
|
||||||
{
|
{
|
||||||
@@ -95,14 +114,39 @@ void LLWLDayCycle::loadDayCycle(const std::string & fileName)
|
|||||||
|
|
||||||
day_cycle_xml.close();
|
day_cycle_xml.close();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
llwarns << "Can't find " << fileName << llendl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLWLDayCycle::saveDayCycle(const std::string & fileName)
|
void LLWLDayCycle::saveDayCycle(const std::string & fileName)
|
||||||
{
|
{
|
||||||
LLSD day_data(LLSD::emptyArray());
|
|
||||||
|
// bugfix for SL-46920: preventing filenames that break stuff.
|
||||||
|
char * curl_str = curl_escape(fileName.c_str(), fileName.size());
|
||||||
|
std::string escaped_filename(curl_str);
|
||||||
|
curl_free(curl_str);
|
||||||
|
curl_str = NULL;
|
||||||
|
|
||||||
std::string pathName(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/days", fileName));
|
escaped_filename += ".xml";
|
||||||
//llinfos << "Saving WindLight settings to " << pathName << llendl;
|
|
||||||
|
std::string pathName(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/days", escaped_filename));
|
||||||
|
llinfos << "Saving Day Cycle preset from " << pathName << llendl;
|
||||||
|
|
||||||
|
llofstream day_cycle_xml;
|
||||||
|
day_cycle_xml.open(pathName.c_str());
|
||||||
|
|
||||||
|
// That failed, try loading from the users area instead.
|
||||||
|
if(!day_cycle_xml)
|
||||||
|
{
|
||||||
|
pathName=gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/days", escaped_filename);
|
||||||
|
llinfos << "Saving User Day Cycle preset from " << pathName << llendl;
|
||||||
|
day_cycle_xml.open(pathName.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
LLSD day_data(LLSD::emptyArray());
|
||||||
|
|
||||||
for(std::map<F32, std::string>::const_iterator mIt = mTimeMap.begin();
|
for(std::map<F32, std::string>::const_iterator mIt = mTimeMap.begin();
|
||||||
mIt != mTimeMap.end();
|
mIt != mTimeMap.end();
|
||||||
@@ -114,7 +158,6 @@ void LLWLDayCycle::saveDayCycle(const std::string & fileName)
|
|||||||
day_data.append(key);
|
day_data.append(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
llofstream day_cycle_xml(pathName);
|
|
||||||
LLPointer<LLSDFormatter> formatter = new LLSDXMLFormatter();
|
LLPointer<LLSDFormatter> formatter = new LLSDXMLFormatter();
|
||||||
formatter->format(day_data, day_cycle_xml, LLSDFormatter::OPTIONS_PRETTY);
|
formatter->format(day_data, day_cycle_xml, LLSDFormatter::OPTIONS_PRETTY);
|
||||||
day_cycle_xml.close();
|
day_cycle_xml.close();
|
||||||
|
|||||||
@@ -45,6 +45,9 @@ class LLWLDayCycle;
|
|||||||
|
|
||||||
class LLWLDayCycle
|
class LLWLDayCycle
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public:
|
||||||
|
std::string mName;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// lists what param sets are used when during the day
|
// lists what param sets are used when during the day
|
||||||
|
|||||||
@@ -553,7 +553,7 @@ LLWLParamManager * LLWLParamManager::instance()
|
|||||||
sInstance->loadPresets(LLStringUtil::null);
|
sInstance->loadPresets(LLStringUtil::null);
|
||||||
|
|
||||||
// load the day
|
// load the day
|
||||||
sInstance->mDay.loadDayCycle(std::string("Default.xml"));
|
sInstance->mDay.loadDayCycle(gSavedSettings.getString("AscentActiveDayCycle"));
|
||||||
|
|
||||||
// *HACK - sets cloud scrolling to what we want... fix this better in the future
|
// *HACK - sets cloud scrolling to what we want... fix this better in the future
|
||||||
sInstance->getParamSet("Default", sInstance->mCurParams);
|
sInstance->getParamSet("Default", sInstance->mCurParams);
|
||||||
|
|||||||
@@ -5957,8 +5957,8 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
|
|||||||
(1<<LLPipeline::RENDER_TYPE_VOIDWATER) |
|
(1<<LLPipeline::RENDER_TYPE_VOIDWATER) |
|
||||||
(1<<LLPipeline::RENDER_TYPE_GROUND) |
|
(1<<LLPipeline::RENDER_TYPE_GROUND) |
|
||||||
(1<<LLPipeline::RENDER_TYPE_SKY) |
|
(1<<LLPipeline::RENDER_TYPE_SKY) |
|
||||||
(1<<LLPipeline::RENDER_TYPE_WL_CLOUDS) |
|
(1<<LLPipeline::RENDER_TYPE_WL_CLOUDS) |
|
||||||
(1<<LLPipeline::RENDER_TYPE_CLASSIC_CLOUDS));
|
(1<<LLPipeline::RENDER_TYPE_CLASSIC_CLOUDS));
|
||||||
|
|
||||||
if (gSavedSettings.getBOOL("RenderWaterReflections"))
|
if (gSavedSettings.getBOOL("RenderWaterReflections"))
|
||||||
{ //mask out selected geometry based on reflection detail
|
{ //mask out selected geometry based on reflection detail
|
||||||
|
|||||||
@@ -191,6 +191,7 @@
|
|||||||
<FilterTextColor value="255, 200, 70, 255" />
|
<FilterTextColor value="255, 200, 70, 255" />
|
||||||
<InventoryItemSuffixColor value="191, 216, 216, 255" /> <!-- "worn", "no modify", etc-->
|
<InventoryItemSuffixColor value="191, 216, 216, 255" /> <!-- "worn", "no modify", etc-->
|
||||||
<InventorySearchStatusColor value="255, 255, 255, 255" />
|
<InventorySearchStatusColor value="255, 255, 255, 255" />
|
||||||
|
<ComboBoxBg value="255, 255, 255, 255"/>
|
||||||
<ConsoleBackground value="0, 0, 0, 255" />
|
<ConsoleBackground value="0, 0, 0, 255" />
|
||||||
<FolderViewLoadingMessageTextColor value="240, 165, 90, 255"/> <!-- "loading..." in the inv -->
|
<FolderViewLoadingMessageTextColor value="240, 165, 90, 255"/> <!-- "loading..." in the inv -->
|
||||||
<InventoryBackgroundColor value="62, 62, 62, 80"/>
|
<InventoryBackgroundColor value="62, 62, 62, 80"/>
|
||||||
|
|||||||
@@ -237,14 +237,36 @@
|
|||||||
label="Use Estate Time" label_selected="Go to Estate Time"
|
label="Use Estate Time" label_selected="Go to Estate Time"
|
||||||
left_delta="55" mouse_opaque="true" name="WLUseLindenTime"
|
left_delta="55" mouse_opaque="true" name="WLUseLindenTime"
|
||||||
scale_image="true" width="140" />
|
scale_image="true" width="140" />
|
||||||
<button bottom="-195" enabled="true" font="SansSerif" halign="center" height="20"
|
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||||
|
bottom="-180" drop_shadow_visible="true"
|
||||||
|
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||||
|
left="430" mouse_opaque="true" name="KeyFramePresetsText" v_pad="0"
|
||||||
|
width="110">
|
||||||
|
Presets:
|
||||||
|
</text>
|
||||||
|
<combo_box allow_text_entry="false" bottom_delta="-1" follows="left|top" height="18"
|
||||||
|
left_delta="80" max_chars="20" mouse_opaque="true" name="DayCyclePresetsCombo"
|
||||||
|
width="120" />
|
||||||
|
<button bottom_delta="-40" enabled="true" font="SansSerif" halign="center" height="20"
|
||||||
|
label="New" label_selected="New" left_delta="-80"
|
||||||
|
mouse_opaque="true" name="DayCycleNewPreset" scale_image="true" width="60" />
|
||||||
|
<button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20"
|
||||||
|
label="Save" label_selected="Save" left_delta="70"
|
||||||
|
mouse_opaque="true" name="DayCycleSavePreset" scale_image="true" width="60" />
|
||||||
|
<button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20"
|
||||||
|
label="Delete" label_selected="Delete" left_delta="70"
|
||||||
|
mouse_opaque="true" name="DayCycleDeletePreset" scale_image="true" width="60" />
|
||||||
|
<!--<button bottom="-295" enabled="true" font="SansSerif" halign="center" height="20"
|
||||||
label="Save Test Day" label_selected="Save Test Day"
|
label="Save Test Day" label_selected="Save Test Day"
|
||||||
left="480" mouse_opaque="true" name="WLSaveDayCycle" scale_image="true"
|
left="480" mouse_opaque="true" name="WLSaveDayCycle" scale_image="true"
|
||||||
width="150" />
|
width="150" />
|
||||||
<button bottom="-220" enabled="true" font="SansSerif" halign="center" height="20"
|
<button bottom="-320" enabled="true" font="SansSerif" halign="center" height="20"
|
||||||
label="Load Test Day" label_selected="Load Test Day"
|
label="Load Test Day" label_selected="Load Test Day"
|
||||||
left="480" mouse_opaque="true" name="WLLoadDayCycle" scale_image="true"
|
left="480" mouse_opaque="true" name="WLLoadDayCycle" scale_image="true"
|
||||||
width="150" />
|
width="150" />-->
|
||||||
</panel>
|
</panel>
|
||||||
</tab_container>
|
</tab_container>
|
||||||
|
<string name="DaycycleDefaultNames">
|
||||||
|
Default:Happy%20Bivouac
|
||||||
|
</string>
|
||||||
</floater>
|
</floater>
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
can_minimize="false" can_resize="false" can_tear_off="true" enabled="true"
|
can_minimize="false" can_resize="false" can_tear_off="true" enabled="true"
|
||||||
height="510" left="278" min_height="100" min_width="100"
|
height="510" left="278" min_height="100" min_width="100"
|
||||||
mouse_opaque="true" name="modal container" title="" width="515">
|
mouse_opaque="true" name="modal container" title="" width="515">
|
||||||
<button bottom="-488" enabled="true" font="SansSerif" halign="center" height="20"
|
<button bottom="-500" enabled="true" font="SansSerif" halign="center" height="20"
|
||||||
label="Save" label_selected="Save" left="171" mouse_opaque="true"
|
label="Save" label_selected="Save" left="171" mouse_opaque="true"
|
||||||
name="Save" scale_image="true" width="82" />
|
name="Save" scale_image="true" width="82" />
|
||||||
<button bottom="-488" enabled="true" font="SansSerif" halign="center" height="20"
|
<button bottom="-500" enabled="true" font="SansSerif" halign="center" height="20"
|
||||||
label="Cancel" label_selected="Cancel" left="261" mouse_opaque="true"
|
label="Cancel" label_selected="Cancel" left="261" mouse_opaque="true"
|
||||||
name="Cancel" scale_image="true" width="82" />
|
name="Cancel" scale_image="true" width="82" />
|
||||||
<check_box bottom="-216" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-216" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
|
|||||||
@@ -42,6 +42,7 @@
|
|||||||
tool_tip="Hold shift or control while clicking to select multiple files"
|
tool_tip="Hold shift or control while clicking to select multiple files"
|
||||||
top="-68">
|
top="-68">
|
||||||
<column name="file_type" width="0" />
|
<column name="file_type" width="0" />
|
||||||
|
<column name="asset_type" width="0" />
|
||||||
<column image="ff_edit_mine_button.tga" name="icon_inventory_type"
|
<column image="ff_edit_mine_button.tga" name="icon_inventory_type"
|
||||||
tool_tip="Inventory Type" width="20" />
|
tool_tip="Inventory Type" width="20" />
|
||||||
<column dynamicwidth="true" label="Filename" name="file_name" tool_tip="Filename" />
|
<column dynamicwidth="true" label="Filename" name="file_name" tool_tip="Filename" />
|
||||||
@@ -89,12 +90,55 @@
|
|||||||
</text>
|
</text>
|
||||||
<line_editor bottom_delta="-4" follows="left|top" font="SansSerifSmall" height="18" max_length="255"
|
<line_editor bottom_delta="-4" follows="left|top" font="SansSerifSmall" height="18" max_length="255"
|
||||||
width="214" name="asset_desc" left_delta="70" select_all_on_focus_received="true" select_on_focus="true"/>
|
width="214" name="asset_desc" left_delta="70" select_all_on_focus_received="true" select_on_focus="true"/>
|
||||||
|
<text bottom_delta="-20" follows="top|left" height="12" name="multiple_uploads_label" left="302">
|
||||||
|
Multiple files selected. Total cost is:
|
||||||
|
</text>
|
||||||
|
<text bottom_delta="0" follows="top|left" height="12" name="texture_preview_label" left="302">
|
||||||
|
Preview image as:
|
||||||
|
</text>
|
||||||
|
<combo_box bottom_delta="-5" follows="left|top" height="18" label="Texture Preview"
|
||||||
|
left_delta="120" name="texture_preview_combo" width="164">
|
||||||
|
<combo_item name="Image">
|
||||||
|
Image
|
||||||
|
</combo_item>
|
||||||
|
<combo_item name="Hair">
|
||||||
|
Hair
|
||||||
|
</combo_item>
|
||||||
|
<combo_item name="FemaleHead">
|
||||||
|
Female Head
|
||||||
|
</combo_item>
|
||||||
|
<combo_item name="FemaleUpperBody">
|
||||||
|
Female Upper Body
|
||||||
|
</combo_item>
|
||||||
|
<combo_item name="FemaleLowerBody">
|
||||||
|
Female Lower Body
|
||||||
|
</combo_item>
|
||||||
|
<combo_item name="MaleHead">
|
||||||
|
Male Head
|
||||||
|
</combo_item>
|
||||||
|
<combo_item name="MaleUpperBody">
|
||||||
|
Male Upper Body
|
||||||
|
</combo_item>
|
||||||
|
<combo_item name="MaleLowerBody">
|
||||||
|
Male Lower Body
|
||||||
|
</combo_item>
|
||||||
|
<combo_item name="Skirt">
|
||||||
|
Skirt
|
||||||
|
</combo_item>
|
||||||
|
<combo_item name="SculptedPrim">
|
||||||
|
Sculpted Prim
|
||||||
|
</combo_item>
|
||||||
|
</combo_box>
|
||||||
|
<text bottom="250" follows="top|left" left="302" name="bad_image_text">
|
||||||
|
Unable to read image.
|
||||||
|
|
||||||
|
Try saving image as 24 bit Targa (.tga).
|
||||||
|
</text>
|
||||||
<slider bottom_delta="0" can_edit_text="false" enabled="false" width="185" height="16" mouse_opaque="true"
|
<slider bottom_delta="0" can_edit_text="false" enabled="false" width="185" height="16" mouse_opaque="true"
|
||||||
decimal_digits="0" increment="1" initial_val="16" left="30" min_val="1.0" max_val="16.0" visible="false"
|
decimal_digits="0" increment="1" initial_val="16" left="30" min_val="1.0" max_val="16.0" visible="false"
|
||||||
name="timeline" show_text="false" value="1" control_name="AnimationTimelineScrubber"/>
|
name="timeline" show_text="false" value="1" control_name="AnimationTimelineScrubber"/>
|
||||||
<button bottom="9" follows="bottom|left" height="22" label="Upload (L$10)"
|
<button bottom="9" follows="bottom|left" height="22" label="Upload (L$10)"
|
||||||
left="325" name="upload_button" tool_tip="Standard upload (L$10)"
|
left="325" name="upload_button" width="120" />
|
||||||
width="120" />
|
|
||||||
<button bottom_delta="0" follows="bottom|left" height="22" label="Temp Upload"
|
<button bottom_delta="0" follows="bottom|left" height="22" label="Temp Upload"
|
||||||
left_delta="125" name="upload_button" tool_tip="Uploads a temporary version of the texture. It's free, but has a limited lifespan and area it can be used."
|
left_delta="125" name="upload_button" tool_tip="Uploads a temporary version of the texture. It's free, but has a limited lifespan and area it can be used."
|
||||||
width="120" />
|
width="120" />
|
||||||
|
|||||||
@@ -208,6 +208,10 @@
|
|||||||
mouse_opaque="true" name="Add To Outfit" width="128">
|
mouse_opaque="true" name="Add To Outfit" width="128">
|
||||||
<on_click filter="" function="Inventory.DoToSelected" userdata="addtooutfit" />
|
<on_click filter="" function="Inventory.DoToSelected" userdata="addtooutfit" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
|
<menu_item_call bottom_delta="-18" height="18" label="Wear Items" left="0"
|
||||||
|
mouse_opaque="true" name="Wear Items" width="128">
|
||||||
|
<on_click filter="" function="Inventory.DoToSelected" userdata="wearitems" />
|
||||||
|
</menu_item_call>
|
||||||
<menu_item_call bottom_delta="-18" height="18" label="Replace Outfit" left="0"
|
<menu_item_call bottom_delta="-18" height="18" label="Replace Outfit" left="0"
|
||||||
mouse_opaque="true" name="Replace Outfit" width="128">
|
mouse_opaque="true" name="Replace Outfit" width="128">
|
||||||
<on_click filter="" function="Inventory.DoToSelected" userdata="replaceoutfit" />
|
<on_click filter="" function="Inventory.DoToSelected" userdata="replaceoutfit" />
|
||||||
|
|||||||
@@ -11,6 +11,14 @@
|
|||||||
<on_click function="Object.Touch" />
|
<on_click function="Object.Touch" />
|
||||||
<on_enable function="Object.EnableTouch" userdata="Touch" name="EnableTouch"/>
|
<on_enable function="Object.EnableTouch" userdata="Touch" name="EnableTouch"/>
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
|
<menu_item_call enabled="true" label="Stand Up" name="Stand Up">
|
||||||
|
<on_click function="Self.StandUp" userdata="" />
|
||||||
|
<on_enable function="Self.EnableStandUp" />
|
||||||
|
</menu_item_call>
|
||||||
|
<menu_item_call enabled="false" label="Detach" mouse_opaque="true" name="Detach">
|
||||||
|
<on_click function="Attachment.Detach" />
|
||||||
|
<on_enable function="Attachment.EnableDetach" />
|
||||||
|
</menu_item_call>
|
||||||
<pie_menu label="Tools >" name="Tools >">
|
<pie_menu label="Tools >" name="Tools >">
|
||||||
<menu_item_call enabled="false" hidden="false" label="S. Count" mouse_opaque="true" name="ScriptCount">
|
<menu_item_call enabled="false" hidden="false" label="S. Count" mouse_opaque="true" name="ScriptCount">
|
||||||
<on_click function="Object.ScriptCount" />
|
<on_click function="Object.ScriptCount" />
|
||||||
@@ -23,19 +31,11 @@
|
|||||||
<menu_item_call enabled="false" label="Data" mouse_opaque="true" name="Data">
|
<menu_item_call enabled="false" label="Data" mouse_opaque="true" name="Data">
|
||||||
<on_click function="Object.Data" />
|
<on_click function="Object.Data" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
<menu_item_call enabled="true" label="Derender" mouse_opaque="true" name="Derender">
|
<menu_item_call enabled="true" label="Derender" mouse_opaque="true" name="Derender">
|
||||||
<on_click function="Object.DERENDER" />
|
<on_click function="Object.DERENDER" />
|
||||||
<on_enable function="Object.EnableDerender" />
|
<on_enable function="Object.EnableDerender" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
</pie_menu>
|
</pie_menu>
|
||||||
<menu_item_call enabled="true" label="Stand Up" name="Stand Up">
|
|
||||||
<on_click function="Self.StandUp" userdata="" />
|
|
||||||
<on_enable function="Self.EnableStandUp" />
|
|
||||||
</menu_item_call>
|
|
||||||
<menu_item_call enabled="false" label="Detach" mouse_opaque="true" name="Detach">
|
|
||||||
<on_click function="Attachment.Detach" />
|
|
||||||
<on_enable function="Attachment.EnableDetach" />
|
|
||||||
</menu_item_call>
|
|
||||||
<menu_item_call enabled="true" label="Appearance..." name="Appearance...">
|
<menu_item_call enabled="true" label="Appearance..." name="Appearance...">
|
||||||
<on_click function="ShowFloater" userdata="appearance" />
|
<on_click function="ShowFloater" userdata="appearance" />
|
||||||
<on_enable function="Edit.EnableCustomizeAvatar" />
|
<on_enable function="Edit.EnableCustomizeAvatar" />
|
||||||
|
|||||||
@@ -32,10 +32,6 @@
|
|||||||
<menu_item_call enabled="true" label="Group Invite..." mouse_opaque="true" name="Invite...">
|
<menu_item_call enabled="true" label="Group Invite..." mouse_opaque="true" name="Invite...">
|
||||||
<on_click function="Avatar.InviteToGroup" />
|
<on_click function="Avatar.InviteToGroup" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
<menu_item_call enabled="false" label="Eject..." mouse_opaque="true" name="Eject...">
|
|
||||||
<on_click function="Avatar.Eject" />
|
|
||||||
<on_enable function="Avatar.EnableFreezeEject" />
|
|
||||||
</menu_item_call>
|
|
||||||
<pie_menu label="Tools >" name="Tools >">
|
<pie_menu label="Tools >" name="Tools >">
|
||||||
<menu_item_call enabled="false" hidden="false" label="S. Count" mouse_opaque="true" name="ScriptCount">
|
<menu_item_call enabled="false" hidden="false" label="S. Count" mouse_opaque="true" name="ScriptCount">
|
||||||
<on_click function="Object.ScriptCount" />
|
<on_click function="Object.ScriptCount" />
|
||||||
@@ -47,10 +43,15 @@
|
|||||||
<menu_item_call enabled="false" hidden="false" label="Client ID" mouse_opaque="true" name="ClientID">
|
<menu_item_call enabled="false" hidden="false" label="Client ID" mouse_opaque="true" name="ClientID">
|
||||||
<on_click function="Avatar.ClientID" />
|
<on_click function="Avatar.ClientID" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
<menu_item_call enabled="true" label="Derender" mouse_opaque="true" name="Derender">
|
<menu_item_call enabled="true" label="Derender" mouse_opaque="true" name="Derender">
|
||||||
<on_click function="Object.DERENDER" />
|
<on_click function="Object.DERENDER" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
</pie_menu>
|
</pie_menu>
|
||||||
|
<menu_item_call enabled="false" label="Eject..." mouse_opaque="true" name="Eject...">
|
||||||
|
<on_click function="Avatar.Eject" />
|
||||||
|
<on_enable function="Avatar.EnableFreezeEject" />
|
||||||
|
</menu_item_call>
|
||||||
|
<menu_item_separator />
|
||||||
<menu_item_call enabled="true" label="Inspect" mouse_opaque="true" name="Object Inspect">
|
<menu_item_call enabled="true" label="Inspect" mouse_opaque="true" name="Object Inspect">
|
||||||
<on_click function="Object.Inspect" />
|
<on_click function="Object.Inspect" />
|
||||||
<on_enable function="Object.EnableInspect" />
|
<on_enable function="Object.EnableInspect" />
|
||||||
|
|||||||
@@ -44,42 +44,43 @@
|
|||||||
<on_enable function="Object.EnableReturn" />
|
<on_enable function="Object.EnableReturn" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
<pie_menu label="More >" name="Rate Menu">
|
<pie_menu label="More >" name="Rate Menu">
|
||||||
<pie_menu label="Tools >" name="Rate Menu">
|
<menu_item_separator />
|
||||||
<menu_item_call enabled="false" label="Destroy" mouse_opaque="true" name="Destroy">
|
<pie_menu label="Tools >" name="Rate Menu">
|
||||||
<on_click function="Object.Destroy" />
|
<menu_item_call enabled="false" label="Destroy" mouse_opaque="true" name="Destroy">
|
||||||
<on_enable function="Object.EnableDestroy" />
|
<on_click function="Object.Destroy" />
|
||||||
</menu_item_call>
|
<on_enable function="Object.EnableDestroy" />
|
||||||
<menu_item_call enabled="false" label="Explode" mouse_opaque="true" name="Explode">
|
</menu_item_call>
|
||||||
<on_click function="Object.Explode" />
|
<menu_item_call enabled="false" label="Explode" mouse_opaque="true" name="Explode">
|
||||||
<on_enable function="Object.EnableExplode" />
|
<on_click function="Object.Explode" />
|
||||||
</menu_item_call>
|
<on_enable function="Object.EnableExplode" />
|
||||||
<menu_item_call enabled="true" hidden="false" label="Measure" mouse_opaque="true" name="Measure">
|
</menu_item_call>
|
||||||
<on_click function="Object.Measure" />
|
<menu_item_call enabled="true" hidden="false" label="Measure" mouse_opaque="true" name="Measure">
|
||||||
</menu_item_call>
|
<on_click function="Object.Measure" />
|
||||||
<menu_item_call enabled="true" hidden="false" label="Data" mouse_opaque="true" name="Data">
|
</menu_item_call>
|
||||||
<on_click function="Object.Data" />
|
<menu_item_call enabled="true" hidden="false" label="Data" mouse_opaque="true" name="Data">
|
||||||
</menu_item_call>
|
<on_click function="Object.Data" />
|
||||||
<menu_item_call enabled="false" hidden="false" label="S. Count" mouse_opaque="true" name="ScriptCount">
|
</menu_item_call>
|
||||||
<on_click function="Object.ScriptCount" />
|
<menu_item_call enabled="false" hidden="false" label="S. Count" mouse_opaque="true" name="ScriptCount">
|
||||||
<on_visible function="Object.VisibleScriptCount" />
|
<on_click function="Object.ScriptCount" />
|
||||||
</menu_item_call>
|
<on_visible function="Object.VisibleScriptCount" />
|
||||||
<menu_item_call bottom="-487" enabled="false" height="19" label="Reset Scripts"
|
</menu_item_call>
|
||||||
left="0" mouse_opaque="true" name="Reset Scripts" width="250">
|
<menu_item_call bottom="-487" enabled="false" height="19" label="Reset Scripts"
|
||||||
<on_click function="Tools.SelectedScriptAction" userdata="reset" />
|
left="0" mouse_opaque="true" name="Reset Scripts" width="250">
|
||||||
<on_enable function="EditableSelected" />
|
<on_click function="Tools.SelectedScriptAction" userdata="reset" />
|
||||||
</menu_item_call>
|
<on_enable function="EditableSelected" />
|
||||||
</pie_menu>
|
</menu_item_call>
|
||||||
<menu_item_call enabled="false" label="Mute" mouse_opaque="true" name="Object Mute">
|
</pie_menu>
|
||||||
<on_click function="Object.Mute" />
|
<menu_item_call enabled="false" label="Mute" mouse_opaque="true" name="Object Mute">
|
||||||
<on_enable function="Object.EnableMute" />
|
<on_click function="Object.Mute" />
|
||||||
</menu_item_call>
|
<on_enable function="Object.EnableMute" />
|
||||||
|
</menu_item_call>
|
||||||
<menu_item_call enabled="true" label="Inspect" mouse_opaque="true" name="Object Inspect">
|
<menu_item_call enabled="true" label="Inspect" mouse_opaque="true" name="Object Inspect">
|
||||||
<on_click function="Object.Inspect" />
|
<on_click function="Object.Inspect" />
|
||||||
<on_enable function="Object.EnableInspect" />
|
<on_enable function="Object.EnableInspect" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
<menu_item_call enabled="true" label="Derender" mouse_opaque="true" name="Derender">
|
<menu_item_call enabled="true" label="Derender" mouse_opaque="true" name="Derender">
|
||||||
<on_click function="Object.DERENDER" />
|
<on_click function="Object.DERENDER" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
</pie_menu>
|
</pie_menu>
|
||||||
<menu_item_call enabled="false" label="Buy..." mouse_opaque="true" name="Buy...">
|
<menu_item_call enabled="false" label="Buy..." mouse_opaque="true" name="Buy...">
|
||||||
<on_click function="Object.Buy" />
|
<on_click function="Object.Buy" />
|
||||||
|
|||||||
@@ -49,7 +49,11 @@
|
|||||||
mouse_opaque="true" name="All Clothes" width="118">
|
mouse_opaque="true" name="All Clothes" width="118">
|
||||||
<on_click function="Edit.TakeOff" userdata="all" />
|
<on_click function="Edit.TakeOff" userdata="all" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
<menu_item_separator />
|
<menu_item_call bottom="-162" enabled="false" height="19" label="Tattoo" left="0"
|
||||||
|
mouse_opaque="true" name="Self Tattoo" width="118">
|
||||||
|
<on_click function="Edit.TakeOff" userdata="tattoo" />
|
||||||
|
<on_enable function="Edit.EnableTakeOff" userdata="tattoo" />
|
||||||
|
</menu_item_call>
|
||||||
<menu_item_call bottom="-162" enabled="false" height="19" label="Underpants" left="0"
|
<menu_item_call bottom="-162" enabled="false" height="19" label="Underpants" left="0"
|
||||||
mouse_opaque="true" name="Self Underpants" width="118">
|
mouse_opaque="true" name="Self Underpants" width="118">
|
||||||
<on_click function="Edit.TakeOff" userdata="underpants" />
|
<on_click function="Edit.TakeOff" userdata="underpants" />
|
||||||
@@ -87,6 +91,7 @@
|
|||||||
<on_click function="Avatar.CopyUUID" />
|
<on_click function="Avatar.CopyUUID" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
</pie_menu>
|
</pie_menu>
|
||||||
|
<menu_item_separator />
|
||||||
<menu_item_call enabled="true" label="Gestures..." name="Gestures...">
|
<menu_item_call enabled="true" label="Gestures..." name="Gestures...">
|
||||||
<on_click function="ShowFloater" userdata="gestures" />
|
<on_click function="ShowFloater" userdata="gestures" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
|
|||||||
@@ -655,10 +655,14 @@
|
|||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
<menu_item_separator bottom="-113" enabled="true" height="8" label="-----------" left="0"
|
<menu_item_separator bottom="-113" enabled="true" height="8" label="-----------" left="0"
|
||||||
mouse_opaque="true" name="separator" width="169" />
|
mouse_opaque="true" name="separator" width="169" />
|
||||||
<menu_item_call bottom="-132" enabled="false" height="19" label="Environment Editor" left="0"
|
<menu_item_call bottom="-132" enabled="false" height="19" label="Environment Editor" left="0"
|
||||||
mouse_opaque="true" name="Environment Editor" width="169">
|
mouse_opaque="true" name="Environment Editor" width="169">
|
||||||
<on_click function="World.EnvSettings" userdata="editor" />
|
<on_click function="World.EnvSettings" userdata="editor" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
|
<menu_item_call bottom="-151" enabled="false" height="19" label="Day Cycle Editor" left="0"
|
||||||
|
mouse_opaque="true" name="Day Cycle Editor" width="169">
|
||||||
|
<on_click function="World.DayCycle" userdata="editor" />
|
||||||
|
</menu_item_call>
|
||||||
</menu>
|
</menu>
|
||||||
</menu>
|
</menu>
|
||||||
<menu bottom="-18" create_jump_keys="true" drop_shadow="true" enabled="true"
|
<menu bottom="-18" create_jump_keys="true" drop_shadow="true" enabled="true"
|
||||||
|
|||||||
@@ -4904,10 +4904,10 @@ Controls where and how fast the the small scaled version of the normal map moves
|
|||||||
icon="alert.tga"
|
icon="alert.tga"
|
||||||
name="NewSkyPreset"
|
name="NewSkyPreset"
|
||||||
type="alert">
|
type="alert">
|
||||||
Give me a name for the new sky.
|
Give me a name for the new sky.
|
||||||
<form name="form">
|
<form name="form">
|
||||||
<input name="message" type="text">
|
<input name="message" type="text">
|
||||||
New Preset
|
New Preset
|
||||||
</input>
|
</input>
|
||||||
<button
|
<button
|
||||||
default="true"
|
default="true"
|
||||||
@@ -4925,7 +4925,35 @@ New Preset
|
|||||||
icon="alertmodal.tga"
|
icon="alertmodal.tga"
|
||||||
name="ExistsSkyPresetAlert"
|
name="ExistsSkyPresetAlert"
|
||||||
type="alertmodal">
|
type="alertmodal">
|
||||||
Preset already exists!
|
Preset already exists!
|
||||||
|
</notification>
|
||||||
|
|
||||||
|
<notification
|
||||||
|
icon="alert.tga"
|
||||||
|
name="NewDaycyclePreset"
|
||||||
|
type="alert">
|
||||||
|
Set a name for the new day cycle.
|
||||||
|
<form name="form">
|
||||||
|
<input name="message" type="text">
|
||||||
|
New Day
|
||||||
|
</input>
|
||||||
|
<button
|
||||||
|
default="true"
|
||||||
|
index="0"
|
||||||
|
name="OK"
|
||||||
|
text="OK"/>
|
||||||
|
<button
|
||||||
|
index="1"
|
||||||
|
name="Cancel"
|
||||||
|
text="Cancel"/>
|
||||||
|
</form>
|
||||||
|
</notification>
|
||||||
|
|
||||||
|
<notification
|
||||||
|
icon="alertmodal.tga"
|
||||||
|
name="ExistsDaycylePresetAlert"
|
||||||
|
type="alertmodal">
|
||||||
|
Preset already exists!
|
||||||
</notification>
|
</notification>
|
||||||
|
|
||||||
<notification
|
<notification
|
||||||
|
|||||||
@@ -44,9 +44,9 @@
|
|||||||
height="18" left="-235" name="buddy_search_lineedit"
|
height="18" left="-235" name="buddy_search_lineedit"
|
||||||
tool_tip="The friend name you want to search for" width="130" />
|
tool_tip="The friend name you want to search for" width="130" />
|
||||||
<pad bottom="-7" height="0" left="-90" width="1" />
|
<pad bottom="-7" height="0" left="-90" width="1" />
|
||||||
<!--<button bottom_delta="-25" follows="top|right" height="22" label="Set Contact"
|
<button bottom_delta="-25" follows="top|right" height="22" label="Set Contact"
|
||||||
left_delta="0" name="assign_btn" tool_tip="Asign a friend to a Contact Group"
|
left_delta="0" name="assign_btn" tool_tip="Asign a friend to a Contact Group"
|
||||||
width="80" />-->
|
width="80" />
|
||||||
<button bottom_delta="-25" follows="top|right" height="22" label="IM/Call"
|
<button bottom_delta="-25" follows="top|right" height="22" label="IM/Call"
|
||||||
left_delta="0" name="im_btn" tool_tip="Open Instant Message session"
|
left_delta="0" name="im_btn" tool_tip="Open Instant Message session"
|
||||||
width="80" />
|
width="80" />
|
||||||
|
|||||||
@@ -311,12 +311,12 @@ Use #f for user's first name, #l for last name,
|
|||||||
label="Enable Clouds" left="10"
|
label="Enable Clouds" left="10"
|
||||||
mouse_opaque="true" name="enable_clouds" radio_style="false"
|
mouse_opaque="true" name="enable_clouds" radio_style="false"
|
||||||
width="400" />
|
width="400" />
|
||||||
<check_box bottom_delta="-20" left_delta="10" control_name="SkyUseClassicClouds" enabled="true"
|
<check_box bottom_delta="-20" left_delta="10" control_name="SkyUseClassicClouds" enabled="true"
|
||||||
follows="left|top" font="SansSerifSmall" height="16" initial_value="true"
|
follows="left|top" font="SansSerifSmall" height="16" initial_value="true"
|
||||||
label="Enable Classic Clouds" left="10"
|
label="Enable Classic Clouds" left="10"
|
||||||
mouse_opaque="true" name="enable_classic_clouds" radio_style="false"
|
mouse_opaque="true" name="enable_classic_clouds" radio_style="false"
|
||||||
width="400" />
|
width="400" />
|
||||||
<check_box bottom_delta="-20" left_delta="-10" control_name="SpeedRez" enabled="true"
|
<check_box bottom_delta="-20" left_delta="-10" control_name="SpeedRez" enabled="true"
|
||||||
follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
|
follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
|
||||||
label="Enable speed-rezzing via draw distance stepping" left="10"
|
label="Enable speed-rezzing via draw distance stepping" left="10"
|
||||||
mouse_opaque="true" name="speed_rez_check" radio_style="false"
|
mouse_opaque="true" name="speed_rez_check" radio_style="false"
|
||||||
|
|||||||
Reference in New Issue
Block a user