Merge remote branch 'upstream/master'

This commit is contained in:
Siana Gearz
2010-10-07 12:52:13 +02:00
31 changed files with 2468 additions and 127 deletions

View File

@@ -64,6 +64,7 @@ include_directories(
)
set(viewer_SOURCE_FILES
ascentdaycyclemanager.cpp
ascentfloatercontactgroups.cpp
ascentprefssys.cpp
ascentprefsvan.cpp
@@ -513,6 +514,7 @@ endif (LINUX)
set(viewer_HEADER_FILES
CMakeLists.txt
ViewerInstall.cmake
ascentdaycyclemanager.h
ascentfloatercontactgroups.h
ascentprefssys.h
ascentprefsvan.h

View File

@@ -867,6 +867,17 @@
<key>Value</key>
<string>Custom</string>
</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>
<map>
<key>Comment</key>

View File

@@ -1,36 +1,36 @@
<llsd>
<array>
<array>
<real>0</real>
<string>A-12AM</string>
</array>
<array>
<real>0.125</real>
<string>A-3AM</string>
</array>
<array>
<real>0.25</real>
<string>A-6AM</string>
</array>
<array>
<real>0.375</real>
<string>A-9AM</string>
</array>
<array>
<real>0.5</real>
<string>A-12PM</string>
</array>
<array>
<real>0.625</real>
<string>A-3PM</string>
</array>
<array>
<real>0.75</real>
<string>A-6PM</string>
</array>
<array>
<real>0.875</real>
<string>A-9PM</string>
</array>
</array>
</llsd>
<llsd>
<array>
<array>
<real>0</real>
<string>A-12AM</string>
</array>
<array>
<real>0.125</real>
<string>A-3AM</string>
</array>
<array>
<real>0.25</real>
<string>A-6AM</string>
</array>
<array>
<real>0.375</real>
<string>A-9AM</string>
</array>
<array>
<real>0.5</real>
<string>A-12PM</string>
</array>
<array>
<real>0.625</real>
<string>A-3PM</string>
</array>
<array>
<real>0.75</real>
<string>A-6PM</string>
</array>
<array>
<real>0.875</real>
<string>A-9PM</string>
</array>
</array>
</llsd>

View File

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

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

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

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

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

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

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

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

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

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

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

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

View 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

View File

@@ -37,6 +37,7 @@
#include "pipeline.h"
#include "llsky.h"
#include "llboost.h"
#include "llsliderctrl.h"
#include "llmultislider.h"
#include "llmultisliderctrl.h"
@@ -54,12 +55,16 @@
#include "llviewerwindow.h"
#include "llwlparamset.h"
#include "llwldaycycle.h"
#include "llwlparammanager.h"
#include "ascentdaycyclemanager.h" //Ascent Addition
#include "llpostprocess.h"
#include "llfloaterwindlight.h"
LLFloaterDayCycle* LLFloaterDayCycle::sDayCycle = NULL;
std::set<std::string> LLFloaterDayCycle::sDefaultPresets;
std::map<std::string, LLWLSkyKey> LLFloaterDayCycle::sSliderToKey;
const F32 LLFloaterDayCycle::sHoursPerDay = 24.0f;
@@ -88,6 +93,37 @@ LLFloaterDayCycle::LLFloaterDayCycle() : LLFloater(std::string("Day Cycle Floate
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
initCallbacks();
}
@@ -130,6 +166,15 @@ void LLFloaterDayCycle::initCallbacks(void)
childSetAction("WLLoadDayCycle", onLoadDayCycle, 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("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)
{
// if no keys, do nothing
@@ -307,8 +562,8 @@ void LLFloaterDayCycle::onStopAnimSky(void* userData)
void LLFloaterDayCycle::onUseLindenTime(void* userData)
{
LLFloaterWindLight* wl = LLFloaterWindLight::instance();
LLComboBox* box = wl->getChild<LLComboBox>("WLPresetsCombo");
LLFloaterDayCycle* dc = LLFloaterDayCycle::instance();
LLComboBox* box = dc->getChild<LLComboBox>("DayCyclePresetsCombo");
box->selectByValue("");
LLWLParamManager::instance()->mAnimator.mIsRunning = true;
@@ -317,7 +572,7 @@ void LLFloaterDayCycle::onUseLindenTime(void* userData)
void LLFloaterDayCycle::onLoadDayCycle(void* userData)
{
LLWLParamManager::instance()->mDay.loadDayCycle("Default.xml");
//LLWLParamManager::instance()->mDay.loadDayCycle("Default.xml");
// sync it all up
syncSliderTrack();
@@ -337,7 +592,7 @@ void LLFloaterDayCycle::onLoadDayCycle(void* userData)
void LLFloaterDayCycle::onSaveDayCycle(void* userData)
{
LLWLParamManager::instance()->mDay.saveDayCycle("Default.xml");
//LLWLParamManager::instance()->mDay.saveDayCycle("Default.xml");
}

View File

@@ -99,10 +99,30 @@ public:
/// delete a key frame
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);
/// button to save day
/// button to save day OLD -HgB
static void onSaveDayCycle(void* userData);
/// toggle for Linden time
@@ -140,6 +160,9 @@ private:
// map of sliders to parameters
static std::map<std::string, LLWLSkyKey> sSliderToKey;
//Presets default
static std::set<std::string> sDefaultPresets;
static const F32 sHoursPerDay;
};

View File

@@ -193,11 +193,13 @@
#include "llsocks5.h"
#include "jcfloaterareasearch.h"
// <edit>
#include "llpanellogin.h"
//#include "llfloateravatars.h"
//#include "llactivation.h"
#include "wlfPanel_AdvSettings.h" //Lower right Windlight and Rendering options
#include "ascentdaycyclemanager.h"
#include "llao.h"
#include "llfloaterblacklist.h"
#include "scriptcounter.h"
@@ -2528,6 +2530,7 @@ bool idle_startup()
// init the shader managers
LLPostProcess::initClass();
LLWLParamManager::initClass();
AscentDayCycleManager::initClass();
LLWaterParamManager::initClass();
// RN: don't initialize VO classes in drone mode, they are too closely tied to rendering

View File

@@ -3744,16 +3744,12 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
{
estate_owner = parent_estate->getOwner();
}
/*this->getClientInfo
std::string name;
name += firstname->getString();
name += " ";
name += lastname->getString();
//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();
}*/
}
//check if they are an estate owner at their current position
else if(estate_owner.notNull() && this->getID() == estate_owner)
{
@@ -9398,7 +9394,10 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
}
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
}

View File

@@ -40,7 +40,9 @@
#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
mTimeMap.clear();
// now load the file
std::string pathName(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,
"windlight/days", fileName));
llinfos << "Loading DayCycle settings from " << pathName << llendl;
llifstream day_cycle_xml(pathName);
if (day_cycle_xml.is_open())
// 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;
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
LLSD day_data(LLSD::emptyArray());
LLPointer<LLSDParser> parser = new LLSDXMLParser();
parser->parse(day_cycle_xml, day_data, LLSDSerialize::SIZE_UNLIMITED);
llinfos << "Loading day cycle into timeline..." << llendl;
// add each key
for(S32 i = 0; i < day_data.size(); ++i)
{
llinfos << "Loading value" << i << llendl;
// make sure it's a two array
if(day_data[i].size() != 2)
{
@@ -95,14 +114,39 @@ void LLWLDayCycle::loadDayCycle(const std::string & fileName)
day_cycle_xml.close();
}
else
{
llwarns << "Can't find " << fileName << llendl;
return;
}
}
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));
//llinfos << "Saving WindLight settings to " << pathName << llendl;
escaped_filename += ".xml";
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();
mIt != mTimeMap.end();
@@ -114,7 +158,6 @@ void LLWLDayCycle::saveDayCycle(const std::string & fileName)
day_data.append(key);
}
llofstream day_cycle_xml(pathName);
LLPointer<LLSDFormatter> formatter = new LLSDXMLFormatter();
formatter->format(day_data, day_cycle_xml, LLSDFormatter::OPTIONS_PRETTY);
day_cycle_xml.close();

View File

@@ -45,6 +45,9 @@ class LLWLDayCycle;
class LLWLDayCycle
{
public:
std::string mName;
public:
// lists what param sets are used when during the day

View File

@@ -553,7 +553,7 @@ LLWLParamManager * LLWLParamManager::instance()
sInstance->loadPresets(LLStringUtil::null);
// 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
sInstance->getParamSet("Default", sInstance->mCurParams);

View File

@@ -237,14 +237,36 @@
label="Use Estate Time" label_selected="Go to Estate Time"
left_delta="55" mouse_opaque="true" name="WLUseLindenTime"
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"
left="480" mouse_opaque="true" name="WLSaveDayCycle" scale_image="true"
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"
left="480" mouse_opaque="true" name="WLLoadDayCycle" scale_image="true"
width="150" />
width="150" />-->
</panel>
</tab_container>
<string name="DaycycleDefaultNames">
Default:Happy%20Bivouac
</string>
</floater>

View File

@@ -3,10 +3,10 @@
can_minimize="false" can_resize="false" can_tear_off="true" enabled="true"
height="510" left="278" min_height="100" min_width="100"
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"
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"
name="Cancel" scale_image="true" width="82" />
<check_box bottom="-216" enabled="true" follows="left|top" font="SansSerifSmall"

View File

@@ -11,6 +11,14 @@
<on_click function="Object.Touch" />
<on_enable function="Object.EnableTouch" userdata="Touch" name="EnableTouch"/>
</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 &gt;" name="Tools &gt;">
<menu_item_call enabled="false" hidden="false" label="S. Count" mouse_opaque="true" name="ScriptCount">
<on_click function="Object.ScriptCount" />
@@ -23,19 +31,11 @@
<menu_item_call enabled="false" label="Data" mouse_opaque="true" name="Data">
<on_click function="Object.Data" />
</menu_item_call>
<menu_item_call enabled="true" label="Derender" mouse_opaque="true" name="Derender">
<on_click function="Object.DERENDER" />
<on_enable function="Object.EnableDerender" />
</menu_item_call>
<menu_item_call enabled="true" label="Derender" mouse_opaque="true" name="Derender">
<on_click function="Object.DERENDER" />
<on_enable function="Object.EnableDerender" />
</menu_item_call>
</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...">
<on_click function="ShowFloater" userdata="appearance" />
<on_enable function="Edit.EnableCustomizeAvatar" />

View File

@@ -32,10 +32,6 @@
<menu_item_call enabled="true" label="Group Invite..." mouse_opaque="true" name="Invite...">
<on_click function="Avatar.InviteToGroup" />
</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 &gt;" name="Tools &gt;">
<menu_item_call enabled="false" hidden="false" label="S. Count" mouse_opaque="true" name="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">
<on_click function="Avatar.ClientID" />
</menu_item_call>
<menu_item_call enabled="true" label="Derender" mouse_opaque="true" name="Derender">
<on_click function="Object.DERENDER" />
</menu_item_call>
<menu_item_call enabled="true" label="Derender" mouse_opaque="true" name="Derender">
<on_click function="Object.DERENDER" />
</menu_item_call>
</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">
<on_click function="Object.Inspect" />
<on_enable function="Object.EnableInspect" />

View File

@@ -44,42 +44,43 @@
<on_enable function="Object.EnableReturn" />
</menu_item_call>
<pie_menu label="More &gt;" name="Rate Menu">
<pie_menu label="Tools &gt;" name="Rate Menu">
<menu_item_call enabled="false" label="Destroy" mouse_opaque="true" name="Destroy">
<on_click function="Object.Destroy" />
<on_enable function="Object.EnableDestroy" />
</menu_item_call>
<menu_item_call enabled="false" label="Explode" mouse_opaque="true" name="Explode">
<on_click function="Object.Explode" />
<on_enable function="Object.EnableExplode" />
</menu_item_call>
<menu_item_call enabled="true" hidden="false" label="Measure" mouse_opaque="true" name="Measure">
<on_click function="Object.Measure" />
</menu_item_call>
<menu_item_call enabled="true" hidden="false" label="Data" mouse_opaque="true" name="Data">
<on_click function="Object.Data" />
</menu_item_call>
<menu_item_call enabled="false" hidden="false" label="S. Count" mouse_opaque="true" name="ScriptCount">
<on_click function="Object.ScriptCount" />
<on_visible function="Object.VisibleScriptCount" />
</menu_item_call>
<menu_item_call bottom="-487" enabled="false" height="19" label="Reset Scripts"
left="0" mouse_opaque="true" name="Reset Scripts" width="250">
<on_click function="Tools.SelectedScriptAction" userdata="reset" />
<on_enable function="EditableSelected" />
</menu_item_call>
</pie_menu>
<menu_item_call enabled="false" label="Mute" mouse_opaque="true" name="Object Mute">
<on_click function="Object.Mute" />
<on_enable function="Object.EnableMute" />
</menu_item_call>
<menu_item_separator />
<pie_menu label="Tools &gt;" name="Rate Menu">
<menu_item_call enabled="false" label="Destroy" mouse_opaque="true" name="Destroy">
<on_click function="Object.Destroy" />
<on_enable function="Object.EnableDestroy" />
</menu_item_call>
<menu_item_call enabled="false" label="Explode" mouse_opaque="true" name="Explode">
<on_click function="Object.Explode" />
<on_enable function="Object.EnableExplode" />
</menu_item_call>
<menu_item_call enabled="true" hidden="false" label="Measure" mouse_opaque="true" name="Measure">
<on_click function="Object.Measure" />
</menu_item_call>
<menu_item_call enabled="true" hidden="false" label="Data" mouse_opaque="true" name="Data">
<on_click function="Object.Data" />
</menu_item_call>
<menu_item_call enabled="false" hidden="false" label="S. Count" mouse_opaque="true" name="ScriptCount">
<on_click function="Object.ScriptCount" />
<on_visible function="Object.VisibleScriptCount" />
</menu_item_call>
<menu_item_call bottom="-487" enabled="false" height="19" label="Reset Scripts"
left="0" mouse_opaque="true" name="Reset Scripts" width="250">
<on_click function="Tools.SelectedScriptAction" userdata="reset" />
<on_enable function="EditableSelected" />
</menu_item_call>
</pie_menu>
<menu_item_call enabled="false" label="Mute" mouse_opaque="true" name="Object Mute">
<on_click function="Object.Mute" />
<on_enable function="Object.EnableMute" />
</menu_item_call>
<menu_item_call enabled="true" label="Inspect" mouse_opaque="true" name="Object Inspect">
<on_click function="Object.Inspect" />
<on_enable function="Object.EnableInspect" />
</menu_item_call>
<menu_item_call enabled="true" label="Derender" mouse_opaque="true" name="Derender">
<on_click function="Object.DERENDER" />
</menu_item_call>
<menu_item_call enabled="true" label="Derender" mouse_opaque="true" name="Derender">
<on_click function="Object.DERENDER" />
</menu_item_call>
</pie_menu>
<menu_item_call enabled="false" label="Buy..." mouse_opaque="true" name="Buy...">
<on_click function="Object.Buy" />

View File

@@ -49,7 +49,11 @@
mouse_opaque="true" name="All Clothes" width="118">
<on_click function="Edit.TakeOff" userdata="all" />
</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"
mouse_opaque="true" name="Self Underpants" width="118">
<on_click function="Edit.TakeOff" userdata="underpants" />
@@ -87,6 +91,7 @@
<on_click function="Avatar.CopyUUID" />
</menu_item_call>
</pie_menu>
<menu_item_separator />
<menu_item_call enabled="true" label="Gestures..." name="Gestures...">
<on_click function="ShowFloater" userdata="gestures" />
</menu_item_call>

View File

@@ -655,10 +655,14 @@
</menu_item_call>
<menu_item_separator bottom="-113" enabled="true" height="8" label="-----------" left="0"
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">
<on_click function="World.EnvSettings" userdata="editor" />
</menu_item_call>
<on_click function="World.EnvSettings" userdata="editor" />
</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 bottom="-18" create_jump_keys="true" drop_shadow="true" enabled="true"

View File

@@ -4904,10 +4904,10 @@ Controls where and how fast the the small scaled version of the normal map moves
icon="alert.tga"
name="NewSkyPreset"
type="alert">
Give me a name for the new sky.
Give me a name for the new sky.
<form name="form">
<input name="message" type="text">
New Preset
New Preset
</input>
<button
default="true"
@@ -4925,7 +4925,35 @@ New Preset
icon="alertmodal.tga"
name="ExistsSkyPresetAlert"
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