diff options
Diffstat (limited to 'linden/indra')
142 files changed, 25082 insertions, 23060 deletions
diff --git a/linden/indra/cmake/CMakeLists.txt b/linden/indra/cmake/CMakeLists.txt index e69de29..4a7d633 100644 --- a/linden/indra/cmake/CMakeLists.txt +++ b/linden/indra/cmake/CMakeLists.txt | |||
@@ -0,0 +1,119 @@ | |||
1 | # -*- cmake -*- | ||
2 | |||
3 | include(00-Common) | ||
4 | |||
5 | project(cmake) | ||
6 | |||
7 | set(cmake_SOURCE_FILES | ||
8 | CMakeLists.txt | ||
9 | |||
10 | 00-Common.cmake | ||
11 | APR.cmake | ||
12 | Audio.cmake | ||
13 | BerkeleyDB.cmake | ||
14 | Boost.cmake | ||
15 | BuildVersion.cmake | ||
16 | CARes.cmake | ||
17 | CMakeCopyIfDifferent.cmake | ||
18 | CopyBackToSource.cmake | ||
19 | CopyWinLibs.cmake | ||
20 | CSharpMacros.cmake | ||
21 | CURL.cmake | ||
22 | DBusGlib.cmake | ||
23 | DirectX.cmake | ||
24 | ELFIO.cmake | ||
25 | ExamplePlugin.cmake | ||
26 | EXPAT.cmake | ||
27 | FindAPR.cmake | ||
28 | FindBerkeleyDB.cmake | ||
29 | FindCARes.cmake | ||
30 | FindELFIO.cmake | ||
31 | FindGooglePerfTools.cmake | ||
32 | FindHunSpell.cmake | ||
33 | FindJsonCpp.cmake | ||
34 | FindLLQtWebkit.cmake | ||
35 | FindMono.cmake | ||
36 | FindMT.cmake | ||
37 | FindMySQL.cmake | ||
38 | FindNDOF.cmake | ||
39 | FindOpenJPEG.cmake | ||
40 | FindSCP.cmake | ||
41 | FindTut.cmake | ||
42 | FindXmlRpcEpi.cmake | ||
43 | FindZLIB.cmake | ||
44 | FMOD.cmake | ||
45 | FreeType.cmake | ||
46 | Glui.cmake | ||
47 | Glut.cmake | ||
48 | GooglePerfTools.cmake | ||
49 | GStreamer010Plugin.cmake | ||
50 | HUNSPELL.cmake | ||
51 | JPEG.cmake | ||
52 | JsonCpp.cmake | ||
53 | Linking.cmake | ||
54 | LLAddBuildTest.cmake | ||
55 | LLAudio.cmake | ||
56 | LLCharacter.cmake | ||
57 | LLCommon.cmake | ||
58 | LLCrashLogger.cmake | ||
59 | LLDatabase.cmake | ||
60 | LLImage.cmake | ||
61 | LLImageJ2COJ.cmake | ||
62 | LLInventory.cmake | ||
63 | LLMath.cmake | ||
64 | LLMessage.cmake | ||
65 | LLPlugin.cmake | ||
66 | LLPrimitive.cmake | ||
67 | LLRender.cmake | ||
68 | LLScene.cmake | ||
69 | LLUI.cmake | ||
70 | LLVFS.cmake | ||
71 | LLWindow.cmake | ||
72 | LLXML.cmake | ||
73 | LScript.cmake | ||
74 | MediaPluginBase.cmake | ||
75 | MonoDeps.cmake | ||
76 | MonoEmbed.cmake | ||
77 | Mozlib.cmake | ||
78 | MySQL.cmake | ||
79 | NDOF.cmake | ||
80 | OPENAL.cmake | ||
81 | OpenGL.cmake | ||
82 | OpenJPEG.cmake | ||
83 | OpenSSL.cmake | ||
84 | PluginAPI.cmake | ||
85 | PNG.cmake | ||
86 | Prebuilt.cmake | ||
87 | PulseAudio.cmake | ||
88 | Python.cmake | ||
89 | QuickTimePlugin.cmake | ||
90 | RunBuildTest.cmake | ||
91 | TemplateCheck.cmake | ||
92 | Tut.cmake | ||
93 | UI.cmake | ||
94 | UnixInstall.cmake | ||
95 | Variables.cmake | ||
96 | ViewerArtwork.cmake | ||
97 | ViewerMiscLibs.cmake | ||
98 | WebKitLibPlugin.cmake | ||
99 | XmlRpcEpi.cmake | ||
100 | ZLIB.cmake | ||
101 | ) | ||
102 | |||
103 | source_group("Shared Rules" FILES ${cmake_SOURCE_FILES}) | ||
104 | |||
105 | set(master_SOURCE_FILES | ||
106 | ../CMakeLists.txt | ||
107 | ../develop.py | ||
108 | ) | ||
109 | |||
110 | source_group("Master Rules" FILES ${master_SOURCE_FILES}) | ||
111 | |||
112 | set_source_files_properties(${cmake_SOURCE_FILES} ${master_SOURCE_FILES} | ||
113 | PROPERTIES HEADER_FILE_ONLY TRUE) | ||
114 | |||
115 | add_library(cmake | ||
116 | cmake_dummy.cpp | ||
117 | ${cmake_SOURCE_FILES} | ||
118 | ${master_SOURCE_FILES} | ||
119 | ) | ||
diff --git a/linden/indra/cmake/CopyWinLibs.cmake b/linden/indra/cmake/CopyWinLibs.cmake index b4becf7..e7f1aa3 100644 --- a/linden/indra/cmake/CopyWinLibs.cmake +++ b/linden/indra/cmake/CopyWinLibs.cmake | |||
@@ -32,6 +32,67 @@ set(debug_files | |||
32 | libapr-1.dll | 32 | libapr-1.dll |
33 | libaprutil-1.dll | 33 | libaprutil-1.dll |
34 | libapriconv-1.dll | 34 | libapriconv-1.dll |
35 | |||
36 | # gstreamer streaming files below | ||
37 | avcodec-gpl-52.dll | ||
38 | avdevice-gpl-52.dll | ||
39 | avfilter-gpl-1.dll | ||
40 | avformat-gpl-52.dll | ||
41 | avutil-gpl-50.dll | ||
42 | iconv.dll | ||
43 | liba52-0.dll | ||
44 | libbz2.dll | ||
45 | libcelt-0.dll | ||
46 | libdca-0.dll | ||
47 | libexpat-1.dll | ||
48 | libfaad-2.dll | ||
49 | libFLAC-8.dll | ||
50 | libgcrypt-11.dll | ||
51 | libgio-2.0-0.dll | ||
52 | libglib-2.0-0.dll | ||
53 | libgmodule-2.0-0.dll | ||
54 | libgnutls-26.dll | ||
55 | libgobject-2.0-0.dll | ||
56 | libgpg-error-0.dll | ||
57 | libgstapp-0.10.dll | ||
58 | libgstaudio-0.10.dll | ||
59 | libgstbase-0.10.dll | ||
60 | libgstcontroller-0.10.dll | ||
61 | libgstdataprotocol-0.10.dll | ||
62 | libgstfft-0.10.dll | ||
63 | libgstinterfaces-0.10.dll | ||
64 | libgstnet-0.10.dll | ||
65 | libgstnetbuffer-0.10.dll | ||
66 | libgstpbutils-0.10.dll | ||
67 | libgstphotography-0.10.dll | ||
68 | libgstreamer-0.10.dll | ||
69 | libgstriff-0.10.dll | ||
70 | libgstrtp-0.10.dll | ||
71 | libgstrtsp-0.10.dll | ||
72 | libgstsdp-0.10.dll | ||
73 | libgstsignalprocessor-0.10.dll | ||
74 | libgsttag-0.10.dll | ||
75 | libgstvideo-0.10.dll | ||
76 | libgthread-2.0-0.dll | ||
77 | libmms-0.dll | ||
78 | libmpeg2-0.dll | ||
79 | libneon-27.dll | ||
80 | libogg-0.dll | ||
81 | liboil-0.3-0.dll | ||
82 | libsoup-2.4-1.dll | ||
83 | libtasn1-3.dll | ||
84 | libtheora-0.dll | ||
85 | libtheoradec-1.dll | ||
86 | libvorbis-0.dll | ||
87 | libvorbisenc-2.dll | ||
88 | libvorbisfile-3.dll | ||
89 | libwavpack-1.dll | ||
90 | libx264-67.dll | ||
91 | libxml2-2.dll | ||
92 | libxml2.dll | ||
93 | SDL.dll | ||
94 | xvidcore.dll | ||
95 | z.dll | ||
35 | ) | 96 | ) |
36 | 97 | ||
37 | copy_if_different( | 98 | copy_if_different( |
@@ -215,6 +276,67 @@ set(release_files | |||
215 | libapr-1.dll | 276 | libapr-1.dll |
216 | libaprutil-1.dll | 277 | libaprutil-1.dll |
217 | libapriconv-1.dll | 278 | libapriconv-1.dll |
279 | |||
280 | # gstreamer streaming files below | ||
281 | avcodec-gpl-52.dll | ||
282 | avdevice-gpl-52.dll | ||
283 | avfilter-gpl-1.dll | ||
284 | avformat-gpl-52.dll | ||
285 | avutil-gpl-50.dll | ||
286 | iconv.dll | ||
287 | liba52-0.dll | ||
288 | libbz2.dll | ||
289 | libcelt-0.dll | ||
290 | libdca-0.dll | ||
291 | libexpat-1.dll | ||
292 | libfaad-2.dll | ||
293 | libFLAC-8.dll | ||
294 | libgcrypt-11.dll | ||
295 | libgio-2.0-0.dll | ||
296 | libglib-2.0-0.dll | ||
297 | libgmodule-2.0-0.dll | ||
298 | libgnutls-26.dll | ||
299 | libgobject-2.0-0.dll | ||
300 | libgpg-error-0.dll | ||
301 | libgstapp-0.10.dll | ||
302 | libgstaudio-0.10.dll | ||
303 | libgstbase-0.10.dll | ||
304 | libgstcontroller-0.10.dll | ||
305 | libgstdataprotocol-0.10.dll | ||
306 | libgstfft-0.10.dll | ||
307 | libgstinterfaces-0.10.dll | ||
308 | libgstnet-0.10.dll | ||
309 | libgstnetbuffer-0.10.dll | ||
310 | libgstpbutils-0.10.dll | ||
311 | libgstphotography-0.10.dll | ||
312 | libgstreamer-0.10.dll | ||
313 | libgstriff-0.10.dll | ||
314 | libgstrtp-0.10.dll | ||
315 | libgstrtsp-0.10.dll | ||
316 | libgstsdp-0.10.dll | ||
317 | libgstsignalprocessor-0.10.dll | ||
318 | libgsttag-0.10.dll | ||
319 | libgstvideo-0.10.dll | ||
320 | libgthread-2.0-0.dll | ||
321 | libmms-0.dll | ||
322 | libmpeg2-0.dll | ||
323 | libneon-27.dll | ||
324 | libogg-0.dll | ||
325 | liboil-0.3-0.dll | ||
326 | libsoup-2.4-1.dll | ||
327 | libtasn1-3.dll | ||
328 | libtheora-0.dll | ||
329 | libtheoradec-1.dll | ||
330 | libvorbis-0.dll | ||
331 | libvorbisenc-2.dll | ||
332 | libvorbisfile-3.dll | ||
333 | libwavpack-1.dll | ||
334 | libx264-67.dll | ||
335 | libxml2-2.dll | ||
336 | libxml2.dll | ||
337 | SDL.dll | ||
338 | xvidcore.dll | ||
339 | z.dll | ||
218 | ) | 340 | ) |
219 | 341 | ||
220 | copy_if_different( | 342 | copy_if_different( |
diff --git a/linden/indra/cmake/GStreamer010Plugin.cmake b/linden/indra/cmake/GStreamer010Plugin.cmake index ec9b828..9d2c553 100644 --- a/linden/indra/cmake/GStreamer010Plugin.cmake +++ b/linden/indra/cmake/GStreamer010Plugin.cmake | |||
@@ -10,9 +10,8 @@ if (STANDALONE) | |||
10 | else (STANDALONE) | 10 | else (STANDALONE) |
11 | 11 | ||
12 | # Possibly libxml and glib should have their own .cmake file instead... | 12 | # Possibly libxml and glib should have their own .cmake file instead... |
13 | use_prebuilt_binary(glib) # gstreamer needs glib | 13 | use_prebuilt_binary(gstreamer) # includes glib, libxml, and iconv on Windows |
14 | use_prebuilt_binary(libxml) | 14 | use_prebuilt_binary(gstreamer-plugins) |
15 | use_prebuilt_binary(gstreamer) | ||
16 | set(GSTREAMER010_FOUND ON FORCE BOOL) | 15 | set(GSTREAMER010_FOUND ON FORCE BOOL) |
17 | set(GSTREAMER010_PLUGINS_BASE_FOUND ON FORCE BOOL) | 16 | set(GSTREAMER010_PLUGINS_BASE_FOUND ON FORCE BOOL) |
18 | if (WINDOWS) | 17 | if (WINDOWS) |
@@ -22,6 +21,8 @@ else (STANDALONE) | |||
22 | ${LIBS_PREBUILT_DIR}/include/libxml2 | 21 | ${LIBS_PREBUILT_DIR}/include/libxml2 |
23 | ) | 22 | ) |
24 | else (WINDOWS) | 23 | else (WINDOWS) |
24 | use_prebuilt_binary(glib) # gstreamer needs glib | ||
25 | use_prebuilt_binary(libxml) | ||
25 | set(GSTREAMER010_INCLUDE_DIRS | 26 | set(GSTREAMER010_INCLUDE_DIRS |
26 | ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/gstreamer-0.10 | 27 | ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/gstreamer-0.10 |
27 | ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/glib-2.0 | 28 | ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/glib-2.0 |
@@ -38,7 +39,8 @@ if (WINDOWS) | |||
38 | gstaudio-0.10.lib | 39 | gstaudio-0.10.lib |
39 | gstbase-0.10.lib | 40 | gstbase-0.10.lib |
40 | gstreamer-0.10.lib | 41 | gstreamer-0.10.lib |
41 | gstvideo-0.10.lib | 42 | gstvideo-0.10.lib #slvideoplugin |
43 | gstinterfaces-0.10.lib | ||
42 | gobject-2.0 | 44 | gobject-2.0 |
43 | gmodule-2.0 | 45 | gmodule-2.0 |
44 | gthread-2.0 | 46 | gthread-2.0 |
diff --git a/linden/indra/cmake/QuickTimePlugin.cmake b/linden/indra/cmake/QuickTimePlugin.cmake index 8afd8f3..1693d0f 100644 --- a/linden/indra/cmake/QuickTimePlugin.cmake +++ b/linden/indra/cmake/QuickTimePlugin.cmake | |||
@@ -42,5 +42,7 @@ mark_as_advanced(QUICKTIME_LIBRARY) | |||
42 | 42 | ||
43 | if (QUICKTIME_LIBRARY) | 43 | if (QUICKTIME_LIBRARY) |
44 | set(QUICKTIME ON CACHE BOOL "Build with QuickTime streaming media support.") | 44 | set(QUICKTIME ON CACHE BOOL "Build with QuickTime streaming media support.") |
45 | else (QUICKTIME_LIBRARY) | ||
46 | message(STATUS "CMake cannot find the Quicktime SDK. Building without Quicktime support!") | ||
45 | endif (QUICKTIME_LIBRARY) | 47 | endif (QUICKTIME_LIBRARY) |
46 | 48 | ||
diff --git a/linden/indra/cmake/cmake_dummy.cpp b/linden/indra/cmake/cmake_dummy.cpp new file mode 100644 index 0000000..25191e2 --- /dev/null +++ b/linden/indra/cmake/cmake_dummy.cpp | |||
@@ -0,0 +1,30 @@ | |||
1 | /** | ||
2 | * @file cmake_dummy.cpp | ||
3 | * | ||
4 | * $LicenseInfo:firstyear=2008&license=viewergpl$ | ||
5 | * | ||
6 | * Copyright (c) 2008-2009, Linden Research, Inc. | ||
7 | * | ||
8 | * Second Life Viewer Source Code | ||
9 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
10 | * to you under the terms of the GNU General Public License, version 2.0 | ||
11 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
12 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
13 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
14 | * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
15 | * | ||
16 | * There are special exceptions to the terms and conditions of the GPL as | ||
17 | * it is applied to this Source Code. View the full text of the exception | ||
18 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
19 | * online at | ||
20 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
21 | * | ||
22 | * By copying, modifying or distributing this software, you acknowledge | ||
23 | * that you have read and understood your obligations described above, | ||
24 | * and agree to abide by those obligations. | ||
25 | * | ||
26 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
27 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
28 | * COMPLETENESS OR PERFORMANCE. | ||
29 | * $/LicenseInfo$ | ||
30 | */ | ||
diff --git a/linden/indra/llcommon/indra_constants.h b/linden/indra/llcommon/indra_constants.h index e64ee62..84ec455 100644 --- a/linden/indra/llcommon/indra_constants.h +++ b/linden/indra/llcommon/indra_constants.h | |||
@@ -154,6 +154,11 @@ const char WATER_LAYER_CODE = 'W'; | |||
154 | const char WIND_LAYER_CODE = '7'; | 154 | const char WIND_LAYER_CODE = '7'; |
155 | const char CLOUD_LAYER_CODE = '8'; | 155 | const char CLOUD_LAYER_CODE = '8'; |
156 | 156 | ||
157 | // Extended land layer for Aurora Sim | ||
158 | const char AURORA_LAND_LAYER_CODE = 'M'; | ||
159 | const char AURORA_WIND_LAYER_CODE = '9'; | ||
160 | const char AURORA_CLOUD_LAYER_CODE = ':'; | ||
161 | |||
157 | // keys | 162 | // keys |
158 | // Bit masks for various keyboard modifier keys. | 163 | // Bit masks for various keyboard modifier keys. |
159 | const MASK MASK_NONE = 0x0000; | 164 | const MASK MASK_NONE = 0x0000; |
diff --git a/linden/indra/llcommon/llerror.cpp b/linden/indra/llcommon/llerror.cpp index a9587c6..aeba629 100644 --- a/linden/indra/llcommon/llerror.cpp +++ b/linden/indra/llcommon/llerror.cpp | |||
@@ -168,6 +168,9 @@ namespace { | |||
168 | } | 168 | } |
169 | } | 169 | } |
170 | fprintf(stderr, "%s\n", message.c_str()); | 170 | fprintf(stderr, "%s\n", message.c_str()); |
171 | #if LL_WINDOWS | ||
172 | fflush(stderr); //Now using a buffer. flush is required. | ||
173 | #endif | ||
171 | if (ANSI_YES == mUseANSI) colorANSI("0"); // reset | 174 | if (ANSI_YES == mUseANSI) colorANSI("0"); // reset |
172 | } | 175 | } |
173 | 176 | ||
@@ -563,7 +566,7 @@ namespace | |||
563 | #if LL_WINDOWS | 566 | #if LL_WINDOWS |
564 | LLError::addRecorder(new RecordToWinDebug); | 567 | LLError::addRecorder(new RecordToWinDebug); |
565 | #endif | 568 | #endif |
566 | 569 | llwarns << "Load LogControlFile from Directory:"<< dir << llendl; | |
567 | LogControlFile& e = LogControlFile::fromDirectory(dir); | 570 | LogControlFile& e = LogControlFile::fromDirectory(dir); |
568 | 571 | ||
569 | // NOTE: We want to explicitly load the file before we add it to the event timer | 572 | // NOTE: We want to explicitly load the file before we add it to the event timer |
diff --git a/linden/indra/llcommon/lltimer.cpp b/linden/indra/llcommon/lltimer.cpp index 2d283ec..b825c1e 100644 --- a/linden/indra/llcommon/lltimer.cpp +++ b/linden/indra/llcommon/lltimer.cpp | |||
@@ -529,14 +529,14 @@ struct tm* utc_to_offset_time(time_t utc_time, S32 offset, BOOL DST) | |||
529 | { | 529 | { |
530 | if (DST) | 530 | if (DST) |
531 | { | 531 | { |
532 | //Subtract one then | 532 | //Add one then |
533 | offset--; | 533 | offset++; |
534 | } | 534 | } |
535 | 535 | ||
536 | // We subtract off the PST/PDT offset _before_ getting | 536 | // We subtract off the PST/PDT offset _before_ getting |
537 | // "UTC" time, because this will handle wrapping around | 537 | // "UTC" time, because this will handle wrapping around |
538 | // for 5 AM UTC -> 10 PM PDT of the previous day. | 538 | // for 5 AM UTC -> 10 PM PDT of the previous day. |
539 | utc_time -= offset * MIN_PER_HOUR * SEC_PER_MIN; | 539 | utc_time -= (-1 * offset) * MIN_PER_HOUR * SEC_PER_MIN; |
540 | 540 | ||
541 | // Internal buffer to PST/PDT (see above) | 541 | // Internal buffer to PST/PDT (see above) |
542 | struct tm* internal_time = gmtime(&utc_time); | 542 | struct tm* internal_time = gmtime(&utc_time); |
diff --git a/linden/indra/llimage/llimage.cpp b/linden/indra/llimage/llimage.cpp index e933750..3a8dc3b 100644 --- a/linden/indra/llimage/llimage.cpp +++ b/linden/indra/llimage/llimage.cpp | |||
@@ -269,7 +269,7 @@ LLImageRaw::LLImageRaw(U8 *data, U16 width, U16 height, S8 components) | |||
269 | : LLImageBase() | 269 | : LLImageBase() |
270 | { | 270 | { |
271 | mMemType = LLMemType::MTYPE_IMAGERAW; | 271 | mMemType = LLMemType::MTYPE_IMAGERAW; |
272 | if(allocateDataSize(width, height, components)) | 272 | if(allocateDataSize(width, height, components) && data) |
273 | { | 273 | { |
274 | memcpy(getData(), data, width*height*components); | 274 | memcpy(getData(), data, width*height*components); |
275 | } | 275 | } |
diff --git a/linden/indra/llimage/llpngwrapper.cpp b/linden/indra/llimage/llpngwrapper.cpp index 0dd991a..2274a38 100644 --- a/linden/indra/llimage/llpngwrapper.cpp +++ b/linden/indra/llimage/llpngwrapper.cpp | |||
@@ -56,8 +56,6 @@ LLPngWrapper::LLPngWrapper() | |||
56 | mCompressionType( 0 ), | 56 | mCompressionType( 0 ), |
57 | mFilterMethod( 0 ), | 57 | mFilterMethod( 0 ), |
58 | mFinalSize( 0 ), | 58 | mFinalSize( 0 ), |
59 | mHasBKGD(false), | ||
60 | mBackgroundColor(), | ||
61 | mGamma(0.f) | 59 | mGamma(0.f) |
62 | { | 60 | { |
63 | } | 61 | } |
@@ -117,9 +115,9 @@ void LLPngWrapper::writeFlush(png_structp png_ptr) | |||
117 | } | 115 | } |
118 | 116 | ||
119 | // Read the PNG file using the libpng. The low-level interface is used here | 117 | // Read the PNG file using the libpng. The low-level interface is used here |
120 | // because we want to do various transformations (including setting the | 118 | // because we want to do various transformations (including applying gama) |
121 | // matte background if any, and applying gama) which can't be done with | 119 | // which can't be done with the high-level interface. |
122 | // the high-level interface. The scanline also begins at the bottom of | 120 | // The scanline also begins at the bottom of |
123 | // the image (per SecondLife conventions) instead of at the top, so we | 121 | // the image (per SecondLife conventions) instead of at the top, so we |
124 | // must assign row-pointers in "reverse" order. | 122 | // must assign row-pointers in "reverse" order. |
125 | BOOL LLPngWrapper::readPng(U8* src, LLImageRaw* rawImage, ImageInfo *infop) | 123 | BOOL LLPngWrapper::readPng(U8* src, LLImageRaw* rawImage, ImageInfo *infop) |
@@ -207,8 +205,7 @@ void LLPngWrapper::normalizeImage() | |||
207 | // 2. Convert grayscales to RGB | 205 | // 2. Convert grayscales to RGB |
208 | // 3. Create alpha layer from transparency | 206 | // 3. Create alpha layer from transparency |
209 | // 4. Ensure 8-bpp for all images | 207 | // 4. Ensure 8-bpp for all images |
210 | // 5. Apply background matte if any | 208 | // 5. Set (or guess) gamma |
211 | // 6. Set (or guess) gamma | ||
212 | 209 | ||
213 | if (mColorType == PNG_COLOR_TYPE_PALETTE) | 210 | if (mColorType == PNG_COLOR_TYPE_PALETTE) |
214 | { | 211 | { |
@@ -235,12 +232,6 @@ void LLPngWrapper::normalizeImage() | |||
235 | { | 232 | { |
236 | png_set_strip_16(mReadPngPtr); | 233 | png_set_strip_16(mReadPngPtr); |
237 | } | 234 | } |
238 | mHasBKGD = png_get_bKGD(mReadPngPtr, mReadInfoPtr, &mBackgroundColor); | ||
239 | if (mHasBKGD) | ||
240 | { | ||
241 | png_set_background(mReadPngPtr, mBackgroundColor, | ||
242 | PNG_BACKGROUND_GAMMA_FILE, 1, 1.0); | ||
243 | } | ||
244 | 235 | ||
245 | #if LL_DARWIN | 236 | #if LL_DARWIN |
246 | const F64 SCREEN_GAMMA = 1.8; | 237 | const F64 SCREEN_GAMMA = 1.8; |
@@ -267,7 +258,6 @@ void LLPngWrapper::updateMetaData() | |||
267 | mBitDepth = png_get_bit_depth(mReadPngPtr, mReadInfoPtr); | 258 | mBitDepth = png_get_bit_depth(mReadPngPtr, mReadInfoPtr); |
268 | mColorType = png_get_color_type(mReadPngPtr, mReadInfoPtr); | 259 | mColorType = png_get_color_type(mReadPngPtr, mReadInfoPtr); |
269 | mChannels = png_get_channels(mReadPngPtr, mReadInfoPtr); | 260 | mChannels = png_get_channels(mReadPngPtr, mReadInfoPtr); |
270 | mHasBKGD = png_get_bKGD(mReadPngPtr, mReadInfoPtr, &mBackgroundColor); | ||
271 | } | 261 | } |
272 | 262 | ||
273 | // Method to write raw image into PNG at dest. The raw scanline begins | 263 | // Method to write raw image into PNG at dest. The raw scanline begins |
diff --git a/linden/indra/llimage/llpngwrapper.h b/linden/indra/llimage/llpngwrapper.h index 2e6c1dc..0c3168c 100644 --- a/linden/indra/llimage/llpngwrapper.h +++ b/linden/indra/llimage/llpngwrapper.h | |||
@@ -94,9 +94,6 @@ private: | |||
94 | 94 | ||
95 | U32 mFinalSize; | 95 | U32 mFinalSize; |
96 | 96 | ||
97 | bool mHasBKGD; | ||
98 | png_color_16p mBackgroundColor; | ||
99 | |||
100 | F64 mGamma; | 97 | F64 mGamma; |
101 | 98 | ||
102 | std::string mErrorMessage; | 99 | std::string mErrorMessage; |
diff --git a/linden/indra/llinventory/llparcel.h b/linden/indra/llinventory/llparcel.h index 0af9ab7..1a1205b 100644 --- a/linden/indra/llinventory/llparcel.h +++ b/linden/indra/llinventory/llparcel.h | |||
@@ -67,6 +67,7 @@ const F32 PARCEL_PASS_HOURS_DEFAULT = 1.f; | |||
67 | 67 | ||
68 | // Number of "chunks" in which parcel overlay data is sent | 68 | // Number of "chunks" in which parcel overlay data is sent |
69 | // Chunk 0 = southern rows, entire width | 69 | // Chunk 0 = southern rows, entire width |
70 | // NOTE: NOT USABLE FOR VAR SIZED REGIONS! | ||
70 | const S32 PARCEL_OVERLAY_CHUNKS = 4; | 71 | const S32 PARCEL_OVERLAY_CHUNKS = 4; |
71 | 72 | ||
72 | // Bottom three bits are a color index for the land overlay | 73 | // Bottom three bits are a color index for the land overlay |
diff --git a/linden/indra/llmessage/message_prehash.cpp b/linden/indra/llmessage/message_prehash.cpp index ecb45bf..78b9d07 100644 --- a/linden/indra/llmessage/message_prehash.cpp +++ b/linden/indra/llmessage/message_prehash.cpp | |||
@@ -587,6 +587,8 @@ char* _PREHASH_LastName = LLMessageStringTable::getInstance()->getString("LastNa | |||
587 | char* _PREHASH_From = LLMessageStringTable::getInstance()->getString("From"); | 587 | char* _PREHASH_From = LLMessageStringTable::getInstance()->getString("From"); |
588 | char* _PREHASH_RoleChange = LLMessageStringTable::getInstance()->getString("RoleChange"); | 588 | char* _PREHASH_RoleChange = LLMessageStringTable::getInstance()->getString("RoleChange"); |
589 | char* _PREHASH_Port = LLMessageStringTable::getInstance()->getString("Port"); | 589 | char* _PREHASH_Port = LLMessageStringTable::getInstance()->getString("Port"); |
590 | char* _PREHASH_RegionSizeX = LLMessageStringTable::getInstance()->getString("RegionSizeX"); | ||
591 | char* _PREHASH_RegionSizeY = LLMessageStringTable::getInstance()->getString("RegionSizeY"); | ||
590 | char* _PREHASH_MemberTitle = LLMessageStringTable::getInstance()->getString("MemberTitle"); | 592 | char* _PREHASH_MemberTitle = LLMessageStringTable::getInstance()->getString("MemberTitle"); |
591 | char* _PREHASH_LogParcelChanges = LLMessageStringTable::getInstance()->getString("LogParcelChanges"); | 593 | char* _PREHASH_LogParcelChanges = LLMessageStringTable::getInstance()->getString("LogParcelChanges"); |
592 | char* _PREHASH_AgentCachedTextureResponse = LLMessageStringTable::getInstance()->getString("AgentCachedTextureResponse"); | 594 | char* _PREHASH_AgentCachedTextureResponse = LLMessageStringTable::getInstance()->getString("AgentCachedTextureResponse"); |
diff --git a/linden/indra/llmessage/message_prehash.h b/linden/indra/llmessage/message_prehash.h index 8516483..64544dd 100644 --- a/linden/indra/llmessage/message_prehash.h +++ b/linden/indra/llmessage/message_prehash.h | |||
@@ -587,6 +587,8 @@ extern char * _PREHASH_LastName; | |||
587 | extern char * _PREHASH_From; | 587 | extern char * _PREHASH_From; |
588 | extern char * _PREHASH_RoleChange; | 588 | extern char * _PREHASH_RoleChange; |
589 | extern char * _PREHASH_Port; | 589 | extern char * _PREHASH_Port; |
590 | extern char * _PREHASH_RegionSizeX; | ||
591 | extern char * _PREHASH_RegionSizeY; | ||
590 | extern char * _PREHASH_MemberTitle; | 592 | extern char * _PREHASH_MemberTitle; |
591 | extern char * _PREHASH_LogParcelChanges; | 593 | extern char * _PREHASH_LogParcelChanges; |
592 | extern char * _PREHASH_AgentCachedTextureResponse; | 594 | extern char * _PREHASH_AgentCachedTextureResponse; |
diff --git a/linden/indra/llmessage/patch_code.cpp b/linden/indra/llmessage/patch_code.cpp index 90fb236..0cf8d2e 100644 --- a/linden/indra/llmessage/patch_code.cpp +++ b/linden/indra/llmessage/patch_code.cpp | |||
@@ -235,7 +235,7 @@ void decode_patch_group_header(LLBitPack &bitpack, LLGroupHeader *gopp) | |||
235 | gPatchSize = gopp->patch_size; | 235 | gPatchSize = gopp->patch_size; |
236 | } | 236 | } |
237 | 237 | ||
238 | void decode_patch_header(LLBitPack &bitpack, LLPatchHeader *ph) | 238 | void decode_patch_header(LLBitPack &bitpack, LLPatchHeader *ph, BOOL b_large_patch) |
239 | { | 239 | { |
240 | U8 retvalu8; | 240 | U8 retvalu8; |
241 | 241 | ||
@@ -274,15 +274,18 @@ void decode_patch_header(LLBitPack &bitpack, LLPatchHeader *ph) | |||
274 | #endif | 274 | #endif |
275 | ph->range = retvalu16; | 275 | ph->range = retvalu16; |
276 | 276 | ||
277 | retvalu16 = 0; | 277 | retvalu32 = 0; |
278 | #ifdef LL_BIG_ENDIAN | 278 | #ifdef LL_BIG_ENDIAN |
279 | ret = (U8 *)&retvalu16; | 279 | ret = (U8 *)&retvalu16; |
280 | bitpack.bitUnpack(&(ret[1]), 8); | 280 | bitpack.bitUnpack(&(ret[1]), 8); |
281 | bitpack.bitUnpack(&(ret[0]), 2); | 281 | bitpack.bitUnpack(&(ret[0]), 2); |
282 | #else | 282 | #else |
283 | bitpack.bitUnpack((U8 *)&retvalu16, 10); | 283 | if (b_large_patch) |
284 | bitpack.bitUnpack((U8 *)&retvalu32, 32); | ||
285 | else | ||
286 | bitpack.bitUnpack((U8 *)&retvalu32, 10); | ||
284 | #endif | 287 | #endif |
285 | ph->patchids = retvalu16; | 288 | ph->patchids = retvalu32; |
286 | 289 | ||
287 | gWordBits = (ph->quant_wbits & 0xf) + 2; | 290 | gWordBits = (ph->quant_wbits & 0xf) + 2; |
288 | } | 291 | } |
diff --git a/linden/indra/llmessage/patch_code.h b/linden/indra/llmessage/patch_code.h index 82fa6bb..dbfdf70 100644 --- a/linden/indra/llmessage/patch_code.h +++ b/linden/indra/llmessage/patch_code.h | |||
@@ -46,7 +46,7 @@ void end_patch_coding(LLBitPack &bitpack); | |||
46 | 46 | ||
47 | void init_patch_decoding(LLBitPack &bitpack); | 47 | void init_patch_decoding(LLBitPack &bitpack); |
48 | void decode_patch_group_header(LLBitPack &bitpack, LLGroupHeader *gopp); | 48 | void decode_patch_group_header(LLBitPack &bitpack, LLGroupHeader *gopp); |
49 | void decode_patch_header(LLBitPack &bitpack, LLPatchHeader *ph); | 49 | void decode_patch_header(LLBitPack &bitpack, LLPatchHeader *ph, BOOL b_large_patch); |
50 | void decode_patch(LLBitPack &bitpack, S32 *patches); | 50 | void decode_patch(LLBitPack &bitpack, S32 *patches); |
51 | 51 | ||
52 | #endif | 52 | #endif |
diff --git a/linden/indra/llmessage/patch_dct.h b/linden/indra/llmessage/patch_dct.h index 663e146..ba21be7 100644 --- a/linden/indra/llmessage/patch_dct.h +++ b/linden/indra/llmessage/patch_dct.h | |||
@@ -79,7 +79,7 @@ public: | |||
79 | F32 dc_offset; // 4 bytes | 79 | F32 dc_offset; // 4 bytes |
80 | U16 range; // 2 = 7 ((S16) FP range (breaks if we need > 32K meters in 1 patch) | 80 | U16 range; // 2 = 7 ((S16) FP range (breaks if we need > 32K meters in 1 patch) |
81 | U8 quant_wbits; // 1 = 8 (upper 4 bits is quant - 2, lower 4 bits is word bits - 2) | 81 | U8 quant_wbits; // 1 = 8 (upper 4 bits is quant - 2, lower 4 bits is word bits - 2) |
82 | U16 patchids; // 2 = 10 (actually only uses 10 bits, 5 for each) | 82 | U32 patchids; // 2 = 10 (actually only uses 10 bits, 5 for each) |
83 | }; | 83 | }; |
84 | 84 | ||
85 | // Compression routines | 85 | // Compression routines |
diff --git a/linden/indra/llplugin/CMakeLists.txt b/linden/indra/llplugin/CMakeLists.txt index 7a7f4e5..5dbe07c 100644 --- a/linden/indra/llplugin/CMakeLists.txt +++ b/linden/indra/llplugin/CMakeLists.txt | |||
@@ -20,7 +20,6 @@ include_directories( | |||
20 | ${LLRENDER_INCLUDE_DIRS} | 20 | ${LLRENDER_INCLUDE_DIRS} |
21 | ${LLXML_INCLUDE_DIRS} | 21 | ${LLXML_INCLUDE_DIRS} |
22 | ${LLWINDOW_INCLUDE_DIRS} | 22 | ${LLWINDOW_INCLUDE_DIRS} |
23 | ${LLQTWEBKIT_INCLUDE_DIR} | ||
24 | ) | 23 | ) |
25 | 24 | ||
26 | set(llplugin_SOURCE_FILES | 25 | set(llplugin_SOURCE_FILES |
diff --git a/linden/indra/llplugin/llpluginclassmedia.cpp b/linden/indra/llplugin/llpluginclassmedia.cpp index 5a81c46..f0a44f7 100755 --- a/linden/indra/llplugin/llpluginclassmedia.cpp +++ b/linden/indra/llplugin/llpluginclassmedia.cpp | |||
@@ -33,14 +33,14 @@ | |||
33 | * @endcond | 33 | * @endcond |
34 | */ | 34 | */ |
35 | 35 | ||
36 | /// IMPRUDENCE: this is part of the viewer | ||
37 | |||
36 | #include "linden_common.h" | 38 | #include "linden_common.h" |
37 | #include "indra_constants.h" | 39 | #include "indra_constants.h" |
38 | 40 | ||
39 | #include "llpluginclassmedia.h" | 41 | #include "llpluginclassmedia.h" |
40 | #include "llpluginmessageclasses.h" | 42 | #include "llpluginmessageclasses.h" |
41 | 43 | ||
42 | #include "llqtwebkit.h" | ||
43 | |||
44 | static int LOW_PRIORITY_TEXTURE_SIZE_DEFAULT = 256; | 44 | static int LOW_PRIORITY_TEXTURE_SIZE_DEFAULT = 256; |
45 | 45 | ||
46 | static int nextPowerOf2( int value ) | 46 | static int nextPowerOf2( int value ) |
@@ -777,7 +777,7 @@ void LLPluginClassMedia::receivePluginMessage(const LLPluginMessage &message) | |||
777 | mDirtyRect.unionWith(newDirtyRect); | 777 | mDirtyRect.unionWith(newDirtyRect); |
778 | } | 778 | } |
779 | 779 | ||
780 | LL_DEBUGS("PluginClassMedia") << "adjusted incoming rect is: (" | 780 | LL_DEBUGS("PluginClassMediaRect") << "adjusted incoming rect is: (" |
781 | << newDirtyRect.mLeft << ", " | 781 | << newDirtyRect.mLeft << ", " |
782 | << newDirtyRect.mTop << ", " | 782 | << newDirtyRect.mTop << ", " |
783 | << newDirtyRect.mRight << ", " | 783 | << newDirtyRect.mRight << ", " |
@@ -973,6 +973,7 @@ void LLPluginClassMedia::receivePluginMessage(const LLPluginMessage &message) | |||
973 | { | 973 | { |
974 | mClickURL = message.getValue("uri"); | 974 | mClickURL = message.getValue("uri"); |
975 | mClickTarget = message.getValue("target"); | 975 | mClickTarget = message.getValue("target"); |
976 | LL_DEBUGS("PluginClassMedia") << "Click target \"" << mClickTarget << "\"" << LL_ENDL; | ||
976 | mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_CLICK_LINK_HREF); | 977 | mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_CLICK_LINK_HREF); |
977 | } | 978 | } |
978 | else if(message_name == "click_nofollow") | 979 | else if(message_name == "click_nofollow") |
diff --git a/linden/indra/llplugin/llpluginclassmediaowner.h b/linden/indra/llplugin/llpluginclassmediaowner.h index 9d1f352..0e54f7f 100755 --- a/linden/indra/llplugin/llpluginclassmediaowner.h +++ b/linden/indra/llplugin/llpluginclassmediaowner.h | |||
@@ -41,7 +41,7 @@ | |||
41 | #include <queue> | 41 | #include <queue> |
42 | 42 | ||
43 | class LLPluginClassMedia; | 43 | class LLPluginClassMedia; |
44 | class LLPluginCookieStore; | 44 | //class LLPluginCookieStore; // IMPRUDENCE: this is currently not used |
45 | 45 | ||
46 | class LLPluginClassMediaOwner | 46 | class LLPluginClassMediaOwner |
47 | { | 47 | { |
diff --git a/linden/indra/llplugin/llplugincookiestore.cpp b/linden/indra/llplugin/llplugincookiestore.cpp index 283ba35..6b193de 100644 --- a/linden/indra/llplugin/llplugincookiestore.cpp +++ b/linden/indra/llplugin/llplugincookiestore.cpp | |||
@@ -33,6 +33,8 @@ | |||
33 | * @endcond | 33 | * @endcond |
34 | */ | 34 | */ |
35 | 35 | ||
36 | /// IMPRUDENCE: this is currently not used | ||
37 | |||
36 | #include "linden_common.h" | 38 | #include "linden_common.h" |
37 | #include "indra_constants.h" | 39 | #include "indra_constants.h" |
38 | 40 | ||
diff --git a/linden/indra/llplugin/llplugininstance.cpp b/linden/indra/llplugin/llplugininstance.cpp index 67457f2..399f157 100755 --- a/linden/indra/llplugin/llplugininstance.cpp +++ b/linden/indra/llplugin/llplugininstance.cpp | |||
@@ -33,6 +33,8 @@ | |||
33 | * @endcond | 33 | * @endcond |
34 | */ | 34 | */ |
35 | 35 | ||
36 | /// IMPRUDENCE: this is part of the SLPlugin | ||
37 | |||
36 | #include "linden_common.h" | 38 | #include "linden_common.h" |
37 | 39 | ||
38 | #include "llplugininstance.h" | 40 | #include "llplugininstance.h" |
diff --git a/linden/indra/llplugin/llpluginmessage.cpp b/linden/indra/llplugin/llpluginmessage.cpp index 6452f4a..0810a04 100755 --- a/linden/indra/llplugin/llpluginmessage.cpp +++ b/linden/indra/llplugin/llpluginmessage.cpp | |||
@@ -33,6 +33,8 @@ | |||
33 | * @endcond | 33 | * @endcond |
34 | */ | 34 | */ |
35 | 35 | ||
36 | /// IMPRUDENCE: this is part of the viewer and the SLPlugin and the libmedia_plugin_* libraries | ||
37 | |||
36 | #include "linden_common.h" | 38 | #include "linden_common.h" |
37 | 39 | ||
38 | #include "llpluginmessage.h" | 40 | #include "llpluginmessage.h" |
diff --git a/linden/indra/llplugin/llpluginmessagepipe.cpp b/linden/indra/llplugin/llpluginmessagepipe.cpp index ac3a902..2cad188 100755 --- a/linden/indra/llplugin/llpluginmessagepipe.cpp +++ b/linden/indra/llplugin/llpluginmessagepipe.cpp | |||
@@ -33,6 +33,8 @@ | |||
33 | * @endcond | 33 | * @endcond |
34 | */ | 34 | */ |
35 | 35 | ||
36 | /// IMPRUDENCE: this is part of the viewer and the SLPlugin | ||
37 | |||
36 | #include "linden_common.h" | 38 | #include "linden_common.h" |
37 | 39 | ||
38 | #include "llpluginmessagepipe.h" | 40 | #include "llpluginmessagepipe.h" |
diff --git a/linden/indra/llplugin/llpluginprocesschild.cpp b/linden/indra/llplugin/llpluginprocesschild.cpp index a1291c0..0d95cac 100755 --- a/linden/indra/llplugin/llpluginprocesschild.cpp +++ b/linden/indra/llplugin/llpluginprocesschild.cpp | |||
@@ -33,6 +33,8 @@ | |||
33 | * @endcond | 33 | * @endcond |
34 | */ | 34 | */ |
35 | 35 | ||
36 | /// IMPRUDENCE: this is part of the SLPlugin | ||
37 | |||
36 | #include "linden_common.h" | 38 | #include "linden_common.h" |
37 | 39 | ||
38 | #include "llpluginprocesschild.h" | 40 | #include "llpluginprocesschild.h" |
diff --git a/linden/indra/llplugin/llpluginprocessparent.cpp b/linden/indra/llplugin/llpluginprocessparent.cpp index 5a66279..26572a0 100755 --- a/linden/indra/llplugin/llpluginprocessparent.cpp +++ b/linden/indra/llplugin/llpluginprocessparent.cpp | |||
@@ -33,6 +33,8 @@ | |||
33 | * @endcond | 33 | * @endcond |
34 | */ | 34 | */ |
35 | 35 | ||
36 | /// IMPRUDENCE: this is part of the viewer | ||
37 | |||
36 | #include "linden_common.h" | 38 | #include "linden_common.h" |
37 | 39 | ||
38 | #include "llpluginprocessparent.h" | 40 | #include "llpluginprocessparent.h" |
diff --git a/linden/indra/llplugin/llpluginsharedmemory.cpp b/linden/indra/llplugin/llpluginsharedmemory.cpp index 6becb8d..882a2a1 100755 --- a/linden/indra/llplugin/llpluginsharedmemory.cpp +++ b/linden/indra/llplugin/llpluginsharedmemory.cpp | |||
@@ -33,6 +33,8 @@ | |||
33 | * @endcond | 33 | * @endcond |
34 | */ | 34 | */ |
35 | 35 | ||
36 | /// IMPRUDENCE: this is part of the viewer and the SLPlugin | ||
37 | |||
36 | #include "linden_common.h" | 38 | #include "linden_common.h" |
37 | 39 | ||
38 | #include "llpluginsharedmemory.h" | 40 | #include "llpluginsharedmemory.h" |
@@ -89,7 +91,6 @@ | |||
89 | #include <windows.h> | 91 | #include <windows.h> |
90 | #endif // USE_APR_SHARED_MEMORY | 92 | #endif // USE_APR_SHARED_MEMORY |
91 | 93 | ||
92 | |||
93 | int LLPluginSharedMemory::sSegmentNumber = 0; | 94 | int LLPluginSharedMemory::sSegmentNumber = 0; |
94 | 95 | ||
95 | std::string LLPluginSharedMemory::createName(void) | 96 | std::string LLPluginSharedMemory::createName(void) |
diff --git a/linden/indra/llplugin/slplugin/slplugin.cpp b/linden/indra/llplugin/slplugin/slplugin.cpp index 878577b..4ef24a2 100755 --- a/linden/indra/llplugin/slplugin/slplugin.cpp +++ b/linden/indra/llplugin/slplugin/slplugin.cpp | |||
@@ -35,6 +35,7 @@ | |||
35 | * @endcond | 35 | * @endcond |
36 | */ | 36 | */ |
37 | 37 | ||
38 | /// IMPRUDENCE: this is part of the SLPlugin | ||
38 | 39 | ||
39 | #include "linden_common.h" | 40 | #include "linden_common.h" |
40 | 41 | ||
@@ -53,6 +54,20 @@ | |||
53 | #include <signal.h> | 54 | #include <signal.h> |
54 | #endif | 55 | #endif |
55 | 56 | ||
57 | //imprudence: or we include lldir, or use apache runtime | ||
58 | //though the one is probably bloat and the other we rather want to avoid | ||
59 | #include <stdio.h> // FILENAME_MAX | ||
60 | #ifdef LL_WINDOWS | ||
61 | #include <direct.h> | ||
62 | #define getImpruDir _getcwd | ||
63 | #define DIR_DELIMITER "\\" | ||
64 | #else | ||
65 | #include <unistd.h> | ||
66 | #define getImpruDir getcwd | ||
67 | #define DIR_DELIMITER "/" | ||
68 | #endif | ||
69 | |||
70 | |||
56 | /* | 71 | /* |
57 | On Mac OS, since we call WaitNextEvent, this process will show up in the dock unless we set the LSBackgroundOnly or LSUIElement flag in the Info.plist. | 72 | On Mac OS, since we call WaitNextEvent, this process will show up in the dock unless we set the LSBackgroundOnly or LSUIElement flag in the Info.plist. |
58 | 73 | ||
@@ -187,9 +202,28 @@ int main(int argc, char **argv) | |||
187 | { | 202 | { |
188 | // Set up llerror logging | 203 | // Set up llerror logging |
189 | { | 204 | { |
190 | LLError::initForApplication("."); | 205 | std::string path; |
191 | LLError::setDefaultLevel(LLError::LEVEL_INFO); | 206 | char impruPath[FILENAME_MAX]; |
192 | // LLError::setTagLevel("Plugin", LLError::LEVEL_DEBUG); | 207 | |
208 | if (!getImpruDir(impruPath, sizeof(impruPath))) | ||
209 | { | ||
210 | path = "."; //FIXME: root directory of the system - bad idea | ||
211 | } | ||
212 | else | ||
213 | { | ||
214 | path = std::string(impruPath); | ||
215 | |||
216 | path.append(DIR_DELIMITER); | ||
217 | path.append("app_settings"); | ||
218 | } | ||
219 | LLError::initForApplication(path); | ||
220 | // LLError::setDefaultLevel(LLError::LEVEL_INFO); | ||
221 | // LLError::setPrintLocation(true); | ||
222 | // LLError::setTagLevel("Plugin", LLError::LEVEL_DEBUG); | ||
223 | // LLError::setTagLevel("PluginPipe", LLError::LEVEL_DEBUG); | ||
224 | // LLError::setTagLevel("PluginChild", LLError::LEVEL_DEBUG); | ||
225 | // LLError::setTagLevel("PluginInstance", LLError::LEVEL_DEBUG); | ||
226 | |||
193 | // LLError::logToFile("slplugin.log"); | 227 | // LLError::logToFile("slplugin.log"); |
194 | } | 228 | } |
195 | 229 | ||
diff --git a/linden/indra/llui/lllineeditor.cpp b/linden/indra/llui/lllineeditor.cpp index a3785e4..76b8927 100644 --- a/linden/indra/llui/lllineeditor.cpp +++ b/linden/indra/llui/lllineeditor.cpp | |||
@@ -1034,6 +1034,11 @@ BOOL LLLineEditor::handleHover(S32 x, S32 y, MASK mask) | |||
1034 | 1034 | ||
1035 | return handled; | 1035 | return handled; |
1036 | } | 1036 | } |
1037 | BOOL LLLineEditor::handleHScrollWheel(S32 x, S32 y, S32 clicks) | ||
1038 | { | ||
1039 | mScrollHPos = llclamp(mScrollHPos + clicks * 3, 0, mText.length()); | ||
1040 | return TRUE; | ||
1041 | } | ||
1037 | 1042 | ||
1038 | 1043 | ||
1039 | BOOL LLLineEditor::handleMouseUp(S32 x, S32 y, MASK mask) | 1044 | BOOL LLLineEditor::handleMouseUp(S32 x, S32 y, MASK mask) |
diff --git a/linden/indra/llui/lllineeditor.h b/linden/indra/llui/lllineeditor.h index f9e0621..d217859 100644 --- a/linden/indra/llui/lllineeditor.h +++ b/linden/indra/llui/lllineeditor.h | |||
@@ -90,6 +90,7 @@ public: | |||
90 | /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask); | 90 | /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask); |
91 | /*virtual*/ BOOL handleMouseUp(S32 x, S32 y, MASK mask); | 91 | /*virtual*/ BOOL handleMouseUp(S32 x, S32 y, MASK mask); |
92 | /*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask); | 92 | /*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask); |
93 | /*virtual*/ BOOL handleHScrollWheel(S32 x, S32 y, S32 clicks); | ||
93 | /*virtual*/ BOOL handleDoubleClick(S32 x,S32 y,MASK mask); | 94 | /*virtual*/ BOOL handleDoubleClick(S32 x,S32 y,MASK mask); |
94 | /*virtual*/ BOOL handleMiddleMouseDown(S32 x,S32 y,MASK mask); | 95 | /*virtual*/ BOOL handleMiddleMouseDown(S32 x,S32 y,MASK mask); |
95 | /*virtual*/ BOOL handleRightMouseDown( S32 x, S32 y, MASK mask ); | 96 | /*virtual*/ BOOL handleRightMouseDown( S32 x, S32 y, MASK mask ); |
diff --git a/linden/indra/llui/llscrollbar.cpp b/linden/indra/llui/llscrollbar.cpp index 65086d8..11e6239 100644 --- a/linden/indra/llui/llscrollbar.cpp +++ b/linden/indra/llui/llscrollbar.cpp | |||
@@ -426,6 +426,11 @@ BOOL LLScrollbar::handleScrollWheel(S32 x, S32 y, S32 clicks) | |||
426 | changeLine( clicks * mStepSize, TRUE ); | 426 | changeLine( clicks * mStepSize, TRUE ); |
427 | return TRUE; | 427 | return TRUE; |
428 | } | 428 | } |
429 | BOOL LLScrollbar::handleHScrollWheel(S32 x, S32 y, S32 clicks) | ||
430 | { | ||
431 | changeLine( clicks * mStepSize, TRUE ); | ||
432 | return TRUE; | ||
433 | } | ||
429 | 434 | ||
430 | BOOL LLScrollbar::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, | 435 | BOOL LLScrollbar::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, |
431 | EDragAndDropType cargo_type, void *cargo_data, EAcceptance *accept, std::string &tooltip_msg) | 436 | EDragAndDropType cargo_type, void *cargo_data, EAcceptance *accept, std::string &tooltip_msg) |
diff --git a/linden/indra/llui/llscrollbar.h b/linden/indra/llui/llscrollbar.h index 0bbf866..6969662 100644 --- a/linden/indra/llui/llscrollbar.h +++ b/linden/indra/llui/llscrollbar.h | |||
@@ -69,6 +69,7 @@ public: | |||
69 | virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); | 69 | virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); |
70 | virtual BOOL handleHover(S32 x, S32 y, MASK mask); | 70 | virtual BOOL handleHover(S32 x, S32 y, MASK mask); |
71 | virtual BOOL handleScrollWheel(S32 x, S32 y, S32 clicks); | 71 | virtual BOOL handleScrollWheel(S32 x, S32 y, S32 clicks); |
72 | virtual BOOL handleHScrollWheel(S32 x, S32 y, S32 clicks); | ||
72 | virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, | 73 | virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, |
73 | EDragAndDropType cargo_type, void *cargo_data, EAcceptance *accept, std::string &tooltip_msg); | 74 | EDragAndDropType cargo_type, void *cargo_data, EAcceptance *accept, std::string &tooltip_msg); |
74 | 75 | ||
diff --git a/linden/indra/llui/llscrollcontainer.cpp b/linden/indra/llui/llscrollcontainer.cpp index 6f037e2..8737a70 100644 --- a/linden/indra/llui/llscrollcontainer.cpp +++ b/linden/indra/llui/llscrollcontainer.cpp | |||
@@ -239,6 +239,23 @@ BOOL LLScrollableContainerView::handleScrollWheel( S32 x, S32 y, S32 clicks ) | |||
239 | return TRUE; | 239 | return TRUE; |
240 | } | 240 | } |
241 | 241 | ||
242 | BOOL LLScrollableContainerView::handleHScrollWheel( S32 x, S32 y, S32 clicks ) | ||
243 | { | ||
244 | for( S32 i = SCROLLBAR_COUNT - 1; i >= 0; i++ ) | ||
245 | { | ||
246 | // Note: tries horizontal and then vertical | ||
247 | |||
248 | // Pretend the mouse is over the scrollbar | ||
249 | if( mScrollbar[i]->handleScrollWheel( 0, 0, clicks ) ) | ||
250 | { | ||
251 | return TRUE; | ||
252 | } | ||
253 | } | ||
254 | |||
255 | // Eat scroll wheel event (to avoid scrolling nested containers?) | ||
256 | return TRUE; | ||
257 | } | ||
258 | |||
242 | BOOL LLScrollableContainerView::needsToScroll(S32 x, S32 y, LLScrollableContainerView::SCROLL_ORIENTATION axis) const | 259 | BOOL LLScrollableContainerView::needsToScroll(S32 x, S32 y, LLScrollableContainerView::SCROLL_ORIENTATION axis) const |
243 | { | 260 | { |
244 | if(mScrollbar[axis]->getVisible()) | 261 | if(mScrollbar[axis]->getVisible()) |
diff --git a/linden/indra/llui/llscrollcontainer.h b/linden/indra/llui/llscrollcontainer.h index 70fc908..c18a0db 100644 --- a/linden/indra/llui/llscrollcontainer.h +++ b/linden/indra/llui/llscrollcontainer.h | |||
@@ -91,6 +91,7 @@ public: | |||
91 | virtual void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); | 91 | virtual void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); |
92 | virtual BOOL handleKeyHere(KEY key, MASK mask); | 92 | virtual BOOL handleKeyHere(KEY key, MASK mask); |
93 | virtual BOOL handleScrollWheel( S32 x, S32 y, S32 clicks ); | 93 | virtual BOOL handleScrollWheel( S32 x, S32 y, S32 clicks ); |
94 | virtual BOOL handleHScrollWheel( S32 x, S32 y, S32 clicks ); | ||
94 | virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, | 95 | virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, |
95 | EDragAndDropType cargo_type, | 96 | EDragAndDropType cargo_type, |
96 | void* cargo_data, | 97 | void* cargo_data, |
diff --git a/linden/indra/llui/llview.cpp b/linden/indra/llui/llview.cpp index d4eda8f..507c5f5 100644 --- a/linden/indra/llui/llview.cpp +++ b/linden/indra/llui/llview.cpp | |||
@@ -960,6 +960,19 @@ BOOL LLView::handleScrollWheel(S32 x, S32 y, S32 clicks) | |||
960 | return handled; | 960 | return handled; |
961 | } | 961 | } |
962 | 962 | ||
963 | BOOL LLView::handleHScrollWheel(S32 x, S32 y, S32 clicks) | ||
964 | { | ||
965 | BOOL handled = FALSE; | ||
966 | if( getVisible() && getEnabled() ) | ||
967 | { | ||
968 | handled = childrenHandleHScrollWheel( x, y, clicks ) != NULL; | ||
969 | if( !handled && blockMouseEvent(x, y) ) | ||
970 | { | ||
971 | handled = TRUE; | ||
972 | } | ||
973 | } | ||
974 | return handled; | ||
975 | } | ||
963 | BOOL LLView::handleRightMouseDown(S32 x, S32 y, MASK mask) | 976 | BOOL LLView::handleRightMouseDown(S32 x, S32 y, MASK mask) |
964 | { | 977 | { |
965 | BOOL handled = childrenHandleRightMouseDown( x, y, mask ) != NULL; | 978 | BOOL handled = childrenHandleRightMouseDown( x, y, mask ) != NULL; |
@@ -1032,6 +1045,34 @@ LLView* LLView::childrenHandleScrollWheel(S32 x, S32 y, S32 clicks) | |||
1032 | return handled_view; | 1045 | return handled_view; |
1033 | } | 1046 | } |
1034 | 1047 | ||
1048 | LLView* LLView::childrenHandleHScrollWheel(S32 x, S32 y, S32 clicks) | ||
1049 | { | ||
1050 | LLView* handled_view = NULL; | ||
1051 | if (getVisible() && getEnabled() ) | ||
1052 | { | ||
1053 | for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it) | ||
1054 | { | ||
1055 | LLView* viewp = *child_it; | ||
1056 | S32 local_x = x - viewp->getRect().mLeft; | ||
1057 | S32 local_y = y - viewp->getRect().mBottom; | ||
1058 | if (viewp->pointInView(local_x, local_y) | ||
1059 | && viewp->getVisible() | ||
1060 | && viewp->getEnabled() | ||
1061 | && viewp->handleHScrollWheel( local_x, local_y, clicks )) | ||
1062 | { | ||
1063 | if (sDebugMouseHandling) | ||
1064 | { | ||
1065 | sMouseHandlerMessage = std::string("->") + viewp->mName + sMouseHandlerMessage; | ||
1066 | } | ||
1067 | |||
1068 | handled_view = viewp; | ||
1069 | break; | ||
1070 | } | ||
1071 | } | ||
1072 | } | ||
1073 | return handled_view; | ||
1074 | } | ||
1075 | |||
1035 | LLView* LLView::childrenHandleHover(S32 x, S32 y, MASK mask) | 1076 | LLView* LLView::childrenHandleHover(S32 x, S32 y, MASK mask) |
1036 | { | 1077 | { |
1037 | LLView* handled_view = NULL; | 1078 | LLView* handled_view = NULL; |
diff --git a/linden/indra/llui/llview.h b/linden/indra/llui/llview.h index 1c8ab31..9243f4f 100644 --- a/linden/indra/llui/llview.h +++ b/linden/indra/llui/llview.h | |||
@@ -473,6 +473,7 @@ public: | |||
473 | /*virtual*/ BOOL handleMiddleMouseDown(S32 x, S32 y, MASK mask); | 473 | /*virtual*/ BOOL handleMiddleMouseDown(S32 x, S32 y, MASK mask); |
474 | /*virtual*/ BOOL handleDoubleClick(S32 x, S32 y, MASK mask); | 474 | /*virtual*/ BOOL handleDoubleClick(S32 x, S32 y, MASK mask); |
475 | /*virtual*/ BOOL handleScrollWheel(S32 x, S32 y, S32 clicks); | 475 | /*virtual*/ BOOL handleScrollWheel(S32 x, S32 y, S32 clicks); |
476 | /*virtual*/ BOOL handleHScrollWheel(S32 x, S32 y, S32 clicks); | ||
476 | /*virtual*/ BOOL handleRightMouseDown(S32 x, S32 y, MASK mask); | 477 | /*virtual*/ BOOL handleRightMouseDown(S32 x, S32 y, MASK mask); |
477 | /*virtual*/ BOOL handleRightMouseUp(S32 x, S32 y, MASK mask); | 478 | /*virtual*/ BOOL handleRightMouseUp(S32 x, S32 y, MASK mask); |
478 | /*virtual*/ BOOL handleToolTip(S32 x, S32 y, std::string& msg, LLRect* sticky_rect); // Display mToolTipMsg if no child handles it. | 479 | /*virtual*/ BOOL handleToolTip(S32 x, S32 y, std::string& msg, LLRect* sticky_rect); // Display mToolTipMsg if no child handles it. |
@@ -613,6 +614,7 @@ protected: | |||
613 | LLView* childrenHandleMiddleMouseDown(S32 x, S32 y, MASK mask); | 614 | LLView* childrenHandleMiddleMouseDown(S32 x, S32 y, MASK mask); |
614 | LLView* childrenHandleDoubleClick(S32 x, S32 y, MASK mask); | 615 | LLView* childrenHandleDoubleClick(S32 x, S32 y, MASK mask); |
615 | LLView* childrenHandleScrollWheel(S32 x, S32 y, S32 clicks); | 616 | LLView* childrenHandleScrollWheel(S32 x, S32 y, S32 clicks); |
617 | LLView* childrenHandleHScrollWheel(S32 x, S32 y, S32 clicks); | ||
616 | LLView* childrenHandleRightMouseDown(S32 x, S32 y, MASK mask); | 618 | LLView* childrenHandleRightMouseDown(S32 x, S32 y, MASK mask); |
617 | LLView* childrenHandleRightMouseUp(S32 x, S32 y, MASK mask); | 619 | LLView* childrenHandleRightMouseUp(S32 x, S32 y, MASK mask); |
618 | 620 | ||
diff --git a/linden/indra/llvfs/lldir_win32.cpp b/linden/indra/llvfs/lldir_win32.cpp index 9d4c5ec..e5d6747 100644 --- a/linden/indra/llvfs/lldir_win32.cpp +++ b/linden/indra/llvfs/lldir_win32.cpp | |||
@@ -112,7 +112,7 @@ LLDir_Win32::LLDir_Win32() | |||
112 | } | 112 | } |
113 | else | 113 | else |
114 | { | 114 | { |
115 | fprintf(stderr, "Couldn't get APP path, assuming current directory!"); | 115 | LL_WARNS("AppInit") << "Couldn't get APP path, assuming current directory!\n" << LL_ENDL; |
116 | GetCurrentDirectory(MAX_PATH, w_str); | 116 | GetCurrentDirectory(MAX_PATH, w_str); |
117 | mExecutableDir = utf16str_to_utf8str(llutf16string(w_str)); | 117 | mExecutableDir = utf16str_to_utf8str(llutf16string(w_str)); |
118 | // Assume it's the current directory | 118 | // Assume it's the current directory |
diff --git a/linden/indra/llwindow/llmousehandler.cpp b/linden/indra/llwindow/llmousehandler.cpp index ae2f147..e3ea979 100644 --- a/linden/indra/llwindow/llmousehandler.cpp +++ b/linden/indra/llwindow/llmousehandler.cpp | |||
@@ -57,3 +57,9 @@ BOOL LLMouseHandler::handleAnyMouseClick(S32 x, S32 y, MASK mask, EClickType cli | |||
57 | } | 57 | } |
58 | return handled; | 58 | return handled; |
59 | } | 59 | } |
60 | |||
61 | BOOL LLMouseHandler::handleHScrollWheel(S32 x, S32 y, S32 clicks) | ||
62 | { | ||
63 | BOOL handled = FALSE; | ||
64 | return handled; | ||
65 | } | ||
diff --git a/linden/indra/llwindow/llmousehandler.h b/linden/indra/llwindow/llmousehandler.h index 7bd0f2e..1a4ea65 100644 --- a/linden/indra/llwindow/llmousehandler.h +++ b/linden/indra/llwindow/llmousehandler.h | |||
@@ -67,6 +67,7 @@ public: | |||
67 | 67 | ||
68 | virtual BOOL handleHover(S32 x, S32 y, MASK mask) = 0; | 68 | virtual BOOL handleHover(S32 x, S32 y, MASK mask) = 0; |
69 | virtual BOOL handleScrollWheel(S32 x, S32 y, S32 clicks) = 0; | 69 | virtual BOOL handleScrollWheel(S32 x, S32 y, S32 clicks) = 0; |
70 | virtual BOOL handleHScrollWheel(S32 x, S32 y, S32 clicks); | ||
70 | virtual BOOL handleToolTip(S32 x, S32 y, std::string& msg, LLRect* sticky_rect_screen) = 0; | 71 | virtual BOOL handleToolTip(S32 x, S32 y, std::string& msg, LLRect* sticky_rect_screen) = 0; |
71 | virtual EShowToolTip getShowToolTip() { return SHOW_IF_NOT_BLOCKED; }; | 72 | virtual EShowToolTip getShowToolTip() { return SHOW_IF_NOT_BLOCKED; }; |
72 | virtual const std::string& getName() const = 0; | 73 | virtual const std::string& getName() const = 0; |
diff --git a/linden/indra/llwindow/llwindow.cpp b/linden/indra/llwindow/llwindow.cpp index 53ca68d..6ac42b2 100644 --- a/linden/indra/llwindow/llwindow.cpp +++ b/linden/indra/llwindow/llwindow.cpp | |||
@@ -155,6 +155,10 @@ void LLWindowCallbacks::handleScrollWheel(LLWindow *window, S32 clicks) | |||
155 | { | 155 | { |
156 | } | 156 | } |
157 | 157 | ||
158 | void LLWindowCallbacks::handleHScrollWheel(LLWindow *window, S32 clicks) | ||
159 | { | ||
160 | } | ||
161 | |||
158 | void LLWindowCallbacks::handleResize(LLWindow *window, const S32 width, const S32 height) | 162 | void LLWindowCallbacks::handleResize(LLWindow *window, const S32 width, const S32 height) |
159 | { | 163 | { |
160 | } | 164 | } |
diff --git a/linden/indra/llwindow/llwindow.h b/linden/indra/llwindow/llwindow.h index 5e93ab3..cbcfc5a 100644 --- a/linden/indra/llwindow/llwindow.h +++ b/linden/indra/llwindow/llwindow.h | |||
@@ -69,6 +69,7 @@ public: | |||
69 | virtual BOOL handleActivateApp(LLWindow *window, BOOL activating); | 69 | virtual BOOL handleActivateApp(LLWindow *window, BOOL activating); |
70 | virtual void handleMouseMove(LLWindow *window, LLCoordGL pos, MASK mask); | 70 | virtual void handleMouseMove(LLWindow *window, LLCoordGL pos, MASK mask); |
71 | virtual void handleScrollWheel(LLWindow *window, S32 clicks); | 71 | virtual void handleScrollWheel(LLWindow *window, S32 clicks); |
72 | virtual void handleHScrollWheel(LLWindow *window, S32 clicks); | ||
72 | virtual void handleResize(LLWindow *window, S32 width, S32 height); | 73 | virtual void handleResize(LLWindow *window, S32 width, S32 height); |
73 | virtual void handleFocus(LLWindow *window); | 74 | virtual void handleFocus(LLWindow *window); |
74 | virtual void handleFocusLost(LLWindow *window); | 75 | virtual void handleFocusLost(LLWindow *window); |
diff --git a/linden/indra/llwindow/llwindowmacosx.cpp b/linden/indra/llwindow/llwindowmacosx.cpp index 9cbc949..8f8f019 100644 --- a/linden/indra/llwindow/llwindowmacosx.cpp +++ b/linden/indra/llwindow/llwindowmacosx.cpp | |||
@@ -2384,6 +2384,7 @@ OSStatus LLWindowMacOSX::eventHandler (EventHandlerCallRef myHandler, EventRef e | |||
2384 | HIPoint location = {0.0f, 0.0f}; | 2384 | HIPoint location = {0.0f, 0.0f}; |
2385 | UInt32 modifiers = 0; | 2385 | UInt32 modifiers = 0; |
2386 | UInt32 clickCount = 1; | 2386 | UInt32 clickCount = 1; |
2387 | EventMouseWheelAxis wheelAxis = kEventMouseWheelAxisX; | ||
2387 | long wheelDelta = 0; | 2388 | long wheelDelta = 0; |
2388 | LLCoordScreen inCoords; | 2389 | LLCoordScreen inCoords; |
2389 | LLCoordGL outCoords; | 2390 | LLCoordGL outCoords; |
@@ -2393,6 +2394,7 @@ OSStatus LLWindowMacOSX::eventHandler (EventHandlerCallRef myHandler, EventRef e | |||
2393 | GetEventParameter(event, kEventParamMouseLocation, typeHIPoint, NULL, sizeof(location), NULL, &location); | 2394 | GetEventParameter(event, kEventParamMouseLocation, typeHIPoint, NULL, sizeof(location), NULL, &location); |
2394 | GetEventParameter(event, kEventParamKeyModifiers, typeUInt32, NULL, sizeof(modifiers), NULL, &modifiers); | 2395 | GetEventParameter(event, kEventParamKeyModifiers, typeUInt32, NULL, sizeof(modifiers), NULL, &modifiers); |
2395 | GetEventParameter(event, kEventParamMouseWheelDelta, typeLongInteger, NULL, sizeof(wheelDelta), NULL, &wheelDelta); | 2396 | GetEventParameter(event, kEventParamMouseWheelDelta, typeLongInteger, NULL, sizeof(wheelDelta), NULL, &wheelDelta); |
2397 | GetEventParameter(event, kEventParamMouseWheelAxis, typeMouseWheelAxis, NULL, sizeof(wheelAxis), NULL, &wheelAxis); | ||
2396 | GetEventParameter(event, kEventParamClickCount, typeUInt32, NULL, sizeof(clickCount), NULL, &clickCount); | 2398 | GetEventParameter(event, kEventParamClickCount, typeUInt32, NULL, sizeof(clickCount), NULL, &clickCount); |
2397 | 2399 | ||
2398 | inCoords.mX = llround(location.x); | 2400 | inCoords.mX = llround(location.x); |
@@ -2501,14 +2503,31 @@ OSStatus LLWindowMacOSX::eventHandler (EventHandlerCallRef myHandler, EventRef e | |||
2501 | 2503 | ||
2502 | case kEventMouseWheelMoved: | 2504 | case kEventMouseWheelMoved: |
2503 | { | 2505 | { |
2504 | static S32 z_delta = 0; | 2506 | switch (wheelAxis){ |
2507 | case kEventMouseWheelAxisX: | ||
2505 | 2508 | ||
2506 | z_delta += wheelDelta; | 2509 | static S32 wheel_x_delta = 0; |
2507 | 2510 | ||
2508 | if (z_delta <= -WHEEL_DELTA || WHEEL_DELTA <= z_delta) | 2511 | wheel_x_delta += wheelDelta; |
2509 | { | 2512 | |
2510 | mCallbacks->handleScrollWheel(this, -z_delta / WHEEL_DELTA); | 2513 | if (wheel_x_delta <= -WHEEL_DELTA || WHEEL_DELTA <= wheel_x_delta) |
2511 | z_delta = 0; | 2514 | { |
2515 | mCallbacks->handleHScrollWheel(this, wheel_x_delta / WHEEL_DELTA); | ||
2516 | wheel_x_delta = 0; | ||
2517 | } | ||
2518 | break; | ||
2519 | case kEventMouseWheelAxisY: | ||
2520 | |||
2521 | static S32 wheel_y_delta = 0; | ||
2522 | |||
2523 | wheel_y_delta += wheelDelta; | ||
2524 | |||
2525 | if (wheel_y_delta <= -WHEEL_DELTA || WHEEL_DELTA <= wheel_y_delta) | ||
2526 | { | ||
2527 | mCallbacks->handleScrollWheel(this, -wheel_y_delta / WHEEL_DELTA); | ||
2528 | wheel_y_delta = 0; | ||
2529 | } | ||
2530 | break; | ||
2512 | } | 2531 | } |
2513 | } | 2532 | } |
2514 | result = noErr; | 2533 | result = noErr; |
diff --git a/linden/indra/llwindow/llwindowsdl.cpp b/linden/indra/llwindow/llwindowsdl.cpp index ff27a4b..5828da3 100644 --- a/linden/indra/llwindow/llwindowsdl.cpp +++ b/linden/indra/llwindow/llwindowsdl.cpp | |||
@@ -1728,7 +1728,10 @@ void LLWindowSDL::gatherInput() | |||
1728 | mCallbacks->handleScrollWheel(this, -1); | 1728 | mCallbacks->handleScrollWheel(this, -1); |
1729 | else if (event.button.button == 5) // mousewheel down...thanks to X11 for making SDL consider these "buttons". | 1729 | else if (event.button.button == 5) // mousewheel down...thanks to X11 for making SDL consider these "buttons". |
1730 | mCallbacks->handleScrollWheel(this, 1); | 1730 | mCallbacks->handleScrollWheel(this, 1); |
1731 | 1731 | else if (event.button.button == 6) | |
1732 | mCallbacks->handleHScrollWheel(this, -1); | ||
1733 | else if (event.button.button == 7) | ||
1734 | mCallbacks->handleHScrollWheel(this, 1); | ||
1732 | break; | 1735 | break; |
1733 | } | 1736 | } |
1734 | 1737 | ||
diff --git a/linden/indra/llwindow/llwindowwin32.cpp b/linden/indra/llwindow/llwindowwin32.cpp index 3fdef30..1a8a86c 100644 --- a/linden/indra/llwindow/llwindowwin32.cpp +++ b/linden/indra/llwindow/llwindowwin32.cpp | |||
@@ -2259,6 +2259,22 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_ | |||
2259 | } | 2259 | } |
2260 | return 0; | 2260 | return 0; |
2261 | } | 2261 | } |
2262 | #ifdef WM_MOUSEHWHEEL | ||
2263 | case WM_MOUSEHWHEEL: | ||
2264 | { | ||
2265 | window_imp->mCallbacks->handlePingWatchdog(window_imp, "Main:WM_MOUSEHWHEEL"); | ||
2266 | static short z_delta = 0; | ||
2267 | |||
2268 | z_delta += HIWORD(w_param); | ||
2269 | |||
2270 | if (z_delta <= -WHEEL_DELTA || WHEEL_DELTA <= z_delta) | ||
2271 | { | ||
2272 | window_imp->mCallbacks->handleHScrollWheel(window_imp, z_delta / WHEEL_DELTA); | ||
2273 | z_delta = 0; | ||
2274 | } | ||
2275 | return 0; | ||
2276 | } | ||
2277 | #endif //WM_MOUSEHWHEEL | ||
2262 | /* | 2278 | /* |
2263 | // TODO: add this after resolving _WIN32_WINNT issue | 2279 | // TODO: add this after resolving _WIN32_WINNT issue |
2264 | case WM_MOUSELEAVE: | 2280 | case WM_MOUSELEAVE: |
diff --git a/linden/indra/lscript/lscript_library/lscript_library.cpp b/linden/indra/lscript/lscript_library/lscript_library.cpp index 59f1824..6e170b9 100644 --- a/linden/indra/lscript/lscript_library/lscript_library.cpp +++ b/linden/indra/lscript/lscript_library/lscript_library.cpp | |||
@@ -571,6 +571,7 @@ void LLScriptLibrary::init() | |||
571 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "osGetPrimitiveParams", "l", "kl", "List osGetPrimitiveParams(key prim, list rules)\nGets primitive Params.\n(OpenSim only.)")); | 571 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "osGetPrimitiveParams", "l", "kl", "List osGetPrimitiveParams(key prim, list rules)\nGets primitive Params.\n(OpenSim only.)")); |
572 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "osSetPrimitiveParams", NULL, "kl", "osSetPrimitiveParams(key prim, list rules)\nSets primitive Params.\n(OpenSim only.)")); | 572 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "osSetPrimitiveParams", NULL, "kl", "osSetPrimitiveParams(key prim, list rules)\nSets primitive Params.\n(OpenSim only.)")); |
573 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "osSetProjectionParams", NULL, "kikfff", "osSetProjectionParams(key prim. bool projection, key texture, float fov, float focus, float amb)\nSet Projection Paramaters (bool = true / false)\n(OpenSim only.)")); | 573 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "osSetProjectionParams", NULL, "kikfff", "osSetProjectionParams(key prim. bool projection, key texture, float fov, float focus, float amb)\nSet Projection Paramaters (bool = true / false)\n(OpenSim only.)")); |
574 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "osUnixTimeToTimestamp", "s", "i", "osUnixTimeToTimestamp(integer unixtime)\nConverts unixtime to an llGetTimeStamp() formated string.\n(OpenSim only.)")); | ||
574 | 575 | ||
575 | // LightShare functions | 576 | // LightShare functions |
576 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "cmSetWindlightScene", "i", "l", "integer cmSetWindlightScene(list rules)\nSet the current WindLight scene. Restricted to estate managers and owners only.")); | 577 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "cmSetWindlightScene", "i", "l", "integer cmSetWindlightScene(list rules)\nSet the current WindLight scene. Restricted to estate managers and owners only.")); |
diff --git a/linden/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp b/linden/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp index 6a44887..6835d0f 100755 --- a/linden/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp +++ b/linden/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp | |||
@@ -84,7 +84,7 @@ public: | |||
84 | GstMessage *message); | 84 | GstMessage *message); |
85 | 85 | ||
86 | // basic log file writing | 86 | // basic log file writing |
87 | static bool writeToLog(char* str, ...); | 87 | static bool writeToLog(const char* str, ...); |
88 | 88 | ||
89 | private: | 89 | private: |
90 | std::string getVersion(); | 90 | std::string getVersion(); |
@@ -181,7 +181,7 @@ MediaPluginGStreamer010::MediaPluginGStreamer010( | |||
181 | mVideoSink ( NULL ), | 181 | mVideoSink ( NULL ), |
182 | mCommand ( COMMAND_NONE ) | 182 | mCommand ( COMMAND_NONE ) |
183 | { | 183 | { |
184 | writeToLog("MediaPluginGStreamer010 PID=%u", U32(LL_GETPID())); | 184 | writeToLog((char*)"MediaPluginGStreamer010 PID=%u", U32(LL_GETPID())); |
185 | } | 185 | } |
186 | 186 | ||
187 | /////////////////////////////////////////////////////////////////////////////// | 187 | /////////////////////////////////////////////////////////////////////////////// |
@@ -202,7 +202,7 @@ static char* get_gst_state_name(GstState state) | |||
202 | #endif // LL_GST_REPORT_STATE_CHANGES | 202 | #endif // LL_GST_REPORT_STATE_CHANGES |
203 | 203 | ||
204 | // static | 204 | // static |
205 | bool MediaPluginGStreamer010::writeToLog(char* str, ...) | 205 | bool MediaPluginGStreamer010::writeToLog(const char* str, ...) |
206 | { | 206 | { |
207 | LLFILE* fp = LLFile::fopen("media_plugin_gstreamer010.log", "a"); | 207 | LLFILE* fp = LLFile::fopen("media_plugin_gstreamer010.log", "a"); |
208 | 208 | ||
@@ -236,7 +236,7 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
236 | GST_MESSAGE_TYPE(message) != GST_MESSAGE_BUFFERING && | 236 | GST_MESSAGE_TYPE(message) != GST_MESSAGE_BUFFERING && |
237 | GST_MESSAGE_TYPE(message) != GST_MESSAGE_TAG) | 237 | GST_MESSAGE_TYPE(message) != GST_MESSAGE_TAG) |
238 | { | 238 | { |
239 | writeToLog("Got GST message type: %s", GST_MESSAGE_TYPE_NAME (message)); | 239 | writeToLog((char*)"Got GST message type: %s", GST_MESSAGE_TYPE_NAME (message)); |
240 | } | 240 | } |
241 | 241 | ||
242 | switch (GST_MESSAGE_TYPE (message)) | 242 | switch (GST_MESSAGE_TYPE (message)) |
@@ -246,7 +246,7 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
246 | // NEEDS GST 0.10.11+ and America discovered by C.Columbus | 246 | // NEEDS GST 0.10.11+ and America discovered by C.Columbus |
247 | gint percent = 0; | 247 | gint percent = 0; |
248 | gst_message_parse_buffering(message, &percent); | 248 | gst_message_parse_buffering(message, &percent); |
249 | writeToLog("GST buffering: %d%%", percent); | 249 | writeToLog((char*)"GST buffering: %d%%", percent); |
250 | 250 | ||
251 | break; | 251 | break; |
252 | } | 252 | } |
@@ -260,7 +260,7 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
260 | &pending_state); | 260 | &pending_state); |
261 | #ifdef LL_GST_REPORT_STATE_CHANGES | 261 | #ifdef LL_GST_REPORT_STATE_CHANGES |
262 | // not generally very useful, and rather spammy. | 262 | // not generally very useful, and rather spammy. |
263 | writeToLog("state change (old,<new>,pending): %s,<%s>,%s", | 263 | writeToLog((char*)"state change (old,<new>,pending): %s,<%s>,%s", |
264 | get_gst_state_name(old_state), | 264 | get_gst_state_name(old_state), |
265 | get_gst_state_name(new_state), | 265 | get_gst_state_name(new_state), |
266 | get_gst_state_name(pending_state)); | 266 | get_gst_state_name(pending_state)); |
@@ -290,7 +290,7 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
290 | gchar *debug = NULL; | 290 | gchar *debug = NULL; |
291 | 291 | ||
292 | gst_message_parse_error (message, &err, &debug); | 292 | gst_message_parse_error (message, &err, &debug); |
293 | writeToLog("GST error: %s", err?err->message:"(unknown)"); | 293 | writeToLog((char*)"GST error: %s", err?err->message:"(unknown)"); |
294 | if (err) | 294 | if (err) |
295 | g_error_free (err); | 295 | g_error_free (err); |
296 | g_free (debug); | 296 | g_free (debug); |
@@ -307,7 +307,7 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
307 | gchar *debug = NULL; | 307 | gchar *debug = NULL; |
308 | 308 | ||
309 | gst_message_parse_info (message, &err, &debug); | 309 | gst_message_parse_info (message, &err, &debug); |
310 | writeToLog("GST info: %s", err?err->message:"(unknown)"); | 310 | writeToLog((char*)"GST info: %s", err?err->message:"(unknown)"); |
311 | if (err) | 311 | if (err) |
312 | g_error_free (err); | 312 | g_error_free (err); |
313 | g_free (debug); | 313 | g_free (debug); |
@@ -320,7 +320,7 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
320 | gchar *debug = NULL; | 320 | gchar *debug = NULL; |
321 | 321 | ||
322 | gst_message_parse_warning (message, &err, &debug); | 322 | gst_message_parse_warning (message, &err, &debug); |
323 | writeToLog("GST warning: %s", err?err->message:"(unknown)"); | 323 | writeToLog((char*)"GST warning: %s", err?err->message:"(unknown)"); |
324 | if (err) | 324 | if (err) |
325 | g_error_free (err); | 325 | g_error_free (err); |
326 | g_free (debug); | 326 | g_free (debug); |
@@ -337,7 +337,7 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
337 | 337 | ||
338 | if ( gst_tag_list_get_string(new_tags, GST_TAG_TITLE, &title) ) | 338 | if ( gst_tag_list_get_string(new_tags, GST_TAG_TITLE, &title) ) |
339 | { | 339 | { |
340 | //writeToLog("Title: %s", title); | 340 | //writeToLog((char*)"Title: %s", title); |
341 | std::string newtitle(title); | 341 | std::string newtitle(title); |
342 | gst_tag_list_free(new_tags); | 342 | gst_tag_list_free(new_tags); |
343 | 343 | ||
@@ -356,10 +356,10 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
356 | case GST_MESSAGE_EOS: | 356 | case GST_MESSAGE_EOS: |
357 | { | 357 | { |
358 | /* end-of-stream */ | 358 | /* end-of-stream */ |
359 | writeToLog("GST end-of-stream."); | 359 | writeToLog((char*)"GST end-of-stream."); |
360 | if (mIsLooping) | 360 | if (mIsLooping) |
361 | { | 361 | { |
362 | //writeToLog("looping media..."); | 362 | //writeToLog((char*)"looping media..."); |
363 | double eos_pos_sec = 0.0F; | 363 | double eos_pos_sec = 0.0F; |
364 | bool got_eos_position = getTimePos(eos_pos_sec); | 364 | bool got_eos_position = getTimePos(eos_pos_sec); |
365 | 365 | ||
@@ -368,7 +368,7 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
368 | // if we know that the movie is really short, don't | 368 | // if we know that the movie is really short, don't |
369 | // loop it else it can easily become a time-hog | 369 | // loop it else it can easily become a time-hog |
370 | // because of GStreamer spin-up overhead | 370 | // because of GStreamer spin-up overhead |
371 | writeToLog("really short movie (%0.3fsec) - not gonna loop this, pausing instead.", eos_pos_sec); | 371 | writeToLog((char*)"really short movie (%0.3fsec) - not gonna loop this, pausing instead.", eos_pos_sec); |
372 | // inject a COMMAND_PAUSE | 372 | // inject a COMMAND_PAUSE |
373 | mCommand = COMMAND_PAUSE; | 373 | mCommand = COMMAND_PAUSE; |
374 | } | 374 | } |
@@ -387,7 +387,7 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
387 | else | 387 | else |
388 | #endif // LLGST_LOOP_BY_SEEKING | 388 | #endif // LLGST_LOOP_BY_SEEKING |
389 | { // use clumsy stop-start to loop | 389 | { // use clumsy stop-start to loop |
390 | writeToLog("didn't loop by rewinding - stopping and starting instead..."); | 390 | writeToLog((char*)"didn't loop by rewinding - stopping and starting instead..."); |
391 | stop(); | 391 | stop(); |
392 | play(1.0); | 392 | play(1.0); |
393 | } | 393 | } |
@@ -433,7 +433,7 @@ MediaPluginGStreamer010::navigateTo ( const std::string urlIn ) | |||
433 | 433 | ||
434 | setStatus(STATUS_LOADING); | 434 | setStatus(STATUS_LOADING); |
435 | 435 | ||
436 | writeToLog("Setting media URI: %s", urlIn.c_str()); | 436 | writeToLog((char*)"Setting media URI: %s", urlIn.c_str()); |
437 | 437 | ||
438 | mSeekWanted = false; | 438 | mSeekWanted = false; |
439 | 439 | ||
@@ -461,13 +461,13 @@ MediaPluginGStreamer010::update(int milliseconds) | |||
461 | if (!mDoneInit) | 461 | if (!mDoneInit) |
462 | return false; // error | 462 | return false; // error |
463 | 463 | ||
464 | //writeToLog("updating media..."); | 464 | //writeToLog((char*)"updating media..."); |
465 | 465 | ||
466 | // sanity check | 466 | // sanity check |
467 | if (NULL == mPump || | 467 | if (NULL == mPump || |
468 | NULL == mPlaybin) | 468 | NULL == mPlaybin) |
469 | { | 469 | { |
470 | writeToLog("dead media..."); | 470 | writeToLog((char*)"dead media..."); |
471 | return false; | 471 | return false; |
472 | } | 472 | } |
473 | 473 | ||
@@ -497,7 +497,7 @@ MediaPluginGStreamer010::update(int milliseconds) | |||
497 | GST_OBJECT_LOCK(mVideoSink); | 497 | GST_OBJECT_LOCK(mVideoSink); |
498 | if (mVideoSink->retained_frame_ready) | 498 | if (mVideoSink->retained_frame_ready) |
499 | { | 499 | { |
500 | writeToLog("NEW FRAME READY"); | 500 | writeToLog((char*)"NEW FRAME READY"); |
501 | 501 | ||
502 | if (mVideoSink->retained_frame_width != mCurrentWidth || | 502 | if (mVideoSink->retained_frame_width != mCurrentWidth || |
503 | mVideoSink->retained_frame_height != mCurrentHeight) | 503 | mVideoSink->retained_frame_height != mCurrentHeight) |
@@ -528,7 +528,7 @@ MediaPluginGStreamer010::update(int milliseconds) | |||
528 | GST_OBJECT_UNLOCK(mVideoSink); | 528 | GST_OBJECT_UNLOCK(mVideoSink); |
529 | 529 | ||
530 | mCurrentRowbytes = neww * newd; | 530 | mCurrentRowbytes = neww * newd; |
531 | writeToLog("video container resized to %dx%d", | 531 | writeToLog((char*)"video container resized to %dx%d", |
532 | neww, newh); | 532 | neww, newh); |
533 | 533 | ||
534 | mDepth = newd; | 534 | mDepth = newd; |
@@ -556,7 +556,7 @@ MediaPluginGStreamer010::update(int milliseconds) | |||
556 | } | 556 | } |
557 | 557 | ||
558 | GST_OBJECT_UNLOCK(mVideoSink); | 558 | GST_OBJECT_UNLOCK(mVideoSink); |
559 | writeToLog("NEW FRAME REALLY TRULY CONSUMED, TELLING HOST"); | 559 | writeToLog((char*)"NEW FRAME REALLY TRULY CONSUMED, TELLING HOST"); |
560 | 560 | ||
561 | setDirty(0,0,mCurrentWidth,mCurrentHeight); | 561 | setDirty(0,0,mCurrentWidth,mCurrentHeight); |
562 | } | 562 | } |
@@ -567,7 +567,7 @@ MediaPluginGStreamer010::update(int milliseconds) | |||
567 | 567 | ||
568 | GST_OBJECT_UNLOCK(mVideoSink); | 568 | GST_OBJECT_UNLOCK(mVideoSink); |
569 | 569 | ||
570 | writeToLog("NEW FRAME not consumed, still waiting for a shm segment and/or shm resize"); | 570 | writeToLog((char*)"NEW FRAME not consumed, still waiting for a shm segment and/or shm resize"); |
571 | } | 571 | } |
572 | 572 | ||
573 | return true; | 573 | return true; |
@@ -606,7 +606,7 @@ MediaPluginGStreamer010::mouseMove( int x, int y ) | |||
606 | bool | 606 | bool |
607 | MediaPluginGStreamer010::pause() | 607 | MediaPluginGStreamer010::pause() |
608 | { | 608 | { |
609 | writeToLog("pausing media..."); | 609 | writeToLog((char*)"pausing media..."); |
610 | // todo: error-check this? | 610 | // todo: error-check this? |
611 | gst_element_set_state(mPlaybin, GST_STATE_PAUSED); | 611 | gst_element_set_state(mPlaybin, GST_STATE_PAUSED); |
612 | return true; | 612 | return true; |
@@ -615,7 +615,7 @@ MediaPluginGStreamer010::pause() | |||
615 | bool | 615 | bool |
616 | MediaPluginGStreamer010::stop() | 616 | MediaPluginGStreamer010::stop() |
617 | { | 617 | { |
618 | writeToLog("stopping media..."); | 618 | writeToLog((char*)"stopping media..."); |
619 | // todo: error-check this? | 619 | // todo: error-check this? |
620 | gst_element_set_state(mPlaybin, GST_STATE_READY); | 620 | gst_element_set_state(mPlaybin, GST_STATE_READY); |
621 | return true; | 621 | return true; |
@@ -625,7 +625,7 @@ bool | |||
625 | MediaPluginGStreamer010::play(double rate) | 625 | MediaPluginGStreamer010::play(double rate) |
626 | { | 626 | { |
627 | // NOTE: we don't actually support non-natural rate. | 627 | // NOTE: we don't actually support non-natural rate. |
628 | writeToLog("playing media... rate=%f", rate); | 628 | writeToLog((char*)"playing media... rate=%f", rate); |
629 | // todo: error-check this? | 629 | // todo: error-check this? |
630 | gst_element_set_state(mPlaybin, GST_STATE_PLAYING); | 630 | gst_element_set_state(mPlaybin, GST_STATE_PLAYING); |
631 | return true; | 631 | return true; |
@@ -662,7 +662,7 @@ MediaPluginGStreamer010::seek(double time_sec) | |||
662 | GST_SEEK_TYPE_SET, gint64(time_sec*GST_SECOND), | 662 | GST_SEEK_TYPE_SET, gint64(time_sec*GST_SECOND), |
663 | GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE); | 663 | GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE); |
664 | } | 664 | } |
665 | writeToLog("MEDIA SEEK REQUEST to %f sec result was %d", | 665 | writeToLog((char*)"MEDIA SEEK REQUEST to %f sec result was %d", |
666 | float(time_sec), int(success)); | 666 | float(time_sec), int(success)); |
667 | return success; | 667 | return success; |
668 | } | 668 | } |
@@ -716,7 +716,7 @@ MediaPluginGStreamer010::load() | |||
716 | 716 | ||
717 | setStatus(STATUS_LOADING); | 717 | setStatus(STATUS_LOADING); |
718 | 718 | ||
719 | writeToLog("setting up media..."); | 719 | writeToLog((char*)"setting up media..."); |
720 | 720 | ||
721 | mIsLooping = false; | 721 | mIsLooping = false; |
722 | mVolume = (float) 0.1234567; // minor hack to force an initial volume update | 722 | mVolume = (float) 0.1234567; // minor hack to force an initial volume update |
@@ -755,7 +755,7 @@ MediaPluginGStreamer010::load() | |||
755 | GST_SLVIDEO(gst_element_factory_make ("private-slvideo", "slvideo")); | 755 | GST_SLVIDEO(gst_element_factory_make ("private-slvideo", "slvideo")); |
756 | if (!mVideoSink) | 756 | if (!mVideoSink) |
757 | { | 757 | { |
758 | writeToLog("Could not instantiate private-slvideo element."); | 758 | writeToLog((char*)"Could not instantiate private-slvideo element."); |
759 | // todo: cleanup. | 759 | // todo: cleanup. |
760 | setStatus(STATUS_ERROR); | 760 | setStatus(STATUS_ERROR); |
761 | return false; // error | 761 | return false; // error |
@@ -774,7 +774,7 @@ MediaPluginGStreamer010::unload () | |||
774 | if (!mDoneInit) | 774 | if (!mDoneInit) |
775 | return false; // error | 775 | return false; // error |
776 | 776 | ||
777 | writeToLog("unloading media..."); | 777 | writeToLog((char*)"unloading media..."); |
778 | 778 | ||
779 | // stop getting callbacks for this bus | 779 | // stop getting callbacks for this bus |
780 | g_source_remove(mBusWatchID); | 780 | g_source_remove(mBusWatchID); |
@@ -832,7 +832,7 @@ MediaPluginGStreamer010::startup() | |||
832 | "libgstvideo-0.10.so.0") ) | 832 | "libgstvideo-0.10.so.0") ) |
833 | #endif | 833 | #endif |
834 | { | 834 | { |
835 | writeToLog("Couldn't find suitable GStreamer 0.10 support on this system - video playback disabled."); | 835 | writeToLog((char*)"Couldn't find suitable GStreamer 0.10 support on this system - video playback disabled."); |
836 | return false; | 836 | return false; |
837 | } | 837 | } |
838 | */ | 838 | */ |
@@ -842,7 +842,7 @@ MediaPluginGStreamer010::startup() | |||
842 | // } | 842 | // } |
843 | // else | 843 | // else |
844 | // { | 844 | // { |
845 | // writeToLog("gst_segtrap_set_enabled() is not available; plugin crashes won't be caught."); | 845 | // writeToLog((char*)"gst_segtrap_set_enabled() is not available; plugin crashes won't be caught."); |
846 | // } | 846 | // } |
847 | /* | 847 | /* |
848 | #if LL_LINUX | 848 | #if LL_LINUX |
@@ -885,12 +885,12 @@ MediaPluginGStreamer010::startup() | |||
885 | { | 885 | { |
886 | if (err) | 886 | if (err) |
887 | { | 887 | { |
888 | writeToLog("GST init failed: %s", err->message); | 888 | writeToLog((char*)"GST init failed: %s", err->message); |
889 | g_error_free(err); | 889 | g_error_free(err); |
890 | } | 890 | } |
891 | else | 891 | else |
892 | { | 892 | { |
893 | writeToLog("GST init failed for unspecified reason."); | 893 | writeToLog((char*)"GST init failed for unspecified reason."); |
894 | } | 894 | } |
895 | return false; | 895 | return false; |
896 | } | 896 | } |
@@ -903,7 +903,7 @@ MediaPluginGStreamer010::startup() | |||
903 | gst_slvideo_init_class(); | 903 | gst_slvideo_init_class(); |
904 | 904 | ||
905 | // List the plugins GStreamer can find | 905 | // List the plugins GStreamer can find |
906 | writeToLog("Found GStreamer plugins:"); | 906 | writeToLog((char*)"Found GStreamer plugins:"); |
907 | GList *list; | 907 | GList *list; |
908 | GstRegistry *registry = gst_registry_get_default(); | 908 | GstRegistry *registry = gst_registry_get_default(); |
909 | std::string loaded = "No"; | 909 | std::string loaded = "No"; |
@@ -913,7 +913,7 @@ MediaPluginGStreamer010::startup() | |||
913 | { | 913 | { |
914 | GstPlugin *list_plugin = (GstPlugin *)list->data; | 914 | GstPlugin *list_plugin = (GstPlugin *)list->data; |
915 | if (gst_plugin_is_loaded(list_plugin)) loaded = "Yes"; | 915 | if (gst_plugin_is_loaded(list_plugin)) loaded = "Yes"; |
916 | writeToLog("%s, loaded? %s", gst_plugin_get_name(list_plugin), loaded.c_str()); | 916 | writeToLog((char*)"%s, loaded? %s", gst_plugin_get_name(list_plugin), loaded.c_str()); |
917 | } | 917 | } |
918 | gst_plugin_list_free(list); | 918 | gst_plugin_list_free(list); |
919 | 919 | ||
@@ -960,11 +960,11 @@ void MediaPluginGStreamer010::set_gst_plugin_path() | |||
960 | 960 | ||
961 | if( imp_dir == "" ) | 961 | if( imp_dir == "" ) |
962 | { | 962 | { |
963 | writeToLog("Could not get application directory, not setting GST_PLUGIN_PATH."); | 963 | writeToLog((char*)"Could not get application directory, not setting GST_PLUGIN_PATH."); |
964 | return; | 964 | return; |
965 | } | 965 | } |
966 | 966 | ||
967 | writeToLog("meta-impy is installed at %s", imp_dir.c_str()); | 967 | writeToLog((char*)"meta-impy is installed at %s", imp_dir.c_str()); |
968 | 968 | ||
969 | // ":" on Mac and 'Nix, ";" on Windows | 969 | // ":" on Mac and 'Nix, ";" on Windows |
970 | std::string separator = G_SEARCHPATH_SEPARATOR_S; | 970 | std::string separator = G_SEARCHPATH_SEPARATOR_S; |
@@ -974,7 +974,7 @@ void MediaPluginGStreamer010::set_gst_plugin_path() | |||
974 | char *old_path = getenv("GST_PLUGIN_PATH"); | 974 | char *old_path = getenv("GST_PLUGIN_PATH"); |
975 | if(old_path == NULL) | 975 | if(old_path == NULL) |
976 | { | 976 | { |
977 | writeToLog("Did not find user-set GST_PLUGIN_PATH."); | 977 | writeToLog((char*)"Did not find user-set GST_PLUGIN_PATH."); |
978 | } | 978 | } |
979 | else | 979 | else |
980 | { | 980 | { |
@@ -1005,11 +1005,11 @@ void MediaPluginGStreamer010::set_gst_plugin_path() | |||
1005 | 1005 | ||
1006 | if( put_result == -1 ) | 1006 | if( put_result == -1 ) |
1007 | { | 1007 | { |
1008 | writeToLog("Setting GST_PLUGIN_PATH failed!"); | 1008 | writeToLog((char*)"Setting GST_PLUGIN_PATH failed!"); |
1009 | } | 1009 | } |
1010 | else | 1010 | else |
1011 | { | 1011 | { |
1012 | writeToLog("GST_PLUGIN_PATH set to %s", getenv("GST_PLUGIN_PATH")); | 1012 | writeToLog((char*)"GST_PLUGIN_PATH set to %s", getenv("GST_PLUGIN_PATH")); |
1013 | } | 1013 | } |
1014 | 1014 | ||
1015 | // Don't load system plugins. We only want to use ours, to avoid conflicts. | 1015 | // Don't load system plugins. We only want to use ours, to avoid conflicts. |
@@ -1021,7 +1021,7 @@ void MediaPluginGStreamer010::set_gst_plugin_path() | |||
1021 | 1021 | ||
1022 | if( put_result == -1 ) | 1022 | if( put_result == -1 ) |
1023 | { | 1023 | { |
1024 | writeToLog("Setting GST_PLUGIN_SYSTEM_PATH=\"\" failed!"); | 1024 | writeToLog((char*)"Setting GST_PLUGIN_SYSTEM_PATH=\"\" failed!"); |
1025 | } | 1025 | } |
1026 | 1026 | ||
1027 | #endif // LL_WINDOWS || LL_DARWIN | 1027 | #endif // LL_WINDOWS || LL_DARWIN |
@@ -1039,7 +1039,7 @@ MediaPluginGStreamer010::sizeChanged() | |||
1039 | { | 1039 | { |
1040 | mNaturalWidth = mCurrentWidth; | 1040 | mNaturalWidth = mCurrentWidth; |
1041 | mNaturalHeight = mCurrentHeight; | 1041 | mNaturalHeight = mCurrentHeight; |
1042 | writeToLog("Media NATURAL size better detected as %dx%d", | 1042 | writeToLog((char*)"Media NATURAL size better detected as %dx%d", |
1043 | mNaturalWidth, mNaturalHeight); | 1043 | mNaturalWidth, mNaturalHeight); |
1044 | } | 1044 | } |
1045 | 1045 | ||
@@ -1054,7 +1054,7 @@ MediaPluginGStreamer010::sizeChanged() | |||
1054 | message.setValue("name", mTextureSegmentName); | 1054 | message.setValue("name", mTextureSegmentName); |
1055 | message.setValueS32("width", mNaturalWidth); | 1055 | message.setValueS32("width", mNaturalWidth); |
1056 | message.setValueS32("height", mNaturalHeight); | 1056 | message.setValueS32("height", mNaturalHeight); |
1057 | writeToLog("<--- Sending size change request to application with name: '%s' - natural size is %d x %d", mTextureSegmentName.c_str(), mNaturalWidth, mNaturalHeight); | 1057 | writeToLog((char*)"<--- Sending size change request to application with name: '%s' - natural size is %d x %d", mTextureSegmentName.c_str(), mNaturalWidth, mNaturalHeight); |
1058 | sendMessage(message); | 1058 | sendMessage(message); |
1059 | } | 1059 | } |
1060 | } | 1060 | } |
@@ -1077,11 +1077,11 @@ MediaPluginGStreamer010::closedown() | |||
1077 | 1077 | ||
1078 | MediaPluginGStreamer010::~MediaPluginGStreamer010() | 1078 | MediaPluginGStreamer010::~MediaPluginGStreamer010() |
1079 | { | 1079 | { |
1080 | //writeToLog("MediaPluginGStreamer010 destructor"); | 1080 | //writeToLog((char*)"MediaPluginGStreamer010 destructor"); |
1081 | 1081 | ||
1082 | closedown(); | 1082 | closedown(); |
1083 | 1083 | ||
1084 | writeToLog("GStreamer010 closing down"); | 1084 | writeToLog((char*)"GStreamer010 closing down"); |
1085 | } | 1085 | } |
1086 | 1086 | ||
1087 | 1087 | ||
@@ -1125,11 +1125,11 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) | |||
1125 | 1125 | ||
1126 | if ( load() ) | 1126 | if ( load() ) |
1127 | { | 1127 | { |
1128 | writeToLog("GStreamer010 media instance set up"); | 1128 | writeToLog((char*)"GStreamer010 media instance set up"); |
1129 | } | 1129 | } |
1130 | else | 1130 | else |
1131 | { | 1131 | { |
1132 | writeToLog("GStreamer010 media instance failed to set up"); | 1132 | writeToLog((char*)"GStreamer010 media instance failed to set up"); |
1133 | } | 1133 | } |
1134 | 1134 | ||
1135 | message.setValue("plugin_version", getVersion()); | 1135 | message.setValue("plugin_version", getVersion()); |
@@ -1156,7 +1156,7 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) | |||
1156 | std::string name = message_in.getValue("name"); | 1156 | std::string name = message_in.getValue("name"); |
1157 | 1157 | ||
1158 | std::ostringstream str; | 1158 | std::ostringstream str; |
1159 | writeToLog("MediaPluginGStreamer010::receiveMessage: shared memory added, name: %s, size: %d, address: %p", name.c_str(), int(info.mSize), info.mAddress); | 1159 | writeToLog((char*)"MediaPluginGStreamer010::receiveMessage: shared memory added, name: %s, size: %d, address: %p", name.c_str(), int(info.mSize), info.mAddress); |
1160 | 1160 | ||
1161 | mSharedSegments.insert(SharedSegmentMap::value_type(name, info)); | 1161 | mSharedSegments.insert(SharedSegmentMap::value_type(name, info)); |
1162 | } | 1162 | } |
@@ -1164,7 +1164,7 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) | |||
1164 | { | 1164 | { |
1165 | std::string name = message_in.getValue("name"); | 1165 | std::string name = message_in.getValue("name"); |
1166 | 1166 | ||
1167 | writeToLog("MediaPluginGStreamer010::receiveMessage: shared memory remove, name = %s", name.c_str()); | 1167 | writeToLog((char*)"MediaPluginGStreamer010::receiveMessage: shared memory remove, name = %s", name.c_str()); |
1168 | 1168 | ||
1169 | SharedSegmentMap::iterator iter = mSharedSegments.find(name); | 1169 | SharedSegmentMap::iterator iter = mSharedSegments.find(name); |
1170 | if(iter != mSharedSegments.end()) | 1170 | if(iter != mSharedSegments.end()) |
@@ -1182,7 +1182,7 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) | |||
1182 | } | 1182 | } |
1183 | else | 1183 | else |
1184 | { | 1184 | { |
1185 | writeToLog("MediaPluginGStreamer010::receiveMessage: unknown shared memory region!"); | 1185 | writeToLog((char*)"MediaPluginGStreamer010::receiveMessage: unknown shared memory region!"); |
1186 | } | 1186 | } |
1187 | 1187 | ||
1188 | // Send the response so it can be cleaned up. | 1188 | // Send the response so it can be cleaned up. |
@@ -1193,7 +1193,7 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) | |||
1193 | else | 1193 | else |
1194 | { | 1194 | { |
1195 | std::ostringstream str; | 1195 | std::ostringstream str; |
1196 | writeToLog("MediaPluginGStreamer010::receiveMessage: unknown base message: %s", message_name.c_str()); | 1196 | writeToLog((char*)"MediaPluginGStreamer010::receiveMessage: unknown base message: %s", message_name.c_str()); |
1197 | } | 1197 | } |
1198 | } | 1198 | } |
1199 | else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA) | 1199 | else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA) |
@@ -1236,7 +1236,7 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) | |||
1236 | S32 texture_height = message_in.getValueS32("texture_height"); | 1236 | S32 texture_height = message_in.getValueS32("texture_height"); |
1237 | 1237 | ||
1238 | std::ostringstream str; | 1238 | std::ostringstream str; |
1239 | writeToLog("---->Got size change instruction from application with shm name: %s - size is %d x %d", name.c_str(), width, height); | 1239 | writeToLog((char*)"---->Got size change instruction from application with shm name: %s - size is %d x %d", name.c_str(), width, height); |
1240 | 1240 | ||
1241 | LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "size_change_response"); | 1241 | LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "size_change_response"); |
1242 | message.setValue("name", name); | 1242 | message.setValue("name", name); |
@@ -1252,8 +1252,8 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) | |||
1252 | SharedSegmentMap::iterator iter = mSharedSegments.find(name); | 1252 | SharedSegmentMap::iterator iter = mSharedSegments.find(name); |
1253 | if(iter != mSharedSegments.end()) | 1253 | if(iter != mSharedSegments.end()) |
1254 | { | 1254 | { |
1255 | writeToLog("*** Got size change with matching shm, new size is %d x %d", width, height); | 1255 | writeToLog((char*)"*** Got size change with matching shm, new size is %d x %d", width, height); |
1256 | writeToLog("*** Got size change with matching shm, texture size size is %d x %d", texture_width, texture_height); | 1256 | writeToLog((char*)"*** Got size change with matching shm, texture size size is %d x %d", texture_width, texture_height); |
1257 | 1257 | ||
1258 | mPixels = (unsigned char*)iter->second.mAddress; | 1258 | mPixels = (unsigned char*)iter->second.mAddress; |
1259 | mTextureSegmentName = name; | 1259 | mTextureSegmentName = name; |
@@ -1263,7 +1263,7 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) | |||
1263 | if (texture_width > 1 || | 1263 | if (texture_width > 1 || |
1264 | texture_height > 1) // not a dummy size from the app, a real explicit forced size | 1264 | texture_height > 1) // not a dummy size from the app, a real explicit forced size |
1265 | { | 1265 | { |
1266 | writeToLog("**** = REAL RESIZE REQUEST FROM APP"); | 1266 | writeToLog((char*)"**** = REAL RESIZE REQUEST FROM APP"); |
1267 | 1267 | ||
1268 | GST_OBJECT_LOCK(mVideoSink); | 1268 | GST_OBJECT_LOCK(mVideoSink); |
1269 | mVideoSink->resize_forced_always = true; | 1269 | mVideoSink->resize_forced_always = true; |
@@ -1345,7 +1345,7 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) | |||
1345 | } | 1345 | } |
1346 | else | 1346 | else |
1347 | { | 1347 | { |
1348 | writeToLog("MediaPluginGStreamer010::receiveMessage: unknown message class: %s", message_class.c_str()); | 1348 | writeToLog((char*)"MediaPluginGStreamer010::receiveMessage: unknown message class: %s", message_class.c_str()); |
1349 | } | 1349 | } |
1350 | } | 1350 | } |
1351 | } | 1351 | } |
diff --git a/linden/indra/newview/CMakeLists.txt b/linden/indra/newview/CMakeLists.txt index d8053ae..f4c3755 100644 --- a/linden/indra/newview/CMakeLists.txt +++ b/linden/indra/newview/CMakeLists.txt | |||
@@ -497,6 +497,7 @@ set(viewer_SOURCE_FILES | |||
497 | rlvmultistringsearch.cpp | 497 | rlvmultistringsearch.cpp |
498 | rlvextensions.cpp | 498 | rlvextensions.cpp |
499 | rlvfloaterbehaviour.cpp | 499 | rlvfloaterbehaviour.cpp |
500 | slfloatermediafilter.cpp | ||
500 | viewertime.cpp | 501 | viewertime.cpp |
501 | viewerversion.cpp | 502 | viewerversion.cpp |
502 | windlightsettingsupdate.cpp | 503 | windlightsettingsupdate.cpp |
@@ -966,6 +967,7 @@ set(viewer_HEADER_FILES | |||
966 | rlvmultistringsearch.h | 967 | rlvmultistringsearch.h |
967 | rlvextensions.h | 968 | rlvextensions.h |
968 | rlvfloaterbehaviour.h | 969 | rlvfloaterbehaviour.h |
970 | slfloatermediafilter.h | ||
969 | VertexCache.h | 971 | VertexCache.h |
970 | VorbisFramework.h | 972 | VorbisFramework.h |
971 | viewertime.h | 973 | viewertime.h |
diff --git a/linden/indra/newview/app_settings/default_grids.xml b/linden/indra/newview/app_settings/default_grids.xml index d3068b1..b86385a 100644 --- a/linden/indra/newview/app_settings/default_grids.xml +++ b/linden/indra/newview/app_settings/default_grids.xml | |||
@@ -1,7 +1,7 @@ | |||
1 | <llsd> | 1 | <llsd> |
2 | <array> | 2 | <array> |
3 | <map> | 3 | <map> |
4 | <key>default_grids_version</key><string>31</string> | 4 | <key>default_grids_version</key><string>32</string> |
5 | </map> | 5 | </map> |
6 | 6 | ||
7 | <!-- Second Life --> | 7 | <!-- Second Life --> |
@@ -60,6 +60,21 @@ | |||
60 | <key>version</key><string>2</string> | 60 | <key>version</key><string>2</string> |
61 | </map> | 61 | </map> |
62 | 62 | ||
63 | <!-- Aurora Grid --> | ||
64 | <map> | ||
65 | <key>gridname</key> <string>Aurora-Grid</string> | ||
66 | <key>gridnick</key> <string>auroragrid</string> | ||
67 | <key>platform</key> <string>OpenSim</string> | ||
68 | <key>loginuri</key> <string>http://login.aurora-sim.org:8002/</string> | ||
69 | <key>loginpage</key> <string>http://login.aurora-sim.org/splash/</string> | ||
70 | <key>helperuri</key> <string>http://grid.aurora-sim.org/</string> | ||
71 | <key>password</key> <string /> | ||
72 | <key>register</key> <string /> | ||
73 | <key>support</key> <string>http://forum.aurora-sim.org/</string> | ||
74 | <key>website</key> <string>http://aurora-sim.org</string> | ||
75 | <key>version</key> <string>0</string> | ||
76 | </map> | ||
77 | |||
63 | <!-- WorldSimTerra --> | 78 | <!-- WorldSimTerra --> |
64 | <map> | 79 | <map> |
65 | <key>gridnick</key><string>worldsimterra</string> | 80 | <key>gridnick</key><string>worldsimterra</string> |
diff --git a/linden/indra/newview/app_settings/logcontrol.xml b/linden/indra/newview/app_settings/logcontrol.xml index 353ae72..027afaf 100644 --- a/linden/indra/newview/app_settings/logcontrol.xml +++ b/linden/indra/newview/app_settings/logcontrol.xml | |||
@@ -57,7 +57,8 @@ | |||
57 | <!--<string>Inventory</string>--> | 57 | <!--<string>Inventory</string>--> |
58 | <!--<string>HUDEffect</string>--> | 58 | <!--<string>HUDEffect</string>--> |
59 | <!--<string>MarkerFile</string>--> | 59 | <!--<string>MarkerFile</string>--> |
60 | <!--<string>MediaImpl</string>--> | 60 | <!--<string>Media</string>--> |
61 | <string>MediaFilter</string> | ||
61 | <!--<string>MediaInfo</string>--> | 62 | <!--<string>MediaInfo</string>--> |
62 | <!--<string>MediaCallback</string>--> | 63 | <!--<string>MediaCallback</string>--> |
63 | <!--<string>MediaBuffering</string>--> | 64 | <!--<string>MediaBuffering</string>--> |
@@ -65,15 +66,18 @@ | |||
65 | <!--<string>MediaState</string>--> | 66 | <!--<string>MediaState</string>--> |
66 | 67 | ||
67 | <!--<string>Messaging</string>--> | 68 | <!--<string>Messaging</string>--> |
69 | |||
70 | <string>NewsBar</string> | ||
68 | <!--<string>Notifications</string>--> | 71 | <!--<string>Notifications</string>--> |
69 | <string>Plugin</string> | 72 | |
70 | <string>PluginClassMedia</string> | 73 | <!--<string>Plugin</string>--> |
71 | <string>PluginInstance</string> | 74 | <!--<string>PluginClassMedia</string>--> |
72 | <string>PluginPipe</string> | 75 | <!--<string>PluginInstance</string>--> |
73 | <string>PluginChild</string> | 76 | <!--<string>PluginPipe</string>--> |
74 | <!--<string>PluginSpam</string>--> | 77 | <!--<string>PluginChild</string>--> |
75 | <string>PluginParent</string> | 78 | <!--<string>PluginSpam</string>--> |
76 | <string>PluginViewerMedia</string> | 79 | <!--<string>PluginParent</string>--> |
80 | <!--<string>PluginViewerMedia</string>--> | ||
77 | 81 | ||
78 | <!--<string>Radar</string>--> | 82 | <!--<string>Radar</string>--> |
79 | <!--<string>ShaderLoading</string>--> | 83 | <!--<string>ShaderLoading</string>--> |
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml index c6375f9..183a910 100644 --- a/linden/indra/newview/app_settings/settings.xml +++ b/linden/indra/newview/app_settings/settings.xml | |||
@@ -37,7 +37,17 @@ | |||
37 | <key>Value</key> | 37 | <key>Value</key> |
38 | <integer>0</integer> | 38 | <integer>0</integer> |
39 | </map> | 39 | </map> |
40 | 40 | <key>VoiceModule</key> | |
41 | <map> | ||
42 | <key>Comment</key> | ||
43 | <string>Executable file that runs voice. Platform specific parts (like .exe on windows) are added automatically.</string> | ||
44 | <key>Persist</key> | ||
45 | <integer>1</integer> | ||
46 | <key>Type</key> | ||
47 | <string>String</string> | ||
48 | <key>Value</key> | ||
49 | <string>SLVoice</string> | ||
50 | </map> | ||
41 | <!-- Imprudence-specific settings --> | 51 | <!-- Imprudence-specific settings --> |
42 | 52 | ||
43 | <key>AllowEditingOfTrees</key> | 53 | <key>AllowEditingOfTrees</key> |
@@ -851,7 +861,7 @@ | |||
851 | <key>ParticleChat</key> | 861 | <key>ParticleChat</key> |
852 | <map> | 862 | <map> |
853 | <key>Comment</key> | 863 | <key>Comment</key> |
854 | <string>Chat target of effect beam to channel 9000</string> | 864 | <string>Chat target of effect beam to channel given by ParticleChatChannel</string> |
855 | <key>Persist</key> | 865 | <key>Persist</key> |
856 | <integer>1</integer> | 866 | <integer>1</integer> |
857 | <key>Type</key> | 867 | <key>Type</key> |
@@ -859,6 +869,17 @@ | |||
859 | <key>Value</key> | 869 | <key>Value</key> |
860 | <integer>0</integer> | 870 | <integer>0</integer> |
861 | </map> | 871 | </map> |
872 | <key>ParticleChatChannel</key> | ||
873 | <map> | ||
874 | <key>Comment</key> | ||
875 | <string>Channel for the ParticleChat target</string> | ||
876 | <key>Persist</key> | ||
877 | <integer>1</integer> | ||
878 | <key>Type</key> | ||
879 | <string>S32</string> | ||
880 | <key>Value</key> | ||
881 | <integer>118000</integer> | ||
882 | </map> | ||
862 | <key>PersistShowLookAt</key> | 883 | <key>PersistShowLookAt</key> |
863 | <map> | 884 | <map> |
864 | <key>Comment</key> | 885 | <key>Comment</key> |
@@ -7958,6 +7979,33 @@ | |||
7958 | <key>Value</key> | 7979 | <key>Value</key> |
7959 | <real>3.0</real> | 7980 | <real>3.0</real> |
7960 | </map> | 7981 | </map> |
7982 | <key>MediaEnableFilter</key> | ||
7983 | <map> | ||
7984 | <key>Comment</key> | ||
7985 | <string>Enable media domain filtering</string> | ||
7986 | <key>Persist</key> | ||
7987 | <integer>1</integer> | ||
7988 | <key>Type</key> | ||
7989 | <string>Boolean</string> | ||
7990 | <key>Value</key> | ||
7991 | <integer>1</integer> | ||
7992 | </map> | ||
7993 | <key>MediaFilterRect</key> | ||
7994 | <map> | ||
7995 | <key>Comment</key> | ||
7996 | <string>Rectangle for Media Filter floater</string> | ||
7997 | <key>Persist</key> | ||
7998 | <integer>1</integer> | ||
7999 | <key>Type</key> | ||
8000 | <string>Rect</string> | ||
8001 | <key>Value</key> | ||
8002 | <array> | ||
8003 | <integer>0</integer> | ||
8004 | <integer>100</integer> | ||
8005 | <integer>100</integer> | ||
8006 | <integer>100</integer> | ||
8007 | </array> | ||
8008 | </map> | ||
7961 | <key>MediaOnAPrimUI</key> | 8009 | <key>MediaOnAPrimUI</key> |
7962 | <map> | 8010 | <map> |
7963 | <key>Comment</key> | 8011 | <key>Comment</key> |
diff --git a/linden/indra/newview/app_settings/viewerversion.xml b/linden/indra/newview/app_settings/viewerversion.xml index f9b0ba2..bb1b996 100644 --- a/linden/indra/newview/app_settings/viewerversion.xml +++ b/linden/indra/newview/app_settings/viewerversion.xml | |||
@@ -20,6 +20,6 @@ need to be changed manually - MC | |||
20 | <viewer version_patch="0" /> | 20 | <viewer version_patch="0" /> |
21 | 21 | ||
22 | <!--string--> | 22 | <!--string--> |
23 | <viewer version_test="Experimental 2010.11.13" /> | 23 | <viewer version_test="Experimental 2011.03.11" /> |
24 | 24 | ||
25 | </viewer_version> | 25 | </viewer_version> |
diff --git a/linden/indra/newview/character/attentions.xml b/linden/indra/newview/character/attentions.xml index 1b14c0c..be9a2b2 100644 --- a/linden/indra/newview/character/attentions.xml +++ b/linden/indra/newview/character/attentions.xml | |||
@@ -1,51 +1,51 @@ | |||
1 | <?xml version="1.0" encoding="US-ASCII" standalone="yes"?> | 1 | <?xml version="1.0" encoding="US-ASCII" standalone="yes"?> |
2 | <!-- | 2 | <!-- |
3 | Default values for "Look At" controls. | 3 | Default values for "Look At" controls. |
4 | Various events compete for avatar attention. I.E. control where the | 4 | Various events compete for avatar attention. I.E. control where the |
5 | user's avatar looks. | 5 | user's avatar looks. |
6 | The avatar's head will turn to look towards the source of those events | 6 | The avatar's head will turn to look towards the source of those events |
7 | as much as is possible. | 7 | as much as is possible. |
8 | If the head cannot turn due to an animation override, the eyes will still | 8 | If the head cannot turn due to an animation override, the eyes will still |
9 | track those events. | 9 | track those events. |
10 | Avatar attention will be taken by events of equal of greater priorities | 10 | Avatar attention will be taken by events of equal of greater priorities |
11 | and will last for timeout number of seconds before reverting to idle. | 11 | and will last for timeout number of seconds before reverting to idle. |
12 | Negative timeout values indicate attentions that never time out. | 12 | Negative timeout values indicate attentions that never time out. |
13 | Avatar sex determines which set of attention settings are used. | 13 | Avatar sex determines which set of attention settings are used. |
14 | Within each set, the following named attentions relate to the indicated events: | 14 | Within each set, the following named attentions relate to the indicated events: |
15 | 15 | ||
16 | IDLE: Tracks the mouse pointer movement. | 16 | IDLE: Tracks the mouse pointer movement. |
17 | AUTO LISTEN: Tracks nearby chat. | 17 | AUTO LISTEN: Tracks nearby chat. |
18 | FREELOOK: Tracks "target objects" and a case of mouse moved in 3rd person mode. | 18 | FREELOOK: Tracks "target objects" and a case of mouse moved in 3rd person mode. |
19 | RESPOND: Tracks the beginning of typing. | 19 | RESPOND: Tracks the beginning of typing. |
20 | HOVER: Tracks objects the mouse lingers over when "show hover tooltips" is on. | 20 | HOVER: Tracks objects the mouse lingers over when "show hover tooltips" is on. |
21 | CONVERSATION: Tracks avatars and other objects clicked on. | 21 | CONVERSATION: Tracks avatars and other objects clicked on. |
22 | SEOECT: Tracks objects grabbed and being moved. | 22 | SEOECT: Tracks objects grabbed and being moved. |
23 | FOCUS: Freezes during avatar customization and when focused on object or point. | 23 | FOCUS: Freezes during avatar customization and when focused on object or point. |
24 | MOUSELOOK: Tracks center of view when in mouselook view mode. | 24 | MOUSELOOK: Tracks center of view when in mouselook view mode. |
25 | --> | 25 | --> |
26 | 26 | ||
27 | <linden_attentions version="1.0"> | 27 | <linden_attentions version="1.0"> |
28 | <gender name="Masculine"> | 28 | <gender name="Masculine"> |
29 | <param attention="idle" priority="1.0" timeout="3.0" /> | 29 | <param attention="idle" priority="1.0" timeout="3.0" /> |
30 | <param attention="auto_listen" priority="3.0" timeout="4.0" /> | 30 | <param attention="auto_listen" priority="3.0" timeout="4.0" /> |
31 | <param attention="freelook" priority="2.0" timeout="2.0" /> | 31 | <param attention="freelook" priority="2.0" timeout="2.0" /> |
32 | <param attention="respond" priority="3.0" timeout="4.0" /> | 32 | <param attention="respond" priority="3.0" timeout="4.0" /> |
33 | <param attention="hover" priority="4.0" timeout="1.0" /> | 33 | <param attention="hover" priority="4.0" timeout="1.0" /> |
34 | <param attention="conversation" priority="0.0" timeout="-1" /> | 34 | <param attention="conversation" priority="0.0" timeout="-1" /> |
35 | <param attention="select" priority="6.0" timeout="-1" /> | 35 | <param attention="select" priority="6.0" timeout="-1" /> |
36 | <param attention="focus" priority="6.0" timeout="-1" /> | 36 | <param attention="focus" priority="6.0" timeout="-1" /> |
37 | <param attention="mouselook" priority="7.0" timeout="-1" /> | 37 | <param attention="mouselook" priority="7.0" timeout="-1" /> |
38 | </gender> | 38 | </gender> |
39 | <gender name="Feminine"> | 39 | <gender name="Feminine"> |
40 | <param attention="idle" priority="1.0" timeout="3.0" /> | 40 | <param attention="idle" priority="1.0" timeout="3.0" /> |
41 | <param attention="auto_listen" priority="3.0" timeout="4.0" /> | 41 | <param attention="auto_listen" priority="3.0" timeout="4.0" /> |
42 | <param attention="freelook" priority="2.0" timeout="2.0" /> | 42 | <param attention="freelook" priority="2.0" timeout="2.0" /> |
43 | <param attention="respond" priority="3.0" timeout="4.0" /> | 43 | <param attention="respond" priority="3.0" timeout="4.0" /> |
44 | <param attention="hover" priority="4.0" timeout="1.0" /> | 44 | <param attention="hover" priority="4.0" timeout="1.0" /> |
45 | <param attention="conversation" priority="0.0" timeout="-1" /> | 45 | <param attention="conversation" priority="0.0" timeout="-1" /> |
46 | <param attention="select" priority="6.0" timeout="-1" /> | 46 | <param attention="select" priority="6.0" timeout="-1" /> |
47 | <param attention="focus" priority="6.0" timeout="-1" /> | 47 | <param attention="focus" priority="6.0" timeout="-1" /> |
48 | <param attention="mouselook" priority="7.0" timeout="-1" /> | 48 | <param attention="mouselook" priority="7.0" timeout="-1" /> |
49 | </gender> | 49 | </gender> |
50 | </linden_attentions> | 50 | </linden_attentions> |
51 | 51 | ||
diff --git a/linden/indra/newview/character/attentionsN.xml b/linden/indra/newview/character/attentionsN.xml index 7c02415..e7d9bb6 100644 --- a/linden/indra/newview/character/attentionsN.xml +++ b/linden/indra/newview/character/attentionsN.xml | |||
@@ -1,51 +1,51 @@ | |||
1 | <?xml version="1.0" encoding="US-ASCII" standalone="yes"?> | 1 | <?xml version="1.0" encoding="US-ASCII" standalone="yes"?> |
2 | <!-- | 2 | <!-- |
3 | Default values for "Look At" controls. | 3 | Default values for "Look At" controls. |
4 | Various events compete for avatar attention. I.E. control where the | 4 | Various events compete for avatar attention. I.E. control where the |
5 | user's avatar looks. | 5 | user's avatar looks. |
6 | The avatar's head will turn to look towards the source of those events | 6 | The avatar's head will turn to look towards the source of those events |
7 | as much as is possible. | 7 | as much as is possible. |
8 | If the head cannot turn due to an animation override, the eyes will still | 8 | If the head cannot turn due to an animation override, the eyes will still |
9 | track those events. | 9 | track those events. |
10 | Avatar attention will be taken by events of equal of greater priorities | 10 | Avatar attention will be taken by events of equal of greater priorities |
11 | and will last for timeout number of seconds before reverting to idle. | 11 | and will last for timeout number of seconds before reverting to idle. |
12 | Negative timeout values indicate attentions that never time out. | 12 | Negative timeout values indicate attentions that never time out. |
13 | Avatar sex determines which set of attention settings are used. | 13 | Avatar sex determines which set of attention settings are used. |
14 | Within each set, the following named attentions relate to the indicated events: | 14 | Within each set, the following named attentions relate to the indicated events: |
15 | 15 | ||
16 | IDLE: Tracks the mouse pointer movement. | 16 | IDLE: Tracks the mouse pointer movement. |
17 | AUTO LISTEN: Tracks nearby chat. | 17 | AUTO LISTEN: Tracks nearby chat. |
18 | FREELOOK: Tracks "target objects" and a case of mouse moved in 3rd person mode. | 18 | FREELOOK: Tracks "target objects" and a case of mouse moved in 3rd person mode. |
19 | RESPOND: Tracks the beginning of typing. | 19 | RESPOND: Tracks the beginning of typing. |
20 | HOVER: Tracks objects the mouse lingers over when "show hover tooltips" is on. | 20 | HOVER: Tracks objects the mouse lingers over when "show hover tooltips" is on. |
21 | CONVERSATION: Tracks avatars and other objects clicked on. | 21 | CONVERSATION: Tracks avatars and other objects clicked on. |
22 | SEOECT: Tracks objects grabbed and being moved. | 22 | SEOECT: Tracks objects grabbed and being moved. |
23 | FOCUS: Freezes during avatar customization and when focused on object or point. | 23 | FOCUS: Freezes during avatar customization and when focused on object or point. |
24 | MOUSELOOK: Tracks center of view when in mouselook view mode. | 24 | MOUSELOOK: Tracks center of view when in mouselook view mode. |
25 | --> | 25 | --> |
26 | 26 | ||
27 | <linden_attentions version="1.0"> | 27 | <linden_attentions version="1.0"> |
28 | <gender name="Masculine"> | 28 | <gender name="Masculine"> |
29 | <param attention="idle" priority="1.0" timeout="3.0" /> | 29 | <param attention="idle" priority="1.0" timeout="3.0" /> |
30 | <param attention="auto_listen" priority="3.0" timeout="4.0" /> | 30 | <param attention="auto_listen" priority="3.0" timeout="4.0" /> |
31 | <param attention="freelook" priority="2.0" timeout="2.0" /> | 31 | <param attention="freelook" priority="2.0" timeout="2.0" /> |
32 | <param attention="respond" priority="3.0" timeout="3.0" /> | 32 | <param attention="respond" priority="3.0" timeout="3.0" /> |
33 | <param attention="hover" priority="4.0" timeout="1.0" /> | 33 | <param attention="hover" priority="4.0" timeout="1.0" /> |
34 | <param attention="conversation" priority="5.0" timeout="3.0" /> | 34 | <param attention="conversation" priority="5.0" timeout="3.0" /> |
35 | <param attention="select" priority="3.5" timeout="-1" /> | 35 | <param attention="select" priority="3.5" timeout="-1" /> |
36 | <param attention="focus" priority="3.5" timeout="20.0" /> | 36 | <param attention="focus" priority="3.5" timeout="20.0" /> |
37 | <param attention="mouselook" priority="7.0" timeout="-1" /> | 37 | <param attention="mouselook" priority="7.0" timeout="-1" /> |
38 | </gender> | 38 | </gender> |
39 | <gender name="Feminine"> | 39 | <gender name="Feminine"> |
40 | <param attention="idle" priority="1.0" timeout="3.0" /> | 40 | <param attention="idle" priority="1.0" timeout="3.0" /> |
41 | <param attention="auto_listen" priority="3.0" timeout="4.0" /> | 41 | <param attention="auto_listen" priority="3.0" timeout="4.0" /> |
42 | <param attention="freelook" priority="2.0" timeout="2.0" /> | 42 | <param attention="freelook" priority="2.0" timeout="2.0" /> |
43 | <param attention="respond" priority="3.0" timeout="6.0" /> | 43 | <param attention="respond" priority="3.0" timeout="6.0" /> |
44 | <param attention="hover" priority="4.0" timeout="1.0" /> | 44 | <param attention="hover" priority="4.0" timeout="1.0" /> |
45 | <param attention="conversation" priority="5.0" timeout="6.0" /> | 45 | <param attention="conversation" priority="5.0" timeout="6.0" /> |
46 | <param attention="select" priority="2.5" timeout="-1" /> | 46 | <param attention="select" priority="2.5" timeout="-1" /> |
47 | <param attention="focus" priority="2.5" timeout="10.0" /> | 47 | <param attention="focus" priority="2.5" timeout="10.0" /> |
48 | <param attention="mouselook" priority="7.0" timeout="-1" /> | 48 | <param attention="mouselook" priority="7.0" timeout="-1" /> |
49 | </gender> | 49 | </gender> |
50 | </linden_attentions> | 50 | </linden_attentions> |
51 | 51 | ||
diff --git a/linden/indra/newview/character/avatar_lad.xml b/linden/indra/newview/character/avatar_lad.xml index e9665af..e9c9f0a 100644 --- a/linden/indra/newview/character/avatar_lad.xml +++ b/linden/indra/newview/character/avatar_lad.xml | |||
@@ -1,11328 +1,11417 @@ | |||
1 | <?xml version="1.0" encoding="US-ASCII" standalone="yes"?> | 1 | <?xml version="1.0" encoding="US-ASCII" standalone="yes"?> |
2 | <linden_avatar | 2 | <linden_avatar |
3 | version="1.0" | 3 | version="1.0" |
4 | wearable_definition_version="22"> | 4 | wearable_definition_version="22"> |
5 | <!-- The wearable_definition_version is checked during asset upload. --> | 5 | <!-- The wearable_definition_version is checked during asset upload. --> |
6 | <!-- If you increment it, check indra/lib/python/indra/assetutil.py. --> | 6 | <!-- If you increment it, check indra/lib/python/indra/assetutil.py. --> |
7 | <skeleton | 7 | <skeleton |
8 | file_name="avatar_skeleton.xml"> | 8 | file_name="avatar_skeleton.xml"> |
9 | <attachment_point | 9 | <attachment_point |
10 | id="1" | 10 | id="1" |
11 | group="6" | 11 | group="6" |
12 | pie_slice="2" | 12 | pie_slice="2" |
13 | name="Chest" | 13 | name="Chest" |
14 | joint="mChest" | 14 | joint="mChest" |
15 | position="0.15 0 -0.1" | 15 | position="0.15 0 -0.1" |
16 | rotation="0 90 90" | 16 | rotation="0 90 90" |
17 | visible_in_first_person="true" /> | 17 | visible_in_first_person="true" /> |
18 | 18 | ||
19 | <attachment_point | 19 | <attachment_point |
20 | id="2" | 20 | id="2" |
21 | group="2" | 21 | group="2" |
22 | pie_slice="2" | 22 | pie_slice="2" |
23 | name="Skull" | 23 | name="Skull" |
24 | joint="mHead" | 24 | joint="mHead" |
25 | position="0 0 0.15" | 25 | position="0 0 0.15" |
26 | rotation="0 0 90" | 26 | rotation="0 0 90" |
27 | visible_in_first_person="false" /> | 27 | visible_in_first_person="false" /> |
28 | 28 | ||
29 | <attachment_point | 29 | <attachment_point |
30 | id="3" | 30 | id="3" |
31 | group="3" | 31 | group="3" |
32 | pie_slice="3" | 32 | pie_slice="3" |
33 | name="Left Shoulder" | 33 | name="Left Shoulder" |
34 | joint="mCollarLeft" | 34 | joint="mCollarLeft" |
35 | position="0 0 0.08" | 35 | position="0 0 0.08" |
36 | rotation="0 0 0" | 36 | rotation="0 0 0" |
37 | visible_in_first_person="true" /> | 37 | visible_in_first_person="true" /> |
38 | 38 | ||
39 | <attachment_point | 39 | <attachment_point |
40 | id="4" | 40 | id="4" |
41 | group="1" | 41 | group="1" |
42 | pie_slice="1" | 42 | pie_slice="1" |
43 | name="Right Shoulder" | 43 | name="Right Shoulder" |
44 | joint="mCollarRight" | 44 | joint="mCollarRight" |
45 | position="0 0 0.08" | 45 | position="0 0 0.08" |
46 | rotation="0 0 0" | 46 | rotation="0 0 0" |
47 | visible_in_first_person="true"/> | 47 | visible_in_first_person="true"/> |
48 | 48 | ||
49 | <attachment_point | 49 | <attachment_point |
50 | id="5" | 50 | id="5" |
51 | group="4" | 51 | group="4" |
52 | name="Left Hand" | 52 | name="Left Hand" |
53 | joint="mWristLeft" | 53 | joint="mWristLeft" |
54 | position="0 0.08 -0.02" | 54 | position="0 0.08 -0.02" |
55 | rotation="0 0 0" | 55 | rotation="0 0 0" |
56 | visible_in_first_person="true" | 56 | visible_in_first_person="true" |
57 | max_attachment_offset="1.5" /> | 57 | max_attachment_offset="1.5" /> |
58 | 58 | ||
59 | <attachment_point | 59 | <attachment_point |
60 | id="6" | 60 | id="6" |
61 | group="0" | 61 | group="0" |
62 | name="Right Hand" | 62 | name="Right Hand" |
63 | joint="mWristRight" | 63 | joint="mWristRight" |
64 | position="0 -0.08 -0.02" | 64 | position="0 -0.08 -0.02" |
65 | rotation="0 0 0" | 65 | rotation="0 0 0" |
66 | visible_in_first_person="true" | 66 | visible_in_first_person="true" |
67 | max_attachment_offset="1.5" /> | 67 | max_attachment_offset="1.5" /> |
68 | 68 | ||
69 | <attachment_point | 69 | <attachment_point |
70 | id="7" | 70 | id="7" |
71 | group="5" | 71 | group="5" |
72 | pie_slice="6" | 72 | pie_slice="6" |
73 | name="Left Foot" | 73 | name="Left Foot" |
74 | joint="mFootLeft" | 74 | joint="mFootLeft" |
75 | position="0 0.0 0.0" | 75 | position="0 0.0 0.0" |
76 | rotation="0 0 0" | 76 | rotation="0 0 0" |
77 | visible_in_first_person="true"/> | 77 | visible_in_first_person="true"/> |
78 | 78 | ||
79 | <attachment_point | 79 | <attachment_point |
80 | id="8" | 80 | id="8" |
81 | group="7" | 81 | group="7" |
82 | pie_slice="6" | 82 | pie_slice="6" |
83 | name="Right Foot" | 83 | name="Right Foot" |
84 | joint="mFootRight" | 84 | joint="mFootRight" |
85 | position="0 0.0 0.0" | 85 | position="0 0.0 0.0" |
86 | rotation="0 0 0" | 86 | rotation="0 0 0" |
87 | visible_in_first_person="true"/> | 87 | visible_in_first_person="true"/> |
88 | 88 | ||
89 | <attachment_point | 89 | <attachment_point |
90 | id="9" | 90 | id="9" |
91 | group="6" | 91 | group="6" |
92 | pie_slice="7" | 92 | pie_slice="7" |
93 | name="Spine" | 93 | name="Spine" |
94 | joint="mChest" | 94 | joint="mChest" |
95 | position="-0.15 0 -0.1" | 95 | position="-0.15 0 -0.1" |
96 | rotation="0 -90 90" | 96 | rotation="0 -90 90" |
97 | visible_in_first_person="true" /> | 97 | visible_in_first_person="true" /> |
98 | 98 | ||
99 | <attachment_point | 99 | <attachment_point |
100 | id="10" | 100 | id="10" |
101 | group="6" | 101 | group="6" |
102 | pie_slice="6" | 102 | pie_slice="6" |
103 | name="Pelvis" | 103 | name="Pelvis" |
104 | joint="mPelvis" | 104 | joint="mPelvis" |
105 | position="0 0 -0.15" | 105 | position="0 0 -0.15" |
106 | rotation="0 0 0" | 106 | rotation="0 0 0" |
107 | visible_in_first_person="true" /> | 107 | visible_in_first_person="true" /> |
108 | 108 | ||
109 | <attachment_point | 109 | <attachment_point |
110 | id="11" | 110 | id="11" |
111 | group="2" | 111 | group="2" |
112 | pie_slice="6" | 112 | pie_slice="6" |
113 | name="Mouth" | 113 | name="Mouth" |
114 | joint="mHead" | 114 | joint="mHead" |
115 | position="0.12 0 0.001" | 115 | position="0.12 0 0.001" |
116 | rotation="0 0 0" | 116 | rotation="0 0 0" |
117 | visible_in_first_person="false"/> | 117 | visible_in_first_person="false"/> |
118 | 118 | ||
119 | <attachment_point | 119 | <attachment_point |
120 | id="12" | 120 | id="12" |
121 | group="2" | 121 | group="2" |
122 | pie_slice="7" | 122 | pie_slice="7" |
123 | name="Chin" | 123 | name="Chin" |
124 | joint="mHead" | 124 | joint="mHead" |
125 | position="0.12 0 -0.04" | 125 | position="0.12 0 -0.04" |
126 | rotation="0 0 0" | 126 | rotation="0 0 0" |
127 | visible_in_first_person="false" /> | 127 | visible_in_first_person="false" /> |
128 | 128 | ||
129 | <attachment_point | 129 | <attachment_point |
130 | id="13" | 130 | id="13" |
131 | group="2" | 131 | group="2" |
132 | pie_slice="4" | 132 | pie_slice="4" |
133 | name="Left Ear" | 133 | name="Left Ear" |
134 | joint="mHead" | 134 | joint="mHead" |
135 | position="0.015 0.08 0.017" | 135 | position="0.015 0.08 0.017" |
136 | rotation="0 0 0" | 136 | rotation="0 0 0" |
137 | visible_in_first_person="false" /> | 137 | visible_in_first_person="false" /> |
138 | 138 | ||
139 | <attachment_point | 139 | <attachment_point |
140 | id="14" | 140 | id="14" |
141 | group="2" | 141 | group="2" |
142 | pie_slice="0" | 142 | pie_slice="0" |
143 | name="Right Ear" | 143 | name="Right Ear" |
144 | joint="mHead" | 144 | joint="mHead" |
145 | position="0.015 -0.08 0.017" | 145 | position="0.015 -0.08 0.017" |
146 | rotation="0 0 0" | 146 | rotation="0 0 0" |
147 | visible_in_first_person="false" /> | 147 | visible_in_first_person="false" /> |
148 | 148 | ||
149 | <attachment_point | 149 | <attachment_point |
150 | id="15" | 150 | id="15" |
151 | group="2" | 151 | group="2" |
152 | pie_slice="3" | 152 | pie_slice="3" |
153 | name="Left Eyeball" | 153 | name="Left Eyeball" |
154 | joint="mEyeLeft" | 154 | joint="mEyeLeft" |
155 | position="0 0 0" | 155 | position="0 0 0" |
156 | rotation="0 0 0" | 156 | rotation="0 0 0" |
157 | visible_in_first_person="false"/> | 157 | visible_in_first_person="false"/> |
158 | 158 | ||
159 | <attachment_point | 159 | <attachment_point |
160 | id="16" | 160 | id="16" |
161 | group="2" | 161 | group="2" |
162 | pie_slice="1" | 162 | pie_slice="1" |
163 | name="Right Eyeball" | 163 | name="Right Eyeball" |
164 | joint="mEyeRight" | 164 | joint="mEyeRight" |
165 | position="0 0 0" | 165 | position="0 0 0" |
166 | rotation="0 0 0" | 166 | rotation="0 0 0" |
167 | visible_in_first_person="false" /> | 167 | visible_in_first_person="false" /> |
168 | 168 | ||
169 | <attachment_point | 169 | <attachment_point |
170 | id="17" | 170 | id="17" |
171 | group="2" | 171 | group="2" |
172 | pie_slice="5" | 172 | pie_slice="5" |
173 | name="Nose" | 173 | name="Nose" |
174 | joint="mHead" | 174 | joint="mHead" |
175 | position="0.1 0 0.05" | 175 | position="0.1 0 0.05" |
176 | rotation="0 0 0" | 176 | rotation="0 0 0" |
177 | visible_in_first_person="false"/> | 177 | visible_in_first_person="false"/> |
178 | 178 | ||
179 | <attachment_point | 179 | <attachment_point |
180 | id="18" | 180 | id="18" |
181 | group="1" | 181 | group="1" |
182 | pie_slice="0" | 182 | pie_slice="0" |
183 | name="R Upper Arm" | 183 | name="R Upper Arm" |
184 | joint="mShoulderRight" | 184 | joint="mShoulderRight" |
185 | position="0.01 -0.13 0.01" | 185 | position="0.01 -0.13 0.01" |
186 | rotation="0 0 0" | 186 | rotation="0 0 0" |
187 | visible_in_first_person="true" /> | 187 | visible_in_first_person="true" /> |
188 | 188 | ||
189 | <attachment_point | 189 | <attachment_point |
190 | id="19" | 190 | id="19" |
191 | group="1" | 191 | group="1" |
192 | pie_slice="7" | 192 | pie_slice="7" |
193 | name="R Forearm" | 193 | name="R Forearm" |
194 | joint="mElbowRight" | 194 | joint="mElbowRight" |
195 | position="0 -0.12 0" | 195 | position="0 -0.12 0" |
196 | rotation="0 0 0" | 196 | rotation="0 0 0" |
197 | visible_in_first_person="true"/> | 197 | visible_in_first_person="true"/> |
198 | 198 | ||
199 | <attachment_point | 199 | <attachment_point |
200 | id="20" | 200 | id="20" |
201 | group="3" | 201 | group="3" |
202 | pie_slice="4" | 202 | pie_slice="4" |
203 | name="L Upper Arm" | 203 | name="L Upper Arm" |
204 | joint="mShoulderLeft" | 204 | joint="mShoulderLeft" |
205 | position="0.01 0.15 -0.01" | 205 | position="0.01 0.15 -0.01" |
206 | rotation="0 0 0" | 206 | rotation="0 0 0" |
207 | visible_in_first_person="true" /> | 207 | visible_in_first_person="true" /> |
208 | 208 | ||
209 | <attachment_point | 209 | <attachment_point |
210 | id="21" | 210 | id="21" |
211 | group="3" | 211 | group="3" |
212 | pie_slice="5" | 212 | pie_slice="5" |
213 | name="L Forearm" | 213 | name="L Forearm" |
214 | joint="mElbowLeft" | 214 | joint="mElbowLeft" |
215 | position="0 0.113 0" | 215 | position="0 0.113 0" |
216 | rotation="0 0 0" | 216 | rotation="0 0 0" |
217 | visible_in_first_person="true" /> | 217 | visible_in_first_person="true" /> |
218 | 218 | ||
219 | <attachment_point | 219 | <attachment_point |
220 | id="22" | 220 | id="22" |
221 | group="7" | 221 | group="7" |
222 | pie_slice="1" | 222 | pie_slice="1" |
223 | name="Right Hip" | 223 | name="Right Hip" |
224 | joint="mHipRight" | 224 | joint="mHipRight" |
225 | position="0 0 0" | 225 | position="0 0 0" |
226 | rotation="0 0 0" | 226 | rotation="0 0 0" |
227 | visible_in_first_person="true" /> | 227 | visible_in_first_person="true" /> |
228 | 228 | ||
229 | <attachment_point | 229 | <attachment_point |
230 | id="23" | 230 | id="23" |
231 | group="7" | 231 | group="7" |
232 | pie_slice="0" | 232 | pie_slice="0" |
233 | name="R Upper Leg" | 233 | name="R Upper Leg" |
234 | joint="mHipRight" | 234 | joint="mHipRight" |
235 | position="-0.017 0.041 -0.310" | 235 | position="-0.017 0.041 -0.310" |
236 | rotation="0 0 0" | 236 | rotation="0 0 0" |
237 | visible_in_first_person="true" /> | 237 | visible_in_first_person="true" /> |
238 | 238 | ||
239 | <attachment_point | 239 | <attachment_point |
240 | id="24" | 240 | id="24" |
241 | group="7" | 241 | group="7" |
242 | pie_slice="7" | 242 | pie_slice="7" |
243 | name="R Lower Leg" | 243 | name="R Lower Leg" |
244 | joint="mKneeRight" | 244 | joint="mKneeRight" |
245 | position="-0.044 -0.007 -0.262" | 245 | position="-0.044 -0.007 -0.262" |
246 | rotation="0 0 0" | 246 | rotation="0 0 0" |
247 | visible_in_first_person="true" /> | 247 | visible_in_first_person="true" /> |
248 | 248 | ||
249 | <attachment_point | 249 | <attachment_point |
250 | id="25" | 250 | id="25" |
251 | group="5" | 251 | group="5" |
252 | pie_slice="3" | 252 | pie_slice="3" |
253 | name="Left Hip" | 253 | name="Left Hip" |
254 | joint="mHipLeft" | 254 | joint="mHipLeft" |
255 | position="0 0 0" | 255 | position="0 0 0" |
256 | rotation="0 0 0" | 256 | rotation="0 0 0" |
257 | visible_in_first_person="true" /> | 257 | visible_in_first_person="true" /> |
258 | 258 | ||
259 | <attachment_point | 259 | <attachment_point |
260 | id="26" | 260 | id="26" |
261 | group="5" | 261 | group="5" |
262 | pie_slice="4" | 262 | pie_slice="4" |
263 | name="L Upper Leg" | 263 | name="L Upper Leg" |
264 | joint="mHipLeft" | 264 | joint="mHipLeft" |
265 | position="-0.019 -0.034 -0.310" | 265 | position="-0.019 -0.034 -0.310" |
266 | rotation="0 0 0" | 266 | rotation="0 0 0" |
267 | visible_in_first_person="true"/> | 267 | visible_in_first_person="true"/> |
268 | 268 | ||
269 | <attachment_point | 269 | <attachment_point |
270 | id="27" | 270 | id="27" |
271 | group="5" | 271 | group="5" |
272 | pie_slice="5" | 272 | pie_slice="5" |
273 | name="L Lower Leg" | 273 | name="L Lower Leg" |
274 | joint="mKneeLeft" | 274 | joint="mKneeLeft" |
275 | position="-0.044 -0.007 -0.261" | 275 | position="-0.044 -0.007 -0.261" |
276 | rotation="0 0 0" | 276 | rotation="0 0 0" |
277 | visible_in_first_person="true" /> | 277 | visible_in_first_person="true" /> |
278 | 278 | ||
279 | <attachment_point | 279 | <attachment_point |
280 | id="28" | 280 | id="28" |
281 | group="6" | 281 | group="6" |
282 | pie_slice="5" | 282 | pie_slice="5" |
283 | name="Stomach" | 283 | name="Stomach" |
284 | joint="mPelvis" | 284 | joint="mPelvis" |
285 | position="0.092 0.0 0.088" | 285 | position="0.092 0.0 0.088" |
286 | rotation="0 0 0" | 286 | rotation="0 0 0" |
287 | visible_in_first_person="true" /> | 287 | visible_in_first_person="true" /> |
288 | 288 | ||
289 | <attachment_point | 289 | <attachment_point |
290 | id="29" | 290 | id="29" |
291 | group="6" | 291 | group="6" |
292 | pie_slice="3" | 292 | pie_slice="3" |
293 | name="Left Pec" | 293 | name="Left Pec" |
294 | joint="mTorso" | 294 | joint="mTorso" |
295 | position="0.104 0.082 0.247" | 295 | position="0.104 0.082 0.247" |
296 | rotation="0 0 0" | 296 | rotation="0 0 0" |
297 | visible_in_first_person="true" /> | 297 | visible_in_first_person="true" /> |
298 | 298 | ||
299 | <attachment_point | 299 | <attachment_point |
300 | id="30" | 300 | id="30" |
301 | group="6" | 301 | group="6" |
302 | pie_slice="1" | 302 | pie_slice="1" |
303 | name="Right Pec" | 303 | name="Right Pec" |
304 | joint="mTorso" | 304 | joint="mTorso" |
305 | position="0.104 -0.082 0.247" | 305 | position="0.104 -0.082 0.247" |
306 | rotation="0 0 0" | 306 | rotation="0 0 0" |
307 | visible_in_first_person="true" /> | 307 | visible_in_first_person="true" /> |
308 | 308 | ||
309 | <attachment_point | 309 | <attachment_point |
310 | id="31" | 310 | id="31" |
311 | group="8" | 311 | group="8" |
312 | name="Center 2" | 312 | name="Center 2" |
313 | joint="mScreen" | 313 | joint="mScreen" |
314 | position="0 0 0" | 314 | position="0 0 0" |
315 | rotation="0 0 0" | 315 | rotation="0 0 0" |
316 | hud="true" | 316 | hud="true" |
317 | max_attachment_offset="2.0" | 317 | max_attachment_offset="2.0" |
318 | visible_in_first_person="true" /> | 318 | visible_in_first_person="true" /> |
319 | 319 | ||
320 | <attachment_point | 320 | <attachment_point |
321 | id="32" | 321 | id="32" |
322 | group="8" | 322 | group="8" |
323 | name="Top Right" | 323 | name="Top Right" |
324 | joint="mScreen" | 324 | joint="mScreen" |
325 | position="0 -0.5 0.5" | 325 | position="0 -0.5 0.5" |
326 | rotation="0 0 0" | 326 | rotation="0 0 0" |
327 | hud="true" | 327 | hud="true" |
328 | max_attachment_offset="2.0" | 328 | max_attachment_offset="2.0" |
329 | visible_in_first_person="true" /> | 329 | visible_in_first_person="true" /> |
330 | 330 | ||
331 | <attachment_point | 331 | <attachment_point |
332 | id="33" | 332 | id="33" |
333 | group="8" | 333 | group="8" |
334 | name="Top" | 334 | name="Top" |
335 | joint="mScreen" | 335 | joint="mScreen" |
336 | position="0 0 0.5" | 336 | position="0 0 0.5" |
337 | rotation="0 0 0" | 337 | rotation="0 0 0" |
338 | hud="true" | 338 | hud="true" |
339 | max_attachment_offset="2.0" | 339 | max_attachment_offset="2.0" |
340 | visible_in_first_person="true" /> | 340 | visible_in_first_person="true" /> |
341 | 341 | ||
342 | <attachment_point | 342 | <attachment_point |
343 | id="34" | 343 | id="34" |
344 | group="8" | 344 | group="8" |
345 | name="Top Left" | 345 | name="Top Left" |
346 | joint="mScreen" | 346 | joint="mScreen" |
347 | position="0 0.5 0.5" | 347 | position="0 0.5 0.5" |
348 | rotation="0 0 0" | 348 | rotation="0 0 0" |
349 | hud="true" | 349 | hud="true" |
350 | max_attachment_offset="2.0" | 350 | max_attachment_offset="2.0" |
351 | visible_in_first_person="true" /> | 351 | visible_in_first_person="true" /> |
352 | 352 | ||
353 | <attachment_point | 353 | <attachment_point |
354 | id="35" | 354 | id="35" |
355 | group="8" | 355 | group="8" |
356 | name="Center" | 356 | name="Center" |
357 | joint="mScreen" | 357 | joint="mScreen" |
358 | position="0 0 0" | 358 | position="0 0 0" |
359 | rotation="0 0 0" | 359 | rotation="0 0 0" |
360 | hud="true" | 360 | hud="true" |
361 | max_attachment_offset="2.0" | 361 | max_attachment_offset="2.0" |
362 | visible_in_first_person="true" /> | 362 | visible_in_first_person="true" /> |
363 | 363 | ||
364 | <attachment_point | 364 | <attachment_point |
365 | id="36" | 365 | id="36" |
366 | group="8" | 366 | group="8" |
367 | name="Bottom Left" | 367 | name="Bottom Left" |
368 | joint="mScreen" | 368 | joint="mScreen" |
369 | position="0 0.5 -0.5" | 369 | position="0 0.5 -0.5" |
370 | rotation="0 0 0" | 370 | rotation="0 0 0" |
371 | hud="true" | 371 | hud="true" |
372 | max_attachment_offset="2.0" | 372 | max_attachment_offset="2.0" |
373 | visible_in_first_person="true" /> | 373 | visible_in_first_person="true" /> |
374 | 374 | ||
375 | <attachment_point | 375 | <attachment_point |
376 | id="37" | 376 | id="37" |
377 | group="8" | 377 | group="8" |
378 | name="Bottom" | 378 | name="Bottom" |
379 | joint="mScreen" | 379 | joint="mScreen" |
380 | position="0 0 -0.5" | 380 | position="0 0 -0.5" |
381 | rotation="0 0 0" | 381 | rotation="0 0 0" |
382 | hud="true" | 382 | hud="true" |
383 | max_attachment_offset="2.0" | 383 | max_attachment_offset="2.0" |
384 | visible_in_first_person="true" /> | 384 | visible_in_first_person="true" /> |
385 | 385 | ||
386 | <attachment_point | 386 | <attachment_point |
387 | id="38" | 387 | id="38" |
388 | group="8" | 388 | group="8" |
389 | name="Bottom Right" | 389 | name="Bottom Right" |
390 | joint="mScreen" | 390 | joint="mScreen" |
391 | position="0 -0.5 -0.5" | 391 | position="0 -0.5 -0.5" |
392 | rotation="0 0 0" | 392 | rotation="0 0 0" |
393 | hud="true" | 393 | hud="true" |
394 | max_attachment_offset="2.0" | 394 | max_attachment_offset="2.0" |
395 | visible_in_first_person="true" /> | 395 | visible_in_first_person="true" /> |
396 | 396 | ||
397 | <param | 397 | <param |
398 | id="32" | 398 | id="32" |
399 | group="1" | 399 | group="1" |
400 | wearable="shape" | 400 | wearable="shape" |
401 | name="Male_Skeleton" | 401 | name="Male_Skeleton" |
402 | label_min="Female" | 402 | label_min="Female" |
403 | label_max="Male" | 403 | label_max="Male" |
404 | value_min="0" | 404 | value_min="0" |
405 | value_max="1"> | 405 | value_max="1"> |
406 | <param_skeleton> | 406 | <param_skeleton> |
407 | <bone | 407 | <bone |
408 | name="mNeck" | 408 | name="mNeck" |
409 | scale="0 0 .2" /> | 409 | scale="0 0 .2" /> |
410 | 410 | ||
411 | <bone | 411 | <bone |
412 | name="mCollarLeft" | 412 | name="mCollarLeft" |
413 | scale="0 .4 0" /> | 413 | scale="0 .4 0" /> |
414 | 414 | ||
415 | <bone | 415 | <bone |
416 | name="mCollarRight" | 416 | name="mCollarRight" |
417 | scale="0 .4 0" /> | 417 | scale="0 .4 0" /> |
418 | 418 | ||
419 | <bone | 419 | <bone |
420 | name="mShoulderLeft" | 420 | name="mShoulderLeft" |
421 | scale="0 .35 0" /> | 421 | scale="0 .35 0" /> |
422 | 422 | ||
423 | <bone | 423 | <bone |
424 | name="mShoulderRight" | 424 | name="mShoulderRight" |
425 | scale="0 .35 0" /> | 425 | scale="0 .35 0" /> |
426 | 426 | ||
427 | <bone | 427 | <bone |
428 | name="mElbowLeft" | 428 | name="mElbowLeft" |
429 | scale="0 .1 0" /> | 429 | scale="0 .1 0" /> |
430 | 430 | ||
431 | <bone | 431 | <bone |
432 | name="mElbowRight" | 432 | name="mElbowRight" |
433 | scale="0 .1 0" /> | 433 | scale="0 .1 0" /> |
434 | 434 | ||
435 | <bone | 435 | <bone |
436 | name="mChest" | 436 | name="mChest" |
437 | scale=".05 .05 .05" /> | 437 | scale=".05 .05 .05" /> |
438 | 438 | ||
439 | <bone | 439 | <bone |
440 | name="mTorso" | 440 | name="mTorso" |
441 | scale="0 0 .05" /> | 441 | scale="0 0 .05" /> |
442 | 442 | ||
443 | <bone | 443 | <bone |
444 | name="mPelvis" | 444 | name="mPelvis" |
445 | scale="0 0 0" /> | 445 | scale="0 0 0" /> |
446 | 446 | ||
447 | <bone | 447 | <bone |
448 | name="mHipLeft" | 448 | name="mHipLeft" |
449 | scale=".05 .05 0" /> | 449 | scale=".05 .05 0" /> |
450 | 450 | ||
451 | <bone | 451 | <bone |
452 | name="mHipRight" | 452 | name="mHipRight" |
453 | scale=".05 .05 0" /> | 453 | scale=".05 .05 0" /> |
454 | 454 | ||
455 | <bone | 455 | <bone |
456 | name="mKneeLeft" | 456 | name="mKneeLeft" |
457 | scale=".05 .05 .1" /> | 457 | scale=".05 .05 .1" /> |
458 | 458 | ||
459 | <bone | 459 | <bone |
460 | name="mKneeRight" | 460 | name="mKneeRight" |
461 | scale=".05 .05 .1" /> | 461 | scale=".05 .05 .1" /> |
462 | </param_skeleton> | 462 | </param_skeleton> |
463 | </param> | 463 | </param> |
464 | 464 | ||
465 | <param | 465 | <param |
466 | id="33" | 466 | id="33" |
467 | group="0" | 467 | group="0" |
468 | name="Height" | 468 | name="Height" |
469 | label="Height" | 469 | label="Height" |
470 | wearable="shape" | 470 | wearable="shape" |
471 | edit_group="shape_body" | 471 | edit_group="shape_body" |
472 | edit_group_order="1" | 472 | edit_group_order="1" |
473 | label_min="Short" | 473 | label_min="Short" |
474 | label_max="Tall" | 474 | label_max="Tall" |
475 | show_simple="true" | 475 | show_simple="true" |
476 | value_min="-2.3" | 476 | value_min="-2.3" |
477 | value_max="2" | 477 | value_max="2" |
478 | camera_distance="2.2"> | 478 | camera_distance="2.2"> |
479 | <param_skeleton> | 479 | <param_skeleton> |
480 | <bone | 480 | <bone |
481 | name="mNeck" | 481 | name="mNeck" |
482 | scale="0 0 .02" /> | 482 | scale="0 0 .02" /> |
483 | 483 | ||
484 | <bone | 484 | <bone |
485 | name="mCollarLeft" | 485 | name="mCollarLeft" |
486 | scale="0 0 0" /> | 486 | scale="0 0 0" /> |
487 | 487 | ||
488 | <bone | 488 | <bone |
489 | name="mCollarRight" | 489 | name="mCollarRight" |
490 | scale="0 0 0" /> | 490 | scale="0 0 0" /> |
491 | 491 | ||
492 | <bone | 492 | <bone |
493 | name="mShoulderLeft" | 493 | name="mShoulderLeft" |
494 | scale="0 0.08 0" /> | 494 | scale="0 0.08 0" /> |
495 | 495 | ||
496 | <bone | 496 | <bone |
497 | name="mShoulderRight" | 497 | name="mShoulderRight" |
498 | scale="0 0.08 0" /> | 498 | scale="0 0.08 0" /> |
499 | 499 | ||
500 | <bone | 500 | <bone |
501 | name="mElbowLeft" | 501 | name="mElbowLeft" |
502 | scale="0 0.06 0" /> | 502 | scale="0 0.06 0" /> |
503 | 503 | ||
504 | <bone | 504 | <bone |
505 | name="mElbowRight" | 505 | name="mElbowRight" |
506 | scale="0 0.06 0" /> | 506 | scale="0 0.06 0" /> |
507 | 507 | ||
508 | <bone | 508 | <bone |
509 | name="mChest" | 509 | name="mChest" |
510 | scale="0 0 0.05" /> | 510 | scale="0 0 0.05" /> |
511 | 511 | ||
512 | <bone | 512 | <bone |
513 | name="mTorso" | 513 | name="mTorso" |
514 | scale="0 0 0.05" /> | 514 | scale="0 0 0.05" /> |
515 | 515 | ||
516 | <bone | 516 | <bone |
517 | name="mPelvis" | 517 | name="mPelvis" |
518 | scale="0 0 0" /> | 518 | scale="0 0 0" /> |
519 | 519 | ||
520 | <bone | 520 | <bone |
521 | name="mHipLeft" | 521 | name="mHipLeft" |
522 | scale="0 0 0.1" /> | 522 | scale="0 0 0.1" /> |
523 | 523 | ||
524 | <bone | 524 | <bone |
525 | name="mHipRight" | 525 | name="mHipRight" |
526 | scale="0 0 0.1" /> | 526 | scale="0 0 0.1" /> |
527 | 527 | ||
528 | <bone | 528 | <bone |
529 | name="mKneeLeft" | 529 | name="mKneeLeft" |
530 | scale="0 0 0.1" /> | 530 | scale="0 0 0.1" /> |
531 | 531 | ||
532 | <bone | 532 | <bone |
533 | name="mKneeRight" | 533 | name="mKneeRight" |
534 | scale="0 0 0.1" /> | 534 | scale="0 0 0.1" /> |
535 | </param_skeleton> | 535 | </param_skeleton> |
536 | </param> | 536 | </param> |
537 | 537 | ||
538 | <param | 538 | <param |
539 | id="34" | 539 | id="34" |
540 | group="0" | 540 | group="0" |
541 | name="Thickness" | 541 | name="Thickness" |
542 | label="Body Thickness" | 542 | label="Body Thickness" |
543 | wearable="shape" | 543 | wearable="shape" |
544 | edit_group="shape_body" | 544 | edit_group="shape_body" |
545 | edit_group_order="2" | 545 | edit_group_order="2" |
546 | label_min="Body Thin" | 546 | label_min="Body Thin" |
547 | label_max="Body Thick" | 547 | label_max="Body Thick" |
548 | show_simple="true" | 548 | show_simple="true" |
549 | value_min="-0.7" | 549 | value_min="-0.7" |
550 | value_max="1.5" | 550 | value_max="1.5" |
551 | camera_distance="1.8"> | 551 | camera_distance="1.8"> |
552 | <param_skeleton> | 552 | <param_skeleton> |
553 | <bone | 553 | <bone |
554 | name="mNeck" | 554 | name="mNeck" |
555 | scale="0.1 0.1 0" /> | 555 | scale="0.1 0.1 0" /> |
556 | 556 | ||
557 | <bone | 557 | <bone |
558 | name="mCollarLeft" | 558 | name="mCollarLeft" |
559 | scale="0 0.2 0" /> | 559 | scale="0 0.2 0" /> |
560 | 560 | ||
561 | <bone | 561 | <bone |
562 | name="mCollarRight" | 562 | name="mCollarRight" |
563 | scale="0 0.2 0" /> | 563 | scale="0 0.2 0" /> |
564 | 564 | ||
565 | <bone | 565 | <bone |
566 | name="mShoulderLeft" | 566 | name="mShoulderLeft" |
567 | scale="0.1 0 0.1" /> | 567 | scale="0.1 0 0.1" /> |
568 | 568 | ||
569 | <bone | 569 | <bone |
570 | name="mShoulderRight" | 570 | name="mShoulderRight" |
571 | scale="0.1 0 0.1" /> | 571 | scale="0.1 0 0.1" /> |
572 | 572 | ||
573 | <bone | 573 | <bone |
574 | name="mElbowLeft" | 574 | name="mElbowLeft" |
575 | scale="0.1 0 0.1" /> | 575 | scale="0.1 0 0.1" /> |
576 | 576 | ||
577 | <bone | 577 | <bone |
578 | name="mElbowRight" | 578 | name="mElbowRight" |
579 | scale="0.1 0 0.1" /> | 579 | scale="0.1 0 0.1" /> |
580 | 580 | ||
581 | <bone | 581 | <bone |
582 | name="mChest" | 582 | name="mChest" |
583 | scale="0.1 0.1 0" /> | 583 | scale="0.1 0.1 0" /> |
584 | 584 | ||
585 | <bone | 585 | <bone |
586 | name="mTorso" | 586 | name="mTorso" |
587 | scale="0.1 0.1 0" /> | 587 | scale="0.1 0.1 0" /> |
588 | 588 | ||
589 | <bone | 589 | <bone |
590 | name="mPelvis" | 590 | name="mPelvis" |
591 | scale="0.1 0.1 0" /> | 591 | scale="0.1 0.1 0" /> |
592 | 592 | ||
593 | <bone | 593 | <bone |
594 | name="mHipLeft" | 594 | name="mHipLeft" |
595 | scale="0.13 0.13 0" /> | 595 | scale="0.13 0.13 0" /> |
596 | 596 | ||
597 | <bone | 597 | <bone |
598 | name="mHipRight" | 598 | name="mHipRight" |
599 | scale="0.13 0.13 0" /> | 599 | scale="0.13 0.13 0" /> |
600 | 600 | ||
601 | <bone | 601 | <bone |
602 | name="mKneeLeft" | 602 | name="mKneeLeft" |
603 | scale="0.12 0.12 0" /> | 603 | scale="0.12 0.12 0" /> |
604 | 604 | ||
605 | <bone | 605 | <bone |
606 | name="mKneeRight" | 606 | name="mKneeRight" |
607 | scale="0.12 0.12 0" /> | 607 | scale="0.12 0.12 0" /> |
608 | </param_skeleton> | 608 | </param_skeleton> |
609 | </param> | 609 | </param> |
610 | 610 | ||
611 | <param | 611 | <param |
612 | id="36" | 612 | id="36" |
613 | group="0" | 613 | group="0" |
614 | name="Shoulders" | 614 | name="Shoulders" |
615 | label="Shoulders" | 615 | label="Shoulders" |
616 | wearable="shape" | 616 | wearable="shape" |
617 | edit_group="shape_torso" | 617 | edit_group="shape_torso" |
618 | edit_group_order="4" | 618 | edit_group_order="4" |
619 | label_min="Narrow" | 619 | label_min="Narrow" |
620 | label_max="Broad" | 620 | label_max="Broad" |
621 | show_simple="true" | 621 | show_simple="true" |
622 | value_min="-1.8" | 622 | value_min="-1.8" |
623 | value_max="1.4" | 623 | value_max="1.4" |
624 | value_default="-0.5" | 624 | value_default="-0.5" |
625 | camera_elevation=".1" | 625 | camera_elevation=".1" |
626 | camera_distance="1.2" | 626 | camera_distance="1.2" |
627 | camera_angle="0"> | 627 | camera_angle="0"> |
628 | <param_skeleton> | 628 | <param_skeleton> |
629 | <bone | 629 | <bone |
630 | name="mNeck" | 630 | name="mNeck" |
631 | scale="0.01 0.03 0" /> | 631 | scale="0.01 0.03 0" /> |
632 | 632 | ||
633 | <bone | 633 | <bone |
634 | name="mCollarLeft" | 634 | name="mCollarLeft" |
635 | scale="0 0 0" | 635 | scale="0 0 0" |
636 | offset="0 .02 0" /> | 636 | offset="0 .02 0" /> |
637 | 637 | ||
638 | <bone | 638 | <bone |
639 | name="mCollarRight" | 639 | name="mCollarRight" |
640 | scale="0 0 0" | 640 | scale="0 0 0" |
641 | offset="0 -.02 0" /> | 641 | offset="0 -.02 0" /> |
642 | 642 | ||
643 | <bone | 643 | <bone |
644 | name="mChest" | 644 | name="mChest" |
645 | scale="0.02 0.08 0" /> | 645 | scale="0.02 0.08 0" /> |
646 | </param_skeleton> | 646 | </param_skeleton> |
647 | </param> | 647 | </param> |
648 | 648 | ||
649 | <param | 649 | <param |
650 | id="37" | 650 | id="37" |
651 | group="0" | 651 | group="0" |
652 | name="Hip Width" | 652 | name="Hip Width" |
653 | label="Hip Width" | 653 | label="Hip Width" |
654 | wearable="shape" | 654 | wearable="shape" |
655 | edit_group="shape_legs" | 655 | edit_group="shape_legs" |
656 | edit_group_order="3" | 656 | edit_group_order="3" |
657 | label_min="Narrow" | 657 | label_min="Narrow" |
658 | label_max="Wide" | 658 | label_max="Wide" |
659 | show_simple="true" | 659 | show_simple="true" |
660 | value_min="-3.2" | 660 | value_min="-3.2" |
661 | value_max="2.8" | 661 | value_max="2.8" |
662 | camera_distance="1.8"> | 662 | camera_distance="1.8"> |
663 | <param_skeleton> | 663 | <param_skeleton> |
664 | <bone | 664 | <bone |
665 | name="mPelvis" | 665 | name="mPelvis" |
666 | scale="0 0.1 0" /> | 666 | scale="0 0.1 0" /> |
667 | 667 | ||
668 | <bone | 668 | <bone |
669 | name="mHipLeft" | 669 | name="mHipLeft" |
670 | scale="0 0 0" | 670 | scale="0 0 0" |
671 | offset="0 .004 0" /> | 671 | offset="0 .004 0" /> |
672 | 672 | ||
673 | <bone | 673 | <bone |
674 | name="mHipRight" | 674 | name="mHipRight" |
675 | scale="0 0 0" | 675 | scale="0 0 0" |
676 | offset="0 -.004 0" /> | 676 | offset="0 -.004 0" /> |
677 | </param_skeleton> | 677 | </param_skeleton> |
678 | </param> | 678 | </param> |
679 | 679 | ||
680 | <param | 680 | <param |
681 | id="842" | 681 | id="842" |
682 | group="0" | 682 | group="0" |
683 | name="Hip Length" | 683 | name="Hip Length" |
684 | wearable="shape" | 684 | wearable="shape" |
685 | edit_group="shape_legs" | 685 | edit_group="shape_legs" |
686 | edit_group_order="3.2" | 686 | edit_group_order="3.2" |
687 | label_min="Short hips" | 687 | label_min="Short hips" |
688 | label_max="Long Hips" | 688 | label_max="Long Hips" |
689 | value_min="-1" | 689 | value_min="-1" |
690 | value_max="1" | 690 | value_max="1" |
691 | camera_distance="1.8"> | 691 | camera_distance="1.8"> |
692 | <param_skeleton> | 692 | <param_skeleton> |
693 | <bone | 693 | <bone |
694 | name="mPelvis" | 694 | name="mPelvis" |
695 | scale="0 0 0.3" /> | 695 | scale="0 0 0.3" /> |
696 | </param_skeleton> | 696 | </param_skeleton> |
697 | </param> | 697 | </param> |
698 | 698 | ||
699 | <param | 699 | <param |
700 | id="38" | 700 | id="38" |
701 | group="0" | 701 | group="0" |
702 | name="Torso Length" | 702 | name="Torso Length" |
703 | wearable="shape" | 703 | wearable="shape" |
704 | edit_group="shape_torso" | 704 | edit_group="shape_torso" |
705 | edit_group_order="11" | 705 | edit_group_order="11" |
706 | label_min="Short Torso" | 706 | label_min="Short Torso" |
707 | label_max="Long Torso" | 707 | label_max="Long Torso" |
708 | value_min="-1" | 708 | value_min="-1" |
709 | value_max="1" | 709 | value_max="1" |
710 | camera_distance="1.8"> | 710 | camera_distance="1.8"> |
711 | <param_skeleton> | 711 | <param_skeleton> |
712 | <bone | 712 | <bone |
713 | name="mTorso" | 713 | name="mTorso" |
714 | scale="0 0 .3" /> | 714 | scale="0 0 .3" /> |
715 | 715 | ||
716 | <bone | 716 | <bone |
717 | name="mPelvis" | 717 | name="mPelvis" |
718 | scale="0 0 .1" /> | 718 | scale="0 0 .1" /> |
719 | 719 | ||
720 | <bone | 720 | <bone |
721 | name="mHipLeft" | 721 | name="mHipLeft" |
722 | scale="0 0 -.1" /> | 722 | scale="0 0 -.1" /> |
723 | 723 | ||
724 | <bone | 724 | <bone |
725 | name="mHipRight" | 725 | name="mHipRight" |
726 | scale="0 0 -.1" /> | 726 | scale="0 0 -.1" /> |
727 | 727 | ||
728 | <bone | 728 | <bone |
729 | name="mKneeRight" | 729 | name="mKneeRight" |
730 | scale="0 0 -.05" /> | 730 | scale="0 0 -.05" /> |
731 | 731 | ||
732 | <bone | 732 | <bone |
733 | name="mKneeLeft" | 733 | name="mKneeLeft" |
734 | scale="0 0 -.05" /> | 734 | scale="0 0 -.05" /> |
735 | </param_skeleton> | 735 | </param_skeleton> |
736 | </param> | 736 | </param> |
737 | 737 | ||
738 | <param | 738 | <param |
739 | id="195" | 739 | id="195" |
740 | group="1" | 740 | group="1" |
741 | name="EyeBone_Spread" | 741 | name="EyeBone_Spread" |
742 | wearable="shape" | 742 | wearable="shape" |
743 | edit_group="shape_eyes" | 743 | edit_group="shape_eyes" |
744 | label_min="Eyes Together" | 744 | label_min="Eyes Together" |
745 | label_max="Eyes Spread" | 745 | label_max="Eyes Spread" |
746 | value_min="-1" | 746 | value_min="-1" |
747 | value_max="1"> | 747 | value_max="1"> |
748 | <param_skeleton> | 748 | <param_skeleton> |
749 | <bone | 749 | <bone |
750 | name="mEyeLeft" | 750 | name="mEyeLeft" |
751 | scale="0 0 0" | 751 | scale="0 0 0" |
752 | offset="0 .009 0" /> | 752 | offset="0 .009 0" /> |
753 | 753 | ||
754 | <bone | 754 | <bone |
755 | name="mEyeRight" | 755 | name="mEyeRight" |
756 | scale="0 0 0" | 756 | scale="0 0 0" |
757 | offset="0 -.009 0" /> | 757 | offset="0 -.009 0" /> |
758 | </param_skeleton> | 758 | </param_skeleton> |
759 | </param> | 759 | </param> |
760 | 760 | ||
761 | <param | 761 | <param |
762 | id="661" | 762 | id="661" |
763 | group="1" | 763 | group="1" |
764 | name="EyeBone_Head_Shear" | 764 | name="EyeBone_Head_Shear" |
765 | wearable="shape" | 765 | wearable="shape" |
766 | edit_group="shape_eyes" | 766 | edit_group="shape_eyes" |
767 | label_min="Eyes Shear Left Up" | 767 | label_min="Eyes Shear Left Up" |
768 | label_max="Eyes Shear Right Up" | 768 | label_max="Eyes Shear Right Up" |
769 | value_min="-2" | 769 | value_min="-2" |
770 | value_max="2"> | 770 | value_max="2"> |
771 | <param_skeleton> | 771 | <param_skeleton> |
772 | <bone | 772 | <bone |
773 | name="mEyeLeft" | 773 | name="mEyeLeft" |
774 | scale="0 0 0" | 774 | scale="0 0 0" |
775 | offset="0 0 .004" /> | 775 | offset="0 0 .004" /> |
776 | 776 | ||
777 | <bone | 777 | <bone |
778 | name="mEyeRight" | 778 | name="mEyeRight" |
779 | scale="0 0 0" | 779 | scale="0 0 0" |
780 | offset="0 0 -.004" /> | 780 | offset="0 0 -.004" /> |
781 | </param_skeleton> | 781 | </param_skeleton> |
782 | </param> | 782 | </param> |
783 | 783 | ||
784 | <param | 784 | <param |
785 | id="772" | 785 | id="772" |
786 | group="1" | 786 | group="1" |
787 | name="EyeBone_Head_Elongate" | 787 | name="EyeBone_Head_Elongate" |
788 | wearable="shape" | 788 | wearable="shape" |
789 | edit_group="shape_eyes" | 789 | edit_group="shape_eyes" |
790 | label_min="Eyes Short Head" | 790 | label_min="Eyes Short Head" |
791 | label_max="Eyes Long Head" | 791 | label_max="Eyes Long Head" |
792 | value_min="-1" | 792 | value_min="-1" |
793 | value_max="1"> | 793 | value_max="1"> |
794 | <param_skeleton> | 794 | <param_skeleton> |
795 | <bone | 795 | <bone |
796 | name="mEyeLeft" | 796 | name="mEyeLeft" |
797 | scale="0 0 0" | 797 | scale="0 0 0" |
798 | offset=".016 0 0" /> | 798 | offset=".016 0 0" /> |
799 | 799 | ||
800 | <bone | 800 | <bone |
801 | name="mEyeRight" | 801 | name="mEyeRight" |
802 | scale="0 0 0" | 802 | scale="0 0 0" |
803 | offset=".016 0 0" /> | 803 | offset=".016 0 0" /> |
804 | </param_skeleton> | 804 | </param_skeleton> |
805 | </param> | 805 | </param> |
806 | 806 | ||
807 | <param | 807 | <param |
808 | id="768" | 808 | id="768" |
809 | group="1" | 809 | group="1" |
810 | name="EyeBone_Bug" | 810 | name="EyeBone_Bug" |
811 | wearable="shape" | 811 | wearable="shape" |
812 | edit_group="shape_eyes" | 812 | edit_group="shape_eyes" |
813 | label_min="Eyes Sunken" | 813 | label_min="Eyes Sunken" |
814 | label_max="Eyes Bugged" | 814 | label_max="Eyes Bugged" |
815 | value_min="-2" | 815 | value_min="-2" |
816 | value_max="2"> | 816 | value_max="2"> |
817 | <param_skeleton> | 817 | <param_skeleton> |
818 | <bone | 818 | <bone |
819 | name="mEyeLeft" | 819 | name="mEyeLeft" |
820 | scale="0 0 0" | 820 | scale="0 0 0" |
821 | offset=".005 0 0" /> | 821 | offset=".005 0 0" /> |
822 | 822 | ||
823 | <bone | 823 | <bone |
824 | name="mEyeRight" | 824 | name="mEyeRight" |
825 | scale="0 0 0" | 825 | scale="0 0 0" |
826 | offset=".005 0 0" /> | 826 | offset=".005 0 0" /> |
827 | </param_skeleton> | 827 | </param_skeleton> |
828 | </param> | 828 | </param> |
829 | 829 | ||
830 | <param | 830 | <param |
831 | id="655" | 831 | id="655" |
832 | group="1" | 832 | group="1" |
833 | name="Head Size" | 833 | name="Head Size" |
834 | label="Head Size" | 834 | label="Head Size" |
835 | wearable="shape" | 835 | wearable="shape" |
836 | edit_group="shape_head" | 836 | edit_group="shape_head" |
837 | label_min="Small Head" | 837 | label_min="Small Head" |
838 | label_max="Big Head" | 838 | label_max="Big Head" |
839 | show_simple="true" | 839 | show_simple="true" |
840 | value_min="-.25" | 840 | value_min="-.25" |
841 | value_max=".10"> | 841 | value_max=".10"> |
842 | <param_skeleton> | 842 | <param_skeleton> |
843 | <bone | 843 | <bone |
844 | name="mSkull" | 844 | name="mSkull" |
845 | scale="1 1 1" | 845 | scale="1 1 1" |
846 | offset="0 0 0.1" /> | 846 | offset="0 0 0.1" /> |
847 | 847 | ||
848 | <bone | 848 | <bone |
849 | name="mHead" | 849 | name="mHead" |
850 | scale="1 1 1" | 850 | scale="1 1 1" |
851 | offset="0 0 0" /> | 851 | offset="0 0 0" /> |
852 | 852 | ||
853 | <bone | 853 | <bone |
854 | name="mEyeLeft" | 854 | name="mEyeLeft" |
855 | scale="1 1 1" | 855 | scale="1 1 1" |
856 | offset="0 0 0" /> | 856 | offset="0 0 0" /> |
857 | 857 | ||
858 | <bone | 858 | <bone |
859 | name="mEyeRight" | 859 | name="mEyeRight" |
860 | scale="1 1 1" | 860 | scale="1 1 1" |
861 | offset="0 0 0" /> | 861 | offset="0 0 0" /> |
862 | </param_skeleton> | 862 | </param_skeleton> |
863 | </param> | 863 | </param> |
864 | 864 | ||
865 | <param | 865 | <param |
866 | id="197" | 866 | id="197" |
867 | group="1" | 867 | group="1" |
868 | wearable="shoes" | 868 | wearable="shoes" |
869 | name="Shoe_Heels" | 869 | name="Shoe_Heels" |
870 | edit_group="shoes" | 870 | edit_group="shoes" |
871 | label_min="No Heels" | 871 | label_min="No Heels" |
872 | label_max="High Heels" | 872 | label_max="High Heels" |
873 | value_min="0" | 873 | value_min="0" |
874 | value_max="1"> | 874 | value_max="1"> |
875 | <param_skeleton> | 875 | <param_skeleton> |
876 | <bone | 876 | <bone |
877 | name="mFootRight" | 877 | name="mFootRight" |
878 | scale="0 0 0" | 878 | scale="0 0 0" |
879 | offset="0 0 -.08" /> | 879 | offset="0 0 -.08" /> |
880 | 880 | ||
881 | <bone | 881 | <bone |
882 | name="mFootLeft" | 882 | name="mFootLeft" |
883 | scale="0 0 0" | 883 | scale="0 0 0" |
884 | offset="0 0 -.08" /> | 884 | offset="0 0 -.08" /> |
885 | </param_skeleton> | 885 | </param_skeleton> |
886 | </param> | 886 | </param> |
887 | 887 | ||
888 | <param | 888 | <param |
889 | id="502" | 889 | id="502" |
890 | group="1" | 890 | group="1" |
891 | wearable="shoes" | 891 | wearable="shoes" |
892 | name="Shoe_Platform" | 892 | name="Shoe_Platform" |
893 | edit_group="shoes" | 893 | edit_group="shoes" |
894 | label_min="No Heels" | 894 | label_min="No Heels" |
895 | label_max="High Heels" | 895 | label_max="High Heels" |
896 | value_min="0" | 896 | value_min="0" |
897 | value_max="1"> | 897 | value_max="1"> |
898 | <param_skeleton> | 898 | <param_skeleton> |
899 | <bone | 899 | <bone |
900 | name="mFootRight" | 900 | name="mFootRight" |
901 | scale="0 0 0" | 901 | scale="0 0 0" |
902 | offset="0 0 -.07" /> | 902 | offset="0 0 -.07" /> |
903 | 903 | ||
904 | <bone | 904 | <bone |
905 | name="mFootLeft" | 905 | name="mFootLeft" |
906 | scale="0 0 0" | 906 | scale="0 0 0" |
907 | offset="0 0 -.07" /> | 907 | offset="0 0 -.07" /> |
908 | </param_skeleton> | 908 | </param_skeleton> |
909 | </param> | 909 | </param> |
910 | 910 | ||
911 | <param | 911 | <param |
912 | id="675" | 912 | id="675" |
913 | group="0" | 913 | group="0" |
914 | name="Hand Size" | 914 | name="Hand Size" |
915 | wearable="shape" | 915 | wearable="shape" |
916 | edit_group="shape_torso" | 916 | edit_group="shape_torso" |
917 | edit_group_order="10" | 917 | edit_group_order="10" |
918 | label_min="Small Hands" | 918 | label_min="Small Hands" |
919 | label_max="Large Hands" | 919 | label_max="Large Hands" |
920 | value_min="-.3" | 920 | value_min="-.3" |
921 | value_max=".3" | 921 | value_max=".3" |
922 | camera_elevation=".1" | 922 | camera_elevation=".1" |
923 | camera_distance="1.4" | 923 | camera_distance="1.4" |
924 | camera_angle="0"> | 924 | camera_angle="0"> |
925 | <param_skeleton> | 925 | <param_skeleton> |
926 | <bone | 926 | <bone |
927 | name="mWristRight" | 927 | name="mWristRight" |
928 | scale="1 1 1" | 928 | scale="1 1 1" |
929 | offset="0 0 0" /> | 929 | offset="0 0 0" /> |
930 | 930 | ||
931 | <bone | 931 | <bone |
932 | name="mWristLeft" | 932 | name="mWristLeft" |
933 | scale="1 1 1" | 933 | scale="1 1 1" |
934 | offset="0 0 0" /> | 934 | offset="0 0 0" /> |
935 | </param_skeleton> | 935 | </param_skeleton> |
936 | </param> | 936 | </param> |
937 | 937 | ||
938 | <param | 938 | <param |
939 | id="683" | 939 | id="683" |
940 | group="0" | 940 | group="0" |
941 | name="Neck Thickness" | 941 | name="Neck Thickness" |
942 | wearable="shape" | 942 | wearable="shape" |
943 | edit_group="shape_torso" | 943 | edit_group="shape_torso" |
944 | edit_group_order="2" | 944 | edit_group_order="2" |
945 | label_min="Skinny Neck" | 945 | label_min="Skinny Neck" |
946 | label_max="Thick Neck" | 946 | label_max="Thick Neck" |
947 | value_min="-.4" | 947 | value_min="-.4" |
948 | value_max=".2" | 948 | value_max=".2" |
949 | value_default="-.15" | 949 | value_default="-.15" |
950 | camera_elevation=".3" | 950 | camera_elevation=".3" |
951 | camera_distance=".8" | 951 | camera_distance=".8" |
952 | camera_angle="15"> | 952 | camera_angle="15"> |
953 | <param_skeleton> | 953 | <param_skeleton> |
954 | <bone | 954 | <bone |
955 | name="mNeck" | 955 | name="mNeck" |
956 | scale="1 1 0" | 956 | scale="1 1 0" |
957 | offset="0 0 0" /> | 957 | offset="0 0 0" /> |
958 | </param_skeleton> | 958 | </param_skeleton> |
959 | </param> | 959 | </param> |
960 | 960 | ||
961 | <param | 961 | <param |
962 | id="689" | 962 | id="689" |
963 | group="1" | 963 | group="1" |
964 | wearable="shape" | 964 | wearable="shape" |
965 | name="EyeBone_Big_Eyes" | 965 | name="EyeBone_Big_Eyes" |
966 | edit_group="shape_eyes" | 966 | edit_group="shape_eyes" |
967 | label_min="Eyes Back" | 967 | label_min="Eyes Back" |
968 | label_max="Eyes Forward" | 968 | label_max="Eyes Forward" |
969 | value_min="-1" | 969 | value_min="-1" |
970 | value_max="1"> | 970 | value_max="1"> |
971 | <param_skeleton> | 971 | <param_skeleton> |
972 | <bone | 972 | <bone |
973 | name="mEyeLeft" | 973 | name="mEyeLeft" |
974 | scale="0 0 0" | 974 | scale="0 0 0" |
975 | offset="-.005 0 0" /> | 975 | offset="-.005 0 0" /> |
976 | 976 | ||
977 | <bone | 977 | <bone |
978 | name="mEyeRight" | 978 | name="mEyeRight" |
979 | scale="0 0 0" | 979 | scale="0 0 0" |
980 | offset="-.005 0 0" /> | 980 | offset="-.005 0 0" /> |
981 | </param_skeleton> | 981 | </param_skeleton> |
982 | </param> | 982 | </param> |
983 | 983 | ||
984 | <param | 984 | <param |
985 | id="692" | 985 | id="692" |
986 | group="0" | 986 | group="0" |
987 | name="Leg Length" | 987 | name="Leg Length" |
988 | wearable="shape" | 988 | wearable="shape" |
989 | edit_group="shape_legs" | 989 | edit_group="shape_legs" |
990 | edit_group_order="2" | 990 | edit_group_order="2" |
991 | label_min="Short Legs" | 991 | label_min="Short Legs" |
992 | label_max="Long Legs" | 992 | label_max="Long Legs" |
993 | value_min="-1" | 993 | value_min="-1" |
994 | value_max="1" | 994 | value_max="1" |
995 | camera_distance="2.5"> | 995 | camera_distance="2.5"> |
996 | <param_skeleton> | 996 | <param_skeleton> |
997 | <bone | 997 | <bone |
998 | name="mHipLeft" | 998 | name="mHipLeft" |
999 | scale="0 0 .2" /> | 999 | scale="0 0 .2" /> |
1000 | 1000 | ||
1001 | <bone | 1001 | <bone |
1002 | name="mHipRight" | 1002 | name="mHipRight" |
1003 | scale="0 0 .2" /> | 1003 | scale="0 0 .2" /> |
1004 | 1004 | ||
1005 | <bone | 1005 | <bone |
1006 | name="mKneeRight" | 1006 | name="mKneeRight" |
1007 | scale="0 0 .2" /> | 1007 | scale="0 0 .2" /> |
1008 | 1008 | ||
1009 | <bone | 1009 | <bone |
1010 | name="mKneeLeft" | 1010 | name="mKneeLeft" |
1011 | scale="0 0 .2" /> | 1011 | scale="0 0 .2" /> |
1012 | </param_skeleton> | 1012 | </param_skeleton> |
1013 | </param> | 1013 | </param> |
1014 | 1014 | ||
1015 | <param | 1015 | <param |
1016 | id="693" | 1016 | id="693" |
1017 | group="0" | 1017 | group="0" |
1018 | name="Arm Length" | 1018 | name="Arm Length" |
1019 | wearable="shape" | 1019 | wearable="shape" |
1020 | edit_group="shape_torso" | 1020 | edit_group="shape_torso" |
1021 | edit_group_order="9" | 1021 | edit_group_order="9" |
1022 | label_min="Short Arms" | 1022 | label_min="Short Arms" |
1023 | label_max="Long arms" | 1023 | label_max="Long arms" |
1024 | value_min="-1" | 1024 | value_min="-1" |
1025 | value_max="1" | 1025 | value_max="1" |
1026 | value_default=".6" | 1026 | value_default=".6" |
1027 | camera_distance="1.5"> | 1027 | camera_distance="1.5"> |
1028 | <param_skeleton> | 1028 | <param_skeleton> |
1029 | <bone | 1029 | <bone |
1030 | name="mShoulderLeft" | 1030 | name="mShoulderLeft" |
1031 | scale="0 .2 0" /> | 1031 | scale="0 .2 0" /> |
1032 | 1032 | ||
1033 | <bone | 1033 | <bone |
1034 | name="mShoulderRight" | 1034 | name="mShoulderRight" |
1035 | scale="0 .2 0" /> | 1035 | scale="0 .2 0" /> |
1036 | 1036 | ||
1037 | <bone | 1037 | <bone |
1038 | name="mElbowRight" | 1038 | name="mElbowRight" |
1039 | scale="0 .3 0" /> | 1039 | scale="0 .3 0" /> |
1040 | 1040 | ||
1041 | <bone | 1041 | <bone |
1042 | name="mElbowLeft" | 1042 | name="mElbowLeft" |
1043 | scale="0 .3 0" /> | 1043 | scale="0 .3 0" /> |
1044 | </param_skeleton> | 1044 | </param_skeleton> |
1045 | </param> | 1045 | </param> |
1046 | 1046 | ||
1047 | <param | 1047 | <param |
1048 | id="756" | 1048 | id="756" |
1049 | group="0" | 1049 | group="0" |
1050 | name="Neck Length" | 1050 | name="Neck Length" |
1051 | wearable="shape" | 1051 | wearable="shape" |
1052 | edit_group="shape_torso" | 1052 | edit_group="shape_torso" |
1053 | edit_group_order="3" | 1053 | edit_group_order="3" |
1054 | label_min="Short Neck" | 1054 | label_min="Short Neck" |
1055 | label_max="Long Neck" | 1055 | label_max="Long Neck" |
1056 | value_min="-1" | 1056 | value_min="-1" |
1057 | value_max="1" | 1057 | value_max="1" |
1058 | value_default="0" | 1058 | value_default="0" |
1059 | camera_elevation=".3" | 1059 | camera_elevation=".3" |
1060 | camera_distance=".8" | 1060 | camera_distance=".8" |
1061 | camera_angle="15"> | 1061 | camera_angle="15"> |
1062 | <param_skeleton> | 1062 | <param_skeleton> |
1063 | <bone | 1063 | <bone |
1064 | name="mNeck" | 1064 | name="mNeck" |
1065 | scale="0 0 .5" /> | 1065 | scale="0 0 .5" /> |
1066 | </param_skeleton> | 1066 | </param_skeleton> |
1067 | </param> | 1067 | </param> |
1068 | </skeleton> | 1068 | </skeleton> |
1069 | 1069 | ||
1070 | <mesh | 1070 | <mesh |
1071 | type="hairMesh" | 1071 | type="hairMesh" |
1072 | lod="0" | 1072 | lod="0" |
1073 | file_name="avatar_hair.llm" | 1073 | file_name="avatar_hair.llm" |
1074 | min_pixel_width="320"> | 1074 | min_pixel_width="320"> |
1075 | <!-- begin morph targets --> | 1075 | <!-- begin morph targets --> |
1076 | <param | 1076 | <param |
1077 | id="180" | 1077 | id="180" |
1078 | group="1" | 1078 | group="1" |
1079 | name="Hair_Volume" | 1079 | name="Hair_Volume" |
1080 | label="Hair Volume" | 1080 | label="Hair Volume" |
1081 | show_simple="true" | 1081 | show_simple="true" |
1082 | wearable="hair" | 1082 | wearable="hair" |
1083 | clothing_morph="true" | 1083 | clothing_morph="true" |
1084 | edit_group="hair_style" | 1084 | edit_group="hair_style" |
1085 | label_min="Less" | 1085 | label_min="Less" |
1086 | label_max="More" | 1086 | label_max="More" |
1087 | value_min="0" | 1087 | value_min="0" |
1088 | value_max="1.3" | 1088 | value_max="1.3" |
1089 | camera_elevation=".1" | 1089 | camera_elevation=".1" |
1090 | camera_distance=".5" | 1090 | camera_distance=".5" |
1091 | camera_angle="20"> | 1091 | camera_angle="20"> |
1092 | <param_morph /> | 1092 | <param_morph /> |
1093 | </param> | 1093 | </param> |
1094 | 1094 | ||
1095 | <param | 1095 | <param |
1096 | id="761" | 1096 | id="761" |
1097 | group="1" | 1097 | group="1" |
1098 | name="Hair_Volume_Small" | 1098 | name="Hair_Volume_Small" |
1099 | label="Hair Volume" | 1099 | label="Hair Volume" |
1100 | show_simple="true" | 1100 | show_simple="true" |
1101 | wearable="hair" | 1101 | wearable="hair" |
1102 | edit_group="hair_style" | 1102 | edit_group="hair_style" |
1103 | label_min="Less" | 1103 | label_min="Less" |
1104 | label_max="More" | 1104 | label_max="More" |
1105 | value_min="0" | 1105 | value_min="0" |
1106 | value_max="1.3" | 1106 | value_max="1.3" |
1107 | camera_elevation=".1" | 1107 | camera_elevation=".1" |
1108 | camera_distance=".5" | 1108 | camera_distance=".5" |
1109 | camera_angle="20"> | 1109 | camera_angle="20"> |
1110 | <param_morph /> | 1110 | <param_morph /> |
1111 | </param> | 1111 | </param> |
1112 | 1112 | ||
1113 | <param | 1113 | <param |
1114 | id="181" | 1114 | id="181" |
1115 | group="0" | 1115 | group="0" |
1116 | name="Hair_Big_Front" | 1116 | name="Hair_Big_Front" |
1117 | label="Big Hair Front" | 1117 | label="Big Hair Front" |
1118 | wearable="hair" | 1118 | wearable="hair" |
1119 | edit_group="hair_style" | 1119 | edit_group="hair_style" |
1120 | edit_group_order="5" | 1120 | edit_group_order="5" |
1121 | label_min="Less" | 1121 | label_min="Less" |
1122 | label_max="More" | 1122 | label_max="More" |
1123 | value_min="-1" | 1123 | value_min="-1" |
1124 | value_max="1" | 1124 | value_max="1" |
1125 | value_default="0.14" | 1125 | value_default="0.14" |
1126 | camera_elevation=".1" | 1126 | camera_elevation=".1" |
1127 | camera_distance=".5" | 1127 | camera_distance=".5" |
1128 | camera_angle="90"> | 1128 | camera_angle="90"> |
1129 | <param_morph /> | 1129 | <param_morph /> |
1130 | </param> | 1130 | </param> |
1131 | 1131 | ||
1132 | <param | 1132 | <param |
1133 | id="182" | 1133 | id="182" |
1134 | group="0" | 1134 | group="0" |
1135 | name="Hair_Big_Top" | 1135 | name="Hair_Big_Top" |
1136 | label="Big Hair Top" | 1136 | label="Big Hair Top" |
1137 | wearable="hair" | 1137 | wearable="hair" |
1138 | edit_group="hair_style" | 1138 | edit_group="hair_style" |
1139 | edit_group_order="6" | 1139 | edit_group_order="6" |
1140 | label_min="Less" | 1140 | label_min="Less" |
1141 | label_max="More" | 1141 | label_max="More" |
1142 | value_min="-1" | 1142 | value_min="-1" |
1143 | value_max="1" | 1143 | value_max="1" |
1144 | value_default=".7" | 1144 | value_default=".7" |
1145 | camera_elevation=".1" | 1145 | camera_elevation=".1" |
1146 | camera_distance=".5" | 1146 | camera_distance=".5" |
1147 | camera_angle="90"> | 1147 | camera_angle="90"> |
1148 | <param_morph /> | 1148 | <param_morph /> |
1149 | </param> | 1149 | </param> |
1150 | 1150 | ||
1151 | <param | 1151 | <param |
1152 | id="183" | 1152 | id="183" |
1153 | group="0" | 1153 | group="0" |
1154 | name="Hair_Big_Back" | 1154 | name="Hair_Big_Back" |
1155 | clothing_morph="true" | 1155 | clothing_morph="true" |
1156 | label="Big Hair Back" | 1156 | label="Big Hair Back" |
1157 | wearable="hair" | 1157 | wearable="hair" |
1158 | edit_group="hair_style" | 1158 | edit_group="hair_style" |
1159 | edit_group_order="7" | 1159 | edit_group_order="7" |
1160 | label_min="Less" | 1160 | label_min="Less" |
1161 | label_max="More" | 1161 | label_max="More" |
1162 | value_min="-1" | 1162 | value_min="-1" |
1163 | value_max="1" | 1163 | value_max="1" |
1164 | value_default="0.05" | 1164 | value_default="0.05" |
1165 | camera_elevation=".1" | 1165 | camera_elevation=".1" |
1166 | camera_distance=".7" | 1166 | camera_distance=".7" |
1167 | camera_angle="90"> | 1167 | camera_angle="90"> |
1168 | <param_morph /> | 1168 | <param_morph /> |
1169 | </param> | 1169 | </param> |
1170 | 1170 | ||
1171 | <param | 1171 | <param |
1172 | id="184" | 1172 | id="184" |
1173 | group="0" | 1173 | group="0" |
1174 | name="Hair_Spiked" | 1174 | name="Hair_Spiked" |
1175 | label="Spiked Hair" | 1175 | label="Spiked Hair" |
1176 | show_simple="true" | 1176 | show_simple="true" |
1177 | wearable="hair" | 1177 | wearable="hair" |
1178 | clothing_morph="true" | 1178 | clothing_morph="true" |
1179 | edit_group="hair_style" | 1179 | edit_group="hair_style" |
1180 | edit_group_order="15" | 1180 | edit_group_order="15" |
1181 | label_min="No Spikes" | 1181 | label_min="No Spikes" |
1182 | label_max="Big Spikes" | 1182 | label_max="Big Spikes" |
1183 | value_min="0" | 1183 | value_min="0" |
1184 | value_max="1" | 1184 | value_max="1" |
1185 | camera_elevation=".1" | 1185 | camera_elevation=".1" |
1186 | camera_distance=".5" | 1186 | camera_distance=".5" |
1187 | camera_angle="20"> | 1187 | camera_angle="20"> |
1188 | <param_morph /> | 1188 | <param_morph /> |
1189 | </param> | 1189 | </param> |
1190 | 1190 | ||
1191 | <param | 1191 | <param |
1192 | id="140" | 1192 | id="140" |
1193 | group="0" | 1193 | group="0" |
1194 | name="Hair_Part_Middle" | 1194 | name="Hair_Part_Middle" |
1195 | label="Middle Part" | 1195 | label="Middle Part" |
1196 | wearable="hair" | 1196 | wearable="hair" |
1197 | edit_group="hair_style" | 1197 | edit_group="hair_style" |
1198 | edit_group_order="17" | 1198 | edit_group_order="17" |
1199 | label_min="No Part" | 1199 | label_min="No Part" |
1200 | label_max="Part" | 1200 | label_max="Part" |
1201 | value_min="0" | 1201 | value_min="0" |
1202 | value_max="2" | 1202 | value_max="2" |
1203 | camera_elevation=".1" | 1203 | camera_elevation=".1" |
1204 | camera_distance=".5" | 1204 | camera_distance=".5" |
1205 | camera_angle="0"> | 1205 | camera_angle="0"> |
1206 | <param_morph /> | 1206 | <param_morph /> |
1207 | </param> | 1207 | </param> |
1208 | 1208 | ||
1209 | <param | 1209 | <param |
1210 | id="141" | 1210 | id="141" |
1211 | group="0" | 1211 | group="0" |
1212 | name="Hair_Part_Right" | 1212 | name="Hair_Part_Right" |
1213 | label="Right Part" | 1213 | label="Right Part" |
1214 | wearable="hair" | 1214 | wearable="hair" |
1215 | edit_group="hair_style" | 1215 | edit_group="hair_style" |
1216 | edit_group_order="18" | 1216 | edit_group_order="18" |
1217 | label_min="No Part" | 1217 | label_min="No Part" |
1218 | label_max="Part" | 1218 | label_max="Part" |
1219 | value_min="0" | 1219 | value_min="0" |
1220 | value_max="2" | 1220 | value_max="2" |
1221 | camera_elevation=".1" | 1221 | camera_elevation=".1" |
1222 | camera_distance=".5" | 1222 | camera_distance=".5" |
1223 | camera_angle="0"> | 1223 | camera_angle="0"> |
1224 | <param_morph /> | 1224 | <param_morph /> |
1225 | </param> | 1225 | </param> |
1226 | 1226 | ||
1227 | <param | 1227 | <param |
1228 | id="142" | 1228 | id="142" |
1229 | group="0" | 1229 | group="0" |
1230 | name="Hair_Part_Left" | 1230 | name="Hair_Part_Left" |
1231 | label="Left Part" | 1231 | label="Left Part" |
1232 | wearable="hair" | 1232 | wearable="hair" |
1233 | edit_group="hair_style" | 1233 | edit_group="hair_style" |
1234 | edit_group_order="19" | 1234 | edit_group_order="19" |
1235 | label_min="No Part" | 1235 | label_min="No Part" |
1236 | label_max="Part" | 1236 | label_max="Part" |
1237 | value_min="0" | 1237 | value_min="0" |
1238 | value_max="2" | 1238 | value_max="2" |
1239 | camera_elevation=".1" | 1239 | camera_elevation=".1" |
1240 | camera_distance=".5" | 1240 | camera_distance=".5" |
1241 | camera_angle="0"> | 1241 | camera_angle="0"> |
1242 | <param_morph /> | 1242 | <param_morph /> |
1243 | </param> | 1243 | </param> |
1244 | 1244 | ||
1245 | <param | 1245 | <param |
1246 | id="143" | 1246 | id="143" |
1247 | group="0" | 1247 | group="0" |
1248 | name="Hair_Sides_Full" | 1248 | name="Hair_Sides_Full" |
1249 | label="Full Hair Sides" | 1249 | label="Full Hair Sides" |
1250 | show_simple="true" | 1250 | show_simple="true" |
1251 | wearable="hair" | 1251 | wearable="hair" |
1252 | edit_group="hair_style" | 1252 | edit_group="hair_style" |
1253 | edit_group_order="11" | 1253 | edit_group_order="11" |
1254 | label_min="Mowhawk" | 1254 | label_min="Mowhawk" |
1255 | label_max="Full Sides" | 1255 | label_max="Full Sides" |
1256 | value_min="-4" | 1256 | value_min="-4" |
1257 | value_max="1.5" | 1257 | value_max="1.5" |
1258 | value_default="0.125" | 1258 | value_default="0.125" |
1259 | camera_elevation=".1" | 1259 | camera_elevation=".1" |
1260 | camera_distance=".5" | 1260 | camera_distance=".5" |
1261 | camera_angle="20"> | 1261 | camera_angle="20"> |
1262 | <param_morph /> | 1262 | <param_morph /> |
1263 | </param> | 1263 | </param> |
1264 | 1264 | ||
1265 | <param | 1265 | <param |
1266 | id="144" | 1266 | id="144" |
1267 | group="1" | 1267 | group="1" |
1268 | name="Bangs_Front_Up" | 1268 | name="Bangs_Front_Up" |
1269 | label="Front Bangs Up" | 1269 | label="Front Bangs Up" |
1270 | wearable="hair" | 1270 | wearable="hair" |
1271 | edit_group="hair_style" | 1271 | edit_group="hair_style" |
1272 | label_min="Bangs" | 1272 | label_min="Bangs" |
1273 | label_max="Bangs Up" | 1273 | label_max="Bangs Up" |
1274 | value_min="0" | 1274 | value_min="0" |
1275 | value_max="1" | 1275 | value_max="1" |
1276 | camera_elevation=".1" | 1276 | camera_elevation=".1" |
1277 | camera_distance=".5" | 1277 | camera_distance=".5" |
1278 | camera_angle="20"> | 1278 | camera_angle="20"> |
1279 | <param_morph /> | 1279 | <param_morph /> |
1280 | </param> | 1280 | </param> |
1281 | 1281 | ||
1282 | <param | 1282 | <param |
1283 | id="145" | 1283 | id="145" |
1284 | group="1" | 1284 | group="1" |
1285 | clothing_morph="true" | 1285 | clothing_morph="true" |
1286 | name="Bangs_Front_Down" | 1286 | name="Bangs_Front_Down" |
1287 | label="Front Bangs Down" | 1287 | label="Front Bangs Down" |
1288 | wearable="hair" | 1288 | wearable="hair" |
1289 | edit_group="hair_style" | 1289 | edit_group="hair_style" |
1290 | label_min="Bangs" | 1290 | label_min="Bangs" |
1291 | label_max="Bangs Down" | 1291 | label_max="Bangs Down" |
1292 | value_min="0" | 1292 | value_min="0" |
1293 | value_max="5" | 1293 | value_max="5" |
1294 | camera_elevation=".1" | 1294 | camera_elevation=".1" |
1295 | camera_distance=".5" | 1295 | camera_distance=".5" |
1296 | camera_angle="20"> | 1296 | camera_angle="20"> |
1297 | <param_morph /> | 1297 | <param_morph /> |
1298 | </param> | 1298 | </param> |
1299 | 1299 | ||
1300 | <param | 1300 | <param |
1301 | id="146" | 1301 | id="146" |
1302 | group="1" | 1302 | group="1" |
1303 | name="Bangs_Sides_Up" | 1303 | name="Bangs_Sides_Up" |
1304 | label="Side Bangs Up" | 1304 | label="Side Bangs Up" |
1305 | wearable="hair" | 1305 | wearable="hair" |
1306 | edit_group="hair_style" | 1306 | edit_group="hair_style" |
1307 | label_min="Side Bangs" | 1307 | label_min="Side Bangs" |
1308 | label_max="Side Bangs Up" | 1308 | label_max="Side Bangs Up" |
1309 | value_min="0" | 1309 | value_min="0" |
1310 | value_max="1" | 1310 | value_max="1" |
1311 | camera_elevation=".1" | 1311 | camera_elevation=".1" |
1312 | camera_distance=".5" | 1312 | camera_distance=".5" |
1313 | camera_angle="20"> | 1313 | camera_angle="20"> |
1314 | <param_morph /> | 1314 | <param_morph /> |
1315 | </param> | 1315 | </param> |
1316 | 1316 | ||
1317 | <param | 1317 | <param |
1318 | id="147" | 1318 | id="147" |
1319 | group="1" | 1319 | group="1" |
1320 | clothing_morph="true" | 1320 | clothing_morph="true" |
1321 | name="Bangs_Sides_Down" | 1321 | name="Bangs_Sides_Down" |
1322 | label="Side Bangs Down" | 1322 | label="Side Bangs Down" |
1323 | wearable="hair" | 1323 | wearable="hair" |
1324 | edit_group="hair_style" | 1324 | edit_group="hair_style" |
1325 | label_min="Side Bangs" | 1325 | label_min="Side Bangs" |
1326 | label_max="Side Bangs Down" | 1326 | label_max="Side Bangs Down" |
1327 | value_min="0" | 1327 | value_min="0" |
1328 | value_max="2" | 1328 | value_max="2" |
1329 | camera_elevation=".1" | 1329 | camera_elevation=".1" |
1330 | camera_distance=".5" | 1330 | camera_distance=".5" |
1331 | camera_angle="20"> | 1331 | camera_angle="20"> |
1332 | <param_morph /> | 1332 | <param_morph /> |
1333 | </param> | 1333 | </param> |
1334 | 1334 | ||
1335 | <param | 1335 | <param |
1336 | id="148" | 1336 | id="148" |
1337 | group="1" | 1337 | group="1" |
1338 | name="Bangs_Back_Up" | 1338 | name="Bangs_Back_Up" |
1339 | label="Back Bangs Up" | 1339 | label="Back Bangs Up" |
1340 | wearable="hair" | 1340 | wearable="hair" |
1341 | edit_group="hair_style" | 1341 | edit_group="hair_style" |
1342 | label_min="Back Bangs" | 1342 | label_min="Back Bangs" |
1343 | label_max="Back Bangs Up" | 1343 | label_max="Back Bangs Up" |
1344 | value_min="0" | 1344 | value_min="0" |
1345 | value_max="1" | 1345 | value_max="1" |
1346 | camera_elevation=".1" | 1346 | camera_elevation=".1" |
1347 | camera_distance=".5" | 1347 | camera_distance=".5" |
1348 | camera_angle="150"> | 1348 | camera_angle="150"> |
1349 | <param_morph /> | 1349 | <param_morph /> |
1350 | </param> | 1350 | </param> |
1351 | 1351 | ||
1352 | <param | 1352 | <param |
1353 | id="149" | 1353 | id="149" |
1354 | group="1" | 1354 | group="1" |
1355 | name="Bangs_Back_Down" | 1355 | name="Bangs_Back_Down" |
1356 | label="Back Bangs Down" | 1356 | label="Back Bangs Down" |
1357 | clothing_morph="true" | 1357 | clothing_morph="true" |
1358 | wearable="hair" | 1358 | wearable="hair" |
1359 | edit_group="hair_style" | 1359 | edit_group="hair_style" |
1360 | label_min="Back Bangs" | 1360 | label_min="Back Bangs" |
1361 | label_max="Back Bangs Down" | 1361 | label_max="Back Bangs Down" |
1362 | value_min="0" | 1362 | value_min="0" |
1363 | value_max="2" | 1363 | value_max="2" |
1364 | camera_elevation=".1" | 1364 | camera_elevation=".1" |
1365 | camera_distance=".5" | 1365 | camera_distance=".5" |
1366 | camera_angle="150"> | 1366 | camera_angle="150"> |
1367 | <param_morph /> | 1367 | <param_morph /> |
1368 | </param> | 1368 | </param> |
1369 | 1369 | ||
1370 | <param | 1370 | <param |
1371 | id="171" | 1371 | id="171" |
1372 | group="1" | 1372 | group="1" |
1373 | name="Hair_Front_Down" | 1373 | name="Hair_Front_Down" |
1374 | label="Front Hair Down" | 1374 | label="Front Hair Down" |
1375 | wearable="hair" | 1375 | wearable="hair" |
1376 | edit_group="hair_style" | 1376 | edit_group="hair_style" |
1377 | label_min="Front Hair" | 1377 | label_min="Front Hair" |
1378 | label_max="Front Hair Down" | 1378 | label_max="Front Hair Down" |
1379 | value_min="0" | 1379 | value_min="0" |
1380 | value_max="1" | 1380 | value_max="1" |
1381 | camera_elevation=".1" | 1381 | camera_elevation=".1" |
1382 | camera_distance=".5" | 1382 | camera_distance=".5" |
1383 | camera_angle="20"> | 1383 | camera_angle="20"> |
1384 | <param_morph /> | 1384 | <param_morph /> |
1385 | </param> | 1385 | </param> |
1386 | 1386 | ||
1387 | <param | 1387 | <param |
1388 | id="172" | 1388 | id="172" |
1389 | group="1" | 1389 | group="1" |
1390 | name="Hair_Front_Up" | 1390 | name="Hair_Front_Up" |
1391 | label="Front Hair Up" | 1391 | label="Front Hair Up" |
1392 | wearable="hair" | 1392 | wearable="hair" |
1393 | edit_group="hair_style" | 1393 | edit_group="hair_style" |
1394 | label_min="Front Hair" | 1394 | label_min="Front Hair" |
1395 | label_max="Front Hair Up" | 1395 | label_max="Front Hair Up" |
1396 | value_min="0" | 1396 | value_min="0" |
1397 | value_max="1" | 1397 | value_max="1" |
1398 | camera_elevation=".1" | 1398 | camera_elevation=".1" |
1399 | camera_distance=".5" | 1399 | camera_distance=".5" |
1400 | camera_angle="20"> | 1400 | camera_angle="20"> |
1401 | <param_morph /> | 1401 | <param_morph /> |
1402 | </param> | 1402 | </param> |
1403 | 1403 | ||
1404 | <param | 1404 | <param |
1405 | id="173" | 1405 | id="173" |
1406 | group="1" | 1406 | group="1" |
1407 | name="Hair_Sides_Down" | 1407 | name="Hair_Sides_Down" |
1408 | label="Sides Hair Down" | 1408 | label="Sides Hair Down" |
1409 | wearable="hair" | 1409 | wearable="hair" |
1410 | edit_group="hair_style" | 1410 | edit_group="hair_style" |
1411 | label_min="Sides Hair" | 1411 | label_min="Sides Hair" |
1412 | label_max="Sides Hair Down" | 1412 | label_max="Sides Hair Down" |
1413 | value_min="0" | 1413 | value_min="0" |
1414 | value_max="1" | 1414 | value_max="1" |
1415 | camera_elevation=".1" | 1415 | camera_elevation=".1" |
1416 | camera_distance=".5" | 1416 | camera_distance=".5" |
1417 | camera_angle="20"> | 1417 | camera_angle="20"> |
1418 | <param_morph /> | 1418 | <param_morph /> |
1419 | </param> | 1419 | </param> |
1420 | 1420 | ||
1421 | <param | 1421 | <param |
1422 | id="174" | 1422 | id="174" |
1423 | group="1" | 1423 | group="1" |
1424 | name="Hair_Sides_Up" | 1424 | name="Hair_Sides_Up" |
1425 | label="Sides Hair Up" | 1425 | label="Sides Hair Up" |
1426 | wearable="hair" | 1426 | wearable="hair" |
1427 | edit_group="hair_style" | 1427 | edit_group="hair_style" |
1428 | label_min="Sides Hair" | 1428 | label_min="Sides Hair" |
1429 | label_max="Sides Hair Up" | 1429 | label_max="Sides Hair Up" |
1430 | value_min="0" | 1430 | value_min="0" |
1431 | value_max="1" | 1431 | value_max="1" |
1432 | camera_elevation=".1" | 1432 | camera_elevation=".1" |
1433 | camera_distance=".5" | 1433 | camera_distance=".5" |
1434 | camera_angle="20"> | 1434 | camera_angle="20"> |
1435 | <param_morph /> | 1435 | <param_morph /> |
1436 | </param> | 1436 | </param> |
1437 | 1437 | ||
1438 | <param | 1438 | <param |
1439 | id="175" | 1439 | id="175" |
1440 | group="1" | 1440 | group="1" |
1441 | name="Hair_Back_Down" | 1441 | name="Hair_Back_Down" |
1442 | label="Back Hair Down" | 1442 | label="Back Hair Down" |
1443 | clothing_morph="true" | 1443 | clothing_morph="true" |
1444 | wearable="hair" | 1444 | wearable="hair" |
1445 | edit_group="hair_style" | 1445 | edit_group="hair_style" |
1446 | label_min="Back Hair" | 1446 | label_min="Back Hair" |
1447 | label_max="Back Hair Down" | 1447 | label_max="Back Hair Down" |
1448 | value_min="0" | 1448 | value_min="0" |
1449 | value_max="3" | 1449 | value_max="3" |
1450 | camera_elevation=".1" | 1450 | camera_elevation=".1" |
1451 | camera_distance=".5" | 1451 | camera_distance=".5" |
1452 | camera_angle="150"> | 1452 | camera_angle="150"> |
1453 | <param_morph /> | 1453 | <param_morph /> |
1454 | </param> | 1454 | </param> |
1455 | 1455 | ||
1456 | <param | 1456 | <param |
1457 | id="176" | 1457 | id="176" |
1458 | group="1" | 1458 | group="1" |
1459 | name="Hair_Back_Up" | 1459 | name="Hair_Back_Up" |
1460 | label="Back Hair Up" | 1460 | label="Back Hair Up" |
1461 | wearable="hair" | 1461 | wearable="hair" |
1462 | edit_group="hair_style" | 1462 | edit_group="hair_style" |
1463 | label_min="Back Hair" | 1463 | label_min="Back Hair" |
1464 | label_max="Back Hair Up" | 1464 | label_max="Back Hair Up" |
1465 | value_min="0" | 1465 | value_min="0" |
1466 | value_max="1" | 1466 | value_max="1" |
1467 | camera_elevation=".1" | 1467 | camera_elevation=".1" |
1468 | camera_distance=".5" | 1468 | camera_distance=".5" |
1469 | camera_angle="150"> | 1469 | camera_angle="150"> |
1470 | <param_morph /> | 1470 | <param_morph /> |
1471 | </param> | 1471 | </param> |
1472 | 1472 | ||
1473 | <param | 1473 | <param |
1474 | id="177" | 1474 | id="177" |
1475 | group="0" | 1475 | group="0" |
1476 | name="Hair_Rumpled" | 1476 | name="Hair_Rumpled" |
1477 | label="Rumpled Hair" | 1477 | label="Rumpled Hair" |
1478 | show_simple="true" | 1478 | show_simple="true" |
1479 | wearable="hair" | 1479 | wearable="hair" |
1480 | clothing_morph="true" | 1480 | clothing_morph="true" |
1481 | edit_group="hair_style" | 1481 | edit_group="hair_style" |
1482 | edit_group_order="14.5" | 1482 | edit_group_order="14.5" |
1483 | label_min="Smooth Hair" | 1483 | label_min="Smooth Hair" |
1484 | label_max="Rumpled Hair" | 1484 | label_max="Rumpled Hair" |
1485 | value_min="0" | 1485 | value_min="0" |
1486 | value_max="1" | 1486 | value_max="1" |
1487 | camera_elevation=".1" | 1487 | camera_elevation=".1" |
1488 | camera_distance=".5" | 1488 | camera_distance=".5" |
1489 | camera_angle="20"> | 1489 | camera_angle="20"> |
1490 | <param_morph /> | 1490 | <param_morph /> |
1491 | </param> | 1491 | </param> |
1492 | 1492 | ||
1493 | <param | 1493 | <param |
1494 | id="178" | 1494 | id="178" |
1495 | group="1" | 1495 | group="1" |
1496 | name="Hair_Swept_Back" | 1496 | name="Hair_Swept_Back" |
1497 | label="Swept Back Hair" | 1497 | label="Swept Back Hair" |
1498 | wearable="hair" | 1498 | wearable="hair" |
1499 | edit_group="hair_style" | 1499 | edit_group="hair_style" |
1500 | label_min="NotHair" | 1500 | label_min="NotHair" |
1501 | label_max="Swept Back" | 1501 | label_max="Swept Back" |
1502 | value_min="0" | 1502 | value_min="0" |
1503 | value_max="1" | 1503 | value_max="1" |
1504 | camera_elevation=".1" | 1504 | camera_elevation=".1" |
1505 | camera_distance=".5" | 1505 | camera_distance=".5" |
1506 | camera_angle="90"> | 1506 | camera_angle="90"> |
1507 | <param_morph /> | 1507 | <param_morph /> |
1508 | </param> | 1508 | </param> |
1509 | 1509 | ||
1510 | <param | 1510 | <param |
1511 | id="179" | 1511 | id="179" |
1512 | group="1" | 1512 | group="1" |
1513 | name="Hair_Swept_Forward" | 1513 | name="Hair_Swept_Forward" |
1514 | label="Swept Forward Hair" | 1514 | label="Swept Forward Hair" |
1515 | wearable="hair" | 1515 | wearable="hair" |
1516 | edit_group="hair_style" | 1516 | edit_group="hair_style" |
1517 | label_min="Hair" | 1517 | label_min="Hair" |
1518 | label_max="Swept Forward" | 1518 | label_max="Swept Forward" |
1519 | value_min="0" | 1519 | value_min="0" |
1520 | value_max="1" | 1520 | value_max="1" |
1521 | camera_elevation=".1" | 1521 | camera_elevation=".1" |
1522 | camera_distance=".5" | 1522 | camera_distance=".5" |
1523 | camera_angle="90"> | 1523 | camera_angle="90"> |
1524 | <param_morph /> | 1524 | <param_morph /> |
1525 | </param> | 1525 | </param> |
1526 | 1526 | ||
1527 | <param | 1527 | <param |
1528 | id="190" | 1528 | id="190" |
1529 | group="1" | 1529 | group="1" |
1530 | name="Hair_Tilt_Right" | 1530 | name="Hair_Tilt_Right" |
1531 | label="Hair Tilted Right" | 1531 | label="Hair Tilted Right" |
1532 | wearable="hair" | 1532 | wearable="hair" |
1533 | edit_group="hair_style" | 1533 | edit_group="hair_style" |
1534 | label_min="Hair" | 1534 | label_min="Hair" |
1535 | label_max="Tilt Right" | 1535 | label_max="Tilt Right" |
1536 | value_min="0" | 1536 | value_min="0" |
1537 | value_max="1" | 1537 | value_max="1" |
1538 | camera_elevation=".1" | 1538 | camera_elevation=".1" |
1539 | camera_distance=".5" | 1539 | camera_distance=".5" |
1540 | camera_angle="0"> | 1540 | camera_angle="0"> |
1541 | <param_morph /> | 1541 | <param_morph /> |
1542 | </param> | 1542 | </param> |
1543 | 1543 | ||
1544 | <param | 1544 | <param |
1545 | id="191" | 1545 | id="191" |
1546 | group="1" | 1546 | group="1" |
1547 | name="Hair_Tilt_Left" | 1547 | name="Hair_Tilt_Left" |
1548 | label="Hair Tilted Left" | 1548 | label="Hair Tilted Left" |
1549 | wearable="hair" | 1549 | wearable="hair" |
1550 | edit_group="hair_style" | 1550 | edit_group="hair_style" |
1551 | label_min="Hair" | 1551 | label_min="Hair" |
1552 | label_max="Tilt Left" | 1552 | label_max="Tilt Left" |
1553 | value_min="0" | 1553 | value_min="0" |
1554 | value_max="1" | 1554 | value_max="1" |
1555 | camera_elevation=".1" | 1555 | camera_elevation=".1" |
1556 | camera_distance=".5" | 1556 | camera_distance=".5" |
1557 | camera_angle="0"> | 1557 | camera_angle="0"> |
1558 | <param_morph /> | 1558 | <param_morph /> |
1559 | </param> | 1559 | </param> |
1560 | 1560 | ||
1561 | <param | 1561 | <param |
1562 | id="192" | 1562 | id="192" |
1563 | group="0" | 1563 | group="0" |
1564 | name="Bangs_Part_Middle" | 1564 | name="Bangs_Part_Middle" |
1565 | label="Part Bangs" | 1565 | label="Part Bangs" |
1566 | wearable="hair" | 1566 | wearable="hair" |
1567 | edit_group="hair_style" | 1567 | edit_group="hair_style" |
1568 | edit_group_order="20" | 1568 | edit_group_order="20" |
1569 | label_min="No Part" | 1569 | label_min="No Part" |
1570 | label_max="Part Bangs" | 1570 | label_max="Part Bangs" |
1571 | value_min="0" | 1571 | value_min="0" |
1572 | value_max="1" | 1572 | value_max="1" |
1573 | camera_elevation=".1" | 1573 | camera_elevation=".1" |
1574 | camera_distance=".5" | 1574 | camera_distance=".5" |
1575 | camera_angle="0"> | 1575 | camera_angle="0"> |
1576 | <param_morph /> | 1576 | <param_morph /> |
1577 | </param> | 1577 | </param> |
1578 | 1578 | ||
1579 | <param | 1579 | <param |
1580 | id="640" | 1580 | id="640" |
1581 | group="1" | 1581 | group="1" |
1582 | name="Hair_Egg_Head" | 1582 | name="Hair_Egg_Head" |
1583 | wearable="hair" | 1583 | wearable="hair" |
1584 | edit_group="hair_style" | 1584 | edit_group="hair_style" |
1585 | value_min="-1.3" | 1585 | value_min="-1.3" |
1586 | value_max="1"> | 1586 | value_max="1"> |
1587 | <param_morph /> | 1587 | <param_morph /> |
1588 | </param> | 1588 | </param> |
1589 | 1589 | ||
1590 | <param | 1590 | <param |
1591 | id="641" | 1591 | id="641" |
1592 | group="1" | 1592 | group="1" |
1593 | name="Hair_Squash_Stretch_Head" | 1593 | name="Hair_Squash_Stretch_Head" |
1594 | wearable="hair" | 1594 | wearable="hair" |
1595 | edit_group="hair_style" | 1595 | edit_group="hair_style" |
1596 | value_min="-.5" | 1596 | value_min="-.5" |
1597 | value_max="1"> | 1597 | value_max="1"> |
1598 | <param_morph /> | 1598 | <param_morph /> |
1599 | </param> | 1599 | </param> |
1600 | 1600 | ||
1601 | <param | 1601 | <param |
1602 | id="642" | 1602 | id="642" |
1603 | group="1" | 1603 | group="1" |
1604 | name="Hair_Square_Head" | 1604 | name="Hair_Square_Head" |
1605 | wearable="hair" | 1605 | wearable="hair" |
1606 | edit_group="hair_style" | 1606 | edit_group="hair_style" |
1607 | value_min="0" | 1607 | value_min="0" |
1608 | value_max="1"> | 1608 | value_max="1"> |
1609 | <param_morph /> | 1609 | <param_morph /> |
1610 | </param> | 1610 | </param> |
1611 | 1611 | ||
1612 | <param | 1612 | <param |
1613 | id="643" | 1613 | id="643" |
1614 | group="1" | 1614 | group="1" |
1615 | name="Hair_Round_Head" | 1615 | name="Hair_Round_Head" |
1616 | wearable="hair" | 1616 | wearable="hair" |
1617 | edit_group="hair_style" | 1617 | edit_group="hair_style" |
1618 | value_min="0" | 1618 | value_min="0" |
1619 | value_max="1"> | 1619 | value_max="1"> |
1620 | <param_morph /> | 1620 | <param_morph /> |
1621 | </param> | 1621 | </param> |
1622 | 1622 | ||
1623 | <param | 1623 | <param |
1624 | id="644" | 1624 | id="644" |
1625 | group="1" | 1625 | group="1" |
1626 | name="Hair_Forehead_Round" | 1626 | name="Hair_Forehead_Round" |
1627 | wearable="hair" | 1627 | wearable="hair" |
1628 | edit_group="hair_style" | 1628 | edit_group="hair_style" |
1629 | value_min="0" | 1629 | value_min="0" |
1630 | value_max="1"> | 1630 | value_max="1"> |
1631 | <param_morph /> | 1631 | <param_morph /> |
1632 | </param> | 1632 | </param> |
1633 | 1633 | ||
1634 | <param | 1634 | <param |
1635 | id="645" | 1635 | id="645" |
1636 | group="1" | 1636 | group="1" |
1637 | name="Hair_Forehead_Slant" | 1637 | name="Hair_Forehead_Slant" |
1638 | wearable="hair" | 1638 | wearable="hair" |
1639 | edit_group="hair_style" | 1639 | edit_group="hair_style" |
1640 | value_min="0" | 1640 | value_min="0" |
1641 | value_max="1"> | 1641 | value_max="1"> |
1642 | <param_morph /> | 1642 | <param_morph /> |
1643 | </param> | 1643 | </param> |
1644 | 1644 | ||
1645 | <param | 1645 | <param |
1646 | id="774" | 1646 | id="774" |
1647 | group="1" | 1647 | group="1" |
1648 | name="Shear_Head_Hair" | 1648 | name="Shear_Head_Hair" |
1649 | wearable="hair" | 1649 | wearable="hair" |
1650 | edit_group="hair_style" | 1650 | edit_group="hair_style" |
1651 | value_min="-2" | 1651 | value_min="-2" |
1652 | value_max="2"> | 1652 | value_max="2"> |
1653 | <param_morph /> | 1653 | <param_morph /> |
1654 | </param> | 1654 | </param> |
1655 | 1655 | ||
1656 | <param | 1656 | <param |
1657 | id="771" | 1657 | id="771" |
1658 | group="1" | 1658 | group="1" |
1659 | name="Elongate_Head_Hair" | 1659 | name="Elongate_Head_Hair" |
1660 | wearable="hair" | 1660 | wearable="hair" |
1661 | edit_group="hair_style" | 1661 | edit_group="hair_style" |
1662 | value_min="-1" | 1662 | value_min="-1" |
1663 | value_max="1"> | 1663 | value_max="1"> |
1664 | <param_morph /> | 1664 | <param_morph /> |
1665 | </param> | 1665 | </param> |
1666 | 1666 | ||
1667 | <param | 1667 | <param |
1668 | id="674" | 1668 | id="674" |
1669 | group="0" | 1669 | group="0" |
1670 | name="Hair_Shear_Back" | 1670 | name="Hair_Shear_Back" |
1671 | wearable="hair" | 1671 | wearable="hair" |
1672 | edit_group="hair_style" | 1672 | edit_group="hair_style" |
1673 | edit_group_order="12" | 1673 | edit_group_order="12" |
1674 | label="Shear Back" | 1674 | label="Shear Back" |
1675 | label_min="Full Back" | 1675 | label_min="Full Back" |
1676 | label_max="Sheared Back" | 1676 | label_max="Sheared Back" |
1677 | value_min="-1" | 1677 | value_min="-1" |
1678 | value_max="2" | 1678 | value_max="2" |
1679 | value_default="-0.3" | 1679 | value_default="-0.3" |
1680 | camera_elevation=".1" | 1680 | camera_elevation=".1" |
1681 | camera_distance=".5" | 1681 | camera_distance=".5" |
1682 | camera_angle="100"> | 1682 | camera_angle="100"> |
1683 | <param_morph /> | 1683 | <param_morph /> |
1684 | </param> | 1684 | </param> |
1685 | 1685 | ||
1686 | <param | 1686 | <param |
1687 | id="762" | 1687 | id="762" |
1688 | group="0" | 1688 | group="0" |
1689 | name="Hair_Shear_Front" | 1689 | name="Hair_Shear_Front" |
1690 | wearable="hair" | 1690 | wearable="hair" |
1691 | edit_group="hair_style" | 1691 | edit_group="hair_style" |
1692 | edit_group_order="11.8" | 1692 | edit_group_order="11.8" |
1693 | label="Shear Front" | 1693 | label="Shear Front" |
1694 | show_simple="true" | 1694 | show_simple="true" |
1695 | label_min="Full Front" | 1695 | label_min="Full Front" |
1696 | label_max="Sheared Front" | 1696 | label_max="Sheared Front" |
1697 | value_min="0" | 1697 | value_min="0" |
1698 | value_max="3" | 1698 | value_max="3" |
1699 | camera_elevation=".1" | 1699 | camera_elevation=".1" |
1700 | camera_distance=".5" | 1700 | camera_distance=".5" |
1701 | camera_angle="30"> | 1701 | camera_angle="30"> |
1702 | <param_morph /> | 1702 | <param_morph /> |
1703 | </param> | 1703 | </param> |
1704 | 1704 | ||
1705 | <param | 1705 | <param |
1706 | id="754" | 1706 | id="754" |
1707 | group="0" | 1707 | group="0" |
1708 | name="Hair_Taper_Back" | 1708 | name="Hair_Taper_Back" |
1709 | wearable="hair" | 1709 | wearable="hair" |
1710 | edit_group="hair_style" | 1710 | edit_group="hair_style" |
1711 | edit_group_order="14" | 1711 | edit_group_order="14" |
1712 | label="Taper Back" | 1712 | label="Taper Back" |
1713 | label_min="Wide Back" | 1713 | label_min="Wide Back" |
1714 | label_max="Narrow Back" | 1714 | label_max="Narrow Back" |
1715 | value_min="-1" | 1715 | value_min="-1" |
1716 | value_max="2" | 1716 | value_max="2" |
1717 | value_default="0" | 1717 | value_default="0" |
1718 | camera_elevation=".1" | 1718 | camera_elevation=".1" |
1719 | camera_distance=".5" | 1719 | camera_distance=".5" |
1720 | camera_angle="160"> | 1720 | camera_angle="160"> |
1721 | <param_morph /> | 1721 | <param_morph /> |
1722 | </param> | 1722 | </param> |
1723 | 1723 | ||
1724 | <param | 1724 | <param |
1725 | id="755" | 1725 | id="755" |
1726 | group="0" | 1726 | group="0" |
1727 | name="Hair_Taper_Front" | 1727 | name="Hair_Taper_Front" |
1728 | wearable="hair" | 1728 | wearable="hair" |
1729 | edit_group="hair_style" | 1729 | edit_group="hair_style" |
1730 | edit_group_order="13" | 1730 | edit_group_order="13" |
1731 | label="Taper Front" | 1731 | label="Taper Front" |
1732 | label_min="Wide Front" | 1732 | label_min="Wide Front" |
1733 | label_max="Narrow Front" | 1733 | label_max="Narrow Front" |
1734 | value_min="-1.5" | 1734 | value_min="-1.5" |
1735 | value_max="1.5" | 1735 | value_max="1.5" |
1736 | value_default="0.05" | 1736 | value_default="0.05" |
1737 | camera_elevation=".1" | 1737 | camera_elevation=".1" |
1738 | camera_distance=".5" | 1738 | camera_distance=".5" |
1739 | camera_angle="20"> | 1739 | camera_angle="20"> |
1740 | <param_morph /> | 1740 | <param_morph /> |
1741 | </param> | 1741 | </param> |
1742 | 1742 | ||
1743 | <param | 1743 | <param |
1744 | id="782" | 1744 | id="782" |
1745 | group="1" | 1745 | group="1" |
1746 | clothing_morph="true" | 1746 | clothing_morph="true" |
1747 | name="Hair_Pigtails_Short" | 1747 | name="Hair_Pigtails_Short" |
1748 | wearable="hair" | 1748 | wearable="hair" |
1749 | edit_group="hair_style" | 1749 | edit_group="hair_style" |
1750 | value_min="0" | 1750 | value_min="0" |
1751 | value_max="1"> | 1751 | value_max="1"> |
1752 | <param_morph /> | 1752 | <param_morph /> |
1753 | </param> | 1753 | </param> |
1754 | 1754 | ||
1755 | <param | 1755 | <param |
1756 | id="783" | 1756 | id="783" |
1757 | group="1" | 1757 | group="1" |
1758 | clothing_morph="true" | 1758 | clothing_morph="true" |
1759 | name="Hair_Pigtails_Med" | 1759 | name="Hair_Pigtails_Med" |
1760 | wearable="hair" | 1760 | wearable="hair" |
1761 | edit_group="hair_style" | 1761 | edit_group="hair_style" |
1762 | value_min="0" | 1762 | value_min="0" |
1763 | value_max="1"> | 1763 | value_max="1"> |
1764 | <param_morph /> | 1764 | <param_morph /> |
1765 | </param> | 1765 | </param> |
1766 | 1766 | ||
1767 | <param | 1767 | <param |
1768 | id="790" | 1768 | id="790" |
1769 | group="1" | 1769 | group="1" |
1770 | clothing_morph="true" | 1770 | clothing_morph="true" |
1771 | name="Hair_Pigtails_Medlong" | 1771 | name="Hair_Pigtails_Medlong" |
1772 | wearable="hair" | 1772 | wearable="hair" |
1773 | edit_group="hair_style" | 1773 | edit_group="hair_style" |
1774 | value_min="0" | 1774 | value_min="0" |
1775 | value_max="1"> | 1775 | value_max="1"> |
1776 | <param_morph /> | 1776 | <param_morph /> |
1777 | </param> | 1777 | </param> |
1778 | 1778 | ||
1779 | <param | 1779 | <param |
1780 | id="784" | 1780 | id="784" |
1781 | group="1" | 1781 | group="1" |
1782 | clothing_morph="true" | 1782 | clothing_morph="true" |
1783 | name="Hair_Pigtails_Long" | 1783 | name="Hair_Pigtails_Long" |
1784 | wearable="hair" | 1784 | wearable="hair" |
1785 | edit_group="hair_style" | 1785 | edit_group="hair_style" |
1786 | value_min="0" | 1786 | value_min="0" |
1787 | value_max="1"> | 1787 | value_max="1"> |
1788 | <param_morph /> | 1788 | <param_morph /> |
1789 | </param> | 1789 | </param> |
1790 | 1790 | ||
1791 | <param | 1791 | <param |
1792 | id="786" | 1792 | id="786" |
1793 | group="1" | 1793 | group="1" |
1794 | name="Hair_Ponytail_Short" | 1794 | name="Hair_Ponytail_Short" |
1795 | wearable="hair" | 1795 | wearable="hair" |
1796 | edit_group="hair_style" | 1796 | edit_group="hair_style" |
1797 | value_min="0" | 1797 | value_min="0" |
1798 | value_max="1"> | 1798 | value_max="1"> |
1799 | <param_morph /> | 1799 | <param_morph /> |
1800 | </param> | 1800 | </param> |
1801 | 1801 | ||
1802 | <param | 1802 | <param |
1803 | id="787" | 1803 | id="787" |
1804 | group="1" | 1804 | group="1" |
1805 | name="Hair_Ponytail_Med" | 1805 | name="Hair_Ponytail_Med" |
1806 | wearable="hair" | 1806 | wearable="hair" |
1807 | edit_group="hair_style" | 1807 | edit_group="hair_style" |
1808 | value_min="0" | 1808 | value_min="0" |
1809 | value_max="1"> | 1809 | value_max="1"> |
1810 | <param_morph /> | 1810 | <param_morph /> |
1811 | </param> | 1811 | </param> |
1812 | 1812 | ||
1813 | <param | 1813 | <param |
1814 | id="788" | 1814 | id="788" |
1815 | group="1" | 1815 | group="1" |
1816 | name="Hair_Ponytail_Long" | 1816 | name="Hair_Ponytail_Long" |
1817 | clothing_morph="true" | 1817 | clothing_morph="true" |
1818 | wearable="hair" | 1818 | wearable="hair" |
1819 | edit_group="hair_style" | 1819 | edit_group="hair_style" |
1820 | value_min="0" | 1820 | value_min="0" |
1821 | value_max="1"> | 1821 | value_max="1"> |
1822 | <param_morph /> | 1822 | <param_morph /> |
1823 | </param> | 1823 | </param> |
1824 | 1824 | ||
1825 | <!-- #end morph targets --> | 1825 | <!-- #end morph targets --> |
1826 | </mesh> | 1826 | </mesh> |
1827 | 1827 | ||
1828 | <mesh | 1828 | <mesh |
1829 | type="hairMesh" | 1829 | type="hairMesh" |
1830 | lod="1" | 1830 | lod="1" |
1831 | file_name="avatar_hair_1.llm" | 1831 | file_name="avatar_hair_1.llm" |
1832 | min_pixel_width="160" | 1832 | min_pixel_width="160" |
1833 | reference="avatar_hair.llm"> | 1833 | reference="avatar_hair.llm"> |
1834 | </mesh> | 1834 | </mesh> |
1835 | 1835 | ||
1836 | <mesh | 1836 | <mesh |
1837 | type="hairMesh" | 1837 | type="hairMesh" |
1838 | lod="2" | 1838 | lod="2" |
1839 | file_name="avatar_hair_2.llm" | 1839 | file_name="avatar_hair_2.llm" |
1840 | min_pixel_width="80" | 1840 | min_pixel_width="80" |
1841 | reference="avatar_hair.llm"> | 1841 | reference="avatar_hair.llm"> |
1842 | </mesh> | 1842 | </mesh> |
1843 | 1843 | ||
1844 | <mesh | 1844 | <mesh |
1845 | type="hairMesh" | 1845 | type="hairMesh" |
1846 | lod="3" | 1846 | lod="3" |
1847 | file_name="avatar_hair_3.llm" | 1847 | file_name="avatar_hair_3.llm" |
1848 | min_pixel_width="40" | 1848 | min_pixel_width="40" |
1849 | reference="avatar_hair.llm"> | 1849 | reference="avatar_hair.llm"> |
1850 | </mesh> | 1850 | </mesh> |
1851 | 1851 | ||
1852 | <mesh | 1852 | <mesh |
1853 | type="hairMesh" | 1853 | type="hairMesh" |
1854 | lod="4" | 1854 | lod="4" |
1855 | file_name="avatar_hair_4.llm" | 1855 | file_name="avatar_hair_4.llm" |
1856 | min_pixel_width="20" | 1856 | min_pixel_width="20" |
1857 | reference="avatar_hair.llm"> | 1857 | reference="avatar_hair.llm"> |
1858 | </mesh> | 1858 | </mesh> |
1859 | 1859 | ||
1860 | <mesh | 1860 | <mesh |
1861 | type="hairMesh" | 1861 | type="hairMesh" |
1862 | lod="5" | 1862 | lod="5" |
1863 | file_name="avatar_hair_5.llm" | 1863 | file_name="avatar_hair_5.llm" |
1864 | min_pixel_width="0" | 1864 | min_pixel_width="0" |
1865 | reference="avatar_hair.llm"> | 1865 | reference="avatar_hair.llm"> |
1866 | </mesh> | 1866 | </mesh> |
1867 | 1867 | ||
1868 | <mesh | 1868 | <mesh |
1869 | type="headMesh" | 1869 | type="headMesh" |
1870 | lod="0" | 1870 | lod="0" |
1871 | file_name="avatar_head.llm" | 1871 | file_name="avatar_head.llm" |
1872 | min_pixel_width="320"> | 1872 | min_pixel_width="320"> |
1873 | <!-- | 1873 | <!-- |
1874 | begin morph targets | 1874 | begin morph targets |
1875 | ############# | 1875 | ############# |
1876 | tweakable morphs | 1876 | tweakable morphs |
1877 | ############# | 1877 | ############# |
1878 | --> | 1878 | --> |
1879 | <param | 1879 | <param |
1880 | id="1" | 1880 | id="1" |
1881 | group="0" | 1881 | group="0" |
1882 | name="Big_Brow" | 1882 | name="Big_Brow" |
1883 | label="Brow Size" | 1883 | label="Brow Size" |
1884 | wearable="shape" | 1884 | wearable="shape" |
1885 | edit_group="shape_head" | 1885 | edit_group="shape_head" |
1886 | edit_group_order="7" | 1886 | edit_group_order="7" |
1887 | label_min="Small" | 1887 | label_min="Small" |
1888 | label_max="Large" | 1888 | label_max="Large" |
1889 | value_min="-.3" | 1889 | value_min="-.3" |
1890 | value_max="2" | 1890 | value_max="2" |
1891 | camera_elevation=".1" | 1891 | camera_elevation=".1" |
1892 | camera_distance=".4" | 1892 | camera_distance=".4" |
1893 | camera_angle="45"> | 1893 | camera_angle="45"> |
1894 | <param_morph /> | 1894 | <param_morph /> |
1895 | </param> | 1895 | </param> |
1896 | 1896 | ||
1897 | <param | 1897 | <param |
1898 | id="2" | 1898 | id="2" |
1899 | group="0" | 1899 | group="0" |
1900 | name="Nose_Big_Out" | 1900 | name="Nose_Big_Out" |
1901 | label="Nose Size" | 1901 | label="Nose Size" |
1902 | wearable="shape" | 1902 | wearable="shape" |
1903 | edit_group="shape_nose" | 1903 | edit_group="shape_nose" |
1904 | edit_group_order="1" | 1904 | edit_group_order="1" |
1905 | label_min="Small" | 1905 | label_min="Small" |
1906 | label_max="Large" | 1906 | label_max="Large" |
1907 | show_simple="true" | 1907 | show_simple="true" |
1908 | value_min="-0.8" | 1908 | value_min="-0.8" |
1909 | value_max="2.5" | 1909 | value_max="2.5" |
1910 | camera_elevation=".1" | 1910 | camera_elevation=".1" |
1911 | camera_distance=".35" | 1911 | camera_distance=".35" |
1912 | camera_angle="50"> | 1912 | camera_angle="50"> |
1913 | <param_morph /> | 1913 | <param_morph /> |
1914 | </param> | 1914 | </param> |
1915 | 1915 | ||
1916 | <param | 1916 | <param |
1917 | id="4" | 1917 | id="4" |
1918 | group="0" | 1918 | group="0" |
1919 | name="Broad_Nostrils" | 1919 | name="Broad_Nostrils" |
1920 | label="Nostril Width" | 1920 | label="Nostril Width" |
1921 | wearable="shape" | 1921 | wearable="shape" |
1922 | edit_group="shape_nose" | 1922 | edit_group="shape_nose" |
1923 | edit_group_order="3" | 1923 | edit_group_order="3" |
1924 | label_min="Narrow" | 1924 | label_min="Narrow" |
1925 | label_max="Broad" | 1925 | label_max="Broad" |
1926 | value_min="-.5" | 1926 | value_min="-.5" |
1927 | value_max="1" | 1927 | value_max="1" |
1928 | camera_elevation=".1" | 1928 | camera_elevation=".1" |
1929 | camera_distance=".3" | 1929 | camera_distance=".3" |
1930 | camera_angle="-20"> | 1930 | camera_angle="-20"> |
1931 | <param_morph /> | 1931 | <param_morph /> |
1932 | </param> | 1932 | </param> |
1933 | 1933 | ||
1934 | <param | 1934 | <param |
1935 | id="759" | 1935 | id="759" |
1936 | group="0" | 1936 | group="0" |
1937 | name="Low_Septum_Nose" | 1937 | name="Low_Septum_Nose" |
1938 | label="Nostril Division" | 1938 | label="Nostril Division" |
1939 | wearable="shape" | 1939 | wearable="shape" |
1940 | edit_group="shape_nose" | 1940 | edit_group="shape_nose" |
1941 | edit_group_order="3.5" | 1941 | edit_group_order="3.5" |
1942 | label_min="High" | 1942 | label_min="High" |
1943 | label_max="Low" | 1943 | label_max="Low" |
1944 | value_min="-1" | 1944 | value_min="-1" |
1945 | value_max="1.5" | 1945 | value_max="1.5" |
1946 | value_default="0.5" | 1946 | value_default="0.5" |
1947 | camera_elevation=".1" | 1947 | camera_elevation=".1" |
1948 | camera_distance=".3" | 1948 | camera_distance=".3" |
1949 | camera_angle="-20"> | 1949 | camera_angle="-20"> |
1950 | <param_morph /> | 1950 | <param_morph /> |
1951 | </param> | 1951 | </param> |
1952 | 1952 | ||
1953 | <param | 1953 | <param |
1954 | id="517" | 1954 | id="517" |
1955 | group="0" | 1955 | group="0" |
1956 | name="Wide_Nose" | 1956 | name="Wide_Nose" |
1957 | label="Nose Width" | 1957 | label="Nose Width" |
1958 | wearable="shape" | 1958 | wearable="shape" |
1959 | edit_group="shape_nose" | 1959 | edit_group="shape_nose" |
1960 | edit_group_order="2" | 1960 | edit_group_order="2" |
1961 | label_min="Narrow" | 1961 | label_min="Narrow" |
1962 | label_max="Wide" | 1962 | label_max="Wide" |
1963 | show_simple="true" | 1963 | show_simple="true" |
1964 | value_min="-.5" | 1964 | value_min="-.5" |
1965 | value_max="1" | 1965 | value_max="1" |
1966 | camera_elevation=".1" | 1966 | camera_elevation=".1" |
1967 | camera_distance=".3" | 1967 | camera_distance=".3" |
1968 | camera_angle="-20"> | 1968 | camera_angle="-20"> |
1969 | <param_morph /> | 1969 | <param_morph /> |
1970 | </param> | 1970 | </param> |
1971 | 1971 | ||
1972 | <param | 1972 | <param |
1973 | id="5" | 1973 | id="5" |
1974 | group="0" | 1974 | group="0" |
1975 | name="Cleft_Chin" | 1975 | name="Cleft_Chin" |
1976 | label="Chin Cleft" | 1976 | label="Chin Cleft" |
1977 | wearable="shape" | 1977 | wearable="shape" |
1978 | edit_group="shape_chin" | 1978 | edit_group="shape_chin" |
1979 | edit_group_order="6" | 1979 | edit_group_order="6" |
1980 | label_min="Round" | 1980 | label_min="Round" |
1981 | label_max="Cleft" | 1981 | label_max="Cleft" |
1982 | value_min="-.1" | 1982 | value_min="-.1" |
1983 | value_max="1" | 1983 | value_max="1" |
1984 | camera_elevation="0" | 1984 | camera_elevation="0" |
1985 | camera_distance=".28" | 1985 | camera_distance=".28" |
1986 | camera_angle="-20"> | 1986 | camera_angle="-20"> |
1987 | <param_morph /> | 1987 | <param_morph /> |
1988 | </param> | 1988 | </param> |
1989 | 1989 | ||
1990 | <param | 1990 | <param |
1991 | id="6" | 1991 | id="6" |
1992 | group="0" | 1992 | group="0" |
1993 | name="Bulbous_Nose_Tip" | 1993 | name="Bulbous_Nose_Tip" |
1994 | label="Nose Tip Shape" | 1994 | label="Nose Tip Shape" |
1995 | wearable="shape" | 1995 | wearable="shape" |
1996 | edit_group="shape_nose" | 1996 | edit_group="shape_nose" |
1997 | edit_group_order="8" | 1997 | edit_group_order="8" |
1998 | label_min="Pointy" | 1998 | label_min="Pointy" |
1999 | label_max="Bulbous" | 1999 | label_max="Bulbous" |
2000 | value_min="-.3" | 2000 | value_min="-.3" |
2001 | value_max="1" | 2001 | value_max="1" |
2002 | camera_elevation=".1" | 2002 | camera_elevation=".1" |
2003 | camera_distance=".35" | 2003 | camera_distance=".35" |
2004 | camera_angle="15"> | 2004 | camera_angle="15"> |
2005 | <param_morph /> | 2005 | <param_morph /> |
2006 | </param> | 2006 | </param> |
2007 | 2007 | ||
2008 | <param | 2008 | <param |
2009 | id="7" | 2009 | id="7" |
2010 | group="0" | 2010 | group="0" |
2011 | name="Weak_Chin" | 2011 | name="Weak_Chin" |
2012 | label="Chin Angle" | 2012 | label="Chin Angle" |
2013 | wearable="shape" | 2013 | wearable="shape" |
2014 | edit_group="shape_chin" | 2014 | edit_group="shape_chin" |
2015 | edit_group_order="1" | 2015 | edit_group_order="1" |
2016 | label_min="Chin Out" | 2016 | label_min="Chin Out" |
2017 | label_max="Chin In" | 2017 | label_max="Chin In" |
2018 | value_min="-.5" | 2018 | value_min="-.5" |
2019 | value_max=".5" | 2019 | value_max=".5" |
2020 | camera_elevation=".1" | 2020 | camera_elevation=".1" |
2021 | camera_distance=".4" | 2021 | camera_distance=".4" |
2022 | camera_angle="45"> | 2022 | camera_angle="45"> |
2023 | <param_morph /> | 2023 | <param_morph /> |
2024 | </param> | 2024 | </param> |
2025 | 2025 | ||
2026 | <param | 2026 | <param |
2027 | id="8" | 2027 | id="8" |
2028 | group="0" | 2028 | group="0" |
2029 | name="Double_Chin" | 2029 | name="Double_Chin" |
2030 | label="Chin-Neck" | 2030 | label="Chin-Neck" |
2031 | wearable="shape" | 2031 | wearable="shape" |
2032 | edit_group="shape_chin" | 2032 | edit_group="shape_chin" |
2033 | edit_group_order="8" | 2033 | edit_group_order="8" |
2034 | label_min="Tight Chin" | 2034 | label_min="Tight Chin" |
2035 | label_max="Double Chin" | 2035 | label_max="Double Chin" |
2036 | value_min="-.5" | 2036 | value_min="-.5" |
2037 | value_max="1.5" | 2037 | value_max="1.5" |
2038 | camera_elevation="-.1" | 2038 | camera_elevation="-.1" |
2039 | camera_distance=".3" | 2039 | camera_distance=".3" |
2040 | camera_angle="60"> | 2040 | camera_angle="60"> |
2041 | <param_morph /> | 2041 | <param_morph /> |
2042 | </param> | 2042 | </param> |
2043 | 2043 | ||
2044 | <param | 2044 | <param |
2045 | id="10" | 2045 | id="10" |
2046 | group="0" | 2046 | group="0" |
2047 | name="Sunken_Cheeks" | 2047 | name="Sunken_Cheeks" |
2048 | label="Lower Cheeks" | 2048 | label="Lower Cheeks" |
2049 | wearable="shape" | 2049 | wearable="shape" |
2050 | edit_group="shape_head" | 2050 | edit_group="shape_head" |
2051 | edit_group_order="9" | 2051 | edit_group_order="9" |
2052 | label_min="Well-Fed" | 2052 | label_min="Well-Fed" |
2053 | label_max="Sunken" | 2053 | label_max="Sunken" |
2054 | show_simple="true" | 2054 | show_simple="true" |
2055 | value_min="-1.5" | 2055 | value_min="-1.5" |
2056 | value_max="3" | 2056 | value_max="3" |
2057 | camera_elevation=".1" | 2057 | camera_elevation=".1" |
2058 | camera_distance=".4" | 2058 | camera_distance=".4" |
2059 | camera_angle="5"> | 2059 | camera_angle="5"> |
2060 | <param_morph /> | 2060 | <param_morph /> |
2061 | </param> | 2061 | </param> |
2062 | 2062 | ||
2063 | <param | 2063 | <param |
2064 | id="11" | 2064 | id="11" |
2065 | group="0" | 2065 | group="0" |
2066 | name="Noble_Nose_Bridge" | 2066 | name="Noble_Nose_Bridge" |
2067 | label="Upper Bridge" | 2067 | label="Upper Bridge" |
2068 | wearable="shape" | 2068 | wearable="shape" |
2069 | edit_group="shape_nose" | 2069 | edit_group="shape_nose" |
2070 | edit_group_order="5" | 2070 | edit_group_order="5" |
2071 | label_min="Low" | 2071 | label_min="Low" |
2072 | label_max="High" | 2072 | label_max="High" |
2073 | value_min="-.5" | 2073 | value_min="-.5" |
2074 | value_max="1.5" | 2074 | value_max="1.5" |
2075 | camera_elevation=".1" | 2075 | camera_elevation=".1" |
2076 | camera_distance=".35" | 2076 | camera_distance=".35" |
2077 | camera_angle="70"> | 2077 | camera_angle="70"> |
2078 | <param_morph /> | 2078 | <param_morph /> |
2079 | </param> | 2079 | </param> |
2080 | 2080 | ||
2081 | <param | 2081 | <param |
2082 | id="758" | 2082 | id="758" |
2083 | group="0" | 2083 | group="0" |
2084 | name="Lower_Bridge_Nose" | 2084 | name="Lower_Bridge_Nose" |
2085 | label="Lower Bridge" | 2085 | label="Lower Bridge" |
2086 | wearable="shape" | 2086 | wearable="shape" |
2087 | edit_group="shape_nose" | 2087 | edit_group="shape_nose" |
2088 | edit_group_order="5.5" | 2088 | edit_group_order="5.5" |
2089 | label_min="Low" | 2089 | label_min="Low" |
2090 | label_max="High" | 2090 | label_max="High" |
2091 | value_min="-1.5" | 2091 | value_min="-1.5" |
2092 | value_max="1.5" | 2092 | value_max="1.5" |
2093 | camera_elevation=".1" | 2093 | camera_elevation=".1" |
2094 | camera_distance=".35" | 2094 | camera_distance=".35" |
2095 | camera_angle="70"> | 2095 | camera_angle="70"> |
2096 | <param_morph /> | 2096 | <param_morph /> |
2097 | </param> | 2097 | </param> |
2098 | 2098 | ||
2099 | <param | 2099 | <param |
2100 | id="12" | 2100 | id="12" |
2101 | group="0" | 2101 | group="0" |
2102 | name="Jowls" | 2102 | name="Jowls" |
2103 | wearable="shape" | 2103 | wearable="shape" |
2104 | edit_group="shape_chin" | 2104 | edit_group="shape_chin" |
2105 | edit_group_order="5" | 2105 | edit_group_order="5" |
2106 | label_min="Less" | 2106 | label_min="Less" |
2107 | label_max="More" | 2107 | label_max="More" |
2108 | value_min="-.5" | 2108 | value_min="-.5" |
2109 | value_max="2.5" | 2109 | value_max="2.5" |
2110 | camera_elevation=".1" | 2110 | camera_elevation=".1" |
2111 | camera_distance=".4" | 2111 | camera_distance=".4" |
2112 | camera_angle="0"> | 2112 | camera_angle="0"> |
2113 | <param_morph /> | 2113 | <param_morph /> |
2114 | </param> | 2114 | </param> |
2115 | 2115 | ||
2116 | <param | 2116 | <param |
2117 | id="13" | 2117 | id="13" |
2118 | group="0" | 2118 | group="0" |
2119 | name="Cleft_Chin_Upper" | 2119 | name="Cleft_Chin_Upper" |
2120 | label="Upper Chin Cleft" | 2120 | label="Upper Chin Cleft" |
2121 | wearable="shape" | 2121 | wearable="shape" |
2122 | edit_group="shape_chin" | 2122 | edit_group="shape_chin" |
2123 | edit_group_order="7" | 2123 | edit_group_order="7" |
2124 | label_min="Round" | 2124 | label_min="Round" |
2125 | label_max="Cleft" | 2125 | label_max="Cleft" |
2126 | value_min="0" | 2126 | value_min="0" |
2127 | value_max="1.5" | 2127 | value_max="1.5" |
2128 | camera_elevation="0" | 2128 | camera_elevation="0" |
2129 | camera_distance=".28" | 2129 | camera_distance=".28" |
2130 | camera_angle="-20"> | 2130 | camera_angle="-20"> |
2131 | <param_morph /> | 2131 | <param_morph /> |
2132 | </param> | 2132 | </param> |
2133 | 2133 | ||
2134 | <param | 2134 | <param |
2135 | id="14" | 2135 | id="14" |
2136 | group="0" | 2136 | group="0" |
2137 | name="High_Cheek_Bones" | 2137 | name="High_Cheek_Bones" |
2138 | label="Cheek Bones" | 2138 | label="Cheek Bones" |
2139 | wearable="shape" | 2139 | wearable="shape" |
2140 | edit_group="shape_head" | 2140 | edit_group="shape_head" |
2141 | edit_group_order="10" | 2141 | edit_group_order="10" |
2142 | label_min="Low" | 2142 | label_min="Low" |
2143 | label_max="High" | 2143 | label_max="High" |
2144 | value_min="-.5" | 2144 | value_min="-.5" |
2145 | value_max="1" | 2145 | value_max="1" |
2146 | camera_elevation=".1" | 2146 | camera_elevation=".1" |
2147 | camera_distance=".3" | 2147 | camera_distance=".3" |
2148 | camera_angle="-20"> | 2148 | camera_angle="-20"> |
2149 | <param_morph /> | 2149 | <param_morph /> |
2150 | </param> | 2150 | </param> |
2151 | 2151 | ||
2152 | <param | 2152 | <param |
2153 | id="15" | 2153 | id="15" |
2154 | group="0" | 2154 | group="0" |
2155 | name="Ears_Out" | 2155 | name="Ears_Out" |
2156 | label="Ear Angle" | 2156 | label="Ear Angle" |
2157 | wearable="shape" | 2157 | wearable="shape" |
2158 | edit_group="shape_ears" | 2158 | edit_group="shape_ears" |
2159 | edit_group_order="2" | 2159 | edit_group_order="2" |
2160 | label_min="In" | 2160 | label_min="In" |
2161 | label_max="Out" | 2161 | label_max="Out" |
2162 | value_min="-.5" | 2162 | value_min="-.5" |
2163 | value_max="1.5" | 2163 | value_max="1.5" |
2164 | camera_elevation=".1" | 2164 | camera_elevation=".1" |
2165 | camera_distance=".3" | 2165 | camera_distance=".3" |
2166 | camera_angle="-20"> | 2166 | camera_angle="-20"> |
2167 | <param_morph /> | 2167 | <param_morph /> |
2168 | </param> | 2168 | </param> |
2169 | 2169 | ||
2170 | <!--Pointy eyebrows became a driver/driven param with new max value for backwards compatibility between 1.0 and 1.1--> | 2170 | <!--Pointy eyebrows became a driver/driven param with new max value for backwards compatibility between 1.0 and 1.1--> |
2171 | <param | 2171 | <param |
2172 | id="870" | 2172 | id="870" |
2173 | group="1" | 2173 | group="1" |
2174 | name="Pointy_Eyebrows" | 2174 | name="Pointy_Eyebrows" |
2175 | label="Eyebrow Points" | 2175 | label="Eyebrow Points" |
2176 | wearable="hair" | 2176 | wearable="hair" |
2177 | edit_group="hair_eyebrows" | 2177 | edit_group="hair_eyebrows" |
2178 | edit_group_order="4" | 2178 | edit_group_order="4" |
2179 | label_min="Smooth" | 2179 | label_min="Smooth" |
2180 | label_max="Pointy" | 2180 | label_max="Pointy" |
2181 | value_min="-.5" | 2181 | value_min="-.5" |
2182 | value_max="1" | 2182 | value_max="1" |
2183 | camera_elevation=".1" | 2183 | camera_elevation=".1" |
2184 | camera_distance=".3"> | 2184 | camera_distance=".3"> |
2185 | <param_morph /> | 2185 | <param_morph /> |
2186 | </param> | 2186 | </param> |
2187 | 2187 | ||
2188 | <param | 2188 | <param |
2189 | id="17" | 2189 | id="17" |
2190 | group="0" | 2190 | group="0" |
2191 | name="Square_Jaw" | 2191 | name="Square_Jaw" |
2192 | label="Jaw Shape" | 2192 | label="Jaw Shape" |
2193 | wearable="shape" | 2193 | wearable="shape" |
2194 | edit_group="shape_chin" | 2194 | edit_group="shape_chin" |
2195 | edit_group_order="2" | 2195 | edit_group_order="2" |
2196 | label_min="Pointy" | 2196 | label_min="Pointy" |
2197 | label_max="Square" | 2197 | label_max="Square" |
2198 | value_min="-.5" | 2198 | value_min="-.5" |
2199 | value_max="1" | 2199 | value_max="1" |
2200 | camera_distance=".3" | 2200 | camera_distance=".3" |
2201 | camera_elevation=".04" | 2201 | camera_elevation=".04" |
2202 | camera_angle="-20"> | 2202 | camera_angle="-20"> |
2203 | <param_morph /> | 2203 | <param_morph /> |
2204 | </param> | 2204 | </param> |
2205 | 2205 | ||
2206 | <param | 2206 | <param |
2207 | id="18" | 2207 | id="18" |
2208 | group="0" | 2208 | group="0" |
2209 | name="Puffy_Upper_Cheeks" | 2209 | name="Puffy_Upper_Cheeks" |
2210 | label="Upper Cheeks" | 2210 | label="Upper Cheeks" |
2211 | wearable="shape" | 2211 | wearable="shape" |
2212 | edit_group="shape_head" | 2212 | edit_group="shape_head" |
2213 | edit_group_order="8" | 2213 | edit_group_order="8" |
2214 | label_min="Thin" | 2214 | label_min="Thin" |
2215 | label_max="Puffy" | 2215 | label_max="Puffy" |
2216 | value_min="-1.5" | 2216 | value_min="-1.5" |
2217 | value_max="2.5" | 2217 | value_max="2.5" |
2218 | camera_elevation=".1" | 2218 | camera_elevation=".1" |
2219 | camera_distance=".3" | 2219 | camera_distance=".3" |
2220 | camera_angle="-20"> | 2220 | camera_angle="-20"> |
2221 | <param_morph /> | 2221 | <param_morph /> |
2222 | </param> | 2222 | </param> |
2223 | 2223 | ||
2224 | <param | 2224 | <param |
2225 | id="19" | 2225 | id="19" |
2226 | group="0" | 2226 | group="0" |
2227 | name="Upturned_Nose_Tip" | 2227 | name="Upturned_Nose_Tip" |
2228 | label="Nose Tip Angle" | 2228 | label="Nose Tip Angle" |
2229 | wearable="shape" | 2229 | wearable="shape" |
2230 | edit_group="shape_nose" | 2230 | edit_group="shape_nose" |
2231 | edit_group_order="7" | 2231 | edit_group_order="7" |
2232 | label_min="Downturned" | 2232 | label_min="Downturned" |
2233 | label_max="Upturned" | 2233 | label_max="Upturned" |
2234 | value_min="-1.5" | 2234 | value_min="-1.5" |
2235 | value_max="1" | 2235 | value_max="1" |
2236 | camera_elevation=".1" | 2236 | camera_elevation=".1" |
2237 | camera_distance=".35" | 2237 | camera_distance=".35" |
2238 | camera_angle="15"> | 2238 | camera_angle="15"> |
2239 | <param_morph /> | 2239 | <param_morph /> |
2240 | </param> | 2240 | </param> |
2241 | 2241 | ||
2242 | <param | 2242 | <param |
2243 | id="20" | 2243 | id="20" |
2244 | group="0" | 2244 | group="0" |
2245 | name="Bulbous_Nose" | 2245 | name="Bulbous_Nose" |
2246 | label="Nose Thickness" | 2246 | label="Nose Thickness" |
2247 | wearable="shape" | 2247 | wearable="shape" |
2248 | edit_group="shape_nose" | 2248 | edit_group="shape_nose" |
2249 | edit_group_order="4" | 2249 | edit_group_order="4" |
2250 | label_min="Thin Nose" | 2250 | label_min="Thin Nose" |
2251 | label_max="Bulbous Nose" | 2251 | label_max="Bulbous Nose" |
2252 | show_simple="true" | 2252 | show_simple="true" |
2253 | value_min="-.5" | 2253 | value_min="-.5" |
2254 | value_max="1.5" | 2254 | value_max="1.5" |
2255 | camera_elevation=".1" | 2255 | camera_elevation=".1" |
2256 | camera_distance=".3"> | 2256 | camera_distance=".3"> |
2257 | <param_morph /> | 2257 | <param_morph /> |
2258 | </param> | 2258 | </param> |
2259 | 2259 | ||
2260 | <param | 2260 | <param |
2261 | id="21" | 2261 | id="21" |
2262 | group="0" | 2262 | group="0" |
2263 | name="Upper_Eyelid_Fold" | 2263 | name="Upper_Eyelid_Fold" |
2264 | label="Upper Eyelid Fold" | 2264 | label="Upper Eyelid Fold" |
2265 | wearable="shape" | 2265 | wearable="shape" |
2266 | edit_group="shape_eyes" | 2266 | edit_group="shape_eyes" |
2267 | edit_group_order="5" | 2267 | edit_group_order="5" |
2268 | label_min="Uncreased" | 2268 | label_min="Uncreased" |
2269 | label_max="Creased" | 2269 | label_max="Creased" |
2270 | value_min="-0.2" | 2270 | value_min="-0.2" |
2271 | value_max="1.3" | 2271 | value_max="1.3" |
2272 | camera_elevation=".1" | 2272 | camera_elevation=".1" |
2273 | camera_distance=".35"> | 2273 | camera_distance=".35"> |
2274 | <param_morph /> | 2274 | <param_morph /> |
2275 | </param> | 2275 | </param> |
2276 | 2276 | ||
2277 | <param | 2277 | <param |
2278 | id="22" | 2278 | id="22" |
2279 | group="0" | 2279 | group="0" |
2280 | name="Attached_Earlobes" | 2280 | name="Attached_Earlobes" |
2281 | label="Attached Earlobes" | 2281 | label="Attached Earlobes" |
2282 | wearable="shape" | 2282 | wearable="shape" |
2283 | edit_group="shape_ears" | 2283 | edit_group="shape_ears" |
2284 | edit_group_order="3" | 2284 | edit_group_order="3" |
2285 | label_min="Unattached" | 2285 | label_min="Unattached" |
2286 | label_max="Attached" | 2286 | label_max="Attached" |
2287 | value_min="0" | 2287 | value_min="0" |
2288 | value_max="1" | 2288 | value_max="1" |
2289 | camera_elevation=".1" | 2289 | camera_elevation=".1" |
2290 | camera_distance=".3" | 2290 | camera_distance=".3" |
2291 | camera_angle="45"> | 2291 | camera_angle="45"> |
2292 | <param_morph /> | 2292 | <param_morph /> |
2293 | </param> | 2293 | </param> |
2294 | 2294 | ||
2295 | <param | 2295 | <param |
2296 | id="23" | 2296 | id="23" |
2297 | group="0" | 2297 | group="0" |
2298 | name="Baggy_Eyes" | 2298 | name="Baggy_Eyes" |
2299 | label="Eye Bags" | 2299 | label="Eye Bags" |
2300 | wearable="shape" | 2300 | wearable="shape" |
2301 | edit_group="shape_eyes" | 2301 | edit_group="shape_eyes" |
2302 | edit_group_order="6" | 2302 | edit_group_order="6" |
2303 | label_min="Smooth" | 2303 | label_min="Smooth" |
2304 | label_max="Baggy" | 2304 | label_max="Baggy" |
2305 | value_min="-.5" | 2305 | value_min="-.5" |
2306 | value_max="1.5" | 2306 | value_max="1.5" |
2307 | camera_elevation=".1" | 2307 | camera_elevation=".1" |
2308 | camera_distance=".35"> | 2308 | camera_distance=".35"> |
2309 | <param_morph /> | 2309 | <param_morph /> |
2310 | </param> | 2310 | </param> |
2311 | 2311 | ||
2312 | <param | 2312 | <param |
2313 | id="765" | 2313 | id="765" |
2314 | group="0" | 2314 | group="0" |
2315 | name="Puffy_Lower_Lids" | 2315 | name="Puffy_Lower_Lids" |
2316 | label="Puffy Eyelids" | 2316 | label="Puffy Eyelids" |
2317 | wearable="shape" | 2317 | wearable="shape" |
2318 | edit_group="shape_eyes" | 2318 | edit_group="shape_eyes" |
2319 | edit_group_order="6.1" | 2319 | edit_group_order="6.1" |
2320 | label_min="Flat" | 2320 | label_min="Flat" |
2321 | label_max="Puffy" | 2321 | label_max="Puffy" |
2322 | value_min="-.3" | 2322 | value_min="-.3" |
2323 | value_max="2.5" | 2323 | value_max="2.5" |
2324 | camera_elevation=".1" | 2324 | camera_elevation=".1" |
2325 | camera_distance=".35"> | 2325 | camera_distance=".35"> |
2326 | <param_morph /> | 2326 | <param_morph /> |
2327 | </param> | 2327 | </param> |
2328 | 2328 | ||
2329 | <param | 2329 | <param |
2330 | id="24" | 2330 | id="24" |
2331 | group="0" | 2331 | group="0" |
2332 | name="Wide_Eyes" | 2332 | name="Wide_Eyes" |
2333 | label="Eye Opening" | 2333 | label="Eye Opening" |
2334 | wearable="shape" | 2334 | wearable="shape" |
2335 | edit_group="shape_eyes" | 2335 | edit_group="shape_eyes" |
2336 | edit_group_order="1.1" | 2336 | edit_group_order="1.1" |
2337 | label_min="Narrow" | 2337 | label_min="Narrow" |
2338 | label_max="Wide" | 2338 | label_max="Wide" |
2339 | value_min="-1.5" | 2339 | value_min="-1.5" |
2340 | value_max="2" | 2340 | value_max="2" |
2341 | show_simple="true" | 2341 | show_simple="true" |
2342 | camera_elevation=".1" | 2342 | camera_elevation=".1" |
2343 | camera_distance=".35"> | 2343 | camera_distance=".35"> |
2344 | <param_morph /> | 2344 | <param_morph /> |
2345 | </param> | 2345 | </param> |
2346 | 2346 | ||
2347 | <param | 2347 | <param |
2348 | id="25" | 2348 | id="25" |
2349 | group="0" | 2349 | group="0" |
2350 | name="Wide_Lip_Cleft" | 2350 | name="Wide_Lip_Cleft" |
2351 | label="Lip Cleft" | 2351 | label="Lip Cleft" |
2352 | wearable="shape" | 2352 | wearable="shape" |
2353 | edit_group="shape_mouth" | 2353 | edit_group="shape_mouth" |
2354 | edit_group_order="6" | 2354 | edit_group_order="6" |
2355 | label_min="Narrow" | 2355 | label_min="Narrow" |
2356 | label_max="Wide" | 2356 | label_max="Wide" |
2357 | value_min="-.8" | 2357 | value_min="-.8" |
2358 | value_max="1.5" | 2358 | value_max="1.5" |
2359 | camera_elevation="0" | 2359 | camera_elevation="0" |
2360 | camera_distance=".28"> | 2360 | camera_distance=".28"> |
2361 | <param_morph /> | 2361 | <param_morph /> |
2362 | </param> | 2362 | </param> |
2363 | 2363 | ||
2364 | <param | 2364 | <param |
2365 | id="764" | 2365 | id="764" |
2366 | group="0" | 2366 | group="0" |
2367 | name="Lip_Cleft_Deep" | 2367 | name="Lip_Cleft_Deep" |
2368 | label="Lip Cleft Depth" | 2368 | label="Lip Cleft Depth" |
2369 | wearable="shape" | 2369 | wearable="shape" |
2370 | edit_group="shape_mouth" | 2370 | edit_group="shape_mouth" |
2371 | edit_group_order="5.8" | 2371 | edit_group_order="5.8" |
2372 | label_min="Shallow" | 2372 | label_min="Shallow" |
2373 | label_max="Deep" | 2373 | label_max="Deep" |
2374 | value_min="-.5" | 2374 | value_min="-.5" |
2375 | value_max="1.2" | 2375 | value_max="1.2" |
2376 | camera_elevation="0" | 2376 | camera_elevation="0" |
2377 | camera_distance=".28"> | 2377 | camera_distance=".28"> |
2378 | <param_morph /> | 2378 | <param_morph /> |
2379 | </param> | 2379 | </param> |
2380 | 2380 | ||
2381 | <param | 2381 | <param |
2382 | id="26" | 2382 | id="26" |
2383 | group="1" | 2383 | group="1" |
2384 | wearable="shape" | 2384 | wearable="shape" |
2385 | name="Lips_Thin" | 2385 | name="Lips_Thin" |
2386 | edit_group="driven" | 2386 | edit_group="driven" |
2387 | value_min="0" | 2387 | value_min="0" |
2388 | value_max=".7"> | 2388 | value_max=".7"> |
2389 | <param_morph /> | 2389 | <param_morph /> |
2390 | </param> | 2390 | </param> |
2391 | 2391 | ||
2392 | <param | 2392 | <param |
2393 | id="27" | 2393 | id="27" |
2394 | group="0" | 2394 | group="0" |
2395 | name="Wide_Nose_Bridge" | 2395 | name="Wide_Nose_Bridge" |
2396 | label="Bridge Width" | 2396 | label="Bridge Width" |
2397 | wearable="shape" | 2397 | wearable="shape" |
2398 | edit_group="shape_nose" | 2398 | edit_group="shape_nose" |
2399 | edit_group_order="6" | 2399 | edit_group_order="6" |
2400 | label_min="Narrow" | 2400 | label_min="Narrow" |
2401 | label_max="Wide" | 2401 | label_max="Wide" |
2402 | value_min="-1.3" | 2402 | value_min="-1.3" |
2403 | value_max="1.2" | 2403 | value_max="1.2" |
2404 | camera_elevation=".1" | 2404 | camera_elevation=".1" |
2405 | camera_distance=".3" | 2405 | camera_distance=".3" |
2406 | camera_angle="-20"> | 2406 | camera_angle="-20"> |
2407 | <param_morph /> | 2407 | <param_morph /> |
2408 | </param> | 2408 | </param> |
2409 | 2409 | ||
2410 | <param | 2410 | <param |
2411 | id="28" | 2411 | id="28" |
2412 | group="1" | 2412 | group="1" |
2413 | name="Lips_Fat" | 2413 | name="Lips_Fat" |
2414 | wearable="shape" | 2414 | wearable="shape" |
2415 | edit_group="driven" | 2415 | edit_group="driven" |
2416 | value_min="0" | 2416 | value_min="0" |
2417 | value_max="2"> | 2417 | value_max="2"> |
2418 | <param_morph /> | 2418 | <param_morph /> |
2419 | </param> | 2419 | </param> |
2420 | 2420 | ||
2421 | <param | 2421 | <param |
2422 | id="29" | 2422 | id="29" |
2423 | group="1" | 2423 | group="1" |
2424 | name="Wide_Upper_Lip" | 2424 | name="Wide_Upper_Lip" |
2425 | wearable="shape" | 2425 | wearable="shape" |
2426 | edit_group="driven" | 2426 | edit_group="driven" |
2427 | value_min="-.7" | 2427 | value_min="-.7" |
2428 | value_max="1.3"> | 2428 | value_max="1.3"> |
2429 | <param_morph /> | 2429 | <param_morph /> |
2430 | </param> | 2430 | </param> |
2431 | 2431 | ||
2432 | <param | 2432 | <param |
2433 | id="30" | 2433 | id="30" |
2434 | group="1" | 2434 | group="1" |
2435 | name="Wide_Lower_Lip" | 2435 | name="Wide_Lower_Lip" |
2436 | wearable="shape" | 2436 | wearable="shape" |
2437 | edit_group="driven" | 2437 | edit_group="driven" |
2438 | value_min="-.7" | 2438 | value_min="-.7" |
2439 | value_max="1.3"> | 2439 | value_max="1.3"> |
2440 | <param_morph /> | 2440 | <param_morph /> |
2441 | </param> | 2441 | </param> |
2442 | 2442 | ||
2443 | <!--Arced eyebrows became a driver/driven param with new max value for backwards compatibility between 1.0 and 1.1--> | 2443 | <!--Arced eyebrows became a driver/driven param with new max value for backwards compatibility between 1.0 and 1.1--> |
2444 | <param | 2444 | <param |
2445 | id="872" | 2445 | id="872" |
2446 | group="1" | 2446 | group="1" |
2447 | name="Arced_Eyebrows" | 2447 | name="Arced_Eyebrows" |
2448 | label="Eyebrow Arc" | 2448 | label="Eyebrow Arc" |
2449 | wearable="hair" | 2449 | wearable="hair" |
2450 | edit_group="hair_eyebrows" | 2450 | edit_group="hair_eyebrows" |
2451 | edit_group_order="3" | 2451 | edit_group_order="3" |
2452 | label_min="Flat" | 2452 | label_min="Flat" |
2453 | label_max="Arced" | 2453 | label_max="Arced" |
2454 | value_min="0" | 2454 | value_min="0" |
2455 | value_max="1"> | 2455 | value_max="1"> |
2456 | <param_morph /> | 2456 | <param_morph /> |
2457 | </param> | 2457 | </param> |
2458 | 2458 | ||
2459 | <!--Lower eyebrows became a driver/driven param with new min value for backwards compatibility between 1.0 and 1.1--> | 2459 | <!--Lower eyebrows became a driver/driven param with new min value for backwards compatibility between 1.0 and 1.1--> |
2460 | <param | 2460 | <param |
2461 | id="871" | 2461 | id="871" |
2462 | group="1" | 2462 | group="1" |
2463 | name="Lower_Eyebrows" | 2463 | name="Lower_Eyebrows" |
2464 | label="Eyebrow Height" | 2464 | label="Eyebrow Height" |
2465 | show_simple="true" | 2465 | show_simple="true" |
2466 | wearable="hair" | 2466 | wearable="hair" |
2467 | edit_group="hair_eyebrows" | 2467 | edit_group="hair_eyebrows" |
2468 | edit_group_order="2.5" | 2468 | edit_group_order="2.5" |
2469 | label_min="Higher" | 2469 | label_min="Higher" |
2470 | label_max="Lower" | 2470 | label_max="Lower" |
2471 | value_min="-2" | 2471 | value_min="-2" |
2472 | value_max="2"> | 2472 | value_max="2"> |
2473 | <param_morph /> | 2473 | <param_morph /> |
2474 | </param> | 2474 | </param> |
2475 | 2475 | ||
2476 | <param | 2476 | <param |
2477 | id="35" | 2477 | id="35" |
2478 | group="0" | 2478 | group="0" |
2479 | name="Big_Ears" | 2479 | name="Big_Ears" |
2480 | label="Ear Size" | 2480 | label="Ear Size" |
2481 | wearable="shape" | 2481 | wearable="shape" |
2482 | edit_group="shape_ears" | 2482 | edit_group="shape_ears" |
2483 | edit_group_order="1" | 2483 | edit_group_order="1" |
2484 | label_min="Small" | 2484 | label_min="Small" |
2485 | label_max="Large" | 2485 | label_max="Large" |
2486 | value_min="-1" | 2486 | value_min="-1" |
2487 | value_max="2" | 2487 | value_max="2" |
2488 | camera_elevation=".1" | 2488 | camera_elevation=".1" |
2489 | camera_distance=".3" | 2489 | camera_distance=".3" |
2490 | camera_angle="45"> | 2490 | camera_angle="45"> |
2491 | <param_morph /> | 2491 | <param_morph /> |
2492 | </param> | 2492 | </param> |
2493 | 2493 | ||
2494 | <param | 2494 | <param |
2495 | id="796" | 2495 | id="796" |
2496 | group="0" | 2496 | group="0" |
2497 | name="Pointy_Ears" | 2497 | name="Pointy_Ears" |
2498 | label="Ear Tips" | 2498 | label="Ear Tips" |
2499 | wearable="shape" | 2499 | wearable="shape" |
2500 | edit_group="shape_ears" | 2500 | edit_group="shape_ears" |
2501 | edit_group_order="4" | 2501 | edit_group_order="4" |
2502 | label_min="Flat" | 2502 | label_min="Flat" |
2503 | label_max="Pointy" | 2503 | label_max="Pointy" |
2504 | value_min="-.4" | 2504 | value_min="-.4" |
2505 | value_max="3" | 2505 | value_max="3" |
2506 | camera_elevation=".1" | 2506 | camera_elevation=".1" |
2507 | camera_distance=".3" | 2507 | camera_distance=".3" |
2508 | camera_angle="45"> | 2508 | camera_angle="45"> |
2509 | <param_morph /> | 2509 | <param_morph /> |
2510 | </param> | 2510 | </param> |
2511 | 2511 | ||
2512 | <param | 2512 | <param |
2513 | id="185" | 2513 | id="185" |
2514 | group="0" | 2514 | group="0" |
2515 | name="Deep_Chin" | 2515 | name="Deep_Chin" |
2516 | label="Chin Depth" | 2516 | label="Chin Depth" |
2517 | wearable="shape" | 2517 | wearable="shape" |
2518 | edit_group="shape_chin" | 2518 | edit_group="shape_chin" |
2519 | edit_group_order="3" | 2519 | edit_group_order="3" |
2520 | label_min="Shallow" | 2520 | label_min="Shallow" |
2521 | label_max="Deep" | 2521 | label_max="Deep" |
2522 | value_min="-1" | 2522 | value_min="-1" |
2523 | value_max="1" | 2523 | value_max="1" |
2524 | camera_elevation=".1" | 2524 | camera_elevation=".1" |
2525 | camera_distance=".4" | 2525 | camera_distance=".4" |
2526 | camera_angle="30"> | 2526 | camera_angle="30"> |
2527 | <param_morph /> | 2527 | <param_morph /> |
2528 | </param> | 2528 | </param> |
2529 | 2529 | ||
2530 | <param | 2530 | <param |
2531 | id="186" | 2531 | id="186" |
2532 | group="1" | 2532 | group="1" |
2533 | name="Egg_Head" | 2533 | name="Egg_Head" |
2534 | label="Egg Head" | 2534 | label="Egg Head" |
2535 | wearable="shape" | 2535 | wearable="shape" |
2536 | edit_group="shape_head" | 2536 | edit_group="shape_head" |
2537 | label_min="Chin Heavy" | 2537 | label_min="Chin Heavy" |
2538 | label_max="Forehead Heavy" | 2538 | label_max="Forehead Heavy" |
2539 | value_min="-1.3" | 2539 | value_min="-1.3" |
2540 | value_max="1" | 2540 | value_max="1" |
2541 | camera_elevation=".1" | 2541 | camera_elevation=".1" |
2542 | camera_distance=".5" | 2542 | camera_distance=".5" |
2543 | camera_angle="20"> | 2543 | camera_angle="20"> |
2544 | <param_morph /> | 2544 | <param_morph /> |
2545 | </param> | 2545 | </param> |
2546 | 2546 | ||
2547 | <param | 2547 | <param |
2548 | id="187" | 2548 | id="187" |
2549 | group="1" | 2549 | group="1" |
2550 | name="Squash_Stretch_Head" | 2550 | name="Squash_Stretch_Head" |
2551 | label="Squash/Stretch Head" | 2551 | label="Squash/Stretch Head" |
2552 | wearable="shape" | 2552 | wearable="shape" |
2553 | edit_group="shape_head" | 2553 | edit_group="shape_head" |
2554 | label_min="Squash Head" | 2554 | label_min="Squash Head" |
2555 | label_max="Stretch Head" | 2555 | label_max="Stretch Head" |
2556 | value_min="-.5" | 2556 | value_min="-.5" |
2557 | value_max="1" | 2557 | value_max="1" |
2558 | camera_elevation=".1" | 2558 | camera_elevation=".1" |
2559 | camera_distance=".5" | 2559 | camera_distance=".5" |
2560 | camera_angle="20"> | 2560 | camera_angle="20"> |
2561 | <param_morph> | 2561 | <param_morph> |
2562 | <volume_morph | 2562 | <volume_morph |
2563 | name="HEAD" | 2563 | name="HEAD" |
2564 | scale="-0.008 -0.006 0.015"/> | 2564 | scale="-0.008 -0.006 0.015"/> |
2565 | </param_morph> | 2565 | </param_morph> |
2566 | </param> | 2566 | </param> |
2567 | 2567 | ||
2568 | <param | 2568 | <param |
2569 | id="188" | 2569 | id="188" |
2570 | group="1" | 2570 | group="1" |
2571 | name="Square_Head" | 2571 | name="Square_Head" |
2572 | wearable="shape" | 2572 | wearable="shape" |
2573 | label_min="Less Square" | 2573 | label_min="Less Square" |
2574 | label_max="More Square" | 2574 | label_max="More Square" |
2575 | value_min="0" | 2575 | value_min="0" |
2576 | value_max=".7" | 2576 | value_max=".7" |
2577 | camera_elevation=".1" | 2577 | camera_elevation=".1" |
2578 | camera_distance=".5" | 2578 | camera_distance=".5" |
2579 | camera_angle="20"> | 2579 | camera_angle="20"> |
2580 | <param_morph /> | 2580 | <param_morph /> |
2581 | </param> | 2581 | </param> |
2582 | 2582 | ||
2583 | <param | 2583 | <param |
2584 | id="189" | 2584 | id="189" |
2585 | group="1" | 2585 | group="1" |
2586 | wearable="shape" | 2586 | wearable="shape" |
2587 | name="Round_Head" | 2587 | name="Round_Head" |
2588 | label_min="Less Round" | 2588 | label_min="Less Round" |
2589 | label_max="More Round" | 2589 | label_max="More Round" |
2590 | value_min="0" | 2590 | value_min="0" |
2591 | value_max="1" | 2591 | value_max="1" |
2592 | camera_elevation=".1" | 2592 | camera_elevation=".1" |
2593 | camera_distance=".5" | 2593 | camera_distance=".5" |
2594 | camera_angle="20"> | 2594 | camera_angle="20"> |
2595 | <param_morph /> | 2595 | <param_morph /> |
2596 | </param> | 2596 | </param> |
2597 | 2597 | ||
2598 | <param | 2598 | <param |
2599 | id="194" | 2599 | id="194" |
2600 | group="1" | 2600 | group="1" |
2601 | name="Eye_Spread" | 2601 | name="Eye_Spread" |
2602 | wearable="shape" | 2602 | wearable="shape" |
2603 | edit_group="shape_eyes" | 2603 | edit_group="shape_eyes" |
2604 | label_min="Eyes Together" | 2604 | label_min="Eyes Together" |
2605 | label_max="Eyes Spread" | 2605 | label_max="Eyes Spread" |
2606 | value_min="-2" | 2606 | value_min="-2" |
2607 | value_max="2"> | 2607 | value_max="2"> |
2608 | <param_morph /> | 2608 | <param_morph /> |
2609 | </param> | 2609 | </param> |
2610 | 2610 | ||
2611 | <param | 2611 | <param |
2612 | id="400" | 2612 | id="400" |
2613 | sex="male" | 2613 | sex="male" |
2614 | group="1" | 2614 | group="1" |
2615 | name="Displace_Hair_Facial" | 2615 | name="Displace_Hair_Facial" |
2616 | label="Hair Thickess" | 2616 | label="Hair Thickess" |
2617 | wearable="hair" | 2617 | wearable="hair" |
2618 | edit_group="hair_facial" | 2618 | edit_group="hair_facial" |
2619 | label_min="Cropped Hair" | 2619 | label_min="Cropped Hair" |
2620 | label_max="Bushy Hair" | 2620 | label_max="Bushy Hair" |
2621 | value_min="0" | 2621 | value_min="0" |
2622 | value_max="2"> | 2622 | value_max="2"> |
2623 | <param_morph /> | 2623 | <param_morph /> |
2624 | </param> | 2624 | </param> |
2625 | 2625 | ||
2626 | <param | 2626 | <param |
2627 | id="506" | 2627 | id="506" |
2628 | group="0" | 2628 | group="0" |
2629 | name="Mouth_Height" | 2629 | name="Mouth_Height" |
2630 | wearable="shape" | 2630 | wearable="shape" |
2631 | label="Mouth Position" | 2631 | label="Mouth Position" |
2632 | show_simple="true" | 2632 | show_simple="true" |
2633 | edit_group="shape_mouth" | 2633 | edit_group="shape_mouth" |
2634 | edit_group_order="4" | 2634 | edit_group_order="4" |
2635 | label_min="High" | 2635 | label_min="High" |
2636 | label_max="Low" | 2636 | label_max="Low" |
2637 | value_min="-2" | 2637 | value_min="-2" |
2638 | value_max="2" | 2638 | value_max="2" |
2639 | camera_distance=".3" | 2639 | camera_distance=".3" |
2640 | camera_elevation=".04"> | 2640 | camera_elevation=".04"> |
2641 | <param_morph /> | 2641 | <param_morph /> |
2642 | </param> | 2642 | </param> |
2643 | 2643 | ||
2644 | <param | 2644 | <param |
2645 | id="633" | 2645 | id="633" |
2646 | group="1" | 2646 | group="1" |
2647 | name="Fat_Head" | 2647 | name="Fat_Head" |
2648 | label="Fat Head" | 2648 | label="Fat Head" |
2649 | wearable="shape" | 2649 | wearable="shape" |
2650 | edit_group="shape_body" | 2650 | edit_group="shape_body" |
2651 | label_min="Skinny" | 2651 | label_min="Skinny" |
2652 | label_max="Fat" | 2652 | label_max="Fat" |
2653 | value_min="0" | 2653 | value_min="0" |
2654 | value_max="1" | 2654 | value_max="1" |
2655 | camera_elevation=".3"> | 2655 | camera_elevation=".3"> |
2656 | <param_morph/> | 2656 | <param_morph/> |
2657 | </param> | 2657 | </param> |
2658 | 2658 | ||
2659 | <param | 2659 | <param |
2660 | id="630" | 2660 | id="630" |
2661 | group="1" | 2661 | group="1" |
2662 | name="Forehead_Round" | 2662 | name="Forehead_Round" |
2663 | label="Round Forehead" | 2663 | label="Round Forehead" |
2664 | wearable="shape" | 2664 | wearable="shape" |
2665 | label_min="Less" | 2665 | label_min="Less" |
2666 | label_max="More" | 2666 | label_max="More" |
2667 | value_min="0" | 2667 | value_min="0" |
2668 | value_max="1"> | 2668 | value_max="1"> |
2669 | <param_morph /> | 2669 | <param_morph /> |
2670 | </param> | 2670 | </param> |
2671 | 2671 | ||
2672 | <param | 2672 | <param |
2673 | id="631" | 2673 | id="631" |
2674 | group="1" | 2674 | group="1" |
2675 | name="Forehead_Slant" | 2675 | name="Forehead_Slant" |
2676 | label="Slanted Forehead" | 2676 | label="Slanted Forehead" |
2677 | wearable="shape" | 2677 | wearable="shape" |
2678 | label_min="Less" | 2678 | label_min="Less" |
2679 | label_max="More" | 2679 | label_max="More" |
2680 | value_min="0" | 2680 | value_min="0" |
2681 | value_max="1"> | 2681 | value_max="1"> |
2682 | <param_morph /> | 2682 | <param_morph /> |
2683 | </param> | 2683 | </param> |
2684 | 2684 | ||
2685 | <param | 2685 | <param |
2686 | id="650" | 2686 | id="650" |
2687 | group="0" | 2687 | group="0" |
2688 | name="Eyelid_Corner_Up" | 2688 | name="Eyelid_Corner_Up" |
2689 | label="Outer Eye Corner" | 2689 | label="Outer Eye Corner" |
2690 | wearable="shape" | 2690 | wearable="shape" |
2691 | edit_group="shape_eyes" | 2691 | edit_group="shape_eyes" |
2692 | edit_group_order="4" | 2692 | edit_group_order="4" |
2693 | label_min="Corner Down" | 2693 | label_min="Corner Down" |
2694 | label_max="Corner Up" | 2694 | label_max="Corner Up" |
2695 | value_min="-1.3" | 2695 | value_min="-1.3" |
2696 | value_max="1.2" | 2696 | value_max="1.2" |
2697 | camera_elevation=".1" | 2697 | camera_elevation=".1" |
2698 | camera_distance=".30"> | 2698 | camera_distance=".30"> |
2699 | <param_morph /> | 2699 | <param_morph /> |
2700 | </param> | 2700 | </param> |
2701 | 2701 | ||
2702 | <param | 2702 | <param |
2703 | id="880" | 2703 | id="880" |
2704 | group="0" | 2704 | group="0" |
2705 | name="Eyelid_Inner_Corner_Up" | 2705 | name="Eyelid_Inner_Corner_Up" |
2706 | label="Inner Eye Corner" | 2706 | label="Inner Eye Corner" |
2707 | wearable="shape" | 2707 | wearable="shape" |
2708 | edit_group="shape_eyes" | 2708 | edit_group="shape_eyes" |
2709 | edit_group_order="4.2" | 2709 | edit_group_order="4.2" |
2710 | label_min="Corner Down" | 2710 | label_min="Corner Down" |
2711 | label_max="Corner Up" | 2711 | label_max="Corner Up" |
2712 | value_min="-1.3" | 2712 | value_min="-1.3" |
2713 | value_max="1.2" | 2713 | value_max="1.2" |
2714 | camera_elevation=".1" | 2714 | camera_elevation=".1" |
2715 | camera_distance=".30"> | 2715 | camera_distance=".30"> |
2716 | <param_morph /> | 2716 | <param_morph /> |
2717 | </param> | 2717 | </param> |
2718 | 2718 | ||
2719 | <param | 2719 | <param |
2720 | id="653" | 2720 | id="653" |
2721 | group="0" | 2721 | group="0" |
2722 | name="Tall_Lips" | 2722 | name="Tall_Lips" |
2723 | wearable="shape" | 2723 | wearable="shape" |
2724 | label="Lip Fullness" | 2724 | label="Lip Fullness" |
2725 | show_simple="true" | 2725 | show_simple="true" |
2726 | edit_group="shape_mouth" | 2726 | edit_group="shape_mouth" |
2727 | edit_group_order="2" | 2727 | edit_group_order="2" |
2728 | label_min="Less Full" | 2728 | label_min="Less Full" |
2729 | label_max="More Full" | 2729 | label_max="More Full" |
2730 | value_min="-1" | 2730 | value_min="-1" |
2731 | value_max="2" | 2731 | value_max="2" |
2732 | camera_distance=".3" | 2732 | camera_distance=".3" |
2733 | camera_elevation=".04"> | 2733 | camera_elevation=".04"> |
2734 | <param_morph /> | 2734 | <param_morph /> |
2735 | </param> | 2735 | </param> |
2736 | 2736 | ||
2737 | <param | 2737 | <param |
2738 | id="656" | 2738 | id="656" |
2739 | group="0" | 2739 | group="0" |
2740 | name="Crooked_Nose" | 2740 | name="Crooked_Nose" |
2741 | wearable="shape" | 2741 | wearable="shape" |
2742 | label="Crooked Nose" | 2742 | label="Crooked Nose" |
2743 | edit_group="shape_nose" | 2743 | edit_group="shape_nose" |
2744 | edit_group_order="9" | 2744 | edit_group_order="9" |
2745 | label_min="Nose Left" | 2745 | label_min="Nose Left" |
2746 | label_max="Nose Right" | 2746 | label_max="Nose Right" |
2747 | value_min="-2" | 2747 | value_min="-2" |
2748 | value_max="2" | 2748 | value_max="2" |
2749 | camera_distance=".3" | 2749 | camera_distance=".3" |
2750 | camera_elevation=".04" | 2750 | camera_elevation=".04" |
2751 | camera_angle="-20"> | 2751 | camera_angle="-20"> |
2752 | <param_morph /> | 2752 | <param_morph /> |
2753 | </param> | 2753 | </param> |
2754 | 2754 | ||
2755 | <param | 2755 | <param |
2756 | id="657" | 2756 | id="657" |
2757 | group="1" | 2757 | group="1" |
2758 | name="Smile_Mouth" | 2758 | name="Smile_Mouth" |
2759 | wearable="shape" | 2759 | wearable="shape" |
2760 | label="Mouth Corner" | 2760 | label="Mouth Corner" |
2761 | edit_group="shape_mouth" | 2761 | edit_group="shape_mouth" |
2762 | label_min="Corner Normal" | 2762 | label_min="Corner Normal" |
2763 | label_max="Corner Up" | 2763 | label_max="Corner Up" |
2764 | value_min="0" | 2764 | value_min="0" |
2765 | value_max="1.4" | 2765 | value_max="1.4" |
2766 | camera_distance=".3" | 2766 | camera_distance=".3" |
2767 | camera_elevation=".04"> | 2767 | camera_elevation=".04"> |
2768 | <param_morph /> | 2768 | <param_morph /> |
2769 | </param> | 2769 | </param> |
2770 | 2770 | ||
2771 | <param | 2771 | <param |
2772 | id="658" | 2772 | id="658" |
2773 | group="1" | 2773 | group="1" |
2774 | name="Frown_Mouth" | 2774 | name="Frown_Mouth" |
2775 | wearable="shape" | 2775 | wearable="shape" |
2776 | label="Mouth Corner" | 2776 | label="Mouth Corner" |
2777 | edit_group="shape_mouth" | 2777 | edit_group="shape_mouth" |
2778 | label_min="Corner Normal" | 2778 | label_min="Corner Normal" |
2779 | label_max="Corner Down" | 2779 | label_max="Corner Down" |
2780 | value_min="0" | 2780 | value_min="0" |
2781 | value_max="1.2" | 2781 | value_max="1.2" |
2782 | camera_distance=".3" | 2782 | camera_distance=".3" |
2783 | camera_elevation=".04"> | 2783 | camera_elevation=".04"> |
2784 | <param_morph /> | 2784 | <param_morph /> |
2785 | </param> | 2785 | </param> |
2786 | 2786 | ||
2787 | <param | 2787 | <param |
2788 | id="797" | 2788 | id="797" |
2789 | group="1" | 2789 | group="1" |
2790 | name="Fat_Upper_Lip" | 2790 | name="Fat_Upper_Lip" |
2791 | wearable="shape" | 2791 | wearable="shape" |
2792 | label="Fat Upper Lip" | 2792 | label="Fat Upper Lip" |
2793 | edit_group="shape_mouth" | 2793 | edit_group="shape_mouth" |
2794 | label_min="Normal Upper" | 2794 | label_min="Normal Upper" |
2795 | label_max="Fat Upper" | 2795 | label_max="Fat Upper" |
2796 | value_min="0" | 2796 | value_min="0" |
2797 | value_max="1.5" | 2797 | value_max="1.5" |
2798 | camera_distance=".3" | 2798 | camera_distance=".3" |
2799 | camera_elevation=".04"> | 2799 | camera_elevation=".04"> |
2800 | <param_morph /> | 2800 | <param_morph /> |
2801 | </param> | 2801 | </param> |
2802 | 2802 | ||
2803 | <param | 2803 | <param |
2804 | id="798" | 2804 | id="798" |
2805 | group="1" | 2805 | group="1" |
2806 | name="Fat_Lower_Lip" | 2806 | name="Fat_Lower_Lip" |
2807 | wearable="shape" | 2807 | wearable="shape" |
2808 | label="Fat Lower Lip" | 2808 | label="Fat Lower Lip" |
2809 | edit_group="shape_mouth" | 2809 | edit_group="shape_mouth" |
2810 | label_min="Normal Lower" | 2810 | label_min="Normal Lower" |
2811 | label_max="Fat Lower" | 2811 | label_max="Fat Lower" |
2812 | value_min="0" | 2812 | value_min="0" |
2813 | value_max="1.5" | 2813 | value_max="1.5" |
2814 | camera_distance=".3" | 2814 | camera_distance=".3" |
2815 | camera_elevation=".04"> | 2815 | camera_elevation=".04"> |
2816 | <param_morph /> | 2816 | <param_morph /> |
2817 | </param> | 2817 | </param> |
2818 | 2818 | ||
2819 | <param | 2819 | <param |
2820 | id="660" | 2820 | id="660" |
2821 | group="1" | 2821 | group="1" |
2822 | name="Shear_Head" | 2822 | name="Shear_Head" |
2823 | wearable="shape" | 2823 | wearable="shape" |
2824 | label="Shear Face" | 2824 | label="Shear Face" |
2825 | edit_group="shape_head" | 2825 | edit_group="shape_head" |
2826 | label_min="Shear Left" | 2826 | label_min="Shear Left" |
2827 | label_max="Shear Right" | 2827 | label_max="Shear Right" |
2828 | value_min="-2" | 2828 | value_min="-2" |
2829 | value_max="2" | 2829 | value_max="2" |
2830 | value_default="0" | 2830 | value_default="0" |
2831 | camera_distance=".5" | 2831 | camera_distance=".5" |
2832 | camera_elevation=".04"> | 2832 | camera_elevation=".04"> |
2833 | <param_morph /> | 2833 | <param_morph /> |
2834 | </param> | 2834 | </param> |
2835 | 2835 | ||
2836 | <param | 2836 | <param |
2837 | id="770" | 2837 | id="770" |
2838 | group="1" | 2838 | group="1" |
2839 | name="Elongate_Head" | 2839 | name="Elongate_Head" |
2840 | wearable="shape" | 2840 | wearable="shape" |
2841 | label="Shear Face" | 2841 | label="Shear Face" |
2842 | edit_group="shape_head" | 2842 | edit_group="shape_head" |
2843 | label_min="Flat Head" | 2843 | label_min="Flat Head" |
2844 | label_max="Long Head" | 2844 | label_max="Long Head" |
2845 | value_min="-1" | 2845 | value_min="-1" |
2846 | value_max="1" | 2846 | value_max="1" |
2847 | value_default="0" | 2847 | value_default="0" |
2848 | camera_distance=".5" | 2848 | camera_distance=".5" |
2849 | camera_elevation=".04"> | 2849 | camera_elevation=".04"> |
2850 | <param_morph> | 2850 | <param_morph> |
2851 | <volume_morph | 2851 | <volume_morph |
2852 | name="HEAD" | 2852 | name="HEAD" |
2853 | scale="0.02 0.0 0.0"/> | 2853 | scale="0.02 0.0 0.0"/> |
2854 | </param_morph> | 2854 | </param_morph> |
2855 | </param> | 2855 | </param> |
2856 | 2856 | ||
2857 | <param | 2857 | <param |
2858 | id="663" | 2858 | id="663" |
2859 | group="0" | 2859 | group="0" |
2860 | name="Shift_Mouth" | 2860 | name="Shift_Mouth" |
2861 | wearable="shape" | 2861 | wearable="shape" |
2862 | label="Shift Mouth" | 2862 | label="Shift Mouth" |
2863 | edit_group="shape_mouth" | 2863 | edit_group="shape_mouth" |
2864 | edit_group_order="7" | 2864 | edit_group_order="7" |
2865 | label_min="Shift Left" | 2865 | label_min="Shift Left" |
2866 | label_max="Shift Right" | 2866 | label_max="Shift Right" |
2867 | value_min="-2" | 2867 | value_min="-2" |
2868 | value_max="2" | 2868 | value_max="2" |
2869 | value_default="0" | 2869 | value_default="0" |
2870 | camera_distance=".35" | 2870 | camera_distance=".35" |
2871 | camera_elevation=".04" | 2871 | camera_elevation=".04" |
2872 | camera_angle="-20"> | 2872 | camera_angle="-20"> |
2873 | <param_morph /> | 2873 | <param_morph /> |
2874 | </param> | 2874 | </param> |
2875 | 2875 | ||
2876 | <param | 2876 | <param |
2877 | id="664" | 2877 | id="664" |
2878 | group="0" | 2878 | group="0" |
2879 | name="Pop_Eye" | 2879 | name="Pop_Eye" |
2880 | wearable="shape" | 2880 | wearable="shape" |
2881 | label="Eye Pop" | 2881 | label="Eye Pop" |
2882 | edit_group="shape_eyes" | 2882 | edit_group="shape_eyes" |
2883 | edit_group_order="8" | 2883 | edit_group_order="8" |
2884 | label_min="Pop Right Eye" | 2884 | label_min="Pop Right Eye" |
2885 | label_max="Pop Left Eye" | 2885 | label_max="Pop Left Eye" |
2886 | value_min="-1.3" | 2886 | value_min="-1.3" |
2887 | value_max="1.3" | 2887 | value_max="1.3" |
2888 | value_default="0" | 2888 | value_default="0" |
2889 | camera_elevation=".1" | 2889 | camera_elevation=".1" |
2890 | camera_distance=".35"> | 2890 | camera_distance=".35"> |
2891 | <param_morph /> | 2891 | <param_morph /> |
2892 | </param> | 2892 | </param> |
2893 | 2893 | ||
2894 | <param | 2894 | <param |
2895 | id="760" | 2895 | id="760" |
2896 | group="0" | 2896 | group="0" |
2897 | name="Jaw_Angle" | 2897 | name="Jaw_Angle" |
2898 | wearable="shape" | 2898 | wearable="shape" |
2899 | label="Jaw Angle" | 2899 | label="Jaw Angle" |
2900 | edit_group="shape_chin" | 2900 | edit_group="shape_chin" |
2901 | edit_group_order="3.5" | 2901 | edit_group_order="3.5" |
2902 | label_min="Low Jaw" | 2902 | label_min="Low Jaw" |
2903 | label_max="High Jaw" | 2903 | label_max="High Jaw" |
2904 | value_min="-1.2" | 2904 | value_min="-1.2" |
2905 | value_max="2" | 2905 | value_max="2" |
2906 | value_default="0" | 2906 | value_default="0" |
2907 | camera_distance=".5" | 2907 | camera_distance=".5" |
2908 | camera_elevation=".04" | 2908 | camera_elevation=".04" |
2909 | camera_angle="70"> | 2909 | camera_angle="70"> |
2910 | <param_morph /> | 2910 | <param_morph /> |
2911 | </param> | 2911 | </param> |
2912 | 2912 | ||
2913 | <param | 2913 | <param |
2914 | id="665" | 2914 | id="665" |
2915 | group="0" | 2915 | group="0" |
2916 | name="Jaw_Jut" | 2916 | name="Jaw_Jut" |
2917 | wearable="shape" | 2917 | wearable="shape" |
2918 | label="Jaw Jut" | 2918 | label="Jaw Jut" |
2919 | edit_group="shape_chin" | 2919 | edit_group="shape_chin" |
2920 | edit_group_order="4" | 2920 | edit_group_order="4" |
2921 | label_min="Overbite" | 2921 | label_min="Overbite" |
2922 | label_max="Underbite" | 2922 | label_max="Underbite" |
2923 | value_min="-2" | 2923 | value_min="-2" |
2924 | value_max="2" | 2924 | value_max="2" |
2925 | value_default="0" | 2925 | value_default="0" |
2926 | camera_distance=".5" | 2926 | camera_distance=".5" |
2927 | camera_elevation=".04" | 2927 | camera_elevation=".04" |
2928 | camera_angle="70"> | 2928 | camera_angle="70"> |
2929 | <param_morph /> | 2929 | <param_morph /> |
2930 | </param> | 2930 | </param> |
2931 | 2931 | ||
2932 | <param | 2932 | <param |
2933 | id="686" | 2933 | id="686" |
2934 | group="1" | 2934 | group="1" |
2935 | name="Head_Eyes_Big" | 2935 | name="Head_Eyes_Big" |
2936 | wearable="shape" | 2936 | wearable="shape" |
2937 | label="Eye Size" | 2937 | label="Eye Size" |
2938 | edit_group="shape_eyes" | 2938 | edit_group="shape_eyes" |
2939 | label_min="Beady Eyes" | 2939 | label_min="Beady Eyes" |
2940 | label_max="Anime Eyes" | 2940 | label_max="Anime Eyes" |
2941 | show_simple="true" | 2941 | show_simple="true" |
2942 | value_min="-2" | 2942 | value_min="-2" |
2943 | value_max="2" | 2943 | value_max="2" |
2944 | value_default="0"> | 2944 | value_default="0"> |
2945 | <param_morph /> | 2945 | <param_morph /> |
2946 | </param> | 2946 | </param> |
2947 | 2947 | ||
2948 | <param | 2948 | <param |
2949 | id="767" | 2949 | id="767" |
2950 | group="1" | 2950 | group="1" |
2951 | name="Bug_Eyed_Head" | 2951 | name="Bug_Eyed_Head" |
2952 | wearable="shape" | 2952 | wearable="shape" |
2953 | label="Eye Depth" | 2953 | label="Eye Depth" |
2954 | edit_group="shape_eyes" | 2954 | edit_group="shape_eyes" |
2955 | edit_group_order="4.5" | 2955 | edit_group_order="4.5" |
2956 | label_min="Sunken Eyes" | 2956 | label_min="Sunken Eyes" |
2957 | label_max="Bug Eyes" | 2957 | label_max="Bug Eyes" |
2958 | value_min="-2" | 2958 | value_min="-2" |
2959 | value_max="2" | 2959 | value_max="2" |
2960 | value_default="0"> | 2960 | value_default="0"> |
2961 | <param_morph /> | 2961 | <param_morph /> |
2962 | </param> | 2962 | </param> |
2963 | 2963 | ||
2964 | <!-- | 2964 | <!-- |
2965 | #Fat_Lips = Fat_Lips 34 1 0 1 | 2965 | #Fat_Lips = Fat_Lips 34 1 0 1 |
2966 | #Wide_Lips = Wide_Lips 35 1 0 1 | 2966 | #Wide_Lips = Wide_Lips 35 1 0 1 |
2967 | #Wide_Nose = Wide_Nose 36 1 0 1 | 2967 | #Wide_Nose = Wide_Nose 36 1 0 1 |
2968 | --> | 2968 | --> |
2969 | <!-- | 2969 | <!-- |
2970 | ############## | 2970 | ############## |
2971 | # Facial Expression morphs | 2971 | # Facial Expression morphs |
2972 | ############## | 2972 | ############## |
2973 | --> | 2973 | --> |
2974 | <param | 2974 | <param |
2975 | id="300" | 2975 | id="300" |
2976 | group="1" | 2976 | group="1" |
2977 | name="Express_Closed_Mouth" | 2977 | name="Express_Closed_Mouth" |
2978 | value_default="1" | 2978 | value_default="1" |
2979 | value_min="0" | 2979 | value_min="0" |
2980 | value_max="1"> | 2980 | value_max="1"> |
2981 | <param_morph /> | 2981 | <param_morph /> |
2982 | </param> | 2982 | </param> |
2983 | 2983 | ||
2984 | <param | 2984 | <param |
2985 | id="301" | 2985 | id="301" |
2986 | group="1" | 2986 | group="1" |
2987 | name="Express_Tongue_Out" | 2987 | name="Express_Tongue_Out" |
2988 | value_min="0" | 2988 | value_min="0" |
2989 | value_max="1"> | 2989 | value_max="1"> |
2990 | <param_morph /> | 2990 | <param_morph /> |
2991 | </param> | 2991 | </param> |
2992 | 2992 | ||
2993 | <param | 2993 | <param |
2994 | id="302" | 2994 | id="302" |
2995 | group="1" | 2995 | group="1" |
2996 | name="Express_Surprise_Emote" | 2996 | name="Express_Surprise_Emote" |
2997 | value_min="0" | 2997 | value_min="0" |
2998 | value_max="1"> | 2998 | value_max="1"> |
2999 | <param_morph /> | 2999 | <param_morph /> |
3000 | </param> | 3000 | </param> |
3001 | 3001 | ||
3002 | <param | 3002 | <param |
3003 | id="303" | 3003 | id="303" |
3004 | group="1" | 3004 | group="1" |
3005 | name="Express_Wink_Emote" | 3005 | name="Express_Wink_Emote" |
3006 | value_min="0" | 3006 | value_min="0" |
3007 | value_max="1"> | 3007 | value_max="1"> |
3008 | <param_morph /> | 3008 | <param_morph /> |
3009 | </param> | 3009 | </param> |
3010 | 3010 | ||
3011 | <param | 3011 | <param |
3012 | id="304" | 3012 | id="304" |
3013 | group="1" | 3013 | group="1" |
3014 | name="Express_Embarrassed_Emote" | 3014 | name="Express_Embarrassed_Emote" |
3015 | value_min="0" | 3015 | value_min="0" |
3016 | value_max="1"> | 3016 | value_max="1"> |
3017 | <param_morph /> | 3017 | <param_morph /> |
3018 | </param> | 3018 | </param> |
3019 | 3019 | ||
3020 | <param | 3020 | <param |
3021 | id="305" | 3021 | id="305" |
3022 | group="1" | 3022 | group="1" |
3023 | name="Express_Shrug_Emote" | 3023 | name="Express_Shrug_Emote" |
3024 | value_min="0" | 3024 | value_min="0" |
3025 | value_max="1"> | 3025 | value_max="1"> |
3026 | <param_morph /> | 3026 | <param_morph /> |
3027 | </param> | 3027 | </param> |
3028 | 3028 | ||
3029 | <param | 3029 | <param |
3030 | id="306" | 3030 | id="306" |
3031 | group="1" | 3031 | group="1" |
3032 | name="Express_Kiss" | 3032 | name="Express_Kiss" |
3033 | value_min="0" | 3033 | value_min="0" |
3034 | value_max="1"> | 3034 | value_max="1"> |
3035 | <param_morph /> | 3035 | <param_morph /> |
3036 | </param> | 3036 | </param> |
3037 | 3037 | ||
3038 | <param | 3038 | <param |
3039 | id="307" | 3039 | id="307" |
3040 | group="1" | 3040 | group="1" |
3041 | name="Express_Bored_Emote" | 3041 | name="Express_Bored_Emote" |
3042 | value_min="0" | 3042 | value_min="0" |
3043 | value_max="1"> | 3043 | value_max="1"> |
3044 | <param_morph /> | 3044 | <param_morph /> |
3045 | </param> | 3045 | </param> |
3046 | 3046 | ||
3047 | <param | 3047 | <param |
3048 | id="308" | 3048 | id="308" |
3049 | group="1" | 3049 | group="1" |
3050 | name="Express_Repulsed_Emote" | 3050 | name="Express_Repulsed_Emote" |
3051 | value_min="0" | 3051 | value_min="0" |
3052 | value_max="1"> | 3052 | value_max="1"> |
3053 | <param_morph /> | 3053 | <param_morph /> |
3054 | </param> | 3054 | </param> |
3055 | 3055 | ||
3056 | <param | 3056 | <param |
3057 | id="309" | 3057 | id="309" |
3058 | group="1" | 3058 | group="1" |
3059 | name="Express_Disdain" | 3059 | name="Express_Disdain" |
3060 | value_min="0" | 3060 | value_min="0" |
3061 | value_max="1"> | 3061 | value_max="1"> |
3062 | <param_morph /> | 3062 | <param_morph /> |
3063 | </param> | 3063 | </param> |
3064 | 3064 | ||
3065 | <param | 3065 | <param |
3066 | id="310" | 3066 | id="310" |
3067 | group="1" | 3067 | group="1" |
3068 | name="Express_Afraid_Emote" | 3068 | name="Express_Afraid_Emote" |
3069 | value_min="0" | 3069 | value_min="0" |
3070 | value_max="1"> | 3070 | value_max="1"> |
3071 | <param_morph /> | 3071 | <param_morph /> |
3072 | </param> | 3072 | </param> |
3073 | 3073 | ||
3074 | <param | 3074 | <param |
3075 | id="311" | 3075 | id="311" |
3076 | group="1" | 3076 | group="1" |
3077 | name="Express_Worry_Emote" | 3077 | name="Express_Worry_Emote" |
3078 | value_min="0" | 3078 | value_min="0" |
3079 | value_max="1"> | 3079 | value_max="1"> |
3080 | <param_morph /> | 3080 | <param_morph /> |
3081 | </param> | 3081 | </param> |
3082 | 3082 | ||
3083 | <param | 3083 | <param |
3084 | id="312" | 3084 | id="312" |
3085 | group="1" | 3085 | group="1" |
3086 | name="Express_Cry_Emote" | 3086 | name="Express_Cry_Emote" |
3087 | value_min="0" | 3087 | value_min="0" |
3088 | value_max="1"> | 3088 | value_max="1"> |
3089 | <param_morph /> | 3089 | <param_morph /> |
3090 | </param> | 3090 | </param> |
3091 | 3091 | ||
3092 | <param | 3092 | <param |
3093 | id="313" | 3093 | id="313" |
3094 | group="1" | 3094 | group="1" |
3095 | name="Express_Sad_Emote" | 3095 | name="Express_Sad_Emote" |
3096 | value_min="0" | 3096 | value_min="0" |
3097 | value_max="1"> | 3097 | value_max="1"> |
3098 | <param_morph /> | 3098 | <param_morph /> |
3099 | </param> | 3099 | </param> |
3100 | 3100 | ||
3101 | <param | 3101 | <param |
3102 | id="314" | 3102 | id="314" |
3103 | group="1" | 3103 | group="1" |
3104 | name="Express_Anger_Emote" | 3104 | name="Express_Anger_Emote" |
3105 | value_min="0" | 3105 | value_min="0" |
3106 | value_max="1"> | 3106 | value_max="1"> |
3107 | <param_morph /> | 3107 | <param_morph /> |
3108 | </param> | 3108 | </param> |
3109 | 3109 | ||
3110 | <param | 3110 | <param |
3111 | id="315" | 3111 | id="315" |
3112 | group="1" | 3112 | group="1" |
3113 | name="Express_Frown" | 3113 | name="Express_Frown" |
3114 | value_min="0" | 3114 | value_min="0" |
3115 | value_max="1"> | 3115 | value_max="1"> |
3116 | <param_morph /> | 3116 | <param_morph /> |
3117 | </param> | 3117 | </param> |
3118 | 3118 | ||
3119 | <param | 3119 | <param |
3120 | id="316" | 3120 | id="316" |
3121 | group="1" | 3121 | group="1" |
3122 | name="Express_Laugh_Emote" | 3122 | name="Express_Laugh_Emote" |
3123 | value_min="0" | 3123 | value_min="0" |
3124 | value_max="1"> | 3124 | value_max="1"> |
3125 | <param_morph /> | 3125 | <param_morph /> |
3126 | </param> | 3126 | </param> |
3127 | 3127 | ||
3128 | <param | 3128 | <param |
3129 | id="317" | 3129 | id="317" |
3130 | group="1" | 3130 | group="1" |
3131 | name="Express_Toothsmile" | 3131 | name="Express_Toothsmile" |
3132 | value_min="0" | 3132 | value_min="0" |
3133 | value_max="1"> | 3133 | value_max="1"> |
3134 | <param_morph /> | 3134 | <param_morph /> |
3135 | </param> | 3135 | </param> |
3136 | 3136 | ||
3137 | <param | 3137 | <param |
3138 | id="318" | 3138 | id="318" |
3139 | group="1" | 3139 | group="1" |
3140 | name="Express_Smile" | 3140 | name="Express_Smile" |
3141 | value_min="0" | 3141 | value_min="0" |
3142 | value_max="1"> | 3142 | value_max="1"> |
3143 | <param_morph /> | 3143 | <param_morph /> |
3144 | </param> | 3144 | </param> |
3145 | 3145 | ||
3146 | <param | 3146 | <param |
3147 | id="632" | 3147 | id="632" |
3148 | group="1" | 3148 | group="1" |
3149 | name="Express_Open_Mouth" | 3149 | name="Express_Open_Mouth" |
3150 | value_min="0" | 3150 | value_min="0" |
3151 | value_max="1"> | 3151 | value_max="1"> |
3152 | <param_morph /> | 3152 | <param_morph /> |
3153 | </param> | 3153 | </param> |
3154 | 3154 | ||
3155 | <!-- | 3155 | <!-- |
3156 | ############## | 3156 | ############## |
3157 | # Lipsync morphs | 3157 | # Lipsync morphs |
3158 | ############## | 3158 | ############## |
3159 | --> | 3159 | --> |
3160 | 3160 | ||
3161 | <param | 3161 | <param |
3162 | id="70" | 3162 | id="70" |
3163 | group="1" | 3163 | group="1" |
3164 | name="Lipsync_Aah" | 3164 | name="Lipsync_Aah" |
3165 | value_min="0" | 3165 | value_min="0" |
3166 | value_max="1"> | 3166 | value_max="1"> |
3167 | <param_morph /> | 3167 | <param_morph /> |
3168 | </param> | 3168 | </param> |
3169 | 3169 | ||
3170 | <param | 3170 | <param |
3171 | id="71" | 3171 | id="71" |
3172 | group="1" | 3172 | group="1" |
3173 | name="Lipsync_Ooh" | 3173 | name="Lipsync_Ooh" |
3174 | value_min="0" | 3174 | value_min="0" |
3175 | value_max="1"> | 3175 | value_max="1"> |
3176 | <param_morph /> | 3176 | <param_morph /> |
3177 | </param> | 3177 | </param> |
3178 | 3178 | ||
3179 | <!-- | 3179 | <!-- |
3180 | ############## | 3180 | ############## |
3181 | # other morphs (not user controlled) | 3181 | # other morphs (not user controlled) |
3182 | ############## | 3182 | ############## |
3183 | --> | 3183 | --> |
3184 | <param | 3184 | <param |
3185 | id="40" | 3185 | id="40" |
3186 | group="1" | 3186 | group="1" |
3187 | name="Male_Head" | 3187 | name="Male_Head" |
3188 | value_min="0" | 3188 | value_min="0" |
3189 | value_max="1"> | 3189 | value_max="1"> |
3190 | <param_morph /> | 3190 | <param_morph /> |
3191 | </param> | 3191 | </param> |
3192 | 3192 | ||
3193 | <param | 3193 | <param |
3194 | id="41" | 3194 | id="41" |
3195 | group="1" | 3195 | group="1" |
3196 | name="Old" | 3196 | name="Old" |
3197 | value_min="0" | 3197 | value_min="0" |
3198 | value_max="1"> | 3198 | value_max="1"> |
3199 | <param_morph /> | 3199 | <param_morph /> |
3200 | </param> | 3200 | </param> |
3201 | 3201 | ||
3202 | <!-- | 3202 | <!-- |
3203 | ############## | 3203 | ############## |
3204 | # animatable morphs | 3204 | # animatable morphs |
3205 | ############## | 3205 | ############## |
3206 | --> | 3206 | --> |
3207 | <param | 3207 | <param |
3208 | id="51" | 3208 | id="51" |
3209 | group="1" | 3209 | group="1" |
3210 | name="Furrowed_Eyebrows" | 3210 | name="Furrowed_Eyebrows" |
3211 | value_min="0" | 3211 | value_min="0" |
3212 | value_max="1"> | 3212 | value_max="1"> |
3213 | <param_morph /> | 3213 | <param_morph /> |
3214 | </param> | 3214 | </param> |
3215 | 3215 | ||
3216 | <param | 3216 | <param |
3217 | id="53" | 3217 | id="53" |
3218 | group="1" | 3218 | group="1" |
3219 | name="Surprised_Eyebrows" | 3219 | name="Surprised_Eyebrows" |
3220 | value_min="0" | 3220 | value_min="0" |
3221 | value_max="1"> | 3221 | value_max="1"> |
3222 | <param_morph /> | 3222 | <param_morph /> |
3223 | </param> | 3223 | </param> |
3224 | 3224 | ||
3225 | <param | 3225 | <param |
3226 | id="54" | 3226 | id="54" |
3227 | group="1" | 3227 | group="1" |
3228 | name="Worried_Eyebrows" | 3228 | name="Worried_Eyebrows" |
3229 | value_min="0" | 3229 | value_min="0" |
3230 | value_max="1"> | 3230 | value_max="1"> |
3231 | <param_morph /> | 3231 | <param_morph /> |
3232 | </param> | 3232 | </param> |
3233 | 3233 | ||
3234 | <param | 3234 | <param |
3235 | id="55" | 3235 | id="55" |
3236 | group="1" | 3236 | group="1" |
3237 | name="Frown_Mouth" | 3237 | name="Frown_Mouth" |
3238 | value_min="0" | 3238 | value_min="0" |
3239 | value_max="1"> | 3239 | value_max="1"> |
3240 | <param_morph /> | 3240 | <param_morph /> |
3241 | </param> | 3241 | </param> |
3242 | 3242 | ||
3243 | <param | 3243 | <param |
3244 | id="57" | 3244 | id="57" |
3245 | group="1" | 3245 | group="1" |
3246 | name="Smile_Mouth" | 3246 | name="Smile_Mouth" |
3247 | value_min="0" | 3247 | value_min="0" |
3248 | value_max="1"> | 3248 | value_max="1"> |
3249 | <param_morph /> | 3249 | <param_morph /> |
3250 | </param> | 3250 | </param> |
3251 | 3251 | ||
3252 | <param | 3252 | <param |
3253 | id="58" | 3253 | id="58" |
3254 | group="1" | 3254 | group="1" |
3255 | name="Blink_Left" | 3255 | name="Blink_Left" |
3256 | value_min="0" | 3256 | value_min="0" |
3257 | value_max="1"> | 3257 | value_max="1"> |
3258 | <param_morph /> | 3258 | <param_morph /> |
3259 | </param> | 3259 | </param> |
3260 | 3260 | ||
3261 | <param | 3261 | <param |
3262 | id="59" | 3262 | id="59" |
3263 | group="1" | 3263 | group="1" |
3264 | name="Blink_Right" | 3264 | name="Blink_Right" |
3265 | value_min="0" | 3265 | value_min="0" |
3266 | value_max="1"> | 3266 | value_max="1"> |
3267 | <param_morph /> | 3267 | <param_morph /> |
3268 | </param> | 3268 | </param> |
3269 | 3269 | ||
3270 | <!-- | 3270 | <!-- |
3271 | #end morph targets | 3271 | #end morph targets |
3272 | --> | 3272 | --> |
3273 | </mesh> | 3273 | </mesh> |
3274 | 3274 | ||
3275 | <mesh | 3275 | <mesh |
3276 | type="headMesh" | 3276 | type="headMesh" |
3277 | lod="1" | 3277 | lod="1" |
3278 | file_name="avatar_head_1.llm" | 3278 | file_name="avatar_head_1.llm" |
3279 | min_pixel_width="160" | 3279 | min_pixel_width="160" |
3280 | reference="avatar_head.llm"> | 3280 | reference="avatar_head.llm"> |
3281 | </mesh> | 3281 | </mesh> |
3282 | 3282 | ||
3283 | <mesh | 3283 | <mesh |
3284 | type="headMesh" | 3284 | type="headMesh" |
3285 | lod="2" | 3285 | lod="2" |
3286 | file_name="avatar_head_2.llm" | 3286 | file_name="avatar_head_2.llm" |
3287 | min_pixel_width="80" | 3287 | min_pixel_width="80" |
3288 | reference="avatar_head.llm"> | 3288 | reference="avatar_head.llm"> |
3289 | </mesh> | 3289 | </mesh> |
3290 | 3290 | ||
3291 | <mesh | 3291 | <mesh |
3292 | type="headMesh" | 3292 | type="headMesh" |
3293 | lod="3" | 3293 | lod="3" |
3294 | file_name="avatar_head_3.llm" | 3294 | file_name="avatar_head_3.llm" |
3295 | min_pixel_width="40" | 3295 | min_pixel_width="40" |
3296 | reference="avatar_head.llm"> | 3296 | reference="avatar_head.llm"> |
3297 | </mesh> | 3297 | </mesh> |
3298 | 3298 | ||
3299 | <mesh | 3299 | <mesh |
3300 | type="headMesh" | 3300 | type="headMesh" |
3301 | lod="4" | 3301 | lod="4" |
3302 | file_name="avatar_head_4.llm" | 3302 | file_name="avatar_head_4.llm" |
3303 | min_pixel_width="0" | 3303 | min_pixel_width="0" |
3304 | reference="avatar_head.llm"> | 3304 | reference="avatar_head.llm"> |
3305 | </mesh> | 3305 | </mesh> |
3306 | 3306 | ||
3307 | <mesh | 3307 | <mesh |
3308 | type="eyelashMesh" | 3308 | type="eyelashMesh" |
3309 | lod="0" | 3309 | lod="0" |
3310 | file_name="avatar_eyelashes.llm" | 3310 | file_name="avatar_eyelashes.llm" |
3311 | min_pixel_width="320"> | 3311 | min_pixel_width="320"> |
3312 | <param | 3312 | <param |
3313 | shared="1" | 3313 | shared="1" |
3314 | id="660" | 3314 | id="660" |
3315 | group="1" | 3315 | group="1" |
3316 | name="Shear_Head" | 3316 | name="Shear_Head" |
3317 | wearable="shape" | 3317 | wearable="shape" |
3318 | label="Shear Face" | 3318 | label="Shear Face" |
3319 | edit_group="shape_head" | 3319 | edit_group="shape_head" |
3320 | label_min="Shear Left" | 3320 | label_min="Shear Left" |
3321 | label_max="Shear Right" | 3321 | label_max="Shear Right" |
3322 | value_min="-2" | 3322 | value_min="-2" |
3323 | value_max="2" | 3323 | value_max="2" |
3324 | value_default="0" | 3324 | value_default="0" |
3325 | camera_distance=".5" | 3325 | camera_distance=".5" |
3326 | camera_elevation=".04"> | 3326 | camera_elevation=".04"> |
3327 | <param_morph /> | 3327 | <param_morph /> |
3328 | </param> | 3328 | </param> |
3329 | 3329 | ||
3330 | <param | 3330 | <param |
3331 | shared="1" | 3331 | shared="1" |
3332 | id="770" | 3332 | id="770" |
3333 | group="1" | 3333 | group="1" |
3334 | name="Elongate_Head" | 3334 | name="Elongate_Head" |
3335 | wearable="shape" | 3335 | wearable="shape" |
3336 | label="Shear Face" | 3336 | label="Shear Face" |
3337 | edit_group="shape_head" | 3337 | edit_group="shape_head" |
3338 | label_min="Flat Head" | 3338 | label_min="Flat Head" |
3339 | label_max="Long Head" | 3339 | label_max="Long Head" |
3340 | value_min="-1" | 3340 | value_min="-1" |
3341 | value_max="1" | 3341 | value_max="1" |
3342 | value_default="0" | 3342 | value_default="0" |
3343 | camera_distance=".5" | 3343 | camera_distance=".5" |
3344 | camera_elevation=".04"> | 3344 | camera_elevation=".04"> |
3345 | <param_morph /> | 3345 | <param_morph /> |
3346 | </param> | 3346 | </param> |
3347 | 3347 | ||
3348 | <param | 3348 | <param |
3349 | shared="1" | 3349 | shared="1" |
3350 | id="664" | 3350 | id="664" |
3351 | group="0" | 3351 | group="0" |
3352 | name="Pop_Eye" | 3352 | name="Pop_Eye" |
3353 | wearable="shape" | 3353 | wearable="shape" |
3354 | label="Eye Pop" | 3354 | label="Eye Pop" |
3355 | edit_group="shape_eyes" | 3355 | edit_group="shape_eyes" |
3356 | edit_group_order="8" | 3356 | edit_group_order="8" |
3357 | label_min="Pop Right Eye" | 3357 | label_min="Pop Right Eye" |
3358 | label_max="Pop Left Eye" | 3358 | label_max="Pop Left Eye" |
3359 | value_min="-2" | 3359 | value_min="-2" |
3360 | value_max="2" | 3360 | value_max="2" |
3361 | value_default="0" | 3361 | value_default="0" |
3362 | camera_distance=".5" | 3362 | camera_distance=".5" |
3363 | camera_elevation=".04" | 3363 | camera_elevation=".04" |
3364 | camera_angle="-20"> | 3364 | camera_angle="-20"> |
3365 | <param_morph /> | 3365 | <param_morph /> |
3366 | </param> | 3366 | </param> |
3367 | 3367 | ||
3368 | <param | 3368 | <param |
3369 | shared="1" | 3369 | shared="1" |
3370 | id="21" | 3370 | id="21" |
3371 | group="0" | 3371 | group="0" |
3372 | name="Upper_Eyelid_Fold" | 3372 | name="Upper_Eyelid_Fold" |
3373 | label="Upper Eyelid Fold" | 3373 | label="Upper Eyelid Fold" |
3374 | wearable="shape" | 3374 | wearable="shape" |
3375 | edit_group="shape_eyes" | 3375 | edit_group="shape_eyes" |
3376 | label_min="Uncreased" | 3376 | label_min="Uncreased" |
3377 | label_max="Creased" | 3377 | label_max="Creased" |
3378 | value_min="-0.2" | 3378 | value_min="-0.2" |
3379 | value_max="1.3" | 3379 | value_max="1.3" |
3380 | camera_elevation=".1" | 3380 | camera_elevation=".1" |
3381 | camera_distance=".35"> | 3381 | camera_distance=".35"> |
3382 | <param_morph /> | 3382 | <param_morph /> |
3383 | </param> | 3383 | </param> |
3384 | 3384 | ||
3385 | <param | 3385 | <param |
3386 | shared="1" | 3386 | shared="1" |
3387 | id="24" | 3387 | id="24" |
3388 | group="0" | 3388 | group="0" |
3389 | name="Wide_Eyes" | 3389 | name="Wide_Eyes" |
3390 | label="Eye Opening" | 3390 | label="Eye Opening" |
3391 | wearable="shape" | 3391 | wearable="shape" |
3392 | edit_group="shape_eyes" | 3392 | edit_group="shape_eyes" |
3393 | label_min="Narrow" | 3393 | label_min="Narrow" |
3394 | label_max="Wide" | 3394 | label_max="Wide" |
3395 | show_simple="true" | 3395 | show_simple="true" |
3396 | value_min="-1.5" | 3396 | value_min="-1.5" |
3397 | value_max="2" | 3397 | value_max="2" |
3398 | camera_elevation=".1" | 3398 | camera_elevation=".1" |
3399 | camera_distance=".3"> | 3399 | camera_distance=".3"> |
3400 | <param_morph /> | 3400 | <param_morph /> |
3401 | </param> | 3401 | </param> |
3402 | 3402 | ||
3403 | <param | 3403 | <param |
3404 | shared="1" | 3404 | shared="1" |
3405 | id="186" | 3405 | id="186" |
3406 | group="1" | 3406 | group="1" |
3407 | name="Egg_Head" | 3407 | name="Egg_Head" |
3408 | label="Egg Head" | 3408 | label="Egg Head" |
3409 | wearable="shape" | 3409 | wearable="shape" |
3410 | edit_group="shape_head" | 3410 | edit_group="shape_head" |
3411 | label_min="Chin Heavy" | 3411 | label_min="Chin Heavy" |
3412 | label_max="Forehead Heavy" | 3412 | label_max="Forehead Heavy" |
3413 | value_min="-1.3" | 3413 | value_min="-1.3" |
3414 | value_max="1" | 3414 | value_max="1" |
3415 | camera_elevation=".1" | 3415 | camera_elevation=".1" |
3416 | camera_distance=".5" | 3416 | camera_distance=".5" |
3417 | camera_angle="20"> | 3417 | camera_angle="20"> |
3418 | <param_morph /> | 3418 | <param_morph /> |
3419 | </param> | 3419 | </param> |
3420 | 3420 | ||
3421 | <param | 3421 | <param |
3422 | shared="1" | 3422 | shared="1" |
3423 | id="187" | 3423 | id="187" |
3424 | group="1" | 3424 | group="1" |
3425 | name="Squash_Stretch_Head" | 3425 | name="Squash_Stretch_Head" |
3426 | label="Squash/Stretch Head" | 3426 | label="Squash/Stretch Head" |
3427 | wearable="shape" | 3427 | wearable="shape" |
3428 | edit_group="shape_head" | 3428 | edit_group="shape_head" |
3429 | label_min="Squash Head" | 3429 | label_min="Squash Head" |
3430 | label_max="Stretch Head" | 3430 | label_max="Stretch Head" |
3431 | value_min="-.5" | 3431 | value_min="-.5" |
3432 | value_max="1" | 3432 | value_max="1" |
3433 | camera_elevation=".1" | 3433 | camera_elevation=".1" |
3434 | camera_distance=".5" | 3434 | camera_distance=".5" |
3435 | camera_angle="20"> | 3435 | camera_angle="20"> |
3436 | <param_morph /> | 3436 | <param_morph /> |
3437 | </param> | 3437 | </param> |
3438 | 3438 | ||
3439 | <param | 3439 | <param |
3440 | shared="1" | 3440 | shared="1" |
3441 | id="194" | 3441 | id="194" |
3442 | group="1" | 3442 | group="1" |
3443 | name="Eye_Spread" | 3443 | name="Eye_Spread" |
3444 | edit_group="shape_eyes" | 3444 | edit_group="shape_eyes" |
3445 | label_min="Eyes Together" | 3445 | label_min="Eyes Together" |
3446 | label_max="Eyes Spread" | 3446 | label_max="Eyes Spread" |
3447 | value_min="-2" | 3447 | value_min="-2" |
3448 | value_max="2"> | 3448 | value_max="2"> |
3449 | <param_morph /> | 3449 | <param_morph /> |
3450 | </param> | 3450 | </param> |
3451 | 3451 | ||
3452 | <param | 3452 | <param |
3453 | id="518" | 3453 | id="518" |
3454 | group="0" | 3454 | group="0" |
3455 | name="Eyelashes_Long" | 3455 | name="Eyelashes_Long" |
3456 | wearable="shape" | 3456 | wearable="shape" |
3457 | label="Eyelash Length" | 3457 | label="Eyelash Length" |
3458 | edit_group="shape_eyes" | 3458 | edit_group="shape_eyes" |
3459 | edit_group_order="7" | 3459 | edit_group_order="7" |
3460 | label_min="Short" | 3460 | label_min="Short" |
3461 | label_max="Long" | 3461 | label_max="Long" |
3462 | value_min="-.3" | 3462 | value_min="-.3" |
3463 | value_max="1.5" | 3463 | value_max="1.5" |
3464 | camera_elevation=".1" | 3464 | camera_elevation=".1" |
3465 | camera_distance=".30" | 3465 | camera_distance=".30" |
3466 | camera_angle="-20"> | 3466 | camera_angle="-20"> |
3467 | <param_morph /> | 3467 | <param_morph /> |
3468 | </param> | 3468 | </param> |
3469 | 3469 | ||
3470 | <param | 3470 | <param |
3471 | shared="1" | 3471 | shared="1" |
3472 | id="650" | 3472 | id="650" |
3473 | group="0" | 3473 | group="0" |
3474 | name="Eyelid_Corner_Up" | 3474 | name="Eyelid_Corner_Up" |
3475 | label="Outer Eye Corner" | 3475 | label="Outer Eye Corner" |
3476 | wearable="shape" | 3476 | wearable="shape" |
3477 | edit_group="shape_eyes" | 3477 | edit_group="shape_eyes" |
3478 | label_min="Corner Down" | 3478 | label_min="Corner Down" |
3479 | label_max="Corner Up" | 3479 | label_max="Corner Up" |
3480 | value_min="-1.3" | 3480 | value_min="-1.3" |
3481 | value_max="1.2" | 3481 | value_max="1.2" |
3482 | camera_elevation=".1" | 3482 | camera_elevation=".1" |
3483 | camera_distance=".3"> | 3483 | camera_distance=".3"> |
3484 | <param_morph /> | 3484 | <param_morph /> |
3485 | </param> | 3485 | </param> |
3486 | 3486 | ||
3487 | <param | 3487 | <param |
3488 | shared="1" | 3488 | shared="1" |
3489 | id="880" | 3489 | id="880" |
3490 | group="0" | 3490 | group="0" |
3491 | name="Eyelid_Inner_Corner_Up" | 3491 | name="Eyelid_Inner_Corner_Up" |
3492 | label="Inner Eye Corner" | 3492 | label="Inner Eye Corner" |
3493 | wearable="shape" | 3493 | wearable="shape" |
3494 | edit_group="shape_eyes" | 3494 | edit_group="shape_eyes" |
3495 | label_min="Corner Down" | 3495 | label_min="Corner Down" |
3496 | label_max="Corner Up" | 3496 | label_max="Corner Up" |
3497 | value_min="-1.3" | 3497 | value_min="-1.3" |
3498 | value_max="1.2" | 3498 | value_max="1.2" |
3499 | camera_elevation=".1" | 3499 | camera_elevation=".1" |
3500 | camera_distance=".3"> | 3500 | camera_distance=".3"> |
3501 | <param_morph /> | 3501 | <param_morph /> |
3502 | </param> | 3502 | </param> |
3503 | 3503 | ||
3504 | <param | 3504 | <param |
3505 | shared="1" | 3505 | shared="1" |
3506 | id="686" | 3506 | id="686" |
3507 | group="1" | 3507 | group="1" |
3508 | name="Head_Eyes_Big" | 3508 | name="Head_Eyes_Big" |
3509 | wearable="shape" | 3509 | wearable="shape" |
3510 | label="Eye Size" | 3510 | label="Eye Size" |
3511 | edit_group="shape_eyes" | 3511 | edit_group="shape_eyes" |
3512 | label_min="Beady Eyes" | 3512 | label_min="Beady Eyes" |
3513 | label_max="Anime Eyes" | 3513 | label_max="Anime Eyes" |
3514 | value_min="-2" | 3514 | value_min="-2" |
3515 | value_max="2" | 3515 | value_max="2" |
3516 | show_simple="true" | 3516 | show_simple="true" |
3517 | value_default="0"> | 3517 | value_default="0"> |
3518 | <param_morph /> | 3518 | <param_morph /> |
3519 | </param> | 3519 | </param> |
3520 | 3520 | ||
3521 | <param | 3521 | <param |
3522 | shared="1" | 3522 | shared="1" |
3523 | id="767" | 3523 | id="767" |
3524 | group="1" | 3524 | group="1" |
3525 | name="Bug_Eyed_Head" | 3525 | name="Bug_Eyed_Head" |
3526 | wearable="shape" | 3526 | wearable="shape" |
3527 | label="Eye Depth" | 3527 | label="Eye Depth" |
3528 | edit_group="shape_eyes" | 3528 | edit_group="shape_eyes" |
3529 | edit_group_order="4.5" | 3529 | edit_group_order="4.5" |
3530 | label_min="Sunken Eyes" | 3530 | label_min="Sunken Eyes" |
3531 | label_max="Bug Eyes" | 3531 | label_max="Bug Eyes" |
3532 | value_min="-2" | 3532 | value_min="-2" |
3533 | value_max="2" | 3533 | value_max="2" |
3534 | value_default="0"> | 3534 | value_default="0"> |
3535 | <param_morph /> | 3535 | <param_morph /> |
3536 | </param> | 3536 | </param> |
3537 | 3537 | ||
3538 | <!-- | 3538 | <!-- |
3539 | ############## | 3539 | ############## |
3540 | # Facial Expression morphs | 3540 | # Facial Expression morphs |
3541 | ############## | 3541 | ############## |
3542 | --> | 3542 | --> |
3543 | <param | 3543 | <param |
3544 | shared="1" | 3544 | shared="1" |
3545 | id="301" | 3545 | id="301" |
3546 | group="1" | 3546 | group="1" |
3547 | name="Express_Tongue_Out" | 3547 | name="Express_Tongue_Out" |
3548 | value_min="0" | 3548 | value_min="0" |
3549 | value_max="1"> | 3549 | value_max="1"> |
3550 | <param_morph /> | 3550 | <param_morph /> |
3551 | </param> | 3551 | </param> |
3552 | 3552 | ||
3553 | <param | 3553 | <param |
3554 | shared="1" | 3554 | shared="1" |
3555 | id="302" | 3555 | id="302" |
3556 | group="1" | 3556 | group="1" |
3557 | name="Express_Surprise_Emote" | 3557 | name="Express_Surprise_Emote" |
3558 | value_min="0" | 3558 | value_min="0" |
3559 | value_max="1"> | 3559 | value_max="1"> |
3560 | <param_morph /> | 3560 | <param_morph /> |
3561 | </param> | 3561 | </param> |
3562 | 3562 | ||
3563 | <param | 3563 | <param |
3564 | shared="1" | 3564 | shared="1" |
3565 | id="303" | 3565 | id="303" |
3566 | group="1" | 3566 | group="1" |
3567 | name="Express_Wink_Emote" | 3567 | name="Express_Wink_Emote" |
3568 | value_min="0" | 3568 | value_min="0" |
3569 | value_max="1"> | 3569 | value_max="1"> |
3570 | <param_morph /> | 3570 | <param_morph /> |
3571 | </param> | 3571 | </param> |
3572 | 3572 | ||
3573 | <param | 3573 | <param |
3574 | shared="1" | 3574 | shared="1" |
3575 | id="304" | 3575 | id="304" |
3576 | group="1" | 3576 | group="1" |
3577 | name="Express_Embarrassed_Emote" | 3577 | name="Express_Embarrassed_Emote" |
3578 | value_min="0" | 3578 | value_min="0" |
3579 | value_max="1"> | 3579 | value_max="1"> |
3580 | <param_morph /> | 3580 | <param_morph /> |
3581 | </param> | 3581 | </param> |
3582 | 3582 | ||
3583 | <param | 3583 | <param |
3584 | shared="1" | 3584 | shared="1" |
3585 | id="305" | 3585 | id="305" |
3586 | group="1" | 3586 | group="1" |
3587 | name="Express_Shrug_Emote" | 3587 | name="Express_Shrug_Emote" |
3588 | value_min="0" | 3588 | value_min="0" |
3589 | value_max="1"> | 3589 | value_max="1"> |
3590 | <param_morph /> | 3590 | <param_morph /> |
3591 | </param> | 3591 | </param> |
3592 | 3592 | ||
3593 | <param | 3593 | <param |
3594 | shared="1" | 3594 | shared="1" |
3595 | id="306" | 3595 | id="306" |
3596 | group="1" | 3596 | group="1" |
3597 | name="Express_Kiss" | 3597 | name="Express_Kiss" |
3598 | value_min="0" | 3598 | value_min="0" |
3599 | value_max="1"> | 3599 | value_max="1"> |
3600 | <param_morph /> | 3600 | <param_morph /> |
3601 | </param> | 3601 | </param> |
3602 | 3602 | ||
3603 | <param | 3603 | <param |
3604 | shared="1" | 3604 | shared="1" |
3605 | id="307" | 3605 | id="307" |
3606 | group="1" | 3606 | group="1" |
3607 | name="Express_Bored_Emote" | 3607 | name="Express_Bored_Emote" |
3608 | value_min="0" | 3608 | value_min="0" |
3609 | value_max="1"> | 3609 | value_max="1"> |
3610 | <param_morph /> | 3610 | <param_morph /> |
3611 | </param> | 3611 | </param> |
3612 | 3612 | ||
3613 | <param | 3613 | <param |
3614 | shared="1" | 3614 | shared="1" |
3615 | id="308" | 3615 | id="308" |
3616 | group="1" | 3616 | group="1" |
3617 | name="Express_Repulsed_Emote" | 3617 | name="Express_Repulsed_Emote" |
3618 | value_min="0" | 3618 | value_min="0" |
3619 | value_max="1"> | 3619 | value_max="1"> |
3620 | <param_morph /> | 3620 | <param_morph /> |
3621 | </param> | 3621 | </param> |
3622 | 3622 | ||
3623 | <param | 3623 | <param |
3624 | shared="1" | 3624 | shared="1" |
3625 | id="309" | 3625 | id="309" |
3626 | group="1" | 3626 | group="1" |
3627 | name="Express_Disdain" | 3627 | name="Express_Disdain" |
3628 | value_min="0" | 3628 | value_min="0" |
3629 | value_max="1"> | 3629 | value_max="1"> |
3630 | <param_morph /> | 3630 | <param_morph /> |
3631 | </param> | 3631 | </param> |
3632 | 3632 | ||
3633 | <param | 3633 | <param |
3634 | shared="1" | 3634 | shared="1" |
3635 | id="310" | 3635 | id="310" |
3636 | group="1" | 3636 | group="1" |
3637 | name="Express_Afraid_Emote" | 3637 | name="Express_Afraid_Emote" |
3638 | value_min="0" | 3638 | value_min="0" |
3639 | value_max="1"> | 3639 | value_max="1"> |
3640 | <param_morph /> | 3640 | <param_morph /> |
3641 | </param> | 3641 | </param> |
3642 | 3642 | ||
3643 | <param | 3643 | <param |
3644 | shared="1" | 3644 | shared="1" |
3645 | id="312" | 3645 | id="312" |
3646 | group="1" | 3646 | group="1" |
3647 | name="Express_Cry_Emote" | 3647 | name="Express_Cry_Emote" |
3648 | value_min="0" | 3648 | value_min="0" |
3649 | value_max="1"> | 3649 | value_max="1"> |
3650 | <param_morph /> | 3650 | <param_morph /> |
3651 | </param> | 3651 | </param> |
3652 | 3652 | ||
3653 | <param | 3653 | <param |
3654 | shared="1" | 3654 | shared="1" |
3655 | id="313" | 3655 | id="313" |
3656 | group="1" | 3656 | group="1" |
3657 | name="Express_Sad_Emote" | 3657 | name="Express_Sad_Emote" |
3658 | value_min="0" | 3658 | value_min="0" |
3659 | value_max="1"> | 3659 | value_max="1"> |
3660 | <param_morph /> | 3660 | <param_morph /> |
3661 | </param> | 3661 | </param> |
3662 | 3662 | ||
3663 | <param | 3663 | <param |
3664 | shared="1" | 3664 | shared="1" |
3665 | id="314" | 3665 | id="314" |
3666 | group="1" | 3666 | group="1" |
3667 | name="Express_Anger_Emote" | 3667 | name="Express_Anger_Emote" |
3668 | value_min="0" | 3668 | value_min="0" |
3669 | value_max="1"> | 3669 | value_max="1"> |
3670 | <param_morph /> | 3670 | <param_morph /> |
3671 | </param> | 3671 | </param> |
3672 | 3672 | ||
3673 | <param | 3673 | <param |
3674 | shared="1" | 3674 | shared="1" |
3675 | id="315" | 3675 | id="315" |
3676 | group="1" | 3676 | group="1" |
3677 | name="Express_Frown" | 3677 | name="Express_Frown" |
3678 | value_min="0" | 3678 | value_min="0" |
3679 | value_max="1"> | 3679 | value_max="1"> |
3680 | <param_morph /> | 3680 | <param_morph /> |
3681 | </param> | 3681 | </param> |
3682 | 3682 | ||
3683 | <param | 3683 | <param |
3684 | shared="1" | 3684 | shared="1" |
3685 | id="316" | 3685 | id="316" |
3686 | group="1" | 3686 | group="1" |
3687 | name="Express_Laugh_Emote" | 3687 | name="Express_Laugh_Emote" |
3688 | value_min="0" | 3688 | value_min="0" |
3689 | value_max="1"> | 3689 | value_max="1"> |
3690 | <param_morph /> | 3690 | <param_morph /> |
3691 | </param> | 3691 | </param> |
3692 | 3692 | ||
3693 | <param | 3693 | <param |
3694 | shared="1" | 3694 | shared="1" |
3695 | id="317" | 3695 | id="317" |
3696 | group="1" | 3696 | group="1" |
3697 | name="Express_Toothsmile" | 3697 | name="Express_Toothsmile" |
3698 | value_min="0" | 3698 | value_min="0" |
3699 | value_max="1"> | 3699 | value_max="1"> |
3700 | <param_morph /> | 3700 | <param_morph /> |
3701 | </param> | 3701 | </param> |
3702 | 3702 | ||
3703 | <param | 3703 | <param |
3704 | shared="1" | 3704 | shared="1" |
3705 | id="318" | 3705 | id="318" |
3706 | group="1" | 3706 | group="1" |
3707 | name="Express_Smile" | 3707 | name="Express_Smile" |
3708 | value_min="0" | 3708 | value_min="0" |
3709 | value_max="1"> | 3709 | value_max="1"> |
3710 | <param_morph /> | 3710 | <param_morph /> |
3711 | </param> | 3711 | </param> |
3712 | 3712 | ||
3713 | <!-- | 3713 | <!-- |
3714 | ############## | 3714 | ############## |
3715 | # other morphs (not user controlled) | 3715 | # other morphs (not user controlled) |
3716 | ############## | 3716 | ############## |
3717 | --> | 3717 | --> |
3718 | <param | 3718 | <param |
3719 | shared="1" | 3719 | shared="1" |
3720 | id="41" | 3720 | id="41" |
3721 | group="1" | 3721 | group="1" |
3722 | name="Old" | 3722 | name="Old" |
3723 | value_min="0" | 3723 | value_min="0" |
3724 | value_max="1"> | 3724 | value_max="1"> |
3725 | <param_morph /> | 3725 | <param_morph /> |
3726 | </param> | 3726 | </param> |
3727 | 3727 | ||
3728 | <!-- | 3728 | <!-- |
3729 | ############## | 3729 | ############## |
3730 | # animatable morphs | 3730 | # animatable morphs |
3731 | ############## | 3731 | ############## |
3732 | --> | 3732 | --> |
3733 | <param | 3733 | <param |
3734 | shared="1" | 3734 | shared="1" |
3735 | id="58" | 3735 | id="58" |
3736 | group="1" | 3736 | group="1" |
3737 | name="Blink_Left" | 3737 | name="Blink_Left" |
3738 | value_min="0" | 3738 | value_min="0" |
3739 | value_max="1"> | 3739 | value_max="1"> |
3740 | <param_morph /> | 3740 | <param_morph /> |
3741 | </param> | 3741 | </param> |
3742 | 3742 | ||
3743 | <param | 3743 | <param |
3744 | shared="1" | 3744 | shared="1" |
3745 | id="59" | 3745 | id="59" |
3746 | group="1" | 3746 | group="1" |
3747 | name="Blink_Right" | 3747 | name="Blink_Right" |
3748 | value_min="0" | 3748 | value_min="0" |
3749 | value_max="1"> | 3749 | value_max="1"> |
3750 | <param_morph /> | 3750 | <param_morph /> |
3751 | </param> | 3751 | </param> |
3752 | </mesh> | 3752 | </mesh> |
3753 | 3753 | ||
3754 | <!-- | 3754 | <!-- |
3755 | #headMesh2 = | 3755 | #headMesh2 = |
3756 | #headMesh3 = | 3756 | #headMesh3 = |
3757 | --> | 3757 | --> |
3758 | <mesh | 3758 | <mesh |
3759 | type="upperBodyMesh" | 3759 | type="upperBodyMesh" |
3760 | lod="0" | 3760 | lod="0" |
3761 | file_name="avatar_upper_body.llm" | 3761 | file_name="avatar_upper_body.llm" |
3762 | min_pixel_width="320"> | 3762 | min_pixel_width="320"> |
3763 | <!-- | 3763 | <!-- |
3764 | #begin morph targets | 3764 | #begin morph targets |
3765 | ############# | 3765 | ############# |
3766 | # tweakable morphs | 3766 | # tweakable morphs |
3767 | ############# | 3767 | ############# |
3768 | --> | 3768 | --> |
3769 | <param | 3769 | <param |
3770 | id="104" | 3770 | id="104" |
3771 | group="1" | 3771 | group="1" |
3772 | name="Big_Belly_Torso" | 3772 | name="Big_Belly_Torso" |
3773 | value_min="0" | 3773 | value_min="0" |
3774 | value_max="1"> | 3774 | value_max="1"> |
3775 | <param_morph> | 3775 | <param_morph> |
3776 | <volume_morph | 3776 | <volume_morph |
3777 | name="BELLY" | 3777 | name="BELLY" |
3778 | scale="0.075 0.04 0.03" | 3778 | scale="0.075 0.04 0.03" |
3779 | pos="0.07 0 -0.07"/> | 3779 | pos="0.07 0 -0.07"/> |
3780 | </param_morph> | 3780 | </param_morph> |
3781 | </param> | 3781 | </param> |
3782 | 3782 | ||
3783 | <param | 3783 | <param |
3784 | id="626" | 3784 | id="626" |
3785 | sex="female" | 3785 | sex="female" |
3786 | group="1" | 3786 | group="1" |
3787 | name="Big_Chest" | 3787 | name="Big_Chest" |
3788 | label="Chest Size" | 3788 | label="Chest Size" |
3789 | wearable="shape" | 3789 | wearable="shape" |
3790 | edit_group="shape_torso" | 3790 | edit_group="shape_torso" |
3791 | label_min="Small" | 3791 | label_min="Small" |
3792 | label_max="Large" | 3792 | label_max="Large" |
3793 | value_min="0" | 3793 | value_min="0" |
3794 | value_max="1" | 3794 | value_max="1" |
3795 | camera_elevation=".1" | 3795 | camera_elevation=".1" |
3796 | camera_distance="1" | 3796 | camera_distance="1" |
3797 | camera_angle="15"> | 3797 | camera_angle="15"> |
3798 | <param_morph /> | 3798 | <param_morph /> |
3799 | </param> | 3799 | </param> |
3800 | 3800 | ||
3801 | <param | 3801 | <param |
3802 | id="627" | 3802 | id="627" |
3803 | sex="female" | 3803 | sex="female" |
3804 | group="1" | 3804 | group="1" |
3805 | name="Small_Chest" | 3805 | name="Small_Chest" |
3806 | label="Chest Size" | 3806 | label="Chest Size" |
3807 | wearable="shape" | 3807 | wearable="shape" |
3808 | edit_group="shape_torso" | 3808 | edit_group="shape_torso" |
3809 | label_min="Large" | 3809 | label_min="Large" |
3810 | label_max="Small" | 3810 | label_max="Small" |
3811 | value_min="0" | 3811 | value_min="0" |
3812 | value_max="1" | 3812 | value_max="1" |
3813 | camera_elevation="0" | 3813 | camera_elevation="0" |
3814 | camera_distance=".28"> | 3814 | camera_distance=".28"> |
3815 | <param_morph /> | 3815 | <param_morph /> |
3816 | </param> | 3816 | </param> |
3817 | 3817 | ||
3818 | <param | 3818 | <param |
3819 | id="843" | 3819 | id="843" |
3820 | sex="female" | 3820 | sex="female" |
3821 | group="1" | 3821 | group="1" |
3822 | name="No_Chest" | 3822 | name="No_Chest" |
3823 | label="Chest Size" | 3823 | label="Chest Size" |
3824 | wearable="shape" | 3824 | wearable="shape" |
3825 | edit_group="shape_torso" | 3825 | edit_group="shape_torso" |
3826 | label_min="Some" | 3826 | label_min="Some" |
3827 | label_max="None" | 3827 | label_max="None" |
3828 | value_min="0" | 3828 | value_min="0" |
3829 | value_max="1" | 3829 | value_max="1" |
3830 | camera_elevation="0" | 3830 | camera_elevation="0" |
3831 | camera_distance=".28"> | 3831 | camera_distance=".28"> |
3832 | <param_morph /> | 3832 | <param_morph /> |
3833 | </param> | 3833 | </param> |
3834 | 3834 | ||
3835 | <param | 3835 | <param |
3836 | id="106" | 3836 | id="106" |
3837 | group="1" | 3837 | group="1" |
3838 | name="Muscular_Torso" | 3838 | name="Muscular_Torso" |
3839 | label="Torso Muscles" | 3839 | label="Torso Muscles" |
3840 | show_simple="true" | 3840 | show_simple="true" |
3841 | wearable="shape" | 3841 | wearable="shape" |
3842 | edit_group="shape_torso" | 3842 | edit_group="shape_torso" |
3843 | label_min="Regular" | 3843 | label_min="Regular" |
3844 | label_max="Muscular" | 3844 | label_max="Muscular" |
3845 | value_min="0" | 3845 | value_min="0" |
3846 | value_max="1.4" | 3846 | value_max="1.4" |
3847 | camera_elevation=".3" | 3847 | camera_elevation=".3" |
3848 | camera_distance="1.2"> | 3848 | camera_distance="1.2"> |
3849 | <param_morph> | 3849 | <param_morph> |
3850 | <volume_morph | 3850 | <volume_morph |
3851 | name="L_CLAVICLE" | 3851 | name="L_CLAVICLE" |
3852 | scale="0.02 0.0 0.005" | 3852 | scale="0.02 0.0 0.005" |
3853 | pos="0.0 0 0.005"/> | 3853 | pos="0.0 0 0.005"/> |
3854 | <volume_morph | 3854 | <volume_morph |
3855 | name="L_UPPER_ARM" | 3855 | name="L_UPPER_ARM" |
3856 | scale="0.015 0.0 0.005" | 3856 | scale="0.015 0.0 0.005" |
3857 | pos="0.015 0 0"/> | 3857 | pos="0.015 0 0"/> |
3858 | <volume_morph | 3858 | <volume_morph |
3859 | name="L_LOWER_ARM" | 3859 | name="L_LOWER_ARM" |
3860 | scale="0.005 0.0 0.005" | 3860 | scale="0.005 0.0 0.005" |
3861 | pos="0.005 0 0"/> | 3861 | pos="0.005 0 0"/> |
3862 | <volume_morph | 3862 | <volume_morph |
3863 | name="R_CLAVICLE" | 3863 | name="R_CLAVICLE" |
3864 | scale="0.02 0.0 0.005" | 3864 | scale="0.02 0.0 0.005" |
3865 | pos="0.0 0 0.005"/> | 3865 | pos="0.0 0 0.005"/> |
3866 | <volume_morph | 3866 | <volume_morph |
3867 | name="R_UPPER_ARM" | 3867 | name="R_UPPER_ARM" |
3868 | scale="0.015 0.0 0.005" | 3868 | scale="0.015 0.0 0.005" |
3869 | pos="0.015 0 0"/> | 3869 | pos="0.015 0 0"/> |
3870 | <volume_morph | 3870 | <volume_morph |
3871 | name="R_LOWER_ARM" | 3871 | name="R_LOWER_ARM" |
3872 | scale="0.005 0.0 0.005" | 3872 | scale="0.005 0.0 0.005" |
3873 | pos="0.005 0 0"/> | 3873 | pos="0.005 0 0"/> |
3874 | </param_morph> | 3874 | </param_morph> |
3875 | </param> | 3875 | </param> |
3876 | 3876 | ||
3877 | <param | 3877 | <param |
3878 | id="648" | 3878 | id="648" |
3879 | group="1" | 3879 | group="1" |
3880 | sex="female" | 3880 | sex="female" |
3881 | name="Scrawny_Torso" | 3881 | name="Scrawny_Torso" |
3882 | label="Torso Muscles" | 3882 | label="Torso Muscles" |
3883 | show_simple="true" | 3883 | show_simple="true" |
3884 | wearable="shape" | 3884 | wearable="shape" |
3885 | edit_group="shape_torso" | 3885 | edit_group="shape_torso" |
3886 | label_min="Regular" | 3886 | label_min="Regular" |
3887 | label_max="Scrawny" | 3887 | label_max="Scrawny" |
3888 | value_min="0" | 3888 | value_min="0" |
3889 | value_max="1.3" | 3889 | value_max="1.3" |
3890 | camera_elevation=".3" | 3890 | camera_elevation=".3" |
3891 | camera_distance="1.2"> | 3891 | camera_distance="1.2"> |
3892 | <param_morph> | 3892 | <param_morph> |
3893 | <volume_morph | 3893 | <volume_morph |
3894 | name="BELLY" | 3894 | name="BELLY" |
3895 | scale="0.0 -0.01 0.0" | 3895 | scale="0.0 -0.01 0.0" |
3896 | pos="0.0 0.0 0"/> | 3896 | pos="0.0 0.0 0"/> |
3897 | <volume_morph | 3897 | <volume_morph |
3898 | name="CHEST" | 3898 | name="CHEST" |
3899 | scale="-0.01 -0.01 0.0" | 3899 | scale="-0.01 -0.01 0.0" |
3900 | pos="0.01 0.0 0"/> | 3900 | pos="0.01 0.0 0"/> |
3901 | <volume_morph | 3901 | <volume_morph |
3902 | name="L_CLAVICLE" | 3902 | name="L_CLAVICLE" |
3903 | scale="0.0 -0.03 -0.005" | 3903 | scale="0.0 -0.03 -0.005" |
3904 | pos="0.0 0 -0.005"/> | 3904 | pos="0.0 0 -0.005"/> |
3905 | <volume_morph | 3905 | <volume_morph |
3906 | name="L_UPPER_ARM" | 3906 | name="L_UPPER_ARM" |
3907 | scale="-0.01 -0.01 -0.02" | 3907 | scale="-0.01 -0.01 -0.02" |
3908 | pos="0 0 0"/> | 3908 | pos="0 0 0"/> |
3909 | <volume_morph | 3909 | <volume_morph |
3910 | name="L_LOWER_ARM" | 3910 | name="L_LOWER_ARM" |
3911 | scale="-0.005 0.0 -0.01" | 3911 | scale="-0.005 0.0 -0.01" |
3912 | pos="-0.005 0 0"/> | 3912 | pos="-0.005 0 0"/> |
3913 | <volume_morph | 3913 | <volume_morph |
3914 | name="R_CLAVICLE" | 3914 | name="R_CLAVICLE" |
3915 | scale="0.0 -0.03 -0.005" | 3915 | scale="0.0 -0.03 -0.005" |
3916 | pos="0.0 0 -0.005"/> | 3916 | pos="0.0 0 -0.005"/> |
3917 | <volume_morph | 3917 | <volume_morph |
3918 | name="R_UPPER_ARM" | 3918 | name="R_UPPER_ARM" |
3919 | scale="-0.01 -0.01 -0.02" | 3919 | scale="-0.01 -0.01 -0.02" |
3920 | pos="0 0 0"/> | 3920 | pos="0 0 0"/> |
3921 | <volume_morph | 3921 | <volume_morph |
3922 | name="R_LOWER_ARM" | 3922 | name="R_LOWER_ARM" |
3923 | scale="-0.005 0.0 -0.01" | 3923 | scale="-0.005 0.0 -0.01" |
3924 | pos="-0.005 0 0"/> | 3924 | pos="-0.005 0 0"/> |
3925 | </param_morph> | 3925 | </param_morph> |
3926 | </param> | 3926 | </param> |
3927 | 3927 | ||
3928 | <param | 3928 | <param |
3929 | id="677" | 3929 | id="677" |
3930 | group="1" | 3930 | group="1" |
3931 | sex="male" | 3931 | sex="male" |
3932 | name="Scrawny_Torso_Male" | 3932 | name="Scrawny_Torso_Male" |
3933 | label="Torso Scrawny" | 3933 | label="Torso Scrawny" |
3934 | wearable="shape" | 3934 | wearable="shape" |
3935 | edit_group="shape_torso" | 3935 | edit_group="shape_torso" |
3936 | label_min="Regular" | 3936 | label_min="Regular" |
3937 | label_max="Scrawny" | 3937 | label_max="Scrawny" |
3938 | value_min="0" | 3938 | value_min="0" |
3939 | value_max="1.3" | 3939 | value_max="1.3" |
3940 | camera_elevation=".3" | 3940 | camera_elevation=".3" |
3941 | camera_distance="1.2"> | 3941 | camera_distance="1.2"> |
3942 | <param_morph> | 3942 | <param_morph> |
3943 | <volume_morph | 3943 | <volume_morph |
3944 | name="BELLY" | 3944 | name="BELLY" |
3945 | scale="-0.01 -0.01 0.0" | 3945 | scale="-0.01 -0.01 0.0" |
3946 | pos="0.01 0.0 0"/> | 3946 | pos="0.01 0.0 0"/> |
3947 | <volume_morph | 3947 | <volume_morph |
3948 | name="CHEST" | 3948 | name="CHEST" |
3949 | scale="-0.02 -0.02 0.0" | 3949 | scale="-0.02 -0.02 0.0" |
3950 | pos="0.01 0.0 0"/> | 3950 | pos="0.01 0.0 0"/> |
3951 | <volume_morph | 3951 | <volume_morph |
3952 | name="L_CLAVICLE" | 3952 | name="L_CLAVICLE" |
3953 | scale="0.0 -0.03 -0.005" | 3953 | scale="0.0 -0.03 -0.005" |
3954 | pos="0.0 0 -0.005"/> | 3954 | pos="0.0 0 -0.005"/> |
3955 | <volume_morph | 3955 | <volume_morph |
3956 | name="L_UPPER_ARM" | 3956 | name="L_UPPER_ARM" |
3957 | scale="-0.01 -0.01 -0.02" | 3957 | scale="-0.01 -0.01 -0.02" |
3958 | pos="0 0 0"/> | 3958 | pos="0 0 0"/> |
3959 | <volume_morph | 3959 | <volume_morph |
3960 | name="L_LOWER_ARM" | 3960 | name="L_LOWER_ARM" |
3961 | scale="-0.005 0.0 -0.01" | 3961 | scale="-0.005 0.0 -0.01" |
3962 | pos="-0.005 0 0"/> | 3962 | pos="-0.005 0 0"/> |
3963 | <volume_morph | 3963 | <volume_morph |
3964 | name="R_CLAVICLE" | 3964 | name="R_CLAVICLE" |
3965 | scale="0.0 -0.03 -0.005" | 3965 | scale="0.0 -0.03 -0.005" |
3966 | pos="0.0 0 -0.005"/> | 3966 | pos="0.0 0 -0.005"/> |
3967 | <volume_morph | 3967 | <volume_morph |
3968 | name="R_UPPER_ARM" | 3968 | name="R_UPPER_ARM" |
3969 | scale="-0.01 -0.01 -0.02" | 3969 | scale="-0.01 -0.01 -0.02" |
3970 | pos="0 0 0"/> | 3970 | pos="0 0 0"/> |
3971 | <volume_morph | 3971 | <volume_morph |
3972 | name="R_LOWER_ARM" | 3972 | name="R_LOWER_ARM" |
3973 | scale="-0.005 0.0 -0.01" | 3973 | scale="-0.005 0.0 -0.01" |
3974 | pos="-0.005 0 0"/> | 3974 | pos="-0.005 0 0"/> |
3975 | </param_morph> | 3975 | </param_morph> |
3976 | </param> | 3976 | </param> |
3977 | 3977 | ||
3978 | <param | 3978 | <param |
3979 | id="634" | 3979 | id="634" |
3980 | group="1" | 3980 | group="1" |
3981 | name="Fat_Torso" | 3981 | name="Fat_Torso" |
3982 | label="Fat Torso" | 3982 | label="Fat Torso" |
3983 | wearable="shape" | 3983 | wearable="shape" |
3984 | edit_group="shape_body" | 3984 | edit_group="shape_body" |
3985 | label_min="skinny" | 3985 | label_min="skinny" |
3986 | label_max="fat" | 3986 | label_max="fat" |
3987 | value_min="0" | 3987 | value_min="0" |
3988 | value_max="1" | 3988 | value_max="1" |
3989 | camera_elevation=".3"> | 3989 | camera_elevation=".3"> |
3990 | <param_morph> | 3990 | <param_morph> |
3991 | <volume_morph | 3991 | <volume_morph |
3992 | name="CHEST" | 3992 | name="CHEST" |
3993 | scale="0.02 0.03 0.03" | 3993 | scale="0.02 0.03 0.03" |
3994 | pos="0 0 -0.03"/> | 3994 | pos="0 0 -0.03"/> |
3995 | <volume_morph | 3995 | <volume_morph |
3996 | name="BELLY" | 3996 | name="BELLY" |
3997 | scale="0.09 0.08 0.07" | 3997 | scale="0.09 0.08 0.07" |
3998 | pos="0 0 -0.05"/> | 3998 | pos="0 0 -0.05"/> |
3999 | <volume_morph | 3999 | <volume_morph |
4000 | name="L_CLAVICLE" | 4000 | name="L_CLAVICLE" |
4001 | scale="0.0 0.0 0.015"/> | 4001 | scale="0.0 0.0 0.015"/> |
4002 | <volume_morph | 4002 | <volume_morph |
4003 | name="L_UPPER_ARM" | 4003 | name="L_UPPER_ARM" |
4004 | scale="0.02 0.0 0.02" | 4004 | scale="0.02 0.0 0.02" |
4005 | pos="0.0 0.0 -0.02"/> | 4005 | pos="0.0 0.0 -0.02"/> |
4006 | <volume_morph | 4006 | <volume_morph |
4007 | name="L_LOWER_ARM" | 4007 | name="L_LOWER_ARM" |
4008 | scale="0.01 0.0 0.01" | 4008 | scale="0.01 0.0 0.01" |
4009 | pos="0.0 0.0 -0.01"/> | 4009 | pos="0.0 0.0 -0.01"/> |
4010 | <volume_morph | 4010 | <volume_morph |
4011 | name="R_CLAVICLE" | 4011 | name="R_CLAVICLE" |
4012 | scale="0.0 0.0 0.015"/> | 4012 | scale="0.0 0.0 0.015"/> |
4013 | <volume_morph | 4013 | <volume_morph |
4014 | name="R_UPPER_ARM" | 4014 | name="R_UPPER_ARM" |
4015 | scale="0.02 0.0 0.02" | 4015 | scale="0.02 0.0 0.02" |
4016 | pos="0.0 0.0 -0.02"/> | 4016 | pos="0.0 0.0 -0.02"/> |
4017 | <volume_morph | 4017 | <volume_morph |
4018 | name="R_LOWER_ARM" | 4018 | name="R_LOWER_ARM" |
4019 | scale="0.01 0.0 0.01" | 4019 | scale="0.01 0.0 0.01" |
4020 | pos="0.0 0.0 -0.01"/> | 4020 | pos="0.0 0.0 -0.01"/> |
4021 | <volume_morph | 4021 | <volume_morph |
4022 | name="NECK" | 4022 | name="NECK" |
4023 | scale="0.015 0.01 0.0"/> | 4023 | scale="0.015 0.01 0.0"/> |
4024 | <volume_morph | 4024 | <volume_morph |
4025 | name="HEAD" | 4025 | name="HEAD" |
4026 | scale="0.0 0.0 0.01" | 4026 | scale="0.0 0.0 0.01" |
4027 | pos="0 0 -0.01"/> | 4027 | pos="0 0 -0.01"/> |
4028 | </param_morph> | 4028 | </param_morph> |
4029 | 4029 | ||
4030 | </param> | 4030 | </param> |
4031 | 4031 | ||
4032 | <param | 4032 | <param |
4033 | id="507" | 4033 | id="507" |
4034 | group="0" | 4034 | group="0" |
4035 | sex="female" | 4035 | sex="female" |
4036 | name="Breast_Gravity" | 4036 | name="Breast_Gravity" |
4037 | label="Breast Buoyancy" | 4037 | label="Breast Buoyancy" |
4038 | wearable="shape" | 4038 | wearable="shape" |
4039 | edit_group="shape_torso" | 4039 | edit_group="shape_torso" |
4040 | edit_group_order="7" | 4040 | edit_group_order="7" |
4041 | label_min="Less Gravity" | 4041 | label_min="Less Gravity" |
4042 | label_max="More Gravity" | 4042 | label_max="More Gravity" |
4043 | value_default="0" | 4043 | value_default="0" |
4044 | value_min="-1.5" | 4044 | value_min="-1.5" |
4045 | value_max="2" | 4045 | value_max="2" |
4046 | camera_elevation=".3" | 4046 | camera_elevation=".3" |
4047 | camera_distance=".8"> | 4047 | camera_distance=".8"> |
4048 | <param_morph /> | 4048 | <param_morph /> |
4049 | </param> | 4049 | </param> |
4050 | 4050 | ||
4051 | <param | 4051 | <param |
4052 | id="628" | 4052 | id="628" |
4053 | group="1" | 4053 | group="1" |
4054 | name="Displace_Loose_Upperbody" | 4054 | name="Displace_Loose_Upperbody" |
4055 | label="Shirt Fit" | 4055 | label="Shirt Fit" |
4056 | wearable="shirt" | 4056 | wearable="shirt" |
4057 | edit_group="driven" | 4057 | edit_group="driven" |
4058 | clothing_morph="true" | 4058 | clothing_morph="true" |
4059 | value_min="0" | 4059 | value_min="0" |
4060 | value_max="1" | 4060 | value_max="1" |
4061 | value_default="0"> | 4061 | value_default="0"> |
4062 | <param_morph /> | 4062 | <param_morph /> |
4063 | </param> | 4063 | </param> |
4064 | 4064 | ||
4065 | <param | 4065 | <param |
4066 | id="840" | 4066 | id="840" |
4067 | group="0" | 4067 | group="0" |
4068 | name="Shirtsleeve_flair" | 4068 | name="Shirtsleeve_flair" |
4069 | label="Sleeve Looseness" | 4069 | label="Sleeve Looseness" |
4070 | show_simple="true" | 4070 | show_simple="true" |
4071 | wearable="shirt" | 4071 | wearable="shirt" |
4072 | edit_group="shirt" | 4072 | edit_group="shirt" |
4073 | edit_group_order="6" | 4073 | edit_group_order="6" |
4074 | clothing_morph="true" | 4074 | clothing_morph="true" |
4075 | label_min="Tight Sleeves" | 4075 | label_min="Tight Sleeves" |
4076 | label_max="Loose Sleeves" | 4076 | label_max="Loose Sleeves" |
4077 | value_min="0" | 4077 | value_min="0" |
4078 | value_max="1.5" | 4078 | value_max="1.5" |
4079 | camera_distance="1.8" | 4079 | camera_distance="1.8" |
4080 | camera_angle="30" | 4080 | camera_angle="30" |
4081 | camera_elevation="-.3"> | 4081 | camera_elevation="-.3"> |
4082 | <param_morph /> | 4082 | <param_morph /> |
4083 | </param> | 4083 | </param> |
4084 | 4084 | ||
4085 | <param | 4085 | <param |
4086 | id="855" | 4086 | id="855" |
4087 | group="1" | 4087 | group="1" |
4088 | name="Love_Handles" | 4088 | name="Love_Handles" |
4089 | value_default="0" | 4089 | value_default="0" |
4090 | value_min="-1" | 4090 | value_min="-1" |
4091 | value_max="2"> | 4091 | value_max="2"> |
4092 | <param_morph> | 4092 | <param_morph> |
4093 | <volume_morph | 4093 | <volume_morph |
4094 | name="BELLY" | 4094 | name="BELLY" |
4095 | scale="0.0 0.02 0.0"/> | 4095 | scale="0.0 0.02 0.0"/> |
4096 | </param_morph> | 4096 | </param_morph> |
4097 | </param> | 4097 | </param> |
4098 | 4098 | ||
4099 | <param | 4099 | <param |
4100 | id="684" | 4100 | id="684" |
4101 | group="0" | 4101 | group="0" |
4102 | sex="female" | 4102 | sex="female" |
4103 | name="Breast_Female_Cleavage" | 4103 | name="Breast_Female_Cleavage" |
4104 | label="Breast Cleavage" | 4104 | label="Breast Cleavage" |
4105 | wearable="shape" | 4105 | wearable="shape" |
4106 | edit_group="shape_torso" | 4106 | edit_group="shape_torso" |
4107 | edit_group_order="8" | 4107 | edit_group_order="8" |
4108 | label_min="Separate" | 4108 | label_min="Separate" |
4109 | label_max="Join" | 4109 | label_max="Join" |
4110 | value_default="0" | 4110 | value_default="0" |
4111 | value_min="-.3" | 4111 | value_min="-.3" |
4112 | value_max="1.3" | 4112 | value_max="1.3" |
4113 | camera_elevation=".3" | 4113 | camera_elevation=".3" |
4114 | camera_distance=".8"> | 4114 | camera_distance=".8"> |
4115 | <param_morph /> | 4115 | <param_morph /> |
4116 | </param> | 4116 | </param> |
4117 | 4117 | ||
4118 | <param | 4118 | <param |
4119 | id="685" | 4119 | id="685" |
4120 | group="0" | 4120 | group="0" |
4121 | sex="male" | 4121 | sex="male" |
4122 | name="Chest_Male_No_Pecs" | 4122 | name="Chest_Male_No_Pecs" |
4123 | label="Pectorals" | 4123 | label="Pectorals" |
4124 | wearable="shape" | 4124 | wearable="shape" |
4125 | edit_group="shape_torso" | 4125 | edit_group="shape_torso" |
4126 | edit_group_order="5" | 4126 | edit_group_order="5" |
4127 | label_min="Big Pectorals" | 4127 | label_min="Big Pectorals" |
4128 | label_max="Sunken Chest" | 4128 | label_max="Sunken Chest" |
4129 | value_default="0" | 4129 | value_default="0" |
4130 | value_min="-.5" | 4130 | value_min="-.5" |
4131 | value_max="1.1" | 4131 | value_max="1.1" |
4132 | camera_elevation=".3" | 4132 | camera_elevation=".3" |
4133 | camera_distance="1.2"> | 4133 | camera_distance="1.2"> |
4134 | <param_morph /> | 4134 | <param_morph /> |
4135 | </param> | 4135 | </param> |
4136 | 4136 | ||
4137 | <!-- ############# # | 4137 | <!-- ############# # |
4138 | other morphs (not user controlled) | 4138 | other morphs (not user controlled) |
4139 | ############# --> | 4139 | ############# --> |
4140 | <param | 4140 | <param |
4141 | id="100" | 4141 | id="100" |
4142 | group="1" | 4142 | group="1" |
4143 | name="Male_Torso" | 4143 | name="Male_Torso" |
4144 | label_min="Male_Torso" | 4144 | label_min="Male_Torso" |
4145 | value_min="0" | 4145 | value_min="0" |
4146 | value_max="1"> | 4146 | value_max="1"> |
4147 | <param_morph> | 4147 | <param_morph> |
4148 | <volume_morph | 4148 | <volume_morph |
4149 | name="CHEST" | 4149 | name="CHEST" |
4150 | scale="0.03 0.04 0.02" | 4150 | scale="0.03 0.04 0.02" |
4151 | pos="-0.03 0 -0.01"/> | 4151 | pos="-0.03 0 -0.01"/> |
4152 | <volume_morph | 4152 | <volume_morph |
4153 | name="BELLY" | 4153 | name="BELLY" |
4154 | scale="0.03 0.03 0.0" | 4154 | scale="0.03 0.03 0.0" |
4155 | pos="-0.03 0 0.02"/> | 4155 | pos="-0.03 0 0.02"/> |
4156 | <volume_morph | 4156 | <volume_morph |
4157 | name="L_CLAVICLE" | 4157 | name="L_CLAVICLE" |
4158 | scale="0.02 0.0 0.01" | 4158 | scale="0.02 0.0 0.01" |
4159 | pos="-0.02 0 0"/> | 4159 | pos="-0.02 0 0"/> |
4160 | <volume_morph | 4160 | <volume_morph |
4161 | name="L_UPPER_ARM" | 4161 | name="L_UPPER_ARM" |
4162 | scale="0.01 0.0 0.01" | 4162 | scale="0.01 0.0 0.01" |
4163 | pos="0.0 0.0 -0.01"/> | 4163 | pos="0.0 0.0 -0.01"/> |
4164 | <volume_morph | 4164 | <volume_morph |
4165 | name="L_LOWER_ARM" | 4165 | name="L_LOWER_ARM" |
4166 | scale="0.005 0.0 0.005" | 4166 | scale="0.005 0.0 0.005" |
4167 | pos="0.0 0.0 -0.005"/> | 4167 | pos="0.0 0.0 -0.005"/> |
4168 | <volume_morph | 4168 | <volume_morph |
4169 | name="R_CLAVICLE" | 4169 | name="R_CLAVICLE" |
4170 | scale="0.02 0.0 0.01" | 4170 | scale="0.02 0.0 0.01" |
4171 | pos="-0.02 0 0"/> | 4171 | pos="-0.02 0 0"/> |
4172 | <volume_morph | 4172 | <volume_morph |
4173 | name="R_UPPER_ARM" | 4173 | name="R_UPPER_ARM" |
4174 | scale="0.01 0.0 0.01" | 4174 | scale="0.01 0.0 0.01" |
4175 | pos="0.0 0.0 -0.01"/> | 4175 | pos="0.0 0.0 -0.01"/> |
4176 | <volume_morph | 4176 | <volume_morph |
4177 | name="R_LOWER_ARM" | 4177 | name="R_LOWER_ARM" |
4178 | scale="0.005 0.0 0.005" | 4178 | scale="0.005 0.0 0.005" |
4179 | pos="0.0 0.0 -0.005"/> | 4179 | pos="0.0 0.0 -0.005"/> |
4180 | <volume_morph | 4180 | <volume_morph |
4181 | name="NECK" | 4181 | name="NECK" |
4182 | scale="0.015 0.01 0.0"/> | 4182 | scale="0.015 0.01 0.0"/> |
4183 | <volume_morph | 4183 | <volume_morph |
4184 | name="HEAD" | 4184 | name="HEAD" |
4185 | scale="0.0 0.0 0.01" | 4185 | scale="0.0 0.0 0.01" |
4186 | pos="0 0 -0.01"/> | 4186 | pos="0 0 -0.01"/> |
4187 | </param_morph> | 4187 | </param_morph> |
4188 | </param> | 4188 | </param> |
4189 | 4189 | ||
4190 | <!-- | 4190 | <!-- |
4191 | ############## | 4191 | ############## |
4192 | # animatable morphs | 4192 | # animatable morphs |
4193 | ############## | 4193 | ############## |
4194 | --> | 4194 | --> |
4195 | <param | 4195 | <param |
4196 | id="101" | 4196 | id="101" |
4197 | group="1" | 4197 | group="1" |
4198 | name="Hands_Relaxed" | 4198 | name="Hands_Relaxed" |
4199 | value_min="0" | 4199 | value_min="0" |
4200 | value_max="1"> | 4200 | value_max="1"> |
4201 | <param_morph /> | 4201 | <param_morph /> |
4202 | </param> | 4202 | </param> |
4203 | 4203 | ||
4204 | <param | 4204 | <param |
4205 | id="102" | 4205 | id="102" |
4206 | group="1" | 4206 | group="1" |
4207 | name="Hands_Point" | 4207 | name="Hands_Point" |
4208 | value_min="0" | 4208 | value_min="0" |
4209 | value_max="1"> | 4209 | value_max="1"> |
4210 | <param_morph /> | 4210 | <param_morph /> |
4211 | </param> | 4211 | </param> |
4212 | 4212 | ||
4213 | <param | 4213 | <param |
4214 | id="103" | 4214 | id="103" |
4215 | group="1" | 4215 | group="1" |
4216 | name="Hands_Fist" | 4216 | name="Hands_Fist" |
4217 | value_min="0" | 4217 | value_min="0" |
4218 | value_max="1"> | 4218 | value_max="1"> |
4219 | <param_morph /> | 4219 | <param_morph /> |
4220 | </param> | 4220 | </param> |
4221 | 4221 | ||
4222 | <param | 4222 | <param |
4223 | id="666" | 4223 | id="666" |
4224 | group="1" | 4224 | group="1" |
4225 | name="Hands_Relaxed_L" | 4225 | name="Hands_Relaxed_L" |
4226 | value_min="0" | 4226 | value_min="0" |
4227 | value_max="1"> | 4227 | value_max="1"> |
4228 | <param_morph /> | 4228 | <param_morph /> |
4229 | </param> | 4229 | </param> |
4230 | 4230 | ||
4231 | <param | 4231 | <param |
4232 | id="667" | 4232 | id="667" |
4233 | group="1" | 4233 | group="1" |
4234 | name="Hands_Point_L" | 4234 | name="Hands_Point_L" |
4235 | value_min="0" | 4235 | value_min="0" |
4236 | value_max="1"> | 4236 | value_max="1"> |
4237 | <param_morph /> | 4237 | <param_morph /> |
4238 | </param> | 4238 | </param> |
4239 | 4239 | ||
4240 | <param | 4240 | <param |
4241 | id="668" | 4241 | id="668" |
4242 | group="1" | 4242 | group="1" |
4243 | name="Hands_Fist_L" | 4243 | name="Hands_Fist_L" |
4244 | value_min="0" | 4244 | value_min="0" |
4245 | value_max="1"> | 4245 | value_max="1"> |
4246 | <param_morph /> | 4246 | <param_morph /> |
4247 | </param> | 4247 | </param> |
4248 | 4248 | ||
4249 | <param | 4249 | <param |
4250 | id="669" | 4250 | id="669" |
4251 | group="1" | 4251 | group="1" |
4252 | name="Hands_Relaxed_R" | 4252 | name="Hands_Relaxed_R" |
4253 | value_min="0" | 4253 | value_min="0" |
4254 | value_max="1"> | 4254 | value_max="1"> |
4255 | <param_morph /> | 4255 | <param_morph /> |
4256 | </param> | 4256 | </param> |
4257 | 4257 | ||
4258 | <param | 4258 | <param |
4259 | id="670" | 4259 | id="670" |
4260 | group="1" | 4260 | group="1" |
4261 | name="Hands_Point_R" | 4261 | name="Hands_Point_R" |
4262 | value_min="0" | 4262 | value_min="0" |
4263 | value_max="1"> | 4263 | value_max="1"> |
4264 | <param_morph /> | 4264 | <param_morph /> |
4265 | </param> | 4265 | </param> |
4266 | 4266 | ||
4267 | <param | 4267 | <param |
4268 | id="671" | 4268 | id="671" |
4269 | group="1" | 4269 | group="1" |
4270 | name="Hands_Fist_R" | 4270 | name="Hands_Fist_R" |
4271 | value_min="0" | 4271 | value_min="0" |
4272 | value_max="1"> | 4272 | value_max="1"> |
4273 | <param_morph /> | 4273 | <param_morph /> |
4274 | </param> | 4274 | </param> |
4275 | 4275 | ||
4276 | <param | 4276 | <param |
4277 | id="672" | 4277 | id="672" |
4278 | group="1" | 4278 | group="1" |
4279 | name="Hands_Typing" | 4279 | name="Hands_Typing" |
4280 | value_min="0" | 4280 | value_min="0" |
4281 | value_max="1"> | 4281 | value_max="1"> |
4282 | <param_morph /> | 4282 | <param_morph /> |
4283 | </param> | 4283 | </param> |
4284 | 4284 | ||
4285 | <param | 4285 | <param |
4286 | id="766" | 4286 | id="766" |
4287 | group="1" | 4287 | group="1" |
4288 | name="Hands_Salute_R" | 4288 | name="Hands_Salute_R" |
4289 | value_min="0" | 4289 | value_min="0" |
4290 | value_max="1"> | 4290 | value_max="1"> |
4291 | <param_morph /> | 4291 | <param_morph /> |
4292 | </param> | 4292 | </param> |
4293 | 4293 | ||
4294 | <param | 4294 | <param |
4295 | id="791" | 4295 | id="791" |
4296 | group="1" | 4296 | group="1" |
4297 | name="Hands_Peace_R" | 4297 | name="Hands_Peace_R" |
4298 | value_min="0" | 4298 | value_min="0" |
4299 | value_max="1"> | 4299 | value_max="1"> |
4300 | <param_morph /> | 4300 | <param_morph /> |
4301 | </param> | 4301 | </param> |
4302 | 4302 | ||
4303 | <param | 4303 | <param |
4304 | id="792" | 4304 | id="792" |
4305 | group="1" | 4305 | group="1" |
4306 | name="Hands_Spread_R" | 4306 | name="Hands_Spread_R" |
4307 | value_min="0" | 4307 | value_min="0" |
4308 | value_max="1"> | 4308 | value_max="1"> |
4309 | <param_morph /> | 4309 | <param_morph /> |
4310 | </param> | 4310 | </param> |
4311 | 4311 | ||
4312 | <!-- | 4312 | <!-- |
4313 | #end morph targets | 4313 | #end morph targets |
4314 | --> | 4314 | --> |
4315 | </mesh> | 4315 | </mesh> |
4316 | 4316 | ||
4317 | <mesh | 4317 | <mesh |
4318 | type="upperBodyMesh" | 4318 | type="upperBodyMesh" |
4319 | lod="1" | 4319 | lod="1" |
4320 | file_name="avatar_upper_body_1.llm" | 4320 | file_name="avatar_upper_body_1.llm" |
4321 | min_pixel_width="160" | 4321 | min_pixel_width="160" |
4322 | reference="avatar_upper_body.llm"> | 4322 | reference="avatar_upper_body.llm"> |
4323 | </mesh> | 4323 | </mesh> |
4324 | 4324 | ||
4325 | <mesh | 4325 | <mesh |
4326 | type="upperBodyMesh" | 4326 | type="upperBodyMesh" |
4327 | lod="2" | 4327 | lod="2" |
4328 | file_name="avatar_upper_body_2.llm" | 4328 | file_name="avatar_upper_body_2.llm" |
4329 | min_pixel_width="80" | 4329 | min_pixel_width="80" |
4330 | reference="avatar_upper_body.llm"> | 4330 | reference="avatar_upper_body.llm"> |
4331 | </mesh> | 4331 | </mesh> |
4332 | 4332 | ||
4333 | <mesh | 4333 | <mesh |
4334 | type="upperBodyMesh" | 4334 | type="upperBodyMesh" |
4335 | lod="3" | 4335 | lod="3" |
4336 | file_name="avatar_upper_body_3.llm" | 4336 | file_name="avatar_upper_body_3.llm" |
4337 | min_pixel_width="40" | 4337 | min_pixel_width="40" |
4338 | reference="avatar_upper_body.llm"> | 4338 | reference="avatar_upper_body.llm"> |
4339 | </mesh> | 4339 | </mesh> |
4340 | 4340 | ||
4341 | <mesh | 4341 | <mesh |
4342 | type="upperBodyMesh" | 4342 | type="upperBodyMesh" |
4343 | lod="4" | 4343 | lod="4" |
4344 | file_name="avatar_upper_body_4.llm" | 4344 | file_name="avatar_upper_body_4.llm" |
4345 | min_pixel_width="0" | 4345 | min_pixel_width="0" |
4346 | reference="avatar_upper_body.llm"> | 4346 | reference="avatar_upper_body.llm"> |
4347 | </mesh> | 4347 | </mesh> |
4348 | 4348 | ||
4349 | <!-- | 4349 | <!-- |
4350 | #upperBodyMesh2 = | 4350 | #upperBodyMesh2 = |
4351 | #upperBodyMesh3 = | 4351 | #upperBodyMesh3 = |
4352 | --> | 4352 | --> |
4353 | <mesh | 4353 | <mesh |
4354 | type="lowerBodyMesh" | 4354 | type="lowerBodyMesh" |
4355 | lod="0" | 4355 | lod="0" |
4356 | file_name="avatar_lower_body.llm" | 4356 | file_name="avatar_lower_body.llm" |
4357 | min_pixel_width="320"> | 4357 | min_pixel_width="320"> |
4358 | <!-- | 4358 | <!-- |
4359 | #begin morph targets | 4359 | #begin morph targets |
4360 | ############# | 4360 | ############# |
4361 | # tweakable morphs | 4361 | # tweakable morphs |
4362 | ############# | 4362 | ############# |
4363 | --> | 4363 | --> |
4364 | <param | 4364 | <param |
4365 | id="156" | 4365 | id="156" |
4366 | group="1" | 4366 | group="1" |
4367 | name="Big_Belly_Legs" | 4367 | name="Big_Belly_Legs" |
4368 | value_min="0" | 4368 | value_min="0" |
4369 | value_max="1"> | 4369 | value_max="1"> |
4370 | <param_morph /> | 4370 | <param_morph /> |
4371 | </param> | 4371 | </param> |
4372 | 4372 | ||
4373 | <param | 4373 | <param |
4374 | id="151" | 4374 | id="151" |
4375 | group="1" | 4375 | group="1" |
4376 | name="Big_Butt_Legs" | 4376 | name="Big_Butt_Legs" |
4377 | label="Butt Size" | 4377 | label="Butt Size" |
4378 | wearable="shape" | 4378 | wearable="shape" |
4379 | edit_group="shape_legs" | 4379 | edit_group="shape_legs" |
4380 | label_min="Regular" | 4380 | label_min="Regular" |
4381 | label_max="Large" | 4381 | label_max="Large" |
4382 | value_min="0" | 4382 | value_min="0" |
4383 | value_max="1"> | 4383 | value_max="1"> |
4384 | <param_morph> | 4384 | <param_morph> |
4385 | <volume_morph | 4385 | <volume_morph |
4386 | name="PELVIS" | 4386 | name="PELVIS" |
4387 | scale="0.03 0.0 0.02" | 4387 | scale="0.03 0.0 0.02" |
4388 | pos="-0.03 0 -0.025"/> | 4388 | pos="-0.03 0 -0.025"/> |
4389 | </param_morph> | 4389 | </param_morph> |
4390 | </param> | 4390 | </param> |
4391 | 4391 | ||
4392 | <param | 4392 | <param |
4393 | id="794" | 4393 | id="794" |
4394 | group="1" | 4394 | group="1" |
4395 | name="Small_Butt" | 4395 | name="Small_Butt" |
4396 | label="Butt Size" | 4396 | label="Butt Size" |
4397 | wearable="shape" | 4397 | wearable="shape" |
4398 | edit_group="shape_legs" | 4398 | edit_group="shape_legs" |
4399 | label_min="Regular" | 4399 | label_min="Regular" |
4400 | label_max="Small" | 4400 | label_max="Small" |
4401 | value_min="0" | 4401 | value_min="0" |
4402 | value_max="1"> | 4402 | value_max="1"> |
4403 | <param_morph> | 4403 | <param_morph> |
4404 | <volume_morph | 4404 | <volume_morph |
4405 | name="PELVIS" | 4405 | name="PELVIS" |
4406 | scale="-0.01 0.0 0.0" | 4406 | scale="-0.01 0.0 0.0" |
4407 | pos="0.01 0 0.0"/> | 4407 | pos="0.01 0 0.0"/> |
4408 | </param_morph> | 4408 | </param_morph> |
4409 | </param> | 4409 | </param> |
4410 | 4410 | ||
4411 | <param | 4411 | <param |
4412 | id="152" | 4412 | id="152" |
4413 | group="1" | 4413 | group="1" |
4414 | name="Muscular_Legs" | 4414 | name="Muscular_Legs" |
4415 | label="Leg Muscles" | 4415 | label="Leg Muscles" |
4416 | show_simple="true" | 4416 | show_simple="true" |
4417 | wearable="shape" | 4417 | wearable="shape" |
4418 | edit_group="shape_legs" | 4418 | edit_group="shape_legs" |
4419 | label_min="Regular Muscles" | 4419 | label_min="Regular Muscles" |
4420 | label_max="More Muscles" | 4420 | label_max="More Muscles" |
4421 | value_min="0" | 4421 | value_min="0" |
4422 | value_max="1.5" | 4422 | value_max="1.5" |
4423 | camera_distance="1.3" | 4423 | camera_distance="1.3" |
4424 | camera_elevation="-.5"> | 4424 | camera_elevation="-.5"> |
4425 | <param_morph> | 4425 | <param_morph> |
4426 | <volume_morph | 4426 | <volume_morph |
4427 | name="L_UPPER_LEG" | 4427 | name="L_UPPER_LEG" |
4428 | scale="0.015 0.015 0.0" | 4428 | scale="0.015 0.015 0.0" |
4429 | pos="0.0 0 0.0"/> | 4429 | pos="0.0 0 0.0"/> |
4430 | <volume_morph | 4430 | <volume_morph |
4431 | name="L_LOWER_LEG" | 4431 | name="L_LOWER_LEG" |
4432 | scale="0.01 0.01 0.0" | 4432 | scale="0.01 0.01 0.0" |
4433 | pos="0.0 0 0.0"/> | 4433 | pos="0.0 0 0.0"/> |
4434 | <volume_morph | 4434 | <volume_morph |
4435 | name="R_UPPER_LEG" | 4435 | name="R_UPPER_LEG" |
4436 | scale="0.015 0.015 0.0" | 4436 | scale="0.015 0.015 0.0" |
4437 | pos="0.0 0 0.0"/> | 4437 | pos="0.0 0 0.0"/> |
4438 | <volume_morph | 4438 | <volume_morph |
4439 | name="R_LOWER_LEG" | 4439 | name="R_LOWER_LEG" |
4440 | scale="0.01 0.01 0.0" | 4440 | scale="0.01 0.01 0.0" |
4441 | pos="0.0 0 0.0"/> | 4441 | pos="0.0 0 0.0"/> |
4442 | </param_morph> | 4442 | </param_morph> |
4443 | </param> | 4443 | </param> |
4444 | 4444 | ||
4445 | <param | 4445 | <param |
4446 | id="651" | 4446 | id="651" |
4447 | group="1" | 4447 | group="1" |
4448 | name="Scrawny_Legs" | 4448 | name="Scrawny_Legs" |
4449 | label="Scrawny Leg" | 4449 | label="Scrawny Leg" |
4450 | wearable="shape" | 4450 | wearable="shape" |
4451 | edit_group="shape_legs" | 4451 | edit_group="shape_legs" |
4452 | label_min="Regular Muscles" | 4452 | label_min="Regular Muscles" |
4453 | label_max="Less Muscles" | 4453 | label_max="Less Muscles" |
4454 | value_min="0" | 4454 | value_min="0" |
4455 | value_max="1.5" | 4455 | value_max="1.5" |
4456 | camera_distance="1.3" | 4456 | camera_distance="1.3" |
4457 | camera_elevation="-.5"> | 4457 | camera_elevation="-.5"> |
4458 | <param_morph> | 4458 | <param_morph> |
4459 | <volume_morph | 4459 | <volume_morph |
4460 | name="L_UPPER_LEG" | 4460 | name="L_UPPER_LEG" |
4461 | scale="-0.03 -0.03 0.0" | 4461 | scale="-0.03 -0.03 0.0" |
4462 | pos="0.0 0 0.0"/> | 4462 | pos="0.0 0 0.0"/> |
4463 | <volume_morph | 4463 | <volume_morph |
4464 | name="L_LOWER_LEG" | 4464 | name="L_LOWER_LEG" |
4465 | scale="-0.015 -0.015 0.0" | 4465 | scale="-0.015 -0.015 0.0" |
4466 | pos="0.0 0 0.0"/> | 4466 | pos="0.0 0 0.0"/> |
4467 | <volume_morph | 4467 | <volume_morph |
4468 | name="R_UPPER_LEG" | 4468 | name="R_UPPER_LEG" |
4469 | scale="-0.03 -0.03 0.0" | 4469 | scale="-0.03 -0.03 0.0" |
4470 | pos="0.0 0 0.0"/> | 4470 | pos="0.0 0 0.0"/> |
4471 | <volume_morph | 4471 | <volume_morph |
4472 | name="R_LOWER_LEG" | 4472 | name="R_LOWER_LEG" |
4473 | scale="-0.015 -0.015 0.0" | 4473 | scale="-0.015 -0.015 0.0" |
4474 | pos="0.0 0 0.0"/> | 4474 | pos="0.0 0 0.0"/> |
4475 | </param_morph> | 4475 | </param_morph> |
4476 | </param> | 4476 | </param> |
4477 | 4477 | ||
4478 | <param | 4478 | <param |
4479 | id="853" | 4479 | id="853" |
4480 | group="1" | 4480 | group="1" |
4481 | name="Bowed_Legs" | 4481 | name="Bowed_Legs" |
4482 | label="Knee Angle" | 4482 | label="Knee Angle" |
4483 | wearable="shape" | 4483 | wearable="shape" |
4484 | value_min="-1" | 4484 | value_min="-1" |
4485 | value_max="1"> | 4485 | value_max="1"> |
4486 | <param_morph> | 4486 | <param_morph> |
4487 | <volume_morph | 4487 | <volume_morph |
4488 | name="L_UPPER_LEG" | 4488 | name="L_UPPER_LEG" |
4489 | pos="0.0 0.03 0.0"/> | 4489 | pos="0.0 0.03 0.0"/> |
4490 | <volume_morph | 4490 | <volume_morph |
4491 | name="L_LOWER_LEG" | 4491 | name="L_LOWER_LEG" |
4492 | pos="0.0 0.03 0.0"/> | 4492 | pos="0.0 0.03 0.0"/> |
4493 | <volume_morph | 4493 | <volume_morph |
4494 | name="R_UPPER_LEG" | 4494 | name="R_UPPER_LEG" |
4495 | pos="0.0 -0.03 0.0"/> | 4495 | pos="0.0 -0.03 0.0"/> |
4496 | <volume_morph | 4496 | <volume_morph |
4497 | name="R_LOWER_LEG" | 4497 | name="R_LOWER_LEG" |
4498 | pos="0.0 -0.03 0.0"/> | 4498 | pos="0.0 -0.03 0.0"/> |
4499 | </param_morph> | 4499 | </param_morph> |
4500 | </param> | 4500 | </param> |
4501 | 4501 | ||
4502 | <param | 4502 | <param |
4503 | id="500" | 4503 | id="500" |
4504 | group="1" | 4504 | group="1" |
4505 | name="Shoe_Heel_Height" | 4505 | name="Shoe_Heel_Height" |
4506 | label="Heel Height" | 4506 | label="Heel Height" |
4507 | wearable="shoes" | 4507 | wearable="shoes" |
4508 | edit_group="shoes" | 4508 | edit_group="shoes" |
4509 | label_min="Low Heels" | 4509 | label_min="Low Heels" |
4510 | label_max="High Heels" | 4510 | label_max="High Heels" |
4511 | value_min="0" | 4511 | value_min="0" |
4512 | value_max="1" | 4512 | value_max="1" |
4513 | camera_distance="1.5" | 4513 | camera_distance="1.5" |
4514 | camera_elevation="-.5"> | 4514 | camera_elevation="-.5"> |
4515 | <param_morph /> | 4515 | <param_morph /> |
4516 | </param> | 4516 | </param> |
4517 | 4517 | ||
4518 | <param | 4518 | <param |
4519 | id="501" | 4519 | id="501" |
4520 | group="1" | 4520 | group="1" |
4521 | name="Shoe_Platform_Height" | 4521 | name="Shoe_Platform_Height" |
4522 | label="Platform Height" | 4522 | label="Platform Height" |
4523 | wearable="shoes" | 4523 | wearable="shoes" |
4524 | edit_group="shoes" | 4524 | edit_group="shoes" |
4525 | label_min="Low Platforms" | 4525 | label_min="Low Platforms" |
4526 | label_max="High Platforms" | 4526 | label_max="High Platforms" |
4527 | value_min="0" | 4527 | value_min="0" |
4528 | value_max="1" | 4528 | value_max="1" |
4529 | camera_distance="1.5" | 4529 | camera_distance="1.5" |
4530 | camera_elevation="-.5"> | 4530 | camera_elevation="-.5"> |
4531 | <param_morph /> | 4531 | <param_morph /> |
4532 | </param> | 4532 | </param> |
4533 | 4533 | ||
4534 | <param | 4534 | <param |
4535 | id="508" | 4535 | id="508" |
4536 | group="0" | 4536 | group="0" |
4537 | name="Shoe_Platform_Width" | 4537 | name="Shoe_Platform_Width" |
4538 | label="Platform Width" | 4538 | label="Platform Width" |
4539 | wearable="shoes" | 4539 | wearable="shoes" |
4540 | edit_group="shoes" | 4540 | edit_group="shoes" |
4541 | edit_group_order="7" | 4541 | edit_group_order="7" |
4542 | label_min="Narrow" | 4542 | label_min="Narrow" |
4543 | label_max="Wide" | 4543 | label_max="Wide" |
4544 | value_min="-1" | 4544 | value_min="-1" |
4545 | value_max="2" | 4545 | value_max="2" |
4546 | camera_angle="15" | 4546 | camera_angle="15" |
4547 | camera_distance="1.5" | 4547 | camera_distance="1.5" |
4548 | camera_elevation="-1"> | 4548 | camera_elevation="-1"> |
4549 | <param_morph /> | 4549 | <param_morph /> |
4550 | </param> | 4550 | </param> |
4551 | 4551 | ||
4552 | <param | 4552 | <param |
4553 | id="509" | 4553 | id="509" |
4554 | group="1" | 4554 | group="1" |
4555 | name="Shoe_Heel_Point" | 4555 | name="Shoe_Heel_Point" |
4556 | label="Heel Shape" | 4556 | label="Heel Shape" |
4557 | wearable="shoes" | 4557 | wearable="shoes" |
4558 | edit_group="shoes" | 4558 | edit_group="shoes" |
4559 | label_min="Default Heels" | 4559 | label_min="Default Heels" |
4560 | label_max="Pointy Heels" | 4560 | label_max="Pointy Heels" |
4561 | value_min="0" | 4561 | value_min="0" |
4562 | value_max="1" | 4562 | value_max="1" |
4563 | camera_distance="1.3" | 4563 | camera_distance="1.3" |
4564 | camera_elevation="-.5"> | 4564 | camera_elevation="-.5"> |
4565 | <param_morph /> | 4565 | <param_morph /> |
4566 | </param> | 4566 | </param> |
4567 | 4567 | ||
4568 | <param | 4568 | <param |
4569 | id="510" | 4569 | id="510" |
4570 | group="1" | 4570 | group="1" |
4571 | name="Shoe_Heel_Thick" | 4571 | name="Shoe_Heel_Thick" |
4572 | label="Heel Shape" | 4572 | label="Heel Shape" |
4573 | wearable="shoes" | 4573 | wearable="shoes" |
4574 | edit_group="shoes" | 4574 | edit_group="shoes" |
4575 | label_min="default Heels" | 4575 | label_min="default Heels" |
4576 | label_max="Thick Heels" | 4576 | label_max="Thick Heels" |
4577 | value_min="0" | 4577 | value_min="0" |
4578 | value_max="1" | 4578 | value_max="1" |
4579 | camera_distance="1.3" | 4579 | camera_distance="1.3" |
4580 | camera_elevation="-.5"> | 4580 | camera_elevation="-.5"> |
4581 | <param_morph /> | 4581 | <param_morph /> |
4582 | </param> | 4582 | </param> |
4583 | 4583 | ||
4584 | <param | 4584 | <param |
4585 | id="511" | 4585 | id="511" |
4586 | group="1" | 4586 | group="1" |
4587 | name="Shoe_Toe_Point" | 4587 | name="Shoe_Toe_Point" |
4588 | label="Toe Shape" | 4588 | label="Toe Shape" |
4589 | wearable="shoes" | 4589 | wearable="shoes" |
4590 | edit_group="shoes" | 4590 | edit_group="shoes" |
4591 | label_min="Default Toe" | 4591 | label_min="Default Toe" |
4592 | label_max="Pointy Toe" | 4592 | label_max="Pointy Toe" |
4593 | value_min="0" | 4593 | value_min="0" |
4594 | value_max="1" | 4594 | value_max="1" |
4595 | camera_distance="1.3" | 4595 | camera_distance="1.3" |
4596 | camera_elevation="-.5"> | 4596 | camera_elevation="-.5"> |
4597 | <param_morph /> | 4597 | <param_morph /> |
4598 | </param> | 4598 | </param> |
4599 | 4599 | ||
4600 | <param | 4600 | <param |
4601 | id="512" | 4601 | id="512" |
4602 | group="1" | 4602 | group="1" |
4603 | name="Shoe_Toe_Square" | 4603 | name="Shoe_Toe_Square" |
4604 | label="Toe Shape" | 4604 | label="Toe Shape" |
4605 | wearable="shoes" | 4605 | wearable="shoes" |
4606 | edit_group="shoes" | 4606 | edit_group="shoes" |
4607 | label_min="Default Toe" | 4607 | label_min="Default Toe" |
4608 | label_max="Square Toe" | 4608 | label_max="Square Toe" |
4609 | value_min="0" | 4609 | value_min="0" |
4610 | value_max="1" | 4610 | value_max="1" |
4611 | camera_distance="1.5" | 4611 | camera_distance="1.5" |
4612 | camera_elevation="-.5"> | 4612 | camera_elevation="-.5"> |
4613 | <param_morph /> | 4613 | <param_morph /> |
4614 | </param> | 4614 | </param> |
4615 | 4615 | ||
4616 | <param | 4616 | <param |
4617 | id="654" | 4617 | id="654" |
4618 | group="0" | 4618 | group="0" |
4619 | name="Shoe_Toe_Thick" | 4619 | name="Shoe_Toe_Thick" |
4620 | label="Toe Thickness" | 4620 | label="Toe Thickness" |
4621 | wearable="shoes" | 4621 | wearable="shoes" |
4622 | edit_group="shoes" | 4622 | edit_group="shoes" |
4623 | edit_group_order="5" | 4623 | edit_group_order="5" |
4624 | label_min="Flat Toe" | 4624 | label_min="Flat Toe" |
4625 | label_max="Thick Toe" | 4625 | label_max="Thick Toe" |
4626 | value_min="0" | 4626 | value_min="0" |
4627 | value_max="2" | 4627 | value_max="2" |
4628 | camera_angle="15" | 4628 | camera_angle="15" |
4629 | camera_distance="1.5" | 4629 | camera_distance="1.5" |
4630 | camera_elevation="-1"> | 4630 | camera_elevation="-1"> |
4631 | <param_morph /> | 4631 | <param_morph /> |
4632 | </param> | 4632 | </param> |
4633 | 4633 | ||
4634 | <param | 4634 | <param |
4635 | id="515" | 4635 | id="515" |
4636 | group="0" | 4636 | group="0" |
4637 | name="Foot_Size" | 4637 | name="Foot_Size" |
4638 | label="Foot Size" | 4638 | label="Foot Size" |
4639 | wearable="shape" | 4639 | wearable="shape" |
4640 | edit_group="shape_legs" | 4640 | edit_group="shape_legs" |
4641 | edit_group_order="6" | 4641 | edit_group_order="6" |
4642 | label_min="Small" | 4642 | label_min="Small" |
4643 | label_max="Big" | 4643 | label_max="Big" |
4644 | value_min="-1" | 4644 | value_min="-1" |
4645 | value_max="3" | 4645 | value_max="3" |
4646 | camera_angle="45" | 4646 | camera_angle="45" |
4647 | camera_distance="1.1" | 4647 | camera_distance="1.1" |
4648 | camera_elevation="-1"> | 4648 | camera_elevation="-1"> |
4649 | <param_morph> | 4649 | <param_morph> |
4650 | <volume_morph | 4650 | <volume_morph |
4651 | name="L_FOOT" | 4651 | name="L_FOOT" |
4652 | scale="0.02 0.01 0.0" | 4652 | scale="0.02 0.01 0.0" |
4653 | pos="0.01 0 0"/> | 4653 | pos="0.01 0 0"/> |
4654 | <volume_morph | 4654 | <volume_morph |
4655 | name="R_FOOT" | 4655 | name="R_FOOT" |
4656 | scale="0.02 0.01 0.0" | 4656 | scale="0.02 0.01 0.0" |
4657 | pos="0.01 0 0"/> | 4657 | pos="0.01 0 0"/> |
4658 | </param_morph> | 4658 | </param_morph> |
4659 | </param> | 4659 | </param> |
4660 | 4660 | ||
4661 | <param | 4661 | <param |
4662 | id="516" | 4662 | id="516" |
4663 | group="1" | 4663 | group="1" |
4664 | name="Displace_Loose_Lowerbody" | 4664 | name="Displace_Loose_Lowerbody" |
4665 | label="Pants Fit" | 4665 | label="Pants Fit" |
4666 | wearable="pants" | 4666 | wearable="pants" |
4667 | edit_group="driven" | 4667 | edit_group="driven" |
4668 | clothing_morph="true" | 4668 | clothing_morph="true" |
4669 | value_min="0" | 4669 | value_min="0" |
4670 | value_max="1" | 4670 | value_max="1" |
4671 | value_default="0"> | 4671 | value_default="0"> |
4672 | <param_morph /> | 4672 | <param_morph /> |
4673 | </param> | 4673 | </param> |
4674 | 4674 | ||
4675 | <param | 4675 | <param |
4676 | id="625" | 4676 | id="625" |
4677 | group="0" | 4677 | group="0" |
4678 | name="Leg_Pantflair" | 4678 | name="Leg_Pantflair" |
4679 | label="Cuff Flare" | 4679 | label="Cuff Flare" |
4680 | show_simple="true" | 4680 | show_simple="true" |
4681 | wearable="pants" | 4681 | wearable="pants" |
4682 | edit_group="pants" | 4682 | edit_group="pants" |
4683 | edit_group_order="3" | 4683 | edit_group_order="3" |
4684 | clothing_morph="true" | 4684 | clothing_morph="true" |
4685 | label_min="Tight Cuffs" | 4685 | label_min="Tight Cuffs" |
4686 | label_max="Flared Cuffs" | 4686 | label_max="Flared Cuffs" |
4687 | value_min="0" | 4687 | value_min="0" |
4688 | value_max="1.5" | 4688 | value_max="1.5" |
4689 | camera_distance="1.8" | 4689 | camera_distance="1.8" |
4690 | camera_angle="30" | 4690 | camera_angle="30" |
4691 | camera_elevation="-.3"> | 4691 | camera_elevation="-.3"> |
4692 | <param_morph /> | 4692 | <param_morph /> |
4693 | </param> | 4693 | </param> |
4694 | 4694 | ||
4695 | <param | 4695 | <param |
4696 | id="793" | 4696 | id="793" |
4697 | group="1" | 4697 | group="1" |
4698 | name="Leg_Longcuffs" | 4698 | name="Leg_Longcuffs" |
4699 | label="Longcuffs" | 4699 | label="Longcuffs" |
4700 | wearable="pants" | 4700 | wearable="pants" |
4701 | edit_group="driven" | 4701 | edit_group="driven" |
4702 | clothing_morph="true" | 4702 | clothing_morph="true" |
4703 | value_min="0" | 4703 | value_min="0" |
4704 | value_max="3" | 4704 | value_max="3" |
4705 | value_default="0"> | 4705 | value_default="0"> |
4706 | <param_morph /> | 4706 | <param_morph /> |
4707 | </param> | 4707 | </param> |
4708 | 4708 | ||
4709 | <param | 4709 | <param |
4710 | id="638" | 4710 | id="638" |
4711 | group="0" | 4711 | group="0" |
4712 | name="Low_Crotch" | 4712 | name="Low_Crotch" |
4713 | label="Pants Crotch" | 4713 | label="Pants Crotch" |
4714 | wearable="pants" | 4714 | wearable="pants" |
4715 | clothing_morph="true" | 4715 | clothing_morph="true" |
4716 | edit_group="pants" | 4716 | edit_group="pants" |
4717 | edit_group_order="4" | 4717 | edit_group_order="4" |
4718 | label_min="High and Tight" | 4718 | label_min="High and Tight" |
4719 | label_max="Low and Loose" | 4719 | label_max="Low and Loose" |
4720 | value_min="0" | 4720 | value_min="0" |
4721 | value_max="1.3" | 4721 | value_max="1.3" |
4722 | camera_distance="1.2" | 4722 | camera_distance="1.2" |
4723 | camera_angle="-20" | 4723 | camera_angle="-20" |
4724 | camera_elevation="-.3"> | 4724 | camera_elevation="-.3"> |
4725 | <param_morph /> | 4725 | <param_morph /> |
4726 | </param> | 4726 | </param> |
4727 | 4727 | ||
4728 | <param | 4728 | <param |
4729 | id="635" | 4729 | id="635" |
4730 | group="1" | 4730 | group="1" |
4731 | name="Fat_Legs" | 4731 | name="Fat_Legs" |
4732 | label="Fat Torso" | 4732 | label="Fat Torso" |
4733 | wearable="shape" | 4733 | wearable="shape" |
4734 | edit_group="shape_body" | 4734 | edit_group="shape_body" |
4735 | label_min="skinny" | 4735 | label_min="skinny" |
4736 | label_max="fat" | 4736 | label_max="fat" |
4737 | value_min="0" | 4737 | value_min="0" |
4738 | value_max="1"> | 4738 | value_max="1"> |
4739 | <param_morph> | 4739 | <param_morph> |
4740 | <volume_morph | 4740 | <volume_morph |
4741 | name="PELVIS" | 4741 | name="PELVIS" |
4742 | scale="0.03 0.06 0.0"/> | 4742 | scale="0.03 0.06 0.0"/> |
4743 | <volume_morph | 4743 | <volume_morph |
4744 | name="R_UPPER_LEG" | 4744 | name="R_UPPER_LEG" |
4745 | scale="0.02 0.02 0.0" | 4745 | scale="0.02 0.02 0.0" |
4746 | pos="0.0 -0.02 0.0"/> | 4746 | pos="0.0 -0.02 0.0"/> |
4747 | <volume_morph | 4747 | <volume_morph |
4748 | name="R_LOWER_LEG" | 4748 | name="R_LOWER_LEG" |
4749 | scale="0.01 0.01 0.0"/> | 4749 | scale="0.01 0.01 0.0"/> |
4750 | <volume_morph | 4750 | <volume_morph |
4751 | name="L_UPPER_LEG" | 4751 | name="L_UPPER_LEG" |
4752 | scale="0.02 0.02 0.0" | 4752 | scale="0.02 0.02 0.0" |
4753 | pos="0.0 0.02 0.0"/> | 4753 | pos="0.0 0.02 0.0"/> |
4754 | <volume_morph | 4754 | <volume_morph |
4755 | name="L_LOWER_LEG" | 4755 | name="L_LOWER_LEG" |
4756 | scale="0.01 0.01 0.0"/> | 4756 | scale="0.01 0.01 0.0"/> |
4757 | </param_morph> | 4757 | </param_morph> |
4758 | </param> | 4758 | </param> |
4759 | 4759 | ||
4760 | <param | 4760 | <param |
4761 | id="854" | 4761 | id="854" |
4762 | group="1" | 4762 | group="1" |
4763 | name="Saddlebags" | 4763 | name="Saddlebags" |
4764 | value_min="-.5" | 4764 | value_min="-.5" |
4765 | value_max="3"> | 4765 | value_max="3"> |
4766 | <param_morph> | 4766 | <param_morph> |
4767 | <volume_morph | 4767 | <volume_morph |
4768 | name="PELVIS" | 4768 | name="PELVIS" |
4769 | scale="0.0 0.025 0.0"/> | 4769 | scale="0.0 0.025 0.0"/> |
4770 | </param_morph> | 4770 | </param_morph> |
4771 | 4771 | ||
4772 | </param> | 4772 | </param> |
4773 | 4773 | ||
4774 | <param | 4774 | <param |
4775 | id="879" | 4775 | id="879" |
4776 | group="0" | 4776 | group="0" |
4777 | sex="male" | 4777 | sex="male" |
4778 | name="Male_Package" | 4778 | name="Male_Package" |
4779 | label="Package" | 4779 | label="Package" |
4780 | wearable="shape" | 4780 | wearable="shape" |
4781 | edit_group="shape_legs" | 4781 | edit_group="shape_legs" |
4782 | edit_group_order="4.6" | 4782 | edit_group_order="4.6" |
4783 | label_min="Coin Purse" | 4783 | label_min="Coin Purse" |
4784 | label_max="Duffle Bag" | 4784 | label_max="Duffle Bag" |
4785 | value_default="0" | 4785 | value_default="0" |
4786 | value_min="-.5" | 4786 | value_min="-.5" |
4787 | value_max="2" | 4787 | value_max="2" |
4788 | camera_angle="60" | 4788 | camera_angle="60" |
4789 | camera_distance=".6"> | 4789 | camera_distance=".6"> |
4790 | <param_morph /> | 4790 | <param_morph /> |
4791 | </param> | 4791 | </param> |
4792 | 4792 | ||
4793 | <!-- | 4793 | <!-- |
4794 | ############# | 4794 | ############# |
4795 | # other morphs (not user controlled) | 4795 | # other morphs (not user controlled) |
4796 | ############# | 4796 | ############# |
4797 | --> | 4797 | --> |
4798 | <param | 4798 | <param |
4799 | id="153" | 4799 | id="153" |
4800 | group="1" | 4800 | group="1" |
4801 | name="Male_Legs" | 4801 | name="Male_Legs" |
4802 | value_min="0" | 4802 | value_min="0" |
4803 | value_max="1"> | 4803 | value_max="1"> |
4804 | <param_morph /> | 4804 | <param_morph /> |
4805 | </param> | 4805 | </param> |
4806 | 4806 | ||
4807 | <!-- | 4807 | <!-- |
4808 | #end morph targets | 4808 | #end morph targets |
4809 | --> | 4809 | --> |
4810 | </mesh> | 4810 | </mesh> |
4811 | 4811 | ||
4812 | <mesh | 4812 | <mesh |
4813 | type="lowerBodyMesh" | 4813 | type="lowerBodyMesh" |
4814 | lod="1" | 4814 | lod="1" |
4815 | file_name="avatar_lower_body_1.llm" | 4815 | file_name="avatar_lower_body_1.llm" |
4816 | min_pixel_width="160" | 4816 | min_pixel_width="160" |
4817 | reference="avatar_lower_body.llm"> | 4817 | reference="avatar_lower_body.llm"> |
4818 | </mesh> | 4818 | </mesh> |
4819 | 4819 | ||
4820 | <mesh | 4820 | <mesh |
4821 | type="lowerBodyMesh" | 4821 | type="lowerBodyMesh" |
4822 | lod="2" | 4822 | lod="2" |
4823 | file_name="avatar_lower_body_2.llm" | 4823 | file_name="avatar_lower_body_2.llm" |
4824 | min_pixel_width="80" | 4824 | min_pixel_width="80" |
4825 | reference="avatar_lower_body.llm"> | 4825 | reference="avatar_lower_body.llm"> |
4826 | </mesh> | 4826 | </mesh> |
4827 | 4827 | ||
4828 | <mesh | 4828 | <mesh |
4829 | type="lowerBodyMesh" | 4829 | type="lowerBodyMesh" |
4830 | lod="3" | 4830 | lod="3" |
4831 | file_name="avatar_lower_body_3.llm" | 4831 | file_name="avatar_lower_body_3.llm" |
4832 | min_pixel_width="40" | 4832 | min_pixel_width="40" |
4833 | reference="avatar_lower_body.llm"> | 4833 | reference="avatar_lower_body.llm"> |
4834 | </mesh> | 4834 | </mesh> |
4835 | 4835 | ||
4836 | <mesh | 4836 | <mesh |
4837 | type="lowerBodyMesh" | 4837 | type="lowerBodyMesh" |
4838 | lod="4" | 4838 | lod="4" |
4839 | file_name="avatar_lower_body_4.llm" | 4839 | file_name="avatar_lower_body_4.llm" |
4840 | min_pixel_width="0" | 4840 | min_pixel_width="0" |
4841 | reference="avatar_lower_body.llm"> | 4841 | reference="avatar_lower_body.llm"> |
4842 | </mesh> | 4842 | </mesh> |
4843 | 4843 | ||
4844 | <!-- | 4844 | <!-- |
4845 | #lowerBodyMesh2 = | 4845 | #lowerBodyMesh2 = |
4846 | #lowerBodyMesh3 = | 4846 | #lowerBodyMesh3 = |
4847 | --> | 4847 | --> |
4848 | <!-- | 4848 | <!-- |
4849 | #eyeLidLeftMesh = | 4849 | #eyeLidLeftMesh = |
4850 | --> | 4850 | --> |
4851 | <mesh | 4851 | <mesh |
4852 | type="eyeBallLeftMesh" | 4852 | type="eyeBallLeftMesh" |
4853 | lod="0" | 4853 | lod="0" |
4854 | file_name="avatar_eye.llm" | 4854 | file_name="avatar_eye.llm" |
4855 | min_pixel_width="320"> | 4855 | min_pixel_width="320"> |
4856 | <!-- begin morph_params --> | 4856 | <!-- begin morph_params --> |
4857 | <param | 4857 | <param |
4858 | id="679" | 4858 | id="679" |
4859 | group="1" | 4859 | group="1" |
4860 | name="Eyeball_Size" | 4860 | name="Eyeball_Size" |
4861 | label="Eyeball Size" | 4861 | label="Eyeball Size" |
4862 | wearable="shape" | 4862 | wearable="shape" |
4863 | edit_group="shape_eyes" | 4863 | edit_group="shape_eyes" |
4864 | label_min="small eye" | 4864 | label_min="small eye" |
4865 | label_max="big eye" | 4865 | label_max="big eye" |
4866 | value_min="-.25" | 4866 | value_min="-.25" |
4867 | value_max=".10"> | 4867 | value_max=".10"> |
4868 | <param_morph /> | 4868 | <param_morph /> |
4869 | </param> | 4869 | </param> |
4870 | 4870 | ||
4871 | <param | 4871 | <param |
4872 | id="687" | 4872 | id="687" |
4873 | group="1" | 4873 | group="1" |
4874 | name="Eyeball_Size" | 4874 | name="Eyeball_Size" |
4875 | label="Big Eyeball" | 4875 | label="Big Eyeball" |
4876 | wearable="shape" | 4876 | wearable="shape" |
4877 | edit_group="shape_eyes" | 4877 | edit_group="shape_eyes" |
4878 | label_min="small eye" | 4878 | label_min="small eye" |
4879 | label_max="big eye" | 4879 | label_max="big eye" |
4880 | value_min="-.25" | 4880 | value_min="-.25" |
4881 | value_max=".25"> | 4881 | value_max=".25"> |
4882 | <param_morph /> | 4882 | <param_morph /> |
4883 | </param> | 4883 | </param> |
4884 | </mesh> | 4884 | </mesh> |
4885 | 4885 | ||
4886 | <mesh | 4886 | <mesh |
4887 | type="eyeBallLeftMesh" | 4887 | type="eyeBallLeftMesh" |
4888 | lod="1" | 4888 | lod="1" |
4889 | file_name="avatar_eye_1.llm" | 4889 | file_name="avatar_eye_1.llm" |
4890 | min_pixel_width="80"> | 4890 | min_pixel_width="80"> |
4891 | <!-- begin morph_params --> | 4891 | <!-- begin morph_params --> |
4892 | <param | 4892 | <param |
4893 | id="694" | 4893 | id="694" |
4894 | group="1" | 4894 | group="1" |
4895 | name="Eyeball_Size" | 4895 | name="Eyeball_Size" |
4896 | label="Eyeball Size" | 4896 | label="Eyeball Size" |
4897 | wearable="shape" | 4897 | wearable="shape" |
4898 | edit_group="shape_eyes" | 4898 | edit_group="shape_eyes" |
4899 | label_min="small eye" | 4899 | label_min="small eye" |
4900 | label_max="big eye" | 4900 | label_max="big eye" |
4901 | value_min="-.25" | 4901 | value_min="-.25" |
4902 | value_max=".10"> | 4902 | value_max=".10"> |
4903 | <param_morph /> | 4903 | <param_morph /> |
4904 | </param> | 4904 | </param> |
4905 | 4905 | ||
4906 | <param | 4906 | <param |
4907 | id="695" | 4907 | id="695" |
4908 | group="1" | 4908 | group="1" |
4909 | name="Eyeball_Size" | 4909 | name="Eyeball_Size" |
4910 | label="Big Eyeball" | 4910 | label="Big Eyeball" |
4911 | wearable="shape" | 4911 | wearable="shape" |
4912 | edit_group="shape_eyes" | 4912 | edit_group="shape_eyes" |
4913 | label_min="small eye" | 4913 | label_min="small eye" |
4914 | label_max="big eye" | 4914 | label_max="big eye" |
4915 | value_min="-.25" | 4915 | value_min="-.25" |
4916 | value_max=".25"> | 4916 | value_max=".25"> |
4917 | <param_morph /> | 4917 | <param_morph /> |
4918 | </param> | 4918 | </param> |
4919 | </mesh> | 4919 | </mesh> |
4920 | 4920 | ||
4921 | <!-- | 4921 | <!-- |
4922 | #eyeLidRightMesh = | 4922 | #eyeLidRightMesh = |
4923 | --> | 4923 | --> |
4924 | <mesh | 4924 | <mesh |
4925 | type="eyeBallRightMesh" | 4925 | type="eyeBallRightMesh" |
4926 | lod="0" | 4926 | lod="0" |
4927 | file_name="avatar_eye.llm" | 4927 | file_name="avatar_eye.llm" |
4928 | min_pixel_width="320"> | 4928 | min_pixel_width="320"> |
4929 | <!-- begin morph_params --> | 4929 | <!-- begin morph_params --> |
4930 | <param | 4930 | <param |
4931 | id="680" | 4931 | id="680" |
4932 | group="1" | 4932 | group="1" |
4933 | name="Eyeball_Size" | 4933 | name="Eyeball_Size" |
4934 | label="Eyeball Size" | 4934 | label="Eyeball Size" |
4935 | wearable="shape" | 4935 | wearable="shape" |
4936 | label_min="small eye" | 4936 | label_min="small eye" |
4937 | label_max="big eye" | 4937 | label_max="big eye" |
4938 | value_min="-.25" | 4938 | value_min="-.25" |
4939 | value_max=".10"> | 4939 | value_max=".10"> |
4940 | <param_morph /> | 4940 | <param_morph /> |
4941 | </param> | 4941 | </param> |
4942 | 4942 | ||
4943 | <param | 4943 | <param |
4944 | id="688" | 4944 | id="688" |
4945 | group="1" | 4945 | group="1" |
4946 | name="Eyeball_Size" | 4946 | name="Eyeball_Size" |
4947 | label="Big Eyeball" | 4947 | label="Big Eyeball" |
4948 | wearable="shape" | 4948 | wearable="shape" |
4949 | label_min="small eye" | 4949 | label_min="small eye" |
4950 | label_max="big eye" | 4950 | label_max="big eye" |
4951 | value_min="-.25" | 4951 | value_min="-.25" |
4952 | value_max=".25"> | 4952 | value_max=".25"> |
4953 | <param_morph /> | 4953 | <param_morph /> |
4954 | </param> | 4954 | </param> |
4955 | </mesh> | 4955 | </mesh> |
4956 | 4956 | ||
4957 | <mesh | 4957 | <mesh |
4958 | type="eyeBallRightMesh" | 4958 | type="eyeBallRightMesh" |
4959 | lod="1" | 4959 | lod="1" |
4960 | file_name="avatar_eye_1.llm" | 4960 | file_name="avatar_eye_1.llm" |
4961 | min_pixel_width="80"> | 4961 | min_pixel_width="80"> |
4962 | <!-- begin morph_params --> | 4962 | <!-- begin morph_params --> |
4963 | <param | 4963 | <param |
4964 | id="681" | 4964 | id="681" |
4965 | group="1" | 4965 | group="1" |
4966 | name="Eyeball_Size" | 4966 | name="Eyeball_Size" |
4967 | label="Eyeball Size" | 4967 | label="Eyeball Size" |
4968 | wearable="shape" | 4968 | wearable="shape" |
4969 | edit_group="shape_eyes" | 4969 | edit_group="shape_eyes" |
4970 | label_min="small eye" | 4970 | label_min="small eye" |
4971 | label_max="big eye" | 4971 | label_max="big eye" |
4972 | value_min="-.25" | 4972 | value_min="-.25" |
4973 | value_max=".10"> | 4973 | value_max=".10"> |
4974 | <param_morph /> | 4974 | <param_morph /> |
4975 | </param> | 4975 | </param> |
4976 | 4976 | ||
4977 | <param | 4977 | <param |
4978 | id="691" | 4978 | id="691" |
4979 | group="1" | 4979 | group="1" |
4980 | name="Eyeball_Size" | 4980 | name="Eyeball_Size" |
4981 | label="Big Eyeball" | 4981 | label="Big Eyeball" |
4982 | wearable="shape" | 4982 | wearable="shape" |
4983 | edit_group="shape_eyes" | 4983 | edit_group="shape_eyes" |
4984 | label_min="small eye" | 4984 | label_min="small eye" |
4985 | label_max="big eye" | 4985 | label_max="big eye" |
4986 | value_min="-.25" | 4986 | value_min="-.25" |
4987 | value_max=".25"> | 4987 | value_max=".25"> |
4988 | <param_morph /> | 4988 | <param_morph /> |
4989 | </param> | 4989 | </param> |
4990 | </mesh> | 4990 | </mesh> |
4991 | 4991 | ||
4992 | <mesh | 4992 | <mesh |
4993 | type="skirtMesh" | 4993 | type="skirtMesh" |
4994 | lod="0" | 4994 | lod="0" |
4995 | file_name="avatar_skirt.llm" | 4995 | file_name="avatar_skirt.llm" |
4996 | min_pixel_width="320"> | 4996 | min_pixel_width="320"> |
4997 | <param | 4997 | <param |
4998 | id="845" | 4998 | id="845" |
4999 | group="1" | 4999 | group="1" |
5000 | name="skirt_poofy" | 5000 | name="skirt_poofy" |
5001 | label="poofy skirt" | 5001 | label="poofy skirt" |
5002 | clothing_morph="true" | 5002 | clothing_morph="true" |
5003 | wearable="skirt" | 5003 | wearable="skirt" |
5004 | edit_group="skirt" | 5004 | edit_group="skirt" |
5005 | label_min="less poofy" | 5005 | label_min="less poofy" |
5006 | label_max="more poofy" | 5006 | label_max="more poofy" |
5007 | value_min="0" | 5007 | value_min="0" |
5008 | value_max="1.5"> | 5008 | value_max="1.5"> |
5009 | <param_morph /> | 5009 | <param_morph /> |
5010 | </param> | 5010 | </param> |
5011 | 5011 | ||
5012 | <param | 5012 | <param |
5013 | id="846" | 5013 | id="846" |
5014 | group="1" | 5014 | group="1" |
5015 | name="skirt_loose" | 5015 | name="skirt_loose" |
5016 | label="loose skirt" | 5016 | label="loose skirt" |
5017 | clothing_morph="true" | 5017 | clothing_morph="true" |
5018 | wearable="skirt" | 5018 | wearable="skirt" |
5019 | edit_group="skirt" | 5019 | edit_group="skirt" |
5020 | label_min="form fitting" | 5020 | label_min="form fitting" |
5021 | label_max="loose" | 5021 | label_max="loose" |
5022 | value_min="0" | 5022 | value_min="0" |
5023 | value_max="1"> | 5023 | value_max="1"> |
5024 | <param_morph /> | 5024 | <param_morph /> |
5025 | </param> | 5025 | </param> |
5026 | 5026 | ||
5027 | <param | 5027 | <param |
5028 | id="866" | 5028 | id="866" |
5029 | group="1" | 5029 | group="1" |
5030 | name="skirt_tight" | 5030 | name="skirt_tight" |
5031 | label="tight skirt" | 5031 | label="tight skirt" |
5032 | clothing_morph="true" | 5032 | clothing_morph="true" |
5033 | wearable="skirt" | 5033 | wearable="skirt" |
5034 | edit_group="skirt" | 5034 | edit_group="skirt" |
5035 | label_min="form fitting" | 5035 | label_min="form fitting" |
5036 | label_max="loose" | 5036 | label_max="loose" |
5037 | value_min="0" | 5037 | value_min="0" |
5038 | value_max="1"> | 5038 | value_max="1"> |
5039 | <param_morph /> | 5039 | <param_morph /> |
5040 | </param> | 5040 | </param> |
5041 | 5041 | ||
5042 | <param | 5042 | <param |
5043 | id="867" | 5043 | id="867" |
5044 | group="1" | 5044 | group="1" |
5045 | name="skirt_smallbutt" | 5045 | name="skirt_smallbutt" |
5046 | label="tight skirt" | 5046 | label="tight skirt" |
5047 | clothing_morph="false" | 5047 | clothing_morph="false" |
5048 | wearable="skirt" | 5048 | wearable="skirt" |
5049 | edit_group="skirt" | 5049 | edit_group="skirt" |
5050 | label_min="form fitting" | 5050 | label_min="form fitting" |
5051 | label_max="loose" | 5051 | label_max="loose" |
5052 | value_min="0" | 5052 | value_min="0" |
5053 | value_max="1"> | 5053 | value_max="1"> |
5054 | <param_morph /> | 5054 | <param_morph /> |
5055 | </param> | 5055 | </param> |
5056 | 5056 | ||
5057 | <param | 5057 | <param |
5058 | id="848" | 5058 | id="848" |
5059 | group="0" | 5059 | group="0" |
5060 | name="skirt_bustle" | 5060 | name="skirt_bustle" |
5061 | label="bustle skirt" | 5061 | label="bustle skirt" |
5062 | clothing_morph="true" | 5062 | clothing_morph="true" |
5063 | wearable="skirt" | 5063 | wearable="skirt" |
5064 | edit_group_order="3" | 5064 | edit_group_order="3" |
5065 | edit_group="skirt" | 5065 | edit_group="skirt" |
5066 | label_min="no bustle" | 5066 | label_min="no bustle" |
5067 | label_max="more bustle" | 5067 | label_max="more bustle" |
5068 | value_min="0" | 5068 | value_min="0" |
5069 | value_max="2" | 5069 | value_max="2" |
5070 | value_default=".2" | 5070 | value_default=".2" |
5071 | camera_angle="100" | 5071 | camera_angle="100" |
5072 | camera_distance="1.3" | 5072 | camera_distance="1.3" |
5073 | camera_elevation="-.5"> | 5073 | camera_elevation="-.5"> |
5074 | <param_morph /> | 5074 | <param_morph /> |
5075 | </param> | 5075 | </param> |
5076 | 5076 | ||
5077 | <param | 5077 | <param |
5078 | id="847" | 5078 | id="847" |
5079 | group="1" | 5079 | group="1" |
5080 | name="skirt_bowlegs" | 5080 | name="skirt_bowlegs" |
5081 | label="legs skirt" | 5081 | label="legs skirt" |
5082 | wearable="skirt" | 5082 | wearable="skirt" |
5083 | value_min="-1" | 5083 | value_min="-1" |
5084 | value_max="1" | 5084 | value_max="1" |
5085 | value_default="0"> | 5085 | value_default="0"> |
5086 | <param_morph /> | 5086 | <param_morph /> |
5087 | </param> | 5087 | </param> |
5088 | 5088 | ||
5089 | <param | 5089 | <param |
5090 | id="852" | 5090 | id="852" |
5091 | group="1" | 5091 | group="1" |
5092 | name="skirt_bigbutt" | 5092 | name="skirt_bigbutt" |
5093 | label="bigbutt skirt" | 5093 | label="bigbutt skirt" |
5094 | label_min="less" | 5094 | label_min="less" |
5095 | label_max="more" | 5095 | label_max="more" |
5096 | value_min="0" | 5096 | value_min="0" |
5097 | value_max="1"> | 5097 | value_max="1"> |
5098 | <param_morph /> | 5098 | <param_morph /> |
5099 | </param> | 5099 | </param> |
5100 | 5100 | ||
5101 | <param | 5101 | <param |
5102 | id="849" | 5102 | id="849" |
5103 | group="1" | 5103 | group="1" |
5104 | name="skirt_belly" | 5104 | name="skirt_belly" |
5105 | label="big belly skirt" | 5105 | label="big belly skirt" |
5106 | value_min="0" | 5106 | value_min="0" |
5107 | value_max="1"> | 5107 | value_max="1"> |
5108 | <param_morph /> | 5108 | <param_morph /> |
5109 | </param> | 5109 | </param> |
5110 | 5110 | ||
5111 | <param | 5111 | <param |
5112 | id="850" | 5112 | id="850" |
5113 | group="1" | 5113 | group="1" |
5114 | name="skirt_saddlebags" | 5114 | name="skirt_saddlebags" |
5115 | value_min="-.5" | 5115 | value_min="-.5" |
5116 | value_max="3"> | 5116 | value_max="3"> |
5117 | <param_morph /> | 5117 | <param_morph /> |
5118 | </param> | 5118 | </param> |
5119 | 5119 | ||
5120 | <param | 5120 | <param |
5121 | id="851" | 5121 | id="851" |
5122 | group="1" | 5122 | group="1" |
5123 | name="skirt_chubby" | 5123 | name="skirt_chubby" |
5124 | label_min="less" | 5124 | label_min="less" |
5125 | label_max="more" | 5125 | label_max="more" |
5126 | value_min="0" | 5126 | value_min="0" |
5127 | value_max="1" | 5127 | value_max="1" |
5128 | value_default="0"> | 5128 | value_default="0"> |
5129 | <param_morph /> | 5129 | <param_morph /> |
5130 | </param> | 5130 | </param> |
5131 | 5131 | ||
5132 | <param | 5132 | <param |
5133 | id="856" | 5133 | id="856" |
5134 | group="1" | 5134 | group="1" |
5135 | name="skirt_lovehandles" | 5135 | name="skirt_lovehandles" |
5136 | label_min="less" | 5136 | label_min="less" |
5137 | label_max="more" | 5137 | label_max="more" |
5138 | value_min="-1" | 5138 | value_min="-1" |
5139 | value_max="2" | 5139 | value_max="2" |
5140 | value_default="0"> | 5140 | value_default="0"> |
5141 | <param_morph /> | 5141 | <param_morph /> |
5142 | </param> | 5142 | </param> |
5143 | 5143 | ||
5144 | <!-- | 5144 | <!-- |
5145 | ############# | 5145 | ############# |
5146 | # other morphs (not user controlled) | 5146 | # other morphs (not user controlled) |
5147 | ############# | 5147 | ############# |
5148 | --> | 5148 | --> |
5149 | <param | 5149 | <param |
5150 | id="857" | 5150 | id="857" |
5151 | group="1" | 5151 | group="1" |
5152 | name="skirt_male" | 5152 | name="skirt_male" |
5153 | value_min="0" | 5153 | value_min="0" |
5154 | value_max="1"> | 5154 | value_max="1"> |
5155 | <param_morph /> | 5155 | <param_morph /> |
5156 | </param> | 5156 | </param> |
5157 | </mesh> | 5157 | </mesh> |
5158 | 5158 | ||
5159 | <mesh | 5159 | <mesh |
5160 | type="skirtMesh" | 5160 | type="skirtMesh" |
5161 | lod="1" | 5161 | lod="1" |
5162 | file_name="avatar_skirt_1.llm" | 5162 | file_name="avatar_skirt_1.llm" |
5163 | min_pixel_width="160" | 5163 | min_pixel_width="160" |
5164 | reference="avatar_skirt.llm"> | 5164 | reference="avatar_skirt.llm"> |
5165 | </mesh> | 5165 | </mesh> |
5166 | 5166 | ||
5167 | <mesh | 5167 | <mesh |
5168 | type="skirtMesh" | 5168 | type="skirtMesh" |
5169 | lod="2" | 5169 | lod="2" |
5170 | file_name="avatar_skirt_2.llm" | 5170 | file_name="avatar_skirt_2.llm" |
5171 | min_pixel_width="80" | 5171 | min_pixel_width="80" |
5172 | reference="avatar_skirt.llm"> | 5172 | reference="avatar_skirt.llm"> |
5173 | </mesh> | 5173 | </mesh> |
5174 | 5174 | ||
5175 | <mesh | 5175 | <mesh |
5176 | type="skirtMesh" | 5176 | type="skirtMesh" |
5177 | lod="3" | 5177 | lod="3" |
5178 | file_name="avatar_skirt_3.llm" | 5178 | file_name="avatar_skirt_3.llm" |
5179 | min_pixel_width="40" | 5179 | min_pixel_width="40" |
5180 | reference="avatar_skirt.llm"> | 5180 | reference="avatar_skirt.llm"> |
5181 | </mesh> | 5181 | </mesh> |
5182 | 5182 | ||
5183 | <mesh | 5183 | <mesh |
5184 | type="skirtMesh" | 5184 | type="skirtMesh" |
5185 | lod="4" | 5185 | lod="4" |
5186 | file_name="avatar_skirt_4.llm" | 5186 | file_name="avatar_skirt_4.llm" |
5187 | min_pixel_width="0" | 5187 | min_pixel_width="0" |
5188 | reference="avatar_skirt.llm"> | 5188 | reference="avatar_skirt.llm"> |
5189 | </mesh> | 5189 | </mesh> |
5190 | 5190 | ||
5191 | <!-- =========================================================== --> | 5191 | <!-- =========================================================== --> |
5192 | <global_color | 5192 | <global_color |
5193 | name="skin_color"> | 5193 | name="skin_color"> |
5194 | <param | 5194 | <param |
5195 | id="111" | 5195 | id="111" |
5196 | group="0" | 5196 | group="0" |
5197 | wearable="skin" | 5197 | wearable="skin" |
5198 | edit_group="skin_color" | 5198 | edit_group="skin_color" |
5199 | edit_group_order="1" | 5199 | edit_group_order="1" |
5200 | name="Pigment" | 5200 | name="Pigment" |
5201 | show_simple="true" | 5201 | show_simple="true" |
5202 | label_min="Light" | 5202 | label_min="Light" |
5203 | label_max="Dark" | 5203 | label_max="Dark" |
5204 | value_min="0" | 5204 | value_min="0" |
5205 | value_max="1" | 5205 | value_max="1" |
5206 | value_default=".5"> | 5206 | value_default=".5"> |
5207 | <param_color> | 5207 | <param_color> |
5208 | <value | 5208 | <value |
5209 | color="252, 215, 200, 255" /> | 5209 | color="252, 215, 200, 255" /> |
5210 | 5210 | ||
5211 | <value | 5211 | <value |
5212 | color="240, 177, 112, 255" /> | 5212 | color="240, 177, 112, 255" /> |
5213 | 5213 | ||
5214 | <value | 5214 | <value |
5215 | color="90, 40, 16, 255" /> | 5215 | color="90, 40, 16, 255" /> |
5216 | 5216 | ||
5217 | <value | 5217 | <value |
5218 | color="29, 9, 6, 255" /> | 5218 | color="29, 9, 6, 255" /> |
5219 | </param_color> | 5219 | </param_color> |
5220 | </param> | 5220 | </param> |
5221 | 5221 | ||
5222 | <param | 5222 | <param |
5223 | id="110" | 5223 | id="110" |
5224 | group="0" | 5224 | group="0" |
5225 | wearable="skin" | 5225 | wearable="skin" |
5226 | edit_group="skin_color" | 5226 | edit_group="skin_color" |
5227 | edit_group_order="2" | 5227 | edit_group_order="2" |
5228 | name="Red Skin" | 5228 | name="Red Skin" |
5229 | label="Ruddiness" | 5229 | label="Ruddiness" |
5230 | label_min="Pale" | 5230 | label_min="Pale" |
5231 | label_max="Ruddy" | 5231 | label_max="Ruddy" |
5232 | value_min="0" | 5232 | value_min="0" |
5233 | value_max="0.1"> | 5233 | value_max="0.1"> |
5234 | <param_color | 5234 | <param_color |
5235 | operation="blend"> | 5235 | operation="blend"> |
5236 | <value | 5236 | <value |
5237 | color="218, 41, 37, 255" /> | 5237 | color="218, 41, 37, 255" /> |
5238 | </param_color> | 5238 | </param_color> |
5239 | </param> | 5239 | </param> |
5240 | 5240 | ||
5241 | <param | 5241 | <param |
5242 | id="108" | 5242 | id="108" |
5243 | group="0" | 5243 | group="0" |
5244 | wearable="skin" | 5244 | wearable="skin" |
5245 | edit_group="skin_color" | 5245 | edit_group="skin_color" |
5246 | edit_group_order="3" | 5246 | edit_group_order="3" |
5247 | name="Rainbow Color" | 5247 | name="Rainbow Color" |
5248 | show_simple="true" | 5248 | show_simple="true" |
5249 | label_min="None" | 5249 | label_min="None" |
5250 | label_max="Wild" | 5250 | label_max="Wild" |
5251 | value_min="0" | 5251 | value_min="0" |
5252 | value_max="1" | 5252 | value_max="1" |
5253 | camera_elevation=".1" | 5253 | camera_elevation=".1" |
5254 | camera_distance=".5"> | 5254 | camera_distance=".5"> |
5255 | <param_color> | 5255 | <param_color> |
5256 | <value | 5256 | <value |
5257 | color=" 0, 0, 0, 255" /> | 5257 | color=" 0, 0, 0, 255" /> |
5258 | 5258 | ||
5259 | <value | 5259 | <value |
5260 | color="255, 0, 255, 255" /> | 5260 | color="255, 0, 255, 255" /> |
5261 | 5261 | ||
5262 | <value | 5262 | <value |
5263 | color="255, 0, 0, 255" /> | 5263 | color="255, 0, 0, 255" /> |
5264 | 5264 | ||
5265 | <value | 5265 | <value |
5266 | color="255, 255, 0, 255" /> | 5266 | color="255, 255, 0, 255" /> |
5267 | 5267 | ||
5268 | <value | 5268 | <value |
5269 | color=" 0, 255, 0, 255" /> | 5269 | color=" 0, 255, 0, 255" /> |
5270 | 5270 | ||
5271 | <value | 5271 | <value |
5272 | color=" 0, 255, 255, 255" /> | 5272 | color=" 0, 255, 255, 255" /> |
5273 | 5273 | ||
5274 | <value | 5274 | <value |
5275 | color=" 0, 0, 255, 255" /> | 5275 | color=" 0, 0, 255, 255" /> |
5276 | 5276 | ||
5277 | <value | 5277 | <value |
5278 | color="255, 0, 255, 255" /> | 5278 | color="255, 0, 255, 255" /> |
5279 | </param_color> | 5279 | </param_color> |
5280 | </param> | 5280 | </param> |
5281 | </global_color> | 5281 | </global_color> |
5282 | 5282 | ||
5283 | <!-- =========================================================== --> | 5283 | <!-- =========================================================== --> |
5284 | <global_color | 5284 | <global_color |
5285 | name="hair_color"> | 5285 | name="hair_color"> |
5286 | <param | 5286 | <param |
5287 | id="114" | 5287 | id="114" |
5288 | group="0" | 5288 | group="0" |
5289 | wearable="hair" | 5289 | wearable="hair" |
5290 | edit_group="hair_color" | 5290 | edit_group="hair_color" |
5291 | edit_group_order="3" | 5291 | edit_group_order="3" |
5292 | name="Blonde Hair" | 5292 | name="Blonde Hair" |
5293 | show_simple="true" | 5293 | show_simple="true" |
5294 | label_min="Black" | 5294 | label_min="Black" |
5295 | label_max="Blonde" | 5295 | label_max="Blonde" |
5296 | value_min="0" | 5296 | value_min="0" |
5297 | value_max="1" | 5297 | value_max="1" |
5298 | value_default=".5" | 5298 | value_default=".5" |
5299 | camera_elevation=".1" | 5299 | camera_elevation=".1" |
5300 | camera_distance=".5"> | 5300 | camera_distance=".5"> |
5301 | <param_color> | 5301 | <param_color> |
5302 | <value | 5302 | <value |
5303 | color="0, 0, 0, 255" /> | 5303 | color="0, 0, 0, 255" /> |
5304 | 5304 | ||
5305 | <value | 5305 | <value |
5306 | color="22, 6, 6, 255" /> | 5306 | color="22, 6, 6, 255" /> |
5307 | 5307 | ||
5308 | <value | 5308 | <value |
5309 | color="29, 9, 6, 255" /> | 5309 | color="29, 9, 6, 255" /> |
5310 | 5310 | ||
5311 | <value | 5311 | <value |
5312 | color="45, 21, 11, 255" /> | 5312 | color="45, 21, 11, 255" /> |
5313 | 5313 | ||
5314 | <value | 5314 | <value |
5315 | color="78, 39, 11, 255" /> | 5315 | color="78, 39, 11, 255" /> |
5316 | 5316 | ||
5317 | <value | 5317 | <value |
5318 | color="90, 53, 16, 255" /> | 5318 | color="90, 53, 16, 255" /> |
5319 | 5319 | ||
5320 | <value | 5320 | <value |
5321 | color="136, 92, 21, 255" /> | 5321 | color="136, 92, 21, 255" /> |
5322 | 5322 | ||
5323 | <value | 5323 | <value |
5324 | color="150, 106, 33, 255" /> | 5324 | color="150, 106, 33, 255" /> |
5325 | 5325 | ||
5326 | <value | 5326 | <value |
5327 | color="198, 156, 74, 255" /> | 5327 | color="198, 156, 74, 255" /> |
5328 | 5328 | ||
5329 | <value | 5329 | <value |
5330 | color="233, 192, 103, 255" /> | 5330 | color="233, 192, 103, 255" /> |
5331 | 5331 | ||
5332 | <value | 5332 | <value |
5333 | color="238, 205, 136, 255" /> | 5333 | color="238, 205, 136, 255" /> |
5334 | </param_color> | 5334 | </param_color> |
5335 | </param> | 5335 | </param> |
5336 | 5336 | ||
5337 | <param | 5337 | <param |
5338 | id="113" | 5338 | id="113" |
5339 | group="0" | 5339 | group="0" |
5340 | wearable="hair" | 5340 | wearable="hair" |
5341 | edit_group="hair_color" | 5341 | edit_group="hair_color" |
5342 | edit_group_order="4" | 5342 | edit_group_order="4" |
5343 | name="Red Hair" | 5343 | name="Red Hair" |
5344 | show_simple="true" | 5344 | show_simple="true" |
5345 | label_min="No Red" | 5345 | label_min="No Red" |
5346 | label_max="Very Red" | 5346 | label_max="Very Red" |
5347 | value_min="0" | 5347 | value_min="0" |
5348 | value_max="1" | 5348 | value_max="1" |
5349 | camera_elevation=".1" | 5349 | camera_elevation=".1" |
5350 | camera_distance=".5"> | 5350 | camera_distance=".5"> |
5351 | <param_color> | 5351 | <param_color> |
5352 | <value | 5352 | <value |
5353 | color="0, 0, 0, 255" /> | 5353 | color="0, 0, 0, 255" /> |
5354 | 5354 | ||
5355 | <value | 5355 | <value |
5356 | color="118, 47, 19, 255" /> | 5356 | color="118, 47, 19, 255" /> |
5357 | </param_color> | 5357 | </param_color> |
5358 | </param> | 5358 | </param> |
5359 | 5359 | ||
5360 | <param | 5360 | <param |
5361 | id="115" | 5361 | id="115" |
5362 | group="0" | 5362 | group="0" |
5363 | wearable="hair" | 5363 | wearable="hair" |
5364 | edit_group="hair_color" | 5364 | edit_group="hair_color" |
5365 | edit_group_order="1" | 5365 | edit_group_order="1" |
5366 | name="White Hair" | 5366 | name="White Hair" |
5367 | show_simple="true" | 5367 | show_simple="true" |
5368 | label_min="No White" | 5368 | label_min="No White" |
5369 | label_max="All White" | 5369 | label_max="All White" |
5370 | value_min="0" | 5370 | value_min="0" |
5371 | value_max="1" | 5371 | value_max="1" |
5372 | camera_elevation=".1" | 5372 | camera_elevation=".1" |
5373 | camera_distance=".5"> | 5373 | camera_distance=".5"> |
5374 | <param_color> | 5374 | <param_color> |
5375 | <value | 5375 | <value |
5376 | color="0, 0, 0, 255" /> | 5376 | color="0, 0, 0, 255" /> |
5377 | 5377 | ||
5378 | <value | 5378 | <value |
5379 | color="255, 255, 255, 255" /> | 5379 | color="255, 255, 255, 255" /> |
5380 | </param_color> | 5380 | </param_color> |
5381 | </param> | 5381 | </param> |
5382 | 5382 | ||
5383 | <param | 5383 | <param |
5384 | id="112" | 5384 | id="112" |
5385 | group="0" | 5385 | group="0" |
5386 | wearable="hair" | 5386 | wearable="hair" |
5387 | edit_group="hair_color" | 5387 | edit_group="hair_color" |
5388 | edit_group_order="2" | 5388 | edit_group_order="2" |
5389 | name="Rainbow Color" | 5389 | name="Rainbow Color" |
5390 | show_simple="true" | 5390 | show_simple="true" |
5391 | label_min="None" | 5391 | label_min="None" |
5392 | label_max="Wild" | 5392 | label_max="Wild" |
5393 | value_min="0" | 5393 | value_min="0" |
5394 | value_max="1" | 5394 | value_max="1" |
5395 | camera_elevation=".1" | 5395 | camera_elevation=".1" |
5396 | camera_distance=".5"> | 5396 | camera_distance=".5"> |
5397 | <param_color> | 5397 | <param_color> |
5398 | <value | 5398 | <value |
5399 | color=" 0, 0, 0, 255" /> | 5399 | color=" 0, 0, 0, 255" /> |
5400 | 5400 | ||
5401 | <value | 5401 | <value |
5402 | color="255, 0, 255, 255" /> | 5402 | color="255, 0, 255, 255" /> |
5403 | 5403 | ||
5404 | <value | 5404 | <value |
5405 | color="255, 0, 0, 255" /> | 5405 | color="255, 0, 0, 255" /> |
5406 | 5406 | ||
5407 | <value | 5407 | <value |
5408 | color="255, 255, 0, 255" /> | 5408 | color="255, 255, 0, 255" /> |
5409 | 5409 | ||
5410 | <value | 5410 | <value |
5411 | color=" 0, 255, 0, 255" /> | 5411 | color=" 0, 255, 0, 255" /> |
5412 | 5412 | ||
5413 | <value | 5413 | <value |
5414 | color=" 0, 255, 255, 255" /> | 5414 | color=" 0, 255, 255, 255" /> |
5415 | 5415 | ||
5416 | <value | 5416 | <value |
5417 | color=" 0, 0, 255, 255" /> | 5417 | color=" 0, 0, 255, 255" /> |
5418 | 5418 | ||
5419 | <value | 5419 | <value |
5420 | color="255, 0, 255, 255" /> | 5420 | color="255, 0, 255, 255" /> |
5421 | </param_color> | 5421 | </param_color> |
5422 | </param> | 5422 | </param> |
5423 | </global_color> | 5423 | </global_color> |
5424 | 5424 | ||
5425 | <!-- =========================================================== --> | 5425 | <!-- =========================================================== --> |
5426 | <global_color | 5426 | <global_color |
5427 | name="eye_color"> | 5427 | name="eye_color"> |
5428 | <param | 5428 | <param |
5429 | id="99" | 5429 | id="99" |
5430 | group="0" | 5430 | group="0" |
5431 | wearable="eyes" | 5431 | wearable="eyes" |
5432 | edit_group="eyes" | 5432 | edit_group="eyes" |
5433 | edit_group_order="1" | 5433 | edit_group_order="1" |
5434 | name="Eye Color" | 5434 | name="Eye Color" |
5435 | show_simple="true" | 5435 | show_simple="true" |
5436 | label_min="Natural" | 5436 | label_min="Natural" |
5437 | label_max="Unnatural" | 5437 | label_max="Unnatural" |
5438 | value_min="0" | 5438 | value_min="0" |
5439 | value_max="1" | 5439 | value_max="1" |
5440 | value_default="0" | 5440 | value_default="0" |
5441 | camera_elevation=".1" | 5441 | camera_elevation=".1" |
5442 | camera_distance=".3"> | 5442 | camera_distance=".3"> |
5443 | <!-- default to natural brown eyes--> | 5443 | <!-- default to natural brown eyes--> |
5444 | <param_color> | 5444 | <param_color> |
5445 | <value | 5445 | <value |
5446 | color="50, 25, 5, 255" /> | 5446 | color="50, 25, 5, 255" /> |
5447 | 5447 | ||
5448 | <!-- natural dark brown eyes--> | 5448 | <!-- natural dark brown eyes--> |
5449 | <value | 5449 | <value |
5450 | color="109, 55, 15, 255" /> | 5450 | color="109, 55, 15, 255" /> |
5451 | 5451 | ||
5452 | <!-- natural brown eyes--> | 5452 | <!-- natural brown eyes--> |
5453 | <value | 5453 | <value |
5454 | color="150, 93, 49, 255" /> | 5454 | color="150, 93, 49, 255" /> |
5455 | 5455 | ||
5456 | <!-- natural light brown eyes--> | 5456 | <!-- natural light brown eyes--> |
5457 | <value | 5457 | <value |
5458 | color="152, 118, 25, 255" /> | 5458 | color="152, 118, 25, 255" /> |
5459 | 5459 | ||
5460 | <!--natural hazel eyes--> | 5460 | <!--natural hazel eyes--> |
5461 | <value | 5461 | <value |
5462 | color="95, 179, 107, 255" /> | 5462 | color="95, 179, 107, 255" /> |
5463 | 5463 | ||
5464 | <!--natural green eyes--> | 5464 | <!--natural green eyes--> |
5465 | <value | 5465 | <value |
5466 | color="87, 192, 191, 255" /> | 5466 | color="87, 192, 191, 255" /> |
5467 | 5467 | ||
5468 | <!--natural aqua eyes--> | 5468 | <!--natural aqua eyes--> |
5469 | <value | 5469 | <value |
5470 | color="95, 172, 179, 255" /> | 5470 | color="95, 172, 179, 255" /> |
5471 | 5471 | ||
5472 | <!--natural blue eyes--> | 5472 | <!--natural blue eyes--> |
5473 | <value | 5473 | <value |
5474 | color="128, 128, 128, 255" /> | 5474 | color="128, 128, 128, 255" /> |
5475 | 5475 | ||
5476 | <!--natural grey eyes--> | 5476 | <!--natural grey eyes--> |
5477 | <value | 5477 | <value |
5478 | color="0, 0, 0, 255" /> | 5478 | color="0, 0, 0, 255" /> |
5479 | 5479 | ||
5480 | <!--black eyes--> | 5480 | <!--black eyes--> |
5481 | <value | 5481 | <value |
5482 | color="255, 255, 0, 255" /> | 5482 | color="255, 255, 0, 255" /> |
5483 | 5483 | ||
5484 | <!--bright yellow eyes--> | 5484 | <!--bright yellow eyes--> |
5485 | <value | 5485 | <value |
5486 | color=" 0, 255, 0, 255" /> | 5486 | color=" 0, 255, 0, 255" /> |
5487 | 5487 | ||
5488 | <!-- bright green eyes--> | 5488 | <!-- bright green eyes--> |
5489 | <value | 5489 | <value |
5490 | color=" 0, 255, 255, 255" /> | 5490 | color=" 0, 255, 255, 255" /> |
5491 | 5491 | ||
5492 | <!-- bright cyan eyes--> | 5492 | <!-- bright cyan eyes--> |
5493 | <value | 5493 | <value |
5494 | color=" 0, 0, 255, 255" /> | 5494 | color=" 0, 0, 255, 255" /> |
5495 | 5495 | ||
5496 | <!--bright blue eyes--> | 5496 | <!--bright blue eyes--> |
5497 | <value | 5497 | <value |
5498 | color="255, 0, 255, 255" /> | 5498 | color="255, 0, 255, 255" /> |
5499 | 5499 | ||
5500 | <!-- bright violet eyes--> | 5500 | <!-- bright violet eyes--> |
5501 | <value | 5501 | <value |
5502 | color="255, 0, 0, 255" /> | 5502 | color="255, 0, 0, 255" /> |
5503 | 5503 | ||
5504 | <!--bright red eyes--> | 5504 | <!--bright red eyes--> |
5505 | </param_color> | 5505 | </param_color> |
5506 | </param> | 5506 | </param> |
5507 | 5507 | ||
5508 | <param | 5508 | <param |
5509 | id="98" | 5509 | id="98" |
5510 | group="0" | 5510 | group="0" |
5511 | wearable="eyes" | 5511 | wearable="eyes" |
5512 | edit_group="eyes" | 5512 | edit_group="eyes" |
5513 | edit_group_order="2" | 5513 | edit_group_order="2" |
5514 | name="Eye Lightness" | 5514 | name="Eye Lightness" |
5515 | show_simple="true" | 5515 | show_simple="true" |
5516 | label_min="Darker" | 5516 | label_min="Darker" |
5517 | label_max="Lighter" | 5517 | label_max="Lighter" |
5518 | value_min="0" | 5518 | value_min="0" |
5519 | value_max="1" | 5519 | value_max="1" |
5520 | camera_elevation=".1" | 5520 | camera_elevation=".1" |
5521 | camera_distance=".3"> | 5521 | camera_distance=".3"> |
5522 | <param_color> | 5522 | <param_color> |
5523 | <value | 5523 | <value |
5524 | color="0, 0, 0, 0" /> | 5524 | color="0, 0, 0, 0" /> |
5525 | 5525 | ||
5526 | <value | 5526 | <value |
5527 | color="255, 255, 255, 255" /> | 5527 | color="255, 255, 255, 255" /> |
5528 | </param_color> | 5528 | </param_color> |
5529 | </param> | 5529 | </param> |
5530 | </global_color> | 5530 | </global_color> |
5531 | 5531 | ||
5532 | <!-- =========================================================== --> | 5532 | <!-- =========================================================== --> |
5533 | <layer_set | 5533 | <layer_set |
5534 | body_region="hair" | 5534 | body_region="hair" |
5535 | width="512" | 5535 | width="512" |
5536 | height="512" | 5536 | height="512" |
5537 | clear_alpha="false"> | 5537 | clear_alpha="false"> |
5538 | <layer | 5538 | <layer |
5539 | name="base" | 5539 | name="base" |
5540 | global_color="hair_color" | 5540 | global_color="hair_color" |
5541 | write_all_channels="true"> | 5541 | write_all_channels="true"> |
5542 | <texture | 5542 | <texture |
5543 | local_texture="hair_grain" /> | 5543 | local_texture="hair_grain" /> |
5544 | </layer> | 5544 | </layer> |
5545 | 5545 | ||
5546 | <layer | 5546 | <layer |
5547 | name="hair texture alpha layer" | 5547 | name="hair texture alpha layer" |
5548 | visibility_mask="TRUE"> | 5548 | visibility_mask="TRUE"> |
5549 | <texture | 5549 | <texture |
5550 | local_texture="hair_grain" /> | 5550 | local_texture="hair_grain" /> |
5551 | </layer> | 5551 | </layer> |
5552 | 5552 | ||
5553 | <layer | 5553 | <layer |
5554 | name="hair alpha" | 5554 | name="hair alpha" |
5555 | visibility_mask="TRUE"> | 5555 | visibility_mask="TRUE"> |
5556 | <texture | 5556 | <texture |
5557 | local_texture="hair_alpha" /> | 5557 | local_texture="hair_alpha" /> |
5558 | </layer> | 5558 | </layer> |
5559 | </layer_set> | 5559 | </layer_set> |
5560 | <!-- =========================================================== --> | 5560 | <!-- =========================================================== --> |
5561 | 5561 | ||
5562 | <layer_set | 5562 | <layer_set |
5563 | body_region="head" | 5563 | body_region="head" |
5564 | width="512" | 5564 | width="512" |
5565 | height="512"> | 5565 | height="512"> |
5566 | <layer | 5566 | <layer |
5567 | name="head bump base" | 5567 | name="head bump base" |
5568 | fixed_color = "128,128,128,255" | 5568 | fixed_color = "128,128,128,255" |
5569 | render_pass="bump"> | 5569 | render_pass="bump"> |
5570 | </layer> | 5570 | </layer> |
5571 | 5571 | ||
5572 | <layer | 5572 | <layer |
5573 | name="head bump definition" | 5573 | name="head bump definition" |
5574 | render_pass="bump"> | 5574 | render_pass="bump"> |
5575 | 5575 | ||
5576 | <texture | 5576 | <texture |
5577 | tga_file="bump_head_base.tga" | 5577 | tga_file="bump_head_base.tga" |
5578 | file_is_mask="FALSE"/> | 5578 | file_is_mask="FALSE"/> |
5579 | 5579 | ||
5580 | <param | 5580 | <param |
5581 | id="873" | 5581 | id="873" |
5582 | group="1" | 5582 | group="1" |
5583 | wearable="skin" | 5583 | wearable="skin" |
5584 | edit_group="driven" | 5584 | edit_group="driven" |
5585 | edit_group_order="12" | 5585 | edit_group_order="12" |
5586 | name="Bump base" | 5586 | name="Bump base" |
5587 | value_min="0" | 5587 | value_min="0" |
5588 | value_max="1"> | 5588 | value_max="1"> |
5589 | <param_alpha | 5589 | <param_alpha |
5590 | domain="0" /> | 5590 | domain="0" /> |
5591 | </param> | 5591 | </param> |
5592 | </layer> | 5592 | </layer> |
5593 | 5593 | ||
5594 | <layer | 5594 | <layer |
5595 | name="base" | 5595 | name="base" |
5596 | global_color="skin_color"> | 5596 | global_color="skin_color"> |
5597 | <texture | 5597 | <texture |
5598 | tga_file="head_skingrain.tga" /> | 5598 | tga_file="head_skingrain.tga" /> |
5599 | </layer> | 5599 | </layer> |
5600 | 5600 | ||
5601 | <layer | 5601 | <layer |
5602 | name="headcolor"> | 5602 | name="headcolor"> |
5603 | <texture | 5603 | <texture |
5604 | tga_file="head_color.tga" /> | 5604 | tga_file="head_color.tga" /> |
5605 | </layer> | 5605 | </layer> |
5606 | 5606 | ||
5607 | <layer | 5607 | <layer |
5608 | name="shadow"> | 5608 | name="shadow"> |
5609 | <texture | 5609 | <texture |
5610 | tga_file="head_shading_alpha.tga" | 5610 | tga_file="head_shading_alpha.tga" |
5611 | file_is_mask="TRUE" /> | 5611 | file_is_mask="TRUE" /> |
5612 | 5612 | ||
5613 | <param | 5613 | <param |
5614 | id="158" | 5614 | id="158" |
5615 | group="1" | 5615 | group="1" |
5616 | wearable="skin" | 5616 | wearable="skin" |
5617 | name="Shading" | 5617 | name="Shading" |
5618 | value_min="0" | 5618 | value_min="0" |
5619 | value_max="1"> | 5619 | value_max="1"> |
5620 | <param_color> | 5620 | <param_color> |
5621 | <value | 5621 | <value |
5622 | color="0, 0, 0, 0" /> | 5622 | color="0, 0, 0, 0" /> |
5623 | 5623 | ||
5624 | <value | 5624 | <value |
5625 | color="0, 0, 0, 128" /> | 5625 | color="0, 0, 0, 128" /> |
5626 | </param_color> | 5626 | </param_color> |
5627 | </param> | 5627 | </param> |
5628 | </layer> | 5628 | </layer> |
5629 | 5629 | ||
5630 | <layer | 5630 | <layer |
5631 | name="highlight"> | 5631 | name="highlight"> |
5632 | <texture | 5632 | <texture |
5633 | tga_file="head_highlights_alpha.tga" | 5633 | tga_file="head_highlights_alpha.tga" |
5634 | file_is_mask="TRUE" /> | 5634 | file_is_mask="TRUE" /> |
5635 | 5635 | ||
5636 | 5636 | ||
5637 | <param | 5637 | <param |
5638 | id="159" | 5638 | id="159" |
5639 | group="1" | 5639 | group="1" |
5640 | name="Shading" | 5640 | name="Shading" |
5641 | wearable="skin" | 5641 | wearable="skin" |
5642 | value_min="0" | 5642 | value_min="0" |
5643 | value_max="1"> | 5643 | value_max="1"> |
5644 | <param_color> | 5644 | <param_color> |
5645 | <value | 5645 | <value |
5646 | color="255, 255, 255, 0" /> | 5646 | color="255, 255, 255, 0" /> |
5647 | 5647 | ||
5648 | 5648 | ||
5649 | <value | 5649 | <value |
5650 | color="255, 255, 255, 64" /> | 5650 | color="255, 255, 255, 64" /> |
5651 | </param_color> | 5651 | </param_color> |
5652 | </param> | 5652 | </param> |
5653 | </layer> | 5653 | </layer> |
5654 | <layer | 5654 | <layer |
5655 | name="rosyface"> | 5655 | name="rosyface"> |
5656 | <texture | 5656 | <texture |
5657 | tga_file="rosyface_alpha.tga" | 5657 | tga_file="rosyface_alpha.tga" |
5658 | file_is_mask="true" /> | 5658 | file_is_mask="true" /> |
5659 | 5659 | ||
5660 | <param | 5660 | <param |
5661 | id="116" | 5661 | id="116" |
5662 | group="0" | 5662 | group="0" |
5663 | wearable="skin" | 5663 | wearable="skin" |
5664 | edit_group="skin_facedetail" | 5664 | edit_group="skin_facedetail" |
5665 | edit_group_order="4" | 5665 | edit_group_order="4" |
5666 | name="Rosy Complexion" | 5666 | name="Rosy Complexion" |
5667 | label_min="Less Rosy" | 5667 | label_min="Less Rosy" |
5668 | label_max="More Rosy" | 5668 | label_max="More Rosy" |
5669 | value_min="0" | 5669 | value_min="0" |
5670 | value_max="1" | 5670 | value_max="1" |
5671 | camera_distance=".3" | 5671 | camera_distance=".3" |
5672 | camera_elevation=".07"> | 5672 | camera_elevation=".07"> |
5673 | <param_color> | 5673 | <param_color> |
5674 | <value | 5674 | <value |
5675 | color="198, 71, 71, 0" /> | 5675 | color="198, 71, 71, 0" /> |
5676 | 5676 | ||
5677 | <value | 5677 | <value |
5678 | color="198, 71, 71, 255" /> | 5678 | color="198, 71, 71, 255" /> |
5679 | </param_color> | 5679 | </param_color> |
5680 | </param> | 5680 | </param> |
5681 | </layer> | 5681 | </layer> |
5682 | 5682 | ||
5683 | <layer | 5683 | <layer |
5684 | name="lips"> | 5684 | name="lips"> |
5685 | <texture | 5685 | <texture |
5686 | tga_file="lips_mask.tga" | 5686 | tga_file="lips_mask.tga" |
5687 | file_is_mask="true" /> | 5687 | file_is_mask="true" /> |
5688 | 5688 | ||
5689 | <param | 5689 | <param |
5690 | id="117" | 5690 | id="117" |
5691 | group="0" | 5691 | group="0" |
5692 | wearable="skin" | 5692 | wearable="skin" |
5693 | edit_group="skin_facedetail" | 5693 | edit_group="skin_facedetail" |
5694 | edit_group_order="5" | 5694 | edit_group_order="5" |
5695 | name="Lip Pinkness" | 5695 | name="Lip Pinkness" |
5696 | label_min="Darker" | 5696 | label_min="Darker" |
5697 | label_max="Pinker" | 5697 | label_max="Pinker" |
5698 | value_min="0" | 5698 | value_min="0" |
5699 | value_max="1" | 5699 | value_max="1" |
5700 | camera_distance=".25"> | 5700 | camera_distance=".25"> |
5701 | <param_color> | 5701 | <param_color> |
5702 | <value | 5702 | <value |
5703 | color="220, 115, 115, 0" /> | 5703 | color="220, 115, 115, 0" /> |
5704 | 5704 | ||
5705 | <value | 5705 | <value |
5706 | color="220, 115, 115, 128" /> | 5706 | color="220, 115, 115, 128" /> |
5707 | </param_color> | 5707 | </param_color> |
5708 | </param> | 5708 | </param> |
5709 | </layer> | 5709 | </layer> |
5710 | 5710 | ||
5711 | <layer | 5711 | <layer |
5712 | name="wrinkles_shading" | 5712 | name="wrinkles_shading" |
5713 | render_pass="bump" | 5713 | render_pass="bump" |
5714 | fixed_color="0,0,0,100"> | 5714 | fixed_color="0,0,0,100"> |
5715 | <param | 5715 | <param |
5716 | id="118" | 5716 | id="118" |
5717 | group="1" | 5717 | group="1" |
5718 | wearable="skin" | 5718 | wearable="skin" |
5719 | name="Wrinkles" | 5719 | name="Wrinkles" |
5720 | value_min="0" | 5720 | value_min="0" |
5721 | value_max="1"> | 5721 | value_max="1"> |
5722 | <param_alpha | 5722 | <param_alpha |
5723 | tga_file="bump_face_wrinkles.tga" | 5723 | tga_file="bump_face_wrinkles.tga" |
5724 | skip_if_zero="true" | 5724 | skip_if_zero="true" |
5725 | domain="0.3" /> | 5725 | domain="0.3" /> |
5726 | </param> | 5726 | </param> |
5727 | </layer> | 5727 | </layer> |
5728 | 5728 | ||
5729 | <!--<layer | 5729 | <!--<layer |
5730 | name="wrinkles_highlights" | 5730 | name="wrinkles_highlights" |
5731 | fixed_color="255,255,255,64"> | 5731 | fixed_color="255,255,255,64"> |
5732 | <param | 5732 | <param |
5733 | id="128" | 5733 | id="128" |
5734 | group="1" | 5734 | group="1" |
5735 | name="Wrinkles" | 5735 | name="Wrinkles" |
5736 | value_min="0" | 5736 | value_min="0" |
5737 | value_max="1"> | 5737 | value_max="1"> |
5738 | <param_alpha | 5738 | <param_alpha |
5739 | tga_file="head_wrinkles_highlights_alpha.tga" | 5739 | tga_file="head_wrinkles_highlights_alpha.tga" |
5740 | skip_if_zero="true" | 5740 | skip_if_zero="true" |
5741 | domain="0.3" /> | 5741 | domain="0.3" /> |
5742 | </param> | 5742 | </param> |
5743 | </layer>--> | 5743 | </layer>--> |
5744 | <layer | 5744 | <layer |
5745 | name="freckles" | 5745 | name="freckles" |
5746 | fixed_color="120,47,20,128"> | 5746 | fixed_color="120,47,20,128"> |
5747 | <param | 5747 | <param |
5748 | id="165" | 5748 | id="165" |
5749 | group="0" | 5749 | group="0" |
5750 | wearable="skin" | 5750 | wearable="skin" |
5751 | edit_group="skin_facedetail" | 5751 | edit_group="skin_facedetail" |
5752 | edit_group_order="2" | 5752 | edit_group_order="2" |
5753 | name="Freckles" | 5753 | name="Freckles" |
5754 | label_min="Less" | 5754 | label_min="Less" |
5755 | label_max="More" | 5755 | label_max="More" |
5756 | value_min="0" | 5756 | value_min="0" |
5757 | value_max="1" | 5757 | value_max="1" |
5758 | camera_distance=".3" | 5758 | camera_distance=".3" |
5759 | camera_elevation=".07"> | 5759 | camera_elevation=".07"> |
5760 | <param_alpha | 5760 | <param_alpha |
5761 | tga_file="freckles_alpha.tga" | 5761 | tga_file="freckles_alpha.tga" |
5762 | skip_if_zero="true" | 5762 | skip_if_zero="true" |
5763 | domain="0.5" /> | 5763 | domain="0.5" /> |
5764 | </param> | 5764 | </param> |
5765 | </layer> | 5765 | </layer> |
5766 | <layer | 5766 | <layer |
5767 | name="eyebrowsbump" | 5767 | name="eyebrowsbump" |
5768 | render_pass="bump"> | 5768 | render_pass="bump"> |
5769 | <texture | 5769 | <texture |
5770 | tga_file="head_hair.tga" | 5770 | tga_file="head_hair.tga" |
5771 | file_is_mask="false" /> | 5771 | file_is_mask="false" /> |
5772 | 5772 | ||
5773 | <param | 5773 | <param |
5774 | id="1000" | 5774 | id="1000" |
5775 | group="1" | 5775 | group="1" |
5776 | wearable="hair" | 5776 | wearable="hair" |
5777 | edit_group="driven" | 5777 | edit_group="driven" |
5778 | name="Eyebrow Size Bump" | 5778 | name="Eyebrow Size Bump" |
5779 | value_min="0" | 5779 | value_min="0" |
5780 | value_max="1"> | 5780 | value_max="1"> |
5781 | <param_alpha | 5781 | <param_alpha |
5782 | tga_file="eyebrows_alpha.tga" | 5782 | tga_file="eyebrows_alpha.tga" |
5783 | domain="0.1" /> | 5783 | domain="0.1" /> |
5784 | </param> | 5784 | </param> |
5785 | 5785 | ||
5786 | <param | 5786 | <param |
5787 | id="1002" | 5787 | id="1002" |
5788 | group="1" | 5788 | group="1" |
5789 | wearable="hair" | 5789 | wearable="hair" |
5790 | edit_group="driven" | 5790 | edit_group="driven" |
5791 | name="Eyebrow Density Bump" | 5791 | name="Eyebrow Density Bump" |
5792 | value_min="0" | 5792 | value_min="0" |
5793 | value_max="1"> | 5793 | value_max="1"> |
5794 | <param_color> | 5794 | <param_color> |
5795 | <value | 5795 | <value |
5796 | color="255,255,255,0" /> | 5796 | color="255,255,255,0" /> |
5797 | 5797 | ||
5798 | <value | 5798 | <value |
5799 | color="255,255,255,255" /> | 5799 | color="255,255,255,255" /> |
5800 | </param_color> | 5800 | </param_color> |
5801 | </param> | 5801 | </param> |
5802 | </layer> | 5802 | </layer> |
5803 | 5803 | ||
5804 | <layer | 5804 | <layer |
5805 | name="eyebrows" | 5805 | name="eyebrows" |
5806 | global_color="hair_color"> | 5806 | global_color="hair_color"> |
5807 | <texture | 5807 | <texture |
5808 | tga_file="head_hair.tga" | 5808 | tga_file="head_hair.tga" |
5809 | file_is_mask="false" /> | 5809 | file_is_mask="false" /> |
5810 | 5810 | ||
5811 | <param | 5811 | <param |
5812 | id="1001" | 5812 | id="1001" |
5813 | group="1" | 5813 | group="1" |
5814 | wearable="hair" | 5814 | wearable="hair" |
5815 | edit_group="hair_eyebrows" | 5815 | edit_group="hair_eyebrows" |
5816 | name="Eyebrow Size" | 5816 | name="Eyebrow Size" |
5817 | show_simple="true" | 5817 | show_simple="true" |
5818 | value_min="0" | 5818 | value_min="0" |
5819 | value_max="1" | 5819 | value_max="1" |
5820 | value_default="0.5"> | 5820 | value_default="0.5"> |
5821 | <param_alpha | 5821 | <param_alpha |
5822 | tga_file="eyebrows_alpha.tga" | 5822 | tga_file="eyebrows_alpha.tga" |
5823 | domain="0.1" /> | 5823 | domain="0.1" /> |
5824 | </param> | 5824 | </param> |
5825 | 5825 | ||
5826 | <param | 5826 | <param |
5827 | id="1003" | 5827 | id="1003" |
5828 | group="1" | 5828 | group="1" |
5829 | edit_group="driven" | 5829 | edit_group="driven" |
5830 | name="Eyebrow Density" | 5830 | name="Eyebrow Density" |
5831 | value_min="0" | 5831 | value_min="0" |
5832 | value_max="1"> | 5832 | value_max="1"> |
5833 | <param_color | 5833 | <param_color |
5834 | operation="multiply"> | 5834 | operation="multiply"> |
5835 | <value | 5835 | <value |
5836 | color="255,255,255,0" /> | 5836 | color="255,255,255,0" /> |
5837 | 5837 | ||
5838 | <value | 5838 | <value |
5839 | color="255,255,255,255" /> | 5839 | color="255,255,255,255" /> |
5840 | </param_color> | 5840 | </param_color> |
5841 | </param> | 5841 | </param> |
5842 | </layer> | 5842 | </layer> |
5843 | 5843 | ||
5844 | <layer | 5844 | <layer |
5845 | name="lipstick"> | 5845 | name="lipstick"> |
5846 | <param | 5846 | <param |
5847 | id="700" | 5847 | id="700" |
5848 | group="0" | 5848 | group="0" |
5849 | wearable="skin" | 5849 | wearable="skin" |
5850 | edit_group="skin_makeup" | 5850 | edit_group="skin_makeup" |
5851 | edit_group_order="2" | 5851 | edit_group_order="2" |
5852 | name="Lipstick Color" | 5852 | name="Lipstick Color" |
5853 | label_min="Pink" | 5853 | label_min="Pink" |
5854 | label_max="Black" | 5854 | label_max="Black" |
5855 | value_min="0" | 5855 | value_min="0" |
5856 | value_max="1" | 5856 | value_max="1" |
5857 | value_default=".25" | 5857 | value_default=".25" |
5858 | camera_distance=".25"> | 5858 | camera_distance=".25"> |
5859 | <param_color> | 5859 | <param_color> |
5860 | <value | 5860 | <value |
5861 | color="245,161,177,200" /> | 5861 | color="245,161,177,200" /> |
5862 | 5862 | ||
5863 | <value | 5863 | <value |
5864 | color="216,37,67,200" /> | 5864 | color="216,37,67,200" /> |
5865 | 5865 | ||
5866 | <value | 5866 | <value |
5867 | color="178,48,76,200" /> | 5867 | color="178,48,76,200" /> |
5868 | 5868 | ||
5869 | <value | 5869 | <value |
5870 | color="68,0,11,200" /> | 5870 | color="68,0,11,200" /> |
5871 | 5871 | ||
5872 | <value | 5872 | <value |
5873 | color="252,207,184,200" /> | 5873 | color="252,207,184,200" /> |
5874 | 5874 | ||
5875 | <value | 5875 | <value |
5876 | color="241,136,106,200" /> | 5876 | color="241,136,106,200" /> |
5877 | 5877 | ||
5878 | <value | 5878 | <value |
5879 | color="208,110,85,200" /> | 5879 | color="208,110,85,200" /> |
5880 | 5880 | ||
5881 | <value | 5881 | <value |
5882 | color="106,28,18,200" /> | 5882 | color="106,28,18,200" /> |
5883 | 5883 | ||
5884 | <value | 5884 | <value |
5885 | color="58,26,49,200" /> | 5885 | color="58,26,49,200" /> |
5886 | 5886 | ||
5887 | <value | 5887 | <value |
5888 | color="14,14,14,200" /> | 5888 | color="14,14,14,200" /> |
5889 | </param_color> | 5889 | </param_color> |
5890 | </param> | 5890 | </param> |
5891 | 5891 | ||
5892 | <param | 5892 | <param |
5893 | id="701" | 5893 | id="701" |
5894 | group="0" | 5894 | group="0" |
5895 | wearable="skin" | 5895 | wearable="skin" |
5896 | edit_group="skin_makeup" | 5896 | edit_group="skin_makeup" |
5897 | edit_group_order="1" | 5897 | edit_group_order="1" |
5898 | name="Lipstick" | 5898 | name="Lipstick" |
5899 | label_min="No Lipstick" | 5899 | label_min="No Lipstick" |
5900 | label_max="More Lipstick" | 5900 | label_max="More Lipstick" |
5901 | value_min="0" | 5901 | value_min="0" |
5902 | value_max=".9" | 5902 | value_max=".9" |
5903 | value_default="0.0" | 5903 | value_default="0.0" |
5904 | camera_distance=".25"> | 5904 | camera_distance=".25"> |
5905 | <param_alpha | 5905 | <param_alpha |
5906 | tga_file="lipstick_alpha.tga" | 5906 | tga_file="lipstick_alpha.tga" |
5907 | skip_if_zero="true" | 5907 | skip_if_zero="true" |
5908 | domain="0.05" /> | 5908 | domain="0.05" /> |
5909 | </param> | 5909 | </param> |
5910 | </layer> | 5910 | </layer> |
5911 | 5911 | ||
5912 | <layer | 5912 | <layer |
5913 | name="lipgloss" | 5913 | name="lipgloss" |
5914 | fixed_color="255,255,255,190"> | 5914 | fixed_color="255,255,255,190"> |
5915 | <param | 5915 | <param |
5916 | id="702" | 5916 | id="702" |
5917 | name="Lipgloss" | 5917 | name="Lipgloss" |
5918 | label_min="No Lipgloss" | 5918 | label_min="No Lipgloss" |
5919 | label_max="Glossy" | 5919 | label_max="Glossy" |
5920 | wearable="skin" | 5920 | wearable="skin" |
5921 | edit_group="skin_makeup" | 5921 | edit_group="skin_makeup" |
5922 | edit_group_order="3" | 5922 | edit_group_order="3" |
5923 | group="0" | 5923 | group="0" |
5924 | value_min="0" | 5924 | value_min="0" |
5925 | value_max="1" | 5925 | value_max="1" |
5926 | camera_distance=".25"> | 5926 | camera_distance=".25"> |
5927 | <param_alpha | 5927 | <param_alpha |
5928 | tga_file="lipgloss_alpha.tga" | 5928 | tga_file="lipgloss_alpha.tga" |
5929 | skip_if_zero="true" | 5929 | skip_if_zero="true" |
5930 | domain="0.2" /> | 5930 | domain="0.2" /> |
5931 | </param> | 5931 | </param> |
5932 | </layer> | 5932 | </layer> |
5933 | 5933 | ||
5934 | <layer | 5934 | <layer |
5935 | name="blush"> | 5935 | name="blush"> |
5936 | <param | 5936 | <param |
5937 | id="704" | 5937 | id="704" |
5938 | group="0" | 5938 | group="0" |
5939 | wearable="skin" | 5939 | wearable="skin" |
5940 | edit_group="skin_makeup" | 5940 | edit_group="skin_makeup" |
5941 | edit_group_order="4" | 5941 | edit_group_order="4" |
5942 | name="Blush" | 5942 | name="Blush" |
5943 | label_min="No Blush" | 5943 | label_min="No Blush" |
5944 | label_max="More Blush" | 5944 | label_max="More Blush" |
5945 | value_min="0" | 5945 | value_min="0" |
5946 | value_max=".9" | 5946 | value_max=".9" |
5947 | value_default="0" | 5947 | value_default="0" |
5948 | camera_distance=".3" | 5948 | camera_distance=".3" |
5949 | camera_elevation=".07" | 5949 | camera_elevation=".07" |
5950 | camera_angle="20"> | 5950 | camera_angle="20"> |
5951 | <param_alpha | 5951 | <param_alpha |
5952 | tga_file="blush_alpha.tga" | 5952 | tga_file="blush_alpha.tga" |
5953 | skip_if_zero="true" | 5953 | skip_if_zero="true" |
5954 | domain="0.3" /> | 5954 | domain="0.3" /> |
5955 | </param> | 5955 | </param> |
5956 | 5956 | ||
5957 | <param | 5957 | <param |
5958 | id="705" | 5958 | id="705" |
5959 | group="0" | 5959 | group="0" |
5960 | wearable="skin" | 5960 | wearable="skin" |
5961 | edit_group="skin_makeup" | 5961 | edit_group="skin_makeup" |
5962 | edit_group_order="5" | 5962 | edit_group_order="5" |
5963 | name="Blush Color" | 5963 | name="Blush Color" |
5964 | label_min="Pink" | 5964 | label_min="Pink" |
5965 | label_max="Orange" | 5965 | label_max="Orange" |
5966 | value_min="0" | 5966 | value_min="0" |
5967 | value_max="1" | 5967 | value_max="1" |
5968 | value_default=".5" | 5968 | value_default=".5" |
5969 | camera_distance=".3" | 5969 | camera_distance=".3" |
5970 | camera_elevation=".07" | 5970 | camera_elevation=".07" |
5971 | camera_angle="20"> | 5971 | camera_angle="20"> |
5972 | <param_color> | 5972 | <param_color> |
5973 | <value | 5973 | <value |
5974 | color="253,162,193,200" /> | 5974 | color="253,162,193,200" /> |
5975 | 5975 | ||
5976 | <value | 5976 | <value |
5977 | color="247,131,152,200" /> | 5977 | color="247,131,152,200" /> |
5978 | 5978 | ||
5979 | <value | 5979 | <value |
5980 | color="213,122,140,200" /> | 5980 | color="213,122,140,200" /> |
5981 | 5981 | ||
5982 | <value | 5982 | <value |
5983 | color="253,152,144,200" /> | 5983 | color="253,152,144,200" /> |
5984 | 5984 | ||
5985 | <value | 5985 | <value |
5986 | color="236,138,103,200" /> | 5986 | color="236,138,103,200" /> |
5987 | 5987 | ||
5988 | <value | 5988 | <value |
5989 | color="195,128,122,200" /> | 5989 | color="195,128,122,200" /> |
5990 | 5990 | ||
5991 | <value | 5991 | <value |
5992 | color="148,103,100,200" /> | 5992 | color="148,103,100,200" /> |
5993 | 5993 | ||
5994 | <value | 5994 | <value |
5995 | color="168,95,62,200" /> | 5995 | color="168,95,62,200" /> |
5996 | </param_color> | 5996 | </param_color> |
5997 | </param> | 5997 | </param> |
5998 | 5998 | ||
5999 | <param | 5999 | <param |
6000 | id="711" | 6000 | id="711" |
6001 | group="0" | 6001 | group="0" |
6002 | wearable="skin" | 6002 | wearable="skin" |
6003 | edit_group="skin_makeup" | 6003 | edit_group="skin_makeup" |
6004 | edit_group_order="6" | 6004 | edit_group_order="6" |
6005 | name="Blush Opacity" | 6005 | name="Blush Opacity" |
6006 | label_min="Clear" | 6006 | label_min="Clear" |
6007 | label_max="Opaque" | 6007 | label_max="Opaque" |
6008 | value_min="0" | 6008 | value_min="0" |
6009 | value_max="1" | 6009 | value_max="1" |
6010 | value_default=".5" | 6010 | value_default=".5" |
6011 | camera_distance=".3" | 6011 | camera_distance=".3" |
6012 | camera_elevation=".07" | 6012 | camera_elevation=".07" |
6013 | camera_angle="20"> | 6013 | camera_angle="20"> |
6014 | <param_color | 6014 | <param_color |
6015 | operation="multiply"> | 6015 | operation="multiply"> |
6016 | <value | 6016 | <value |
6017 | color="255,255,255,0" /> | 6017 | color="255,255,255,0" /> |
6018 | 6018 | ||
6019 | <value | 6019 | <value |
6020 | color="255,255,255,255" /> | 6020 | color="255,255,255,255" /> |
6021 | </param_color> | 6021 | </param_color> |
6022 | </param> | 6022 | </param> |
6023 | </layer> | 6023 | </layer> |
6024 | 6024 | ||
6025 | <layer | 6025 | <layer |
6026 | name="Outer Eye Shadow"> | 6026 | name="Outer Eye Shadow"> |
6027 | <param | 6027 | <param |
6028 | id="708" | 6028 | id="708" |
6029 | group="0" | 6029 | group="0" |
6030 | wearable="skin" | 6030 | wearable="skin" |
6031 | edit_group="skin_makeup" | 6031 | edit_group="skin_makeup" |
6032 | edit_group_order="11" | 6032 | edit_group_order="11" |
6033 | name="Out Shdw Color" | 6033 | name="Out Shdw Color" |
6034 | label_min="Light" | 6034 | label_min="Light" |
6035 | label_max="Dark" | 6035 | label_max="Dark" |
6036 | value_min="0" | 6036 | value_min="0" |
6037 | value_max="1" | 6037 | value_max="1" |
6038 | camera_distance=".3" | 6038 | camera_distance=".3" |
6039 | camera_elevation=".14"> | 6039 | camera_elevation=".14"> |
6040 | <param_color> | 6040 | <param_color> |
6041 | <value | 6041 | <value |
6042 | color="252,247,246,255" /> | 6042 | color="252,247,246,255" /> |
6043 | 6043 | ||
6044 | <value | 6044 | <value |
6045 | color="255,206,206,255" /> | 6045 | color="255,206,206,255" /> |
6046 | 6046 | ||
6047 | <value | 6047 | <value |
6048 | color="233,135,149,255" /> | 6048 | color="233,135,149,255" /> |
6049 | 6049 | ||
6050 | <value | 6050 | <value |
6051 | color="220,168,192,255" /> | 6051 | color="220,168,192,255" /> |
6052 | 6052 | ||
6053 | <value | 6053 | <value |
6054 | color="228,203,232,255" /> | 6054 | color="228,203,232,255" /> |
6055 | 6055 | ||
6056 | <value | 6056 | <value |
6057 | color="255,234,195,255" /> | 6057 | color="255,234,195,255" /> |
6058 | 6058 | ||
6059 | <value | 6059 | <value |
6060 | color="230,157,101,255" /> | 6060 | color="230,157,101,255" /> |
6061 | 6061 | ||
6062 | <value | 6062 | <value |
6063 | color="255,147,86,255" /> | 6063 | color="255,147,86,255" /> |
6064 | 6064 | ||
6065 | <value | 6065 | <value |
6066 | color="228,110,89,255" /> | 6066 | color="228,110,89,255" /> |
6067 | 6067 | ||
6068 | <value | 6068 | <value |
6069 | color="228,150,120,255" /> | 6069 | color="228,150,120,255" /> |
6070 | 6070 | ||
6071 | <value | 6071 | <value |
6072 | color="223,227,213,255" /> | 6072 | color="223,227,213,255" /> |
6073 | 6073 | ||
6074 | <value | 6074 | <value |
6075 | color="96,116,87,255" /> | 6075 | color="96,116,87,255" /> |
6076 | 6076 | ||
6077 | <value | 6077 | <value |
6078 | color="88,143,107,255" /> | 6078 | color="88,143,107,255" /> |
6079 | 6079 | ||
6080 | <value | 6080 | <value |
6081 | color="194,231,223,255" /> | 6081 | color="194,231,223,255" /> |
6082 | 6082 | ||
6083 | <value | 6083 | <value |
6084 | color="207,227,234,255" /> | 6084 | color="207,227,234,255" /> |
6085 | 6085 | ||
6086 | <value | 6086 | <value |
6087 | color="41,171,212,255" /> | 6087 | color="41,171,212,255" /> |
6088 | 6088 | ||
6089 | <value | 6089 | <value |
6090 | color="180,137,130,255" /> | 6090 | color="180,137,130,255" /> |
6091 | 6091 | ||
6092 | <value | 6092 | <value |
6093 | color="173,125,105,255" /> | 6093 | color="173,125,105,255" /> |
6094 | 6094 | ||
6095 | <value | 6095 | <value |
6096 | color="144,95,98,255" /> | 6096 | color="144,95,98,255" /> |
6097 | 6097 | ||
6098 | <value | 6098 | <value |
6099 | color="115,70,77,255" /> | 6099 | color="115,70,77,255" /> |
6100 | 6100 | ||
6101 | <value | 6101 | <value |
6102 | color="155,78,47,255" /> | 6102 | color="155,78,47,255" /> |
6103 | 6103 | ||
6104 | <value | 6104 | <value |
6105 | color="239,239,239,255" /> | 6105 | color="239,239,239,255" /> |
6106 | 6106 | ||
6107 | <value | 6107 | <value |
6108 | color="194,194,194,255" /> | 6108 | color="194,194,194,255" /> |
6109 | 6109 | ||
6110 | <value | 6110 | <value |
6111 | color="120,120,120,255" /> | 6111 | color="120,120,120,255" /> |
6112 | 6112 | ||
6113 | <value | 6113 | <value |
6114 | color="10,10,10,255" /> | 6114 | color="10,10,10,255" /> |
6115 | </param_color> | 6115 | </param_color> |
6116 | </param> | 6116 | </param> |
6117 | 6117 | ||
6118 | <param | 6118 | <param |
6119 | id="706" | 6119 | id="706" |
6120 | group="0" | 6120 | group="0" |
6121 | wearable="skin" | 6121 | wearable="skin" |
6122 | edit_group="skin_makeup" | 6122 | edit_group="skin_makeup" |
6123 | edit_group_order="12" | 6123 | edit_group_order="12" |
6124 | name="Out Shdw Opacity" | 6124 | name="Out Shdw Opacity" |
6125 | label_min="Clear" | 6125 | label_min="Clear" |
6126 | label_max="Opaque" | 6126 | label_max="Opaque" |
6127 | value_min=".2" | 6127 | value_min=".2" |
6128 | value_max="1" | 6128 | value_max="1" |
6129 | value_default=".6" | 6129 | value_default=".6" |
6130 | camera_distance=".3" | 6130 | camera_distance=".3" |
6131 | camera_elevation=".14"> | 6131 | camera_elevation=".14"> |
6132 | <param_color | 6132 | <param_color |
6133 | operation="multiply"> | 6133 | operation="multiply"> |
6134 | <value | 6134 | <value |
6135 | color="255,255,255,0" /> | 6135 | color="255,255,255,0" /> |
6136 | 6136 | ||
6137 | <value | 6137 | <value |
6138 | color="255,255,255,255" /> | 6138 | color="255,255,255,255" /> |
6139 | </param_color> | 6139 | </param_color> |
6140 | </param> | 6140 | </param> |
6141 | 6141 | ||
6142 | <param | 6142 | <param |
6143 | id="707" | 6143 | id="707" |
6144 | group="0" | 6144 | group="0" |
6145 | wearable="skin" | 6145 | wearable="skin" |
6146 | edit_group="skin_makeup" | 6146 | edit_group="skin_makeup" |
6147 | edit_group_order="10" | 6147 | edit_group_order="10" |
6148 | name="Outer Shadow" | 6148 | name="Outer Shadow" |
6149 | label_min="No Eyeshadow" | 6149 | label_min="No Eyeshadow" |
6150 | label_max="More Eyeshadow" | 6150 | label_max="More Eyeshadow" |
6151 | value_min="0" | 6151 | value_min="0" |
6152 | value_max=".7" | 6152 | value_max=".7" |
6153 | camera_distance=".3" | 6153 | camera_distance=".3" |
6154 | camera_elevation=".14"> | 6154 | camera_elevation=".14"> |
6155 | <param_alpha | 6155 | <param_alpha |
6156 | tga_file="eyeshadow_outer_alpha.tga" | 6156 | tga_file="eyeshadow_outer_alpha.tga" |
6157 | skip_if_zero="true" | 6157 | skip_if_zero="true" |
6158 | domain="0.05" /> | 6158 | domain="0.05" /> |
6159 | </param> | 6159 | </param> |
6160 | </layer> | 6160 | </layer> |
6161 | 6161 | ||
6162 | <layer | 6162 | <layer |
6163 | name="Inner Eye Shadow"> | 6163 | name="Inner Eye Shadow"> |
6164 | <param | 6164 | <param |
6165 | id="712" | 6165 | id="712" |
6166 | group="0" | 6166 | group="0" |
6167 | wearable="skin" | 6167 | wearable="skin" |
6168 | edit_group="skin_makeup" | 6168 | edit_group="skin_makeup" |
6169 | edit_group_order="8" | 6169 | edit_group_order="8" |
6170 | name="In Shdw Color" | 6170 | name="In Shdw Color" |
6171 | label_min="Light" | 6171 | label_min="Light" |
6172 | label_max="Dark" | 6172 | label_max="Dark" |
6173 | value_min="0" | 6173 | value_min="0" |
6174 | value_max="1" | 6174 | value_max="1" |
6175 | camera_distance=".3" | 6175 | camera_distance=".3" |
6176 | camera_elevation=".14"> | 6176 | camera_elevation=".14"> |
6177 | <param_color> | 6177 | <param_color> |
6178 | <value | 6178 | <value |
6179 | color="252,247,246,255" /> | 6179 | color="252,247,246,255" /> |
6180 | 6180 | ||
6181 | <value | 6181 | <value |
6182 | color="255,206,206,255" /> | 6182 | color="255,206,206,255" /> |
6183 | 6183 | ||
6184 | <value | 6184 | <value |
6185 | color="233,135,149,255" /> | 6185 | color="233,135,149,255" /> |
6186 | 6186 | ||
6187 | <value | 6187 | <value |
6188 | color="220,168,192,255" /> | 6188 | color="220,168,192,255" /> |
6189 | 6189 | ||
6190 | <value | 6190 | <value |
6191 | color="228,203,232,255" /> | 6191 | color="228,203,232,255" /> |
6192 | 6192 | ||
6193 | <value | 6193 | <value |
6194 | color="255,234,195,255" /> | 6194 | color="255,234,195,255" /> |
6195 | 6195 | ||
6196 | <value | 6196 | <value |
6197 | color="230,157,101,255" /> | 6197 | color="230,157,101,255" /> |
6198 | 6198 | ||
6199 | <value | 6199 | <value |
6200 | color="255,147,86,255" /> | 6200 | color="255,147,86,255" /> |
6201 | 6201 | ||
6202 | <value | 6202 | <value |
6203 | color="228,110,89,255" /> | 6203 | color="228,110,89,255" /> |
6204 | 6204 | ||
6205 | <value | 6205 | <value |
6206 | color="228,150,120,255" /> | 6206 | color="228,150,120,255" /> |
6207 | 6207 | ||
6208 | <value | 6208 | <value |
6209 | color="223,227,213,255" /> | 6209 | color="223,227,213,255" /> |
6210 | 6210 | ||
6211 | <value | 6211 | <value |
6212 | color="96,116,87,255" /> | 6212 | color="96,116,87,255" /> |
6213 | 6213 | ||
6214 | <value | 6214 | <value |
6215 | color="88,143,107,255" /> | 6215 | color="88,143,107,255" /> |
6216 | 6216 | ||
6217 | <value | 6217 | <value |
6218 | color="194,231,223,255" /> | 6218 | color="194,231,223,255" /> |
6219 | 6219 | ||
6220 | <value | 6220 | <value |
6221 | color="207,227,234,255" /> | 6221 | color="207,227,234,255" /> |
6222 | 6222 | ||
6223 | <value | 6223 | <value |
6224 | color="41,171,212,255" /> | 6224 | color="41,171,212,255" /> |
6225 | 6225 | ||
6226 | <value | 6226 | <value |
6227 | color="180,137,130,255" /> | 6227 | color="180,137,130,255" /> |
6228 | 6228 | ||
6229 | <value | 6229 | <value |
6230 | color="173,125,105,255" /> | 6230 | color="173,125,105,255" /> |
6231 | 6231 | ||
6232 | <value | 6232 | <value |
6233 | color="144,95,98,255" /> | 6233 | color="144,95,98,255" /> |
6234 | 6234 | ||
6235 | <value | 6235 | <value |
6236 | color="115,70,77,255" /> | 6236 | color="115,70,77,255" /> |
6237 | 6237 | ||
6238 | <value | 6238 | <value |
6239 | color="155,78,47,255" /> | 6239 | color="155,78,47,255" /> |
6240 | 6240 | ||
6241 | <value | 6241 | <value |
6242 | color="239,239,239,255" /> | 6242 | color="239,239,239,255" /> |
6243 | 6243 | ||
6244 | <value | 6244 | <value |
6245 | color="194,194,194,255" /> | 6245 | color="194,194,194,255" /> |
6246 | 6246 | ||
6247 | <value | 6247 | <value |
6248 | color="120,120,120,255" /> | 6248 | color="120,120,120,255" /> |
6249 | 6249 | ||
6250 | <value | 6250 | <value |
6251 | color="10,10,10,255" /> | 6251 | color="10,10,10,255" /> |
6252 | </param_color> | 6252 | </param_color> |
6253 | </param> | 6253 | </param> |
6254 | 6254 | ||
6255 | <param | 6255 | <param |
6256 | id="713" | 6256 | id="713" |
6257 | group="0" | 6257 | group="0" |
6258 | wearable="skin" | 6258 | wearable="skin" |
6259 | edit_group="skin_makeup" | 6259 | edit_group="skin_makeup" |
6260 | edit_group_order="9" | 6260 | edit_group_order="9" |
6261 | name="In Shdw Opacity" | 6261 | name="In Shdw Opacity" |
6262 | label_min="Clear" | 6262 | label_min="Clear" |
6263 | label_max="Opaque" | 6263 | label_max="Opaque" |
6264 | value_min=".2" | 6264 | value_min=".2" |
6265 | value_max="1" | 6265 | value_max="1" |
6266 | value_default=".7" | 6266 | value_default=".7" |
6267 | camera_distance=".3" | 6267 | camera_distance=".3" |
6268 | camera_elevation=".14"> | 6268 | camera_elevation=".14"> |
6269 | <param_color | 6269 | <param_color |
6270 | operation="multiply"> | 6270 | operation="multiply"> |
6271 | <value | 6271 | <value |
6272 | color="255,255,255,0" /> | 6272 | color="255,255,255,0" /> |
6273 | 6273 | ||
6274 | <value | 6274 | <value |
6275 | color="255,255,255,255" /> | 6275 | color="255,255,255,255" /> |
6276 | </param_color> | 6276 | </param_color> |
6277 | </param> | 6277 | </param> |
6278 | 6278 | ||
6279 | <param | 6279 | <param |
6280 | id="709" | 6280 | id="709" |
6281 | group="0" | 6281 | group="0" |
6282 | wearable="skin" | 6282 | wearable="skin" |
6283 | edit_group="skin_makeup" | 6283 | edit_group="skin_makeup" |
6284 | edit_group_order="7" | 6284 | edit_group_order="7" |
6285 | name="Inner Shadow" | 6285 | name="Inner Shadow" |
6286 | label_min="No Eyeshadow" | 6286 | label_min="No Eyeshadow" |
6287 | label_max="More Eyeshadow" | 6287 | label_max="More Eyeshadow" |
6288 | value_min="0" | 6288 | value_min="0" |
6289 | value_max="1" | 6289 | value_max="1" |
6290 | value_default="0" | 6290 | value_default="0" |
6291 | camera_distance=".3" | 6291 | camera_distance=".3" |
6292 | camera_elevation=".14"> | 6292 | camera_elevation=".14"> |
6293 | <param_alpha | 6293 | <param_alpha |
6294 | tga_file="eyeshadow_inner_alpha.tga" | 6294 | tga_file="eyeshadow_inner_alpha.tga" |
6295 | skip_if_zero="true" | 6295 | skip_if_zero="true" |
6296 | domain="0.2" /> | 6296 | domain="0.2" /> |
6297 | </param> | 6297 | </param> |
6298 | </layer> | 6298 | </layer> |
6299 | 6299 | ||
6300 | <layer | 6300 | <layer |
6301 | name="eyeliner" | 6301 | name="eyeliner" |
6302 | fixed_color="0,0,0,200"> | 6302 | fixed_color="0,0,0,200"> |
6303 | <param | 6303 | <param |
6304 | id="703" | 6304 | id="703" |
6305 | group="0" | 6305 | group="0" |
6306 | wearable="skin" | 6306 | wearable="skin" |
6307 | edit_group="skin_makeup" | 6307 | edit_group="skin_makeup" |
6308 | edit_group_order="13" | 6308 | edit_group_order="13" |
6309 | name="Eyeliner" | 6309 | name="Eyeliner" |
6310 | label_min="No Eyeliner" | 6310 | label_min="No Eyeliner" |
6311 | label_max="Full Eyeliner" | 6311 | label_max="Full Eyeliner" |
6312 | value_min="0" | 6312 | value_min="0" |
6313 | value_max="1" | 6313 | value_max="1" |
6314 | value_default="0.0" | 6314 | value_default="0.0" |
6315 | camera_distance=".3" | 6315 | camera_distance=".3" |
6316 | camera_elevation=".14"> | 6316 | camera_elevation=".14"> |
6317 | <param_alpha | 6317 | <param_alpha |
6318 | tga_file="eyeliner_alpha.tga" | 6318 | tga_file="eyeliner_alpha.tga" |
6319 | skip_if_zero="true" | 6319 | skip_if_zero="true" |
6320 | domain="0.1" /> | 6320 | domain="0.1" /> |
6321 | </param> | 6321 | </param> |
6322 | 6322 | ||
6323 | <param | 6323 | <param |
6324 | id="714" | 6324 | id="714" |
6325 | group="0" | 6325 | group="0" |
6326 | wearable="skin" | 6326 | wearable="skin" |
6327 | edit_group="skin_makeup" | 6327 | edit_group="skin_makeup" |
6328 | edit_group_order="14" | 6328 | edit_group_order="14" |
6329 | name="Eyeliner Color" | 6329 | name="Eyeliner Color" |
6330 | label_min="Dark Green" | 6330 | label_min="Dark Green" |
6331 | label_max="Black" | 6331 | label_max="Black" |
6332 | value_min="0" | 6332 | value_min="0" |
6333 | value_max="1" | 6333 | value_max="1" |
6334 | camera_distance=".3" | 6334 | camera_distance=".3" |
6335 | camera_elevation=".14"> | 6335 | camera_elevation=".14"> |
6336 | <param_color> | 6336 | <param_color> |
6337 | <value | 6337 | <value |
6338 | color="24,98,40,250" /> | 6338 | color="24,98,40,250" /> |
6339 | 6339 | ||
6340 | <!-- dark green --> | 6340 | <!-- dark green --> |
6341 | <value | 6341 | <value |
6342 | color="9,100,127,250" /> | 6342 | color="9,100,127,250" /> |
6343 | 6343 | ||
6344 | <!-- lt.aqua blue --> | 6344 | <!-- lt.aqua blue --> |
6345 | <value | 6345 | <value |
6346 | color="61,93,134,250" /> | 6346 | color="61,93,134,250" /> |
6347 | 6347 | ||
6348 | <!-- aqua --> | 6348 | <!-- aqua --> |
6349 | <value | 6349 | <value |
6350 | color="70,29,27,250" /> | 6350 | color="70,29,27,250" /> |
6351 | 6351 | ||
6352 | <!-- dark brown --> | 6352 | <!-- dark brown --> |
6353 | <value | 6353 | <value |
6354 | color="115,75,65,250" /> | 6354 | color="115,75,65,250" /> |
6355 | 6355 | ||
6356 | <!-- lt. brown blue --> | 6356 | <!-- lt. brown blue --> |
6357 | <value | 6357 | <value |
6358 | color="100,100,100,250" /> | 6358 | color="100,100,100,250" /> |
6359 | 6359 | ||
6360 | <!-- grey --> | 6360 | <!-- grey --> |
6361 | <value | 6361 | <value |
6362 | color="91,80,74,250" /> | 6362 | color="91,80,74,250" /> |
6363 | 6363 | ||
6364 | <!-- grey/brown --> | 6364 | <!-- grey/brown --> |
6365 | <value | 6365 | <value |
6366 | color="112,42,76,250" /> | 6366 | color="112,42,76,250" /> |
6367 | 6367 | ||
6368 | <!-- plum --> | 6368 | <!-- plum --> |
6369 | <value | 6369 | <value |
6370 | color="14,14,14,250" /> | 6370 | color="14,14,14,250" /> |
6371 | 6371 | ||
6372 | <!-- black --> | 6372 | <!-- black --> |
6373 | </param_color> | 6373 | </param_color> |
6374 | </param> | 6374 | </param> |
6375 | </layer> | 6375 | </layer> |
6376 | 6376 | ||
6377 | <layer | 6377 | <layer |
6378 | name="facialhair bump" | 6378 | name="facialhair bump" |
6379 | render_pass="bump"> | 6379 | render_pass="bump"> |
6380 | <texture | 6380 | <texture |
6381 | tga_file="head_hair.tga" | 6381 | tga_file="head_hair.tga" |
6382 | file_is_mask="false" /> | 6382 | file_is_mask="false" /> |
6383 | 6383 | ||
6384 | <param | 6384 | <param |
6385 | id="1004" | 6385 | id="1004" |
6386 | sex="male" | 6386 | sex="male" |
6387 | group="1" | 6387 | group="1" |
6388 | wearable="hair" | 6388 | wearable="hair" |
6389 | edit_group="driven" | 6389 | edit_group="driven" |
6390 | name="Sideburns bump" | 6390 | name="Sideburns bump" |
6391 | value_min="0" | 6391 | value_min="0" |
6392 | value_max="1"> | 6392 | value_max="1"> |
6393 | <param_alpha | 6393 | <param_alpha |
6394 | tga_file="facehair_sideburns_alpha.tga" | 6394 | tga_file="facehair_sideburns_alpha.tga" |
6395 | skip_if_zero="true" | 6395 | skip_if_zero="true" |
6396 | domain="0.05" /> | 6396 | domain="0.05" /> |
6397 | </param> | 6397 | </param> |
6398 | 6398 | ||
6399 | <param | 6399 | <param |
6400 | id="1006" | 6400 | id="1006" |
6401 | sex="male" | 6401 | sex="male" |
6402 | group="1" | 6402 | group="1" |
6403 | wearable="hair" | 6403 | wearable="hair" |
6404 | edit_group="driven" | 6404 | edit_group="driven" |
6405 | name="Moustache bump" | 6405 | name="Moustache bump" |
6406 | value_min="0" | 6406 | value_min="0" |
6407 | value_max="1"> | 6407 | value_max="1"> |
6408 | <param_alpha | 6408 | <param_alpha |
6409 | tga_file="facehair_moustache_alpha.tga" | 6409 | tga_file="facehair_moustache_alpha.tga" |
6410 | skip_if_zero="true" | 6410 | skip_if_zero="true" |
6411 | domain="0.05" /> | 6411 | domain="0.05" /> |
6412 | </param> | 6412 | </param> |
6413 | 6413 | ||
6414 | <param | 6414 | <param |
6415 | id="1008" | 6415 | id="1008" |
6416 | sex="male" | 6416 | sex="male" |
6417 | group="1" | 6417 | group="1" |
6418 | wearable="hair" | 6418 | wearable="hair" |
6419 | edit_group="driven" | 6419 | edit_group="driven" |
6420 | name="Soulpatch bump" | 6420 | name="Soulpatch bump" |
6421 | value_min="0" | 6421 | value_min="0" |
6422 | value_max="1"> | 6422 | value_max="1"> |
6423 | <param_alpha | 6423 | <param_alpha |
6424 | tga_file="facehair_soulpatch_alpha.tga" | 6424 | tga_file="facehair_soulpatch_alpha.tga" |
6425 | skip_if_zero="true" | 6425 | skip_if_zero="true" |
6426 | domain="0.1" /> | 6426 | domain="0.1" /> |
6427 | </param> | 6427 | </param> |
6428 | 6428 | ||
6429 | <param | 6429 | <param |
6430 | id="1010" | 6430 | id="1010" |
6431 | sex="male" | 6431 | sex="male" |
6432 | group="1" | 6432 | group="1" |
6433 | edit_group="driven" | 6433 | edit_group="driven" |
6434 | wearable="hair" | 6434 | wearable="hair" |
6435 | name="Chin Curtains bump" | 6435 | name="Chin Curtains bump" |
6436 | value_min="0" | 6436 | value_min="0" |
6437 | value_max="1"> | 6437 | value_max="1"> |
6438 | <param_alpha | 6438 | <param_alpha |
6439 | tga_file="facehair_chincurtains_alpha.tga" | 6439 | tga_file="facehair_chincurtains_alpha.tga" |
6440 | skip_if_zero="true" | 6440 | skip_if_zero="true" |
6441 | domain="0.03" /> | 6441 | domain="0.03" /> |
6442 | </param> | 6442 | </param> |
6443 | 6443 | ||
6444 | <param | 6444 | <param |
6445 | id="1012" | 6445 | id="1012" |
6446 | group="1" | 6446 | group="1" |
6447 | sex="male" | 6447 | sex="male" |
6448 | wearable="hair" | 6448 | wearable="hair" |
6449 | edit_group="driven" | 6449 | edit_group="driven" |
6450 | name="5 O'Clock Shadow bump" | 6450 | name="5 O'Clock Shadow bump" |
6451 | value_min="0" | 6451 | value_min="0" |
6452 | value_max="1"> | 6452 | value_max="1"> |
6453 | <param_color> | 6453 | <param_color> |
6454 | <value | 6454 | <value |
6455 | color="255,255,255,255" /> | 6455 | color="255,255,255,255" /> |
6456 | 6456 | ||
6457 | <value | 6457 | <value |
6458 | color="255,255,255,0" /> | 6458 | color="255,255,255,0" /> |
6459 | </param_color> | 6459 | </param_color> |
6460 | </param> | 6460 | </param> |
6461 | </layer> | 6461 | </layer> |
6462 | 6462 | ||
6463 | <layer | 6463 | <layer |
6464 | name="facialhair" | 6464 | name="facialhair" |
6465 | global_color="hair_color"> | 6465 | global_color="hair_color"> |
6466 | <morph_mask | 6466 | <morph_mask |
6467 | morph_name="Displace_Hair_Facial" /> | 6467 | morph_name="Displace_Hair_Facial" /> |
6468 | 6468 | ||
6469 | <texture | 6469 | <texture |
6470 | tga_file="head_hair.tga" | 6470 | tga_file="head_hair.tga" |
6471 | file_is_mask="false" /> | 6471 | file_is_mask="false" /> |
6472 | 6472 | ||
6473 | <param | 6473 | <param |
6474 | id="1005" | 6474 | id="1005" |
6475 | sex="male" | 6475 | sex="male" |
6476 | group="1" | 6476 | group="1" |
6477 | edit_group="driven" | 6477 | edit_group="driven" |
6478 | name="Sideburns" | 6478 | name="Sideburns" |
6479 | value_min="0" | 6479 | value_min="0" |
6480 | value_max="1"> | 6480 | value_max="1"> |
6481 | <param_alpha | 6481 | <param_alpha |
6482 | tga_file="facehair_sideburns_alpha.tga" | 6482 | tga_file="facehair_sideburns_alpha.tga" |
6483 | skip_if_zero="true" | 6483 | skip_if_zero="true" |
6484 | domain="0.05" /> | 6484 | domain="0.05" /> |
6485 | </param> | 6485 | </param> |
6486 | 6486 | ||
6487 | <param | 6487 | <param |
6488 | id="1007" | 6488 | id="1007" |
6489 | sex="male" | 6489 | sex="male" |
6490 | group="1" | 6490 | group="1" |
6491 | edit_group="driven" | 6491 | edit_group="driven" |
6492 | name="Moustache" | 6492 | name="Moustache" |
6493 | value_min="0" | 6493 | value_min="0" |
6494 | value_max="1"> | 6494 | value_max="1"> |
6495 | <param_alpha | 6495 | <param_alpha |
6496 | tga_file="facehair_moustache_alpha.tga" | 6496 | tga_file="facehair_moustache_alpha.tga" |
6497 | skip_if_zero="true" | 6497 | skip_if_zero="true" |
6498 | domain="0.05" /> | 6498 | domain="0.05" /> |
6499 | </param> | 6499 | </param> |
6500 | 6500 | ||
6501 | <param | 6501 | <param |
6502 | id="1009" | 6502 | id="1009" |
6503 | sex="male" | 6503 | sex="male" |
6504 | group="1" | 6504 | group="1" |
6505 | edit_group="driven" | 6505 | edit_group="driven" |
6506 | name="Soulpatch" | 6506 | name="Soulpatch" |
6507 | value_min="0" | 6507 | value_min="0" |
6508 | value_max="1"> | 6508 | value_max="1"> |
6509 | <param_alpha | 6509 | <param_alpha |
6510 | tga_file="facehair_soulpatch_alpha.tga" | 6510 | tga_file="facehair_soulpatch_alpha.tga" |
6511 | skip_if_zero="true" | 6511 | skip_if_zero="true" |
6512 | domain="0.1" /> | 6512 | domain="0.1" /> |
6513 | </param> | 6513 | </param> |
6514 | 6514 | ||
6515 | <param | 6515 | <param |
6516 | id="1011" | 6516 | id="1011" |
6517 | sex="male" | 6517 | sex="male" |
6518 | group="1" | 6518 | group="1" |
6519 | edit_group="driven" | 6519 | edit_group="driven" |
6520 | name="Chin Curtains" | 6520 | name="Chin Curtains" |
6521 | value_min="0" | 6521 | value_min="0" |
6522 | value_max="1"> | 6522 | value_max="1"> |
6523 | <param_alpha | 6523 | <param_alpha |
6524 | tga_file="facehair_chincurtains_alpha.tga" | 6524 | tga_file="facehair_chincurtains_alpha.tga" |
6525 | skip_if_zero="true" | 6525 | skip_if_zero="true" |
6526 | domain="0.03" /> | 6526 | domain="0.03" /> |
6527 | </param> | 6527 | </param> |
6528 | 6528 | ||
6529 | <param | 6529 | <param |
6530 | id="751" | 6530 | id="751" |
6531 | group="1" | 6531 | group="1" |
6532 | wearable="hair" | 6532 | wearable="hair" |
6533 | sex="male" | 6533 | sex="male" |
6534 | edit_group="hair_facial" | 6534 | edit_group="hair_facial" |
6535 | name="5 O'Clock Shadow" | 6535 | name="5 O'Clock Shadow" |
6536 | label_min="Dense hair" | 6536 | label_min="Dense hair" |
6537 | label_max="Shadow hair" | 6537 | label_max="Shadow hair" |
6538 | value_min="0" | 6538 | value_min="0" |
6539 | value_max="1" | 6539 | value_max="1" |
6540 | value_default="0.7" | 6540 | value_default="0.7" |
6541 | camera_elevation=".1" | 6541 | camera_elevation=".1" |
6542 | camera_distance=".3"> | 6542 | camera_distance=".3"> |
6543 | <param_color | 6543 | <param_color |
6544 | operation="multiply"> | 6544 | operation="multiply"> |
6545 | <value | 6545 | <value |
6546 | color="255,255,255,255" /> | 6546 | color="255,255,255,255" /> |
6547 | 6547 | ||
6548 | <value | 6548 | <value |
6549 | color="255,255,255,30" /> | 6549 | color="255,255,255,30" /> |
6550 | </param_color> | 6550 | </param_color> |
6551 | </param> | 6551 | </param> |
6552 | </layer> | 6552 | </layer> |
6553 | 6553 | ||
6554 | <layer | 6554 | <layer |
6555 | name="head_bodypaint"> | 6555 | name="head_bodypaint"> |
6556 | <texture | 6556 | <texture |
6557 | local_texture="head_bodypaint" /> | 6557 | local_texture="head_bodypaint" /> |
6558 | </layer> | 6558 | </layer> |
6559 | <layer | 6559 | <layer |
6560 | name="eyelash alpha" | 6560 | name="eyelash alpha" |
6561 | visibility_mask="TRUE"> | 6561 | visibility_mask="TRUE"> |
6562 | <texture | 6562 | <texture |
6563 | tga_file="head_alpha.tga" | 6563 | tga_file="head_alpha.tga" |
6564 | file_is_mask="TRUE" /> | 6564 | file_is_mask="TRUE" /> |
6565 | </layer> | 6565 | </layer> |
6566 | <layer | 6566 | <layer |
6567 | name="head alpha" | 6567 | name="head alpha" |
6568 | visibility_mask="TRUE"> | 6568 | visibility_mask="TRUE"> |
6569 | <texture | 6569 | <texture |
6570 | local_texture="head_alpha" /> | 6570 | local_texture="head_alpha" /> |
6571 | </layer> | 6571 | </layer> |
6572 | <layer | 6572 | <layer |
6573 | name="head_tattoo"> | 6573 | name="head_tattoo"> |
6574 | <texture | 6574 | <texture local_texture="head_tattoo" /> |
6575 | local_texture="head_tattoo" /> | 6575 | <param id="1062" group="1" edit_group="colorpicker_driven" wearable="tattoo" |
6576 | </layer> | 6576 | name="tattoo_head_red" value_min="0" value_max="1" value_default="1"> |
6577 | </layer_set> | 6577 | <param_color> |
6578 | 6578 | <value color="0, 0, 0, 255" /> | |
6579 | <!-- =========================================================== --> | 6579 | <value color="255, 0, 0, 255" /> |
6580 | <layer_set | 6580 | </param_color> |
6581 | body_region="upper_body" | 6581 | </param> |
6582 | width="512" | 6582 | |
6583 | height="512"> | 6583 | <param id="1063" group="1" edit_group="colorpicker_driven" wearable="tattoo" |
6584 | <layer | 6584 | name="tattoo_head_green" value_min="0" value_max="1" value_default="1"> |
6585 | name="base_upperbody bump" | 6585 | <param_color> |
6586 | render_pass="bump" | 6586 | <value color="0, 0, 0, 255" /> |
6587 | fixed_color="128,128,128,255"> | 6587 | <value color="0, 255, 0, 255" /> |
6588 | </layer> | 6588 | </param_color> |
6589 | <layer | 6589 | </param> |
6590 | name="upperbody bump definition" | 6590 | |
6591 | render_pass="bump"> | 6591 | <param id="1064" group="1" edit_group="colorpicker_driven" wearable="tattoo" |
6592 | <texture | 6592 | name="tattoo_head_blue" value_min="0" value_max="1" value_default="1"> |
6593 | tga_file="bump_upperbody_base.tga" | 6593 | <param_color> |
6594 | file_is_mask="FALSE"/> | 6594 | <value color="0, 0, 0, 255" /> |
6595 | 6595 | <value color="0, 0, 255, 255" /> | |
6596 | <param | 6596 | </param_color> |
6597 | id="874" | 6597 | </param> |
6598 | group="1" | 6598 | </layer> |
6599 | wearable="skin" | 6599 | </layer_set> |
6600 | edit_group="driven" | 6600 | |
6601 | edit_group_order="20" | 6601 | <!-- =========================================================== --> |
6602 | name="Bump upperdef" | 6602 | <layer_set |
6603 | value_min="0" | 6603 | body_region="upper_body" |
6604 | value_max="1"> | 6604 | width="512" |
6605 | <param_alpha | 6605 | height="512"> |
6606 | domain="0" /> | 6606 | <layer |
6607 | </param> | 6607 | name="base_upperbody bump" |
6608 | </layer> | 6608 | render_pass="bump" |
6609 | 6609 | fixed_color="128,128,128,255"> | |
6610 | <layer | 6610 | </layer> |
6611 | name="base" | 6611 | <layer |
6612 | global_color="skin_color"> | 6612 | name="upperbody bump definition" |
6613 | <texture | 6613 | render_pass="bump"> |
6614 | tga_file="body_skingrain.tga" /> | 6614 | <texture |
6615 | </layer> | 6615 | tga_file="bump_upperbody_base.tga" |
6616 | 6616 | file_is_mask="FALSE"/> | |
6617 | <layer | 6617 | |
6618 | name="nipples"> | 6618 | <param |
6619 | <texture | 6619 | id="874" |
6620 | tga_file="upperbody_color.tga" /> | 6620 | group="1" |
6621 | </layer> | 6621 | wearable="skin" |
6622 | 6622 | edit_group="driven" | |
6623 | <layer | 6623 | edit_group_order="20" |
6624 | name="shadow"> | 6624 | name="Bump upperdef" |
6625 | <texture | 6625 | value_min="0" |
6626 | tga_file="upperbody_shading_alpha.tga" | 6626 | value_max="1"> |
6627 | file_is_mask="TRUE" /> | 6627 | <param_alpha |
6628 | 6628 | domain="0" /> | |
6629 | <param | 6629 | </param> |
6630 | id="125" | 6630 | </layer> |
6631 | group="1" | 6631 | |
6632 | name="Shading" | 6632 | <layer |
6633 | wearable="skin" | 6633 | name="base" |
6634 | value_min="0" | 6634 | global_color="skin_color"> |
6635 | value_max="1"> | 6635 | <texture |
6636 | <param_color> | 6636 | tga_file="body_skingrain.tga" /> |
6637 | <value | 6637 | </layer> |
6638 | color="0, 0, 0, 0" /> | 6638 | |
6639 | 6639 | <layer | |
6640 | <value | 6640 | name="nipples"> |
6641 | color="0, 0, 0, 128" /> | 6641 | <texture |
6642 | </param_color> | 6642 | tga_file="upperbody_color.tga" /> |
6643 | </param> | 6643 | </layer> |
6644 | </layer> | 6644 | |
6645 | 6645 | <layer | |
6646 | <layer | 6646 | name="shadow"> |
6647 | name="highlight"> | 6647 | <texture |
6648 | <texture | 6648 | tga_file="upperbody_shading_alpha.tga" |
6649 | tga_file="upperbody_highlights_alpha.tga" | 6649 | file_is_mask="TRUE" /> |
6650 | file_is_mask="TRUE" /> | 6650 | |
6651 | 6651 | <param | |
6652 | <param | 6652 | id="125" |
6653 | id="126" | 6653 | group="1" |
6654 | group="1" | 6654 | name="Shading" |
6655 | wearable="skin" | 6655 | wearable="skin" |
6656 | name="Shading" | 6656 | value_min="0" |
6657 | value_min="0" | 6657 | value_max="1"> |
6658 | value_max="1"> | 6658 | <param_color> |
6659 | <param_color> | 6659 | <value |
6660 | <value | 6660 | color="0, 0, 0, 0" /> |
6661 | color="255, 255, 255, 0" /> | 6661 | |
6662 | 6662 | <value | |
6663 | <value | 6663 | color="0, 0, 0, 128" /> |
6664 | color="255, 255, 255, 64" /> | 6664 | </param_color> |
6665 | </param_color> | 6665 | </param> |
6666 | </param> | 6666 | </layer> |
6667 | </layer> | 6667 | |
6668 | 6668 | <layer | |
6669 | <layer | 6669 | name="highlight"> |
6670 | name="upper_bodypaint"> | 6670 | <texture |
6671 | <texture | 6671 | tga_file="upperbody_highlights_alpha.tga" |
6672 | local_texture="upper_bodypaint" /> | 6672 | file_is_mask="TRUE" /> |
6673 | </layer> | 6673 | |
6674 | 6674 | <param | |
6675 | <layer | 6675 | id="126" |
6676 | name="freckles upper" | 6676 | group="1" |
6677 | fixed_color="120,47,20,128"> | 6677 | wearable="skin" |
6678 | <param | 6678 | name="Shading" |
6679 | id="776" | 6679 | value_min="0" |
6680 | group="1" | 6680 | value_max="1"> |
6681 | name="freckles upper" | 6681 | <param_color> |
6682 | wearable="skin" | 6682 | <value |
6683 | value_min="0" | 6683 | color="255, 255, 255, 0" /> |
6684 | value_max="1"> | 6684 | |
6685 | <param_alpha | 6685 | <value |
6686 | tga_file="upperbodyfreckles_alpha.tga" | 6686 | color="255, 255, 255, 64" /> |
6687 | skip_if_zero="true" | 6687 | </param_color> |
6688 | domain="0.6" /> | 6688 | </param> |
6689 | </param> | 6689 | </layer> |
6690 | </layer> | 6690 | |
6691 | 6691 | <layer | |
6692 | <layer | 6692 | name="upper_bodypaint"> |
6693 | name="upper_tattoo"> | 6693 | <texture |
6694 | <texture | 6694 | local_texture="upper_bodypaint" /> |
6695 | local_texture="upper_tattoo" /> | 6695 | </layer> |
6696 | </layer> | 6696 | |
6697 | 6697 | <layer | |
6698 | <layer | 6698 | name="freckles upper" |
6699 | name="upper_undershirt bump" | 6699 | fixed_color="120,47,20,128"> |
6700 | render_pass="bump" | 6700 | <param |
6701 | fixed_color="128,128,128,255"> | 6701 | id="776" |
6702 | <texture | 6702 | group="1" |
6703 | local_texture="upper_undershirt" | 6703 | name="freckles upper" |
6704 | local_texture_alpha_only="true" /> | 6704 | wearable="skin" |
6705 | 6705 | value_min="0" | |
6706 | <param | 6706 | value_max="1"> |
6707 | id="1043" | 6707 | <param_alpha |
6708 | group="1" | 6708 | tga_file="upperbodyfreckles_alpha.tga" |
6709 | wearable="undershirt" | 6709 | skip_if_zero="true" |
6710 | edit_group="driven" | 6710 | domain="0.6" /> |
6711 | name="Sleeve Length bump" | 6711 | </param> |
6712 | value_min=".01" | 6712 | </layer> |
6713 | value_max="1" | 6713 | |
6714 | value_default=".4"> | 6714 | <layer name="upper_tattoo"> |
6715 | <param_alpha | 6715 | <texture local_texture="upper_tattoo" /> |
6716 | tga_file="shirt_sleeve_alpha.tga" | 6716 | <param id="1065" group="1" edit_group="colorpicker_driven" wearable="tattoo" |
6717 | multiply_blend="false" | 6717 | name="tattoo_upper_red" value_min="0" value_max="1" value_default="1"> |
6718 | domain="0.01" /> | 6718 | <param_color> |
6719 | </param> | 6719 | <value color="0, 0, 0, 255" /> |
6720 | 6720 | <value color="255, 0, 0, 255" /> | |
6721 | <param | 6721 | </param_color> |
6722 | id="1045" | 6722 | </param> |
6723 | group="1" | 6723 | |
6724 | wearable="undershirt" | 6724 | <param id="1066" group="1" edit_group="colorpicker_driven" wearable="tattoo" |
6725 | edit_group="undershirt" | 6725 | name="tattoo_upper_green" value_min="0" value_max="1" value_default="1"> |
6726 | edit_group_order="2" | 6726 | <param_color> |
6727 | name="Bottom bump" | 6727 | <value color="0, 0, 0, 255" /> |
6728 | value_min="0" | 6728 | <value color="0, 255, 0, 255" /> |
6729 | value_max="1" | 6729 | </param_color> |
6730 | value_default=".8"> | 6730 | </param> |
6731 | <param_alpha | 6731 | |
6732 | tga_file="shirt_bottom_alpha.tga" | 6732 | <param id="1067" group="1" edit_group="colorpicker_driven" wearable="tattoo" |
6733 | multiply_blend="true" | 6733 | name="tattoo_upper_blue" value_min="0" value_max="1" value_default="1"> |
6734 | domain="0.05" /> | 6734 | <param_color> |
6735 | </param> | 6735 | <value color="0, 0, 0, 255" /> |
6736 | 6736 | <value color="0, 0, 255, 255" /> | |
6737 | <param | 6737 | </param_color> |
6738 | id="1047" | 6738 | </param> |
6739 | group="1" | 6739 | </layer> |
6740 | wearable="undershirt" | 6740 | |
6741 | edit_group="driven" | 6741 | <layer |
6742 | name="Collar Front bump" | 6742 | name="upper_undershirt bump" |
6743 | value_min="0" | 6743 | render_pass="bump" |
6744 | value_max="1" | 6744 | fixed_color="128,128,128,255"> |
6745 | value_default=".8"> | 6745 | <texture |
6746 | <param_alpha | 6746 | local_texture="upper_undershirt" |
6747 | tga_file="shirt_collar_alpha.tga" | 6747 | local_texture_alpha_only="true" /> |
6748 | multiply_blend="true" | 6748 | |
6749 | domain="0.05" /> | 6749 | <param |
6750 | </param> | 6750 | id="1043" |
6751 | 6751 | group="1" | |
6752 | <param | 6752 | wearable="undershirt" |
6753 | id="1049" | 6753 | edit_group="driven" |
6754 | group="1" | 6754 | name="Sleeve Length bump" |
6755 | wearable="undershirt" | 6755 | value_min=".01" |
6756 | edit_group="driven" | 6756 | value_max="1" |
6757 | name="Collar Back bump" | 6757 | value_default=".4"> |
6758 | value_min="0" | 6758 | <param_alpha |
6759 | value_max="1" | 6759 | tga_file="shirt_sleeve_alpha.tga" |
6760 | value_default=".8"> | 6760 | multiply_blend="false" |
6761 | <param_alpha | 6761 | domain="0.01" /> |
6762 | tga_file="shirt_collar_back_alpha.tga" | 6762 | </param> |
6763 | multiply_blend="true" | 6763 | |
6764 | domain="0.05" /> | 6764 | <param |
6765 | </param> | 6765 | id="1045" |
6766 | </layer> | 6766 | group="1" |
6767 | 6767 | wearable="undershirt" | |
6768 | <layer | 6768 | edit_group="undershirt" |
6769 | name="upper_undershirt"> | 6769 | edit_group_order="2" |
6770 | <texture | 6770 | name="Bottom bump" |
6771 | local_texture="upper_undershirt" /> | 6771 | value_min="0" |
6772 | 6772 | value_max="1" | |
6773 | <param | 6773 | value_default=".8"> |
6774 | id="821" | 6774 | <param_alpha |
6775 | group="0" | 6775 | tga_file="shirt_bottom_alpha.tga" |
6776 | wearable="undershirt" | 6776 | multiply_blend="true" |
6777 | edit_group="colorpicker" | 6777 | domain="0.05" /> |
6778 | name="undershirt_red" | 6778 | </param> |
6779 | value_min="0" | 6779 | |
6780 | value_max="1" | 6780 | <param |
6781 | value_default="1"> | 6781 | id="1047" |
6782 | <param_color> | 6782 | group="1" |
6783 | <value | 6783 | wearable="undershirt" |
6784 | color="0, 0, 0, 255" /> | 6784 | edit_group="driven" |
6785 | 6785 | name="Collar Front bump" | |
6786 | <value | 6786 | value_min="0" |
6787 | color="255, 0, 0, 255" /> | 6787 | value_max="1" |
6788 | </param_color> | 6788 | value_default=".8"> |
6789 | </param> | 6789 | <param_alpha |
6790 | 6790 | tga_file="shirt_collar_alpha.tga" | |
6791 | <param | 6791 | multiply_blend="true" |
6792 | id="822" | 6792 | domain="0.05" /> |
6793 | group="0" | 6793 | </param> |
6794 | wearable="undershirt" | 6794 | |
6795 | edit_group="colorpicker" | 6795 | <param |
6796 | name="undershirt_green" | 6796 | id="1049" |
6797 | value_min="0" | 6797 | group="1" |
6798 | value_max="1" | 6798 | wearable="undershirt" |
6799 | value_default="1"> | 6799 | edit_group="driven" |
6800 | <param_color> | 6800 | name="Collar Back bump" |
6801 | <value | 6801 | value_min="0" |
6802 | color="0, 0, 0, 255" /> | 6802 | value_max="1" |
6803 | 6803 | value_default=".8"> | |
6804 | <value | 6804 | <param_alpha |
6805 | color="0, 255, 0, 255" /> | 6805 | tga_file="shirt_collar_back_alpha.tga" |
6806 | </param_color> | 6806 | multiply_blend="true" |
6807 | </param> | 6807 | domain="0.05" /> |
6808 | 6808 | </param> | |
6809 | <param | 6809 | </layer> |
6810 | id="823" | 6810 | |
6811 | group="0" | 6811 | <layer |
6812 | wearable="undershirt" | 6812 | name="upper_undershirt"> |
6813 | edit_group="colorpicker" | 6813 | <texture |
6814 | name="undershirt_blue" | 6814 | local_texture="upper_undershirt" /> |
6815 | value_min="0" | 6815 | |
6816 | value_max="1" | 6816 | <param |
6817 | value_default="1"> | 6817 | id="821" |
6818 | <param_color> | 6818 | group="0" |
6819 | <value | 6819 | wearable="undershirt" |
6820 | color="0, 0, 0, 255" /> | 6820 | edit_group="colorpicker" |
6821 | 6821 | name="undershirt_red" | |
6822 | <value | 6822 | value_min="0" |
6823 | color="0, 0, 255, 255" /> | 6823 | value_max="1" |
6824 | </param_color> | 6824 | value_default="1"> |
6825 | </param> | 6825 | <param_color> |
6826 | 6826 | <value | |
6827 | <param | 6827 | color="0, 0, 0, 255" /> |
6828 | id="1042" | 6828 | |
6829 | group="1" | 6829 | <value |
6830 | wearable="undershirt" | 6830 | color="255, 0, 0, 255" /> |
6831 | edit_group="driven" | 6831 | </param_color> |
6832 | name="Sleeve Length" | 6832 | </param> |
6833 | value_min=".01" | 6833 | |
6834 | value_max="1" | 6834 | <param |
6835 | value_default=".4"> | 6835 | id="822" |
6836 | <param_alpha | 6836 | group="0" |
6837 | tga_file="shirt_sleeve_alpha.tga" | 6837 | wearable="undershirt" |
6838 | multiply_blend="false" | 6838 | edit_group="colorpicker" |
6839 | domain="0.01" /> | 6839 | name="undershirt_green" |
6840 | </param> | 6840 | value_min="0" |
6841 | 6841 | value_max="1" | |
6842 | <param | 6842 | value_default="1"> |
6843 | id="1044" | 6843 | <param_color> |
6844 | group="1" | 6844 | <value |
6845 | wearable="undershirt" | 6845 | color="0, 0, 0, 255" /> |
6846 | edit_group="driven" | 6846 | |
6847 | name="Bottom" | 6847 | <value |
6848 | value_min="0" | 6848 | color="0, 255, 0, 255" /> |
6849 | value_max="1" | 6849 | </param_color> |
6850 | value_default=".8"> | 6850 | </param> |
6851 | <param_alpha | 6851 | |
6852 | tga_file="shirt_bottom_alpha.tga" | 6852 | <param |
6853 | multiply_blend="true" | 6853 | id="823" |
6854 | domain="0.05" /> | 6854 | group="0" |
6855 | </param> | 6855 | wearable="undershirt" |
6856 | 6856 | edit_group="colorpicker" | |
6857 | <param | 6857 | name="undershirt_blue" |
6858 | id="1046" | 6858 | value_min="0" |
6859 | group="1" | 6859 | value_max="1" |
6860 | wearable="undershirt" | 6860 | value_default="1"> |
6861 | edit_group="driven" | 6861 | <param_color> |
6862 | name="Collar Front" | 6862 | <value |
6863 | value_min="0" | 6863 | color="0, 0, 0, 255" /> |
6864 | value_max="1" | 6864 | |
6865 | value_default=".8"> | 6865 | <value |
6866 | <param_alpha | 6866 | color="0, 0, 255, 255" /> |
6867 | tga_file="shirt_collar_alpha.tga" | 6867 | </param_color> |
6868 | multiply_blend="true" | 6868 | </param> |
6869 | domain="0.05" /> | 6869 | |
6870 | </param> | 6870 | <param |
6871 | 6871 | id="1042" | |
6872 | <param | 6872 | group="1" |
6873 | id="1048" | 6873 | wearable="undershirt" |
6874 | group="1" | 6874 | edit_group="driven" |
6875 | wearable="undershirt" | 6875 | name="Sleeve Length" |
6876 | edit_group="driven" | 6876 | value_min=".01" |
6877 | name="Collar Back" | 6877 | value_max="1" |
6878 | label_min="Low" | 6878 | value_default=".4"> |
6879 | label_max="High" | 6879 | <param_alpha |
6880 | value_min="0" | 6880 | tga_file="shirt_sleeve_alpha.tga" |
6881 | value_max="1" | 6881 | multiply_blend="false" |
6882 | value_default=".8"> | 6882 | domain="0.01" /> |
6883 | <param_alpha | 6883 | </param> |
6884 | tga_file="shirt_collar_back_alpha.tga" | 6884 | |
6885 | multiply_blend="true" | 6885 | <param |
6886 | domain="0.05" /> | 6886 | id="1044" |
6887 | </param> | 6887 | group="1" |
6888 | </layer> | 6888 | wearable="undershirt" |
6889 | 6889 | edit_group="driven" | |
6890 | <layer | 6890 | name="Bottom" |
6891 | name="Nail Polish"> | 6891 | value_min="0" |
6892 | <param | 6892 | value_max="1" |
6893 | id="710" | 6893 | value_default=".8"> |
6894 | group="0" | 6894 | <param_alpha |
6895 | wearable="skin" | 6895 | tga_file="shirt_bottom_alpha.tga" |
6896 | edit_group="skin_makeup" | 6896 | multiply_blend="true" |
6897 | edit_group_order="15" | 6897 | domain="0.05" /> |
6898 | name="Nail Polish" | 6898 | </param> |
6899 | label_min="No Polish" | 6899 | |
6900 | label_max="Painted Nails" | 6900 | <param |
6901 | value_min="0" | 6901 | id="1046" |
6902 | value_max="1" | 6902 | group="1" |
6903 | value_default="0.0" | 6903 | wearable="undershirt" |
6904 | camera_distance="1.6" | 6904 | edit_group="driven" |
6905 | camera_elevation="-.4" | 6905 | name="Collar Front" |
6906 | camera_angle="70"> | 6906 | value_min="0" |
6907 | <param_alpha | 6907 | value_max="1" |
6908 | tga_file="nailpolish_alpha.tga" | 6908 | value_default=".8"> |
6909 | skip_if_zero="true" | 6909 | <param_alpha |
6910 | domain="0.1" /> | 6910 | tga_file="shirt_collar_alpha.tga" |
6911 | </param> | 6911 | multiply_blend="true" |
6912 | 6912 | domain="0.05" /> | |
6913 | <param | 6913 | </param> |
6914 | id="715" | 6914 | |
6915 | group="0" | 6915 | <param |
6916 | wearable="skin" | 6916 | id="1048" |
6917 | edit_group="skin_makeup" | 6917 | group="1" |
6918 | edit_group_order="16" | 6918 | wearable="undershirt" |
6919 | name="Nail Polish Color" | 6919 | edit_group="driven" |
6920 | label_min="Pink" | 6920 | name="Collar Back" |
6921 | label_max="Black" | 6921 | label_min="Low" |
6922 | value_min="0" | 6922 | label_max="High" |
6923 | value_max="1" | 6923 | value_min="0" |
6924 | camera_distance="1.6" | 6924 | value_max="1" |
6925 | camera_elevation="-.4" | 6925 | value_default=".8"> |
6926 | camera_angle="70"> | 6926 | <param_alpha |
6927 | <param_color> | 6927 | tga_file="shirt_collar_back_alpha.tga" |
6928 | <value | 6928 | multiply_blend="true" |
6929 | color="255,187,200,255" /> | 6929 | domain="0.05" /> |
6930 | 6930 | </param> | |
6931 | <value | 6931 | </layer> |
6932 | color="194,102,127,255" /> | 6932 | |
6933 | 6933 | <layer | |
6934 | <value | 6934 | name="Nail Polish"> |
6935 | color="227,34,99,255" /> | 6935 | <param |
6936 | 6936 | id="710" | |
6937 | <value | 6937 | group="0" |
6938 | color="168,41,60,255" /> | 6938 | wearable="skin" |
6939 | 6939 | edit_group="skin_makeup" | |
6940 | <value | 6940 | edit_group_order="15" |
6941 | color="97,28,59,255" /> | 6941 | name="Nail Polish" |
6942 | 6942 | label_min="No Polish" | |
6943 | <value | 6943 | label_max="Painted Nails" |
6944 | color="234,115,93,255" /> | 6944 | value_min="0" |
6945 | 6945 | value_max="1" | |
6946 | <value | 6946 | value_default="0.0" |
6947 | color="142,58,47,255" /> | 6947 | camera_distance="1.6" |
6948 | 6948 | camera_elevation="-.4" | |
6949 | <value | 6949 | camera_angle="70"> |
6950 | color="114,30,46,255" /> | 6950 | <param_alpha |
6951 | 6951 | tga_file="nailpolish_alpha.tga" | |
6952 | <value | 6952 | skip_if_zero="true" |
6953 | color="14,14,14,255" /> | 6953 | domain="0.1" /> |
6954 | </param_color> | 6954 | </param> |
6955 | </param> | 6955 | |
6956 | </layer> | 6956 | <param |
6957 | 6957 | id="715" | |
6958 | <layer | 6958 | group="0" |
6959 | name="upper_gloves bump" | 6959 | wearable="skin" |
6960 | render_pass="bump" | 6960 | edit_group="skin_makeup" |
6961 | fixed_color="128,128,128,255"> | 6961 | edit_group_order="16" |
6962 | <texture | 6962 | name="Nail Polish Color" |
6963 | local_texture="upper_gloves" | 6963 | label_min="Pink" |
6964 | local_texture_alpha_only="true" /> | 6964 | label_max="Black" |
6965 | 6965 | value_min="0" | |
6966 | <param | 6966 | value_max="1" |
6967 | id="1059" | 6967 | camera_distance="1.6" |
6968 | group="1" | 6968 | camera_elevation="-.4" |
6969 | wearable="gloves" | 6969 | camera_angle="70"> |
6970 | edit_group="driven" | 6970 | <param_color> |
6971 | name="Glove Length bump" | 6971 | <value |
6972 | value_min=".01" | 6972 | color="255,187,200,255" /> |
6973 | value_max="1" | 6973 | |
6974 | value_default=".8"> | 6974 | <value |
6975 | <param_alpha | 6975 | color="194,102,127,255" /> |
6976 | tga_file="glove_length_alpha.tga" | 6976 | |
6977 | domain="0.01" /> | 6977 | <value |
6978 | </param> | 6978 | color="227,34,99,255" /> |
6979 | 6979 | ||
6980 | <param | 6980 | <value |
6981 | id="1061" | 6981 | color="168,41,60,255" /> |
6982 | group="1" | 6982 | |
6983 | wearable="gloves" | 6983 | <value |
6984 | edit_group="driven" | 6984 | color="97,28,59,255" /> |
6985 | name="Glove Fingers bump" | 6985 | |
6986 | value_min=".01" | 6986 | <value |
6987 | value_max="1" | 6987 | color="234,115,93,255" /> |
6988 | value_default="1"> | 6988 | |
6989 | <param_alpha | 6989 | <value |
6990 | tga_file="gloves_fingers_alpha.tga" | 6990 | color="142,58,47,255" /> |
6991 | multiply_blend="true" | 6991 | |
6992 | domain="0.01" /> | 6992 | <value |
6993 | </param> | 6993 | color="114,30,46,255" /> |
6994 | </layer> | 6994 | |
6995 | 6995 | <value | |
6996 | <layer | 6996 | color="14,14,14,255" /> |
6997 | name="upper_gloves"> | 6997 | </param_color> |
6998 | <texture | 6998 | </param> |
6999 | local_texture="upper_gloves" /> | 6999 | </layer> |
7000 | 7000 | ||
7001 | <param | 7001 | <layer |
7002 | id="827" | 7002 | name="upper_gloves bump" |
7003 | group="0" | 7003 | render_pass="bump" |
7004 | wearable="gloves" | 7004 | fixed_color="128,128,128,255"> |
7005 | edit_group="colorpicker" | 7005 | <texture |
7006 | name="gloves_red" | 7006 | local_texture="upper_gloves" |
7007 | value_min="0" | 7007 | local_texture_alpha_only="true" /> |
7008 | value_max="1" | 7008 | |
7009 | value_default="1"> | 7009 | <param |
7010 | <param_color> | 7010 | id="1059" |
7011 | <value | 7011 | group="1" |
7012 | color="0, 0, 0, 255" /> | 7012 | wearable="gloves" |
7013 | 7013 | edit_group="driven" | |
7014 | <value | 7014 | name="Glove Length bump" |
7015 | color="255, 0, 0, 255" /> | 7015 | value_min=".01" |
7016 | </param_color> | 7016 | value_max="1" |
7017 | </param> | 7017 | value_default=".8"> |
7018 | 7018 | <param_alpha | |
7019 | <param | 7019 | tga_file="glove_length_alpha.tga" |
7020 | id="829" | 7020 | domain="0.01" /> |
7021 | group="0" | 7021 | </param> |
7022 | wearable="gloves" | 7022 | |
7023 | edit_group="colorpicker" | 7023 | <param |
7024 | name="gloves_green" | 7024 | id="1061" |
7025 | value_min="0" | 7025 | group="1" |
7026 | value_max="1" | 7026 | wearable="gloves" |
7027 | value_default="1"> | 7027 | edit_group="driven" |
7028 | <param_color> | 7028 | name="Glove Fingers bump" |
7029 | <value | 7029 | value_min=".01" |
7030 | color="0, 0, 0, 255" /> | 7030 | value_max="1" |
7031 | 7031 | value_default="1"> | |
7032 | <value | 7032 | <param_alpha |
7033 | color="0, 255, 0, 255" /> | 7033 | tga_file="gloves_fingers_alpha.tga" |
7034 | </param_color> | 7034 | multiply_blend="true" |
7035 | </param> | 7035 | domain="0.01" /> |
7036 | 7036 | </param> | |
7037 | <param | 7037 | </layer> |
7038 | id="830" | 7038 | |
7039 | group="0" | 7039 | <layer |
7040 | wearable="gloves" | 7040 | name="upper_gloves"> |
7041 | edit_group="colorpicker" | 7041 | <texture |
7042 | name="gloves_blue" | 7042 | local_texture="upper_gloves" /> |
7043 | value_min="0" | 7043 | |
7044 | value_max="1" | 7044 | <param |
7045 | value_default="1"> | 7045 | id="827" |
7046 | <param_color> | 7046 | group="0" |
7047 | <value | 7047 | wearable="gloves" |
7048 | color="0, 0, 0, 255" /> | 7048 | edit_group="colorpicker" |
7049 | 7049 | name="gloves_red" | |
7050 | <value | 7050 | value_min="0" |
7051 | color="0, 0, 255, 255" /> | 7051 | value_max="1" |
7052 | </param_color> | 7052 | value_default="1"> |
7053 | </param> | 7053 | <param_color> |
7054 | 7054 | <value | |
7055 | <param | 7055 | color="0, 0, 0, 255" /> |
7056 | id="1058" | 7056 | |
7057 | group="1" | 7057 | <value |
7058 | wearable="gloves" | 7058 | color="255, 0, 0, 255" /> |
7059 | edit_group="driven" | 7059 | </param_color> |
7060 | name="Glove Length" | 7060 | </param> |
7061 | value_min=".01" | 7061 | |
7062 | value_max="1" | 7062 | <param |
7063 | value_default=".8"> | 7063 | id="829" |
7064 | <param_alpha | 7064 | group="0" |
7065 | tga_file="glove_length_alpha.tga" | 7065 | wearable="gloves" |
7066 | domain="0.01" /> | 7066 | edit_group="colorpicker" |
7067 | </param> | 7067 | name="gloves_green" |
7068 | 7068 | value_min="0" | |
7069 | <param | 7069 | value_max="1" |
7070 | id="1060" | 7070 | value_default="1"> |
7071 | group="1" | 7071 | <param_color> |
7072 | wearable="gloves" | 7072 | <value |
7073 | edit_group="driven" | 7073 | color="0, 0, 0, 255" /> |
7074 | name="Glove Fingers" | 7074 | |
7075 | value_min=".01" | 7075 | <value |
7076 | value_max="1" | 7076 | color="0, 255, 0, 255" /> |
7077 | value_default="1"> | 7077 | </param_color> |
7078 | <param_alpha | 7078 | </param> |
7079 | tga_file="gloves_fingers_alpha.tga" | 7079 | |
7080 | multiply_blend="true" | 7080 | <param |
7081 | domain="0.01" /> | 7081 | id="830" |
7082 | </param> | 7082 | group="0" |
7083 | </layer> | 7083 | wearable="gloves" |
7084 | 7084 | edit_group="colorpicker" | |
7085 | <layer | 7085 | name="gloves_blue" |
7086 | name="upper_clothes_shadow"> | 7086 | value_min="0" |
7087 | <texture | 7087 | value_max="1" |
7088 | local_texture="upper_shirt" /> | 7088 | value_default="1"> |
7089 | 7089 | <param_color> | |
7090 | <param | 7090 | <value |
7091 | id="899" | 7091 | color="0, 0, 0, 255" /> |
7092 | group="1" | 7092 | |
7093 | edit_group="driven" | 7093 | <value |
7094 | wearable="shirt" | 7094 | color="0, 0, 255, 255" /> |
7095 | name="Upper Clothes Shading" | 7095 | </param_color> |
7096 | value_min="0" | 7096 | </param> |
7097 | value_max="1" | 7097 | |
7098 | value_default="0"> | 7098 | <param |
7099 | <param_color> | 7099 | id="1058" |
7100 | <value | 7100 | group="1" |
7101 | color="0, 0, 0, 0" /> | 7101 | wearable="gloves" |
7102 | 7102 | edit_group="driven" | |
7103 | <value | 7103 | name="Glove Length" |
7104 | color="0, 0, 0, 80" /> | 7104 | value_min=".01" |
7105 | </param_color> | 7105 | value_max="1" |
7106 | </param> | 7106 | value_default=".8"> |
7107 | 7107 | <param_alpha | |
7108 | <param | 7108 | tga_file="glove_length_alpha.tga" |
7109 | id="900" | 7109 | domain="0.01" /> |
7110 | group="1" | 7110 | </param> |
7111 | wearable="shirt" | 7111 | |
7112 | edit_group="driven" | 7112 | <param |
7113 | name="Sleeve Length Shadow" | 7113 | id="1060" |
7114 | value_min="0.02" | 7114 | group="1" |
7115 | value_max=".87" | 7115 | wearable="gloves" |
7116 | value_default="0.02"> | 7116 | edit_group="driven" |
7117 | <param_alpha | 7117 | name="Glove Fingers" |
7118 | multiply_blend="false" | 7118 | value_min=".01" |
7119 | tga_file="shirt_sleeve_alpha.tga" | 7119 | value_max="1" |
7120 | skip_if_zero="true" | 7120 | value_default="1"> |
7121 | domain="0.03" /> | 7121 | <param_alpha |
7122 | </param> | 7122 | tga_file="gloves_fingers_alpha.tga" |
7123 | 7123 | multiply_blend="true" | |
7124 | <param | 7124 | domain="0.01" /> |
7125 | id="901" | 7125 | </param> |
7126 | group="1" | 7126 | </layer> |
7127 | wearable="shirt" | 7127 | |
7128 | edit_group="driven" | 7128 | <layer |
7129 | name="Shirt Shadow Bottom" | 7129 | name="upper_clothes_shadow"> |
7130 | value_min="0.02" | 7130 | <texture |
7131 | value_max="1"> | 7131 | local_texture="upper_shirt" /> |
7132 | <param_alpha | 7132 | |
7133 | multiply_blend="true" | 7133 | <param |
7134 | tga_file="shirt_bottom_alpha.tga" | 7134 | id="899" |
7135 | skip_if_zero="true" | 7135 | group="1" |
7136 | domain="0.05" /> | 7136 | edit_group="driven" |
7137 | </param> | 7137 | wearable="shirt" |
7138 | 7138 | name="Upper Clothes Shading" | |
7139 | <param | 7139 | value_min="0" |
7140 | id="902" | 7140 | value_max="1" |
7141 | group="1" | 7141 | value_default="0"> |
7142 | wearable="shirt" | 7142 | <param_color> |
7143 | edit_group="driven" | 7143 | <value |
7144 | name="Collar Front Shadow Height" | 7144 | color="0, 0, 0, 0" /> |
7145 | value_min="0.02" | 7145 | |
7146 | value_max="1"> | 7146 | <value |
7147 | <param_alpha | 7147 | color="0, 0, 0, 80" /> |
7148 | multiply_blend="true" | 7148 | </param_color> |
7149 | tga_file="shirt_collar_alpha.tga" | 7149 | </param> |
7150 | skip_if_zero="true" | 7150 | |
7151 | domain="0.02" /> | 7151 | <param |
7152 | </param> | 7152 | id="900" |
7153 | 7153 | group="1" | |
7154 | <param | 7154 | wearable="shirt" |
7155 | id="903" | 7155 | edit_group="driven" |
7156 | group="1" | 7156 | name="Sleeve Length Shadow" |
7157 | wearable="shirt" | 7157 | value_min="0.02" |
7158 | edit_group="driven" | 7158 | value_max=".87" |
7159 | name="Collar Back Shadow Height" | 7159 | value_default="0.02"> |
7160 | value_min="0.02" | 7160 | <param_alpha |
7161 | value_max="1"> | 7161 | multiply_blend="false" |
7162 | <param_alpha | 7162 | tga_file="shirt_sleeve_alpha.tga" |
7163 | multiply_blend="true" | 7163 | skip_if_zero="true" |
7164 | tga_file="shirt_collar_back_alpha.tga" | 7164 | domain="0.03" /> |
7165 | skip_if_zero="true" | 7165 | </param> |
7166 | domain="0.02" /> | 7166 | |
7167 | </param> | 7167 | <param |
7168 | </layer> | 7168 | id="901" |
7169 | 7169 | group="1" | |
7170 | <layer | 7170 | wearable="shirt" |
7171 | name="upper_shirt base bump" | 7171 | edit_group="driven" |
7172 | render_pass="bump" | 7172 | name="Shirt Shadow Bottom" |
7173 | fixed_color="128,128,128,255"> | 7173 | value_min="0.02" |
7174 | <texture | 7174 | value_max="1"> |
7175 | local_texture="upper_shirt" | 7175 | <param_alpha |
7176 | local_texture_alpha_only="true" /> | 7176 | multiply_blend="true" |
7177 | 7177 | tga_file="shirt_bottom_alpha.tga" | |
7178 | <param | 7178 | skip_if_zero="true" |
7179 | id="1029" | 7179 | domain="0.05" /> |
7180 | group="1" | 7180 | </param> |
7181 | wearable="shirt" | 7181 | |
7182 | edit_group="driven" | 7182 | <param |
7183 | name="Sleeve Length Cloth" | 7183 | id="902" |
7184 | value_min="0" | 7184 | group="1" |
7185 | value_max="0.85"> | 7185 | wearable="shirt" |
7186 | <param_alpha | 7186 | edit_group="driven" |
7187 | multiply_blend="false" | 7187 | name="Collar Front Shadow Height" |
7188 | tga_file="shirt_sleeve_alpha.tga" | 7188 | value_min="0.02" |
7189 | domain="0.01" /> | 7189 | value_max="1"> |
7190 | </param> | 7190 | <param_alpha |
7191 | 7191 | multiply_blend="true" | |
7192 | <param | 7192 | tga_file="shirt_collar_alpha.tga" |
7193 | id="1030" | 7193 | skip_if_zero="true" |
7194 | group="1" | 7194 | domain="0.02" /> |
7195 | wearable="shirt" | 7195 | </param> |
7196 | edit_group="driven" | 7196 | |
7197 | name="Shirt Bottom Cloth" | 7197 | <param |
7198 | value_min="0" | 7198 | id="903" |
7199 | value_max="1"> | 7199 | group="1" |
7200 | <param_alpha | 7200 | wearable="shirt" |
7201 | multiply_blend="true" | 7201 | edit_group="driven" |
7202 | tga_file="shirt_bottom_alpha.tga" | 7202 | name="Collar Back Shadow Height" |
7203 | domain="0.05" /> | 7203 | value_min="0.02" |
7204 | </param> | 7204 | value_max="1"> |
7205 | 7205 | <param_alpha | |
7206 | <param | 7206 | multiply_blend="true" |
7207 | id="1031" | 7207 | tga_file="shirt_collar_back_alpha.tga" |
7208 | group="1" | 7208 | skip_if_zero="true" |
7209 | wearable="shirt" | 7209 | domain="0.02" /> |
7210 | edit_group="driven" | 7210 | </param> |
7211 | name="Collar Front Height Cloth" | 7211 | </layer> |
7212 | value_min="0" | 7212 | |
7213 | value_max="1"> | 7213 | <layer |
7214 | <param_alpha | 7214 | name="upper_shirt base bump" |
7215 | multiply_blend="true" | 7215 | render_pass="bump" |
7216 | tga_file="shirt_collar_alpha.tga" | 7216 | fixed_color="128,128,128,255"> |
7217 | domain="0.05" /> | 7217 | <texture |
7218 | </param> | 7218 | local_texture="upper_shirt" |
7219 | 7219 | local_texture_alpha_only="true" /> | |
7220 | <param | 7220 | |
7221 | id="1032" | 7221 | <param |
7222 | group="1" | 7222 | id="1029" |
7223 | wearable="shirt" | 7223 | group="1" |
7224 | edit_group="driven" | 7224 | wearable="shirt" |
7225 | name="Collar Back Height Cloth" | 7225 | edit_group="driven" |
7226 | value_min="0" | 7226 | name="Sleeve Length Cloth" |
7227 | value_max="1"> | 7227 | value_min="0" |
7228 | <param_alpha | 7228 | value_max="0.85"> |
7229 | multiply_blend="true" | 7229 | <param_alpha |
7230 | tga_file="shirt_collar_back_alpha.tga" | 7230 | multiply_blend="false" |
7231 | domain="0.05" /> | 7231 | tga_file="shirt_sleeve_alpha.tga" |
7232 | </param> | 7232 | domain="0.01" /> |
7233 | </layer> | 7233 | </param> |
7234 | 7234 | ||
7235 | <layer | 7235 | <param |
7236 | name="upper_clothes bump" | 7236 | id="1030" |
7237 | render_pass="bump"> | 7237 | group="1" |
7238 | <texture | 7238 | wearable="shirt" |
7239 | tga_file="bump_shirt_wrinkles.tga" /> | 7239 | edit_group="driven" |
7240 | 7240 | name="Shirt Bottom Cloth" | |
7241 | <texture | 7241 | value_min="0" |
7242 | local_texture="upper_shirt" | 7242 | value_max="1"> |
7243 | local_texture_alpha_only="true" /> | 7243 | <param_alpha |
7244 | 7244 | multiply_blend="true" | |
7245 | <param | 7245 | tga_file="shirt_bottom_alpha.tga" |
7246 | id="868" | 7246 | domain="0.05" /> |
7247 | group="0" | 7247 | </param> |
7248 | wearable="shirt" | 7248 | |
7249 | edit_group="shirt" | 7249 | <param |
7250 | edit_group_order="8" | 7250 | id="1031" |
7251 | name="Shirt Wrinkles" | 7251 | group="1" |
7252 | value_min="0" | 7252 | wearable="shirt" |
7253 | value_max="1" | 7253 | edit_group="driven" |
7254 | value_default="0"> | 7254 | name="Collar Front Height Cloth" |
7255 | <param_color> | 7255 | value_min="0" |
7256 | <value | 7256 | value_max="1"> |
7257 | color="255, 255, 255, 0" /> | 7257 | <param_alpha |
7258 | 7258 | multiply_blend="true" | |
7259 | <value | 7259 | tga_file="shirt_collar_alpha.tga" |
7260 | color="255, 255, 255, 255" /> | 7260 | domain="0.05" /> |
7261 | </param_color> | 7261 | </param> |
7262 | </param> | 7262 | |
7263 | 7263 | <param | |
7264 | <param | 7264 | id="1032" |
7265 | id="1013" | 7265 | group="1" |
7266 | group="1" | 7266 | wearable="shirt" |
7267 | wearable="shirt" | 7267 | edit_group="driven" |
7268 | edit_group="driven" | 7268 | name="Collar Back Height Cloth" |
7269 | name="Sleeve Length Cloth" | 7269 | value_min="0" |
7270 | value_min="0" | 7270 | value_max="1"> |
7271 | value_max="0.85"> | 7271 | <param_alpha |
7272 | <param_alpha | 7272 | multiply_blend="true" |
7273 | multiply_blend="false" | 7273 | tga_file="shirt_collar_back_alpha.tga" |
7274 | tga_file="shirt_sleeve_alpha.tga" | 7274 | domain="0.05" /> |
7275 | domain="0.01" /> | 7275 | </param> |
7276 | </param> | 7276 | </layer> |
7277 | 7277 | ||
7278 | <param | 7278 | <layer |
7279 | id="1014" | 7279 | name="upper_clothes bump" |
7280 | group="1" | 7280 | render_pass="bump"> |
7281 | wearable="shirt" | 7281 | <texture |
7282 | edit_group="driven" | 7282 | tga_file="bump_shirt_wrinkles.tga" /> |
7283 | name="Shirt Bottom Cloth" | 7283 | |
7284 | value_min="0" | 7284 | <texture |
7285 | value_max="1"> | 7285 | local_texture="upper_shirt" |
7286 | <param_alpha | 7286 | local_texture_alpha_only="true" /> |
7287 | multiply_blend="true" | 7287 | |
7288 | tga_file="shirt_bottom_alpha.tga" | 7288 | <param |
7289 | domain="0.05" /> | 7289 | id="868" |
7290 | </param> | 7290 | group="0" |
7291 | 7291 | wearable="shirt" | |
7292 | <param | 7292 | edit_group="shirt" |
7293 | id="1015" | 7293 | edit_group_order="8" |
7294 | group="1" | 7294 | name="Shirt Wrinkles" |
7295 | wearable="shirt" | 7295 | value_min="0" |
7296 | edit_group="driven" | 7296 | value_max="1" |
7297 | name="Collar Front Height Cloth" | 7297 | value_default="0"> |
7298 | value_min="0" | 7298 | <param_color> |
7299 | value_max="1"> | 7299 | <value |
7300 | <param_alpha | 7300 | color="255, 255, 255, 0" /> |
7301 | multiply_blend="true" | 7301 | |
7302 | tga_file="shirt_collar_alpha.tga" | 7302 | <value |
7303 | domain="0.05" /> | 7303 | color="255, 255, 255, 255" /> |
7304 | </param> | 7304 | </param_color> |
7305 | 7305 | </param> | |
7306 | <param | 7306 | |
7307 | id="1016" | 7307 | <param |
7308 | group="1" | 7308 | id="1013" |
7309 | wearable="shirt" | 7309 | group="1" |
7310 | edit_group="driven" | 7310 | wearable="shirt" |
7311 | name="Collar Back Height Cloth" | 7311 | edit_group="driven" |
7312 | value_min="0" | 7312 | name="Sleeve Length Cloth" |
7313 | value_max="1"> | 7313 | value_min="0" |
7314 | <param_alpha | 7314 | value_max="0.85"> |
7315 | multiply_blend="true" | 7315 | <param_alpha |
7316 | tga_file="shirt_collar_back_alpha.tga" | 7316 | multiply_blend="false" |
7317 | domain="0.05" /> | 7317 | tga_file="shirt_sleeve_alpha.tga" |
7318 | </param> | 7318 | domain="0.01" /> |
7319 | </layer> | 7319 | </param> |
7320 | 7320 | ||
7321 | <layer | 7321 | <param |
7322 | name="upper_clothes"> | 7322 | id="1014" |
7323 | <texture | 7323 | group="1" |
7324 | local_texture="upper_shirt" /> | 7324 | wearable="shirt" |
7325 | 7325 | edit_group="driven" | |
7326 | <morph_mask | 7326 | name="Shirt Bottom Cloth" |
7327 | morph_name="Displace_Loose_Upperbody" /> | 7327 | value_min="0" |
7328 | 7328 | value_max="1"> | |
7329 | <morph_mask | 7329 | <param_alpha |
7330 | morph_name="Shirtsleeve_flair" /> | 7330 | multiply_blend="true" |
7331 | 7331 | tga_file="shirt_bottom_alpha.tga" | |
7332 | <param | 7332 | domain="0.05" /> |
7333 | id="803" | 7333 | </param> |
7334 | group="0" | 7334 | |
7335 | wearable="shirt" | 7335 | <param |
7336 | edit_group="colorpicker" | 7336 | id="1015" |
7337 | name="shirt_red" | 7337 | group="1" |
7338 | value_min="0" | 7338 | wearable="shirt" |
7339 | value_max="1" | 7339 | edit_group="driven" |
7340 | value_default="1"> | 7340 | name="Collar Front Height Cloth" |
7341 | <param_color> | 7341 | value_min="0" |
7342 | <value | 7342 | value_max="1"> |
7343 | color="0, 0, 0, 255" /> | 7343 | <param_alpha |
7344 | 7344 | multiply_blend="true" | |
7345 | <value | 7345 | tga_file="shirt_collar_alpha.tga" |
7346 | color="255, 0, 0, 255" /> | 7346 | domain="0.05" /> |
7347 | </param_color> | 7347 | </param> |
7348 | </param> | 7348 | |
7349 | 7349 | <param | |
7350 | <param | 7350 | id="1016" |
7351 | id="804" | 7351 | group="1" |
7352 | group="0" | 7352 | wearable="shirt" |
7353 | wearable="shirt" | 7353 | edit_group="driven" |
7354 | edit_group="colorpicker" | 7354 | name="Collar Back Height Cloth" |
7355 | name="shirt_green" | 7355 | value_min="0" |
7356 | value_min="0" | 7356 | value_max="1"> |
7357 | value_max="1" | 7357 | <param_alpha |
7358 | value_default="1"> | 7358 | multiply_blend="true" |
7359 | <param_color> | 7359 | tga_file="shirt_collar_back_alpha.tga" |
7360 | <value | 7360 | domain="0.05" /> |
7361 | color="0, 0, 0, 255" /> | 7361 | </param> |
7362 | 7362 | </layer> | |
7363 | <value | 7363 | |
7364 | color="0, 255, 0, 255" /> | 7364 | <layer |
7365 | </param_color> | 7365 | name="upper_clothes"> |
7366 | </param> | 7366 | <texture |
7367 | 7367 | local_texture="upper_shirt" /> | |
7368 | <param | 7368 | |
7369 | id="805" | 7369 | <morph_mask |
7370 | group="0" | 7370 | morph_name="Displace_Loose_Upperbody" /> |
7371 | wearable="shirt" | 7371 | |
7372 | edit_group="colorpicker" | 7372 | <morph_mask |
7373 | name="shirt_blue" | 7373 | morph_name="Shirtsleeve_flair" /> |
7374 | value_min="0" | 7374 | |
7375 | value_max="1" | 7375 | <param |
7376 | value_default="1"> | 7376 | id="803" |
7377 | <param_color> | 7377 | group="0" |
7378 | <value | 7378 | wearable="shirt" |
7379 | color="0, 0, 0, 255" /> | 7379 | edit_group="colorpicker" |
7380 | 7380 | name="shirt_red" | |
7381 | <value | 7381 | value_min="0" |
7382 | color="0, 0, 255, 255" /> | 7382 | value_max="1" |
7383 | </param_color> | 7383 | value_default="1"> |
7384 | </param> | 7384 | <param_color> |
7385 | 7385 | <value | |
7386 | <param | 7386 | color="0, 0, 0, 255" /> |
7387 | id="600" | 7387 | |
7388 | group="1" | 7388 | <value |
7389 | wearable="shirt" | 7389 | color="255, 0, 0, 255" /> |
7390 | edit_group="driven" | 7390 | </param_color> |
7391 | name="Sleeve Length Cloth" | 7391 | </param> |
7392 | value_min="0" | 7392 | |
7393 | value_max="0.85" | 7393 | <param |
7394 | value_default=".7"> | 7394 | id="804" |
7395 | <param_alpha | 7395 | group="0" |
7396 | multiply_blend="false" | 7396 | wearable="shirt" |
7397 | tga_file="shirt_sleeve_alpha.tga" | 7397 | edit_group="colorpicker" |
7398 | domain="0.01" /> | 7398 | name="shirt_green" |
7399 | </param> | 7399 | value_min="0" |
7400 | 7400 | value_max="1" | |
7401 | <param | 7401 | value_default="1"> |
7402 | id="601" | 7402 | <param_color> |
7403 | group="1" | 7403 | <value |
7404 | wearable="shirt" | 7404 | color="0, 0, 0, 255" /> |
7405 | edit_group="driven" | 7405 | |
7406 | name="Shirt Bottom Cloth" | 7406 | <value |
7407 | value_min="0" | 7407 | color="0, 255, 0, 255" /> |
7408 | value_max="1" | 7408 | </param_color> |
7409 | value_default=".8"> | 7409 | </param> |
7410 | <param_alpha | 7410 | |
7411 | multiply_blend="true" | 7411 | <param |
7412 | tga_file="shirt_bottom_alpha.tga" | 7412 | id="805" |
7413 | domain="0.05" /> | 7413 | group="0" |
7414 | </param> | 7414 | wearable="shirt" |
7415 | 7415 | edit_group="colorpicker" | |
7416 | <param | 7416 | name="shirt_blue" |
7417 | id="602" | 7417 | value_min="0" |
7418 | group="1" | 7418 | value_max="1" |
7419 | wearable="shirt" | 7419 | value_default="1"> |
7420 | edit_group="driven" | 7420 | <param_color> |
7421 | name="Collar Front Height Cloth" | 7421 | <value |
7422 | value_min="0" | 7422 | color="0, 0, 0, 255" /> |
7423 | value_max="1" | 7423 | |
7424 | value_default=".8"> | 7424 | <value |
7425 | <param_alpha | 7425 | color="0, 0, 255, 255" /> |
7426 | multiply_blend="true" | 7426 | </param_color> |
7427 | tga_file="shirt_collar_alpha.tga" | 7427 | </param> |
7428 | domain="0.05" /> | 7428 | |
7429 | </param> | 7429 | <param |
7430 | 7430 | id="600" | |
7431 | <param | 7431 | group="1" |
7432 | id="778" | 7432 | wearable="shirt" |
7433 | group="1" | 7433 | edit_group="driven" |
7434 | wearable="shirt" | 7434 | name="Sleeve Length Cloth" |
7435 | edit_group="driven" | 7435 | value_min="0" |
7436 | name="Collar Back Height Cloth" | 7436 | value_max="0.85" |
7437 | value_min="0" | 7437 | value_default=".7"> |
7438 | value_max="1" | 7438 | <param_alpha |
7439 | value_default=".8"> | 7439 | multiply_blend="false" |
7440 | <param_alpha | 7440 | tga_file="shirt_sleeve_alpha.tga" |
7441 | multiply_blend="true" | 7441 | domain="0.01" /> |
7442 | tga_file="shirt_collar_back_alpha.tga" | 7442 | </param> |
7443 | domain="0.05" /> | 7443 | |
7444 | </param> | 7444 | <param |
7445 | </layer> | 7445 | id="601" |
7446 | 7446 | group="1" | |
7447 | <layer | 7447 | wearable="shirt" |
7448 | name="upper_jacket base bump" | 7448 | edit_group="driven" |
7449 | render_pass="bump" | 7449 | name="Shirt Bottom Cloth" |
7450 | fixed_color="128,128,128,255"> | 7450 | value_min="0" |
7451 | <texture | 7451 | value_max="1" |
7452 | local_texture="upper_jacket" | 7452 | value_default=".8"> |
7453 | local_texture_alpha_only="true" /> | 7453 | <param_alpha |
7454 | 7454 | multiply_blend="true" | |
7455 | <param | 7455 | tga_file="shirt_bottom_alpha.tga" |
7456 | id="1039" | 7456 | domain="0.05" /> |
7457 | group="1" | 7457 | </param> |
7458 | wearable="jacket" | 7458 | |
7459 | edit_group="driven" | 7459 | <param |
7460 | edit_group_order="1" | 7460 | id="602" |
7461 | name="Jacket Sleeve Length bump" | 7461 | group="1" |
7462 | value_min="0" | 7462 | wearable="shirt" |
7463 | value_max="1"> | 7463 | edit_group="driven" |
7464 | <param_alpha | 7464 | name="Collar Front Height Cloth" |
7465 | multiply_blend="false" | 7465 | value_min="0" |
7466 | tga_file="shirt_sleeve_alpha.tga" | 7466 | value_max="1" |
7467 | domain="0.01" /> | 7467 | value_default=".8"> |
7468 | </param> | 7468 | <param_alpha |
7469 | 7469 | multiply_blend="true" | |
7470 | <param | 7470 | tga_file="shirt_collar_alpha.tga" |
7471 | id="1040" | 7471 | domain="0.05" /> |
7472 | group="1" | 7472 | </param> |
7473 | wearable="jacket" | 7473 | |
7474 | edit_group="driven" | 7474 | <param |
7475 | name="Jacket Collar Front bump" | 7475 | id="778" |
7476 | value_min="0" | 7476 | group="1" |
7477 | value_max="1"> | 7477 | wearable="shirt" |
7478 | <param_alpha | 7478 | edit_group="driven" |
7479 | multiply_blend="true" | 7479 | name="Collar Back Height Cloth" |
7480 | tga_file="shirt_collar_alpha.tga" | 7480 | value_min="0" |
7481 | domain="0.05" /> | 7481 | value_max="1" |
7482 | </param> | 7482 | value_default=".8"> |
7483 | 7483 | <param_alpha | |
7484 | <param | 7484 | multiply_blend="true" |
7485 | id="1041" | 7485 | tga_file="shirt_collar_back_alpha.tga" |
7486 | group="1" | 7486 | domain="0.05" /> |
7487 | wearable="jacket" | 7487 | </param> |
7488 | edit_group="driven" | 7488 | </layer> |
7489 | edit_group_order="3.5" | 7489 | |
7490 | name="Jacket Collar Back bump" | 7490 | <layer |
7491 | value_min="0" | 7491 | name="upper_jacket base bump" |
7492 | value_max="1"> | 7492 | render_pass="bump" |
7493 | <param_alpha | 7493 | fixed_color="128,128,128,255"> |
7494 | multiply_blend="true" | 7494 | <texture |
7495 | tga_file="shirt_collar_back_alpha.tga" | 7495 | local_texture="upper_jacket" |
7496 | domain="0.05" /> | 7496 | local_texture_alpha_only="true" /> |
7497 | </param> | 7497 | |
7498 | 7498 | <param | |
7499 | <param | 7499 | id="1039" |
7500 | id="1037" | 7500 | group="1" |
7501 | group="1" | 7501 | wearable="jacket" |
7502 | wearable="jacket" | 7502 | edit_group="driven" |
7503 | edit_group="driven" | 7503 | edit_group_order="1" |
7504 | name="jacket bottom length upper bump" | 7504 | name="Jacket Sleeve Length bump" |
7505 | value_min="0" | 7505 | value_min="0" |
7506 | value_max="1"> | 7506 | value_max="1"> |
7507 | <param_alpha | 7507 | <param_alpha |
7508 | multiply_blend="true" | 7508 | multiply_blend="false" |
7509 | tga_file="jacket_length_upper_alpha.tga" | 7509 | tga_file="shirt_sleeve_alpha.tga" |
7510 | domain="0.01" /> | 7510 | domain="0.01" /> |
7511 | </param> | 7511 | </param> |
7512 | 7512 | ||
7513 | <param | 7513 | <param |
7514 | id="1038" | 7514 | id="1040" |
7515 | group="1" | 7515 | group="1" |
7516 | wearable="jacket" | 7516 | wearable="jacket" |
7517 | edit_group="driven" | 7517 | edit_group="driven" |
7518 | name="jacket open upper bump" | 7518 | name="Jacket Collar Front bump" |
7519 | value_min="0" | 7519 | value_min="0" |
7520 | value_max="1"> | 7520 | value_max="1"> |
7521 | <param_alpha | 7521 | <param_alpha |
7522 | multiply_blend="true" | 7522 | multiply_blend="true" |
7523 | tga_file="jacket_open_upper_alpha.tga" | 7523 | tga_file="shirt_collar_alpha.tga" |
7524 | domain="0.01" /> | 7524 | domain="0.05" /> |
7525 | </param> | 7525 | </param> |
7526 | </layer> | 7526 | |
7527 | 7527 | <param | |
7528 | <layer | 7528 | id="1041" |
7529 | name="upper_jacket bump" | 7529 | group="1" |
7530 | render_pass="bump"> | 7530 | wearable="jacket" |
7531 | <texture | 7531 | edit_group="driven" |
7532 | tga_file="bump_shirt_wrinkles.tga" /> | 7532 | edit_group_order="3.5" |
7533 | 7533 | name="Jacket Collar Back bump" | |
7534 | <texture | 7534 | value_min="0" |
7535 | local_texture="upper_jacket" | 7535 | value_max="1"> |
7536 | local_texture_alpha_only="true" /> | 7536 | <param_alpha |
7537 | 7537 | multiply_blend="true" | |
7538 | <param | 7538 | tga_file="shirt_collar_back_alpha.tga" |
7539 | id="875" | 7539 | domain="0.05" /> |
7540 | group="1" | 7540 | </param> |
7541 | wearable="jacket" | 7541 | |
7542 | name="jacket upper Wrinkles" | 7542 | <param |
7543 | value_min="0" | 7543 | id="1037" |
7544 | value_max="1" | 7544 | group="1" |
7545 | value_default="0"> | 7545 | wearable="jacket" |
7546 | <param_color> | 7546 | edit_group="driven" |
7547 | <value | 7547 | name="jacket bottom length upper bump" |
7548 | color="255, 255, 255, 0" /> | 7548 | value_min="0" |
7549 | 7549 | value_max="1"> | |
7550 | <value | 7550 | <param_alpha |
7551 | color="255, 255, 255, 255" /> | 7551 | multiply_blend="true" |
7552 | </param_color> | 7552 | tga_file="jacket_length_upper_alpha.tga" |
7553 | </param> | 7553 | domain="0.01" /> |
7554 | 7554 | </param> | |
7555 | <param | 7555 | |
7556 | id="1019" | 7556 | <param |
7557 | group="1" | 7557 | id="1038" |
7558 | wearable="jacket" | 7558 | group="1" |
7559 | edit_group="driven" | 7559 | wearable="jacket" |
7560 | edit_group_order="1" | 7560 | edit_group="driven" |
7561 | name="Jacket Sleeve Length bump" | 7561 | name="jacket open upper bump" |
7562 | value_min="0" | 7562 | value_min="0" |
7563 | value_max="1"> | 7563 | value_max="1"> |
7564 | <param_alpha | 7564 | <param_alpha |
7565 | multiply_blend="false" | 7565 | multiply_blend="true" |
7566 | tga_file="shirt_sleeve_alpha.tga" | 7566 | tga_file="jacket_open_upper_alpha.tga" |
7567 | domain="0.01" /> | 7567 | domain="0.01" /> |
7568 | </param> | 7568 | </param> |
7569 | 7569 | </layer> | |
7570 | <param | 7570 | |
7571 | id="1021" | 7571 | <layer |
7572 | group="1" | 7572 | name="upper_jacket bump" |
7573 | wearable="jacket" | 7573 | render_pass="bump"> |
7574 | edit_group="driven" | 7574 | <texture |
7575 | name="Jacket Collar Front bump" | 7575 | tga_file="bump_shirt_wrinkles.tga" /> |
7576 | value_min="0" | 7576 | |
7577 | value_max="1"> | 7577 | <texture |
7578 | <param_alpha | 7578 | local_texture="upper_jacket" |
7579 | multiply_blend="true" | 7579 | local_texture_alpha_only="true" /> |
7580 | tga_file="shirt_collar_alpha.tga" | 7580 | |
7581 | domain="0.05" /> | 7581 | <param |
7582 | </param> | 7582 | id="875" |
7583 | 7583 | group="1" | |
7584 | <param | 7584 | wearable="jacket" |
7585 | id="1023" | 7585 | name="jacket upper Wrinkles" |
7586 | group="1" | 7586 | value_min="0" |
7587 | wearable="jacket" | 7587 | value_max="1" |
7588 | edit_group="driven" | 7588 | value_default="0"> |
7589 | edit_group_order="3.5" | 7589 | <param_color> |
7590 | name="Jacket Collar Back bump" | 7590 | <value |
7591 | value_min="0" | 7591 | color="255, 255, 255, 0" /> |
7592 | value_max="1"> | 7592 | |
7593 | <param_alpha | 7593 | <value |
7594 | multiply_blend="true" | 7594 | color="255, 255, 255, 255" /> |
7595 | tga_file="shirt_collar_back_alpha.tga" | 7595 | </param_color> |
7596 | domain="0.05" /> | 7596 | </param> |
7597 | </param> | 7597 | |
7598 | 7598 | <param | |
7599 | <param | 7599 | id="1019" |
7600 | id="1025" | 7600 | group="1" |
7601 | group="1" | 7601 | wearable="jacket" |
7602 | wearable="jacket" | 7602 | edit_group="driven" |
7603 | edit_group="driven" | 7603 | edit_group_order="1" |
7604 | name="jacket bottom length upper bump" | 7604 | name="Jacket Sleeve Length bump" |
7605 | value_min="0" | 7605 | value_min="0" |
7606 | value_max="1"> | 7606 | value_max="1"> |
7607 | <param_alpha | 7607 | <param_alpha |
7608 | multiply_blend="true" | 7608 | multiply_blend="false" |
7609 | tga_file="jacket_length_upper_alpha.tga" | 7609 | tga_file="shirt_sleeve_alpha.tga" |
7610 | domain="0.01" /> | 7610 | domain="0.01" /> |
7611 | </param> | 7611 | </param> |
7612 | 7612 | ||
7613 | <param | 7613 | <param |
7614 | id="1026" | 7614 | id="1021" |
7615 | group="1" | 7615 | group="1" |
7616 | wearable="jacket" | 7616 | wearable="jacket" |
7617 | edit_group="driven" | 7617 | edit_group="driven" |
7618 | name="jacket open upper bump" | 7618 | name="Jacket Collar Front bump" |
7619 | value_min="0" | 7619 | value_min="0" |
7620 | value_max="1"> | 7620 | value_max="1"> |
7621 | <param_alpha | 7621 | <param_alpha |
7622 | multiply_blend="true" | 7622 | multiply_blend="true" |
7623 | tga_file="jacket_open_upper_alpha.tga" | 7623 | tga_file="shirt_collar_alpha.tga" |
7624 | domain="0.01" /> | 7624 | domain="0.05" /> |
7625 | </param> | 7625 | </param> |
7626 | </layer> | 7626 | |
7627 | 7627 | <param | |
7628 | <layer | 7628 | id="1023" |
7629 | name="upper_jacket"> | 7629 | group="1" |
7630 | <texture | 7630 | wearable="jacket" |
7631 | local_texture="upper_jacket" /> | 7631 | edit_group="driven" |
7632 | 7632 | edit_group_order="3.5" | |
7633 | <param | 7633 | name="Jacket Collar Back bump" |
7634 | id="831" | 7634 | value_min="0" |
7635 | group="1" | 7635 | value_max="1"> |
7636 | edit_group="colorpicker_driven" | 7636 | <param_alpha |
7637 | wearable="jacket" | 7637 | multiply_blend="true" |
7638 | name="upper_jacket_red" | 7638 | tga_file="shirt_collar_back_alpha.tga" |
7639 | value_min="0" | 7639 | domain="0.05" /> |
7640 | value_max="1" | 7640 | </param> |
7641 | value_default="1"> | 7641 | |
7642 | <param_color> | 7642 | <param |
7643 | <value | 7643 | id="1025" |
7644 | color="0, 0, 0, 255" /> | 7644 | group="1" |
7645 | 7645 | wearable="jacket" | |
7646 | <value | 7646 | edit_group="driven" |
7647 | color="255, 0, 0, 255" /> | 7647 | name="jacket bottom length upper bump" |
7648 | </param_color> | 7648 | value_min="0" |
7649 | </param> | 7649 | value_max="1"> |
7650 | 7650 | <param_alpha | |
7651 | <param | 7651 | multiply_blend="true" |
7652 | id="832" | 7652 | tga_file="jacket_length_upper_alpha.tga" |
7653 | group="1" | 7653 | domain="0.01" /> |
7654 | edit_group="colorpicker_driven" | 7654 | </param> |
7655 | wearable="jacket" | 7655 | |
7656 | name="upper_jacket_green" | 7656 | <param |
7657 | value_min="0" | 7657 | id="1026" |
7658 | value_max="1" | 7658 | group="1" |
7659 | value_default="1"> | 7659 | wearable="jacket" |
7660 | <param_color> | 7660 | edit_group="driven" |
7661 | <value | 7661 | name="jacket open upper bump" |
7662 | color="0, 0, 0, 255" /> | 7662 | value_min="0" |
7663 | 7663 | value_max="1"> | |
7664 | <value | 7664 | <param_alpha |
7665 | color="0, 255, 0, 255" /> | 7665 | multiply_blend="true" |
7666 | </param_color> | 7666 | tga_file="jacket_open_upper_alpha.tga" |
7667 | </param> | 7667 | domain="0.01" /> |
7668 | 7668 | </param> | |
7669 | <param | 7669 | </layer> |
7670 | id="833" | 7670 | |
7671 | group="1" | 7671 | <layer |
7672 | edit_group="colorpicker_driven" | 7672 | name="upper_jacket"> |
7673 | wearable="jacket" | 7673 | <texture |
7674 | name="upper_jacket_blue" | 7674 | local_texture="upper_jacket" /> |
7675 | value_min="0" | 7675 | |
7676 | value_max="1" | 7676 | <param |
7677 | value_default="1"> | 7677 | id="831" |
7678 | <param_color> | 7678 | group="1" |
7679 | <value | 7679 | edit_group="colorpicker_driven" |
7680 | color="0, 0, 0, 255" /> | 7680 | wearable="jacket" |
7681 | 7681 | name="upper_jacket_red" | |
7682 | <value | 7682 | value_min="0" |
7683 | color="0, 0, 255, 255" /> | 7683 | value_max="1" |
7684 | </param_color> | 7684 | value_default="1"> |
7685 | </param> | 7685 | <param_color> |
7686 | 7686 | <value | |
7687 | <param | 7687 | color="0, 0, 0, 255" /> |
7688 | id="1020" | 7688 | |
7689 | group="1" | 7689 | <value |
7690 | edit_group="driven" | 7690 | color="255, 0, 0, 255" /> |
7691 | name="jacket Sleeve Length" | 7691 | </param_color> |
7692 | value_min="0" | 7692 | </param> |
7693 | value_max="1"> | 7693 | |
7694 | <param_alpha | 7694 | <param |
7695 | multiply_blend="false" | 7695 | id="832" |
7696 | tga_file="shirt_sleeve_alpha.tga" | 7696 | group="1" |
7697 | domain="0.01" /> | 7697 | edit_group="colorpicker_driven" |
7698 | </param> | 7698 | wearable="jacket" |
7699 | 7699 | name="upper_jacket_green" | |
7700 | <param | 7700 | value_min="0" |
7701 | id="1022" | 7701 | value_max="1" |
7702 | group="1" | 7702 | value_default="1"> |
7703 | edit_group="driven" | 7703 | <param_color> |
7704 | name="jacket Collar Front" | 7704 | <value |
7705 | value_min="0" | 7705 | color="0, 0, 0, 255" /> |
7706 | value_max="1"> | 7706 | |
7707 | <param_alpha | 7707 | <value |
7708 | multiply_blend="true" | 7708 | color="0, 255, 0, 255" /> |
7709 | tga_file="shirt_collar_alpha.tga" | 7709 | </param_color> |
7710 | domain="0.05" /> | 7710 | </param> |
7711 | </param> | 7711 | |
7712 | 7712 | <param | |
7713 | <param | 7713 | id="833" |
7714 | id="1024" | 7714 | group="1" |
7715 | group="1" | 7715 | edit_group="colorpicker_driven" |
7716 | edit_group="driven" | 7716 | wearable="jacket" |
7717 | edit_group_order="3.5" | 7717 | name="upper_jacket_blue" |
7718 | name="jacket Collar Back" | 7718 | value_min="0" |
7719 | value_min="0" | 7719 | value_max="1" |
7720 | value_max="1"> | 7720 | value_default="1"> |
7721 | <param_alpha | 7721 | <param_color> |
7722 | multiply_blend="true" | 7722 | <value |
7723 | tga_file="shirt_collar_back_alpha.tga" | 7723 | color="0, 0, 0, 255" /> |
7724 | domain="0.05" /> | 7724 | |
7725 | </param> | 7725 | <value |
7726 | 7726 | color="0, 0, 255, 255" /> | |
7727 | <param | 7727 | </param_color> |
7728 | id="620" | 7728 | </param> |
7729 | group="1" | 7729 | |
7730 | wearable="jacket" | 7730 | <param |
7731 | edit_group="jacket" | 7731 | id="1020" |
7732 | name="bottom length upper" | 7732 | group="1" |
7733 | label_min="hi cut" | 7733 | edit_group="driven" |
7734 | label_max="low cut" | 7734 | name="jacket Sleeve Length" |
7735 | value_min="0" | 7735 | value_min="0" |
7736 | value_max="1" | 7736 | value_max="1"> |
7737 | value_default=".8" | 7737 | <param_alpha |
7738 | camera_distance="1.2" | 7738 | multiply_blend="false" |
7739 | camera_angle="30" | 7739 | tga_file="shirt_sleeve_alpha.tga" |
7740 | camera_elevation=".2"> | 7740 | domain="0.01" /> |
7741 | <param_alpha | 7741 | </param> |
7742 | multiply_blend="true" | 7742 | |
7743 | tga_file="jacket_length_upper_alpha.tga" | 7743 | <param |
7744 | domain="0.01" /> | 7744 | id="1022" |
7745 | </param> | 7745 | group="1" |
7746 | 7746 | edit_group="driven" | |
7747 | <param | 7747 | name="jacket Collar Front" |
7748 | id="622" | 7748 | value_min="0" |
7749 | group="1" | 7749 | value_max="1"> |
7750 | wearable="jacket" | 7750 | <param_alpha |
7751 | edit_group="jacket" | 7751 | multiply_blend="true" |
7752 | name="open upper" | 7752 | tga_file="shirt_collar_alpha.tga" |
7753 | label_min="closed" | 7753 | domain="0.05" /> |
7754 | label_max="open" | 7754 | </param> |
7755 | value_min="0" | 7755 | |
7756 | value_max="1" | 7756 | <param |
7757 | value_default=".8" | 7757 | id="1024" |
7758 | camera_distance="1.2" | 7758 | group="1" |
7759 | camera_angle="30" | 7759 | edit_group="driven" |
7760 | camera_elevation=".2"> | 7760 | edit_group_order="3.5" |
7761 | <param_alpha | 7761 | name="jacket Collar Back" |
7762 | multiply_blend="true" | 7762 | value_min="0" |
7763 | tga_file="jacket_open_upper_alpha.tga" | 7763 | value_max="1"> |
7764 | domain="0.01" /> | 7764 | <param_alpha |
7765 | </param> | 7765 | multiply_blend="true" |
7766 | </layer> | 7766 | tga_file="shirt_collar_back_alpha.tga" |
7767 | 7767 | domain="0.05" /> | |
7768 | <layer | 7768 | </param> |
7769 | name="upper alpha" | 7769 | |
7770 | visibility_mask="TRUE"> | 7770 | <param |
7771 | <texture | 7771 | id="620" |
7772 | local_texture="upper_alpha" /> | 7772 | group="1" |
7773 | </layer> | 7773 | wearable="jacket" |
7774 | 7774 | edit_group="jacket" | |
7775 | </layer_set> | 7775 | name="bottom length upper" |
7776 | 7776 | label_min="hi cut" | |
7777 | <!-- =========================================================== --> | 7777 | label_max="low cut" |
7778 | <layer_set | 7778 | value_min="0" |
7779 | body_region="lower_body" | 7779 | value_max="1" |
7780 | width="512" | 7780 | value_default=".8" |
7781 | height="512"> | 7781 | camera_distance="1.2" |
7782 | <layer | 7782 | camera_angle="30" |
7783 | name="lower body bump base" | 7783 | camera_elevation=".2"> |
7784 | fixed_color = "128,128,128,255" | 7784 | <param_alpha |
7785 | render_pass="bump"> | 7785 | multiply_blend="true" |
7786 | </layer> | 7786 | tga_file="jacket_length_upper_alpha.tga" |
7787 | <layer | 7787 | domain="0.01" /> |
7788 | name="base_lowerbody bump" | 7788 | </param> |
7789 | render_pass="bump"> | 7789 | |
7790 | <texture | 7790 | <param |
7791 | tga_file="bump_lowerbody_base.tga" | 7791 | id="622" |
7792 | file_is_mask="FALSE" /> | 7792 | group="1" |
7793 | 7793 | wearable="jacket" | |
7794 | <param | 7794 | edit_group="jacket" |
7795 | id="878" | 7795 | name="open upper" |
7796 | group="1" | 7796 | label_min="closed" |
7797 | wearable="skin" | 7797 | label_max="open" |
7798 | edit_group="driven" | 7798 | value_min="0" |
7799 | edit_group_order="20" | 7799 | value_max="1" |
7800 | name="Bump upperdef" | 7800 | value_default=".8" |
7801 | value_min="0" | 7801 | camera_distance="1.2" |
7802 | value_max="1"> | 7802 | camera_angle="30" |
7803 | <param_alpha | 7803 | camera_elevation=".2"> |
7804 | domain="0" /> | 7804 | <param_alpha |
7805 | </param> | 7805 | multiply_blend="true" |
7806 | </layer> | 7806 | tga_file="jacket_open_upper_alpha.tga" |
7807 | 7807 | domain="0.01" /> | |
7808 | <layer | 7808 | </param> |
7809 | name="base" | 7809 | </layer> |
7810 | global_color="skin_color"> | 7810 | |
7811 | <texture | 7811 | <layer |
7812 | tga_file="body_skingrain.tga" /> | 7812 | name="upper alpha" |
7813 | </layer> | 7813 | visibility_mask="TRUE"> |
7814 | 7814 | <texture | |
7815 | <layer | 7815 | local_texture="upper_alpha" /> |
7816 | name="shadow"> | 7816 | </layer> |
7817 | <texture | 7817 | |
7818 | tga_file="lowerbody_shading_alpha.tga" | 7818 | </layer_set> |
7819 | file_is_mask="TRUE" /> | 7819 | |
7820 | 7820 | <!-- =========================================================== --> | |
7821 | <param | 7821 | <layer_set |
7822 | id="160" | 7822 | body_region="lower_body" |
7823 | group="1" | 7823 | width="512" |
7824 | name="Shading" | 7824 | height="512"> |
7825 | wearable="pants" | 7825 | <layer |
7826 | value_min="0" | 7826 | name="lower body bump base" |
7827 | value_max="1"> | 7827 | fixed_color = "128,128,128,255" |
7828 | <param_color> | 7828 | render_pass="bump"> |
7829 | <value | 7829 | </layer> |
7830 | color="0, 0, 0, 0" /> | 7830 | <layer |
7831 | 7831 | name="base_lowerbody bump" | |
7832 | <value | 7832 | render_pass="bump"> |
7833 | color="0, 0, 0, 128" /> | 7833 | <texture |
7834 | </param_color> | 7834 | tga_file="bump_lowerbody_base.tga" |
7835 | </param> | 7835 | file_is_mask="FALSE" /> |
7836 | </layer> | 7836 | |
7837 | 7837 | <param | |
7838 | <layer | 7838 | id="878" |
7839 | name="highlight"> | 7839 | group="1" |
7840 | <texture | 7840 | wearable="skin" |
7841 | tga_file="lowerbody_highlights_alpha.tga" | 7841 | edit_group="driven" |
7842 | file_is_mask="TRUE" /> | 7842 | edit_group_order="20" |
7843 | 7843 | name="Bump upperdef" | |
7844 | <param | 7844 | value_min="0" |
7845 | id="161" | 7845 | value_max="1"> |
7846 | group="1" | 7846 | <param_alpha |
7847 | name="Shading" | 7847 | domain="0" /> |
7848 | wearable="skin" | 7848 | </param> |
7849 | value_min="0" | 7849 | </layer> |
7850 | value_max="1"> | 7850 | |
7851 | <param_color> | 7851 | <layer |
7852 | <value | 7852 | name="base" |
7853 | color="255, 255, 255, 0" /> | 7853 | global_color="skin_color"> |
7854 | 7854 | <texture | |
7855 | <value | 7855 | tga_file="body_skingrain.tga" /> |
7856 | color="255, 255, 255, 64" /> | 7856 | </layer> |
7857 | </param_color> | 7857 | |
7858 | </param> | 7858 | <layer |
7859 | </layer> | 7859 | name="shadow"> |
7860 | 7860 | <texture | |
7861 | <layer | 7861 | tga_file="lowerbody_shading_alpha.tga" |
7862 | name="toenails"> | 7862 | file_is_mask="TRUE" /> |
7863 | <texture | 7863 | |
7864 | tga_file="lowerbody_color.tga" /> | 7864 | <param |
7865 | </layer> | 7865 | id="160" |
7866 | 7866 | group="1" | |
7867 | <layer | 7867 | name="Shading" |
7868 | name="lower_bodypaint"> | 7868 | wearable="pants" |
7869 | <texture | 7869 | value_min="0" |
7870 | local_texture="lower_bodypaint" /> | 7870 | value_max="1"> |
7871 | </layer> | 7871 | <param_color> |
7872 | 7872 | <value | |
7873 | <layer | 7873 | color="0, 0, 0, 0" /> |
7874 | name="freckles lower" | 7874 | |
7875 | fixed_color="120,47,20,128"> | 7875 | <value |
7876 | <param | 7876 | color="0, 0, 0, 128" /> |
7877 | id="777" | 7877 | </param_color> |
7878 | group="1" | 7878 | </param> |
7879 | name="freckles lower" | 7879 | </layer> |
7880 | wearable="skin" | 7880 | |
7881 | value_min="0" | 7881 | <layer |
7882 | value_max="1"> | 7882 | name="highlight"> |
7883 | <param_alpha | 7883 | <texture |
7884 | tga_file="bodyfreckles_alpha.tga" | 7884 | tga_file="lowerbody_highlights_alpha.tga" |
7885 | skip_if_zero="true" | 7885 | file_is_mask="TRUE" /> |
7886 | domain="0.6" /> | 7886 | |
7887 | </param> | 7887 | <param |
7888 | </layer> | 7888 | id="161" |
7889 | 7889 | group="1" | |
7890 | <layer | 7890 | name="Shading" |
7891 | name="lower_tattoo"> | 7891 | wearable="skin" |
7892 | <texture | 7892 | value_min="0" |
7893 | local_texture="lower_tattoo" /> | 7893 | value_max="1"> |
7894 | </layer> | 7894 | <param_color> |
7895 | 7895 | <value | |
7896 | <layer | 7896 | color="255, 255, 255, 0" /> |
7897 | name="lower_underpants bump" | 7897 | |
7898 | render_pass="bump" | 7898 | <value |
7899 | fixed_color="128,128,128,255"> | 7899 | color="255, 255, 255, 64" /> |
7900 | <texture | 7900 | </param_color> |
7901 | local_texture="lower_underpants" | 7901 | </param> |
7902 | local_texture_alpha_only="true" /> | 7902 | </layer> |
7903 | 7903 | ||
7904 | <param | 7904 | <layer |
7905 | id="1055" | 7905 | name="toenails"> |
7906 | group="1" | 7906 | <texture |
7907 | wearable="underpants" | 7907 | tga_file="lowerbody_color.tga" /> |
7908 | edit_group="underpants" | 7908 | </layer> |
7909 | name="Pants Length" | 7909 | |
7910 | value_min="0" | 7910 | <layer |
7911 | value_max="1" | 7911 | name="lower_bodypaint"> |
7912 | value_default=".3"> | 7912 | <texture |
7913 | <param_alpha | 7913 | local_texture="lower_bodypaint" /> |
7914 | tga_file="pants_length_alpha.tga" | 7914 | </layer> |
7915 | domain="0.01" /> | 7915 | |
7916 | </param> | 7916 | <layer |
7917 | 7917 | name="freckles lower" | |
7918 | <param | 7918 | fixed_color="120,47,20,128"> |
7919 | id="1057" | 7919 | <param |
7920 | group="1" | 7920 | id="777" |
7921 | wearable="underpants" | 7921 | group="1" |
7922 | edit_group="underpants" | 7922 | name="freckles lower" |
7923 | name="Pants Waist" | 7923 | wearable="skin" |
7924 | value_min="0" | 7924 | value_min="0" |
7925 | value_max="1" | 7925 | value_max="1"> |
7926 | value_default=".8"> | 7926 | <param_alpha |
7927 | <param_alpha | 7927 | tga_file="bodyfreckles_alpha.tga" |
7928 | tga_file="pants_waist_alpha.tga" | 7928 | skip_if_zero="true" |
7929 | domain="0.05" /> | 7929 | domain="0.6" /> |
7930 | </param> | 7930 | </param> |
7931 | </layer> | 7931 | </layer> |
7932 | 7932 | ||
7933 | <layer | 7933 | <layer |
7934 | name="lower_underpants"> | 7934 | name="lower_tattoo"> |
7935 | <texture | 7935 | <texture local_texture="lower_tattoo" /> |
7936 | local_texture="lower_underpants" /> | 7936 | <param id="1068" group="1" edit_group="colorpicker_driven" wearable="tattoo" |
7937 | 7937 | name="tattoo_lower_red" value_min="0" value_max="1" value_default="1"> | |
7938 | <param | 7938 | <param_color> |
7939 | id="824" | 7939 | <value color="0, 0, 0, 255" /> |
7940 | group="0" | 7940 | <value color="255, 0, 0, 255" /> |
7941 | wearable="underpants" | 7941 | </param_color> |
7942 | edit_group="colorpicker" | 7942 | </param> |
7943 | name="underpants_red" | 7943 | |
7944 | value_min="0" | 7944 | <param id="1069" group="1" edit_group="colorpicker_driven" wearable="tattoo" |
7945 | value_max="1" | 7945 | name="tattoo_lower_green" value_min="0" value_max="1" value_default="1"> |
7946 | value_default="1"> | 7946 | <param_color> |
7947 | <param_color> | 7947 | <value color="0, 0, 0, 255" /> |
7948 | <value | 7948 | <value color="0, 255, 0, 255" /> |
7949 | color="0, 0, 0, 255" /> | 7949 | </param_color> |
7950 | 7950 | </param> | |
7951 | <value | 7951 | |
7952 | color="255, 0, 0, 255" /> | 7952 | <param id="1070" group="1" edit_group="colorpicker_driven" wearable="tattoo" |
7953 | </param_color> | 7953 | name="tattoo_lower_blue" value_min="0" value_max="1" value_default="1"> |
7954 | </param> | 7954 | <param_color> |
7955 | 7955 | <value color="0, 0, 0, 255" /> | |
7956 | <param | 7956 | <value color="0, 0, 255, 255" /> |
7957 | id="825" | 7957 | </param_color> |
7958 | group="0" | 7958 | </param> |
7959 | wearable="underpants" | 7959 | </layer> |
7960 | edit_group="colorpicker" | 7960 | |
7961 | name="underpants_green" | 7961 | <layer |
7962 | value_min="0" | 7962 | name="lower_underpants bump" |
7963 | value_max="1" | 7963 | render_pass="bump" |
7964 | value_default="1"> | 7964 | fixed_color="128,128,128,255"> |
7965 | <param_color> | 7965 | <texture |
7966 | <value | 7966 | local_texture="lower_underpants" |
7967 | color="0, 0, 0, 255" /> | 7967 | local_texture_alpha_only="true" /> |
7968 | 7968 | ||
7969 | <value | 7969 | <param |
7970 | color="0, 255, 0, 255" /> | 7970 | id="1055" |
7971 | </param_color> | 7971 | group="1" |
7972 | </param> | 7972 | wearable="underpants" |
7973 | 7973 | edit_group="underpants" | |
7974 | <param | 7974 | name="Pants Length" |
7975 | id="826" | 7975 | value_min="0" |
7976 | group="0" | 7976 | value_max="1" |
7977 | wearable="underpants" | 7977 | value_default=".3"> |
7978 | edit_group="colorpicker" | 7978 | <param_alpha |
7979 | name="underpants_blue" | 7979 | tga_file="pants_length_alpha.tga" |
7980 | value_min="0" | 7980 | domain="0.01" /> |
7981 | value_max="1" | 7981 | </param> |
7982 | value_default="1"> | 7982 | |
7983 | <param_color> | 7983 | <param |
7984 | <value | 7984 | id="1057" |
7985 | color="0, 0, 0, 255" /> | 7985 | group="1" |
7986 | 7986 | wearable="underpants" | |
7987 | <value | 7987 | edit_group="underpants" |
7988 | color="0, 0, 255, 255" /> | 7988 | name="Pants Waist" |
7989 | </param_color> | 7989 | value_min="0" |
7990 | </param> | 7990 | value_max="1" |
7991 | 7991 | value_default=".8"> | |
7992 | <param | 7992 | <param_alpha |
7993 | id="1054" | 7993 | tga_file="pants_waist_alpha.tga" |
7994 | group="1" | 7994 | domain="0.05" /> |
7995 | wearable="underpants" | 7995 | </param> |
7996 | edit_group="driven" | 7996 | </layer> |
7997 | name="Pants Length" | 7997 | |
7998 | value_min="0" | 7998 | <layer |
7999 | value_max="1" | 7999 | name="lower_underpants"> |
8000 | value_default=".3" | 8000 | <texture |
8001 | camera_distance="1.2" | 8001 | local_texture="lower_underpants" /> |
8002 | camera_angle="30" | 8002 | |
8003 | camera_elevation="-.3"> | 8003 | <param |
8004 | <param_alpha | 8004 | id="824" |
8005 | tga_file="pants_length_alpha.tga" | 8005 | group="0" |
8006 | domain="0.01" /> | 8006 | wearable="underpants" |
8007 | </param> | 8007 | edit_group="colorpicker" |
8008 | 8008 | name="underpants_red" | |
8009 | <param | 8009 | value_min="0" |
8010 | id="1056" | 8010 | value_max="1" |
8011 | group="1" | 8011 | value_default="1"> |
8012 | wearable="underpants" | 8012 | <param_color> |
8013 | edit_group="driven" | 8013 | <value |
8014 | name="Pants Waist" | 8014 | color="0, 0, 0, 255" /> |
8015 | value_min="0" | 8015 | |
8016 | value_max="1" | 8016 | <value |
8017 | value_default=".8"> | 8017 | color="255, 0, 0, 255" /> |
8018 | <param_alpha | 8018 | </param_color> |
8019 | tga_file="pants_waist_alpha.tga" | 8019 | </param> |
8020 | domain="0.05" /> | 8020 | |
8021 | </param> | 8021 | <param |
8022 | </layer> | 8022 | id="825" |
8023 | 8023 | group="0" | |
8024 | <layer | 8024 | wearable="underpants" |
8025 | name="lower_socks bump" | 8025 | edit_group="colorpicker" |
8026 | render_pass="bump" | 8026 | name="underpants_green" |
8027 | fixed_color="128,128,128,255"> | 8027 | value_min="0" |
8028 | <texture | 8028 | value_max="1" |
8029 | local_texture="lower_socks" | 8029 | value_default="1"> |
8030 | local_texture_alpha_only="true" /> | 8030 | <param_color> |
8031 | 8031 | <value | |
8032 | <param | 8032 | color="0, 0, 0, 255" /> |
8033 | id="1051" | 8033 | |
8034 | group="1" | 8034 | <value |
8035 | wearable="socks" | 8035 | color="0, 255, 0, 255" /> |
8036 | edit_group="driven" | 8036 | </param_color> |
8037 | name="Socks Length bump" | 8037 | </param> |
8038 | value_min="0" | 8038 | |
8039 | value_max="1" | 8039 | <param |
8040 | value_default="0.35"> | 8040 | id="826" |
8041 | <param_alpha | 8041 | group="0" |
8042 | tga_file="shoe_height_alpha.tga" | 8042 | wearable="underpants" |
8043 | domain="0.01" /> | 8043 | edit_group="colorpicker" |
8044 | </param> | 8044 | name="underpants_blue" |
8045 | </layer> | 8045 | value_min="0" |
8046 | 8046 | value_max="1" | |
8047 | <layer | 8047 | value_default="1"> |
8048 | name="lower_socks"> | 8048 | <param_color> |
8049 | <texture | 8049 | <value |
8050 | local_texture="lower_socks" /> | 8050 | color="0, 0, 0, 255" /> |
8051 | 8051 | ||
8052 | <param | 8052 | <value |
8053 | id="818" | 8053 | color="0, 0, 255, 255" /> |
8054 | group="0" | 8054 | </param_color> |
8055 | wearable="socks" | 8055 | </param> |
8056 | edit_group="colorpicker" | 8056 | |
8057 | name="socks_red" | 8057 | <param |
8058 | value_min="0" | 8058 | id="1054" |
8059 | value_max="1" | 8059 | group="1" |
8060 | value_default="1"> | 8060 | wearable="underpants" |
8061 | <param_color> | 8061 | edit_group="driven" |
8062 | <value | 8062 | name="Pants Length" |
8063 | color="0, 0, 0, 255" /> | 8063 | value_min="0" |
8064 | 8064 | value_max="1" | |
8065 | <value | 8065 | value_default=".3" |
8066 | color="255, 0, 0, 255" /> | 8066 | camera_distance="1.2" |
8067 | </param_color> | 8067 | camera_angle="30" |
8068 | </param> | 8068 | camera_elevation="-.3"> |
8069 | 8069 | <param_alpha | |
8070 | <param | 8070 | tga_file="pants_length_alpha.tga" |
8071 | id="819" | 8071 | domain="0.01" /> |
8072 | group="0" | 8072 | </param> |
8073 | wearable="socks" | 8073 | |
8074 | edit_group="colorpicker" | 8074 | <param |
8075 | name="socks_green" | 8075 | id="1056" |
8076 | value_min="0" | 8076 | group="1" |
8077 | value_max="1" | 8077 | wearable="underpants" |
8078 | value_default="1"> | 8078 | edit_group="driven" |
8079 | <param_color> | 8079 | name="Pants Waist" |
8080 | <value | 8080 | value_min="0" |
8081 | color="0, 0, 0, 255" /> | 8081 | value_max="1" |
8082 | 8082 | value_default=".8"> | |
8083 | <value | 8083 | <param_alpha |
8084 | color="0, 255, 0, 255" /> | 8084 | tga_file="pants_waist_alpha.tga" |
8085 | </param_color> | 8085 | domain="0.05" /> |
8086 | </param> | 8086 | </param> |
8087 | 8087 | </layer> | |
8088 | <param | 8088 | |
8089 | id="820" | 8089 | <layer |
8090 | group="0" | 8090 | name="lower_socks bump" |
8091 | wearable="socks" | 8091 | render_pass="bump" |
8092 | edit_group="colorpicker" | 8092 | fixed_color="128,128,128,255"> |
8093 | name="socks_blue" | 8093 | <texture |
8094 | value_min="0" | 8094 | local_texture="lower_socks" |
8095 | value_max="1" | 8095 | local_texture_alpha_only="true" /> |
8096 | value_default="1"> | 8096 | |
8097 | <param_color> | 8097 | <param |
8098 | <value | 8098 | id="1051" |
8099 | color="0, 0, 0, 255" /> | 8099 | group="1" |
8100 | 8100 | wearable="socks" | |
8101 | <value | 8101 | edit_group="driven" |
8102 | color="0, 0, 255, 255" /> | 8102 | name="Socks Length bump" |
8103 | </param_color> | 8103 | value_min="0" |
8104 | </param> | 8104 | value_max="1" |
8105 | 8105 | value_default="0.35"> | |
8106 | <param | 8106 | <param_alpha |
8107 | id="1050" | 8107 | tga_file="shoe_height_alpha.tga" |
8108 | group="1" | 8108 | domain="0.01" /> |
8109 | wearable="socks" | 8109 | </param> |
8110 | edit_group="driven" | 8110 | </layer> |
8111 | name="Socks Length bump" | 8111 | |
8112 | value_min="0" | 8112 | <layer |
8113 | value_max="1" | 8113 | name="lower_socks"> |
8114 | value_default="0.35"> | 8114 | <texture |
8115 | <param_alpha | 8115 | local_texture="lower_socks" /> |
8116 | tga_file="shoe_height_alpha.tga" | 8116 | |
8117 | domain="0.01" /> | 8117 | <param |
8118 | </param> | 8118 | id="818" |
8119 | </layer> | 8119 | group="0" |
8120 | 8120 | wearable="socks" | |
8121 | <layer | 8121 | edit_group="colorpicker" |
8122 | name="lower_shoes bump" | 8122 | name="socks_red" |
8123 | render_pass="bump" | 8123 | value_min="0" |
8124 | fixed_color="128,128,128,255"> | 8124 | value_max="1" |
8125 | <texture | 8125 | value_default="1"> |
8126 | local_texture="lower_shoes" | 8126 | <param_color> |
8127 | local_texture_alpha_only="true" /> | 8127 | <value |
8128 | 8128 | color="0, 0, 0, 255" /> | |
8129 | <param | 8129 | |
8130 | id="1053" | 8130 | <value |
8131 | group="1" | 8131 | color="255, 0, 0, 255" /> |
8132 | wearable="shoes" | 8132 | </param_color> |
8133 | edit_group="driven" | 8133 | </param> |
8134 | name="Shoe Height bump" | 8134 | |
8135 | value_min="0" | 8135 | <param |
8136 | value_max="1" | 8136 | id="819" |
8137 | value_default="0.1"> | 8137 | group="0" |
8138 | <param_alpha | 8138 | wearable="socks" |
8139 | tga_file="shoe_height_alpha.tga" | 8139 | edit_group="colorpicker" |
8140 | domain="0.01" /> | 8140 | name="socks_green" |
8141 | </param> | 8141 | value_min="0" |
8142 | </layer> | 8142 | value_max="1" |
8143 | 8143 | value_default="1"> | |
8144 | <layer | 8144 | <param_color> |
8145 | name="lower_shoes"> | 8145 | <value |
8146 | <texture | 8146 | color="0, 0, 0, 255" /> |
8147 | local_texture="lower_shoes" /> | 8147 | |
8148 | 8148 | <value | |
8149 | <param | 8149 | color="0, 255, 0, 255" /> |
8150 | id="812" | 8150 | </param_color> |
8151 | group="0" | 8151 | </param> |
8152 | wearable="shoes" | 8152 | |
8153 | edit_group="colorpicker" | 8153 | <param |
8154 | name="shoes_red" | 8154 | id="820" |
8155 | value_min="0" | 8155 | group="0" |
8156 | value_max="1" | 8156 | wearable="socks" |
8157 | value_default="1"> | 8157 | edit_group="colorpicker" |
8158 | <param_color> | 8158 | name="socks_blue" |
8159 | <value | 8159 | value_min="0" |
8160 | color="0, 0, 0, 255" /> | 8160 | value_max="1" |
8161 | 8161 | value_default="1"> | |
8162 | <value | 8162 | <param_color> |
8163 | color="255, 0, 0, 255" /> | 8163 | <value |
8164 | </param_color> | 8164 | color="0, 0, 0, 255" /> |
8165 | </param> | 8165 | |
8166 | 8166 | <value | |
8167 | <param | 8167 | color="0, 0, 255, 255" /> |
8168 | id="813" | 8168 | </param_color> |
8169 | group="0" | 8169 | </param> |
8170 | wearable="shoes" | 8170 | |
8171 | edit_group="colorpicker" | 8171 | <param |
8172 | name="shoes_green" | 8172 | id="1050" |
8173 | value_min="0" | 8173 | group="1" |
8174 | value_max="1" | 8174 | wearable="socks" |
8175 | value_default="1"> | 8175 | edit_group="driven" |
8176 | <param_color> | 8176 | name="Socks Length bump" |
8177 | <value | 8177 | value_min="0" |
8178 | color="0, 0, 0, 255" /> | 8178 | value_max="1" |
8179 | 8179 | value_default="0.35"> | |
8180 | <value | 8180 | <param_alpha |
8181 | color="0, 255, 0, 255" /> | 8181 | tga_file="shoe_height_alpha.tga" |
8182 | </param_color> | 8182 | domain="0.01" /> |
8183 | </param> | 8183 | </param> |
8184 | 8184 | </layer> | |
8185 | <param | 8185 | |
8186 | id="817" | 8186 | <layer |
8187 | group="0" | 8187 | name="lower_shoes bump" |
8188 | wearable="shoes" | 8188 | render_pass="bump" |
8189 | edit_group="colorpicker" | 8189 | fixed_color="128,128,128,255"> |
8190 | name="shoes_blue" | 8190 | <texture |
8191 | value_min="0" | 8191 | local_texture="lower_shoes" |
8192 | value_max="1" | 8192 | local_texture_alpha_only="true" /> |
8193 | value_default="1"> | 8193 | |
8194 | <param_color> | 8194 | <param |
8195 | <value | 8195 | id="1053" |
8196 | color="0, 0, 0, 255" /> | 8196 | group="1" |
8197 | 8197 | wearable="shoes" | |
8198 | <value | 8198 | edit_group="driven" |
8199 | color="0, 0, 255, 255" /> | 8199 | name="Shoe Height bump" |
8200 | </param_color> | 8200 | value_min="0" |
8201 | </param> | 8201 | value_max="1" |
8202 | 8202 | value_default="0.1"> | |
8203 | <param | 8203 | <param_alpha |
8204 | id="1052" | 8204 | tga_file="shoe_height_alpha.tga" |
8205 | group="1" | 8205 | domain="0.01" /> |
8206 | wearable="shoes" | 8206 | </param> |
8207 | edit_group="driven" | 8207 | </layer> |
8208 | name="Shoe Height" | 8208 | |
8209 | value_min="0" | 8209 | <layer |
8210 | value_max="1" | 8210 | name="lower_shoes"> |
8211 | value_default="0.1"> | 8211 | <texture |
8212 | <param_alpha | 8212 | local_texture="lower_shoes" /> |
8213 | tga_file="shoe_height_alpha.tga" | 8213 | |
8214 | domain="0.01" /> | 8214 | <param |
8215 | </param> | 8215 | id="812" |
8216 | </layer> | 8216 | group="0" |
8217 | 8217 | wearable="shoes" | |
8218 | <layer | 8218 | edit_group="colorpicker" |
8219 | name="lower_clothes_shadow"> | 8219 | name="shoes_red" |
8220 | <texture | 8220 | value_min="0" |
8221 | local_texture="lower_pants" /> | 8221 | value_max="1" |
8222 | 8222 | value_default="1"> | |
8223 | <param | 8223 | <param_color> |
8224 | id="913" | 8224 | <value |
8225 | group="1" | 8225 | color="0, 0, 0, 255" /> |
8226 | edit_group="driven" | 8226 | |
8227 | wearable="pants" | 8227 | <value |
8228 | name="Lower Clothes Shading" | 8228 | color="255, 0, 0, 255" /> |
8229 | value_min="0" | 8229 | </param_color> |
8230 | value_max="1" | 8230 | </param> |
8231 | value_default="0"> | 8231 | |
8232 | <param_color> | 8232 | <param |
8233 | <value | 8233 | id="813" |
8234 | color="0, 0, 0, 0" /> | 8234 | group="0" |
8235 | 8235 | wearable="shoes" | |
8236 | <value | 8236 | edit_group="colorpicker" |
8237 | color="0, 0, 0, 80" /> | 8237 | name="shoes_green" |
8238 | </param_color> | 8238 | value_min="0" |
8239 | </param> | 8239 | value_max="1" |
8240 | 8240 | value_default="1"> | |
8241 | <param | 8241 | <param_color> |
8242 | id="914" | 8242 | <value |
8243 | group="1" | 8243 | color="0, 0, 0, 255" /> |
8244 | edit_group="driven" | 8244 | |
8245 | wearable="pants" | 8245 | <value |
8246 | name="Waist Height Shadow" | 8246 | color="0, 255, 0, 255" /> |
8247 | value_min="0.02" | 8247 | </param_color> |
8248 | value_max="1"> | 8248 | </param> |
8249 | <param_alpha | 8249 | |
8250 | tga_file="pants_waist_alpha.tga" | 8250 | <param |
8251 | skip_if_zero="true" | 8251 | id="817" |
8252 | domain="0.04" /> | 8252 | group="0" |
8253 | </param> | 8253 | wearable="shoes" |
8254 | 8254 | edit_group="colorpicker" | |
8255 | <param | 8255 | name="shoes_blue" |
8256 | id="915" | 8256 | value_min="0" |
8257 | group="1" | 8257 | value_max="1" |
8258 | edit_group="driven" | 8258 | value_default="1"> |
8259 | wearable="pants" | 8259 | <param_color> |
8260 | name="Pants Length Shadow" | 8260 | <value |
8261 | value_min="0.02" | 8261 | color="0, 0, 0, 255" /> |
8262 | value_max="1"> | 8262 | |
8263 | <param_alpha | 8263 | <value |
8264 | tga_file="pants_length_alpha.tga" | 8264 | color="0, 0, 255, 255" /> |
8265 | skip_if_zero="true" | 8265 | </param_color> |
8266 | domain="0.03" /> | 8266 | </param> |
8267 | </param> | 8267 | |
8268 | </layer> | 8268 | <param |
8269 | 8269 | id="1052" | |
8270 | <layer | 8270 | group="1" |
8271 | name="lower_pants base bump" | 8271 | wearable="shoes" |
8272 | render_pass="bump" | 8272 | edit_group="driven" |
8273 | fixed_color="128,128,128,255"> | 8273 | name="Shoe Height" |
8274 | <texture | 8274 | value_min="0" |
8275 | local_texture="lower_pants" | 8275 | value_max="1" |
8276 | local_texture_alpha_only="true" /> | 8276 | value_default="0.1"> |
8277 | 8277 | <param_alpha | |
8278 | <param | 8278 | tga_file="shoe_height_alpha.tga" |
8279 | id="1035" | 8279 | domain="0.01" /> |
8280 | group="1" | 8280 | </param> |
8281 | edit_group="driven" | 8281 | </layer> |
8282 | wearable="pants" | 8282 | |
8283 | name="Waist Height Cloth" | 8283 | <layer |
8284 | value_min="0" | 8284 | name="lower_clothes_shadow"> |
8285 | value_max="1"> | 8285 | <texture |
8286 | <param_alpha | 8286 | local_texture="lower_pants" /> |
8287 | tga_file="pants_waist_alpha.tga" | 8287 | |
8288 | domain="0.05" /> | 8288 | <param |
8289 | </param> | 8289 | id="913" |
8290 | 8290 | group="1" | |
8291 | <param | 8291 | edit_group="driven" |
8292 | id="1036" | 8292 | wearable="pants" |
8293 | group="1" | 8293 | name="Lower Clothes Shading" |
8294 | edit_group="driven" | 8294 | value_min="0" |
8295 | wearable="pants" | 8295 | value_max="1" |
8296 | name="Pants Length Cloth" | 8296 | value_default="0"> |
8297 | value_min="0" | 8297 | <param_color> |
8298 | value_max="1"> | 8298 | <value |
8299 | <param_alpha | 8299 | color="0, 0, 0, 0" /> |
8300 | tga_file="pants_length_alpha.tga" | 8300 | |
8301 | domain="0.01" /> | 8301 | <value |
8302 | </param> | 8302 | color="0, 0, 0, 80" /> |
8303 | </layer> | 8303 | </param_color> |
8304 | 8304 | </param> | |
8305 | <layer | 8305 | |
8306 | name="lower_pants bump" | 8306 | <param |
8307 | render_pass="bump"> | 8307 | id="914" |
8308 | <texture | 8308 | group="1" |
8309 | tga_file="bump_pants_wrinkles.tga" /> | 8309 | edit_group="driven" |
8310 | 8310 | wearable="pants" | |
8311 | <texture | 8311 | name="Waist Height Shadow" |
8312 | local_texture="lower_pants" | 8312 | value_min="0.02" |
8313 | local_texture_alpha_only="true" /> | 8313 | value_max="1"> |
8314 | 8314 | <param_alpha | |
8315 | <param | 8315 | tga_file="pants_waist_alpha.tga" |
8316 | id="869" | 8316 | skip_if_zero="true" |
8317 | group="0" | 8317 | domain="0.04" /> |
8318 | wearable="pants" | 8318 | </param> |
8319 | edit_group="pants" | 8319 | |
8320 | edit_group_order="6" | 8320 | <param |
8321 | name="Pants Wrinkles" | 8321 | id="915" |
8322 | value_min="0" | 8322 | group="1" |
8323 | value_max="1" | 8323 | edit_group="driven" |
8324 | value_default="0"> | 8324 | wearable="pants" |
8325 | <param_color> | 8325 | name="Pants Length Shadow" |
8326 | <value | 8326 | value_min="0.02" |
8327 | color="255, 255, 255, 0" /> | 8327 | value_max="1"> |
8328 | 8328 | <param_alpha | |
8329 | <value | 8329 | tga_file="pants_length_alpha.tga" |
8330 | color="255, 255, 255, 255" /> | 8330 | skip_if_zero="true" |
8331 | </param_color> | 8331 | domain="0.03" /> |
8332 | </param> | 8332 | </param> |
8333 | 8333 | </layer> | |
8334 | <param | 8334 | |
8335 | id="1017" | 8335 | <layer |
8336 | group="1" | 8336 | name="lower_pants base bump" |
8337 | edit_group="driven" | 8337 | render_pass="bump" |
8338 | wearable="pants" | 8338 | fixed_color="128,128,128,255"> |
8339 | name="Waist Height Cloth" | 8339 | <texture |
8340 | value_min="0" | 8340 | local_texture="lower_pants" |
8341 | value_max="1"> | 8341 | local_texture_alpha_only="true" /> |
8342 | <param_alpha | 8342 | |
8343 | tga_file="pants_waist_alpha.tga" | 8343 | <param |
8344 | domain="0.05" /> | 8344 | id="1035" |
8345 | </param> | 8345 | group="1" |
8346 | 8346 | edit_group="driven" | |
8347 | <param | 8347 | wearable="pants" |
8348 | id="1018" | 8348 | name="Waist Height Cloth" |
8349 | group="1" | 8349 | value_min="0" |
8350 | edit_group="driven" | 8350 | value_max="1"> |
8351 | wearable="pants" | 8351 | <param_alpha |
8352 | name="Pants Length Cloth" | 8352 | tga_file="pants_waist_alpha.tga" |
8353 | value_min="0" | 8353 | domain="0.05" /> |
8354 | value_max="1"> | 8354 | </param> |
8355 | <param_alpha | 8355 | |
8356 | tga_file="pants_length_alpha.tga" | 8356 | <param |
8357 | domain="0.01" /> | 8357 | id="1036" |
8358 | </param> | 8358 | group="1" |
8359 | </layer> | 8359 | edit_group="driven" |
8360 | 8360 | wearable="pants" | |
8361 | <layer | 8361 | name="Pants Length Cloth" |
8362 | name="lower_pants"> | 8362 | value_min="0" |
8363 | <texture | 8363 | value_max="1"> |
8364 | local_texture="lower_pants" /> | 8364 | <param_alpha |
8365 | 8365 | tga_file="pants_length_alpha.tga" | |
8366 | <morph_mask | 8366 | domain="0.01" /> |
8367 | morph_name="Displace_Loose_Lowerbody" /> | 8367 | </param> |
8368 | 8368 | </layer> | |
8369 | <morph_mask | 8369 | |
8370 | morph_name="Leg_Pantflair" /> | 8370 | <layer |
8371 | 8371 | name="lower_pants bump" | |
8372 | <morph_mask | 8372 | render_pass="bump"> |
8373 | morph_name="Low_Crotch" /> | 8373 | <texture |
8374 | 8374 | tga_file="bump_pants_wrinkles.tga" /> | |
8375 | <morph_mask | 8375 | |
8376 | morph_name="Leg_Longcuffs" /> | 8376 | <texture |
8377 | 8377 | local_texture="lower_pants" | |
8378 | <param | 8378 | local_texture_alpha_only="true" /> |
8379 | id="806" | 8379 | |
8380 | group="0" | 8380 | <param |
8381 | wearable="pants" | 8381 | id="869" |
8382 | edit_group="colorpicker" | 8382 | group="0" |
8383 | name="pants_red" | 8383 | wearable="pants" |
8384 | value_min="0" | 8384 | edit_group="pants" |
8385 | value_max="1" | 8385 | edit_group_order="6" |
8386 | value_default="1"> | 8386 | name="Pants Wrinkles" |
8387 | <param_color> | 8387 | value_min="0" |
8388 | <value | 8388 | value_max="1" |
8389 | color="0, 0, 0, 255" /> | 8389 | value_default="0"> |
8390 | 8390 | <param_color> | |
8391 | <value | 8391 | <value |
8392 | color="255, 0, 0, 255" /> | 8392 | color="255, 255, 255, 0" /> |
8393 | </param_color> | 8393 | |
8394 | </param> | 8394 | <value |
8395 | 8395 | color="255, 255, 255, 255" /> | |
8396 | <param | 8396 | </param_color> |
8397 | id="807" | 8397 | </param> |
8398 | group="0" | 8398 | |
8399 | wearable="pants" | 8399 | <param |
8400 | edit_group="colorpicker" | 8400 | id="1017" |
8401 | name="pants_green" | 8401 | group="1" |
8402 | value_min="0" | 8402 | edit_group="driven" |
8403 | value_max="1" | 8403 | wearable="pants" |
8404 | value_default="1"> | 8404 | name="Waist Height Cloth" |
8405 | <param_color> | 8405 | value_min="0" |
8406 | <value | 8406 | value_max="1"> |
8407 | color="0, 0, 0, 255" /> | 8407 | <param_alpha |
8408 | 8408 | tga_file="pants_waist_alpha.tga" | |
8409 | <value | 8409 | domain="0.05" /> |
8410 | color="0, 255, 0, 255" /> | 8410 | </param> |
8411 | </param_color> | 8411 | |
8412 | </param> | 8412 | <param |
8413 | 8413 | id="1018" | |
8414 | <param | 8414 | group="1" |
8415 | id="808" | 8415 | edit_group="driven" |
8416 | group="0" | 8416 | wearable="pants" |
8417 | wearable="pants" | 8417 | name="Pants Length Cloth" |
8418 | edit_group="colorpicker" | 8418 | value_min="0" |
8419 | name="pants_blue" | 8419 | value_max="1"> |
8420 | value_min="0" | 8420 | <param_alpha |
8421 | value_max="1" | 8421 | tga_file="pants_length_alpha.tga" |
8422 | value_default="1"> | 8422 | domain="0.01" /> |
8423 | <param_color> | 8423 | </param> |
8424 | <value | 8424 | </layer> |
8425 | color="0, 0, 0, 255" /> | 8425 | |
8426 | 8426 | <layer | |
8427 | <value | 8427 | name="lower_pants"> |
8428 | color="0, 0, 255, 255" /> | 8428 | <texture |
8429 | </param_color> | 8429 | local_texture="lower_pants" /> |
8430 | </param> | 8430 | |
8431 | 8431 | <morph_mask | |
8432 | <param | 8432 | morph_name="Displace_Loose_Lowerbody" /> |
8433 | id="614" | 8433 | |
8434 | group="1" | 8434 | <morph_mask |
8435 | edit_group="driven" | 8435 | morph_name="Leg_Pantflair" /> |
8436 | wearable="pants" | 8436 | |
8437 | name="Waist Height Cloth" | 8437 | <morph_mask |
8438 | value_min="0" | 8438 | morph_name="Low_Crotch" /> |
8439 | value_max="1" | 8439 | |
8440 | value_default=".8"> | 8440 | <morph_mask |
8441 | <param_alpha | 8441 | morph_name="Leg_Longcuffs" /> |
8442 | tga_file="pants_waist_alpha.tga" | 8442 | |
8443 | domain="0.05" /> | 8443 | <param |
8444 | </param> | 8444 | id="806" |
8445 | 8445 | group="0" | |
8446 | <param | 8446 | wearable="pants" |
8447 | id="615" | 8447 | edit_group="colorpicker" |
8448 | group="1" | 8448 | name="pants_red" |
8449 | edit_group="driven" | 8449 | value_min="0" |
8450 | wearable="pants" | 8450 | value_max="1" |
8451 | name="Pants Length Cloth" | 8451 | value_default="1"> |
8452 | value_min="0" | 8452 | <param_color> |
8453 | value_max="1" | 8453 | <value |
8454 | value_default=".8"> | 8454 | color="0, 0, 0, 255" /> |
8455 | <param_alpha | 8455 | |
8456 | tga_file="pants_length_alpha.tga" | 8456 | <value |
8457 | domain="0.01" /> | 8457 | color="255, 0, 0, 255" /> |
8458 | </param> | 8458 | </param_color> |
8459 | </layer> | 8459 | </param> |
8460 | 8460 | ||
8461 | <layer | 8461 | <param |
8462 | name="lower_jacket base bump" | 8462 | id="807" |
8463 | render_pass="bump" | 8463 | group="0" |
8464 | fixed_color="128,128,128,255"> | 8464 | wearable="pants" |
8465 | <texture | 8465 | edit_group="colorpicker" |
8466 | local_texture="lower_jacket" | 8466 | name="pants_green" |
8467 | local_texture_alpha_only="true" /> | 8467 | value_min="0" |
8468 | 8468 | value_max="1" | |
8469 | <param | 8469 | value_default="1"> |
8470 | id="1033" | 8470 | <param_color> |
8471 | group="1" | 8471 | <value |
8472 | wearable="jacket" | 8472 | color="0, 0, 0, 255" /> |
8473 | edit_group="driven" | 8473 | |
8474 | name="jacket bottom length lower bump" | 8474 | <value |
8475 | value_min="0" | 8475 | color="0, 255, 0, 255" /> |
8476 | value_max="1"> | 8476 | </param_color> |
8477 | <param_alpha | 8477 | </param> |
8478 | multiply_blend="false" | 8478 | |
8479 | tga_file="jacket_length_lower_alpha.tga" | 8479 | <param |
8480 | domain="0.01" /> | 8480 | id="808" |
8481 | </param> | 8481 | group="0" |
8482 | 8482 | wearable="pants" | |
8483 | <param | 8483 | edit_group="colorpicker" |
8484 | id="1034" | 8484 | name="pants_blue" |
8485 | group="1" | 8485 | value_min="0" |
8486 | wearable="jacket" | 8486 | value_max="1" |
8487 | edit_group="driven" | 8487 | value_default="1"> |
8488 | name="jacket open lower bump" | 8488 | <param_color> |
8489 | value_min="0" | 8489 | <value |
8490 | value_max="1"> | 8490 | color="0, 0, 0, 255" /> |
8491 | <param_alpha | 8491 | |
8492 | multiply_blend="true" | 8492 | <value |
8493 | tga_file="jacket_open_lower_alpha.tga" | 8493 | color="0, 0, 255, 255" /> |
8494 | domain="0.01" /> | 8494 | </param_color> |
8495 | </param> | 8495 | </param> |
8496 | </layer> | 8496 | |
8497 | 8497 | <param | |
8498 | <layer | 8498 | id="614" |
8499 | name="lower_jacket bump" | 8499 | group="1" |
8500 | render_pass="bump"> | 8500 | edit_group="driven" |
8501 | <texture | 8501 | wearable="pants" |
8502 | tga_file="bump_pants_wrinkles.tga" /> | 8502 | name="Waist Height Cloth" |
8503 | 8503 | value_min="0" | |
8504 | <texture | 8504 | value_max="1" |
8505 | local_texture="lower_jacket" | 8505 | value_default=".8"> |
8506 | local_texture_alpha_only="true" /> | 8506 | <param_alpha |
8507 | 8507 | tga_file="pants_waist_alpha.tga" | |
8508 | <param | 8508 | domain="0.05" /> |
8509 | id="876" | 8509 | </param> |
8510 | group="1" | 8510 | |
8511 | wearable="jacket" | 8511 | <param |
8512 | name="jacket upper Wrinkles" | 8512 | id="615" |
8513 | value_min="0" | 8513 | group="1" |
8514 | value_max="1" | 8514 | edit_group="driven" |
8515 | value_default="0"> | 8515 | wearable="pants" |
8516 | <param_color> | 8516 | name="Pants Length Cloth" |
8517 | <value | 8517 | value_min="0" |
8518 | color="255, 255, 255, 0" /> | 8518 | value_max="1" |
8519 | 8519 | value_default=".8"> | |
8520 | <value | 8520 | <param_alpha |
8521 | color="255, 255, 255, 255" /> | 8521 | tga_file="pants_length_alpha.tga" |
8522 | </param_color> | 8522 | domain="0.01" /> |
8523 | </param> | 8523 | </param> |
8524 | 8524 | </layer> | |
8525 | <param | 8525 | |
8526 | id="1027" | 8526 | <layer |
8527 | group="1" | 8527 | name="lower_jacket base bump" |
8528 | wearable="jacket" | 8528 | render_pass="bump" |
8529 | edit_group="driven" | 8529 | fixed_color="128,128,128,255"> |
8530 | name="jacket bottom length lower bump" | 8530 | <texture |
8531 | value_min="0" | 8531 | local_texture="lower_jacket" |
8532 | value_max="1"> | 8532 | local_texture_alpha_only="true" /> |
8533 | <param_alpha | 8533 | |
8534 | multiply_blend="false" | 8534 | <param |
8535 | tga_file="jacket_length_lower_alpha.tga" | 8535 | id="1033" |
8536 | domain="0.01" /> | 8536 | group="1" |
8537 | </param> | 8537 | wearable="jacket" |
8538 | 8538 | edit_group="driven" | |
8539 | <param | 8539 | name="jacket bottom length lower bump" |
8540 | id="1028" | 8540 | value_min="0" |
8541 | group="1" | 8541 | value_max="1"> |
8542 | wearable="jacket" | 8542 | <param_alpha |
8543 | edit_group="driven" | 8543 | multiply_blend="false" |
8544 | name="jacket open lower bump" | 8544 | tga_file="jacket_length_lower_alpha.tga" |
8545 | value_min="0" | 8545 | domain="0.01" /> |
8546 | value_max="1"> | 8546 | </param> |
8547 | <param_alpha | 8547 | |
8548 | multiply_blend="true" | 8548 | <param |
8549 | tga_file="jacket_open_lower_alpha.tga" | 8549 | id="1034" |
8550 | domain="0.01" /> | 8550 | group="1" |
8551 | </param> | 8551 | wearable="jacket" |
8552 | </layer> | 8552 | edit_group="driven" |
8553 | 8553 | name="jacket open lower bump" | |
8554 | <layer | 8554 | value_min="0" |
8555 | name="lower_jacket"> | 8555 | value_max="1"> |
8556 | <texture | 8556 | <param_alpha |
8557 | local_texture="lower_jacket" /> | 8557 | multiply_blend="true" |
8558 | 8558 | tga_file="jacket_open_lower_alpha.tga" | |
8559 | <param | 8559 | domain="0.01" /> |
8560 | id="809" | 8560 | </param> |
8561 | group="1" | 8561 | </layer> |
8562 | edit_group="colorpicker_driven" | 8562 | |
8563 | wearable="jacket" | 8563 | <layer |
8564 | name="lower_jacket_red" | 8564 | name="lower_jacket bump" |
8565 | value_min="0" | 8565 | render_pass="bump"> |
8566 | value_max="1" | 8566 | <texture |
8567 | value_default="1"> | 8567 | tga_file="bump_pants_wrinkles.tga" /> |
8568 | <param_color> | 8568 | |
8569 | <value | 8569 | <texture |
8570 | color="0, 0, 0, 255" /> | 8570 | local_texture="lower_jacket" |
8571 | 8571 | local_texture_alpha_only="true" /> | |
8572 | <value | 8572 | |
8573 | color="255, 0, 0, 255" /> | 8573 | <param |
8574 | </param_color> | 8574 | id="876" |
8575 | </param> | 8575 | group="1" |
8576 | 8576 | wearable="jacket" | |
8577 | <param | 8577 | name="jacket upper Wrinkles" |
8578 | id="810" | 8578 | value_min="0" |
8579 | group="1" | 8579 | value_max="1" |
8580 | edit_group="colorpicker_driven" | 8580 | value_default="0"> |
8581 | wearable="jacket" | 8581 | <param_color> |
8582 | name="lower_jacket_green" | 8582 | <value |
8583 | value_min="0" | 8583 | color="255, 255, 255, 0" /> |
8584 | value_max="1" | 8584 | |
8585 | value_default="1"> | 8585 | <value |
8586 | <param_color> | 8586 | color="255, 255, 255, 255" /> |
8587 | <value | 8587 | </param_color> |
8588 | color="0, 0, 0, 255" /> | 8588 | </param> |
8589 | 8589 | ||
8590 | <value | 8590 | <param |
8591 | color="0, 255, 0, 255" /> | 8591 | id="1027" |
8592 | </param_color> | 8592 | group="1" |
8593 | </param> | 8593 | wearable="jacket" |
8594 | 8594 | edit_group="driven" | |
8595 | <param | 8595 | name="jacket bottom length lower bump" |
8596 | id="811" | 8596 | value_min="0" |
8597 | group="1" | 8597 | value_max="1"> |
8598 | edit_group="colorpicker_driven" | 8598 | <param_alpha |
8599 | wearable="jacket" | 8599 | multiply_blend="false" |
8600 | name="lower_jacket_blue" | 8600 | tga_file="jacket_length_lower_alpha.tga" |
8601 | value_min="0" | 8601 | domain="0.01" /> |
8602 | value_max="1" | 8602 | </param> |
8603 | value_default="1"> | 8603 | |
8604 | <param_color> | 8604 | <param |
8605 | <value | 8605 | id="1028" |
8606 | color="0, 0, 0, 255" /> | 8606 | group="1" |
8607 | 8607 | wearable="jacket" | |
8608 | <value | 8608 | edit_group="driven" |
8609 | color="0, 0, 255, 255" /> | 8609 | name="jacket open lower bump" |
8610 | </param_color> | 8610 | value_min="0" |
8611 | </param> | 8611 | value_max="1"> |
8612 | 8612 | <param_alpha | |
8613 | <param | 8613 | multiply_blend="true" |
8614 | id="621" | 8614 | tga_file="jacket_open_lower_alpha.tga" |
8615 | group="1" | 8615 | domain="0.01" /> |
8616 | wearable="jacket" | 8616 | </param> |
8617 | edit_group="jacket" | 8617 | </layer> |
8618 | name="bottom length lower" | 8618 | |
8619 | label_min="hi cut" | 8619 | <layer |
8620 | label_max="low cut" | 8620 | name="lower_jacket"> |
8621 | value_min="0" | 8621 | <texture |
8622 | value_max="1" | 8622 | local_texture="lower_jacket" /> |
8623 | value_default=".8" | 8623 | |
8624 | camera_distance="1.2" | 8624 | <param |
8625 | camera_angle="30" | 8625 | id="809" |
8626 | camera_elevation=".2"> | 8626 | group="1" |
8627 | <param_alpha | 8627 | edit_group="colorpicker_driven" |
8628 | multiply_blend="false" | 8628 | wearable="jacket" |
8629 | tga_file="jacket_length_lower_alpha.tga" | 8629 | name="lower_jacket_red" |
8630 | domain="0.01" /> | 8630 | value_min="0" |
8631 | </param> | 8631 | value_max="1" |
8632 | 8632 | value_default="1"> | |
8633 | <param | 8633 | <param_color> |
8634 | id="623" | 8634 | <value |
8635 | group="1" | 8635 | color="0, 0, 0, 255" /> |
8636 | wearable="jacket" | 8636 | |
8637 | edit_group="jacket" | 8637 | <value |
8638 | name="open lower" | 8638 | color="255, 0, 0, 255" /> |
8639 | label_min="open" | 8639 | </param_color> |
8640 | label_max="closed" | 8640 | </param> |
8641 | value_min="0" | 8641 | |
8642 | value_max="1" | 8642 | <param |
8643 | value_default=".8" | 8643 | id="810" |
8644 | camera_distance="1.2" | 8644 | group="1" |
8645 | camera_angle="30" | 8645 | edit_group="colorpicker_driven" |
8646 | camera_elevation=".2"> | 8646 | wearable="jacket" |
8647 | <param_alpha | 8647 | name="lower_jacket_green" |
8648 | multiply_blend="true" | 8648 | value_min="0" |
8649 | tga_file="jacket_open_lower_alpha.tga" | 8649 | value_max="1" |
8650 | domain="0.01" /> | 8650 | value_default="1"> |
8651 | </param> | 8651 | <param_color> |
8652 | </layer> | 8652 | <value |
8653 | 8653 | color="0, 0, 0, 255" /> | |
8654 | <layer | 8654 | |
8655 | name="lower alpha" | 8655 | <value |
8656 | visibility_mask="TRUE"> | 8656 | color="0, 255, 0, 255" /> |
8657 | <texture | 8657 | </param_color> |
8658 | local_texture="lower_alpha" /> | 8658 | </param> |
8659 | </layer> | 8659 | |
8660 | 8660 | <param | |
8661 | </layer_set> | 8661 | id="811" |
8662 | 8662 | group="1" | |
8663 | <!-- =========================================================== --> | 8663 | edit_group="colorpicker_driven" |
8664 | <layer_set | 8664 | wearable="jacket" |
8665 | body_region="eyes" | 8665 | name="lower_jacket_blue" |
8666 | width="128" | 8666 | value_min="0" |
8667 | height="128"> | 8667 | value_max="1" |
8668 | <layer | 8668 | value_default="1"> |
8669 | name="whites"> | 8669 | <param_color> |
8670 | <texture | 8670 | <value |
8671 | tga_file="eyewhite.tga" /> | 8671 | color="0, 0, 0, 255" /> |
8672 | </layer> | 8672 | |
8673 | 8673 | <value | |
8674 | <layer | 8674 | color="0, 0, 255, 255" /> |
8675 | name="iris" | 8675 | </param_color> |
8676 | global_color="eye_color"> | 8676 | </param> |
8677 | <texture | 8677 | |
8678 | local_texture="eyes_iris" /> | 8678 | <param |
8679 | </layer> | 8679 | id="621" |
8680 | 8680 | group="1" | |
8681 | <layer | 8681 | wearable="jacket" |
8682 | name="eyes alpha" | 8682 | edit_group="jacket" |
8683 | visibility_mask="TRUE"> | 8683 | name="bottom length lower" |
8684 | <texture | 8684 | label_min="hi cut" |
8685 | local_texture="eyes_alpha" /> | 8685 | label_max="low cut" |
8686 | </layer> | 8686 | value_min="0" |
8687 | 8687 | value_max="1" | |
8688 | </layer_set> | 8688 | value_default=".8" |
8689 | 8689 | camera_distance="1.2" | |
8690 | <!-- =========================================================== --> | 8690 | camera_angle="30" |
8691 | <layer_set | 8691 | camera_elevation=".2"> |
8692 | body_region="skirt" | 8692 | <param_alpha |
8693 | width="512" | 8693 | multiply_blend="false" |
8694 | height="512" | 8694 | tga_file="jacket_length_lower_alpha.tga" |
8695 | clear_alpha="false"> | 8695 | domain="0.01" /> |
8696 | <layer | 8696 | </param> |
8697 | name="skirt_fabric" | 8697 | |
8698 | write_all_channels="true"> | 8698 | <param |
8699 | <texture | 8699 | id="623" |
8700 | local_texture="skirt" /> | 8700 | group="1" |
8701 | 8701 | wearable="jacket" | |
8702 | <param | 8702 | edit_group="jacket" |
8703 | id="921" | 8703 | name="open lower" |
8704 | group="0" | 8704 | label_min="open" |
8705 | wearable="skirt" | 8705 | label_max="closed" |
8706 | edit_group="colorpicker" | 8706 | value_min="0" |
8707 | name="skirt_red" | 8707 | value_max="1" |
8708 | value_min="0" | 8708 | value_default=".8" |
8709 | value_max="1" | 8709 | camera_distance="1.2" |
8710 | value_default="1"> | 8710 | camera_angle="30" |
8711 | <param_color> | 8711 | camera_elevation=".2"> |
8712 | <value | 8712 | <param_alpha |
8713 | color="0, 0, 0, 255" /> | 8713 | multiply_blend="true" |
8714 | 8714 | tga_file="jacket_open_lower_alpha.tga" | |
8715 | <value | 8715 | domain="0.01" /> |
8716 | color="255, 0, 0, 255" /> | 8716 | </param> |
8717 | </param_color> | 8717 | </layer> |
8718 | </param> | 8718 | |
8719 | 8719 | <layer | |
8720 | <param | 8720 | name="lower alpha" |
8721 | id="922" | 8721 | visibility_mask="TRUE"> |
8722 | group="0" | 8722 | <texture |
8723 | wearable="skirt" | 8723 | local_texture="lower_alpha" /> |
8724 | edit_group="colorpicker" | 8724 | </layer> |
8725 | name="skirt_green" | 8725 | |
8726 | value_min="0" | 8726 | </layer_set> |
8727 | value_max="1" | 8727 | |
8728 | value_default="1"> | 8728 | <!-- =========================================================== --> |
8729 | <param_color> | 8729 | <layer_set |
8730 | <value | 8730 | body_region="eyes" |
8731 | color="0, 0, 0, 255" /> | 8731 | width="128" |
8732 | 8732 | height="128"> | |
8733 | <value | 8733 | <layer |
8734 | color="0, 255, 0, 255" /> | 8734 | name="whites"> |
8735 | </param_color> | 8735 | <texture |
8736 | </param> | 8736 | tga_file="eyewhite.tga" /> |
8737 | 8737 | </layer> | |
8738 | <param | 8738 | |
8739 | id="923" | 8739 | <layer |
8740 | group="0" | 8740 | name="iris" |
8741 | wearable="skirt" | 8741 | global_color="eye_color"> |
8742 | edit_group="colorpicker" | 8742 | <texture |
8743 | name="skirt_blue" | 8743 | local_texture="eyes_iris" /> |
8744 | value_min="0" | 8744 | </layer> |
8745 | value_max="1" | 8745 | |
8746 | value_default="1"> | 8746 | <layer |
8747 | <param_color> | 8747 | name="eyes alpha" |
8748 | <value | 8748 | visibility_mask="TRUE"> |
8749 | color="0, 0, 0, 255" /> | 8749 | <texture |
8750 | 8750 | local_texture="eyes_alpha" /> | |
8751 | <value | 8751 | </layer> |
8752 | color="0, 0, 255, 255" /> | 8752 | |
8753 | </param_color> | 8753 | </layer_set> |
8754 | </param> | 8754 | |
8755 | </layer> | 8755 | <!-- =========================================================== --> |
8756 | 8756 | <layer_set | |
8757 | <layer | 8757 | body_region="skirt" |
8758 | name="skirt_fabric_alpha"> | 8758 | width="512" |
8759 | <param | 8759 | height="512" |
8760 | id="858" | 8760 | clear_alpha="false"> |
8761 | group="0" | 8761 | <layer |
8762 | wearable="skirt" | 8762 | name="skirt_fabric" |
8763 | edit_group="skirt" | 8763 | write_all_channels="true"> |
8764 | edit_group_order="1" | 8764 | <texture |
8765 | name="Skirt Length" | 8765 | local_texture="skirt" /> |
8766 | show_simple="true" | 8766 | |
8767 | label_min="Short" | 8767 | <param |
8768 | label_max="Long" | 8768 | id="921" |
8769 | value_min=".01" | 8769 | group="0" |
8770 | value_max="1" | 8770 | wearable="skirt" |
8771 | value_default=".4" | 8771 | edit_group="colorpicker" |
8772 | simple_percent_min="40" | 8772 | name="skirt_red" |
8773 | simple_percent_max="100" | 8773 | value_min="0" |
8774 | camera_distance="1.3" | 8774 | value_max="1" |
8775 | camera_elevation="-.5" | 8775 | value_default="1"> |
8776 | camera_angle="30"> | 8776 | <param_color> |
8777 | <param_alpha | 8777 | <value |
8778 | tga_file="skirt_length_alpha.tga" | 8778 | color="0, 0, 0, 255" /> |
8779 | domain="0" | 8779 | |
8780 | multiply_blend="true" /> | 8780 | <value |
8781 | </param> | 8781 | color="255, 0, 0, 255" /> |
8782 | 8782 | </param_color> | |
8783 | <param | 8783 | </param> |
8784 | id="859" | 8784 | |
8785 | group="0" | 8785 | <param |
8786 | wearable="skirt" | 8786 | id="922" |
8787 | edit_group="skirt" | 8787 | group="0" |
8788 | edit_group_order="4" | 8788 | wearable="skirt" |
8789 | name="Slit Front" | 8789 | edit_group="colorpicker" |
8790 | label_min="Open Front" | 8790 | name="skirt_green" |
8791 | label_max="Closed Front" | 8791 | value_min="0" |
8792 | value_min="0" | 8792 | value_max="1" |
8793 | value_max="1" | 8793 | value_default="1"> |
8794 | value_default="1" | 8794 | <param_color> |
8795 | camera_distance="1.3" | 8795 | <value |
8796 | camera_elevation="-.5" | 8796 | color="0, 0, 0, 255" /> |
8797 | camera_angle="30"> | 8797 | |
8798 | <param_alpha | 8798 | <value |
8799 | tga_file="skirt_slit_front_alpha.tga" | 8799 | color="0, 255, 0, 255" /> |
8800 | multiply_blend="true" | 8800 | </param_color> |
8801 | domain="0" /> | 8801 | </param> |
8802 | </param> | 8802 | |
8803 | 8803 | <param | |
8804 | <param | 8804 | id="923" |
8805 | id="860" | 8805 | group="0" |
8806 | group="0" | 8806 | wearable="skirt" |
8807 | wearable="skirt" | 8807 | edit_group="colorpicker" |
8808 | edit_group="skirt" | 8808 | name="skirt_blue" |
8809 | edit_group_order="5" | 8809 | value_min="0" |
8810 | name="Slit Back" | 8810 | value_max="1" |
8811 | label_min="Open Back" | 8811 | value_default="1"> |
8812 | label_max="Closed Back" | 8812 | <param_color> |
8813 | value_min="0" | 8813 | <value |
8814 | value_max="1" | 8814 | color="0, 0, 0, 255" /> |
8815 | value_default="1" | 8815 | |
8816 | camera_distance="1.3" | 8816 | <value |
8817 | camera_elevation="-.5" | 8817 | color="0, 0, 255, 255" /> |
8818 | camera_angle="160"> | 8818 | </param_color> |
8819 | <param_alpha | 8819 | </param> |
8820 | tga_file="skirt_slit_back_alpha.tga" | 8820 | </layer> |
8821 | multiply_blend="true" | 8821 | |
8822 | domain="0" /> | 8822 | <layer |
8823 | </param> | 8823 | name="skirt_fabric_alpha"> |
8824 | 8824 | <param | |
8825 | <param | 8825 | id="858" |
8826 | id="861" | 8826 | group="0" |
8827 | group="0" | 8827 | wearable="skirt" |
8828 | wearable="skirt" | 8828 | edit_group="skirt" |
8829 | edit_group="skirt" | 8829 | edit_group_order="1" |
8830 | edit_group_order="6" | 8830 | name="Skirt Length" |
8831 | name="Slit Left" | 8831 | show_simple="true" |
8832 | label_min="Open Left" | 8832 | label_min="Short" |
8833 | label_max="Closed Left" | 8833 | label_max="Long" |
8834 | value_min="0" | 8834 | value_min=".01" |
8835 | value_max="1" | 8835 | value_max="1" |
8836 | value_default="1" | 8836 | value_default=".4" |
8837 | camera_distance="1.3" | 8837 | simple_percent_min="40" |
8838 | camera_elevation="-.5" | 8838 | simple_percent_max="100" |
8839 | camera_angle="30"> | 8839 | camera_distance="1.3" |
8840 | <param_alpha | 8840 | camera_elevation="-.5" |
8841 | tga_file="skirt_slit_left_alpha.tga" | 8841 | camera_angle="30"> |
8842 | multiply_blend="true" | 8842 | <param_alpha |
8843 | domain="0" /> | 8843 | tga_file="skirt_length_alpha.tga" |
8844 | </param> | 8844 | domain="0" |
8845 | 8845 | multiply_blend="true" /> | |
8846 | <param | 8846 | </param> |
8847 | id="862" | 8847 | |
8848 | group="0" | 8848 | <param |
8849 | wearable="skirt" | 8849 | id="859" |
8850 | edit_group="skirt" | 8850 | group="0" |
8851 | edit_group_order="7" | 8851 | wearable="skirt" |
8852 | name="Slit Right" | 8852 | edit_group="skirt" |
8853 | label_min="Open Right" | 8853 | edit_group_order="4" |
8854 | label_max="Closed Right" | 8854 | name="Slit Front" |
8855 | value_min="0" | 8855 | label_min="Open Front" |
8856 | value_max="1" | 8856 | label_max="Closed Front" |
8857 | value_default="1" | 8857 | value_min="0" |
8858 | camera_distance="1.3" | 8858 | value_max="1" |
8859 | camera_elevation="-.5" | 8859 | value_default="1" |
8860 | camera_angle="-30"> | 8860 | camera_distance="1.3" |
8861 | <param_alpha | 8861 | camera_elevation="-.5" |
8862 | tga_file="skirt_slit_right_alpha.tga" | 8862 | camera_angle="30"> |
8863 | multiply_blend="true" | 8863 | <param_alpha |
8864 | domain="0" /> | 8864 | tga_file="skirt_slit_front_alpha.tga" |
8865 | </param> | 8865 | multiply_blend="true" |
8866 | </layer> | 8866 | domain="0" /> |
8867 | </layer_set> | 8867 | </param> |
8868 | 8868 | ||
8869 | <!-- =========================================================== --> | 8869 | <param |
8870 | <driver_parameters> | 8870 | id="860" |
8871 | <param | 8871 | group="0" |
8872 | id="828" | 8872 | wearable="skirt" |
8873 | group="0" | 8873 | edit_group="skirt" |
8874 | name="Loose Upper Clothing" | 8874 | edit_group_order="5" |
8875 | label="Shirt Fit" | 8875 | name="Slit Back" |
8876 | show_simple="true" | 8876 | label_min="Open Back" |
8877 | wearable="shirt" | 8877 | label_max="Closed Back" |
8878 | edit_group="shirt" | 8878 | value_min="0" |
8879 | edit_group_order="4" | 8879 | value_max="1" |
8880 | label_min="Tight Shirt" | 8880 | value_default="1" |
8881 | label_max="Loose Shirt" | 8881 | camera_distance="1.3" |
8882 | value_min="0" | 8882 | camera_elevation="-.5" |
8883 | value_max="1" | 8883 | camera_angle="160"> |
8884 | camera_distance="1.2" | 8884 | <param_alpha |
8885 | camera_angle="30" | 8885 | tga_file="skirt_slit_back_alpha.tga" |
8886 | camera_elevation=".2"> | 8886 | multiply_blend="true" |
8887 | <param_driver> | 8887 | domain="0" /> |
8888 | <driven | 8888 | </param> |
8889 | id="628" /> | 8889 | |
8890 | 8890 | <param | |
8891 | <driven | 8891 | id="861" |
8892 | id="899" | 8892 | group="0" |
8893 | min1="0.1" | 8893 | wearable="skirt" |
8894 | max1="0.5" | 8894 | edit_group="skirt" |
8895 | max2="1" | 8895 | edit_group_order="6" |
8896 | min2="1" /> | 8896 | name="Slit Left" |
8897 | </param_driver> | 8897 | label_min="Open Left" |
8898 | </param> | 8898 | label_max="Closed Left" |
8899 | 8899 | value_min="0" | |
8900 | <param | 8900 | value_max="1" |
8901 | id="816" | 8901 | value_default="1" |
8902 | group="0" | 8902 | camera_distance="1.3" |
8903 | name="Loose Lower Clothing" | 8903 | camera_elevation="-.5" |
8904 | label="Pants Fit" | 8904 | camera_angle="30"> |
8905 | show_simple="true" | 8905 | <param_alpha |
8906 | wearable="pants" | 8906 | tga_file="skirt_slit_left_alpha.tga" |
8907 | edit_group="pants" | 8907 | multiply_blend="true" |
8908 | edit_group_order="2.5" | 8908 | domain="0" /> |
8909 | label_min="Tight Pants" | 8909 | </param> |
8910 | label_max="Loose Pants" | 8910 | |
8911 | value_min="0" | 8911 | <param |
8912 | value_max="1" | 8912 | id="862" |
8913 | camera_distance="1.8" | 8913 | group="0" |
8914 | camera_angle="30" | 8914 | wearable="skirt" |
8915 | camera_elevation="-.3"> | 8915 | edit_group="skirt" |
8916 | <param_driver> | 8916 | edit_group_order="7" |
8917 | <driven | 8917 | name="Slit Right" |
8918 | id="516" /> | 8918 | label_min="Open Right" |
8919 | 8919 | label_max="Closed Right" | |
8920 | <driven | 8920 | value_min="0" |
8921 | id="913" | 8921 | value_max="1" |
8922 | min1="0.1" | 8922 | value_default="1" |
8923 | max1="0.5" | 8923 | camera_distance="1.3" |
8924 | max2="1" | 8924 | camera_elevation="-.5" |
8925 | min2="1" /> | 8925 | camera_angle="-30"> |
8926 | </param_driver> | 8926 | <param_alpha |
8927 | </param> | 8927 | tga_file="skirt_slit_right_alpha.tga" |
8928 | 8928 | multiply_blend="true" | |
8929 | <param | 8929 | domain="0" /> |
8930 | id="814" | 8930 | </param> |
8931 | group="0" | 8931 | </layer> |
8932 | wearable="pants" | 8932 | </layer_set> |
8933 | edit_group="pants" | 8933 | |
8934 | edit_group_order="2" | 8934 | <!-- =========================================================== --> |
8935 | name="Waist Height" | 8935 | <driver_parameters> |
8936 | label_min="Low" | 8936 | <param |
8937 | label_max="High" | 8937 | id="828" |
8938 | value_min="0" | 8938 | group="0" |
8939 | value_max="1" | 8939 | name="Loose Upper Clothing" |
8940 | value_default="1" | 8940 | label="Shirt Fit" |
8941 | camera_distance="1.2" | 8941 | show_simple="true" |
8942 | camera_angle="30" | 8942 | wearable="shirt" |
8943 | camera_elevation="-.3"> | 8943 | edit_group="shirt" |
8944 | <param_driver> | 8944 | edit_group_order="4" |
8945 | <driven | 8945 | label_min="Tight Shirt" |
8946 | id="614" /> | 8946 | label_max="Loose Shirt" |
8947 | 8947 | value_min="0" | |
8948 | <driven | 8948 | value_max="1" |
8949 | id="1017" /> | 8949 | camera_distance="1.2" |
8950 | 8950 | camera_angle="30" | |
8951 | <driven | 8951 | camera_elevation=".2"> |
8952 | id="1033" /> | 8952 | <param_driver> |
8953 | 8953 | <driven | |
8954 | <driven | 8954 | id="628" /> |
8955 | id="914" | 8955 | |
8956 | min1="0" | 8956 | <driven |
8957 | max1=".98" | 8957 | id="899" |
8958 | max2="1" | 8958 | min1="0.1" |
8959 | min2="1" /> | 8959 | max1="0.5" |
8960 | </param_driver> | 8960 | max2="1" |
8961 | </param> | 8961 | min2="1" /> |
8962 | 8962 | </param_driver> | |
8963 | <param | 8963 | </param> |
8964 | id="815" | 8964 | |
8965 | group="0" | 8965 | <param |
8966 | wearable="pants" | 8966 | id="816" |
8967 | edit_group="pants" | 8967 | group="0" |
8968 | edit_group_order="1" | 8968 | name="Loose Lower Clothing" |
8969 | name="Pants Length" | 8969 | label="Pants Fit" |
8970 | show_simple="true" | 8970 | show_simple="true" |
8971 | label_min="Short" | 8971 | wearable="pants" |
8972 | label_max="Long" | 8972 | edit_group="pants" |
8973 | value_min="0" | 8973 | edit_group_order="2.5" |
8974 | value_max="1" | 8974 | label_min="Tight Pants" |
8975 | value_default=".8" | 8975 | label_max="Loose Pants" |
8976 | simple_percent_min="20" | 8976 | value_min="0" |
8977 | simple_percent_max="100" | 8977 | value_max="1" |
8978 | camera_distance="1.8" | 8978 | camera_distance="1.8" |
8979 | camera_angle="30" | 8979 | camera_angle="30" |
8980 | camera_elevation="-.3"> | 8980 | camera_elevation="-.3"> |
8981 | <param_driver> | 8981 | <param_driver> |
8982 | <driven | 8982 | <driven |
8983 | id="615" | 8983 | id="516" /> |
8984 | min1="0" | 8984 | |
8985 | max1=".9" | 8985 | <driven |
8986 | max2="1" | 8986 | id="913" |
8987 | min2="1" /> | 8987 | min1="0.1" |
8988 | 8988 | max1="0.5" | |
8989 | <driven | 8989 | max2="1" |
8990 | id="1018" | 8990 | min2="1" /> |
8991 | min1="0" | 8991 | </param_driver> |
8992 | max1=".9" | 8992 | </param> |
8993 | max2="1" | 8993 | |
8994 | min2="1" /> | 8994 | <param |
8995 | 8995 | id="814" | |
8996 | <driven | 8996 | group="0" |
8997 | id="1036" | 8997 | wearable="pants" |
8998 | min1="0" | 8998 | edit_group="pants" |
8999 | max1=".9" | 8999 | edit_group_order="2" |
9000 | max2="1" | 9000 | name="Waist Height" |
9001 | min2="1" /> | 9001 | label_min="Low" |
9002 | 9002 | label_max="High" | |
9003 | <driven | 9003 | value_min="0" |
9004 | id="793" | 9004 | value_max="1" |
9005 | min1=".9" | 9005 | value_default="1" |
9006 | max1="1" | 9006 | camera_distance="1.2" |
9007 | max2="1" | 9007 | camera_angle="30" |
9008 | min2="1" /> | 9008 | camera_elevation="-.3"> |
9009 | 9009 | <param_driver> | |
9010 | <driven | 9010 | <driven |
9011 | id="915" | 9011 | id="614" /> |
9012 | min1="0" | 9012 | |
9013 | max1=".882" | 9013 | <driven |
9014 | max2="1" | 9014 | id="1017" /> |
9015 | min2="1" /> | 9015 | |
9016 | </param_driver> | 9016 | <driven |
9017 | </param> | 9017 | id="1033" /> |
9018 | 9018 | ||
9019 | <param | 9019 | <driven |
9020 | id="800" | 9020 | id="914" |
9021 | group="0" | 9021 | min1="0" |
9022 | wearable="shirt" | 9022 | max1=".98" |
9023 | edit_group="shirt" | 9023 | max2="1" |
9024 | edit_group_order="1" | 9024 | min2="1" /> |
9025 | name="Sleeve Length" | 9025 | </param_driver> |
9026 | show_simple="true" | 9026 | </param> |
9027 | label_min="Short" | 9027 | |
9028 | label_max="Long" | 9028 | <param |
9029 | value_min="0" | 9029 | id="815" |
9030 | value_max="1" | 9030 | group="0" |
9031 | value_default=".89" | 9031 | wearable="pants" |
9032 | simple_percent_min="15" | 9032 | edit_group="pants" |
9033 | simple_percent_max="100" | 9033 | edit_group_order="1" |
9034 | camera_distance="1.2" | 9034 | name="Pants Length" |
9035 | camera_angle="30" | 9035 | show_simple="true" |
9036 | camera_elevation=".2"> | 9036 | label_min="Short" |
9037 | <param_driver> | 9037 | label_max="Long" |
9038 | <driven | 9038 | value_min="0" |
9039 | id="600" /> | 9039 | value_max="1" |
9040 | 9040 | value_default=".8" | |
9041 | <driven | 9041 | simple_percent_min="20" |
9042 | id="1013" /> | 9042 | simple_percent_max="100" |
9043 | 9043 | camera_distance="1.8" | |
9044 | <driven | 9044 | camera_angle="30" |
9045 | id="1029" /> | 9045 | camera_elevation="-.3"> |
9046 | 9046 | <param_driver> | |
9047 | <driven | 9047 | <driven |
9048 | id="900" | 9048 | id="615" |
9049 | min1="0" | 9049 | min1="0" |
9050 | max1="1" | 9050 | max1=".9" |
9051 | max2="1" | 9051 | max2="1" |
9052 | min2="1" /> | 9052 | min2="1" /> |
9053 | </param_driver> | 9053 | |
9054 | </param> | 9054 | <driven |
9055 | 9055 | id="1018" | |
9056 | <param | 9056 | min1="0" |
9057 | id="801" | 9057 | max1=".9" |
9058 | group="0" | 9058 | max2="1" |
9059 | wearable="shirt" | 9059 | min2="1" /> |
9060 | edit_group="shirt" | 9060 | |
9061 | edit_group_order="2" | 9061 | <driven |
9062 | name="Shirt Bottom" | 9062 | id="1036" |
9063 | label_min="Short" | 9063 | min1="0" |
9064 | label_max="Long" | 9064 | max1=".9" |
9065 | value_min="0" | 9065 | max2="1" |
9066 | value_max="1" | 9066 | min2="1" /> |
9067 | value_default="1" | 9067 | |
9068 | camera_distance="1.2" | 9068 | <driven |
9069 | camera_angle="30" | 9069 | id="793" |
9070 | camera_elevation=".2"> | 9070 | min1=".9" |
9071 | <param_driver> | 9071 | max1="1" |
9072 | <driven | 9072 | max2="1" |
9073 | id="601" /> | 9073 | min2="1" /> |
9074 | 9074 | ||
9075 | <driven | 9075 | <driven |
9076 | id="1014" /> | 9076 | id="915" |
9077 | 9077 | min1="0" | |
9078 | <driven | 9078 | max1=".882" |
9079 | id="1030" /> | 9079 | max2="1" |
9080 | 9080 | min2="1" /> | |
9081 | <driven | 9081 | </param_driver> |
9082 | id="901" | 9082 | </param> |
9083 | min1="0" | 9083 | |
9084 | max1=".98" | 9084 | <param |
9085 | max2="1" | 9085 | id="800" |
9086 | min2="1" /> | 9086 | group="0" |
9087 | </param_driver> | 9087 | wearable="shirt" |
9088 | </param> | 9088 | edit_group="shirt" |
9089 | 9089 | edit_group_order="1" | |
9090 | <param | 9090 | name="Sleeve Length" |
9091 | id="802" | 9091 | show_simple="true" |
9092 | group="0" | 9092 | label_min="Short" |
9093 | wearable="shirt" | 9093 | label_max="Long" |
9094 | edit_group="shirt" | 9094 | value_min="0" |
9095 | edit_group_order="3" | 9095 | value_max="1" |
9096 | name="Collar Front" | 9096 | value_default=".89" |
9097 | show_simple="true" | 9097 | simple_percent_min="15" |
9098 | label_min="Low" | 9098 | simple_percent_max="100" |
9099 | label_max="High" | 9099 | camera_distance="1.2" |
9100 | value_min="0" | 9100 | camera_angle="30" |
9101 | value_max="1" | 9101 | camera_elevation=".2"> |
9102 | value_default=".78" | 9102 | <param_driver> |
9103 | simple_percent_min="40" | 9103 | <driven |
9104 | simple_percent_max="100" | 9104 | id="600" /> |
9105 | camera_distance="1.2" | 9105 | |
9106 | camera_angle="15" | 9106 | <driven |
9107 | camera_elevation=".2"> | 9107 | id="1013" /> |
9108 | <param_driver> | 9108 | |
9109 | <driven | 9109 | <driven |
9110 | id="602" /> | 9110 | id="1029" /> |
9111 | 9111 | ||
9112 | <driven | 9112 | <driven |
9113 | id="1015" /> | 9113 | id="900" |
9114 | 9114 | min1="0" | |
9115 | <driven | 9115 | max1="1" |
9116 | id="1031" /> | 9116 | max2="1" |
9117 | 9117 | min2="1" /> | |
9118 | <driven | 9118 | </param_driver> |
9119 | id="902" | 9119 | </param> |
9120 | min1="0" | 9120 | |
9121 | max1=".98" | 9121 | <param |
9122 | max2="1" | 9122 | id="801" |
9123 | min2="1" /> | 9123 | group="0" |
9124 | </param_driver> | 9124 | wearable="shirt" |
9125 | </param> | 9125 | edit_group="shirt" |
9126 | 9126 | edit_group_order="2" | |
9127 | <param | 9127 | name="Shirt Bottom" |
9128 | id="781" | 9128 | label_min="Short" |
9129 | group="0" | 9129 | label_max="Long" |
9130 | wearable="shirt" | 9130 | value_min="0" |
9131 | edit_group="shirt" | 9131 | value_max="1" |
9132 | edit_group_order="3.1" | 9132 | value_default="1" |
9133 | name="Collar Back" | 9133 | camera_distance="1.2" |
9134 | label_min="Low" | 9134 | camera_angle="30" |
9135 | label_max="High" | 9135 | camera_elevation=".2"> |
9136 | value_min="0" | 9136 | <param_driver> |
9137 | value_max="1" | 9137 | <driven |
9138 | value_default=".78" | 9138 | id="601" /> |
9139 | camera_distance="1.2" | 9139 | |
9140 | camera_angle="195" | 9140 | <driven |
9141 | camera_elevation=".2"> | 9141 | id="1014" /> |
9142 | <param_driver> | 9142 | |
9143 | <driven | 9143 | <driven |
9144 | id="778" /> | 9144 | id="1030" /> |
9145 | 9145 | ||
9146 | <driven | 9146 | <driven |
9147 | id="1016" /> | 9147 | id="901" |
9148 | 9148 | min1="0" | |
9149 | <driven | 9149 | max1=".98" |
9150 | id="1032" /> | 9150 | max2="1" |
9151 | 9151 | min2="1" /> | |
9152 | <driven | 9152 | </param_driver> |
9153 | id="903" | 9153 | </param> |
9154 | min1="0" | 9154 | |
9155 | max1=".98" | 9155 | <param |
9156 | max2="1" | 9156 | id="802" |
9157 | min2="1" /> | 9157 | group="0" |
9158 | </param_driver> | 9158 | wearable="shirt" |
9159 | </param> | 9159 | edit_group="shirt" |
9160 | 9160 | edit_group_order="3" | |
9161 | <param | 9161 | name="Collar Front" |
9162 | id="150" | 9162 | show_simple="true" |
9163 | group="0" | 9163 | label_min="Low" |
9164 | wearable="skin" | 9164 | label_max="High" |
9165 | edit_group="skin_bodydetail" | 9165 | value_min="0" |
9166 | name="Body Definition" | 9166 | value_max="1" |
9167 | label_min="Less" | 9167 | value_default=".78" |
9168 | label_max="More" | 9168 | simple_percent_min="40" |
9169 | value_min="0" | 9169 | simple_percent_max="100" |
9170 | value_max="1" | 9170 | camera_distance="1.2" |
9171 | value_default="0" | 9171 | camera_angle="15" |
9172 | camera_distance="1.4" | 9172 | camera_elevation=".2"> |
9173 | camera_elevation="-.2"> | 9173 | <param_driver> |
9174 | <param_driver> | 9174 | <driven |
9175 | <driven | 9175 | id="602" /> |
9176 | id="125" /> | 9176 | |
9177 | 9177 | <driven | |
9178 | <driven | 9178 | id="1015" /> |
9179 | id="126" /> | 9179 | |
9180 | 9180 | <driven | |
9181 | <driven | 9181 | id="1031" /> |
9182 | id="160" /> | 9182 | |
9183 | 9183 | <driven | |
9184 | <driven | 9184 | id="902" |
9185 | id="161" /> | 9185 | min1="0" |
9186 | 9186 | max1=".98" | |
9187 | <driven | 9187 | max2="1" |
9188 | id="874" /> | 9188 | min2="1" /> |
9189 | 9189 | </param_driver> | |
9190 | <driven | 9190 | </param> |
9191 | id="878" /> | 9191 | |
9192 | 9192 | <param | |
9193 | </param_driver> | 9193 | id="781" |
9194 | </param> | 9194 | group="0" |
9195 | 9195 | wearable="shirt" | |
9196 | <param | 9196 | edit_group="shirt" |
9197 | id="775" | 9197 | edit_group_order="3.1" |
9198 | group="0" | 9198 | name="Collar Back" |
9199 | wearable="skin" | 9199 | label_min="Low" |
9200 | edit_group="skin_bodydetail" | 9200 | label_max="High" |
9201 | name="Body Freckles" | 9201 | value_min="0" |
9202 | label_min="Less Freckles" | 9202 | value_max="1" |
9203 | label_max="More Freckles" | 9203 | value_default=".78" |
9204 | value_min="0" | 9204 | camera_distance="1.2" |
9205 | value_max="1" | 9205 | camera_angle="195" |
9206 | value_default="0" | 9206 | camera_elevation=".2"> |
9207 | camera_distance="1.4" | 9207 | <param_driver> |
9208 | camera_elevation="-.2"> | 9208 | <driven |
9209 | <param_driver> | 9209 | id="778" /> |
9210 | <driven | 9210 | |
9211 | id="776" /> | 9211 | <driven |
9212 | 9212 | id="1016" /> | |
9213 | <driven | 9213 | |
9214 | id="777" /> | 9214 | <driven |
9215 | </param_driver> | 9215 | id="1032" /> |
9216 | </param> | 9216 | |
9217 | 9217 | <driven | |
9218 | <param | 9218 | id="903" |
9219 | id="162" | 9219 | min1="0" |
9220 | group="0" | 9220 | max1=".98" |
9221 | wearable="skin" | 9221 | max2="1" |
9222 | edit_group="skin_facedetail" | 9222 | min2="1" /> |
9223 | edit_group_order="1" | 9223 | </param_driver> |
9224 | name="Facial Definition" | 9224 | </param> |
9225 | label_min="Less" | 9225 | |
9226 | label_max="More" | 9226 | <param |
9227 | value_min="0" | 9227 | id="150" |
9228 | value_max="1" | 9228 | group="0" |
9229 | camera_distance=".3" | 9229 | wearable="skin" |
9230 | camera_elevation=".07" | 9230 | edit_group="skin_bodydetail" |
9231 | value_default="0"> | 9231 | name="Body Definition" |
9232 | <param_driver> | 9232 | label_min="Less" |
9233 | <driven | 9233 | label_max="More" |
9234 | id="158" /> | 9234 | value_min="0" |
9235 | 9235 | value_max="1" | |
9236 | <driven | 9236 | value_default="0" |
9237 | id="159" /> | 9237 | camera_distance="1.4" |
9238 | 9238 | camera_elevation="-.2"> | |
9239 | <driven | 9239 | <param_driver> |
9240 | id="873" /> | 9240 | <driven |
9241 | </param_driver> | 9241 | id="125" /> |
9242 | </param> | 9242 | |
9243 | 9243 | <driven | |
9244 | <param | 9244 | id="126" /> |
9245 | id="163" | 9245 | |
9246 | group="0" | 9246 | <driven |
9247 | wearable="skin" | 9247 | id="160" /> |
9248 | edit_group="skin_facedetail" | 9248 | |
9249 | edit_group_order="3" | 9249 | <driven |
9250 | name="wrinkles" | 9250 | id="161" /> |
9251 | label_min="Less" | 9251 | |
9252 | label_max="More" | 9252 | <driven |
9253 | value_min="0" | 9253 | id="874" /> |
9254 | value_max="1" | 9254 | |
9255 | camera_distance=".3" | 9255 | <driven |
9256 | camera_elevation=".07" | 9256 | id="878" /> |
9257 | value_default="0"> | 9257 | |
9258 | <param_driver> | 9258 | </param_driver> |
9259 | <!--<driven | 9259 | </param> |
9260 | id="128" />--> | 9260 | |
9261 | <driven | 9261 | <param |
9262 | id="118" /> | 9262 | id="775" |
9263 | </param_driver> | 9263 | group="0" |
9264 | </param> | 9264 | wearable="skin" |
9265 | 9265 | edit_group="skin_bodydetail" | |
9266 | <param | 9266 | name="Body Freckles" |
9267 | id="505" | 9267 | label_min="Less Freckles" |
9268 | group="0" | 9268 | label_max="More Freckles" |
9269 | wearable="shape" | 9269 | value_min="0" |
9270 | edit_group="shape_mouth" | 9270 | value_max="1" |
9271 | edit_group_order="3" | 9271 | value_default="0" |
9272 | name="Lip Thickness" | 9272 | camera_distance="1.4" |
9273 | label_min="Thin Lips" | 9273 | camera_elevation="-.2"> |
9274 | label_max="Fat Lips" | 9274 | <param_driver> |
9275 | value_min="0" | 9275 | <driven |
9276 | value_max="1" | 9276 | id="776" /> |
9277 | value_default=".5" | 9277 | |
9278 | camera_distance=".3" | 9278 | <driven |
9279 | camera_elevation=".04" | 9279 | id="777" /> |
9280 | camera_angle="20"> | 9280 | </param_driver> |
9281 | <param_driver> | 9281 | </param> |
9282 | <driven | 9282 | |
9283 | id="26" | 9283 | <param |
9284 | min1="0" | 9284 | id="162" |
9285 | max1="0" | 9285 | group="0" |
9286 | max2="0" | 9286 | wearable="skin" |
9287 | min2=".5" /> | 9287 | edit_group="skin_facedetail" |
9288 | 9288 | edit_group_order="1" | |
9289 | <driven | 9289 | name="Facial Definition" |
9290 | id="28" | 9290 | label_min="Less" |
9291 | min1=".5" | 9291 | label_max="More" |
9292 | max1="1" | 9292 | value_min="0" |
9293 | max2="1" | 9293 | value_max="1" |
9294 | min2="1" /> | 9294 | camera_distance=".3" |
9295 | </param_driver> | 9295 | camera_elevation=".07" |
9296 | </param> | 9296 | value_default="0"> |
9297 | 9297 | <param_driver> | |
9298 | <param | 9298 | <driven |
9299 | id="799" | 9299 | id="158" /> |
9300 | group="0" | 9300 | |
9301 | wearable="shape" | 9301 | <driven |
9302 | edit_group="shape_mouth" | 9302 | id="159" /> |
9303 | edit_group_order="3.2" | 9303 | |
9304 | name="Lip Ratio" | 9304 | <driven |
9305 | label="Lip Ratio" | 9305 | id="873" /> |
9306 | show_simple="true" | 9306 | </param_driver> |
9307 | label_min="More Upper Lip" | 9307 | </param> |
9308 | label_max="More Lower Lip" | 9308 | |
9309 | value_min="0" | 9309 | <param |
9310 | value_max="1" | 9310 | id="163" |
9311 | value_default=".5" | 9311 | group="0" |
9312 | camera_distance=".3" | 9312 | wearable="skin" |
9313 | camera_elevation=".04" | 9313 | edit_group="skin_facedetail" |
9314 | camera_angle="20"> | 9314 | edit_group_order="3" |
9315 | <param_driver> | 9315 | name="wrinkles" |
9316 | <driven | 9316 | label_min="Less" |
9317 | id="797" | 9317 | label_max="More" |
9318 | min1="0" | 9318 | value_min="0" |
9319 | max1="0" | 9319 | value_max="1" |
9320 | max2="0" | 9320 | camera_distance=".3" |
9321 | min2=".5" /> | 9321 | camera_elevation=".07" |
9322 | 9322 | value_default="0"> | |
9323 | <driven | 9323 | <param_driver> |
9324 | id="798" | 9324 | <!--<driven |
9325 | min1=".5" | 9325 | id="128" />--> |
9326 | max1="1" | 9326 | <driven |
9327 | max2="1" | 9327 | id="118" /> |
9328 | min2="1" /> | 9328 | </param_driver> |
9329 | </param_driver> | 9329 | </param> |
9330 | </param> | 9330 | |
9331 | 9331 | <param | |
9332 | <param | 9332 | id="505" |
9333 | id="155" | 9333 | group="0" |
9334 | group="0" | 9334 | wearable="shape" |
9335 | wearable="shape" | 9335 | edit_group="shape_mouth" |
9336 | edit_group="shape_mouth" | 9336 | edit_group_order="3" |
9337 | edit_group_order="1" | 9337 | name="Lip Thickness" |
9338 | name="Lip Width" | 9338 | label_min="Thin Lips" |
9339 | label="Lip Width" | 9339 | label_max="Fat Lips" |
9340 | label_min="Narrow Lips" | 9340 | value_min="0" |
9341 | label_max="Wide Lips" | 9341 | value_max="1" |
9342 | show_simple="true" | 9342 | value_default=".5" |
9343 | value_min="-0.9" | 9343 | camera_distance=".3" |
9344 | value_max="1.3" | 9344 | camera_elevation=".04" |
9345 | camera_distance=".3" | 9345 | camera_angle="20"> |
9346 | camera_elevation=".04" | 9346 | <param_driver> |
9347 | value_default="0"> | 9347 | <driven |
9348 | <param_driver> | 9348 | id="26" |
9349 | <driven | 9349 | min1="0" |
9350 | id="29" /> | 9350 | max1="0" |
9351 | 9351 | max2="0" | |
9352 | <driven | 9352 | min2=".5" /> |
9353 | id="30" /> | 9353 | |
9354 | </param_driver> | 9354 | <driven |
9355 | </param> | 9355 | id="28" |
9356 | 9356 | min1=".5" | |
9357 | <param | 9357 | max1="1" |
9358 | id="196" | 9358 | max2="1" |
9359 | group="0" | 9359 | min2="1" /> |
9360 | wearable="shape" | 9360 | </param_driver> |
9361 | edit_group="shape_eyes" | 9361 | </param> |
9362 | edit_group_order="2" | 9362 | |
9363 | name="Eye Spacing" | 9363 | <param |
9364 | label="Eye Spacing" | 9364 | id="799" |
9365 | label_min="Close Set Eyes" | 9365 | group="0" |
9366 | label_max="Far Set Eyes" | 9366 | wearable="shape" |
9367 | show_simple="true" | 9367 | edit_group="shape_mouth" |
9368 | value_min="-2" | 9368 | edit_group_order="3.2" |
9369 | value_max="1" | 9369 | name="Lip Ratio" |
9370 | value_default="0" | 9370 | label="Lip Ratio" |
9371 | camera_elevation=".1" | 9371 | show_simple="true" |
9372 | camera_distance=".35" | 9372 | label_min="More Upper Lip" |
9373 | camera_angle="5"> | 9373 | label_max="More Lower Lip" |
9374 | <param_driver> | 9374 | value_min="0" |
9375 | <driven | 9375 | value_max="1" |
9376 | id="194" /> | 9376 | value_default=".5" |
9377 | 9377 | camera_distance=".3" | |
9378 | <driven | 9378 | camera_elevation=".04" |
9379 | id="195" /> | 9379 | camera_angle="20"> |
9380 | </param_driver> | 9380 | <param_driver> |
9381 | </param> | 9381 | <driven |
9382 | 9382 | id="797" | |
9383 | <param | 9383 | min1="0" |
9384 | id="769" | 9384 | max1="0" |
9385 | group="0" | 9385 | max2="0" |
9386 | wearable="shape" | 9386 | min2=".5" /> |
9387 | edit_group="shape_eyes" | 9387 | |
9388 | edit_group_order="4.5" | 9388 | <driven |
9389 | name="Eye Depth" | 9389 | id="798" |
9390 | label_min="Sunken Eyes" | 9390 | min1=".5" |
9391 | label_max="Bugged Eyes" | 9391 | max1="1" |
9392 | value_min="0" | 9392 | max2="1" |
9393 | value_max="1" | 9393 | min2="1" /> |
9394 | value_default=".5" | 9394 | </param_driver> |
9395 | camera_elevation=".1" | 9395 | </param> |
9396 | camera_distance=".3" | 9396 | |
9397 | camera_angle="75"> | 9397 | <param |
9398 | <param_driver> | 9398 | id="155" |
9399 | <driven | 9399 | group="0" |
9400 | id="767" /> | 9400 | wearable="shape" |
9401 | 9401 | edit_group="shape_mouth" | |
9402 | <driven | 9402 | edit_group_order="1" |
9403 | id="768" /> | 9403 | name="Lip Width" |
9404 | </param_driver> | 9404 | label="Lip Width" |
9405 | </param> | 9405 | label_min="Narrow Lips" |
9406 | 9406 | label_max="Wide Lips" | |
9407 | <param | 9407 | show_simple="true" |
9408 | id="198" | 9408 | value_min="-0.9" |
9409 | group="0" | 9409 | value_max="1.3" |
9410 | wearable="shoes" | 9410 | camera_distance=".3" |
9411 | edit_group="shoes" | 9411 | camera_elevation=".04" |
9412 | edit_group_order="2" | 9412 | value_default="0"> |
9413 | name="Heel Height" | 9413 | <param_driver> |
9414 | label_min="Low Heels" | 9414 | <driven |
9415 | label_max="High Heels" | 9415 | id="29" /> |
9416 | value_min="0" | 9416 | |
9417 | value_max="1" | 9417 | <driven |
9418 | value_default="0" | 9418 | id="30" /> |
9419 | camera_angle="45" | 9419 | </param_driver> |
9420 | camera_distance=".8" | 9420 | </param> |
9421 | camera_elevation="-1"> | 9421 | |
9422 | <param_driver> | 9422 | <param |
9423 | <driven | 9423 | id="196" |
9424 | id="197" /> | 9424 | group="0" |
9425 | 9425 | wearable="shape" | |
9426 | <driven | 9426 | edit_group="shape_eyes" |
9427 | id="500" /> | 9427 | edit_group_order="2" |
9428 | </param_driver> | 9428 | name="Eye Spacing" |
9429 | </param> | 9429 | label="Eye Spacing" |
9430 | 9430 | label_min="Close Set Eyes" | |
9431 | <param | 9431 | label_max="Far Set Eyes" |
9432 | id="513" | 9432 | show_simple="true" |
9433 | group="0" | 9433 | value_min="-2" |
9434 | wearable="shoes" | 9434 | value_max="1" |
9435 | edit_group="shoes" | 9435 | value_default="0" |
9436 | edit_group_order="3" | 9436 | camera_elevation=".1" |
9437 | name="Heel Shape" | 9437 | camera_distance=".35" |
9438 | label_min="Pointy Heels" | 9438 | camera_angle="5"> |
9439 | label_max="Thick Heels" | 9439 | <param_driver> |
9440 | value_min="0" | 9440 | <driven |
9441 | value_max="1" | 9441 | id="194" /> |
9442 | value_default=".5" | 9442 | |
9443 | camera_angle="45" | 9443 | <driven |
9444 | camera_distance="1.5" | 9444 | id="195" /> |
9445 | camera_elevation="-1"> | 9445 | </param_driver> |
9446 | <param_driver> | 9446 | </param> |
9447 | <driven | 9447 | |
9448 | id="509" | 9448 | <param |
9449 | min1="0" | 9449 | id="769" |
9450 | max1="0" | 9450 | group="0" |
9451 | max2="0" | 9451 | wearable="shape" |
9452 | min2=".5" /> | 9452 | edit_group="shape_eyes" |
9453 | 9453 | edit_group_order="4.5" | |
9454 | <driven | 9454 | name="Eye Depth" |
9455 | id="510" | 9455 | label_min="Sunken Eyes" |
9456 | min1=".5" | 9456 | label_max="Bugged Eyes" |
9457 | max1="1" | 9457 | value_min="0" |
9458 | max2="1" | 9458 | value_max="1" |
9459 | min2="1" /> | 9459 | value_default=".5" |
9460 | </param_driver> | 9460 | camera_elevation=".1" |
9461 | </param> | 9461 | camera_distance=".3" |
9462 | 9462 | camera_angle="75"> | |
9463 | <param | 9463 | <param_driver> |
9464 | id="514" | 9464 | <driven |
9465 | group="0" | 9465 | id="767" /> |
9466 | wearable="shoes" | 9466 | |
9467 | edit_group="shoes" | 9467 | <driven |
9468 | edit_group_order="4" | 9468 | id="768" /> |
9469 | name="Toe Shape" | 9469 | </param_driver> |
9470 | label_min="Pointy" | 9470 | </param> |
9471 | label_max="Square" | 9471 | |
9472 | value_min="0" | 9472 | <param |
9473 | value_max="1" | 9473 | id="198" |
9474 | value_default=".5" | 9474 | group="0" |
9475 | camera_angle="5" | 9475 | wearable="shoes" |
9476 | camera_distance=".8" | 9476 | edit_group="shoes" |
9477 | camera_elevation="-.8"> | 9477 | edit_group_order="2" |
9478 | <param_driver> | 9478 | name="Heel Height" |
9479 | <driven | 9479 | label_min="Low Heels" |
9480 | id="511" | 9480 | label_max="High Heels" |
9481 | min1="0" | 9481 | value_min="0" |
9482 | max1="0" | 9482 | value_max="1" |
9483 | max2="0" | 9483 | value_default="0" |
9484 | min2=".5" /> | 9484 | camera_angle="45" |
9485 | 9485 | camera_distance=".8" | |
9486 | <driven | 9486 | camera_elevation="-1"> |
9487 | id="512" | 9487 | <param_driver> |
9488 | min1=".5" | 9488 | <driven |
9489 | max1="1" | 9489 | id="197" /> |
9490 | max2="1" | 9490 | |
9491 | min2="1" /> | 9491 | <driven |
9492 | </param_driver> | 9492 | id="500" /> |
9493 | </param> | 9493 | </param_driver> |
9494 | 9494 | </param> | |
9495 | <param | 9495 | |
9496 | id="503" | 9496 | <param |
9497 | group="0" | 9497 | id="513" |
9498 | wearable="shoes" | 9498 | group="0" |
9499 | edit_group="shoes" | 9499 | wearable="shoes" |
9500 | edit_group_order="6" | 9500 | edit_group="shoes" |
9501 | name="Platform Height" | 9501 | edit_group_order="3" |
9502 | label_min="Low Platforms" | 9502 | name="Heel Shape" |
9503 | label_max="High Platforms" | 9503 | label_min="Pointy Heels" |
9504 | value_min="0" | 9504 | label_max="Thick Heels" |
9505 | value_max="1" | 9505 | value_min="0" |
9506 | value_default="0" | 9506 | value_max="1" |
9507 | camera_angle="45" | 9507 | value_default=".5" |
9508 | camera_distance=".5" | 9508 | camera_angle="45" |
9509 | camera_elevation="-1"> | 9509 | camera_distance="1.5" |
9510 | <param_driver> | 9510 | camera_elevation="-1"> |
9511 | <driven | 9511 | <param_driver> |
9512 | id="501" /> | 9512 | <driven |
9513 | 9513 | id="509" | |
9514 | <driven | 9514 | min1="0" |
9515 | id="502" /> | 9515 | max1="0" |
9516 | </param_driver> | 9516 | max2="0" |
9517 | </param> | 9517 | min2=".5" /> |
9518 | 9518 | ||
9519 | <param | 9519 | <driven |
9520 | id="193" | 9520 | id="510" |
9521 | group="0" | 9521 | min1=".5" |
9522 | wearable="shape" | 9522 | max1="1" |
9523 | edit_group="shape_head" | 9523 | max2="1" |
9524 | edit_group_order="3" | 9524 | min2="1" /> |
9525 | name="Head Shape" | 9525 | </param_driver> |
9526 | label="Head Shape" | 9526 | </param> |
9527 | label_min="More Square" | 9527 | |
9528 | label_max="More Round" | 9528 | <param |
9529 | show_simple="true" | 9529 | id="514" |
9530 | value_min="0" | 9530 | group="0" |
9531 | value_max="1" | 9531 | wearable="shoes" |
9532 | value_default=".5" | 9532 | edit_group="shoes" |
9533 | camera_elevation=".1" | 9533 | edit_group_order="4" |
9534 | camera_distance=".5" | 9534 | name="Toe Shape" |
9535 | camera_angle="20"> | 9535 | label_min="Pointy" |
9536 | <param_driver> | 9536 | label_max="Square" |
9537 | <driven | 9537 | value_min="0" |
9538 | id="188" | 9538 | value_max="1" |
9539 | min1="0" | 9539 | value_default=".5" |
9540 | max1="0" | 9540 | camera_angle="5" |
9541 | max2="0" | 9541 | camera_distance=".8" |
9542 | min2=".5" /> | 9542 | camera_elevation="-.8"> |
9543 | 9543 | <param_driver> | |
9544 | <driven | 9544 | <driven |
9545 | id="642" | 9545 | id="511" |
9546 | min1="0" | 9546 | min1="0" |
9547 | max1="0" | 9547 | max1="0" |
9548 | max2="0" | 9548 | max2="0" |
9549 | min2=".5" /> | 9549 | min2=".5" /> |
9550 | 9550 | ||
9551 | <driven | 9551 | <driven |
9552 | id="189" | 9552 | id="512" |
9553 | min1=".5" | 9553 | min1=".5" |
9554 | max1="1" | 9554 | max1="1" |
9555 | max2="1" | 9555 | max2="1" |
9556 | min2="1" /> | 9556 | min2="1" /> |
9557 | 9557 | </param_driver> | |
9558 | <driven | 9558 | </param> |
9559 | id="643" | 9559 | |
9560 | min1=".5" | 9560 | <param |
9561 | max1="1" | 9561 | id="503" |
9562 | max2="1" | 9562 | group="0" |
9563 | min2="1" /> | 9563 | wearable="shoes" |
9564 | </param_driver> | 9564 | edit_group="shoes" |
9565 | </param> | 9565 | edit_group_order="6" |
9566 | 9566 | name="Platform Height" | |
9567 | <param | 9567 | label_min="Low Platforms" |
9568 | id="157" | 9568 | label_max="High Platforms" |
9569 | group="0" | 9569 | value_min="0" |
9570 | wearable="shape" | 9570 | value_max="1" |
9571 | edit_group="shape_torso" | 9571 | value_default="0" |
9572 | edit_group_order="13" | 9572 | camera_angle="45" |
9573 | name="Belly Size" | 9573 | camera_distance=".5" |
9574 | label_min="Small" | 9574 | camera_elevation="-1"> |
9575 | label_max="Big" | 9575 | <param_driver> |
9576 | value_min="0" | 9576 | <driven |
9577 | value_max="1" | 9577 | id="501" /> |
9578 | value_default="0" | 9578 | |
9579 | camera_distance="1.4" | 9579 | <driven |
9580 | camera_angle="30" | 9580 | id="502" /> |
9581 | camera_elevation=".2"> | 9581 | </param_driver> |
9582 | <param_driver> | 9582 | </param> |
9583 | <driven | 9583 | |
9584 | id="104" /> | 9584 | <param |
9585 | 9585 | id="193" | |
9586 | <driven | 9586 | group="0" |
9587 | id="156" /> | 9587 | wearable="shape" |
9588 | 9588 | edit_group="shape_head" | |
9589 | <driven | 9589 | edit_group_order="3" |
9590 | id="849" /> | 9590 | name="Head Shape" |
9591 | </param_driver> | 9591 | label="Head Shape" |
9592 | </param> | 9592 | label_min="More Square" |
9593 | 9593 | label_max="More Round" | |
9594 | <param | 9594 | show_simple="true" |
9595 | id="637" | 9595 | value_min="0" |
9596 | group="0" | 9596 | value_max="1" |
9597 | wearable="shape" | 9597 | value_default=".5" |
9598 | edit_group="shape_body" | 9598 | camera_elevation=".1" |
9599 | edit_group_order="3" | 9599 | camera_distance=".5" |
9600 | name="Body Fat" | 9600 | camera_angle="20"> |
9601 | label_min="Less Body Fat" | 9601 | <param_driver> |
9602 | label_max="More Body Fat" | 9602 | <driven |
9603 | value_min="0" | 9603 | id="188" |
9604 | value_max="1" | 9604 | min1="0" |
9605 | value_default="0" | 9605 | max1="0" |
9606 | camera_distance="1.8"> | 9606 | max2="0" |
9607 | <param_driver> | 9607 | min2=".5" /> |
9608 | <driven | 9608 | |
9609 | id="633" /> | 9609 | <driven |
9610 | 9610 | id="642" | |
9611 | <driven | 9611 | min1="0" |
9612 | id="634" /> | 9612 | max1="0" |
9613 | 9613 | max2="0" | |
9614 | <driven | 9614 | min2=".5" /> |
9615 | id="635" /> | 9615 | |
9616 | 9616 | <driven | |
9617 | <driven | 9617 | id="189" |
9618 | id="851" /> | 9618 | min1=".5" |
9619 | </param_driver> | 9619 | max1="1" |
9620 | </param> | 9620 | max2="1" |
9621 | 9621 | min2="1" /> | |
9622 | <param | 9622 | |
9623 | id="130" | 9623 | <driven |
9624 | group="0" | 9624 | id="643" |
9625 | wearable="hair" | 9625 | min1=".5" |
9626 | edit_group="hair_style" | 9626 | max1="1" |
9627 | edit_group_order="8" | 9627 | max2="1" |
9628 | name="Front Fringe" | 9628 | min2="1" /> |
9629 | label_min="Short" | 9629 | </param_driver> |
9630 | label_max="Long" | 9630 | </param> |
9631 | value_min="0" | 9631 | |
9632 | value_max="1" | 9632 | <param |
9633 | value_default=".45" | 9633 | id="157" |
9634 | camera_elevation=".1" | 9634 | group="0" |
9635 | camera_distance=".5" | 9635 | wearable="shape" |
9636 | camera_angle="20"> | 9636 | edit_group="shape_torso" |
9637 | <param_driver> | 9637 | edit_group_order="13" |
9638 | <driven | 9638 | name="Belly Size" |
9639 | id="144" | 9639 | label_min="Small" |
9640 | min1="0" | 9640 | label_max="Big" |
9641 | max1="0" | 9641 | value_min="0" |
9642 | max2="0" | 9642 | value_max="1" |
9643 | min2=".5" /> | 9643 | value_default="0" |
9644 | 9644 | camera_distance="1.4" | |
9645 | <driven | 9645 | camera_angle="30" |
9646 | id="145" | 9646 | camera_elevation=".2"> |
9647 | min1=".5" | 9647 | <param_driver> |
9648 | max1="1" | 9648 | <driven |
9649 | max2="1" | 9649 | id="104" /> |
9650 | min2="1" /> | 9650 | |
9651 | </param_driver> | 9651 | <driven |
9652 | </param> | 9652 | id="156" /> |
9653 | 9653 | ||
9654 | <param | 9654 | <driven |
9655 | id="131" | 9655 | id="849" /> |
9656 | group="0" | 9656 | </param_driver> |
9657 | wearable="hair" | 9657 | </param> |
9658 | edit_group="hair_style" | 9658 | |
9659 | edit_group_order="9" | 9659 | <param |
9660 | name="Side Fringe" | 9660 | id="637" |
9661 | label_min="Short" | 9661 | group="0" |
9662 | label_max="Long" | 9662 | wearable="shape" |
9663 | value_min="0" | 9663 | edit_group="shape_body" |
9664 | value_max="1" | 9664 | edit_group_order="3" |
9665 | value_default=".5" | 9665 | name="Body Fat" |
9666 | camera_elevation=".1" | 9666 | label_min="Less Body Fat" |
9667 | camera_distance=".5" | 9667 | label_max="More Body Fat" |
9668 | camera_angle="90"> | 9668 | value_min="0" |
9669 | <param_driver> | 9669 | value_max="1" |
9670 | <driven | 9670 | value_default="0" |
9671 | id="146" | 9671 | camera_distance="1.8"> |
9672 | min1="0" | 9672 | <param_driver> |
9673 | max1="0" | 9673 | <driven |
9674 | max2="0" | 9674 | id="633" /> |
9675 | min2=".5" /> | 9675 | |
9676 | 9676 | <driven | |
9677 | <driven | 9677 | id="634" /> |
9678 | id="147" | 9678 | |
9679 | min1=".5" | 9679 | <driven |
9680 | max1="1" | 9680 | id="635" /> |
9681 | max2="1" | 9681 | |
9682 | min2="1" /> | 9682 | <driven |
9683 | </param_driver> | 9683 | id="851" /> |
9684 | </param> | 9684 | </param_driver> |
9685 | 9685 | </param> | |
9686 | <param | 9686 | |
9687 | id="132" | 9687 | <param |
9688 | group="0" | 9688 | id="130" |
9689 | wearable="hair" | 9689 | group="0" |
9690 | edit_group="hair_style" | 9690 | wearable="hair" |
9691 | edit_group_order="10" | 9691 | edit_group="hair_style" |
9692 | name="Back Fringe" | 9692 | edit_group_order="8" |
9693 | label_min="Short" | 9693 | name="Front Fringe" |
9694 | label_max="Long" | 9694 | label_min="Short" |
9695 | value_min="0" | 9695 | label_max="Long" |
9696 | value_max="1" | 9696 | value_min="0" |
9697 | value_default=".39" | 9697 | value_max="1" |
9698 | camera_elevation=".1" | 9698 | value_default=".45" |
9699 | camera_distance=".5" | 9699 | camera_elevation=".1" |
9700 | camera_angle="160"> | 9700 | camera_distance=".5" |
9701 | <param_driver> | 9701 | camera_angle="20"> |
9702 | <driven | 9702 | <param_driver> |
9703 | id="148" | 9703 | <driven |
9704 | min1="0" | 9704 | id="144" |
9705 | max1="0" | 9705 | min1="0" |
9706 | max2="0" | 9706 | max1="0" |
9707 | min2=".5" /> | 9707 | max2="0" |
9708 | 9708 | min2=".5" /> | |
9709 | <driven | 9709 | |
9710 | id="149" | 9710 | <driven |
9711 | min1=".5" | 9711 | id="145" |
9712 | max1="1" | 9712 | min1=".5" |
9713 | max2="1" | 9713 | max1="1" |
9714 | min2="1" /> | 9714 | max2="1" |
9715 | </param_driver> | 9715 | min2="1" /> |
9716 | </param> | 9716 | </param_driver> |
9717 | 9717 | </param> | |
9718 | <param | 9718 | |
9719 | id="133" | 9719 | <param |
9720 | group="0" | 9720 | id="131" |
9721 | wearable="hair" | 9721 | group="0" |
9722 | edit_group="hair_style" | 9722 | wearable="hair" |
9723 | edit_group_order="2" | 9723 | edit_group="hair_style" |
9724 | name="Hair Front" | 9724 | edit_group_order="9" |
9725 | label_min="Short" | 9725 | name="Side Fringe" |
9726 | label_max="Long" | 9726 | label_min="Short" |
9727 | value_min="0" | 9727 | label_max="Long" |
9728 | value_max="1" | 9728 | value_min="0" |
9729 | value_default=".25" | 9729 | value_max="1" |
9730 | camera_elevation=".1" | 9730 | value_default=".5" |
9731 | camera_distance=".5" | 9731 | camera_elevation=".1" |
9732 | camera_angle="20"> | 9732 | camera_distance=".5" |
9733 | <param_driver> | 9733 | camera_angle="90"> |
9734 | <driven | 9734 | <param_driver> |
9735 | id="172" | 9735 | <driven |
9736 | min1="0" | 9736 | id="146" |
9737 | max1="0" | 9737 | min1="0" |
9738 | max2="0" | 9738 | max1="0" |
9739 | min2=".5" /> | 9739 | max2="0" |
9740 | 9740 | min2=".5" /> | |
9741 | <driven | 9741 | |
9742 | id="171" | 9742 | <driven |
9743 | min1=".5" | 9743 | id="147" |
9744 | max1="1" | 9744 | min1=".5" |
9745 | max2="1" | 9745 | max1="1" |
9746 | min2="1" /> | 9746 | max2="1" |
9747 | </param_driver> | 9747 | min2="1" /> |
9748 | </param> | 9748 | </param_driver> |
9749 | 9749 | </param> | |
9750 | <param | 9750 | |
9751 | id="134" | 9751 | <param |
9752 | group="0" | 9752 | id="132" |
9753 | wearable="hair" | 9753 | group="0" |
9754 | edit_group="hair_style" | 9754 | wearable="hair" |
9755 | edit_group_order="3" | 9755 | edit_group="hair_style" |
9756 | name="Hair Sides" | 9756 | edit_group_order="10" |
9757 | label_min="Short" | 9757 | name="Back Fringe" |
9758 | label_max="Long" | 9758 | label_min="Short" |
9759 | value_min="0" | 9759 | label_max="Long" |
9760 | value_max="1" | 9760 | value_min="0" |
9761 | value_default=".5" | 9761 | value_max="1" |
9762 | camera_elevation=".1" | 9762 | value_default=".39" |
9763 | camera_distance=".5" | 9763 | camera_elevation=".1" |
9764 | camera_angle="90"> | 9764 | camera_distance=".5" |
9765 | <param_driver> | 9765 | camera_angle="160"> |
9766 | <driven | 9766 | <param_driver> |
9767 | id="174" | 9767 | <driven |
9768 | min1="0" | 9768 | id="148" |
9769 | max1="0" | 9769 | min1="0" |
9770 | max2="0" | 9770 | max1="0" |
9771 | min2=".5" /> | 9771 | max2="0" |
9772 | 9772 | min2=".5" /> | |
9773 | <driven | 9773 | |
9774 | id="173" | 9774 | <driven |
9775 | min1=".5" | 9775 | id="149" |
9776 | max1="1" | 9776 | min1=".5" |
9777 | max2="1" | 9777 | max1="1" |
9778 | min2="1" /> | 9778 | max2="1" |
9779 | </param_driver> | 9779 | min2="1" /> |
9780 | </param> | 9780 | </param_driver> |
9781 | 9781 | </param> | |
9782 | <param | 9782 | |
9783 | id="135" | 9783 | <param |
9784 | group="0" | 9784 | id="133" |
9785 | wearable="hair" | 9785 | group="0" |
9786 | edit_group="hair_style" | 9786 | wearable="hair" |
9787 | edit_group_order="4" | 9787 | edit_group="hair_style" |
9788 | name="Hair Back" | 9788 | edit_group_order="2" |
9789 | show_simple="true" | 9789 | name="Hair Front" |
9790 | label_min="Short" | 9790 | label_min="Short" |
9791 | label_max="Long" | 9791 | label_max="Long" |
9792 | value_min="0" | 9792 | value_min="0" |
9793 | value_max="1" | 9793 | value_max="1" |
9794 | value_default=".55" | 9794 | value_default=".25" |
9795 | camera_elevation="-.1" | 9795 | camera_elevation=".1" |
9796 | camera_distance=".8" | 9796 | camera_distance=".5" |
9797 | camera_angle="160"> | 9797 | camera_angle="20"> |
9798 | <param_driver> | 9798 | <param_driver> |
9799 | <driven | 9799 | <driven |
9800 | id="176" | 9800 | id="172" |
9801 | min1="0" | 9801 | min1="0" |
9802 | max1="0" | 9802 | max1="0" |
9803 | max2="0" | 9803 | max2="0" |
9804 | min2=".5" /> | 9804 | min2=".5" /> |
9805 | 9805 | ||
9806 | <driven | 9806 | <driven |
9807 | id="175" | 9807 | id="171" |
9808 | min1=".5" | 9808 | min1=".5" |
9809 | max1="1" | 9809 | max1="1" |
9810 | max2="1" | 9810 | max2="1" |
9811 | min2="1" /> | 9811 | min2="1" /> |
9812 | </param_driver> | 9812 | </param_driver> |
9813 | </param> | 9813 | </param> |
9814 | 9814 | ||
9815 | <param | 9815 | <param |
9816 | id="136" | 9816 | id="134" |
9817 | group="0" | 9817 | group="0" |
9818 | wearable="hair" | 9818 | wearable="hair" |
9819 | edit_group="hair_style" | 9819 | edit_group="hair_style" |
9820 | edit_group_order="11.5" | 9820 | edit_group_order="3" |
9821 | name="Hair Sweep" | 9821 | name="Hair Sides" |
9822 | label_min="Sweep Forward" | 9822 | label_min="Short" |
9823 | label_max="Sweep Back" | 9823 | label_max="Long" |
9824 | value_min="0" | 9824 | value_min="0" |
9825 | value_max="1" | 9825 | value_max="1" |
9826 | value_default=".5" | 9826 | value_default=".5" |
9827 | camera_elevation=".1" | 9827 | camera_elevation=".1" |
9828 | camera_distance=".5" | 9828 | camera_distance=".5" |
9829 | camera_angle="90"> | 9829 | camera_angle="90"> |
9830 | <param_driver> | 9830 | <param_driver> |
9831 | <driven | 9831 | <driven |
9832 | id="179" | 9832 | id="174" |
9833 | min1="0" | 9833 | min1="0" |
9834 | max1="0" | 9834 | max1="0" |
9835 | max2="0" | 9835 | max2="0" |
9836 | min2=".5" /> | 9836 | min2=".5" /> |
9837 | 9837 | ||
9838 | <driven | 9838 | <driven |
9839 | id="178" | 9839 | id="173" |
9840 | min1=".5" | 9840 | min1=".5" |
9841 | max1="1" | 9841 | max1="1" |
9842 | max2="1" | 9842 | max2="1" |
9843 | min2="1" /> | 9843 | min2="1" /> |
9844 | </param_driver> | 9844 | </param_driver> |
9845 | </param> | 9845 | </param> |
9846 | 9846 | ||
9847 | <param | 9847 | <param |
9848 | id="137" | 9848 | id="135" |
9849 | group="0" | 9849 | group="0" |
9850 | wearable="hair" | 9850 | wearable="hair" |
9851 | edit_group="hair_style" | 9851 | edit_group="hair_style" |
9852 | edit_group_order="16" | 9852 | edit_group_order="4" |
9853 | name="Hair Tilt" | 9853 | name="Hair Back" |
9854 | label_min="Left" | 9854 | show_simple="true" |
9855 | label_max="Right" | 9855 | label_min="Short" |
9856 | value_min="0" | 9856 | label_max="Long" |
9857 | value_max="1" | 9857 | value_min="0" |
9858 | value_default=".5" | 9858 | value_max="1" |
9859 | camera_elevation=".1" | 9859 | value_default=".55" |
9860 | camera_distance=".5" | 9860 | camera_elevation="-.1" |
9861 | camera_angle="0"> | 9861 | camera_distance=".8" |
9862 | <param_driver> | 9862 | camera_angle="160"> |
9863 | <driven | 9863 | <param_driver> |
9864 | id="190" | 9864 | <driven |
9865 | min1="0" | 9865 | id="176" |
9866 | max1="0" | 9866 | min1="0" |
9867 | max2="0" | 9867 | max1="0" |
9868 | min2=".5" /> | 9868 | max2="0" |
9869 | 9869 | min2=".5" /> | |
9870 | <driven | 9870 | |
9871 | id="191" | 9871 | <driven |
9872 | min1=".5" | 9872 | id="175" |
9873 | max1="1" | 9873 | min1=".5" |
9874 | max2="1" | 9874 | max1="1" |
9875 | min2="1" /> | 9875 | max2="1" |
9876 | </param_driver> | 9876 | min2="1" /> |
9877 | </param> | 9877 | </param_driver> |
9878 | 9878 | </param> | |
9879 | <param | 9879 | |
9880 | id="608" | 9880 | <param |
9881 | group="0" | 9881 | id="136" |
9882 | wearable="jacket" | 9882 | group="0" |
9883 | edit_group="jacket" | 9883 | wearable="hair" |
9884 | edit_group_order="2" | 9884 | edit_group="hair_style" |
9885 | name="bottom length lower" | 9885 | edit_group_order="11.5" |
9886 | label="Jacket Length" | 9886 | name="Hair Sweep" |
9887 | label_min="Short" | 9887 | label_min="Sweep Forward" |
9888 | label_max="Long" | 9888 | label_max="Sweep Back" |
9889 | value_min="0" | 9889 | value_min="0" |
9890 | value_max="1" | 9890 | value_max="1" |
9891 | value_default=".8" | 9891 | value_default=".5" |
9892 | camera_distance="1.4" | 9892 | camera_elevation=".1" |
9893 | camera_angle="30" | 9893 | camera_distance=".5" |
9894 | camera_elevation=".2"> | 9894 | camera_angle="90"> |
9895 | <param_driver> | 9895 | <param_driver> |
9896 | <driven | 9896 | <driven |
9897 | id="620" /> | 9897 | id="179" |
9898 | 9898 | min1="0" | |
9899 | <driven | 9899 | max1="0" |
9900 | id="1025" /> | 9900 | max2="0" |
9901 | 9901 | min2=".5" /> | |
9902 | <driven | 9902 | |
9903 | id="1037" /> | 9903 | <driven |
9904 | 9904 | id="178" | |
9905 | <driven | 9905 | min1=".5" |
9906 | id="621" /> | 9906 | max1="1" |
9907 | 9907 | max2="1" | |
9908 | <driven | 9908 | min2="1" /> |
9909 | id="1027" /> | 9909 | </param_driver> |
9910 | 9910 | </param> | |
9911 | <driven | 9911 | |
9912 | id="1033" /> | 9912 | <param |
9913 | </param_driver> | 9913 | id="137" |
9914 | </param> | 9914 | group="0" |
9915 | 9915 | wearable="hair" | |
9916 | <param | 9916 | edit_group="hair_style" |
9917 | id="609" | 9917 | edit_group_order="16" |
9918 | group="0" | 9918 | name="Hair Tilt" |
9919 | wearable="jacket" | 9919 | label_min="Left" |
9920 | edit_group="jacket" | 9920 | label_max="Right" |
9921 | edit_group_order="4" | 9921 | value_min="0" |
9922 | name="open jacket" | 9922 | value_max="1" |
9923 | label="Open Front" | 9923 | value_default=".5" |
9924 | label_min="Open" | 9924 | camera_elevation=".1" |
9925 | label_max="Closed" | 9925 | camera_distance=".5" |
9926 | value_min="0" | 9926 | camera_angle="0"> |
9927 | value_max="1" | 9927 | <param_driver> |
9928 | value_default=".2" | 9928 | <driven |
9929 | camera_distance="1.4" | 9929 | id="190" |
9930 | camera_angle="30" | 9930 | min1="0" |
9931 | camera_elevation=".2"> | 9931 | max1="0" |
9932 | <param_driver> | 9932 | max2="0" |
9933 | <driven | 9933 | min2=".5" /> |
9934 | id="622" /> | 9934 | |
9935 | 9935 | <driven | |
9936 | <driven | 9936 | id="191" |
9937 | id="1026" /> | 9937 | min1=".5" |
9938 | 9938 | max1="1" | |
9939 | <driven | 9939 | max2="1" |
9940 | id="1038" /> | 9940 | min2="1" /> |
9941 | 9941 | </param_driver> | |
9942 | <driven | 9942 | </param> |
9943 | id="623" /> | 9943 | |
9944 | 9944 | <param | |
9945 | <driven | 9945 | id="608" |
9946 | id="1028" /> | 9946 | group="0" |
9947 | 9947 | wearable="jacket" | |
9948 | <driven | 9948 | edit_group="jacket" |
9949 | id="1034" /> | 9949 | edit_group_order="2" |
9950 | </param_driver> | 9950 | name="bottom length lower" |
9951 | </param> | 9951 | label="Jacket Length" |
9952 | 9952 | label_min="Short" | |
9953 | <param | 9953 | label_max="Long" |
9954 | id="105" | 9954 | value_min="0" |
9955 | group="0" | 9955 | value_max="1" |
9956 | sex="female" | 9956 | value_default=".8" |
9957 | wearable="shape" | 9957 | camera_distance="1.4" |
9958 | edit_group="shape_torso" | 9958 | camera_angle="30" |
9959 | edit_group_order="6" | 9959 | camera_elevation=".2"> |
9960 | name="Breast Size" | 9960 | <param_driver> |
9961 | label_min="Small" | 9961 | <driven |
9962 | label_max="Large" | 9962 | id="620" /> |
9963 | value_min="0" | 9963 | |
9964 | value_max="1" | 9964 | <driven |
9965 | value_default=".5" | 9965 | id="1025" /> |
9966 | camera_elevation=".3" | 9966 | |
9967 | camera_distance="1.2" | 9967 | <driven |
9968 | camera_angle="30"> | 9968 | id="1037" /> |
9969 | <param_driver> | 9969 | |
9970 | <driven | 9970 | <driven |
9971 | id="843" | 9971 | id="621" /> |
9972 | min1="0" | 9972 | |
9973 | max1="0" | 9973 | <driven |
9974 | max2="0" | 9974 | id="1027" /> |
9975 | min2=".01" /> | 9975 | |
9976 | 9976 | <driven | |
9977 | <driven | 9977 | id="1033" /> |
9978 | id="627" | 9978 | </param_driver> |
9979 | min1="0" | 9979 | </param> |
9980 | max1="0.01" | 9980 | |
9981 | max2="0.01" | 9981 | <param |
9982 | min2=".5" /> | 9982 | id="609" |
9983 | 9983 | group="0" | |
9984 | <driven | 9984 | wearable="jacket" |
9985 | id="626" | 9985 | edit_group="jacket" |
9986 | min1=".5" | 9986 | edit_group_order="4" |
9987 | max1="1" | 9987 | name="open jacket" |
9988 | max2="1" | 9988 | label="Open Front" |
9989 | min2="1" /> | 9989 | label_min="Open" |
9990 | </param_driver> | 9990 | label_max="Closed" |
9991 | </param> | 9991 | value_min="0" |
9992 | 9992 | value_max="1" | |
9993 | <param | 9993 | value_default=".2" |
9994 | id="629" | 9994 | camera_distance="1.4" |
9995 | group="0" | 9995 | camera_angle="30" |
9996 | wearable="shape" | 9996 | camera_elevation=".2"> |
9997 | edit_group="shape_head" | 9997 | <param_driver> |
9998 | edit_group_order="6" | 9998 | <driven |
9999 | name="Forehead Angle" | 9999 | id="622" /> |
10000 | label_min="More Vertical" | 10000 | |
10001 | label_max="More Sloped" | 10001 | <driven |
10002 | value_min="0" | 10002 | id="1026" /> |
10003 | value_max="1" | 10003 | |
10004 | value_default=".5" | 10004 | <driven |
10005 | camera_elevation=".1" | 10005 | id="1038" /> |
10006 | camera_distance=".5" | 10006 | |
10007 | camera_angle="70"> | 10007 | <driven |
10008 | <param_driver> | 10008 | id="623" /> |
10009 | <driven | 10009 | |
10010 | id="630" | 10010 | <driven |
10011 | min1="0" | 10011 | id="1028" /> |
10012 | max1="0" | 10012 | |
10013 | max2="0" | 10013 | <driven |
10014 | min2=".5" /> | 10014 | id="1034" /> |
10015 | 10015 | </param_driver> | |
10016 | <driven | 10016 | </param> |
10017 | id="644" | 10017 | |
10018 | min1="0" | 10018 | <param |
10019 | max1="0" | 10019 | id="105" |
10020 | max2="0" | 10020 | group="0" |
10021 | min2=".5" /> | 10021 | sex="female" |
10022 | 10022 | wearable="shape" | |
10023 | <driven | 10023 | edit_group="shape_torso" |
10024 | id="631" | 10024 | edit_group_order="6" |
10025 | min1=".5" | 10025 | name="Breast Size" |
10026 | max1="1" | 10026 | label_min="Small" |
10027 | max2="1" | 10027 | label_max="Large" |
10028 | min2="1" /> | 10028 | value_min="0" |
10029 | 10029 | value_max="1" | |
10030 | <driven | 10030 | value_default=".5" |
10031 | id="645" | 10031 | camera_elevation=".3" |
10032 | min1=".5" | 10032 | camera_distance="1.2" |
10033 | max1="1" | 10033 | camera_angle="30"> |
10034 | max2="1" | 10034 | <param_driver> |
10035 | min2="1" /> | 10035 | <driven |
10036 | </param_driver> | 10036 | id="843" |
10037 | </param> | 10037 | min1="0" |
10038 | 10038 | max1="0" | |
10039 | <param | 10039 | max2="0" |
10040 | id="646" | 10040 | min2=".01" /> |
10041 | group="0" | 10041 | |
10042 | name="Egg_Head" | 10042 | <driven |
10043 | label="Egg Head" | 10043 | id="627" |
10044 | wearable="shape" | 10044 | min1="0" |
10045 | edit_group="shape_head" | 10045 | max1="0.01" |
10046 | edit_group_order="4" | 10046 | max2="0.01" |
10047 | label_min="Chin Heavy" | 10047 | min2=".5" /> |
10048 | label_max="Forehead Heavy" | 10048 | |
10049 | show_simple="true" | 10049 | <driven |
10050 | value_min="-1.3" | 10050 | id="626" |
10051 | value_max="1" | 10051 | min1=".5" |
10052 | value_default="0" | 10052 | max1="1" |
10053 | camera_elevation=".1" | 10053 | max2="1" |
10054 | camera_distance=".5" | 10054 | min2="1" /> |
10055 | camera_angle="20"> | 10055 | </param_driver> |
10056 | <param_driver> | 10056 | </param> |
10057 | <driven | 10057 | |
10058 | id="640" /> | 10058 | <param |
10059 | 10059 | id="629" | |
10060 | <driven | 10060 | group="0" |
10061 | id="186" /> | 10061 | wearable="shape" |
10062 | </param_driver> | 10062 | edit_group="shape_head" |
10063 | </param> | 10063 | edit_group_order="6" |
10064 | 10064 | name="Forehead Angle" | |
10065 | <param | 10065 | label_min="More Vertical" |
10066 | id="647" | 10066 | label_max="More Sloped" |
10067 | group="0" | 10067 | value_min="0" |
10068 | name="Squash_Stretch_Head" | 10068 | value_max="1" |
10069 | label="Head Stretch" | 10069 | value_default=".5" |
10070 | wearable="shape" | 10070 | camera_elevation=".1" |
10071 | edit_group="shape_head" | 10071 | camera_distance=".5" |
10072 | edit_group_order="2" | 10072 | camera_angle="70"> |
10073 | show_simple="true" | 10073 | <param_driver> |
10074 | label_min="Squash Head" | 10074 | <driven |
10075 | label_max="Stretch Head" | 10075 | id="630" |
10076 | value_min="-0.5" | 10076 | min1="0" |
10077 | value_max="1" | 10077 | max1="0" |
10078 | value_default="0" | 10078 | max2="0" |
10079 | camera_elevation=".1" | 10079 | min2=".5" /> |
10080 | camera_distance=".5" | 10080 | |
10081 | camera_angle="20"> | 10081 | <driven |
10082 | <param_driver> | 10082 | id="644" |
10083 | <driven | 10083 | min1="0" |
10084 | id="641" /> | 10084 | max1="0" |
10085 | 10085 | max2="0" | |
10086 | <driven | 10086 | min2=".5" /> |
10087 | id="187" /> | 10087 | |
10088 | </param_driver> | 10088 | <driven |
10089 | </param> | 10089 | id="631" |
10090 | 10090 | min1=".5" | |
10091 | <param | 10091 | max1="1" |
10092 | id="649" | 10092 | max2="1" |
10093 | group="0" | 10093 | min2="1" /> |
10094 | sex="female" | 10094 | |
10095 | wearable="shape" | 10095 | <driven |
10096 | edit_group="shape_torso" | 10096 | id="645" |
10097 | edit_group_order="1.1" | 10097 | min1=".5" |
10098 | name="Torso Muscles" | 10098 | max1="1" |
10099 | label="Torso Muscles" | 10099 | max2="1" |
10100 | show_simple="true" | 10100 | min2="1" /> |
10101 | label_min="Less Muscular" | 10101 | </param_driver> |
10102 | label_max="More Muscular" | 10102 | </param> |
10103 | value_min="0" | 10103 | |
10104 | value_max="1" | 10104 | <param |
10105 | value_default=".5" | 10105 | id="646" |
10106 | camera_elevation=".1" | 10106 | group="0" |
10107 | camera_distance="1" | 10107 | name="Egg_Head" |
10108 | camera_angle="15"> | 10108 | label="Egg Head" |
10109 | <param_driver> | 10109 | wearable="shape" |
10110 | <driven | 10110 | edit_group="shape_head" |
10111 | id="648" | 10111 | edit_group_order="4" |
10112 | min1="0" | 10112 | label_min="Chin Heavy" |
10113 | max1="0" | 10113 | label_max="Forehead Heavy" |
10114 | max2="0" | 10114 | show_simple="true" |
10115 | min2=".5" /> | 10115 | value_min="-1.3" |
10116 | 10116 | value_max="1" | |
10117 | <driven | 10117 | value_default="0" |
10118 | id="106" | 10118 | camera_elevation=".1" |
10119 | min1=".5" | 10119 | camera_distance=".5" |
10120 | max1="1" | 10120 | camera_angle="20"> |
10121 | max2="1" | 10121 | <param_driver> |
10122 | min2="1" /> | 10122 | <driven |
10123 | </param_driver> | 10123 | id="640" /> |
10124 | </param> | 10124 | |
10125 | 10125 | <driven | |
10126 | <param | 10126 | id="186" /> |
10127 | id="678" | 10127 | </param_driver> |
10128 | group="0" | 10128 | </param> |
10129 | sex="male" | 10129 | |
10130 | wearable="shape" | 10130 | <param |
10131 | edit_group="shape_torso" | 10131 | id="647" |
10132 | edit_group_order="1" | 10132 | group="0" |
10133 | name="Torso Muscles" | 10133 | name="Squash_Stretch_Head" |
10134 | show_simple="true" | 10134 | label="Head Stretch" |
10135 | label_min="Less Muscular" | 10135 | wearable="shape" |
10136 | label_max="More Muscular" | 10136 | edit_group="shape_head" |
10137 | value_min="0" | 10137 | edit_group_order="2" |
10138 | value_max="1" | 10138 | show_simple="true" |
10139 | value_default=".5" | 10139 | label_min="Squash Head" |
10140 | camera_elevation=".1" | 10140 | label_max="Stretch Head" |
10141 | camera_distance="1.2" | 10141 | value_min="-0.5" |
10142 | camera_angle="0"> | 10142 | value_max="1" |
10143 | <param_driver> | 10143 | value_default="0" |
10144 | <driven | 10144 | camera_elevation=".1" |
10145 | id="677" | 10145 | camera_distance=".5" |
10146 | min1="0" | 10146 | camera_angle="20"> |
10147 | max1="0" | 10147 | <param_driver> |
10148 | max2="0" | 10148 | <driven |
10149 | min2=".5" /> | 10149 | id="641" /> |
10150 | 10150 | ||
10151 | <driven | 10151 | <driven |
10152 | id="106" | 10152 | id="187" /> |
10153 | min1=".5" | 10153 | </param_driver> |
10154 | max1="1" | 10154 | </param> |
10155 | max2="1" | 10155 | |
10156 | min2="1" /> | 10156 | <param |
10157 | </param_driver> | 10157 | id="649" |
10158 | </param> | 10158 | group="0" |
10159 | 10159 | sex="female" | |
10160 | <param | 10160 | wearable="shape" |
10161 | id="652" | 10161 | edit_group="shape_torso" |
10162 | group="0" | 10162 | edit_group_order="1.1" |
10163 | wearable="shape" | 10163 | name="Torso Muscles" |
10164 | edit_group="shape_legs" | 10164 | label="Torso Muscles" |
10165 | edit_group_order="1" | 10165 | show_simple="true" |
10166 | name="Leg Muscles" | 10166 | label_min="Less Muscular" |
10167 | label_min="Less Muscular" | 10167 | label_max="More Muscular" |
10168 | label_max="More Muscular" | 10168 | value_min="0" |
10169 | show_simple="true" | 10169 | value_max="1" |
10170 | value_min="0" | 10170 | value_default=".5" |
10171 | value_max="1" | 10171 | camera_elevation=".1" |
10172 | value_default=".5" | 10172 | camera_distance="1" |
10173 | camera_distance="1.3" | 10173 | camera_angle="15"> |
10174 | camera_elevation="-.5" | 10174 | <param_driver> |
10175 | camera_angle="15"> | 10175 | <driven |
10176 | <param_driver> | 10176 | id="648" |
10177 | <driven | 10177 | min1="0" |
10178 | id="651" | 10178 | max1="0" |
10179 | min1="0" | 10179 | max2="0" |
10180 | max1="0" | 10180 | min2=".5" /> |
10181 | max2="0" | 10181 | |
10182 | min2=".5" /> | 10182 | <driven |
10183 | 10183 | id="106" | |
10184 | <driven | 10184 | min1=".5" |
10185 | id="152" | 10185 | max1="1" |
10186 | min1=".5" | 10186 | max2="1" |
10187 | max1="1" | 10187 | min2="1" /> |
10188 | max2="1" | 10188 | </param_driver> |
10189 | min2="1" /> | 10189 | </param> |
10190 | </param_driver> | 10190 | |
10191 | </param> | 10191 | <param |
10192 | 10192 | id="678" | |
10193 | <param | 10193 | group="0" |
10194 | id="80" | 10194 | sex="male" |
10195 | name="male" | 10195 | wearable="shape" |
10196 | group="0" | 10196 | edit_group="shape_torso" |
10197 | edit_group="dummy" | 10197 | edit_group_order="1" |
10198 | wearable="shape" | 10198 | name="Torso Muscles" |
10199 | value_min="0" | 10199 | show_simple="true" |
10200 | value_max="1"> | 10200 | label_min="Less Muscular" |
10201 | <param_driver> | 10201 | label_max="More Muscular" |
10202 | <driven | 10202 | value_min="0" |
10203 | id="32" /> | 10203 | value_max="1" |
10204 | 10204 | value_default=".5" | |
10205 | <driven | 10205 | camera_elevation=".1" |
10206 | id="153" /> | 10206 | camera_distance="1.2" |
10207 | 10207 | camera_angle="0"> | |
10208 | <driven | 10208 | <param_driver> |
10209 | id="40" /> | 10209 | <driven |
10210 | 10210 | id="677" | |
10211 | <driven | 10211 | min1="0" |
10212 | id="100" /> | 10212 | max1="0" |
10213 | 10213 | max2="0" | |
10214 | <driven | 10214 | min2=".5" /> |
10215 | id="857" /> | 10215 | |
10216 | </param_driver> | 10216 | <driven |
10217 | </param> | 10217 | id="106" |
10218 | 10218 | min1=".5" | |
10219 | <param | 10219 | max1="1" |
10220 | id="659" | 10220 | max2="1" |
10221 | group="0" | 10221 | min2="1" /> |
10222 | wearable="shape" | 10222 | </param_driver> |
10223 | edit_group="shape_mouth" | 10223 | </param> |
10224 | edit_group_order="5" | 10224 | |
10225 | name="Mouth Corner" | 10225 | <param |
10226 | label_min="Corner Down" | 10226 | id="652" |
10227 | label_max="Corner Up" | 10227 | group="0" |
10228 | value_min="0" | 10228 | wearable="shape" |
10229 | value_max="1" | 10229 | edit_group="shape_legs" |
10230 | value_default=".5" | 10230 | edit_group_order="1" |
10231 | camera_elevation="0" | 10231 | name="Leg Muscles" |
10232 | camera_distance=".28"> | 10232 | label_min="Less Muscular" |
10233 | <param_driver> | 10233 | label_max="More Muscular" |
10234 | <driven | 10234 | show_simple="true" |
10235 | id="658" | 10235 | value_min="0" |
10236 | min1="0" | 10236 | value_max="1" |
10237 | max1="0" | 10237 | value_default=".5" |
10238 | max2="0" | 10238 | camera_distance="1.3" |
10239 | min2=".5" /> | 10239 | camera_elevation="-.5" |
10240 | 10240 | camera_angle="15"> | |
10241 | <driven | 10241 | <param_driver> |
10242 | id="657" | 10242 | <driven |
10243 | min1=".5" | 10243 | id="651" |
10244 | max1="1" | 10244 | min1="0" |
10245 | max2="1" | 10245 | max1="0" |
10246 | min2="1" /> | 10246 | max2="0" |
10247 | </param_driver> | 10247 | min2=".5" /> |
10248 | </param> | 10248 | |
10249 | 10249 | <driven | |
10250 | <param | 10250 | id="152" |
10251 | id="662" | 10251 | min1=".5" |
10252 | group="0" | 10252 | max1="1" |
10253 | wearable="shape" | 10253 | max2="1" |
10254 | edit_group="shape_head" | 10254 | min2="1" /> |
10255 | edit_group_order="5" | 10255 | </param_driver> |
10256 | name="Face Shear" | 10256 | </param> |
10257 | label_min="Shear Right Up" | 10257 | |
10258 | label_max="Shear Left Up" | 10258 | <param |
10259 | value_min="0" | 10259 | id="80" |
10260 | value_max="1" | 10260 | name="male" |
10261 | value_default=".5" | 10261 | group="0" |
10262 | camera_elevation=".1" | 10262 | edit_group="dummy" |
10263 | camera_distance=".5"> | 10263 | wearable="shape" |
10264 | <param_driver> | 10264 | value_min="0" |
10265 | <driven | 10265 | value_max="1"> |
10266 | id="660" /> | 10266 | <param_driver> |
10267 | 10267 | <driven | |
10268 | <driven | 10268 | id="32" /> |
10269 | id="661" /> | 10269 | |
10270 | 10270 | <driven | |
10271 | <driven | 10271 | id="153" /> |
10272 | id="774" /> | 10272 | |
10273 | </param_driver> | 10273 | <driven |
10274 | </param> | 10274 | id="40" /> |
10275 | 10275 | ||
10276 | <param | 10276 | <driven |
10277 | id="773" | 10277 | id="100" /> |
10278 | group="0" | 10278 | |
10279 | wearable="shape" | 10279 | <driven |
10280 | edit_group="shape_head" | 10280 | id="857" /> |
10281 | edit_group_order="4.5" | 10281 | </param_driver> |
10282 | name="Head Length" | 10282 | </param> |
10283 | label_min="Flat Head" | 10283 | |
10284 | label_max="Long Head" | 10284 | <param |
10285 | value_min="0" | 10285 | id="659" |
10286 | value_max="1" | 10286 | group="0" |
10287 | value_default=".5" | 10287 | wearable="shape" |
10288 | camera_elevation=".1" | 10288 | edit_group="shape_mouth" |
10289 | camera_distance=".5" | 10289 | edit_group_order="5" |
10290 | camera_angle="75"> | 10290 | name="Mouth Corner" |
10291 | <param_driver> | 10291 | label_min="Corner Down" |
10292 | <driven | 10292 | label_max="Corner Up" |
10293 | id="770" /> | 10293 | value_min="0" |
10294 | 10294 | value_max="1" | |
10295 | <driven | 10295 | value_default=".5" |
10296 | id="771" /> | 10296 | camera_elevation="0" |
10297 | 10297 | camera_distance=".28"> | |
10298 | <driven | 10298 | <param_driver> |
10299 | id="772" /> | 10299 | <driven |
10300 | </param_driver> | 10300 | id="658" |
10301 | </param> | 10301 | min1="0" |
10302 | 10302 | max1="0" | |
10303 | <param | 10303 | max2="0" |
10304 | id="682" | 10304 | min2=".5" /> |
10305 | group="0" | 10305 | |
10306 | wearable="shape" | 10306 | <driven |
10307 | edit_group="shape_head" | 10307 | id="657" |
10308 | edit_group_order="1" | 10308 | min1=".5" |
10309 | name="Head Size" | 10309 | max1="1" |
10310 | label="Head Size" | 10310 | max2="1" |
10311 | label_min="Small Head" | 10311 | min2="1" /> |
10312 | label_max="Big Head" | 10312 | </param_driver> |
10313 | show_simple="true" | 10313 | </param> |
10314 | value_min="0" | 10314 | |
10315 | value_max="1" | 10315 | <param |
10316 | value_default=".5" | 10316 | id="662" |
10317 | camera_elevation=".1" | 10317 | group="0" |
10318 | camera_distance=".5"> | 10318 | wearable="shape" |
10319 | <param_driver> | 10319 | edit_group="shape_head" |
10320 | <driven | 10320 | edit_group_order="5" |
10321 | id="679" /> | 10321 | name="Face Shear" |
10322 | 10322 | label_min="Shear Right Up" | |
10323 | <driven | 10323 | label_max="Shear Left Up" |
10324 | id="694" /> | 10324 | value_min="0" |
10325 | 10325 | value_max="1" | |
10326 | <driven | 10326 | value_default=".5" |
10327 | id="680" /> | 10327 | camera_elevation=".1" |
10328 | 10328 | camera_distance=".5"> | |
10329 | <driven | 10329 | <param_driver> |
10330 | id="681" /> | 10330 | <driven |
10331 | 10331 | id="660" /> | |
10332 | <driven | 10332 | |
10333 | id="655" /> | 10333 | <driven |
10334 | </param_driver> | 10334 | id="661" /> |
10335 | </param> | 10335 | |
10336 | 10336 | <driven | |
10337 | <param | 10337 | id="774" /> |
10338 | id="690" | 10338 | </param_driver> |
10339 | group="0" | 10339 | </param> |
10340 | wearable="shape" | 10340 | |
10341 | edit_group="shape_eyes" | 10341 | <param |
10342 | edit_group_order="1" | 10342 | id="773" |
10343 | name="Eye Size" | 10343 | group="0" |
10344 | label="Eye Size" | 10344 | wearable="shape" |
10345 | label_min="Beady Eyes" | 10345 | edit_group="shape_head" |
10346 | label_max="Anime Eyes" | 10346 | edit_group_order="4.5" |
10347 | value_min="0" | 10347 | name="Head Length" |
10348 | value_max="1" | 10348 | label_min="Flat Head" |
10349 | value_default=".5" | 10349 | label_max="Long Head" |
10350 | show_simple="true" | 10350 | value_min="0" |
10351 | camera_elevation=".1" | 10351 | value_max="1" |
10352 | camera_distance=".35"> | 10352 | value_default=".5" |
10353 | <param_driver> | 10353 | camera_elevation=".1" |
10354 | <driven | 10354 | camera_distance=".5" |
10355 | id="686" /> | 10355 | camera_angle="75"> |
10356 | 10356 | <param_driver> | |
10357 | <driven | 10357 | <driven |
10358 | id="687" /> | 10358 | id="770" /> |
10359 | 10359 | ||
10360 | <driven | 10360 | <driven |
10361 | id="695" /> | 10361 | id="771" /> |
10362 | 10362 | ||
10363 | <driven | 10363 | <driven |
10364 | id="688" /> | 10364 | id="772" /> |
10365 | 10365 | </param_driver> | |
10366 | <driven | 10366 | </param> |
10367 | id="691" /> | 10367 | |
10368 | 10368 | <param | |
10369 | <driven | 10369 | id="682" |
10370 | id="689" /> | 10370 | group="0" |
10371 | </param_driver> | 10371 | wearable="shape" |
10372 | </param> | 10372 | edit_group="shape_head" |
10373 | 10373 | edit_group_order="1" | |
10374 | <param | 10374 | name="Head Size" |
10375 | id="752" | 10375 | label="Head Size" |
10376 | group="0" | 10376 | label_min="Small Head" |
10377 | sex="male" | 10377 | label_max="Big Head" |
10378 | wearable="hair" | 10378 | show_simple="true" |
10379 | edit_group="hair_facial" | 10379 | value_min="0" |
10380 | edit_group_order="1" | 10380 | value_max="1" |
10381 | name="Hair Thickness" | 10381 | value_default=".5" |
10382 | label_min="5 O'Clock Shadow" | 10382 | camera_elevation=".1" |
10383 | label_max="Bushy Hair" | 10383 | camera_distance=".5"> |
10384 | value_min="0" | 10384 | <param_driver> |
10385 | value_max="1" | 10385 | <driven |
10386 | value_default=".5" | 10386 | id="679" /> |
10387 | camera_elevation="0" | 10387 | |
10388 | camera_distance=".28"> | 10388 | <driven |
10389 | <param_driver> | 10389 | id="694" /> |
10390 | <driven | 10390 | |
10391 | id="751" | 10391 | <driven |
10392 | min1="0" | 10392 | id="680" /> |
10393 | max1="0" | 10393 | |
10394 | max2="0" | 10394 | <driven |
10395 | min2=".2" /> | 10395 | id="681" /> |
10396 | 10396 | ||
10397 | <driven | 10397 | <driven |
10398 | id="1012" | 10398 | id="655" /> |
10399 | min1="0" | 10399 | </param_driver> |
10400 | max1="0" | 10400 | </param> |
10401 | max2=".2" | 10401 | |
10402 | min2=".6" /> | 10402 | <param |
10403 | 10403 | id="690" | |
10404 | <driven | 10404 | group="0" |
10405 | id="400" | 10405 | wearable="shape" |
10406 | min1=".2" | 10406 | edit_group="shape_eyes" |
10407 | max1="1" | 10407 | edit_group_order="1" |
10408 | max2="1" | 10408 | name="Eye Size" |
10409 | min2="1" /> | 10409 | label="Eye Size" |
10410 | </param_driver> | 10410 | label_min="Beady Eyes" |
10411 | </param> | 10411 | label_max="Anime Eyes" |
10412 | 10412 | value_min="0" | |
10413 | <param | 10413 | value_max="1" |
10414 | id="763" | 10414 | value_default=".5" |
10415 | group="0" | 10415 | show_simple="true" |
10416 | wearable="hair" | 10416 | camera_elevation=".1" |
10417 | edit_group="hair_style" | 10417 | camera_distance=".35"> |
10418 | edit_group_order="1" | 10418 | <param_driver> |
10419 | name="Hair Volume" | 10419 | <driven |
10420 | show_simple="true" | 10420 | id="686" /> |
10421 | label_min="Less Volume" | 10421 | |
10422 | label_max="More Volume" | 10422 | <driven |
10423 | value_min="0" | 10423 | id="687" /> |
10424 | value_max="1" | 10424 | |
10425 | value_default=".55" | 10425 | <driven |
10426 | camera_elevation=".1" | 10426 | id="695" /> |
10427 | camera_distance=".5" | 10427 | |
10428 | camera_angle="20"> | 10428 | <driven |
10429 | <param_driver> | 10429 | id="688" /> |
10430 | <driven | 10430 | |
10431 | id="761" | 10431 | <driven |
10432 | min1="0" | 10432 | id="691" /> |
10433 | max1="0" | 10433 | |
10434 | max2="0" | 10434 | <driven |
10435 | min2=".5" /> | 10435 | id="689" /> |
10436 | 10436 | </param_driver> | |
10437 | <driven | 10437 | </param> |
10438 | id="180" | 10438 | |
10439 | min1=".5" | 10439 | <param |
10440 | max1="1" | 10440 | id="752" |
10441 | max2="1" | 10441 | group="0" |
10442 | min2="1" /> | 10442 | sex="male" |
10443 | </param_driver> | 10443 | wearable="hair" |
10444 | </param> | 10444 | edit_group="hair_facial" |
10445 | 10445 | edit_group_order="1" | |
10446 | <param | 10446 | name="Hair Thickness" |
10447 | id="834" | 10447 | label_min="5 O'Clock Shadow" |
10448 | group="0" | 10448 | label_max="Bushy Hair" |
10449 | wearable="jacket" | 10449 | value_min="0" |
10450 | edit_group="colorpicker" | 10450 | value_max="1" |
10451 | name="jacket_red" | 10451 | value_default=".5" |
10452 | value_min="0" | 10452 | camera_elevation="0" |
10453 | value_max="1" | 10453 | camera_distance=".28"> |
10454 | value_default="1"> | 10454 | <param_driver> |
10455 | <param_driver> | 10455 | <driven |
10456 | <driven | 10456 | id="751" |
10457 | id="809" | 10457 | min1="0" |
10458 | min1="0" | 10458 | max1="0" |
10459 | max1="1" | 10459 | max2="0" |
10460 | max2="1" | 10460 | min2=".2" /> |
10461 | min2="1" /> | 10461 | |
10462 | 10462 | <driven | |
10463 | <driven | 10463 | id="1012" |
10464 | id="831" | 10464 | min1="0" |
10465 | min1="0" | 10465 | max1="0" |
10466 | max1="1" | 10466 | max2=".2" |
10467 | max2="1" | 10467 | min2=".6" /> |
10468 | min2="1" /> | 10468 | |
10469 | </param_driver> | 10469 | <driven |
10470 | </param> | 10470 | id="400" |
10471 | 10471 | min1=".2" | |
10472 | <param | 10472 | max1="1" |
10473 | id="835" | 10473 | max2="1" |
10474 | group="0" | 10474 | min2="1" /> |
10475 | wearable="jacket" | 10475 | </param_driver> |
10476 | edit_group="colorpicker" | 10476 | </param> |
10477 | name="jacket_green" | 10477 | |
10478 | value_min="0" | 10478 | <param |
10479 | value_max="1" | 10479 | id="763" |
10480 | value_default="1"> | 10480 | group="0" |
10481 | <param_driver> | 10481 | wearable="hair" |
10482 | <driven | 10482 | edit_group="hair_style" |
10483 | id="810" | 10483 | edit_group_order="1" |
10484 | min1="0" | 10484 | name="Hair Volume" |
10485 | max1="1" | 10485 | show_simple="true" |
10486 | max2="1" | 10486 | label_min="Less Volume" |
10487 | min2="1" /> | 10487 | label_max="More Volume" |
10488 | 10488 | value_min="0" | |
10489 | <driven | 10489 | value_max="1" |
10490 | id="832" | 10490 | value_default=".55" |
10491 | min1="0" | 10491 | camera_elevation=".1" |
10492 | max1="1" | 10492 | camera_distance=".5" |
10493 | max2="1" | 10493 | camera_angle="20"> |
10494 | min2="1" /> | 10494 | <param_driver> |
10495 | </param_driver> | 10495 | <driven |
10496 | </param> | 10496 | id="761" |
10497 | 10497 | min1="0" | |
10498 | <param | 10498 | max1="0" |
10499 | id="836" | 10499 | max2="0" |
10500 | group="0" | 10500 | min2=".5" /> |
10501 | wearable="jacket" | 10501 | |
10502 | edit_group="colorpicker" | 10502 | <driven |
10503 | name="jacket_blue" | 10503 | id="180" |
10504 | value_min="0" | 10504 | min1=".5" |
10505 | value_max="1" | 10505 | max1="1" |
10506 | value_default="1"> | 10506 | max2="1" |
10507 | <param_driver> | 10507 | min2="1" /> |
10508 | <driven | 10508 | </param_driver> |
10509 | id="811" | 10509 | </param> |
10510 | min1="0" | 10510 | |
10511 | max1="1" | 10511 | <param |
10512 | max2="1" | 10512 | id="834" |
10513 | min2="1" /> | 10513 | group="0" |
10514 | 10514 | wearable="jacket" | |
10515 | <driven | 10515 | edit_group="colorpicker" |
10516 | id="833" | 10516 | name="jacket_red" |
10517 | min1="0" | 10517 | value_min="0" |
10518 | max1="1" | 10518 | value_max="1" |
10519 | max2="1" | 10519 | value_default="1"> |
10520 | min2="1" /> | 10520 | <param_driver> |
10521 | </param_driver> | 10521 | <driven |
10522 | </param> | 10522 | id="809" |
10523 | 10523 | min1="0" | |
10524 | <param | 10524 | max1="1" |
10525 | id="785" | 10525 | max2="1" |
10526 | group="0" | 10526 | min2="1" /> |
10527 | wearable="hair" | 10527 | |
10528 | edit_group="hair_style" | 10528 | <driven |
10529 | edit_group_order="14.6" | 10529 | id="831" |
10530 | name="Pigtails" | 10530 | min1="0" |
10531 | show_simple="true" | 10531 | max1="1" |
10532 | label_min="Short Pigtails" | 10532 | max2="1" |
10533 | label_max="Long Pigtails" | 10533 | min2="1" /> |
10534 | value_min="0" | 10534 | </param_driver> |
10535 | value_max="1" | 10535 | </param> |
10536 | value_default="0" | 10536 | |
10537 | camera_elevation=".1" | 10537 | <param |
10538 | camera_distance=".5" | 10538 | id="835" |
10539 | camera_angle="15"> | 10539 | group="0" |
10540 | <param_driver> | 10540 | wearable="jacket" |
10541 | <driven | 10541 | edit_group="colorpicker" |
10542 | id="782" | 10542 | name="jacket_green" |
10543 | min1="0" | 10543 | value_min="0" |
10544 | max1=".10" | 10544 | value_max="1" |
10545 | max2=".10" | 10545 | value_default="1"> |
10546 | min2=".5" /> | 10546 | <param_driver> |
10547 | 10547 | <driven | |
10548 | <driven | 10548 | id="810" |
10549 | id="783" | 10549 | min1="0" |
10550 | min1=".10" | 10550 | max1="1" |
10551 | max1=".5" | 10551 | max2="1" |
10552 | max2=".5" | 10552 | min2="1" /> |
10553 | min2=".75" /> | 10553 | |
10554 | 10554 | <driven | |
10555 | <driven | 10555 | id="832" |
10556 | id="790" | 10556 | min1="0" |
10557 | min1=".5" | 10557 | max1="1" |
10558 | max1=".75" | 10558 | max2="1" |
10559 | max2=".75" | 10559 | min2="1" /> |
10560 | min2="1" /> | 10560 | </param_driver> |
10561 | 10561 | </param> | |
10562 | <driven | 10562 | |
10563 | id="784" | 10563 | <param |
10564 | min1=".75" | 10564 | id="836" |
10565 | max1="1" | 10565 | group="0" |
10566 | max2="1" | 10566 | wearable="jacket" |
10567 | min2="1" /> | 10567 | edit_group="colorpicker" |
10568 | </param_driver> | 10568 | name="jacket_blue" |
10569 | </param> | 10569 | value_min="0" |
10570 | 10570 | value_max="1" | |
10571 | <param | 10571 | value_default="1"> |
10572 | id="789" | 10572 | <param_driver> |
10573 | group="0" | 10573 | <driven |
10574 | wearable="hair" | 10574 | id="811" |
10575 | edit_group="hair_style" | 10575 | min1="0" |
10576 | edit_group_order="14.7" | 10576 | max1="1" |
10577 | name="Ponytail" | 10577 | max2="1" |
10578 | label_min="Short Ponytail" | 10578 | min2="1" /> |
10579 | label_max="Long Ponytail" | 10579 | |
10580 | value_min="0" | 10580 | <driven |
10581 | value_max="1" | 10581 | id="833" |
10582 | value_default="0" | 10582 | min1="0" |
10583 | camera_elevation=".1" | 10583 | max1="1" |
10584 | camera_distance=".5" | 10584 | max2="1" |
10585 | camera_angle="180"> | 10585 | min2="1" /> |
10586 | <param_driver> | 10586 | </param_driver> |
10587 | <driven | 10587 | </param> |
10588 | id="786" | 10588 | |
10589 | min1="0" | 10589 | <param |
10590 | max1=".10" | 10590 | id="785" |
10591 | max2=".10" | 10591 | group="0" |
10592 | min2=".66" /> | 10592 | wearable="hair" |
10593 | 10593 | edit_group="hair_style" | |
10594 | <driven | 10594 | edit_group_order="14.6" |
10595 | id="787" | 10595 | name="Pigtails" |
10596 | min1=".10" | 10596 | show_simple="true" |
10597 | max1=".66" | 10597 | label_min="Short Pigtails" |
10598 | max2=".66" | 10598 | label_max="Long Pigtails" |
10599 | min2="1" /> | 10599 | value_min="0" |
10600 | 10600 | value_max="1" | |
10601 | <driven | 10601 | value_default="0" |
10602 | id="788" | 10602 | camera_elevation=".1" |
10603 | min1=".66" | 10603 | camera_distance=".5" |
10604 | max1="1" | 10604 | camera_angle="15"> |
10605 | max2="1" | 10605 | <param_driver> |
10606 | min2="1" /> | 10606 | <driven |
10607 | </param_driver> | 10607 | id="782" |
10608 | </param> | 10608 | min1="0" |
10609 | 10609 | max1=".10" | |
10610 | <param | 10610 | max2=".10" |
10611 | id="795" | 10611 | min2=".5" /> |
10612 | group="0" | 10612 | |
10613 | name="Butt Size" | 10613 | <driven |
10614 | label="Butt Size" | 10614 | id="783" |
10615 | wearable="shape" | 10615 | min1=".10" |
10616 | edit_group="shape_legs" | 10616 | max1=".5" |
10617 | edit_group_order="4" | 10617 | max2=".5" |
10618 | label_min="Flat Butt" | 10618 | min2=".75" /> |
10619 | label_max="Big Butt" | 10619 | |
10620 | value_min="0" | 10620 | <driven |
10621 | value_max="1" | 10621 | id="790" |
10622 | value_default=".25" | 10622 | min1=".5" |
10623 | camera_angle="180" | 10623 | max1=".75" |
10624 | camera_distance=".6"> | 10624 | max2=".75" |
10625 | <param_driver> | 10625 | min2="1" /> |
10626 | <driven | 10626 | |
10627 | id="867" | 10627 | <driven |
10628 | min1="0" | 10628 | id="784" |
10629 | max1="0" | 10629 | min1=".75" |
10630 | max2="0" | 10630 | max1="1" |
10631 | min2=".3" /> | 10631 | max2="1" |
10632 | 10632 | min2="1" /> | |
10633 | <driven | 10633 | </param_driver> |
10634 | id="794" | 10634 | </param> |
10635 | min1="0" | 10635 | |
10636 | max1="0" | 10636 | <param |
10637 | max2="0" | 10637 | id="789" |
10638 | min2=".3" /> | 10638 | group="0" |
10639 | 10639 | wearable="hair" | |
10640 | <driven | 10640 | edit_group="hair_style" |
10641 | id="151" | 10641 | edit_group_order="14.7" |
10642 | min1=".3" | 10642 | name="Ponytail" |
10643 | max1="1" | 10643 | label_min="Short Ponytail" |
10644 | max2="1" | 10644 | label_max="Long Ponytail" |
10645 | min2="1" /> | 10645 | value_min="0" |
10646 | 10646 | value_max="1" | |
10647 | <driven | 10647 | value_default="0" |
10648 | id="852" | 10648 | camera_elevation=".1" |
10649 | min1=".3" | 10649 | camera_distance=".5" |
10650 | max1="1" | 10650 | camera_angle="180"> |
10651 | max2="1" | 10651 | <param_driver> |
10652 | min2="1" /> | 10652 | <driven |
10653 | </param_driver> | 10653 | id="786" |
10654 | </param> | 10654 | min1="0" |
10655 | 10655 | max1=".10" | |
10656 | <param | 10656 | max2=".10" |
10657 | id="841" | 10657 | min2=".66" /> |
10658 | group="0" | 10658 | |
10659 | name="Bowed_Legs" | 10659 | <driven |
10660 | label="Knee Angle" | 10660 | id="787" |
10661 | wearable="shape" | 10661 | min1=".10" |
10662 | edit_group_order="5.5" | 10662 | max1=".66" |
10663 | edit_group="shape_legs" | 10663 | max2=".66" |
10664 | label_min="Knock Kneed" | 10664 | min2="1" /> |
10665 | label_max="Bow Legged" | 10665 | |
10666 | value_min="-1" | 10666 | <driven |
10667 | value_max="1" | 10667 | id="788" |
10668 | value_default="0" | 10668 | min1=".66" |
10669 | camera_distance="1.3" | 10669 | max1="1" |
10670 | camera_elevation="-.5"> | 10670 | max2="1" |
10671 | <param_driver> | 10671 | min2="1" /> |
10672 | <driven | 10672 | </param_driver> |
10673 | id="853" /> | 10673 | </param> |
10674 | 10674 | ||
10675 | <driven | 10675 | <param |
10676 | id="847" /> | 10676 | id="795" |
10677 | </param_driver> | 10677 | group="0" |
10678 | </param> | 10678 | name="Butt Size" |
10679 | 10679 | label="Butt Size" | |
10680 | <param | 10680 | wearable="shape" |
10681 | id="753" | 10681 | edit_group="shape_legs" |
10682 | group="0" | 10682 | edit_group_order="4" |
10683 | name="Saddlebags" | 10683 | label_min="Flat Butt" |
10684 | label="Saddle Bags" | 10684 | label_max="Big Butt" |
10685 | wearable="shape" | 10685 | value_min="0" |
10686 | edit_group="shape_legs" | 10686 | value_max="1" |
10687 | edit_group_order="5" | 10687 | value_default=".25" |
10688 | label_min="Less Saddle" | 10688 | camera_angle="180" |
10689 | label_max="More Saddle" | 10689 | camera_distance=".6"> |
10690 | value_min="-0.5" | 10690 | <param_driver> |
10691 | value_max="3" | 10691 | <driven |
10692 | value_default="0" | 10692 | id="867" |
10693 | camera_angle="0" | 10693 | min1="0" |
10694 | camera_distance="1.2"> | 10694 | max1="0" |
10695 | <param_driver> | 10695 | max2="0" |
10696 | <driven | 10696 | min2=".3" /> |
10697 | id="850" /> | 10697 | |
10698 | 10698 | <driven | |
10699 | <driven | 10699 | id="794" |
10700 | id="854" /> | 10700 | min1="0" |
10701 | </param_driver> | 10701 | max1="0" |
10702 | </param> | 10702 | max2="0" |
10703 | 10703 | min2=".3" /> | |
10704 | <param | 10704 | |
10705 | id="676" | 10705 | <driven |
10706 | group="0" | 10706 | id="151" |
10707 | name="Love_Handles" | 10707 | min1=".3" |
10708 | label="Love Handles" | 10708 | max1="1" |
10709 | wearable="shape" | 10709 | max2="1" |
10710 | edit_group="shape_torso" | 10710 | min2="1" /> |
10711 | edit_group_order="12" | 10711 | |
10712 | label_min="Less Love" | 10712 | <driven |
10713 | label_max="More Love" | 10713 | id="852" |
10714 | value_min="-1" | 10714 | min1=".3" |
10715 | value_max="2" | 10715 | max1="1" |
10716 | value_default="0" | 10716 | max2="1" |
10717 | camera_elevation=".3" | 10717 | min2="1" /> |
10718 | camera_distance=".9"> | 10718 | </param_driver> |
10719 | <param_driver> | 10719 | </param> |
10720 | <driven | 10720 | |
10721 | id="855" /> | 10721 | <param |
10722 | 10722 | id="841" | |
10723 | <driven | 10723 | group="0" |
10724 | id="856" /> | 10724 | name="Bowed_Legs" |
10725 | </param_driver> | 10725 | label="Knee Angle" |
10726 | </param> | 10726 | wearable="shape" |
10727 | 10727 | edit_group_order="5.5" | |
10728 | <param | 10728 | edit_group="shape_legs" |
10729 | id="863" | 10729 | label_min="Knock Kneed" |
10730 | group="0" | 10730 | label_max="Bow Legged" |
10731 | name="skirt_looseness" | 10731 | value_min="-1" |
10732 | label="Skirt Fit" | 10732 | value_max="1" |
10733 | show_simple="true" | 10733 | value_default="0" |
10734 | clothing_morph="true" | 10734 | camera_distance="1.3" |
10735 | wearable="skirt" | 10735 | camera_elevation="-.5"> |
10736 | edit_group_order="2" | 10736 | <param_driver> |
10737 | edit_group="skirt" | 10737 | <driven |
10738 | label_min="Tight Skirt" | 10738 | id="853" /> |
10739 | label_max="Poofy Skirt" | 10739 | |
10740 | value_min="0" | 10740 | <driven |
10741 | value_max="1" | 10741 | id="847" /> |
10742 | value_default=".333" | 10742 | </param_driver> |
10743 | camera_distance="1.3" | 10743 | </param> |
10744 | camera_elevation="-.5"> | 10744 | |
10745 | <param_driver> | 10745 | <param |
10746 | <driven | 10746 | id="753" |
10747 | id="866" | 10747 | group="0" |
10748 | min1="0" | 10748 | name="Saddlebags" |
10749 | max1="0" | 10749 | label="Saddle Bags" |
10750 | max2="0" | 10750 | wearable="shape" |
10751 | min2=".2" /> | 10751 | edit_group="shape_legs" |
10752 | 10752 | edit_group_order="5" | |
10753 | <driven | 10753 | label_min="Less Saddle" |
10754 | id="846" | 10754 | label_max="More Saddle" |
10755 | min1="0" | 10755 | value_min="-0.5" |
10756 | max1=".5" | 10756 | value_max="3" |
10757 | max2=".5" | 10757 | value_default="0" |
10758 | min2="1" /> | 10758 | camera_angle="0" |
10759 | 10759 | camera_distance="1.2"> | |
10760 | <driven | 10760 | <param_driver> |
10761 | id="845" | 10761 | <driven |
10762 | min1=".5" | 10762 | id="850" /> |
10763 | max1="1" | 10763 | |
10764 | max2="1" | 10764 | <driven |
10765 | min2="1" /> | 10765 | id="854" /> |
10766 | </param_driver> | 10766 | </param_driver> |
10767 | </param> | 10767 | </param> |
10768 | 10768 | ||
10769 | <param | 10769 | <param |
10770 | id="119" | 10770 | id="676" |
10771 | group="0" | 10771 | group="0" |
10772 | wearable="hair" | 10772 | name="Love_Handles" |
10773 | edit_group="hair_eyebrows" | 10773 | label="Love Handles" |
10774 | edit_group_order="1" | 10774 | wearable="shape" |
10775 | name="Eyebrow Size" | 10775 | edit_group="shape_torso" |
10776 | show_simple="true" | 10776 | edit_group_order="12" |
10777 | label_min="Thin Eyebrows" | 10777 | label_min="Less Love" |
10778 | label_max="Bushy Eyebrows" | 10778 | label_max="More Love" |
10779 | value_min="0" | 10779 | value_min="-1" |
10780 | value_max="1" | 10780 | value_max="2" |
10781 | value_default="0.5" | 10781 | value_default="0" |
10782 | camera_elevation=".1" | 10782 | camera_elevation=".3" |
10783 | camera_distance=".3"> | 10783 | camera_distance=".9"> |
10784 | <param_driver> | 10784 | <param_driver> |
10785 | <driven | 10785 | <driven |
10786 | id="1000" /> | 10786 | id="855" /> |
10787 | 10787 | ||
10788 | <driven | 10788 | <driven |
10789 | id="1001" /> | 10789 | id="856" /> |
10790 | </param_driver> | 10790 | </param_driver> |
10791 | </param> | 10791 | </param> |
10792 | 10792 | ||
10793 | <param | 10793 | <param |
10794 | id="750" | 10794 | id="863" |
10795 | group="0" | 10795 | group="0" |
10796 | wearable="hair" | 10796 | name="skirt_looseness" |
10797 | edit_group="hair_eyebrows" | 10797 | label="Skirt Fit" |
10798 | edit_group_order="2" | 10798 | show_simple="true" |
10799 | name="Eyebrow Density" | 10799 | clothing_morph="true" |
10800 | label_min="Sparse" | 10800 | wearable="skirt" |
10801 | label_max="Dense" | 10801 | edit_group_order="2" |
10802 | value_min="0" | 10802 | edit_group="skirt" |
10803 | value_max="1" | 10803 | label_min="Tight Skirt" |
10804 | value_default="0.7" | 10804 | label_max="Poofy Skirt" |
10805 | camera_elevation=".1" | 10805 | value_min="0" |
10806 | camera_distance=".3"> | 10806 | value_max="1" |
10807 | <param_driver> | 10807 | value_default=".333" |
10808 | <driven | 10808 | camera_distance="1.3" |
10809 | id="1002" /> | 10809 | camera_elevation="-.5"> |
10810 | 10810 | <param_driver> | |
10811 | <driven | 10811 | <driven |
10812 | id="1003" /> | 10812 | id="866" |
10813 | </param_driver> | 10813 | min1="0" |
10814 | </param> | 10814 | max1="0" |
10815 | 10815 | max2="0" | |
10816 | <param | 10816 | min2=".2" /> |
10817 | id="166" | 10817 | |
10818 | sex="male" | 10818 | <driven |
10819 | group="0" | 10819 | id="846" |
10820 | wearable="hair" | 10820 | min1="0" |
10821 | edit_group="hair_facial" | 10821 | max1=".5" |
10822 | edit_group_order="2" | 10822 | max2=".5" |
10823 | name="Sideburns" | 10823 | min2="1" /> |
10824 | show_simple="true" | 10824 | |
10825 | label_min="Short Sideburns" | 10825 | <driven |
10826 | label_max="Mutton Chops" | 10826 | id="845" |
10827 | value_min="0" | 10827 | min1=".5" |
10828 | value_max="1" | 10828 | max1="1" |
10829 | value_default="0.0" | 10829 | max2="1" |
10830 | camera_elevation=".1" | 10830 | min2="1" /> |
10831 | camera_distance=".3" | 10831 | </param_driver> |
10832 | camera_angle="30"> | 10832 | </param> |
10833 | <param_driver> | 10833 | |
10834 | <driven | 10834 | <param |
10835 | id="1004" /> | 10835 | id="119" |
10836 | 10836 | group="0" | |
10837 | <driven | 10837 | wearable="hair" |
10838 | id="1005" /> | 10838 | edit_group="hair_eyebrows" |
10839 | </param_driver> | 10839 | edit_group_order="1" |
10840 | </param> | 10840 | name="Eyebrow Size" |
10841 | 10841 | show_simple="true" | |
10842 | <param | 10842 | label_min="Thin Eyebrows" |
10843 | id="167" | 10843 | label_max="Bushy Eyebrows" |
10844 | sex="male" | 10844 | value_min="0" |
10845 | group="0" | 10845 | value_max="1" |
10846 | wearable="hair" | 10846 | value_default="0.5" |
10847 | edit_group="hair_facial" | 10847 | camera_elevation=".1" |
10848 | edit_group_order="3" | 10848 | camera_distance=".3"> |
10849 | name="Moustache" | 10849 | <param_driver> |
10850 | show_simple="true" | 10850 | <driven |
10851 | label_min="Chaplin" | 10851 | id="1000" /> |
10852 | label_max="Handlebars" | 10852 | |
10853 | value_min="0" | 10853 | <driven |
10854 | value_max="1" | 10854 | id="1001" /> |
10855 | value_default="0.0" | 10855 | </param_driver> |
10856 | camera_elevation=".1" | 10856 | </param> |
10857 | camera_distance=".3" | 10857 | |
10858 | camera_angle="30"> | 10858 | <param |
10859 | <param_driver> | 10859 | id="750" |
10860 | <driven | 10860 | group="0" |
10861 | id="1006" /> | 10861 | wearable="hair" |
10862 | 10862 | edit_group="hair_eyebrows" | |
10863 | <driven | 10863 | edit_group_order="2" |
10864 | id="1007" /> | 10864 | name="Eyebrow Density" |
10865 | </param_driver> | 10865 | label_min="Sparse" |
10866 | </param> | 10866 | label_max="Dense" |
10867 | 10867 | value_min="0" | |
10868 | <param | 10868 | value_max="1" |
10869 | id="168" | 10869 | value_default="0.7" |
10870 | sex="male" | 10870 | camera_elevation=".1" |
10871 | group="0" | 10871 | camera_distance=".3"> |
10872 | wearable="hair" | 10872 | <param_driver> |
10873 | edit_group="hair_facial" | 10873 | <driven |
10874 | edit_group_order="5" | 10874 | id="1002" /> |
10875 | name="Soulpatch" | 10875 | |
10876 | show_simple="true" | 10876 | <driven |
10877 | label_min="Less soul" | 10877 | id="1003" /> |
10878 | label_max="More soul" | 10878 | </param_driver> |
10879 | value_min="0" | 10879 | </param> |
10880 | value_max="1" | 10880 | |
10881 | value_default="0.0" | 10881 | <param |
10882 | camera_elevation="-.1" | 10882 | id="166" |
10883 | camera_distance=".3" | 10883 | sex="male" |
10884 | camera_angle="0"> | 10884 | group="0" |
10885 | <param_driver> | 10885 | wearable="hair" |
10886 | <driven | 10886 | edit_group="hair_facial" |
10887 | id="1008" /> | 10887 | edit_group_order="2" |
10888 | 10888 | name="Sideburns" | |
10889 | <driven | 10889 | show_simple="true" |
10890 | id="1009" /> | 10890 | label_min="Short Sideburns" |
10891 | </param_driver> | 10891 | label_max="Mutton Chops" |
10892 | </param> | 10892 | value_min="0" |
10893 | 10893 | value_max="1" | |
10894 | <param | 10894 | value_default="0.0" |
10895 | id="169" | 10895 | camera_elevation=".1" |
10896 | sex="male" | 10896 | camera_distance=".3" |
10897 | group="0" | 10897 | camera_angle="30"> |
10898 | wearable="hair" | 10898 | <param_driver> |
10899 | edit_group="hair_facial" | 10899 | <driven |
10900 | edit_group_order="4" | 10900 | id="1004" /> |
10901 | name="Chin Curtains" | 10901 | |
10902 | show_simple="true" | 10902 | <driven |
10903 | label_min="Less Curtains" | 10903 | id="1005" /> |
10904 | label_max="More Curtains" | 10904 | </param_driver> |
10905 | value_min="0" | 10905 | </param> |
10906 | value_max="1" | 10906 | |
10907 | value_default="0.0" | 10907 | <param |
10908 | camera_elevation="-.1" | 10908 | id="167" |
10909 | camera_distance=".3" | 10909 | sex="male" |
10910 | camera_angle="45"> | 10910 | group="0" |
10911 | <param_driver> | 10911 | wearable="hair" |
10912 | <driven | 10912 | edit_group="hair_facial" |
10913 | id="1010" /> | 10913 | edit_group_order="3" |
10914 | 10914 | name="Moustache" | |
10915 | <driven | 10915 | show_simple="true" |
10916 | id="1011" /> | 10916 | label_min="Chaplin" |
10917 | </param_driver> | 10917 | label_max="Handlebars" |
10918 | </param> | 10918 | value_min="0" |
10919 | 10919 | value_max="1" | |
10920 | <param | 10920 | value_default="0.0" |
10921 | id="606" | 10921 | camera_elevation=".1" |
10922 | group="0" | 10922 | camera_distance=".3" |
10923 | wearable="jacket" | 10923 | camera_angle="30"> |
10924 | edit_group="jacket" | 10924 | <param_driver> |
10925 | edit_group_order="1" | 10925 | <driven |
10926 | name="Sleeve Length" | 10926 | id="1006" /> |
10927 | label_min="Short" | 10927 | |
10928 | label_max="Long" | 10928 | <driven |
10929 | value_min="0" | 10929 | id="1007" /> |
10930 | value_max="1" | 10930 | </param_driver> |
10931 | value_default=".8" | 10931 | </param> |
10932 | camera_distance="1.2" | 10932 | |
10933 | camera_angle="30" | 10933 | <param |
10934 | camera_elevation=".2"> | 10934 | id="168" |
10935 | <param_driver> | 10935 | sex="male" |
10936 | <driven | 10936 | group="0" |
10937 | id="1019" /> | 10937 | wearable="hair" |
10938 | 10938 | edit_group="hair_facial" | |
10939 | <driven | 10939 | edit_group_order="5" |
10940 | id="1039" /> | 10940 | name="Soulpatch" |
10941 | 10941 | show_simple="true" | |
10942 | <driven | 10942 | label_min="Less soul" |
10943 | id="1020" /> | 10943 | label_max="More soul" |
10944 | </param_driver> | 10944 | value_min="0" |
10945 | </param> | 10945 | value_max="1" |
10946 | 10946 | value_default="0.0" | |
10947 | <param | 10947 | camera_elevation="-.1" |
10948 | id="607" | 10948 | camera_distance=".3" |
10949 | group="0" | 10949 | camera_angle="0"> |
10950 | wearable="jacket" | 10950 | <param_driver> |
10951 | edit_group="jacket" | 10951 | <driven |
10952 | edit_group_order="3" | 10952 | id="1008" /> |
10953 | name="Collar Front" | 10953 | |
10954 | label_min="Low" | 10954 | <driven |
10955 | label_max="High" | 10955 | id="1009" /> |
10956 | value_min="0" | 10956 | </param_driver> |
10957 | value_max="1" | 10957 | </param> |
10958 | value_default=".8" | 10958 | |
10959 | camera_distance="1.2" | 10959 | <param |
10960 | camera_angle="15" | 10960 | id="169" |
10961 | camera_elevation=".2"> | 10961 | sex="male" |
10962 | <param_driver> | 10962 | group="0" |
10963 | <driven | 10963 | wearable="hair" |
10964 | id="1021" /> | 10964 | edit_group="hair_facial" |
10965 | 10965 | edit_group_order="4" | |
10966 | <driven | 10966 | name="Chin Curtains" |
10967 | id="1040" /> | 10967 | show_simple="true" |
10968 | 10968 | label_min="Less Curtains" | |
10969 | <driven | 10969 | label_max="More Curtains" |
10970 | id="1022" /> | 10970 | value_min="0" |
10971 | </param_driver> | 10971 | value_max="1" |
10972 | </param> | 10972 | value_default="0.0" |
10973 | 10973 | camera_elevation="-.1" | |
10974 | <param | 10974 | camera_distance=".3" |
10975 | id="780" | 10975 | camera_angle="45"> |
10976 | group="0" | 10976 | <param_driver> |
10977 | wearable="jacket" | 10977 | <driven |
10978 | edit_group="jacket" | 10978 | id="1010" /> |
10979 | edit_group_order="3.5" | 10979 | |
10980 | name="Collar Back" | 10980 | <driven |
10981 | label_min="Low" | 10981 | id="1011" /> |
10982 | label_max="High" | 10982 | </param_driver> |
10983 | value_min="0" | 10983 | </param> |
10984 | value_max="1" | 10984 | |
10985 | value_default=".8" | 10985 | <param |
10986 | camera_distance="1.2" | 10986 | id="606" |
10987 | camera_angle="195" | 10987 | group="0" |
10988 | camera_elevation=".2"> | 10988 | wearable="jacket" |
10989 | <param_driver> | 10989 | edit_group="jacket" |
10990 | <driven | 10990 | edit_group_order="1" |
10991 | id="1023" /> | 10991 | name="Sleeve Length" |
10992 | 10992 | label_min="Short" | |
10993 | <driven | 10993 | label_max="Long" |
10994 | id="1041" /> | 10994 | value_min="0" |
10995 | 10995 | value_max="1" | |
10996 | <driven | 10996 | value_default=".8" |
10997 | id="1024" /> | 10997 | camera_distance="1.2" |
10998 | </param_driver> | 10998 | camera_angle="30" |
10999 | </param> | 10999 | camera_elevation=".2"> |
11000 | 11000 | <param_driver> | |
11001 | <param | 11001 | <driven |
11002 | id="603" | 11002 | id="1019" /> |
11003 | group="0" | 11003 | |
11004 | wearable="undershirt" | 11004 | <driven |
11005 | edit_group="undershirt" | 11005 | id="1039" /> |
11006 | edit_group_order="1" | 11006 | |
11007 | name="Sleeve Length" | 11007 | <driven |
11008 | label_min="Short" | 11008 | id="1020" /> |
11009 | label_max="Long" | 11009 | </param_driver> |
11010 | value_min=".01" | 11010 | </param> |
11011 | value_max="1" | 11011 | |
11012 | value_default=".4" | 11012 | <param |
11013 | camera_distance="1.2" | 11013 | id="607" |
11014 | camera_angle="30" | 11014 | group="0" |
11015 | camera_elevation=".2"> | 11015 | wearable="jacket" |
11016 | <param_driver> | 11016 | edit_group="jacket" |
11017 | <driven | 11017 | edit_group_order="3" |
11018 | id="1042" /> | 11018 | name="Collar Front" |
11019 | 11019 | label_min="Low" | |
11020 | <driven | 11020 | label_max="High" |
11021 | id="1043" /> | 11021 | value_min="0" |
11022 | </param_driver> | 11022 | value_max="1" |
11023 | </param> | 11023 | value_default=".8" |
11024 | 11024 | camera_distance="1.2" | |
11025 | <param | 11025 | camera_angle="15" |
11026 | id="604" | 11026 | camera_elevation=".2"> |
11027 | group="0" | 11027 | <param_driver> |
11028 | wearable="undershirt" | 11028 | <driven |
11029 | edit_group="undershirt" | 11029 | id="1021" /> |
11030 | edit_group_order="2" | 11030 | |
11031 | name="Bottom" | 11031 | <driven |
11032 | label_min="Short" | 11032 | id="1040" /> |
11033 | label_max="Long" | 11033 | |
11034 | value_min="0" | 11034 | <driven |
11035 | value_max="1" | 11035 | id="1022" /> |
11036 | value_default=".85" | 11036 | </param_driver> |
11037 | camera_distance="1.2" | 11037 | </param> |
11038 | camera_angle="30" | 11038 | |
11039 | camera_elevation=".2"> | 11039 | <param |
11040 | <param_driver> | 11040 | id="780" |
11041 | <driven | 11041 | group="0" |
11042 | id="1044" /> | 11042 | wearable="jacket" |
11043 | 11043 | edit_group="jacket" | |
11044 | <driven | 11044 | edit_group_order="3.5" |
11045 | id="1045" /> | 11045 | name="Collar Back" |
11046 | </param_driver> | 11046 | label_min="Low" |
11047 | </param> | 11047 | label_max="High" |
11048 | 11048 | value_min="0" | |
11049 | <param | 11049 | value_max="1" |
11050 | id="605" | 11050 | value_default=".8" |
11051 | group="0" | 11051 | camera_distance="1.2" |
11052 | wearable="undershirt" | 11052 | camera_angle="195" |
11053 | edit_group="undershirt" | 11053 | camera_elevation=".2"> |
11054 | edit_group_order="3" | 11054 | <param_driver> |
11055 | name="Collar Front" | 11055 | <driven |
11056 | label_min="Low" | 11056 | id="1023" /> |
11057 | label_max="High" | 11057 | |
11058 | value_min="0" | 11058 | <driven |
11059 | value_max="1" | 11059 | id="1041" /> |
11060 | value_default=".84" | 11060 | |
11061 | camera_distance=".8" | 11061 | <driven |
11062 | camera_angle="15" | 11062 | id="1024" /> |
11063 | camera_elevation=".2"> | 11063 | </param_driver> |
11064 | <param_driver> | 11064 | </param> |
11065 | <driven | 11065 | |
11066 | id="1046" /> | 11066 | <param |
11067 | 11067 | id="603" | |
11068 | <driven | 11068 | group="0" |
11069 | id="1047" /> | 11069 | wearable="undershirt" |
11070 | </param_driver> | 11070 | edit_group="undershirt" |
11071 | </param> | 11071 | edit_group_order="1" |
11072 | 11072 | name="Sleeve Length" | |
11073 | <param | 11073 | label_min="Short" |
11074 | id="779" | 11074 | label_max="Long" |
11075 | group="0" | 11075 | value_min=".01" |
11076 | wearable="undershirt" | 11076 | value_max="1" |
11077 | edit_group="undershirt" | 11077 | value_default=".4" |
11078 | edit_group_order="4" | 11078 | camera_distance="1.2" |
11079 | name="Collar Back" | 11079 | camera_angle="30" |
11080 | label_min="Low" | 11080 | camera_elevation=".2"> |
11081 | label_max="High" | 11081 | <param_driver> |
11082 | value_min="0" | 11082 | <driven |
11083 | value_max="1" | 11083 | id="1042" /> |
11084 | value_default=".84" | 11084 | |
11085 | camera_distance=".8" | 11085 | <driven |
11086 | camera_angle="195" | 11086 | id="1043" /> |
11087 | camera_elevation=".2"> | 11087 | </param_driver> |
11088 | <param_driver> | 11088 | </param> |
11089 | <driven | 11089 | |
11090 | id="1048" /> | 11090 | <param |
11091 | 11091 | id="604" | |
11092 | <driven | 11092 | group="0" |
11093 | id="1049" /> | 11093 | wearable="undershirt" |
11094 | </param_driver> | 11094 | edit_group="undershirt" |
11095 | </param> | 11095 | edit_group_order="2" |
11096 | 11096 | name="Bottom" | |
11097 | <param | 11097 | label_min="Short" |
11098 | id="617" | 11098 | label_max="Long" |
11099 | group="0" | 11099 | value_min="0" |
11100 | wearable="socks" | 11100 | value_max="1" |
11101 | edit_group="socks" | 11101 | value_default=".85" |
11102 | name="Socks Length" | 11102 | camera_distance="1.2" |
11103 | label_min="Short" | 11103 | camera_angle="30" |
11104 | label_max="Long" | 11104 | camera_elevation=".2"> |
11105 | value_min="0" | 11105 | <param_driver> |
11106 | value_max="1" | 11106 | <driven |
11107 | value_default="0.35" | 11107 | id="1044" /> |
11108 | camera_distance=".95" | 11108 | |
11109 | camera_angle="30" | 11109 | <driven |
11110 | camera_elevation="-.75"> | 11110 | id="1045" /> |
11111 | <param_driver> | 11111 | </param_driver> |
11112 | <driven | 11112 | </param> |
11113 | id="1050" /> | 11113 | |
11114 | 11114 | <param | |
11115 | <driven | 11115 | id="605" |
11116 | id="1051" /> | 11116 | group="0" |
11117 | </param_driver> | 11117 | wearable="undershirt" |
11118 | </param> | 11118 | edit_group="undershirt" |
11119 | 11119 | edit_group_order="3" | |
11120 | <param | 11120 | name="Collar Front" |
11121 | id="616" | 11121 | label_min="Low" |
11122 | group="0" | 11122 | label_max="High" |
11123 | wearable="shoes" | 11123 | value_min="0" |
11124 | edit_group="shoes" | 11124 | value_max="1" |
11125 | edit_group_order="1" | 11125 | value_default=".84" |
11126 | name="Shoe Height" | 11126 | camera_distance=".8" |
11127 | label_min="Short" | 11127 | camera_angle="15" |
11128 | label_max="Tall" | 11128 | camera_elevation=".2"> |
11129 | value_min="0" | 11129 | <param_driver> |
11130 | value_max="1" | 11130 | <driven |
11131 | value_default="0.1" | 11131 | id="1046" /> |
11132 | camera_distance="1.2" | 11132 | |
11133 | camera_angle="30" | 11133 | <driven |
11134 | camera_elevation="-.75"> | 11134 | id="1047" /> |
11135 | <param_driver> | 11135 | </param_driver> |
11136 | <driven | 11136 | </param> |
11137 | id="1052" /> | 11137 | |
11138 | 11138 | <param | |
11139 | <driven | 11139 | id="779" |
11140 | id="1053" /> | 11140 | group="0" |
11141 | </param_driver> | 11141 | wearable="undershirt" |
11142 | </param> | 11142 | edit_group="undershirt" |
11143 | 11143 | edit_group_order="4" | |
11144 | <param | 11144 | name="Collar Back" |
11145 | id="619" | 11145 | label_min="Low" |
11146 | group="0" | 11146 | label_max="High" |
11147 | wearable="underpants" | 11147 | value_min="0" |
11148 | edit_group="underpants" | 11148 | value_max="1" |
11149 | name="Pants Length" | 11149 | value_default=".84" |
11150 | label_min="Short" | 11150 | camera_distance=".8" |
11151 | label_max="Long" | 11151 | camera_angle="195" |
11152 | value_min="0" | 11152 | camera_elevation=".2"> |
11153 | value_max="1" | 11153 | <param_driver> |
11154 | value_default=".3" | 11154 | <driven |
11155 | camera_distance="1.2" | 11155 | id="1048" /> |
11156 | camera_angle="30" | 11156 | |
11157 | camera_elevation="-.3"> | 11157 | <driven |
11158 | <param_driver> | 11158 | id="1049" /> |
11159 | <driven | 11159 | </param_driver> |
11160 | id="1054" /> | 11160 | </param> |
11161 | 11161 | ||
11162 | <driven | 11162 | <param |
11163 | id="1055" /> | 11163 | id="617" |
11164 | </param_driver> | 11164 | group="0" |
11165 | </param> | 11165 | wearable="socks" |
11166 | 11166 | edit_group="socks" | |
11167 | <param | 11167 | name="Socks Length" |
11168 | id="624" | 11168 | label_min="Short" |
11169 | group="0" | 11169 | label_max="Long" |
11170 | wearable="underpants" | 11170 | value_min="0" |
11171 | edit_group="underpants" | 11171 | value_max="1" |
11172 | name="Pants Waist" | 11172 | value_default="0.35" |
11173 | label_min="Low" | 11173 | camera_distance=".95" |
11174 | label_max="High" | 11174 | camera_angle="30" |
11175 | value_min="0" | 11175 | camera_elevation="-.75"> |
11176 | value_max="1" | 11176 | <param_driver> |
11177 | value_default=".8" | 11177 | <driven |
11178 | camera_distance="1.2" | 11178 | id="1050" /> |
11179 | camera_angle="30" | 11179 | |
11180 | camera_elevation="-.3"> | 11180 | <driven |
11181 | <param_driver> | 11181 | id="1051" /> |
11182 | <driven | 11182 | </param_driver> |
11183 | id="1056" /> | 11183 | </param> |
11184 | 11184 | ||
11185 | <driven | 11185 | <param |
11186 | id="1057" /> | 11186 | id="616" |
11187 | </param_driver> | 11187 | group="0" |
11188 | </param> | 11188 | wearable="shoes" |
11189 | 11189 | edit_group="shoes" | |
11190 | <param | 11190 | edit_group_order="1" |
11191 | id="93" | 11191 | name="Shoe Height" |
11192 | group="0" | 11192 | label_min="Short" |
11193 | wearable="gloves" | 11193 | label_max="Tall" |
11194 | edit_group="gloves" | 11194 | value_min="0" |
11195 | name="Glove Length" | 11195 | value_max="1" |
11196 | label_min="Short" | 11196 | value_default="0.1" |
11197 | label_max="Long" | 11197 | camera_distance="1.2" |
11198 | value_min=".01" | 11198 | camera_angle="30" |
11199 | value_max="1" | 11199 | camera_elevation="-.75"> |
11200 | value_default=".8" | 11200 | <param_driver> |
11201 | camera_distance="1.2" | 11201 | <driven |
11202 | camera_angle="30" | 11202 | id="1052" /> |
11203 | camera_elevation=".2"> | 11203 | |
11204 | <param_driver> | 11204 | <driven |
11205 | <driven | 11205 | id="1053" /> |
11206 | id="1058" /> | 11206 | </param_driver> |
11207 | 11207 | </param> | |
11208 | <driven | 11208 | |
11209 | id="1059" /> | 11209 | <param |
11210 | </param_driver> | 11210 | id="619" |
11211 | </param> | 11211 | group="0" |
11212 | 11212 | wearable="underpants" | |
11213 | <param | 11213 | edit_group="underpants" |
11214 | id="844" | 11214 | name="Pants Length" |
11215 | group="0" | 11215 | label_min="Short" |
11216 | wearable="gloves" | 11216 | label_max="Long" |
11217 | edit_group="gloves" | 11217 | value_min="0" |
11218 | name="Glove Fingers" | 11218 | value_max="1" |
11219 | label_min="Fingerless" | 11219 | value_default=".3" |
11220 | label_max="Fingers" | 11220 | camera_distance="1.2" |
11221 | value_min=".01" | 11221 | camera_angle="30" |
11222 | value_max="1" | 11222 | camera_elevation="-.3"> |
11223 | value_default="1" | 11223 | <param_driver> |
11224 | camera_distance="1.2" | 11224 | <driven |
11225 | camera_angle="30" | 11225 | id="1054" /> |
11226 | camera_elevation=".2"> | 11226 | |
11227 | <param_driver> | 11227 | <driven |
11228 | <driven | 11228 | id="1055" /> |
11229 | id="1060" /> | 11229 | </param_driver> |
11230 | 11230 | </param> | |
11231 | <driven | 11231 | |
11232 | id="1061" /> | 11232 | <param |
11233 | </param_driver> | 11233 | id="624" |
11234 | </param> | 11234 | group="0" |
11235 | 11235 | wearable="underpants" | |
11236 | <!--Pointy eyebrows became a driver/driven param with new max value for backwards compatibility between 1.0 and 1.1--> | 11236 | edit_group="underpants" |
11237 | <param | 11237 | name="Pants Waist" |
11238 | id="16" | 11238 | label_min="Low" |
11239 | group="0" | 11239 | label_max="High" |
11240 | name="Pointy_Eyebrows" | 11240 | value_min="0" |
11241 | label="Eyebrow Points" | 11241 | value_max="1" |
11242 | wearable="hair" | 11242 | value_default=".8" |
11243 | edit_group="hair_eyebrows" | 11243 | camera_distance="1.2" |
11244 | edit_group_order="4" | 11244 | camera_angle="30" |
11245 | label_min="Smooth" | 11245 | camera_elevation="-.3"> |
11246 | label_max="Pointy" | 11246 | <param_driver> |
11247 | value_min="-.5" | 11247 | <driven |
11248 | value_max="3" | 11248 | id="1056" /> |
11249 | camera_elevation=".1" | 11249 | |
11250 | camera_distance=".3"> | 11250 | <driven |
11251 | <param_driver> | 11251 | id="1057" /> |
11252 | <driven | 11252 | </param_driver> |
11253 | id="870" /> | 11253 | </param> |
11254 | </param_driver> | 11254 | |
11255 | </param> | 11255 | <param |
11256 | 11256 | id="93" | |
11257 | <!--Lower eyebrows became a driver/driven param with new min value for backwards compatibility between 1.0 and 1.1--> | 11257 | group="0" |
11258 | <param | 11258 | wearable="gloves" |
11259 | id="757" | 11259 | edit_group="gloves" |
11260 | group="0" | 11260 | name="Glove Length" |
11261 | name="Lower_Eyebrows" | 11261 | label_min="Short" |
11262 | label="Eyebrow Height" | 11262 | label_max="Long" |
11263 | show_simple="true" | 11263 | value_min=".01" |
11264 | wearable="hair" | 11264 | value_max="1" |
11265 | edit_group="hair_eyebrows" | 11265 | value_default=".8" |
11266 | edit_group_order="2.5" | 11266 | camera_distance="1.2" |
11267 | label_min="Higher" | 11267 | camera_angle="30" |
11268 | label_max="Lower" | 11268 | camera_elevation=".2"> |
11269 | value_min="-4" | 11269 | <param_driver> |
11270 | value_max="2" | 11270 | <driven |
11271 | value_default="-1" | 11271 | id="1058" /> |
11272 | camera_elevation=".1" | 11272 | |
11273 | camera_distance=".3"> | 11273 | <driven |
11274 | <param_driver> | 11274 | id="1059" /> |
11275 | <driven | 11275 | </param_driver> |
11276 | id="871" /> | 11276 | </param> |
11277 | </param_driver> | 11277 | |
11278 | </param> | 11278 | <param |
11279 | 11279 | id="844" | |
11280 | <!--Arced eyebrows became a driver/driven param with new max value for backwards compatibility between 1.0 and 1.1--> | 11280 | group="0" |
11281 | <param | 11281 | wearable="gloves" |
11282 | id="31" | 11282 | edit_group="gloves" |
11283 | group="0" | 11283 | name="Glove Fingers" |
11284 | name="Arced_Eyebrows" | 11284 | label_min="Fingerless" |
11285 | label="Eyebrow Arc" | 11285 | label_max="Fingers" |
11286 | wearable="hair" | 11286 | value_min=".01" |
11287 | edit_group="hair_eyebrows" | 11287 | value_max="1" |
11288 | edit_group_order="3" | 11288 | value_default="1" |
11289 | label_min="Flat" | 11289 | camera_distance="1.2" |
11290 | label_max="Arced" | 11290 | camera_angle="30" |
11291 | value_min="0" | 11291 | camera_elevation=".2"> |
11292 | value_max="2" | 11292 | <param_driver> |
11293 | value_default=".5" | 11293 | <driven |
11294 | camera_elevation=".1" | 11294 | id="1060" /> |
11295 | camera_distance=".3"> | 11295 | |
11296 | <param_driver> | 11296 | <driven |
11297 | <driven | 11297 | id="1061" /> |
11298 | id="872" /> | 11298 | </param_driver> |
11299 | </param_driver> | 11299 | </param> |
11300 | </param> | 11300 | |
11301 | 11301 | <!--Pointy eyebrows became a driver/driven param with new max value for backwards compatibility between 1.0 and 1.1--> | |
11302 | <param | 11302 | <param |
11303 | id="877" | 11303 | id="16" |
11304 | group="0" | 11304 | group="0" |
11305 | name="Jacket Wrinkles" | 11305 | name="Pointy_Eyebrows" |
11306 | label="Jacket Wrinkles" | 11306 | label="Eyebrow Points" |
11307 | wearable="jacket" | 11307 | wearable="hair" |
11308 | edit_group="jacket" | 11308 | edit_group="hair_eyebrows" |
11309 | edit_group_order="20" | 11309 | edit_group_order="4" |
11310 | label_min="No Wrinkles" | 11310 | label_min="Smooth" |
11311 | label_max="Wrinkles" | 11311 | label_max="Pointy" |
11312 | value_min="0" | 11312 | value_min="-.5" |
11313 | value_max="1" | 11313 | value_max="3" |
11314 | value_default="0" | 11314 | camera_elevation=".1" |
11315 | camera_elevation=".1" | 11315 | camera_distance=".3"> |
11316 | camera_distance=".3"> | 11316 | <param_driver> |
11317 | <param_driver> | 11317 | <driven |
11318 | <driven | 11318 | id="870" /> |
11319 | id="875" /> | 11319 | </param_driver> |
11320 | 11320 | </param> | |
11321 | <driven | 11321 | |
11322 | id="876" /> | 11322 | <!--Lower eyebrows became a driver/driven param with new min value for backwards compatibility between 1.0 and 1.1--> |
11323 | </param_driver> | 11323 | <param |
11324 | </param> | 11324 | id="757" |
11325 | 11325 | group="0" | |
11326 | </driver_parameters> | 11326 | name="Lower_Eyebrows" |
11327 | </linden_avatar> | 11327 | label="Eyebrow Height" |
11328 | 11328 | show_simple="true" | |
11329 | wearable="hair" | ||
11330 | edit_group="hair_eyebrows" | ||
11331 | edit_group_order="2.5" | ||
11332 | label_min="Higher" | ||
11333 | label_max="Lower" | ||
11334 | value_min="-4" | ||
11335 | value_max="2" | ||
11336 | value_default="-1" | ||
11337 | camera_elevation=".1" | ||
11338 | camera_distance=".3"> | ||
11339 | <param_driver> | ||
11340 | <driven | ||
11341 | id="871" /> | ||
11342 | </param_driver> | ||
11343 | </param> | ||
11344 | |||
11345 | <!--Arced eyebrows became a driver/driven param with new max value for backwards compatibility between 1.0 and 1.1--> | ||
11346 | <param | ||
11347 | id="31" | ||
11348 | group="0" | ||
11349 | name="Arced_Eyebrows" | ||
11350 | label="Eyebrow Arc" | ||
11351 | wearable="hair" | ||
11352 | edit_group="hair_eyebrows" | ||
11353 | edit_group_order="3" | ||
11354 | label_min="Flat" | ||
11355 | label_max="Arced" | ||
11356 | value_min="0" | ||
11357 | value_max="2" | ||
11358 | value_default=".5" | ||
11359 | camera_elevation=".1" | ||
11360 | camera_distance=".3"> | ||
11361 | <param_driver> | ||
11362 | <driven | ||
11363 | id="872" /> | ||
11364 | </param_driver> | ||
11365 | </param> | ||
11366 | |||
11367 | <param | ||
11368 | id="877" | ||
11369 | group="0" | ||
11370 | name="Jacket Wrinkles" | ||
11371 | label="Jacket Wrinkles" | ||
11372 | wearable="jacket" | ||
11373 | edit_group="jacket" | ||
11374 | edit_group_order="20" | ||
11375 | label_min="No Wrinkles" | ||
11376 | label_max="Wrinkles" | ||
11377 | value_min="0" | ||
11378 | value_max="1" | ||
11379 | value_default="0" | ||
11380 | camera_elevation=".1" | ||
11381 | camera_distance=".3"> | ||
11382 | <param_driver> | ||
11383 | <driven | ||
11384 | id="875" /> | ||
11385 | |||
11386 | <driven | ||
11387 | id="876" /> | ||
11388 | </param_driver> | ||
11389 | </param> | ||
11390 | <param id="1071" group="2" wearable="tattoo" edit_group="colorpicker" name="tattoo_red" | ||
11391 | value_min="0" value_max="1" value_default="1"> | ||
11392 | <param_driver> | ||
11393 | <driven id="1062" min1="0" max1="1" max2="1" min2="1" /> | ||
11394 | <driven id="1065" min1="0" max1="1" max2="1" min2="1" /> | ||
11395 | <driven id="1068" min1="0" max1="1" max2="1" min2="1" /> | ||
11396 | </param_driver> | ||
11397 | </param> | ||
11398 | <param id="1072" group="2" wearable="tattoo" edit_group="colorpicker" name="tattoo_green" | ||
11399 | value_min="0" value_max="1" value_default="1"> | ||
11400 | <param_driver> | ||
11401 | <driven id="1063" min1="0" max1="1" max2="1" min2="1" /> | ||
11402 | <driven id="1066" min1="0" max1="1" max2="1" min2="1" /> | ||
11403 | <driven id="1069" min1="0" max1="1" max2="1" min2="1" /> | ||
11404 | </param_driver> | ||
11405 | </param> | ||
11406 | <param id="1073" group="2" wearable="tattoo" edit_group="colorpicker" name="tattoo_blue" | ||
11407 | value_min="0" value_max="1" value_default="1"> | ||
11408 | <param_driver> | ||
11409 | <driven id="1064" min1="0" max1="1" max2="1" min2="1" /> | ||
11410 | <driven id="1067" min1="0" max1="1" max2="1" min2="1" /> | ||
11411 | <driven id="1070" min1="0" max1="1" max2="1" min2="1" /> | ||
11412 | </param_driver> | ||
11413 | </param> | ||
11414 | |||
11415 | </driver_parameters> | ||
11416 | </linden_avatar> | ||
11417 | |||
diff --git a/linden/indra/newview/character/avatar_skeleton.xml b/linden/indra/newview/character/avatar_skeleton.xml index 2c37095..5e73804 100644 --- a/linden/indra/newview/character/avatar_skeleton.xml +++ b/linden/indra/newview/character/avatar_skeleton.xml | |||
@@ -1,74 +1,74 @@ | |||
1 | <?xml version="1.0" encoding="US-ASCII" standalone="yes"?> | 1 | <?xml version="1.0" encoding="US-ASCII" standalone="yes"?> |
2 | <linden_skeleton version="1.0" num_bones="46" num_collision_volumes="19"> | 2 | <linden_skeleton version="1.0" num_bones="46" num_collision_volumes="19"> |
3 | <bone name="mPelvis" pos="0.000 0.000 1.067" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 0.000000 1.067015"> | 3 | <bone name="mPelvis" pos="0.000 0.000 1.067" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 0.000000 1.067015"> |
4 | <collision_volume name="PELVIS" pos = "-0.01 0 -0.02" rot="0.000000 8.00000 0.000000" scale="0.12 0.16 0.17"/> | 4 | <collision_volume name="PELVIS" pos = "-0.01 0 -0.02" rot="0.000000 8.00000 0.000000" scale="0.12 0.16 0.17"/> |
5 | <bone name="mTorso" pos="0.000 0.000 0.084" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 0.000000 0.084073"> | 5 | <bone name="mTorso" pos="0.000 0.000 0.084" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 0.000000 0.084073"> |
6 | <collision_volume name="BELLY" pos = "0.028 0 0.04" rot="0.000000 8.00000 0.000000" scale="0.09 0.13 0.15"/> | 6 | <collision_volume name="BELLY" pos = "0.028 0 0.04" rot="0.000000 8.00000 0.000000" scale="0.09 0.13 0.15"/> |
7 | <bone name="mChest" pos="-0.015 0.000 0.205" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.015368 0.000000 0.204877"> | 7 | <bone name="mChest" pos="-0.015 0.000 0.205" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.015368 0.000000 0.204877"> |
8 | <collision_volume name="CHEST" pos = "0.028 0 0.07" rot="0.000000 -10.00000 0.000000" scale="0.11 0.15 0.2"/> | 8 | <collision_volume name="CHEST" pos = "0.028 0 0.07" rot="0.000000 -10.00000 0.000000" scale="0.11 0.15 0.2"/> |
9 | <bone name="mNeck" pos="-0.010 0.000 0.251" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.009507 0.000000 0.251108"> | 9 | <bone name="mNeck" pos="-0.010 0.000 0.251" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.009507 0.000000 0.251108"> |
10 | <collision_volume name="NECK" pos = "0.0 0 0.02" rot="0.000000 0.000000 0.000000" scale="0.05 0.06 0.08"/> | 10 | <collision_volume name="NECK" pos = "0.0 0 0.02" rot="0.000000 0.000000 0.000000" scale="0.05 0.06 0.08"/> |
11 | <bone name="mHead" pos="0.000 -0.000 0.076" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 -0.000000 0.075630"> | 11 | <bone name="mHead" pos="0.000 -0.000 0.076" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 -0.000000 0.075630"> |
12 | <collision_volume name="HEAD" pos = "0.02 0 0.07" rot="0.000000 0.000000 0.000000" scale="0.11 0.09 0.12"/> | 12 | <collision_volume name="HEAD" pos = "0.02 0 0.07" rot="0.000000 0.000000 0.000000" scale="0.11 0.09 0.12"/> |
13 | <bone name="mSkull" pos="0.000 0.000 0.079" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 0.000000 0.079000"> | 13 | <bone name="mSkull" pos="0.000 0.000 0.079" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 0.000000 0.079000"> |
14 | </bone> | 14 | </bone> |
15 | <bone name="mEyeRight" pos="0.098 -0.036 0.079" rot="0.000000 0.000000 -0.000000" scale="1.000 1.000 1.000" pivot="0.098466 -0.036000 0.079000"> | 15 | <bone name="mEyeRight" pos="0.098 -0.036 0.079" rot="0.000000 0.000000 -0.000000" scale="1.000 1.000 1.000" pivot="0.098466 -0.036000 0.079000"> |
16 | </bone> | 16 | </bone> |
17 | <bone name="mEyeLeft" pos="0.098 0.036 0.079" rot="0.000000 -0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.098461 0.036000 0.079000"> | 17 | <bone name="mEyeLeft" pos="0.098 0.036 0.079" rot="0.000000 -0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.098461 0.036000 0.079000"> |
18 | </bone> | 18 | </bone> |
19 | </bone> | 19 | </bone> |
20 | </bone> | 20 | </bone> |
21 | <bone name="mCollarLeft" pos="-0.021 0.085 0.165" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.020927 0.084665 0.165396"> | 21 | <bone name="mCollarLeft" pos="-0.021 0.085 0.165" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.020927 0.084665 0.165396"> |
22 | <collision_volume name="L_CLAVICLE" pos = "0.02 0 0.02" rot="0.000000 0.00000 0.000000" scale="0.07 0.14 0.05"/> | 22 | <collision_volume name="L_CLAVICLE" pos = "0.02 0 0.02" rot="0.000000 0.00000 0.000000" scale="0.07 0.14 0.05"/> |
23 | <bone name="mShoulderLeft" pos="0.000 0.079 -0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 0.079000 -0.000000"> | 23 | <bone name="mShoulderLeft" pos="0.000 0.079 -0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 0.079000 -0.000000"> |
24 | <collision_volume name="L_UPPER_ARM" pos = "0.0 0.12 0.01" rot="-5.000000 0.00000 0.000000" scale="0.05 0.17 0.05"/> | 24 | <collision_volume name="L_UPPER_ARM" pos = "0.0 0.12 0.01" rot="-5.000000 0.00000 0.000000" scale="0.05 0.17 0.05"/> |
25 | <bone name="mElbowLeft" pos="0.000 0.248 0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 0.248000 0.000000"> | 25 | <bone name="mElbowLeft" pos="0.000 0.248 0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 0.248000 0.000000"> |
26 | <collision_volume name="L_LOWER_ARM" pos = "0.0 0.1 0.0" rot="-3.000000 0.00000 0.000000" scale="0.04 0.14 0.04"/> | 26 | <collision_volume name="L_LOWER_ARM" pos = "0.0 0.1 0.0" rot="-3.000000 0.00000 0.000000" scale="0.04 0.14 0.04"/> |
27 | <bone name="mWristLeft" pos="-0.000 0.205 0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.000000 0.204846 0.000000"> | 27 | <bone name="mWristLeft" pos="-0.000 0.205 0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.000000 0.204846 0.000000"> |
28 | <collision_volume name="L_HAND" pos = "0.01 0.05 0.0" rot="-3.000000 0.00000 -10.000000" scale="0.05 0.08 0.03"/> | 28 | <collision_volume name="L_HAND" pos = "0.01 0.05 0.0" rot="-3.000000 0.00000 -10.000000" scale="0.05 0.08 0.03"/> |
29 | </bone> | 29 | </bone> |
30 | </bone> | 30 | </bone> |
31 | </bone> | 31 | </bone> |
32 | </bone> | 32 | </bone> |
33 | <bone name="mCollarRight" pos="-0.021 -0.085 0.165" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.020927 -0.085000 0.165396"> | 33 | <bone name="mCollarRight" pos="-0.021 -0.085 0.165" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.020927 -0.085000 0.165396"> |
34 | <collision_volume name="R_CLAVICLE" pos = "0.02 0 0.02" rot="0.000000 0.00000 0.000000" scale="0.07 0.14 0.05"/> | 34 | <collision_volume name="R_CLAVICLE" pos = "0.02 0 0.02" rot="0.000000 0.00000 0.000000" scale="0.07 0.14 0.05"/> |
35 | <bone name="mShoulderRight" pos="0.000 -0.079 -0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 -0.079418 -0.000000"> | 35 | <bone name="mShoulderRight" pos="0.000 -0.079 -0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 -0.079418 -0.000000"> |
36 | <collision_volume name="R_UPPER_ARM" pos = "0.0 -0.12 0.01" rot="5.000000 0.00000 0.000000" scale="0.05 0.17 0.05"/> | 36 | <collision_volume name="R_UPPER_ARM" pos = "0.0 -0.12 0.01" rot="5.000000 0.00000 0.000000" scale="0.05 0.17 0.05"/> |
37 | <bone name="mElbowRight" pos="0.000 -0.248 -0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 -0.248000 -0.000000"> | 37 | <bone name="mElbowRight" pos="0.000 -0.248 -0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 -0.248000 -0.000000"> |
38 | <collision_volume name="R_LOWER_ARM" pos = "0.0 -0.1 0.0" rot="3.000000 0.00000 0.000000" scale="0.04 0.14 0.04"/> | 38 | <collision_volume name="R_LOWER_ARM" pos = "0.0 -0.1 0.0" rot="3.000000 0.00000 0.000000" scale="0.04 0.14 0.04"/> |
39 | <bone name="mWristRight" pos="0.000 -0.205 -0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.000000 -0.205000 -0.000000"> | 39 | <bone name="mWristRight" pos="0.000 -0.205 -0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.000000 -0.205000 -0.000000"> |
40 | <collision_volume name="R_HAND" pos = "0.01 -0.05 0.0" rot="3.000000 0.00000 10.000000" scale="0.05 0.08 0.03"/> | 40 | <collision_volume name="R_HAND" pos = "0.01 -0.05 0.0" rot="3.000000 0.00000 10.000000" scale="0.05 0.08 0.03"/> |
41 | </bone> | 41 | </bone> |
42 | </bone> | 42 | </bone> |
43 | </bone> | 43 | </bone> |
44 | </bone> | 44 | </bone> |
45 | </bone> | 45 | </bone> |
46 | </bone> | 46 | </bone> |
47 | <bone name="mHipRight" pos="0.034 -0.129 -0.041" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.033620 -0.128806 -0.041086"> | 47 | <bone name="mHipRight" pos="0.034 -0.129 -0.041" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.033620 -0.128806 -0.041086"> |
48 | <collision_volume name="R_UPPER_LEG" pos = "-0.02 0.05 -0.22" rot="0.000000 0.00000 0.000000" scale="0.09 0.09 0.32"/> | 48 | <collision_volume name="R_UPPER_LEG" pos = "-0.02 0.05 -0.22" rot="0.000000 0.00000 0.000000" scale="0.09 0.09 0.32"/> |
49 | <bone name="mKneeRight" pos="-0.001 0.049 -0.491" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.000780 0.048635 -0.490922"> | 49 | <bone name="mKneeRight" pos="-0.001 0.049 -0.491" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.000780 0.048635 -0.490922"> |
50 | <collision_volume name="R_LOWER_LEG" pos = "-0.02 0.0 -0.2" rot="0.000000 0.00000 0.000000" scale="0.06 0.06 0.25"/> | 50 | <collision_volume name="R_LOWER_LEG" pos = "-0.02 0.0 -0.2" rot="0.000000 0.00000 0.000000" scale="0.06 0.06 0.25"/> |
51 | <bone name="mAnkleRight" pos="-0.029 0.000 -0.468" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.028869 0.000000 -0.468494"> | 51 | <bone name="mAnkleRight" pos="-0.029 0.000 -0.468" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.028869 0.000000 -0.468494"> |
52 | <collision_volume name="R_FOOT" pos = "0.077 0.0 -0.041" rot="0.000000 10.00000 0.000000" scale="0.13 0.05 0.05"/> | 52 | <collision_volume name="R_FOOT" pos = "0.077 0.0 -0.041" rot="0.000000 10.00000 0.000000" scale="0.13 0.05 0.05"/> |
53 | <bone name="mFootRight" pos="0.112 -0.000 -0.061" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.111956 -0.000000 -0.060637"> | 53 | <bone name="mFootRight" pos="0.112 -0.000 -0.061" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.111956 -0.000000 -0.060637"> |
54 | <bone name="mToeRight" pos="0.109 0.000 0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.105399 -0.010408 -0.000104"> | 54 | <bone name="mToeRight" pos="0.109 0.000 0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.105399 -0.010408 -0.000104"> |
55 | </bone> | 55 | </bone> |
56 | </bone> | 56 | </bone> |
57 | </bone> | 57 | </bone> |
58 | </bone> | 58 | </bone> |
59 | </bone> | 59 | </bone> |
60 | <bone name="mHipLeft" pos="0.034 0.127 -0.041" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.033757 0.126765 -0.040998"> | 60 | <bone name="mHipLeft" pos="0.034 0.127 -0.041" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.033757 0.126765 -0.040998"> |
61 | <collision_volume name="L_UPPER_LEG" pos = "-0.02 -0.05 -0.22" rot="0.000000 0.00000 0.000000" scale="0.09 0.09 0.32"/> | 61 | <collision_volume name="L_UPPER_LEG" pos = "-0.02 -0.05 -0.22" rot="0.000000 0.00000 0.000000" scale="0.09 0.09 0.32"/> |
62 | <bone name="mKneeLeft" pos="-0.001 -0.046 -0.491" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.000887 -0.045568 -0.491053"> | 62 | <bone name="mKneeLeft" pos="-0.001 -0.046 -0.491" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.000887 -0.045568 -0.491053"> |
63 | <collision_volume name="L_LOWER_LEG" pos = "-0.02 0.0 -0.2" rot="0.000000 0.00000 0.000000" scale="0.06 0.06 0.25"/> | 63 | <collision_volume name="L_LOWER_LEG" pos = "-0.02 0.0 -0.2" rot="0.000000 0.00000 0.000000" scale="0.06 0.06 0.25"/> |
64 | <bone name="mAnkleLeft" pos="-0.029 0.001 -0.468" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.028887 0.001378 -0.468449"> | 64 | <bone name="mAnkleLeft" pos="-0.029 0.001 -0.468" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.028887 0.001378 -0.468449"> |
65 | <collision_volume name="L_FOOT" pos = "0.077 0.0 -0.041" rot="0.000000 10.00000 0.000000" scale="0.13 0.05 0.05"/> | 65 | <collision_volume name="L_FOOT" pos = "0.077 0.0 -0.041" rot="0.000000 10.00000 0.000000" scale="0.13 0.05 0.05"/> |
66 | <bone name="mFootLeft" pos="0.112 -0.000 -0.061" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.111956 -0.000000 -0.060620"> | 66 | <bone name="mFootLeft" pos="0.112 -0.000 -0.061" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.111956 -0.000000 -0.060620"> |
67 | <bone name="mToeLeft" pos="0.109 0.000 0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.105387 0.008270 0.000871"> | 67 | <bone name="mToeLeft" pos="0.109 0.000 0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.105387 0.008270 0.000871"> |
68 | </bone> | 68 | </bone> |
69 | </bone> | 69 | </bone> |
70 | </bone> | 70 | </bone> |
71 | </bone> | 71 | </bone> |
72 | </bone> | 72 | </bone> |
73 | </bone> | 73 | </bone> |
74 | </linden_skeleton> \ No newline at end of file | 74 | </linden_skeleton> \ No newline at end of file |
diff --git a/linden/indra/newview/character/genepool.xml b/linden/indra/newview/character/genepool.xml index e88dc56..52300c2 100644 --- a/linden/indra/newview/character/genepool.xml +++ b/linden/indra/newview/character/genepool.xml | |||
@@ -1,7107 +1,7107 @@ | |||
1 | <?xml version="1.0" encoding="US-ASCII" standalone="yes"?> | 1 | <?xml version="1.0" encoding="US-ASCII" standalone="yes"?> |
2 | <linden_genepool version="1.0"> | 2 | <linden_genepool version="1.0"> |
3 | <archetype name="M W Skinny"> | 3 | <archetype name="M W Skinny"> |
4 | <!-- wearable: shape --> | 4 | <!-- wearable: shape --> |
5 | <param id="1" name="Big_Brow" value="1.540" /> | 5 | <param id="1" name="Big_Brow" value="1.540" /> |
6 | 6 | ||
7 | <param id="2" name="Nose_Big_Out" value="0.720" /> | 7 | <param id="2" name="Nose_Big_Out" value="0.720" /> |
8 | 8 | ||
9 | <param id="4" name="Broad_Nostrils" value="0.540" /> | 9 | <param id="4" name="Broad_Nostrils" value="0.540" /> |
10 | 10 | ||
11 | <param id="5" name="Cleft_Chin" value="0.960" /> | 11 | <param id="5" name="Cleft_Chin" value="0.960" /> |
12 | 12 | ||
13 | <param id="6" name="Bulbous_Nose_Tip" value="0.820" /> | 13 | <param id="6" name="Bulbous_Nose_Tip" value="0.820" /> |
14 | 14 | ||
15 | <param id="7" name="Weak_Chin" value="-0.260" /> | 15 | <param id="7" name="Weak_Chin" value="-0.260" /> |
16 | 16 | ||
17 | <param id="8" name="Double_Chin" value="1.120" /> | 17 | <param id="8" name="Double_Chin" value="1.120" /> |
18 | 18 | ||
19 | <param id="10" name="Sunken_Cheeks" value="1.780" /> | 19 | <param id="10" name="Sunken_Cheeks" value="1.780" /> |
20 | 20 | ||
21 | <param id="11" name="Noble_Nose_Bridge" value="-0.100" /> | 21 | <param id="11" name="Noble_Nose_Bridge" value="-0.100" /> |
22 | 22 | ||
23 | <param id="12" name="Jowls" value="0.520" /> | 23 | <param id="12" name="Jowls" value="0.520" /> |
24 | 24 | ||
25 | <param id="13" name="Cleft_Chin_Upper" value="0.940" /> | 25 | <param id="13" name="Cleft_Chin_Upper" value="0.940" /> |
26 | 26 | ||
27 | <param id="14" name="High_Cheek_Bones" value="0.550" /> | 27 | <param id="14" name="High_Cheek_Bones" value="0.550" /> |
28 | 28 | ||
29 | <param id="15" name="Ears_Out" value="0.160" /> | 29 | <param id="15" name="Ears_Out" value="0.160" /> |
30 | 30 | ||
31 | <param id="17" name="Square_Jaw" value="-0.060" /> | 31 | <param id="17" name="Square_Jaw" value="-0.060" /> |
32 | 32 | ||
33 | <param id="18" name="Puffy_Upper_Cheeks" value="-0.020" /> | 33 | <param id="18" name="Puffy_Upper_Cheeks" value="-0.020" /> |
34 | 34 | ||
35 | <param id="19" name="Upturned_Nose_Tip" value="-0.630" /> | 35 | <param id="19" name="Upturned_Nose_Tip" value="-0.630" /> |
36 | 36 | ||
37 | <param id="20" name="Bulbous_Nose" value="0.440" /> | 37 | <param id="20" name="Bulbous_Nose" value="0.440" /> |
38 | 38 | ||
39 | <param id="21" name="Upper_Eyelid_Fold" value="0.280" /> | 39 | <param id="21" name="Upper_Eyelid_Fold" value="0.280" /> |
40 | 40 | ||
41 | <param id="22" name="Attached_Earlobes" value="1.000" /> | 41 | <param id="22" name="Attached_Earlobes" value="1.000" /> |
42 | 42 | ||
43 | <param id="23" name="Baggy_Eyes" value="0.980" /> | 43 | <param id="23" name="Baggy_Eyes" value="0.980" /> |
44 | 44 | ||
45 | <param id="24" name="Wide_Eyes" value="-0.030" /> | 45 | <param id="24" name="Wide_Eyes" value="-0.030" /> |
46 | 46 | ||
47 | <param id="25" name="Wide_Lip_Cleft" value="-0.250" /> | 47 | <param id="25" name="Wide_Lip_Cleft" value="-0.250" /> |
48 | 48 | ||
49 | <param id="27" name="Wide_Nose_Bridge" value="-0.030" /> | 49 | <param id="27" name="Wide_Nose_Bridge" value="-0.030" /> |
50 | 50 | ||
51 | <param id="33" name="Height" value="1.440" /> | 51 | <param id="33" name="Height" value="1.440" /> |
52 | 52 | ||
53 | <param id="34" name="Thickness" value="-0.500" /> | 53 | <param id="34" name="Thickness" value="-0.500" /> |
54 | 54 | ||
55 | <param id="35" name="Big_Ears" value="0.590" /> | 55 | <param id="35" name="Big_Ears" value="0.590" /> |
56 | 56 | ||
57 | <param id="36" name="Shoulders" value="0.180" /> | 57 | <param id="36" name="Shoulders" value="0.180" /> |
58 | 58 | ||
59 | <param id="37" name="Hip Width" value="-1.160" /> | 59 | <param id="37" name="Hip Width" value="-1.160" /> |
60 | 60 | ||
61 | <param id="38" name="Torso Length" value="-0.180" /> | 61 | <param id="38" name="Torso Length" value="-0.180" /> |
62 | 62 | ||
63 | <param id="80" name="male" value="1.000" /> | 63 | <param id="80" name="male" value="1.000" /> |
64 | 64 | ||
65 | <param id="105" name="Breast Size" value="0.500" /> | 65 | <param id="105" name="Breast Size" value="0.500" /> |
66 | 66 | ||
67 | <param id="151" name="Big_Butt_Legs" value="-0.110" /> | 67 | <param id="151" name="Big_Butt_Legs" value="-0.110" /> |
68 | 68 | ||
69 | <param id="155" name="Lip Width" value="0.770" /> | 69 | <param id="155" name="Lip Width" value="0.770" /> |
70 | 70 | ||
71 | <param id="157" name="Belly Size" value="0.030" /> | 71 | <param id="157" name="Belly Size" value="0.030" /> |
72 | 72 | ||
73 | <param id="185" name="Deep_Chin" value="-0.320" /> | 73 | <param id="185" name="Deep_Chin" value="-0.320" /> |
74 | 74 | ||
75 | <param id="193" name="Head Shape" value="0.350" /> | 75 | <param id="193" name="Head Shape" value="0.350" /> |
76 | 76 | ||
77 | <param id="196" name="Eye Spacing" value="-0.050" /> | 77 | <param id="196" name="Eye Spacing" value="-0.050" /> |
78 | 78 | ||
79 | <param id="505" name="Lip Thickness" value="0.560" /> | 79 | <param id="505" name="Lip Thickness" value="0.560" /> |
80 | 80 | ||
81 | <param id="506" name="Mouth_Height" value="-0.400" /> | 81 | <param id="506" name="Mouth_Height" value="-0.400" /> |
82 | 82 | ||
83 | <param id="507" name="Breast_Gravity" value="0.000" /> | 83 | <param id="507" name="Breast_Gravity" value="0.000" /> |
84 | 84 | ||
85 | <param id="515" name="Foot_Size" value="1.560" /> | 85 | <param id="515" name="Foot_Size" value="1.560" /> |
86 | 86 | ||
87 | <param id="517" name="Wide_Nose" value="-0.290" /> | 87 | <param id="517" name="Wide_Nose" value="-0.290" /> |
88 | 88 | ||
89 | <param id="518" name="Eyelashes_Long" value="0.640" /> | 89 | <param id="518" name="Eyelashes_Long" value="0.640" /> |
90 | 90 | ||
91 | <param id="629" name="Forehead Angle" value="0.040" /> | 91 | <param id="629" name="Forehead Angle" value="0.040" /> |
92 | 92 | ||
93 | <param id="637" name="Body Fat" value="0.070" /> | 93 | <param id="637" name="Body Fat" value="0.070" /> |
94 | 94 | ||
95 | <param id="646" name="Egg_Head" value="-0.590" /> | 95 | <param id="646" name="Egg_Head" value="-0.590" /> |
96 | 96 | ||
97 | <param id="647" name="Squash_Stretch_Head" value="0.760" /> | 97 | <param id="647" name="Squash_Stretch_Head" value="0.760" /> |
98 | 98 | ||
99 | <param id="649" name="Torso Muscles" value="0.500" /> | 99 | <param id="649" name="Torso Muscles" value="0.500" /> |
100 | 100 | ||
101 | <param id="650" name="Eyelid_Corner_Up" value="-0.250" /> | 101 | <param id="650" name="Eyelid_Corner_Up" value="-0.250" /> |
102 | 102 | ||
103 | <param id="652" name="Leg Muscles" value="0.600" /> | 103 | <param id="652" name="Leg Muscles" value="0.600" /> |
104 | 104 | ||
105 | <param id="653" name="Tall_Lips" value="-1.000" /> | 105 | <param id="653" name="Tall_Lips" value="-1.000" /> |
106 | 106 | ||
107 | <param id="656" name="Crooked_Nose" value="-0.120" /> | 107 | <param id="656" name="Crooked_Nose" value="-0.120" /> |
108 | 108 | ||
109 | <param id="659" name="Mouth Corner" value="0.720" /> | 109 | <param id="659" name="Mouth Corner" value="0.720" /> |
110 | 110 | ||
111 | <param id="662" name="Face Shear" value="0.500" /> | 111 | <param id="662" name="Face Shear" value="0.500" /> |
112 | 112 | ||
113 | <param id="663" name="Shift_Mouth" value="0.000" /> | 113 | <param id="663" name="Shift_Mouth" value="0.000" /> |
114 | 114 | ||
115 | <param id="664" name="Pop_Eye" value="0.230" /> | 115 | <param id="664" name="Pop_Eye" value="0.230" /> |
116 | 116 | ||
117 | <param id="665" name="Jaw_Jut" value="0.040" /> | 117 | <param id="665" name="Jaw_Jut" value="0.040" /> |
118 | 118 | ||
119 | <param id="675" name="Hand Size" value="0.060" /> | 119 | <param id="675" name="Hand Size" value="0.060" /> |
120 | 120 | ||
121 | <param id="676" name="Love_Handles" value="-0.160" /> | 121 | <param id="676" name="Love_Handles" value="-0.160" /> |
122 | 122 | ||
123 | <param id="678" name="Torso Muscles" value="0.550" /> | 123 | <param id="678" name="Torso Muscles" value="0.550" /> |
124 | 124 | ||
125 | <param id="682" name="Head Size" value="0.670" /> | 125 | <param id="682" name="Head Size" value="0.670" /> |
126 | 126 | ||
127 | <param id="683" name="Neck Thickness" value="-0.090" /> | 127 | <param id="683" name="Neck Thickness" value="-0.090" /> |
128 | 128 | ||
129 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> | 129 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> |
130 | 130 | ||
131 | <param id="685" name="Chest_Male_No_Pecs" value="0.280" /> | 131 | <param id="685" name="Chest_Male_No_Pecs" value="0.280" /> |
132 | 132 | ||
133 | <param id="690" name="Eye Size" value="0.470" /> | 133 | <param id="690" name="Eye Size" value="0.470" /> |
134 | 134 | ||
135 | <param id="692" name="Leg Length" value="0.540" /> | 135 | <param id="692" name="Leg Length" value="0.540" /> |
136 | 136 | ||
137 | <param id="693" name="Arm Length" value="0.540" /> | 137 | <param id="693" name="Arm Length" value="0.540" /> |
138 | 138 | ||
139 | <param id="753" name="Saddlebags" value="0.030" /> | 139 | <param id="753" name="Saddlebags" value="0.030" /> |
140 | 140 | ||
141 | <param id="756" name="Neck Length" value="0.240" /> | 141 | <param id="756" name="Neck Length" value="0.240" /> |
142 | 142 | ||
143 | <param id="758" name="Lower_Bridge_Nose" value="0.720" /> | 143 | <param id="758" name="Lower_Bridge_Nose" value="0.720" /> |
144 | 144 | ||
145 | <param id="759" name="Low_Septum_Nose" value="1.200" /> | 145 | <param id="759" name="Low_Septum_Nose" value="1.200" /> |
146 | 146 | ||
147 | <param id="760" name="Jaw_Angle" value="0.910" /> | 147 | <param id="760" name="Jaw_Angle" value="0.910" /> |
148 | 148 | ||
149 | <param id="764" name="Lip_Cleft_Deep" value="0.610" /> | 149 | <param id="764" name="Lip_Cleft_Deep" value="0.610" /> |
150 | 150 | ||
151 | <param id="765" name="Puffy_Lower_Lids" value="0.820" /> | 151 | <param id="765" name="Puffy_Lower_Lids" value="0.820" /> |
152 | 152 | ||
153 | <param id="769" name="Eye Depth" value="0.190" /> | 153 | <param id="769" name="Eye Depth" value="0.190" /> |
154 | 154 | ||
155 | <param id="773" name="Head Length" value="0.370" /> | 155 | <param id="773" name="Head Length" value="0.370" /> |
156 | 156 | ||
157 | <!-- wearable: skin --> | 157 | <!-- wearable: skin --> |
158 | <param id="108" name="Rainbow Color" value="0.000" /> | 158 | <param id="108" name="Rainbow Color" value="0.000" /> |
159 | 159 | ||
160 | <param id="110" name="Red Skin" value="0.097" /> | 160 | <param id="110" name="Red Skin" value="0.097" /> |
161 | 161 | ||
162 | <param id="111" name="Pigment" value="0.120" /> | 162 | <param id="111" name="Pigment" value="0.120" /> |
163 | 163 | ||
164 | <param id="116" name="Rosy Complexion" value="0.320" /> | 164 | <param id="116" name="Rosy Complexion" value="0.320" /> |
165 | 165 | ||
166 | <param id="117" name="Lip Pinkness" value="0.560" /> | 166 | <param id="117" name="Lip Pinkness" value="0.560" /> |
167 | 167 | ||
168 | <param id="150" name="Body Definition" value="0.000" /> | 168 | <param id="150" name="Body Definition" value="0.000" /> |
169 | 169 | ||
170 | <param id="162" name="Facial Definition" value="0.210" /> | 170 | <param id="162" name="Facial Definition" value="0.210" /> |
171 | 171 | ||
172 | <param id="163" name="Wrinkles" value="0.490" /> | 172 | <param id="163" name="Wrinkles" value="0.490" /> |
173 | 173 | ||
174 | <param id="165" name="Freckles" value="0.740" /> | 174 | <param id="165" name="Freckles" value="0.740" /> |
175 | 175 | ||
176 | <param id="700" name="Lipstick Color" value="0.250" /> | 176 | <param id="700" name="Lipstick Color" value="0.250" /> |
177 | 177 | ||
178 | <param id="701" name="Lipstick" value="0.000" /> | 178 | <param id="701" name="Lipstick" value="0.000" /> |
179 | 179 | ||
180 | <param id="702" name="Lipgloss" value="0.000" /> | 180 | <param id="702" name="Lipgloss" value="0.000" /> |
181 | 181 | ||
182 | <param id="703" name="Eyeliner" value="0.000" /> | 182 | <param id="703" name="Eyeliner" value="0.000" /> |
183 | 183 | ||
184 | <param id="704" name="Blush" value="0.000" /> | 184 | <param id="704" name="Blush" value="0.000" /> |
185 | 185 | ||
186 | <param id="705" name="Blush Color" value="0.500" /> | 186 | <param id="705" name="Blush Color" value="0.500" /> |
187 | 187 | ||
188 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 188 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
189 | 189 | ||
190 | <param id="707" name="Outer Shadow" value="0.000" /> | 190 | <param id="707" name="Outer Shadow" value="0.000" /> |
191 | 191 | ||
192 | <param id="708" name="Out Shdw Color" value="0.000" /> | 192 | <param id="708" name="Out Shdw Color" value="0.000" /> |
193 | 193 | ||
194 | <param id="709" name="Inner Shadow" value="0.000" /> | 194 | <param id="709" name="Inner Shadow" value="0.000" /> |
195 | 195 | ||
196 | <param id="710" name="Nail Polish" value="0.000" /> | 196 | <param id="710" name="Nail Polish" value="0.000" /> |
197 | 197 | ||
198 | <param id="711" name="Blush Opacity" value="0.500" /> | 198 | <param id="711" name="Blush Opacity" value="0.500" /> |
199 | 199 | ||
200 | <param id="712" name="In Shdw Color" value="0.000" /> | 200 | <param id="712" name="In Shdw Color" value="0.000" /> |
201 | 201 | ||
202 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 202 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
203 | 203 | ||
204 | <param id="714" name="Eyeliner Color" value="0.000" /> | 204 | <param id="714" name="Eyeliner Color" value="0.000" /> |
205 | 205 | ||
206 | <param id="715" name="Nail Polish Color" value="0.000" /> | 206 | <param id="715" name="Nail Polish Color" value="0.000" /> |
207 | 207 | ||
208 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 208 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
209 | 209 | ||
210 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 210 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
211 | 211 | ||
212 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 212 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
213 | 213 | ||
214 | <!-- wearable: hair --> | 214 | <!-- wearable: hair --> |
215 | <param id="16" name="Pointy_Eyebrows" value="0.810" /> | 215 | <param id="16" name="Pointy_Eyebrows" value="0.810" /> |
216 | 216 | ||
217 | <param id="31" name="Arced_Eyebrows" value="1.000" /> | 217 | <param id="31" name="Arced_Eyebrows" value="1.000" /> |
218 | 218 | ||
219 | <param id="112" name="Rainbow Color" value="0.000" /> | 219 | <param id="112" name="Rainbow Color" value="0.000" /> |
220 | 220 | ||
221 | <param id="113" name="Red Hair" value="0.150" /> | 221 | <param id="113" name="Red Hair" value="0.150" /> |
222 | 222 | ||
223 | <param id="114" name="Blonde Hair" value="0.960" /> | 223 | <param id="114" name="Blonde Hair" value="0.960" /> |
224 | 224 | ||
225 | <param id="115" name="White Hair" value="0.000" /> | 225 | <param id="115" name="White Hair" value="0.000" /> |
226 | 226 | ||
227 | <param id="119" name="Eyebrow Size" value="0.210" /> | 227 | <param id="119" name="Eyebrow Size" value="0.210" /> |
228 | 228 | ||
229 | <param id="130" name="Front Fringe" value="0.580" /> | 229 | <param id="130" name="Front Fringe" value="0.580" /> |
230 | 230 | ||
231 | <param id="131" name="Side Fringe" value="0.370" /> | 231 | <param id="131" name="Side Fringe" value="0.370" /> |
232 | 232 | ||
233 | <param id="132" name="Back Fringe" value="0.480" /> | 233 | <param id="132" name="Back Fringe" value="0.480" /> |
234 | 234 | ||
235 | <param id="133" name="Hair Front" value="0.260" /> | 235 | <param id="133" name="Hair Front" value="0.260" /> |
236 | 236 | ||
237 | <param id="134" name="Hair Sides" value="0.580" /> | 237 | <param id="134" name="Hair Sides" value="0.580" /> |
238 | 238 | ||
239 | <param id="135" name="Hair Back" value="0.570" /> | 239 | <param id="135" name="Hair Back" value="0.570" /> |
240 | 240 | ||
241 | <param id="136" name="Hair Sweep" value="0.370" /> | 241 | <param id="136" name="Hair Sweep" value="0.370" /> |
242 | 242 | ||
243 | <param id="137" name="Hair Tilt" value="0.500" /> | 243 | <param id="137" name="Hair Tilt" value="0.500" /> |
244 | 244 | ||
245 | <param id="140" name="Hair_Part_Middle" value="0.000" /> | 245 | <param id="140" name="Hair_Part_Middle" value="0.000" /> |
246 | 246 | ||
247 | <param id="141" name="Hair_Part_Right" value="1.520" /> | 247 | <param id="141" name="Hair_Part_Right" value="1.520" /> |
248 | 248 | ||
249 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 249 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
250 | 250 | ||
251 | <param id="143" name="Hair_Sides_Full" value="-0.315" /> | 251 | <param id="143" name="Hair_Sides_Full" value="-0.315" /> |
252 | 252 | ||
253 | <param id="166" name="Sideburns" value="0.890" /> | 253 | <param id="166" name="Sideburns" value="0.890" /> |
254 | 254 | ||
255 | <param id="167" name="Moustache" value="0.000" /> | 255 | <param id="167" name="Moustache" value="0.000" /> |
256 | 256 | ||
257 | <param id="168" name="Soulpatch" value="0.260" /> | 257 | <param id="168" name="Soulpatch" value="0.260" /> |
258 | 258 | ||
259 | <param id="169" name="Chin Curtains" value="0.890" /> | 259 | <param id="169" name="Chin Curtains" value="0.890" /> |
260 | 260 | ||
261 | <param id="177" name="Hair_Rumpled" value="0.560" /> | 261 | <param id="177" name="Hair_Rumpled" value="0.560" /> |
262 | 262 | ||
263 | <param id="181" name="Hair_Big_Front" value="-0.060" /> | 263 | <param id="181" name="Hair_Big_Front" value="-0.060" /> |
264 | 264 | ||
265 | <param id="182" name="Hair_Big_Top" value="-0.420" /> | 265 | <param id="182" name="Hair_Big_Top" value="-0.420" /> |
266 | 266 | ||
267 | <param id="183" name="Hair_Big_Back" value="0.000" /> | 267 | <param id="183" name="Hair_Big_Back" value="0.000" /> |
268 | 268 | ||
269 | <param id="184" name="Hair_Spiked" value="0.000" /> | 269 | <param id="184" name="Hair_Spiked" value="0.000" /> |
270 | 270 | ||
271 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 271 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
272 | 272 | ||
273 | <param id="674" name="Hair_Shear_Back" value="0.260" /> | 273 | <param id="674" name="Hair_Shear_Back" value="0.260" /> |
274 | 274 | ||
275 | <param id="750" name="Eyebrow Density" value="0.840" /> | 275 | <param id="750" name="Eyebrow Density" value="0.840" /> |
276 | 276 | ||
277 | <param id="752" name="Hair Thickness" value="0.120" /> | 277 | <param id="752" name="Hair Thickness" value="0.120" /> |
278 | 278 | ||
279 | <param id="754" name="Hair_Taper_Back" value="0.020" /> | 279 | <param id="754" name="Hair_Taper_Back" value="0.020" /> |
280 | 280 | ||
281 | <param id="755" name="Hair_Taper_Front" value="0.000" /> | 281 | <param id="755" name="Hair_Taper_Front" value="0.000" /> |
282 | 282 | ||
283 | <param id="757" name="Lower_Eyebrows" value="2.000" /> | 283 | <param id="757" name="Lower_Eyebrows" value="2.000" /> |
284 | 284 | ||
285 | <param id="762" name="Hair_Shear_Front" value="0.060" /> | 285 | <param id="762" name="Hair_Shear_Front" value="0.060" /> |
286 | 286 | ||
287 | <param id="763" name="Hair Volume" value="0.770" /> | 287 | <param id="763" name="Hair Volume" value="0.770" /> |
288 | 288 | ||
289 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 289 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
290 | 290 | ||
291 | <!-- wearable: eyes --> | 291 | <!-- wearable: eyes --> |
292 | <param id="98" name="Eye Lightness" value="0.260" /> | 292 | <param id="98" name="Eye Lightness" value="0.260" /> |
293 | 293 | ||
294 | <param id="99" name="Eye Color" value="0.420" /> | 294 | <param id="99" name="Eye Color" value="0.420" /> |
295 | 295 | ||
296 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 296 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
297 | </archetype> | 297 | </archetype> |
298 | 298 | ||
299 | <archetype name="M W Old"> | 299 | <archetype name="M W Old"> |
300 | <!-- wearable: shape --> | 300 | <!-- wearable: shape --> |
301 | <param id="1" name="Big_Brow" value="1.680" /> | 301 | <param id="1" name="Big_Brow" value="1.680" /> |
302 | 302 | ||
303 | <param id="2" name="Nose_Big_Out" value="1.250" /> | 303 | <param id="2" name="Nose_Big_Out" value="1.250" /> |
304 | 304 | ||
305 | <param id="4" name="Broad_Nostrils" value="0.340" /> | 305 | <param id="4" name="Broad_Nostrils" value="0.340" /> |
306 | 306 | ||
307 | <param id="5" name="Cleft_Chin" value="0.410" /> | 307 | <param id="5" name="Cleft_Chin" value="0.410" /> |
308 | 308 | ||
309 | <param id="6" name="Bulbous_Nose_Tip" value="0.310" /> | 309 | <param id="6" name="Bulbous_Nose_Tip" value="0.310" /> |
310 | 310 | ||
311 | <param id="7" name="Weak_Chin" value="-0.120" /> | 311 | <param id="7" name="Weak_Chin" value="-0.120" /> |
312 | 312 | ||
313 | <param id="8" name="Double_Chin" value="1.500" /> | 313 | <param id="8" name="Double_Chin" value="1.500" /> |
314 | 314 | ||
315 | <param id="10" name="Sunken_Cheeks" value="1.650" /> | 315 | <param id="10" name="Sunken_Cheeks" value="1.650" /> |
316 | 316 | ||
317 | <param id="11" name="Noble_Nose_Bridge" value="0.160" /> | 317 | <param id="11" name="Noble_Nose_Bridge" value="0.160" /> |
318 | 318 | ||
319 | <param id="12" name="Jowls" value="2.020" /> | 319 | <param id="12" name="Jowls" value="2.020" /> |
320 | 320 | ||
321 | <param id="13" name="Cleft_Chin_Upper" value="0.330" /> | 321 | <param id="13" name="Cleft_Chin_Upper" value="0.330" /> |
322 | 322 | ||
323 | <param id="14" name="High_Cheek_Bones" value="0.200" /> | 323 | <param id="14" name="High_Cheek_Bones" value="0.200" /> |
324 | 324 | ||
325 | <param id="15" name="Ears_Out" value="0.660" /> | 325 | <param id="15" name="Ears_Out" value="0.660" /> |
326 | 326 | ||
327 | <param id="17" name="Square_Jaw" value="-0.500" /> | 327 | <param id="17" name="Square_Jaw" value="-0.500" /> |
328 | 328 | ||
329 | <param id="18" name="Puffy_Upper_Cheeks" value="-1.500" /> | 329 | <param id="18" name="Puffy_Upper_Cheeks" value="-1.500" /> |
330 | 330 | ||
331 | <param id="19" name="Upturned_Nose_Tip" value="-1.350" /> | 331 | <param id="19" name="Upturned_Nose_Tip" value="-1.350" /> |
332 | 332 | ||
333 | <param id="20" name="Bulbous_Nose" value="0.440" /> | 333 | <param id="20" name="Bulbous_Nose" value="0.440" /> |
334 | 334 | ||
335 | <param id="21" name="Upper_Eyelid_Fold" value="0.790" /> | 335 | <param id="21" name="Upper_Eyelid_Fold" value="0.790" /> |
336 | 336 | ||
337 | <param id="22" name="Attached_Earlobes" value="0.000" /> | 337 | <param id="22" name="Attached_Earlobes" value="0.000" /> |
338 | 338 | ||
339 | <param id="23" name="Baggy_Eyes" value="1.500" /> | 339 | <param id="23" name="Baggy_Eyes" value="1.500" /> |
340 | 340 | ||
341 | <param id="24" name="Wide_Eyes" value="-0.340" /> | 341 | <param id="24" name="Wide_Eyes" value="-0.340" /> |
342 | 342 | ||
343 | <param id="25" name="Wide_Lip_Cleft" value="1.270" /> | 343 | <param id="25" name="Wide_Lip_Cleft" value="1.270" /> |
344 | 344 | ||
345 | <param id="27" name="Wide_Nose_Bridge" value="-0.100" /> | 345 | <param id="27" name="Wide_Nose_Bridge" value="-0.100" /> |
346 | 346 | ||
347 | <param id="33" name="Height" value="-0.060" /> | 347 | <param id="33" name="Height" value="-0.060" /> |
348 | 348 | ||
349 | <param id="34" name="Thickness" value="-0.410" /> | 349 | <param id="34" name="Thickness" value="-0.410" /> |
350 | 350 | ||
351 | <param id="35" name="Big_Ears" value="1.430" /> | 351 | <param id="35" name="Big_Ears" value="1.430" /> |
352 | 352 | ||
353 | <param id="36" name="Shoulders" value="-1.800" /> | 353 | <param id="36" name="Shoulders" value="-1.800" /> |
354 | 354 | ||
355 | <param id="37" name="Hip Width" value="-0.380" /> | 355 | <param id="37" name="Hip Width" value="-0.380" /> |
356 | 356 | ||
357 | <param id="38" name="Torso Length" value="0.060" /> | 357 | <param id="38" name="Torso Length" value="0.060" /> |
358 | 358 | ||
359 | <param id="80" name="male" value="1.000" /> | 359 | <param id="80" name="male" value="1.000" /> |
360 | 360 | ||
361 | <param id="105" name="Breast Size" value="0.500" /> | 361 | <param id="105" name="Breast Size" value="0.500" /> |
362 | 362 | ||
363 | <param id="151" name="Big_Butt_Legs" value="-0.230" /> | 363 | <param id="151" name="Big_Butt_Legs" value="-0.230" /> |
364 | 364 | ||
365 | <param id="155" name="Lip Width" value="0.440" /> | 365 | <param id="155" name="Lip Width" value="0.440" /> |
366 | 366 | ||
367 | <param id="157" name="Belly Size" value="0.610" /> | 367 | <param id="157" name="Belly Size" value="0.610" /> |
368 | 368 | ||
369 | <param id="185" name="Deep_Chin" value="0.060" /> | 369 | <param id="185" name="Deep_Chin" value="0.060" /> |
370 | 370 | ||
371 | <param id="193" name="Head Shape" value="0.240" /> | 371 | <param id="193" name="Head Shape" value="0.240" /> |
372 | 372 | ||
373 | <param id="196" name="Eye Spacing" value="0.580" /> | 373 | <param id="196" name="Eye Spacing" value="0.580" /> |
374 | 374 | ||
375 | <param id="505" name="Lip Thickness" value="0.280" /> | 375 | <param id="505" name="Lip Thickness" value="0.280" /> |
376 | 376 | ||
377 | <param id="506" name="Mouth_Height" value="0.680" /> | 377 | <param id="506" name="Mouth_Height" value="0.680" /> |
378 | 378 | ||
379 | <param id="507" name="Breast_Gravity" value="0.000" /> | 379 | <param id="507" name="Breast_Gravity" value="0.000" /> |
380 | 380 | ||
381 | <param id="515" name="Foot_Size" value="2.000" /> | 381 | <param id="515" name="Foot_Size" value="2.000" /> |
382 | 382 | ||
383 | <param id="517" name="Wide_Nose" value="-0.140" /> | 383 | <param id="517" name="Wide_Nose" value="-0.140" /> |
384 | 384 | ||
385 | <param id="518" name="Eyelashes_Long" value="-0.010" /> | 385 | <param id="518" name="Eyelashes_Long" value="-0.010" /> |
386 | 386 | ||
387 | <param id="629" name="Forehead Angle" value="0.080" /> | 387 | <param id="629" name="Forehead Angle" value="0.080" /> |
388 | 388 | ||
389 | <param id="637" name="Body Fat" value="0.220" /> | 389 | <param id="637" name="Body Fat" value="0.220" /> |
390 | 390 | ||
391 | <param id="646" name="Egg_Head" value="0.240" /> | 391 | <param id="646" name="Egg_Head" value="0.240" /> |
392 | 392 | ||
393 | <param id="647" name="Squash_Stretch_Head" value="0.500" /> | 393 | <param id="647" name="Squash_Stretch_Head" value="0.500" /> |
394 | 394 | ||
395 | <param id="649" name="Torso Muscles" value="0.500" /> | 395 | <param id="649" name="Torso Muscles" value="0.500" /> |
396 | 396 | ||
397 | <param id="650" name="Eyelid_Corner_Up" value="-0.520" /> | 397 | <param id="650" name="Eyelid_Corner_Up" value="-0.520" /> |
398 | 398 | ||
399 | <param id="652" name="Leg Muscles" value="0.160" /> | 399 | <param id="652" name="Leg Muscles" value="0.160" /> |
400 | 400 | ||
401 | <param id="653" name="Tall_Lips" value="-1.000" /> | 401 | <param id="653" name="Tall_Lips" value="-1.000" /> |
402 | 402 | ||
403 | <param id="656" name="Crooked_Nose" value="0.680" /> | 403 | <param id="656" name="Crooked_Nose" value="0.680" /> |
404 | 404 | ||
405 | <param id="659" name="Mouth Corner" value="0.210" /> | 405 | <param id="659" name="Mouth Corner" value="0.210" /> |
406 | 406 | ||
407 | <param id="662" name="Face Shear" value="0.570" /> | 407 | <param id="662" name="Face Shear" value="0.570" /> |
408 | 408 | ||
409 | <param id="663" name="Shift_Mouth" value="0.960" /> | 409 | <param id="663" name="Shift_Mouth" value="0.960" /> |
410 | 410 | ||
411 | <param id="664" name="Pop_Eye" value="-0.340" /> | 411 | <param id="664" name="Pop_Eye" value="-0.340" /> |
412 | 412 | ||
413 | <param id="665" name="Jaw_Jut" value="0.360" /> | 413 | <param id="665" name="Jaw_Jut" value="0.360" /> |
414 | 414 | ||
415 | <param id="675" name="Hand Size" value="0.170" /> | 415 | <param id="675" name="Hand Size" value="0.170" /> |
416 | 416 | ||
417 | <param id="676" name="Love_Handles" value="0.740" /> | 417 | <param id="676" name="Love_Handles" value="0.740" /> |
418 | 418 | ||
419 | <param id="678" name="Torso Muscles" value="0.120" /> | 419 | <param id="678" name="Torso Muscles" value="0.120" /> |
420 | 420 | ||
421 | <param id="682" name="Head Size" value="0.730" /> | 421 | <param id="682" name="Head Size" value="0.730" /> |
422 | 422 | ||
423 | <param id="683" name="Neck Thickness" value="-0.240" /> | 423 | <param id="683" name="Neck Thickness" value="-0.240" /> |
424 | 424 | ||
425 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> | 425 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> |
426 | 426 | ||
427 | <param id="685" name="Chest_Male_No_Pecs" value="0.970" /> | 427 | <param id="685" name="Chest_Male_No_Pecs" value="0.970" /> |
428 | 428 | ||
429 | <param id="690" name="Eye Size" value="0.370" /> | 429 | <param id="690" name="Eye Size" value="0.370" /> |
430 | 430 | ||
431 | <param id="692" name="Leg Length" value="0.320" /> | 431 | <param id="692" name="Leg Length" value="0.320" /> |
432 | 432 | ||
433 | <param id="693" name="Arm Length" value="0.580" /> | 433 | <param id="693" name="Arm Length" value="0.580" /> |
434 | 434 | ||
435 | <param id="753" name="Saddlebags" value="1.040" /> | 435 | <param id="753" name="Saddlebags" value="1.040" /> |
436 | 436 | ||
437 | <param id="756" name="Neck Length" value="0.540" /> | 437 | <param id="756" name="Neck Length" value="0.540" /> |
438 | 438 | ||
439 | <param id="758" name="Lower_Bridge_Nose" value="0.990" /> | 439 | <param id="758" name="Lower_Bridge_Nose" value="0.990" /> |
440 | 440 | ||
441 | <param id="759" name="Low_Septum_Nose" value="0.520" /> | 441 | <param id="759" name="Low_Septum_Nose" value="0.520" /> |
442 | 442 | ||
443 | <param id="760" name="Jaw_Angle" value="-0.020" /> | 443 | <param id="760" name="Jaw_Angle" value="-0.020" /> |
444 | 444 | ||
445 | <param id="764" name="Lip_Cleft_Deep" value="-0.250" /> | 445 | <param id="764" name="Lip_Cleft_Deep" value="-0.250" /> |
446 | 446 | ||
447 | <param id="765" name="Puffy_Lower_Lids" value="2.500" /> | 447 | <param id="765" name="Puffy_Lower_Lids" value="2.500" /> |
448 | 448 | ||
449 | <param id="769" name="Eye Depth" value="0.000" /> | 449 | <param id="769" name="Eye Depth" value="0.000" /> |
450 | 450 | ||
451 | <param id="773" name="Head Length" value="0.530" /> | 451 | <param id="773" name="Head Length" value="0.530" /> |
452 | 452 | ||
453 | <!-- wearable: skin --> | 453 | <!-- wearable: skin --> |
454 | <param id="108" name="Rainbow Color" value="0.000" /> | 454 | <param id="108" name="Rainbow Color" value="0.000" /> |
455 | 455 | ||
456 | <param id="110" name="Red Skin" value="0.010" /> | 456 | <param id="110" name="Red Skin" value="0.010" /> |
457 | 457 | ||
458 | <param id="111" name="Pigment" value="0.160" /> | 458 | <param id="111" name="Pigment" value="0.160" /> |
459 | 459 | ||
460 | <param id="116" name="Rosy Complexion" value="0.010" /> | 460 | <param id="116" name="Rosy Complexion" value="0.010" /> |
461 | 461 | ||
462 | <param id="117" name="Lip Pinkness" value="0.000" /> | 462 | <param id="117" name="Lip Pinkness" value="0.000" /> |
463 | 463 | ||
464 | <param id="150" name="Body Definition" value="0.660" /> | 464 | <param id="150" name="Body Definition" value="0.660" /> |
465 | 465 | ||
466 | <param id="162" name="Facial Definition" value="1.000" /> | 466 | <param id="162" name="Facial Definition" value="1.000" /> |
467 | 467 | ||
468 | <param id="163" name="Wrinkles" value="1.000" /> | 468 | <param id="163" name="Wrinkles" value="1.000" /> |
469 | 469 | ||
470 | <param id="165" name="Freckles" value="0.920" /> | 470 | <param id="165" name="Freckles" value="0.920" /> |
471 | 471 | ||
472 | <param id="700" name="Lipstick Color" value="0.250" /> | 472 | <param id="700" name="Lipstick Color" value="0.250" /> |
473 | 473 | ||
474 | <param id="701" name="Lipstick" value="0.000" /> | 474 | <param id="701" name="Lipstick" value="0.000" /> |
475 | 475 | ||
476 | <param id="702" name="Lipgloss" value="0.000" /> | 476 | <param id="702" name="Lipgloss" value="0.000" /> |
477 | 477 | ||
478 | <param id="703" name="Eyeliner" value="0.000" /> | 478 | <param id="703" name="Eyeliner" value="0.000" /> |
479 | 479 | ||
480 | <param id="704" name="Blush" value="0.000" /> | 480 | <param id="704" name="Blush" value="0.000" /> |
481 | 481 | ||
482 | <param id="705" name="Blush Color" value="0.500" /> | 482 | <param id="705" name="Blush Color" value="0.500" /> |
483 | 483 | ||
484 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 484 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
485 | 485 | ||
486 | <param id="707" name="Outer Shadow" value="0.000" /> | 486 | <param id="707" name="Outer Shadow" value="0.000" /> |
487 | 487 | ||
488 | <param id="708" name="Out Shdw Color" value="0.000" /> | 488 | <param id="708" name="Out Shdw Color" value="0.000" /> |
489 | 489 | ||
490 | <param id="709" name="Inner Shadow" value="0.000" /> | 490 | <param id="709" name="Inner Shadow" value="0.000" /> |
491 | 491 | ||
492 | <param id="710" name="Nail Polish" value="0.000" /> | 492 | <param id="710" name="Nail Polish" value="0.000" /> |
493 | 493 | ||
494 | <param id="711" name="Blush Opacity" value="0.500" /> | 494 | <param id="711" name="Blush Opacity" value="0.500" /> |
495 | 495 | ||
496 | <param id="712" name="In Shdw Color" value="0.000" /> | 496 | <param id="712" name="In Shdw Color" value="0.000" /> |
497 | 497 | ||
498 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 498 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
499 | 499 | ||
500 | <param id="714" name="Eyeliner Color" value="0.000" /> | 500 | <param id="714" name="Eyeliner Color" value="0.000" /> |
501 | 501 | ||
502 | <param id="715" name="Nail Polish Color" value="0.000" /> | 502 | <param id="715" name="Nail Polish Color" value="0.000" /> |
503 | 503 | ||
504 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 504 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
505 | 505 | ||
506 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 506 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
507 | 507 | ||
508 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 508 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
509 | 509 | ||
510 | <!-- wearable: hair --> | 510 | <!-- wearable: hair --> |
511 | <param id="16" name="Pointy_Eyebrows" value="0.805" /> | 511 | <param id="16" name="Pointy_Eyebrows" value="0.805" /> |
512 | 512 | ||
513 | <param id="31" name="Arced_Eyebrows" value="1.000" /> | 513 | <param id="31" name="Arced_Eyebrows" value="1.000" /> |
514 | 514 | ||
515 | <param id="112" name="Rainbow Color" value="0.000" /> | 515 | <param id="112" name="Rainbow Color" value="0.000" /> |
516 | 516 | ||
517 | <param id="113" name="Red Hair" value="0.150" /> | 517 | <param id="113" name="Red Hair" value="0.150" /> |
518 | 518 | ||
519 | <param id="114" name="Blonde Hair" value="0.960" /> | 519 | <param id="114" name="Blonde Hair" value="0.960" /> |
520 | 520 | ||
521 | <param id="115" name="White Hair" value="1.000" /> | 521 | <param id="115" name="White Hair" value="1.000" /> |
522 | 522 | ||
523 | <param id="119" name="Eyebrow Size" value="0.210" /> | 523 | <param id="119" name="Eyebrow Size" value="0.210" /> |
524 | 524 | ||
525 | <param id="130" name="Front Fringe" value="0.580" /> | 525 | <param id="130" name="Front Fringe" value="0.580" /> |
526 | 526 | ||
527 | <param id="131" name="Side Fringe" value="0.000" /> | 527 | <param id="131" name="Side Fringe" value="0.000" /> |
528 | 528 | ||
529 | <param id="132" name="Back Fringe" value="0.480" /> | 529 | <param id="132" name="Back Fringe" value="0.480" /> |
530 | 530 | ||
531 | <param id="133" name="Hair Front" value="0.390" /> | 531 | <param id="133" name="Hair Front" value="0.390" /> |
532 | 532 | ||
533 | <param id="134" name="Hair Sides" value="0.350" /> | 533 | <param id="134" name="Hair Sides" value="0.350" /> |
534 | 534 | ||
535 | <param id="135" name="Hair Back" value="0.540" /> | 535 | <param id="135" name="Hair Back" value="0.540" /> |
536 | 536 | ||
537 | <param id="136" name="Hair Sweep" value="0.370" /> | 537 | <param id="136" name="Hair Sweep" value="0.370" /> |
538 | 538 | ||
539 | <param id="137" name="Hair Tilt" value="0.370" /> | 539 | <param id="137" name="Hair Tilt" value="0.370" /> |
540 | 540 | ||
541 | <param id="140" name="Hair_Part_Middle" value="0.000" /> | 541 | <param id="140" name="Hair_Part_Middle" value="0.000" /> |
542 | 542 | ||
543 | <param id="141" name="Hair_Part_Right" value="2.000" /> | 543 | <param id="141" name="Hair_Part_Right" value="2.000" /> |
544 | 544 | ||
545 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 545 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
546 | 546 | ||
547 | <param id="143" name="Hair_Sides_Full" value="0.070" /> | 547 | <param id="143" name="Hair_Sides_Full" value="0.070" /> |
548 | 548 | ||
549 | <param id="166" name="Sideburns" value="0.890" /> | 549 | <param id="166" name="Sideburns" value="0.890" /> |
550 | 550 | ||
551 | <param id="167" name="Moustache" value="0.000" /> | 551 | <param id="167" name="Moustache" value="0.000" /> |
552 | 552 | ||
553 | <param id="168" name="Soulpatch" value="0.260" /> | 553 | <param id="168" name="Soulpatch" value="0.260" /> |
554 | 554 | ||
555 | <param id="169" name="Chin Curtains" value="0.890" /> | 555 | <param id="169" name="Chin Curtains" value="0.890" /> |
556 | 556 | ||
557 | <param id="177" name="Hair_Rumpled" value="0.470" /> | 557 | <param id="177" name="Hair_Rumpled" value="0.470" /> |
558 | 558 | ||
559 | <param id="181" name="Hair_Big_Front" value="0.460" /> | 559 | <param id="181" name="Hair_Big_Front" value="0.460" /> |
560 | 560 | ||
561 | <param id="182" name="Hair_Big_Top" value="-0.160" /> | 561 | <param id="182" name="Hair_Big_Top" value="-0.160" /> |
562 | 562 | ||
563 | <param id="183" name="Hair_Big_Back" value="0.100" /> | 563 | <param id="183" name="Hair_Big_Back" value="0.100" /> |
564 | 564 | ||
565 | <param id="184" name="Hair_Spiked" value="0.000" /> | 565 | <param id="184" name="Hair_Spiked" value="0.000" /> |
566 | 566 | ||
567 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 567 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
568 | 568 | ||
569 | <param id="674" name="Hair_Shear_Back" value="0.560" /> | 569 | <param id="674" name="Hair_Shear_Back" value="0.560" /> |
570 | 570 | ||
571 | <param id="750" name="Eyebrow Density" value="0.840" /> | 571 | <param id="750" name="Eyebrow Density" value="0.840" /> |
572 | 572 | ||
573 | <param id="752" name="Hair Thickness" value="0.120" /> | 573 | <param id="752" name="Hair Thickness" value="0.120" /> |
574 | 574 | ||
575 | <param id="754" name="Hair_Taper_Back" value="-0.190" /> | 575 | <param id="754" name="Hair_Taper_Back" value="-0.190" /> |
576 | 576 | ||
577 | <param id="755" name="Hair_Taper_Front" value="1.500" /> | 577 | <param id="755" name="Hair_Taper_Front" value="1.500" /> |
578 | 578 | ||
579 | <param id="757" name="Lower_Eyebrows" value="2.000" /> | 579 | <param id="757" name="Lower_Eyebrows" value="2.000" /> |
580 | 580 | ||
581 | <param id="762" name="Hair_Shear_Front" value="1.710" /> | 581 | <param id="762" name="Hair_Shear_Front" value="1.710" /> |
582 | 582 | ||
583 | <param id="763" name="Hair Volume" value="0.820" /> | 583 | <param id="763" name="Hair Volume" value="0.820" /> |
584 | 584 | ||
585 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 585 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
586 | 586 | ||
587 | <!-- wearable: eyes --> | 587 | <!-- wearable: eyes --> |
588 | <param id="98" name="Eye Lightness" value="0.260" /> | 588 | <param id="98" name="Eye Lightness" value="0.260" /> |
589 | 589 | ||
590 | <param id="99" name="Eye Color" value="0.420" /> | 590 | <param id="99" name="Eye Color" value="0.420" /> |
591 | 591 | ||
592 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 592 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
593 | </archetype> | 593 | </archetype> |
594 | 594 | ||
595 | <archetype name="M W Obese"> | 595 | <archetype name="M W Obese"> |
596 | <!-- wearable: shape --> | 596 | <!-- wearable: shape --> |
597 | <param id="1" name="Big_Brow" value="1.380" /> | 597 | <param id="1" name="Big_Brow" value="1.380" /> |
598 | 598 | ||
599 | <param id="2" name="Nose_Big_Out" value="0.750" /> | 599 | <param id="2" name="Nose_Big_Out" value="0.750" /> |
600 | 600 | ||
601 | <param id="4" name="Broad_Nostrils" value="0.170" /> | 601 | <param id="4" name="Broad_Nostrils" value="0.170" /> |
602 | 602 | ||
603 | <param id="5" name="Cleft_Chin" value="0.940" /> | 603 | <param id="5" name="Cleft_Chin" value="0.940" /> |
604 | 604 | ||
605 | <param id="6" name="Bulbous_Nose_Tip" value="0.810" /> | 605 | <param id="6" name="Bulbous_Nose_Tip" value="0.810" /> |
606 | 606 | ||
607 | <param id="7" name="Weak_Chin" value="-0.070" /> | 607 | <param id="7" name="Weak_Chin" value="-0.070" /> |
608 | 608 | ||
609 | <param id="8" name="Double_Chin" value="0.040" /> | 609 | <param id="8" name="Double_Chin" value="0.040" /> |
610 | 610 | ||
611 | <param id="10" name="Sunken_Cheeks" value="-1.500" /> | 611 | <param id="10" name="Sunken_Cheeks" value="-1.500" /> |
612 | 612 | ||
613 | <param id="11" name="Noble_Nose_Bridge" value="-0.480" /> | 613 | <param id="11" name="Noble_Nose_Bridge" value="-0.480" /> |
614 | 614 | ||
615 | <param id="12" name="Jowls" value="1.990" /> | 615 | <param id="12" name="Jowls" value="1.990" /> |
616 | 616 | ||
617 | <param id="13" name="Cleft_Chin_Upper" value="1.500" /> | 617 | <param id="13" name="Cleft_Chin_Upper" value="1.500" /> |
618 | 618 | ||
619 | <param id="14" name="High_Cheek_Bones" value="-0.310" /> | 619 | <param id="14" name="High_Cheek_Bones" value="-0.310" /> |
620 | 620 | ||
621 | <param id="15" name="Ears_Out" value="1.160" /> | 621 | <param id="15" name="Ears_Out" value="1.160" /> |
622 | 622 | ||
623 | <param id="17" name="Square_Jaw" value="0.670" /> | 623 | <param id="17" name="Square_Jaw" value="0.670" /> |
624 | 624 | ||
625 | <param id="18" name="Puffy_Upper_Cheeks" value="2.500" /> | 625 | <param id="18" name="Puffy_Upper_Cheeks" value="2.500" /> |
626 | 626 | ||
627 | <param id="19" name="Upturned_Nose_Tip" value="-0.500" /> | 627 | <param id="19" name="Upturned_Nose_Tip" value="-0.500" /> |
628 | 628 | ||
629 | <param id="20" name="Bulbous_Nose" value="0.540" /> | 629 | <param id="20" name="Bulbous_Nose" value="0.540" /> |
630 | 630 | ||
631 | <param id="21" name="Upper_Eyelid_Fold" value="0.090" /> | 631 | <param id="21" name="Upper_Eyelid_Fold" value="0.090" /> |
632 | 632 | ||
633 | <param id="22" name="Attached_Earlobes" value="0.420" /> | 633 | <param id="22" name="Attached_Earlobes" value="0.420" /> |
634 | 634 | ||
635 | <param id="23" name="Baggy_Eyes" value="1.500" /> | 635 | <param id="23" name="Baggy_Eyes" value="1.500" /> |
636 | 636 | ||
637 | <param id="24" name="Wide_Eyes" value="-0.100" /> | 637 | <param id="24" name="Wide_Eyes" value="-0.100" /> |
638 | 638 | ||
639 | <param id="25" name="Wide_Lip_Cleft" value="-0.800" /> | 639 | <param id="25" name="Wide_Lip_Cleft" value="-0.800" /> |
640 | 640 | ||
641 | <param id="27" name="Wide_Nose_Bridge" value="-0.950" /> | 641 | <param id="27" name="Wide_Nose_Bridge" value="-0.950" /> |
642 | 642 | ||
643 | <param id="33" name="Height" value="-1.230" /> | 643 | <param id="33" name="Height" value="-1.230" /> |
644 | 644 | ||
645 | <param id="34" name="Thickness" value="1.500" /> | 645 | <param id="34" name="Thickness" value="1.500" /> |
646 | 646 | ||
647 | <param id="35" name="Big_Ears" value="-0.220" /> | 647 | <param id="35" name="Big_Ears" value="-0.220" /> |
648 | 648 | ||
649 | <param id="36" name="Shoulders" value="-0.810" /> | 649 | <param id="36" name="Shoulders" value="-0.810" /> |
650 | 650 | ||
651 | <param id="37" name="Hip Width" value="0.160" /> | 651 | <param id="37" name="Hip Width" value="0.160" /> |
652 | 652 | ||
653 | <param id="38" name="Torso Length" value="-0.360" /> | 653 | <param id="38" name="Torso Length" value="-0.360" /> |
654 | 654 | ||
655 | <param id="80" name="male" value="1.000" /> | 655 | <param id="80" name="male" value="1.000" /> |
656 | 656 | ||
657 | <param id="105" name="Breast Size" value="0.500" /> | 657 | <param id="105" name="Breast Size" value="0.500" /> |
658 | 658 | ||
659 | <param id="151" name="Big_Butt_Legs" value="0.540" /> | 659 | <param id="151" name="Big_Butt_Legs" value="0.540" /> |
660 | 660 | ||
661 | <param id="155" name="Lip Width" value="-0.900" /> | 661 | <param id="155" name="Lip Width" value="-0.900" /> |
662 | 662 | ||
663 | <param id="157" name="Belly Size" value="0.150" /> | 663 | <param id="157" name="Belly Size" value="0.150" /> |
664 | 664 | ||
665 | <param id="185" name="Deep_Chin" value="1.000" /> | 665 | <param id="185" name="Deep_Chin" value="1.000" /> |
666 | 666 | ||
667 | <param id="193" name="Head Shape" value="0.950" /> | 667 | <param id="193" name="Head Shape" value="0.950" /> |
668 | 668 | ||
669 | <param id="196" name="Eye Spacing" value="-1.100" /> | 669 | <param id="196" name="Eye Spacing" value="-1.100" /> |
670 | 670 | ||
671 | <param id="505" name="Lip Thickness" value="1.000" /> | 671 | <param id="505" name="Lip Thickness" value="1.000" /> |
672 | 672 | ||
673 | <param id="506" name="Mouth_Height" value="1.240" /> | 673 | <param id="506" name="Mouth_Height" value="1.240" /> |
674 | 674 | ||
675 | <param id="507" name="Breast_Gravity" value="0.000" /> | 675 | <param id="507" name="Breast_Gravity" value="0.000" /> |
676 | 676 | ||
677 | <param id="515" name="Foot_Size" value="0.120" /> | 677 | <param id="515" name="Foot_Size" value="0.120" /> |
678 | 678 | ||
679 | <param id="517" name="Wide_Nose" value="0.580" /> | 679 | <param id="517" name="Wide_Nose" value="0.580" /> |
680 | 680 | ||
681 | <param id="518" name="Eyelashes_Long" value="0.220" /> | 681 | <param id="518" name="Eyelashes_Long" value="0.220" /> |
682 | 682 | ||
683 | <param id="629" name="Forehead Angle" value="0.120" /> | 683 | <param id="629" name="Forehead Angle" value="0.120" /> |
684 | 684 | ||
685 | <param id="637" name="Body Fat" value="1.000" /> | 685 | <param id="637" name="Body Fat" value="1.000" /> |
686 | 686 | ||
687 | <param id="646" name="Egg_Head" value="-1.280" /> | 687 | <param id="646" name="Egg_Head" value="-1.280" /> |
688 | 688 | ||
689 | <param id="647" name="Squash_Stretch_Head" value="-0.500" /> | 689 | <param id="647" name="Squash_Stretch_Head" value="-0.500" /> |
690 | 690 | ||
691 | <param id="649" name="Torso Muscles" value="0.500" /> | 691 | <param id="649" name="Torso Muscles" value="0.500" /> |
692 | 692 | ||
693 | <param id="650" name="Eyelid_Corner_Up" value="-0.950" /> | 693 | <param id="650" name="Eyelid_Corner_Up" value="-0.950" /> |
694 | 694 | ||
695 | <param id="652" name="Leg Muscles" value="0.520" /> | 695 | <param id="652" name="Leg Muscles" value="0.520" /> |
696 | 696 | ||
697 | <param id="653" name="Tall_Lips" value="0.890" /> | 697 | <param id="653" name="Tall_Lips" value="0.890" /> |
698 | 698 | ||
699 | <param id="656" name="Crooked_Nose" value="-0.240" /> | 699 | <param id="656" name="Crooked_Nose" value="-0.240" /> |
700 | 700 | ||
701 | <param id="659" name="Mouth Corner" value="0.310" /> | 701 | <param id="659" name="Mouth Corner" value="0.310" /> |
702 | 702 | ||
703 | <param id="662" name="Face Shear" value="0.470" /> | 703 | <param id="662" name="Face Shear" value="0.470" /> |
704 | 704 | ||
705 | <param id="663" name="Shift_Mouth" value="0.520" /> | 705 | <param id="663" name="Shift_Mouth" value="0.520" /> |
706 | 706 | ||
707 | <param id="664" name="Pop_Eye" value="0.570" /> | 707 | <param id="664" name="Pop_Eye" value="0.570" /> |
708 | 708 | ||
709 | <param id="665" name="Jaw_Jut" value="-0.600" /> | 709 | <param id="665" name="Jaw_Jut" value="-0.600" /> |
710 | 710 | ||
711 | <param id="675" name="Hand Size" value="-0.110" /> | 711 | <param id="675" name="Hand Size" value="-0.110" /> |
712 | 712 | ||
713 | <param id="676" name="Love_Handles" value="-0.130" /> | 713 | <param id="676" name="Love_Handles" value="-0.130" /> |
714 | 714 | ||
715 | <param id="678" name="Torso Muscles" value="0.410" /> | 715 | <param id="678" name="Torso Muscles" value="0.410" /> |
716 | 716 | ||
717 | <param id="682" name="Head Size" value="0.150" /> | 717 | <param id="682" name="Head Size" value="0.150" /> |
718 | 718 | ||
719 | <param id="683" name="Neck Thickness" value="0.090" /> | 719 | <param id="683" name="Neck Thickness" value="0.090" /> |
720 | 720 | ||
721 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> | 721 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> |
722 | 722 | ||
723 | <param id="685" name="Chest_Male_No_Pecs" value="-0.400" /> | 723 | <param id="685" name="Chest_Male_No_Pecs" value="-0.400" /> |
724 | 724 | ||
725 | <param id="690" name="Eye Size" value="0.070" /> | 725 | <param id="690" name="Eye Size" value="0.070" /> |
726 | 726 | ||
727 | <param id="692" name="Leg Length" value="-0.080" /> | 727 | <param id="692" name="Leg Length" value="-0.080" /> |
728 | 728 | ||
729 | <param id="693" name="Arm Length" value="-0.060" /> | 729 | <param id="693" name="Arm Length" value="-0.060" /> |
730 | 730 | ||
731 | <param id="753" name="Saddlebags" value="1.500" /> | 731 | <param id="753" name="Saddlebags" value="1.500" /> |
732 | 732 | ||
733 | <param id="756" name="Neck Length" value="-0.520" /> | 733 | <param id="756" name="Neck Length" value="-0.520" /> |
734 | 734 | ||
735 | <param id="758" name="Lower_Bridge_Nose" value="-0.990" /> | 735 | <param id="758" name="Lower_Bridge_Nose" value="-0.990" /> |
736 | 736 | ||
737 | <param id="759" name="Low_Septum_Nose" value="0.300" /> | 737 | <param id="759" name="Low_Septum_Nose" value="0.300" /> |
738 | 738 | ||
739 | <param id="760" name="Jaw_Angle" value="0.208" /> | 739 | <param id="760" name="Jaw_Angle" value="0.208" /> |
740 | 740 | ||
741 | <param id="764" name="Lip_Cleft_Deep" value="0.980" /> | 741 | <param id="764" name="Lip_Cleft_Deep" value="0.980" /> |
742 | 742 | ||
743 | <param id="765" name="Puffy_Lower_Lids" value="2.280" /> | 743 | <param id="765" name="Puffy_Lower_Lids" value="2.280" /> |
744 | 744 | ||
745 | <param id="769" name="Eye Depth" value="0.370" /> | 745 | <param id="769" name="Eye Depth" value="0.370" /> |
746 | 746 | ||
747 | <param id="773" name="Head Length" value="0.190" /> | 747 | <param id="773" name="Head Length" value="0.190" /> |
748 | 748 | ||
749 | <!-- wearable: skin --> | 749 | <!-- wearable: skin --> |
750 | <param id="108" name="Rainbow Color" value="0.000" /> | 750 | <param id="108" name="Rainbow Color" value="0.000" /> |
751 | 751 | ||
752 | <param id="110" name="Red Skin" value="0.100" /> | 752 | <param id="110" name="Red Skin" value="0.100" /> |
753 | 753 | ||
754 | <param id="111" name="Pigment" value="0.000" /> | 754 | <param id="111" name="Pigment" value="0.000" /> |
755 | 755 | ||
756 | <param id="116" name="Rosy Complexion" value="0.350" /> | 756 | <param id="116" name="Rosy Complexion" value="0.350" /> |
757 | 757 | ||
758 | <param id="117" name="Lip Pinkness" value="0.470" /> | 758 | <param id="117" name="Lip Pinkness" value="0.470" /> |
759 | 759 | ||
760 | <param id="150" name="Body Definition" value="0.000" /> | 760 | <param id="150" name="Body Definition" value="0.000" /> |
761 | 761 | ||
762 | <param id="162" name="Facial Definition" value="0.000" /> | 762 | <param id="162" name="Facial Definition" value="0.000" /> |
763 | 763 | ||
764 | <param id="163" name="Wrinkles" value="0.000" /> | 764 | <param id="163" name="Wrinkles" value="0.000" /> |
765 | 765 | ||
766 | <param id="165" name="Freckles" value="0.400" /> | 766 | <param id="165" name="Freckles" value="0.400" /> |
767 | 767 | ||
768 | <param id="700" name="Lipstick Color" value="0.250" /> | 768 | <param id="700" name="Lipstick Color" value="0.250" /> |
769 | 769 | ||
770 | <param id="701" name="Lipstick" value="0.000" /> | 770 | <param id="701" name="Lipstick" value="0.000" /> |
771 | 771 | ||
772 | <param id="702" name="Lipgloss" value="0.000" /> | 772 | <param id="702" name="Lipgloss" value="0.000" /> |
773 | 773 | ||
774 | <param id="703" name="Eyeliner" value="0.000" /> | 774 | <param id="703" name="Eyeliner" value="0.000" /> |
775 | 775 | ||
776 | <param id="704" name="Blush" value="0.000" /> | 776 | <param id="704" name="Blush" value="0.000" /> |
777 | 777 | ||
778 | <param id="705" name="Blush Color" value="0.500" /> | 778 | <param id="705" name="Blush Color" value="0.500" /> |
779 | 779 | ||
780 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 780 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
781 | 781 | ||
782 | <param id="707" name="Outer Shadow" value="0.000" /> | 782 | <param id="707" name="Outer Shadow" value="0.000" /> |
783 | 783 | ||
784 | <param id="708" name="Out Shdw Color" value="0.000" /> | 784 | <param id="708" name="Out Shdw Color" value="0.000" /> |
785 | 785 | ||
786 | <param id="709" name="Inner Shadow" value="0.000" /> | 786 | <param id="709" name="Inner Shadow" value="0.000" /> |
787 | 787 | ||
788 | <param id="710" name="Nail Polish" value="0.000" /> | 788 | <param id="710" name="Nail Polish" value="0.000" /> |
789 | 789 | ||
790 | <param id="711" name="Blush Opacity" value="0.500" /> | 790 | <param id="711" name="Blush Opacity" value="0.500" /> |
791 | 791 | ||
792 | <param id="712" name="In Shdw Color" value="0.000" /> | 792 | <param id="712" name="In Shdw Color" value="0.000" /> |
793 | 793 | ||
794 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 794 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
795 | 795 | ||
796 | <param id="714" name="Eyeliner Color" value="0.000" /> | 796 | <param id="714" name="Eyeliner Color" value="0.000" /> |
797 | 797 | ||
798 | <param id="715" name="Nail Polish Color" value="0.000" /> | 798 | <param id="715" name="Nail Polish Color" value="0.000" /> |
799 | 799 | ||
800 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 800 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
801 | 801 | ||
802 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 802 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
803 | 803 | ||
804 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 804 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
805 | 805 | ||
806 | <!-- wearable: hair --> | 806 | <!-- wearable: hair --> |
807 | <param id="16" name="Pointy_Eyebrows" value="-0.500" /> | 807 | <param id="16" name="Pointy_Eyebrows" value="-0.500" /> |
808 | 808 | ||
809 | <param id="31" name="Arced_Eyebrows" value="1.000" /> | 809 | <param id="31" name="Arced_Eyebrows" value="1.000" /> |
810 | 810 | ||
811 | <param id="112" name="Rainbow Color" value="0.000" /> | 811 | <param id="112" name="Rainbow Color" value="0.000" /> |
812 | 812 | ||
813 | <param id="113" name="Red Hair" value="0.320" /> | 813 | <param id="113" name="Red Hair" value="0.320" /> |
814 | 814 | ||
815 | <param id="114" name="Blonde Hair" value="0.510" /> | 815 | <param id="114" name="Blonde Hair" value="0.510" /> |
816 | 816 | ||
817 | <param id="115" name="White Hair" value="0.170" /> | 817 | <param id="115" name="White Hair" value="0.170" /> |
818 | 818 | ||
819 | <param id="119" name="Eyebrow Size" value="0.190" /> | 819 | <param id="119" name="Eyebrow Size" value="0.190" /> |
820 | 820 | ||
821 | <param id="130" name="Front Fringe" value="0.470" /> | 821 | <param id="130" name="Front Fringe" value="0.470" /> |
822 | 822 | ||
823 | <param id="131" name="Side Fringe" value="0.370" /> | 823 | <param id="131" name="Side Fringe" value="0.370" /> |
824 | 824 | ||
825 | <param id="132" name="Back Fringe" value="0.300" /> | 825 | <param id="132" name="Back Fringe" value="0.300" /> |
826 | 826 | ||
827 | <param id="133" name="Hair Front" value="0.370" /> | 827 | <param id="133" name="Hair Front" value="0.370" /> |
828 | 828 | ||
829 | <param id="134" name="Hair Sides" value="0.190" /> | 829 | <param id="134" name="Hair Sides" value="0.190" /> |
830 | 830 | ||
831 | <param id="135" name="Hair Back" value="0.000" /> | 831 | <param id="135" name="Hair Back" value="0.000" /> |
832 | 832 | ||
833 | <param id="136" name="Hair Sweep" value="0.600" /> | 833 | <param id="136" name="Hair Sweep" value="0.600" /> |
834 | 834 | ||
835 | <param id="137" name="Hair Tilt" value="0.500" /> | 835 | <param id="137" name="Hair Tilt" value="0.500" /> |
836 | 836 | ||
837 | <param id="140" name="Hair_Part_Middle" value="0.000" /> | 837 | <param id="140" name="Hair_Part_Middle" value="0.000" /> |
838 | 838 | ||
839 | <param id="141" name="Hair_Part_Right" value="0.000" /> | 839 | <param id="141" name="Hair_Part_Right" value="0.000" /> |
840 | 840 | ||
841 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 841 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
842 | 842 | ||
843 | <param id="143" name="Hair_Sides_Full" value="-0.370" /> | 843 | <param id="143" name="Hair_Sides_Full" value="-0.370" /> |
844 | 844 | ||
845 | <param id="166" name="Sideburns" value="0.000" /> | 845 | <param id="166" name="Sideburns" value="0.000" /> |
846 | 846 | ||
847 | <param id="167" name="Moustache" value="0.000" /> | 847 | <param id="167" name="Moustache" value="0.000" /> |
848 | 848 | ||
849 | <param id="168" name="Soulpatch" value="0.000" /> | 849 | <param id="168" name="Soulpatch" value="0.000" /> |
850 | 850 | ||
851 | <param id="169" name="Chin Curtains" value="0.000" /> | 851 | <param id="169" name="Chin Curtains" value="0.000" /> |
852 | 852 | ||
853 | <param id="177" name="Hair_Rumpled" value="0.860" /> | 853 | <param id="177" name="Hair_Rumpled" value="0.860" /> |
854 | 854 | ||
855 | <param id="181" name="Hair_Big_Front" value="0.240" /> | 855 | <param id="181" name="Hair_Big_Front" value="0.240" /> |
856 | 856 | ||
857 | <param id="182" name="Hair_Big_Top" value="0.060" /> | 857 | <param id="182" name="Hair_Big_Top" value="0.060" /> |
858 | 858 | ||
859 | <param id="183" name="Hair_Big_Back" value="0.120" /> | 859 | <param id="183" name="Hair_Big_Back" value="0.120" /> |
860 | 860 | ||
861 | <param id="184" name="Hair_Spiked" value="0.120" /> | 861 | <param id="184" name="Hair_Spiked" value="0.120" /> |
862 | 862 | ||
863 | <param id="192" name="Bangs_Part_Middle" value="1.000" /> | 863 | <param id="192" name="Bangs_Part_Middle" value="1.000" /> |
864 | 864 | ||
865 | <param id="674" name="Hair_Shear_Back" value="-0.640" /> | 865 | <param id="674" name="Hair_Shear_Back" value="-0.640" /> |
866 | 866 | ||
867 | <param id="750" name="Eyebrow Density" value="0.410" /> | 867 | <param id="750" name="Eyebrow Density" value="0.410" /> |
868 | 868 | ||
869 | <param id="752" name="Hair Thickness" value="0.000" /> | 869 | <param id="752" name="Hair Thickness" value="0.000" /> |
870 | 870 | ||
871 | <param id="754" name="Hair_Taper_Back" value="0.350" /> | 871 | <param id="754" name="Hair_Taper_Back" value="0.350" /> |
872 | 872 | ||
873 | <param id="755" name="Hair_Taper_Front" value="-1.170" /> | 873 | <param id="755" name="Hair_Taper_Front" value="-1.170" /> |
874 | 874 | ||
875 | <param id="757" name="Lower_Eyebrows" value="-2.000" /> | 875 | <param id="757" name="Lower_Eyebrows" value="-2.000" /> |
876 | 876 | ||
877 | <param id="762" name="Hair_Shear_Front" value="1.500" /> | 877 | <param id="762" name="Hair_Shear_Front" value="1.500" /> |
878 | 878 | ||
879 | <param id="763" name="Hair Volume" value="0.820" /> | 879 | <param id="763" name="Hair Volume" value="0.820" /> |
880 | 880 | ||
881 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 881 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
882 | 882 | ||
883 | <!-- wearable: eyes --> | 883 | <!-- wearable: eyes --> |
884 | <param id="98" name="Eye Lightness" value="0.270" /> | 884 | <param id="98" name="Eye Lightness" value="0.270" /> |
885 | 885 | ||
886 | <param id="99" name="Eye Color" value="0.090" /> | 886 | <param id="99" name="Eye Color" value="0.090" /> |
887 | 887 | ||
888 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 888 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
889 | </archetype> | 889 | </archetype> |
890 | 890 | ||
891 | <archetype name=" M W Muscle"> | 891 | <archetype name=" M W Muscle"> |
892 | <!-- wearable: shape --> | 892 | <!-- wearable: shape --> |
893 | <param id="1" name="Big_Brow" value="0.550" /> | 893 | <param id="1" name="Big_Brow" value="0.550" /> |
894 | 894 | ||
895 | <param id="2" name="Nose_Big_Out" value="-0.070" /> | 895 | <param id="2" name="Nose_Big_Out" value="-0.070" /> |
896 | 896 | ||
897 | <param id="4" name="Broad_Nostrils" value="0.160" /> | 897 | <param id="4" name="Broad_Nostrils" value="0.160" /> |
898 | 898 | ||
899 | <param id="5" name="Cleft_Chin" value="0.960" /> | 899 | <param id="5" name="Cleft_Chin" value="0.960" /> |
900 | 900 | ||
901 | <param id="6" name="Bulbous_Nose_Tip" value="0.700" /> | 901 | <param id="6" name="Bulbous_Nose_Tip" value="0.700" /> |
902 | 902 | ||
903 | <param id="7" name="Weak_Chin" value="-0.280" /> | 903 | <param id="7" name="Weak_Chin" value="-0.280" /> |
904 | 904 | ||
905 | <param id="8" name="Double_Chin" value="0.460" /> | 905 | <param id="8" name="Double_Chin" value="0.460" /> |
906 | 906 | ||
907 | <param id="10" name="Sunken_Cheeks" value="0.120" /> | 907 | <param id="10" name="Sunken_Cheeks" value="0.120" /> |
908 | 908 | ||
909 | <param id="11" name="Noble_Nose_Bridge" value="0.240" /> | 909 | <param id="11" name="Noble_Nose_Bridge" value="0.240" /> |
910 | 910 | ||
911 | <param id="12" name="Jowls" value="0.010" /> | 911 | <param id="12" name="Jowls" value="0.010" /> |
912 | 912 | ||
913 | <param id="13" name="Cleft_Chin_Upper" value="0.940" /> | 913 | <param id="13" name="Cleft_Chin_Upper" value="0.940" /> |
914 | 914 | ||
915 | <param id="14" name="High_Cheek_Bones" value="-0.020" /> | 915 | <param id="14" name="High_Cheek_Bones" value="-0.020" /> |
916 | 916 | ||
917 | <param id="15" name="Ears_Out" value="-0.260" /> | 917 | <param id="15" name="Ears_Out" value="-0.260" /> |
918 | 918 | ||
919 | <param id="17" name="Square_Jaw" value="-0.090" /> | 919 | <param id="17" name="Square_Jaw" value="-0.090" /> |
920 | 920 | ||
921 | <param id="18" name="Puffy_Upper_Cheeks" value="-0.580" /> | 921 | <param id="18" name="Puffy_Upper_Cheeks" value="-0.580" /> |
922 | 922 | ||
923 | <param id="19" name="Upturned_Nose_Tip" value="-0.630" /> | 923 | <param id="19" name="Upturned_Nose_Tip" value="-0.630" /> |
924 | 924 | ||
925 | <param id="20" name="Bulbous_Nose" value="0.020" /> | 925 | <param id="20" name="Bulbous_Nose" value="0.020" /> |
926 | 926 | ||
927 | <param id="21" name="Upper_Eyelid_Fold" value="0.160" /> | 927 | <param id="21" name="Upper_Eyelid_Fold" value="0.160" /> |
928 | 928 | ||
929 | <param id="22" name="Attached_Earlobes" value="0.000" /> | 929 | <param id="22" name="Attached_Earlobes" value="0.000" /> |
930 | 930 | ||
931 | <param id="23" name="Baggy_Eyes" value="0.500" /> | 931 | <param id="23" name="Baggy_Eyes" value="0.500" /> |
932 | 932 | ||
933 | <param id="24" name="Wide_Eyes" value="-0.490" /> | 933 | <param id="24" name="Wide_Eyes" value="-0.490" /> |
934 | 934 | ||
935 | <param id="25" name="Wide_Lip_Cleft" value="0.580" /> | 935 | <param id="25" name="Wide_Lip_Cleft" value="0.580" /> |
936 | 936 | ||
937 | <param id="27" name="Wide_Nose_Bridge" value="0.000" /> | 937 | <param id="27" name="Wide_Nose_Bridge" value="0.000" /> |
938 | 938 | ||
939 | <param id="33" name="Height" value="0.580" /> | 939 | <param id="33" name="Height" value="0.580" /> |
940 | 940 | ||
941 | <param id="34" name="Thickness" value="0.660" /> | 941 | <param id="34" name="Thickness" value="0.660" /> |
942 | 942 | ||
943 | <param id="35" name="Big_Ears" value="0.410" /> | 943 | <param id="35" name="Big_Ears" value="0.410" /> |
944 | 944 | ||
945 | <param id="36" name="Shoulders" value="0.470" /> | 945 | <param id="36" name="Shoulders" value="0.470" /> |
946 | 946 | ||
947 | <param id="37" name="Hip Width" value="-0.920" /> | 947 | <param id="37" name="Hip Width" value="-0.920" /> |
948 | 948 | ||
949 | <param id="38" name="Torso Length" value="0.220" /> | 949 | <param id="38" name="Torso Length" value="0.220" /> |
950 | 950 | ||
951 | <param id="80" name="male" value="1.000" /> | 951 | <param id="80" name="male" value="1.000" /> |
952 | 952 | ||
953 | <param id="105" name="Breast Size" value="0.500" /> | 953 | <param id="105" name="Breast Size" value="0.500" /> |
954 | 954 | ||
955 | <param id="151" name="Big_Butt_Legs" value="-0.020" /> | 955 | <param id="151" name="Big_Butt_Legs" value="-0.020" /> |
956 | 956 | ||
957 | <param id="155" name="Lip Width" value="0.240" /> | 957 | <param id="155" name="Lip Width" value="0.240" /> |
958 | 958 | ||
959 | <param id="157" name="Belly Size" value="0.110" /> | 959 | <param id="157" name="Belly Size" value="0.110" /> |
960 | 960 | ||
961 | <param id="185" name="Deep_Chin" value="0.260" /> | 961 | <param id="185" name="Deep_Chin" value="0.260" /> |
962 | 962 | ||
963 | <param id="193" name="Head Shape" value="0.370" /> | 963 | <param id="193" name="Head Shape" value="0.370" /> |
964 | 964 | ||
965 | <param id="196" name="Eye Spacing" value="-0.080" /> | 965 | <param id="196" name="Eye Spacing" value="-0.080" /> |
966 | 966 | ||
967 | <param id="505" name="Lip Thickness" value="0.500" /> | 967 | <param id="505" name="Lip Thickness" value="0.500" /> |
968 | 968 | ||
969 | <param id="506" name="Mouth_Height" value="0.600" /> | 969 | <param id="506" name="Mouth_Height" value="0.600" /> |
970 | 970 | ||
971 | <param id="507" name="Breast_Gravity" value="0.000" /> | 971 | <param id="507" name="Breast_Gravity" value="0.000" /> |
972 | 972 | ||
973 | <param id="515" name="Foot_Size" value="1.800" /> | 973 | <param id="515" name="Foot_Size" value="1.800" /> |
974 | 974 | ||
975 | <param id="517" name="Wide_Nose" value="-0.080" /> | 975 | <param id="517" name="Wide_Nose" value="-0.080" /> |
976 | 976 | ||
977 | <param id="518" name="Eyelashes_Long" value="-0.080" /> | 977 | <param id="518" name="Eyelashes_Long" value="-0.080" /> |
978 | 978 | ||
979 | <param id="629" name="Forehead Angle" value="0.170" /> | 979 | <param id="629" name="Forehead Angle" value="0.170" /> |
980 | 980 | ||
981 | <param id="637" name="Body Fat" value="0.120" /> | 981 | <param id="637" name="Body Fat" value="0.120" /> |
982 | 982 | ||
983 | <param id="646" name="Egg_Head" value="0.470" /> | 983 | <param id="646" name="Egg_Head" value="0.470" /> |
984 | 984 | ||
985 | <param id="647" name="Squash_Stretch_Head" value="0.430" /> | 985 | <param id="647" name="Squash_Stretch_Head" value="0.430" /> |
986 | 986 | ||
987 | <param id="649" name="Torso Muscles" value="0.500" /> | 987 | <param id="649" name="Torso Muscles" value="0.500" /> |
988 | 988 | ||
989 | <param id="650" name="Eyelid_Corner_Up" value="-0.250" /> | 989 | <param id="650" name="Eyelid_Corner_Up" value="-0.250" /> |
990 | 990 | ||
991 | <param id="652" name="Leg Muscles" value="0.720" /> | 991 | <param id="652" name="Leg Muscles" value="0.720" /> |
992 | 992 | ||
993 | <param id="653" name="Tall_Lips" value="-0.580" /> | 993 | <param id="653" name="Tall_Lips" value="-0.580" /> |
994 | 994 | ||
995 | <param id="656" name="Crooked_Nose" value="0.000" /> | 995 | <param id="656" name="Crooked_Nose" value="0.000" /> |
996 | 996 | ||
997 | <param id="659" name="Mouth Corner" value="0.480" /> | 997 | <param id="659" name="Mouth Corner" value="0.480" /> |
998 | 998 | ||
999 | <param id="662" name="Face Shear" value="0.500" /> | 999 | <param id="662" name="Face Shear" value="0.500" /> |
1000 | 1000 | ||
1001 | <param id="663" name="Shift_Mouth" value="0.000" /> | 1001 | <param id="663" name="Shift_Mouth" value="0.000" /> |
1002 | 1002 | ||
1003 | <param id="664" name="Pop_Eye" value="0.000" /> | 1003 | <param id="664" name="Pop_Eye" value="0.000" /> |
1004 | 1004 | ||
1005 | <param id="665" name="Jaw_Jut" value="0.560" /> | 1005 | <param id="665" name="Jaw_Jut" value="0.560" /> |
1006 | 1006 | ||
1007 | <param id="675" name="Hand Size" value="0.100" /> | 1007 | <param id="675" name="Hand Size" value="0.100" /> |
1008 | 1008 | ||
1009 | <param id="676" name="Love_Handles" value="0.140" /> | 1009 | <param id="676" name="Love_Handles" value="0.140" /> |
1010 | 1010 | ||
1011 | <param id="678" name="Torso Muscles" value="0.790" /> | 1011 | <param id="678" name="Torso Muscles" value="0.790" /> |
1012 | 1012 | ||
1013 | <param id="682" name="Head Size" value="0.650" /> | 1013 | <param id="682" name="Head Size" value="0.650" /> |
1014 | 1014 | ||
1015 | <param id="683" name="Neck Thickness" value="0.070" /> | 1015 | <param id="683" name="Neck Thickness" value="0.070" /> |
1016 | 1016 | ||
1017 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> | 1017 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> |
1018 | 1018 | ||
1019 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> | 1019 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> |
1020 | 1020 | ||
1021 | <param id="690" name="Eye Size" value="0.260" /> | 1021 | <param id="690" name="Eye Size" value="0.260" /> |
1022 | 1022 | ||
1023 | <param id="692" name="Leg Length" value="0.340" /> | 1023 | <param id="692" name="Leg Length" value="0.340" /> |
1024 | 1024 | ||
1025 | <param id="693" name="Arm Length" value="0.440" /> | 1025 | <param id="693" name="Arm Length" value="0.440" /> |
1026 | 1026 | ||
1027 | <param id="753" name="Saddlebags" value="0.440" /> | 1027 | <param id="753" name="Saddlebags" value="0.440" /> |
1028 | 1028 | ||
1029 | <param id="756" name="Neck Length" value="-0.020" /> | 1029 | <param id="756" name="Neck Length" value="-0.020" /> |
1030 | 1030 | ||
1031 | <param id="758" name="Lower_Bridge_Nose" value="0.270" /> | 1031 | <param id="758" name="Lower_Bridge_Nose" value="0.270" /> |
1032 | 1032 | ||
1033 | <param id="759" name="Low_Septum_Nose" value="0.950" /> | 1033 | <param id="759" name="Low_Septum_Nose" value="0.950" /> |
1034 | 1034 | ||
1035 | <param id="760" name="Jaw_Angle" value="-0.050" /> | 1035 | <param id="760" name="Jaw_Angle" value="-0.050" /> |
1036 | 1036 | ||
1037 | <param id="764" name="Lip_Cleft_Deep" value="0.470" /> | 1037 | <param id="764" name="Lip_Cleft_Deep" value="0.470" /> |
1038 | 1038 | ||
1039 | <param id="765" name="Puffy_Lower_Lids" value="0.820" /> | 1039 | <param id="765" name="Puffy_Lower_Lids" value="0.820" /> |
1040 | 1040 | ||
1041 | <param id="769" name="Eye Depth" value="0.230" /> | 1041 | <param id="769" name="Eye Depth" value="0.230" /> |
1042 | 1042 | ||
1043 | <param id="773" name="Head Length" value="0.670" /> | 1043 | <param id="773" name="Head Length" value="0.670" /> |
1044 | 1044 | ||
1045 | <!-- wearable: skin --> | 1045 | <!-- wearable: skin --> |
1046 | <param id="108" name="Rainbow Color" value="0.000" /> | 1046 | <param id="108" name="Rainbow Color" value="0.000" /> |
1047 | 1047 | ||
1048 | <param id="110" name="Red Skin" value="0.075" /> | 1048 | <param id="110" name="Red Skin" value="0.075" /> |
1049 | 1049 | ||
1050 | <param id="111" name="Pigment" value="0.220" /> | 1050 | <param id="111" name="Pigment" value="0.220" /> |
1051 | 1051 | ||
1052 | <param id="116" name="Rosy Complexion" value="0.170" /> | 1052 | <param id="116" name="Rosy Complexion" value="0.170" /> |
1053 | 1053 | ||
1054 | <param id="117" name="Lip Pinkness" value="0.170" /> | 1054 | <param id="117" name="Lip Pinkness" value="0.170" /> |
1055 | 1055 | ||
1056 | <param id="150" name="Body Definition" value="0.000" /> | 1056 | <param id="150" name="Body Definition" value="0.000" /> |
1057 | 1057 | ||
1058 | <param id="162" name="Facial Definition" value="0.320" /> | 1058 | <param id="162" name="Facial Definition" value="0.320" /> |
1059 | 1059 | ||
1060 | <param id="163" name="Wrinkles" value="0.490" /> | 1060 | <param id="163" name="Wrinkles" value="0.490" /> |
1061 | 1061 | ||
1062 | <param id="165" name="Freckles" value="0.250" /> | 1062 | <param id="165" name="Freckles" value="0.250" /> |
1063 | 1063 | ||
1064 | <param id="700" name="Lipstick Color" value="0.250" /> | 1064 | <param id="700" name="Lipstick Color" value="0.250" /> |
1065 | 1065 | ||
1066 | <param id="701" name="Lipstick" value="0.000" /> | 1066 | <param id="701" name="Lipstick" value="0.000" /> |
1067 | 1067 | ||
1068 | <param id="702" name="Lipgloss" value="0.000" /> | 1068 | <param id="702" name="Lipgloss" value="0.000" /> |
1069 | 1069 | ||
1070 | <param id="703" name="Eyeliner" value="0.000" /> | 1070 | <param id="703" name="Eyeliner" value="0.000" /> |
1071 | 1071 | ||
1072 | <param id="704" name="Blush" value="0.000" /> | 1072 | <param id="704" name="Blush" value="0.000" /> |
1073 | 1073 | ||
1074 | <param id="705" name="Blush Color" value="0.500" /> | 1074 | <param id="705" name="Blush Color" value="0.500" /> |
1075 | 1075 | ||
1076 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 1076 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
1077 | 1077 | ||
1078 | <param id="707" name="Outer Shadow" value="0.000" /> | 1078 | <param id="707" name="Outer Shadow" value="0.000" /> |
1079 | 1079 | ||
1080 | <param id="708" name="Out Shdw Color" value="0.000" /> | 1080 | <param id="708" name="Out Shdw Color" value="0.000" /> |
1081 | 1081 | ||
1082 | <param id="709" name="Inner Shadow" value="0.000" /> | 1082 | <param id="709" name="Inner Shadow" value="0.000" /> |
1083 | 1083 | ||
1084 | <param id="710" name="Nail Polish" value="0.000" /> | 1084 | <param id="710" name="Nail Polish" value="0.000" /> |
1085 | 1085 | ||
1086 | <param id="711" name="Blush Opacity" value="0.500" /> | 1086 | <param id="711" name="Blush Opacity" value="0.500" /> |
1087 | 1087 | ||
1088 | <param id="712" name="In Shdw Color" value="0.000" /> | 1088 | <param id="712" name="In Shdw Color" value="0.000" /> |
1089 | 1089 | ||
1090 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 1090 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
1091 | 1091 | ||
1092 | <param id="714" name="Eyeliner Color" value="0.000" /> | 1092 | <param id="714" name="Eyeliner Color" value="0.000" /> |
1093 | 1093 | ||
1094 | <param id="715" name="Nail Polish Color" value="0.000" /> | 1094 | <param id="715" name="Nail Polish Color" value="0.000" /> |
1095 | 1095 | ||
1096 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 1096 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
1097 | 1097 | ||
1098 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 1098 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
1099 | 1099 | ||
1100 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 1100 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
1101 | 1101 | ||
1102 | <!-- wearable: hair --> | 1102 | <!-- wearable: hair --> |
1103 | <param id="16" name="Pointy_Eyebrows" value="0.280" /> | 1103 | <param id="16" name="Pointy_Eyebrows" value="0.280" /> |
1104 | 1104 | ||
1105 | <param id="31" name="Arced_Eyebrows" value="0.270" /> | 1105 | <param id="31" name="Arced_Eyebrows" value="0.270" /> |
1106 | 1106 | ||
1107 | <param id="112" name="Rainbow Color" value="0.000" /> | 1107 | <param id="112" name="Rainbow Color" value="0.000" /> |
1108 | 1108 | ||
1109 | <param id="113" name="Red Hair" value="0.480" /> | 1109 | <param id="113" name="Red Hair" value="0.480" /> |
1110 | 1110 | ||
1111 | <param id="114" name="Blonde Hair" value="0.500" /> | 1111 | <param id="114" name="Blonde Hair" value="0.500" /> |
1112 | 1112 | ||
1113 | <param id="115" name="White Hair" value="0.000" /> | 1113 | <param id="115" name="White Hair" value="0.000" /> |
1114 | 1114 | ||
1115 | <param id="119" name="Eyebrow Size" value="0.470" /> | 1115 | <param id="119" name="Eyebrow Size" value="0.470" /> |
1116 | 1116 | ||
1117 | <param id="130" name="Front Fringe" value="0.350" /> | 1117 | <param id="130" name="Front Fringe" value="0.350" /> |
1118 | 1118 | ||
1119 | <param id="131" name="Side Fringe" value="0.370" /> | 1119 | <param id="131" name="Side Fringe" value="0.370" /> |
1120 | 1120 | ||
1121 | <param id="132" name="Back Fringe" value="0.420" /> | 1121 | <param id="132" name="Back Fringe" value="0.420" /> |
1122 | 1122 | ||
1123 | <param id="133" name="Hair Front" value="0.040" /> | 1123 | <param id="133" name="Hair Front" value="0.040" /> |
1124 | 1124 | ||
1125 | <param id="134" name="Hair Sides" value="0.580" /> | 1125 | <param id="134" name="Hair Sides" value="0.580" /> |
1126 | 1126 | ||
1127 | <param id="135" name="Hair Back" value="0.520" /> | 1127 | <param id="135" name="Hair Back" value="0.520" /> |
1128 | 1128 | ||
1129 | <param id="136" name="Hair Sweep" value="0.510" /> | 1129 | <param id="136" name="Hair Sweep" value="0.510" /> |
1130 | 1130 | ||
1131 | <param id="137" name="Hair Tilt" value="0.500" /> | 1131 | <param id="137" name="Hair Tilt" value="0.500" /> |
1132 | 1132 | ||
1133 | <param id="140" name="Hair_Part_Middle" value="0.000" /> | 1133 | <param id="140" name="Hair_Part_Middle" value="0.000" /> |
1134 | 1134 | ||
1135 | <param id="141" name="Hair_Part_Right" value="1.520" /> | 1135 | <param id="141" name="Hair_Part_Right" value="1.520" /> |
1136 | 1136 | ||
1137 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 1137 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
1138 | 1138 | ||
1139 | <param id="143" name="Hair_Sides_Full" value="-0.200" /> | 1139 | <param id="143" name="Hair_Sides_Full" value="-0.200" /> |
1140 | 1140 | ||
1141 | <param id="166" name="Sideburns" value="0.710" /> | 1141 | <param id="166" name="Sideburns" value="0.710" /> |
1142 | 1142 | ||
1143 | <param id="167" name="Moustache" value="0.000" /> | 1143 | <param id="167" name="Moustache" value="0.000" /> |
1144 | 1144 | ||
1145 | <param id="168" name="Soulpatch" value="0.000" /> | 1145 | <param id="168" name="Soulpatch" value="0.000" /> |
1146 | 1146 | ||
1147 | <param id="169" name="Chin Curtains" value="0.000" /> | 1147 | <param id="169" name="Chin Curtains" value="0.000" /> |
1148 | 1148 | ||
1149 | <param id="177" name="Hair_Rumpled" value="0.560" /> | 1149 | <param id="177" name="Hair_Rumpled" value="0.560" /> |
1150 | 1150 | ||
1151 | <param id="181" name="Hair_Big_Front" value="0.520" /> | 1151 | <param id="181" name="Hair_Big_Front" value="0.520" /> |
1152 | 1152 | ||
1153 | <param id="182" name="Hair_Big_Top" value="0.020" /> | 1153 | <param id="182" name="Hair_Big_Top" value="0.020" /> |
1154 | 1154 | ||
1155 | <param id="183" name="Hair_Big_Back" value="0.460" /> | 1155 | <param id="183" name="Hair_Big_Back" value="0.460" /> |
1156 | 1156 | ||
1157 | <param id="184" name="Hair_Spiked" value="0.000" /> | 1157 | <param id="184" name="Hair_Spiked" value="0.000" /> |
1158 | 1158 | ||
1159 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 1159 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
1160 | 1160 | ||
1161 | <param id="674" name="Hair_Shear_Back" value="0.050" /> | 1161 | <param id="674" name="Hair_Shear_Back" value="0.050" /> |
1162 | 1162 | ||
1163 | <param id="750" name="Eyebrow Density" value="0.610" /> | 1163 | <param id="750" name="Eyebrow Density" value="0.610" /> |
1164 | 1164 | ||
1165 | <param id="752" name="Hair Thickness" value="0.690" /> | 1165 | <param id="752" name="Hair Thickness" value="0.690" /> |
1166 | 1166 | ||
1167 | <param id="754" name="Hair_Taper_Back" value="0.020" /> | 1167 | <param id="754" name="Hair_Taper_Back" value="0.020" /> |
1168 | 1168 | ||
1169 | <param id="755" name="Hair_Taper_Front" value="0.000" /> | 1169 | <param id="755" name="Hair_Taper_Front" value="0.000" /> |
1170 | 1170 | ||
1171 | <param id="757" name="Lower_Eyebrows" value="0.560" /> | 1171 | <param id="757" name="Lower_Eyebrows" value="0.560" /> |
1172 | 1172 | ||
1173 | <param id="762" name="Hair_Shear_Front" value="0.060" /> | 1173 | <param id="762" name="Hair_Shear_Front" value="0.060" /> |
1174 | 1174 | ||
1175 | <param id="763" name="Hair Volume" value="0.650" /> | 1175 | <param id="763" name="Hair Volume" value="0.650" /> |
1176 | 1176 | ||
1177 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 1177 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
1178 | 1178 | ||
1179 | <!-- wearable: eyes --> | 1179 | <!-- wearable: eyes --> |
1180 | <param id="98" name="Eye Lightness" value="0.170" /> | 1180 | <param id="98" name="Eye Lightness" value="0.170" /> |
1181 | 1181 | ||
1182 | <param id="99" name="Eye Color" value="0.340" /> | 1182 | <param id="99" name="Eye Color" value="0.340" /> |
1183 | 1183 | ||
1184 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 1184 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
1185 | </archetype> | 1185 | </archetype> |
1186 | 1186 | ||
1187 | <archetype name="W M Chubby"> | 1187 | <archetype name="W M Chubby"> |
1188 | <!-- wearable: shape --> | 1188 | <!-- wearable: shape --> |
1189 | <param id="1" name="Big_Brow" value="0.710" /> | 1189 | <param id="1" name="Big_Brow" value="0.710" /> |
1190 | 1190 | ||
1191 | <param id="2" name="Nose_Big_Out" value="-0.110" /> | 1191 | <param id="2" name="Nose_Big_Out" value="-0.110" /> |
1192 | 1192 | ||
1193 | <param id="4" name="Broad_Nostrils" value="0.310" /> | 1193 | <param id="4" name="Broad_Nostrils" value="0.310" /> |
1194 | 1194 | ||
1195 | <param id="5" name="Cleft_Chin" value="0.340" /> | 1195 | <param id="5" name="Cleft_Chin" value="0.340" /> |
1196 | 1196 | ||
1197 | <param id="6" name="Bulbous_Nose_Tip" value="0.260" /> | 1197 | <param id="6" name="Bulbous_Nose_Tip" value="0.260" /> |
1198 | 1198 | ||
1199 | <param id="7" name="Weak_Chin" value="-0.260" /> | 1199 | <param id="7" name="Weak_Chin" value="-0.260" /> |
1200 | 1200 | ||
1201 | <param id="8" name="Double_Chin" value="1.040" /> | 1201 | <param id="8" name="Double_Chin" value="1.040" /> |
1202 | 1202 | ||
1203 | <param id="10" name="Sunken_Cheeks" value="-0.560" /> | 1203 | <param id="10" name="Sunken_Cheeks" value="-0.560" /> |
1204 | 1204 | ||
1205 | <param id="11" name="Noble_Nose_Bridge" value="0.020" /> | 1205 | <param id="11" name="Noble_Nose_Bridge" value="0.020" /> |
1206 | 1206 | ||
1207 | <param id="12" name="Jowls" value="1.240" /> | 1207 | <param id="12" name="Jowls" value="1.240" /> |
1208 | 1208 | ||
1209 | <param id="13" name="Cleft_Chin_Upper" value="0.690" /> | 1209 | <param id="13" name="Cleft_Chin_Upper" value="0.690" /> |
1210 | 1210 | ||
1211 | <param id="14" name="High_Cheek_Bones" value="0.650" /> | 1211 | <param id="14" name="High_Cheek_Bones" value="0.650" /> |
1212 | 1212 | ||
1213 | <param id="15" name="Ears_Out" value="-0.180" /> | 1213 | <param id="15" name="Ears_Out" value="-0.180" /> |
1214 | 1214 | ||
1215 | <param id="17" name="Square_Jaw" value="-0.170" /> | 1215 | <param id="17" name="Square_Jaw" value="-0.170" /> |
1216 | 1216 | ||
1217 | <param id="18" name="Puffy_Upper_Cheeks" value="1.580" /> | 1217 | <param id="18" name="Puffy_Upper_Cheeks" value="1.580" /> |
1218 | 1218 | ||
1219 | <param id="19" name="Upturned_Nose_Tip" value="-0.500" /> | 1219 | <param id="19" name="Upturned_Nose_Tip" value="-0.500" /> |
1220 | 1220 | ||
1221 | <param id="20" name="Bulbous_Nose" value="-0.020" /> | 1221 | <param id="20" name="Bulbous_Nose" value="-0.020" /> |
1222 | 1222 | ||
1223 | <param id="21" name="Upper_Eyelid_Fold" value="0.600" /> | 1223 | <param id="21" name="Upper_Eyelid_Fold" value="0.600" /> |
1224 | 1224 | ||
1225 | <param id="22" name="Attached_Earlobes" value="0.420" /> | 1225 | <param id="22" name="Attached_Earlobes" value="0.420" /> |
1226 | 1226 | ||
1227 | <param id="23" name="Baggy_Eyes" value="0.680" /> | 1227 | <param id="23" name="Baggy_Eyes" value="0.680" /> |
1228 | 1228 | ||
1229 | <param id="24" name="Wide_Eyes" value="0.460" /> | 1229 | <param id="24" name="Wide_Eyes" value="0.460" /> |
1230 | 1230 | ||
1231 | <param id="25" name="Wide_Lip_Cleft" value="-0.250" /> | 1231 | <param id="25" name="Wide_Lip_Cleft" value="-0.250" /> |
1232 | 1232 | ||
1233 | <param id="27" name="Wide_Nose_Bridge" value="-0.320" /> | 1233 | <param id="27" name="Wide_Nose_Bridge" value="-0.320" /> |
1234 | 1234 | ||
1235 | <param id="33" name="Height" value="0.880" /> | 1235 | <param id="33" name="Height" value="0.880" /> |
1236 | 1236 | ||
1237 | <param id="34" name="Thickness" value="0.800" /> | 1237 | <param id="34" name="Thickness" value="0.800" /> |
1238 | 1238 | ||
1239 | <param id="35" name="Big_Ears" value="1.100" /> | 1239 | <param id="35" name="Big_Ears" value="1.100" /> |
1240 | 1240 | ||
1241 | <param id="36" name="Shoulders" value="0.310" /> | 1241 | <param id="36" name="Shoulders" value="0.310" /> |
1242 | 1242 | ||
1243 | <param id="37" name="Hip Width" value="-1.040" /> | 1243 | <param id="37" name="Hip Width" value="-1.040" /> |
1244 | 1244 | ||
1245 | <param id="38" name="Torso Length" value="-0.740" /> | 1245 | <param id="38" name="Torso Length" value="-0.740" /> |
1246 | 1246 | ||
1247 | <param id="80" name="male" value="1.000" /> | 1247 | <param id="80" name="male" value="1.000" /> |
1248 | 1248 | ||
1249 | <param id="105" name="Breast Size" value="0.500" /> | 1249 | <param id="105" name="Breast Size" value="0.500" /> |
1250 | 1250 | ||
1251 | <param id="151" name="Big_Butt_Legs" value="0.330" /> | 1251 | <param id="151" name="Big_Butt_Legs" value="0.330" /> |
1252 | 1252 | ||
1253 | <param id="155" name="Lip Width" value="-0.200" /> | 1253 | <param id="155" name="Lip Width" value="-0.200" /> |
1254 | 1254 | ||
1255 | <param id="157" name="Belly Size" value="0.320" /> | 1255 | <param id="157" name="Belly Size" value="0.320" /> |
1256 | 1256 | ||
1257 | <param id="185" name="Deep_Chin" value="0.680" /> | 1257 | <param id="185" name="Deep_Chin" value="0.680" /> |
1258 | 1258 | ||
1259 | <param id="193" name="Head Shape" value="0.720" /> | 1259 | <param id="193" name="Head Shape" value="0.720" /> |
1260 | 1260 | ||
1261 | <param id="196" name="Eye Spacing" value="-0.380" /> | 1261 | <param id="196" name="Eye Spacing" value="-0.380" /> |
1262 | 1262 | ||
1263 | <param id="505" name="Lip Thickness" value="0.680" /> | 1263 | <param id="505" name="Lip Thickness" value="0.680" /> |
1264 | 1264 | ||
1265 | <param id="506" name="Mouth_Height" value="0.080" /> | 1265 | <param id="506" name="Mouth_Height" value="0.080" /> |
1266 | 1266 | ||
1267 | <param id="507" name="Breast_Gravity" value="0.000" /> | 1267 | <param id="507" name="Breast_Gravity" value="0.000" /> |
1268 | 1268 | ||
1269 | <param id="515" name="Foot_Size" value="1.120" /> | 1269 | <param id="515" name="Foot_Size" value="1.120" /> |
1270 | 1270 | ||
1271 | <param id="517" name="Wide_Nose" value="0.070" /> | 1271 | <param id="517" name="Wide_Nose" value="0.070" /> |
1272 | 1272 | ||
1273 | <param id="518" name="Eyelashes_Long" value="0.400" /> | 1273 | <param id="518" name="Eyelashes_Long" value="0.400" /> |
1274 | 1274 | ||
1275 | <param id="629" name="Forehead Angle" value="0.620" /> | 1275 | <param id="629" name="Forehead Angle" value="0.620" /> |
1276 | 1276 | ||
1277 | <param id="637" name="Body Fat" value="0.130" /> | 1277 | <param id="637" name="Body Fat" value="0.130" /> |
1278 | 1278 | ||
1279 | <param id="646" name="Egg_Head" value="-0.220" /> | 1279 | <param id="646" name="Egg_Head" value="-0.220" /> |
1280 | 1280 | ||
1281 | <param id="647" name="Squash_Stretch_Head" value="0.030" /> | 1281 | <param id="647" name="Squash_Stretch_Head" value="0.030" /> |
1282 | 1282 | ||
1283 | <param id="649" name="Torso Muscles" value="0.500" /> | 1283 | <param id="649" name="Torso Muscles" value="0.500" /> |
1284 | 1284 | ||
1285 | <param id="650" name="Eyelid_Corner_Up" value="0.380" /> | 1285 | <param id="650" name="Eyelid_Corner_Up" value="0.380" /> |
1286 | 1286 | ||
1287 | <param id="652" name="Leg Muscles" value="0.770" /> | 1287 | <param id="652" name="Leg Muscles" value="0.770" /> |
1288 | 1288 | ||
1289 | <param id="653" name="Tall_Lips" value="0.470" /> | 1289 | <param id="653" name="Tall_Lips" value="0.470" /> |
1290 | 1290 | ||
1291 | <param id="656" name="Crooked_Nose" value="-0.400" /> | 1291 | <param id="656" name="Crooked_Nose" value="-0.400" /> |
1292 | 1292 | ||
1293 | <param id="659" name="Mouth Corner" value="0.520" /> | 1293 | <param id="659" name="Mouth Corner" value="0.520" /> |
1294 | 1294 | ||
1295 | <param id="662" name="Face Shear" value="0.460" /> | 1295 | <param id="662" name="Face Shear" value="0.460" /> |
1296 | 1296 | ||
1297 | <param id="663" name="Shift_Mouth" value="0.000" /> | 1297 | <param id="663" name="Shift_Mouth" value="0.000" /> |
1298 | 1298 | ||
1299 | <param id="664" name="Pop_Eye" value="0.310" /> | 1299 | <param id="664" name="Pop_Eye" value="0.310" /> |
1300 | 1300 | ||
1301 | <param id="665" name="Jaw_Jut" value="-0.680" /> | 1301 | <param id="665" name="Jaw_Jut" value="-0.680" /> |
1302 | 1302 | ||
1303 | <param id="675" name="Hand Size" value="0.010" /> | 1303 | <param id="675" name="Hand Size" value="0.010" /> |
1304 | 1304 | ||
1305 | <param id="676" name="Love_Handles" value="0.380" /> | 1305 | <param id="676" name="Love_Handles" value="0.380" /> |
1306 | 1306 | ||
1307 | <param id="678" name="Torso Muscles" value="0.800" /> | 1307 | <param id="678" name="Torso Muscles" value="0.800" /> |
1308 | 1308 | ||
1309 | <param id="682" name="Head Size" value="0.690" /> | 1309 | <param id="682" name="Head Size" value="0.690" /> |
1310 | 1310 | ||
1311 | <param id="683" name="Neck Thickness" value="-0.030" /> | 1311 | <param id="683" name="Neck Thickness" value="-0.030" /> |
1312 | 1312 | ||
1313 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> | 1313 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> |
1314 | 1314 | ||
1315 | <param id="685" name="Chest_Male_No_Pecs" value="0.010" /> | 1315 | <param id="685" name="Chest_Male_No_Pecs" value="0.010" /> |
1316 | 1316 | ||
1317 | <param id="690" name="Eye Size" value="0.210" /> | 1317 | <param id="690" name="Eye Size" value="0.210" /> |
1318 | 1318 | ||
1319 | <param id="692" name="Leg Length" value="-0.260" /> | 1319 | <param id="692" name="Leg Length" value="-0.260" /> |
1320 | 1320 | ||
1321 | <param id="693" name="Arm Length" value="0.200" /> | 1321 | <param id="693" name="Arm Length" value="0.200" /> |
1322 | 1322 | ||
1323 | <param id="753" name="Saddlebags" value="0.650" /> | 1323 | <param id="753" name="Saddlebags" value="0.650" /> |
1324 | 1324 | ||
1325 | <param id="756" name="Neck Length" value="-0.040" /> | 1325 | <param id="756" name="Neck Length" value="-0.040" /> |
1326 | 1326 | ||
1327 | <param id="758" name="Lower_Bridge_Nose" value="0.210" /> | 1327 | <param id="758" name="Lower_Bridge_Nose" value="0.210" /> |
1328 | 1328 | ||
1329 | <param id="759" name="Low_Septum_Nose" value="0.650" /> | 1329 | <param id="759" name="Low_Septum_Nose" value="0.650" /> |
1330 | 1330 | ||
1331 | <param id="760" name="Jaw_Angle" value="0.240" /> | 1331 | <param id="760" name="Jaw_Angle" value="0.240" /> |
1332 | 1332 | ||
1333 | <param id="764" name="Lip_Cleft_Deep" value="0.610" /> | 1333 | <param id="764" name="Lip_Cleft_Deep" value="0.610" /> |
1334 | 1334 | ||
1335 | <param id="765" name="Puffy_Lower_Lids" value="1.100" /> | 1335 | <param id="765" name="Puffy_Lower_Lids" value="1.100" /> |
1336 | 1336 | ||
1337 | <param id="769" name="Eye Depth" value="0.580" /> | 1337 | <param id="769" name="Eye Depth" value="0.580" /> |
1338 | 1338 | ||
1339 | <param id="773" name="Head Length" value="0.350" /> | 1339 | <param id="773" name="Head Length" value="0.350" /> |
1340 | 1340 | ||
1341 | <!-- wearable: skin --> | 1341 | <!-- wearable: skin --> |
1342 | <param id="108" name="Rainbow Color" value="0.000" /> | 1342 | <param id="108" name="Rainbow Color" value="0.000" /> |
1343 | 1343 | ||
1344 | <param id="110" name="Red Skin" value="0.084" /> | 1344 | <param id="110" name="Red Skin" value="0.084" /> |
1345 | 1345 | ||
1346 | <param id="111" name="Pigment" value="0.320" /> | 1346 | <param id="111" name="Pigment" value="0.320" /> |
1347 | 1347 | ||
1348 | <param id="116" name="Rosy Complexion" value="0.120" /> | 1348 | <param id="116" name="Rosy Complexion" value="0.120" /> |
1349 | 1349 | ||
1350 | <param id="117" name="Lip Pinkness" value="0.220" /> | 1350 | <param id="117" name="Lip Pinkness" value="0.220" /> |
1351 | 1351 | ||
1352 | <param id="150" name="Body Definition" value="0.000" /> | 1352 | <param id="150" name="Body Definition" value="0.000" /> |
1353 | 1353 | ||
1354 | <param id="162" name="Facial Definition" value="0.370" /> | 1354 | <param id="162" name="Facial Definition" value="0.370" /> |
1355 | 1355 | ||
1356 | <param id="163" name="Wrinkles" value="0.150" /> | 1356 | <param id="163" name="Wrinkles" value="0.150" /> |
1357 | 1357 | ||
1358 | <param id="165" name="Freckles" value="0.740" /> | 1358 | <param id="165" name="Freckles" value="0.740" /> |
1359 | 1359 | ||
1360 | <param id="700" name="Lipstick Color" value="0.250" /> | 1360 | <param id="700" name="Lipstick Color" value="0.250" /> |
1361 | 1361 | ||
1362 | <param id="701" name="Lipstick" value="0.000" /> | 1362 | <param id="701" name="Lipstick" value="0.000" /> |
1363 | 1363 | ||
1364 | <param id="702" name="Lipgloss" value="0.000" /> | 1364 | <param id="702" name="Lipgloss" value="0.000" /> |
1365 | 1365 | ||
1366 | <param id="703" name="Eyeliner" value="0.000" /> | 1366 | <param id="703" name="Eyeliner" value="0.000" /> |
1367 | 1367 | ||
1368 | <param id="704" name="Blush" value="0.000" /> | 1368 | <param id="704" name="Blush" value="0.000" /> |
1369 | 1369 | ||
1370 | <param id="705" name="Blush Color" value="0.500" /> | 1370 | <param id="705" name="Blush Color" value="0.500" /> |
1371 | 1371 | ||
1372 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 1372 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
1373 | 1373 | ||
1374 | <param id="707" name="Outer Shadow" value="0.000" /> | 1374 | <param id="707" name="Outer Shadow" value="0.000" /> |
1375 | 1375 | ||
1376 | <param id="708" name="Out Shdw Color" value="0.000" /> | 1376 | <param id="708" name="Out Shdw Color" value="0.000" /> |
1377 | 1377 | ||
1378 | <param id="709" name="Inner Shadow" value="0.000" /> | 1378 | <param id="709" name="Inner Shadow" value="0.000" /> |
1379 | 1379 | ||
1380 | <param id="710" name="Nail Polish" value="0.000" /> | 1380 | <param id="710" name="Nail Polish" value="0.000" /> |
1381 | 1381 | ||
1382 | <param id="711" name="Blush Opacity" value="0.500" /> | 1382 | <param id="711" name="Blush Opacity" value="0.500" /> |
1383 | 1383 | ||
1384 | <param id="712" name="In Shdw Color" value="0.000" /> | 1384 | <param id="712" name="In Shdw Color" value="0.000" /> |
1385 | 1385 | ||
1386 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 1386 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
1387 | 1387 | ||
1388 | <param id="714" name="Eyeliner Color" value="0.000" /> | 1388 | <param id="714" name="Eyeliner Color" value="0.000" /> |
1389 | 1389 | ||
1390 | <param id="715" name="Nail Polish Color" value="0.000" /> | 1390 | <param id="715" name="Nail Polish Color" value="0.000" /> |
1391 | 1391 | ||
1392 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 1392 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
1393 | 1393 | ||
1394 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 1394 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
1395 | 1395 | ||
1396 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 1396 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
1397 | 1397 | ||
1398 | <!-- wearable: hair --> | 1398 | <!-- wearable: hair --> |
1399 | <param id="16" name="Pointy_Eyebrows" value="0.370" /> | 1399 | <param id="16" name="Pointy_Eyebrows" value="0.370" /> |
1400 | 1400 | ||
1401 | <param id="31" name="Arced_Eyebrows" value="0.000" /> | 1401 | <param id="31" name="Arced_Eyebrows" value="0.000" /> |
1402 | 1402 | ||
1403 | <param id="112" name="Rainbow Color" value="0.000" /> | 1403 | <param id="112" name="Rainbow Color" value="0.000" /> |
1404 | 1404 | ||
1405 | <param id="113" name="Red Hair" value="0.130" /> | 1405 | <param id="113" name="Red Hair" value="0.130" /> |
1406 | 1406 | ||
1407 | <param id="114" name="Blonde Hair" value="0.040" /> | 1407 | <param id="114" name="Blonde Hair" value="0.040" /> |
1408 | 1408 | ||
1409 | <param id="115" name="White Hair" value="0.170" /> | 1409 | <param id="115" name="White Hair" value="0.170" /> |
1410 | 1410 | ||
1411 | <param id="119" name="Eyebrow Size" value="0.540" /> | 1411 | <param id="119" name="Eyebrow Size" value="0.540" /> |
1412 | 1412 | ||
1413 | <param id="130" name="Front Fringe" value="0.470" /> | 1413 | <param id="130" name="Front Fringe" value="0.470" /> |
1414 | 1414 | ||
1415 | <param id="131" name="Side Fringe" value="0.480" /> | 1415 | <param id="131" name="Side Fringe" value="0.480" /> |
1416 | 1416 | ||
1417 | <param id="132" name="Back Fringe" value="0.500" /> | 1417 | <param id="132" name="Back Fringe" value="0.500" /> |
1418 | 1418 | ||
1419 | <param id="133" name="Hair Front" value="0.370" /> | 1419 | <param id="133" name="Hair Front" value="0.370" /> |
1420 | 1420 | ||
1421 | <param id="134" name="Hair Sides" value="0.000" /> | 1421 | <param id="134" name="Hair Sides" value="0.000" /> |
1422 | 1422 | ||
1423 | <param id="135" name="Hair Back" value="0.600" /> | 1423 | <param id="135" name="Hair Back" value="0.600" /> |
1424 | 1424 | ||
1425 | <param id="136" name="Hair Sweep" value="0.210" /> | 1425 | <param id="136" name="Hair Sweep" value="0.210" /> |
1426 | 1426 | ||
1427 | <param id="137" name="Hair Tilt" value="0.500" /> | 1427 | <param id="137" name="Hair Tilt" value="0.500" /> |
1428 | 1428 | ||
1429 | <param id="140" name="Hair_Part_Middle" value="0.000" /> | 1429 | <param id="140" name="Hair_Part_Middle" value="0.000" /> |
1430 | 1430 | ||
1431 | <param id="141" name="Hair_Part_Right" value="0.000" /> | 1431 | <param id="141" name="Hair_Part_Right" value="0.000" /> |
1432 | 1432 | ||
1433 | <param id="142" name="Hair_Part_Left" value="2.000" /> | 1433 | <param id="142" name="Hair_Part_Left" value="2.000" /> |
1434 | 1434 | ||
1435 | <param id="143" name="Hair_Sides_Full" value="0.785" /> | 1435 | <param id="143" name="Hair_Sides_Full" value="0.785" /> |
1436 | 1436 | ||
1437 | <param id="166" name="Sideburns" value="0.000" /> | 1437 | <param id="166" name="Sideburns" value="0.000" /> |
1438 | 1438 | ||
1439 | <param id="167" name="Moustache" value="0.470" /> | 1439 | <param id="167" name="Moustache" value="0.470" /> |
1440 | 1440 | ||
1441 | <param id="168" name="Soulpatch" value="0.000" /> | 1441 | <param id="168" name="Soulpatch" value="0.000" /> |
1442 | 1442 | ||
1443 | <param id="169" name="Chin Curtains" value="0.000" /> | 1443 | <param id="169" name="Chin Curtains" value="0.000" /> |
1444 | 1444 | ||
1445 | <param id="177" name="Hair_Rumpled" value="0.000" /> | 1445 | <param id="177" name="Hair_Rumpled" value="0.000" /> |
1446 | 1446 | ||
1447 | <param id="181" name="Hair_Big_Front" value="-0.120" /> | 1447 | <param id="181" name="Hair_Big_Front" value="-0.120" /> |
1448 | 1448 | ||
1449 | <param id="182" name="Hair_Big_Top" value="0.060" /> | 1449 | <param id="182" name="Hair_Big_Top" value="0.060" /> |
1450 | 1450 | ||
1451 | <param id="183" name="Hair_Big_Back" value="0.240" /> | 1451 | <param id="183" name="Hair_Big_Back" value="0.240" /> |
1452 | 1452 | ||
1453 | <param id="184" name="Hair_Spiked" value="0.000" /> | 1453 | <param id="184" name="Hair_Spiked" value="0.000" /> |
1454 | 1454 | ||
1455 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 1455 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
1456 | 1456 | ||
1457 | <param id="674" name="Hair_Shear_Back" value="0.020" /> | 1457 | <param id="674" name="Hair_Shear_Back" value="0.020" /> |
1458 | 1458 | ||
1459 | <param id="750" name="Eyebrow Density" value="0.920" /> | 1459 | <param id="750" name="Eyebrow Density" value="0.920" /> |
1460 | 1460 | ||
1461 | <param id="752" name="Hair Thickness" value="0.390" /> | 1461 | <param id="752" name="Hair Thickness" value="0.390" /> |
1462 | 1462 | ||
1463 | <param id="754" name="Hair_Taper_Back" value="0.620" /> | 1463 | <param id="754" name="Hair_Taper_Back" value="0.620" /> |
1464 | 1464 | ||
1465 | <param id="755" name="Hair_Taper_Front" value="0.990" /> | 1465 | <param id="755" name="Hair_Taper_Front" value="0.990" /> |
1466 | 1466 | ||
1467 | <param id="757" name="Lower_Eyebrows" value="-0.200" /> | 1467 | <param id="757" name="Lower_Eyebrows" value="-0.200" /> |
1468 | 1468 | ||
1469 | <param id="762" name="Hair_Shear_Front" value="1.440" /> | 1469 | <param id="762" name="Hair_Shear_Front" value="1.440" /> |
1470 | 1470 | ||
1471 | <param id="763" name="Hair Volume" value="0.610" /> | 1471 | <param id="763" name="Hair Volume" value="0.610" /> |
1472 | 1472 | ||
1473 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 1473 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
1474 | 1474 | ||
1475 | <!-- wearable: eyes --> | 1475 | <!-- wearable: eyes --> |
1476 | <param id="98" name="Eye Lightness" value="0.270" /> | 1476 | <param id="98" name="Eye Lightness" value="0.270" /> |
1477 | 1477 | ||
1478 | <param id="99" name="Eye Color" value="0.090" /> | 1478 | <param id="99" name="Eye Color" value="0.090" /> |
1479 | 1479 | ||
1480 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 1480 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
1481 | </archetype> | 1481 | </archetype> |
1482 | 1482 | ||
1483 | <archetype name="M Troll"> | 1483 | <archetype name="M Troll"> |
1484 | <!-- wearable: shape --> | 1484 | <!-- wearable: shape --> |
1485 | <param id="1" name="Big_Brow" value="2.000" /> | 1485 | <param id="1" name="Big_Brow" value="2.000" /> |
1486 | 1486 | ||
1487 | <param id="2" name="Nose_Big_Out" value="1.670" /> | 1487 | <param id="2" name="Nose_Big_Out" value="1.670" /> |
1488 | 1488 | ||
1489 | <param id="4" name="Broad_Nostrils" value="0.730" /> | 1489 | <param id="4" name="Broad_Nostrils" value="0.730" /> |
1490 | 1490 | ||
1491 | <param id="5" name="Cleft_Chin" value="0.110" /> | 1491 | <param id="5" name="Cleft_Chin" value="0.110" /> |
1492 | 1492 | ||
1493 | <param id="6" name="Bulbous_Nose_Tip" value="1.000" /> | 1493 | <param id="6" name="Bulbous_Nose_Tip" value="1.000" /> |
1494 | 1494 | ||
1495 | <param id="7" name="Weak_Chin" value="0.500" /> | 1495 | <param id="7" name="Weak_Chin" value="0.500" /> |
1496 | 1496 | ||
1497 | <param id="8" name="Double_Chin" value="0.840" /> | 1497 | <param id="8" name="Double_Chin" value="0.840" /> |
1498 | 1498 | ||
1499 | <param id="10" name="Sunken_Cheeks" value="1.830" /> | 1499 | <param id="10" name="Sunken_Cheeks" value="1.830" /> |
1500 | 1500 | ||
1501 | <param id="11" name="Noble_Nose_Bridge" value="0.440" /> | 1501 | <param id="11" name="Noble_Nose_Bridge" value="0.440" /> |
1502 | 1502 | ||
1503 | <param id="12" name="Jowls" value="0.760" /> | 1503 | <param id="12" name="Jowls" value="0.760" /> |
1504 | 1504 | ||
1505 | <param id="13" name="Cleft_Chin_Upper" value="0.940" /> | 1505 | <param id="13" name="Cleft_Chin_Upper" value="0.940" /> |
1506 | 1506 | ||
1507 | <param id="14" name="High_Cheek_Bones" value="0.810" /> | 1507 | <param id="14" name="High_Cheek_Bones" value="0.810" /> |
1508 | 1508 | ||
1509 | <param id="15" name="Ears_Out" value="1.500" /> | 1509 | <param id="15" name="Ears_Out" value="1.500" /> |
1510 | 1510 | ||
1511 | <param id="17" name="Square_Jaw" value="0.050" /> | 1511 | <param id="17" name="Square_Jaw" value="0.050" /> |
1512 | 1512 | ||
1513 | <param id="18" name="Puffy_Upper_Cheeks" value="1.420" /> | 1513 | <param id="18" name="Puffy_Upper_Cheeks" value="1.420" /> |
1514 | 1514 | ||
1515 | <param id="19" name="Upturned_Nose_Tip" value="0.300" /> | 1515 | <param id="19" name="Upturned_Nose_Tip" value="0.300" /> |
1516 | 1516 | ||
1517 | <param id="20" name="Bulbous_Nose" value="1.040" /> | 1517 | <param id="20" name="Bulbous_Nose" value="1.040" /> |
1518 | 1518 | ||
1519 | <param id="21" name="Upper_Eyelid_Fold" value="-0.060" /> | 1519 | <param id="21" name="Upper_Eyelid_Fold" value="-0.060" /> |
1520 | 1520 | ||
1521 | <param id="22" name="Attached_Earlobes" value="0.000" /> | 1521 | <param id="22" name="Attached_Earlobes" value="0.000" /> |
1522 | 1522 | ||
1523 | <param id="23" name="Baggy_Eyes" value="1.500" /> | 1523 | <param id="23" name="Baggy_Eyes" value="1.500" /> |
1524 | 1524 | ||
1525 | <param id="24" name="Wide_Eyes" value="1.970" /> | 1525 | <param id="24" name="Wide_Eyes" value="1.970" /> |
1526 | 1526 | ||
1527 | <param id="25" name="Wide_Lip_Cleft" value="0.720" /> | 1527 | <param id="25" name="Wide_Lip_Cleft" value="0.720" /> |
1528 | 1528 | ||
1529 | <param id="27" name="Wide_Nose_Bridge" value="-1.300" /> | 1529 | <param id="27" name="Wide_Nose_Bridge" value="-1.300" /> |
1530 | 1530 | ||
1531 | <param id="33" name="Height" value="-2.210" /> | 1531 | <param id="33" name="Height" value="-2.210" /> |
1532 | 1532 | ||
1533 | <param id="34" name="Thickness" value="0.910" /> | 1533 | <param id="34" name="Thickness" value="0.910" /> |
1534 | 1534 | ||
1535 | <param id="35" name="Big_Ears" value="2.000" /> | 1535 | <param id="35" name="Big_Ears" value="2.000" /> |
1536 | 1536 | ||
1537 | <param id="36" name="Shoulders" value="1.180" /> | 1537 | <param id="36" name="Shoulders" value="1.180" /> |
1538 | 1538 | ||
1539 | <param id="37" name="Hip Width" value="-1.160" /> | 1539 | <param id="37" name="Hip Width" value="-1.160" /> |
1540 | 1540 | ||
1541 | <param id="38" name="Torso Length" value="1.000" /> | 1541 | <param id="38" name="Torso Length" value="1.000" /> |
1542 | 1542 | ||
1543 | <param id="80" name="male" value="1.000" /> | 1543 | <param id="80" name="male" value="1.000" /> |
1544 | 1544 | ||
1545 | <param id="105" name="Breast Size" value="0.500" /> | 1545 | <param id="105" name="Breast Size" value="0.500" /> |
1546 | 1546 | ||
1547 | <param id="151" name="Big_Butt_Legs" value="-0.110" /> | 1547 | <param id="151" name="Big_Butt_Legs" value="-0.110" /> |
1548 | 1548 | ||
1549 | <param id="155" name="Lip Width" value="1.300" /> | 1549 | <param id="155" name="Lip Width" value="1.300" /> |
1550 | 1550 | ||
1551 | <param id="157" name="Belly Size" value="0.740" /> | 1551 | <param id="157" name="Belly Size" value="0.740" /> |
1552 | 1552 | ||
1553 | <param id="185" name="Deep_Chin" value="-0.960" /> | 1553 | <param id="185" name="Deep_Chin" value="-0.960" /> |
1554 | 1554 | ||
1555 | <param id="193" name="Head Shape" value="0.010" /> | 1555 | <param id="193" name="Head Shape" value="0.010" /> |
1556 | 1556 | ||
1557 | <param id="196" name="Eye Spacing" value="1.000" /> | 1557 | <param id="196" name="Eye Spacing" value="1.000" /> |
1558 | 1558 | ||
1559 | <param id="505" name="Lip Thickness" value="0.730" /> | 1559 | <param id="505" name="Lip Thickness" value="0.730" /> |
1560 | 1560 | ||
1561 | <param id="506" name="Mouth_Height" value="1.080" /> | 1561 | <param id="506" name="Mouth_Height" value="1.080" /> |
1562 | 1562 | ||
1563 | <param id="507" name="Breast_Gravity" value="0.000" /> | 1563 | <param id="507" name="Breast_Gravity" value="0.000" /> |
1564 | 1564 | ||
1565 | <param id="515" name="Foot_Size" value="1.560" /> | 1565 | <param id="515" name="Foot_Size" value="1.560" /> |
1566 | 1566 | ||
1567 | <param id="517" name="Wide_Nose" value="0.170" /> | 1567 | <param id="517" name="Wide_Nose" value="0.170" /> |
1568 | 1568 | ||
1569 | <param id="518" name="Eyelashes_Long" value="1.500" /> | 1569 | <param id="518" name="Eyelashes_Long" value="1.500" /> |
1570 | 1570 | ||
1571 | <param id="629" name="Forehead Angle" value="1.000" /> | 1571 | <param id="629" name="Forehead Angle" value="1.000" /> |
1572 | 1572 | ||
1573 | <param id="637" name="Body Fat" value="0.000" /> | 1573 | <param id="637" name="Body Fat" value="0.000" /> |
1574 | 1574 | ||
1575 | <param id="646" name="Egg_Head" value="0.700" /> | 1575 | <param id="646" name="Egg_Head" value="0.700" /> |
1576 | 1576 | ||
1577 | <param id="647" name="Squash_Stretch_Head" value="-0.220" /> | 1577 | <param id="647" name="Squash_Stretch_Head" value="-0.220" /> |
1578 | 1578 | ||
1579 | <param id="649" name="Torso Muscles" value="0.500" /> | 1579 | <param id="649" name="Torso Muscles" value="0.500" /> |
1580 | 1580 | ||
1581 | <param id="650" name="Eyelid_Corner_Up" value="-0.100" /> | 1581 | <param id="650" name="Eyelid_Corner_Up" value="-0.100" /> |
1582 | 1582 | ||
1583 | <param id="652" name="Leg Muscles" value="0.640" /> | 1583 | <param id="652" name="Leg Muscles" value="0.640" /> |
1584 | 1584 | ||
1585 | <param id="653" name="Tall_Lips" value="0.920" /> | 1585 | <param id="653" name="Tall_Lips" value="0.920" /> |
1586 | 1586 | ||
1587 | <param id="656" name="Crooked_Nose" value="-1.160" /> | 1587 | <param id="656" name="Crooked_Nose" value="-1.160" /> |
1588 | 1588 | ||
1589 | <param id="659" name="Mouth Corner" value="1.000" /> | 1589 | <param id="659" name="Mouth Corner" value="1.000" /> |
1590 | 1590 | ||
1591 | <param id="662" name="Face Shear" value="0.500" /> | 1591 | <param id="662" name="Face Shear" value="0.500" /> |
1592 | 1592 | ||
1593 | <param id="663" name="Shift_Mouth" value="-0.320" /> | 1593 | <param id="663" name="Shift_Mouth" value="-0.320" /> |
1594 | 1594 | ||
1595 | <param id="664" name="Pop_Eye" value="1.250" /> | 1595 | <param id="664" name="Pop_Eye" value="1.250" /> |
1596 | 1596 | ||
1597 | <param id="665" name="Jaw_Jut" value="1.760" /> | 1597 | <param id="665" name="Jaw_Jut" value="1.760" /> |
1598 | 1598 | ||
1599 | <param id="675" name="Hand Size" value="0.300" /> | 1599 | <param id="675" name="Hand Size" value="0.300" /> |
1600 | 1600 | ||
1601 | <param id="676" name="Love_Handles" value="-0.160" /> | 1601 | <param id="676" name="Love_Handles" value="-0.160" /> |
1602 | 1602 | ||
1603 | <param id="678" name="Torso Muscles" value="0.290" /> | 1603 | <param id="678" name="Torso Muscles" value="0.290" /> |
1604 | 1604 | ||
1605 | <param id="682" name="Head Size" value="1.000" /> | 1605 | <param id="682" name="Head Size" value="1.000" /> |
1606 | 1606 | ||
1607 | <param id="683" name="Neck Thickness" value="-0.004" /> | 1607 | <param id="683" name="Neck Thickness" value="-0.004" /> |
1608 | 1608 | ||
1609 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> | 1609 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> |
1610 | 1610 | ||
1611 | <param id="685" name="Chest_Male_No_Pecs" value="0.332" /> | 1611 | <param id="685" name="Chest_Male_No_Pecs" value="0.332" /> |
1612 | 1612 | ||
1613 | <param id="690" name="Eye Size" value="1.000" /> | 1613 | <param id="690" name="Eye Size" value="1.000" /> |
1614 | 1614 | ||
1615 | <param id="692" name="Leg Length" value="0.240" /> | 1615 | <param id="692" name="Leg Length" value="0.240" /> |
1616 | 1616 | ||
1617 | <param id="693" name="Arm Length" value="-0.220" /> | 1617 | <param id="693" name="Arm Length" value="-0.220" /> |
1618 | 1618 | ||
1619 | <param id="753" name="Saddlebags" value="0.030" /> | 1619 | <param id="753" name="Saddlebags" value="0.030" /> |
1620 | 1620 | ||
1621 | <param id="756" name="Neck Length" value="-0.420" /> | 1621 | <param id="756" name="Neck Length" value="-0.420" /> |
1622 | 1622 | ||
1623 | <param id="758" name="Lower_Bridge_Nose" value="-1.500" /> | 1623 | <param id="758" name="Lower_Bridge_Nose" value="-1.500" /> |
1624 | 1624 | ||
1625 | <param id="759" name="Low_Septum_Nose" value="1.500" /> | 1625 | <param id="759" name="Low_Septum_Nose" value="1.500" /> |
1626 | 1626 | ||
1627 | <param id="760" name="Jaw_Angle" value="1.580" /> | 1627 | <param id="760" name="Jaw_Angle" value="1.580" /> |
1628 | 1628 | ||
1629 | <param id="764" name="Lip_Cleft_Deep" value="1.100" /> | 1629 | <param id="764" name="Lip_Cleft_Deep" value="1.100" /> |
1630 | 1630 | ||
1631 | <param id="765" name="Puffy_Lower_Lids" value="2.440" /> | 1631 | <param id="765" name="Puffy_Lower_Lids" value="2.440" /> |
1632 | 1632 | ||
1633 | <param id="769" name="Eye Depth" value="0.000" /> | 1633 | <param id="769" name="Eye Depth" value="0.000" /> |
1634 | 1634 | ||
1635 | <param id="773" name="Head Length" value="1.000" /> | 1635 | <param id="773" name="Head Length" value="1.000" /> |
1636 | 1636 | ||
1637 | <!-- wearable: skin --> | 1637 | <!-- wearable: skin --> |
1638 | <param id="108" name="Rainbow Color" value="1.000" /> | 1638 | <param id="108" name="Rainbow Color" value="1.000" /> |
1639 | 1639 | ||
1640 | <param id="110" name="Red Skin" value="0.100" /> | 1640 | <param id="110" name="Red Skin" value="0.100" /> |
1641 | 1641 | ||
1642 | <param id="111" name="Pigment" value="1.000" /> | 1642 | <param id="111" name="Pigment" value="1.000" /> |
1643 | 1643 | ||
1644 | <param id="116" name="Rosy Complexion" value="0.320" /> | 1644 | <param id="116" name="Rosy Complexion" value="0.320" /> |
1645 | 1645 | ||
1646 | <param id="117" name="Lip Pinkness" value="0.560" /> | 1646 | <param id="117" name="Lip Pinkness" value="0.560" /> |
1647 | 1647 | ||
1648 | <param id="150" name="Body Definition" value="1.000" /> | 1648 | <param id="150" name="Body Definition" value="1.000" /> |
1649 | 1649 | ||
1650 | <param id="162" name="Facial Definition" value="1.000" /> | 1650 | <param id="162" name="Facial Definition" value="1.000" /> |
1651 | 1651 | ||
1652 | <param id="163" name="Wrinkles" value="0.490" /> | 1652 | <param id="163" name="Wrinkles" value="0.490" /> |
1653 | 1653 | ||
1654 | <param id="165" name="Freckles" value="0.740" /> | 1654 | <param id="165" name="Freckles" value="0.740" /> |
1655 | 1655 | ||
1656 | <param id="700" name="Lipstick Color" value="0.250" /> | 1656 | <param id="700" name="Lipstick Color" value="0.250" /> |
1657 | 1657 | ||
1658 | <param id="701" name="Lipstick" value="0.000" /> | 1658 | <param id="701" name="Lipstick" value="0.000" /> |
1659 | 1659 | ||
1660 | <param id="702" name="Lipgloss" value="0.000" /> | 1660 | <param id="702" name="Lipgloss" value="0.000" /> |
1661 | 1661 | ||
1662 | <param id="703" name="Eyeliner" value="0.000" /> | 1662 | <param id="703" name="Eyeliner" value="0.000" /> |
1663 | 1663 | ||
1664 | <param id="704" name="Blush" value="0.000" /> | 1664 | <param id="704" name="Blush" value="0.000" /> |
1665 | 1665 | ||
1666 | <param id="705" name="Blush Color" value="0.500" /> | 1666 | <param id="705" name="Blush Color" value="0.500" /> |
1667 | 1667 | ||
1668 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 1668 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
1669 | 1669 | ||
1670 | <param id="707" name="Outer Shadow" value="0.000" /> | 1670 | <param id="707" name="Outer Shadow" value="0.000" /> |
1671 | 1671 | ||
1672 | <param id="708" name="Out Shdw Color" value="0.000" /> | 1672 | <param id="708" name="Out Shdw Color" value="0.000" /> |
1673 | 1673 | ||
1674 | <param id="709" name="Inner Shadow" value="0.000" /> | 1674 | <param id="709" name="Inner Shadow" value="0.000" /> |
1675 | 1675 | ||
1676 | <param id="710" name="Nail Polish" value="0.000" /> | 1676 | <param id="710" name="Nail Polish" value="0.000" /> |
1677 | 1677 | ||
1678 | <param id="711" name="Blush Opacity" value="0.500" /> | 1678 | <param id="711" name="Blush Opacity" value="0.500" /> |
1679 | 1679 | ||
1680 | <param id="712" name="In Shdw Color" value="0.000" /> | 1680 | <param id="712" name="In Shdw Color" value="0.000" /> |
1681 | 1681 | ||
1682 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 1682 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
1683 | 1683 | ||
1684 | <param id="714" name="Eyeliner Color" value="0.000" /> | 1684 | <param id="714" name="Eyeliner Color" value="0.000" /> |
1685 | 1685 | ||
1686 | <param id="715" name="Nail Polish Color" value="0.000" /> | 1686 | <param id="715" name="Nail Polish Color" value="0.000" /> |
1687 | 1687 | ||
1688 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 1688 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
1689 | 1689 | ||
1690 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 1690 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
1691 | 1691 | ||
1692 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 1692 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
1693 | 1693 | ||
1694 | <!-- wearable: hair --> | 1694 | <!-- wearable: hair --> |
1695 | <param id="16" name="Pointy_Eyebrows" value="0.805" /> | 1695 | <param id="16" name="Pointy_Eyebrows" value="0.805" /> |
1696 | 1696 | ||
1697 | <param id="31" name="Arced_Eyebrows" value="1.000" /> | 1697 | <param id="31" name="Arced_Eyebrows" value="1.000" /> |
1698 | 1698 | ||
1699 | <param id="112" name="Rainbow Color" value="1.000" /> | 1699 | <param id="112" name="Rainbow Color" value="1.000" /> |
1700 | 1700 | ||
1701 | <param id="113" name="Red Hair" value="0.000" /> | 1701 | <param id="113" name="Red Hair" value="0.000" /> |
1702 | 1702 | ||
1703 | <param id="114" name="Blonde Hair" value="0.000" /> | 1703 | <param id="114" name="Blonde Hair" value="0.000" /> |
1704 | 1704 | ||
1705 | <param id="115" name="White Hair" value="0.000" /> | 1705 | <param id="115" name="White Hair" value="0.000" /> |
1706 | 1706 | ||
1707 | <param id="119" name="Eyebrow Size" value="0.210" /> | 1707 | <param id="119" name="Eyebrow Size" value="0.210" /> |
1708 | 1708 | ||
1709 | <param id="130" name="Front Fringe" value="0.580" /> | 1709 | <param id="130" name="Front Fringe" value="0.580" /> |
1710 | 1710 | ||
1711 | <param id="131" name="Side Fringe" value="0.000" /> | 1711 | <param id="131" name="Side Fringe" value="0.000" /> |
1712 | 1712 | ||
1713 | <param id="132" name="Back Fringe" value="1.000" /> | 1713 | <param id="132" name="Back Fringe" value="1.000" /> |
1714 | 1714 | ||
1715 | <param id="133" name="Hair Front" value="0.000" /> | 1715 | <param id="133" name="Hair Front" value="0.000" /> |
1716 | 1716 | ||
1717 | <param id="134" name="Hair Sides" value="0.000" /> | 1717 | <param id="134" name="Hair Sides" value="0.000" /> |
1718 | 1718 | ||
1719 | <param id="135" name="Hair Back" value="0.670" /> | 1719 | <param id="135" name="Hair Back" value="0.670" /> |
1720 | 1720 | ||
1721 | <param id="136" name="Hair Sweep" value="0.940" /> | 1721 | <param id="136" name="Hair Sweep" value="0.940" /> |
1722 | 1722 | ||
1723 | <param id="137" name="Hair Tilt" value="0.500" /> | 1723 | <param id="137" name="Hair Tilt" value="0.500" /> |
1724 | 1724 | ||
1725 | <param id="140" name="Hair_Part_Middle" value="0.000" /> | 1725 | <param id="140" name="Hair_Part_Middle" value="0.000" /> |
1726 | 1726 | ||
1727 | <param id="141" name="Hair_Part_Right" value="0.000" /> | 1727 | <param id="141" name="Hair_Part_Right" value="0.000" /> |
1728 | 1728 | ||
1729 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 1729 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
1730 | 1730 | ||
1731 | <param id="143" name="Hair_Sides_Full" value="-3.835" /> | 1731 | <param id="143" name="Hair_Sides_Full" value="-3.835" /> |
1732 | 1732 | ||
1733 | <param id="166" name="Sideburns" value="0.890" /> | 1733 | <param id="166" name="Sideburns" value="0.890" /> |
1734 | 1734 | ||
1735 | <param id="167" name="Moustache" value="0.000" /> | 1735 | <param id="167" name="Moustache" value="0.000" /> |
1736 | 1736 | ||
1737 | <param id="168" name="Soulpatch" value="0.260" /> | 1737 | <param id="168" name="Soulpatch" value="0.260" /> |
1738 | 1738 | ||
1739 | <param id="169" name="Chin Curtains" value="0.890" /> | 1739 | <param id="169" name="Chin Curtains" value="0.890" /> |
1740 | 1740 | ||
1741 | <param id="177" name="Hair_Rumpled" value="0.560" /> | 1741 | <param id="177" name="Hair_Rumpled" value="0.560" /> |
1742 | 1742 | ||
1743 | <param id="181" name="Hair_Big_Front" value="0.480" /> | 1743 | <param id="181" name="Hair_Big_Front" value="0.480" /> |
1744 | 1744 | ||
1745 | <param id="182" name="Hair_Big_Top" value="0.320" /> | 1745 | <param id="182" name="Hair_Big_Top" value="0.320" /> |
1746 | 1746 | ||
1747 | <param id="183" name="Hair_Big_Back" value="0.240" /> | 1747 | <param id="183" name="Hair_Big_Back" value="0.240" /> |
1748 | 1748 | ||
1749 | <param id="184" name="Hair_Spiked" value="0.000" /> | 1749 | <param id="184" name="Hair_Spiked" value="0.000" /> |
1750 | 1750 | ||
1751 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 1751 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
1752 | 1752 | ||
1753 | <param id="674" name="Hair_Shear_Back" value="0.440" /> | 1753 | <param id="674" name="Hair_Shear_Back" value="0.440" /> |
1754 | 1754 | ||
1755 | <param id="750" name="Eyebrow Density" value="0.840" /> | 1755 | <param id="750" name="Eyebrow Density" value="0.840" /> |
1756 | 1756 | ||
1757 | <param id="752" name="Hair Thickness" value="0.120" /> | 1757 | <param id="752" name="Hair Thickness" value="0.120" /> |
1758 | 1758 | ||
1759 | <param id="754" name="Hair_Taper_Back" value="0.350" /> | 1759 | <param id="754" name="Hair_Taper_Back" value="0.350" /> |
1760 | 1760 | ||
1761 | <param id="755" name="Hair_Taper_Front" value="0.330" /> | 1761 | <param id="755" name="Hair_Taper_Front" value="0.330" /> |
1762 | 1762 | ||
1763 | <param id="757" name="Lower_Eyebrows" value="2.000" /> | 1763 | <param id="757" name="Lower_Eyebrows" value="2.000" /> |
1764 | 1764 | ||
1765 | <param id="762" name="Hair_Shear_Front" value="3.000" /> | 1765 | <param id="762" name="Hair_Shear_Front" value="3.000" /> |
1766 | 1766 | ||
1767 | <param id="763" name="Hair Volume" value="0.940" /> | 1767 | <param id="763" name="Hair Volume" value="0.940" /> |
1768 | 1768 | ||
1769 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 1769 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
1770 | 1770 | ||
1771 | <!-- wearable: eyes --> | 1771 | <!-- wearable: eyes --> |
1772 | <param id="98" name="Eye Lightness" value="0.000" /> | 1772 | <param id="98" name="Eye Lightness" value="0.000" /> |
1773 | 1773 | ||
1774 | <param id="99" name="Eye Color" value="1.000" /> | 1774 | <param id="99" name="Eye Color" value="1.000" /> |
1775 | 1775 | ||
1776 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 1776 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
1777 | </archetype> | 1777 | </archetype> |
1778 | 1778 | ||
1779 | <archetype name="M B Skinny"> | 1779 | <archetype name="M B Skinny"> |
1780 | <!-- wearable: shape --> | 1780 | <!-- wearable: shape --> |
1781 | <param id="1" name="Big_Brow" value="0.320" /> | 1781 | <param id="1" name="Big_Brow" value="0.320" /> |
1782 | 1782 | ||
1783 | <param id="2" name="Nose_Big_Out" value="0.420" /> | 1783 | <param id="2" name="Nose_Big_Out" value="0.420" /> |
1784 | 1784 | ||
1785 | <param id="4" name="Broad_Nostrils" value="0.320" /> | 1785 | <param id="4" name="Broad_Nostrils" value="0.320" /> |
1786 | 1786 | ||
1787 | <param id="5" name="Cleft_Chin" value="0.680" /> | 1787 | <param id="5" name="Cleft_Chin" value="0.680" /> |
1788 | 1788 | ||
1789 | <param id="6" name="Bulbous_Nose_Tip" value="0.490" /> | 1789 | <param id="6" name="Bulbous_Nose_Tip" value="0.490" /> |
1790 | 1790 | ||
1791 | <param id="7" name="Weak_Chin" value="-0.350" /> | 1791 | <param id="7" name="Weak_Chin" value="-0.350" /> |
1792 | 1792 | ||
1793 | <param id="8" name="Double_Chin" value="-0.360" /> | 1793 | <param id="8" name="Double_Chin" value="-0.360" /> |
1794 | 1794 | ||
1795 | <param id="10" name="Sunken_Cheeks" value="0.440" /> | 1795 | <param id="10" name="Sunken_Cheeks" value="0.440" /> |
1796 | 1796 | ||
1797 | <param id="11" name="Noble_Nose_Bridge" value="-0.320" /> | 1797 | <param id="11" name="Noble_Nose_Bridge" value="-0.320" /> |
1798 | 1798 | ||
1799 | <param id="12" name="Jowls" value="-0.470" /> | 1799 | <param id="12" name="Jowls" value="-0.470" /> |
1800 | 1800 | ||
1801 | <param id="13" name="Cleft_Chin_Upper" value="0.520" /> | 1801 | <param id="13" name="Cleft_Chin_Upper" value="0.520" /> |
1802 | 1802 | ||
1803 | <param id="14" name="High_Cheek_Bones" value="0.010" /> | 1803 | <param id="14" name="High_Cheek_Bones" value="0.010" /> |
1804 | 1804 | ||
1805 | <param id="15" name="Ears_Out" value="1.020" /> | 1805 | <param id="15" name="Ears_Out" value="1.020" /> |
1806 | 1806 | ||
1807 | <param id="17" name="Square_Jaw" value="-0.430" /> | 1807 | <param id="17" name="Square_Jaw" value="-0.430" /> |
1808 | 1808 | ||
1809 | <param id="18" name="Puffy_Upper_Cheeks" value="1.180" /> | 1809 | <param id="18" name="Puffy_Upper_Cheeks" value="1.180" /> |
1810 | 1810 | ||
1811 | <param id="19" name="Upturned_Nose_Tip" value="-1.270" /> | 1811 | <param id="19" name="Upturned_Nose_Tip" value="-1.270" /> |
1812 | 1812 | ||
1813 | <param id="20" name="Bulbous_Nose" value="0.040" /> | 1813 | <param id="20" name="Bulbous_Nose" value="0.040" /> |
1814 | 1814 | ||
1815 | <param id="21" name="Upper_Eyelid_Fold" value="-0.040" /> | 1815 | <param id="21" name="Upper_Eyelid_Fold" value="-0.040" /> |
1816 | 1816 | ||
1817 | <param id="22" name="Attached_Earlobes" value="0.590" /> | 1817 | <param id="22" name="Attached_Earlobes" value="0.590" /> |
1818 | 1818 | ||
1819 | <param id="23" name="Baggy_Eyes" value="-0.300" /> | 1819 | <param id="23" name="Baggy_Eyes" value="-0.300" /> |
1820 | 1820 | ||
1821 | <param id="24" name="Wide_Eyes" value="1.340" /> | 1821 | <param id="24" name="Wide_Eyes" value="1.340" /> |
1822 | 1822 | ||
1823 | <param id="25" name="Wide_Lip_Cleft" value="-0.250" /> | 1823 | <param id="25" name="Wide_Lip_Cleft" value="-0.250" /> |
1824 | 1824 | ||
1825 | <param id="27" name="Wide_Nose_Bridge" value="-1.300" /> | 1825 | <param id="27" name="Wide_Nose_Bridge" value="-1.300" /> |
1826 | 1826 | ||
1827 | <param id="33" name="Height" value="-0.370" /> | 1827 | <param id="33" name="Height" value="-0.370" /> |
1828 | 1828 | ||
1829 | <param id="34" name="Thickness" value="-0.280" /> | 1829 | <param id="34" name="Thickness" value="-0.280" /> |
1830 | 1830 | ||
1831 | <param id="35" name="Big_Ears" value="0.410" /> | 1831 | <param id="35" name="Big_Ears" value="0.410" /> |
1832 | 1832 | ||
1833 | <param id="36" name="Shoulders" value="-0.140" /> | 1833 | <param id="36" name="Shoulders" value="-0.140" /> |
1834 | 1834 | ||
1835 | <param id="37" name="Hip Width" value="-0.860" /> | 1835 | <param id="37" name="Hip Width" value="-0.860" /> |
1836 | 1836 | ||
1837 | <param id="38" name="Torso Length" value="-0.560" /> | 1837 | <param id="38" name="Torso Length" value="-0.560" /> |
1838 | 1838 | ||
1839 | <param id="80" name="male" value="1.000" /> | 1839 | <param id="80" name="male" value="1.000" /> |
1840 | 1840 | ||
1841 | <param id="105" name="Breast Size" value="0.500" /> | 1841 | <param id="105" name="Breast Size" value="0.500" /> |
1842 | 1842 | ||
1843 | <param id="151" name="Big_Butt_Legs" value="0.540" /> | 1843 | <param id="151" name="Big_Butt_Legs" value="0.540" /> |
1844 | 1844 | ||
1845 | <param id="155" name="Lip Width" value="-0.170" /> | 1845 | <param id="155" name="Lip Width" value="-0.170" /> |
1846 | 1846 | ||
1847 | <param id="157" name="Belly Size" value="0.000" /> | 1847 | <param id="157" name="Belly Size" value="0.000" /> |
1848 | 1848 | ||
1849 | <param id="185" name="Deep_Chin" value="0.720" /> | 1849 | <param id="185" name="Deep_Chin" value="0.720" /> |
1850 | 1850 | ||
1851 | <param id="193" name="Head Shape" value="0.700" /> | 1851 | <param id="193" name="Head Shape" value="0.700" /> |
1852 | 1852 | ||
1853 | <param id="196" name="Eye Spacing" value="0.610" /> | 1853 | <param id="196" name="Eye Spacing" value="0.610" /> |
1854 | 1854 | ||
1855 | <param id="505" name="Lip Thickness" value="0.800" /> | 1855 | <param id="505" name="Lip Thickness" value="0.800" /> |
1856 | 1856 | ||
1857 | <param id="506" name="Mouth_Height" value="0.400" /> | 1857 | <param id="506" name="Mouth_Height" value="0.400" /> |
1858 | 1858 | ||
1859 | <param id="507" name="Breast_Gravity" value="0.000" /> | 1859 | <param id="507" name="Breast_Gravity" value="0.000" /> |
1860 | 1860 | ||
1861 | <param id="515" name="Foot_Size" value="1.080" /> | 1861 | <param id="515" name="Foot_Size" value="1.080" /> |
1862 | 1862 | ||
1863 | <param id="517" name="Wide_Nose" value="0.870" /> | 1863 | <param id="517" name="Wide_Nose" value="0.870" /> |
1864 | 1864 | ||
1865 | <param id="518" name="Eyelashes_Long" value="0.940" /> | 1865 | <param id="518" name="Eyelashes_Long" value="0.940" /> |
1866 | 1866 | ||
1867 | <param id="629" name="Forehead Angle" value="0.340" /> | 1867 | <param id="629" name="Forehead Angle" value="0.340" /> |
1868 | 1868 | ||
1869 | <param id="637" name="Body Fat" value="0.170" /> | 1869 | <param id="637" name="Body Fat" value="0.170" /> |
1870 | 1870 | ||
1871 | <param id="646" name="Egg_Head" value="-0.010" /> | 1871 | <param id="646" name="Egg_Head" value="-0.010" /> |
1872 | 1872 | ||
1873 | <param id="647" name="Squash_Stretch_Head" value="0.250" /> | 1873 | <param id="647" name="Squash_Stretch_Head" value="0.250" /> |
1874 | 1874 | ||
1875 | <param id="649" name="Torso Muscles" value="0.500" /> | 1875 | <param id="649" name="Torso Muscles" value="0.500" /> |
1876 | 1876 | ||
1877 | <param id="650" name="Eyelid_Corner_Up" value="-0.220" /> | 1877 | <param id="650" name="Eyelid_Corner_Up" value="-0.220" /> |
1878 | 1878 | ||
1879 | <param id="652" name="Leg Muscles" value="0.520" /> | 1879 | <param id="652" name="Leg Muscles" value="0.520" /> |
1880 | 1880 | ||
1881 | <param id="653" name="Tall_Lips" value="0.950" /> | 1881 | <param id="653" name="Tall_Lips" value="0.950" /> |
1882 | 1882 | ||
1883 | <param id="656" name="Crooked_Nose" value="0.120" /> | 1883 | <param id="656" name="Crooked_Nose" value="0.120" /> |
1884 | 1884 | ||
1885 | <param id="659" name="Mouth Corner" value="0.500" /> | 1885 | <param id="659" name="Mouth Corner" value="0.500" /> |
1886 | 1886 | ||
1887 | <param id="662" name="Face Shear" value="0.500" /> | 1887 | <param id="662" name="Face Shear" value="0.500" /> |
1888 | 1888 | ||
1889 | <param id="663" name="Shift_Mouth" value="-0.400" /> | 1889 | <param id="663" name="Shift_Mouth" value="-0.400" /> |
1890 | 1890 | ||
1891 | <param id="664" name="Pop_Eye" value="0.100" /> | 1891 | <param id="664" name="Pop_Eye" value="0.100" /> |
1892 | 1892 | ||
1893 | <param id="665" name="Jaw_Jut" value="0.640" /> | 1893 | <param id="665" name="Jaw_Jut" value="0.640" /> |
1894 | 1894 | ||
1895 | <param id="675" name="Hand Size" value="0.160" /> | 1895 | <param id="675" name="Hand Size" value="0.160" /> |
1896 | 1896 | ||
1897 | <param id="676" name="Love_Handles" value="-0.190" /> | 1897 | <param id="676" name="Love_Handles" value="-0.190" /> |
1898 | 1898 | ||
1899 | <param id="678" name="Torso Muscles" value="0.370" /> | 1899 | <param id="678" name="Torso Muscles" value="0.370" /> |
1900 | 1900 | ||
1901 | <param id="682" name="Head Size" value="0.820" /> | 1901 | <param id="682" name="Head Size" value="0.820" /> |
1902 | 1902 | ||
1903 | <param id="683" name="Neck Thickness" value="-0.220" /> | 1903 | <param id="683" name="Neck Thickness" value="-0.220" /> |
1904 | 1904 | ||
1905 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> | 1905 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> |
1906 | 1906 | ||
1907 | <param id="685" name="Chest_Male_No_Pecs" value="-0.260" /> | 1907 | <param id="685" name="Chest_Male_No_Pecs" value="-0.260" /> |
1908 | 1908 | ||
1909 | <param id="690" name="Eye Size" value="0.470" /> | 1909 | <param id="690" name="Eye Size" value="0.470" /> |
1910 | 1910 | ||
1911 | <param id="692" name="Leg Length" value="0.540" /> | 1911 | <param id="692" name="Leg Length" value="0.540" /> |
1912 | 1912 | ||
1913 | <param id="693" name="Arm Length" value="0.780" /> | 1913 | <param id="693" name="Arm Length" value="0.780" /> |
1914 | 1914 | ||
1915 | <param id="753" name="Saddlebags" value="-0.250" /> | 1915 | <param id="753" name="Saddlebags" value="-0.250" /> |
1916 | 1916 | ||
1917 | <param id="756" name="Neck Length" value="0.540" /> | 1917 | <param id="756" name="Neck Length" value="0.540" /> |
1918 | 1918 | ||
1919 | <param id="758" name="Lower_Bridge_Nose" value="0.690" /> | 1919 | <param id="758" name="Lower_Bridge_Nose" value="0.690" /> |
1920 | 1920 | ||
1921 | <param id="759" name="Low_Septum_Nose" value="0.550" /> | 1921 | <param id="759" name="Low_Septum_Nose" value="0.550" /> |
1922 | 1922 | ||
1923 | <param id="760" name="Jaw_Angle" value="1.330" /> | 1923 | <param id="760" name="Jaw_Angle" value="1.330" /> |
1924 | 1924 | ||
1925 | <param id="764" name="Lip_Cleft_Deep" value="0.040" /> | 1925 | <param id="764" name="Lip_Cleft_Deep" value="0.040" /> |
1926 | 1926 | ||
1927 | <param id="765" name="Puffy_Lower_Lids" value="-0.300" /> | 1927 | <param id="765" name="Puffy_Lower_Lids" value="-0.300" /> |
1928 | 1928 | ||
1929 | <param id="769" name="Eye Depth" value="0.790" /> | 1929 | <param id="769" name="Eye Depth" value="0.790" /> |
1930 | 1930 | ||
1931 | <param id="773" name="Head Length" value="0.690" /> | 1931 | <param id="773" name="Head Length" value="0.690" /> |
1932 | 1932 | ||
1933 | <!-- wearable: skin --> | 1933 | <!-- wearable: skin --> |
1934 | <param id="108" name="Rainbow Color" value="0.000" /> | 1934 | <param id="108" name="Rainbow Color" value="0.000" /> |
1935 | 1935 | ||
1936 | <param id="110" name="Red Skin" value="0.000" /> | 1936 | <param id="110" name="Red Skin" value="0.000" /> |
1937 | 1937 | ||
1938 | <param id="111" name="Pigment" value="0.650" /> | 1938 | <param id="111" name="Pigment" value="0.650" /> |
1939 | 1939 | ||
1940 | <param id="116" name="Rosy Complexion" value="0.000" /> | 1940 | <param id="116" name="Rosy Complexion" value="0.000" /> |
1941 | 1941 | ||
1942 | <param id="117" name="Lip Pinkness" value="0.000" /> | 1942 | <param id="117" name="Lip Pinkness" value="0.000" /> |
1943 | 1943 | ||
1944 | <param id="150" name="Body Definition" value="0.000" /> | 1944 | <param id="150" name="Body Definition" value="0.000" /> |
1945 | 1945 | ||
1946 | <param id="162" name="Facial Definition" value="0.800" /> | 1946 | <param id="162" name="Facial Definition" value="0.800" /> |
1947 | 1947 | ||
1948 | <param id="163" name="Wrinkles" value="0.000" /> | 1948 | <param id="163" name="Wrinkles" value="0.000" /> |
1949 | 1949 | ||
1950 | <param id="165" name="Freckles" value="0.000" /> | 1950 | <param id="165" name="Freckles" value="0.000" /> |
1951 | 1951 | ||
1952 | <param id="700" name="Lipstick Color" value="0.250" /> | 1952 | <param id="700" name="Lipstick Color" value="0.250" /> |
1953 | 1953 | ||
1954 | <param id="701" name="Lipstick" value="0.000" /> | 1954 | <param id="701" name="Lipstick" value="0.000" /> |
1955 | 1955 | ||
1956 | <param id="702" name="Lipgloss" value="0.000" /> | 1956 | <param id="702" name="Lipgloss" value="0.000" /> |
1957 | 1957 | ||
1958 | <param id="703" name="Eyeliner" value="0.000" /> | 1958 | <param id="703" name="Eyeliner" value="0.000" /> |
1959 | 1959 | ||
1960 | <param id="704" name="Blush" value="0.000" /> | 1960 | <param id="704" name="Blush" value="0.000" /> |
1961 | 1961 | ||
1962 | <param id="705" name="Blush Color" value="0.500" /> | 1962 | <param id="705" name="Blush Color" value="0.500" /> |
1963 | 1963 | ||
1964 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 1964 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
1965 | 1965 | ||
1966 | <param id="707" name="Outer Shadow" value="0.000" /> | 1966 | <param id="707" name="Outer Shadow" value="0.000" /> |
1967 | 1967 | ||
1968 | <param id="708" name="Out Shdw Color" value="0.000" /> | 1968 | <param id="708" name="Out Shdw Color" value="0.000" /> |
1969 | 1969 | ||
1970 | <param id="709" name="Inner Shadow" value="0.000" /> | 1970 | <param id="709" name="Inner Shadow" value="0.000" /> |
1971 | 1971 | ||
1972 | <param id="710" name="Nail Polish" value="0.000" /> | 1972 | <param id="710" name="Nail Polish" value="0.000" /> |
1973 | 1973 | ||
1974 | <param id="711" name="Blush Opacity" value="0.500" /> | 1974 | <param id="711" name="Blush Opacity" value="0.500" /> |
1975 | 1975 | ||
1976 | <param id="712" name="In Shdw Color" value="0.000" /> | 1976 | <param id="712" name="In Shdw Color" value="0.000" /> |
1977 | 1977 | ||
1978 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 1978 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
1979 | 1979 | ||
1980 | <param id="714" name="Eyeliner Color" value="0.000" /> | 1980 | <param id="714" name="Eyeliner Color" value="0.000" /> |
1981 | 1981 | ||
1982 | <param id="715" name="Nail Polish Color" value="0.000" /> | 1982 | <param id="715" name="Nail Polish Color" value="0.000" /> |
1983 | 1983 | ||
1984 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 1984 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
1985 | 1985 | ||
1986 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 1986 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
1987 | 1987 | ||
1988 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 1988 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
1989 | 1989 | ||
1990 | <!-- wearable: hair --> | 1990 | <!-- wearable: hair --> |
1991 | <param id="16" name="Pointy_Eyebrows" value="-0.440" /> | 1991 | <param id="16" name="Pointy_Eyebrows" value="-0.440" /> |
1992 | 1992 | ||
1993 | <param id="31" name="Arced_Eyebrows" value="0.000" /> | 1993 | <param id="31" name="Arced_Eyebrows" value="0.000" /> |
1994 | 1994 | ||
1995 | <param id="112" name="Rainbow Color" value="0.000" /> | 1995 | <param id="112" name="Rainbow Color" value="0.000" /> |
1996 | 1996 | ||
1997 | <param id="113" name="Red Hair" value="0.220" /> | 1997 | <param id="113" name="Red Hair" value="0.220" /> |
1998 | 1998 | ||
1999 | <param id="114" name="Blonde Hair" value="0.000" /> | 1999 | <param id="114" name="Blonde Hair" value="0.000" /> |
2000 | 2000 | ||
2001 | <param id="115" name="White Hair" value="0.000" /> | 2001 | <param id="115" name="White Hair" value="0.000" /> |
2002 | 2002 | ||
2003 | <param id="119" name="Eyebrow Size" value="0.580" /> | 2003 | <param id="119" name="Eyebrow Size" value="0.580" /> |
2004 | 2004 | ||
2005 | <param id="130" name="Front Fringe" value="0.360" /> | 2005 | <param id="130" name="Front Fringe" value="0.360" /> |
2006 | 2006 | ||
2007 | <param id="131" name="Side Fringe" value="0.310" /> | 2007 | <param id="131" name="Side Fringe" value="0.310" /> |
2008 | 2008 | ||
2009 | <param id="132" name="Back Fringe" value="0.050" /> | 2009 | <param id="132" name="Back Fringe" value="0.050" /> |
2010 | 2010 | ||
2011 | <param id="133" name="Hair Front" value="0.100" /> | 2011 | <param id="133" name="Hair Front" value="0.100" /> |
2012 | 2012 | ||
2013 | <param id="134" name="Hair Sides" value="0.170" /> | 2013 | <param id="134" name="Hair Sides" value="0.170" /> |
2014 | 2014 | ||
2015 | <param id="135" name="Hair Back" value="0.450" /> | 2015 | <param id="135" name="Hair Back" value="0.450" /> |
2016 | 2016 | ||
2017 | <param id="136" name="Hair Sweep" value="0.670" /> | 2017 | <param id="136" name="Hair Sweep" value="0.670" /> |
2018 | 2018 | ||
2019 | <param id="137" name="Hair Tilt" value="0.520" /> | 2019 | <param id="137" name="Hair Tilt" value="0.520" /> |
2020 | 2020 | ||
2021 | <param id="140" name="Hair_Part_Middle" value="0.000" /> | 2021 | <param id="140" name="Hair_Part_Middle" value="0.000" /> |
2022 | 2022 | ||
2023 | <param id="141" name="Hair_Part_Right" value="0.000" /> | 2023 | <param id="141" name="Hair_Part_Right" value="0.000" /> |
2024 | 2024 | ||
2025 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 2025 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
2026 | 2026 | ||
2027 | <param id="143" name="Hair_Sides_Full" value="-0.095" /> | 2027 | <param id="143" name="Hair_Sides_Full" value="-0.095" /> |
2028 | 2028 | ||
2029 | <param id="166" name="Sideburns" value="0.000" /> | 2029 | <param id="166" name="Sideburns" value="0.000" /> |
2030 | 2030 | ||
2031 | <param id="167" name="Moustache" value="0.610" /> | 2031 | <param id="167" name="Moustache" value="0.610" /> |
2032 | 2032 | ||
2033 | <param id="168" name="Soulpatch" value="0.420" /> | 2033 | <param id="168" name="Soulpatch" value="0.420" /> |
2034 | 2034 | ||
2035 | <param id="169" name="Chin Curtains" value="0.820" /> | 2035 | <param id="169" name="Chin Curtains" value="0.820" /> |
2036 | 2036 | ||
2037 | <param id="177" name="Hair_Rumpled" value="0.000" /> | 2037 | <param id="177" name="Hair_Rumpled" value="0.000" /> |
2038 | 2038 | ||
2039 | <param id="181" name="Hair_Big_Front" value="-0.160" /> | 2039 | <param id="181" name="Hair_Big_Front" value="-0.160" /> |
2040 | 2040 | ||
2041 | <param id="182" name="Hair_Big_Top" value="-0.080" /> | 2041 | <param id="182" name="Hair_Big_Top" value="-0.080" /> |
2042 | 2042 | ||
2043 | <param id="183" name="Hair_Big_Back" value="0.140" /> | 2043 | <param id="183" name="Hair_Big_Back" value="0.140" /> |
2044 | 2044 | ||
2045 | <param id="184" name="Hair_Spiked" value="0.000" /> | 2045 | <param id="184" name="Hair_Spiked" value="0.000" /> |
2046 | 2046 | ||
2047 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 2047 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
2048 | 2048 | ||
2049 | <param id="674" name="Hair_Shear_Back" value="-0.310" /> | 2049 | <param id="674" name="Hair_Shear_Back" value="-0.310" /> |
2050 | 2050 | ||
2051 | <param id="750" name="Eyebrow Density" value="0.540" /> | 2051 | <param id="750" name="Eyebrow Density" value="0.540" /> |
2052 | 2052 | ||
2053 | <param id="752" name="Hair Thickness" value="0.750" /> | 2053 | <param id="752" name="Hair Thickness" value="0.750" /> |
2054 | 2054 | ||
2055 | <param id="754" name="Hair_Taper_Back" value="-0.400" /> | 2055 | <param id="754" name="Hair_Taper_Back" value="-0.400" /> |
2056 | 2056 | ||
2057 | <param id="755" name="Hair_Taper_Front" value="0.030" /> | 2057 | <param id="755" name="Hair_Taper_Front" value="0.030" /> |
2058 | 2058 | ||
2059 | <param id="757" name="Lower_Eyebrows" value="-2.000" /> | 2059 | <param id="757" name="Lower_Eyebrows" value="-2.000" /> |
2060 | 2060 | ||
2061 | <param id="762" name="Hair_Shear_Front" value="0.600" /> | 2061 | <param id="762" name="Hair_Shear_Front" value="0.600" /> |
2062 | 2062 | ||
2063 | <param id="763" name="Hair Volume" value="0.660" /> | 2063 | <param id="763" name="Hair Volume" value="0.660" /> |
2064 | 2064 | ||
2065 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 2065 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
2066 | 2066 | ||
2067 | <!-- wearable: eyes --> | 2067 | <!-- wearable: eyes --> |
2068 | <param id="98" name="Eye Lightness" value="0.000" /> | 2068 | <param id="98" name="Eye Lightness" value="0.000" /> |
2069 | 2069 | ||
2070 | <param id="99" name="Eye Color" value="0.000" /> | 2070 | <param id="99" name="Eye Color" value="0.000" /> |
2071 | 2071 | ||
2072 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 2072 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
2073 | </archetype> | 2073 | </archetype> |
2074 | 2074 | ||
2075 | <archetype name="M B Muscle"> | 2075 | <archetype name="M B Muscle"> |
2076 | <!-- wearable: shape --> | 2076 | <!-- wearable: shape --> |
2077 | <param id="1" name="Big_Brow" value="0.090" /> | 2077 | <param id="1" name="Big_Brow" value="0.090" /> |
2078 | 2078 | ||
2079 | <param id="2" name="Nose_Big_Out" value="0.090" /> | 2079 | <param id="2" name="Nose_Big_Out" value="0.090" /> |
2080 | 2080 | ||
2081 | <param id="4" name="Broad_Nostrils" value="0.950" /> | 2081 | <param id="4" name="Broad_Nostrils" value="0.950" /> |
2082 | 2082 | ||
2083 | <param id="5" name="Cleft_Chin" value="0.100" /> | 2083 | <param id="5" name="Cleft_Chin" value="0.100" /> |
2084 | 2084 | ||
2085 | <param id="6" name="Bulbous_Nose_Tip" value="-0.010" /> | 2085 | <param id="6" name="Bulbous_Nose_Tip" value="-0.010" /> |
2086 | 2086 | ||
2087 | <param id="7" name="Weak_Chin" value="-0.040" /> | 2087 | <param id="7" name="Weak_Chin" value="-0.040" /> |
2088 | 2088 | ||
2089 | <param id="8" name="Double_Chin" value="-0.040" /> | 2089 | <param id="8" name="Double_Chin" value="-0.040" /> |
2090 | 2090 | ||
2091 | <param id="10" name="Sunken_Cheeks" value="0.880" /> | 2091 | <param id="10" name="Sunken_Cheeks" value="0.880" /> |
2092 | 2092 | ||
2093 | <param id="11" name="Noble_Nose_Bridge" value="0.140" /> | 2093 | <param id="11" name="Noble_Nose_Bridge" value="0.140" /> |
2094 | 2094 | ||
2095 | <param id="12" name="Jowls" value="0.520" /> | 2095 | <param id="12" name="Jowls" value="0.520" /> |
2096 | 2096 | ||
2097 | <param id="13" name="Cleft_Chin_Upper" value="0.190" /> | 2097 | <param id="13" name="Cleft_Chin_Upper" value="0.190" /> |
2098 | 2098 | ||
2099 | <param id="14" name="High_Cheek_Bones" value="0.500" /> | 2099 | <param id="14" name="High_Cheek_Bones" value="0.500" /> |
2100 | 2100 | ||
2101 | <param id="15" name="Ears_Out" value="0.340" /> | 2101 | <param id="15" name="Ears_Out" value="0.340" /> |
2102 | 2102 | ||
2103 | <param id="17" name="Square_Jaw" value="-0.500" /> | 2103 | <param id="17" name="Square_Jaw" value="-0.500" /> |
2104 | 2104 | ||
2105 | <param id="18" name="Puffy_Upper_Cheeks" value="0.540" /> | 2105 | <param id="18" name="Puffy_Upper_Cheeks" value="0.540" /> |
2106 | 2106 | ||
2107 | <param id="19" name="Upturned_Nose_Tip" value="-0.080" /> | 2107 | <param id="19" name="Upturned_Nose_Tip" value="-0.080" /> |
2108 | 2108 | ||
2109 | <param id="20" name="Bulbous_Nose" value="0.520" /> | 2109 | <param id="20" name="Bulbous_Nose" value="0.520" /> |
2110 | 2110 | ||
2111 | <param id="21" name="Upper_Eyelid_Fold" value="0.100" /> | 2111 | <param id="21" name="Upper_Eyelid_Fold" value="0.100" /> |
2112 | 2112 | ||
2113 | <param id="22" name="Attached_Earlobes" value="0.000" /> | 2113 | <param id="22" name="Attached_Earlobes" value="0.000" /> |
2114 | 2114 | ||
2115 | <param id="23" name="Baggy_Eyes" value="0.440" /> | 2115 | <param id="23" name="Baggy_Eyes" value="0.440" /> |
2116 | 2116 | ||
2117 | <param id="24" name="Wide_Eyes" value="0.500" /> | 2117 | <param id="24" name="Wide_Eyes" value="0.500" /> |
2118 | 2118 | ||
2119 | <param id="25" name="Wide_Lip_Cleft" value="-0.410" /> | 2119 | <param id="25" name="Wide_Lip_Cleft" value="-0.410" /> |
2120 | 2120 | ||
2121 | <param id="27" name="Wide_Nose_Bridge" value="0.450" /> | 2121 | <param id="27" name="Wide_Nose_Bridge" value="0.450" /> |
2122 | 2122 | ||
2123 | <param id="33" name="Height" value="1.440" /> | 2123 | <param id="33" name="Height" value="1.440" /> |
2124 | 2124 | ||
2125 | <param id="34" name="Thickness" value="1.190" /> | 2125 | <param id="34" name="Thickness" value="1.190" /> |
2126 | 2126 | ||
2127 | <param id="35" name="Big_Ears" value="-0.040" /> | 2127 | <param id="35" name="Big_Ears" value="-0.040" /> |
2128 | 2128 | ||
2129 | <param id="36" name="Shoulders" value="0.920" /> | 2129 | <param id="36" name="Shoulders" value="0.920" /> |
2130 | 2130 | ||
2131 | <param id="37" name="Hip Width" value="-1.640" /> | 2131 | <param id="37" name="Hip Width" value="-1.640" /> |
2132 | 2132 | ||
2133 | <param id="38" name="Torso Length" value="0.660" /> | 2133 | <param id="38" name="Torso Length" value="0.660" /> |
2134 | 2134 | ||
2135 | <param id="80" name="male" value="1.000" /> | 2135 | <param id="80" name="male" value="1.000" /> |
2136 | 2136 | ||
2137 | <param id="105" name="Breast Size" value="0.500" /> | 2137 | <param id="105" name="Breast Size" value="0.500" /> |
2138 | 2138 | ||
2139 | <param id="151" name="Big_Butt_Legs" value="0.550" /> | 2139 | <param id="151" name="Big_Butt_Legs" value="0.550" /> |
2140 | 2140 | ||
2141 | <param id="155" name="Lip Width" value="0.880" /> | 2141 | <param id="155" name="Lip Width" value="0.880" /> |
2142 | 2142 | ||
2143 | <param id="157" name="Belly Size" value="0.160" /> | 2143 | <param id="157" name="Belly Size" value="0.160" /> |
2144 | 2144 | ||
2145 | <param id="185" name="Deep_Chin" value="0.540" /> | 2145 | <param id="185" name="Deep_Chin" value="0.540" /> |
2146 | 2146 | ||
2147 | <param id="193" name="Head Shape" value="0.140" /> | 2147 | <param id="193" name="Head Shape" value="0.140" /> |
2148 | 2148 | ||
2149 | <param id="196" name="Eye Spacing" value="0.460" /> | 2149 | <param id="196" name="Eye Spacing" value="0.460" /> |
2150 | 2150 | ||
2151 | <param id="505" name="Lip Thickness" value="0.920" /> | 2151 | <param id="505" name="Lip Thickness" value="0.920" /> |
2152 | 2152 | ||
2153 | <param id="506" name="Mouth_Height" value="0.280" /> | 2153 | <param id="506" name="Mouth_Height" value="0.280" /> |
2154 | 2154 | ||
2155 | <param id="507" name="Breast_Gravity" value="0.000" /> | 2155 | <param id="507" name="Breast_Gravity" value="0.000" /> |
2156 | 2156 | ||
2157 | <param id="515" name="Foot_Size" value="2.000" /> | 2157 | <param id="515" name="Foot_Size" value="2.000" /> |
2158 | 2158 | ||
2159 | <param id="517" name="Wide_Nose" value="0.470" /> | 2159 | <param id="517" name="Wide_Nose" value="0.470" /> |
2160 | 2160 | ||
2161 | <param id="518" name="Eyelashes_Long" value="0.640" /> | 2161 | <param id="518" name="Eyelashes_Long" value="0.640" /> |
2162 | 2162 | ||
2163 | <param id="629" name="Forehead Angle" value="0.000" /> | 2163 | <param id="629" name="Forehead Angle" value="0.000" /> |
2164 | 2164 | ||
2165 | <param id="637" name="Body Fat" value="0.010" /> | 2165 | <param id="637" name="Body Fat" value="0.010" /> |
2166 | 2166 | ||
2167 | <param id="646" name="Egg_Head" value="0.330" /> | 2167 | <param id="646" name="Egg_Head" value="0.330" /> |
2168 | 2168 | ||
2169 | <param id="647" name="Squash_Stretch_Head" value="0.440" /> | 2169 | <param id="647" name="Squash_Stretch_Head" value="0.440" /> |
2170 | 2170 | ||
2171 | <param id="649" name="Torso Muscles" value="0.500" /> | 2171 | <param id="649" name="Torso Muscles" value="0.500" /> |
2172 | 2172 | ||
2173 | <param id="650" name="Eyelid_Corner_Up" value="0.430" /> | 2173 | <param id="650" name="Eyelid_Corner_Up" value="0.430" /> |
2174 | 2174 | ||
2175 | <param id="652" name="Leg Muscles" value="0.860" /> | 2175 | <param id="652" name="Leg Muscles" value="0.860" /> |
2176 | 2176 | ||
2177 | <param id="653" name="Tall_Lips" value="0.860" /> | 2177 | <param id="653" name="Tall_Lips" value="0.860" /> |
2178 | 2178 | ||
2179 | <param id="656" name="Crooked_Nose" value="0.000" /> | 2179 | <param id="656" name="Crooked_Nose" value="0.000" /> |
2180 | 2180 | ||
2181 | <param id="659" name="Mouth Corner" value="0.820" /> | 2181 | <param id="659" name="Mouth Corner" value="0.820" /> |
2182 | 2182 | ||
2183 | <param id="662" name="Face Shear" value="0.500" /> | 2183 | <param id="662" name="Face Shear" value="0.500" /> |
2184 | 2184 | ||
2185 | <param id="663" name="Shift_Mouth" value="0.280" /> | 2185 | <param id="663" name="Shift_Mouth" value="0.280" /> |
2186 | 2186 | ||
2187 | <param id="664" name="Pop_Eye" value="-0.260" /> | 2187 | <param id="664" name="Pop_Eye" value="-0.260" /> |
2188 | 2188 | ||
2189 | <param id="665" name="Jaw_Jut" value="0.080" /> | 2189 | <param id="665" name="Jaw_Jut" value="0.080" /> |
2190 | 2190 | ||
2191 | <param id="675" name="Hand Size" value="0.170" /> | 2191 | <param id="675" name="Hand Size" value="0.170" /> |
2192 | 2192 | ||
2193 | <param id="676" name="Love_Handles" value="-0.100" /> | 2193 | <param id="676" name="Love_Handles" value="-0.100" /> |
2194 | 2194 | ||
2195 | <param id="678" name="Torso Muscles" value="0.850" /> | 2195 | <param id="678" name="Torso Muscles" value="0.850" /> |
2196 | 2196 | ||
2197 | <param id="682" name="Head Size" value="0.820" /> | 2197 | <param id="682" name="Head Size" value="0.820" /> |
2198 | 2198 | ||
2199 | <param id="683" name="Neck Thickness" value="0.100" /> | 2199 | <param id="683" name="Neck Thickness" value="0.100" /> |
2200 | 2200 | ||
2201 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> | 2201 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> |
2202 | 2202 | ||
2203 | <param id="685" name="Chest_Male_No_Pecs" value="-0.230" /> | 2203 | <param id="685" name="Chest_Male_No_Pecs" value="-0.230" /> |
2204 | 2204 | ||
2205 | <param id="690" name="Eye Size" value="0.520" /> | 2205 | <param id="690" name="Eye Size" value="0.520" /> |
2206 | 2206 | ||
2207 | <param id="692" name="Leg Length" value="0.600" /> | 2207 | <param id="692" name="Leg Length" value="0.600" /> |
2208 | 2208 | ||
2209 | <param id="693" name="Arm Length" value="0.640" /> | 2209 | <param id="693" name="Arm Length" value="0.640" /> |
2210 | 2210 | ||
2211 | <param id="753" name="Saddlebags" value="0.030" /> | 2211 | <param id="753" name="Saddlebags" value="0.030" /> |
2212 | 2212 | ||
2213 | <param id="756" name="Neck Length" value="0.140" /> | 2213 | <param id="756" name="Neck Length" value="0.140" /> |
2214 | 2214 | ||
2215 | <param id="758" name="Lower_Bridge_Nose" value="-0.420" /> | 2215 | <param id="758" name="Lower_Bridge_Nose" value="-0.420" /> |
2216 | 2216 | ||
2217 | <param id="759" name="Low_Septum_Nose" value="0.030" /> | 2217 | <param id="759" name="Low_Septum_Nose" value="0.030" /> |
2218 | 2218 | ||
2219 | <param id="760" name="Jaw_Angle" value="0.850" /> | 2219 | <param id="760" name="Jaw_Angle" value="0.850" /> |
2220 | 2220 | ||
2221 | <param id="764" name="Lip_Cleft_Deep" value="0.370" /> | 2221 | <param id="764" name="Lip_Cleft_Deep" value="0.370" /> |
2222 | 2222 | ||
2223 | <param id="765" name="Puffy_Lower_Lids" value="0.460" /> | 2223 | <param id="765" name="Puffy_Lower_Lids" value="0.460" /> |
2224 | 2224 | ||
2225 | <param id="769" name="Eye Depth" value="0.740" /> | 2225 | <param id="769" name="Eye Depth" value="0.740" /> |
2226 | 2226 | ||
2227 | <param id="773" name="Head Length" value="0.520" /> | 2227 | <param id="773" name="Head Length" value="0.520" /> |
2228 | 2228 | ||
2229 | <!-- wearable: skin --> | 2229 | <!-- wearable: skin --> |
2230 | <param id="108" name="Rainbow Color" value="0.000" /> | 2230 | <param id="108" name="Rainbow Color" value="0.000" /> |
2231 | 2231 | ||
2232 | <param id="110" name="Red Skin" value="0.010" /> | 2232 | <param id="110" name="Red Skin" value="0.010" /> |
2233 | 2233 | ||
2234 | <param id="111" name="Pigment" value="0.720" /> | 2234 | <param id="111" name="Pigment" value="0.720" /> |
2235 | 2235 | ||
2236 | <param id="116" name="Rosy Complexion" value="0.000" /> | 2236 | <param id="116" name="Rosy Complexion" value="0.000" /> |
2237 | 2237 | ||
2238 | <param id="117" name="Lip Pinkness" value="0.170" /> | 2238 | <param id="117" name="Lip Pinkness" value="0.170" /> |
2239 | 2239 | ||
2240 | <param id="150" name="Body Definition" value="0.820" /> | 2240 | <param id="150" name="Body Definition" value="0.820" /> |
2241 | 2241 | ||
2242 | <param id="162" name="Facial Definition" value="0.870" /> | 2242 | <param id="162" name="Facial Definition" value="0.870" /> |
2243 | 2243 | ||
2244 | <param id="163" name="Wrinkles" value="0.060" /> | 2244 | <param id="163" name="Wrinkles" value="0.060" /> |
2245 | 2245 | ||
2246 | <param id="165" name="Freckles" value="0.000" /> | 2246 | <param id="165" name="Freckles" value="0.000" /> |
2247 | 2247 | ||
2248 | <param id="700" name="Lipstick Color" value="0.250" /> | 2248 | <param id="700" name="Lipstick Color" value="0.250" /> |
2249 | 2249 | ||
2250 | <param id="701" name="Lipstick" value="0.000" /> | 2250 | <param id="701" name="Lipstick" value="0.000" /> |
2251 | 2251 | ||
2252 | <param id="702" name="Lipgloss" value="0.000" /> | 2252 | <param id="702" name="Lipgloss" value="0.000" /> |
2253 | 2253 | ||
2254 | <param id="703" name="Eyeliner" value="0.000" /> | 2254 | <param id="703" name="Eyeliner" value="0.000" /> |
2255 | 2255 | ||
2256 | <param id="704" name="Blush" value="0.000" /> | 2256 | <param id="704" name="Blush" value="0.000" /> |
2257 | 2257 | ||
2258 | <param id="705" name="Blush Color" value="0.500" /> | 2258 | <param id="705" name="Blush Color" value="0.500" /> |
2259 | 2259 | ||
2260 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 2260 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
2261 | 2261 | ||
2262 | <param id="707" name="Outer Shadow" value="0.000" /> | 2262 | <param id="707" name="Outer Shadow" value="0.000" /> |
2263 | 2263 | ||
2264 | <param id="708" name="Out Shdw Color" value="0.000" /> | 2264 | <param id="708" name="Out Shdw Color" value="0.000" /> |
2265 | 2265 | ||
2266 | <param id="709" name="Inner Shadow" value="0.000" /> | 2266 | <param id="709" name="Inner Shadow" value="0.000" /> |
2267 | 2267 | ||
2268 | <param id="710" name="Nail Polish" value="0.000" /> | 2268 | <param id="710" name="Nail Polish" value="0.000" /> |
2269 | 2269 | ||
2270 | <param id="711" name="Blush Opacity" value="0.500" /> | 2270 | <param id="711" name="Blush Opacity" value="0.500" /> |
2271 | 2271 | ||
2272 | <param id="712" name="In Shdw Color" value="0.000" /> | 2272 | <param id="712" name="In Shdw Color" value="0.000" /> |
2273 | 2273 | ||
2274 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 2274 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
2275 | 2275 | ||
2276 | <param id="714" name="Eyeliner Color" value="0.000" /> | 2276 | <param id="714" name="Eyeliner Color" value="0.000" /> |
2277 | 2277 | ||
2278 | <param id="715" name="Nail Polish Color" value="0.000" /> | 2278 | <param id="715" name="Nail Polish Color" value="0.000" /> |
2279 | 2279 | ||
2280 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 2280 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
2281 | 2281 | ||
2282 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 2282 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
2283 | 2283 | ||
2284 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 2284 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
2285 | 2285 | ||
2286 | <!-- wearable: hair --> | 2286 | <!-- wearable: hair --> |
2287 | <param id="16" name="Pointy_Eyebrows" value="0.730" /> | 2287 | <param id="16" name="Pointy_Eyebrows" value="0.730" /> |
2288 | 2288 | ||
2289 | <param id="31" name="Arced_Eyebrows" value="0.930" /> | 2289 | <param id="31" name="Arced_Eyebrows" value="0.930" /> |
2290 | 2290 | ||
2291 | <param id="112" name="Rainbow Color" value="0.000" /> | 2291 | <param id="112" name="Rainbow Color" value="0.000" /> |
2292 | 2292 | ||
2293 | <param id="113" name="Red Hair" value="0.000" /> | 2293 | <param id="113" name="Red Hair" value="0.000" /> |
2294 | 2294 | ||
2295 | <param id="114" name="Blonde Hair" value="0.000" /> | 2295 | <param id="114" name="Blonde Hair" value="0.000" /> |
2296 | 2296 | ||
2297 | <param id="115" name="White Hair" value="0.000" /> | 2297 | <param id="115" name="White Hair" value="0.000" /> |
2298 | 2298 | ||
2299 | <param id="119" name="Eyebrow Size" value="0.330" /> | 2299 | <param id="119" name="Eyebrow Size" value="0.330" /> |
2300 | 2300 | ||
2301 | <param id="130" name="Front Fringe" value="0.000" /> | 2301 | <param id="130" name="Front Fringe" value="0.000" /> |
2302 | 2302 | ||
2303 | <param id="131" name="Side Fringe" value="0.410" /> | 2303 | <param id="131" name="Side Fringe" value="0.410" /> |
2304 | 2304 | ||
2305 | <param id="132" name="Back Fringe" value="0.000" /> | 2305 | <param id="132" name="Back Fringe" value="0.000" /> |
2306 | 2306 | ||
2307 | <param id="133" name="Hair Front" value="0.030" /> | 2307 | <param id="133" name="Hair Front" value="0.030" /> |
2308 | 2308 | ||
2309 | <param id="134" name="Hair Sides" value="0.000" /> | 2309 | <param id="134" name="Hair Sides" value="0.000" /> |
2310 | 2310 | ||
2311 | <param id="135" name="Hair Back" value="0.530" /> | 2311 | <param id="135" name="Hair Back" value="0.530" /> |
2312 | 2312 | ||
2313 | <param id="136" name="Hair Sweep" value="0.570" /> | 2313 | <param id="136" name="Hair Sweep" value="0.570" /> |
2314 | 2314 | ||
2315 | <param id="137" name="Hair Tilt" value="0.540" /> | 2315 | <param id="137" name="Hair Tilt" value="0.540" /> |
2316 | 2316 | ||
2317 | <param id="140" name="Hair_Part_Middle" value="0.000" /> | 2317 | <param id="140" name="Hair_Part_Middle" value="0.000" /> |
2318 | 2318 | ||
2319 | <param id="141" name="Hair_Part_Right" value="0.000" /> | 2319 | <param id="141" name="Hair_Part_Right" value="0.000" /> |
2320 | 2320 | ||
2321 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 2321 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
2322 | 2322 | ||
2323 | <param id="143" name="Hair_Sides_Full" value="-0.095" /> | 2323 | <param id="143" name="Hair_Sides_Full" value="-0.095" /> |
2324 | 2324 | ||
2325 | <param id="166" name="Sideburns" value="0.960" /> | 2325 | <param id="166" name="Sideburns" value="0.960" /> |
2326 | 2326 | ||
2327 | <param id="167" name="Moustache" value="0.000" /> | 2327 | <param id="167" name="Moustache" value="0.000" /> |
2328 | 2328 | ||
2329 | <param id="168" name="Soulpatch" value="0.120" /> | 2329 | <param id="168" name="Soulpatch" value="0.120" /> |
2330 | 2330 | ||
2331 | <param id="169" name="Chin Curtains" value="0.000" /> | 2331 | <param id="169" name="Chin Curtains" value="0.000" /> |
2332 | 2332 | ||
2333 | <param id="177" name="Hair_Rumpled" value="0.040" /> | 2333 | <param id="177" name="Hair_Rumpled" value="0.040" /> |
2334 | 2334 | ||
2335 | <param id="181" name="Hair_Big_Front" value="-0.220" /> | 2335 | <param id="181" name="Hair_Big_Front" value="-0.220" /> |
2336 | 2336 | ||
2337 | <param id="182" name="Hair_Big_Top" value="-0.120" /> | 2337 | <param id="182" name="Hair_Big_Top" value="-0.120" /> |
2338 | 2338 | ||
2339 | <param id="183" name="Hair_Big_Back" value="0.080" /> | 2339 | <param id="183" name="Hair_Big_Back" value="0.080" /> |
2340 | 2340 | ||
2341 | <param id="184" name="Hair_Spiked" value="0.000" /> | 2341 | <param id="184" name="Hair_Spiked" value="0.000" /> |
2342 | 2342 | ||
2343 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 2343 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
2344 | 2344 | ||
2345 | <param id="674" name="Hair_Shear_Back" value="0.860" /> | 2345 | <param id="674" name="Hair_Shear_Back" value="0.860" /> |
2346 | 2346 | ||
2347 | <param id="750" name="Eyebrow Density" value="0.680" /> | 2347 | <param id="750" name="Eyebrow Density" value="0.680" /> |
2348 | 2348 | ||
2349 | <param id="752" name="Hair Thickness" value="0.500" /> | 2349 | <param id="752" name="Hair Thickness" value="0.500" /> |
2350 | 2350 | ||
2351 | <param id="754" name="Hair_Taper_Back" value="-0.130" /> | 2351 | <param id="754" name="Hair_Taper_Back" value="-0.130" /> |
2352 | 2352 | ||
2353 | <param id="755" name="Hair_Taper_Front" value="1.470" /> | 2353 | <param id="755" name="Hair_Taper_Front" value="1.470" /> |
2354 | 2354 | ||
2355 | <param id="757" name="Lower_Eyebrows" value="0.720" /> | 2355 | <param id="757" name="Lower_Eyebrows" value="0.720" /> |
2356 | 2356 | ||
2357 | <param id="762" name="Hair_Shear_Front" value="0.330" /> | 2357 | <param id="762" name="Hair_Shear_Front" value="0.330" /> |
2358 | 2358 | ||
2359 | <param id="763" name="Hair Volume" value="0.870" /> | 2359 | <param id="763" name="Hair Volume" value="0.870" /> |
2360 | 2360 | ||
2361 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 2361 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
2362 | 2362 | ||
2363 | <!-- wearable: eyes --> | 2363 | <!-- wearable: eyes --> |
2364 | <param id="98" name="Eye Lightness" value="0.180" /> | 2364 | <param id="98" name="Eye Lightness" value="0.180" /> |
2365 | 2365 | ||
2366 | <param id="99" name="Eye Color" value="0.060" /> | 2366 | <param id="99" name="Eye Color" value="0.060" /> |
2367 | 2367 | ||
2368 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 2368 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
2369 | </archetype> | 2369 | </archetype> |
2370 | 2370 | ||
2371 | <archetype name="M B Chubby"> | 2371 | <archetype name="M B Chubby"> |
2372 | <!-- wearable: shape --> | 2372 | <!-- wearable: shape --> |
2373 | <param id="1" name="Big_Brow" value="1.240" /> | 2373 | <param id="1" name="Big_Brow" value="1.240" /> |
2374 | 2374 | ||
2375 | <param id="2" name="Nose_Big_Out" value="-0.110" /> | 2375 | <param id="2" name="Nose_Big_Out" value="-0.110" /> |
2376 | 2376 | ||
2377 | <param id="4" name="Broad_Nostrils" value="0.310" /> | 2377 | <param id="4" name="Broad_Nostrils" value="0.310" /> |
2378 | 2378 | ||
2379 | <param id="5" name="Cleft_Chin" value="-0.100" /> | 2379 | <param id="5" name="Cleft_Chin" value="-0.100" /> |
2380 | 2380 | ||
2381 | <param id="6" name="Bulbous_Nose_Tip" value="0.260" /> | 2381 | <param id="6" name="Bulbous_Nose_Tip" value="0.260" /> |
2382 | 2382 | ||
2383 | <param id="7" name="Weak_Chin" value="-0.260" /> | 2383 | <param id="7" name="Weak_Chin" value="-0.260" /> |
2384 | 2384 | ||
2385 | <param id="8" name="Double_Chin" value="0.540" /> | 2385 | <param id="8" name="Double_Chin" value="0.540" /> |
2386 | 2386 | ||
2387 | <param id="10" name="Sunken_Cheeks" value="0.080" /> | 2387 | <param id="10" name="Sunken_Cheeks" value="0.080" /> |
2388 | 2388 | ||
2389 | <param id="11" name="Noble_Nose_Bridge" value="0.020" /> | 2389 | <param id="11" name="Noble_Nose_Bridge" value="0.020" /> |
2390 | 2390 | ||
2391 | <param id="12" name="Jowls" value="1.240" /> | 2391 | <param id="12" name="Jowls" value="1.240" /> |
2392 | 2392 | ||
2393 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> | 2393 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> |
2394 | 2394 | ||
2395 | <param id="14" name="High_Cheek_Bones" value="0.070" /> | 2395 | <param id="14" name="High_Cheek_Bones" value="0.070" /> |
2396 | 2396 | ||
2397 | <param id="15" name="Ears_Out" value="-0.180" /> | 2397 | <param id="15" name="Ears_Out" value="-0.180" /> |
2398 | 2398 | ||
2399 | <param id="17" name="Square_Jaw" value="-0.170" /> | 2399 | <param id="17" name="Square_Jaw" value="-0.170" /> |
2400 | 2400 | ||
2401 | <param id="18" name="Puffy_Upper_Cheeks" value="2.500" /> | 2401 | <param id="18" name="Puffy_Upper_Cheeks" value="2.500" /> |
2402 | 2402 | ||
2403 | <param id="19" name="Upturned_Nose_Tip" value="-0.500" /> | 2403 | <param id="19" name="Upturned_Nose_Tip" value="-0.500" /> |
2404 | 2404 | ||
2405 | <param id="20" name="Bulbous_Nose" value="-0.020" /> | 2405 | <param id="20" name="Bulbous_Nose" value="-0.020" /> |
2406 | 2406 | ||
2407 | <param id="21" name="Upper_Eyelid_Fold" value="0.600" /> | 2407 | <param id="21" name="Upper_Eyelid_Fold" value="0.600" /> |
2408 | 2408 | ||
2409 | <param id="22" name="Attached_Earlobes" value="0.420" /> | 2409 | <param id="22" name="Attached_Earlobes" value="0.420" /> |
2410 | 2410 | ||
2411 | <param id="23" name="Baggy_Eyes" value="0.680" /> | 2411 | <param id="23" name="Baggy_Eyes" value="0.680" /> |
2412 | 2412 | ||
2413 | <param id="24" name="Wide_Eyes" value="1.050" /> | 2413 | <param id="24" name="Wide_Eyes" value="1.050" /> |
2414 | 2414 | ||
2415 | <param id="25" name="Wide_Lip_Cleft" value="-0.250" /> | 2415 | <param id="25" name="Wide_Lip_Cleft" value="-0.250" /> |
2416 | 2416 | ||
2417 | <param id="27" name="Wide_Nose_Bridge" value="-0.320" /> | 2417 | <param id="27" name="Wide_Nose_Bridge" value="-0.320" /> |
2418 | 2418 | ||
2419 | <param id="33" name="Height" value="1.400" /> | 2419 | <param id="33" name="Height" value="1.400" /> |
2420 | 2420 | ||
2421 | <param id="34" name="Thickness" value="1.260" /> | 2421 | <param id="34" name="Thickness" value="1.260" /> |
2422 | 2422 | ||
2423 | <param id="35" name="Big_Ears" value="1.100" /> | 2423 | <param id="35" name="Big_Ears" value="1.100" /> |
2424 | 2424 | ||
2425 | <param id="36" name="Shoulders" value="0.820" /> | 2425 | <param id="36" name="Shoulders" value="0.820" /> |
2426 | 2426 | ||
2427 | <param id="37" name="Hip Width" value="-0.380" /> | 2427 | <param id="37" name="Hip Width" value="-0.380" /> |
2428 | 2428 | ||
2429 | <param id="38" name="Torso Length" value="0.380" /> | 2429 | <param id="38" name="Torso Length" value="0.380" /> |
2430 | 2430 | ||
2431 | <param id="80" name="male" value="1.000" /> | 2431 | <param id="80" name="male" value="1.000" /> |
2432 | 2432 | ||
2433 | <param id="105" name="Breast Size" value="0.500" /> | 2433 | <param id="105" name="Breast Size" value="0.500" /> |
2434 | 2434 | ||
2435 | <param id="151" name="Big_Butt_Legs" value="0.640" /> | 2435 | <param id="151" name="Big_Butt_Legs" value="0.640" /> |
2436 | 2436 | ||
2437 | <param id="155" name="Lip Width" value="0.400" /> | 2437 | <param id="155" name="Lip Width" value="0.400" /> |
2438 | 2438 | ||
2439 | <param id="157" name="Belly Size" value="0.480" /> | 2439 | <param id="157" name="Belly Size" value="0.480" /> |
2440 | 2440 | ||
2441 | <param id="185" name="Deep_Chin" value="0.680" /> | 2441 | <param id="185" name="Deep_Chin" value="0.680" /> |
2442 | 2442 | ||
2443 | <param id="193" name="Head Shape" value="0.950" /> | 2443 | <param id="193" name="Head Shape" value="0.950" /> |
2444 | 2444 | ||
2445 | <param id="196" name="Eye Spacing" value="-0.710" /> | 2445 | <param id="196" name="Eye Spacing" value="-0.710" /> |
2446 | 2446 | ||
2447 | <param id="505" name="Lip Thickness" value="0.840" /> | 2447 | <param id="505" name="Lip Thickness" value="0.840" /> |
2448 | 2448 | ||
2449 | <param id="506" name="Mouth_Height" value="1.000" /> | 2449 | <param id="506" name="Mouth_Height" value="1.000" /> |
2450 | 2450 | ||
2451 | <param id="507" name="Breast_Gravity" value="0.000" /> | 2451 | <param id="507" name="Breast_Gravity" value="0.000" /> |
2452 | 2452 | ||
2453 | <param id="515" name="Foot_Size" value="1.760" /> | 2453 | <param id="515" name="Foot_Size" value="1.760" /> |
2454 | 2454 | ||
2455 | <param id="517" name="Wide_Nose" value="0.070" /> | 2455 | <param id="517" name="Wide_Nose" value="0.070" /> |
2456 | 2456 | ||
2457 | <param id="518" name="Eyelashes_Long" value="0.400" /> | 2457 | <param id="518" name="Eyelashes_Long" value="0.400" /> |
2458 | 2458 | ||
2459 | <param id="629" name="Forehead Angle" value="0.000" /> | 2459 | <param id="629" name="Forehead Angle" value="0.000" /> |
2460 | 2460 | ||
2461 | <param id="637" name="Body Fat" value="0.130" /> | 2461 | <param id="637" name="Body Fat" value="0.130" /> |
2462 | 2462 | ||
2463 | <param id="646" name="Egg_Head" value="-0.910" /> | 2463 | <param id="646" name="Egg_Head" value="-0.910" /> |
2464 | 2464 | ||
2465 | <param id="647" name="Squash_Stretch_Head" value="-0.320" /> | 2465 | <param id="647" name="Squash_Stretch_Head" value="-0.320" /> |
2466 | 2466 | ||
2467 | <param id="649" name="Torso Muscles" value="0.500" /> | 2467 | <param id="649" name="Torso Muscles" value="0.500" /> |
2468 | 2468 | ||
2469 | <param id="650" name="Eyelid_Corner_Up" value="0.130" /> | 2469 | <param id="650" name="Eyelid_Corner_Up" value="0.130" /> |
2470 | 2470 | ||
2471 | <param id="652" name="Leg Muscles" value="0.830" /> | 2471 | <param id="652" name="Leg Muscles" value="0.830" /> |
2472 | 2472 | ||
2473 | <param id="653" name="Tall_Lips" value="0.410" /> | 2473 | <param id="653" name="Tall_Lips" value="0.410" /> |
2474 | 2474 | ||
2475 | <param id="656" name="Crooked_Nose" value="-0.400" /> | 2475 | <param id="656" name="Crooked_Nose" value="-0.400" /> |
2476 | 2476 | ||
2477 | <param id="659" name="Mouth Corner" value="0.580" /> | 2477 | <param id="659" name="Mouth Corner" value="0.580" /> |
2478 | 2478 | ||
2479 | <param id="662" name="Face Shear" value="0.460" /> | 2479 | <param id="662" name="Face Shear" value="0.460" /> |
2480 | 2480 | ||
2481 | <param id="663" name="Shift_Mouth" value="0.000" /> | 2481 | <param id="663" name="Shift_Mouth" value="0.000" /> |
2482 | 2482 | ||
2483 | <param id="664" name="Pop_Eye" value="0.310" /> | 2483 | <param id="664" name="Pop_Eye" value="0.310" /> |
2484 | 2484 | ||
2485 | <param id="665" name="Jaw_Jut" value="0.120" /> | 2485 | <param id="665" name="Jaw_Jut" value="0.120" /> |
2486 | 2486 | ||
2487 | <param id="675" name="Hand Size" value="0.150" /> | 2487 | <param id="675" name="Hand Size" value="0.150" /> |
2488 | 2488 | ||
2489 | <param id="676" name="Love_Handles" value="0.530" /> | 2489 | <param id="676" name="Love_Handles" value="0.530" /> |
2490 | 2490 | ||
2491 | <param id="678" name="Torso Muscles" value="0.850" /> | 2491 | <param id="678" name="Torso Muscles" value="0.850" /> |
2492 | 2492 | ||
2493 | <param id="682" name="Head Size" value="0.810" /> | 2493 | <param id="682" name="Head Size" value="0.810" /> |
2494 | 2494 | ||
2495 | <param id="683" name="Neck Thickness" value="0.100" /> | 2495 | <param id="683" name="Neck Thickness" value="0.100" /> |
2496 | 2496 | ||
2497 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> | 2497 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> |
2498 | 2498 | ||
2499 | <param id="685" name="Chest_Male_No_Pecs" value="-0.020" /> | 2499 | <param id="685" name="Chest_Male_No_Pecs" value="-0.020" /> |
2500 | 2500 | ||
2501 | <param id="690" name="Eye Size" value="0.460" /> | 2501 | <param id="690" name="Eye Size" value="0.460" /> |
2502 | 2502 | ||
2503 | <param id="692" name="Leg Length" value="-0.040" /> | 2503 | <param id="692" name="Leg Length" value="-0.040" /> |
2504 | 2504 | ||
2505 | <param id="693" name="Arm Length" value="0.500" /> | 2505 | <param id="693" name="Arm Length" value="0.500" /> |
2506 | 2506 | ||
2507 | <param id="753" name="Saddlebags" value="0.620" /> | 2507 | <param id="753" name="Saddlebags" value="0.620" /> |
2508 | 2508 | ||
2509 | <param id="756" name="Neck Length" value="-0.160" /> | 2509 | <param id="756" name="Neck Length" value="-0.160" /> |
2510 | 2510 | ||
2511 | <param id="758" name="Lower_Bridge_Nose" value="0.210" /> | 2511 | <param id="758" name="Lower_Bridge_Nose" value="0.210" /> |
2512 | 2512 | ||
2513 | <param id="759" name="Low_Septum_Nose" value="0.650" /> | 2513 | <param id="759" name="Low_Septum_Nose" value="0.650" /> |
2514 | 2514 | ||
2515 | <param id="760" name="Jaw_Angle" value="-0.720" /> | 2515 | <param id="760" name="Jaw_Angle" value="-0.720" /> |
2516 | 2516 | ||
2517 | <param id="764" name="Lip_Cleft_Deep" value="0.440" /> | 2517 | <param id="764" name="Lip_Cleft_Deep" value="0.440" /> |
2518 | 2518 | ||
2519 | <param id="765" name="Puffy_Lower_Lids" value="1.100" /> | 2519 | <param id="765" name="Puffy_Lower_Lids" value="1.100" /> |
2520 | 2520 | ||
2521 | <param id="769" name="Eye Depth" value="0.720" /> | 2521 | <param id="769" name="Eye Depth" value="0.720" /> |
2522 | 2522 | ||
2523 | <param id="773" name="Head Length" value="0.370" /> | 2523 | <param id="773" name="Head Length" value="0.370" /> |
2524 | 2524 | ||
2525 | <!-- wearable: skin --> | 2525 | <!-- wearable: skin --> |
2526 | <param id="108" name="Rainbow Color" value="0.000" /> | 2526 | <param id="108" name="Rainbow Color" value="0.000" /> |
2527 | 2527 | ||
2528 | <param id="110" name="Red Skin" value="0.000" /> | 2528 | <param id="110" name="Red Skin" value="0.000" /> |
2529 | 2529 | ||
2530 | <param id="111" name="Pigment" value="0.600" /> | 2530 | <param id="111" name="Pigment" value="0.600" /> |
2531 | 2531 | ||
2532 | <param id="116" name="Rosy Complexion" value="0.000" /> | 2532 | <param id="116" name="Rosy Complexion" value="0.000" /> |
2533 | 2533 | ||
2534 | <param id="117" name="Lip Pinkness" value="0.560" /> | 2534 | <param id="117" name="Lip Pinkness" value="0.560" /> |
2535 | 2535 | ||
2536 | <param id="150" name="Body Definition" value="0.000" /> | 2536 | <param id="150" name="Body Definition" value="0.000" /> |
2537 | 2537 | ||
2538 | <param id="162" name="Facial Definition" value="0.550" /> | 2538 | <param id="162" name="Facial Definition" value="0.550" /> |
2539 | 2539 | ||
2540 | <param id="163" name="Wrinkles" value="0.520" /> | 2540 | <param id="163" name="Wrinkles" value="0.520" /> |
2541 | 2541 | ||
2542 | <param id="165" name="Freckles" value="0.250" /> | 2542 | <param id="165" name="Freckles" value="0.250" /> |
2543 | 2543 | ||
2544 | <param id="700" name="Lipstick Color" value="0.250" /> | 2544 | <param id="700" name="Lipstick Color" value="0.250" /> |
2545 | 2545 | ||
2546 | <param id="701" name="Lipstick" value="0.000" /> | 2546 | <param id="701" name="Lipstick" value="0.000" /> |
2547 | 2547 | ||
2548 | <param id="702" name="Lipgloss" value="0.000" /> | 2548 | <param id="702" name="Lipgloss" value="0.000" /> |
2549 | 2549 | ||
2550 | <param id="703" name="Eyeliner" value="0.000" /> | 2550 | <param id="703" name="Eyeliner" value="0.000" /> |
2551 | 2551 | ||
2552 | <param id="704" name="Blush" value="0.000" /> | 2552 | <param id="704" name="Blush" value="0.000" /> |
2553 | 2553 | ||
2554 | <param id="705" name="Blush Color" value="0.500" /> | 2554 | <param id="705" name="Blush Color" value="0.500" /> |
2555 | 2555 | ||
2556 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 2556 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
2557 | 2557 | ||
2558 | <param id="707" name="Outer Shadow" value="0.000" /> | 2558 | <param id="707" name="Outer Shadow" value="0.000" /> |
2559 | 2559 | ||
2560 | <param id="708" name="Out Shdw Color" value="0.000" /> | 2560 | <param id="708" name="Out Shdw Color" value="0.000" /> |
2561 | 2561 | ||
2562 | <param id="709" name="Inner Shadow" value="0.000" /> | 2562 | <param id="709" name="Inner Shadow" value="0.000" /> |
2563 | 2563 | ||
2564 | <param id="710" name="Nail Polish" value="0.000" /> | 2564 | <param id="710" name="Nail Polish" value="0.000" /> |
2565 | 2565 | ||
2566 | <param id="711" name="Blush Opacity" value="0.500" /> | 2566 | <param id="711" name="Blush Opacity" value="0.500" /> |
2567 | 2567 | ||
2568 | <param id="712" name="In Shdw Color" value="0.000" /> | 2568 | <param id="712" name="In Shdw Color" value="0.000" /> |
2569 | 2569 | ||
2570 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 2570 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
2571 | 2571 | ||
2572 | <param id="714" name="Eyeliner Color" value="0.000" /> | 2572 | <param id="714" name="Eyeliner Color" value="0.000" /> |
2573 | 2573 | ||
2574 | <param id="715" name="Nail Polish Color" value="0.000" /> | 2574 | <param id="715" name="Nail Polish Color" value="0.000" /> |
2575 | 2575 | ||
2576 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 2576 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
2577 | 2577 | ||
2578 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 2578 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
2579 | 2579 | ||
2580 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 2580 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
2581 | 2581 | ||
2582 | <!-- wearable: hair --> | 2582 | <!-- wearable: hair --> |
2583 | <param id="16" name="Pointy_Eyebrows" value="1.000" /> | 2583 | <param id="16" name="Pointy_Eyebrows" value="1.000" /> |
2584 | 2584 | ||
2585 | <param id="31" name="Arced_Eyebrows" value="0.580" /> | 2585 | <param id="31" name="Arced_Eyebrows" value="0.580" /> |
2586 | 2586 | ||
2587 | <param id="112" name="Rainbow Color" value="0.000" /> | 2587 | <param id="112" name="Rainbow Color" value="0.000" /> |
2588 | 2588 | ||
2589 | <param id="113" name="Red Hair" value="0.000" /> | 2589 | <param id="113" name="Red Hair" value="0.000" /> |
2590 | 2590 | ||
2591 | <param id="114" name="Blonde Hair" value="0.000" /> | 2591 | <param id="114" name="Blonde Hair" value="0.000" /> |
2592 | 2592 | ||
2593 | <param id="115" name="White Hair" value="0.170" /> | 2593 | <param id="115" name="White Hair" value="0.170" /> |
2594 | 2594 | ||
2595 | <param id="119" name="Eyebrow Size" value="0.540" /> | 2595 | <param id="119" name="Eyebrow Size" value="0.540" /> |
2596 | 2596 | ||
2597 | <param id="130" name="Front Fringe" value="0.000" /> | 2597 | <param id="130" name="Front Fringe" value="0.000" /> |
2598 | 2598 | ||
2599 | <param id="131" name="Side Fringe" value="0.230" /> | 2599 | <param id="131" name="Side Fringe" value="0.230" /> |
2600 | 2600 | ||
2601 | <param id="132" name="Back Fringe" value="0.110" /> | 2601 | <param id="132" name="Back Fringe" value="0.110" /> |
2602 | 2602 | ||
2603 | <param id="133" name="Hair Front" value="0.270" /> | 2603 | <param id="133" name="Hair Front" value="0.270" /> |
2604 | 2604 | ||
2605 | <param id="134" name="Hair Sides" value="0.000" /> | 2605 | <param id="134" name="Hair Sides" value="0.000" /> |
2606 | 2606 | ||
2607 | <param id="135" name="Hair Back" value="0.530" /> | 2607 | <param id="135" name="Hair Back" value="0.530" /> |
2608 | 2608 | ||
2609 | <param id="136" name="Hair Sweep" value="0.760" /> | 2609 | <param id="136" name="Hair Sweep" value="0.760" /> |
2610 | 2610 | ||
2611 | <param id="137" name="Hair Tilt" value="0.620" /> | 2611 | <param id="137" name="Hair Tilt" value="0.620" /> |
2612 | 2612 | ||
2613 | <param id="140" name="Hair_Part_Middle" value="0.000" /> | 2613 | <param id="140" name="Hair_Part_Middle" value="0.000" /> |
2614 | 2614 | ||
2615 | <param id="141" name="Hair_Part_Right" value="0.000" /> | 2615 | <param id="141" name="Hair_Part_Right" value="0.000" /> |
2616 | 2616 | ||
2617 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 2617 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
2618 | 2618 | ||
2619 | <param id="143" name="Hair_Sides_Full" value="-0.425" /> | 2619 | <param id="143" name="Hair_Sides_Full" value="-0.425" /> |
2620 | 2620 | ||
2621 | <param id="166" name="Sideburns" value="0.000" /> | 2621 | <param id="166" name="Sideburns" value="0.000" /> |
2622 | 2622 | ||
2623 | <param id="167" name="Moustache" value="0.000" /> | 2623 | <param id="167" name="Moustache" value="0.000" /> |
2624 | 2624 | ||
2625 | <param id="168" name="Soulpatch" value="0.000" /> | 2625 | <param id="168" name="Soulpatch" value="0.000" /> |
2626 | 2626 | ||
2627 | <param id="169" name="Chin Curtains" value="0.000" /> | 2627 | <param id="169" name="Chin Curtains" value="0.000" /> |
2628 | 2628 | ||
2629 | <param id="177" name="Hair_Rumpled" value="1.000" /> | 2629 | <param id="177" name="Hair_Rumpled" value="1.000" /> |
2630 | 2630 | ||
2631 | <param id="181" name="Hair_Big_Front" value="0.240" /> | 2631 | <param id="181" name="Hair_Big_Front" value="0.240" /> |
2632 | 2632 | ||
2633 | <param id="182" name="Hair_Big_Top" value="0.080" /> | 2633 | <param id="182" name="Hair_Big_Top" value="0.080" /> |
2634 | 2634 | ||
2635 | <param id="183" name="Hair_Big_Back" value="0.020" /> | 2635 | <param id="183" name="Hair_Big_Back" value="0.020" /> |
2636 | 2636 | ||
2637 | <param id="184" name="Hair_Spiked" value="0.000" /> | 2637 | <param id="184" name="Hair_Spiked" value="0.000" /> |
2638 | 2638 | ||
2639 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 2639 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
2640 | 2640 | ||
2641 | <param id="674" name="Hair_Shear_Back" value="0.350" /> | 2641 | <param id="674" name="Hair_Shear_Back" value="0.350" /> |
2642 | 2642 | ||
2643 | <param id="750" name="Eyebrow Density" value="0.850" /> | 2643 | <param id="750" name="Eyebrow Density" value="0.850" /> |
2644 | 2644 | ||
2645 | <param id="752" name="Hair Thickness" value="0.000" /> | 2645 | <param id="752" name="Hair Thickness" value="0.000" /> |
2646 | 2646 | ||
2647 | <param id="754" name="Hair_Taper_Back" value="-0.340" /> | 2647 | <param id="754" name="Hair_Taper_Back" value="-0.340" /> |
2648 | 2648 | ||
2649 | <param id="755" name="Hair_Taper_Front" value="-0.330" /> | 2649 | <param id="755" name="Hair_Taper_Front" value="-0.330" /> |
2650 | 2650 | ||
2651 | <param id="757" name="Lower_Eyebrows" value="2.000" /> | 2651 | <param id="757" name="Lower_Eyebrows" value="2.000" /> |
2652 | 2652 | ||
2653 | <param id="762" name="Hair_Shear_Front" value="1.260" /> | 2653 | <param id="762" name="Hair_Shear_Front" value="1.260" /> |
2654 | 2654 | ||
2655 | <param id="763" name="Hair Volume" value="0.770" /> | 2655 | <param id="763" name="Hair Volume" value="0.770" /> |
2656 | 2656 | ||
2657 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 2657 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
2658 | 2658 | ||
2659 | <!-- wearable: eyes --> | 2659 | <!-- wearable: eyes --> |
2660 | <param id="98" name="Eye Lightness" value="0.200" /> | 2660 | <param id="98" name="Eye Lightness" value="0.200" /> |
2661 | 2661 | ||
2662 | <param id="99" name="Eye Color" value="0.000" /> | 2662 | <param id="99" name="Eye Color" value="0.000" /> |
2663 | 2663 | ||
2664 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 2664 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
2665 | </archetype> | 2665 | </archetype> |
2666 | 2666 | ||
2667 | <archetype name="M A Skinny"> | 2667 | <archetype name="M A Skinny"> |
2668 | <!-- wearable: shape --> | 2668 | <!-- wearable: shape --> |
2669 | <param id="1" name="Big_Brow" value="1.680" /> | 2669 | <param id="1" name="Big_Brow" value="1.680" /> |
2670 | 2670 | ||
2671 | <param id="2" name="Nose_Big_Out" value="0.420" /> | 2671 | <param id="2" name="Nose_Big_Out" value="0.420" /> |
2672 | 2672 | ||
2673 | <param id="4" name="Broad_Nostrils" value="0.340" /> | 2673 | <param id="4" name="Broad_Nostrils" value="0.340" /> |
2674 | 2674 | ||
2675 | <param id="5" name="Cleft_Chin" value="0.030" /> | 2675 | <param id="5" name="Cleft_Chin" value="0.030" /> |
2676 | 2676 | ||
2677 | <param id="6" name="Bulbous_Nose_Tip" value="0.120" /> | 2677 | <param id="6" name="Bulbous_Nose_Tip" value="0.120" /> |
2678 | 2678 | ||
2679 | <param id="7" name="Weak_Chin" value="0.020" /> | 2679 | <param id="7" name="Weak_Chin" value="0.020" /> |
2680 | 2680 | ||
2681 | <param id="8" name="Double_Chin" value="0.040" /> | 2681 | <param id="8" name="Double_Chin" value="0.040" /> |
2682 | 2682 | ||
2683 | <param id="10" name="Sunken_Cheeks" value="1.070" /> | 2683 | <param id="10" name="Sunken_Cheeks" value="1.070" /> |
2684 | 2684 | ||
2685 | <param id="11" name="Noble_Nose_Bridge" value="-0.460" /> | 2685 | <param id="11" name="Noble_Nose_Bridge" value="-0.460" /> |
2686 | 2686 | ||
2687 | <param id="12" name="Jowls" value="-0.500" /> | 2687 | <param id="12" name="Jowls" value="-0.500" /> |
2688 | 2688 | ||
2689 | <param id="13" name="Cleft_Chin_Upper" value="0.560" /> | 2689 | <param id="13" name="Cleft_Chin_Upper" value="0.560" /> |
2690 | 2690 | ||
2691 | <param id="14" name="High_Cheek_Bones" value="1.000" /> | 2691 | <param id="14" name="High_Cheek_Bones" value="1.000" /> |
2692 | 2692 | ||
2693 | <param id="15" name="Ears_Out" value="0.160" /> | 2693 | <param id="15" name="Ears_Out" value="0.160" /> |
2694 | 2694 | ||
2695 | <param id="17" name="Square_Jaw" value="0.550" /> | 2695 | <param id="17" name="Square_Jaw" value="0.550" /> |
2696 | 2696 | ||
2697 | <param id="18" name="Puffy_Upper_Cheeks" value="1.220" /> | 2697 | <param id="18" name="Puffy_Upper_Cheeks" value="1.220" /> |
2698 | 2698 | ||
2699 | <param id="19" name="Upturned_Nose_Tip" value="0.300" /> | 2699 | <param id="19" name="Upturned_Nose_Tip" value="0.300" /> |
2700 | 2700 | ||
2701 | <param id="20" name="Bulbous_Nose" value="-0.500" /> | 2701 | <param id="20" name="Bulbous_Nose" value="-0.500" /> |
2702 | 2702 | ||
2703 | <param id="21" name="Upper_Eyelid_Fold" value="1.080" /> | 2703 | <param id="21" name="Upper_Eyelid_Fold" value="1.080" /> |
2704 | 2704 | ||
2705 | <param id="22" name="Attached_Earlobes" value="1.000" /> | 2705 | <param id="22" name="Attached_Earlobes" value="1.000" /> |
2706 | 2706 | ||
2707 | <param id="23" name="Baggy_Eyes" value="0.180" /> | 2707 | <param id="23" name="Baggy_Eyes" value="0.180" /> |
2708 | 2708 | ||
2709 | <param id="24" name="Wide_Eyes" value="-1.430" /> | 2709 | <param id="24" name="Wide_Eyes" value="-1.430" /> |
2710 | 2710 | ||
2711 | <param id="25" name="Wide_Lip_Cleft" value="0.530" /> | 2711 | <param id="25" name="Wide_Lip_Cleft" value="0.530" /> |
2712 | 2712 | ||
2713 | <param id="27" name="Wide_Nose_Bridge" value="-0.930" /> | 2713 | <param id="27" name="Wide_Nose_Bridge" value="-0.930" /> |
2714 | 2714 | ||
2715 | <param id="33" name="Height" value="-0.150" /> | 2715 | <param id="33" name="Height" value="-0.150" /> |
2716 | 2716 | ||
2717 | <param id="34" name="Thickness" value="-0.500" /> | 2717 | <param id="34" name="Thickness" value="-0.500" /> |
2718 | 2718 | ||
2719 | <param id="35" name="Big_Ears" value="-0.040" /> | 2719 | <param id="35" name="Big_Ears" value="-0.040" /> |
2720 | 2720 | ||
2721 | <param id="36" name="Shoulders" value="-0.940" /> | 2721 | <param id="36" name="Shoulders" value="-0.940" /> |
2722 | 2722 | ||
2723 | <param id="37" name="Hip Width" value="-1.580" /> | 2723 | <param id="37" name="Hip Width" value="-1.580" /> |
2724 | 2724 | ||
2725 | <param id="38" name="Torso Length" value="0.020" /> | 2725 | <param id="38" name="Torso Length" value="0.020" /> |
2726 | 2726 | ||
2727 | <param id="80" name="male" value="1.000" /> | 2727 | <param id="80" name="male" value="1.000" /> |
2728 | 2728 | ||
2729 | <param id="105" name="Breast Size" value="0.500" /> | 2729 | <param id="105" name="Breast Size" value="0.500" /> |
2730 | 2730 | ||
2731 | <param id="151" name="Big_Butt_Legs" value="-0.270" /> | 2731 | <param id="151" name="Big_Butt_Legs" value="-0.270" /> |
2732 | 2732 | ||
2733 | <param id="155" name="Lip Width" value="-0.150" /> | 2733 | <param id="155" name="Lip Width" value="-0.150" /> |
2734 | 2734 | ||
2735 | <param id="157" name="Belly Size" value="0.030" /> | 2735 | <param id="157" name="Belly Size" value="0.030" /> |
2736 | 2736 | ||
2737 | <param id="185" name="Deep_Chin" value="0.040" /> | 2737 | <param id="185" name="Deep_Chin" value="0.040" /> |
2738 | 2738 | ||
2739 | <param id="193" name="Head Shape" value="0.660" /> | 2739 | <param id="193" name="Head Shape" value="0.660" /> |
2740 | 2740 | ||
2741 | <param id="196" name="Eye Spacing" value="0.010" /> | 2741 | <param id="196" name="Eye Spacing" value="0.010" /> |
2742 | 2742 | ||
2743 | <param id="505" name="Lip Thickness" value="0.650" /> | 2743 | <param id="505" name="Lip Thickness" value="0.650" /> |
2744 | 2744 | ||
2745 | <param id="506" name="Mouth_Height" value="1.000" /> | 2745 | <param id="506" name="Mouth_Height" value="1.000" /> |
2746 | 2746 | ||
2747 | <param id="507" name="Breast_Gravity" value="0.000" /> | 2747 | <param id="507" name="Breast_Gravity" value="0.000" /> |
2748 | 2748 | ||
2749 | <param id="515" name="Foot_Size" value="0.600" /> | 2749 | <param id="515" name="Foot_Size" value="0.600" /> |
2750 | 2750 | ||
2751 | <param id="517" name="Wide_Nose" value="0.010" /> | 2751 | <param id="517" name="Wide_Nose" value="0.010" /> |
2752 | 2752 | ||
2753 | <param id="518" name="Eyelashes_Long" value="0.290" /> | 2753 | <param id="518" name="Eyelashes_Long" value="0.290" /> |
2754 | 2754 | ||
2755 | <param id="629" name="Forehead Angle" value="0.640" /> | 2755 | <param id="629" name="Forehead Angle" value="0.640" /> |
2756 | 2756 | ||
2757 | <param id="637" name="Body Fat" value="0.060" /> | 2757 | <param id="637" name="Body Fat" value="0.060" /> |
2758 | 2758 | ||
2759 | <param id="646" name="Egg_Head" value="-0.010" /> | 2759 | <param id="646" name="Egg_Head" value="-0.010" /> |
2760 | 2760 | ||
2761 | <param id="647" name="Squash_Stretch_Head" value="0.290" /> | 2761 | <param id="647" name="Squash_Stretch_Head" value="0.290" /> |
2762 | 2762 | ||
2763 | <param id="649" name="Torso Muscles" value="0.500" /> | 2763 | <param id="649" name="Torso Muscles" value="0.500" /> |
2764 | 2764 | ||
2765 | <param id="650" name="Eyelid_Corner_Up" value="-0.930" /> | 2765 | <param id="650" name="Eyelid_Corner_Up" value="-0.930" /> |
2766 | 2766 | ||
2767 | <param id="652" name="Leg Muscles" value="0.450" /> | 2767 | <param id="652" name="Leg Muscles" value="0.450" /> |
2768 | 2768 | ||
2769 | <param id="653" name="Tall_Lips" value="1.100" /> | 2769 | <param id="653" name="Tall_Lips" value="1.100" /> |
2770 | 2770 | ||
2771 | <param id="656" name="Crooked_Nose" value="0.040" /> | 2771 | <param id="656" name="Crooked_Nose" value="0.040" /> |
2772 | 2772 | ||
2773 | <param id="659" name="Mouth Corner" value="0.340" /> | 2773 | <param id="659" name="Mouth Corner" value="0.340" /> |
2774 | 2774 | ||
2775 | <param id="662" name="Face Shear" value="0.600" /> | 2775 | <param id="662" name="Face Shear" value="0.600" /> |
2776 | 2776 | ||
2777 | <param id="663" name="Shift_Mouth" value="0.280" /> | 2777 | <param id="663" name="Shift_Mouth" value="0.280" /> |
2778 | 2778 | ||
2779 | <param id="664" name="Pop_Eye" value="0.100" /> | 2779 | <param id="664" name="Pop_Eye" value="0.100" /> |
2780 | 2780 | ||
2781 | <param id="665" name="Jaw_Jut" value="0.040" /> | 2781 | <param id="665" name="Jaw_Jut" value="0.040" /> |
2782 | 2782 | ||
2783 | <param id="675" name="Hand Size" value="-0.020" /> | 2783 | <param id="675" name="Hand Size" value="-0.020" /> |
2784 | 2784 | ||
2785 | <param id="676" name="Love_Handles" value="-0.010" /> | 2785 | <param id="676" name="Love_Handles" value="-0.010" /> |
2786 | 2786 | ||
2787 | <param id="678" name="Torso Muscles" value="0.290" /> | 2787 | <param id="678" name="Torso Muscles" value="0.290" /> |
2788 | 2788 | ||
2789 | <param id="682" name="Head Size" value="0.480" /> | 2789 | <param id="682" name="Head Size" value="0.480" /> |
2790 | 2790 | ||
2791 | <param id="683" name="Neck Thickness" value="-0.240" /> | 2791 | <param id="683" name="Neck Thickness" value="-0.240" /> |
2792 | 2792 | ||
2793 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> | 2793 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> |
2794 | 2794 | ||
2795 | <param id="685" name="Chest_Male_No_Pecs" value="0.090" /> | 2795 | <param id="685" name="Chest_Male_No_Pecs" value="0.090" /> |
2796 | 2796 | ||
2797 | <param id="690" name="Eye Size" value="0.560" /> | 2797 | <param id="690" name="Eye Size" value="0.560" /> |
2798 | 2798 | ||
2799 | <param id="692" name="Leg Length" value="0.060" /> | 2799 | <param id="692" name="Leg Length" value="0.060" /> |
2800 | 2800 | ||
2801 | <param id="693" name="Arm Length" value="0.380" /> | 2801 | <param id="693" name="Arm Length" value="0.380" /> |
2802 | 2802 | ||
2803 | <param id="753" name="Saddlebags" value="-0.400" /> | 2803 | <param id="753" name="Saddlebags" value="-0.400" /> |
2804 | 2804 | ||
2805 | <param id="756" name="Neck Length" value="-0.020" /> | 2805 | <param id="756" name="Neck Length" value="-0.020" /> |
2806 | 2806 | ||
2807 | <param id="758" name="Lower_Bridge_Nose" value="-0.510" /> | 2807 | <param id="758" name="Lower_Bridge_Nose" value="-0.510" /> |
2808 | 2808 | ||
2809 | <param id="759" name="Low_Septum_Nose" value="0.680" /> | 2809 | <param id="759" name="Low_Septum_Nose" value="0.680" /> |
2810 | 2810 | ||
2811 | <param id="760" name="Jaw_Angle" value="1.296" /> | 2811 | <param id="760" name="Jaw_Angle" value="1.296" /> |
2812 | 2812 | ||
2813 | <param id="764" name="Lip_Cleft_Deep" value="0.350" /> | 2813 | <param id="764" name="Lip_Cleft_Deep" value="0.350" /> |
2814 | 2814 | ||
2815 | <param id="765" name="Puffy_Lower_Lids" value="-0.300" /> | 2815 | <param id="765" name="Puffy_Lower_Lids" value="-0.300" /> |
2816 | 2816 | ||
2817 | <param id="769" name="Eye Depth" value="0.570" /> | 2817 | <param id="769" name="Eye Depth" value="0.570" /> |
2818 | 2818 | ||
2819 | <param id="773" name="Head Length" value="0.170" /> | 2819 | <param id="773" name="Head Length" value="0.170" /> |
2820 | 2820 | ||
2821 | <!-- wearable: skin --> | 2821 | <!-- wearable: skin --> |
2822 | <param id="108" name="Rainbow Color" value="0.000" /> | 2822 | <param id="108" name="Rainbow Color" value="0.000" /> |
2823 | 2823 | ||
2824 | <param id="110" name="Red Skin" value="0.010" /> | 2824 | <param id="110" name="Red Skin" value="0.010" /> |
2825 | 2825 | ||
2826 | <param id="111" name="Pigment" value="0.360" /> | 2826 | <param id="111" name="Pigment" value="0.360" /> |
2827 | 2827 | ||
2828 | <param id="116" name="Rosy Complexion" value="0.000" /> | 2828 | <param id="116" name="Rosy Complexion" value="0.000" /> |
2829 | 2829 | ||
2830 | <param id="117" name="Lip Pinkness" value="0.260" /> | 2830 | <param id="117" name="Lip Pinkness" value="0.260" /> |
2831 | 2831 | ||
2832 | <param id="150" name="Body Definition" value="0.310" /> | 2832 | <param id="150" name="Body Definition" value="0.310" /> |
2833 | 2833 | ||
2834 | <param id="162" name="Facial Definition" value="0.260" /> | 2834 | <param id="162" name="Facial Definition" value="0.260" /> |
2835 | 2835 | ||
2836 | <param id="163" name="Wrinkles" value="0.030" /> | 2836 | <param id="163" name="Wrinkles" value="0.030" /> |
2837 | 2837 | ||
2838 | <param id="165" name="Freckles" value="0.000" /> | 2838 | <param id="165" name="Freckles" value="0.000" /> |
2839 | 2839 | ||
2840 | <param id="700" name="Lipstick Color" value="0.250" /> | 2840 | <param id="700" name="Lipstick Color" value="0.250" /> |
2841 | 2841 | ||
2842 | <param id="701" name="Lipstick" value="0.000" /> | 2842 | <param id="701" name="Lipstick" value="0.000" /> |
2843 | 2843 | ||
2844 | <param id="702" name="Lipgloss" value="0.000" /> | 2844 | <param id="702" name="Lipgloss" value="0.000" /> |
2845 | 2845 | ||
2846 | <param id="703" name="Eyeliner" value="0.000" /> | 2846 | <param id="703" name="Eyeliner" value="0.000" /> |
2847 | 2847 | ||
2848 | <param id="704" name="Blush" value="0.000" /> | 2848 | <param id="704" name="Blush" value="0.000" /> |
2849 | 2849 | ||
2850 | <param id="705" name="Blush Color" value="0.500" /> | 2850 | <param id="705" name="Blush Color" value="0.500" /> |
2851 | 2851 | ||
2852 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 2852 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
2853 | 2853 | ||
2854 | <param id="707" name="Outer Shadow" value="0.000" /> | 2854 | <param id="707" name="Outer Shadow" value="0.000" /> |
2855 | 2855 | ||
2856 | <param id="708" name="Out Shdw Color" value="0.000" /> | 2856 | <param id="708" name="Out Shdw Color" value="0.000" /> |
2857 | 2857 | ||
2858 | <param id="709" name="Inner Shadow" value="0.000" /> | 2858 | <param id="709" name="Inner Shadow" value="0.000" /> |
2859 | 2859 | ||
2860 | <param id="710" name="Nail Polish" value="0.000" /> | 2860 | <param id="710" name="Nail Polish" value="0.000" /> |
2861 | 2861 | ||
2862 | <param id="711" name="Blush Opacity" value="0.500" /> | 2862 | <param id="711" name="Blush Opacity" value="0.500" /> |
2863 | 2863 | ||
2864 | <param id="712" name="In Shdw Color" value="0.000" /> | 2864 | <param id="712" name="In Shdw Color" value="0.000" /> |
2865 | 2865 | ||
2866 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 2866 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
2867 | 2867 | ||
2868 | <param id="714" name="Eyeliner Color" value="0.000" /> | 2868 | <param id="714" name="Eyeliner Color" value="0.000" /> |
2869 | 2869 | ||
2870 | <param id="715" name="Nail Polish Color" value="0.000" /> | 2870 | <param id="715" name="Nail Polish Color" value="0.000" /> |
2871 | 2871 | ||
2872 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 2872 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
2873 | 2873 | ||
2874 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 2874 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
2875 | 2875 | ||
2876 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 2876 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
2877 | 2877 | ||
2878 | <!-- wearable: hair --> | 2878 | <!-- wearable: hair --> |
2879 | <param id="16" name="Pointy_Eyebrows" value="0.805" /> | 2879 | <param id="16" name="Pointy_Eyebrows" value="0.805" /> |
2880 | 2880 | ||
2881 | <param id="31" name="Arced_Eyebrows" value="1.000" /> | 2881 | <param id="31" name="Arced_Eyebrows" value="1.000" /> |
2882 | 2882 | ||
2883 | <param id="112" name="Rainbow Color" value="0.000" /> | 2883 | <param id="112" name="Rainbow Color" value="0.000" /> |
2884 | 2884 | ||
2885 | <param id="113" name="Red Hair" value="0.000" /> | 2885 | <param id="113" name="Red Hair" value="0.000" /> |
2886 | 2886 | ||
2887 | <param id="114" name="Blonde Hair" value="0.000" /> | 2887 | <param id="114" name="Blonde Hair" value="0.000" /> |
2888 | 2888 | ||
2889 | <param id="115" name="White Hair" value="0.000" /> | 2889 | <param id="115" name="White Hair" value="0.000" /> |
2890 | 2890 | ||
2891 | <param id="119" name="Eyebrow Size" value="0.270" /> | 2891 | <param id="119" name="Eyebrow Size" value="0.270" /> |
2892 | 2892 | ||
2893 | <param id="130" name="Front Fringe" value="0.870" /> | 2893 | <param id="130" name="Front Fringe" value="0.870" /> |
2894 | 2894 | ||
2895 | <param id="131" name="Side Fringe" value="0.590" /> | 2895 | <param id="131" name="Side Fringe" value="0.590" /> |
2896 | 2896 | ||
2897 | <param id="132" name="Back Fringe" value="0.550" /> | 2897 | <param id="132" name="Back Fringe" value="0.550" /> |
2898 | 2898 | ||
2899 | <param id="133" name="Hair Front" value="0.220" /> | 2899 | <param id="133" name="Hair Front" value="0.220" /> |
2900 | 2900 | ||
2901 | <param id="134" name="Hair Sides" value="0.350" /> | 2901 | <param id="134" name="Hair Sides" value="0.350" /> |
2902 | 2902 | ||
2903 | <param id="135" name="Hair Back" value="0.470" /> | 2903 | <param id="135" name="Hair Back" value="0.470" /> |
2904 | 2904 | ||
2905 | <param id="136" name="Hair Sweep" value="0.580" /> | 2905 | <param id="136" name="Hair Sweep" value="0.580" /> |
2906 | 2906 | ||
2907 | <param id="137" name="Hair Tilt" value="0.500" /> | 2907 | <param id="137" name="Hair Tilt" value="0.500" /> |
2908 | 2908 | ||
2909 | <param id="140" name="Hair_Part_Middle" value="1.380" /> | 2909 | <param id="140" name="Hair_Part_Middle" value="1.380" /> |
2910 | 2910 | ||
2911 | <param id="141" name="Hair_Part_Right" value="0.000" /> | 2911 | <param id="141" name="Hair_Part_Right" value="0.000" /> |
2912 | 2912 | ||
2913 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 2913 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
2914 | 2914 | ||
2915 | <param id="143" name="Hair_Sides_Full" value="0.235" /> | 2915 | <param id="143" name="Hair_Sides_Full" value="0.235" /> |
2916 | 2916 | ||
2917 | <param id="166" name="Sideburns" value="0.000" /> | 2917 | <param id="166" name="Sideburns" value="0.000" /> |
2918 | 2918 | ||
2919 | <param id="167" name="Moustache" value="0.000" /> | 2919 | <param id="167" name="Moustache" value="0.000" /> |
2920 | 2920 | ||
2921 | <param id="168" name="Soulpatch" value="0.000" /> | 2921 | <param id="168" name="Soulpatch" value="0.000" /> |
2922 | 2922 | ||
2923 | <param id="169" name="Chin Curtains" value="0.000" /> | 2923 | <param id="169" name="Chin Curtains" value="0.000" /> |
2924 | 2924 | ||
2925 | <param id="177" name="Hair_Rumpled" value="0.000" /> | 2925 | <param id="177" name="Hair_Rumpled" value="0.000" /> |
2926 | 2926 | ||
2927 | <param id="181" name="Hair_Big_Front" value="0.120" /> | 2927 | <param id="181" name="Hair_Big_Front" value="0.120" /> |
2928 | 2928 | ||
2929 | <param id="182" name="Hair_Big_Top" value="-0.160" /> | 2929 | <param id="182" name="Hair_Big_Top" value="-0.160" /> |
2930 | 2930 | ||
2931 | <param id="183" name="Hair_Big_Back" value="0.480" /> | 2931 | <param id="183" name="Hair_Big_Back" value="0.480" /> |
2932 | 2932 | ||
2933 | <param id="184" name="Hair_Spiked" value="0.000" /> | 2933 | <param id="184" name="Hair_Spiked" value="0.000" /> |
2934 | 2934 | ||
2935 | <param id="192" name="Bangs_Part_Middle" value="0.620" /> | 2935 | <param id="192" name="Bangs_Part_Middle" value="0.620" /> |
2936 | 2936 | ||
2937 | <param id="674" name="Hair_Shear_Back" value="0.590" /> | 2937 | <param id="674" name="Hair_Shear_Back" value="0.590" /> |
2938 | 2938 | ||
2939 | <param id="750" name="Eyebrow Density" value="0.840" /> | 2939 | <param id="750" name="Eyebrow Density" value="0.840" /> |
2940 | 2940 | ||
2941 | <param id="752" name="Hair Thickness" value="0.250" /> | 2941 | <param id="752" name="Hair Thickness" value="0.250" /> |
2942 | 2942 | ||
2943 | <param id="754" name="Hair_Taper_Back" value="-0.190" /> | 2943 | <param id="754" name="Hair_Taper_Back" value="-0.190" /> |
2944 | 2944 | ||
2945 | <param id="755" name="Hair_Taper_Front" value="0.210" /> | 2945 | <param id="755" name="Hair_Taper_Front" value="0.210" /> |
2946 | 2946 | ||
2947 | <param id="757" name="Lower_Eyebrows" value="2.000" /> | 2947 | <param id="757" name="Lower_Eyebrows" value="2.000" /> |
2948 | 2948 | ||
2949 | <param id="762" name="Hair_Shear_Front" value="0.150" /> | 2949 | <param id="762" name="Hair_Shear_Front" value="0.150" /> |
2950 | 2950 | ||
2951 | <param id="763" name="Hair Volume" value="0.610" /> | 2951 | <param id="763" name="Hair Volume" value="0.610" /> |
2952 | 2952 | ||
2953 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 2953 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
2954 | 2954 | ||
2955 | <!-- wearable: eyes --> | 2955 | <!-- wearable: eyes --> |
2956 | <param id="98" name="Eye Lightness" value="0.370" /> | 2956 | <param id="98" name="Eye Lightness" value="0.370" /> |
2957 | 2957 | ||
2958 | <param id="99" name="Eye Color" value="0.000" /> | 2958 | <param id="99" name="Eye Color" value="0.000" /> |
2959 | 2959 | ||
2960 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 2960 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
2961 | </archetype> | 2961 | </archetype> |
2962 | 2962 | ||
2963 | <archetype name="M A Muscle"> | 2963 | <archetype name="M A Muscle"> |
2964 | <!-- wearable: shape --> | 2964 | <!-- wearable: shape --> |
2965 | <param id="1" name="Big_Brow" value="-0.020" /> | 2965 | <param id="1" name="Big_Brow" value="-0.020" /> |
2966 | 2966 | ||
2967 | <param id="2" name="Nose_Big_Out" value="-0.310" /> | 2967 | <param id="2" name="Nose_Big_Out" value="-0.310" /> |
2968 | 2968 | ||
2969 | <param id="4" name="Broad_Nostrils" value="0.470" /> | 2969 | <param id="4" name="Broad_Nostrils" value="0.470" /> |
2970 | 2970 | ||
2971 | <param id="5" name="Cleft_Chin" value="-0.100" /> | 2971 | <param id="5" name="Cleft_Chin" value="-0.100" /> |
2972 | 2972 | ||
2973 | <param id="6" name="Bulbous_Nose_Tip" value="0.400" /> | 2973 | <param id="6" name="Bulbous_Nose_Tip" value="0.400" /> |
2974 | 2974 | ||
2975 | <param id="7" name="Weak_Chin" value="0.160" /> | 2975 | <param id="7" name="Weak_Chin" value="0.160" /> |
2976 | 2976 | ||
2977 | <param id="8" name="Double_Chin" value="-0.080" /> | 2977 | <param id="8" name="Double_Chin" value="-0.080" /> |
2978 | 2978 | ||
2979 | <param id="10" name="Sunken_Cheeks" value="1.250" /> | 2979 | <param id="10" name="Sunken_Cheeks" value="1.250" /> |
2980 | 2980 | ||
2981 | <param id="11" name="Noble_Nose_Bridge" value="-0.320" /> | 2981 | <param id="11" name="Noble_Nose_Bridge" value="-0.320" /> |
2982 | 2982 | ||
2983 | <param id="12" name="Jowls" value="0.010" /> | 2983 | <param id="12" name="Jowls" value="0.010" /> |
2984 | 2984 | ||
2985 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> | 2985 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> |
2986 | 2986 | ||
2987 | <param id="14" name="High_Cheek_Bones" value="0.650" /> | 2987 | <param id="14" name="High_Cheek_Bones" value="0.650" /> |
2988 | 2988 | ||
2989 | <param id="15" name="Ears_Out" value="-0.080" /> | 2989 | <param id="15" name="Ears_Out" value="-0.080" /> |
2990 | 2990 | ||
2991 | <param id="17" name="Square_Jaw" value="0.540" /> | 2991 | <param id="17" name="Square_Jaw" value="0.540" /> |
2992 | 2992 | ||
2993 | <param id="18" name="Puffy_Upper_Cheeks" value="1.620" /> | 2993 | <param id="18" name="Puffy_Upper_Cheeks" value="1.620" /> |
2994 | 2994 | ||
2995 | <param id="19" name="Upturned_Nose_Tip" value="-0.080" /> | 2995 | <param id="19" name="Upturned_Nose_Tip" value="-0.080" /> |
2996 | 2996 | ||
2997 | <param id="20" name="Bulbous_Nose" value="-0.460" /> | 2997 | <param id="20" name="Bulbous_Nose" value="-0.460" /> |
2998 | 2998 | ||
2999 | <param id="21" name="Upper_Eyelid_Fold" value="1.300" /> | 2999 | <param id="21" name="Upper_Eyelid_Fold" value="1.300" /> |
3000 | 3000 | ||
3001 | <param id="22" name="Attached_Earlobes" value="1.000" /> | 3001 | <param id="22" name="Attached_Earlobes" value="1.000" /> |
3002 | 3002 | ||
3003 | <param id="23" name="Baggy_Eyes" value="0.540" /> | 3003 | <param id="23" name="Baggy_Eyes" value="0.540" /> |
3004 | 3004 | ||
3005 | <param id="24" name="Wide_Eyes" value="-0.900" /> | 3005 | <param id="24" name="Wide_Eyes" value="-0.900" /> |
3006 | 3006 | ||
3007 | <param id="25" name="Wide_Lip_Cleft" value="1.020" /> | 3007 | <param id="25" name="Wide_Lip_Cleft" value="1.020" /> |
3008 | 3008 | ||
3009 | <param id="27" name="Wide_Nose_Bridge" value="-0.170" /> | 3009 | <param id="27" name="Wide_Nose_Bridge" value="-0.170" /> |
3010 | 3010 | ||
3011 | <param id="33" name="Height" value="0.580" /> | 3011 | <param id="33" name="Height" value="0.580" /> |
3012 | 3012 | ||
3013 | <param id="34" name="Thickness" value="0.250" /> | 3013 | <param id="34" name="Thickness" value="0.250" /> |
3014 | 3014 | ||
3015 | <param id="35" name="Big_Ears" value="-0.040" /> | 3015 | <param id="35" name="Big_Ears" value="-0.040" /> |
3016 | 3016 | ||
3017 | <param id="36" name="Shoulders" value="-0.650" /> | 3017 | <param id="36" name="Shoulders" value="-0.650" /> |
3018 | 3018 | ||
3019 | <param id="37" name="Hip Width" value="-0.800" /> | 3019 | <param id="37" name="Hip Width" value="-0.800" /> |
3020 | 3020 | ||
3021 | <param id="38" name="Torso Length" value="0.800" /> | 3021 | <param id="38" name="Torso Length" value="0.800" /> |
3022 | 3022 | ||
3023 | <param id="80" name="male" value="1.000" /> | 3023 | <param id="80" name="male" value="1.000" /> |
3024 | 3024 | ||
3025 | <param id="105" name="Breast Size" value="0.500" /> | 3025 | <param id="105" name="Breast Size" value="0.500" /> |
3026 | 3026 | ||
3027 | <param id="151" name="Big_Butt_Legs" value="-0.290" /> | 3027 | <param id="151" name="Big_Butt_Legs" value="-0.290" /> |
3028 | 3028 | ||
3029 | <param id="155" name="Lip Width" value="-0.500" /> | 3029 | <param id="155" name="Lip Width" value="-0.500" /> |
3030 | 3030 | ||
3031 | <param id="157" name="Belly Size" value="0.070" /> | 3031 | <param id="157" name="Belly Size" value="0.070" /> |
3032 | 3032 | ||
3033 | <param id="185" name="Deep_Chin" value="0.180" /> | 3033 | <param id="185" name="Deep_Chin" value="0.180" /> |
3034 | 3034 | ||
3035 | <param id="193" name="Head Shape" value="0.830" /> | 3035 | <param id="193" name="Head Shape" value="0.830" /> |
3036 | 3036 | ||
3037 | <param id="196" name="Eye Spacing" value="0.070" /> | 3037 | <param id="196" name="Eye Spacing" value="0.070" /> |
3038 | 3038 | ||
3039 | <param id="505" name="Lip Thickness" value="0.720" /> | 3039 | <param id="505" name="Lip Thickness" value="0.720" /> |
3040 | 3040 | ||
3041 | <param id="506" name="Mouth_Height" value="0.880" /> | 3041 | <param id="506" name="Mouth_Height" value="0.880" /> |
3042 | 3042 | ||
3043 | <param id="507" name="Breast_Gravity" value="0.000" /> | 3043 | <param id="507" name="Breast_Gravity" value="0.000" /> |
3044 | 3044 | ||
3045 | <param id="515" name="Foot_Size" value="1.160" /> | 3045 | <param id="515" name="Foot_Size" value="1.160" /> |
3046 | 3046 | ||
3047 | <param id="517" name="Wide_Nose" value="0.250" /> | 3047 | <param id="517" name="Wide_Nose" value="0.250" /> |
3048 | 3048 | ||
3049 | <param id="518" name="Eyelashes_Long" value="0.020" /> | 3049 | <param id="518" name="Eyelashes_Long" value="0.020" /> |
3050 | 3050 | ||
3051 | <param id="629" name="Forehead Angle" value="1.000" /> | 3051 | <param id="629" name="Forehead Angle" value="1.000" /> |
3052 | 3052 | ||
3053 | <param id="637" name="Body Fat" value="0.140" /> | 3053 | <param id="637" name="Body Fat" value="0.140" /> |
3054 | 3054 | ||
3055 | <param id="646" name="Egg_Head" value="-0.200" /> | 3055 | <param id="646" name="Egg_Head" value="-0.200" /> |
3056 | 3056 | ||
3057 | <param id="647" name="Squash_Stretch_Head" value="0.310" /> | 3057 | <param id="647" name="Squash_Stretch_Head" value="0.310" /> |
3058 | 3058 | ||
3059 | <param id="649" name="Torso Muscles" value="0.500" /> | 3059 | <param id="649" name="Torso Muscles" value="0.500" /> |
3060 | 3060 | ||
3061 | <param id="650" name="Eyelid_Corner_Up" value="0.570" /> | 3061 | <param id="650" name="Eyelid_Corner_Up" value="0.570" /> |
3062 | 3062 | ||
3063 | <param id="652" name="Leg Muscles" value="0.680" /> | 3063 | <param id="652" name="Leg Muscles" value="0.680" /> |
3064 | 3064 | ||
3065 | <param id="653" name="Tall_Lips" value="1.280" /> | 3065 | <param id="653" name="Tall_Lips" value="1.280" /> |
3066 | 3066 | ||
3067 | <param id="656" name="Crooked_Nose" value="-0.200" /> | 3067 | <param id="656" name="Crooked_Nose" value="-0.200" /> |
3068 | 3068 | ||
3069 | <param id="659" name="Mouth Corner" value="0.330" /> | 3069 | <param id="659" name="Mouth Corner" value="0.330" /> |
3070 | 3070 | ||
3071 | <param id="662" name="Face Shear" value="0.520" /> | 3071 | <param id="662" name="Face Shear" value="0.520" /> |
3072 | 3072 | ||
3073 | <param id="663" name="Shift_Mouth" value="0.200" /> | 3073 | <param id="663" name="Shift_Mouth" value="0.200" /> |
3074 | 3074 | ||
3075 | <param id="664" name="Pop_Eye" value="-0.080" /> | 3075 | <param id="664" name="Pop_Eye" value="-0.080" /> |
3076 | 3076 | ||
3077 | <param id="665" name="Jaw_Jut" value="-0.160" /> | 3077 | <param id="665" name="Jaw_Jut" value="-0.160" /> |
3078 | 3078 | ||
3079 | <param id="675" name="Hand Size" value="-0.070" /> | 3079 | <param id="675" name="Hand Size" value="-0.070" /> |
3080 | 3080 | ||
3081 | <param id="676" name="Love_Handles" value="-0.250" /> | 3081 | <param id="676" name="Love_Handles" value="-0.250" /> |
3082 | 3082 | ||
3083 | <param id="678" name="Torso Muscles" value="0.540" /> | 3083 | <param id="678" name="Torso Muscles" value="0.540" /> |
3084 | 3084 | ||
3085 | <param id="682" name="Head Size" value="0.730" /> | 3085 | <param id="682" name="Head Size" value="0.730" /> |
3086 | 3086 | ||
3087 | <param id="683" name="Neck Thickness" value="-0.030" /> | 3087 | <param id="683" name="Neck Thickness" value="-0.030" /> |
3088 | 3088 | ||
3089 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> | 3089 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> |
3090 | 3090 | ||
3091 | <param id="685" name="Chest_Male_No_Pecs" value="-0.180" /> | 3091 | <param id="685" name="Chest_Male_No_Pecs" value="-0.180" /> |
3092 | 3092 | ||
3093 | <param id="690" name="Eye Size" value="0.620" /> | 3093 | <param id="690" name="Eye Size" value="0.620" /> |
3094 | 3094 | ||
3095 | <param id="692" name="Leg Length" value="0.400" /> | 3095 | <param id="692" name="Leg Length" value="0.400" /> |
3096 | 3096 | ||
3097 | <param id="693" name="Arm Length" value="0.780" /> | 3097 | <param id="693" name="Arm Length" value="0.780" /> |
3098 | 3098 | ||
3099 | <param id="753" name="Saddlebags" value="0.090" /> | 3099 | <param id="753" name="Saddlebags" value="0.090" /> |
3100 | 3100 | ||
3101 | <param id="756" name="Neck Length" value="0.140" /> | 3101 | <param id="756" name="Neck Length" value="0.140" /> |
3102 | 3102 | ||
3103 | <param id="758" name="Lower_Bridge_Nose" value="-0.300" /> | 3103 | <param id="758" name="Lower_Bridge_Nose" value="-0.300" /> |
3104 | 3104 | ||
3105 | <param id="759" name="Low_Septum_Nose" value="0.320" /> | 3105 | <param id="759" name="Low_Septum_Nose" value="0.320" /> |
3106 | 3106 | ||
3107 | <param id="760" name="Jaw_Angle" value="0.750" /> | 3107 | <param id="760" name="Jaw_Angle" value="0.750" /> |
3108 | 3108 | ||
3109 | <param id="764" name="Lip_Cleft_Deep" value="-0.380" /> | 3109 | <param id="764" name="Lip_Cleft_Deep" value="-0.380" /> |
3110 | 3110 | ||
3111 | <param id="765" name="Puffy_Lower_Lids" value="0.790" /> | 3111 | <param id="765" name="Puffy_Lower_Lids" value="0.790" /> |
3112 | 3112 | ||
3113 | <param id="769" name="Eye Depth" value="0.650" /> | 3113 | <param id="769" name="Eye Depth" value="0.650" /> |
3114 | 3114 | ||
3115 | <param id="773" name="Head Length" value="0.240" /> | 3115 | <param id="773" name="Head Length" value="0.240" /> |
3116 | 3116 | ||
3117 | <!-- wearable: skin --> | 3117 | <!-- wearable: skin --> |
3118 | <param id="108" name="Rainbow Color" value="0.000" /> | 3118 | <param id="108" name="Rainbow Color" value="0.000" /> |
3119 | 3119 | ||
3120 | <param id="110" name="Red Skin" value="0.000" /> | 3120 | <param id="110" name="Red Skin" value="0.000" /> |
3121 | 3121 | ||
3122 | <param id="111" name="Pigment" value="0.220" /> | 3122 | <param id="111" name="Pigment" value="0.220" /> |
3123 | 3123 | ||
3124 | <param id="116" name="Rosy Complexion" value="0.020" /> | 3124 | <param id="116" name="Rosy Complexion" value="0.020" /> |
3125 | 3125 | ||
3126 | <param id="117" name="Lip Pinkness" value="0.000" /> | 3126 | <param id="117" name="Lip Pinkness" value="0.000" /> |
3127 | 3127 | ||
3128 | <param id="150" name="Body Definition" value="0.820" /> | 3128 | <param id="150" name="Body Definition" value="0.820" /> |
3129 | 3129 | ||
3130 | <param id="162" name="Facial Definition" value="0.600" /> | 3130 | <param id="162" name="Facial Definition" value="0.600" /> |
3131 | 3131 | ||
3132 | <param id="163" name="Wrinkles" value="0.040" /> | 3132 | <param id="163" name="Wrinkles" value="0.040" /> |
3133 | 3133 | ||
3134 | <param id="165" name="Freckles" value="0.000" /> | 3134 | <param id="165" name="Freckles" value="0.000" /> |
3135 | 3135 | ||
3136 | <param id="700" name="Lipstick Color" value="0.250" /> | 3136 | <param id="700" name="Lipstick Color" value="0.250" /> |
3137 | 3137 | ||
3138 | <param id="701" name="Lipstick" value="0.000" /> | 3138 | <param id="701" name="Lipstick" value="0.000" /> |
3139 | 3139 | ||
3140 | <param id="702" name="Lipgloss" value="0.000" /> | 3140 | <param id="702" name="Lipgloss" value="0.000" /> |
3141 | 3141 | ||
3142 | <param id="703" name="Eyeliner" value="0.000" /> | 3142 | <param id="703" name="Eyeliner" value="0.000" /> |
3143 | 3143 | ||
3144 | <param id="704" name="Blush" value="0.000" /> | 3144 | <param id="704" name="Blush" value="0.000" /> |
3145 | 3145 | ||
3146 | <param id="705" name="Blush Color" value="0.500" /> | 3146 | <param id="705" name="Blush Color" value="0.500" /> |
3147 | 3147 | ||
3148 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 3148 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
3149 | 3149 | ||
3150 | <param id="707" name="Outer Shadow" value="0.000" /> | 3150 | <param id="707" name="Outer Shadow" value="0.000" /> |
3151 | 3151 | ||
3152 | <param id="708" name="Out Shdw Color" value="0.000" /> | 3152 | <param id="708" name="Out Shdw Color" value="0.000" /> |
3153 | 3153 | ||
3154 | <param id="709" name="Inner Shadow" value="0.000" /> | 3154 | <param id="709" name="Inner Shadow" value="0.000" /> |
3155 | 3155 | ||
3156 | <param id="710" name="Nail Polish" value="0.000" /> | 3156 | <param id="710" name="Nail Polish" value="0.000" /> |
3157 | 3157 | ||
3158 | <param id="711" name="Blush Opacity" value="0.500" /> | 3158 | <param id="711" name="Blush Opacity" value="0.500" /> |
3159 | 3159 | ||
3160 | <param id="712" name="In Shdw Color" value="0.000" /> | 3160 | <param id="712" name="In Shdw Color" value="0.000" /> |
3161 | 3161 | ||
3162 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 3162 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
3163 | 3163 | ||
3164 | <param id="714" name="Eyeliner Color" value="0.000" /> | 3164 | <param id="714" name="Eyeliner Color" value="0.000" /> |
3165 | 3165 | ||
3166 | <param id="715" name="Nail Polish Color" value="0.000" /> | 3166 | <param id="715" name="Nail Polish Color" value="0.000" /> |
3167 | 3167 | ||
3168 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 3168 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
3169 | 3169 | ||
3170 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 3170 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
3171 | 3171 | ||
3172 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 3172 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
3173 | 3173 | ||
3174 | <!-- wearable: hair --> | 3174 | <!-- wearable: hair --> |
3175 | <param id="16" name="Pointy_Eyebrows" value="0.580" /> | 3175 | <param id="16" name="Pointy_Eyebrows" value="0.580" /> |
3176 | 3176 | ||
3177 | <param id="31" name="Arced_Eyebrows" value="0.650" /> | 3177 | <param id="31" name="Arced_Eyebrows" value="0.650" /> |
3178 | 3178 | ||
3179 | <param id="112" name="Rainbow Color" value="0.000" /> | 3179 | <param id="112" name="Rainbow Color" value="0.000" /> |
3180 | 3180 | ||
3181 | <param id="113" name="Red Hair" value="0.010" /> | 3181 | <param id="113" name="Red Hair" value="0.010" /> |
3182 | 3182 | ||
3183 | <param id="114" name="Blonde Hair" value="0.000" /> | 3183 | <param id="114" name="Blonde Hair" value="0.000" /> |
3184 | 3184 | ||
3185 | <param id="115" name="White Hair" value="0.000" /> | 3185 | <param id="115" name="White Hair" value="0.000" /> |
3186 | 3186 | ||
3187 | <param id="119" name="Eyebrow Size" value="0.400" /> | 3187 | <param id="119" name="Eyebrow Size" value="0.400" /> |
3188 | 3188 | ||
3189 | <param id="130" name="Front Fringe" value="0.350" /> | 3189 | <param id="130" name="Front Fringe" value="0.350" /> |
3190 | 3190 | ||
3191 | <param id="131" name="Side Fringe" value="0.520" /> | 3191 | <param id="131" name="Side Fringe" value="0.520" /> |
3192 | 3192 | ||
3193 | <param id="132" name="Back Fringe" value="0.470" /> | 3193 | <param id="132" name="Back Fringe" value="0.470" /> |
3194 | 3194 | ||
3195 | <param id="133" name="Hair Front" value="0.000" /> | 3195 | <param id="133" name="Hair Front" value="0.000" /> |
3196 | 3196 | ||
3197 | <param id="134" name="Hair Sides" value="0.580" /> | 3197 | <param id="134" name="Hair Sides" value="0.580" /> |
3198 | 3198 | ||
3199 | <param id="135" name="Hair Back" value="0.540" /> | 3199 | <param id="135" name="Hair Back" value="0.540" /> |
3200 | 3200 | ||
3201 | <param id="136" name="Hair Sweep" value="0.880" /> | 3201 | <param id="136" name="Hair Sweep" value="0.880" /> |
3202 | 3202 | ||
3203 | <param id="137" name="Hair Tilt" value="0.470" /> | 3203 | <param id="137" name="Hair Tilt" value="0.470" /> |
3204 | 3204 | ||
3205 | <param id="140" name="Hair_Part_Middle" value="0.000" /> | 3205 | <param id="140" name="Hair_Part_Middle" value="0.000" /> |
3206 | 3206 | ||
3207 | <param id="141" name="Hair_Part_Right" value="1.520" /> | 3207 | <param id="141" name="Hair_Part_Right" value="1.520" /> |
3208 | 3208 | ||
3209 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 3209 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
3210 | 3210 | ||
3211 | <param id="143" name="Hair_Sides_Full" value="0.345" /> | 3211 | <param id="143" name="Hair_Sides_Full" value="0.345" /> |
3212 | 3212 | ||
3213 | <param id="166" name="Sideburns" value="0.000" /> | 3213 | <param id="166" name="Sideburns" value="0.000" /> |
3214 | 3214 | ||
3215 | <param id="167" name="Moustache" value="0.120" /> | 3215 | <param id="167" name="Moustache" value="0.120" /> |
3216 | 3216 | ||
3217 | <param id="168" name="Soulpatch" value="0.270" /> | 3217 | <param id="168" name="Soulpatch" value="0.270" /> |
3218 | 3218 | ||
3219 | <param id="169" name="Chin Curtains" value="0.090" /> | 3219 | <param id="169" name="Chin Curtains" value="0.090" /> |
3220 | 3220 | ||
3221 | <param id="177" name="Hair_Rumpled" value="0.180" /> | 3221 | <param id="177" name="Hair_Rumpled" value="0.180" /> |
3222 | 3222 | ||
3223 | <param id="181" name="Hair_Big_Front" value="0.520" /> | 3223 | <param id="181" name="Hair_Big_Front" value="0.520" /> |
3224 | 3224 | ||
3225 | <param id="182" name="Hair_Big_Top" value="0.200" /> | 3225 | <param id="182" name="Hair_Big_Top" value="0.200" /> |
3226 | 3226 | ||
3227 | <param id="183" name="Hair_Big_Back" value="0.060" /> | 3227 | <param id="183" name="Hair_Big_Back" value="0.060" /> |
3228 | 3228 | ||
3229 | <param id="184" name="Hair_Spiked" value="0.000" /> | 3229 | <param id="184" name="Hair_Spiked" value="0.000" /> |
3230 | 3230 | ||
3231 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 3231 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
3232 | 3232 | ||
3233 | <param id="674" name="Hair_Shear_Back" value="0.110" /> | 3233 | <param id="674" name="Hair_Shear_Back" value="0.110" /> |
3234 | 3234 | ||
3235 | <param id="750" name="Eyebrow Density" value="1.000" /> | 3235 | <param id="750" name="Eyebrow Density" value="1.000" /> |
3236 | 3236 | ||
3237 | <param id="752" name="Hair Thickness" value="0.470" /> | 3237 | <param id="752" name="Hair Thickness" value="0.470" /> |
3238 | 3238 | ||
3239 | <param id="754" name="Hair_Taper_Back" value="0.200" /> | 3239 | <param id="754" name="Hair_Taper_Back" value="0.200" /> |
3240 | 3240 | ||
3241 | <param id="755" name="Hair_Taper_Front" value="-0.240" /> | 3241 | <param id="755" name="Hair_Taper_Front" value="-0.240" /> |
3242 | 3242 | ||
3243 | <param id="757" name="Lower_Eyebrows" value="-0.760" /> | 3243 | <param id="757" name="Lower_Eyebrows" value="-0.760" /> |
3244 | 3244 | ||
3245 | <param id="762" name="Hair_Shear_Front" value="0.810" /> | 3245 | <param id="762" name="Hair_Shear_Front" value="0.810" /> |
3246 | 3246 | ||
3247 | <param id="763" name="Hair Volume" value="0.520" /> | 3247 | <param id="763" name="Hair Volume" value="0.520" /> |
3248 | 3248 | ||
3249 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 3249 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
3250 | 3250 | ||
3251 | <!-- wearable: eyes --> | 3251 | <!-- wearable: eyes --> |
3252 | <param id="98" name="Eye Lightness" value="0.000" /> | 3252 | <param id="98" name="Eye Lightness" value="0.000" /> |
3253 | 3253 | ||
3254 | <param id="99" name="Eye Color" value="0.000" /> | 3254 | <param id="99" name="Eye Color" value="0.000" /> |
3255 | 3255 | ||
3256 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 3256 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
3257 | </archetype> | 3257 | </archetype> |
3258 | 3258 | ||
3259 | <archetype name="M A Chubby"> | 3259 | <archetype name="M A Chubby"> |
3260 | <!-- wearable: shape --> | 3260 | <!-- wearable: shape --> |
3261 | <param id="1" name="Big_Brow" value="1.130" /> | 3261 | <param id="1" name="Big_Brow" value="1.130" /> |
3262 | 3262 | ||
3263 | <param id="2" name="Nose_Big_Out" value="0.590" /> | 3263 | <param id="2" name="Nose_Big_Out" value="0.590" /> |
3264 | 3264 | ||
3265 | <param id="4" name="Broad_Nostrils" value="-0.060" /> | 3265 | <param id="4" name="Broad_Nostrils" value="-0.060" /> |
3266 | 3266 | ||
3267 | <param id="5" name="Cleft_Chin" value="-0.100" /> | 3267 | <param id="5" name="Cleft_Chin" value="-0.100" /> |
3268 | 3268 | ||
3269 | <param id="6" name="Bulbous_Nose_Tip" value="-0.300" /> | 3269 | <param id="6" name="Bulbous_Nose_Tip" value="-0.300" /> |
3270 | 3270 | ||
3271 | <param id="7" name="Weak_Chin" value="-0.260" /> | 3271 | <param id="7" name="Weak_Chin" value="-0.260" /> |
3272 | 3272 | ||
3273 | <param id="8" name="Double_Chin" value="0.620" /> | 3273 | <param id="8" name="Double_Chin" value="0.620" /> |
3274 | 3274 | ||
3275 | <param id="10" name="Sunken_Cheeks" value="-0.780" /> | 3275 | <param id="10" name="Sunken_Cheeks" value="-0.780" /> |
3276 | 3276 | ||
3277 | <param id="11" name="Noble_Nose_Bridge" value="-0.500" /> | 3277 | <param id="11" name="Noble_Nose_Bridge" value="-0.500" /> |
3278 | 3278 | ||
3279 | <param id="12" name="Jowls" value="-0.080" /> | 3279 | <param id="12" name="Jowls" value="-0.080" /> |
3280 | 3280 | ||
3281 | <param id="13" name="Cleft_Chin_Upper" value="0.440" /> | 3281 | <param id="13" name="Cleft_Chin_Upper" value="0.440" /> |
3282 | 3282 | ||
3283 | <param id="14" name="High_Cheek_Bones" value="0.580" /> | 3283 | <param id="14" name="High_Cheek_Bones" value="0.580" /> |
3284 | 3284 | ||
3285 | <param id="15" name="Ears_Out" value="-0.500" /> | 3285 | <param id="15" name="Ears_Out" value="-0.500" /> |
3286 | 3286 | ||
3287 | <param id="17" name="Square_Jaw" value="-0.500" /> | 3287 | <param id="17" name="Square_Jaw" value="-0.500" /> |
3288 | 3288 | ||
3289 | <param id="18" name="Puffy_Upper_Cheeks" value="2.380" /> | 3289 | <param id="18" name="Puffy_Upper_Cheeks" value="2.380" /> |
3290 | 3290 | ||
3291 | <param id="19" name="Upturned_Nose_Tip" value="0.000" /> | 3291 | <param id="19" name="Upturned_Nose_Tip" value="0.000" /> |
3292 | 3292 | ||
3293 | <param id="20" name="Bulbous_Nose" value="-0.020" /> | 3293 | <param id="20" name="Bulbous_Nose" value="-0.020" /> |
3294 | 3294 | ||
3295 | <param id="21" name="Upper_Eyelid_Fold" value="0.850" /> | 3295 | <param id="21" name="Upper_Eyelid_Fold" value="0.850" /> |
3296 | 3296 | ||
3297 | <param id="22" name="Attached_Earlobes" value="1.000" /> | 3297 | <param id="22" name="Attached_Earlobes" value="1.000" /> |
3298 | 3298 | ||
3299 | <param id="23" name="Baggy_Eyes" value="0.180" /> | 3299 | <param id="23" name="Baggy_Eyes" value="0.180" /> |
3300 | 3300 | ||
3301 | <param id="24" name="Wide_Eyes" value="-0.800" /> | 3301 | <param id="24" name="Wide_Eyes" value="-0.800" /> |
3302 | 3302 | ||
3303 | <param id="25" name="Wide_Lip_Cleft" value="0.260" /> | 3303 | <param id="25" name="Wide_Lip_Cleft" value="0.260" /> |
3304 | 3304 | ||
3305 | <param id="27" name="Wide_Nose_Bridge" value="-0.350" /> | 3305 | <param id="27" name="Wide_Nose_Bridge" value="-0.350" /> |
3306 | 3306 | ||
3307 | <param id="33" name="Height" value="0.110" /> | 3307 | <param id="33" name="Height" value="0.110" /> |
3308 | 3308 | ||
3309 | <param id="34" name="Thickness" value="1.320" /> | 3309 | <param id="34" name="Thickness" value="1.320" /> |
3310 | 3310 | ||
3311 | <param id="35" name="Big_Ears" value="-0.040" /> | 3311 | <param id="35" name="Big_Ears" value="-0.040" /> |
3312 | 3312 | ||
3313 | <param id="36" name="Shoulders" value="-0.710" /> | 3313 | <param id="36" name="Shoulders" value="-0.710" /> |
3314 | 3314 | ||
3315 | <param id="37" name="Hip Width" value="-0.560" /> | 3315 | <param id="37" name="Hip Width" value="-0.560" /> |
3316 | 3316 | ||
3317 | <param id="38" name="Torso Length" value="0.040" /> | 3317 | <param id="38" name="Torso Length" value="0.040" /> |
3318 | 3318 | ||
3319 | <param id="80" name="male" value="1.000" /> | 3319 | <param id="80" name="male" value="1.000" /> |
3320 | 3320 | ||
3321 | <param id="105" name="Breast Size" value="0.500" /> | 3321 | <param id="105" name="Breast Size" value="0.500" /> |
3322 | 3322 | ||
3323 | <param id="151" name="Big_Butt_Legs" value="-0.010" /> | 3323 | <param id="151" name="Big_Butt_Legs" value="-0.010" /> |
3324 | 3324 | ||
3325 | <param id="155" name="Lip Width" value="-0.750" /> | 3325 | <param id="155" name="Lip Width" value="-0.750" /> |
3326 | 3326 | ||
3327 | <param id="157" name="Belly Size" value="0.380" /> | 3327 | <param id="157" name="Belly Size" value="0.380" /> |
3328 | 3328 | ||
3329 | <param id="185" name="Deep_Chin" value="0.760" /> | 3329 | <param id="185" name="Deep_Chin" value="0.760" /> |
3330 | 3330 | ||
3331 | <param id="193" name="Head Shape" value="0.240" /> | 3331 | <param id="193" name="Head Shape" value="0.240" /> |
3332 | 3332 | ||
3333 | <param id="196" name="Eye Spacing" value="-0.140" /> | 3333 | <param id="196" name="Eye Spacing" value="-0.140" /> |
3334 | 3334 | ||
3335 | <param id="505" name="Lip Thickness" value="0.760" /> | 3335 | <param id="505" name="Lip Thickness" value="0.760" /> |
3336 | 3336 | ||
3337 | <param id="506" name="Mouth_Height" value="0.040" /> | 3337 | <param id="506" name="Mouth_Height" value="0.040" /> |
3338 | 3338 | ||
3339 | <param id="507" name="Breast_Gravity" value="0.000" /> | 3339 | <param id="507" name="Breast_Gravity" value="0.000" /> |
3340 | 3340 | ||
3341 | <param id="515" name="Foot_Size" value="0.640" /> | 3341 | <param id="515" name="Foot_Size" value="0.640" /> |
3342 | 3342 | ||
3343 | <param id="517" name="Wide_Nose" value="0.790" /> | 3343 | <param id="517" name="Wide_Nose" value="0.790" /> |
3344 | 3344 | ||
3345 | <param id="518" name="Eyelashes_Long" value="0.550" /> | 3345 | <param id="518" name="Eyelashes_Long" value="0.550" /> |
3346 | 3346 | ||
3347 | <param id="629" name="Forehead Angle" value="0.820" /> | 3347 | <param id="629" name="Forehead Angle" value="0.820" /> |
3348 | 3348 | ||
3349 | <param id="637" name="Body Fat" value="0.130" /> | 3349 | <param id="637" name="Body Fat" value="0.130" /> |
3350 | 3350 | ||
3351 | <param id="646" name="Egg_Head" value="-0.860" /> | 3351 | <param id="646" name="Egg_Head" value="-0.860" /> |
3352 | 3352 | ||
3353 | <param id="647" name="Squash_Stretch_Head" value="-0.500" /> | 3353 | <param id="647" name="Squash_Stretch_Head" value="-0.500" /> |
3354 | 3354 | ||
3355 | <param id="649" name="Torso Muscles" value="0.500" /> | 3355 | <param id="649" name="Torso Muscles" value="0.500" /> |
3356 | 3356 | ||
3357 | <param id="650" name="Eyelid_Corner_Up" value="-1.150" /> | 3357 | <param id="650" name="Eyelid_Corner_Up" value="-1.150" /> |
3358 | 3358 | ||
3359 | <param id="652" name="Leg Muscles" value="0.820" /> | 3359 | <param id="652" name="Leg Muscles" value="0.820" /> |
3360 | 3360 | ||
3361 | <param id="653" name="Tall_Lips" value="1.550" /> | 3361 | <param id="653" name="Tall_Lips" value="1.550" /> |
3362 | 3362 | ||
3363 | <param id="656" name="Crooked_Nose" value="-0.600" /> | 3363 | <param id="656" name="Crooked_Nose" value="-0.600" /> |
3364 | 3364 | ||
3365 | <param id="659" name="Mouth Corner" value="0.760" /> | 3365 | <param id="659" name="Mouth Corner" value="0.760" /> |
3366 | 3366 | ||
3367 | <param id="662" name="Face Shear" value="0.460" /> | 3367 | <param id="662" name="Face Shear" value="0.460" /> |
3368 | 3368 | ||
3369 | <param id="663" name="Shift_Mouth" value="-0.360" /> | 3369 | <param id="663" name="Shift_Mouth" value="-0.360" /> |
3370 | 3370 | ||
3371 | <param id="664" name="Pop_Eye" value="0.080" /> | 3371 | <param id="664" name="Pop_Eye" value="0.080" /> |
3372 | 3372 | ||
3373 | <param id="665" name="Jaw_Jut" value="-1.080" /> | 3373 | <param id="665" name="Jaw_Jut" value="-1.080" /> |
3374 | 3374 | ||
3375 | <param id="675" name="Hand Size" value="-0.040" /> | 3375 | <param id="675" name="Hand Size" value="-0.040" /> |
3376 | 3376 | ||
3377 | <param id="676" name="Love_Handles" value="0.290" /> | 3377 | <param id="676" name="Love_Handles" value="0.290" /> |
3378 | 3378 | ||
3379 | <param id="678" name="Torso Muscles" value="0.630" /> | 3379 | <param id="678" name="Torso Muscles" value="0.630" /> |
3380 | 3380 | ||
3381 | <param id="682" name="Head Size" value="0.600" /> | 3381 | <param id="682" name="Head Size" value="0.600" /> |
3382 | 3382 | ||
3383 | <param id="683" name="Neck Thickness" value="0.060" /> | 3383 | <param id="683" name="Neck Thickness" value="0.060" /> |
3384 | 3384 | ||
3385 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> | 3385 | <param id="684" name="Breast_Female_Clevage" value="0.000" /> |
3386 | 3386 | ||
3387 | <param id="685" name="Chest_Male_No_Pecs" value="-0.180" /> | 3387 | <param id="685" name="Chest_Male_No_Pecs" value="-0.180" /> |
3388 | 3388 | ||
3389 | <param id="690" name="Eye Size" value="0.290" /> | 3389 | <param id="690" name="Eye Size" value="0.290" /> |
3390 | 3390 | ||
3391 | <param id="692" name="Leg Length" value="-0.340" /> | 3391 | <param id="692" name="Leg Length" value="-0.340" /> |
3392 | 3392 | ||
3393 | <param id="693" name="Arm Length" value="-0.060" /> | 3393 | <param id="693" name="Arm Length" value="-0.060" /> |
3394 | 3394 | ||
3395 | <param id="753" name="Saddlebags" value="0.900" /> | 3395 | <param id="753" name="Saddlebags" value="0.900" /> |
3396 | 3396 | ||
3397 | <param id="756" name="Neck Length" value="-0.220" /> | 3397 | <param id="756" name="Neck Length" value="-0.220" /> |
3398 | 3398 | ||
3399 | <param id="758" name="Lower_Bridge_Nose" value="-0.690" /> | 3399 | <param id="758" name="Lower_Bridge_Nose" value="-0.690" /> |
3400 | 3400 | ||
3401 | <param id="759" name="Low_Septum_Nose" value="-0.950" /> | 3401 | <param id="759" name="Low_Septum_Nose" value="-0.950" /> |
3402 | 3402 | ||
3403 | <param id="760" name="Jaw_Angle" value="-0.340" /> | 3403 | <param id="760" name="Jaw_Angle" value="-0.340" /> |
3404 | 3404 | ||
3405 | <param id="764" name="Lip_Cleft_Deep" value="0.250" /> | 3405 | <param id="764" name="Lip_Cleft_Deep" value="0.250" /> |
3406 | 3406 | ||
3407 | <param id="765" name="Puffy_Lower_Lids" value="0.600" /> | 3407 | <param id="765" name="Puffy_Lower_Lids" value="0.600" /> |
3408 | 3408 | ||
3409 | <param id="769" name="Eye Depth" value="0.720" /> | 3409 | <param id="769" name="Eye Depth" value="0.720" /> |
3410 | 3410 | ||
3411 | <param id="773" name="Head Length" value="0.240" /> | 3411 | <param id="773" name="Head Length" value="0.240" /> |
3412 | 3412 | ||
3413 | <!-- wearable: skin --> | 3413 | <!-- wearable: skin --> |
3414 | <param id="108" name="Rainbow Color" value="0.000" /> | 3414 | <param id="108" name="Rainbow Color" value="0.000" /> |
3415 | 3415 | ||
3416 | <param id="110" name="Red Skin" value="0.000" /> | 3416 | <param id="110" name="Red Skin" value="0.000" /> |
3417 | 3417 | ||
3418 | <param id="111" name="Pigment" value="0.200" /> | 3418 | <param id="111" name="Pigment" value="0.200" /> |
3419 | 3419 | ||
3420 | <param id="116" name="Rosy Complexion" value="0.120" /> | 3420 | <param id="116" name="Rosy Complexion" value="0.120" /> |
3421 | 3421 | ||
3422 | <param id="117" name="Lip Pinkness" value="0.220" /> | 3422 | <param id="117" name="Lip Pinkness" value="0.220" /> |
3423 | 3423 | ||
3424 | <param id="150" name="Body Definition" value="0.000" /> | 3424 | <param id="150" name="Body Definition" value="0.000" /> |
3425 | 3425 | ||
3426 | <param id="162" name="Facial Definition" value="0.250" /> | 3426 | <param id="162" name="Facial Definition" value="0.250" /> |
3427 | 3427 | ||
3428 | <param id="163" name="Wrinkles" value="0.000" /> | 3428 | <param id="163" name="Wrinkles" value="0.000" /> |
3429 | 3429 | ||
3430 | <param id="165" name="Freckles" value="0.000" /> | 3430 | <param id="165" name="Freckles" value="0.000" /> |
3431 | 3431 | ||
3432 | <param id="700" name="Lipstick Color" value="0.250" /> | 3432 | <param id="700" name="Lipstick Color" value="0.250" /> |
3433 | 3433 | ||
3434 | <param id="701" name="Lipstick" value="0.000" /> | 3434 | <param id="701" name="Lipstick" value="0.000" /> |
3435 | 3435 | ||
3436 | <param id="702" name="Lipgloss" value="0.000" /> | 3436 | <param id="702" name="Lipgloss" value="0.000" /> |
3437 | 3437 | ||
3438 | <param id="703" name="Eyeliner" value="0.000" /> | 3438 | <param id="703" name="Eyeliner" value="0.000" /> |
3439 | 3439 | ||
3440 | <param id="704" name="Blush" value="0.000" /> | 3440 | <param id="704" name="Blush" value="0.000" /> |
3441 | 3441 | ||
3442 | <param id="705" name="Blush Color" value="0.500" /> | 3442 | <param id="705" name="Blush Color" value="0.500" /> |
3443 | 3443 | ||
3444 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 3444 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
3445 | 3445 | ||
3446 | <param id="707" name="Outer Shadow" value="0.000" /> | 3446 | <param id="707" name="Outer Shadow" value="0.000" /> |
3447 | 3447 | ||
3448 | <param id="708" name="Out Shdw Color" value="0.000" /> | 3448 | <param id="708" name="Out Shdw Color" value="0.000" /> |
3449 | 3449 | ||
3450 | <param id="709" name="Inner Shadow" value="0.000" /> | 3450 | <param id="709" name="Inner Shadow" value="0.000" /> |
3451 | 3451 | ||
3452 | <param id="710" name="Nail Polish" value="0.000" /> | 3452 | <param id="710" name="Nail Polish" value="0.000" /> |
3453 | 3453 | ||
3454 | <param id="711" name="Blush Opacity" value="0.500" /> | 3454 | <param id="711" name="Blush Opacity" value="0.500" /> |
3455 | 3455 | ||
3456 | <param id="712" name="In Shdw Color" value="0.000" /> | 3456 | <param id="712" name="In Shdw Color" value="0.000" /> |
3457 | 3457 | ||
3458 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 3458 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
3459 | 3459 | ||
3460 | <param id="714" name="Eyeliner Color" value="0.000" /> | 3460 | <param id="714" name="Eyeliner Color" value="0.000" /> |
3461 | 3461 | ||
3462 | <param id="715" name="Nail Polish Color" value="0.000" /> | 3462 | <param id="715" name="Nail Polish Color" value="0.000" /> |
3463 | 3463 | ||
3464 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 3464 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
3465 | 3465 | ||
3466 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 3466 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
3467 | 3467 | ||
3468 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 3468 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
3469 | 3469 | ||
3470 | <!-- wearable: hair --> | 3470 | <!-- wearable: hair --> |
3471 | <param id="16" name="Pointy_Eyebrows" value="0.370" /> | 3471 | <param id="16" name="Pointy_Eyebrows" value="0.370" /> |
3472 | 3472 | ||
3473 | <param id="31" name="Arced_Eyebrows" value="0.000" /> | 3473 | <param id="31" name="Arced_Eyebrows" value="0.000" /> |
3474 | 3474 | ||
3475 | <param id="112" name="Rainbow Color" value="0.000" /> | 3475 | <param id="112" name="Rainbow Color" value="0.000" /> |
3476 | 3476 | ||
3477 | <param id="113" name="Red Hair" value="0.000" /> | 3477 | <param id="113" name="Red Hair" value="0.000" /> |
3478 | 3478 | ||
3479 | <param id="114" name="Blonde Hair" value="0.000" /> | 3479 | <param id="114" name="Blonde Hair" value="0.000" /> |
3480 | 3480 | ||
3481 | <param id="115" name="White Hair" value="0.000" /> | 3481 | <param id="115" name="White Hair" value="0.000" /> |
3482 | 3482 | ||
3483 | <param id="119" name="Eyebrow Size" value="0.540" /> | 3483 | <param id="119" name="Eyebrow Size" value="0.540" /> |
3484 | 3484 | ||
3485 | <param id="130" name="Front Fringe" value="0.000" /> | 3485 | <param id="130" name="Front Fringe" value="0.000" /> |
3486 | 3486 | ||
3487 | <param id="131" name="Side Fringe" value="0.380" /> | 3487 | <param id="131" name="Side Fringe" value="0.380" /> |
3488 | 3488 | ||
3489 | <param id="132" name="Back Fringe" value="0.320" /> | 3489 | <param id="132" name="Back Fringe" value="0.320" /> |
3490 | 3490 | ||
3491 | <param id="133" name="Hair Front" value="0.000" /> | 3491 | <param id="133" name="Hair Front" value="0.000" /> |
3492 | 3492 | ||
3493 | <param id="134" name="Hair Sides" value="0.320" /> | 3493 | <param id="134" name="Hair Sides" value="0.320" /> |
3494 | 3494 | ||
3495 | <param id="135" name="Hair Back" value="0.540" /> | 3495 | <param id="135" name="Hair Back" value="0.540" /> |
3496 | 3496 | ||
3497 | <param id="136" name="Hair Sweep" value="0.170" /> | 3497 | <param id="136" name="Hair Sweep" value="0.170" /> |
3498 | 3498 | ||
3499 | <param id="137" name="Hair Tilt" value="0.500" /> | 3499 | <param id="137" name="Hair Tilt" value="0.500" /> |
3500 | 3500 | ||
3501 | <param id="140" name="Hair_Part_Middle" value="0.000" /> | 3501 | <param id="140" name="Hair_Part_Middle" value="0.000" /> |
3502 | 3502 | ||
3503 | <param id="141" name="Hair_Part_Right" value="0.000" /> | 3503 | <param id="141" name="Hair_Part_Right" value="0.000" /> |
3504 | 3504 | ||
3505 | <param id="142" name="Hair_Part_Left" value="0.100" /> | 3505 | <param id="142" name="Hair_Part_Left" value="0.100" /> |
3506 | 3506 | ||
3507 | <param id="143" name="Hair_Sides_Full" value="0.290" /> | 3507 | <param id="143" name="Hair_Sides_Full" value="0.290" /> |
3508 | 3508 | ||
3509 | <param id="166" name="Sideburns" value="0.000" /> | 3509 | <param id="166" name="Sideburns" value="0.000" /> |
3510 | 3510 | ||
3511 | <param id="167" name="Moustache" value="0.000" /> | 3511 | <param id="167" name="Moustache" value="0.000" /> |
3512 | 3512 | ||
3513 | <param id="168" name="Soulpatch" value="0.000" /> | 3513 | <param id="168" name="Soulpatch" value="0.000" /> |
3514 | 3514 | ||
3515 | <param id="169" name="Chin Curtains" value="0.820" /> | 3515 | <param id="169" name="Chin Curtains" value="0.820" /> |
3516 | 3516 | ||
3517 | <param id="177" name="Hair_Rumpled" value="0.170" /> | 3517 | <param id="177" name="Hair_Rumpled" value="0.170" /> |
3518 | 3518 | ||
3519 | <param id="181" name="Hair_Big_Front" value="0.300" /> | 3519 | <param id="181" name="Hair_Big_Front" value="0.300" /> |
3520 | 3520 | ||
3521 | <param id="182" name="Hair_Big_Top" value="0.200" /> | 3521 | <param id="182" name="Hair_Big_Top" value="0.200" /> |
3522 | 3522 | ||
3523 | <param id="183" name="Hair_Big_Back" value="0.060" /> | 3523 | <param id="183" name="Hair_Big_Back" value="0.060" /> |
3524 | 3524 | ||
3525 | <param id="184" name="Hair_Spiked" value="0.000" /> | 3525 | <param id="184" name="Hair_Spiked" value="0.000" /> |
3526 | 3526 | ||
3527 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 3527 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
3528 | 3528 | ||
3529 | <param id="674" name="Hair_Shear_Back" value="-0.460" /> | 3529 | <param id="674" name="Hair_Shear_Back" value="-0.460" /> |
3530 | 3530 | ||
3531 | <param id="750" name="Eyebrow Density" value="0.920" /> | 3531 | <param id="750" name="Eyebrow Density" value="0.920" /> |
3532 | 3532 | ||
3533 | <param id="752" name="Hair Thickness" value="0.670" /> | 3533 | <param id="752" name="Hair Thickness" value="0.670" /> |
3534 | 3534 | ||
3535 | <param id="754" name="Hair_Taper_Back" value="0.830" /> | 3535 | <param id="754" name="Hair_Taper_Back" value="0.830" /> |
3536 | 3536 | ||
3537 | <param id="755" name="Hair_Taper_Front" value="-0.840" /> | 3537 | <param id="755" name="Hair_Taper_Front" value="-0.840" /> |
3538 | 3538 | ||
3539 | <param id="757" name="Lower_Eyebrows" value="-0.200" /> | 3539 | <param id="757" name="Lower_Eyebrows" value="-0.200" /> |
3540 | 3540 | ||
3541 | <param id="762" name="Hair_Shear_Front" value="1.710" /> | 3541 | <param id="762" name="Hair_Shear_Front" value="1.710" /> |
3542 | 3542 | ||
3543 | <param id="763" name="Hair Volume" value="0.510" /> | 3543 | <param id="763" name="Hair Volume" value="0.510" /> |
3544 | 3544 | ||
3545 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 3545 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
3546 | 3546 | ||
3547 | <!-- wearable: eyes --> | 3547 | <!-- wearable: eyes --> |
3548 | <param id="98" name="Eye Lightness" value="0.270" /> | 3548 | <param id="98" name="Eye Lightness" value="0.270" /> |
3549 | 3549 | ||
3550 | <param id="99" name="Eye Color" value="0.090" /> | 3550 | <param id="99" name="Eye Color" value="0.090" /> |
3551 | 3551 | ||
3552 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 3552 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
3553 | </archetype> | 3553 | </archetype> |
3554 | 3554 | ||
3555 | <archetype name="F W Skinny"> | 3555 | <archetype name="F W Skinny"> |
3556 | <!-- wearable: shape --> | 3556 | <!-- wearable: shape --> |
3557 | <param id="1" name="Big_Brow" value="0.183" /> | 3557 | <param id="1" name="Big_Brow" value="0.183" /> |
3558 | 3558 | ||
3559 | <param id="2" name="Nose_Big_Out" value="-0.338" /> | 3559 | <param id="2" name="Nose_Big_Out" value="-0.338" /> |
3560 | 3560 | ||
3561 | <param id="4" name="Broad_Nostrils" value="-0.155" /> | 3561 | <param id="4" name="Broad_Nostrils" value="-0.155" /> |
3562 | 3562 | ||
3563 | <param id="5" name="Cleft_Chin" value="-0.100" /> | 3563 | <param id="5" name="Cleft_Chin" value="-0.100" /> |
3564 | 3564 | ||
3565 | <param id="6" name="Bulbous_Nose_Tip" value="0.636" /> | 3565 | <param id="6" name="Bulbous_Nose_Tip" value="0.636" /> |
3566 | 3566 | ||
3567 | <param id="7" name="Weak_Chin" value="-0.040" /> | 3567 | <param id="7" name="Weak_Chin" value="-0.040" /> |
3568 | 3568 | ||
3569 | <param id="8" name="Double_Chin" value="-0.500" /> | 3569 | <param id="8" name="Double_Chin" value="-0.500" /> |
3570 | 3570 | ||
3571 | <param id="10" name="Sunken_Cheeks" value="-0.060" /> | 3571 | <param id="10" name="Sunken_Cheeks" value="-0.060" /> |
3572 | 3572 | ||
3573 | <param id="11" name="Noble_Nose_Bridge" value="0.120" /> | 3573 | <param id="11" name="Noble_Nose_Bridge" value="0.120" /> |
3574 | 3574 | ||
3575 | <param id="12" name="Jowls" value="0.850" /> | 3575 | <param id="12" name="Jowls" value="0.850" /> |
3576 | 3576 | ||
3577 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> | 3577 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> |
3578 | 3578 | ||
3579 | <param id="14" name="High_Cheek_Bones" value="0.370" /> | 3579 | <param id="14" name="High_Cheek_Bones" value="0.370" /> |
3580 | 3580 | ||
3581 | <param id="15" name="Ears_Out" value="0.240" /> | 3581 | <param id="15" name="Ears_Out" value="0.240" /> |
3582 | 3582 | ||
3583 | <param id="17" name="Square_Jaw" value="0.250" /> | 3583 | <param id="17" name="Square_Jaw" value="0.250" /> |
3584 | 3584 | ||
3585 | <param id="18" name="Puffy_Upper_Cheeks" value="-0.060" /> | 3585 | <param id="18" name="Puffy_Upper_Cheeks" value="-0.060" /> |
3586 | 3586 | ||
3587 | <param id="19" name="Upturned_Nose_Tip" value="-0.100" /> | 3587 | <param id="19" name="Upturned_Nose_Tip" value="-0.100" /> |
3588 | 3588 | ||
3589 | <param id="20" name="Bulbous_Nose" value="0.020" /> | 3589 | <param id="20" name="Bulbous_Nose" value="0.020" /> |
3590 | 3590 | ||
3591 | <param id="21" name="Upper_Eyelid_Fold" value="0.475" /> | 3591 | <param id="21" name="Upper_Eyelid_Fold" value="0.475" /> |
3592 | 3592 | ||
3593 | <param id="22" name="Attached_Earlobes" value="1.000" /> | 3593 | <param id="22" name="Attached_Earlobes" value="1.000" /> |
3594 | 3594 | ||
3595 | <param id="23" name="Baggy_Eyes" value="0.120" /> | 3595 | <param id="23" name="Baggy_Eyes" value="0.120" /> |
3596 | 3596 | ||
3597 | <param id="24" name="Wide_Eyes" value="0.250" /> | 3597 | <param id="24" name="Wide_Eyes" value="0.250" /> |
3598 | 3598 | ||
3599 | <param id="25" name="Wide_Lip_Cleft" value="0.511" /> | 3599 | <param id="25" name="Wide_Lip_Cleft" value="0.511" /> |
3600 | 3600 | ||
3601 | <param id="27" name="Wide_Nose_Bridge" value="-0.850" /> | 3601 | <param id="27" name="Wide_Nose_Bridge" value="-0.850" /> |
3602 | 3602 | ||
3603 | <param id="33" name="Height" value="1.140" /> | 3603 | <param id="33" name="Height" value="1.140" /> |
3604 | 3604 | ||
3605 | <param id="34" name="Thickness" value="-0.392" /> | 3605 | <param id="34" name="Thickness" value="-0.392" /> |
3606 | 3606 | ||
3607 | <param id="35" name="Big_Ears" value="-0.460" /> | 3607 | <param id="35" name="Big_Ears" value="-0.460" /> |
3608 | 3608 | ||
3609 | <param id="36" name="Shoulders" value="0.024" /> | 3609 | <param id="36" name="Shoulders" value="0.024" /> |
3610 | 3610 | ||
3611 | <param id="37" name="Hip Width" value="-0.800" /> | 3611 | <param id="37" name="Hip Width" value="-0.800" /> |
3612 | 3612 | ||
3613 | <param id="38" name="Torso Length" value="0.480" /> | 3613 | <param id="38" name="Torso Length" value="0.480" /> |
3614 | 3614 | ||
3615 | <param id="80" name="male" value="0.000" /> | 3615 | <param id="80" name="male" value="0.000" /> |
3616 | 3616 | ||
3617 | <param id="105" name="Breast Size" value="0.270" /> | 3617 | <param id="105" name="Breast Size" value="0.270" /> |
3618 | 3618 | ||
3619 | <param id="151" name="Big_Butt_Legs" value="-0.092" /> | 3619 | <param id="151" name="Big_Butt_Legs" value="-0.092" /> |
3620 | 3620 | ||
3621 | <param id="155" name="Lip Width" value="-0.174" /> | 3621 | <param id="155" name="Lip Width" value="-0.174" /> |
3622 | 3622 | ||
3623 | <param id="157" name="Belly Size" value="0.260" /> | 3623 | <param id="157" name="Belly Size" value="0.260" /> |
3624 | 3624 | ||
3625 | <param id="185" name="Deep_Chin" value="-0.400" /> | 3625 | <param id="185" name="Deep_Chin" value="-0.400" /> |
3626 | 3626 | ||
3627 | <param id="193" name="Head Shape" value="0.890" /> | 3627 | <param id="193" name="Head Shape" value="0.890" /> |
3628 | 3628 | ||
3629 | <param id="196" name="Eye Spacing" value="0.310" /> | 3629 | <param id="196" name="Eye Spacing" value="0.310" /> |
3630 | 3630 | ||
3631 | <param id="505" name="Lip Thickness" value="0.470" /> | 3631 | <param id="505" name="Lip Thickness" value="0.470" /> |
3632 | 3632 | ||
3633 | <param id="506" name="Mouth_Height" value="-0.560" /> | 3633 | <param id="506" name="Mouth_Height" value="-0.560" /> |
3634 | 3634 | ||
3635 | <param id="507" name="Breast_Gravity" value="-0.975" /> | 3635 | <param id="507" name="Breast_Gravity" value="-0.975" /> |
3636 | 3636 | ||
3637 | <param id="515" name="Foot_Size" value="1.640" /> | 3637 | <param id="515" name="Foot_Size" value="1.640" /> |
3638 | 3638 | ||
3639 | <param id="517" name="Wide_Nose" value="0.055" /> | 3639 | <param id="517" name="Wide_Nose" value="0.055" /> |
3640 | 3640 | ||
3641 | <param id="518" name="Eyelashes_Long" value="-0.156" /> | 3641 | <param id="518" name="Eyelashes_Long" value="-0.156" /> |
3642 | 3642 | ||
3643 | <param id="629" name="Forehead Angle" value="0.140" /> | 3643 | <param id="629" name="Forehead Angle" value="0.140" /> |
3644 | 3644 | ||
3645 | <param id="637" name="Body Fat" value="0.020" /> | 3645 | <param id="637" name="Body Fat" value="0.020" /> |
3646 | 3646 | ||
3647 | <param id="646" name="Egg_Head" value="0.655" /> | 3647 | <param id="646" name="Egg_Head" value="0.655" /> |
3648 | 3648 | ||
3649 | <param id="647" name="Squash_Stretch_Head" value="0.595" /> | 3649 | <param id="647" name="Squash_Stretch_Head" value="0.595" /> |
3650 | 3650 | ||
3651 | <param id="649" name="Torso Muscles" value="0.400" /> | 3651 | <param id="649" name="Torso Muscles" value="0.400" /> |
3652 | 3652 | ||
3653 | <param id="650" name="Eyelid_Corner_Up" value="0.225" /> | 3653 | <param id="650" name="Eyelid_Corner_Up" value="0.225" /> |
3654 | 3654 | ||
3655 | <param id="652" name="Leg Muscles" value="0.430" /> | 3655 | <param id="652" name="Leg Muscles" value="0.430" /> |
3656 | 3656 | ||
3657 | <param id="653" name="Tall_Lips" value="-0.910" /> | 3657 | <param id="653" name="Tall_Lips" value="-0.910" /> |
3658 | 3658 | ||
3659 | <param id="656" name="Crooked_Nose" value="0.000" /> | 3659 | <param id="656" name="Crooked_Nose" value="0.000" /> |
3660 | 3660 | ||
3661 | <param id="659" name="Mouth Corner" value="0.500" /> | 3661 | <param id="659" name="Mouth Corner" value="0.500" /> |
3662 | 3662 | ||
3663 | <param id="662" name="Face Shear" value="0.500" /> | 3663 | <param id="662" name="Face Shear" value="0.500" /> |
3664 | 3664 | ||
3665 | <param id="663" name="Shift_Mouth" value="0.000" /> | 3665 | <param id="663" name="Shift_Mouth" value="0.000" /> |
3666 | 3666 | ||
3667 | <param id="664" name="Pop_Eye" value="0.000" /> | 3667 | <param id="664" name="Pop_Eye" value="0.000" /> |
3668 | 3668 | ||
3669 | <param id="665" name="Jaw_Jut" value="0.320" /> | 3669 | <param id="665" name="Jaw_Jut" value="0.320" /> |
3670 | 3670 | ||
3671 | <param id="675" name="Hand Size" value="0.066" /> | 3671 | <param id="675" name="Hand Size" value="0.066" /> |
3672 | 3672 | ||
3673 | <param id="676" name="Love_Handles" value="-0.040" /> | 3673 | <param id="676" name="Love_Handles" value="-0.040" /> |
3674 | 3674 | ||
3675 | <param id="678" name="Torso Muscles" value="0.790" /> | 3675 | <param id="678" name="Torso Muscles" value="0.790" /> |
3676 | 3676 | ||
3677 | <param id="682" name="Head Size" value="0.770" /> | 3677 | <param id="682" name="Head Size" value="0.770" /> |
3678 | 3678 | ||
3679 | <param id="683" name="Neck Thickness" value="-0.214" /> | 3679 | <param id="683" name="Neck Thickness" value="-0.214" /> |
3680 | 3680 | ||
3681 | <param id="684" name="Breast_Female_Clevage" value="0.308" /> | 3681 | <param id="684" name="Breast_Female_Clevage" value="0.308" /> |
3682 | 3682 | ||
3683 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> | 3683 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> |
3684 | 3684 | ||
3685 | <param id="690" name="Eye Size" value="0.640" /> | 3685 | <param id="690" name="Eye Size" value="0.640" /> |
3686 | 3686 | ||
3687 | <param id="692" name="Leg Length" value="0.580" /> | 3687 | <param id="692" name="Leg Length" value="0.580" /> |
3688 | 3688 | ||
3689 | <param id="693" name="Arm Length" value="0.660" /> | 3689 | <param id="693" name="Arm Length" value="0.660" /> |
3690 | 3690 | ||
3691 | <param id="753" name="Saddlebags" value="0.795" /> | 3691 | <param id="753" name="Saddlebags" value="0.795" /> |
3692 | 3692 | ||
3693 | <param id="756" name="Neck Length" value="0.300" /> | 3693 | <param id="756" name="Neck Length" value="0.300" /> |
3694 | 3694 | ||
3695 | <param id="758" name="Lower_Bridge_Nose" value="-0.570" /> | 3695 | <param id="758" name="Lower_Bridge_Nose" value="-0.570" /> |
3696 | 3696 | ||
3697 | <param id="759" name="Low_Septum_Nose" value="0.500" /> | 3697 | <param id="759" name="Low_Septum_Nose" value="0.500" /> |
3698 | 3698 | ||
3699 | <param id="760" name="Jaw_Angle" value="1.328" /> | 3699 | <param id="760" name="Jaw_Angle" value="1.328" /> |
3700 | 3700 | ||
3701 | <param id="764" name="Lip_Cleft_Deep" value="1.081" /> | 3701 | <param id="764" name="Lip_Cleft_Deep" value="1.081" /> |
3702 | 3702 | ||
3703 | <param id="765" name="Puffy_Lower_Lids" value="0.036" /> | 3703 | <param id="765" name="Puffy_Lower_Lids" value="0.036" /> |
3704 | 3704 | ||
3705 | <param id="769" name="Eye Depth" value="0.270" /> | 3705 | <param id="769" name="Eye Depth" value="0.270" /> |
3706 | 3706 | ||
3707 | <param id="773" name="Head Length" value="0.720" /> | 3707 | <param id="773" name="Head Length" value="0.720" /> |
3708 | 3708 | ||
3709 | <!-- wearable: skin --> | 3709 | <!-- wearable: skin --> |
3710 | <param id="108" name="Rainbow Color" value="0.000" /> | 3710 | <param id="108" name="Rainbow Color" value="0.000" /> |
3711 | 3711 | ||
3712 | <param id="110" name="Red Skin" value="0.029" /> | 3712 | <param id="110" name="Red Skin" value="0.029" /> |
3713 | 3713 | ||
3714 | <param id="111" name="Pigment" value="0.090" /> | 3714 | <param id="111" name="Pigment" value="0.090" /> |
3715 | 3715 | ||
3716 | <param id="116" name="Rosy Complexion" value="0.370" /> | 3716 | <param id="116" name="Rosy Complexion" value="0.370" /> |
3717 | 3717 | ||
3718 | <param id="117" name="Lip Pinkness" value="0.640" /> | 3718 | <param id="117" name="Lip Pinkness" value="0.640" /> |
3719 | 3719 | ||
3720 | <param id="150" name="Body Definition" value="0.870" /> | 3720 | <param id="150" name="Body Definition" value="0.870" /> |
3721 | 3721 | ||
3722 | <param id="162" name="Facial Definition" value="0.000" /> | 3722 | <param id="162" name="Facial Definition" value="0.000" /> |
3723 | 3723 | ||
3724 | <param id="163" name="Wrinkles" value="0.000" /> | 3724 | <param id="163" name="Wrinkles" value="0.000" /> |
3725 | 3725 | ||
3726 | <param id="165" name="Freckles" value="0.200" /> | 3726 | <param id="165" name="Freckles" value="0.200" /> |
3727 | 3727 | ||
3728 | <param id="700" name="Lipstick Color" value="0.250" /> | 3728 | <param id="700" name="Lipstick Color" value="0.250" /> |
3729 | 3729 | ||
3730 | <param id="701" name="Lipstick" value="0.000" /> | 3730 | <param id="701" name="Lipstick" value="0.000" /> |
3731 | 3731 | ||
3732 | <param id="702" name="Lipgloss" value="0.000" /> | 3732 | <param id="702" name="Lipgloss" value="0.000" /> |
3733 | 3733 | ||
3734 | <param id="703" name="Eyeliner" value="0.000" /> | 3734 | <param id="703" name="Eyeliner" value="0.000" /> |
3735 | 3735 | ||
3736 | <param id="704" name="Blush" value="0.000" /> | 3736 | <param id="704" name="Blush" value="0.000" /> |
3737 | 3737 | ||
3738 | <param id="705" name="Blush Color" value="0.500" /> | 3738 | <param id="705" name="Blush Color" value="0.500" /> |
3739 | 3739 | ||
3740 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 3740 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
3741 | 3741 | ||
3742 | <param id="707" name="Outer Shadow" value="0.000" /> | 3742 | <param id="707" name="Outer Shadow" value="0.000" /> |
3743 | 3743 | ||
3744 | <param id="708" name="Out Shdw Color" value="0.000" /> | 3744 | <param id="708" name="Out Shdw Color" value="0.000" /> |
3745 | 3745 | ||
3746 | <param id="709" name="Inner Shadow" value="0.000" /> | 3746 | <param id="709" name="Inner Shadow" value="0.000" /> |
3747 | 3747 | ||
3748 | <param id="710" name="Nail Polish" value="0.000" /> | 3748 | <param id="710" name="Nail Polish" value="0.000" /> |
3749 | 3749 | ||
3750 | <param id="711" name="Blush Opacity" value="0.500" /> | 3750 | <param id="711" name="Blush Opacity" value="0.500" /> |
3751 | 3751 | ||
3752 | <param id="712" name="In Shdw Color" value="0.000" /> | 3752 | <param id="712" name="In Shdw Color" value="0.000" /> |
3753 | 3753 | ||
3754 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 3754 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
3755 | 3755 | ||
3756 | <param id="714" name="Eyeliner Color" value="0.000" /> | 3756 | <param id="714" name="Eyeliner Color" value="0.000" /> |
3757 | 3757 | ||
3758 | <param id="715" name="Nail Polish Color" value="0.000" /> | 3758 | <param id="715" name="Nail Polish Color" value="0.000" /> |
3759 | 3759 | ||
3760 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 3760 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
3761 | 3761 | ||
3762 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 3762 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
3763 | 3763 | ||
3764 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 3764 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
3765 | 3765 | ||
3766 | <!-- wearable: hair --> | 3766 | <!-- wearable: hair --> |
3767 | <param id="16" name="Pointy_Eyebrows" value="-0.170" /> | 3767 | <param id="16" name="Pointy_Eyebrows" value="-0.170" /> |
3768 | 3768 | ||
3769 | <param id="31" name="Arced_Eyebrows" value="0.000" /> | 3769 | <param id="31" name="Arced_Eyebrows" value="0.000" /> |
3770 | 3770 | ||
3771 | <param id="112" name="Rainbow Color" value="0.000" /> | 3771 | <param id="112" name="Rainbow Color" value="0.000" /> |
3772 | 3772 | ||
3773 | <param id="113" name="Red Hair" value="0.640" /> | 3773 | <param id="113" name="Red Hair" value="0.640" /> |
3774 | 3774 | ||
3775 | <param id="114" name="Blonde Hair" value="0.940" /> | 3775 | <param id="114" name="Blonde Hair" value="0.940" /> |
3776 | 3776 | ||
3777 | <param id="115" name="White Hair" value="0.120" /> | 3777 | <param id="115" name="White Hair" value="0.120" /> |
3778 | 3778 | ||
3779 | <param id="119" name="Eyebrow Size" value="0.310" /> | 3779 | <param id="119" name="Eyebrow Size" value="0.310" /> |
3780 | 3780 | ||
3781 | <param id="130" name="Front Fringe" value="0.590" /> | 3781 | <param id="130" name="Front Fringe" value="0.590" /> |
3782 | 3782 | ||
3783 | <param id="131" name="Side Fringe" value="0.720" /> | 3783 | <param id="131" name="Side Fringe" value="0.720" /> |
3784 | 3784 | ||
3785 | <param id="132" name="Back Fringe" value="0.720" /> | 3785 | <param id="132" name="Back Fringe" value="0.720" /> |
3786 | 3786 | ||
3787 | <param id="133" name="Hair Front" value="0.000" /> | 3787 | <param id="133" name="Hair Front" value="0.000" /> |
3788 | 3788 | ||
3789 | <param id="134" name="Hair Sides" value="0.580" /> | 3789 | <param id="134" name="Hair Sides" value="0.580" /> |
3790 | 3790 | ||
3791 | <param id="135" name="Hair Back" value="0.940" /> | 3791 | <param id="135" name="Hair Back" value="0.940" /> |
3792 | 3792 | ||
3793 | <param id="136" name="Hair Sweep" value="0.370" /> | 3793 | <param id="136" name="Hair Sweep" value="0.370" /> |
3794 | 3794 | ||
3795 | <param id="137" name="Hair Tilt" value="0.510" /> | 3795 | <param id="137" name="Hair Tilt" value="0.510" /> |
3796 | 3796 | ||
3797 | <param id="140" name="Hair_Part_Middle" value="0.000" /> | 3797 | <param id="140" name="Hair_Part_Middle" value="0.000" /> |
3798 | 3798 | ||
3799 | <param id="141" name="Hair_Part_Right" value="1.520" /> | 3799 | <param id="141" name="Hair_Part_Right" value="1.520" /> |
3800 | 3800 | ||
3801 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 3801 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
3802 | 3802 | ||
3803 | <param id="143" name="Hair_Sides_Full" value="-0.040" /> | 3803 | <param id="143" name="Hair_Sides_Full" value="-0.040" /> |
3804 | 3804 | ||
3805 | <param id="166" name="Sideburns" value="0.710" /> | 3805 | <param id="166" name="Sideburns" value="0.710" /> |
3806 | 3806 | ||
3807 | <param id="167" name="Moustache" value="0.000" /> | 3807 | <param id="167" name="Moustache" value="0.000" /> |
3808 | 3808 | ||
3809 | <param id="168" name="Soulpatch" value="0.000" /> | 3809 | <param id="168" name="Soulpatch" value="0.000" /> |
3810 | 3810 | ||
3811 | <param id="169" name="Chin Curtains" value="0.000" /> | 3811 | <param id="169" name="Chin Curtains" value="0.000" /> |
3812 | 3812 | ||
3813 | <param id="177" name="Hair_Rumpled" value="0.410" /> | 3813 | <param id="177" name="Hair_Rumpled" value="0.410" /> |
3814 | 3814 | ||
3815 | <param id="181" name="Hair_Big_Front" value="0.020" /> | 3815 | <param id="181" name="Hair_Big_Front" value="0.020" /> |
3816 | 3816 | ||
3817 | <param id="182" name="Hair_Big_Top" value="0.840" /> | 3817 | <param id="182" name="Hair_Big_Top" value="0.840" /> |
3818 | 3818 | ||
3819 | <param id="183" name="Hair_Big_Back" value="0.000" /> | 3819 | <param id="183" name="Hair_Big_Back" value="0.000" /> |
3820 | 3820 | ||
3821 | <param id="184" name="Hair_Spiked" value="0.000" /> | 3821 | <param id="184" name="Hair_Spiked" value="0.000" /> |
3822 | 3822 | ||
3823 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 3823 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
3824 | 3824 | ||
3825 | <param id="674" name="Hair_Shear_Back" value="0.740" /> | 3825 | <param id="674" name="Hair_Shear_Back" value="0.740" /> |
3826 | 3826 | ||
3827 | <param id="750" name="Eyebrow Density" value="0.490" /> | 3827 | <param id="750" name="Eyebrow Density" value="0.490" /> |
3828 | 3828 | ||
3829 | <param id="752" name="Hair Thickness" value="0.690" /> | 3829 | <param id="752" name="Hair Thickness" value="0.690" /> |
3830 | 3830 | ||
3831 | <param id="754" name="Hair_Taper_Back" value="-0.490" /> | 3831 | <param id="754" name="Hair_Taper_Back" value="-0.490" /> |
3832 | 3832 | ||
3833 | <param id="755" name="Hair_Taper_Front" value="-0.030" /> | 3833 | <param id="755" name="Hair_Taper_Front" value="-0.030" /> |
3834 | 3834 | ||
3835 | <param id="757" name="Lower_Eyebrows" value="-1.600" /> | 3835 | <param id="757" name="Lower_Eyebrows" value="-1.600" /> |
3836 | 3836 | ||
3837 | <param id="762" name="Hair_Shear_Front" value="0.060" /> | 3837 | <param id="762" name="Hair_Shear_Front" value="0.060" /> |
3838 | 3838 | ||
3839 | <param id="763" name="Hair Volume" value="0.520" /> | 3839 | <param id="763" name="Hair Volume" value="0.520" /> |
3840 | 3840 | ||
3841 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 3841 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
3842 | 3842 | ||
3843 | <!-- wearable: eyes --> | 3843 | <!-- wearable: eyes --> |
3844 | <param id="98" name="Eye Lightness" value="0.220" /> | 3844 | <param id="98" name="Eye Lightness" value="0.220" /> |
3845 | 3845 | ||
3846 | <param id="99" name="Eye Color" value="0.340" /> | 3846 | <param id="99" name="Eye Color" value="0.340" /> |
3847 | 3847 | ||
3848 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 3848 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
3849 | </archetype> | 3849 | </archetype> |
3850 | 3850 | ||
3851 | <archetype name="F W Old"> | 3851 | <archetype name="F W Old"> |
3852 | <!-- wearable: shape --> | 3852 | <!-- wearable: shape --> |
3853 | <param id="1" name="Big_Brow" value="0.505" /> | 3853 | <param id="1" name="Big_Brow" value="0.505" /> |
3854 | 3854 | ||
3855 | <param id="2" name="Nose_Big_Out" value="0.817" /> | 3855 | <param id="2" name="Nose_Big_Out" value="0.817" /> |
3856 | 3856 | ||
3857 | <param id="4" name="Broad_Nostrils" value="0.700" /> | 3857 | <param id="4" name="Broad_Nostrils" value="0.700" /> |
3858 | 3858 | ||
3859 | <param id="5" name="Cleft_Chin" value="1.000" /> | 3859 | <param id="5" name="Cleft_Chin" value="1.000" /> |
3860 | 3860 | ||
3861 | <param id="6" name="Bulbous_Nose_Tip" value="0.116" /> | 3861 | <param id="6" name="Bulbous_Nose_Tip" value="0.116" /> |
3862 | 3862 | ||
3863 | <param id="7" name="Weak_Chin" value="0.200" /> | 3863 | <param id="7" name="Weak_Chin" value="0.200" /> |
3864 | 3864 | ||
3865 | <param id="8" name="Double_Chin" value="0.560" /> | 3865 | <param id="8" name="Double_Chin" value="0.560" /> |
3866 | 3866 | ||
3867 | <param id="10" name="Sunken_Cheeks" value="-0.510" /> | 3867 | <param id="10" name="Sunken_Cheeks" value="-0.510" /> |
3868 | 3868 | ||
3869 | <param id="11" name="Noble_Nose_Bridge" value="0.640" /> | 3869 | <param id="11" name="Noble_Nose_Bridge" value="0.640" /> |
3870 | 3870 | ||
3871 | <param id="12" name="Jowls" value="2.260" /> | 3871 | <param id="12" name="Jowls" value="2.260" /> |
3872 | 3872 | ||
3873 | <param id="13" name="Cleft_Chin_Upper" value="1.170" /> | 3873 | <param id="13" name="Cleft_Chin_Upper" value="1.170" /> |
3874 | 3874 | ||
3875 | <param id="14" name="High_Cheek_Bones" value="-0.395" /> | 3875 | <param id="14" name="High_Cheek_Bones" value="-0.395" /> |
3876 | 3876 | ||
3877 | <param id="15" name="Ears_Out" value="0.440" /> | 3877 | <param id="15" name="Ears_Out" value="0.440" /> |
3878 | 3878 | ||
3879 | <param id="17" name="Square_Jaw" value="0.940" /> | 3879 | <param id="17" name="Square_Jaw" value="0.940" /> |
3880 | 3880 | ||
3881 | <param id="18" name="Puffy_Upper_Cheeks" value="-1.500" /> | 3881 | <param id="18" name="Puffy_Upper_Cheeks" value="-1.500" /> |
3882 | 3882 | ||
3883 | <param id="19" name="Upturned_Nose_Tip" value="-1.200" /> | 3883 | <param id="19" name="Upturned_Nose_Tip" value="-1.200" /> |
3884 | 3884 | ||
3885 | <param id="20" name="Bulbous_Nose" value="0.740" /> | 3885 | <param id="20" name="Bulbous_Nose" value="0.740" /> |
3886 | 3886 | ||
3887 | <param id="21" name="Upper_Eyelid_Fold" value="0.640" /> | 3887 | <param id="21" name="Upper_Eyelid_Fold" value="0.640" /> |
3888 | 3888 | ||
3889 | <param id="22" name="Attached_Earlobes" value="0.000" /> | 3889 | <param id="22" name="Attached_Earlobes" value="0.000" /> |
3890 | 3890 | ||
3891 | <param id="23" name="Baggy_Eyes" value="1.340" /> | 3891 | <param id="23" name="Baggy_Eyes" value="1.340" /> |
3892 | 3892 | ||
3893 | <param id="24" name="Wide_Eyes" value="-1.500" /> | 3893 | <param id="24" name="Wide_Eyes" value="-1.500" /> |
3894 | 3894 | ||
3895 | <param id="25" name="Wide_Lip_Cleft" value="1.500" /> | 3895 | <param id="25" name="Wide_Lip_Cleft" value="1.500" /> |
3896 | 3896 | ||
3897 | <param id="27" name="Wide_Nose_Bridge" value="-1.200" /> | 3897 | <param id="27" name="Wide_Nose_Bridge" value="-1.200" /> |
3898 | 3898 | ||
3899 | <param id="33" name="Height" value="-0.838" /> | 3899 | <param id="33" name="Height" value="-0.838" /> |
3900 | 3900 | ||
3901 | <param id="34" name="Thickness" value="1.500" /> | 3901 | <param id="34" name="Thickness" value="1.500" /> |
3902 | 3902 | ||
3903 | <param id="35" name="Big_Ears" value="1.430" /> | 3903 | <param id="35" name="Big_Ears" value="1.430" /> |
3904 | 3904 | ||
3905 | <param id="36" name="Shoulders" value="-1.736" /> | 3905 | <param id="36" name="Shoulders" value="-1.736" /> |
3906 | 3906 | ||
3907 | <param id="37" name="Hip Width" value="-0.020" /> | 3907 | <param id="37" name="Hip Width" value="-0.020" /> |
3908 | 3908 | ||
3909 | <param id="38" name="Torso Length" value="1.000" /> | 3909 | <param id="38" name="Torso Length" value="1.000" /> |
3910 | 3910 | ||
3911 | <param id="80" name="male" value="0.000" /> | 3911 | <param id="80" name="male" value="0.000" /> |
3912 | 3912 | ||
3913 | <param id="105" name="Breast Size" value="0.840" /> | 3913 | <param id="105" name="Breast Size" value="0.840" /> |
3914 | 3914 | ||
3915 | <param id="151" name="Big_Butt_Legs" value="0.706" /> | 3915 | <param id="151" name="Big_Butt_Legs" value="0.706" /> |
3916 | 3916 | ||
3917 | <param id="155" name="Lip Width" value="0.926" /> | 3917 | <param id="155" name="Lip Width" value="0.926" /> |
3918 | 3918 | ||
3919 | <param id="157" name="Belly Size" value="0.300" /> | 3919 | <param id="157" name="Belly Size" value="0.300" /> |
3920 | 3920 | ||
3921 | <param id="185" name="Deep_Chin" value="0.500" /> | 3921 | <param id="185" name="Deep_Chin" value="0.500" /> |
3922 | 3922 | ||
3923 | <param id="193" name="Head Shape" value="0.400" /> | 3923 | <param id="193" name="Head Shape" value="0.400" /> |
3924 | 3924 | ||
3925 | <param id="196" name="Eye Spacing" value="-0.560" /> | 3925 | <param id="196" name="Eye Spacing" value="-0.560" /> |
3926 | 3926 | ||
3927 | <param id="505" name="Lip Thickness" value="0.220" /> | 3927 | <param id="505" name="Lip Thickness" value="0.220" /> |
3928 | 3928 | ||
3929 | <param id="506" name="Mouth_Height" value="1.160" /> | 3929 | <param id="506" name="Mouth_Height" value="1.160" /> |
3930 | 3930 | ||
3931 | <param id="507" name="Breast_Gravity" value="2.000" /> | 3931 | <param id="507" name="Breast_Gravity" value="2.000" /> |
3932 | 3932 | ||
3933 | <param id="515" name="Foot_Size" value="2.080" /> | 3933 | <param id="515" name="Foot_Size" value="2.080" /> |
3934 | 3934 | ||
3935 | <param id="517" name="Wide_Nose" value="-0.200" /> | 3935 | <param id="517" name="Wide_Nose" value="-0.200" /> |
3936 | 3936 | ||
3937 | <param id="518" name="Eyelashes_Long" value="-0.300" /> | 3937 | <param id="518" name="Eyelashes_Long" value="-0.300" /> |
3938 | 3938 | ||
3939 | <param id="629" name="Forehead Angle" value="0.000" /> | 3939 | <param id="629" name="Forehead Angle" value="0.000" /> |
3940 | 3940 | ||
3941 | <param id="637" name="Body Fat" value="0.930" /> | 3941 | <param id="637" name="Body Fat" value="0.930" /> |
3942 | 3942 | ||
3943 | <param id="646" name="Egg_Head" value="0.333" /> | 3943 | <param id="646" name="Egg_Head" value="0.333" /> |
3944 | 3944 | ||
3945 | <param id="647" name="Squash_Stretch_Head" value="0.550" /> | 3945 | <param id="647" name="Squash_Stretch_Head" value="0.550" /> |
3946 | 3946 | ||
3947 | <param id="649" name="Torso Muscles" value="0.180" /> | 3947 | <param id="649" name="Torso Muscles" value="0.180" /> |
3948 | 3948 | ||
3949 | <param id="650" name="Eyelid_Corner_Up" value="-0.725" /> | 3949 | <param id="650" name="Eyelid_Corner_Up" value="-0.725" /> |
3950 | 3950 | ||
3951 | <param id="652" name="Leg Muscles" value="0.560" /> | 3951 | <param id="652" name="Leg Muscles" value="0.560" /> |
3952 | 3952 | ||
3953 | <param id="653" name="Tall_Lips" value="-1.000" /> | 3953 | <param id="653" name="Tall_Lips" value="-1.000" /> |
3954 | 3954 | ||
3955 | <param id="656" name="Crooked_Nose" value="-0.400" /> | 3955 | <param id="656" name="Crooked_Nose" value="-0.400" /> |
3956 | 3956 | ||
3957 | <param id="659" name="Mouth Corner" value="0.180" /> | 3957 | <param id="659" name="Mouth Corner" value="0.180" /> |
3958 | 3958 | ||
3959 | <param id="662" name="Face Shear" value="0.500" /> | 3959 | <param id="662" name="Face Shear" value="0.500" /> |
3960 | 3960 | ||
3961 | <param id="663" name="Shift_Mouth" value="0.600" /> | 3961 | <param id="663" name="Shift_Mouth" value="0.600" /> |
3962 | 3962 | ||
3963 | <param id="664" name="Pop_Eye" value="0.052" /> | 3963 | <param id="664" name="Pop_Eye" value="0.052" /> |
3964 | 3964 | ||
3965 | <param id="665" name="Jaw_Jut" value="-0.160" /> | 3965 | <param id="665" name="Jaw_Jut" value="-0.160" /> |
3966 | 3966 | ||
3967 | <param id="675" name="Hand Size" value="0.048" /> | 3967 | <param id="675" name="Hand Size" value="0.048" /> |
3968 | 3968 | ||
3969 | <param id="676" name="Love_Handles" value="-0.460" /> | 3969 | <param id="676" name="Love_Handles" value="-0.460" /> |
3970 | 3970 | ||
3971 | <param id="678" name="Torso Muscles" value="0.790" /> | 3971 | <param id="678" name="Torso Muscles" value="0.790" /> |
3972 | 3972 | ||
3973 | <param id="682" name="Head Size" value="0.800" /> | 3973 | <param id="682" name="Head Size" value="0.800" /> |
3974 | 3974 | ||
3975 | <param id="683" name="Neck Thickness" value="-0.088" /> | 3975 | <param id="683" name="Neck Thickness" value="-0.088" /> |
3976 | 3976 | ||
3977 | <param id="684" name="Breast_Female_Clevage" value="-0.204" /> | 3977 | <param id="684" name="Breast_Female_Clevage" value="-0.204" /> |
3978 | 3978 | ||
3979 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> | 3979 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> |
3980 | 3980 | ||
3981 | <param id="690" name="Eye Size" value="0.620" /> | 3981 | <param id="690" name="Eye Size" value="0.620" /> |
3982 | 3982 | ||
3983 | <param id="692" name="Leg Length" value="0.180" /> | 3983 | <param id="692" name="Leg Length" value="0.180" /> |
3984 | 3984 | ||
3985 | <param id="693" name="Arm Length" value="0.540" /> | 3985 | <param id="693" name="Arm Length" value="0.540" /> |
3986 | 3986 | ||
3987 | <param id="753" name="Saddlebags" value="1.390" /> | 3987 | <param id="753" name="Saddlebags" value="1.390" /> |
3988 | 3988 | ||
3989 | <param id="756" name="Neck Length" value="-0.960" /> | 3989 | <param id="756" name="Neck Length" value="-0.960" /> |
3990 | 3990 | ||
3991 | <param id="758" name="Lower_Bridge_Nose" value="0.540" /> | 3991 | <param id="758" name="Lower_Bridge_Nose" value="0.540" /> |
3992 | 3992 | ||
3993 | <param id="759" name="Low_Septum_Nose" value="1.125" /> | 3993 | <param id="759" name="Low_Septum_Nose" value="1.125" /> |
3994 | 3994 | ||
3995 | <param id="760" name="Jaw_Angle" value="-0.368" /> | 3995 | <param id="760" name="Jaw_Angle" value="-0.368" /> |
3996 | 3996 | ||
3997 | <param id="764" name="Lip_Cleft_Deep" value="0.928" /> | 3997 | <param id="764" name="Lip_Cleft_Deep" value="0.928" /> |
3998 | 3998 | ||
3999 | <param id="765" name="Puffy_Lower_Lids" value="1.576" /> | 3999 | <param id="765" name="Puffy_Lower_Lids" value="1.576" /> |
4000 | 4000 | ||
4001 | <param id="769" name="Eye Depth" value="0.120" /> | 4001 | <param id="769" name="Eye Depth" value="0.120" /> |
4002 | 4002 | ||
4003 | <param id="773" name="Head Length" value="0.770" /> | 4003 | <param id="773" name="Head Length" value="0.770" /> |
4004 | 4004 | ||
4005 | <!-- wearable: skin --> | 4005 | <!-- wearable: skin --> |
4006 | <param id="108" name="Rainbow Color" value="0.000" /> | 4006 | <param id="108" name="Rainbow Color" value="0.000" /> |
4007 | 4007 | ||
4008 | <param id="110" name="Red Skin" value="0.000" /> | 4008 | <param id="110" name="Red Skin" value="0.000" /> |
4009 | 4009 | ||
4010 | <param id="111" name="Pigment" value="0.000" /> | 4010 | <param id="111" name="Pigment" value="0.000" /> |
4011 | 4011 | ||
4012 | <param id="116" name="Rosy Complexion" value="0.000" /> | 4012 | <param id="116" name="Rosy Complexion" value="0.000" /> |
4013 | 4013 | ||
4014 | <param id="117" name="Lip Pinkness" value="0.000" /> | 4014 | <param id="117" name="Lip Pinkness" value="0.000" /> |
4015 | 4015 | ||
4016 | <param id="150" name="Body Definition" value="0.740" /> | 4016 | <param id="150" name="Body Definition" value="0.740" /> |
4017 | 4017 | ||
4018 | <param id="162" name="Facial Definition" value="1.000" /> | 4018 | <param id="162" name="Facial Definition" value="1.000" /> |
4019 | 4019 | ||
4020 | <param id="163" name="Wrinkles" value="1.000" /> | 4020 | <param id="163" name="Wrinkles" value="1.000" /> |
4021 | 4021 | ||
4022 | <param id="165" name="Freckles" value="0.380" /> | 4022 | <param id="165" name="Freckles" value="0.380" /> |
4023 | 4023 | ||
4024 | <param id="700" name="Lipstick Color" value="0.250" /> | 4024 | <param id="700" name="Lipstick Color" value="0.250" /> |
4025 | 4025 | ||
4026 | <param id="701" name="Lipstick" value="0.000" /> | 4026 | <param id="701" name="Lipstick" value="0.000" /> |
4027 | 4027 | ||
4028 | <param id="702" name="Lipgloss" value="0.000" /> | 4028 | <param id="702" name="Lipgloss" value="0.000" /> |
4029 | 4029 | ||
4030 | <param id="703" name="Eyeliner" value="0.000" /> | 4030 | <param id="703" name="Eyeliner" value="0.000" /> |
4031 | 4031 | ||
4032 | <param id="704" name="Blush" value="0.000" /> | 4032 | <param id="704" name="Blush" value="0.000" /> |
4033 | 4033 | ||
4034 | <param id="705" name="Blush Color" value="0.500" /> | 4034 | <param id="705" name="Blush Color" value="0.500" /> |
4035 | 4035 | ||
4036 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 4036 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
4037 | 4037 | ||
4038 | <param id="707" name="Outer Shadow" value="0.000" /> | 4038 | <param id="707" name="Outer Shadow" value="0.000" /> |
4039 | 4039 | ||
4040 | <param id="708" name="Out Shdw Color" value="0.000" /> | 4040 | <param id="708" name="Out Shdw Color" value="0.000" /> |
4041 | 4041 | ||
4042 | <param id="709" name="Inner Shadow" value="0.000" /> | 4042 | <param id="709" name="Inner Shadow" value="0.000" /> |
4043 | 4043 | ||
4044 | <param id="710" name="Nail Polish" value="0.000" /> | 4044 | <param id="710" name="Nail Polish" value="0.000" /> |
4045 | 4045 | ||
4046 | <param id="711" name="Blush Opacity" value="0.500" /> | 4046 | <param id="711" name="Blush Opacity" value="0.500" /> |
4047 | 4047 | ||
4048 | <param id="712" name="In Shdw Color" value="0.000" /> | 4048 | <param id="712" name="In Shdw Color" value="0.000" /> |
4049 | 4049 | ||
4050 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 4050 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
4051 | 4051 | ||
4052 | <param id="714" name="Eyeliner Color" value="0.000" /> | 4052 | <param id="714" name="Eyeliner Color" value="0.000" /> |
4053 | 4053 | ||
4054 | <param id="715" name="Nail Polish Color" value="0.000" /> | 4054 | <param id="715" name="Nail Polish Color" value="0.000" /> |
4055 | 4055 | ||
4056 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 4056 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
4057 | 4057 | ||
4058 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 4058 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
4059 | 4059 | ||
4060 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 4060 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
4061 | 4061 | ||
4062 | <!-- wearable: hair --> | 4062 | <!-- wearable: hair --> |
4063 | <param id="16" name="Pointy_Eyebrows" value="-0.095" /> | 4063 | <param id="16" name="Pointy_Eyebrows" value="-0.095" /> |
4064 | 4064 | ||
4065 | <param id="31" name="Arced_Eyebrows" value="0.610" /> | 4065 | <param id="31" name="Arced_Eyebrows" value="0.610" /> |
4066 | 4066 | ||
4067 | <param id="112" name="Rainbow Color" value="0.000" /> | 4067 | <param id="112" name="Rainbow Color" value="0.000" /> |
4068 | 4068 | ||
4069 | <param id="113" name="Red Hair" value="0.150" /> | 4069 | <param id="113" name="Red Hair" value="0.150" /> |
4070 | 4070 | ||
4071 | <param id="114" name="Blonde Hair" value="1.000" /> | 4071 | <param id="114" name="Blonde Hair" value="1.000" /> |
4072 | 4072 | ||
4073 | <param id="115" name="White Hair" value="1.000" /> | 4073 | <param id="115" name="White Hair" value="1.000" /> |
4074 | 4074 | ||
4075 | <param id="119" name="Eyebrow Size" value="0.110" /> | 4075 | <param id="119" name="Eyebrow Size" value="0.110" /> |
4076 | 4076 | ||
4077 | <param id="130" name="Front Fringe" value="0.000" /> | 4077 | <param id="130" name="Front Fringe" value="0.000" /> |
4078 | 4078 | ||
4079 | <param id="131" name="Side Fringe" value="0.000" /> | 4079 | <param id="131" name="Side Fringe" value="0.000" /> |
4080 | 4080 | ||
4081 | <param id="132" name="Back Fringe" value="0.550" /> | 4081 | <param id="132" name="Back Fringe" value="0.550" /> |
4082 | 4082 | ||
4083 | <param id="133" name="Hair Front" value="0.000" /> | 4083 | <param id="133" name="Hair Front" value="0.000" /> |
4084 | 4084 | ||
4085 | <param id="134" name="Hair Sides" value="0.120" /> | 4085 | <param id="134" name="Hair Sides" value="0.120" /> |
4086 | 4086 | ||
4087 | <param id="135" name="Hair Back" value="0.490" /> | 4087 | <param id="135" name="Hair Back" value="0.490" /> |
4088 | 4088 | ||
4089 | <param id="136" name="Hair Sweep" value="0.820" /> | 4089 | <param id="136" name="Hair Sweep" value="0.820" /> |
4090 | 4090 | ||
4091 | <param id="137" name="Hair Tilt" value="0.500" /> | 4091 | <param id="137" name="Hair Tilt" value="0.500" /> |
4092 | 4092 | ||
4093 | <param id="140" name="Hair_Part_Middle" value="0.000" /> | 4093 | <param id="140" name="Hair_Part_Middle" value="0.000" /> |
4094 | 4094 | ||
4095 | <param id="141" name="Hair_Part_Right" value="0.000" /> | 4095 | <param id="141" name="Hair_Part_Right" value="0.000" /> |
4096 | 4096 | ||
4097 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 4097 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
4098 | 4098 | ||
4099 | <param id="143" name="Hair_Sides_Full" value="0.290" /> | 4099 | <param id="143" name="Hair_Sides_Full" value="0.290" /> |
4100 | 4100 | ||
4101 | <param id="166" name="Sideburns" value="0.710" /> | 4101 | <param id="166" name="Sideburns" value="0.710" /> |
4102 | 4102 | ||
4103 | <param id="167" name="Moustache" value="0.000" /> | 4103 | <param id="167" name="Moustache" value="0.000" /> |
4104 | 4104 | ||
4105 | <param id="168" name="Soulpatch" value="0.000" /> | 4105 | <param id="168" name="Soulpatch" value="0.000" /> |
4106 | 4106 | ||
4107 | <param id="169" name="Chin Curtains" value="0.000" /> | 4107 | <param id="169" name="Chin Curtains" value="0.000" /> |
4108 | 4108 | ||
4109 | <param id="177" name="Hair_Rumpled" value="0.770" /> | 4109 | <param id="177" name="Hair_Rumpled" value="0.770" /> |
4110 | 4110 | ||
4111 | <param id="181" name="Hair_Big_Front" value="0.260" /> | 4111 | <param id="181" name="Hair_Big_Front" value="0.260" /> |
4112 | 4112 | ||
4113 | <param id="182" name="Hair_Big_Top" value="0.680" /> | 4113 | <param id="182" name="Hair_Big_Top" value="0.680" /> |
4114 | 4114 | ||
4115 | <param id="183" name="Hair_Big_Back" value="0.200" /> | 4115 | <param id="183" name="Hair_Big_Back" value="0.200" /> |
4116 | 4116 | ||
4117 | <param id="184" name="Hair_Spiked" value="0.000" /> | 4117 | <param id="184" name="Hair_Spiked" value="0.000" /> |
4118 | 4118 | ||
4119 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 4119 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
4120 | 4120 | ||
4121 | <param id="674" name="Hair_Shear_Back" value="0.110" /> | 4121 | <param id="674" name="Hair_Shear_Back" value="0.110" /> |
4122 | 4122 | ||
4123 | <param id="750" name="Eyebrow Density" value="0.580" /> | 4123 | <param id="750" name="Eyebrow Density" value="0.580" /> |
4124 | 4124 | ||
4125 | <param id="752" name="Hair Thickness" value="0.690" /> | 4125 | <param id="752" name="Hair Thickness" value="0.690" /> |
4126 | 4126 | ||
4127 | <param id="754" name="Hair_Taper_Back" value="-0.670" /> | 4127 | <param id="754" name="Hair_Taper_Back" value="-0.670" /> |
4128 | 4128 | ||
4129 | <param id="755" name="Hair_Taper_Front" value="-0.060" /> | 4129 | <param id="755" name="Hair_Taper_Front" value="-0.060" /> |
4130 | 4130 | ||
4131 | <param id="757" name="Lower_Eyebrows" value="1.760" /> | 4131 | <param id="757" name="Lower_Eyebrows" value="1.760" /> |
4132 | 4132 | ||
4133 | <param id="762" name="Hair_Shear_Front" value="0.060" /> | 4133 | <param id="762" name="Hair_Shear_Front" value="0.060" /> |
4134 | 4134 | ||
4135 | <param id="763" name="Hair Volume" value="0.670" /> | 4135 | <param id="763" name="Hair Volume" value="0.670" /> |
4136 | 4136 | ||
4137 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 4137 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
4138 | 4138 | ||
4139 | <!-- wearable: eyes --> | 4139 | <!-- wearable: eyes --> |
4140 | <param id="98" name="Eye Lightness" value="0.080" /> | 4140 | <param id="98" name="Eye Lightness" value="0.080" /> |
4141 | 4141 | ||
4142 | <param id="99" name="Eye Color" value="0.160" /> | 4142 | <param id="99" name="Eye Color" value="0.160" /> |
4143 | 4143 | ||
4144 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 4144 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
4145 | </archetype> | 4145 | </archetype> |
4146 | 4146 | ||
4147 | <archetype name="F W Obese"> | 4147 | <archetype name="F W Obese"> |
4148 | <!-- wearable: shape --> | 4148 | <!-- wearable: shape --> |
4149 | <param id="1" name="Big_Brow" value="0.597" /> | 4149 | <param id="1" name="Big_Brow" value="0.597" /> |
4150 | 4150 | ||
4151 | <param id="2" name="Nose_Big_Out" value="-0.800" /> | 4151 | <param id="2" name="Nose_Big_Out" value="-0.800" /> |
4152 | 4152 | ||
4153 | <param id="4" name="Broad_Nostrils" value="0.835" /> | 4153 | <param id="4" name="Broad_Nostrils" value="0.835" /> |
4154 | 4154 | ||
4155 | <param id="5" name="Cleft_Chin" value="0.813" /> | 4155 | <param id="5" name="Cleft_Chin" value="0.813" /> |
4156 | 4156 | ||
4157 | <param id="6" name="Bulbous_Nose_Tip" value="0.961" /> | 4157 | <param id="6" name="Bulbous_Nose_Tip" value="0.961" /> |
4158 | 4158 | ||
4159 | <param id="7" name="Weak_Chin" value="-0.230" /> | 4159 | <param id="7" name="Weak_Chin" value="-0.230" /> |
4160 | 4160 | ||
4161 | <param id="8" name="Double_Chin" value="1.500" /> | 4161 | <param id="8" name="Double_Chin" value="1.500" /> |
4162 | 4162 | ||
4163 | <param id="10" name="Sunken_Cheeks" value="-0.960" /> | 4163 | <param id="10" name="Sunken_Cheeks" value="-0.960" /> |
4164 | 4164 | ||
4165 | <param id="11" name="Noble_Nose_Bridge" value="0.440" /> | 4165 | <param id="11" name="Noble_Nose_Bridge" value="0.440" /> |
4166 | 4166 | ||
4167 | <param id="12" name="Jowls" value="1.000" /> | 4167 | <param id="12" name="Jowls" value="1.000" /> |
4168 | 4168 | ||
4169 | <param id="13" name="Cleft_Chin_Upper" value="1.500" /> | 4169 | <param id="13" name="Cleft_Chin_Upper" value="1.500" /> |
4170 | 4170 | ||
4171 | <param id="14" name="High_Cheek_Bones" value="0.280" /> | 4171 | <param id="14" name="High_Cheek_Bones" value="0.280" /> |
4172 | 4172 | ||
4173 | <param id="15" name="Ears_Out" value="0.860" /> | 4173 | <param id="15" name="Ears_Out" value="0.860" /> |
4174 | 4174 | ||
4175 | <param id="17" name="Square_Jaw" value="0.055" /> | 4175 | <param id="17" name="Square_Jaw" value="0.055" /> |
4176 | 4176 | ||
4177 | <param id="18" name="Puffy_Upper_Cheeks" value="0.740" /> | 4177 | <param id="18" name="Puffy_Upper_Cheeks" value="0.740" /> |
4178 | 4178 | ||
4179 | <param id="19" name="Upturned_Nose_Tip" value="-0.250" /> | 4179 | <param id="19" name="Upturned_Nose_Tip" value="-0.250" /> |
4180 | 4180 | ||
4181 | <param id="20" name="Bulbous_Nose" value="-0.260" /> | 4181 | <param id="20" name="Bulbous_Nose" value="-0.260" /> |
4182 | 4182 | ||
4183 | <param id="21" name="Upper_Eyelid_Fold" value="0.505" /> | 4183 | <param id="21" name="Upper_Eyelid_Fold" value="0.505" /> |
4184 | 4184 | ||
4185 | <param id="22" name="Attached_Earlobes" value="1.000" /> | 4185 | <param id="22" name="Attached_Earlobes" value="1.000" /> |
4186 | 4186 | ||
4187 | <param id="23" name="Baggy_Eyes" value="1.060" /> | 4187 | <param id="23" name="Baggy_Eyes" value="1.060" /> |
4188 | 4188 | ||
4189 | <param id="24" name="Wide_Eyes" value="0.915" /> | 4189 | <param id="24" name="Wide_Eyes" value="0.915" /> |
4190 | 4190 | ||
4191 | <param id="25" name="Wide_Lip_Cleft" value="1.500" /> | 4191 | <param id="25" name="Wide_Lip_Cleft" value="1.500" /> |
4192 | 4192 | ||
4193 | <param id="27" name="Wide_Nose_Bridge" value="-1.200" /> | 4193 | <param id="27" name="Wide_Nose_Bridge" value="-1.200" /> |
4194 | 4194 | ||
4195 | <param id="33" name="Height" value="-1.096" /> | 4195 | <param id="33" name="Height" value="-1.096" /> |
4196 | 4196 | ||
4197 | <param id="34" name="Thickness" value="1.104" /> | 4197 | <param id="34" name="Thickness" value="1.104" /> |
4198 | 4198 | ||
4199 | <param id="35" name="Big_Ears" value="0.350" /> | 4199 | <param id="35" name="Big_Ears" value="0.350" /> |
4200 | 4200 | ||
4201 | <param id="36" name="Shoulders" value="-0.840" /> | 4201 | <param id="36" name="Shoulders" value="-0.840" /> |
4202 | 4202 | ||
4203 | <param id="37" name="Hip Width" value="-0.500" /> | 4203 | <param id="37" name="Hip Width" value="-0.500" /> |
4204 | 4204 | ||
4205 | <param id="38" name="Torso Length" value="1.000" /> | 4205 | <param id="38" name="Torso Length" value="1.000" /> |
4206 | 4206 | ||
4207 | <param id="80" name="male" value="0.000" /> | 4207 | <param id="80" name="male" value="0.000" /> |
4208 | 4208 | ||
4209 | <param id="105" name="Breast Size" value="0.760" /> | 4209 | <param id="105" name="Breast Size" value="0.760" /> |
4210 | 4210 | ||
4211 | <param id="151" name="Big_Butt_Legs" value="1.000" /> | 4211 | <param id="151" name="Big_Butt_Legs" value="1.000" /> |
4212 | 4212 | ||
4213 | <param id="155" name="Lip Width" value="-0.900" /> | 4213 | <param id="155" name="Lip Width" value="-0.900" /> |
4214 | 4214 | ||
4215 | <param id="157" name="Belly Size" value="0.670" /> | 4215 | <param id="157" name="Belly Size" value="0.670" /> |
4216 | 4216 | ||
4217 | <param id="185" name="Deep_Chin" value="1.000" /> | 4217 | <param id="185" name="Deep_Chin" value="1.000" /> |
4218 | 4218 | ||
4219 | <param id="193" name="Head Shape" value="0.830" /> | 4219 | <param id="193" name="Head Shape" value="0.830" /> |
4220 | 4220 | ||
4221 | <param id="196" name="Eye Spacing" value="-1.010" /> | 4221 | <param id="196" name="Eye Spacing" value="-1.010" /> |
4222 | 4222 | ||
4223 | <param id="505" name="Lip Thickness" value="0.480" /> | 4223 | <param id="505" name="Lip Thickness" value="0.480" /> |
4224 | 4224 | ||
4225 | <param id="506" name="Mouth_Height" value="-0.320" /> | 4225 | <param id="506" name="Mouth_Height" value="-0.320" /> |
4226 | 4226 | ||
4227 | <param id="507" name="Breast_Gravity" value="1.195" /> | 4227 | <param id="507" name="Breast_Gravity" value="1.195" /> |
4228 | 4228 | ||
4229 | <param id="515" name="Foot_Size" value="0.200" /> | 4229 | <param id="515" name="Foot_Size" value="0.200" /> |
4230 | 4230 | ||
4231 | <param id="517" name="Wide_Nose" value="-0.050" /> | 4231 | <param id="517" name="Wide_Nose" value="-0.050" /> |
4232 | 4232 | ||
4233 | <param id="518" name="Eyelashes_Long" value="0.420" /> | 4233 | <param id="518" name="Eyelashes_Long" value="0.420" /> |
4234 | 4234 | ||
4235 | <param id="629" name="Forehead Angle" value="0.340" /> | 4235 | <param id="629" name="Forehead Angle" value="0.340" /> |
4236 | 4236 | ||
4237 | <param id="637" name="Body Fat" value="0.950" /> | 4237 | <param id="637" name="Body Fat" value="0.950" /> |
4238 | 4238 | ||
4239 | <param id="646" name="Egg_Head" value="-0.886" /> | 4239 | <param id="646" name="Egg_Head" value="-0.886" /> |
4240 | 4240 | ||
4241 | <param id="647" name="Squash_Stretch_Head" value="-0.275" /> | 4241 | <param id="647" name="Squash_Stretch_Head" value="-0.275" /> |
4242 | 4242 | ||
4243 | <param id="649" name="Torso Muscles" value="0.940" /> | 4243 | <param id="649" name="Torso Muscles" value="0.940" /> |
4244 | 4244 | ||
4245 | <param id="650" name="Eyelid_Corner_Up" value="-0.650" /> | 4245 | <param id="650" name="Eyelid_Corner_Up" value="-0.650" /> |
4246 | 4246 | ||
4247 | <param id="652" name="Leg Muscles" value="0.790" /> | 4247 | <param id="652" name="Leg Muscles" value="0.790" /> |
4248 | 4248 | ||
4249 | <param id="653" name="Tall_Lips" value="0.470" /> | 4249 | <param id="653" name="Tall_Lips" value="0.470" /> |
4250 | 4250 | ||
4251 | <param id="656" name="Crooked_Nose" value="-0.120" /> | 4251 | <param id="656" name="Crooked_Nose" value="-0.120" /> |
4252 | 4252 | ||
4253 | <param id="659" name="Mouth Corner" value="0.800" /> | 4253 | <param id="659" name="Mouth Corner" value="0.800" /> |
4254 | 4254 | ||
4255 | <param id="662" name="Face Shear" value="0.460" /> | 4255 | <param id="662" name="Face Shear" value="0.460" /> |
4256 | 4256 | ||
4257 | <param id="663" name="Shift_Mouth" value="0.760" /> | 4257 | <param id="663" name="Shift_Mouth" value="0.760" /> |
4258 | 4258 | ||
4259 | <param id="664" name="Pop_Eye" value="-0.156" /> | 4259 | <param id="664" name="Pop_Eye" value="-0.156" /> |
4260 | 4260 | ||
4261 | <param id="665" name="Jaw_Jut" value="-0.640" /> | 4261 | <param id="665" name="Jaw_Jut" value="-0.640" /> |
4262 | 4262 | ||
4263 | <param id="675" name="Hand Size" value="-0.168" /> | 4263 | <param id="675" name="Hand Size" value="-0.168" /> |
4264 | 4264 | ||
4265 | <param id="676" name="Love_Handles" value="-0.550" /> | 4265 | <param id="676" name="Love_Handles" value="-0.550" /> |
4266 | 4266 | ||
4267 | <param id="678" name="Torso Muscles" value="0.790" /> | 4267 | <param id="678" name="Torso Muscles" value="0.790" /> |
4268 | 4268 | ||
4269 | <param id="682" name="Head Size" value="0.380" /> | 4269 | <param id="682" name="Head Size" value="0.380" /> |
4270 | 4270 | ||
4271 | <param id="683" name="Neck Thickness" value="0.164" /> | 4271 | <param id="683" name="Neck Thickness" value="0.164" /> |
4272 | 4272 | ||
4273 | <param id="684" name="Breast_Female_Clevage" value="-0.140" /> | 4273 | <param id="684" name="Breast_Female_Clevage" value="-0.140" /> |
4274 | 4274 | ||
4275 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> | 4275 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> |
4276 | 4276 | ||
4277 | <param id="690" name="Eye Size" value="0.230" /> | 4277 | <param id="690" name="Eye Size" value="0.230" /> |
4278 | 4278 | ||
4279 | <param id="692" name="Leg Length" value="0.360" /> | 4279 | <param id="692" name="Leg Length" value="0.360" /> |
4280 | 4280 | ||
4281 | <param id="693" name="Arm Length" value="0.240" /> | 4281 | <param id="693" name="Arm Length" value="0.240" /> |
4282 | 4282 | ||
4283 | <param id="753" name="Saddlebags" value="2.720" /> | 4283 | <param id="753" name="Saddlebags" value="2.720" /> |
4284 | 4284 | ||
4285 | <param id="756" name="Neck Length" value="-0.460" /> | 4285 | <param id="756" name="Neck Length" value="-0.460" /> |
4286 | 4286 | ||
4287 | <param id="758" name="Lower_Bridge_Nose" value="-1.350" /> | 4287 | <param id="758" name="Lower_Bridge_Nose" value="-1.350" /> |
4288 | 4288 | ||
4289 | <param id="759" name="Low_Septum_Nose" value="0.650" /> | 4289 | <param id="759" name="Low_Septum_Nose" value="0.650" /> |
4290 | 4290 | ||
4291 | <param id="760" name="Jaw_Angle" value="-1.200" /> | 4291 | <param id="760" name="Jaw_Angle" value="-1.200" /> |
4292 | 4292 | ||
4293 | <param id="764" name="Lip_Cleft_Deep" value="0.537" /> | 4293 | <param id="764" name="Lip_Cleft_Deep" value="0.537" /> |
4294 | 4294 | ||
4295 | <param id="765" name="Puffy_Lower_Lids" value="2.500" /> | 4295 | <param id="765" name="Puffy_Lower_Lids" value="2.500" /> |
4296 | 4296 | ||
4297 | <param id="769" name="Eye Depth" value="0.320" /> | 4297 | <param id="769" name="Eye Depth" value="0.320" /> |
4298 | 4298 | ||
4299 | <param id="773" name="Head Length" value="0.880" /> | 4299 | <param id="773" name="Head Length" value="0.880" /> |
4300 | 4300 | ||
4301 | <!-- wearable: skin --> | 4301 | <!-- wearable: skin --> |
4302 | <param id="108" name="Rainbow Color" value="0.000" /> | 4302 | <param id="108" name="Rainbow Color" value="0.000" /> |
4303 | 4303 | ||
4304 | <param id="110" name="Red Skin" value="0.097" /> | 4304 | <param id="110" name="Red Skin" value="0.097" /> |
4305 | 4305 | ||
4306 | <param id="111" name="Pigment" value="0.070" /> | 4306 | <param id="111" name="Pigment" value="0.070" /> |
4307 | 4307 | ||
4308 | <param id="116" name="Rosy Complexion" value="0.450" /> | 4308 | <param id="116" name="Rosy Complexion" value="0.450" /> |
4309 | 4309 | ||
4310 | <param id="117" name="Lip Pinkness" value="0.720" /> | 4310 | <param id="117" name="Lip Pinkness" value="0.720" /> |
4311 | 4311 | ||
4312 | <param id="150" name="Body Definition" value="0.000" /> | 4312 | <param id="150" name="Body Definition" value="0.000" /> |
4313 | 4313 | ||
4314 | <param id="162" name="Facial Definition" value="0.000" /> | 4314 | <param id="162" name="Facial Definition" value="0.000" /> |
4315 | 4315 | ||
4316 | <param id="163" name="Wrinkles" value="0.000" /> | 4316 | <param id="163" name="Wrinkles" value="0.000" /> |
4317 | 4317 | ||
4318 | <param id="165" name="Freckles" value="0.830" /> | 4318 | <param id="165" name="Freckles" value="0.830" /> |
4319 | 4319 | ||
4320 | <param id="700" name="Lipstick Color" value="0.250" /> | 4320 | <param id="700" name="Lipstick Color" value="0.250" /> |
4321 | 4321 | ||
4322 | <param id="701" name="Lipstick" value="0.000" /> | 4322 | <param id="701" name="Lipstick" value="0.000" /> |
4323 | 4323 | ||
4324 | <param id="702" name="Lipgloss" value="0.000" /> | 4324 | <param id="702" name="Lipgloss" value="0.000" /> |
4325 | 4325 | ||
4326 | <param id="703" name="Eyeliner" value="0.000" /> | 4326 | <param id="703" name="Eyeliner" value="0.000" /> |
4327 | 4327 | ||
4328 | <param id="704" name="Blush" value="0.000" /> | 4328 | <param id="704" name="Blush" value="0.000" /> |
4329 | 4329 | ||
4330 | <param id="705" name="Blush Color" value="0.500" /> | 4330 | <param id="705" name="Blush Color" value="0.500" /> |
4331 | 4331 | ||
4332 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 4332 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
4333 | 4333 | ||
4334 | <param id="707" name="Outer Shadow" value="0.000" /> | 4334 | <param id="707" name="Outer Shadow" value="0.000" /> |
4335 | 4335 | ||
4336 | <param id="708" name="Out Shdw Color" value="0.000" /> | 4336 | <param id="708" name="Out Shdw Color" value="0.000" /> |
4337 | 4337 | ||
4338 | <param id="709" name="Inner Shadow" value="0.000" /> | 4338 | <param id="709" name="Inner Shadow" value="0.000" /> |
4339 | 4339 | ||
4340 | <param id="710" name="Nail Polish" value="0.000" /> | 4340 | <param id="710" name="Nail Polish" value="0.000" /> |
4341 | 4341 | ||
4342 | <param id="711" name="Blush Opacity" value="0.500" /> | 4342 | <param id="711" name="Blush Opacity" value="0.500" /> |
4343 | 4343 | ||
4344 | <param id="712" name="In Shdw Color" value="0.000" /> | 4344 | <param id="712" name="In Shdw Color" value="0.000" /> |
4345 | 4345 | ||
4346 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 4346 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
4347 | 4347 | ||
4348 | <param id="714" name="Eyeliner Color" value="0.000" /> | 4348 | <param id="714" name="Eyeliner Color" value="0.000" /> |
4349 | 4349 | ||
4350 | <param id="715" name="Nail Polish Color" value="0.000" /> | 4350 | <param id="715" name="Nail Polish Color" value="0.000" /> |
4351 | 4351 | ||
4352 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 4352 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
4353 | 4353 | ||
4354 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 4354 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
4355 | 4355 | ||
4356 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 4356 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
4357 | 4357 | ||
4358 | <!-- wearable: hair --> | 4358 | <!-- wearable: hair --> |
4359 | <param id="16" name="Pointy_Eyebrows" value="-0.095" /> | 4359 | <param id="16" name="Pointy_Eyebrows" value="-0.095" /> |
4360 | 4360 | ||
4361 | <param id="31" name="Arced_Eyebrows" value="0.610" /> | 4361 | <param id="31" name="Arced_Eyebrows" value="0.610" /> |
4362 | 4362 | ||
4363 | <param id="112" name="Rainbow Color" value="0.000" /> | 4363 | <param id="112" name="Rainbow Color" value="0.000" /> |
4364 | 4364 | ||
4365 | <param id="113" name="Red Hair" value="0.120" /> | 4365 | <param id="113" name="Red Hair" value="0.120" /> |
4366 | 4366 | ||
4367 | <param id="114" name="Blonde Hair" value="0.460" /> | 4367 | <param id="114" name="Blonde Hair" value="0.460" /> |
4368 | 4368 | ||
4369 | <param id="115" name="White Hair" value="0.220" /> | 4369 | <param id="115" name="White Hair" value="0.220" /> |
4370 | 4370 | ||
4371 | <param id="119" name="Eyebrow Size" value="0.110" /> | 4371 | <param id="119" name="Eyebrow Size" value="0.110" /> |
4372 | 4372 | ||
4373 | <param id="130" name="Front Fringe" value="0.000" /> | 4373 | <param id="130" name="Front Fringe" value="0.000" /> |
4374 | 4374 | ||
4375 | <param id="131" name="Side Fringe" value="0.080" /> | 4375 | <param id="131" name="Side Fringe" value="0.080" /> |
4376 | 4376 | ||
4377 | <param id="132" name="Back Fringe" value="0.200" /> | 4377 | <param id="132" name="Back Fringe" value="0.200" /> |
4378 | 4378 | ||
4379 | <param id="133" name="Hair Front" value="0.520" /> | 4379 | <param id="133" name="Hair Front" value="0.520" /> |
4380 | 4380 | ||
4381 | <param id="134" name="Hair Sides" value="0.400" /> | 4381 | <param id="134" name="Hair Sides" value="0.400" /> |
4382 | 4382 | ||
4383 | <param id="135" name="Hair Back" value="0.560" /> | 4383 | <param id="135" name="Hair Back" value="0.560" /> |
4384 | 4384 | ||
4385 | <param id="136" name="Hair Sweep" value="1.000" /> | 4385 | <param id="136" name="Hair Sweep" value="1.000" /> |
4386 | 4386 | ||
4387 | <param id="137" name="Hair Tilt" value="0.500" /> | 4387 | <param id="137" name="Hair Tilt" value="0.500" /> |
4388 | 4388 | ||
4389 | <param id="140" name="Hair_Part_Middle" value="0.000" /> | 4389 | <param id="140" name="Hair_Part_Middle" value="0.000" /> |
4390 | 4390 | ||
4391 | <param id="141" name="Hair_Part_Right" value="0.000" /> | 4391 | <param id="141" name="Hair_Part_Right" value="0.000" /> |
4392 | 4392 | ||
4393 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 4393 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
4394 | 4394 | ||
4395 | <param id="143" name="Hair_Sides_Full" value="0.290" /> | 4395 | <param id="143" name="Hair_Sides_Full" value="0.290" /> |
4396 | 4396 | ||
4397 | <param id="166" name="Sideburns" value="0.710" /> | 4397 | <param id="166" name="Sideburns" value="0.710" /> |
4398 | 4398 | ||
4399 | <param id="167" name="Moustache" value="0.000" /> | 4399 | <param id="167" name="Moustache" value="0.000" /> |
4400 | 4400 | ||
4401 | <param id="168" name="Soulpatch" value="0.000" /> | 4401 | <param id="168" name="Soulpatch" value="0.000" /> |
4402 | 4402 | ||
4403 | <param id="169" name="Chin Curtains" value="0.000" /> | 4403 | <param id="169" name="Chin Curtains" value="0.000" /> |
4404 | 4404 | ||
4405 | <param id="177" name="Hair_Rumpled" value="0.770" /> | 4405 | <param id="177" name="Hair_Rumpled" value="0.770" /> |
4406 | 4406 | ||
4407 | <param id="181" name="Hair_Big_Front" value="0.260" /> | 4407 | <param id="181" name="Hair_Big_Front" value="0.260" /> |
4408 | 4408 | ||
4409 | <param id="182" name="Hair_Big_Top" value="0.200" /> | 4409 | <param id="182" name="Hair_Big_Top" value="0.200" /> |
4410 | 4410 | ||
4411 | <param id="183" name="Hair_Big_Back" value="0.300" /> | 4411 | <param id="183" name="Hair_Big_Back" value="0.300" /> |
4412 | 4412 | ||
4413 | <param id="184" name="Hair_Spiked" value="0.000" /> | 4413 | <param id="184" name="Hair_Spiked" value="0.000" /> |
4414 | 4414 | ||
4415 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 4415 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
4416 | 4416 | ||
4417 | <param id="674" name="Hair_Shear_Back" value="0.110" /> | 4417 | <param id="674" name="Hair_Shear_Back" value="0.110" /> |
4418 | 4418 | ||
4419 | <param id="750" name="Eyebrow Density" value="0.580" /> | 4419 | <param id="750" name="Eyebrow Density" value="0.580" /> |
4420 | 4420 | ||
4421 | <param id="752" name="Hair Thickness" value="0.690" /> | 4421 | <param id="752" name="Hair Thickness" value="0.690" /> |
4422 | 4422 | ||
4423 | <param id="754" name="Hair_Taper_Back" value="-0.670" /> | 4423 | <param id="754" name="Hair_Taper_Back" value="-0.670" /> |
4424 | 4424 | ||
4425 | <param id="755" name="Hair_Taper_Front" value="-0.060" /> | 4425 | <param id="755" name="Hair_Taper_Front" value="-0.060" /> |
4426 | 4426 | ||
4427 | <param id="757" name="Lower_Eyebrows" value="1.760" /> | 4427 | <param id="757" name="Lower_Eyebrows" value="1.760" /> |
4428 | 4428 | ||
4429 | <param id="762" name="Hair_Shear_Front" value="0.210" /> | 4429 | <param id="762" name="Hair_Shear_Front" value="0.210" /> |
4430 | 4430 | ||
4431 | <param id="763" name="Hair Volume" value="0.520" /> | 4431 | <param id="763" name="Hair Volume" value="0.520" /> |
4432 | 4432 | ||
4433 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 4433 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
4434 | 4434 | ||
4435 | <!-- wearable: eyes --> | 4435 | <!-- wearable: eyes --> |
4436 | <param id="98" name="Eye Lightness" value="0.080" /> | 4436 | <param id="98" name="Eye Lightness" value="0.080" /> |
4437 | 4437 | ||
4438 | <param id="99" name="Eye Color" value="0.160" /> | 4438 | <param id="99" name="Eye Color" value="0.160" /> |
4439 | 4439 | ||
4440 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 4440 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
4441 | </archetype> | 4441 | </archetype> |
4442 | 4442 | ||
4443 | <archetype name="F W Muscle"> | 4443 | <archetype name="F W Muscle"> |
4444 | <!-- wearable: shape --> | 4444 | <!-- wearable: shape --> |
4445 | <param id="1" name="Big_Brow" value="0.183" /> | 4445 | <param id="1" name="Big_Brow" value="0.183" /> |
4446 | 4446 | ||
4447 | <param id="2" name="Nose_Big_Out" value="-0.404" /> | 4447 | <param id="2" name="Nose_Big_Out" value="-0.404" /> |
4448 | 4448 | ||
4449 | <param id="4" name="Broad_Nostrils" value="-0.095" /> | 4449 | <param id="4" name="Broad_Nostrils" value="-0.095" /> |
4450 | 4450 | ||
4451 | <param id="5" name="Cleft_Chin" value="0.373" /> | 4451 | <param id="5" name="Cleft_Chin" value="0.373" /> |
4452 | 4452 | ||
4453 | <param id="6" name="Bulbous_Nose_Tip" value="0.389" /> | 4453 | <param id="6" name="Bulbous_Nose_Tip" value="0.389" /> |
4454 | 4454 | ||
4455 | <param id="7" name="Weak_Chin" value="-0.200" /> | 4455 | <param id="7" name="Weak_Chin" value="-0.200" /> |
4456 | 4456 | ||
4457 | <param id="8" name="Double_Chin" value="-0.160" /> | 4457 | <param id="8" name="Double_Chin" value="-0.160" /> |
4458 | 4458 | ||
4459 | <param id="10" name="Sunken_Cheeks" value="-0.060" /> | 4459 | <param id="10" name="Sunken_Cheeks" value="-0.060" /> |
4460 | 4460 | ||
4461 | <param id="11" name="Noble_Nose_Bridge" value="0.340" /> | 4461 | <param id="11" name="Noble_Nose_Bridge" value="0.340" /> |
4462 | 4462 | ||
4463 | <param id="12" name="Jowls" value="0.520" /> | 4463 | <param id="12" name="Jowls" value="0.520" /> |
4464 | 4464 | ||
4465 | <param id="13" name="Cleft_Chin_Upper" value="0.630" /> | 4465 | <param id="13" name="Cleft_Chin_Upper" value="0.630" /> |
4466 | 4466 | ||
4467 | <param id="14" name="High_Cheek_Bones" value="0.370" /> | 4467 | <param id="14" name="High_Cheek_Bones" value="0.370" /> |
4468 | 4468 | ||
4469 | <param id="15" name="Ears_Out" value="-0.060" /> | 4469 | <param id="15" name="Ears_Out" value="-0.060" /> |
4470 | 4470 | ||
4471 | <param id="17" name="Square_Jaw" value="-0.200" /> | 4471 | <param id="17" name="Square_Jaw" value="-0.200" /> |
4472 | 4472 | ||
4473 | <param id="18" name="Puffy_Upper_Cheeks" value="-0.060" /> | 4473 | <param id="18" name="Puffy_Upper_Cheeks" value="-0.060" /> |
4474 | 4474 | ||
4475 | <param id="19" name="Upturned_Nose_Tip" value="0.025" /> | 4475 | <param id="19" name="Upturned_Nose_Tip" value="0.025" /> |
4476 | 4476 | ||
4477 | <param id="20" name="Bulbous_Nose" value="-0.240" /> | 4477 | <param id="20" name="Bulbous_Nose" value="-0.240" /> |
4478 | 4478 | ||
4479 | <param id="21" name="Upper_Eyelid_Fold" value="-0.200" /> | 4479 | <param id="21" name="Upper_Eyelid_Fold" value="-0.200" /> |
4480 | 4480 | ||
4481 | <param id="22" name="Attached_Earlobes" value="0.000" /> | 4481 | <param id="22" name="Attached_Earlobes" value="0.000" /> |
4482 | 4482 | ||
4483 | <param id="23" name="Baggy_Eyes" value="-0.500" /> | 4483 | <param id="23" name="Baggy_Eyes" value="-0.500" /> |
4484 | 4484 | ||
4485 | <param id="24" name="Wide_Eyes" value="0.425" /> | 4485 | <param id="24" name="Wide_Eyes" value="0.425" /> |
4486 | 4486 | ||
4487 | <param id="25" name="Wide_Lip_Cleft" value="-0.087" /> | 4487 | <param id="25" name="Wide_Lip_Cleft" value="-0.087" /> |
4488 | 4488 | ||
4489 | <param id="27" name="Wide_Nose_Bridge" value="0.000" /> | 4489 | <param id="27" name="Wide_Nose_Bridge" value="0.000" /> |
4490 | 4490 | ||
4491 | <param id="33" name="Height" value="0.580" /> | 4491 | <param id="33" name="Height" value="0.580" /> |
4492 | 4492 | ||
4493 | <param id="34" name="Thickness" value="0.660" /> | 4493 | <param id="34" name="Thickness" value="0.660" /> |
4494 | 4494 | ||
4495 | <param id="35" name="Big_Ears" value="-0.040" /> | 4495 | <param id="35" name="Big_Ears" value="-0.040" /> |
4496 | 4496 | ||
4497 | <param id="36" name="Shoulders" value="-0.456" /> | 4497 | <param id="36" name="Shoulders" value="-0.456" /> |
4498 | 4498 | ||
4499 | <param id="37" name="Hip Width" value="-0.380" /> | 4499 | <param id="37" name="Hip Width" value="-0.380" /> |
4500 | 4500 | ||
4501 | <param id="38" name="Torso Length" value="-0.160" /> | 4501 | <param id="38" name="Torso Length" value="-0.160" /> |
4502 | 4502 | ||
4503 | <param id="80" name="male" value="0.000" /> | 4503 | <param id="80" name="male" value="0.000" /> |
4504 | 4504 | ||
4505 | <param id="105" name="Breast Size" value="0.370" /> | 4505 | <param id="105" name="Breast Size" value="0.370" /> |
4506 | 4506 | ||
4507 | <param id="151" name="Big_Butt_Legs" value="-0.050" /> | 4507 | <param id="151" name="Big_Butt_Legs" value="-0.050" /> |
4508 | 4508 | ||
4509 | <param id="155" name="Lip Width" value="-0.636" /> | 4509 | <param id="155" name="Lip Width" value="-0.636" /> |
4510 | 4510 | ||
4511 | <param id="157" name="Belly Size" value="0.050" /> | 4511 | <param id="157" name="Belly Size" value="0.050" /> |
4512 | 4512 | ||
4513 | <param id="185" name="Deep_Chin" value="-0.360" /> | 4513 | <param id="185" name="Deep_Chin" value="-0.360" /> |
4514 | 4514 | ||
4515 | <param id="193" name="Head Shape" value="0.890" /> | 4515 | <param id="193" name="Head Shape" value="0.890" /> |
4516 | 4516 | ||
4517 | <param id="196" name="Eye Spacing" value="-0.020" /> | 4517 | <param id="196" name="Eye Spacing" value="-0.020" /> |
4518 | 4518 | ||
4519 | <param id="505" name="Lip Thickness" value="0.600" /> | 4519 | <param id="505" name="Lip Thickness" value="0.600" /> |
4520 | 4520 | ||
4521 | <param id="506" name="Mouth_Height" value="-0.320" /> | 4521 | <param id="506" name="Mouth_Height" value="-0.320" /> |
4522 | 4522 | ||
4523 | <param id="507" name="Breast_Gravity" value="-0.940" /> | 4523 | <param id="507" name="Breast_Gravity" value="-0.940" /> |
4524 | 4524 | ||
4525 | <param id="515" name="Foot_Size" value="0.880" /> | 4525 | <param id="515" name="Foot_Size" value="0.880" /> |
4526 | 4526 | ||
4527 | <param id="517" name="Wide_Nose" value="0.070" /> | 4527 | <param id="517" name="Wide_Nose" value="0.070" /> |
4528 | 4528 | ||
4529 | <param id="518" name="Eyelashes_Long" value="0.330" /> | 4529 | <param id="518" name="Eyelashes_Long" value="0.330" /> |
4530 | 4530 | ||
4531 | <param id="629" name="Forehead Angle" value="0.070" /> | 4531 | <param id="629" name="Forehead Angle" value="0.070" /> |
4532 | 4532 | ||
4533 | <param id="637" name="Body Fat" value="0.120" /> | 4533 | <param id="637" name="Body Fat" value="0.120" /> |
4534 | 4534 | ||
4535 | <param id="646" name="Egg_Head" value="0.586" /> | 4535 | <param id="646" name="Egg_Head" value="0.586" /> |
4536 | 4536 | ||
4537 | <param id="647" name="Squash_Stretch_Head" value="0.160" /> | 4537 | <param id="647" name="Squash_Stretch_Head" value="0.160" /> |
4538 | 4538 | ||
4539 | <param id="649" name="Torso Muscles" value="0.670" /> | 4539 | <param id="649" name="Torso Muscles" value="0.670" /> |
4540 | 4540 | ||
4541 | <param id="650" name="Eyelid_Corner_Up" value="0.400" /> | 4541 | <param id="650" name="Eyelid_Corner_Up" value="0.400" /> |
4542 | 4542 | ||
4543 | <param id="652" name="Leg Muscles" value="0.570" /> | 4543 | <param id="652" name="Leg Muscles" value="0.570" /> |
4544 | 4544 | ||
4545 | <param id="653" name="Tall_Lips" value="-0.190" /> | 4545 | <param id="653" name="Tall_Lips" value="-0.190" /> |
4546 | 4546 | ||
4547 | <param id="656" name="Crooked_Nose" value="0.000" /> | 4547 | <param id="656" name="Crooked_Nose" value="0.000" /> |
4548 | 4548 | ||
4549 | <param id="659" name="Mouth Corner" value="0.620" /> | 4549 | <param id="659" name="Mouth Corner" value="0.620" /> |
4550 | 4550 | ||
4551 | <param id="662" name="Face Shear" value="0.500" /> | 4551 | <param id="662" name="Face Shear" value="0.500" /> |
4552 | 4552 | ||
4553 | <param id="663" name="Shift_Mouth" value="0.000" /> | 4553 | <param id="663" name="Shift_Mouth" value="0.000" /> |
4554 | 4554 | ||
4555 | <param id="664" name="Pop_Eye" value="0.000" /> | 4555 | <param id="664" name="Pop_Eye" value="0.000" /> |
4556 | 4556 | ||
4557 | <param id="665" name="Jaw_Jut" value="-0.160" /> | 4557 | <param id="665" name="Jaw_Jut" value="-0.160" /> |
4558 | 4558 | ||
4559 | <param id="675" name="Hand Size" value="-0.042" /> | 4559 | <param id="675" name="Hand Size" value="-0.042" /> |
4560 | 4560 | ||
4561 | <param id="676" name="Love_Handles" value="-0.340" /> | 4561 | <param id="676" name="Love_Handles" value="-0.340" /> |
4562 | 4562 | ||
4563 | <param id="678" name="Torso Muscles" value="0.790" /> | 4563 | <param id="678" name="Torso Muscles" value="0.790" /> |
4564 | 4564 | ||
4565 | <param id="682" name="Head Size" value="0.710" /> | 4565 | <param id="682" name="Head Size" value="0.710" /> |
4566 | 4566 | ||
4567 | <param id="683" name="Neck Thickness" value="-0.088" /> | 4567 | <param id="683" name="Neck Thickness" value="-0.088" /> |
4568 | 4568 | ||
4569 | <param id="684" name="Breast_Female_Clevage" value="0.644" /> | 4569 | <param id="684" name="Breast_Female_Clevage" value="0.644" /> |
4570 | 4570 | ||
4571 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> | 4571 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> |
4572 | 4572 | ||
4573 | <param id="690" name="Eye Size" value="0.480" /> | 4573 | <param id="690" name="Eye Size" value="0.480" /> |
4574 | 4574 | ||
4575 | <param id="692" name="Leg Length" value="0.420" /> | 4575 | <param id="692" name="Leg Length" value="0.420" /> |
4576 | 4576 | ||
4577 | <param id="693" name="Arm Length" value="0.520" /> | 4577 | <param id="693" name="Arm Length" value="0.520" /> |
4578 | 4578 | ||
4579 | <param id="753" name="Saddlebags" value="0.620" /> | 4579 | <param id="753" name="Saddlebags" value="0.620" /> |
4580 | 4580 | ||
4581 | <param id="756" name="Neck Length" value="0.060" /> | 4581 | <param id="756" name="Neck Length" value="0.060" /> |
4582 | 4582 | ||
4583 | <param id="758" name="Lower_Bridge_Nose" value="0.570" /> | 4583 | <param id="758" name="Lower_Bridge_Nose" value="0.570" /> |
4584 | 4584 | ||
4585 | <param id="759" name="Low_Septum_Nose" value="1.300" /> | 4585 | <param id="759" name="Low_Septum_Nose" value="1.300" /> |
4586 | 4586 | ||
4587 | <param id="760" name="Jaw_Angle" value="1.104" /> | 4587 | <param id="760" name="Jaw_Angle" value="1.104" /> |
4588 | 4588 | ||
4589 | <param id="764" name="Lip_Cleft_Deep" value="0.622" /> | 4589 | <param id="764" name="Lip_Cleft_Deep" value="0.622" /> |
4590 | 4590 | ||
4591 | <param id="765" name="Puffy_Lower_Lids" value="-0.300" /> | 4591 | <param id="765" name="Puffy_Lower_Lids" value="-0.300" /> |
4592 | 4592 | ||
4593 | <param id="769" name="Eye Depth" value="0.310" /> | 4593 | <param id="769" name="Eye Depth" value="0.310" /> |
4594 | 4594 | ||
4595 | <param id="773" name="Head Length" value="0.720" /> | 4595 | <param id="773" name="Head Length" value="0.720" /> |
4596 | 4596 | ||
4597 | <!-- wearable: skin --> | 4597 | <!-- wearable: skin --> |
4598 | <param id="108" name="Rainbow Color" value="0.000" /> | 4598 | <param id="108" name="Rainbow Color" value="0.000" /> |
4599 | 4599 | ||
4600 | <param id="110" name="Red Skin" value="0.082" /> | 4600 | <param id="110" name="Red Skin" value="0.082" /> |
4601 | 4601 | ||
4602 | <param id="111" name="Pigment" value="0.120" /> | 4602 | <param id="111" name="Pigment" value="0.120" /> |
4603 | 4603 | ||
4604 | <param id="116" name="Rosy Complexion" value="0.370" /> | 4604 | <param id="116" name="Rosy Complexion" value="0.370" /> |
4605 | 4605 | ||
4606 | <param id="117" name="Lip Pinkness" value="0.640" /> | 4606 | <param id="117" name="Lip Pinkness" value="0.640" /> |
4607 | 4607 | ||
4608 | <param id="150" name="Body Definition" value="0.870" /> | 4608 | <param id="150" name="Body Definition" value="0.870" /> |
4609 | 4609 | ||
4610 | <param id="162" name="Facial Definition" value="0.000" /> | 4610 | <param id="162" name="Facial Definition" value="0.000" /> |
4611 | 4611 | ||
4612 | <param id="163" name="Wrinkles" value="0.000" /> | 4612 | <param id="163" name="Wrinkles" value="0.000" /> |
4613 | 4613 | ||
4614 | <param id="165" name="Freckles" value="0.460" /> | 4614 | <param id="165" name="Freckles" value="0.460" /> |
4615 | 4615 | ||
4616 | <param id="700" name="Lipstick Color" value="0.250" /> | 4616 | <param id="700" name="Lipstick Color" value="0.250" /> |
4617 | 4617 | ||
4618 | <param id="701" name="Lipstick" value="0.000" /> | 4618 | <param id="701" name="Lipstick" value="0.000" /> |
4619 | 4619 | ||
4620 | <param id="702" name="Lipgloss" value="0.000" /> | 4620 | <param id="702" name="Lipgloss" value="0.000" /> |
4621 | 4621 | ||
4622 | <param id="703" name="Eyeliner" value="0.000" /> | 4622 | <param id="703" name="Eyeliner" value="0.000" /> |
4623 | 4623 | ||
4624 | <param id="704" name="Blush" value="0.000" /> | 4624 | <param id="704" name="Blush" value="0.000" /> |
4625 | 4625 | ||
4626 | <param id="705" name="Blush Color" value="0.500" /> | 4626 | <param id="705" name="Blush Color" value="0.500" /> |
4627 | 4627 | ||
4628 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 4628 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
4629 | 4629 | ||
4630 | <param id="707" name="Outer Shadow" value="0.000" /> | 4630 | <param id="707" name="Outer Shadow" value="0.000" /> |
4631 | 4631 | ||
4632 | <param id="708" name="Out Shdw Color" value="0.000" /> | 4632 | <param id="708" name="Out Shdw Color" value="0.000" /> |
4633 | 4633 | ||
4634 | <param id="709" name="Inner Shadow" value="0.000" /> | 4634 | <param id="709" name="Inner Shadow" value="0.000" /> |
4635 | 4635 | ||
4636 | <param id="710" name="Nail Polish" value="0.000" /> | 4636 | <param id="710" name="Nail Polish" value="0.000" /> |
4637 | 4637 | ||
4638 | <param id="711" name="Blush Opacity" value="0.500" /> | 4638 | <param id="711" name="Blush Opacity" value="0.500" /> |
4639 | 4639 | ||
4640 | <param id="712" name="In Shdw Color" value="0.000" /> | 4640 | <param id="712" name="In Shdw Color" value="0.000" /> |
4641 | 4641 | ||
4642 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 4642 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
4643 | 4643 | ||
4644 | <param id="714" name="Eyeliner Color" value="0.000" /> | 4644 | <param id="714" name="Eyeliner Color" value="0.000" /> |
4645 | 4645 | ||
4646 | <param id="715" name="Nail Polish Color" value="0.000" /> | 4646 | <param id="715" name="Nail Polish Color" value="0.000" /> |
4647 | 4647 | ||
4648 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 4648 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
4649 | 4649 | ||
4650 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 4650 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
4651 | 4651 | ||
4652 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 4652 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
4653 | 4653 | ||
4654 | <!-- wearable: hair --> | 4654 | <!-- wearable: hair --> |
4655 | <param id="16" name="Pointy_Eyebrows" value="0.280" /> | 4655 | <param id="16" name="Pointy_Eyebrows" value="0.280" /> |
4656 | 4656 | ||
4657 | <param id="31" name="Arced_Eyebrows" value="0.270" /> | 4657 | <param id="31" name="Arced_Eyebrows" value="0.270" /> |
4658 | 4658 | ||
4659 | <param id="112" name="Rainbow Color" value="0.000" /> | 4659 | <param id="112" name="Rainbow Color" value="0.000" /> |
4660 | 4660 | ||
4661 | <param id="113" name="Red Hair" value="0.640" /> | 4661 | <param id="113" name="Red Hair" value="0.640" /> |
4662 | 4662 | ||
4663 | <param id="114" name="Blonde Hair" value="0.030" /> | 4663 | <param id="114" name="Blonde Hair" value="0.030" /> |
4664 | 4664 | ||
4665 | <param id="115" name="White Hair" value="0.000" /> | 4665 | <param id="115" name="White Hair" value="0.000" /> |
4666 | 4666 | ||
4667 | <param id="119" name="Eyebrow Size" value="0.470" /> | 4667 | <param id="119" name="Eyebrow Size" value="0.470" /> |
4668 | 4668 | ||
4669 | <param id="130" name="Front Fringe" value="0.570" /> | 4669 | <param id="130" name="Front Fringe" value="0.570" /> |
4670 | 4670 | ||
4671 | <param id="131" name="Side Fringe" value="0.720" /> | 4671 | <param id="131" name="Side Fringe" value="0.720" /> |
4672 | 4672 | ||
4673 | <param id="132" name="Back Fringe" value="0.600" /> | 4673 | <param id="132" name="Back Fringe" value="0.600" /> |
4674 | 4674 | ||
4675 | <param id="133" name="Hair Front" value="0.040" /> | 4675 | <param id="133" name="Hair Front" value="0.040" /> |
4676 | 4676 | ||
4677 | <param id="134" name="Hair Sides" value="0.580" /> | 4677 | <param id="134" name="Hair Sides" value="0.580" /> |
4678 | 4678 | ||
4679 | <param id="135" name="Hair Back" value="0.610" /> | 4679 | <param id="135" name="Hair Back" value="0.610" /> |
4680 | 4680 | ||
4681 | <param id="136" name="Hair Sweep" value="0.370" /> | 4681 | <param id="136" name="Hair Sweep" value="0.370" /> |
4682 | 4682 | ||
4683 | <param id="137" name="Hair Tilt" value="0.510" /> | 4683 | <param id="137" name="Hair Tilt" value="0.510" /> |
4684 | 4684 | ||
4685 | <param id="140" name="Hair_Part_Middle" value="0.000" /> | 4685 | <param id="140" name="Hair_Part_Middle" value="0.000" /> |
4686 | 4686 | ||
4687 | <param id="141" name="Hair_Part_Right" value="1.520" /> | 4687 | <param id="141" name="Hair_Part_Right" value="1.520" /> |
4688 | 4688 | ||
4689 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 4689 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
4690 | 4690 | ||
4691 | <param id="143" name="Hair_Sides_Full" value="0.455" /> | 4691 | <param id="143" name="Hair_Sides_Full" value="0.455" /> |
4692 | 4692 | ||
4693 | <param id="166" name="Sideburns" value="0.710" /> | 4693 | <param id="166" name="Sideburns" value="0.710" /> |
4694 | 4694 | ||
4695 | <param id="167" name="Moustache" value="0.000" /> | 4695 | <param id="167" name="Moustache" value="0.000" /> |
4696 | 4696 | ||
4697 | <param id="168" name="Soulpatch" value="0.000" /> | 4697 | <param id="168" name="Soulpatch" value="0.000" /> |
4698 | 4698 | ||
4699 | <param id="169" name="Chin Curtains" value="0.000" /> | 4699 | <param id="169" name="Chin Curtains" value="0.000" /> |
4700 | 4700 | ||
4701 | <param id="177" name="Hair_Rumpled" value="0.410" /> | 4701 | <param id="177" name="Hair_Rumpled" value="0.410" /> |
4702 | 4702 | ||
4703 | <param id="181" name="Hair_Big_Front" value="0.060" /> | 4703 | <param id="181" name="Hair_Big_Front" value="0.060" /> |
4704 | 4704 | ||
4705 | <param id="182" name="Hair_Big_Top" value="0.640" /> | 4705 | <param id="182" name="Hair_Big_Top" value="0.640" /> |
4706 | 4706 | ||
4707 | <param id="183" name="Hair_Big_Back" value="0.440" /> | 4707 | <param id="183" name="Hair_Big_Back" value="0.440" /> |
4708 | 4708 | ||
4709 | <param id="184" name="Hair_Spiked" value="0.000" /> | 4709 | <param id="184" name="Hair_Spiked" value="0.000" /> |
4710 | 4710 | ||
4711 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 4711 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
4712 | 4712 | ||
4713 | <param id="674" name="Hair_Shear_Back" value="0.740" /> | 4713 | <param id="674" name="Hair_Shear_Back" value="0.740" /> |
4714 | 4714 | ||
4715 | <param id="750" name="Eyebrow Density" value="0.610" /> | 4715 | <param id="750" name="Eyebrow Density" value="0.610" /> |
4716 | 4716 | ||
4717 | <param id="752" name="Hair Thickness" value="0.690" /> | 4717 | <param id="752" name="Hair Thickness" value="0.690" /> |
4718 | 4718 | ||
4719 | <param id="754" name="Hair_Taper_Back" value="-0.490" /> | 4719 | <param id="754" name="Hair_Taper_Back" value="-0.490" /> |
4720 | 4720 | ||
4721 | <param id="755" name="Hair_Taper_Front" value="-0.030" /> | 4721 | <param id="755" name="Hair_Taper_Front" value="-0.030" /> |
4722 | 4722 | ||
4723 | <param id="757" name="Lower_Eyebrows" value="0.560" /> | 4723 | <param id="757" name="Lower_Eyebrows" value="0.560" /> |
4724 | 4724 | ||
4725 | <param id="762" name="Hair_Shear_Front" value="0.060" /> | 4725 | <param id="762" name="Hair_Shear_Front" value="0.060" /> |
4726 | 4726 | ||
4727 | <param id="763" name="Hair Volume" value="0.520" /> | 4727 | <param id="763" name="Hair Volume" value="0.520" /> |
4728 | 4728 | ||
4729 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 4729 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
4730 | 4730 | ||
4731 | <!-- wearable: eyes --> | 4731 | <!-- wearable: eyes --> |
4732 | <param id="98" name="Eye Lightness" value="0.170" /> | 4732 | <param id="98" name="Eye Lightness" value="0.170" /> |
4733 | 4733 | ||
4734 | <param id="99" name="Eye Color" value="0.270" /> | 4734 | <param id="99" name="Eye Color" value="0.270" /> |
4735 | 4735 | ||
4736 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 4736 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
4737 | </archetype> | 4737 | </archetype> |
4738 | 4738 | ||
4739 | <archetype name="F W Chubby"> | 4739 | <archetype name="F W Chubby"> |
4740 | <!-- wearable: shape --> | 4740 | <!-- wearable: shape --> |
4741 | <param id="1" name="Big_Brow" value="0.436" /> | 4741 | <param id="1" name="Big_Brow" value="0.436" /> |
4742 | 4742 | ||
4743 | <param id="2" name="Nose_Big_Out" value="-0.074" /> | 4743 | <param id="2" name="Nose_Big_Out" value="-0.074" /> |
4744 | 4744 | ||
4745 | <param id="4" name="Broad_Nostrils" value="0.100" /> | 4745 | <param id="4" name="Broad_Nostrils" value="0.100" /> |
4746 | 4746 | ||
4747 | <param id="5" name="Cleft_Chin" value="-0.100" /> | 4747 | <param id="5" name="Cleft_Chin" value="-0.100" /> |
4748 | 4748 | ||
4749 | <param id="6" name="Bulbous_Nose_Tip" value="0.012" /> | 4749 | <param id="6" name="Bulbous_Nose_Tip" value="0.012" /> |
4750 | 4750 | ||
4751 | <param id="7" name="Weak_Chin" value="0.150" /> | 4751 | <param id="7" name="Weak_Chin" value="0.150" /> |
4752 | 4752 | ||
4753 | <param id="8" name="Double_Chin" value="-0.500" /> | 4753 | <param id="8" name="Double_Chin" value="-0.500" /> |
4754 | 4754 | ||
4755 | <param id="10" name="Sunken_Cheeks" value="-0.285" /> | 4755 | <param id="10" name="Sunken_Cheeks" value="-0.285" /> |
4756 | 4756 | ||
4757 | <param id="11" name="Noble_Nose_Bridge" value="0.440" /> | 4757 | <param id="11" name="Noble_Nose_Bridge" value="0.440" /> |
4758 | 4758 | ||
4759 | <param id="12" name="Jowls" value="0.160" /> | 4759 | <param id="12" name="Jowls" value="0.160" /> |
4760 | 4760 | ||
4761 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> | 4761 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> |
4762 | 4762 | ||
4763 | <param id="14" name="High_Cheek_Bones" value="0.250" /> | 4763 | <param id="14" name="High_Cheek_Bones" value="0.250" /> |
4764 | 4764 | ||
4765 | <param id="15" name="Ears_Out" value="0.580" /> | 4765 | <param id="15" name="Ears_Out" value="0.580" /> |
4766 | 4766 | ||
4767 | <param id="17" name="Square_Jaw" value="-0.050" /> | 4767 | <param id="17" name="Square_Jaw" value="-0.050" /> |
4768 | 4768 | ||
4769 | <param id="18" name="Puffy_Upper_Cheeks" value="1.500" /> | 4769 | <param id="18" name="Puffy_Upper_Cheeks" value="1.500" /> |
4770 | 4770 | ||
4771 | <param id="19" name="Upturned_Nose_Tip" value="-0.950" /> | 4771 | <param id="19" name="Upturned_Nose_Tip" value="-0.950" /> |
4772 | 4772 | ||
4773 | <param id="20" name="Bulbous_Nose" value="-0.240" /> | 4773 | <param id="20" name="Bulbous_Nose" value="-0.240" /> |
4774 | 4774 | ||
4775 | <param id="21" name="Upper_Eyelid_Fold" value="0.160" /> | 4775 | <param id="21" name="Upper_Eyelid_Fold" value="0.160" /> |
4776 | 4776 | ||
4777 | <param id="22" name="Attached_Earlobes" value="0.520" /> | 4777 | <param id="22" name="Attached_Earlobes" value="0.520" /> |
4778 | 4778 | ||
4779 | <param id="23" name="Baggy_Eyes" value="0.040" /> | 4779 | <param id="23" name="Baggy_Eyes" value="0.040" /> |
4780 | 4780 | ||
4781 | <param id="24" name="Wide_Eyes" value="0.810" /> | 4781 | <param id="24" name="Wide_Eyes" value="0.810" /> |
4782 | 4782 | ||
4783 | <param id="25" name="Wide_Lip_Cleft" value="-0.110" /> | 4783 | <param id="25" name="Wide_Lip_Cleft" value="-0.110" /> |
4784 | 4784 | ||
4785 | <param id="27" name="Wide_Nose_Bridge" value="-0.850" /> | 4785 | <param id="27" name="Wide_Nose_Bridge" value="-0.850" /> |
4786 | 4786 | ||
4787 | <param id="33" name="Height" value="0.151" /> | 4787 | <param id="33" name="Height" value="0.151" /> |
4788 | 4788 | ||
4789 | <param id="34" name="Thickness" value="0.312" /> | 4789 | <param id="34" name="Thickness" value="0.312" /> |
4790 | 4790 | ||
4791 | <param id="35" name="Big_Ears" value="0.800" /> | 4791 | <param id="35" name="Big_Ears" value="0.800" /> |
4792 | 4792 | ||
4793 | <param id="36" name="Shoulders" value="-1.224" /> | 4793 | <param id="36" name="Shoulders" value="-1.224" /> |
4794 | 4794 | ||
4795 | <param id="37" name="Hip Width" value="-0.080" /> | 4795 | <param id="37" name="Hip Width" value="-0.080" /> |
4796 | 4796 | ||
4797 | <param id="38" name="Torso Length" value="0.740" /> | 4797 | <param id="38" name="Torso Length" value="0.740" /> |
4798 | 4798 | ||
4799 | <param id="80" name="male" value="0.000" /> | 4799 | <param id="80" name="male" value="0.000" /> |
4800 | 4800 | ||
4801 | <param id="105" name="Breast Size" value="0.730" /> | 4801 | <param id="105" name="Breast Size" value="0.730" /> |
4802 | 4802 | ||
4803 | <param id="151" name="Big_Butt_Legs" value="0.230" /> | 4803 | <param id="151" name="Big_Butt_Legs" value="0.230" /> |
4804 | 4804 | ||
4805 | <param id="155" name="Lip Width" value="0.002" /> | 4805 | <param id="155" name="Lip Width" value="0.002" /> |
4806 | 4806 | ||
4807 | <param id="157" name="Belly Size" value="0.180" /> | 4807 | <param id="157" name="Belly Size" value="0.180" /> |
4808 | 4808 | ||
4809 | <param id="185" name="Deep_Chin" value="-0.600" /> | 4809 | <param id="185" name="Deep_Chin" value="-0.600" /> |
4810 | 4810 | ||
4811 | <param id="193" name="Head Shape" value="0.470" /> | 4811 | <param id="193" name="Head Shape" value="0.470" /> |
4812 | 4812 | ||
4813 | <param id="196" name="Eye Spacing" value="-0.170" /> | 4813 | <param id="196" name="Eye Spacing" value="-0.170" /> |
4814 | 4814 | ||
4815 | <param id="505" name="Lip Thickness" value="0.190" /> | 4815 | <param id="505" name="Lip Thickness" value="0.190" /> |
4816 | 4816 | ||
4817 | <param id="506" name="Mouth_Height" value="-0.920" /> | 4817 | <param id="506" name="Mouth_Height" value="-0.920" /> |
4818 | 4818 | ||
4819 | <param id="507" name="Breast_Gravity" value="0.565" /> | 4819 | <param id="507" name="Breast_Gravity" value="0.565" /> |
4820 | 4820 | ||
4821 | <param id="515" name="Foot_Size" value="1.760" /> | 4821 | <param id="515" name="Foot_Size" value="1.760" /> |
4822 | 4822 | ||
4823 | <param id="517" name="Wide_Nose" value="0.055" /> | 4823 | <param id="517" name="Wide_Nose" value="0.055" /> |
4824 | 4824 | ||
4825 | <param id="518" name="Eyelashes_Long" value="-0.066" /> | 4825 | <param id="518" name="Eyelashes_Long" value="-0.066" /> |
4826 | 4826 | ||
4827 | <param id="629" name="Forehead Angle" value="0.470" /> | 4827 | <param id="629" name="Forehead Angle" value="0.470" /> |
4828 | 4828 | ||
4829 | <param id="637" name="Body Fat" value="0.280" /> | 4829 | <param id="637" name="Body Fat" value="0.280" /> |
4830 | 4830 | ||
4831 | <param id="646" name="Egg_Head" value="0.379" /> | 4831 | <param id="646" name="Egg_Head" value="0.379" /> |
4832 | 4832 | ||
4833 | <param id="647" name="Squash_Stretch_Head" value="-0.020" /> | 4833 | <param id="647" name="Squash_Stretch_Head" value="-0.020" /> |
4834 | 4834 | ||
4835 | <param id="649" name="Torso Muscles" value="0.540" /> | 4835 | <param id="649" name="Torso Muscles" value="0.540" /> |
4836 | 4836 | ||
4837 | <param id="650" name="Eyelid_Corner_Up" value="-0.250" /> | 4837 | <param id="650" name="Eyelid_Corner_Up" value="-0.250" /> |
4838 | 4838 | ||
4839 | <param id="652" name="Leg Muscles" value="0.740" /> | 4839 | <param id="652" name="Leg Muscles" value="0.740" /> |
4840 | 4840 | ||
4841 | <param id="653" name="Tall_Lips" value="-0.310" /> | 4841 | <param id="653" name="Tall_Lips" value="-0.310" /> |
4842 | 4842 | ||
4843 | <param id="656" name="Crooked_Nose" value="0.000" /> | 4843 | <param id="656" name="Crooked_Nose" value="0.000" /> |
4844 | 4844 | ||
4845 | <param id="659" name="Mouth Corner" value="0.660" /> | 4845 | <param id="659" name="Mouth Corner" value="0.660" /> |
4846 | 4846 | ||
4847 | <param id="662" name="Face Shear" value="0.500" /> | 4847 | <param id="662" name="Face Shear" value="0.500" /> |
4848 | 4848 | ||
4849 | <param id="663" name="Shift_Mouth" value="0.000" /> | 4849 | <param id="663" name="Shift_Mouth" value="0.000" /> |
4850 | 4850 | ||
4851 | <param id="664" name="Pop_Eye" value="0.000" /> | 4851 | <param id="664" name="Pop_Eye" value="0.000" /> |
4852 | 4852 | ||
4853 | <param id="665" name="Jaw_Jut" value="-0.040" /> | 4853 | <param id="665" name="Jaw_Jut" value="-0.040" /> |
4854 | 4854 | ||
4855 | <param id="675" name="Hand Size" value="-0.084" /> | 4855 | <param id="675" name="Hand Size" value="-0.084" /> |
4856 | 4856 | ||
4857 | <param id="676" name="Love_Handles" value="-0.370" /> | 4857 | <param id="676" name="Love_Handles" value="-0.370" /> |
4858 | 4858 | ||
4859 | <param id="678" name="Torso Muscles" value="0.790" /> | 4859 | <param id="678" name="Torso Muscles" value="0.790" /> |
4860 | 4860 | ||
4861 | <param id="682" name="Head Size" value="0.840" /> | 4861 | <param id="682" name="Head Size" value="0.840" /> |
4862 | 4862 | ||
4863 | <param id="683" name="Neck Thickness" value="-0.130" /> | 4863 | <param id="683" name="Neck Thickness" value="-0.130" /> |
4864 | 4864 | ||
4865 | <param id="684" name="Breast_Female_Clevage" value="0.084" /> | 4865 | <param id="684" name="Breast_Female_Clevage" value="0.084" /> |
4866 | 4866 | ||
4867 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> | 4867 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> |
4868 | 4868 | ||
4869 | <param id="690" name="Eye Size" value="0.370" /> | 4869 | <param id="690" name="Eye Size" value="0.370" /> |
4870 | 4870 | ||
4871 | <param id="692" name="Leg Length" value="0.420" /> | 4871 | <param id="692" name="Leg Length" value="0.420" /> |
4872 | 4872 | ||
4873 | <param id="693" name="Arm Length" value="0.480" /> | 4873 | <param id="693" name="Arm Length" value="0.480" /> |
4874 | 4874 | ||
4875 | <param id="753" name="Saddlebags" value="1.040" /> | 4875 | <param id="753" name="Saddlebags" value="1.040" /> |
4876 | 4876 | ||
4877 | <param id="756" name="Neck Length" value="-0.060" /> | 4877 | <param id="756" name="Neck Length" value="-0.060" /> |
4878 | 4878 | ||
4879 | <param id="758" name="Lower_Bridge_Nose" value="-0.090" /> | 4879 | <param id="758" name="Lower_Bridge_Nose" value="-0.090" /> |
4880 | 4880 | ||
4881 | <param id="759" name="Low_Septum_Nose" value="0.425" /> | 4881 | <param id="759" name="Low_Septum_Nose" value="0.425" /> |
4882 | 4882 | ||
4883 | <param id="760" name="Jaw_Angle" value="0.400" /> | 4883 | <param id="760" name="Jaw_Angle" value="0.400" /> |
4884 | 4884 | ||
4885 | <param id="764" name="Lip_Cleft_Deep" value="-0.024" /> | 4885 | <param id="764" name="Lip_Cleft_Deep" value="-0.024" /> |
4886 | 4886 | ||
4887 | <param id="765" name="Puffy_Lower_Lids" value="0.456" /> | 4887 | <param id="765" name="Puffy_Lower_Lids" value="0.456" /> |
4888 | 4888 | ||
4889 | <param id="769" name="Eye Depth" value="0.420" /> | 4889 | <param id="769" name="Eye Depth" value="0.420" /> |
4890 | 4890 | ||
4891 | <param id="773" name="Head Length" value="0.720" /> | 4891 | <param id="773" name="Head Length" value="0.720" /> |
4892 | 4892 | ||
4893 | <!-- wearable: skin --> | 4893 | <!-- wearable: skin --> |
4894 | <param id="108" name="Rainbow Color" value="0.000" /> | 4894 | <param id="108" name="Rainbow Color" value="0.000" /> |
4895 | 4895 | ||
4896 | <param id="110" name="Red Skin" value="0.014" /> | 4896 | <param id="110" name="Red Skin" value="0.014" /> |
4897 | 4897 | ||
4898 | <param id="111" name="Pigment" value="0.140" /> | 4898 | <param id="111" name="Pigment" value="0.140" /> |
4899 | 4899 | ||
4900 | <param id="116" name="Rosy Complexion" value="0.370" /> | 4900 | <param id="116" name="Rosy Complexion" value="0.370" /> |
4901 | 4901 | ||
4902 | <param id="117" name="Lip Pinkness" value="0.640" /> | 4902 | <param id="117" name="Lip Pinkness" value="0.640" /> |
4903 | 4903 | ||
4904 | <param id="150" name="Body Definition" value="0.500" /> | 4904 | <param id="150" name="Body Definition" value="0.500" /> |
4905 | 4905 | ||
4906 | <param id="162" name="Facial Definition" value="0.120" /> | 4906 | <param id="162" name="Facial Definition" value="0.120" /> |
4907 | 4907 | ||
4908 | <param id="163" name="Wrinkles" value="0.000" /> | 4908 | <param id="163" name="Wrinkles" value="0.000" /> |
4909 | 4909 | ||
4910 | <param id="165" name="Freckles" value="0.710" /> | 4910 | <param id="165" name="Freckles" value="0.710" /> |
4911 | 4911 | ||
4912 | <param id="700" name="Lipstick Color" value="0.250" /> | 4912 | <param id="700" name="Lipstick Color" value="0.250" /> |
4913 | 4913 | ||
4914 | <param id="701" name="Lipstick" value="0.000" /> | 4914 | <param id="701" name="Lipstick" value="0.000" /> |
4915 | 4915 | ||
4916 | <param id="702" name="Lipgloss" value="0.000" /> | 4916 | <param id="702" name="Lipgloss" value="0.000" /> |
4917 | 4917 | ||
4918 | <param id="703" name="Eyeliner" value="0.000" /> | 4918 | <param id="703" name="Eyeliner" value="0.000" /> |
4919 | 4919 | ||
4920 | <param id="704" name="Blush" value="0.000" /> | 4920 | <param id="704" name="Blush" value="0.000" /> |
4921 | 4921 | ||
4922 | <param id="705" name="Blush Color" value="0.500" /> | 4922 | <param id="705" name="Blush Color" value="0.500" /> |
4923 | 4923 | ||
4924 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 4924 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
4925 | 4925 | ||
4926 | <param id="707" name="Outer Shadow" value="0.000" /> | 4926 | <param id="707" name="Outer Shadow" value="0.000" /> |
4927 | 4927 | ||
4928 | <param id="708" name="Out Shdw Color" value="0.000" /> | 4928 | <param id="708" name="Out Shdw Color" value="0.000" /> |
4929 | 4929 | ||
4930 | <param id="709" name="Inner Shadow" value="0.000" /> | 4930 | <param id="709" name="Inner Shadow" value="0.000" /> |
4931 | 4931 | ||
4932 | <param id="710" name="Nail Polish" value="0.000" /> | 4932 | <param id="710" name="Nail Polish" value="0.000" /> |
4933 | 4933 | ||
4934 | <param id="711" name="Blush Opacity" value="0.500" /> | 4934 | <param id="711" name="Blush Opacity" value="0.500" /> |
4935 | 4935 | ||
4936 | <param id="712" name="In Shdw Color" value="0.000" /> | 4936 | <param id="712" name="In Shdw Color" value="0.000" /> |
4937 | 4937 | ||
4938 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 4938 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
4939 | 4939 | ||
4940 | <param id="714" name="Eyeliner Color" value="0.000" /> | 4940 | <param id="714" name="Eyeliner Color" value="0.000" /> |
4941 | 4941 | ||
4942 | <param id="715" name="Nail Polish Color" value="0.000" /> | 4942 | <param id="715" name="Nail Polish Color" value="0.000" /> |
4943 | 4943 | ||
4944 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 4944 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
4945 | 4945 | ||
4946 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 4946 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
4947 | 4947 | ||
4948 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 4948 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
4949 | 4949 | ||
4950 | <!-- wearable: hair --> | 4950 | <!-- wearable: hair --> |
4951 | <param id="16" name="Pointy_Eyebrows" value="0.040" /> | 4951 | <param id="16" name="Pointy_Eyebrows" value="0.040" /> |
4952 | 4952 | ||
4953 | <param id="31" name="Arced_Eyebrows" value="0.570" /> | 4953 | <param id="31" name="Arced_Eyebrows" value="0.570" /> |
4954 | 4954 | ||
4955 | <param id="112" name="Rainbow Color" value="0.000" /> | 4955 | <param id="112" name="Rainbow Color" value="0.000" /> |
4956 | 4956 | ||
4957 | <param id="113" name="Red Hair" value="0.840" /> | 4957 | <param id="113" name="Red Hair" value="0.840" /> |
4958 | 4958 | ||
4959 | <param id="114" name="Blonde Hair" value="0.520" /> | 4959 | <param id="114" name="Blonde Hair" value="0.520" /> |
4960 | 4960 | ||
4961 | <param id="115" name="White Hair" value="0.000" /> | 4961 | <param id="115" name="White Hair" value="0.000" /> |
4962 | 4962 | ||
4963 | <param id="119" name="Eyebrow Size" value="0.390" /> | 4963 | <param id="119" name="Eyebrow Size" value="0.390" /> |
4964 | 4964 | ||
4965 | <param id="130" name="Front Fringe" value="0.720" /> | 4965 | <param id="130" name="Front Fringe" value="0.720" /> |
4966 | 4966 | ||
4967 | <param id="131" name="Side Fringe" value="0.760" /> | 4967 | <param id="131" name="Side Fringe" value="0.760" /> |
4968 | 4968 | ||
4969 | <param id="132" name="Back Fringe" value="0.800" /> | 4969 | <param id="132" name="Back Fringe" value="0.800" /> |
4970 | 4970 | ||
4971 | <param id="133" name="Hair Front" value="0.000" /> | 4971 | <param id="133" name="Hair Front" value="0.000" /> |
4972 | 4972 | ||
4973 | <param id="134" name="Hair Sides" value="0.580" /> | 4973 | <param id="134" name="Hair Sides" value="0.580" /> |
4974 | 4974 | ||
4975 | <param id="135" name="Hair Back" value="0.680" /> | 4975 | <param id="135" name="Hair Back" value="0.680" /> |
4976 | 4976 | ||
4977 | <param id="136" name="Hair Sweep" value="0.370" /> | 4977 | <param id="136" name="Hair Sweep" value="0.370" /> |
4978 | 4978 | ||
4979 | <param id="137" name="Hair Tilt" value="0.620" /> | 4979 | <param id="137" name="Hair Tilt" value="0.620" /> |
4980 | 4980 | ||
4981 | <param id="140" name="Hair_Part_Middle" value="1.240" /> | 4981 | <param id="140" name="Hair_Part_Middle" value="1.240" /> |
4982 | 4982 | ||
4983 | <param id="141" name="Hair_Part_Right" value="1.520" /> | 4983 | <param id="141" name="Hair_Part_Right" value="1.520" /> |
4984 | 4984 | ||
4985 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 4985 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
4986 | 4986 | ||
4987 | <param id="143" name="Hair_Sides_Full" value="1.115" /> | 4987 | <param id="143" name="Hair_Sides_Full" value="1.115" /> |
4988 | 4988 | ||
4989 | <param id="166" name="Sideburns" value="0.710" /> | 4989 | <param id="166" name="Sideburns" value="0.710" /> |
4990 | 4990 | ||
4991 | <param id="167" name="Moustache" value="0.000" /> | 4991 | <param id="167" name="Moustache" value="0.000" /> |
4992 | 4992 | ||
4993 | <param id="168" name="Soulpatch" value="0.000" /> | 4993 | <param id="168" name="Soulpatch" value="0.000" /> |
4994 | 4994 | ||
4995 | <param id="169" name="Chin Curtains" value="0.000" /> | 4995 | <param id="169" name="Chin Curtains" value="0.000" /> |
4996 | 4996 | ||
4997 | <param id="177" name="Hair_Rumpled" value="0.970" /> | 4997 | <param id="177" name="Hair_Rumpled" value="0.970" /> |
4998 | 4998 | ||
4999 | <param id="181" name="Hair_Big_Front" value="0.020" /> | 4999 | <param id="181" name="Hair_Big_Front" value="0.020" /> |
5000 | 5000 | ||
5001 | <param id="182" name="Hair_Big_Top" value="0.840" /> | 5001 | <param id="182" name="Hair_Big_Top" value="0.840" /> |
5002 | 5002 | ||
5003 | <param id="183" name="Hair_Big_Back" value="0.600" /> | 5003 | <param id="183" name="Hair_Big_Back" value="0.600" /> |
5004 | 5004 | ||
5005 | <param id="184" name="Hair_Spiked" value="0.000" /> | 5005 | <param id="184" name="Hair_Spiked" value="0.000" /> |
5006 | 5006 | ||
5007 | <param id="192" name="Bangs_Part_Middle" value="1.000" /> | 5007 | <param id="192" name="Bangs_Part_Middle" value="1.000" /> |
5008 | 5008 | ||
5009 | <param id="674" name="Hair_Shear_Back" value="1.700" /> | 5009 | <param id="674" name="Hair_Shear_Back" value="1.700" /> |
5010 | 5010 | ||
5011 | <param id="750" name="Eyebrow Density" value="0.650" /> | 5011 | <param id="750" name="Eyebrow Density" value="0.650" /> |
5012 | 5012 | ||
5013 | <param id="752" name="Hair Thickness" value="0.690" /> | 5013 | <param id="752" name="Hair Thickness" value="0.690" /> |
5014 | 5014 | ||
5015 | <param id="754" name="Hair_Taper_Back" value="0.710" /> | 5015 | <param id="754" name="Hair_Taper_Back" value="0.710" /> |
5016 | 5016 | ||
5017 | <param id="755" name="Hair_Taper_Front" value="-0.030" /> | 5017 | <param id="755" name="Hair_Taper_Front" value="-0.030" /> |
5018 | 5018 | ||
5019 | <param id="757" name="Lower_Eyebrows" value="1.360" /> | 5019 | <param id="757" name="Lower_Eyebrows" value="1.360" /> |
5020 | 5020 | ||
5021 | <param id="762" name="Hair_Shear_Front" value="0.060" /> | 5021 | <param id="762" name="Hair_Shear_Front" value="0.060" /> |
5022 | 5022 | ||
5023 | <param id="763" name="Hair Volume" value="0.690" /> | 5023 | <param id="763" name="Hair Volume" value="0.690" /> |
5024 | 5024 | ||
5025 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 5025 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
5026 | 5026 | ||
5027 | <!-- wearable: eyes --> | 5027 | <!-- wearable: eyes --> |
5028 | <param id="98" name="Eye Lightness" value="0.220" /> | 5028 | <param id="98" name="Eye Lightness" value="0.220" /> |
5029 | 5029 | ||
5030 | <param id="99" name="Eye Color" value="0.340" /> | 5030 | <param id="99" name="Eye Color" value="0.340" /> |
5031 | 5031 | ||
5032 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 5032 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
5033 | </archetype> | 5033 | </archetype> |
5034 | 5034 | ||
5035 | <archetype name="F Troll"> | 5035 | <archetype name="F Troll"> |
5036 | <!-- wearable: shape --> | 5036 | <!-- wearable: shape --> |
5037 | <param id="1" name="Big_Brow" value="0.597" /> | 5037 | <param id="1" name="Big_Brow" value="0.597" /> |
5038 | 5038 | ||
5039 | <param id="2" name="Nose_Big_Out" value="2.500" /> | 5039 | <param id="2" name="Nose_Big_Out" value="2.500" /> |
5040 | 5040 | ||
5041 | <param id="4" name="Broad_Nostrils" value="0.205" /> | 5041 | <param id="4" name="Broad_Nostrils" value="0.205" /> |
5042 | 5042 | ||
5043 | <param id="5" name="Cleft_Chin" value="0.945" /> | 5043 | <param id="5" name="Cleft_Chin" value="0.945" /> |
5044 | 5044 | ||
5045 | <param id="6" name="Bulbous_Nose_Tip" value="0.220" /> | 5045 | <param id="6" name="Bulbous_Nose_Tip" value="0.220" /> |
5046 | 5046 | ||
5047 | <param id="7" name="Weak_Chin" value="0.170" /> | 5047 | <param id="7" name="Weak_Chin" value="0.170" /> |
5048 | 5048 | ||
5049 | <param id="8" name="Double_Chin" value="0.540" /> | 5049 | <param id="8" name="Double_Chin" value="0.540" /> |
5050 | 5050 | ||
5051 | <param id="10" name="Sunken_Cheeks" value="-0.960" /> | 5051 | <param id="10" name="Sunken_Cheeks" value="-0.960" /> |
5052 | 5052 | ||
5053 | <param id="11" name="Noble_Nose_Bridge" value="0.880" /> | 5053 | <param id="11" name="Noble_Nose_Bridge" value="0.880" /> |
5054 | 5054 | ||
5055 | <param id="12" name="Jowls" value="0.490" /> | 5055 | <param id="12" name="Jowls" value="0.490" /> |
5056 | 5056 | ||
5057 | <param id="13" name="Cleft_Chin_Upper" value="1.500" /> | 5057 | <param id="13" name="Cleft_Chin_Upper" value="1.500" /> |
5058 | 5058 | ||
5059 | <param id="14" name="High_Cheek_Bones" value="0.280" /> | 5059 | <param id="14" name="High_Cheek_Bones" value="0.280" /> |
5060 | 5060 | ||
5061 | <param id="15" name="Ears_Out" value="0.860" /> | 5061 | <param id="15" name="Ears_Out" value="0.860" /> |
5062 | 5062 | ||
5063 | <param id="17" name="Square_Jaw" value="-0.500" /> | 5063 | <param id="17" name="Square_Jaw" value="-0.500" /> |
5064 | 5064 | ||
5065 | <param id="18" name="Puffy_Upper_Cheeks" value="0.740" /> | 5065 | <param id="18" name="Puffy_Upper_Cheeks" value="0.740" /> |
5066 | 5066 | ||
5067 | <param id="19" name="Upturned_Nose_Tip" value="1.000" /> | 5067 | <param id="19" name="Upturned_Nose_Tip" value="1.000" /> |
5068 | 5068 | ||
5069 | <param id="20" name="Bulbous_Nose" value="1.040" /> | 5069 | <param id="20" name="Bulbous_Nose" value="1.040" /> |
5070 | 5070 | ||
5071 | <param id="21" name="Upper_Eyelid_Fold" value="-0.200" /> | 5071 | <param id="21" name="Upper_Eyelid_Fold" value="-0.200" /> |
5072 | 5072 | ||
5073 | <param id="22" name="Attached_Earlobes" value="0.000" /> | 5073 | <param id="22" name="Attached_Earlobes" value="0.000" /> |
5074 | 5074 | ||
5075 | <param id="23" name="Baggy_Eyes" value="-0.500" /> | 5075 | <param id="23" name="Baggy_Eyes" value="-0.500" /> |
5076 | 5076 | ||
5077 | <param id="24" name="Wide_Eyes" value="1.720" /> | 5077 | <param id="24" name="Wide_Eyes" value="1.720" /> |
5078 | 5078 | ||
5079 | <param id="25" name="Wide_Lip_Cleft" value="1.500" /> | 5079 | <param id="25" name="Wide_Lip_Cleft" value="1.500" /> |
5080 | 5080 | ||
5081 | <param id="27" name="Wide_Nose_Bridge" value="-0.225" /> | 5081 | <param id="27" name="Wide_Nose_Bridge" value="-0.225" /> |
5082 | 5082 | ||
5083 | <param id="33" name="Height" value="-1.483" /> | 5083 | <param id="33" name="Height" value="-1.483" /> |
5084 | 5084 | ||
5085 | <param id="34" name="Thickness" value="1.478" /> | 5085 | <param id="34" name="Thickness" value="1.478" /> |
5086 | 5086 | ||
5087 | <param id="35" name="Big_Ears" value="-0.400" /> | 5087 | <param id="35" name="Big_Ears" value="-0.400" /> |
5088 | 5088 | ||
5089 | <param id="36" name="Shoulders" value="0.760" /> | 5089 | <param id="36" name="Shoulders" value="0.760" /> |
5090 | 5090 | ||
5091 | <param id="37" name="Hip Width" value="0.460" /> | 5091 | <param id="37" name="Hip Width" value="0.460" /> |
5092 | 5092 | ||
5093 | <param id="38" name="Torso Length" value="0.060" /> | 5093 | <param id="38" name="Torso Length" value="0.060" /> |
5094 | 5094 | ||
5095 | <param id="80" name="male" value="0.000" /> | 5095 | <param id="80" name="male" value="0.000" /> |
5096 | 5096 | ||
5097 | <param id="105" name="Breast Size" value="0.970" /> | 5097 | <param id="105" name="Breast Size" value="0.970" /> |
5098 | 5098 | ||
5099 | <param id="151" name="Big_Butt_Legs" value="0.160" /> | 5099 | <param id="151" name="Big_Butt_Legs" value="0.160" /> |
5100 | 5100 | ||
5101 | <param id="155" name="Lip Width" value="1.300" /> | 5101 | <param id="155" name="Lip Width" value="1.300" /> |
5102 | 5102 | ||
5103 | <param id="157" name="Belly Size" value="0.460" /> | 5103 | <param id="157" name="Belly Size" value="0.460" /> |
5104 | 5104 | ||
5105 | <param id="185" name="Deep_Chin" value="0.040" /> | 5105 | <param id="185" name="Deep_Chin" value="0.040" /> |
5106 | 5106 | ||
5107 | <param id="193" name="Head Shape" value="0.830" /> | 5107 | <param id="193" name="Head Shape" value="0.830" /> |
5108 | 5108 | ||
5109 | <param id="196" name="Eye Spacing" value="0.010" /> | 5109 | <param id="196" name="Eye Spacing" value="0.010" /> |
5110 | 5110 | ||
5111 | <param id="505" name="Lip Thickness" value="0.840" /> | 5111 | <param id="505" name="Lip Thickness" value="0.840" /> |
5112 | 5112 | ||
5113 | <param id="506" name="Mouth_Height" value="1.160" /> | 5113 | <param id="506" name="Mouth_Height" value="1.160" /> |
5114 | 5114 | ||
5115 | <param id="507" name="Breast_Gravity" value="0.845" /> | 5115 | <param id="507" name="Breast_Gravity" value="0.845" /> |
5116 | 5116 | ||
5117 | <param id="515" name="Foot_Size" value="2.560" /> | 5117 | <param id="515" name="Foot_Size" value="2.560" /> |
5118 | 5118 | ||
5119 | <param id="517" name="Wide_Nose" value="0.385" /> | 5119 | <param id="517" name="Wide_Nose" value="0.385" /> |
5120 | 5120 | ||
5121 | <param id="518" name="Eyelashes_Long" value="1.284" /> | 5121 | <param id="518" name="Eyelashes_Long" value="1.284" /> |
5122 | 5122 | ||
5123 | <param id="629" name="Forehead Angle" value="0.340" /> | 5123 | <param id="629" name="Forehead Angle" value="0.340" /> |
5124 | 5124 | ||
5125 | <param id="637" name="Body Fat" value="0.470" /> | 5125 | <param id="637" name="Body Fat" value="0.470" /> |
5126 | 5126 | ||
5127 | <param id="646" name="Egg_Head" value="-0.886" /> | 5127 | <param id="646" name="Egg_Head" value="-0.886" /> |
5128 | 5128 | ||
5129 | <param id="647" name="Squash_Stretch_Head" value="-0.275" /> | 5129 | <param id="647" name="Squash_Stretch_Head" value="-0.275" /> |
5130 | 5130 | ||
5131 | <param id="649" name="Torso Muscles" value="0.560" /> | 5131 | <param id="649" name="Torso Muscles" value="0.560" /> |
5132 | 5132 | ||
5133 | <param id="650" name="Eyelid_Corner_Up" value="0.300" /> | 5133 | <param id="650" name="Eyelid_Corner_Up" value="0.300" /> |
5134 | 5134 | ||
5135 | <param id="652" name="Leg Muscles" value="0.790" /> | 5135 | <param id="652" name="Leg Muscles" value="0.790" /> |
5136 | 5136 | ||
5137 | <param id="653" name="Tall_Lips" value="2.000" /> | 5137 | <param id="653" name="Tall_Lips" value="2.000" /> |
5138 | 5138 | ||
5139 | <param id="656" name="Crooked_Nose" value="0.280" /> | 5139 | <param id="656" name="Crooked_Nose" value="0.280" /> |
5140 | 5140 | ||
5141 | <param id="659" name="Mouth Corner" value="1.000" /> | 5141 | <param id="659" name="Mouth Corner" value="1.000" /> |
5142 | 5142 | ||
5143 | <param id="662" name="Face Shear" value="0.460" /> | 5143 | <param id="662" name="Face Shear" value="0.460" /> |
5144 | 5144 | ||
5145 | <param id="663" name="Shift_Mouth" value="0.560" /> | 5145 | <param id="663" name="Shift_Mouth" value="0.560" /> |
5146 | 5146 | ||
5147 | <param id="664" name="Pop_Eye" value="0.390" /> | 5147 | <param id="664" name="Pop_Eye" value="0.390" /> |
5148 | 5148 | ||
5149 | <param id="665" name="Jaw_Jut" value="1.160" /> | 5149 | <param id="665" name="Jaw_Jut" value="1.160" /> |
5150 | 5150 | ||
5151 | <param id="675" name="Hand Size" value="0.252" /> | 5151 | <param id="675" name="Hand Size" value="0.252" /> |
5152 | 5152 | ||
5153 | <param id="676" name="Love_Handles" value="-1.000" /> | 5153 | <param id="676" name="Love_Handles" value="-1.000" /> |
5154 | 5154 | ||
5155 | <param id="678" name="Torso Muscles" value="0.790" /> | 5155 | <param id="678" name="Torso Muscles" value="0.790" /> |
5156 | 5156 | ||
5157 | <param id="682" name="Head Size" value="0.950" /> | 5157 | <param id="682" name="Head Size" value="0.950" /> |
5158 | 5158 | ||
5159 | <param id="683" name="Neck Thickness" value="-0.238" /> | 5159 | <param id="683" name="Neck Thickness" value="-0.238" /> |
5160 | 5160 | ||
5161 | <param id="684" name="Breast_Female_Clevage" value="0.404" /> | 5161 | <param id="684" name="Breast_Female_Clevage" value="0.404" /> |
5162 | 5162 | ||
5163 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> | 5163 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> |
5164 | 5164 | ||
5165 | <param id="690" name="Eye Size" value="0.870" /> | 5165 | <param id="690" name="Eye Size" value="0.870" /> |
5166 | 5166 | ||
5167 | <param id="692" name="Leg Length" value="0.020" /> | 5167 | <param id="692" name="Leg Length" value="0.020" /> |
5168 | 5168 | ||
5169 | <param id="693" name="Arm Length" value="-0.260" /> | 5169 | <param id="693" name="Arm Length" value="-0.260" /> |
5170 | 5170 | ||
5171 | <param id="753" name="Saddlebags" value="1.355" /> | 5171 | <param id="753" name="Saddlebags" value="1.355" /> |
5172 | 5172 | ||
5173 | <param id="756" name="Neck Length" value="-0.160" /> | 5173 | <param id="756" name="Neck Length" value="-0.160" /> |
5174 | 5174 | ||
5175 | <param id="758" name="Lower_Bridge_Nose" value="1.020" /> | 5175 | <param id="758" name="Lower_Bridge_Nose" value="1.020" /> |
5176 | 5176 | ||
5177 | <param id="759" name="Low_Septum_Nose" value="0.650" /> | 5177 | <param id="759" name="Low_Septum_Nose" value="0.650" /> |
5178 | 5178 | ||
5179 | <param id="760" name="Jaw_Angle" value="-0.400" /> | 5179 | <param id="760" name="Jaw_Angle" value="-0.400" /> |
5180 | 5180 | ||
5181 | <param id="764" name="Lip_Cleft_Deep" value="-0.075" /> | 5181 | <param id="764" name="Lip_Cleft_Deep" value="-0.075" /> |
5182 | 5182 | ||
5183 | <param id="765" name="Puffy_Lower_Lids" value="2.472" /> | 5183 | <param id="765" name="Puffy_Lower_Lids" value="2.472" /> |
5184 | 5184 | ||
5185 | <param id="769" name="Eye Depth" value="1.000" /> | 5185 | <param id="769" name="Eye Depth" value="1.000" /> |
5186 | 5186 | ||
5187 | <param id="773" name="Head Length" value="0.880" /> | 5187 | <param id="773" name="Head Length" value="0.880" /> |
5188 | 5188 | ||
5189 | <!-- wearable: skin --> | 5189 | <!-- wearable: skin --> |
5190 | <param id="108" name="Rainbow Color" value="0.820" /> | 5190 | <param id="108" name="Rainbow Color" value="0.820" /> |
5191 | 5191 | ||
5192 | <param id="110" name="Red Skin" value="0.000" /> | 5192 | <param id="110" name="Red Skin" value="0.000" /> |
5193 | 5193 | ||
5194 | <param id="111" name="Pigment" value="0.770" /> | 5194 | <param id="111" name="Pigment" value="0.770" /> |
5195 | 5195 | ||
5196 | <param id="116" name="Rosy Complexion" value="0.450" /> | 5196 | <param id="116" name="Rosy Complexion" value="0.450" /> |
5197 | 5197 | ||
5198 | <param id="117" name="Lip Pinkness" value="0.720" /> | 5198 | <param id="117" name="Lip Pinkness" value="0.720" /> |
5199 | 5199 | ||
5200 | <param id="150" name="Body Definition" value="0.000" /> | 5200 | <param id="150" name="Body Definition" value="0.000" /> |
5201 | 5201 | ||
5202 | <param id="162" name="Facial Definition" value="0.000" /> | 5202 | <param id="162" name="Facial Definition" value="0.000" /> |
5203 | 5203 | ||
5204 | <param id="163" name="Wrinkles" value="0.000" /> | 5204 | <param id="163" name="Wrinkles" value="0.000" /> |
5205 | 5205 | ||
5206 | <param id="165" name="Freckles" value="0.830" /> | 5206 | <param id="165" name="Freckles" value="0.830" /> |
5207 | 5207 | ||
5208 | <param id="700" name="Lipstick Color" value="0.250" /> | 5208 | <param id="700" name="Lipstick Color" value="0.250" /> |
5209 | 5209 | ||
5210 | <param id="701" name="Lipstick" value="0.000" /> | 5210 | <param id="701" name="Lipstick" value="0.000" /> |
5211 | 5211 | ||
5212 | <param id="702" name="Lipgloss" value="0.000" /> | 5212 | <param id="702" name="Lipgloss" value="0.000" /> |
5213 | 5213 | ||
5214 | <param id="703" name="Eyeliner" value="0.000" /> | 5214 | <param id="703" name="Eyeliner" value="0.000" /> |
5215 | 5215 | ||
5216 | <param id="704" name="Blush" value="0.000" /> | 5216 | <param id="704" name="Blush" value="0.000" /> |
5217 | 5217 | ||
5218 | <param id="705" name="Blush Color" value="0.500" /> | 5218 | <param id="705" name="Blush Color" value="0.500" /> |
5219 | 5219 | ||
5220 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 5220 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
5221 | 5221 | ||
5222 | <param id="707" name="Outer Shadow" value="0.000" /> | 5222 | <param id="707" name="Outer Shadow" value="0.000" /> |
5223 | 5223 | ||
5224 | <param id="708" name="Out Shdw Color" value="0.000" /> | 5224 | <param id="708" name="Out Shdw Color" value="0.000" /> |
5225 | 5225 | ||
5226 | <param id="709" name="Inner Shadow" value="0.000" /> | 5226 | <param id="709" name="Inner Shadow" value="0.000" /> |
5227 | 5227 | ||
5228 | <param id="710" name="Nail Polish" value="0.000" /> | 5228 | <param id="710" name="Nail Polish" value="0.000" /> |
5229 | 5229 | ||
5230 | <param id="711" name="Blush Opacity" value="0.500" /> | 5230 | <param id="711" name="Blush Opacity" value="0.500" /> |
5231 | 5231 | ||
5232 | <param id="712" name="In Shdw Color" value="0.000" /> | 5232 | <param id="712" name="In Shdw Color" value="0.000" /> |
5233 | 5233 | ||
5234 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 5234 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
5235 | 5235 | ||
5236 | <param id="714" name="Eyeliner Color" value="0.000" /> | 5236 | <param id="714" name="Eyeliner Color" value="0.000" /> |
5237 | 5237 | ||
5238 | <param id="715" name="Nail Polish Color" value="0.000" /> | 5238 | <param id="715" name="Nail Polish Color" value="0.000" /> |
5239 | 5239 | ||
5240 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 5240 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
5241 | 5241 | ||
5242 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 5242 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
5243 | 5243 | ||
5244 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 5244 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
5245 | 5245 | ||
5246 | <!-- wearable: hair --> | 5246 | <!-- wearable: hair --> |
5247 | <param id="16" name="Pointy_Eyebrows" value="-0.095" /> | 5247 | <param id="16" name="Pointy_Eyebrows" value="-0.095" /> |
5248 | 5248 | ||
5249 | <param id="31" name="Arced_Eyebrows" value="0.610" /> | 5249 | <param id="31" name="Arced_Eyebrows" value="0.610" /> |
5250 | 5250 | ||
5251 | <param id="112" name="Rainbow Color" value="0.790" /> | 5251 | <param id="112" name="Rainbow Color" value="0.790" /> |
5252 | 5252 | ||
5253 | <param id="113" name="Red Hair" value="0.000" /> | 5253 | <param id="113" name="Red Hair" value="0.000" /> |
5254 | 5254 | ||
5255 | <param id="114" name="Blonde Hair" value="0.000" /> | 5255 | <param id="114" name="Blonde Hair" value="0.000" /> |
5256 | 5256 | ||
5257 | <param id="115" name="White Hair" value="0.220" /> | 5257 | <param id="115" name="White Hair" value="0.220" /> |
5258 | 5258 | ||
5259 | <param id="119" name="Eyebrow Size" value="0.110" /> | 5259 | <param id="119" name="Eyebrow Size" value="0.110" /> |
5260 | 5260 | ||
5261 | <param id="130" name="Front Fringe" value="0.000" /> | 5261 | <param id="130" name="Front Fringe" value="0.000" /> |
5262 | 5262 | ||
5263 | <param id="131" name="Side Fringe" value="1.000" /> | 5263 | <param id="131" name="Side Fringe" value="1.000" /> |
5264 | 5264 | ||
5265 | <param id="132" name="Back Fringe" value="0.200" /> | 5265 | <param id="132" name="Back Fringe" value="0.200" /> |
5266 | 5266 | ||
5267 | <param id="133" name="Hair Front" value="0.520" /> | 5267 | <param id="133" name="Hair Front" value="0.520" /> |
5268 | 5268 | ||
5269 | <param id="134" name="Hair Sides" value="0.400" /> | 5269 | <param id="134" name="Hair Sides" value="0.400" /> |
5270 | 5270 | ||
5271 | <param id="135" name="Hair Back" value="0.480" /> | 5271 | <param id="135" name="Hair Back" value="0.480" /> |
5272 | 5272 | ||
5273 | <param id="136" name="Hair Sweep" value="1.000" /> | 5273 | <param id="136" name="Hair Sweep" value="1.000" /> |
5274 | 5274 | ||
5275 | <param id="137" name="Hair Tilt" value="0.500" /> | 5275 | <param id="137" name="Hair Tilt" value="0.500" /> |
5276 | 5276 | ||
5277 | <param id="140" name="Hair_Part_Middle" value="0.000" /> | 5277 | <param id="140" name="Hair_Part_Middle" value="0.000" /> |
5278 | 5278 | ||
5279 | <param id="141" name="Hair_Part_Right" value="0.000" /> | 5279 | <param id="141" name="Hair_Part_Right" value="0.000" /> |
5280 | 5280 | ||
5281 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 5281 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
5282 | 5282 | ||
5283 | <param id="143" name="Hair_Sides_Full" value="-2.790" /> | 5283 | <param id="143" name="Hair_Sides_Full" value="-2.790" /> |
5284 | 5284 | ||
5285 | <param id="166" name="Sideburns" value="0.710" /> | 5285 | <param id="166" name="Sideburns" value="0.710" /> |
5286 | 5286 | ||
5287 | <param id="167" name="Moustache" value="0.000" /> | 5287 | <param id="167" name="Moustache" value="0.000" /> |
5288 | 5288 | ||
5289 | <param id="168" name="Soulpatch" value="0.000" /> | 5289 | <param id="168" name="Soulpatch" value="0.000" /> |
5290 | 5290 | ||
5291 | <param id="169" name="Chin Curtains" value="0.000" /> | 5291 | <param id="169" name="Chin Curtains" value="0.000" /> |
5292 | 5292 | ||
5293 | <param id="177" name="Hair_Rumpled" value="0.770" /> | 5293 | <param id="177" name="Hair_Rumpled" value="0.770" /> |
5294 | 5294 | ||
5295 | <param id="181" name="Hair_Big_Front" value="0.720" /> | 5295 | <param id="181" name="Hair_Big_Front" value="0.720" /> |
5296 | 5296 | ||
5297 | <param id="182" name="Hair_Big_Top" value="1.000" /> | 5297 | <param id="182" name="Hair_Big_Top" value="1.000" /> |
5298 | 5298 | ||
5299 | <param id="183" name="Hair_Big_Back" value="1.000" /> | 5299 | <param id="183" name="Hair_Big_Back" value="1.000" /> |
5300 | 5300 | ||
5301 | <param id="184" name="Hair_Spiked" value="0.000" /> | 5301 | <param id="184" name="Hair_Spiked" value="0.000" /> |
5302 | 5302 | ||
5303 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 5303 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
5304 | 5304 | ||
5305 | <param id="674" name="Hair_Shear_Back" value="0.110" /> | 5305 | <param id="674" name="Hair_Shear_Back" value="0.110" /> |
5306 | 5306 | ||
5307 | <param id="750" name="Eyebrow Density" value="0.580" /> | 5307 | <param id="750" name="Eyebrow Density" value="0.580" /> |
5308 | 5308 | ||
5309 | <param id="752" name="Hair Thickness" value="0.690" /> | 5309 | <param id="752" name="Hair Thickness" value="0.690" /> |
5310 | 5310 | ||
5311 | <param id="754" name="Hair_Taper_Back" value="1.310" /> | 5311 | <param id="754" name="Hair_Taper_Back" value="1.310" /> |
5312 | 5312 | ||
5313 | <param id="755" name="Hair_Taper_Front" value="-0.060" /> | 5313 | <param id="755" name="Hair_Taper_Front" value="-0.060" /> |
5314 | 5314 | ||
5315 | <param id="757" name="Lower_Eyebrows" value="1.760" /> | 5315 | <param id="757" name="Lower_Eyebrows" value="1.760" /> |
5316 | 5316 | ||
5317 | <param id="762" name="Hair_Shear_Front" value="2.220" /> | 5317 | <param id="762" name="Hair_Shear_Front" value="2.220" /> |
5318 | 5318 | ||
5319 | <param id="763" name="Hair Volume" value="0.720" /> | 5319 | <param id="763" name="Hair Volume" value="0.720" /> |
5320 | 5320 | ||
5321 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 5321 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
5322 | 5322 | ||
5323 | <!-- wearable: eyes --> | 5323 | <!-- wearable: eyes --> |
5324 | <param id="98" name="Eye Lightness" value="0.000" /> | 5324 | <param id="98" name="Eye Lightness" value="0.000" /> |
5325 | 5325 | ||
5326 | <param id="99" name="Eye Color" value="0.890" /> | 5326 | <param id="99" name="Eye Color" value="0.890" /> |
5327 | 5327 | ||
5328 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 5328 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
5329 | </archetype> | 5329 | </archetype> |
5330 | 5330 | ||
5331 | <archetype name="F B Skinny"> | 5331 | <archetype name="F B Skinny"> |
5332 | <!-- wearable: shape --> | 5332 | <!-- wearable: shape --> |
5333 | <param id="1" name="Big_Brow" value="0.321" /> | 5333 | <param id="1" name="Big_Brow" value="0.321" /> |
5334 | 5334 | ||
5335 | <param id="2" name="Nose_Big_Out" value="-0.239" /> | 5335 | <param id="2" name="Nose_Big_Out" value="-0.239" /> |
5336 | 5336 | ||
5337 | <param id="4" name="Broad_Nostrils" value="-0.065" /> | 5337 | <param id="4" name="Broad_Nostrils" value="-0.065" /> |
5338 | 5338 | ||
5339 | <param id="5" name="Cleft_Chin" value="0.483" /> | 5339 | <param id="5" name="Cleft_Chin" value="0.483" /> |
5340 | 5340 | ||
5341 | <param id="6" name="Bulbous_Nose_Tip" value="0.376" /> | 5341 | <param id="6" name="Bulbous_Nose_Tip" value="0.376" /> |
5342 | 5342 | ||
5343 | <param id="7" name="Weak_Chin" value="-0.010" /> | 5343 | <param id="7" name="Weak_Chin" value="-0.010" /> |
5344 | 5344 | ||
5345 | <param id="8" name="Double_Chin" value="0.440" /> | 5345 | <param id="8" name="Double_Chin" value="0.440" /> |
5346 | 5346 | ||
5347 | <param id="10" name="Sunken_Cheeks" value="0.840" /> | 5347 | <param id="10" name="Sunken_Cheeks" value="0.840" /> |
5348 | 5348 | ||
5349 | <param id="11" name="Noble_Nose_Bridge" value="-0.100" /> | 5349 | <param id="11" name="Noble_Nose_Bridge" value="-0.100" /> |
5350 | 5350 | ||
5351 | <param id="12" name="Jowls" value="0.310" /> | 5351 | <param id="12" name="Jowls" value="0.310" /> |
5352 | 5352 | ||
5353 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> | 5353 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> |
5354 | 5354 | ||
5355 | <param id="14" name="High_Cheek_Bones" value="0.205" /> | 5355 | <param id="14" name="High_Cheek_Bones" value="0.205" /> |
5356 | 5356 | ||
5357 | <param id="15" name="Ears_Out" value="-0.140" /> | 5357 | <param id="15" name="Ears_Out" value="-0.140" /> |
5358 | 5358 | ||
5359 | <param id="17" name="Square_Jaw" value="0.835" /> | 5359 | <param id="17" name="Square_Jaw" value="0.835" /> |
5360 | 5360 | ||
5361 | <param id="18" name="Puffy_Upper_Cheeks" value="-0.380" /> | 5361 | <param id="18" name="Puffy_Upper_Cheeks" value="-0.380" /> |
5362 | 5362 | ||
5363 | <param id="19" name="Upturned_Nose_Tip" value="-0.200" /> | 5363 | <param id="19" name="Upturned_Nose_Tip" value="-0.200" /> |
5364 | 5364 | ||
5365 | <param id="20" name="Bulbous_Nose" value="0.140" /> | 5365 | <param id="20" name="Bulbous_Nose" value="0.140" /> |
5366 | 5366 | ||
5367 | <param id="21" name="Upper_Eyelid_Fold" value="0.280" /> | 5367 | <param id="21" name="Upper_Eyelid_Fold" value="0.280" /> |
5368 | 5368 | ||
5369 | <param id="22" name="Attached_Earlobes" value="0.620" /> | 5369 | <param id="22" name="Attached_Earlobes" value="0.620" /> |
5370 | 5370 | ||
5371 | <param id="23" name="Baggy_Eyes" value="-0.140" /> | 5371 | <param id="23" name="Baggy_Eyes" value="-0.140" /> |
5372 | 5372 | ||
5373 | <param id="24" name="Wide_Eyes" value="0.460" /> | 5373 | <param id="24" name="Wide_Eyes" value="0.460" /> |
5374 | 5374 | ||
5375 | <param id="25" name="Wide_Lip_Cleft" value="0.350" /> | 5375 | <param id="25" name="Wide_Lip_Cleft" value="0.350" /> |
5376 | 5376 | ||
5377 | <param id="27" name="Wide_Nose_Bridge" value="-1.125" /> | 5377 | <param id="27" name="Wide_Nose_Bridge" value="-1.125" /> |
5378 | 5378 | ||
5379 | <param id="33" name="Height" value="1.785" /> | 5379 | <param id="33" name="Height" value="1.785" /> |
5380 | 5380 | ||
5381 | <param id="34" name="Thickness" value="-0.216" /> | 5381 | <param id="34" name="Thickness" value="-0.216" /> |
5382 | 5382 | ||
5383 | <param id="35" name="Big_Ears" value="-0.250" /> | 5383 | <param id="35" name="Big_Ears" value="-0.250" /> |
5384 | 5384 | ||
5385 | <param id="36" name="Shoulders" value="-0.008" /> | 5385 | <param id="36" name="Shoulders" value="-0.008" /> |
5386 | 5386 | ||
5387 | <param id="37" name="Hip Width" value="-1.040" /> | 5387 | <param id="37" name="Hip Width" value="-1.040" /> |
5388 | 5388 | ||
5389 | <param id="38" name="Torso Length" value="0.820" /> | 5389 | <param id="38" name="Torso Length" value="0.820" /> |
5390 | 5390 | ||
5391 | <param id="80" name="male" value="0.000" /> | 5391 | <param id="80" name="male" value="0.000" /> |
5392 | 5392 | ||
5393 | <param id="105" name="Breast Size" value="0.450" /> | 5393 | <param id="105" name="Breast Size" value="0.450" /> |
5394 | 5394 | ||
5395 | <param id="151" name="Big_Butt_Legs" value="0.314" /> | 5395 | <param id="151" name="Big_Butt_Legs" value="0.314" /> |
5396 | 5396 | ||
5397 | <param id="155" name="Lip Width" value="-0.130" /> | 5397 | <param id="155" name="Lip Width" value="-0.130" /> |
5398 | 5398 | ||
5399 | <param id="157" name="Belly Size" value="0.100" /> | 5399 | <param id="157" name="Belly Size" value="0.100" /> |
5400 | 5400 | ||
5401 | <param id="185" name="Deep_Chin" value="-0.260" /> | 5401 | <param id="185" name="Deep_Chin" value="-0.260" /> |
5402 | 5402 | ||
5403 | <param id="193" name="Head Shape" value="0.790" /> | 5403 | <param id="193" name="Head Shape" value="0.790" /> |
5404 | 5404 | ||
5405 | <param id="196" name="Eye Spacing" value="0.160" /> | 5405 | <param id="196" name="Eye Spacing" value="0.160" /> |
5406 | 5406 | ||
5407 | <param id="505" name="Lip Thickness" value="0.770" /> | 5407 | <param id="505" name="Lip Thickness" value="0.770" /> |
5408 | 5408 | ||
5409 | <param id="506" name="Mouth_Height" value="1.280" /> | 5409 | <param id="506" name="Mouth_Height" value="1.280" /> |
5410 | 5410 | ||
5411 | <param id="507" name="Breast_Gravity" value="-0.345" /> | 5411 | <param id="507" name="Breast_Gravity" value="-0.345" /> |
5412 | 5412 | ||
5413 | <param id="515" name="Foot_Size" value="2.000" /> | 5413 | <param id="515" name="Foot_Size" value="2.000" /> |
5414 | 5414 | ||
5415 | <param id="517" name="Wide_Nose" value="0.460" /> | 5415 | <param id="517" name="Wide_Nose" value="0.460" /> |
5416 | 5416 | ||
5417 | <param id="518" name="Eyelashes_Long" value="0.906" /> | 5417 | <param id="518" name="Eyelashes_Long" value="0.906" /> |
5418 | 5418 | ||
5419 | <param id="629" name="Forehead Angle" value="0.000" /> | 5419 | <param id="629" name="Forehead Angle" value="0.000" /> |
5420 | 5420 | ||
5421 | <param id="637" name="Body Fat" value="0.000" /> | 5421 | <param id="637" name="Body Fat" value="0.000" /> |
5422 | 5422 | ||
5423 | <param id="646" name="Egg_Head" value="0.540" /> | 5423 | <param id="646" name="Egg_Head" value="0.540" /> |
5424 | 5424 | ||
5425 | <param id="647" name="Squash_Stretch_Head" value="0.505" /> | 5425 | <param id="647" name="Squash_Stretch_Head" value="0.505" /> |
5426 | 5426 | ||
5427 | <param id="649" name="Torso Muscles" value="0.670" /> | 5427 | <param id="649" name="Torso Muscles" value="0.670" /> |
5428 | 5428 | ||
5429 | <param id="650" name="Eyelid_Corner_Up" value="-0.375" /> | 5429 | <param id="650" name="Eyelid_Corner_Up" value="-0.375" /> |
5430 | 5430 | ||
5431 | <param id="652" name="Leg Muscles" value="0.810" /> | 5431 | <param id="652" name="Leg Muscles" value="0.810" /> |
5432 | 5432 | ||
5433 | <param id="653" name="Tall_Lips" value="-0.190" /> | 5433 | <param id="653" name="Tall_Lips" value="-0.190" /> |
5434 | 5434 | ||
5435 | <param id="656" name="Crooked_Nose" value="0.000" /> | 5435 | <param id="656" name="Crooked_Nose" value="0.000" /> |
5436 | 5436 | ||
5437 | <param id="659" name="Mouth Corner" value="0.610" /> | 5437 | <param id="659" name="Mouth Corner" value="0.610" /> |
5438 | 5438 | ||
5439 | <param id="662" name="Face Shear" value="0.500" /> | 5439 | <param id="662" name="Face Shear" value="0.500" /> |
5440 | 5440 | ||
5441 | <param id="663" name="Shift_Mouth" value="-0.080" /> | 5441 | <param id="663" name="Shift_Mouth" value="-0.080" /> |
5442 | 5442 | ||
5443 | <param id="664" name="Pop_Eye" value="0.052" /> | 5443 | <param id="664" name="Pop_Eye" value="0.052" /> |
5444 | 5444 | ||
5445 | <param id="665" name="Jaw_Jut" value="0.480" /> | 5445 | <param id="665" name="Jaw_Jut" value="0.480" /> |
5446 | 5446 | ||
5447 | <param id="675" name="Hand Size" value="0.186" /> | 5447 | <param id="675" name="Hand Size" value="0.186" /> |
5448 | 5448 | ||
5449 | <param id="676" name="Love_Handles" value="-0.340" /> | 5449 | <param id="676" name="Love_Handles" value="-0.340" /> |
5450 | 5450 | ||
5451 | <param id="678" name="Torso Muscles" value="0.790" /> | 5451 | <param id="678" name="Torso Muscles" value="0.790" /> |
5452 | 5452 | ||
5453 | <param id="682" name="Head Size" value="0.420" /> | 5453 | <param id="682" name="Head Size" value="0.420" /> |
5454 | 5454 | ||
5455 | <param id="683" name="Neck Thickness" value="-0.178" /> | 5455 | <param id="683" name="Neck Thickness" value="-0.178" /> |
5456 | 5456 | ||
5457 | <param id="684" name="Breast_Female_Clevage" value="0.148" /> | 5457 | <param id="684" name="Breast_Female_Clevage" value="0.148" /> |
5458 | 5458 | ||
5459 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> | 5459 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> |
5460 | 5460 | ||
5461 | <param id="690" name="Eye Size" value="0.470" /> | 5461 | <param id="690" name="Eye Size" value="0.470" /> |
5462 | 5462 | ||
5463 | <param id="692" name="Leg Length" value="0.620" /> | 5463 | <param id="692" name="Leg Length" value="0.620" /> |
5464 | 5464 | ||
5465 | <param id="693" name="Arm Length" value="0.820" /> | 5465 | <param id="693" name="Arm Length" value="0.820" /> |
5466 | 5466 | ||
5467 | <param id="753" name="Saddlebags" value="1.180" /> | 5467 | <param id="753" name="Saddlebags" value="1.180" /> |
5468 | 5468 | ||
5469 | <param id="756" name="Neck Length" value="0.640" /> | 5469 | <param id="756" name="Neck Length" value="0.640" /> |
5470 | 5470 | ||
5471 | <param id="758" name="Lower_Bridge_Nose" value="-0.420" /> | 5471 | <param id="758" name="Lower_Bridge_Nose" value="-0.420" /> |
5472 | 5472 | ||
5473 | <param id="759" name="Low_Septum_Nose" value="-0.175" /> | 5473 | <param id="759" name="Low_Septum_Nose" value="-0.175" /> |
5474 | 5474 | ||
5475 | <param id="760" name="Jaw_Angle" value="1.104" /> | 5475 | <param id="760" name="Jaw_Angle" value="1.104" /> |
5476 | 5476 | ||
5477 | <param id="764" name="Lip_Cleft_Deep" value="0.350" /> | 5477 | <param id="764" name="Lip_Cleft_Deep" value="0.350" /> |
5478 | 5478 | ||
5479 | <param id="765" name="Puffy_Lower_Lids" value="0.652" /> | 5479 | <param id="765" name="Puffy_Lower_Lids" value="0.652" /> |
5480 | 5480 | ||
5481 | <param id="769" name="Eye Depth" value="0.560" /> | 5481 | <param id="769" name="Eye Depth" value="0.560" /> |
5482 | 5482 | ||
5483 | <param id="773" name="Head Length" value="0.570" /> | 5483 | <param id="773" name="Head Length" value="0.570" /> |
5484 | 5484 | ||
5485 | <!-- wearable: skin --> | 5485 | <!-- wearable: skin --> |
5486 | <param id="108" name="Rainbow Color" value="0.000" /> | 5486 | <param id="108" name="Rainbow Color" value="0.000" /> |
5487 | 5487 | ||
5488 | <param id="110" name="Red Skin" value="0.060" /> | 5488 | <param id="110" name="Red Skin" value="0.060" /> |
5489 | 5489 | ||
5490 | <param id="111" name="Pigment" value="0.560" /> | 5490 | <param id="111" name="Pigment" value="0.560" /> |
5491 | 5491 | ||
5492 | <param id="116" name="Rosy Complexion" value="0.000" /> | 5492 | <param id="116" name="Rosy Complexion" value="0.000" /> |
5493 | 5493 | ||
5494 | <param id="117" name="Lip Pinkness" value="0.000" /> | 5494 | <param id="117" name="Lip Pinkness" value="0.000" /> |
5495 | 5495 | ||
5496 | <param id="150" name="Body Definition" value="0.990" /> | 5496 | <param id="150" name="Body Definition" value="0.990" /> |
5497 | 5497 | ||
5498 | <param id="162" name="Facial Definition" value="0.070" /> | 5498 | <param id="162" name="Facial Definition" value="0.070" /> |
5499 | 5499 | ||
5500 | <param id="163" name="Wrinkles" value="0.000" /> | 5500 | <param id="163" name="Wrinkles" value="0.000" /> |
5501 | 5501 | ||
5502 | <param id="165" name="Freckles" value="0.000" /> | 5502 | <param id="165" name="Freckles" value="0.000" /> |
5503 | 5503 | ||
5504 | <param id="700" name="Lipstick Color" value="0.250" /> | 5504 | <param id="700" name="Lipstick Color" value="0.250" /> |
5505 | 5505 | ||
5506 | <param id="701" name="Lipstick" value="0.000" /> | 5506 | <param id="701" name="Lipstick" value="0.000" /> |
5507 | 5507 | ||
5508 | <param id="702" name="Lipgloss" value="0.000" /> | 5508 | <param id="702" name="Lipgloss" value="0.000" /> |
5509 | 5509 | ||
5510 | <param id="703" name="Eyeliner" value="0.000" /> | 5510 | <param id="703" name="Eyeliner" value="0.000" /> |
5511 | 5511 | ||
5512 | <param id="704" name="Blush" value="0.000" /> | 5512 | <param id="704" name="Blush" value="0.000" /> |
5513 | 5513 | ||
5514 | <param id="705" name="Blush Color" value="0.500" /> | 5514 | <param id="705" name="Blush Color" value="0.500" /> |
5515 | 5515 | ||
5516 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 5516 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
5517 | 5517 | ||
5518 | <param id="707" name="Outer Shadow" value="0.000" /> | 5518 | <param id="707" name="Outer Shadow" value="0.000" /> |
5519 | 5519 | ||
5520 | <param id="708" name="Out Shdw Color" value="0.000" /> | 5520 | <param id="708" name="Out Shdw Color" value="0.000" /> |
5521 | 5521 | ||
5522 | <param id="709" name="Inner Shadow" value="0.000" /> | 5522 | <param id="709" name="Inner Shadow" value="0.000" /> |
5523 | 5523 | ||
5524 | <param id="710" name="Nail Polish" value="0.000" /> | 5524 | <param id="710" name="Nail Polish" value="0.000" /> |
5525 | 5525 | ||
5526 | <param id="711" name="Blush Opacity" value="0.500" /> | 5526 | <param id="711" name="Blush Opacity" value="0.500" /> |
5527 | 5527 | ||
5528 | <param id="712" name="In Shdw Color" value="0.000" /> | 5528 | <param id="712" name="In Shdw Color" value="0.000" /> |
5529 | 5529 | ||
5530 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 5530 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
5531 | 5531 | ||
5532 | <param id="714" name="Eyeliner Color" value="0.000" /> | 5532 | <param id="714" name="Eyeliner Color" value="0.000" /> |
5533 | 5533 | ||
5534 | <param id="715" name="Nail Polish Color" value="0.000" /> | 5534 | <param id="715" name="Nail Polish Color" value="0.000" /> |
5535 | 5535 | ||
5536 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 5536 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
5537 | 5537 | ||
5538 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 5538 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
5539 | 5539 | ||
5540 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 5540 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
5541 | 5541 | ||
5542 | <!-- wearable: hair --> | 5542 | <!-- wearable: hair --> |
5543 | <param id="16" name="Pointy_Eyebrows" value="0.010" /> | 5543 | <param id="16" name="Pointy_Eyebrows" value="0.010" /> |
5544 | 5544 | ||
5545 | <param id="31" name="Arced_Eyebrows" value="0.470" /> | 5545 | <param id="31" name="Arced_Eyebrows" value="0.470" /> |
5546 | 5546 | ||
5547 | <param id="112" name="Rainbow Color" value="0.000" /> | 5547 | <param id="112" name="Rainbow Color" value="0.000" /> |
5548 | 5548 | ||
5549 | <param id="113" name="Red Hair" value="0.310" /> | 5549 | <param id="113" name="Red Hair" value="0.310" /> |
5550 | 5550 | ||
5551 | <param id="114" name="Blonde Hair" value="0.110" /> | 5551 | <param id="114" name="Blonde Hair" value="0.110" /> |
5552 | 5552 | ||
5553 | <param id="115" name="White Hair" value="0.000" /> | 5553 | <param id="115" name="White Hair" value="0.000" /> |
5554 | 5554 | ||
5555 | <param id="119" name="Eyebrow Size" value="0.370" /> | 5555 | <param id="119" name="Eyebrow Size" value="0.370" /> |
5556 | 5556 | ||
5557 | <param id="130" name="Front Fringe" value="0.740" /> | 5557 | <param id="130" name="Front Fringe" value="0.740" /> |
5558 | 5558 | ||
5559 | <param id="131" name="Side Fringe" value="0.730" /> | 5559 | <param id="131" name="Side Fringe" value="0.730" /> |
5560 | 5560 | ||
5561 | <param id="132" name="Back Fringe" value="0.560" /> | 5561 | <param id="132" name="Back Fringe" value="0.560" /> |
5562 | 5562 | ||
5563 | <param id="133" name="Hair Front" value="0.190" /> | 5563 | <param id="133" name="Hair Front" value="0.190" /> |
5564 | 5564 | ||
5565 | <param id="134" name="Hair Sides" value="0.100" /> | 5565 | <param id="134" name="Hair Sides" value="0.100" /> |
5566 | 5566 | ||
5567 | <param id="135" name="Hair Back" value="0.000" /> | 5567 | <param id="135" name="Hair Back" value="0.000" /> |
5568 | 5568 | ||
5569 | <param id="136" name="Hair Sweep" value="0.920" /> | 5569 | <param id="136" name="Hair Sweep" value="0.920" /> |
5570 | 5570 | ||
5571 | <param id="137" name="Hair Tilt" value="0.500" /> | 5571 | <param id="137" name="Hair Tilt" value="0.500" /> |
5572 | 5572 | ||
5573 | <param id="140" name="Hair_Part_Middle" value="2.000" /> | 5573 | <param id="140" name="Hair_Part_Middle" value="2.000" /> |
5574 | 5574 | ||
5575 | <param id="141" name="Hair_Part_Right" value="2.000" /> | 5575 | <param id="141" name="Hair_Part_Right" value="2.000" /> |
5576 | 5576 | ||
5577 | <param id="142" name="Hair_Part_Left" value="2.000" /> | 5577 | <param id="142" name="Hair_Part_Left" value="2.000" /> |
5578 | 5578 | ||
5579 | <param id="143" name="Hair_Sides_Full" value="-0.205" /> | 5579 | <param id="143" name="Hair_Sides_Full" value="-0.205" /> |
5580 | 5580 | ||
5581 | <param id="166" name="Sideburns" value="0.710" /> | 5581 | <param id="166" name="Sideburns" value="0.710" /> |
5582 | 5582 | ||
5583 | <param id="167" name="Moustache" value="0.000" /> | 5583 | <param id="167" name="Moustache" value="0.000" /> |
5584 | 5584 | ||
5585 | <param id="168" name="Soulpatch" value="0.000" /> | 5585 | <param id="168" name="Soulpatch" value="0.000" /> |
5586 | 5586 | ||
5587 | <param id="169" name="Chin Curtains" value="0.000" /> | 5587 | <param id="169" name="Chin Curtains" value="0.000" /> |
5588 | 5588 | ||
5589 | <param id="177" name="Hair_Rumpled" value="0.270" /> | 5589 | <param id="177" name="Hair_Rumpled" value="0.270" /> |
5590 | 5590 | ||
5591 | <param id="181" name="Hair_Big_Front" value="-0.160" /> | 5591 | <param id="181" name="Hair_Big_Front" value="-0.160" /> |
5592 | 5592 | ||
5593 | <param id="182" name="Hair_Big_Top" value="0.860" /> | 5593 | <param id="182" name="Hair_Big_Top" value="0.860" /> |
5594 | 5594 | ||
5595 | <param id="183" name="Hair_Big_Back" value="1.000" /> | 5595 | <param id="183" name="Hair_Big_Back" value="1.000" /> |
5596 | 5596 | ||
5597 | <param id="184" name="Hair_Spiked" value="0.130" /> | 5597 | <param id="184" name="Hair_Spiked" value="0.130" /> |
5598 | 5598 | ||
5599 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 5599 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
5600 | 5600 | ||
5601 | <param id="674" name="Hair_Shear_Back" value="0.000" /> | 5601 | <param id="674" name="Hair_Shear_Back" value="0.000" /> |
5602 | 5602 | ||
5603 | <param id="750" name="Eyebrow Density" value="1.000" /> | 5603 | <param id="750" name="Eyebrow Density" value="1.000" /> |
5604 | 5604 | ||
5605 | <param id="752" name="Hair Thickness" value="0.690" /> | 5605 | <param id="752" name="Hair Thickness" value="0.690" /> |
5606 | 5606 | ||
5607 | <param id="754" name="Hair_Taper_Back" value="-0.340" /> | 5607 | <param id="754" name="Hair_Taper_Back" value="-0.340" /> |
5608 | 5608 | ||
5609 | <param id="755" name="Hair_Taper_Front" value="-0.030" /> | 5609 | <param id="755" name="Hair_Taper_Front" value="-0.030" /> |
5610 | 5610 | ||
5611 | <param id="757" name="Lower_Eyebrows" value="0.360" /> | 5611 | <param id="757" name="Lower_Eyebrows" value="0.360" /> |
5612 | 5612 | ||
5613 | <param id="762" name="Hair_Shear_Front" value="0.540" /> | 5613 | <param id="762" name="Hair_Shear_Front" value="0.540" /> |
5614 | 5614 | ||
5615 | <param id="763" name="Hair Volume" value="0.770" /> | 5615 | <param id="763" name="Hair Volume" value="0.770" /> |
5616 | 5616 | ||
5617 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 5617 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
5618 | 5618 | ||
5619 | <!-- wearable: eyes --> | 5619 | <!-- wearable: eyes --> |
5620 | <param id="98" name="Eye Lightness" value="0.320" /> | 5620 | <param id="98" name="Eye Lightness" value="0.320" /> |
5621 | 5621 | ||
5622 | <param id="99" name="Eye Color" value="0.130" /> | 5622 | <param id="99" name="Eye Color" value="0.130" /> |
5623 | 5623 | ||
5624 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 5624 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
5625 | </archetype> | 5625 | </archetype> |
5626 | 5626 | ||
5627 | <archetype name="F B Muscle"> | 5627 | <archetype name="F B Muscle"> |
5628 | <!-- wearable: shape --> | 5628 | <!-- wearable: shape --> |
5629 | <param id="1" name="Big_Brow" value="0.321" /> | 5629 | <param id="1" name="Big_Brow" value="0.321" /> |
5630 | 5630 | ||
5631 | <param id="2" name="Nose_Big_Out" value="0.091" /> | 5631 | <param id="2" name="Nose_Big_Out" value="0.091" /> |
5632 | 5632 | ||
5633 | <param id="4" name="Broad_Nostrils" value="0.175" /> | 5633 | <param id="4" name="Broad_Nostrils" value="0.175" /> |
5634 | 5634 | ||
5635 | <param id="5" name="Cleft_Chin" value="0.604" /> | 5635 | <param id="5" name="Cleft_Chin" value="0.604" /> |
5636 | 5636 | ||
5637 | <param id="6" name="Bulbous_Nose_Tip" value="0.259" /> | 5637 | <param id="6" name="Bulbous_Nose_Tip" value="0.259" /> |
5638 | 5638 | ||
5639 | <param id="7" name="Weak_Chin" value="-0.320" /> | 5639 | <param id="7" name="Weak_Chin" value="-0.320" /> |
5640 | 5640 | ||
5641 | <param id="8" name="Double_Chin" value="-0.100" /> | 5641 | <param id="8" name="Double_Chin" value="-0.100" /> |
5642 | 5642 | ||
5643 | <param id="10" name="Sunken_Cheeks" value="0.255" /> | 5643 | <param id="10" name="Sunken_Cheeks" value="0.255" /> |
5644 | 5644 | ||
5645 | <param id="11" name="Noble_Nose_Bridge" value="-0.080" /> | 5645 | <param id="11" name="Noble_Nose_Bridge" value="-0.080" /> |
5646 | 5646 | ||
5647 | <param id="12" name="Jowls" value="0.460" /> | 5647 | <param id="12" name="Jowls" value="0.460" /> |
5648 | 5648 | ||
5649 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> | 5649 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> |
5650 | 5650 | ||
5651 | <param id="14" name="High_Cheek_Bones" value="0.070" /> | 5651 | <param id="14" name="High_Cheek_Bones" value="0.070" /> |
5652 | 5652 | ||
5653 | <param id="15" name="Ears_Out" value="0.400" /> | 5653 | <param id="15" name="Ears_Out" value="0.400" /> |
5654 | 5654 | ||
5655 | <param id="17" name="Square_Jaw" value="0.610" /> | 5655 | <param id="17" name="Square_Jaw" value="0.610" /> |
5656 | 5656 | ||
5657 | <param id="18" name="Puffy_Upper_Cheeks" value="0.860" /> | 5657 | <param id="18" name="Puffy_Upper_Cheeks" value="0.860" /> |
5658 | 5658 | ||
5659 | <param id="19" name="Upturned_Nose_Tip" value="-0.375" /> | 5659 | <param id="19" name="Upturned_Nose_Tip" value="-0.375" /> |
5660 | 5660 | ||
5661 | <param id="20" name="Bulbous_Nose" value="0.060" /> | 5661 | <param id="20" name="Bulbous_Nose" value="0.060" /> |
5662 | 5662 | ||
5663 | <param id="21" name="Upper_Eyelid_Fold" value="-0.035" /> | 5663 | <param id="21" name="Upper_Eyelid_Fold" value="-0.035" /> |
5664 | 5664 | ||
5665 | <param id="22" name="Attached_Earlobes" value="0.000" /> | 5665 | <param id="22" name="Attached_Earlobes" value="0.000" /> |
5666 | 5666 | ||
5667 | <param id="23" name="Baggy_Eyes" value="-0.340" /> | 5667 | <param id="23" name="Baggy_Eyes" value="-0.340" /> |
5668 | 5668 | ||
5669 | <param id="24" name="Wide_Eyes" value="-0.380" /> | 5669 | <param id="24" name="Wide_Eyes" value="-0.380" /> |
5670 | 5670 | ||
5671 | <param id="25" name="Wide_Lip_Cleft" value="0.971" /> | 5671 | <param id="25" name="Wide_Lip_Cleft" value="0.971" /> |
5672 | 5672 | ||
5673 | <param id="27" name="Wide_Nose_Bridge" value="-0.575" /> | 5673 | <param id="27" name="Wide_Nose_Bridge" value="-0.575" /> |
5674 | 5674 | ||
5675 | <param id="33" name="Height" value="1.097" /> | 5675 | <param id="33" name="Height" value="1.097" /> |
5676 | 5676 | ||
5677 | <param id="34" name="Thickness" value="0.642" /> | 5677 | <param id="34" name="Thickness" value="0.642" /> |
5678 | 5678 | ||
5679 | <param id="35" name="Big_Ears" value="0.050" /> | 5679 | <param id="35" name="Big_Ears" value="0.050" /> |
5680 | 5680 | ||
5681 | <param id="36" name="Shoulders" value="-0.456" /> | 5681 | <param id="36" name="Shoulders" value="-0.456" /> |
5682 | 5682 | ||
5683 | <param id="37" name="Hip Width" value="-1.340" /> | 5683 | <param id="37" name="Hip Width" value="-1.340" /> |
5684 | 5684 | ||
5685 | <param id="38" name="Torso Length" value="0.720" /> | 5685 | <param id="38" name="Torso Length" value="0.720" /> |
5686 | 5686 | ||
5687 | <param id="80" name="male" value="0.000" /> | 5687 | <param id="80" name="male" value="0.000" /> |
5688 | 5688 | ||
5689 | <param id="105" name="Breast Size" value="0.750" /> | 5689 | <param id="105" name="Breast Size" value="0.750" /> |
5690 | 5690 | ||
5691 | <param id="151" name="Big_Butt_Legs" value="0.202" /> | 5691 | <param id="151" name="Big_Butt_Legs" value="0.202" /> |
5692 | 5692 | ||
5693 | <param id="155" name="Lip Width" value="0.024" /> | 5693 | <param id="155" name="Lip Width" value="0.024" /> |
5694 | 5694 | ||
5695 | <param id="157" name="Belly Size" value="0.220" /> | 5695 | <param id="157" name="Belly Size" value="0.220" /> |
5696 | 5696 | ||
5697 | <param id="185" name="Deep_Chin" value="0.400" /> | 5697 | <param id="185" name="Deep_Chin" value="0.400" /> |
5698 | 5698 | ||
5699 | <param id="193" name="Head Shape" value="0.810" /> | 5699 | <param id="193" name="Head Shape" value="0.810" /> |
5700 | 5700 | ||
5701 | <param id="196" name="Eye Spacing" value="-0.380" /> | 5701 | <param id="196" name="Eye Spacing" value="-0.380" /> |
5702 | 5702 | ||
5703 | <param id="505" name="Lip Thickness" value="0.740" /> | 5703 | <param id="505" name="Lip Thickness" value="0.740" /> |
5704 | 5704 | ||
5705 | <param id="506" name="Mouth_Height" value="0.640" /> | 5705 | <param id="506" name="Mouth_Height" value="0.640" /> |
5706 | 5706 | ||
5707 | <param id="507" name="Breast_Gravity" value="0.600" /> | 5707 | <param id="507" name="Breast_Gravity" value="0.600" /> |
5708 | 5708 | ||
5709 | <param id="515" name="Foot_Size" value="1.840" /> | 5709 | <param id="515" name="Foot_Size" value="1.840" /> |
5710 | 5710 | ||
5711 | <param id="517" name="Wide_Nose" value="0.505" /> | 5711 | <param id="517" name="Wide_Nose" value="0.505" /> |
5712 | 5712 | ||
5713 | <param id="518" name="Eyelashes_Long" value="0.330" /> | 5713 | <param id="518" name="Eyelashes_Long" value="0.330" /> |
5714 | 5714 | ||
5715 | <param id="629" name="Forehead Angle" value="0.000" /> | 5715 | <param id="629" name="Forehead Angle" value="0.000" /> |
5716 | 5716 | ||
5717 | <param id="637" name="Body Fat" value="0.140" /> | 5717 | <param id="637" name="Body Fat" value="0.140" /> |
5718 | 5718 | ||
5719 | <param id="646" name="Egg_Head" value="0.563" /> | 5719 | <param id="646" name="Egg_Head" value="0.563" /> |
5720 | 5720 | ||
5721 | <param id="647" name="Squash_Stretch_Head" value="0.130" /> | 5721 | <param id="647" name="Squash_Stretch_Head" value="0.130" /> |
5722 | 5722 | ||
5723 | <param id="649" name="Torso Muscles" value="0.870" /> | 5723 | <param id="649" name="Torso Muscles" value="0.870" /> |
5724 | 5724 | ||
5725 | <param id="650" name="Eyelid_Corner_Up" value="0.700" /> | 5725 | <param id="650" name="Eyelid_Corner_Up" value="0.700" /> |
5726 | 5726 | ||
5727 | <param id="652" name="Leg Muscles" value="0.850" /> | 5727 | <param id="652" name="Leg Muscles" value="0.850" /> |
5728 | 5728 | ||
5729 | <param id="653" name="Tall_Lips" value="1.850" /> | 5729 | <param id="653" name="Tall_Lips" value="1.850" /> |
5730 | 5730 | ||
5731 | <param id="656" name="Crooked_Nose" value="0.000" /> | 5731 | <param id="656" name="Crooked_Nose" value="0.000" /> |
5732 | 5732 | ||
5733 | <param id="659" name="Mouth Corner" value="0.860" /> | 5733 | <param id="659" name="Mouth Corner" value="0.860" /> |
5734 | 5734 | ||
5735 | <param id="662" name="Face Shear" value="0.500" /> | 5735 | <param id="662" name="Face Shear" value="0.500" /> |
5736 | 5736 | ||
5737 | <param id="663" name="Shift_Mouth" value="0.160" /> | 5737 | <param id="663" name="Shift_Mouth" value="0.160" /> |
5738 | 5738 | ||
5739 | <param id="664" name="Pop_Eye" value="0.052" /> | 5739 | <param id="664" name="Pop_Eye" value="0.052" /> |
5740 | 5740 | ||
5741 | <param id="665" name="Jaw_Jut" value="-0.320" /> | 5741 | <param id="665" name="Jaw_Jut" value="-0.320" /> |
5742 | 5742 | ||
5743 | <param id="675" name="Hand Size" value="0.120" /> | 5743 | <param id="675" name="Hand Size" value="0.120" /> |
5744 | 5744 | ||
5745 | <param id="676" name="Love_Handles" value="-0.190" /> | 5745 | <param id="676" name="Love_Handles" value="-0.190" /> |
5746 | 5746 | ||
5747 | <param id="678" name="Torso Muscles" value="0.790" /> | 5747 | <param id="678" name="Torso Muscles" value="0.790" /> |
5748 | 5748 | ||
5749 | <param id="682" name="Head Size" value="0.720" /> | 5749 | <param id="682" name="Head Size" value="0.720" /> |
5750 | 5750 | ||
5751 | <param id="683" name="Neck Thickness" value="0.044" /> | 5751 | <param id="683" name="Neck Thickness" value="0.044" /> |
5752 | 5752 | ||
5753 | <param id="684" name="Breast_Female_Clevage" value="0.148" /> | 5753 | <param id="684" name="Breast_Female_Clevage" value="0.148" /> |
5754 | 5754 | ||
5755 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> | 5755 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> |
5756 | 5756 | ||
5757 | <param id="690" name="Eye Size" value="0.660" /> | 5757 | <param id="690" name="Eye Size" value="0.660" /> |
5758 | 5758 | ||
5759 | <param id="692" name="Leg Length" value="0.460" /> | 5759 | <param id="692" name="Leg Length" value="0.460" /> |
5760 | 5760 | ||
5761 | <param id="693" name="Arm Length" value="0.540" /> | 5761 | <param id="693" name="Arm Length" value="0.540" /> |
5762 | 5762 | ||
5763 | <param id="753" name="Saddlebags" value="0.865" /> | 5763 | <param id="753" name="Saddlebags" value="0.865" /> |
5764 | 5764 | ||
5765 | <param id="756" name="Neck Length" value="0.220" /> | 5765 | <param id="756" name="Neck Length" value="0.220" /> |
5766 | 5766 | ||
5767 | <param id="758" name="Lower_Bridge_Nose" value="-0.000" /> | 5767 | <param id="758" name="Lower_Bridge_Nose" value="-0.000" /> |
5768 | 5768 | ||
5769 | <param id="759" name="Low_Septum_Nose" value="0.100" /> | 5769 | <param id="759" name="Low_Septum_Nose" value="0.100" /> |
5770 | 5770 | ||
5771 | <param id="760" name="Jaw_Angle" value="1.072" /> | 5771 | <param id="760" name="Jaw_Angle" value="1.072" /> |
5772 | 5772 | ||
5773 | <param id="764" name="Lip_Cleft_Deep" value="0.180" /> | 5773 | <param id="764" name="Lip_Cleft_Deep" value="0.180" /> |
5774 | 5774 | ||
5775 | <param id="765" name="Puffy_Lower_Lids" value="0.316" /> | 5775 | <param id="765" name="Puffy_Lower_Lids" value="0.316" /> |
5776 | 5776 | ||
5777 | <param id="769" name="Eye Depth" value="0.780" /> | 5777 | <param id="769" name="Eye Depth" value="0.780" /> |
5778 | 5778 | ||
5779 | <param id="773" name="Head Length" value="0.570" /> | 5779 | <param id="773" name="Head Length" value="0.570" /> |
5780 | 5780 | ||
5781 | <!-- wearable: skin --> | 5781 | <!-- wearable: skin --> |
5782 | <param id="108" name="Rainbow Color" value="0.000" /> | 5782 | <param id="108" name="Rainbow Color" value="0.000" /> |
5783 | 5783 | ||
5784 | <param id="110" name="Red Skin" value="0.042" /> | 5784 | <param id="110" name="Red Skin" value="0.042" /> |
5785 | 5785 | ||
5786 | <param id="111" name="Pigment" value="0.570" /> | 5786 | <param id="111" name="Pigment" value="0.570" /> |
5787 | 5787 | ||
5788 | <param id="116" name="Rosy Complexion" value="0.350" /> | 5788 | <param id="116" name="Rosy Complexion" value="0.350" /> |
5789 | 5789 | ||
5790 | <param id="117" name="Lip Pinkness" value="0.470" /> | 5790 | <param id="117" name="Lip Pinkness" value="0.470" /> |
5791 | 5791 | ||
5792 | <param id="150" name="Body Definition" value="0.690" /> | 5792 | <param id="150" name="Body Definition" value="0.690" /> |
5793 | 5793 | ||
5794 | <param id="162" name="Facial Definition" value="0.220" /> | 5794 | <param id="162" name="Facial Definition" value="0.220" /> |
5795 | 5795 | ||
5796 | <param id="163" name="Wrinkles" value="0.000" /> | 5796 | <param id="163" name="Wrinkles" value="0.000" /> |
5797 | 5797 | ||
5798 | <param id="165" name="Freckles" value="0.030" /> | 5798 | <param id="165" name="Freckles" value="0.030" /> |
5799 | 5799 | ||
5800 | <param id="700" name="Lipstick Color" value="0.250" /> | 5800 | <param id="700" name="Lipstick Color" value="0.250" /> |
5801 | 5801 | ||
5802 | <param id="701" name="Lipstick" value="0.000" /> | 5802 | <param id="701" name="Lipstick" value="0.000" /> |
5803 | 5803 | ||
5804 | <param id="702" name="Lipgloss" value="0.000" /> | 5804 | <param id="702" name="Lipgloss" value="0.000" /> |
5805 | 5805 | ||
5806 | <param id="703" name="Eyeliner" value="0.000" /> | 5806 | <param id="703" name="Eyeliner" value="0.000" /> |
5807 | 5807 | ||
5808 | <param id="704" name="Blush" value="0.000" /> | 5808 | <param id="704" name="Blush" value="0.000" /> |
5809 | 5809 | ||
5810 | <param id="705" name="Blush Color" value="0.500" /> | 5810 | <param id="705" name="Blush Color" value="0.500" /> |
5811 | 5811 | ||
5812 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 5812 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
5813 | 5813 | ||
5814 | <param id="707" name="Outer Shadow" value="0.000" /> | 5814 | <param id="707" name="Outer Shadow" value="0.000" /> |
5815 | 5815 | ||
5816 | <param id="708" name="Out Shdw Color" value="0.000" /> | 5816 | <param id="708" name="Out Shdw Color" value="0.000" /> |
5817 | 5817 | ||
5818 | <param id="709" name="Inner Shadow" value="0.000" /> | 5818 | <param id="709" name="Inner Shadow" value="0.000" /> |
5819 | 5819 | ||
5820 | <param id="710" name="Nail Polish" value="0.000" /> | 5820 | <param id="710" name="Nail Polish" value="0.000" /> |
5821 | 5821 | ||
5822 | <param id="711" name="Blush Opacity" value="0.500" /> | 5822 | <param id="711" name="Blush Opacity" value="0.500" /> |
5823 | 5823 | ||
5824 | <param id="712" name="In Shdw Color" value="0.000" /> | 5824 | <param id="712" name="In Shdw Color" value="0.000" /> |
5825 | 5825 | ||
5826 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 5826 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
5827 | 5827 | ||
5828 | <param id="714" name="Eyeliner Color" value="0.000" /> | 5828 | <param id="714" name="Eyeliner Color" value="0.000" /> |
5829 | 5829 | ||
5830 | <param id="715" name="Nail Polish Color" value="0.000" /> | 5830 | <param id="715" name="Nail Polish Color" value="0.000" /> |
5831 | 5831 | ||
5832 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 5832 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
5833 | 5833 | ||
5834 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 5834 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
5835 | 5835 | ||
5836 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 5836 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
5837 | 5837 | ||
5838 | <!-- wearable: hair --> | 5838 | <!-- wearable: hair --> |
5839 | <param id="16" name="Pointy_Eyebrows" value="0.010" /> | 5839 | <param id="16" name="Pointy_Eyebrows" value="0.010" /> |
5840 | 5840 | ||
5841 | <param id="31" name="Arced_Eyebrows" value="0.470" /> | 5841 | <param id="31" name="Arced_Eyebrows" value="0.470" /> |
5842 | 5842 | ||
5843 | <param id="112" name="Rainbow Color" value="0.000" /> | 5843 | <param id="112" name="Rainbow Color" value="0.000" /> |
5844 | 5844 | ||
5845 | <param id="113" name="Red Hair" value="0.520" /> | 5845 | <param id="113" name="Red Hair" value="0.520" /> |
5846 | 5846 | ||
5847 | <param id="114" name="Blonde Hair" value="0.030" /> | 5847 | <param id="114" name="Blonde Hair" value="0.030" /> |
5848 | 5848 | ||
5849 | <param id="115" name="White Hair" value="0.000" /> | 5849 | <param id="115" name="White Hair" value="0.000" /> |
5850 | 5850 | ||
5851 | <param id="119" name="Eyebrow Size" value="0.370" /> | 5851 | <param id="119" name="Eyebrow Size" value="0.370" /> |
5852 | 5852 | ||
5853 | <param id="130" name="Front Fringe" value="0.280" /> | 5853 | <param id="130" name="Front Fringe" value="0.280" /> |
5854 | 5854 | ||
5855 | <param id="131" name="Side Fringe" value="1.000" /> | 5855 | <param id="131" name="Side Fringe" value="1.000" /> |
5856 | 5856 | ||
5857 | <param id="132" name="Back Fringe" value="1.000" /> | 5857 | <param id="132" name="Back Fringe" value="1.000" /> |
5858 | 5858 | ||
5859 | <param id="133" name="Hair Front" value="0.280" /> | 5859 | <param id="133" name="Hair Front" value="0.280" /> |
5860 | 5860 | ||
5861 | <param id="134" name="Hair Sides" value="0.000" /> | 5861 | <param id="134" name="Hair Sides" value="0.000" /> |
5862 | 5862 | ||
5863 | <param id="135" name="Hair Back" value="0.570" /> | 5863 | <param id="135" name="Hair Back" value="0.570" /> |
5864 | 5864 | ||
5865 | <param id="136" name="Hair Sweep" value="1.000" /> | 5865 | <param id="136" name="Hair Sweep" value="1.000" /> |
5866 | 5866 | ||
5867 | <param id="137" name="Hair Tilt" value="0.500" /> | 5867 | <param id="137" name="Hair Tilt" value="0.500" /> |
5868 | 5868 | ||
5869 | <param id="140" name="Hair_Part_Middle" value="0.000" /> | 5869 | <param id="140" name="Hair_Part_Middle" value="0.000" /> |
5870 | 5870 | ||
5871 | <param id="141" name="Hair_Part_Right" value="0.000" /> | 5871 | <param id="141" name="Hair_Part_Right" value="0.000" /> |
5872 | 5872 | ||
5873 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 5873 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
5874 | 5874 | ||
5875 | <param id="143" name="Hair_Sides_Full" value="-0.040" /> | 5875 | <param id="143" name="Hair_Sides_Full" value="-0.040" /> |
5876 | 5876 | ||
5877 | <param id="166" name="Sideburns" value="0.710" /> | 5877 | <param id="166" name="Sideburns" value="0.710" /> |
5878 | 5878 | ||
5879 | <param id="167" name="Moustache" value="0.000" /> | 5879 | <param id="167" name="Moustache" value="0.000" /> |
5880 | 5880 | ||
5881 | <param id="168" name="Soulpatch" value="0.000" /> | 5881 | <param id="168" name="Soulpatch" value="0.000" /> |
5882 | 5882 | ||
5883 | <param id="169" name="Chin Curtains" value="0.000" /> | 5883 | <param id="169" name="Chin Curtains" value="0.000" /> |
5884 | 5884 | ||
5885 | <param id="177" name="Hair_Rumpled" value="0.270" /> | 5885 | <param id="177" name="Hair_Rumpled" value="0.270" /> |
5886 | 5886 | ||
5887 | <param id="181" name="Hair_Big_Front" value="-0.260" /> | 5887 | <param id="181" name="Hair_Big_Front" value="-0.260" /> |
5888 | 5888 | ||
5889 | <param id="182" name="Hair_Big_Top" value="0.860" /> | 5889 | <param id="182" name="Hair_Big_Top" value="0.860" /> |
5890 | 5890 | ||
5891 | <param id="183" name="Hair_Big_Back" value="0.300" /> | 5891 | <param id="183" name="Hair_Big_Back" value="0.300" /> |
5892 | 5892 | ||
5893 | <param id="184" name="Hair_Spiked" value="0.000" /> | 5893 | <param id="184" name="Hair_Spiked" value="0.000" /> |
5894 | 5894 | ||
5895 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 5895 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
5896 | 5896 | ||
5897 | <param id="674" name="Hair_Shear_Back" value="0.620" /> | 5897 | <param id="674" name="Hair_Shear_Back" value="0.620" /> |
5898 | 5898 | ||
5899 | <param id="750" name="Eyebrow Density" value="1.000" /> | 5899 | <param id="750" name="Eyebrow Density" value="1.000" /> |
5900 | 5900 | ||
5901 | <param id="752" name="Hair Thickness" value="0.690" /> | 5901 | <param id="752" name="Hair Thickness" value="0.690" /> |
5902 | 5902 | ||
5903 | <param id="754" name="Hair_Taper_Back" value="-0.340" /> | 5903 | <param id="754" name="Hair_Taper_Back" value="-0.340" /> |
5904 | 5904 | ||
5905 | <param id="755" name="Hair_Taper_Front" value="-0.030" /> | 5905 | <param id="755" name="Hair_Taper_Front" value="-0.030" /> |
5906 | 5906 | ||
5907 | <param id="757" name="Lower_Eyebrows" value="0.360" /> | 5907 | <param id="757" name="Lower_Eyebrows" value="0.360" /> |
5908 | 5908 | ||
5909 | <param id="762" name="Hair_Shear_Front" value="0.570" /> | 5909 | <param id="762" name="Hair_Shear_Front" value="0.570" /> |
5910 | 5910 | ||
5911 | <param id="763" name="Hair Volume" value="0.770" /> | 5911 | <param id="763" name="Hair Volume" value="0.770" /> |
5912 | 5912 | ||
5913 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 5913 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
5914 | 5914 | ||
5915 | <!-- wearable: eyes --> | 5915 | <!-- wearable: eyes --> |
5916 | <param id="98" name="Eye Lightness" value="0.140" /> | 5916 | <param id="98" name="Eye Lightness" value="0.140" /> |
5917 | 5917 | ||
5918 | <param id="99" name="Eye Color" value="0.000" /> | 5918 | <param id="99" name="Eye Color" value="0.000" /> |
5919 | 5919 | ||
5920 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 5920 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
5921 | </archetype> | 5921 | </archetype> |
5922 | 5922 | ||
5923 | <archetype name="F B Chubby"> | 5923 | <archetype name="F B Chubby"> |
5924 | <!-- wearable: shape --> | 5924 | <!-- wearable: shape --> |
5925 | <param id="1" name="Big_Brow" value="0.436" /> | 5925 | <param id="1" name="Big_Brow" value="0.436" /> |
5926 | 5926 | ||
5927 | <param id="2" name="Nose_Big_Out" value="-0.404" /> | 5927 | <param id="2" name="Nose_Big_Out" value="-0.404" /> |
5928 | 5928 | ||
5929 | <param id="4" name="Broad_Nostrils" value="0.430" /> | 5929 | <param id="4" name="Broad_Nostrils" value="0.430" /> |
5930 | 5930 | ||
5931 | <param id="5" name="Cleft_Chin" value="0.219" /> | 5931 | <param id="5" name="Cleft_Chin" value="0.219" /> |
5932 | 5932 | ||
5933 | <param id="6" name="Bulbous_Nose_Tip" value="0.428" /> | 5933 | <param id="6" name="Bulbous_Nose_Tip" value="0.428" /> |
5934 | 5934 | ||
5935 | <param id="7" name="Weak_Chin" value="0.270" /> | 5935 | <param id="7" name="Weak_Chin" value="0.270" /> |
5936 | 5936 | ||
5937 | <param id="8" name="Double_Chin" value="0.060" /> | 5937 | <param id="8" name="Double_Chin" value="0.060" /> |
5938 | 5938 | ||
5939 | <param id="10" name="Sunken_Cheeks" value="-0.285" /> | 5939 | <param id="10" name="Sunken_Cheeks" value="-0.285" /> |
5940 | 5940 | ||
5941 | <param id="11" name="Noble_Nose_Bridge" value="0.180" /> | 5941 | <param id="11" name="Noble_Nose_Bridge" value="0.180" /> |
5942 | 5942 | ||
5943 | <param id="12" name="Jowls" value="0.640" /> | 5943 | <param id="12" name="Jowls" value="0.640" /> |
5944 | 5944 | ||
5945 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> | 5945 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> |
5946 | 5946 | ||
5947 | <param id="14" name="High_Cheek_Bones" value="0.250" /> | 5947 | <param id="14" name="High_Cheek_Bones" value="0.250" /> |
5948 | 5948 | ||
5949 | <param id="15" name="Ears_Out" value="-0.280" /> | 5949 | <param id="15" name="Ears_Out" value="-0.280" /> |
5950 | 5950 | ||
5951 | <param id="17" name="Square_Jaw" value="0.280" /> | 5951 | <param id="17" name="Square_Jaw" value="0.280" /> |
5952 | 5952 | ||
5953 | <param id="18" name="Puffy_Upper_Cheeks" value="1.500" /> | 5953 | <param id="18" name="Puffy_Upper_Cheeks" value="1.500" /> |
5954 | 5954 | ||
5955 | <param id="19" name="Upturned_Nose_Tip" value="-1.175" /> | 5955 | <param id="19" name="Upturned_Nose_Tip" value="-1.175" /> |
5956 | 5956 | ||
5957 | <param id="20" name="Bulbous_Nose" value="-0.200" /> | 5957 | <param id="20" name="Bulbous_Nose" value="-0.200" /> |
5958 | 5958 | ||
5959 | <param id="21" name="Upper_Eyelid_Fold" value="-0.200" /> | 5959 | <param id="21" name="Upper_Eyelid_Fold" value="-0.200" /> |
5960 | 5960 | ||
5961 | <param id="22" name="Attached_Earlobes" value="0.000" /> | 5961 | <param id="22" name="Attached_Earlobes" value="0.000" /> |
5962 | 5962 | ||
5963 | <param id="23" name="Baggy_Eyes" value="-0.340" /> | 5963 | <param id="23" name="Baggy_Eyes" value="-0.340" /> |
5964 | 5964 | ||
5965 | <param id="24" name="Wide_Eyes" value="1.020" /> | 5965 | <param id="24" name="Wide_Eyes" value="1.020" /> |
5966 | 5966 | ||
5967 | <param id="25" name="Wide_Lip_Cleft" value="-0.064" /> | 5967 | <param id="25" name="Wide_Lip_Cleft" value="-0.064" /> |
5968 | 5968 | ||
5969 | <param id="27" name="Wide_Nose_Bridge" value="0.025" /> | 5969 | <param id="27" name="Wide_Nose_Bridge" value="0.025" /> |
5970 | 5970 | ||
5971 | <param id="33" name="Height" value="0.753" /> | 5971 | <param id="33" name="Height" value="0.753" /> |
5972 | 5972 | ||
5973 | <param id="34" name="Thickness" value="0.928" /> | 5973 | <param id="34" name="Thickness" value="0.928" /> |
5974 | 5974 | ||
5975 | <param id="35" name="Big_Ears" value="-0.130" /> | 5975 | <param id="35" name="Big_Ears" value="-0.130" /> |
5976 | 5976 | ||
5977 | <param id="36" name="Shoulders" value="-0.776" /> | 5977 | <param id="36" name="Shoulders" value="-0.776" /> |
5978 | 5978 | ||
5979 | <param id="37" name="Hip Width" value="-0.860" /> | 5979 | <param id="37" name="Hip Width" value="-0.860" /> |
5980 | 5980 | ||
5981 | <param id="38" name="Torso Length" value="0.860" /> | 5981 | <param id="38" name="Torso Length" value="0.860" /> |
5982 | 5982 | ||
5983 | <param id="80" name="male" value="0.000" /> | 5983 | <param id="80" name="male" value="0.000" /> |
5984 | 5984 | ||
5985 | <param id="105" name="Breast Size" value="0.850" /> | 5985 | <param id="105" name="Breast Size" value="0.850" /> |
5986 | 5986 | ||
5987 | <param id="151" name="Big_Butt_Legs" value="0.398" /> | 5987 | <param id="151" name="Big_Butt_Legs" value="0.398" /> |
5988 | 5988 | ||
5989 | <param id="155" name="Lip Width" value="0.134" /> | 5989 | <param id="155" name="Lip Width" value="0.134" /> |
5990 | 5990 | ||
5991 | <param id="157" name="Belly Size" value="0.150" /> | 5991 | <param id="157" name="Belly Size" value="0.150" /> |
5992 | 5992 | ||
5993 | <param id="185" name="Deep_Chin" value="-0.560" /> | 5993 | <param id="185" name="Deep_Chin" value="-0.560" /> |
5994 | 5994 | ||
5995 | <param id="193" name="Head Shape" value="0.470" /> | 5995 | <param id="193" name="Head Shape" value="0.470" /> |
5996 | 5996 | ||
5997 | <param id="196" name="Eye Spacing" value="0.400" /> | 5997 | <param id="196" name="Eye Spacing" value="0.400" /> |
5998 | 5998 | ||
5999 | <param id="505" name="Lip Thickness" value="0.740" /> | 5999 | <param id="505" name="Lip Thickness" value="0.740" /> |
6000 | 6000 | ||
6001 | <param id="506" name="Mouth_Height" value="0.280" /> | 6001 | <param id="506" name="Mouth_Height" value="0.280" /> |
6002 | 6002 | ||
6003 | <param id="507" name="Breast_Gravity" value="1.370" /> | 6003 | <param id="507" name="Breast_Gravity" value="1.370" /> |
6004 | 6004 | ||
6005 | <param id="515" name="Foot_Size" value="1.480" /> | 6005 | <param id="515" name="Foot_Size" value="1.480" /> |
6006 | 6006 | ||
6007 | <param id="517" name="Wide_Nose" value="0.550" /> | 6007 | <param id="517" name="Wide_Nose" value="0.550" /> |
6008 | 6008 | ||
6009 | <param id="518" name="Eyelashes_Long" value="0.222" /> | 6009 | <param id="518" name="Eyelashes_Long" value="0.222" /> |
6010 | 6010 | ||
6011 | <param id="629" name="Forehead Angle" value="0.470" /> | 6011 | <param id="629" name="Forehead Angle" value="0.470" /> |
6012 | 6012 | ||
6013 | <param id="637" name="Body Fat" value="0.370" /> | 6013 | <param id="637" name="Body Fat" value="0.370" /> |
6014 | 6014 | ||
6015 | <param id="646" name="Egg_Head" value="0.379" /> | 6015 | <param id="646" name="Egg_Head" value="0.379" /> |
6016 | 6016 | ||
6017 | <param id="647" name="Squash_Stretch_Head" value="0.430" /> | 6017 | <param id="647" name="Squash_Stretch_Head" value="0.430" /> |
6018 | 6018 | ||
6019 | <param id="649" name="Torso Muscles" value="0.680" /> | 6019 | <param id="649" name="Torso Muscles" value="0.680" /> |
6020 | 6020 | ||
6021 | <param id="650" name="Eyelid_Corner_Up" value="0.325" /> | 6021 | <param id="650" name="Eyelid_Corner_Up" value="0.325" /> |
6022 | 6022 | ||
6023 | <param id="652" name="Leg Muscles" value="0.800" /> | 6023 | <param id="652" name="Leg Muscles" value="0.800" /> |
6024 | 6024 | ||
6025 | <param id="653" name="Tall_Lips" value="0.560" /> | 6025 | <param id="653" name="Tall_Lips" value="0.560" /> |
6026 | 6026 | ||
6027 | <param id="656" name="Crooked_Nose" value="0.000" /> | 6027 | <param id="656" name="Crooked_Nose" value="0.000" /> |
6028 | 6028 | ||
6029 | <param id="659" name="Mouth Corner" value="0.830" /> | 6029 | <param id="659" name="Mouth Corner" value="0.830" /> |
6030 | 6030 | ||
6031 | <param id="662" name="Face Shear" value="0.500" /> | 6031 | <param id="662" name="Face Shear" value="0.500" /> |
6032 | 6032 | ||
6033 | <param id="663" name="Shift_Mouth" value="0.160" /> | 6033 | <param id="663" name="Shift_Mouth" value="0.160" /> |
6034 | 6034 | ||
6035 | <param id="664" name="Pop_Eye" value="0.052" /> | 6035 | <param id="664" name="Pop_Eye" value="0.052" /> |
6036 | 6036 | ||
6037 | <param id="665" name="Jaw_Jut" value="-0.320" /> | 6037 | <param id="665" name="Jaw_Jut" value="-0.320" /> |
6038 | 6038 | ||
6039 | <param id="675" name="Hand Size" value="0.006" /> | 6039 | <param id="675" name="Hand Size" value="0.006" /> |
6040 | 6040 | ||
6041 | <param id="676" name="Love_Handles" value="-0.070" /> | 6041 | <param id="676" name="Love_Handles" value="-0.070" /> |
6042 | 6042 | ||
6043 | <param id="678" name="Torso Muscles" value="0.790" /> | 6043 | <param id="678" name="Torso Muscles" value="0.790" /> |
6044 | 6044 | ||
6045 | <param id="682" name="Head Size" value="0.770" /> | 6045 | <param id="682" name="Head Size" value="0.770" /> |
6046 | 6046 | ||
6047 | <param id="683" name="Neck Thickness" value="-0.064" /> | 6047 | <param id="683" name="Neck Thickness" value="-0.064" /> |
6048 | 6048 | ||
6049 | <param id="684" name="Breast_Female_Clevage" value="-0.092" /> | 6049 | <param id="684" name="Breast_Female_Clevage" value="-0.092" /> |
6050 | 6050 | ||
6051 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> | 6051 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> |
6052 | 6052 | ||
6053 | <param id="690" name="Eye Size" value="0.530" /> | 6053 | <param id="690" name="Eye Size" value="0.530" /> |
6054 | 6054 | ||
6055 | <param id="692" name="Leg Length" value="0.640" /> | 6055 | <param id="692" name="Leg Length" value="0.640" /> |
6056 | 6056 | ||
6057 | <param id="693" name="Arm Length" value="0.780" /> | 6057 | <param id="693" name="Arm Length" value="0.780" /> |
6058 | 6058 | ||
6059 | <param id="753" name="Saddlebags" value="1.250" /> | 6059 | <param id="753" name="Saddlebags" value="1.250" /> |
6060 | 6060 | ||
6061 | <param id="756" name="Neck Length" value="0.200" /> | 6061 | <param id="756" name="Neck Length" value="0.200" /> |
6062 | 6062 | ||
6063 | <param id="758" name="Lower_Bridge_Nose" value="0.060" /> | 6063 | <param id="758" name="Lower_Bridge_Nose" value="0.060" /> |
6064 | 6064 | ||
6065 | <param id="759" name="Low_Septum_Nose" value="0.925" /> | 6065 | <param id="759" name="Low_Septum_Nose" value="0.925" /> |
6066 | 6066 | ||
6067 | <param id="760" name="Jaw_Angle" value="0.688" /> | 6067 | <param id="760" name="Jaw_Angle" value="0.688" /> |
6068 | 6068 | ||
6069 | <param id="764" name="Lip_Cleft_Deep" value="0.520" /> | 6069 | <param id="764" name="Lip_Cleft_Deep" value="0.520" /> |
6070 | 6070 | ||
6071 | <param id="765" name="Puffy_Lower_Lids" value="0.316" /> | 6071 | <param id="765" name="Puffy_Lower_Lids" value="0.316" /> |
6072 | 6072 | ||
6073 | <param id="769" name="Eye Depth" value="0.620" /> | 6073 | <param id="769" name="Eye Depth" value="0.620" /> |
6074 | 6074 | ||
6075 | <param id="773" name="Head Length" value="0.720" /> | 6075 | <param id="773" name="Head Length" value="0.720" /> |
6076 | 6076 | ||
6077 | <!-- wearable: skin --> | 6077 | <!-- wearable: skin --> |
6078 | <param id="108" name="Rainbow Color" value="0.000" /> | 6078 | <param id="108" name="Rainbow Color" value="0.000" /> |
6079 | 6079 | ||
6080 | <param id="110" name="Red Skin" value="0.000" /> | 6080 | <param id="110" name="Red Skin" value="0.000" /> |
6081 | 6081 | ||
6082 | <param id="111" name="Pigment" value="0.660" /> | 6082 | <param id="111" name="Pigment" value="0.660" /> |
6083 | 6083 | ||
6084 | <param id="116" name="Rosy Complexion" value="0.080" /> | 6084 | <param id="116" name="Rosy Complexion" value="0.080" /> |
6085 | 6085 | ||
6086 | <param id="117" name="Lip Pinkness" value="0.330" /> | 6086 | <param id="117" name="Lip Pinkness" value="0.330" /> |
6087 | 6087 | ||
6088 | <param id="150" name="Body Definition" value="0.690" /> | 6088 | <param id="150" name="Body Definition" value="0.690" /> |
6089 | 6089 | ||
6090 | <param id="162" name="Facial Definition" value="0.470" /> | 6090 | <param id="162" name="Facial Definition" value="0.470" /> |
6091 | 6091 | ||
6092 | <param id="163" name="Wrinkles" value="0.000" /> | 6092 | <param id="163" name="Wrinkles" value="0.000" /> |
6093 | 6093 | ||
6094 | <param id="165" name="Freckles" value="0.190" /> | 6094 | <param id="165" name="Freckles" value="0.190" /> |
6095 | 6095 | ||
6096 | <param id="700" name="Lipstick Color" value="0.250" /> | 6096 | <param id="700" name="Lipstick Color" value="0.250" /> |
6097 | 6097 | ||
6098 | <param id="701" name="Lipstick" value="0.000" /> | 6098 | <param id="701" name="Lipstick" value="0.000" /> |
6099 | 6099 | ||
6100 | <param id="702" name="Lipgloss" value="0.000" /> | 6100 | <param id="702" name="Lipgloss" value="0.000" /> |
6101 | 6101 | ||
6102 | <param id="703" name="Eyeliner" value="0.000" /> | 6102 | <param id="703" name="Eyeliner" value="0.000" /> |
6103 | 6103 | ||
6104 | <param id="704" name="Blush" value="0.000" /> | 6104 | <param id="704" name="Blush" value="0.000" /> |
6105 | 6105 | ||
6106 | <param id="705" name="Blush Color" value="0.500" /> | 6106 | <param id="705" name="Blush Color" value="0.500" /> |
6107 | 6107 | ||
6108 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 6108 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
6109 | 6109 | ||
6110 | <param id="707" name="Outer Shadow" value="0.000" /> | 6110 | <param id="707" name="Outer Shadow" value="0.000" /> |
6111 | 6111 | ||
6112 | <param id="708" name="Out Shdw Color" value="0.000" /> | 6112 | <param id="708" name="Out Shdw Color" value="0.000" /> |
6113 | 6113 | ||
6114 | <param id="709" name="Inner Shadow" value="0.000" /> | 6114 | <param id="709" name="Inner Shadow" value="0.000" /> |
6115 | 6115 | ||
6116 | <param id="710" name="Nail Polish" value="0.000" /> | 6116 | <param id="710" name="Nail Polish" value="0.000" /> |
6117 | 6117 | ||
6118 | <param id="711" name="Blush Opacity" value="0.500" /> | 6118 | <param id="711" name="Blush Opacity" value="0.500" /> |
6119 | 6119 | ||
6120 | <param id="712" name="In Shdw Color" value="0.000" /> | 6120 | <param id="712" name="In Shdw Color" value="0.000" /> |
6121 | 6121 | ||
6122 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 6122 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
6123 | 6123 | ||
6124 | <param id="714" name="Eyeliner Color" value="0.000" /> | 6124 | <param id="714" name="Eyeliner Color" value="0.000" /> |
6125 | 6125 | ||
6126 | <param id="715" name="Nail Polish Color" value="0.000" /> | 6126 | <param id="715" name="Nail Polish Color" value="0.000" /> |
6127 | 6127 | ||
6128 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 6128 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
6129 | 6129 | ||
6130 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 6130 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
6131 | 6131 | ||
6132 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 6132 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
6133 | 6133 | ||
6134 | <!-- wearable: hair --> | 6134 | <!-- wearable: hair --> |
6135 | <param id="16" name="Pointy_Eyebrows" value="0.655" /> | 6135 | <param id="16" name="Pointy_Eyebrows" value="0.655" /> |
6136 | 6136 | ||
6137 | <param id="31" name="Arced_Eyebrows" value="0.180" /> | 6137 | <param id="31" name="Arced_Eyebrows" value="0.180" /> |
6138 | 6138 | ||
6139 | <param id="112" name="Rainbow Color" value="0.000" /> | 6139 | <param id="112" name="Rainbow Color" value="0.000" /> |
6140 | 6140 | ||
6141 | <param id="113" name="Red Hair" value="0.340" /> | 6141 | <param id="113" name="Red Hair" value="0.340" /> |
6142 | 6142 | ||
6143 | <param id="114" name="Blonde Hair" value="0.000" /> | 6143 | <param id="114" name="Blonde Hair" value="0.000" /> |
6144 | 6144 | ||
6145 | <param id="115" name="White Hair" value="0.000" /> | 6145 | <param id="115" name="White Hair" value="0.000" /> |
6146 | 6146 | ||
6147 | <param id="119" name="Eyebrow Size" value="0.200" /> | 6147 | <param id="119" name="Eyebrow Size" value="0.200" /> |
6148 | 6148 | ||
6149 | <param id="130" name="Front Fringe" value="0.000" /> | 6149 | <param id="130" name="Front Fringe" value="0.000" /> |
6150 | 6150 | ||
6151 | <param id="131" name="Side Fringe" value="0.730" /> | 6151 | <param id="131" name="Side Fringe" value="0.730" /> |
6152 | 6152 | ||
6153 | <param id="132" name="Back Fringe" value="0.210" /> | 6153 | <param id="132" name="Back Fringe" value="0.210" /> |
6154 | 6154 | ||
6155 | <param id="133" name="Hair Front" value="0.280" /> | 6155 | <param id="133" name="Hair Front" value="0.280" /> |
6156 | 6156 | ||
6157 | <param id="134" name="Hair Sides" value="0.170" /> | 6157 | <param id="134" name="Hair Sides" value="0.170" /> |
6158 | 6158 | ||
6159 | <param id="135" name="Hair Back" value="0.560" /> | 6159 | <param id="135" name="Hair Back" value="0.560" /> |
6160 | 6160 | ||
6161 | <param id="136" name="Hair Sweep" value="0.800" /> | 6161 | <param id="136" name="Hair Sweep" value="0.800" /> |
6162 | 6162 | ||
6163 | <param id="137" name="Hair Tilt" value="0.500" /> | 6163 | <param id="137" name="Hair Tilt" value="0.500" /> |
6164 | 6164 | ||
6165 | <param id="140" name="Hair_Part_Middle" value="0.000" /> | 6165 | <param id="140" name="Hair_Part_Middle" value="0.000" /> |
6166 | 6166 | ||
6167 | <param id="141" name="Hair_Part_Right" value="0.000" /> | 6167 | <param id="141" name="Hair_Part_Right" value="0.000" /> |
6168 | 6168 | ||
6169 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 6169 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
6170 | 6170 | ||
6171 | <param id="143" name="Hair_Sides_Full" value="-0.040" /> | 6171 | <param id="143" name="Hair_Sides_Full" value="-0.040" /> |
6172 | 6172 | ||
6173 | <param id="166" name="Sideburns" value="0.710" /> | 6173 | <param id="166" name="Sideburns" value="0.710" /> |
6174 | 6174 | ||
6175 | <param id="167" name="Moustache" value="0.000" /> | 6175 | <param id="167" name="Moustache" value="0.000" /> |
6176 | 6176 | ||
6177 | <param id="168" name="Soulpatch" value="0.000" /> | 6177 | <param id="168" name="Soulpatch" value="0.000" /> |
6178 | 6178 | ||
6179 | <param id="169" name="Chin Curtains" value="0.000" /> | 6179 | <param id="169" name="Chin Curtains" value="0.000" /> |
6180 | 6180 | ||
6181 | <param id="177" name="Hair_Rumpled" value="0.230" /> | 6181 | <param id="177" name="Hair_Rumpled" value="0.230" /> |
6182 | 6182 | ||
6183 | <param id="181" name="Hair_Big_Front" value="0.400" /> | 6183 | <param id="181" name="Hair_Big_Front" value="0.400" /> |
6184 | 6184 | ||
6185 | <param id="182" name="Hair_Big_Top" value="0.340" /> | 6185 | <param id="182" name="Hair_Big_Top" value="0.340" /> |
6186 | 6186 | ||
6187 | <param id="183" name="Hair_Big_Back" value="0.380" /> | 6187 | <param id="183" name="Hair_Big_Back" value="0.380" /> |
6188 | 6188 | ||
6189 | <param id="184" name="Hair_Spiked" value="0.000" /> | 6189 | <param id="184" name="Hair_Spiked" value="0.000" /> |
6190 | 6190 | ||
6191 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 6191 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
6192 | 6192 | ||
6193 | <param id="674" name="Hair_Shear_Back" value="0.830" /> | 6193 | <param id="674" name="Hair_Shear_Back" value="0.830" /> |
6194 | 6194 | ||
6195 | <param id="750" name="Eyebrow Density" value="0.850" /> | 6195 | <param id="750" name="Eyebrow Density" value="0.850" /> |
6196 | 6196 | ||
6197 | <param id="752" name="Hair Thickness" value="0.690" /> | 6197 | <param id="752" name="Hair Thickness" value="0.690" /> |
6198 | 6198 | ||
6199 | <param id="754" name="Hair_Taper_Back" value="-0.190" /> | 6199 | <param id="754" name="Hair_Taper_Back" value="-0.190" /> |
6200 | 6200 | ||
6201 | <param id="755" name="Hair_Taper_Front" value="-0.090" /> | 6201 | <param id="755" name="Hair_Taper_Front" value="-0.090" /> |
6202 | 6202 | ||
6203 | <param id="757" name="Lower_Eyebrows" value="-0.120" /> | 6203 | <param id="757" name="Lower_Eyebrows" value="-0.120" /> |
6204 | 6204 | ||
6205 | <param id="762" name="Hair_Shear_Front" value="0.750" /> | 6205 | <param id="762" name="Hair_Shear_Front" value="0.750" /> |
6206 | 6206 | ||
6207 | <param id="763" name="Hair Volume" value="0.660" /> | 6207 | <param id="763" name="Hair Volume" value="0.660" /> |
6208 | 6208 | ||
6209 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 6209 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
6210 | 6210 | ||
6211 | <!-- wearable: eyes --> | 6211 | <!-- wearable: eyes --> |
6212 | <param id="98" name="Eye Lightness" value="0.140" /> | 6212 | <param id="98" name="Eye Lightness" value="0.140" /> |
6213 | 6213 | ||
6214 | <param id="99" name="Eye Color" value="0.000" /> | 6214 | <param id="99" name="Eye Color" value="0.000" /> |
6215 | 6215 | ||
6216 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 6216 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
6217 | </archetype> | 6217 | </archetype> |
6218 | 6218 | ||
6219 | <archetype name="F A Skinny"> | 6219 | <archetype name="F A Skinny"> |
6220 | <!-- wearable: shape --> | 6220 | <!-- wearable: shape --> |
6221 | <param id="1" name="Big_Brow" value="-0.254" /> | 6221 | <param id="1" name="Big_Brow" value="-0.254" /> |
6222 | 6222 | ||
6223 | <param id="2" name="Nose_Big_Out" value="-0.371" /> | 6223 | <param id="2" name="Nose_Big_Out" value="-0.371" /> |
6224 | 6224 | ||
6225 | <param id="4" name="Broad_Nostrils" value="-0.365" /> | 6225 | <param id="4" name="Broad_Nostrils" value="-0.365" /> |
6226 | 6226 | ||
6227 | <param id="5" name="Cleft_Chin" value="-0.100" /> | 6227 | <param id="5" name="Cleft_Chin" value="-0.100" /> |
6228 | 6228 | ||
6229 | <param id="6" name="Bulbous_Nose_Tip" value="0.675" /> | 6229 | <param id="6" name="Bulbous_Nose_Tip" value="0.675" /> |
6230 | 6230 | ||
6231 | <param id="7" name="Weak_Chin" value="0.230" /> | 6231 | <param id="7" name="Weak_Chin" value="0.230" /> |
6232 | 6232 | ||
6233 | <param id="8" name="Double_Chin" value="0.040" /> | 6233 | <param id="8" name="Double_Chin" value="0.040" /> |
6234 | 6234 | ||
6235 | <param id="10" name="Sunken_Cheeks" value="0.390" /> | 6235 | <param id="10" name="Sunken_Cheeks" value="0.390" /> |
6236 | 6236 | ||
6237 | <param id="11" name="Noble_Nose_Bridge" value="0.140" /> | 6237 | <param id="11" name="Noble_Nose_Bridge" value="0.140" /> |
6238 | 6238 | ||
6239 | <param id="12" name="Jowls" value="-0.500" /> | 6239 | <param id="12" name="Jowls" value="-0.500" /> |
6240 | 6240 | ||
6241 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> | 6241 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> |
6242 | 6242 | ||
6243 | <param id="14" name="High_Cheek_Bones" value="0.640" /> | 6243 | <param id="14" name="High_Cheek_Bones" value="0.640" /> |
6244 | 6244 | ||
6245 | <param id="15" name="Ears_Out" value="0.140" /> | 6245 | <param id="15" name="Ears_Out" value="0.140" /> |
6246 | 6246 | ||
6247 | <param id="17" name="Square_Jaw" value="-0.170" /> | 6247 | <param id="17" name="Square_Jaw" value="-0.170" /> |
6248 | 6248 | ||
6249 | <param id="18" name="Puffy_Upper_Cheeks" value="0.860" /> | 6249 | <param id="18" name="Puffy_Upper_Cheeks" value="0.860" /> |
6250 | 6250 | ||
6251 | <param id="19" name="Upturned_Nose_Tip" value="0.375" /> | 6251 | <param id="19" name="Upturned_Nose_Tip" value="0.375" /> |
6252 | 6252 | ||
6253 | <param id="20" name="Bulbous_Nose" value="-0.280" /> | 6253 | <param id="20" name="Bulbous_Nose" value="-0.280" /> |
6254 | 6254 | ||
6255 | <param id="21" name="Upper_Eyelid_Fold" value="1.195" /> | 6255 | <param id="21" name="Upper_Eyelid_Fold" value="1.195" /> |
6256 | 6256 | ||
6257 | <param id="22" name="Attached_Earlobes" value="0.000" /> | 6257 | <param id="22" name="Attached_Earlobes" value="0.000" /> |
6258 | 6258 | ||
6259 | <param id="23" name="Baggy_Eyes" value="-0.500" /> | 6259 | <param id="23" name="Baggy_Eyes" value="-0.500" /> |
6260 | 6260 | ||
6261 | <param id="24" name="Wide_Eyes" value="-0.030" /> | 6261 | <param id="24" name="Wide_Eyes" value="-0.030" /> |
6262 | 6262 | ||
6263 | <param id="25" name="Wide_Lip_Cleft" value="1.247" /> | 6263 | <param id="25" name="Wide_Lip_Cleft" value="1.247" /> |
6264 | 6264 | ||
6265 | <param id="27" name="Wide_Nose_Bridge" value="-0.325" /> | 6265 | <param id="27" name="Wide_Nose_Bridge" value="-0.325" /> |
6266 | 6266 | ||
6267 | <param id="33" name="Height" value="-0.064" /> | 6267 | <param id="33" name="Height" value="-0.064" /> |
6268 | 6268 | ||
6269 | <param id="34" name="Thickness" value="-0.700" /> | 6269 | <param id="34" name="Thickness" value="-0.700" /> |
6270 | 6270 | ||
6271 | <param id="35" name="Big_Ears" value="0.260" /> | 6271 | <param id="35" name="Big_Ears" value="0.260" /> |
6272 | 6272 | ||
6273 | <param id="36" name="Shoulders" value="-1.320" /> | 6273 | <param id="36" name="Shoulders" value="-1.320" /> |
6274 | 6274 | ||
6275 | <param id="37" name="Hip Width" value="-2.060" /> | 6275 | <param id="37" name="Hip Width" value="-2.060" /> |
6276 | 6276 | ||
6277 | <param id="38" name="Torso Length" value="0.280" /> | 6277 | <param id="38" name="Torso Length" value="0.280" /> |
6278 | 6278 | ||
6279 | <param id="80" name="male" value="0.000" /> | 6279 | <param id="80" name="male" value="0.000" /> |
6280 | 6280 | ||
6281 | <param id="105" name="Breast Size" value="0.100" /> | 6281 | <param id="105" name="Breast Size" value="0.100" /> |
6282 | 6282 | ||
6283 | <param id="151" name="Big_Butt_Legs" value="-0.260" /> | 6283 | <param id="151" name="Big_Butt_Legs" value="-0.260" /> |
6284 | 6284 | ||
6285 | <param id="155" name="Lip Width" value="-0.526" /> | 6285 | <param id="155" name="Lip Width" value="-0.526" /> |
6286 | 6286 | ||
6287 | <param id="157" name="Belly Size" value="0.040" /> | 6287 | <param id="157" name="Belly Size" value="0.040" /> |
6288 | 6288 | ||
6289 | <param id="185" name="Deep_Chin" value="-0.460" /> | 6289 | <param id="185" name="Deep_Chin" value="-0.460" /> |
6290 | 6290 | ||
6291 | <param id="193" name="Head Shape" value="0.540" /> | 6291 | <param id="193" name="Head Shape" value="0.540" /> |
6292 | 6292 | ||
6293 | <param id="196" name="Eye Spacing" value="-0.170" /> | 6293 | <param id="196" name="Eye Spacing" value="-0.170" /> |
6294 | 6294 | ||
6295 | <param id="505" name="Lip Thickness" value="0.560" /> | 6295 | <param id="505" name="Lip Thickness" value="0.560" /> |
6296 | 6296 | ||
6297 | <param id="506" name="Mouth_Height" value="-0.480" /> | 6297 | <param id="506" name="Mouth_Height" value="-0.480" /> |
6298 | 6298 | ||
6299 | <param id="507" name="Breast_Gravity" value="0.005" /> | 6299 | <param id="507" name="Breast_Gravity" value="0.005" /> |
6300 | 6300 | ||
6301 | <param id="515" name="Foot_Size" value="0.040" /> | 6301 | <param id="515" name="Foot_Size" value="0.040" /> |
6302 | 6302 | ||
6303 | <param id="517" name="Wide_Nose" value="0.535" /> | 6303 | <param id="517" name="Wide_Nose" value="0.535" /> |
6304 | 6304 | ||
6305 | <param id="518" name="Eyelashes_Long" value="1.230" /> | 6305 | <param id="518" name="Eyelashes_Long" value="1.230" /> |
6306 | 6306 | ||
6307 | <param id="629" name="Forehead Angle" value="0.470" /> | 6307 | <param id="629" name="Forehead Angle" value="0.470" /> |
6308 | 6308 | ||
6309 | <param id="637" name="Body Fat" value="0.000" /> | 6309 | <param id="637" name="Body Fat" value="0.000" /> |
6310 | 6310 | ||
6311 | <param id="646" name="Egg_Head" value="0.310" /> | 6311 | <param id="646" name="Egg_Head" value="0.310" /> |
6312 | 6312 | ||
6313 | <param id="647" name="Squash_Stretch_Head" value="0.565" /> | 6313 | <param id="647" name="Squash_Stretch_Head" value="0.565" /> |
6314 | 6314 | ||
6315 | <param id="649" name="Torso Muscles" value="0.200" /> | 6315 | <param id="649" name="Torso Muscles" value="0.200" /> |
6316 | 6316 | ||
6317 | <param id="650" name="Eyelid_Corner_Up" value="0.700" /> | 6317 | <param id="650" name="Eyelid_Corner_Up" value="0.700" /> |
6318 | 6318 | ||
6319 | <param id="652" name="Leg Muscles" value="0.390" /> | 6319 | <param id="652" name="Leg Muscles" value="0.390" /> |
6320 | 6320 | ||
6321 | <param id="653" name="Tall_Lips" value="0.740" /> | 6321 | <param id="653" name="Tall_Lips" value="0.740" /> |
6322 | 6322 | ||
6323 | <param id="656" name="Crooked_Nose" value="0.000" /> | 6323 | <param id="656" name="Crooked_Nose" value="0.000" /> |
6324 | 6324 | ||
6325 | <param id="659" name="Mouth Corner" value="0.770" /> | 6325 | <param id="659" name="Mouth Corner" value="0.770" /> |
6326 | 6326 | ||
6327 | <param id="662" name="Face Shear" value="0.500" /> | 6327 | <param id="662" name="Face Shear" value="0.500" /> |
6328 | 6328 | ||
6329 | <param id="663" name="Shift_Mouth" value="-0.080" /> | 6329 | <param id="663" name="Shift_Mouth" value="-0.080" /> |
6330 | 6330 | ||
6331 | <param id="664" name="Pop_Eye" value="0.052" /> | 6331 | <param id="664" name="Pop_Eye" value="0.052" /> |
6332 | 6332 | ||
6333 | <param id="665" name="Jaw_Jut" value="-0.600" /> | 6333 | <param id="665" name="Jaw_Jut" value="-0.600" /> |
6334 | 6334 | ||
6335 | <param id="675" name="Hand Size" value="-0.216" /> | 6335 | <param id="675" name="Hand Size" value="-0.216" /> |
6336 | 6336 | ||
6337 | <param id="676" name="Love_Handles" value="-0.340" /> | 6337 | <param id="676" name="Love_Handles" value="-0.340" /> |
6338 | 6338 | ||
6339 | <param id="678" name="Torso Muscles" value="0.790" /> | 6339 | <param id="678" name="Torso Muscles" value="0.790" /> |
6340 | 6340 | ||
6341 | <param id="682" name="Head Size" value="0.500" /> | 6341 | <param id="682" name="Head Size" value="0.500" /> |
6342 | 6342 | ||
6343 | <param id="683" name="Neck Thickness" value="-0.310" /> | 6343 | <param id="683" name="Neck Thickness" value="-0.310" /> |
6344 | 6344 | ||
6345 | <param id="684" name="Breast_Female_Clevage" value="0.292" /> | 6345 | <param id="684" name="Breast_Female_Clevage" value="0.292" /> |
6346 | 6346 | ||
6347 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> | 6347 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> |
6348 | 6348 | ||
6349 | <param id="690" name="Eye Size" value="0.620" /> | 6349 | <param id="690" name="Eye Size" value="0.620" /> |
6350 | 6350 | ||
6351 | <param id="692" name="Leg Length" value="0.160" /> | 6351 | <param id="692" name="Leg Length" value="0.160" /> |
6352 | 6352 | ||
6353 | <param id="693" name="Arm Length" value="0.220" /> | 6353 | <param id="693" name="Arm Length" value="0.220" /> |
6354 | 6354 | ||
6355 | <param id="753" name="Saddlebags" value="0.865" /> | 6355 | <param id="753" name="Saddlebags" value="0.865" /> |
6356 | 6356 | ||
6357 | <param id="756" name="Neck Length" value="-0.260" /> | 6357 | <param id="756" name="Neck Length" value="-0.260" /> |
6358 | 6358 | ||
6359 | <param id="758" name="Lower_Bridge_Nose" value="0.180" /> | 6359 | <param id="758" name="Lower_Bridge_Nose" value="0.180" /> |
6360 | 6360 | ||
6361 | <param id="759" name="Low_Septum_Nose" value="0.175" /> | 6361 | <param id="759" name="Low_Septum_Nose" value="0.175" /> |
6362 | 6362 | ||
6363 | <param id="760" name="Jaw_Angle" value="0.496" /> | 6363 | <param id="760" name="Jaw_Angle" value="0.496" /> |
6364 | 6364 | ||
6365 | <param id="764" name="Lip_Cleft_Deep" value="0.061" /> | 6365 | <param id="764" name="Lip_Cleft_Deep" value="0.061" /> |
6366 | 6366 | ||
6367 | <param id="765" name="Puffy_Lower_Lids" value="-0.300" /> | 6367 | <param id="765" name="Puffy_Lower_Lids" value="-0.300" /> |
6368 | 6368 | ||
6369 | <param id="769" name="Eye Depth" value="0.710" /> | 6369 | <param id="769" name="Eye Depth" value="0.710" /> |
6370 | 6370 | ||
6371 | <param id="773" name="Head Length" value="0.390" /> | 6371 | <param id="773" name="Head Length" value="0.390" /> |
6372 | 6372 | ||
6373 | <!-- wearable: skin --> | 6373 | <!-- wearable: skin --> |
6374 | <param id="108" name="Rainbow Color" value="0.000" /> | 6374 | <param id="108" name="Rainbow Color" value="0.000" /> |
6375 | 6375 | ||
6376 | <param id="110" name="Red Skin" value="0.000" /> | 6376 | <param id="110" name="Red Skin" value="0.000" /> |
6377 | 6377 | ||
6378 | <param id="111" name="Pigment" value="0.150" /> | 6378 | <param id="111" name="Pigment" value="0.150" /> |
6379 | 6379 | ||
6380 | <param id="116" name="Rosy Complexion" value="0.000" /> | 6380 | <param id="116" name="Rosy Complexion" value="0.000" /> |
6381 | 6381 | ||
6382 | <param id="117" name="Lip Pinkness" value="0.000" /> | 6382 | <param id="117" name="Lip Pinkness" value="0.000" /> |
6383 | 6383 | ||
6384 | <param id="150" name="Body Definition" value="0.990" /> | 6384 | <param id="150" name="Body Definition" value="0.990" /> |
6385 | 6385 | ||
6386 | <param id="162" name="Facial Definition" value="0.070" /> | 6386 | <param id="162" name="Facial Definition" value="0.070" /> |
6387 | 6387 | ||
6388 | <param id="163" name="Wrinkles" value="0.000" /> | 6388 | <param id="163" name="Wrinkles" value="0.000" /> |
6389 | 6389 | ||
6390 | <param id="165" name="Freckles" value="0.000" /> | 6390 | <param id="165" name="Freckles" value="0.000" /> |
6391 | 6391 | ||
6392 | <param id="700" name="Lipstick Color" value="0.250" /> | 6392 | <param id="700" name="Lipstick Color" value="0.250" /> |
6393 | 6393 | ||
6394 | <param id="701" name="Lipstick" value="0.000" /> | 6394 | <param id="701" name="Lipstick" value="0.000" /> |
6395 | 6395 | ||
6396 | <param id="702" name="Lipgloss" value="0.000" /> | 6396 | <param id="702" name="Lipgloss" value="0.000" /> |
6397 | 6397 | ||
6398 | <param id="703" name="Eyeliner" value="0.000" /> | 6398 | <param id="703" name="Eyeliner" value="0.000" /> |
6399 | 6399 | ||
6400 | <param id="704" name="Blush" value="0.000" /> | 6400 | <param id="704" name="Blush" value="0.000" /> |
6401 | 6401 | ||
6402 | <param id="705" name="Blush Color" value="0.500" /> | 6402 | <param id="705" name="Blush Color" value="0.500" /> |
6403 | 6403 | ||
6404 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 6404 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
6405 | 6405 | ||
6406 | <param id="707" name="Outer Shadow" value="0.000" /> | 6406 | <param id="707" name="Outer Shadow" value="0.000" /> |
6407 | 6407 | ||
6408 | <param id="708" name="Out Shdw Color" value="0.000" /> | 6408 | <param id="708" name="Out Shdw Color" value="0.000" /> |
6409 | 6409 | ||
6410 | <param id="709" name="Inner Shadow" value="0.000" /> | 6410 | <param id="709" name="Inner Shadow" value="0.000" /> |
6411 | 6411 | ||
6412 | <param id="710" name="Nail Polish" value="0.000" /> | 6412 | <param id="710" name="Nail Polish" value="0.000" /> |
6413 | 6413 | ||
6414 | <param id="711" name="Blush Opacity" value="0.500" /> | 6414 | <param id="711" name="Blush Opacity" value="0.500" /> |
6415 | 6415 | ||
6416 | <param id="712" name="In Shdw Color" value="0.000" /> | 6416 | <param id="712" name="In Shdw Color" value="0.000" /> |
6417 | 6417 | ||
6418 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 6418 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
6419 | 6419 | ||
6420 | <param id="714" name="Eyeliner Color" value="0.000" /> | 6420 | <param id="714" name="Eyeliner Color" value="0.000" /> |
6421 | 6421 | ||
6422 | <param id="715" name="Nail Polish Color" value="0.000" /> | 6422 | <param id="715" name="Nail Polish Color" value="0.000" /> |
6423 | 6423 | ||
6424 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 6424 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
6425 | 6425 | ||
6426 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 6426 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
6427 | 6427 | ||
6428 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 6428 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
6429 | 6429 | ||
6430 | <!-- wearable: hair --> | 6430 | <!-- wearable: hair --> |
6431 | <param id="16" name="Pointy_Eyebrows" value="0.205" /> | 6431 | <param id="16" name="Pointy_Eyebrows" value="0.205" /> |
6432 | 6432 | ||
6433 | <param id="31" name="Arced_Eyebrows" value="0.450" /> | 6433 | <param id="31" name="Arced_Eyebrows" value="0.450" /> |
6434 | 6434 | ||
6435 | <param id="112" name="Rainbow Color" value="0.000" /> | 6435 | <param id="112" name="Rainbow Color" value="0.000" /> |
6436 | 6436 | ||
6437 | <param id="113" name="Red Hair" value="0.310" /> | 6437 | <param id="113" name="Red Hair" value="0.310" /> |
6438 | 6438 | ||
6439 | <param id="114" name="Blonde Hair" value="0.000" /> | 6439 | <param id="114" name="Blonde Hair" value="0.000" /> |
6440 | 6440 | ||
6441 | <param id="115" name="White Hair" value="0.000" /> | 6441 | <param id="115" name="White Hair" value="0.000" /> |
6442 | 6442 | ||
6443 | <param id="119" name="Eyebrow Size" value="0.350" /> | 6443 | <param id="119" name="Eyebrow Size" value="0.350" /> |
6444 | 6444 | ||
6445 | <param id="130" name="Front Fringe" value="0.560" /> | 6445 | <param id="130" name="Front Fringe" value="0.560" /> |
6446 | 6446 | ||
6447 | <param id="131" name="Side Fringe" value="0.730" /> | 6447 | <param id="131" name="Side Fringe" value="0.730" /> |
6448 | 6448 | ||
6449 | <param id="132" name="Back Fringe" value="0.510" /> | 6449 | <param id="132" name="Back Fringe" value="0.510" /> |
6450 | 6450 | ||
6451 | <param id="133" name="Hair Front" value="0.140" /> | 6451 | <param id="133" name="Hair Front" value="0.140" /> |
6452 | 6452 | ||
6453 | <param id="134" name="Hair Sides" value="0.000" /> | 6453 | <param id="134" name="Hair Sides" value="0.000" /> |
6454 | 6454 | ||
6455 | <param id="135" name="Hair Back" value="0.920" /> | 6455 | <param id="135" name="Hair Back" value="0.920" /> |
6456 | 6456 | ||
6457 | <param id="136" name="Hair Sweep" value="0.520" /> | 6457 | <param id="136" name="Hair Sweep" value="0.520" /> |
6458 | 6458 | ||
6459 | <param id="137" name="Hair Tilt" value="0.500" /> | 6459 | <param id="137" name="Hair Tilt" value="0.500" /> |
6460 | 6460 | ||
6461 | <param id="140" name="Hair_Part_Middle" value="1.880" /> | 6461 | <param id="140" name="Hair_Part_Middle" value="1.880" /> |
6462 | 6462 | ||
6463 | <param id="141" name="Hair_Part_Right" value="0.000" /> | 6463 | <param id="141" name="Hair_Part_Right" value="0.000" /> |
6464 | 6464 | ||
6465 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 6465 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
6466 | 6466 | ||
6467 | <param id="143" name="Hair_Sides_Full" value="-0.590" /> | 6467 | <param id="143" name="Hair_Sides_Full" value="-0.590" /> |
6468 | 6468 | ||
6469 | <param id="166" name="Sideburns" value="0.710" /> | 6469 | <param id="166" name="Sideburns" value="0.710" /> |
6470 | 6470 | ||
6471 | <param id="167" name="Moustache" value="0.000" /> | 6471 | <param id="167" name="Moustache" value="0.000" /> |
6472 | 6472 | ||
6473 | <param id="168" name="Soulpatch" value="0.000" /> | 6473 | <param id="168" name="Soulpatch" value="0.000" /> |
6474 | 6474 | ||
6475 | <param id="169" name="Chin Curtains" value="0.000" /> | 6475 | <param id="169" name="Chin Curtains" value="0.000" /> |
6476 | 6476 | ||
6477 | <param id="177" name="Hair_Rumpled" value="0.000" /> | 6477 | <param id="177" name="Hair_Rumpled" value="0.000" /> |
6478 | 6478 | ||
6479 | <param id="181" name="Hair_Big_Front" value="-0.160" /> | 6479 | <param id="181" name="Hair_Big_Front" value="-0.160" /> |
6480 | 6480 | ||
6481 | <param id="182" name="Hair_Big_Top" value="0.500" /> | 6481 | <param id="182" name="Hair_Big_Top" value="0.500" /> |
6482 | 6482 | ||
6483 | <param id="183" name="Hair_Big_Back" value="0.260" /> | 6483 | <param id="183" name="Hair_Big_Back" value="0.260" /> |
6484 | 6484 | ||
6485 | <param id="184" name="Hair_Spiked" value="0.000" /> | 6485 | <param id="184" name="Hair_Spiked" value="0.000" /> |
6486 | 6486 | ||
6487 | <param id="192" name="Bangs_Part_Middle" value="0.530" /> | 6487 | <param id="192" name="Bangs_Part_Middle" value="0.530" /> |
6488 | 6488 | ||
6489 | <param id="674" name="Hair_Shear_Back" value="1.500" /> | 6489 | <param id="674" name="Hair_Shear_Back" value="1.500" /> |
6490 | 6490 | ||
6491 | <param id="750" name="Eyebrow Density" value="0.810" /> | 6491 | <param id="750" name="Eyebrow Density" value="0.810" /> |
6492 | 6492 | ||
6493 | <param id="752" name="Hair Thickness" value="0.690" /> | 6493 | <param id="752" name="Hair Thickness" value="0.690" /> |
6494 | 6494 | ||
6495 | <param id="754" name="Hair_Taper_Back" value="-0.940" /> | 6495 | <param id="754" name="Hair_Taper_Back" value="-0.940" /> |
6496 | 6496 | ||
6497 | <param id="755" name="Hair_Taper_Front" value="0.480" /> | 6497 | <param id="755" name="Hair_Taper_Front" value="0.480" /> |
6498 | 6498 | ||
6499 | <param id="757" name="Lower_Eyebrows" value="-0.440" /> | 6499 | <param id="757" name="Lower_Eyebrows" value="-0.440" /> |
6500 | 6500 | ||
6501 | <param id="762" name="Hair_Shear_Front" value="0.210" /> | 6501 | <param id="762" name="Hair_Shear_Front" value="0.210" /> |
6502 | 6502 | ||
6503 | <param id="763" name="Hair Volume" value="0.770" /> | 6503 | <param id="763" name="Hair Volume" value="0.770" /> |
6504 | 6504 | ||
6505 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 6505 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
6506 | 6506 | ||
6507 | <!-- wearable: eyes --> | 6507 | <!-- wearable: eyes --> |
6508 | <param id="98" name="Eye Lightness" value="0.000" /> | 6508 | <param id="98" name="Eye Lightness" value="0.000" /> |
6509 | 6509 | ||
6510 | <param id="99" name="Eye Color" value="0.040" /> | 6510 | <param id="99" name="Eye Color" value="0.040" /> |
6511 | 6511 | ||
6512 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 6512 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
6513 | </archetype> | 6513 | </archetype> |
6514 | 6514 | ||
6515 | <archetype name="F A Muscle"> | 6515 | <archetype name="F A Muscle"> |
6516 | <!-- wearable: shape --> | 6516 | <!-- wearable: shape --> |
6517 | <param id="1" name="Big_Brow" value="0.574" /> | 6517 | <param id="1" name="Big_Brow" value="0.574" /> |
6518 | 6518 | ||
6519 | <param id="2" name="Nose_Big_Out" value="0.586" /> | 6519 | <param id="2" name="Nose_Big_Out" value="0.586" /> |
6520 | 6520 | ||
6521 | <param id="4" name="Broad_Nostrils" value="-0.500" /> | 6521 | <param id="4" name="Broad_Nostrils" value="-0.500" /> |
6522 | 6522 | ||
6523 | <param id="5" name="Cleft_Chin" value="-0.100" /> | 6523 | <param id="5" name="Cleft_Chin" value="-0.100" /> |
6524 | 6524 | ||
6525 | <param id="6" name="Bulbous_Nose_Tip" value="-0.079" /> | 6525 | <param id="6" name="Bulbous_Nose_Tip" value="-0.079" /> |
6526 | 6526 | ||
6527 | <param id="7" name="Weak_Chin" value="0.320" /> | 6527 | <param id="7" name="Weak_Chin" value="0.320" /> |
6528 | 6528 | ||
6529 | <param id="8" name="Double_Chin" value="0.440" /> | 6529 | <param id="8" name="Double_Chin" value="0.440" /> |
6530 | 6530 | ||
6531 | <param id="10" name="Sunken_Cheeks" value="-0.105" /> | 6531 | <param id="10" name="Sunken_Cheeks" value="-0.105" /> |
6532 | 6532 | ||
6533 | <param id="11" name="Noble_Nose_Bridge" value="0.240" /> | 6533 | <param id="11" name="Noble_Nose_Bridge" value="0.240" /> |
6534 | 6534 | ||
6535 | <param id="12" name="Jowls" value="0.340" /> | 6535 | <param id="12" name="Jowls" value="0.340" /> |
6536 | 6536 | ||
6537 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> | 6537 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> |
6538 | 6538 | ||
6539 | <param id="14" name="High_Cheek_Bones" value="0.880" /> | 6539 | <param id="14" name="High_Cheek_Bones" value="0.880" /> |
6540 | 6540 | ||
6541 | <param id="15" name="Ears_Out" value="0.340" /> | 6541 | <param id="15" name="Ears_Out" value="0.340" /> |
6542 | 6542 | ||
6543 | <param id="17" name="Square_Jaw" value="-0.455" /> | 6543 | <param id="17" name="Square_Jaw" value="-0.455" /> |
6544 | 6544 | ||
6545 | <param id="18" name="Puffy_Upper_Cheeks" value="0.860" /> | 6545 | <param id="18" name="Puffy_Upper_Cheeks" value="0.860" /> |
6546 | 6546 | ||
6547 | <param id="19" name="Upturned_Nose_Tip" value="-0.350" /> | 6547 | <param id="19" name="Upturned_Nose_Tip" value="-0.350" /> |
6548 | 6548 | ||
6549 | <param id="20" name="Bulbous_Nose" value="-0.500" /> | 6549 | <param id="20" name="Bulbous_Nose" value="-0.500" /> |
6550 | 6550 | ||
6551 | <param id="21" name="Upper_Eyelid_Fold" value="1.300" /> | 6551 | <param id="21" name="Upper_Eyelid_Fold" value="1.300" /> |
6552 | 6552 | ||
6553 | <param id="22" name="Attached_Earlobes" value="1.000" /> | 6553 | <param id="22" name="Attached_Earlobes" value="1.000" /> |
6554 | 6554 | ||
6555 | <param id="23" name="Baggy_Eyes" value="0.340" /> | 6555 | <param id="23" name="Baggy_Eyes" value="0.340" /> |
6556 | 6556 | ||
6557 | <param id="24" name="Wide_Eyes" value="-0.380" /> | 6557 | <param id="24" name="Wide_Eyes" value="-0.380" /> |
6558 | 6558 | ||
6559 | <param id="25" name="Wide_Lip_Cleft" value="0.327" /> | 6559 | <param id="25" name="Wide_Lip_Cleft" value="0.327" /> |
6560 | 6560 | ||
6561 | <param id="27" name="Wide_Nose_Bridge" value="-1.125" /> | 6561 | <param id="27" name="Wide_Nose_Bridge" value="-1.125" /> |
6562 | 6562 | ||
6563 | <param id="33" name="Height" value="0.194" /> | 6563 | <param id="33" name="Height" value="0.194" /> |
6564 | 6564 | ||
6565 | <param id="34" name="Thickness" value="-0.018" /> | 6565 | <param id="34" name="Thickness" value="-0.018" /> |
6566 | 6566 | ||
6567 | <param id="35" name="Big_Ears" value="0.560" /> | 6567 | <param id="35" name="Big_Ears" value="0.560" /> |
6568 | 6568 | ||
6569 | <param id="36" name="Shoulders" value="-0.456" /> | 6569 | <param id="36" name="Shoulders" value="-0.456" /> |
6570 | 6570 | ||
6571 | <param id="37" name="Hip Width" value="-1.760" /> | 6571 | <param id="37" name="Hip Width" value="-1.760" /> |
6572 | 6572 | ||
6573 | <param id="38" name="Torso Length" value="0.400" /> | 6573 | <param id="38" name="Torso Length" value="0.400" /> |
6574 | 6574 | ||
6575 | <param id="80" name="male" value="0.000" /> | 6575 | <param id="80" name="male" value="0.000" /> |
6576 | 6576 | ||
6577 | <param id="105" name="Breast Size" value="0.240" /> | 6577 | <param id="105" name="Breast Size" value="0.240" /> |
6578 | 6578 | ||
6579 | <param id="151" name="Big_Butt_Legs" value="-0.134" /> | 6579 | <param id="151" name="Big_Butt_Legs" value="-0.134" /> |
6580 | 6580 | ||
6581 | <param id="155" name="Lip Width" value="-0.900" /> | 6581 | <param id="155" name="Lip Width" value="-0.900" /> |
6582 | 6582 | ||
6583 | <param id="157" name="Belly Size" value="0.020" /> | 6583 | <param id="157" name="Belly Size" value="0.020" /> |
6584 | 6584 | ||
6585 | <param id="185" name="Deep_Chin" value="0.500" /> | 6585 | <param id="185" name="Deep_Chin" value="0.500" /> |
6586 | 6586 | ||
6587 | <param id="193" name="Head Shape" value="0.360" /> | 6587 | <param id="193" name="Head Shape" value="0.360" /> |
6588 | 6588 | ||
6589 | <param id="196" name="Eye Spacing" value="-0.500" /> | 6589 | <param id="196" name="Eye Spacing" value="-0.500" /> |
6590 | 6590 | ||
6591 | <param id="505" name="Lip Thickness" value="0.280" /> | 6591 | <param id="505" name="Lip Thickness" value="0.280" /> |
6592 | 6592 | ||
6593 | <param id="506" name="Mouth_Height" value="0.080" /> | 6593 | <param id="506" name="Mouth_Height" value="0.080" /> |
6594 | 6594 | ||
6595 | <param id="507" name="Breast_Gravity" value="-0.520" /> | 6595 | <param id="507" name="Breast_Gravity" value="-0.520" /> |
6596 | 6596 | ||
6597 | <param id="515" name="Foot_Size" value="0.280" /> | 6597 | <param id="515" name="Foot_Size" value="0.280" /> |
6598 | 6598 | ||
6599 | <param id="517" name="Wide_Nose" value="0.265" /> | 6599 | <param id="517" name="Wide_Nose" value="0.265" /> |
6600 | 6600 | ||
6601 | <param id="518" name="Eyelashes_Long" value="0.006" /> | 6601 | <param id="518" name="Eyelashes_Long" value="0.006" /> |
6602 | 6602 | ||
6603 | <param id="629" name="Forehead Angle" value="0.850" /> | 6603 | <param id="629" name="Forehead Angle" value="0.850" /> |
6604 | 6604 | ||
6605 | <param id="637" name="Body Fat" value="0.000" /> | 6605 | <param id="637" name="Body Fat" value="0.000" /> |
6606 | 6606 | ||
6607 | <param id="646" name="Egg_Head" value="-0.334" /> | 6607 | <param id="646" name="Egg_Head" value="-0.334" /> |
6608 | 6608 | ||
6609 | <param id="647" name="Squash_Stretch_Head" value="-0.395" /> | 6609 | <param id="647" name="Squash_Stretch_Head" value="-0.395" /> |
6610 | 6610 | ||
6611 | <param id="649" name="Torso Muscles" value="0.510" /> | 6611 | <param id="649" name="Torso Muscles" value="0.510" /> |
6612 | 6612 | ||
6613 | <param id="650" name="Eyelid_Corner_Up" value="-0.375" /> | 6613 | <param id="650" name="Eyelid_Corner_Up" value="-0.375" /> |
6614 | 6614 | ||
6615 | <param id="652" name="Leg Muscles" value="0.750" /> | 6615 | <param id="652" name="Leg Muscles" value="0.750" /> |
6616 | 6616 | ||
6617 | <param id="653" name="Tall_Lips" value="1.460" /> | 6617 | <param id="653" name="Tall_Lips" value="1.460" /> |
6618 | 6618 | ||
6619 | <param id="656" name="Crooked_Nose" value="0.000" /> | 6619 | <param id="656" name="Crooked_Nose" value="0.000" /> |
6620 | 6620 | ||
6621 | <param id="659" name="Mouth Corner" value="0.580" /> | 6621 | <param id="659" name="Mouth Corner" value="0.580" /> |
6622 | 6622 | ||
6623 | <param id="662" name="Face Shear" value="0.500" /> | 6623 | <param id="662" name="Face Shear" value="0.500" /> |
6624 | 6624 | ||
6625 | <param id="663" name="Shift_Mouth" value="-0.080" /> | 6625 | <param id="663" name="Shift_Mouth" value="-0.080" /> |
6626 | 6626 | ||
6627 | <param id="664" name="Pop_Eye" value="0.052" /> | 6627 | <param id="664" name="Pop_Eye" value="0.052" /> |
6628 | 6628 | ||
6629 | <param id="665" name="Jaw_Jut" value="-0.080" /> | 6629 | <param id="665" name="Jaw_Jut" value="-0.080" /> |
6630 | 6630 | ||
6631 | <param id="675" name="Hand Size" value="-0.168" /> | 6631 | <param id="675" name="Hand Size" value="-0.168" /> |
6632 | 6632 | ||
6633 | <param id="676" name="Love_Handles" value="0.110" /> | 6633 | <param id="676" name="Love_Handles" value="0.110" /> |
6634 | 6634 | ||
6635 | <param id="678" name="Torso Muscles" value="0.790" /> | 6635 | <param id="678" name="Torso Muscles" value="0.790" /> |
6636 | 6636 | ||
6637 | <param id="682" name="Head Size" value="0.470" /> | 6637 | <param id="682" name="Head Size" value="0.470" /> |
6638 | 6638 | ||
6639 | <param id="683" name="Neck Thickness" value="-0.148" /> | 6639 | <param id="683" name="Neck Thickness" value="-0.148" /> |
6640 | 6640 | ||
6641 | <param id="684" name="Breast_Female_Clevage" value="0.436" /> | 6641 | <param id="684" name="Breast_Female_Clevage" value="0.436" /> |
6642 | 6642 | ||
6643 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> | 6643 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> |
6644 | 6644 | ||
6645 | <param id="690" name="Eye Size" value="0.620" /> | 6645 | <param id="690" name="Eye Size" value="0.620" /> |
6646 | 6646 | ||
6647 | <param id="692" name="Leg Length" value="0.260" /> | 6647 | <param id="692" name="Leg Length" value="0.260" /> |
6648 | 6648 | ||
6649 | <param id="693" name="Arm Length" value="0.420" /> | 6649 | <param id="693" name="Arm Length" value="0.420" /> |
6650 | 6650 | ||
6651 | <param id="753" name="Saddlebags" value="0.340" /> | 6651 | <param id="753" name="Saddlebags" value="0.340" /> |
6652 | 6652 | ||
6653 | <param id="756" name="Neck Length" value="-0.360" /> | 6653 | <param id="756" name="Neck Length" value="-0.360" /> |
6654 | 6654 | ||
6655 | <param id="758" name="Lower_Bridge_Nose" value="0.510" /> | 6655 | <param id="758" name="Lower_Bridge_Nose" value="0.510" /> |
6656 | 6656 | ||
6657 | <param id="759" name="Low_Septum_Nose" value="-0.625" /> | 6657 | <param id="759" name="Low_Septum_Nose" value="-0.625" /> |
6658 | 6658 | ||
6659 | <param id="760" name="Jaw_Angle" value="0.816" /> | 6659 | <param id="760" name="Jaw_Angle" value="0.816" /> |
6660 | 6660 | ||
6661 | <param id="764" name="Lip_Cleft_Deep" value="-0.500" /> | 6661 | <param id="764" name="Lip_Cleft_Deep" value="-0.500" /> |
6662 | 6662 | ||
6663 | <param id="765" name="Puffy_Lower_Lids" value="0.064" /> | 6663 | <param id="765" name="Puffy_Lower_Lids" value="0.064" /> |
6664 | 6664 | ||
6665 | <param id="769" name="Eye Depth" value="0.720" /> | 6665 | <param id="769" name="Eye Depth" value="0.720" /> |
6666 | 6666 | ||
6667 | <param id="773" name="Head Length" value="0.330" /> | 6667 | <param id="773" name="Head Length" value="0.330" /> |
6668 | 6668 | ||
6669 | <!-- wearable: skin --> | 6669 | <!-- wearable: skin --> |
6670 | <param id="108" name="Rainbow Color" value="0.000" /> | 6670 | <param id="108" name="Rainbow Color" value="0.000" /> |
6671 | 6671 | ||
6672 | <param id="110" name="Red Skin" value="0.011" /> | 6672 | <param id="110" name="Red Skin" value="0.011" /> |
6673 | 6673 | ||
6674 | <param id="111" name="Pigment" value="0.370" /> | 6674 | <param id="111" name="Pigment" value="0.370" /> |
6675 | 6675 | ||
6676 | <param id="116" name="Rosy Complexion" value="0.000" /> | 6676 | <param id="116" name="Rosy Complexion" value="0.000" /> |
6677 | 6677 | ||
6678 | <param id="117" name="Lip Pinkness" value="0.000" /> | 6678 | <param id="117" name="Lip Pinkness" value="0.000" /> |
6679 | 6679 | ||
6680 | <param id="150" name="Body Definition" value="1.000" /> | 6680 | <param id="150" name="Body Definition" value="1.000" /> |
6681 | 6681 | ||
6682 | <param id="162" name="Facial Definition" value="0.070" /> | 6682 | <param id="162" name="Facial Definition" value="0.070" /> |
6683 | 6683 | ||
6684 | <param id="163" name="Wrinkles" value="0.000" /> | 6684 | <param id="163" name="Wrinkles" value="0.000" /> |
6685 | 6685 | ||
6686 | <param id="165" name="Freckles" value="0.000" /> | 6686 | <param id="165" name="Freckles" value="0.000" /> |
6687 | 6687 | ||
6688 | <param id="700" name="Lipstick Color" value="0.250" /> | 6688 | <param id="700" name="Lipstick Color" value="0.250" /> |
6689 | 6689 | ||
6690 | <param id="701" name="Lipstick" value="0.000" /> | 6690 | <param id="701" name="Lipstick" value="0.000" /> |
6691 | 6691 | ||
6692 | <param id="702" name="Lipgloss" value="0.000" /> | 6692 | <param id="702" name="Lipgloss" value="0.000" /> |
6693 | 6693 | ||
6694 | <param id="703" name="Eyeliner" value="0.000" /> | 6694 | <param id="703" name="Eyeliner" value="0.000" /> |
6695 | 6695 | ||
6696 | <param id="704" name="Blush" value="0.000" /> | 6696 | <param id="704" name="Blush" value="0.000" /> |
6697 | 6697 | ||
6698 | <param id="705" name="Blush Color" value="0.500" /> | 6698 | <param id="705" name="Blush Color" value="0.500" /> |
6699 | 6699 | ||
6700 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 6700 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
6701 | 6701 | ||
6702 | <param id="707" name="Outer Shadow" value="0.000" /> | 6702 | <param id="707" name="Outer Shadow" value="0.000" /> |
6703 | 6703 | ||
6704 | <param id="708" name="Out Shdw Color" value="0.000" /> | 6704 | <param id="708" name="Out Shdw Color" value="0.000" /> |
6705 | 6705 | ||
6706 | <param id="709" name="Inner Shadow" value="0.000" /> | 6706 | <param id="709" name="Inner Shadow" value="0.000" /> |
6707 | 6707 | ||
6708 | <param id="710" name="Nail Polish" value="0.000" /> | 6708 | <param id="710" name="Nail Polish" value="0.000" /> |
6709 | 6709 | ||
6710 | <param id="711" name="Blush Opacity" value="0.500" /> | 6710 | <param id="711" name="Blush Opacity" value="0.500" /> |
6711 | 6711 | ||
6712 | <param id="712" name="In Shdw Color" value="0.000" /> | 6712 | <param id="712" name="In Shdw Color" value="0.000" /> |
6713 | 6713 | ||
6714 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 6714 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
6715 | 6715 | ||
6716 | <param id="714" name="Eyeliner Color" value="0.000" /> | 6716 | <param id="714" name="Eyeliner Color" value="0.000" /> |
6717 | 6717 | ||
6718 | <param id="715" name="Nail Polish Color" value="0.000" /> | 6718 | <param id="715" name="Nail Polish Color" value="0.000" /> |
6719 | 6719 | ||
6720 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 6720 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
6721 | 6721 | ||
6722 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 6722 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
6723 | 6723 | ||
6724 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 6724 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
6725 | 6725 | ||
6726 | <!-- wearable: hair --> | 6726 | <!-- wearable: hair --> |
6727 | <param id="16" name="Pointy_Eyebrows" value="0.610" /> | 6727 | <param id="16" name="Pointy_Eyebrows" value="0.610" /> |
6728 | 6728 | ||
6729 | <param id="31" name="Arced_Eyebrows" value="0.160" /> | 6729 | <param id="31" name="Arced_Eyebrows" value="0.160" /> |
6730 | 6730 | ||
6731 | <param id="112" name="Rainbow Color" value="0.000" /> | 6731 | <param id="112" name="Rainbow Color" value="0.000" /> |
6732 | 6732 | ||
6733 | <param id="113" name="Red Hair" value="0.310" /> | 6733 | <param id="113" name="Red Hair" value="0.310" /> |
6734 | 6734 | ||
6735 | <param id="114" name="Blonde Hair" value="0.000" /> | 6735 | <param id="114" name="Blonde Hair" value="0.000" /> |
6736 | 6736 | ||
6737 | <param id="115" name="White Hair" value="0.000" /> | 6737 | <param id="115" name="White Hair" value="0.000" /> |
6738 | 6738 | ||
6739 | <param id="119" name="Eyebrow Size" value="0.260" /> | 6739 | <param id="119" name="Eyebrow Size" value="0.260" /> |
6740 | 6740 | ||
6741 | <param id="130" name="Front Fringe" value="0.650" /> | 6741 | <param id="130" name="Front Fringe" value="0.650" /> |
6742 | 6742 | ||
6743 | <param id="131" name="Side Fringe" value="0.990" /> | 6743 | <param id="131" name="Side Fringe" value="0.990" /> |
6744 | 6744 | ||
6745 | <param id="132" name="Back Fringe" value="0.960" /> | 6745 | <param id="132" name="Back Fringe" value="0.960" /> |
6746 | 6746 | ||
6747 | <param id="133" name="Hair Front" value="0.000" /> | 6747 | <param id="133" name="Hair Front" value="0.000" /> |
6748 | 6748 | ||
6749 | <param id="134" name="Hair Sides" value="0.000" /> | 6749 | <param id="134" name="Hair Sides" value="0.000" /> |
6750 | 6750 | ||
6751 | <param id="135" name="Hair Back" value="0.530" /> | 6751 | <param id="135" name="Hair Back" value="0.530" /> |
6752 | 6752 | ||
6753 | <param id="136" name="Hair Sweep" value="0.630" /> | 6753 | <param id="136" name="Hair Sweep" value="0.630" /> |
6754 | 6754 | ||
6755 | <param id="137" name="Hair Tilt" value="0.500" /> | 6755 | <param id="137" name="Hair Tilt" value="0.500" /> |
6756 | 6756 | ||
6757 | <param id="140" name="Hair_Part_Middle" value="0.000" /> | 6757 | <param id="140" name="Hair_Part_Middle" value="0.000" /> |
6758 | 6758 | ||
6759 | <param id="141" name="Hair_Part_Right" value="0.000" /> | 6759 | <param id="141" name="Hair_Part_Right" value="0.000" /> |
6760 | 6760 | ||
6761 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 6761 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
6762 | 6762 | ||
6763 | <param id="143" name="Hair_Sides_Full" value="-0.590" /> | 6763 | <param id="143" name="Hair_Sides_Full" value="-0.590" /> |
6764 | 6764 | ||
6765 | <param id="166" name="Sideburns" value="0.710" /> | 6765 | <param id="166" name="Sideburns" value="0.710" /> |
6766 | 6766 | ||
6767 | <param id="167" name="Moustache" value="0.000" /> | 6767 | <param id="167" name="Moustache" value="0.000" /> |
6768 | 6768 | ||
6769 | <param id="168" name="Soulpatch" value="0.000" /> | 6769 | <param id="168" name="Soulpatch" value="0.000" /> |
6770 | 6770 | ||
6771 | <param id="169" name="Chin Curtains" value="0.000" /> | 6771 | <param id="169" name="Chin Curtains" value="0.000" /> |
6772 | 6772 | ||
6773 | <param id="177" name="Hair_Rumpled" value="0.000" /> | 6773 | <param id="177" name="Hair_Rumpled" value="0.000" /> |
6774 | 6774 | ||
6775 | <param id="181" name="Hair_Big_Front" value="-0.160" /> | 6775 | <param id="181" name="Hair_Big_Front" value="-0.160" /> |
6776 | 6776 | ||
6777 | <param id="182" name="Hair_Big_Top" value="0.320" /> | 6777 | <param id="182" name="Hair_Big_Top" value="0.320" /> |
6778 | 6778 | ||
6779 | <param id="183" name="Hair_Big_Back" value="0.300" /> | 6779 | <param id="183" name="Hair_Big_Back" value="0.300" /> |
6780 | 6780 | ||
6781 | <param id="184" name="Hair_Spiked" value="0.000" /> | 6781 | <param id="184" name="Hair_Spiked" value="0.000" /> |
6782 | 6782 | ||
6783 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 6783 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
6784 | 6784 | ||
6785 | <param id="674" name="Hair_Shear_Back" value="-0.100" /> | 6785 | <param id="674" name="Hair_Shear_Back" value="-0.100" /> |
6786 | 6786 | ||
6787 | <param id="750" name="Eyebrow Density" value="1.000" /> | 6787 | <param id="750" name="Eyebrow Density" value="1.000" /> |
6788 | 6788 | ||
6789 | <param id="752" name="Hair Thickness" value="0.690" /> | 6789 | <param id="752" name="Hair Thickness" value="0.690" /> |
6790 | 6790 | ||
6791 | <param id="754" name="Hair_Taper_Back" value="0.020" /> | 6791 | <param id="754" name="Hair_Taper_Back" value="0.020" /> |
6792 | 6792 | ||
6793 | <param id="755" name="Hair_Taper_Front" value="-0.120" /> | 6793 | <param id="755" name="Hair_Taper_Front" value="-0.120" /> |
6794 | 6794 | ||
6795 | <param id="757" name="Lower_Eyebrows" value="0.120" /> | 6795 | <param id="757" name="Lower_Eyebrows" value="0.120" /> |
6796 | 6796 | ||
6797 | <param id="762" name="Hair_Shear_Front" value="0.000" /> | 6797 | <param id="762" name="Hair_Shear_Front" value="0.000" /> |
6798 | 6798 | ||
6799 | <param id="763" name="Hair Volume" value="0.770" /> | 6799 | <param id="763" name="Hair Volume" value="0.770" /> |
6800 | 6800 | ||
6801 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 6801 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
6802 | 6802 | ||
6803 | <!-- wearable: eyes --> | 6803 | <!-- wearable: eyes --> |
6804 | <param id="98" name="Eye Lightness" value="0.000" /> | 6804 | <param id="98" name="Eye Lightness" value="0.000" /> |
6805 | 6805 | ||
6806 | <param id="99" name="Eye Color" value="0.040" /> | 6806 | <param id="99" name="Eye Color" value="0.040" /> |
6807 | 6807 | ||
6808 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 6808 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
6809 | </archetype> | 6809 | </archetype> |
6810 | 6810 | ||
6811 | <archetype name="F A Chubby"> | 6811 | <archetype name="F A Chubby"> |
6812 | <!-- wearable: shape --> | 6812 | <!-- wearable: shape --> |
6813 | <param id="1" name="Big_Brow" value="0.482" /> | 6813 | <param id="1" name="Big_Brow" value="0.482" /> |
6814 | 6814 | ||
6815 | <param id="2" name="Nose_Big_Out" value="-0.140" /> | 6815 | <param id="2" name="Nose_Big_Out" value="-0.140" /> |
6816 | 6816 | ||
6817 | <param id="4" name="Broad_Nostrils" value="0.280" /> | 6817 | <param id="4" name="Broad_Nostrils" value="0.280" /> |
6818 | 6818 | ||
6819 | <param id="5" name="Cleft_Chin" value="0.164" /> | 6819 | <param id="5" name="Cleft_Chin" value="0.164" /> |
6820 | 6820 | ||
6821 | <param id="6" name="Bulbous_Nose_Tip" value="0.220" /> | 6821 | <param id="6" name="Bulbous_Nose_Tip" value="0.220" /> |
6822 | 6822 | ||
6823 | <param id="7" name="Weak_Chin" value="-0.040" /> | 6823 | <param id="7" name="Weak_Chin" value="-0.040" /> |
6824 | 6824 | ||
6825 | <param id="8" name="Double_Chin" value="0.200" /> | 6825 | <param id="8" name="Double_Chin" value="0.200" /> |
6826 | 6826 | ||
6827 | <param id="10" name="Sunken_Cheeks" value="-0.150" /> | 6827 | <param id="10" name="Sunken_Cheeks" value="-0.150" /> |
6828 | 6828 | ||
6829 | <param id="11" name="Noble_Nose_Bridge" value="-0.020" /> | 6829 | <param id="11" name="Noble_Nose_Bridge" value="-0.020" /> |
6830 | 6830 | ||
6831 | <param id="12" name="Jowls" value="0.550" /> | 6831 | <param id="12" name="Jowls" value="0.550" /> |
6832 | 6832 | ||
6833 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> | 6833 | <param id="13" name="Cleft_Chin_Upper" value="0.000" /> |
6834 | 6834 | ||
6835 | <param id="14" name="High_Cheek_Bones" value="0.670" /> | 6835 | <param id="14" name="High_Cheek_Bones" value="0.670" /> |
6836 | 6836 | ||
6837 | <param id="15" name="Ears_Out" value="0.720" /> | 6837 | <param id="15" name="Ears_Out" value="0.720" /> |
6838 | 6838 | ||
6839 | <param id="17" name="Square_Jaw" value="0.175" /> | 6839 | <param id="17" name="Square_Jaw" value="0.175" /> |
6840 | 6840 | ||
6841 | <param id="18" name="Puffy_Upper_Cheeks" value="1.420" /> | 6841 | <param id="18" name="Puffy_Upper_Cheeks" value="1.420" /> |
6842 | 6842 | ||
6843 | <param id="19" name="Upturned_Nose_Tip" value="-0.075" /> | 6843 | <param id="19" name="Upturned_Nose_Tip" value="-0.075" /> |
6844 | 6844 | ||
6845 | <param id="20" name="Bulbous_Nose" value="-0.500" /> | 6845 | <param id="20" name="Bulbous_Nose" value="-0.500" /> |
6846 | 6846 | ||
6847 | <param id="21" name="Upper_Eyelid_Fold" value="0.640" /> | 6847 | <param id="21" name="Upper_Eyelid_Fold" value="0.640" /> |
6848 | 6848 | ||
6849 | <param id="22" name="Attached_Earlobes" value="0.570" /> | 6849 | <param id="22" name="Attached_Earlobes" value="0.570" /> |
6850 | 6850 | ||
6851 | <param id="23" name="Baggy_Eyes" value="0.020" /> | 6851 | <param id="23" name="Baggy_Eyes" value="0.020" /> |
6852 | 6852 | ||
6853 | <param id="24" name="Wide_Eyes" value="-0.555" /> | 6853 | <param id="24" name="Wide_Eyes" value="-0.555" /> |
6854 | 6854 | ||
6855 | <param id="25" name="Wide_Lip_Cleft" value="0.764" /> | 6855 | <param id="25" name="Wide_Lip_Cleft" value="0.764" /> |
6856 | 6856 | ||
6857 | <param id="27" name="Wide_Nose_Bridge" value="-1.300" /> | 6857 | <param id="27" name="Wide_Nose_Bridge" value="-1.300" /> |
6858 | 6858 | ||
6859 | <param id="33" name="Height" value="-0.709" /> | 6859 | <param id="33" name="Height" value="-0.709" /> |
6860 | 6860 | ||
6861 | <param id="34" name="Thickness" value="-0.084" /> | 6861 | <param id="34" name="Thickness" value="-0.084" /> |
6862 | 6862 | ||
6863 | <param id="35" name="Big_Ears" value="0.140" /> | 6863 | <param id="35" name="Big_Ears" value="0.140" /> |
6864 | 6864 | ||
6865 | <param id="36" name="Shoulders" value="-0.936" /> | 6865 | <param id="36" name="Shoulders" value="-0.936" /> |
6866 | 6866 | ||
6867 | <param id="37" name="Hip Width" value="-1.220" /> | 6867 | <param id="37" name="Hip Width" value="-1.220" /> |
6868 | 6868 | ||
6869 | <param id="38" name="Torso Length" value="0.860" /> | 6869 | <param id="38" name="Torso Length" value="0.860" /> |
6870 | 6870 | ||
6871 | <param id="80" name="male" value="0.000" /> | 6871 | <param id="80" name="male" value="0.000" /> |
6872 | 6872 | ||
6873 | <param id="105" name="Breast Size" value="0.780" /> | 6873 | <param id="105" name="Breast Size" value="0.780" /> |
6874 | 6874 | ||
6875 | <param id="151" name="Big_Butt_Legs" value="-0.022" /> | 6875 | <param id="151" name="Big_Butt_Legs" value="-0.022" /> |
6876 | 6876 | ||
6877 | <param id="155" name="Lip Width" value="-0.548" /> | 6877 | <param id="155" name="Lip Width" value="-0.548" /> |
6878 | 6878 | ||
6879 | <param id="157" name="Belly Size" value="0.180" /> | 6879 | <param id="157" name="Belly Size" value="0.180" /> |
6880 | 6880 | ||
6881 | <param id="185" name="Deep_Chin" value="-0.120" /> | 6881 | <param id="185" name="Deep_Chin" value="-0.120" /> |
6882 | 6882 | ||
6883 | <param id="193" name="Head Shape" value="0.680" /> | 6883 | <param id="193" name="Head Shape" value="0.680" /> |
6884 | 6884 | ||
6885 | <param id="196" name="Eye Spacing" value="-0.230" /> | 6885 | <param id="196" name="Eye Spacing" value="-0.230" /> |
6886 | 6886 | ||
6887 | <param id="505" name="Lip Thickness" value="0.730" /> | 6887 | <param id="505" name="Lip Thickness" value="0.730" /> |
6888 | 6888 | ||
6889 | <param id="506" name="Mouth_Height" value="-0.160" /> | 6889 | <param id="506" name="Mouth_Height" value="-0.160" /> |
6890 | 6890 | ||
6891 | <param id="507" name="Breast_Gravity" value="-0.205" /> | 6891 | <param id="507" name="Breast_Gravity" value="-0.205" /> |
6892 | 6892 | ||
6893 | <param id="515" name="Foot_Size" value="0.200" /> | 6893 | <param id="515" name="Foot_Size" value="0.200" /> |
6894 | 6894 | ||
6895 | <param id="517" name="Wide_Nose" value="0.130" /> | 6895 | <param id="517" name="Wide_Nose" value="0.130" /> |
6896 | 6896 | ||
6897 | <param id="518" name="Eyelashes_Long" value="0.240" /> | 6897 | <param id="518" name="Eyelashes_Long" value="0.240" /> |
6898 | 6898 | ||
6899 | <param id="629" name="Forehead Angle" value="0.670" /> | 6899 | <param id="629" name="Forehead Angle" value="0.670" /> |
6900 | 6900 | ||
6901 | <param id="637" name="Body Fat" value="0.120" /> | 6901 | <param id="637" name="Body Fat" value="0.120" /> |
6902 | 6902 | ||
6903 | <param id="646" name="Egg_Head" value="0.149" /> | 6903 | <param id="646" name="Egg_Head" value="0.149" /> |
6904 | 6904 | ||
6905 | <param id="647" name="Squash_Stretch_Head" value="-0.005" /> | 6905 | <param id="647" name="Squash_Stretch_Head" value="-0.005" /> |
6906 | 6906 | ||
6907 | <param id="649" name="Torso Muscles" value="0.640" /> | 6907 | <param id="649" name="Torso Muscles" value="0.640" /> |
6908 | 6908 | ||
6909 | <param id="650" name="Eyelid_Corner_Up" value="0.050" /> | 6909 | <param id="650" name="Eyelid_Corner_Up" value="0.050" /> |
6910 | 6910 | ||
6911 | <param id="652" name="Leg Muscles" value="0.570" /> | 6911 | <param id="652" name="Leg Muscles" value="0.570" /> |
6912 | 6912 | ||
6913 | <param id="653" name="Tall_Lips" value="0.740" /> | 6913 | <param id="653" name="Tall_Lips" value="0.740" /> |
6914 | 6914 | ||
6915 | <param id="656" name="Crooked_Nose" value="0.000" /> | 6915 | <param id="656" name="Crooked_Nose" value="0.000" /> |
6916 | 6916 | ||
6917 | <param id="659" name="Mouth Corner" value="0.720" /> | 6917 | <param id="659" name="Mouth Corner" value="0.720" /> |
6918 | 6918 | ||
6919 | <param id="662" name="Face Shear" value="0.500" /> | 6919 | <param id="662" name="Face Shear" value="0.500" /> |
6920 | 6920 | ||
6921 | <param id="663" name="Shift_Mouth" value="-0.080" /> | 6921 | <param id="663" name="Shift_Mouth" value="-0.080" /> |
6922 | 6922 | ||
6923 | <param id="664" name="Pop_Eye" value="0.052" /> | 6923 | <param id="664" name="Pop_Eye" value="0.052" /> |
6924 | 6924 | ||
6925 | <param id="665" name="Jaw_Jut" value="-0.640" /> | 6925 | <param id="665" name="Jaw_Jut" value="-0.640" /> |
6926 | 6926 | ||
6927 | <param id="675" name="Hand Size" value="-0.198" /> | 6927 | <param id="675" name="Hand Size" value="-0.198" /> |
6928 | 6928 | ||
6929 | <param id="676" name="Love_Handles" value="0.560" /> | 6929 | <param id="676" name="Love_Handles" value="0.560" /> |
6930 | 6930 | ||
6931 | <param id="678" name="Torso Muscles" value="0.790" /> | 6931 | <param id="678" name="Torso Muscles" value="0.790" /> |
6932 | 6932 | ||
6933 | <param id="682" name="Head Size" value="0.770" /> | 6933 | <param id="682" name="Head Size" value="0.770" /> |
6934 | 6934 | ||
6935 | <param id="683" name="Neck Thickness" value="-0.058" /> | 6935 | <param id="683" name="Neck Thickness" value="-0.058" /> |
6936 | 6936 | ||
6937 | <param id="684" name="Breast_Female_Clevage" value="0.116" /> | 6937 | <param id="684" name="Breast_Female_Clevage" value="0.116" /> |
6938 | 6938 | ||
6939 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> | 6939 | <param id="685" name="Chest_Male_No_Pecs" value="0.200" /> |
6940 | 6940 | ||
6941 | <param id="690" name="Eye Size" value="0.530" /> | 6941 | <param id="690" name="Eye Size" value="0.530" /> |
6942 | 6942 | ||
6943 | <param id="692" name="Leg Length" value="0.400" /> | 6943 | <param id="692" name="Leg Length" value="0.400" /> |
6944 | 6944 | ||
6945 | <param id="693" name="Arm Length" value="0.500" /> | 6945 | <param id="693" name="Arm Length" value="0.500" /> |
6946 | 6946 | ||
6947 | <param id="753" name="Saddlebags" value="0.725" /> | 6947 | <param id="753" name="Saddlebags" value="0.725" /> |
6948 | 6948 | ||
6949 | <param id="756" name="Neck Length" value="-0.380" /> | 6949 | <param id="756" name="Neck Length" value="-0.380" /> |
6950 | 6950 | ||
6951 | <param id="758" name="Lower_Bridge_Nose" value="-0.330" /> | 6951 | <param id="758" name="Lower_Bridge_Nose" value="-0.330" /> |
6952 | 6952 | ||
6953 | <param id="759" name="Low_Septum_Nose" value="0.200" /> | 6953 | <param id="759" name="Low_Septum_Nose" value="0.200" /> |
6954 | 6954 | ||
6955 | <param id="760" name="Jaw_Angle" value="0.528" /> | 6955 | <param id="760" name="Jaw_Angle" value="0.528" /> |
6956 | 6956 | ||
6957 | <param id="764" name="Lip_Cleft_Deep" value="-0.228" /> | 6957 | <param id="764" name="Lip_Cleft_Deep" value="-0.228" /> |
6958 | 6958 | ||
6959 | <param id="765" name="Puffy_Lower_Lids" value="-0.020" /> | 6959 | <param id="765" name="Puffy_Lower_Lids" value="-0.020" /> |
6960 | 6960 | ||
6961 | <param id="769" name="Eye Depth" value="0.670" /> | 6961 | <param id="769" name="Eye Depth" value="0.670" /> |
6962 | 6962 | ||
6963 | <param id="773" name="Head Length" value="0.340" /> | 6963 | <param id="773" name="Head Length" value="0.340" /> |
6964 | 6964 | ||
6965 | <!-- wearable: skin --> | 6965 | <!-- wearable: skin --> |
6966 | <param id="108" name="Rainbow Color" value="0.000" /> | 6966 | <param id="108" name="Rainbow Color" value="0.000" /> |
6967 | 6967 | ||
6968 | <param id="110" name="Red Skin" value="0.000" /> | 6968 | <param id="110" name="Red Skin" value="0.000" /> |
6969 | 6969 | ||
6970 | <param id="111" name="Pigment" value="0.390" /> | 6970 | <param id="111" name="Pigment" value="0.390" /> |
6971 | 6971 | ||
6972 | <param id="116" name="Rosy Complexion" value="0.000" /> | 6972 | <param id="116" name="Rosy Complexion" value="0.000" /> |
6973 | 6973 | ||
6974 | <param id="117" name="Lip Pinkness" value="0.000" /> | 6974 | <param id="117" name="Lip Pinkness" value="0.000" /> |
6975 | 6975 | ||
6976 | <param id="150" name="Body Definition" value="0.430" /> | 6976 | <param id="150" name="Body Definition" value="0.430" /> |
6977 | 6977 | ||
6978 | <param id="162" name="Facial Definition" value="0.000" /> | 6978 | <param id="162" name="Facial Definition" value="0.000" /> |
6979 | 6979 | ||
6980 | <param id="163" name="Wrinkles" value="0.000" /> | 6980 | <param id="163" name="Wrinkles" value="0.000" /> |
6981 | 6981 | ||
6982 | <param id="165" name="Freckles" value="0.000" /> | 6982 | <param id="165" name="Freckles" value="0.000" /> |
6983 | 6983 | ||
6984 | <param id="700" name="Lipstick Color" value="0.250" /> | 6984 | <param id="700" name="Lipstick Color" value="0.250" /> |
6985 | 6985 | ||
6986 | <param id="701" name="Lipstick" value="0.000" /> | 6986 | <param id="701" name="Lipstick" value="0.000" /> |
6987 | 6987 | ||
6988 | <param id="702" name="Lipgloss" value="0.000" /> | 6988 | <param id="702" name="Lipgloss" value="0.000" /> |
6989 | 6989 | ||
6990 | <param id="703" name="Eyeliner" value="0.000" /> | 6990 | <param id="703" name="Eyeliner" value="0.000" /> |
6991 | 6991 | ||
6992 | <param id="704" name="Blush" value="0.000" /> | 6992 | <param id="704" name="Blush" value="0.000" /> |
6993 | 6993 | ||
6994 | <param id="705" name="Blush Color" value="0.500" /> | 6994 | <param id="705" name="Blush Color" value="0.500" /> |
6995 | 6995 | ||
6996 | <param id="706" name="Out Shdw Opacity" value="0.600" /> | 6996 | <param id="706" name="Out Shdw Opacity" value="0.600" /> |
6997 | 6997 | ||
6998 | <param id="707" name="Outer Shadow" value="0.000" /> | 6998 | <param id="707" name="Outer Shadow" value="0.000" /> |
6999 | 6999 | ||
7000 | <param id="708" name="Out Shdw Color" value="0.000" /> | 7000 | <param id="708" name="Out Shdw Color" value="0.000" /> |
7001 | 7001 | ||
7002 | <param id="709" name="Inner Shadow" value="0.000" /> | 7002 | <param id="709" name="Inner Shadow" value="0.000" /> |
7003 | 7003 | ||
7004 | <param id="710" name="Nail Polish" value="0.000" /> | 7004 | <param id="710" name="Nail Polish" value="0.000" /> |
7005 | 7005 | ||
7006 | <param id="711" name="Blush Opacity" value="0.500" /> | 7006 | <param id="711" name="Blush Opacity" value="0.500" /> |
7007 | 7007 | ||
7008 | <param id="712" name="In Shdw Color" value="0.000" /> | 7008 | <param id="712" name="In Shdw Color" value="0.000" /> |
7009 | 7009 | ||
7010 | <param id="713" name="In Shdw Opacity" value="0.700" /> | 7010 | <param id="713" name="In Shdw Opacity" value="0.700" /> |
7011 | 7011 | ||
7012 | <param id="714" name="Eyeliner Color" value="0.000" /> | 7012 | <param id="714" name="Eyeliner Color" value="0.000" /> |
7013 | 7013 | ||
7014 | <param id="715" name="Nail Polish Color" value="0.000" /> | 7014 | <param id="715" name="Nail Polish Color" value="0.000" /> |
7015 | 7015 | ||
7016 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 7016 | <texture te="0" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
7017 | 7017 | ||
7018 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 7018 | <texture te="5" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
7019 | 7019 | ||
7020 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> | 7020 | <texture te="6" uuid="c228d1cf-4b5d-4ba8-84f4-899a0796aa97" /> |
7021 | 7021 | ||
7022 | <!-- wearable: hair --> | 7022 | <!-- wearable: hair --> |
7023 | <param id="16" name="Pointy_Eyebrows" value="-0.095" /> | 7023 | <param id="16" name="Pointy_Eyebrows" value="-0.095" /> |
7024 | 7024 | ||
7025 | <param id="31" name="Arced_Eyebrows" value="0.610" /> | 7025 | <param id="31" name="Arced_Eyebrows" value="0.610" /> |
7026 | 7026 | ||
7027 | <param id="112" name="Rainbow Color" value="0.000" /> | 7027 | <param id="112" name="Rainbow Color" value="0.000" /> |
7028 | 7028 | ||
7029 | <param id="113" name="Red Hair" value="0.150" /> | 7029 | <param id="113" name="Red Hair" value="0.150" /> |
7030 | 7030 | ||
7031 | <param id="114" name="Blonde Hair" value="0.050" /> | 7031 | <param id="114" name="Blonde Hair" value="0.050" /> |
7032 | 7032 | ||
7033 | <param id="115" name="White Hair" value="0.000" /> | 7033 | <param id="115" name="White Hair" value="0.000" /> |
7034 | 7034 | ||
7035 | <param id="119" name="Eyebrow Size" value="0.110" /> | 7035 | <param id="119" name="Eyebrow Size" value="0.110" /> |
7036 | 7036 | ||
7037 | <param id="130" name="Front Fringe" value="0.300" /> | 7037 | <param id="130" name="Front Fringe" value="0.300" /> |
7038 | 7038 | ||
7039 | <param id="131" name="Side Fringe" value="0.630" /> | 7039 | <param id="131" name="Side Fringe" value="0.630" /> |
7040 | 7040 | ||
7041 | <param id="132" name="Back Fringe" value="0.690" /> | 7041 | <param id="132" name="Back Fringe" value="0.690" /> |
7042 | 7042 | ||
7043 | <param id="133" name="Hair Front" value="0.000" /> | 7043 | <param id="133" name="Hair Front" value="0.000" /> |
7044 | 7044 | ||
7045 | <param id="134" name="Hair Sides" value="0.670" /> | 7045 | <param id="134" name="Hair Sides" value="0.670" /> |
7046 | 7046 | ||
7047 | <param id="135" name="Hair Back" value="0.730" /> | 7047 | <param id="135" name="Hair Back" value="0.730" /> |
7048 | 7048 | ||
7049 | <param id="136" name="Hair Sweep" value="0.820" /> | 7049 | <param id="136" name="Hair Sweep" value="0.820" /> |
7050 | 7050 | ||
7051 | <param id="137" name="Hair Tilt" value="0.500" /> | 7051 | <param id="137" name="Hair Tilt" value="0.500" /> |
7052 | 7052 | ||
7053 | <param id="140" name="Hair_Part_Middle" value="1.260" /> | 7053 | <param id="140" name="Hair_Part_Middle" value="1.260" /> |
7054 | 7054 | ||
7055 | <param id="141" name="Hair_Part_Right" value="0.000" /> | 7055 | <param id="141" name="Hair_Part_Right" value="0.000" /> |
7056 | 7056 | ||
7057 | <param id="142" name="Hair_Part_Left" value="0.000" /> | 7057 | <param id="142" name="Hair_Part_Left" value="0.000" /> |
7058 | 7058 | ||
7059 | <param id="143" name="Hair_Sides_Full" value="-0.315" /> | 7059 | <param id="143" name="Hair_Sides_Full" value="-0.315" /> |
7060 | 7060 | ||
7061 | <param id="166" name="Sideburns" value="0.710" /> | 7061 | <param id="166" name="Sideburns" value="0.710" /> |
7062 | 7062 | ||
7063 | <param id="167" name="Moustache" value="0.000" /> | 7063 | <param id="167" name="Moustache" value="0.000" /> |
7064 | 7064 | ||
7065 | <param id="168" name="Soulpatch" value="0.000" /> | 7065 | <param id="168" name="Soulpatch" value="0.000" /> |
7066 | 7066 | ||
7067 | <param id="169" name="Chin Curtains" value="0.000" /> | 7067 | <param id="169" name="Chin Curtains" value="0.000" /> |
7068 | 7068 | ||
7069 | <param id="177" name="Hair_Rumpled" value="0.000" /> | 7069 | <param id="177" name="Hair_Rumpled" value="0.000" /> |
7070 | 7070 | ||
7071 | <param id="181" name="Hair_Big_Front" value="0.260" /> | 7071 | <param id="181" name="Hair_Big_Front" value="0.260" /> |
7072 | 7072 | ||
7073 | <param id="182" name="Hair_Big_Top" value="0.260" /> | 7073 | <param id="182" name="Hair_Big_Top" value="0.260" /> |
7074 | 7074 | ||
7075 | <param id="183" name="Hair_Big_Back" value="0.000" /> | 7075 | <param id="183" name="Hair_Big_Back" value="0.000" /> |
7076 | 7076 | ||
7077 | <param id="184" name="Hair_Spiked" value="0.000" /> | 7077 | <param id="184" name="Hair_Spiked" value="0.000" /> |
7078 | 7078 | ||
7079 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> | 7079 | <param id="192" name="Bangs_Part_Middle" value="0.000" /> |
7080 | 7080 | ||
7081 | <param id="674" name="Hair_Shear_Back" value="-0.100" /> | 7081 | <param id="674" name="Hair_Shear_Back" value="-0.100" /> |
7082 | 7082 | ||
7083 | <param id="750" name="Eyebrow Density" value="0.580" /> | 7083 | <param id="750" name="Eyebrow Density" value="0.580" /> |
7084 | 7084 | ||
7085 | <param id="752" name="Hair Thickness" value="0.690" /> | 7085 | <param id="752" name="Hair Thickness" value="0.690" /> |
7086 | 7086 | ||
7087 | <param id="754" name="Hair_Taper_Back" value="-0.970" /> | 7087 | <param id="754" name="Hair_Taper_Back" value="-0.970" /> |
7088 | 7088 | ||
7089 | <param id="755" name="Hair_Taper_Front" value="-0.060" /> | 7089 | <param id="755" name="Hair_Taper_Front" value="-0.060" /> |
7090 | 7090 | ||
7091 | <param id="757" name="Lower_Eyebrows" value="1.760" /> | 7091 | <param id="757" name="Lower_Eyebrows" value="1.760" /> |
7092 | 7092 | ||
7093 | <param id="762" name="Hair_Shear_Front" value="0.060" /> | 7093 | <param id="762" name="Hair_Shear_Front" value="0.060" /> |
7094 | 7094 | ||
7095 | <param id="763" name="Hair Volume" value="0.690" /> | 7095 | <param id="763" name="Hair Volume" value="0.690" /> |
7096 | 7096 | ||
7097 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> | 7097 | <texture te="4" uuid="7ca39b4c-bd19-4699-aff7-f93fd03d3e7b" /> |
7098 | 7098 | ||
7099 | <!-- wearable: eyes --> | 7099 | <!-- wearable: eyes --> |
7100 | <param id="98" name="Eye Lightness" value="0.080" /> | 7100 | <param id="98" name="Eye Lightness" value="0.080" /> |
7101 | 7101 | ||
7102 | <param id="99" name="Eye Color" value="0.160" /> | 7102 | <param id="99" name="Eye Color" value="0.160" /> |
7103 | 7103 | ||
7104 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> | 7104 | <texture te="3" uuid="6522e74d-1660-4e7f-b601-6f48c1659a77" /> |
7105 | </archetype> | 7105 | </archetype> |
7106 | </linden_genepool> | 7106 | </linden_genepool> |
7107 | 7107 | ||
diff --git a/linden/indra/newview/floaterao.cpp b/linden/indra/newview/floaterao.cpp index cfad0fb..df88d6f 100644 --- a/linden/indra/newview/floaterao.cpp +++ b/linden/indra/newview/floaterao.cpp | |||
@@ -119,6 +119,9 @@ AOInvTimer::AOInvTimer() : LLEventTimer( (F32)1.0 ) | |||
119 | AOInvTimer::~AOInvTimer() | 119 | AOInvTimer::~AOInvTimer() |
120 | { | 120 | { |
121 | } | 121 | } |
122 | |||
123 | BOOL AOInvTimer::fullfetch = FALSE; | ||
124 | |||
122 | BOOL AOInvTimer::tick() | 125 | BOOL AOInvTimer::tick() |
123 | { | 126 | { |
124 | if (!(gSavedSettings.getBOOL("AOEnabled"))) return TRUE; | 127 | if (!(gSavedSettings.getBOOL("AOEnabled"))) return TRUE; |
@@ -129,6 +132,15 @@ BOOL AOInvTimer::tick() | |||
129 | // cmdline_printchat("Inventory fetched, loading AO."); | 132 | // cmdline_printchat("Inventory fetched, loading AO."); |
130 | LLFloaterAO::init(); | 133 | LLFloaterAO::init(); |
131 | return TRUE; | 134 | return TRUE; |
135 | }else | ||
136 | { | ||
137 | //static BOOL startedfetch = FALSE; | ||
138 | if(fullfetch == FALSE) | ||
139 | { | ||
140 | fullfetch = TRUE; | ||
141 | //no choice, can't move the AO till we find it, should only have to happen once | ||
142 | gInventory.startBackgroundFetch(); | ||
143 | } | ||
132 | } | 144 | } |
133 | } | 145 | } |
134 | return FALSE; | 146 | return FALSE; |
diff --git a/linden/indra/newview/floaterao.h b/linden/indra/newview/floaterao.h index cf8ee22..465f32e 100644 --- a/linden/indra/newview/floaterao.h +++ b/linden/indra/newview/floaterao.h | |||
@@ -51,6 +51,7 @@ public: | |||
51 | class AOInvTimer : public LLEventTimer | 51 | class AOInvTimer : public LLEventTimer |
52 | { | 52 | { |
53 | public: | 53 | public: |
54 | static BOOL fullfetch; | ||
54 | AOInvTimer(); | 55 | AOInvTimer(); |
55 | ~AOInvTimer(); | 56 | ~AOInvTimer(); |
56 | BOOL tick(); | 57 | BOOL tick(); |
diff --git a/linden/indra/newview/hippolimits.cpp b/linden/indra/newview/hippolimits.cpp index 691508a..4516668 100644 --- a/linden/indra/newview/hippolimits.cpp +++ b/linden/indra/newview/hippolimits.cpp | |||
@@ -22,7 +22,8 @@ HippoLimits::HippoLimits() | |||
22 | mMinPrimScale(0.001f), | 22 | mMinPrimScale(0.001f), |
23 | mMaxPrimScale(256.0f), | 23 | mMaxPrimScale(256.0f), |
24 | mMaxLinkedPrims(-1), | 24 | mMaxLinkedPrims(-1), |
25 | mMaxDragDistance(0.f) | 25 | mMaxDragDistance(0.f), |
26 | mVoiceConnector("SLVoice") | ||
26 | { | 27 | { |
27 | setLimits(); | 28 | setLimits(); |
28 | } | 29 | } |
@@ -68,6 +69,7 @@ void HippoLimits::setOpenSimLimits() | |||
68 | mEnableTeenMode = FALSE; | 69 | mEnableTeenMode = FALSE; |
69 | mEnforceMaxBuild = FALSE; | 70 | mEnforceMaxBuild = FALSE; |
70 | mRenderWater = TRUE; | 71 | mRenderWater = TRUE; |
72 | mVoiceConnector = "SLVoice"; | ||
71 | 73 | ||
72 | if (gHippoGridManager->getConnectedGrid()->isRenderCompat()) { | 74 | if (gHippoGridManager->getConnectedGrid()->isRenderCompat()) { |
73 | llinfos << "Using rendering compatible OpenSim limits" << llendl; | 75 | llinfos << "Using rendering compatible OpenSim limits" << llendl; |
@@ -110,6 +112,7 @@ void HippoLimits::setSecondLifeLimits() | |||
110 | mEnableTeenMode = FALSE; | 112 | mEnableTeenMode = FALSE; |
111 | mEnforceMaxBuild = FALSE; | 113 | mEnforceMaxBuild = FALSE; |
112 | mRenderWater = TRUE; | 114 | mRenderWater = TRUE; |
115 | mVoiceConnector = "SLVoice"; | ||
113 | } | 116 | } |
114 | 117 | ||
115 | F32 HippoLimits::getMaxPrimScale() const | 118 | F32 HippoLimits::getMaxPrimScale() const |
diff --git a/linden/indra/newview/hippolimits.h b/linden/indra/newview/hippolimits.h index 7792a2c..9d6b2f6 100644 --- a/linden/indra/newview/hippolimits.h +++ b/linden/indra/newview/hippolimits.h | |||
@@ -14,7 +14,7 @@ public: | |||
14 | const S32& getMaxLinkedPrims() const { return mMaxLinkedPrims; } | 14 | const S32& getMaxLinkedPrims() const { return mMaxLinkedPrims; } |
15 | const S32& getMaxPhysLinkedPrims() const { return mMaxPhysLinkedPrims; } | 15 | const S32& getMaxPhysLinkedPrims() const { return mMaxPhysLinkedPrims; } |
16 | const F32& getMaxInventoryItemsTransfer() const { return mMaxInventoryItemsTransfer; } | 16 | const F32& getMaxInventoryItemsTransfer() const { return mMaxInventoryItemsTransfer; } |
17 | 17 | const std::string& getVoiceConnector() const { return mVoiceConnector; } | |
18 | 18 | ||
19 | // Returns the max prim size we can use on a grid | 19 | // Returns the max prim size we can use on a grid |
20 | F32 getMinPrimScale() const; | 20 | F32 getMinPrimScale() const; |
@@ -59,6 +59,7 @@ public: | |||
59 | BOOL mEnableTeenMode; | 59 | BOOL mEnableTeenMode; |
60 | BOOL mEnforceMaxBuild; | 60 | BOOL mEnforceMaxBuild; |
61 | BOOL mRenderWater; | 61 | BOOL mRenderWater; |
62 | std::string mVoiceConnector; | ||
62 | 63 | ||
63 | private: | 64 | private: |
64 | void setOpenSimLimits(); | 65 | void setOpenSimLimits(); |
diff --git a/linden/indra/newview/kowopenregionsettings.cpp b/linden/indra/newview/kowopenregionsettings.cpp index 8aac87c..0c4bb38 100644 --- a/linden/indra/newview/kowopenregionsettings.cpp +++ b/linden/indra/newview/kowopenregionsettings.cpp | |||
@@ -36,6 +36,8 @@ | |||
36 | #include "llviewerobject.h" | 36 | #include "llviewerobject.h" |
37 | #include "llfloaterregioninfo.h" | 37 | #include "llfloaterregioninfo.h" |
38 | #include "llfloaterworldmap.h" | 38 | #include "llfloaterworldmap.h" |
39 | #include "llvoiceclient.h" | ||
40 | #include "viewertime.h" | ||
39 | 41 | ||
40 | //DEBUG includes | 42 | //DEBUG includes |
41 | //#include "llsdserialize.h" //LLSDNotationStreamer - for dumping LLSD to string | 43 | //#include "llsdserialize.h" //LLSDNotationStreamer - for dumping LLSD to string |
@@ -149,12 +151,15 @@ class OpenRegionInfoUpdate : public LLHTTPNode | |||
149 | } | 151 | } |
150 | if ( body.has("OffsetOfUTC") ) | 152 | if ( body.has("OffsetOfUTC") ) |
151 | { | 153 | { |
152 | gSavedSettings.setS32("TimeOffset", body["OffsetOfUTC"].asReal()); | 154 | gSavedSettings.setS32("TimeOffset", body["OffsetOfUTC"].asInteger()); |
153 | gSavedSettings.setBOOL("UseTimeOffset", true); | 155 | gSavedSettings.setBOOL("UseTimeOffset", true); |
156 | ViewerTime::sUseTimeOffset = true; | ||
157 | ViewerTime::sTimeOffset = gSavedSettings.getS32("TimeOffset"); | ||
154 | } | 158 | } |
155 | if ( body.has("OffsetOfUTCDST") ) | 159 | if ( body.has("OffsetOfUTCDST") ) |
156 | { | 160 | { |
157 | gSavedSettings.setBOOL("TimeOffsetDST", body["OffsetOfUTCDST"].asInteger() == 1 ? TRUE : FALSE); | 161 | gSavedSettings.setBOOL("TimeOffsetDST", body["OffsetOfUTCDST"].asInteger() == 1 ? TRUE : FALSE); |
162 | ViewerTime::sTimeOffsetDST = gSavedSettings.getBOOL("TimeOffsetDST"); | ||
158 | } | 163 | } |
159 | if ( body.has("RenderWater") ) | 164 | if ( body.has("RenderWater") ) |
160 | { | 165 | { |
@@ -200,6 +205,12 @@ class OpenRegionInfoUpdate : public LLHTTPNode | |||
200 | { | 205 | { |
201 | gHippoLimits->mAllowParcelWindLight = body["AllowParcelWindLight"].asInteger() == 1; | 206 | gHippoLimits->mAllowParcelWindLight = body["AllowParcelWindLight"].asInteger() == 1; |
202 | } | 207 | } |
208 | if ( body.has("Voice") ) | ||
209 | { | ||
210 | gSavedSettings.setString("VoiceModule", body["Voice"].asString()); | ||
211 | //gVoiceClient->close(); | ||
212 | //gVoiceClient->start(); | ||
213 | } | ||
203 | 214 | ||
204 | if (limitschanged) | 215 | if (limitschanged) |
205 | gFloaterTools->updateToolsSizeLimits(); | 216 | gFloaterTools->updateToolsSizeLimits(); |
diff --git a/linden/indra/newview/linux_tools/register_secondlifeprotocol.sh b/linden/indra/newview/linux_tools/register_secondlifeprotocol.sh index 4ab96f9..338fc26 100755 --- a/linden/indra/newview/linux_tools/register_secondlifeprotocol.sh +++ b/linden/indra/newview/linux_tools/register_secondlifeprotocol.sh | |||
@@ -18,7 +18,7 @@ LLGCONFTOOL2=gconftool-2 | |||
18 | if which ${LLGCONFTOOL2} >/dev/null; then | 18 | if which ${LLGCONFTOOL2} >/dev/null; then |
19 | (${LLGCONFTOOL2} -s -t string /desktop/gnome/url-handlers/secondlife/command "${HANDLER} \"%s\"" && ${LLGCONFTOOL2} -s -t bool /desktop/gnome/url-handlers/secondlife/enabled true) || echo Warning: Did not register secondlife:// handler with GNOME: ${LLGCONFTOOL2} failed. | 19 | (${LLGCONFTOOL2} -s -t string /desktop/gnome/url-handlers/secondlife/command "${HANDLER} \"%s\"" && ${LLGCONFTOOL2} -s -t bool /desktop/gnome/url-handlers/secondlife/enabled true) || echo Warning: Did not register secondlife:// handler with GNOME: ${LLGCONFTOOL2} failed. |
20 | else | 20 | else |
21 | echo Warning: Did not register secondlife:// handler with GNOME: ${LLGCONFTOOL2} not found. | 21 | echo Info: Did not register secondlife:// handler with GNOME: ${LLGCONFTOOL2} not found. You can safely ignore this if you are not using GNOME. |
22 | fi | 22 | fi |
23 | 23 | ||
24 | # Register handler for KDE-aware apps | 24 | # Register handler for KDE-aware apps |
@@ -42,5 +42,5 @@ makedir=false | |||
42 | deleting=false | 42 | deleting=false |
43 | EOF | 43 | EOF |
44 | else | 44 | else |
45 | echo Warning: Did not register secondlife:// handler with KDE: Directory $LLKDEPROTDIR does not exist. | 45 | echo Info: Did not register secondlife:// handler with KDE: Directory $LLKDEPROTDIR does not exist. You can safely ignore this if you are not using KDE. |
46 | fi | 46 | fi |
diff --git a/linden/indra/newview/linux_tools/wrapper.sh b/linden/indra/newview/linux_tools/wrapper.sh index 657ccbb..e590394 100755 --- a/linden/indra/newview/linux_tools/wrapper.sh +++ b/linden/indra/newview/linux_tools/wrapper.sh | |||
@@ -126,7 +126,7 @@ if [ -n "$LL_RUN_ERR" ]; then | |||
126 | LL_RUN_ERR_MSG="" | 126 | LL_RUN_ERR_MSG="" |
127 | if [ "$LL_RUN_ERR" = "runerr" ]; then | 127 | if [ "$LL_RUN_ERR" = "runerr" ]; then |
128 | # generic error running the binary | 128 | # generic error running the binary |
129 | echo '*** Bad shutdown. ***' | 129 | echo 'unexpected shutdown' |
130 | 130 | ||
131 | 131 | ||
132 | fi | 132 | fi |
diff --git a/linden/indra/newview/llagent.cpp b/linden/indra/newview/llagent.cpp index 004cca1..7bc57f8 100644 --- a/linden/indra/newview/llagent.cpp +++ b/linden/indra/newview/llagent.cpp | |||
@@ -4043,7 +4043,11 @@ void LLAgent::handleScrollWheel(S32 clicks) | |||
4043 | } | 4043 | } |
4044 | } | 4044 | } |
4045 | } | 4045 | } |
4046 | 4046 | void LLAgent::handleHScrollWheel(S32 clicks) | |
4047 | { | ||
4048 | const F32 RAD_PER_CLICK = -F_PI / 16.0f; | ||
4049 | cameraOrbitAround(RAD_PER_CLICK * clicks); | ||
4050 | } | ||
4047 | 4051 | ||
4048 | //----------------------------------------------------------------------------- | 4052 | //----------------------------------------------------------------------------- |
4049 | // getCameraMinOffGround() | 4053 | // getCameraMinOffGround() |
diff --git a/linden/indra/newview/llagent.h b/linden/indra/newview/llagent.h index fe50bf5..cea55fb 100644 --- a/linden/indra/newview/llagent.h +++ b/linden/indra/newview/llagent.h | |||
@@ -163,6 +163,7 @@ public: | |||
163 | void endAnimationUpdateUI(); | 163 | void endAnimationUpdateUI(); |
164 | void setKey(const S32 direction, S32 &key); // sets key to +1 for +direction, -1 for -direction | 164 | void setKey(const S32 direction, S32 &key); // sets key to +1 for +direction, -1 for -direction |
165 | void handleScrollWheel(S32 clicks); // mousewheel driven zoom | 165 | void handleScrollWheel(S32 clicks); // mousewheel driven zoom |
166 | void handleHScrollWheel(S32 clicks); | ||
166 | 167 | ||
167 | void setAvatarObject(LLVOAvatar *avatar); | 168 | void setAvatarObject(LLVOAvatar *avatar); |
168 | 169 | ||
diff --git a/linden/indra/newview/llappviewerwin32.cpp b/linden/indra/newview/llappviewerwin32.cpp index cba7174..1d05a6e 100644 --- a/linden/indra/newview/llappviewerwin32.cpp +++ b/linden/indra/newview/llappviewerwin32.cpp | |||
@@ -365,7 +365,8 @@ void create_console() | |||
365 | h_con_handle = _open_osfhandle(l_std_handle, _O_TEXT); | 365 | h_con_handle = _open_osfhandle(l_std_handle, _O_TEXT); |
366 | fp = _fdopen( h_con_handle, "w" ); | 366 | fp = _fdopen( h_con_handle, "w" ); |
367 | *stderr = *fp; | 367 | *stderr = *fp; |
368 | setvbuf( stderr, NULL, _IONBF, 0 ); | 368 | setvbuf( stderr, NULL, _IOFBF, 1024 ); //Assigning a buffer improves speed a LOT, esp on vista/win7 |
369 | //_IOLBF is borked. | ||
369 | } | 370 | } |
370 | 371 | ||
371 | LLAppViewerWin32::LLAppViewerWin32(const char* cmd_line) : | 372 | LLAppViewerWin32::LLAppViewerWin32(const char* cmd_line) : |
diff --git a/linden/indra/newview/llcloud.cpp b/linden/indra/newview/llcloud.cpp index 3e9b86a..b325265 100644 --- a/linden/indra/newview/llcloud.cpp +++ b/linden/indra/newview/llcloud.cpp | |||
@@ -427,7 +427,7 @@ void LLCloudLayer::decompress(LLBitPack &bitpack, LLGroupHeader *group_headerp) | |||
427 | group_headerp->stride = group_headerp->patch_size; // offset required to step up one row | 427 | group_headerp->stride = group_headerp->patch_size; // offset required to step up one row |
428 | set_group_of_patch_header(group_headerp); | 428 | set_group_of_patch_header(group_headerp); |
429 | 429 | ||
430 | decode_patch_header(bitpack, &patch_header); | 430 | decode_patch_header(bitpack, &patch_header, FALSE); |
431 | decode_patch(bitpack, gBuffer); | 431 | decode_patch(bitpack, gBuffer); |
432 | decompress_patch(mDensityp, gBuffer, &patch_header); | 432 | decompress_patch(mDensityp, gBuffer, &patch_header); |
433 | } | 433 | } |
diff --git a/linden/indra/newview/llface.h b/linden/indra/newview/llface.h index 4893e82..e31b93f 100644 --- a/linden/indra/newview/llface.h +++ b/linden/indra/newview/llface.h | |||
@@ -106,6 +106,9 @@ public: | |||
106 | F32 getVirtualSize() const { return mVSize; } | 106 | F32 getVirtualSize() const { return mVSize; } |
107 | F32 getPixelArea() const { return mPixelArea; } | 107 | F32 getPixelArea() const { return mPixelArea; } |
108 | 108 | ||
109 | S32 getIndexInTex() const {return mIndexInTex ;} | ||
110 | void setIndexInTex(S32 index) { mIndexInTex = index ;} | ||
111 | |||
109 | void renderSetColor() const; | 112 | void renderSetColor() const; |
110 | S32 renderElements(const U16 *index_array) const; | 113 | S32 renderElements(const U16 *index_array) const; |
111 | S32 renderIndexed (); | 114 | S32 renderIndexed (); |
@@ -225,6 +228,7 @@ private: | |||
225 | U16 mGeomIndex; // index into draw pool | 228 | U16 mGeomIndex; // index into draw pool |
226 | U32 mIndicesCount; | 229 | U32 mIndicesCount; |
227 | U32 mIndicesIndex; // index into draw pool for indices (yeah, I know!) | 230 | U32 mIndicesIndex; // index into draw pool for indices (yeah, I know!) |
231 | S32 mIndexInTex ; | ||
228 | 232 | ||
229 | //previous rebuild's geometry info | 233 | //previous rebuild's geometry info |
230 | U16 mLastGeomCount; | 234 | U16 mLastGeomCount; |
diff --git a/linden/indra/newview/llfloaterabout.cpp b/linden/indra/newview/llfloaterabout.cpp index f7163ee..a5d2c98 100644 --- a/linden/indra/newview/llfloaterabout.cpp +++ b/linden/indra/newview/llfloaterabout.cpp | |||
@@ -57,6 +57,7 @@ | |||
57 | #include "lltrans.h" | 57 | #include "lltrans.h" |
58 | #include "llappviewer.h" | 58 | #include "llappviewer.h" |
59 | #include "llglheaders.h" | 59 | #include "llglheaders.h" |
60 | #include "llviewerwindow.h" | ||
60 | #include "llwindow.h" | 61 | #include "llwindow.h" |
61 | #include "viewerversion.h" | 62 | #include "viewerversion.h" |
62 | 63 | ||
@@ -106,6 +107,8 @@ LLFloaterAbout::LLFloaterAbout() | |||
106 | return; | 107 | return; |
107 | } | 108 | } |
108 | 109 | ||
110 | childSetAction("copy_btn", onClickCopy, this); | ||
111 | |||
109 | // For some reason, adding style doesn't work unless this is true. | 112 | // For some reason, adding style doesn't work unless this is true. |
110 | support_widget->setParseHTML(TRUE); | 113 | support_widget->setParseHTML(TRUE); |
111 | 114 | ||
@@ -294,6 +297,23 @@ void LLFloaterAbout::show(void*) | |||
294 | sInstance->open(); /*Flawfinder: ignore*/ | 297 | sInstance->open(); /*Flawfinder: ignore*/ |
295 | } | 298 | } |
296 | 299 | ||
300 | // static | ||
301 | void LLFloaterAbout::onClickCopy(void* user_data) | ||
302 | { | ||
303 | LLFloaterAbout* self = (LLFloaterAbout*)user_data; | ||
304 | |||
305 | if (self) | ||
306 | { | ||
307 | LLViewerTextEditor* support_widget = self->getChild<LLViewerTextEditor>("support_editor", true); | ||
308 | |||
309 | if (support_widget) | ||
310 | { | ||
311 | std::string buffer = support_widget->getText(); | ||
312 | gViewerWindow->mWindow->copyTextToClipboard(utf8str_to_wstring(buffer)); | ||
313 | } | ||
314 | } | ||
315 | } | ||
316 | |||
297 | 317 | ||
298 | static std::string get_viewer_release_notes_url() | 318 | static std::string get_viewer_release_notes_url() |
299 | { | 319 | { |
diff --git a/linden/indra/newview/llfloaterabout.h b/linden/indra/newview/llfloaterabout.h index 7564b8e..44241ca 100644 --- a/linden/indra/newview/llfloaterabout.h +++ b/linden/indra/newview/llfloaterabout.h | |||
@@ -46,6 +46,8 @@ public: | |||
46 | 46 | ||
47 | private: | 47 | private: |
48 | static LLFloaterAbout* sInstance; | 48 | static LLFloaterAbout* sInstance; |
49 | |||
50 | static void onClickCopy(void* user_data); | ||
49 | }; | 51 | }; |
50 | 52 | ||
51 | 53 | ||
diff --git a/linden/indra/newview/llfloateranimpreview.cpp b/linden/indra/newview/llfloateranimpreview.cpp index 232530c..6d7f350 100644 --- a/linden/indra/newview/llfloateranimpreview.cpp +++ b/linden/indra/newview/llfloateranimpreview.cpp | |||
@@ -617,6 +617,18 @@ BOOL LLFloaterAnimPreview::handleScrollWheel(S32 x, S32 y, S32 clicks) | |||
617 | } | 617 | } |
618 | 618 | ||
619 | //----------------------------------------------------------------------------- | 619 | //----------------------------------------------------------------------------- |
620 | // handleHScrollWheel() | ||
621 | //----------------------------------------------------------------------------- | ||
622 | BOOL LLFloaterAnimPreview::handleHScrollWheel(S32 x, S32 y, S32 clicks) | ||
623 | { | ||
624 | const F32 RAD_PER_CLICK = -F_PI / 16.0f; | ||
625 | mAnimPreview->rotate(RAD_PER_CLICK * clicks, 0); | ||
626 | mAnimPreview->requestUpdate(); | ||
627 | |||
628 | return TRUE; | ||
629 | } | ||
630 | |||
631 | //----------------------------------------------------------------------------- | ||
620 | // onMouseCaptureLost() | 632 | // onMouseCaptureLost() |
621 | //----------------------------------------------------------------------------- | 633 | //----------------------------------------------------------------------------- |
622 | void LLFloaterAnimPreview::onMouseCaptureLost() | 634 | void LLFloaterAnimPreview::onMouseCaptureLost() |
diff --git a/linden/indra/newview/llfloateranimpreview.h b/linden/indra/newview/llfloateranimpreview.h index e8f79e2..0107165 100644 --- a/linden/indra/newview/llfloateranimpreview.h +++ b/linden/indra/newview/llfloateranimpreview.h | |||
@@ -80,6 +80,7 @@ public: | |||
80 | BOOL handleMouseUp(S32 x, S32 y, MASK mask); | 80 | BOOL handleMouseUp(S32 x, S32 y, MASK mask); |
81 | BOOL handleHover(S32 x, S32 y, MASK mask); | 81 | BOOL handleHover(S32 x, S32 y, MASK mask); |
82 | BOOL handleScrollWheel(S32 x, S32 y, S32 clicks); | 82 | BOOL handleScrollWheel(S32 x, S32 y, S32 clicks); |
83 | BOOL handleHScrollWheel(S32 x, S32 y, S32 clicks); | ||
83 | void onMouseCaptureLost(); | 84 | void onMouseCaptureLost(); |
84 | 85 | ||
85 | void refresh(); | 86 | void refresh(); |
diff --git a/linden/indra/newview/llfloaterchat.cpp b/linden/indra/newview/llfloaterchat.cpp index 12c1d31..a28123e 100644 --- a/linden/indra/newview/llfloaterchat.cpp +++ b/linden/indra/newview/llfloaterchat.cpp | |||
@@ -73,7 +73,6 @@ | |||
73 | #include "lllogchat.h" | 73 | #include "lllogchat.h" |
74 | #include "lltexteditor.h" | 74 | #include "lltexteditor.h" |
75 | #include "lltextparser.h" | 75 | #include "lltextparser.h" |
76 | #include "llfloaterhtml.h" | ||
77 | #include "llweb.h" | 76 | #include "llweb.h" |
78 | #include "llstylemap.h" | 77 | #include "llstylemap.h" |
79 | #include "llviewermenu.h" | 78 | #include "llviewermenu.h" |
diff --git a/linden/indra/newview/llfloaterhtml.cpp b/linden/indra/newview/llfloaterhtml.cpp deleted file mode 100644 index 5822ed5..0000000 --- a/linden/indra/newview/llfloaterhtml.cpp +++ /dev/null | |||
@@ -1,253 +0,0 @@ | |||
1 | /** | ||
2 | * @file llfloaterhtml.cpp | ||
3 | * @brief In-world HTML dialog | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2005&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2005-2009, Linden Research, Inc. | ||
8 | * | ||
9 | * Second Life Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
11 | * to you under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
13 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
14 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
15 | * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
16 | * | ||
17 | * There are special exceptions to the terms and conditions of the GPL as | ||
18 | * it is applied to this Source Code. View the full text of the exception | ||
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
20 | * online at | ||
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
22 | * | ||
23 | * By copying, modifying or distributing this software, you acknowledge | ||
24 | * that you have read and understood your obligations described above, | ||
25 | * and agree to abide by those obligations. | ||
26 | * | ||
27 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
28 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
29 | * COMPLETENESS OR PERFORMANCE. | ||
30 | * $/LicenseInfo$ | ||
31 | */ | ||
32 | |||
33 | #include "llviewerprecompiledheaders.h" | ||
34 | |||
35 | #include "llfloaterhtml.h" | ||
36 | |||
37 | // viewer includes | ||
38 | #include "lluictrlfactory.h" | ||
39 | #include "llviewercontrol.h" | ||
40 | #include "lllineeditor.h" | ||
41 | #include "llviewerwindow.h" | ||
42 | #include "llweb.h" | ||
43 | |||
44 | |||
45 | LLFloaterHtml* LLFloaterHtml::sInstance = 0; | ||
46 | |||
47 | //////////////////////////////////////////////////////////////////////////////// | ||
48 | // | ||
49 | LLFloaterHtml* LLFloaterHtml::getInstance() | ||
50 | { | ||
51 | if ( ! sInstance ) | ||
52 | sInstance = new LLFloaterHtml(); | ||
53 | |||
54 | return sInstance; | ||
55 | } | ||
56 | |||
57 | //////////////////////////////////////////////////////////////////////////////// | ||
58 | // | ||
59 | LLFloaterHtml::LLFloaterHtml() | ||
60 | : LLFloater( std::string("HTML Floater") ) | ||
61 | |||
62 | , | ||
63 | mWebBrowser( 0 ) | ||
64 | { | ||
65 | LLUICtrlFactory::getInstance()->buildFloater( this, "floater_html.xml" ); | ||
66 | |||
67 | childSetAction("back_btn", onClickBack, this); | ||
68 | childSetAction("home_btn", onClickHome, this); | ||
69 | childSetAction("forward_btn", onClickForward, this); | ||
70 | childSetAction("close_btn", onClickClose, this); | ||
71 | childSetCommitCallback("url_edit", onCommitUrlEdit, this ); | ||
72 | childSetAction("go_btn", onClickGo, this ); | ||
73 | |||
74 | // reposition floater from saved settings | ||
75 | LLRect rect = gSavedSettings.getRect( "FloaterHtmlRect" ); | ||
76 | reshape( rect.getWidth(), rect.getHeight(), FALSE ); | ||
77 | setRect( rect ); | ||
78 | |||
79 | mWebBrowser = getChild<LLWebBrowserCtrl>("html_floater_browser" ); | ||
80 | if ( mWebBrowser ) | ||
81 | { | ||
82 | // open links in internal browser | ||
83 | mWebBrowser->setOpenInExternalBrowser( false ); | ||
84 | } | ||
85 | } | ||
86 | |||
87 | //////////////////////////////////////////////////////////////////////////////// | ||
88 | // | ||
89 | LLFloaterHtml::~LLFloaterHtml() | ||
90 | { | ||
91 | // save position of floater | ||
92 | gSavedSettings.setRect( "FloaterHtmlRect", getRect() ); | ||
93 | |||
94 | sInstance = 0; | ||
95 | } | ||
96 | |||
97 | //////////////////////////////////////////////////////////////////////////////// | ||
98 | // virtual | ||
99 | void LLFloaterHtml::draw() | ||
100 | { | ||
101 | // enable/disable buttons depending on state | ||
102 | if ( mWebBrowser ) | ||
103 | { | ||
104 | bool enable_back = mWebBrowser->canNavigateBack(); | ||
105 | childSetEnabled( "back_btn", enable_back ); | ||
106 | |||
107 | bool enable_forward = mWebBrowser->canNavigateForward(); | ||
108 | childSetEnabled( "forward_btn", enable_forward ); | ||
109 | }; | ||
110 | |||
111 | LLFloater::draw(); | ||
112 | } | ||
113 | |||
114 | //////////////////////////////////////////////////////////////////////////////// | ||
115 | // | ||
116 | void LLFloaterHtml::show( std::string content_id, bool open_link_external, bool open_app_slurls ) | ||
117 | { | ||
118 | // calculate the XML labels we'll need (if only XML folders worked) | ||
119 | std::string title_str = content_id + "_title"; | ||
120 | std::string url_str = content_id + "_url"; | ||
121 | |||
122 | std::string title = getString( title_str ); | ||
123 | std::string url = getString( url_str ); | ||
124 | |||
125 | show( url, title, open_link_external, open_app_slurls ); | ||
126 | } | ||
127 | |||
128 | //////////////////////////////////////////////////////////////////////////////// | ||
129 | // | ||
130 | void LLFloaterHtml::show( std::string start_url, std::string title, bool open_link_external, bool trusted_browser ) | ||
131 | { | ||
132 | // set the title | ||
133 | setTitle( title ); | ||
134 | |||
135 | // navigate to the URL | ||
136 | if ( mWebBrowser ) | ||
137 | { | ||
138 | mWebBrowser->setTrusted( trusted_browser ); | ||
139 | mWebBrowser->setOpenInExternalBrowser( open_link_external ); | ||
140 | mWebBrowser->navigateTo( start_url ); | ||
141 | } | ||
142 | |||
143 | // make floater appear | ||
144 | setVisibleAndFrontmost(); | ||
145 | } | ||
146 | |||
147 | //////////////////////////////////////////////////////////////////////////////// | ||
148 | // | ||
149 | std::string LLFloaterHtml::getSupportUrl() | ||
150 | { | ||
151 | return getString("support_page_url"); | ||
152 | } | ||
153 | |||
154 | //////////////////////////////////////////////////////////////////////////////// | ||
155 | // | ||
156 | void LLFloaterHtml::onClose( bool app_quitting ) | ||
157 | { | ||
158 | setVisible( false ); | ||
159 | // HACK for fast XML iteration replace with: | ||
160 | // destroy(); | ||
161 | } | ||
162 | |||
163 | //////////////////////////////////////////////////////////////////////////////// | ||
164 | // | ||
165 | void LLFloaterHtml::onClickClose( void* data ) | ||
166 | { | ||
167 | LLFloaterHtml* self = ( LLFloaterHtml* )data; | ||
168 | self->close(); | ||
169 | } | ||
170 | |||
171 | //////////////////////////////////////////////////////////////////////////////// | ||
172 | // static | ||
173 | void LLFloaterHtml::onClickBack( void* data ) | ||
174 | { | ||
175 | LLFloaterHtml* self = ( LLFloaterHtml* )data; | ||
176 | if ( self ) | ||
177 | { | ||
178 | if ( self->mWebBrowser ) | ||
179 | { | ||
180 | self->mWebBrowser->navigateBack(); | ||
181 | }; | ||
182 | }; | ||
183 | } | ||
184 | |||
185 | //////////////////////////////////////////////////////////////////////////////// | ||
186 | // | ||
187 | void LLFloaterHtml::onClickHome( void* data ) | ||
188 | { | ||
189 | LLFloaterHtml* self = ( LLFloaterHtml* )data; | ||
190 | if ( self ) | ||
191 | { | ||
192 | if ( self->mWebBrowser ) | ||
193 | { | ||
194 | std::string home_url = self->getString("home_page_url"); | ||
195 | if ( home_url.length() > 4 ) | ||
196 | { | ||
197 | self->mWebBrowser->navigateTo( home_url ); | ||
198 | } | ||
199 | else | ||
200 | { | ||
201 | llwarns << "Invalid home page specified for HTML floater - navigating to default" << llendl; | ||
202 | self->mWebBrowser->navigateTo( "http://secondlife.com" ); | ||
203 | } | ||
204 | }; | ||
205 | }; | ||
206 | } | ||
207 | |||
208 | //////////////////////////////////////////////////////////////////////////////// | ||
209 | // static | ||
210 | void LLFloaterHtml::onClickForward( void* data ) | ||
211 | { | ||
212 | LLFloaterHtml* self = ( LLFloaterHtml* )data; | ||
213 | if ( self ) | ||
214 | { | ||
215 | if ( self->mWebBrowser ) | ||
216 | { | ||
217 | self->mWebBrowser->navigateForward(); | ||
218 | }; | ||
219 | }; | ||
220 | } | ||
221 | |||
222 | //////////////////////////////////////////////////////////////////////////////// | ||
223 | // static | ||
224 | void LLFloaterHtml::onCommitUrlEdit(LLUICtrl* ctrl, void* user_data) | ||
225 | { | ||
226 | LLFloaterHtml* self = (LLFloaterHtml*)user_data; | ||
227 | |||
228 | LLLineEditor* editor = (LLLineEditor*)ctrl; | ||
229 | std::string url = editor->getText(); | ||
230 | |||
231 | if ( self->mWebBrowser ) | ||
232 | { | ||
233 | self->mWebBrowser->navigateTo( url ); | ||
234 | }; | ||
235 | } | ||
236 | |||
237 | //////////////////////////////////////////////////////////////////////////////// | ||
238 | // static | ||
239 | void LLFloaterHtml::onClickGo( void* data ) | ||
240 | { | ||
241 | LLFloaterHtml* self = ( LLFloaterHtml* )data; | ||
242 | if ( self ) | ||
243 | { | ||
244 | std::string url = self->childGetValue( "url_edit" ).asString(); | ||
245 | if ( url.length() ) | ||
246 | { | ||
247 | if ( self->mWebBrowser ) | ||
248 | { | ||
249 | self->mWebBrowser->navigateTo( url ); | ||
250 | } | ||
251 | } | ||
252 | } | ||
253 | } | ||
diff --git a/linden/indra/newview/llfloaterhtml.h b/linden/indra/newview/llfloaterhtml.h deleted file mode 100644 index 4383472..0000000 --- a/linden/indra/newview/llfloaterhtml.h +++ /dev/null | |||
@@ -1,77 +0,0 @@ | |||
1 | /** | ||
2 | * @file llfloaterhtml.h | ||
3 | * @author James Cook | ||
4 | * @brief In-world HTML dialog | ||
5 | * | ||
6 | * $LicenseInfo:firstyear=2005&license=viewergpl$ | ||
7 | * | ||
8 | * Copyright (c) 2005-2009, Linden Research, Inc. | ||
9 | * | ||
10 | * Second Life Viewer Source Code | ||
11 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
12 | * to you under the terms of the GNU General Public License, version 2.0 | ||
13 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
14 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
15 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
16 | * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
17 | * | ||
18 | * There are special exceptions to the terms and conditions of the GPL as | ||
19 | * it is applied to this Source Code. View the full text of the exception | ||
20 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
21 | * online at | ||
22 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
23 | * | ||
24 | * By copying, modifying or distributing this software, you acknowledge | ||
25 | * that you have read and understood your obligations described above, | ||
26 | * and agree to abide by those obligations. | ||
27 | * | ||
28 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
29 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
30 | * COMPLETENESS OR PERFORMANCE. | ||
31 | * $/LicenseInfo$ | ||
32 | */ | ||
33 | |||
34 | #ifndef LL_LLFLOATERHTML_H | ||
35 | #define LL_LLFLOATERHTML_H | ||
36 | |||
37 | #include "llfloater.h" | ||
38 | #include "llhtmlhelp.h" | ||
39 | |||
40 | class LLWebBrowserCtrl; | ||
41 | |||
42 | class LLFloaterHtml : | ||
43 | public LLFloater | ||
44 | { | ||
45 | public: | ||
46 | static LLFloaterHtml* getInstance(); | ||
47 | virtual ~LLFloaterHtml(); | ||
48 | |||
49 | virtual void draw(); | ||
50 | virtual void onClose( bool app_quitting ); | ||
51 | |||
52 | // Pass string like "in-world_help" or "additional help" | ||
53 | void show( std::string content_id, bool open_link_external, bool trusted_browser ); | ||
54 | |||
55 | // Pass raw URL and window title | ||
56 | // Can be set to handle secondlife:///app/ URLs, but this should | ||
57 | // usually be false. | ||
58 | void show( std::string start_url, std::string title, bool open_link_external, bool trusted_browser ); | ||
59 | |||
60 | std::string getSupportUrl(); | ||
61 | |||
62 | static void onClickClose( void* data ); | ||
63 | static void onClickBack( void* data ); | ||
64 | static void onClickHome( void* data ); | ||
65 | static void onClickForward( void* data ); | ||
66 | static void onCommitUrlEdit(LLUICtrl* ctrl, void* user_data); | ||
67 | static void onClickGo( void* data ); | ||
68 | |||
69 | private: | ||
70 | LLFloaterHtml(); | ||
71 | |||
72 | LLWebBrowserCtrl* mWebBrowser; | ||
73 | static LLFloaterHtml* sInstance; | ||
74 | LLButton* mCloseButton; | ||
75 | }; | ||
76 | |||
77 | #endif | ||
diff --git a/linden/indra/newview/llfloaterimagepreview.cpp b/linden/indra/newview/llfloaterimagepreview.cpp index aa8a94f..e792f8c 100644 --- a/linden/indra/newview/llfloaterimagepreview.cpp +++ b/linden/indra/newview/llfloaterimagepreview.cpp | |||
@@ -616,6 +616,22 @@ BOOL LLFloaterImagePreview::handleScrollWheel(S32 x, S32 y, S32 clicks) | |||
616 | return TRUE; | 616 | return TRUE; |
617 | } | 617 | } |
618 | 618 | ||
619 | BOOL LLFloaterImagePreview::handleHScrollWheel(S32 x, S32 y, S32 clicks) | ||
620 | { | ||
621 | const F32 RAD_PER_CLICK = -F_PI / 16.0f; | ||
622 | |||
623 | if (mPreviewRect.pointInRect(x, y) && mAvatarPreview) | ||
624 | { | ||
625 | mAvatarPreview->rotate(RAD_PER_CLICK * clicks, 0); | ||
626 | mAvatarPreview->refresh(); | ||
627 | |||
628 | mSculptedPreview->rotate(RAD_PER_CLICK * clicks, 0); | ||
629 | mSculptedPreview->refresh(); | ||
630 | } | ||
631 | |||
632 | return TRUE; | ||
633 | } | ||
634 | |||
619 | //----------------------------------------------------------------------------- | 635 | //----------------------------------------------------------------------------- |
620 | // onMouseCaptureLost() | 636 | // onMouseCaptureLost() |
621 | //----------------------------------------------------------------------------- | 637 | //----------------------------------------------------------------------------- |
diff --git a/linden/indra/newview/llfloaterimagepreview.h b/linden/indra/newview/llfloaterimagepreview.h index 6a4de3d..1ccfeb4 100644 --- a/linden/indra/newview/llfloaterimagepreview.h +++ b/linden/indra/newview/llfloaterimagepreview.h | |||
@@ -115,6 +115,7 @@ public: | |||
115 | BOOL handleMouseUp(S32 x, S32 y, MASK mask); | 115 | BOOL handleMouseUp(S32 x, S32 y, MASK mask); |
116 | BOOL handleHover(S32 x, S32 y, MASK mask); | 116 | BOOL handleHover(S32 x, S32 y, MASK mask); |
117 | BOOL handleScrollWheel(S32 x, S32 y, S32 clicks); | 117 | BOOL handleScrollWheel(S32 x, S32 y, S32 clicks); |
118 | BOOL handleHScrollWheel(S32 x, S32 y, S32 clicks); | ||
118 | 119 | ||
119 | static void onMouseCaptureLostImagePreview(LLMouseHandler*); | 120 | static void onMouseCaptureLostImagePreview(LLMouseHandler*); |
120 | static void setUploadAmount(S32 amount) { sUploadAmount = amount; } | 121 | static void setUploadAmount(S32 amount) { sUploadAmount = amount; } |
diff --git a/linden/indra/newview/llfloatermediabrowser.cpp b/linden/indra/newview/llfloatermediabrowser.cpp index d658a11..a78c9d1 100644 --- a/linden/indra/newview/llfloatermediabrowser.cpp +++ b/linden/indra/newview/llfloatermediabrowser.cpp | |||
@@ -1,6 +1,6 @@ | |||
1 | /** | 1 | /** |
2 | * @file llfloaterhtmlhelp.cpp | 2 | * @file llmediabrowser.cpp |
3 | * @brief HTML Help floater - uses embedded web browser control | 3 | * @brief embedded web browser |
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ |
6 | * | 6 | * |
@@ -33,7 +33,6 @@ | |||
33 | #include "llviewerprecompiledheaders.h" | 33 | #include "llviewerprecompiledheaders.h" |
34 | 34 | ||
35 | #include "llfloatermediabrowser.h" | 35 | #include "llfloatermediabrowser.h" |
36 | #include "llfloaterhtml.h" | ||
37 | 36 | ||
38 | #include "llchat.h" | 37 | #include "llchat.h" |
39 | #include "llfloaterchat.h" | 38 | #include "llfloaterchat.h" |
diff --git a/linden/indra/newview/llfloaterpreference.cpp b/linden/indra/newview/llfloaterpreference.cpp index 2fe4b4d..0f81be6 100644 --- a/linden/indra/newview/llfloaterpreference.cpp +++ b/linden/indra/newview/llfloaterpreference.cpp | |||
@@ -362,6 +362,11 @@ void LLPreferenceCore::setPersonalInfo(const std::string& visibility, bool im_vi | |||
362 | mPrefsIM->setPersonalInfo(visibility, im_via_email, email); | 362 | mPrefsIM->setPersonalInfo(visibility, im_via_email, email); |
363 | } | 363 | } |
364 | 364 | ||
365 | void LLPreferenceCore::updateIsLoggedIn(bool enable) | ||
366 | { | ||
367 | mPrefsIM->preparePerAccountPrefs(enable); | ||
368 | } | ||
369 | |||
365 | void LLPreferenceCore::refreshEnabledGraphics() | 370 | void LLPreferenceCore::refreshEnabledGraphics() |
366 | { | 371 | { |
367 | LLFloaterHardwareSettings::instance()->refreshEnabledState(); | 372 | LLFloaterHardwareSettings::instance()->refreshEnabledState(); |
@@ -537,6 +542,15 @@ void LLFloaterPreference::updateUserInfo(const std::string& visibility, bool im_ | |||
537 | } | 542 | } |
538 | } | 543 | } |
539 | 544 | ||
545 | // static | ||
546 | void LLFloaterPreference::updateIsLoggedIn(bool enable) | ||
547 | { | ||
548 | if(sInstance && sInstance->mPreferenceCore) | ||
549 | { | ||
550 | sInstance->mPreferenceCore->updateIsLoggedIn(enable); | ||
551 | } | ||
552 | } | ||
553 | |||
540 | void LLFloaterPreference::refreshEnabledGraphics() | 554 | void LLFloaterPreference::refreshEnabledGraphics() |
541 | { | 555 | { |
542 | sInstance->mPreferenceCore->refreshEnabledGraphics(); | 556 | sInstance->mPreferenceCore->refreshEnabledGraphics(); |
diff --git a/linden/indra/newview/llfloaterpreference.h b/linden/indra/newview/llfloaterpreference.h index c52f541..931c8b6 100644 --- a/linden/indra/newview/llfloaterpreference.h +++ b/linden/indra/newview/llfloaterpreference.h | |||
@@ -73,6 +73,7 @@ public: | |||
73 | LLTabContainer* getTabContainer() { return mTabContainer; } | 73 | LLTabContainer* getTabContainer() { return mTabContainer; } |
74 | 74 | ||
75 | void setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email); | 75 | void setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email); |
76 | void updateIsLoggedIn(bool enable); | ||
76 | 77 | ||
77 | static void onTabChanged(void* user_data, bool from_click); | 78 | static void onTabChanged(void* user_data, bool from_click); |
78 | 79 | ||
@@ -113,6 +114,8 @@ public: | |||
113 | 114 | ||
114 | // static data update, called from message handler | 115 | // static data update, called from message handler |
115 | static void updateUserInfo(const std::string& visibility, bool im_via_email, const std::string& email); | 116 | static void updateUserInfo(const std::string& visibility, bool im_via_email, const std::string& email); |
117 | // static data update, called after login | ||
118 | static void updateIsLoggedIn(bool enable); | ||
116 | 119 | ||
117 | // refresh all the graphics preferences menus | 120 | // refresh all the graphics preferences menus |
118 | static void refreshEnabledGraphics(); | 121 | static void refreshEnabledGraphics(); |
diff --git a/linden/indra/newview/llfloaterregioninfo.cpp b/linden/indra/newview/llfloaterregioninfo.cpp index 163c1ec..23f3cf1 100644 --- a/linden/indra/newview/llfloaterregioninfo.cpp +++ b/linden/indra/newview/llfloaterregioninfo.cpp | |||
@@ -1,3300 +1,3447 @@ | |||
1 | /** | 1 | /** |
2 | * @file llfloaterregioninfo.cpp | 2 | * @file llfloaterregioninfo.cpp |
3 | * @author Aaron Brashears | 3 | * @author Aaron Brashears |
4 | * @brief Implementation of the region info and controls floater and panels. | 4 | * @brief Implementation of the region info and controls floater and panels. |
5 | * | 5 | * |
6 | * $LicenseInfo:firstyear=2004&license=viewergpl$ | 6 | * $LicenseInfo:firstyear=2004&license=viewergpl$ |
7 | * | 7 | * |
8 | * Copyright (c) 2004-2009, Linden Research, Inc. | 8 | * Copyright (c) 2004-2009, Linden Research, Inc. |
9 | * | 9 | * |
10 | * Second Life Viewer Source Code | 10 | * Second Life Viewer Source Code |
11 | * The source code in this file ("Source Code") is provided by Linden Lab | 11 | * The source code in this file ("Source Code") is provided by Linden Lab |
12 | * to you under the terms of the GNU General Public License, version 2.0 | 12 | * to you under the terms of the GNU General Public License, version 2.0 |
13 | * ("GPL"), unless you have obtained a separate licensing agreement | 13 | * ("GPL"), unless you have obtained a separate licensing agreement |
14 | * ("Other License"), formally executed by you and Linden Lab. Terms of | 14 | * ("Other License"), formally executed by you and Linden Lab. Terms of |
15 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | 15 | * the GPL can be found in doc/GPL-license.txt in this distribution, or |
16 | * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 | 16 | * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 |
17 | * | 17 | * |
18 | * There are special exceptions to the terms and conditions of the GPL as | 18 | * There are special exceptions to the terms and conditions of the GPL as |
19 | * it is applied to this Source Code. View the full text of the exception | 19 | * it is applied to this Source Code. View the full text of the exception |
20 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 20 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
21 | * online at | 21 | * online at |
22 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | 22 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception |
23 | * | 23 | * |
24 | * By copying, modifying or distributing this software, you acknowledge | 24 | * By copying, modifying or distributing this software, you acknowledge |
25 | * that you have read and understood your obligations described above, | 25 | * that you have read and understood your obligations described above, |
26 | * and agree to abide by those obligations. | 26 | * and agree to abide by those obligations. |
27 | * | 27 | * |
28 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | 28 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO |
29 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | 29 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, |
30 | * COMPLETENESS OR PERFORMANCE. | 30 | * COMPLETENESS OR PERFORMANCE. |
31 | * $/LicenseInfo$ | 31 | * $/LicenseInfo$ |
32 | */ | 32 | */ |
33 | 33 | ||
34 | #include "llviewerprecompiledheaders.h" | 34 | #include "llviewerprecompiledheaders.h" |
35 | #include "llfloaterregioninfo.h" | 35 | #include "llfloaterregioninfo.h" |
36 | 36 | ||
37 | #include <algorithm> | 37 | #include <algorithm> |
38 | #include <functional> | 38 | #include <functional> |
39 | 39 | ||
40 | #include "llcachename.h" | 40 | #include "llcachename.h" |
41 | #include "lldir.h" | 41 | #include "lldir.h" |
42 | #include "lldispatcher.h" | 42 | #include "lldispatcher.h" |
43 | #include "llglheaders.h" | 43 | #include "llglheaders.h" |
44 | #include "llregionflags.h" | 44 | #include "llregionflags.h" |
45 | #include "llstl.h" | 45 | #include "llstl.h" |
46 | #include "indra_constants.h" | 46 | #include "indra_constants.h" |
47 | #include "message.h" | 47 | #include "message.h" |
48 | 48 | ||
49 | #include "llagent.h" | 49 | #include "llagent.h" |
50 | #include "llalertdialog.h" | 50 | #include "llalertdialog.h" |
51 | #include "llappviewer.h" | 51 | #include "llappviewer.h" |
52 | #include "llfloateravatarpicker.h" | 52 | #include "llfloateravatarpicker.h" |
53 | #include "llbutton.h" | 53 | #include "llbutton.h" |
54 | #include "llcheckboxctrl.h" | 54 | #include "llcheckboxctrl.h" |
55 | #include "llcombobox.h" | 55 | #include "llcombobox.h" |
56 | #include "llfilepicker.h" | 56 | #include "llfilepicker.h" |
57 | #include "llfloaterdaycycle.h" | 57 | #include "llfloaterdaycycle.h" |
58 | #include "llfloatergodtools.h" // for send_sim_wide_deletes() | 58 | #include "llfloatergodtools.h" // for send_sim_wide_deletes() |
59 | #include "llfloatertopobjects.h" // added to fix SL-32336 | 59 | #include "llfloatertopobjects.h" // added to fix SL-32336 |
60 | #include "llfloatergroups.h" | 60 | #include "llfloatergroups.h" |
61 | #include "llfloatertelehub.h" | 61 | #include "llfloatertelehub.h" |
62 | #include "llfloaterwindlight.h" | 62 | #include "llfloaterwindlight.h" |
63 | #include "llinventorymodel.h" | 63 | #include "llinventorymodel.h" |
64 | #include "lllineeditor.h" | 64 | #include "lllineeditor.h" |
65 | #include "llalertdialog.h" | 65 | #include "llalertdialog.h" |
66 | #include "llnamelistctrl.h" | 66 | #include "llnamelistctrl.h" |
67 | #include "llsliderctrl.h" | 67 | #include "llsliderctrl.h" |
68 | #include "llspinctrl.h" | 68 | #include "llspinctrl.h" |
69 | #include "lltabcontainer.h" | 69 | #include "lltabcontainer.h" |
70 | #include "lltextbox.h" | 70 | #include "lltextbox.h" |
71 | #include "llinventory.h" | 71 | #include "llinventory.h" |
72 | #include "lltexturectrl.h" | 72 | #include "lltexturectrl.h" |
73 | #include "lltrans.h" | 73 | #include "lltrans.h" |
74 | #include "llviewercontrol.h" | 74 | #include "llviewercontrol.h" |
75 | #include "lluictrlfactory.h" | 75 | #include "lluictrlfactory.h" |
76 | #include "llviewerimage.h" | 76 | #include "llviewerimage.h" |
77 | #include "llviewerimagelist.h" | 77 | #include "llviewerimagelist.h" |
78 | #include "llviewerregion.h" | 78 | #include "llviewerregion.h" |
79 | #include "llviewerstats.h" | 79 | #include "llviewerstats.h" |
80 | #include "llviewertexteditor.h" | 80 | #include "llviewertexteditor.h" |
81 | #include "llviewerwindow.h" | 81 | #include "llviewerwindow.h" |
82 | #include "llvlcomposition.h" | 82 | #include "llvlcomposition.h" |
83 | #include "hippolimits.h" | 83 | #include "hippolimits.h" |
84 | 84 | ||
85 | // [RLVa:KB] | 85 | // [RLVa:KB] |
86 | #include "rlvhandler.h" | 86 | #include "rlvhandler.h" |
87 | // [/RLVa:KB] | 87 | // [/RLVa:KB] |
88 | 88 | ||
89 | #define ELAR_ENABLED 0 // Enable when server support is implemented | 89 | #define ELAR_ENABLED 0 // Enable when server support is implemented |
90 | 90 | ||
91 | const S32 TERRAIN_TEXTURE_COUNT = 4; | 91 | const S32 TERRAIN_TEXTURE_COUNT = 4; |
92 | const S32 CORNER_COUNT = 4; | 92 | const S32 CORNER_COUNT = 4; |
93 | 93 | ||
94 | ///---------------------------------------------------------------------------- | 94 | ///---------------------------------------------------------------------------- |
95 | /// Local class declaration | 95 | /// Local class declaration |
96 | ///---------------------------------------------------------------------------- | 96 | ///---------------------------------------------------------------------------- |
97 | 97 | ||
98 | class LLDispatchEstateUpdateInfo : public LLDispatchHandler | 98 | class LLDispatchEstateUpdateInfo : public LLDispatchHandler |
99 | { | 99 | { |
100 | public: | 100 | public: |
101 | LLDispatchEstateUpdateInfo() {} | 101 | LLDispatchEstateUpdateInfo() {} |
102 | virtual ~LLDispatchEstateUpdateInfo() {} | 102 | virtual ~LLDispatchEstateUpdateInfo() {} |
103 | virtual bool operator()( | 103 | virtual bool operator()( |
104 | const LLDispatcher* dispatcher, | 104 | const LLDispatcher* dispatcher, |
105 | const std::string& key, | 105 | const std::string& key, |
106 | const LLUUID& invoice, | 106 | const LLUUID& invoice, |
107 | const sparam_t& strings); | 107 | const sparam_t& strings); |
108 | }; | 108 | }; |
109 | 109 | ||
110 | class LLDispatchSetEstateAccess : public LLDispatchHandler | 110 | class LLDispatchSetEstateAccess : public LLDispatchHandler |
111 | { | 111 | { |
112 | public: | 112 | public: |
113 | LLDispatchSetEstateAccess() {} | 113 | LLDispatchSetEstateAccess() {} |
114 | virtual ~LLDispatchSetEstateAccess() {} | 114 | virtual ~LLDispatchSetEstateAccess() {} |
115 | virtual bool operator()( | 115 | virtual bool operator()( |
116 | const LLDispatcher* dispatcher, | 116 | const LLDispatcher* dispatcher, |
117 | const std::string& key, | 117 | const std::string& key, |
118 | const LLUUID& invoice, | 118 | const LLUUID& invoice, |
119 | const sparam_t& strings); | 119 | const sparam_t& strings); |
120 | }; | 120 | }; |
121 | 121 | ||
122 | 122 | ||
123 | /* | 123 | /* |
124 | void unpack_request_params( | 124 | void unpack_request_params( |
125 | LLMessageSystem* msg, | 125 | LLMessageSystem* msg, |
126 | LLDispatcher::sparam_t& strings, | 126 | LLDispatcher::sparam_t& strings, |
127 | LLDispatcher::iparam_t& integers) | 127 | LLDispatcher::iparam_t& integers) |
128 | { | 128 | { |
129 | char str_buf[MAX_STRING]; | 129 | char str_buf[MAX_STRING]; |
130 | S32 str_count = msg->getNumberOfBlocksFast(_PREHASH_StringData); | 130 | S32 str_count = msg->getNumberOfBlocksFast(_PREHASH_StringData); |
131 | S32 i; | 131 | S32 i; |
132 | for (i = 0; i < str_count; ++i) | 132 | for (i = 0; i < str_count; ++i) |
133 | { | 133 | { |
134 | // we treat the SParam as binary data (since it might be an | 134 | // we treat the SParam as binary data (since it might be an |
135 | // LLUUID in compressed form which may have embedded \0's,) | 135 | // LLUUID in compressed form which may have embedded \0's,) |
136 | str_buf[0] = '\0'; | 136 | str_buf[0] = '\0'; |
137 | S32 data_size = msg->getSizeFast(_PREHASH_StringData, i, _PREHASH_SParam); | 137 | S32 data_size = msg->getSizeFast(_PREHASH_StringData, i, _PREHASH_SParam); |
138 | if (data_size >= 0) | 138 | if (data_size >= 0) |
139 | { | 139 | { |
140 | msg->getBinaryDataFast(_PREHASH_StringData, _PREHASH_SParam, | 140 | msg->getBinaryDataFast(_PREHASH_StringData, _PREHASH_SParam, |
141 | str_buf, data_size, i, MAX_STRING - 1); | 141 | str_buf, data_size, i, MAX_STRING - 1); |
142 | strings.push_back(std::string(str_buf, data_size)); | 142 | strings.push_back(std::string(str_buf, data_size)); |
143 | } | 143 | } |
144 | } | 144 | } |
145 | 145 | ||
146 | U32 int_buf; | 146 | U32 int_buf; |
147 | S32 int_count = msg->getNumberOfBlocksFast(_PREHASH_IntegerData); | 147 | S32 int_count = msg->getNumberOfBlocksFast(_PREHASH_IntegerData); |
148 | for (i = 0; i < int_count; ++i) | 148 | for (i = 0; i < int_count; ++i) |
149 | { | 149 | { |
150 | msg->getU32("IntegerData", "IParam", int_buf, i); | 150 | msg->getU32("IntegerData", "IParam", int_buf, i); |
151 | integers.push_back(int_buf); | 151 | integers.push_back(int_buf); |
152 | } | 152 | } |
153 | } | 153 | } |
154 | */ | 154 | */ |
155 | 155 | ||
156 | 156 | ||
157 | 157 | ||
158 | bool estate_dispatch_initialized = false; | 158 | bool estate_dispatch_initialized = false; |
159 | 159 | ||
160 | 160 | ||
161 | ///---------------------------------------------------------------------------- | 161 | ///---------------------------------------------------------------------------- |
162 | /// LLFloaterRegionInfo | 162 | /// LLFloaterRegionInfo |
163 | ///---------------------------------------------------------------------------- | 163 | ///---------------------------------------------------------------------------- |
164 | 164 | ||
165 | //S32 LLFloaterRegionInfo::sRequestSerial = 0; | 165 | //S32 LLFloaterRegionInfo::sRequestSerial = 0; |
166 | LLUUID LLFloaterRegionInfo::sRequestInvoice; | 166 | LLUUID LLFloaterRegionInfo::sRequestInvoice; |
167 | 167 | ||
168 | LLFloaterRegionInfo::LLFloaterRegionInfo(const LLSD& seed) | 168 | LLFloaterRegionInfo::LLFloaterRegionInfo(const LLSD& seed) |
169 | { | 169 | { |
170 | LLUICtrlFactory::getInstance()->buildFloater(this, "floater_region_info.xml", NULL, FALSE); | 170 | LLUICtrlFactory::getInstance()->buildFloater(this, "floater_region_info.xml", NULL, FALSE); |
171 | } | 171 | } |
172 | 172 | ||
173 | BOOL LLFloaterRegionInfo::postBuild() | 173 | BOOL LLFloaterRegionInfo::postBuild() |
174 | { | 174 | { |
175 | mTab = getChild<LLTabContainer>("region_panels"); | 175 | mTab = getChild<LLTabContainer>("region_panels"); |
176 | 176 | ||
177 | // contruct the panels | 177 | // contruct the panels |
178 | LLPanelRegionInfo* panel; | 178 | LLPanelRegionInfo* panel; |
179 | 179 | ||
180 | panel = new LLPanelRegionGeneralInfo; | 180 | panel = new LLPanelRegionGeneralInfo; |
181 | mInfoPanels.push_back(panel); | 181 | mInfoPanels.push_back(panel); |
182 | LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_general.xml"); | 182 | LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_general.xml"); |
183 | mTab->addTabPanel(panel, panel->getLabel(), TRUE); | 183 | mTab->addTabPanel(panel, panel->getLabel(), TRUE); |
184 | 184 | ||
185 | // We only use this panel on Aurora-based sims -- MC | 185 | // We only use this panel on Aurora-based sims -- MC |
186 | std::string url = gAgent.getRegion()->getCapability("DispatchOpenRegionSettings"); | 186 | std::string url = gAgent.getRegion()->getCapability("DispatchOpenRegionSettings"); |
187 | if (!url.empty()) | 187 | if (!url.empty()) |
188 | { | 188 | { |
189 | panel = new LLPanelRegionOpenSettingsInfo; | 189 | panel = new LLPanelRegionOpenSettingsInfo; |
190 | mInfoPanels.push_back(panel); | 190 | mInfoPanels.push_back(panel); |
191 | LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_open_region_settings.xml"); | 191 | LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_open_region_settings.xml"); |
192 | mTab->addTabPanel(panel, panel->getLabel(), FALSE); | 192 | mTab->addTabPanel(panel, panel->getLabel(), FALSE); |
193 | } | 193 | } |
194 | 194 | ||
195 | panel = new LLPanelRegionDebugInfo; | 195 | panel = new LLPanelRegionDebugInfo; |
196 | mInfoPanels.push_back(panel); | 196 | mInfoPanels.push_back(panel); |
197 | LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_debug.xml"); | 197 | LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_debug.xml"); |
198 | mTab->addTabPanel(panel, panel->getLabel(), FALSE); | 198 | mTab->addTabPanel(panel, panel->getLabel(), FALSE); |
199 | 199 | ||
200 | panel = new LLPanelRegionTextureInfo; | 200 | panel = new LLPanelRegionTextureInfo; |
201 | mInfoPanels.push_back(panel); | 201 | mInfoPanels.push_back(panel); |
202 | LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_texture.xml"); | 202 | LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_texture.xml"); |
203 | mTab->addTabPanel(panel, panel->getLabel(), FALSE); | 203 | mTab->addTabPanel(panel, panel->getLabel(), FALSE); |
204 | 204 | ||
205 | panel = new LLPanelRegionTerrainInfo; | 205 | panel = new LLPanelRegionTerrainInfo; |
206 | mInfoPanels.push_back(panel); | 206 | mInfoPanels.push_back(panel); |
207 | LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_terrain.xml"); | 207 | LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_terrain.xml"); |
208 | mTab->addTabPanel(panel, panel->getLabel(), FALSE); | 208 | mTab->addTabPanel(panel, panel->getLabel(), FALSE); |
209 | 209 | ||
210 | panel = new LLPanelEstateInfo; | 210 | panel = new LLPanelEstateInfo; |
211 | mInfoPanels.push_back(panel); | 211 | mInfoPanels.push_back(panel); |
212 | LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_estate.xml"); | 212 | LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_estate.xml"); |
213 | mTab->addTabPanel(panel, panel->getLabel(), FALSE); | 213 | mTab->addTabPanel(panel, panel->getLabel(), FALSE); |
214 | 214 | ||
215 | panel = new LLPanelEstateCovenant; | 215 | panel = new LLPanelEstateCovenant; |
216 | mInfoPanels.push_back(panel); | 216 | mInfoPanels.push_back(panel); |
217 | LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_covenant.xml"); | 217 | LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_covenant.xml"); |
218 | mTab->addTabPanel(panel, panel->getLabel(), FALSE); | 218 | mTab->addTabPanel(panel, panel->getLabel(), FALSE); |
219 | 219 | ||
220 | gMessageSystem->setHandlerFunc( | 220 | gMessageSystem->setHandlerFunc( |
221 | "EstateOwnerMessage", | 221 | "EstateOwnerMessage", |
222 | &processEstateOwnerRequest); | 222 | &processEstateOwnerRequest); |
223 | 223 | ||
224 | return TRUE; | 224 | return TRUE; |
225 | } | 225 | } |
226 | 226 | ||
227 | LLFloaterRegionInfo::~LLFloaterRegionInfo() | 227 | LLFloaterRegionInfo::~LLFloaterRegionInfo() |
228 | { | 228 | { |
229 | } | 229 | } |
230 | 230 | ||
231 | void LLFloaterRegionInfo::onOpen() | 231 | void LLFloaterRegionInfo::onOpen() |
232 | { | 232 | { |
233 | LLRect rect = gSavedSettings.getRect("FloaterRegionInfo"); | 233 | LLRect rect = gSavedSettings.getRect("FloaterRegionInfo"); |
234 | S32 left, top; | 234 | S32 left, top; |
235 | gFloaterView->getNewFloaterPosition(&left, &top); | 235 | gFloaterView->getNewFloaterPosition(&left, &top); |
236 | rect.translate(left,top); | 236 | rect.translate(left,top); |
237 | 237 | ||
238 | refreshFromRegion(gAgent.getRegion()); | 238 | refreshFromRegion(gAgent.getRegion()); |
239 | requestRegionInfo(); | 239 | requestRegionInfo(); |
240 | LLFloater::onOpen(); | 240 | LLFloater::onOpen(); |
241 | } | 241 | } |
242 | 242 | ||
243 | // static | 243 | // static |
244 | void LLFloaterRegionInfo::requestRegionInfo() | 244 | void LLFloaterRegionInfo::requestRegionInfo() |
245 | { | 245 | { |
246 | LLTabContainer* tab = findInstance()->getChild<LLTabContainer>("region_panels"); | 246 | LLTabContainer* tab = findInstance()->getChild<LLTabContainer>("region_panels"); |
247 | 247 | ||
248 | tab->getChild<LLPanel>("General")->setCtrlsEnabled(FALSE); | 248 | tab->getChild<LLPanel>("General")->setCtrlsEnabled(FALSE); |
249 | tab->getChild<LLPanel>("Debug")->setCtrlsEnabled(FALSE); | 249 | tab->getChild<LLPanel>("Debug")->setCtrlsEnabled(FALSE); |
250 | tab->getChild<LLPanel>("Terrain")->setCtrlsEnabled(FALSE); | 250 | tab->getChild<LLPanel>("Terrain")->setCtrlsEnabled(FALSE); |
251 | tab->getChild<LLPanel>("Estate")->setCtrlsEnabled(FALSE); | 251 | tab->getChild<LLPanel>("Estate")->setCtrlsEnabled(FALSE); |
252 | tab->getChild<LLPanel>("RegionSettings")->setCtrlsEnabled(FALSE); | 252 | tab->getChild<LLPanel>("RegionSettings")->setCtrlsEnabled(FALSE); |
253 | 253 | ||
254 | // Must allow anyone to request the RegionInfo data | 254 | // Must allow anyone to request the RegionInfo data |
255 | // so non-owners/non-gods can see the values. | 255 | // so non-owners/non-gods can see the values. |
256 | // Therefore can't use an EstateOwnerMessage JC | 256 | // Therefore can't use an EstateOwnerMessage JC |
257 | LLMessageSystem* msg = gMessageSystem; | 257 | LLMessageSystem* msg = gMessageSystem; |
258 | msg->newMessage("RequestRegionInfo"); | 258 | msg->newMessage("RequestRegionInfo"); |
259 | msg->nextBlock("AgentData"); | 259 | msg->nextBlock("AgentData"); |
260 | msg->addUUID("AgentID", gAgent.getID()); | 260 | msg->addUUID("AgentID", gAgent.getID()); |
261 | msg->addUUID("SessionID", gAgent.getSessionID()); | 261 | msg->addUUID("SessionID", gAgent.getSessionID()); |
262 | gAgent.sendReliableMessage(); | 262 | gAgent.sendReliableMessage(); |
263 | } | 263 | } |
264 | 264 | ||
265 | // static | 265 | // static |
266 | void LLFloaterRegionInfo::processEstateOwnerRequest(LLMessageSystem* msg,void**) | 266 | void LLFloaterRegionInfo::processEstateOwnerRequest(LLMessageSystem* msg,void**) |
267 | { | 267 | { |
268 | static LLDispatcher dispatch; | 268 | static LLDispatcher dispatch; |
269 | if(!findInstance()) | 269 | if(!findInstance()) |
270 | { | 270 | { |
271 | return; | 271 | return; |
272 | } | 272 | } |
273 | 273 | ||
274 | if (!estate_dispatch_initialized) | 274 | if (!estate_dispatch_initialized) |
275 | { | 275 | { |
276 | LLPanelEstateInfo::initDispatch(dispatch); | 276 | LLPanelEstateInfo::initDispatch(dispatch); |
277 | } | 277 | } |
278 | 278 | ||
279 | LLTabContainer* tab = findInstance()->getChild<LLTabContainer>("region_panels"); | 279 | LLTabContainer* tab = findInstance()->getChild<LLTabContainer>("region_panels"); |
280 | LLPanelEstateInfo* panel = (LLPanelEstateInfo*)tab->getChild<LLPanel>("Estate"); | 280 | LLPanelEstateInfo* panel = (LLPanelEstateInfo*)tab->getChild<LLPanel>("Estate"); |
281 | 281 | ||
282 | // unpack the message | 282 | // unpack the message |
283 | std::string request; | 283 | std::string request; |
284 | LLUUID invoice; | 284 | LLUUID invoice; |
285 | LLDispatcher::sparam_t strings; | 285 | LLDispatcher::sparam_t strings; |
286 | LLDispatcher::unpackMessage(msg, request, invoice, strings); | 286 | LLDispatcher::unpackMessage(msg, request, invoice, strings); |
287 | if(invoice != getLastInvoice()) | 287 | if(invoice != getLastInvoice()) |
288 | { | 288 | { |
289 | llwarns << "Mismatched Estate message: " << request << llendl; | 289 | llwarns << "Mismatched Estate message: " << request << llendl; |
290 | return; | 290 | return; |
291 | } | 291 | } |
292 | 292 | ||
293 | //dispatch the message | 293 | //dispatch the message |
294 | dispatch.dispatch(request, invoice, strings); | 294 | dispatch.dispatch(request, invoice, strings); |
295 | 295 | ||
296 | LLViewerRegion* region = gAgent.getRegion(); | 296 | LLViewerRegion* region = gAgent.getRegion(); |
297 | panel->updateControls(region); | 297 | panel->updateControls(region); |
298 | } | 298 | } |
299 | 299 | ||
300 | 300 | ||
301 | // static | 301 | // static |
302 | void LLFloaterRegionInfo::processRegionInfo(LLMessageSystem* msg) | 302 | void LLFloaterRegionInfo::processRegionInfo(LLMessageSystem* msg) |
303 | { | 303 | { |
304 | LLPanel* panel; | 304 | LLPanel* panel; |
305 | 305 | ||
306 | llinfos << "LLFloaterRegionInfo::processRegionInfo" << llendl; | 306 | llinfos << "LLFloaterRegionInfo::processRegionInfo" << llendl; |
307 | if(!findInstance()) | 307 | if(!findInstance()) |
308 | { | 308 | { |
309 | return; | 309 | return; |
310 | } | 310 | } |
311 | 311 | ||
312 | LLTabContainer* tab = findInstance()->getChild<LLTabContainer>("region_panels"); | 312 | LLTabContainer* tab = findInstance()->getChild<LLTabContainer>("region_panels"); |
313 | 313 | ||
314 | LLViewerRegion* region = gAgent.getRegion(); | 314 | LLViewerRegion* region = gAgent.getRegion(); |
315 | BOOL allow_modify = gAgent.isGodlike() || (region && region->canManageEstate()); | 315 | BOOL allow_modify = gAgent.isGodlike() || (region && region->canManageEstate()); |
316 | 316 | ||
317 | // extract message | 317 | // extract message |
318 | std::string sim_name; | 318 | std::string sim_name; |
319 | std::string sim_type = LLTrans::getString("land_type_unknown"); | 319 | std::string sim_type = LLTrans::getString("land_type_unknown"); |
320 | U32 region_flags; | 320 | U32 region_flags; |
321 | U8 agent_limit; | 321 | U8 agent_limit; |
322 | F32 object_bonus_factor; | 322 | F32 object_bonus_factor; |
323 | U8 sim_access; | 323 | U8 sim_access; |
324 | F32 water_height; | 324 | F32 water_height; |
325 | F32 terrain_raise_limit; | 325 | F32 terrain_raise_limit; |
326 | F32 terrain_lower_limit; | 326 | F32 terrain_lower_limit; |
327 | BOOL use_estate_sun; | 327 | BOOL use_estate_sun; |
328 | F32 sun_hour; | 328 | F32 sun_hour; |
329 | msg->getString("RegionInfo", "SimName", sim_name); | 329 | msg->getString("RegionInfo", "SimName", sim_name); |
330 | msg->getU32("RegionInfo", "RegionFlags", region_flags); | 330 | msg->getU32("RegionInfo", "RegionFlags", region_flags); |
331 | msg->getU8("RegionInfo", "MaxAgents", agent_limit); | 331 | msg->getU8("RegionInfo", "MaxAgents", agent_limit); |
332 | msg->getF32("RegionInfo", "ObjectBonusFactor", object_bonus_factor); | 332 | msg->getF32("RegionInfo", "ObjectBonusFactor", object_bonus_factor); |
333 | msg->getU8("RegionInfo", "SimAccess", sim_access); | 333 | msg->getU8("RegionInfo", "SimAccess", sim_access); |
334 | msg->getF32Fast(_PREHASH_RegionInfo, _PREHASH_WaterHeight, water_height); | 334 | msg->getF32Fast(_PREHASH_RegionInfo, _PREHASH_WaterHeight, water_height); |
335 | msg->getF32Fast(_PREHASH_RegionInfo, _PREHASH_TerrainRaiseLimit, terrain_raise_limit); | 335 | msg->getF32Fast(_PREHASH_RegionInfo, _PREHASH_TerrainRaiseLimit, terrain_raise_limit); |
336 | msg->getF32Fast(_PREHASH_RegionInfo, _PREHASH_TerrainLowerLimit, terrain_lower_limit); | 336 | msg->getF32Fast(_PREHASH_RegionInfo, _PREHASH_TerrainLowerLimit, terrain_lower_limit); |
337 | msg->getBOOL("RegionInfo", "UseEstateSun", use_estate_sun); | 337 | msg->getBOOL("RegionInfo", "UseEstateSun", use_estate_sun); |
338 | // actually the "last set" sun hour, not the current sun hour. JC | 338 | // actually the "last set" sun hour, not the current sun hour. JC |
339 | msg->getF32("RegionInfo", "SunHour", sun_hour); | 339 | msg->getF32("RegionInfo", "SunHour", sun_hour); |
340 | // the only reasonable way to decide if we actually have any data is to | 340 | // the only reasonable way to decide if we actually have any data is to |
341 | // check to see if any of these fields have nonzero sizes | 341 | // check to see if any of these fields have nonzero sizes |
342 | if (msg->getSize("RegionInfo2", "ProductSKU") > 0 || | 342 | if (msg->getSize("RegionInfo2", "ProductSKU") > 0 || |
343 | msg->getSize("RegionInfo2", "ProductName") > 0) | 343 | msg->getSize("RegionInfo2", "ProductName") > 0) |
344 | { | 344 | { |
345 | msg->getString("RegionInfo2", "ProductName", sim_type); | 345 | msg->getString("RegionInfo2", "ProductName", sim_type); |
346 | } | 346 | } |
347 | 347 | ||
348 | // GENERAL PANEL | 348 | // GENERAL PANEL |
349 | panel = tab->getChild<LLPanel>("General"); | 349 | panel = tab->getChild<LLPanel>("General"); |
350 | panel->childSetValue("region_text", LLSD(sim_name)); | 350 | panel->childSetValue("region_text", LLSD(sim_name)); |
351 | panel->childSetValue("region_type", LLSD(sim_type)); | 351 | panel->childSetValue("region_type", LLSD(sim_type)); |
352 | panel->childSetValue("version_channel_text", gLastVersionChannel); | 352 | panel->childSetValue("version_channel_text", gLastVersionChannel); |
353 | 353 | ||
354 | panel->childSetValue("block_terraform_check", (region_flags & REGION_FLAGS_BLOCK_TERRAFORM) ? TRUE : FALSE ); | 354 | panel->childSetValue("block_terraform_check", (region_flags & REGION_FLAGS_BLOCK_TERRAFORM) ? TRUE : FALSE ); |
355 | panel->childSetValue("block_fly_check", (region_flags & REGION_FLAGS_BLOCK_FLY) ? TRUE : FALSE ); | 355 | panel->childSetValue("block_fly_check", (region_flags & REGION_FLAGS_BLOCK_FLY) ? TRUE : FALSE ); |
356 | panel->childSetValue("allow_damage_check", (region_flags & REGION_FLAGS_ALLOW_DAMAGE) ? TRUE : FALSE ); | 356 | panel->childSetValue("allow_damage_check", (region_flags & REGION_FLAGS_ALLOW_DAMAGE) ? TRUE : FALSE ); |
357 | panel->childSetValue("restrict_pushobject", (region_flags & REGION_FLAGS_RESTRICT_PUSHOBJECT) ? TRUE : FALSE ); | 357 | panel->childSetValue("restrict_pushobject", (region_flags & REGION_FLAGS_RESTRICT_PUSHOBJECT) ? TRUE : FALSE ); |
358 | panel->childSetValue("allow_land_resell_check", (region_flags & REGION_FLAGS_BLOCK_LAND_RESELL) ? FALSE : TRUE ); | 358 | panel->childSetValue("allow_land_resell_check", (region_flags & REGION_FLAGS_BLOCK_LAND_RESELL) ? FALSE : TRUE ); |
359 | panel->childSetValue("allow_parcel_changes_check", (region_flags & REGION_FLAGS_ALLOW_PARCEL_CHANGES) ? TRUE : FALSE ); | 359 | panel->childSetValue("allow_parcel_changes_check", (region_flags & REGION_FLAGS_ALLOW_PARCEL_CHANGES) ? TRUE : FALSE ); |
360 | panel->childSetValue("block_parcel_search_check", (region_flags & REGION_FLAGS_BLOCK_PARCEL_SEARCH) ? TRUE : FALSE ); | 360 | panel->childSetValue("block_parcel_search_check", (region_flags & REGION_FLAGS_BLOCK_PARCEL_SEARCH) ? TRUE : FALSE ); |
361 | panel->childSetValue("agent_limit_spin", LLSD((F32)agent_limit) ); | 361 | panel->childSetValue("agent_limit_spin", LLSD((F32)agent_limit) ); |
362 | panel->childSetValue("object_bonus_spin", LLSD(object_bonus_factor) ); | 362 | panel->childSetValue("object_bonus_spin", LLSD(object_bonus_factor) ); |
363 | panel->childSetValue("access_combo", LLSD(sim_access) ); | 363 | panel->childSetValue("access_combo", LLSD(sim_access) ); |
364 | 364 | ||
365 | panel->childSetEnabled("access_combo", gAgent.isGodlike() || (region && region->canManageEstate() )); | 365 | |
366 | panel->setCtrlsEnabled(allow_modify); | 366 | // detect teen grid for maturity |
367 | 367 | ||
368 | // RegionSettings PANEL | 368 | U32 parent_estate_id; |
369 | panel = tab->getChild<LLPanel>("RegionSettings"); | 369 | msg->getU32("RegionInfo", "ParentEstateID", parent_estate_id); |
370 | panel->setCtrlsEnabled(allow_modify); | 370 | BOOL teen_grid = (parent_estate_id == 5); // *TODO add field to estate table and test that |
371 | 371 | panel->childSetEnabled("access_combo", gAgent.isGodlike() || (region && region->canManageEstate() && !teen_grid)); | |
372 | // DEBUG PANEL | 372 | panel->setCtrlsEnabled(allow_modify); |
373 | panel = tab->getChild<LLPanel>("Debug"); | 373 | |
374 | 374 | // RegionSettings PANEL | |
375 | panel->childSetValue("region_text", LLSD(sim_name) ); | 375 | panel = tab->getChild<LLPanel>("RegionSettings"); |
376 | panel->childSetValue("disable_scripts_check", LLSD((BOOL)(region_flags & REGION_FLAGS_SKIP_SCRIPTS)) ); | 376 | panel->setCtrlsEnabled(allow_modify); |
377 | panel->childSetValue("disable_collisions_check", LLSD((BOOL)(region_flags & REGION_FLAGS_SKIP_COLLISIONS)) ); | 377 | |
378 | panel->childSetValue("disable_physics_check", LLSD((BOOL)(region_flags & REGION_FLAGS_SKIP_PHYSICS)) ); | 378 | // DEBUG PANEL |
379 | panel->setCtrlsEnabled(allow_modify); | 379 | panel = tab->getChild<LLPanel>("Debug"); |
380 | 380 | ||
381 | // TERRAIN PANEL | 381 | panel->childSetValue("region_text", LLSD(sim_name) ); |
382 | panel = tab->getChild<LLPanel>("Terrain"); | 382 | panel->childSetValue("disable_scripts_check", LLSD((BOOL)(region_flags & REGION_FLAGS_SKIP_SCRIPTS)) ); |
383 | 383 | panel->childSetValue("disable_collisions_check", LLSD((BOOL)(region_flags & REGION_FLAGS_SKIP_COLLISIONS)) ); | |
384 | panel->childSetValue("region_text", LLSD(sim_name)); | 384 | panel->childSetValue("disable_physics_check", LLSD((BOOL)(region_flags & REGION_FLAGS_SKIP_PHYSICS)) ); |
385 | panel->childSetValue("water_height_spin", LLSD(water_height)); | 385 | panel->setCtrlsEnabled(allow_modify); |
386 | panel->childSetValue("terrain_raise_spin", LLSD(terrain_raise_limit)); | 386 | |
387 | panel->childSetValue("terrain_lower_spin", LLSD(terrain_lower_limit)); | 387 | // TERRAIN PANEL |
388 | panel->childSetValue("use_estate_sun_check", LLSD(use_estate_sun)); | 388 | panel = tab->getChild<LLPanel>("Terrain"); |
389 | 389 | ||
390 | panel->childSetValue("fixed_sun_check", LLSD((BOOL)(region_flags & REGION_FLAGS_SUN_FIXED))); | 390 | panel->childSetValue("region_text", LLSD(sim_name)); |
391 | panel->childSetEnabled("fixed_sun_check", allow_modify && !use_estate_sun); | 391 | panel->childSetValue("water_height_spin", LLSD(water_height)); |
392 | panel->childSetValue("sun_hour_slider", LLSD(sun_hour)); | 392 | panel->childSetValue("terrain_raise_spin", LLSD(terrain_raise_limit)); |
393 | panel->childSetEnabled("sun_hour_slider", allow_modify && !use_estate_sun); | 393 | panel->childSetValue("terrain_lower_spin", LLSD(terrain_lower_limit)); |
394 | panel->setCtrlsEnabled(allow_modify); | 394 | panel->childSetValue("use_estate_sun_check", LLSD(use_estate_sun)); |
395 | 395 | ||
396 | getInstance()->refreshFromRegion( gAgent.getRegion() ); | 396 | panel->childSetValue("fixed_sun_check", LLSD((BOOL)(region_flags & REGION_FLAGS_SUN_FIXED))); |
397 | } | 397 | panel->childSetEnabled("fixed_sun_check", allow_modify && !use_estate_sun); |
398 | 398 | panel->childSetValue("sun_hour_slider", LLSD(sun_hour)); | |
399 | // static | 399 | panel->childSetEnabled("sun_hour_slider", allow_modify && !use_estate_sun); |
400 | LLPanelEstateInfo* LLFloaterRegionInfo::getPanelEstate() | 400 | panel->setCtrlsEnabled(allow_modify); |
401 | { | 401 | |
402 | LLFloaterRegionInfo* floater = LLFloaterRegionInfo::getInstance(); | 402 | getInstance()->refreshFromRegion( gAgent.getRegion() ); |
403 | if (!floater) return NULL; | 403 | } |
404 | LLTabContainer* tab = floater->getChild<LLTabContainer>("region_panels"); | 404 | |
405 | LLPanelEstateInfo* panel = (LLPanelEstateInfo*)tab->getChild<LLPanel>("Estate"); | 405 | // static |
406 | return panel; | 406 | LLPanelEstateInfo* LLFloaterRegionInfo::getPanelEstate() |
407 | } | 407 | { |
408 | 408 | LLFloaterRegionInfo* floater = LLFloaterRegionInfo::getInstance(); | |
409 | // static | 409 | if (!floater) return NULL; |
410 | LLPanelEstateCovenant* LLFloaterRegionInfo::getPanelCovenant() | 410 | LLTabContainer* tab = floater->getChild<LLTabContainer>("region_panels"); |
411 | { | 411 | LLPanelEstateInfo* panel = (LLPanelEstateInfo*)tab->getChild<LLPanel>("Estate"); |
412 | LLFloaterRegionInfo* floater = LLFloaterRegionInfo::getInstance(); | 412 | return panel; |
413 | if (!floater) return NULL; | 413 | } |
414 | LLTabContainer* tab = floater->getChild<LLTabContainer>("region_panels"); | 414 | |
415 | LLPanelEstateCovenant* panel = (LLPanelEstateCovenant*)tab->getChild<LLPanel>("Covenant"); | 415 | // static |
416 | return panel; | 416 | LLPanelEstateCovenant* LLFloaterRegionInfo::getPanelCovenant() |
417 | } | 417 | { |
418 | 418 | LLFloaterRegionInfo* floater = LLFloaterRegionInfo::getInstance(); | |
419 | // static | 419 | if (!floater) return NULL; |
420 | LLPanelRegionOpenSettingsInfo* LLFloaterRegionInfo::getPanelOpenSettings() | 420 | LLTabContainer* tab = floater->getChild<LLTabContainer>("region_panels"); |
421 | { | 421 | LLPanelEstateCovenant* panel = (LLPanelEstateCovenant*)tab->getChild<LLPanel>("Covenant"); |
422 | LLFloaterRegionInfo* floater = LLFloaterRegionInfo::getInstance(); | 422 | return panel; |
423 | if (floater) | 423 | } |
424 | { | 424 | |
425 | LLTabContainer* tab = floater->getChild<LLTabContainer>("region_panels"); | 425 | // static |
426 | LLPanelRegionOpenSettingsInfo* panel = (LLPanelRegionOpenSettingsInfo*)tab->getChild<LLPanel>("RegionSettings", FALSE, FALSE); | 426 | LLPanelRegionOpenSettingsInfo* LLFloaterRegionInfo::getPanelOpenSettings() |
427 | if (panel) | 427 | { |
428 | { | 428 | LLFloaterRegionInfo* floater = LLFloaterRegionInfo::getInstance(); |
429 | return panel; | 429 | if (floater) |
430 | } | 430 | { |
431 | } | 431 | LLTabContainer* tab = floater->getChild<LLTabContainer>("region_panels"); |
432 | return NULL; | 432 | LLPanelRegionOpenSettingsInfo* panel = (LLPanelRegionOpenSettingsInfo*)tab->getChild<LLPanel>("RegionSettings", FALSE, FALSE); |
433 | } | 433 | if (panel) |
434 | 434 | { | |
435 | void LLFloaterRegionInfo::refreshFromRegion(LLViewerRegion* region) | 435 | return panel; |
436 | { | 436 | } |
437 | // call refresh from region on all panels | 437 | } |
438 | std::for_each( | 438 | return NULL; |
439 | mInfoPanels.begin(), | 439 | } |
440 | mInfoPanels.end(), | 440 | |
441 | llbind2nd( | 441 | void LLFloaterRegionInfo::refreshFromRegion(LLViewerRegion* region) |
442 | #if LL_WINDOWS | 442 | { |
443 | std::mem_fun1(&LLPanelRegionInfo::refreshFromRegion), | 443 | // call refresh from region on all panels |
444 | #else | 444 | std::for_each( |
445 | std::mem_fun(&LLPanelRegionInfo::refreshFromRegion), | 445 | mInfoPanels.begin(), |
446 | #endif | 446 | mInfoPanels.end(), |
447 | region)); | 447 | llbind2nd( |
448 | } | 448 | #if LL_WINDOWS |
449 | 449 | std::mem_fun1(&LLPanelRegionInfo::refreshFromRegion), | |
450 | // public | 450 | #else |
451 | void LLFloaterRegionInfo::refresh() | 451 | std::mem_fun(&LLPanelRegionInfo::refreshFromRegion), |
452 | { | 452 | #endif |
453 | for(info_panels_t::iterator iter = mInfoPanels.begin(); | 453 | region)); |
454 | iter != mInfoPanels.end(); ++iter) | 454 | } |
455 | { | 455 | |
456 | (*iter)->refresh(); | 456 | // public |
457 | } | 457 | void LLFloaterRegionInfo::refresh() |
458 | } | 458 | { |
459 | 459 | for(info_panels_t::iterator iter = mInfoPanels.begin(); | |
460 | 460 | iter != mInfoPanels.end(); ++iter) | |
461 | ///---------------------------------------------------------------------------- | 461 | { |
462 | /// Local class implementation | 462 | (*iter)->refresh(); |
463 | ///---------------------------------------------------------------------------- | 463 | } |
464 | 464 | } | |
465 | // | 465 | |
466 | // LLPanelRegionInfo | 466 | |
467 | // | 467 | ///---------------------------------------------------------------------------- |
468 | 468 | /// Local class implementation | |
469 | // static | 469 | ///---------------------------------------------------------------------------- |
470 | void LLPanelRegionInfo::onBtnSet(void* user_data) | 470 | |
471 | { | 471 | // |
472 | LLPanelRegionInfo* panel = (LLPanelRegionInfo*)user_data; | 472 | // LLPanelRegionInfo |
473 | if(!panel) return; | 473 | // |
474 | if (panel->sendUpdate()) | 474 | |
475 | { | 475 | // static |
476 | panel->disableButton("apply_btn"); | 476 | void LLPanelRegionInfo::onBtnSet(void* user_data) |
477 | } | 477 | { |
478 | } | 478 | LLPanelRegionInfo* panel = (LLPanelRegionInfo*)user_data; |
479 | 479 | if(!panel) return; | |
480 | //static | 480 | if (panel->sendUpdate()) |
481 | void LLPanelRegionInfo::onChangeChildCtrl(LLUICtrl* ctrl, void* user_data) | 481 | { |
482 | { | 482 | panel->disableButton("apply_btn"); |
483 | if (ctrl) | 483 | } |
484 | { | 484 | } |
485 | LLPanelRegionInfo* panel = (LLPanelRegionInfo*) ctrl->getParent(); | 485 | |
486 | panel->updateChild(ctrl); | 486 | //static |
487 | } | 487 | void LLPanelRegionInfo::onChangeChildCtrl(LLUICtrl* ctrl, void* user_data) |
488 | } | 488 | { |
489 | 489 | if (ctrl) | |
490 | // static | 490 | { |
491 | // Enables the "set" button if it is not already enabled | 491 | LLPanelRegionInfo* panel = (LLPanelRegionInfo*) ctrl->getParent(); |
492 | void LLPanelRegionInfo::onChangeAnything(LLUICtrl* ctrl, void* user_data) | 492 | panel->updateChild(ctrl); |
493 | { | 493 | } |
494 | LLPanelRegionInfo* panel = (LLPanelRegionInfo*)user_data; | 494 | } |
495 | if(panel) | 495 | |
496 | { | 496 | // static |
497 | panel->enableButton("apply_btn"); | 497 | // Enables the "set" button if it is not already enabled |
498 | panel->refresh(); | 498 | void LLPanelRegionInfo::onChangeAnything(LLUICtrl* ctrl, void* user_data) |
499 | } | 499 | { |
500 | } | 500 | LLPanelRegionInfo* panel = (LLPanelRegionInfo*)user_data; |
501 | 501 | if(panel) | |
502 | // static | 502 | { |
503 | // Enables set button on change to line editor | 503 | panel->enableButton("apply_btn"); |
504 | void LLPanelRegionInfo::onChangeText(LLLineEditor* caller, void* user_data) | 504 | panel->refresh(); |
505 | { | 505 | } |
506 | // reuse the previous method | 506 | } |
507 | onChangeAnything(0, user_data); | 507 | |
508 | } | 508 | // static |
509 | 509 | // Enables set button on change to line editor | |
510 | 510 | void LLPanelRegionInfo::onChangeText(LLLineEditor* caller, void* user_data) | |
511 | // virtual | 511 | { |
512 | BOOL LLPanelRegionInfo::postBuild() | 512 | // reuse the previous method |
513 | { | 513 | onChangeAnything(0, user_data); |
514 | childSetAction("apply_btn", onBtnSet, this); | 514 | } |
515 | childDisable("apply_btn"); | 515 | |
516 | refresh(); | 516 | |
517 | return TRUE; | 517 | // virtual |
518 | } | 518 | BOOL LLPanelRegionInfo::postBuild() |
519 | 519 | { | |
520 | // virtual | 520 | childSetAction("apply_btn", onBtnSet, this); |
521 | void LLPanelRegionInfo::updateChild(LLUICtrl* child_ctr) | 521 | childDisable("apply_btn"); |
522 | { | 522 | refresh(); |
523 | } | 523 | return TRUE; |
524 | 524 | } | |
525 | // virtual | 525 | |
526 | bool LLPanelRegionInfo::refreshFromRegion(LLViewerRegion* region) | 526 | // virtual |
527 | { | 527 | void LLPanelRegionInfo::updateChild(LLUICtrl* child_ctr) |
528 | if (region) mHost = region->getHost(); | 528 | { |
529 | return true; | 529 | } |
530 | } | 530 | |
531 | 531 | // virtual | |
532 | void LLPanelRegionInfo::sendEstateOwnerMessage( | 532 | bool LLPanelRegionInfo::refreshFromRegion(LLViewerRegion* region) |
533 | LLMessageSystem* msg, | 533 | { |
534 | const std::string& request, | 534 | if (region) mHost = region->getHost(); |
535 | const LLUUID& invoice, | 535 | return true; |
536 | const strings_t& strings) | 536 | } |
537 | { | 537 | |
538 | llinfos << "Sending estate request '" << request << "'" << llendl; | 538 | void LLPanelRegionInfo::sendEstateOwnerMessage( |
539 | msg->newMessage("EstateOwnerMessage"); | 539 | LLMessageSystem* msg, |
540 | msg->nextBlockFast(_PREHASH_AgentData); | 540 | const std::string& request, |
541 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | 541 | const LLUUID& invoice, |
542 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | 542 | const strings_t& strings) |
543 | msg->addUUIDFast(_PREHASH_TransactionID, LLUUID::null); //not used | 543 | { |
544 | msg->nextBlock("MethodData"); | 544 | llinfos << "Sending estate request '" << request << "'" << llendl; |
545 | msg->addString("Method", request); | 545 | msg->newMessage("EstateOwnerMessage"); |
546 | msg->addUUID("Invoice", invoice); | 546 | msg->nextBlockFast(_PREHASH_AgentData); |
547 | if(strings.empty()) | 547 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); |
548 | { | 548 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); |
549 | msg->nextBlock("ParamList"); | 549 | msg->addUUIDFast(_PREHASH_TransactionID, LLUUID::null); //not used |
550 | msg->addString("Parameter", NULL); | 550 | msg->nextBlock("MethodData"); |
551 | } | 551 | msg->addString("Method", request); |
552 | else | 552 | msg->addUUID("Invoice", invoice); |
553 | { | 553 | if(strings.empty()) |
554 | strings_t::const_iterator it = strings.begin(); | 554 | { |
555 | strings_t::const_iterator end = strings.end(); | 555 | msg->nextBlock("ParamList"); |
556 | for(; it != end; ++it) | 556 | msg->addString("Parameter", NULL); |
557 | { | 557 | } |
558 | msg->nextBlock("ParamList"); | 558 | else |
559 | msg->addString("Parameter", *it); | 559 | { |
560 | } | 560 | strings_t::const_iterator it = strings.begin(); |
561 | } | 561 | strings_t::const_iterator end = strings.end(); |
562 | msg->sendReliable(mHost); | 562 | for(; it != end; ++it) |
563 | } | 563 | { |
564 | 564 | msg->nextBlock("ParamList"); | |
565 | void LLPanelRegionInfo::enableButton(const std::string& btn_name, BOOL enable) | 565 | msg->addString("Parameter", *it); |
566 | { | 566 | } |
567 | childSetEnabled(btn_name, enable); | 567 | } |
568 | } | 568 | msg->sendReliable(mHost); |
569 | 569 | } | |
570 | void LLPanelRegionInfo::disableButton(const std::string& btn_name) | 570 | |
571 | { | 571 | void LLPanelRegionInfo::enableButton(const std::string& btn_name, BOOL enable) |
572 | childDisable(btn_name); | 572 | { |
573 | } | 573 | childSetEnabled(btn_name, enable); |
574 | 574 | } | |
575 | void LLPanelRegionInfo::initCtrl(const std::string& name) | 575 | |
576 | { | 576 | void LLPanelRegionInfo::disableButton(const std::string& btn_name) |
577 | childSetCommitCallback(name, onChangeAnything, this); | 577 | { |
578 | } | 578 | childDisable(btn_name); |
579 | 579 | } | |
580 | void LLPanelRegionInfo::initHelpBtn(const std::string& name, const std::string& xml_alert) | 580 | |
581 | { | 581 | void LLPanelRegionInfo::initCtrl(const std::string& name) |
582 | childSetAction(name, onClickHelp, new std::string(xml_alert)); | 582 | { |
583 | } | 583 | childSetCommitCallback(name, onChangeAnything, this); |
584 | 584 | } | |
585 | // static | 585 | |
586 | void LLPanelRegionInfo::onClickHelp(void* data) | 586 | void LLPanelRegionInfo::initHelpBtn(const std::string& name, const std::string& xml_alert) |
587 | { | 587 | { |
588 | std::string* xml_alert = (std::string*)data; | 588 | childSetAction(name, onClickHelp, new std::string(xml_alert)); |
589 | LLNotifications::instance().add(*xml_alert); | 589 | } |
590 | } | 590 | |
591 | 591 | // static | |
592 | ///////////////////////////////////////////////////////////////////////////// | 592 | void LLPanelRegionInfo::onClickHelp(void* data) |
593 | // LLPanelRegionGeneralInfo | 593 | { |
594 | // | 594 | std::string* xml_alert = (std::string*)data; |
595 | bool LLPanelRegionGeneralInfo::refreshFromRegion(LLViewerRegion* region) | 595 | LLNotifications::instance().add(*xml_alert); |
596 | { | 596 | } |
597 | BOOL allow_modify = gAgent.isGodlike() || (region && region->canManageEstate()); | 597 | |
598 | setCtrlsEnabled(allow_modify); | 598 | ///////////////////////////////////////////////////////////////////////////// |
599 | childDisable("apply_btn"); | 599 | // LLPanelRegionGeneralInfo |
600 | childSetEnabled("access_text", allow_modify); | 600 | // |
601 | // childSetEnabled("access_combo", allow_modify); | 601 | bool LLPanelRegionGeneralInfo::refreshFromRegion(LLViewerRegion* region) |
602 | // now set in processRegionInfo for teen grid detection | 602 | { |
603 | childSetEnabled("kick_btn", allow_modify); | 603 | BOOL allow_modify = gAgent.isGodlike() || (region && region->canManageEstate()); |
604 | childSetEnabled("kick_all_btn", allow_modify); | 604 | setCtrlsEnabled(allow_modify); |
605 | childSetEnabled("im_btn", allow_modify); | 605 | childDisable("apply_btn"); |
606 | childSetEnabled("manage_telehub_btn", allow_modify); | 606 | childSetEnabled("access_text", allow_modify); |
607 | 607 | // childSetEnabled("access_combo", allow_modify); | |
608 | // Data gets filled in by processRegionInfo | 608 | // now set in processRegionInfo for teen grid detection |
609 | 609 | childSetEnabled("kick_btn", allow_modify); | |
610 | return LLPanelRegionInfo::refreshFromRegion(region); | 610 | childSetEnabled("kick_all_btn", allow_modify); |
611 | } | 611 | childSetEnabled("im_btn", allow_modify); |
612 | 612 | childSetEnabled("manage_telehub_btn", allow_modify); | |
613 | BOOL LLPanelRegionGeneralInfo::postBuild() | 613 | |
614 | { | 614 | // Data gets filled in by processRegionInfo |
615 | // Enable the "Apply" button if something is changed. JC | 615 | |
616 | initCtrl("block_terraform_check"); | 616 | return LLPanelRegionInfo::refreshFromRegion(region); |
617 | initCtrl("block_fly_check"); | 617 | } |
618 | initCtrl("allow_damage_check"); | 618 | |
619 | initCtrl("allow_land_resell_check"); | 619 | BOOL LLPanelRegionGeneralInfo::postBuild() |
620 | initCtrl("allow_parcel_changes_check"); | 620 | { |
621 | initCtrl("agent_limit_spin"); | 621 | // Enable the "Apply" button if something is changed. JC |
622 | initCtrl("object_bonus_spin"); | 622 | initCtrl("block_terraform_check"); |
623 | initCtrl("access_combo"); | 623 | initCtrl("block_fly_check"); |
624 | initCtrl("restrict_pushobject"); | 624 | initCtrl("allow_damage_check"); |
625 | initCtrl("block_parcel_search_check"); | 625 | initCtrl("allow_land_resell_check"); |
626 | initCtrl("minimum_agent_age"); | 626 | initCtrl("allow_parcel_changes_check"); |
627 | 627 | initCtrl("agent_limit_spin"); | |
628 | initHelpBtn("terraform_help", "HelpRegionBlockTerraform"); | 628 | initCtrl("object_bonus_spin"); |
629 | initHelpBtn("fly_help", "HelpRegionBlockFly"); | 629 | initCtrl("access_combo"); |
630 | initHelpBtn("damage_help", "HelpRegionAllowDamage"); | 630 | initCtrl("restrict_pushobject"); |
631 | initHelpBtn("agent_limit_help", "HelpRegionAgentLimit"); | 631 | initCtrl("block_parcel_search_check"); |
632 | initHelpBtn("object_bonus_help", "HelpRegionObjectBonus"); | 632 | initCtrl("minimum_agent_age"); |
633 | initHelpBtn("access_help", "HelpRegionMaturity"); | 633 | |
634 | initHelpBtn("restrict_pushobject_help", "HelpRegionRestrictPushObject"); | 634 | initHelpBtn("terraform_help", "HelpRegionBlockTerraform"); |
635 | initHelpBtn("land_resell_help", "HelpRegionLandResell"); | 635 | initHelpBtn("fly_help", "HelpRegionBlockFly"); |
636 | initHelpBtn("parcel_changes_help", "HelpParcelChanges"); | 636 | initHelpBtn("damage_help", "HelpRegionAllowDamage"); |
637 | initHelpBtn("parcel_search_help", "HelpRegionSearch"); | 637 | initHelpBtn("agent_limit_help", "HelpRegionAgentLimit"); |
638 | 638 | initHelpBtn("object_bonus_help", "HelpRegionObjectBonus"); | |
639 | childSetAction("kick_btn", onClickKick, this); | 639 | initHelpBtn("access_help", "HelpRegionMaturity"); |
640 | childSetAction("kick_all_btn", onClickKickAll, this); | 640 | initHelpBtn("restrict_pushobject_help", "HelpRegionRestrictPushObject"); |
641 | childSetAction("im_btn", onClickMessage, this); | 641 | initHelpBtn("land_resell_help", "HelpRegionLandResell"); |
642 | childSetAction("manage_telehub_btn", onClickManageTelehub, this); | 642 | initHelpBtn("parcel_changes_help", "HelpParcelChanges"); |
643 | 643 | initHelpBtn("parcel_search_help", "HelpRegionSearch"); | |
644 | return LLPanelRegionInfo::postBuild(); | 644 | |
645 | } | 645 | childSetAction("kick_btn", onClickKick, this); |
646 | 646 | childSetAction("kick_all_btn", onClickKickAll, this); | |
647 | // static | 647 | childSetAction("im_btn", onClickMessage, this); |
648 | void LLPanelRegionGeneralInfo::onClickKick(void* userdata) | 648 | childSetAction("manage_telehub_btn", onClickManageTelehub, this); |
649 | { | 649 | |
650 | llinfos << "LLPanelRegionGeneralInfo::onClickKick" << llendl; | 650 | return LLPanelRegionInfo::postBuild(); |
651 | LLPanelRegionGeneralInfo* panelp = (LLPanelRegionGeneralInfo*)userdata; | 651 | } |
652 | 652 | ||
653 | // this depends on the grandparent view being a floater | 653 | // static |
654 | // in order to set up floater dependency | 654 | void LLPanelRegionGeneralInfo::onClickKick(void* userdata) |
655 | LLFloater* parent_floater = gFloaterView->getParentFloater(panelp); | 655 | { |
656 | LLFloater* child_floater = LLFloaterAvatarPicker::show(onKickCommit, userdata, FALSE, TRUE); | 656 | llinfos << "LLPanelRegionGeneralInfo::onClickKick" << llendl; |
657 | parent_floater->addDependentFloater(child_floater); | 657 | LLPanelRegionGeneralInfo* panelp = (LLPanelRegionGeneralInfo*)userdata; |
658 | } | 658 | |
659 | 659 | // this depends on the grandparent view being a floater | |
660 | // static | 660 | // in order to set up floater dependency |
661 | void LLPanelRegionGeneralInfo::onKickCommit(const std::vector<std::string>& names, const std::vector<LLUUID>& ids, void* userdata) | 661 | LLFloater* parent_floater = gFloaterView->getParentFloater(panelp); |
662 | { | 662 | LLFloater* child_floater = LLFloaterAvatarPicker::show(onKickCommit, userdata, FALSE, TRUE); |
663 | if (names.empty() || ids.empty()) return; | 663 | parent_floater->addDependentFloater(child_floater); |
664 | if(ids[0].notNull()) | 664 | } |
665 | { | 665 | |
666 | LLPanelRegionGeneralInfo* self = (LLPanelRegionGeneralInfo*)userdata; | 666 | // static |
667 | if(!self) return; | 667 | void LLPanelRegionGeneralInfo::onKickCommit(const std::vector<std::string>& names, const std::vector<LLUUID>& ids, void* userdata) |
668 | strings_t strings; | 668 | { |
669 | // [0] = our agent id | 669 | if (names.empty() || ids.empty()) return; |
670 | // [1] = target agent id | 670 | if(ids[0].notNull()) |
671 | std::string buffer; | 671 | { |
672 | gAgent.getID().toString(buffer); | 672 | LLPanelRegionGeneralInfo* self = (LLPanelRegionGeneralInfo*)userdata; |
673 | strings.push_back(buffer); | 673 | if(!self) return; |
674 | 674 | strings_t strings; | |
675 | ids[0].toString(buffer); | 675 | // [0] = our agent id |
676 | strings.push_back(strings_t::value_type(buffer)); | 676 | // [1] = target agent id |
677 | 677 | std::string buffer; | |
678 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); | 678 | gAgent.getID().toString(buffer); |
679 | self->sendEstateOwnerMessage(gMessageSystem, "teleporthomeuser", invoice, strings); | 679 | strings.push_back(buffer); |
680 | } | 680 | |
681 | } | 681 | ids[0].toString(buffer); |
682 | 682 | strings.push_back(strings_t::value_type(buffer)); | |
683 | // static | 683 | |
684 | void LLPanelRegionGeneralInfo::onClickKickAll(void* userdata) | 684 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); |
685 | { | 685 | self->sendEstateOwnerMessage(gMessageSystem, "teleporthomeuser", invoice, strings); |
686 | llinfos << "LLPanelRegionGeneralInfo::onClickKickAll" << llendl; | 686 | } |
687 | LLNotifications::instance().add("KickUsersFromRegion", | 687 | } |
688 | LLSD(), | 688 | |
689 | LLSD(), | 689 | // static |
690 | boost::bind(&LLPanelRegionGeneralInfo::onKickAllCommit, (LLPanelRegionGeneralInfo*)userdata, _1, _2)); | 690 | void LLPanelRegionGeneralInfo::onClickKickAll(void* userdata) |
691 | } | 691 | { |
692 | 692 | llinfos << "LLPanelRegionGeneralInfo::onClickKickAll" << llendl; | |
693 | bool LLPanelRegionGeneralInfo::onKickAllCommit(const LLSD& notification, const LLSD& response) | 693 | LLNotifications::instance().add("KickUsersFromRegion", |
694 | { | 694 | LLSD(), |
695 | S32 option = LLNotification::getSelectedOption(notification, response); | 695 | LLSD(), |
696 | if (option == 0) | 696 | boost::bind(&LLPanelRegionGeneralInfo::onKickAllCommit, (LLPanelRegionGeneralInfo*)userdata, _1, _2)); |
697 | { | 697 | } |
698 | strings_t strings; | 698 | |
699 | // [0] = our agent id | 699 | bool LLPanelRegionGeneralInfo::onKickAllCommit(const LLSD& notification, const LLSD& response) |
700 | std::string buffer; | 700 | { |
701 | gAgent.getID().toString(buffer); | 701 | S32 option = LLNotification::getSelectedOption(notification, response); |
702 | strings.push_back(buffer); | 702 | if (option == 0) |
703 | 703 | { | |
704 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); | 704 | strings_t strings; |
705 | // historical message name | 705 | // [0] = our agent id |
706 | sendEstateOwnerMessage(gMessageSystem, "teleporthomeallusers", invoice, strings); | 706 | std::string buffer; |
707 | } | 707 | gAgent.getID().toString(buffer); |
708 | return false; | 708 | strings.push_back(buffer); |
709 | } | 709 | |
710 | 710 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); | |
711 | // static | 711 | // historical message name |
712 | void LLPanelRegionGeneralInfo::onClickMessage(void* userdata) | 712 | sendEstateOwnerMessage(gMessageSystem, "teleporthomeallusers", invoice, strings); |
713 | { | 713 | } |
714 | llinfos << "LLPanelRegionGeneralInfo::onClickMessage" << llendl; | 714 | return false; |
715 | LLNotifications::instance().add("MessageRegion", | 715 | } |
716 | LLSD(), | 716 | |
717 | LLSD(), | 717 | // static |
718 | boost::bind(&LLPanelRegionGeneralInfo::onMessageCommit, (LLPanelRegionGeneralInfo*)userdata, _1, _2)); | 718 | void LLPanelRegionGeneralInfo::onClickMessage(void* userdata) |
719 | } | 719 | { |
720 | 720 | llinfos << "LLPanelRegionGeneralInfo::onClickMessage" << llendl; | |
721 | // static | 721 | LLNotifications::instance().add("MessageRegion", |
722 | bool LLPanelRegionGeneralInfo::onMessageCommit(const LLSD& notification, const LLSD& response) | 722 | LLSD(), |
723 | { | 723 | LLSD(), |
724 | if(LLNotification::getSelectedOption(notification, response) != 0) return false; | 724 | boost::bind(&LLPanelRegionGeneralInfo::onMessageCommit, (LLPanelRegionGeneralInfo*)userdata, _1, _2)); |
725 | 725 | } | |
726 | std::string text = response["message"].asString(); | 726 | |
727 | if (text.empty()) return false; | 727 | // static |
728 | 728 | bool LLPanelRegionGeneralInfo::onMessageCommit(const LLSD& notification, const LLSD& response) | |
729 | llinfos << "Message to everyone: " << text << llendl; | 729 | { |
730 | strings_t strings; | 730 | if(LLNotification::getSelectedOption(notification, response) != 0) return false; |
731 | // [0] grid_x, unused here | 731 | |
732 | // [1] grid_y, unused here | 732 | std::string text = response["message"].asString(); |
733 | // [2] agent_id of sender | 733 | if (text.empty()) return false; |
734 | // [3] sender name | 734 | |
735 | // [4] message | 735 | llinfos << "Message to everyone: " << text << llendl; |
736 | strings.push_back("-1"); | 736 | strings_t strings; |
737 | strings.push_back("-1"); | 737 | // [0] grid_x, unused here |
738 | std::string buffer; | 738 | // [1] grid_y, unused here |
739 | gAgent.getID().toString(buffer); | 739 | // [2] agent_id of sender |
740 | strings.push_back(buffer); | 740 | // [3] sender name |
741 | std::string name; | 741 | // [4] message |
742 | gAgent.buildFullname(name); | 742 | strings.push_back("-1"); |
743 | strings.push_back(strings_t::value_type(name)); | 743 | strings.push_back("-1"); |
744 | strings.push_back(strings_t::value_type(text)); | 744 | std::string buffer; |
745 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); | 745 | gAgent.getID().toString(buffer); |
746 | sendEstateOwnerMessage(gMessageSystem, "simulatormessage", invoice, strings); | 746 | strings.push_back(buffer); |
747 | return false; | 747 | std::string name; |
748 | } | 748 | gAgent.buildFullname(name); |
749 | 749 | strings.push_back(strings_t::value_type(name)); | |
750 | // static | 750 | strings.push_back(strings_t::value_type(text)); |
751 | void LLPanelRegionGeneralInfo::onClickManageTelehub(void* data) | 751 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); |
752 | { | 752 | sendEstateOwnerMessage(gMessageSystem, "simulatormessage", invoice, strings); |
753 | LLFloaterRegionInfo::getInstance()->close(); | 753 | return false; |
754 | 754 | } | |
755 | LLFloaterTelehub::show(); | 755 | |
756 | } | 756 | // static |
757 | 757 | void LLPanelRegionGeneralInfo::onClickManageTelehub(void* data) | |
758 | // setregioninfo | 758 | { |
759 | // strings[0] = 'Y' - block terraform, 'N' - not | 759 | LLFloaterRegionInfo::getInstance()->close(); |
760 | // strings[1] = 'Y' - block fly, 'N' - not | 760 | |
761 | // strings[2] = 'Y' - allow damage, 'N' - not | 761 | LLFloaterTelehub::show(); |
762 | // strings[3] = 'Y' - allow land sale, 'N' - not | 762 | } |
763 | // strings[4] = agent limit | 763 | |
764 | // strings[5] = object bonus | 764 | // setregioninfo |
765 | // strings[6] = sim access (0 = unknown, 13 = PG, 21 = Mature, 42 = Adult) | 765 | // strings[0] = 'Y' - block terraform, 'N' - not |
766 | // strings[7] = restrict pushobject | 766 | // strings[1] = 'Y' - block fly, 'N' - not |
767 | // strings[8] = 'Y' - allow parcel subdivide, 'N' - not | 767 | // strings[2] = 'Y' - allow damage, 'N' - not |
768 | // strings[9] = 'Y' - block parcel search, 'N' - allow | 768 | // strings[3] = 'Y' - allow land sale, 'N' - not |
769 | BOOL LLPanelRegionGeneralInfo::sendUpdate() | 769 | // strings[4] = agent limit |
770 | { | 770 | // strings[5] = object bonus |
771 | llinfos << "LLPanelRegionGeneralInfo::sendUpdate()" << llendl; | 771 | // strings[6] = sim access (0 = unknown, 13 = PG, 21 = Mature, 42 = Adult) |
772 | 772 | // strings[7] = restrict pushobject | |
773 | // First try using a Cap. If that fails use the old method. | 773 | // strings[8] = 'Y' - allow parcel subdivide, 'N' - not |
774 | LLSD body; | 774 | // strings[9] = 'Y' - block parcel search, 'N' - allow |
775 | std::string url = gAgent.getRegion()->getCapability("DispatchRegionInfo"); | 775 | BOOL LLPanelRegionGeneralInfo::sendUpdate() |
776 | if (!url.empty()) | 776 | { |
777 | { | 777 | llinfos << "LLPanelRegionGeneralInfo::sendUpdate()" << llendl; |
778 | body["block_terraform"] = childGetValue("block_terraform_check"); | 778 | |
779 | body["block_fly"] = childGetValue("block_fly_check"); | 779 | // First try using a Cap. If that fails use the old method. |
780 | body["allow_damage"] = childGetValue("allow_damage_check"); | 780 | LLSD body; |
781 | body["allow_land_resell"] = childGetValue("allow_land_resell_check"); | 781 | std::string url = gAgent.getRegion()->getCapability("DispatchRegionInfo"); |
782 | body["agent_limit"] = childGetValue("agent_limit_spin"); | 782 | if (!url.empty()) |
783 | body["prim_bonus"] = childGetValue("object_bonus_spin"); | 783 | { |
784 | body["sim_access"] = childGetValue("access_combo"); | 784 | body["block_terraform"] = childGetValue("block_terraform_check"); |
785 | body["restrict_pushobject"] = childGetValue("restrict_pushobject"); | 785 | body["block_fly"] = childGetValue("block_fly_check"); |
786 | body["allow_parcel_changes"] = childGetValue("allow_parcel_changes_check"); | 786 | body["allow_damage"] = childGetValue("allow_damage_check"); |
787 | body["block_parcel_search"] = childGetValue("block_parcel_search_check"); | 787 | body["allow_land_resell"] = childGetValue("allow_land_resell_check"); |
788 | body["minimum_agent_age"] = childGetValue("minimum_agent_age"); | 788 | body["agent_limit"] = childGetValue("agent_limit_spin"); |
789 | 789 | body["prim_bonus"] = childGetValue("object_bonus_spin"); | |
790 | LLHTTPClient::post(url, body, new LLHTTPClient::Responder()); | 790 | body["sim_access"] = childGetValue("access_combo"); |
791 | } | 791 | body["restrict_pushobject"] = childGetValue("restrict_pushobject"); |
792 | else | 792 | body["allow_parcel_changes"] = childGetValue("allow_parcel_changes_check"); |
793 | { | 793 | body["block_parcel_search"] = childGetValue("block_parcel_search_check"); |
794 | strings_t strings; | 794 | body["minimum_agent_age"] = childGetValue("minimum_agent_age"); |
795 | std::string buffer; | 795 | |
796 | 796 | LLHTTPClient::post(url, body, new LLHTTPClient::Responder()); | |
797 | buffer = llformat("%s", (childGetValue("block_terraform_check").asBoolean() ? "Y" : "N")); | 797 | } |
798 | strings.push_back(strings_t::value_type(buffer)); | 798 | else |
799 | 799 | { | |
800 | buffer = llformat("%s", (childGetValue("block_fly_check").asBoolean() ? "Y" : "N")); | 800 | strings_t strings; |
801 | strings.push_back(strings_t::value_type(buffer)); | 801 | std::string buffer; |
802 | 802 | ||
803 | buffer = llformat("%s", (childGetValue("allow_damage_check").asBoolean() ? "Y" : "N")); | 803 | buffer = llformat("%s", (childGetValue("block_terraform_check").asBoolean() ? "Y" : "N")); |
804 | strings.push_back(strings_t::value_type(buffer)); | 804 | strings.push_back(strings_t::value_type(buffer)); |
805 | 805 | ||
806 | buffer = llformat("%s", (childGetValue("allow_land_resell_check").asBoolean() ? "Y" : "N")); | 806 | buffer = llformat("%s", (childGetValue("block_fly_check").asBoolean() ? "Y" : "N")); |
807 | strings.push_back(strings_t::value_type(buffer)); | 807 | strings.push_back(strings_t::value_type(buffer)); |
808 | 808 | ||
809 | F32 value = (F32)childGetValue("agent_limit_spin").asReal(); | 809 | buffer = llformat("%s", (childGetValue("allow_damage_check").asBoolean() ? "Y" : "N")); |
810 | buffer = llformat("%f", value); | 810 | strings.push_back(strings_t::value_type(buffer)); |
811 | strings.push_back(strings_t::value_type(buffer)); | 811 | |
812 | 812 | buffer = llformat("%s", (childGetValue("allow_land_resell_check").asBoolean() ? "Y" : "N")); | |
813 | value = (F32)childGetValue("object_bonus_spin").asReal(); | 813 | strings.push_back(strings_t::value_type(buffer)); |
814 | buffer = llformat("%f", value); | 814 | |
815 | strings.push_back(strings_t::value_type(buffer)); | 815 | F32 value = (F32)childGetValue("agent_limit_spin").asReal(); |
816 | 816 | buffer = llformat("%f", value); | |
817 | buffer = llformat("%d", childGetValue("access_combo").asInteger()); | 817 | strings.push_back(strings_t::value_type(buffer)); |
818 | strings.push_back(strings_t::value_type(buffer)); | 818 | |
819 | 819 | value = (F32)childGetValue("object_bonus_spin").asReal(); | |
820 | buffer = llformat("%s", (childGetValue("restrict_pushobject").asBoolean() ? "Y" : "N")); | 820 | buffer = llformat("%f", value); |
821 | strings.push_back(strings_t::value_type(buffer)); | 821 | strings.push_back(strings_t::value_type(buffer)); |
822 | 822 | ||
823 | buffer = llformat("%s", (childGetValue("allow_parcel_changes_check").asBoolean() ? "Y" : "N")); | 823 | buffer = llformat("%d", childGetValue("access_combo").asInteger()); |
824 | strings.push_back(strings_t::value_type(buffer)); | 824 | strings.push_back(strings_t::value_type(buffer)); |
825 | 825 | ||
826 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); | 826 | buffer = llformat("%s", (childGetValue("restrict_pushobject").asBoolean() ? "Y" : "N")); |
827 | sendEstateOwnerMessage(gMessageSystem, "setregioninfo", invoice, strings); | 827 | strings.push_back(strings_t::value_type(buffer)); |
828 | } | 828 | |
829 | 829 | buffer = llformat("%s", (childGetValue("allow_parcel_changes_check").asBoolean() ? "Y" : "N")); | |
830 | // if we changed access levels, tell user about it | 830 | strings.push_back(strings_t::value_type(buffer)); |
831 | LLViewerRegion* region = gAgent.getRegion(); | 831 | |
832 | if (region && (childGetValue("access_combo").asInteger() != region->getSimAccess()) ) | 832 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); |
833 | { | 833 | sendEstateOwnerMessage(gMessageSystem, "setregioninfo", invoice, strings); |
834 | LLNotifications::instance().add("RegionMaturityChange"); | 834 | } |
835 | } | 835 | |
836 | 836 | // if we changed access levels, tell user about it | |
837 | return TRUE; | 837 | LLViewerRegion* region = gAgent.getRegion(); |
838 | } | 838 | if (region && (childGetValue("access_combo").asInteger() != region->getSimAccess()) ) |
839 | 839 | { | |
840 | ///////////////////////////////////////////////////////////////////////////// | 840 | LLNotifications::instance().add("RegionMaturityChange"); |
841 | // LLPanelRegionOpenSettingsInfo | 841 | } |
842 | // | 842 | |
843 | bool LLPanelRegionOpenSettingsInfo::refreshFromRegion(LLViewerRegion* region) | 843 | return TRUE; |
844 | { | 844 | } |
845 | // Data gets filled in by hippo manager | 845 | |
846 | BOOL allow_modify = gAgent.isGodlike() || (region && region->canManageEstate()); | 846 | ///////////////////////////////////////////////////////////////////////////// |
847 | 847 | // LLPanelRegionOpenSettingsInfo | |
848 | childSetValue("draw_distance", gAgent.mDrawDistance); | 848 | // |
849 | childSetValue("force_draw_distance", gAgent.mLockedDrawDistance); | 849 | bool LLPanelRegionOpenSettingsInfo::refreshFromRegion(LLViewerRegion* region) |
850 | childSetValue("allow_minimap", LLSD(gHippoLimits->mAllowMinimap)); | 850 | { |
851 | childSetValue("allow_physical_prims", (gHippoLimits->mAllowPhysicalPrims == 1 ? TRUE : FALSE)); | 851 | // Data gets filled in by hippo manager |
852 | childSetValue("max_drag_distance", LLSD(gHippoLimits->mMaxDragDistance)); | 852 | BOOL allow_modify = gAgent.isGodlike() || (region && region->canManageEstate()); |
853 | childSetValue("min_hole_size", LLSD(gHippoLimits->mMinHoleSize)); | 853 | |
854 | childSetValue("max_hollow_size", LLSD(gHippoLimits->mMaxHollow)); | 854 | childSetValue("draw_distance", gAgent.mDrawDistance); |
855 | childSetValue("max_inventory_items_transfer", LLSD(gHippoLimits->mMaxInventoryItemsTransfer)); | 855 | childSetValue("force_draw_distance", gAgent.mLockedDrawDistance); |
856 | childSetValue("max_link_count", LLSD(gHippoLimits->mMaxLinkedPrims)); | 856 | childSetValue("allow_minimap", LLSD(gHippoLimits->mAllowMinimap)); |
857 | childSetValue("max_link_count_phys", LLSD(gHippoLimits->mMaxPhysLinkedPrims)); | 857 | childSetValue("allow_physical_prims", (gHippoLimits->mAllowPhysicalPrims == 1 ? TRUE : FALSE)); |
858 | childSetValue("max_phys_prim_scale", LLSD(gHippoLimits->mMaxPrimScale));//Todo:Fix | 858 | childSetValue("max_drag_distance", LLSD(gHippoLimits->mMaxDragDistance)); |
859 | childSetValue("max_prim_scale", LLSD(gHippoLimits->mMaxPrimScale)); | 859 | childSetValue("min_hole_size", LLSD(gHippoLimits->mMinHoleSize)); |
860 | childSetValue("min_prim_scale", LLSD(gHippoLimits->mMinPrimScale)); | 860 | childSetValue("max_hollow_size", LLSD(gHippoLimits->mMaxHollow)); |
861 | childSetValue("render_water", LLSD(gHippoLimits->mRenderWater)); | 861 | childSetValue("max_inventory_items_transfer", LLSD(gHippoLimits->mMaxInventoryItemsTransfer)); |
862 | childSetValue("show_tags", LLSD(gHippoLimits->mRenderName)); | 862 | childSetValue("max_link_count", LLSD(gHippoLimits->mMaxLinkedPrims)); |
863 | childSetValue("max_groups", LLSD(gHippoLimits->mMaxAgentGroups)); | 863 | childSetValue("max_link_count_phys", LLSD(gHippoLimits->mMaxPhysLinkedPrims)); |
864 | childSetValue("allow_parcel_windlight", LLSD(gHippoLimits->mAllowParcelWindLight)); | 864 | childSetValue("max_phys_prim_scale", LLSD(gHippoLimits->mMaxPrimScale));//Todo:Fix |
865 | childSetValue("enable_teen_mode", LLSD(gHippoLimits->mEnableTeenMode)); | 865 | childSetValue("max_prim_scale", LLSD(gHippoLimits->mMaxPrimScale)); |
866 | childSetValue("enforce_max_build", LLSD(gHippoLimits->mEnforceMaxBuild)); | 866 | childSetValue("min_prim_scale", LLSD(gHippoLimits->mMinPrimScale)); |
867 | 867 | childSetValue("render_water", LLSD(gHippoLimits->mRenderWater)); | |
868 | setCtrlsEnabled(allow_modify); | 868 | childSetValue("show_tags", LLSD(gHippoLimits->mRenderName)); |
869 | 869 | childSetValue("max_groups", LLSD(gHippoLimits->mMaxAgentGroups)); | |
870 | return LLPanelRegionInfo::refreshFromRegion(region); | 870 | childSetValue("allow_parcel_windlight", LLSD(gHippoLimits->mAllowParcelWindLight)); |
871 | } | 871 | childSetValue("enable_teen_mode", LLSD(gHippoLimits->mEnableTeenMode)); |
872 | 872 | childSetValue("enforce_max_build", LLSD(gHippoLimits->mEnforceMaxBuild)); | |
873 | BOOL LLPanelRegionOpenSettingsInfo::postBuild() | 873 | |
874 | { | 874 | setCtrlsEnabled(allow_modify); |
875 | // Enable the "Apply" button if something is changed. JC | 875 | |
876 | initCtrl("draw_distance"); | 876 | return LLPanelRegionInfo::refreshFromRegion(region); |
877 | initCtrl("force_draw_distance"); | 877 | } |
878 | initCtrl("max_drag_distance"); | 878 | |
879 | initCtrl("max_prim_scale"); | 879 | BOOL LLPanelRegionOpenSettingsInfo::postBuild() |
880 | initCtrl("min_prim_scale"); | 880 | { |
881 | initCtrl("max_phys_prim_scale"); | 881 | // Enable the "Apply" button if something is changed. JC |
882 | initCtrl("max_hollow_size"); | 882 | initCtrl("draw_distance"); |
883 | initCtrl("min_hole_size"); | 883 | initCtrl("force_draw_distance"); |
884 | initCtrl("max_link_count"); | 884 | initCtrl("max_drag_distance"); |
885 | initCtrl("max_link_count_phys"); | 885 | initCtrl("max_prim_scale"); |
886 | initCtrl("max_inventory_items_transfer"); | 886 | initCtrl("min_prim_scale"); |
887 | initCtrl("max_groups"); | 887 | initCtrl("max_phys_prim_scale"); |
888 | initCtrl("render_water"); | 888 | initCtrl("max_hollow_size"); |
889 | initCtrl("allow_minimap"); | 889 | initCtrl("min_hole_size"); |
890 | initCtrl("allow_physical_prims"); | 890 | initCtrl("max_link_count"); |
891 | initCtrl("enable_teen_mode"); | 891 | initCtrl("max_link_count_phys"); |
892 | initCtrl("show_tags"); | 892 | initCtrl("max_inventory_items_transfer"); |
893 | initCtrl("allow_parcel_windlight"); | 893 | initCtrl("max_groups"); |
894 | 894 | initCtrl("render_water"); | |
895 | initHelpBtn("force_draw_distance_help", "HelpForceDrawDistance"); | 895 | initCtrl("allow_minimap"); |
896 | initHelpBtn("max_inventory_items_transfer_help", "HelpMaxInventoryItemsTransfer"); | 896 | initCtrl("allow_physical_prims"); |
897 | initHelpBtn("max_groups_help", "HelpMaxGroups"); | 897 | initCtrl("enable_teen_mode"); |
898 | initHelpBtn("render_water_help", "HelpRenderWater"); | 898 | initCtrl("show_tags"); |
899 | initHelpBtn("allow_minimap_help", "HelpAllowMinimap"); | 899 | initCtrl("allow_parcel_windlight"); |
900 | initHelpBtn("allow_physical_prims_help", "HelpAllowPhysicalPrims"); | 900 | |
901 | initHelpBtn("enable_teen_mode_help", "HelpEnableTeenMode"); | 901 | initHelpBtn("force_draw_distance_help", "HelpForceDrawDistance"); |
902 | initHelpBtn("show_tags_help", "HelpShowTags"); | 902 | initHelpBtn("max_inventory_items_transfer_help", "HelpMaxInventoryItemsTransfer"); |
903 | initHelpBtn("allow_parcel_windlight_help", "HelpAllowParcelWindLight"); | 903 | initHelpBtn("max_groups_help", "HelpMaxGroups"); |
904 | 904 | initHelpBtn("render_water_help", "HelpRenderWater"); | |
905 | childSetAction("apply_ors_btn", onClickOrs, this); | 905 | initHelpBtn("allow_minimap_help", "HelpAllowMinimap"); |
906 | 906 | initHelpBtn("allow_physical_prims_help", "HelpAllowPhysicalPrims"); | |
907 | refreshFromRegion(gAgent.getRegion()); | 907 | initHelpBtn("enable_teen_mode_help", "HelpEnableTeenMode"); |
908 | 908 | initHelpBtn("show_tags_help", "HelpShowTags"); | |
909 | return LLPanelRegionInfo::postBuild(); | 909 | initHelpBtn("allow_parcel_windlight_help", "HelpAllowParcelWindLight"); |
910 | } | 910 | |
911 | 911 | childSetAction("apply_ors_btn", onClickOrs, this); | |
912 | // setregioninfo | 912 | |
913 | // strings[0] = 'Y' - block terraform, 'N' - not | 913 | refreshFromRegion(gAgent.getRegion()); |
914 | // strings[1] = 'Y' - block fly, 'N' - not | 914 | |
915 | // strings[2] = 'Y' - allow damage, 'N' - not | 915 | return LLPanelRegionInfo::postBuild(); |
916 | // strings[3] = 'Y' - allow land sale, 'N' - not | 916 | } |
917 | // strings[4] = agent limit | 917 | |
918 | // strings[5] = object bonus | 918 | // setregioninfo |
919 | // strings[6] = sim access (0 = unknown, 13 = PG, 21 = Mature, 42 = Adult) | 919 | // strings[0] = 'Y' - block terraform, 'N' - not |
920 | // strings[7] = restrict pushobject | 920 | // strings[1] = 'Y' - block fly, 'N' - not |
921 | // strings[8] = 'Y' - allow parcel subdivide, 'N' - not | 921 | // strings[2] = 'Y' - allow damage, 'N' - not |
922 | // strings[9] = 'Y' - block parcel search, 'N' - allow | 922 | // strings[3] = 'Y' - allow land sale, 'N' - not |
923 | void LLPanelRegionOpenSettingsInfo::onClickOrs(void* userdata) | 923 | // strings[4] = agent limit |
924 | { | 924 | // strings[5] = object bonus |
925 | LLPanelRegionOpenSettingsInfo* self; | 925 | // strings[6] = sim access (0 = unknown, 13 = PG, 21 = Mature, 42 = Adult) |
926 | self = (LLPanelRegionOpenSettingsInfo*)userdata; | 926 | // strings[7] = restrict pushobject |
927 | 927 | // strings[8] = 'Y' - allow parcel subdivide, 'N' - not | |
928 | llinfos << "LLPanelRegionOpenSettingsInfo::onClickOrs()" << llendl; | 928 | // strings[9] = 'Y' - block parcel search, 'N' - allow |
929 | 929 | void LLPanelRegionOpenSettingsInfo::onClickOrs(void* userdata) | |
930 | LLSD body; | 930 | { |
931 | std::string url = gAgent.getRegion()->getCapability("DispatchOpenRegionSettings"); | 931 | LLPanelRegionOpenSettingsInfo* self; |
932 | if (!url.empty()) | 932 | self = (LLPanelRegionOpenSettingsInfo*)userdata; |
933 | { | 933 | |
934 | body["draw_distance"] = self->childGetValue("draw_distance"); | 934 | llinfos << "LLPanelRegionOpenSettingsInfo::onClickOrs()" << llendl; |
935 | body["force_draw_distance"] = self->childGetValue("force_draw_distance"); | 935 | |
936 | body["allow_minimap"] = self->childGetValue("allow_minimap"); | 936 | LLSD body; |
937 | body["allow_physical_prims"] = self->childGetValue("allow_physical_prims"); | 937 | std::string url = gAgent.getRegion()->getCapability("DispatchOpenRegionSettings"); |
938 | body["max_drag_distance"] = self->childGetValue("max_drag_distance"); | 938 | if (!url.empty()) |
939 | body["min_hole_size"] = self->childGetValue("min_hole_size"); | 939 | { |
940 | body["max_hollow_size"] = self->childGetValue("max_hollow_size"); | 940 | body["draw_distance"] = self->childGetValue("draw_distance"); |
941 | body["max_inventory_items_transfer"] = self->childGetValue("max_inventory_items_transfer"); | 941 | body["force_draw_distance"] = self->childGetValue("force_draw_distance"); |
942 | body["max_link_count"] = self->childGetValue("max_link_count"); | 942 | body["allow_minimap"] = self->childGetValue("allow_minimap"); |
943 | body["max_link_count_phys"] = self->childGetValue("max_link_count_phys"); | 943 | body["allow_physical_prims"] = self->childGetValue("allow_physical_prims"); |
944 | body["max_phys_prim_scale"] = self->childGetValue("max_phys_prim_scale"); | 944 | body["max_drag_distance"] = self->childGetValue("max_drag_distance"); |
945 | body["max_prim_scale"] = self->childGetValue("max_prim_scale"); | 945 | body["min_hole_size"] = self->childGetValue("min_hole_size"); |
946 | body["min_prim_scale"] = self->childGetValue("min_prim_scale"); | 946 | body["max_hollow_size"] = self->childGetValue("max_hollow_size"); |
947 | body["render_water"] = self->childGetValue("render_water"); | 947 | body["max_inventory_items_transfer"] = self->childGetValue("max_inventory_items_transfer"); |
948 | body["show_tags"] = self->childGetValue("show_tags"); | 948 | body["max_link_count"] = self->childGetValue("max_link_count"); |
949 | body["max_groups"] = self->childGetValue("max_groups"); | 949 | body["max_link_count_phys"] = self->childGetValue("max_link_count_phys"); |
950 | body["allow_parcel_windlight"] = self->childGetValue("allow_parcel_windlight"); | 950 | body["max_phys_prim_scale"] = self->childGetValue("max_phys_prim_scale"); |
951 | body["enable_teen_mode"] = self->childGetValue("enable_teen_mode"); | 951 | body["max_prim_scale"] = self->childGetValue("max_prim_scale"); |
952 | body["enforce_max_build"] = self->childGetValue("enforce_max_build"); | 952 | body["min_prim_scale"] = self->childGetValue("min_prim_scale"); |
953 | 953 | body["render_water"] = self->childGetValue("render_water"); | |
954 | LLHTTPClient::post(url, body, new LLHTTPClient::Responder()); | 954 | body["show_tags"] = self->childGetValue("show_tags"); |
955 | } | 955 | body["max_groups"] = self->childGetValue("max_groups"); |
956 | } | 956 | body["allow_parcel_windlight"] = self->childGetValue("allow_parcel_windlight"); |
957 | 957 | body["enable_teen_mode"] = self->childGetValue("enable_teen_mode"); | |
958 | ///////////////////////////////////////////////////////////////////////////// | 958 | body["enforce_max_build"] = self->childGetValue("enforce_max_build"); |
959 | // LLPanelRegionDebugInfo | 959 | |
960 | ///////////////////////////////////////////////////////////////////////////// | 960 | LLHTTPClient::post(url, body, new LLHTTPClient::Responder()); |
961 | BOOL LLPanelRegionDebugInfo::postBuild() | 961 | } |
962 | { | 962 | } |
963 | LLPanelRegionInfo::postBuild(); | 963 | |
964 | initCtrl("disable_scripts_check"); | 964 | ///////////////////////////////////////////////////////////////////////////// |
965 | initCtrl("disable_collisions_check"); | 965 | // LLPanelRegionDebugInfo |
966 | initCtrl("disable_physics_check"); | 966 | ///////////////////////////////////////////////////////////////////////////// |
967 | 967 | BOOL LLPanelRegionDebugInfo::postBuild() | |
968 | initHelpBtn("disable_scripts_help", "HelpRegionDisableScripts"); | 968 | { |
969 | initHelpBtn("disable_collisions_help", "HelpRegionDisableCollisions"); | 969 | LLPanelRegionInfo::postBuild(); |
970 | initHelpBtn("disable_physics_help", "HelpRegionDisablePhysics"); | 970 | initCtrl("disable_scripts_check"); |
971 | initHelpBtn("top_colliders_help", "HelpRegionTopColliders"); | 971 | initCtrl("disable_collisions_check"); |
972 | initHelpBtn("top_scripts_help", "HelpRegionTopScripts"); | 972 | initCtrl("disable_physics_check"); |
973 | initHelpBtn("restart_help", "HelpRegionRestart"); | 973 | |
974 | initHelpBtn("minimum_agent_age_help", "HelpRegionMinimumAge"); | 974 | initHelpBtn("disable_scripts_help", "HelpRegionDisableScripts"); |
975 | 975 | initHelpBtn("disable_collisions_help", "HelpRegionDisableCollisions"); | |
976 | 976 | initHelpBtn("disable_physics_help", "HelpRegionDisablePhysics"); | |
977 | childSetAction("choose_avatar_btn", onClickChooseAvatar, this); | 977 | initHelpBtn("top_colliders_help", "HelpRegionTopColliders"); |
978 | childSetAction("return_btn", onClickReturn, this); | 978 | initHelpBtn("top_scripts_help", "HelpRegionTopScripts"); |
979 | childSetAction("top_colliders_btn", onClickTopColliders, this); | 979 | initHelpBtn("restart_help", "HelpRegionRestart"); |
980 | childSetAction("top_scripts_btn", onClickTopScripts, this); | 980 | initHelpBtn("minimum_agent_age_help", "HelpRegionMinimumAge"); |
981 | childSetAction("restart_btn", onClickRestart, this); | 981 | |
982 | childSetAction("cancel_restart_btn", onClickCancelRestart, this); | 982 | |
983 | 983 | childSetAction("choose_avatar_btn", onClickChooseAvatar, this); | |
984 | return TRUE; | 984 | childSetAction("return_btn", onClickReturn, this); |
985 | } | 985 | childSetAction("top_colliders_btn", onClickTopColliders, this); |
986 | 986 | childSetAction("top_scripts_btn", onClickTopScripts, this); | |
987 | // virtual | 987 | childSetAction("restart_btn", onClickRestart, this); |
988 | bool LLPanelRegionDebugInfo::refreshFromRegion(LLViewerRegion* region) | 988 | childSetAction("cancel_restart_btn", onClickCancelRestart, this); |
989 | { | 989 | |
990 | BOOL allow_modify = gAgent.isGodlike() || (region && region->canManageEstate()); | 990 | return TRUE; |
991 | setCtrlsEnabled(allow_modify); | 991 | } |
992 | childDisable("apply_btn"); | 992 | |
993 | childDisable("target_avatar_name"); | 993 | // virtual |
994 | 994 | bool LLPanelRegionDebugInfo::refreshFromRegion(LLViewerRegion* region) | |
995 | childSetEnabled("choose_avatar_btn", allow_modify); | 995 | { |
996 | childSetEnabled("return_scripts", allow_modify && !mTargetAvatar.isNull()); | 996 | BOOL allow_modify = gAgent.isGodlike() || (region && region->canManageEstate()); |
997 | childSetEnabled("return_other_land", allow_modify && !mTargetAvatar.isNull()); | 997 | setCtrlsEnabled(allow_modify); |
998 | childSetEnabled("return_estate_wide", allow_modify && !mTargetAvatar.isNull()); | 998 | childDisable("apply_btn"); |
999 | childSetEnabled("return_btn", allow_modify && !mTargetAvatar.isNull()); | 999 | childDisable("target_avatar_name"); |
1000 | childSetEnabled("top_colliders_btn", allow_modify); | 1000 | |
1001 | childSetEnabled("top_scripts_btn", allow_modify); | 1001 | childSetEnabled("choose_avatar_btn", allow_modify); |
1002 | childSetEnabled("restart_btn", allow_modify); | 1002 | childSetEnabled("return_scripts", allow_modify && !mTargetAvatar.isNull()); |
1003 | childSetEnabled("cancel_restart_btn", allow_modify); | 1003 | childSetEnabled("return_other_land", allow_modify && !mTargetAvatar.isNull()); |
1004 | 1004 | childSetEnabled("return_estate_wide", allow_modify && !mTargetAvatar.isNull()); | |
1005 | return LLPanelRegionInfo::refreshFromRegion(region); | 1005 | childSetEnabled("return_btn", allow_modify && !mTargetAvatar.isNull()); |
1006 | } | 1006 | childSetEnabled("top_colliders_btn", allow_modify); |
1007 | 1007 | childSetEnabled("top_scripts_btn", allow_modify); | |
1008 | // virtual | 1008 | childSetEnabled("restart_btn", allow_modify); |
1009 | BOOL LLPanelRegionDebugInfo::sendUpdate() | 1009 | childSetEnabled("cancel_restart_btn", allow_modify); |
1010 | { | 1010 | |
1011 | llinfos << "LLPanelRegionDebugInfo::sendUpdate" << llendl; | 1011 | return LLPanelRegionInfo::refreshFromRegion(region); |
1012 | strings_t strings; | 1012 | } |
1013 | std::string buffer; | 1013 | |
1014 | 1014 | // virtual | |
1015 | buffer = llformat("%s", (childGetValue("disable_scripts_check").asBoolean() ? "Y" : "N")); | 1015 | BOOL LLPanelRegionDebugInfo::sendUpdate() |
1016 | strings.push_back(buffer); | 1016 | { |
1017 | 1017 | llinfos << "LLPanelRegionDebugInfo::sendUpdate" << llendl; | |
1018 | buffer = llformat("%s", (childGetValue("disable_collisions_check").asBoolean() ? "Y" : "N")); | 1018 | strings_t strings; |
1019 | strings.push_back(buffer); | 1019 | std::string buffer; |
1020 | 1020 | ||
1021 | buffer = llformat("%s", (childGetValue("disable_physics_check").asBoolean() ? "Y" : "N")); | 1021 | buffer = llformat("%s", (childGetValue("disable_scripts_check").asBoolean() ? "Y" : "N")); |
1022 | strings.push_back(buffer); | 1022 | strings.push_back(buffer); |
1023 | 1023 | ||
1024 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); | 1024 | buffer = llformat("%s", (childGetValue("disable_collisions_check").asBoolean() ? "Y" : "N")); |
1025 | sendEstateOwnerMessage(gMessageSystem, "setregiondebug", invoice, strings); | 1025 | strings.push_back(buffer); |
1026 | return TRUE; | 1026 | |
1027 | } | 1027 | buffer = llformat("%s", (childGetValue("disable_physics_check").asBoolean() ? "Y" : "N")); |
1028 | 1028 | strings.push_back(buffer); | |
1029 | void LLPanelRegionDebugInfo::onClickChooseAvatar(void* data) | 1029 | |
1030 | { | 1030 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); |
1031 | LLFloaterAvatarPicker::show(callbackAvatarID, data, FALSE, TRUE); | 1031 | sendEstateOwnerMessage(gMessageSystem, "setregiondebug", invoice, strings); |
1032 | } | 1032 | return TRUE; |
1033 | 1033 | } | |
1034 | // static | 1034 | |
1035 | void LLPanelRegionDebugInfo::callbackAvatarID(const std::vector<std::string>& names, const std::vector<LLUUID>& ids, void* data) | 1035 | void LLPanelRegionDebugInfo::onClickChooseAvatar(void* data) |
1036 | { | 1036 | { |
1037 | LLPanelRegionDebugInfo* self = (LLPanelRegionDebugInfo*) data; | 1037 | LLFloaterAvatarPicker::show(callbackAvatarID, data, FALSE, TRUE); |
1038 | if (ids.empty() || names.empty()) return; | 1038 | } |
1039 | self->mTargetAvatar = ids[0]; | 1039 | |
1040 | self->childSetValue("target_avatar_name", LLSD(names[0])); | 1040 | // static |
1041 | self->refreshFromRegion( gAgent.getRegion() ); | 1041 | void LLPanelRegionDebugInfo::callbackAvatarID(const std::vector<std::string>& names, const std::vector<LLUUID>& ids, void* data) |
1042 | } | 1042 | { |
1043 | 1043 | LLPanelRegionDebugInfo* self = (LLPanelRegionDebugInfo*) data; | |
1044 | // static | 1044 | if (ids.empty() || names.empty()) return; |
1045 | void LLPanelRegionDebugInfo::onClickReturn(void* data) | 1045 | self->mTargetAvatar = ids[0]; |
1046 | { | 1046 | self->childSetValue("target_avatar_name", LLSD(names[0])); |
1047 | LLPanelRegionDebugInfo* panelp = (LLPanelRegionDebugInfo*) data; | 1047 | self->refreshFromRegion( gAgent.getRegion() ); |
1048 | if (panelp->mTargetAvatar.isNull()) return; | 1048 | } |
1049 | 1049 | ||
1050 | LLSD args; | 1050 | // static |
1051 | args["USER_NAME"] = panelp->childGetValue("target_avatar_name").asString(); | 1051 | void LLPanelRegionDebugInfo::onClickReturn(void* data) |
1052 | LLSD payload; | 1052 | { |
1053 | payload["avatar_id"] = panelp->mTargetAvatar; | 1053 | LLPanelRegionDebugInfo* panelp = (LLPanelRegionDebugInfo*) data; |
1054 | 1054 | if (panelp->mTargetAvatar.isNull()) return; | |
1055 | U32 flags = SWD_ALWAYS_RETURN_OBJECTS; | 1055 | |
1056 | 1056 | LLSD args; | |
1057 | if (panelp->childGetValue("return_scripts").asBoolean()) | 1057 | args["USER_NAME"] = panelp->childGetValue("target_avatar_name").asString(); |
1058 | { | 1058 | LLSD payload; |
1059 | flags |= SWD_SCRIPTED_ONLY; | 1059 | payload["avatar_id"] = panelp->mTargetAvatar; |
1060 | } | 1060 | |
1061 | 1061 | U32 flags = SWD_ALWAYS_RETURN_OBJECTS; | |
1062 | if (panelp->childGetValue("return_other_land").asBoolean()) | 1062 | |
1063 | { | 1063 | if (panelp->childGetValue("return_scripts").asBoolean()) |
1064 | flags |= SWD_OTHERS_LAND_ONLY; | 1064 | { |
1065 | } | 1065 | flags |= SWD_SCRIPTED_ONLY; |
1066 | payload["flags"] = int(flags); | 1066 | } |
1067 | payload["return_estate_wide"] = panelp->childGetValue("return_estate_wide").asBoolean(); | 1067 | |
1068 | LLNotifications::instance().add("EstateObjectReturn", args, payload, | 1068 | if (panelp->childGetValue("return_other_land").asBoolean()) |
1069 | boost::bind(&LLPanelRegionDebugInfo::callbackReturn, panelp, _1, _2)); | 1069 | { |
1070 | } | 1070 | flags |= SWD_OTHERS_LAND_ONLY; |
1071 | 1071 | } | |
1072 | bool LLPanelRegionDebugInfo::callbackReturn(const LLSD& notification, const LLSD& response) | 1072 | payload["flags"] = int(flags); |
1073 | { | 1073 | payload["return_estate_wide"] = panelp->childGetValue("return_estate_wide").asBoolean(); |
1074 | S32 option = LLNotification::getSelectedOption(notification, response); | 1074 | LLNotifications::instance().add("EstateObjectReturn", args, payload, |
1075 | if (option != 0) return false; | 1075 | boost::bind(&LLPanelRegionDebugInfo::callbackReturn, panelp, _1, _2)); |
1076 | 1076 | } | |
1077 | LLUUID target_avatar = notification["payload"]["avatar_id"].asUUID(); | 1077 | |
1078 | if (!target_avatar.isNull()) | 1078 | bool LLPanelRegionDebugInfo::callbackReturn(const LLSD& notification, const LLSD& response) |
1079 | { | 1079 | { |
1080 | U32 flags = notification["payload"]["flags"].asInteger(); | 1080 | S32 option = LLNotification::getSelectedOption(notification, response); |
1081 | bool return_estate_wide = notification["payload"]["return_estate_wide"]; | 1081 | if (option != 0) return false; |
1082 | if (return_estate_wide) | 1082 | |
1083 | { | 1083 | LLUUID target_avatar = notification["payload"]["avatar_id"].asUUID(); |
1084 | // send as estate message - routed by spaceserver to all regions in estate | 1084 | if (!target_avatar.isNull()) |
1085 | strings_t strings; | 1085 | { |
1086 | strings.push_back(llformat("%d", flags)); | 1086 | U32 flags = notification["payload"]["flags"].asInteger(); |
1087 | strings.push_back(target_avatar.asString()); | 1087 | bool return_estate_wide = notification["payload"]["return_estate_wide"]; |
1088 | 1088 | if (return_estate_wide) | |
1089 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); | 1089 | { |
1090 | 1090 | // send as estate message - routed by spaceserver to all regions in estate | |
1091 | sendEstateOwnerMessage(gMessageSystem, "estateobjectreturn", invoice, strings); | 1091 | strings_t strings; |
1092 | } | 1092 | strings.push_back(llformat("%d", flags)); |
1093 | else | 1093 | strings.push_back(target_avatar.asString()); |
1094 | { | 1094 | |
1095 | // send to this simulator only | 1095 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); |
1096 | send_sim_wide_deletes(target_avatar, flags); | 1096 | |
1097 | } | 1097 | sendEstateOwnerMessage(gMessageSystem, "estateobjectreturn", invoice, strings); |
1098 | } | 1098 | } |
1099 | return false; | 1099 | else |
1100 | } | 1100 | { |
1101 | 1101 | // send to this simulator only | |
1102 | 1102 | send_sim_wide_deletes(target_avatar, flags); | |
1103 | // static | 1103 | } |
1104 | void LLPanelRegionDebugInfo::onClickTopColliders(void* data) | 1104 | } |
1105 | { | 1105 | return false; |
1106 | LLPanelRegionDebugInfo* self = (LLPanelRegionDebugInfo*)data; | 1106 | } |
1107 | strings_t strings; | 1107 | |
1108 | strings.push_back("1"); // one physics step | 1108 | |
1109 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); | 1109 | // static |
1110 | LLFloaterTopObjects::show(); | 1110 | void LLPanelRegionDebugInfo::onClickTopColliders(void* data) |
1111 | LLFloaterTopObjects::clearList(); | 1111 | { |
1112 | self->sendEstateOwnerMessage(gMessageSystem, "colliders", invoice, strings); | 1112 | LLPanelRegionDebugInfo* self = (LLPanelRegionDebugInfo*)data; |
1113 | } | 1113 | strings_t strings; |
1114 | 1114 | strings.push_back("1"); // one physics step | |
1115 | // static | 1115 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); |
1116 | void LLPanelRegionDebugInfo::onClickTopScripts(void* data) | 1116 | LLFloaterTopObjects::show(); |
1117 | { | 1117 | LLFloaterTopObjects::clearList(); |
1118 | LLPanelRegionDebugInfo* self = (LLPanelRegionDebugInfo*)data; | 1118 | self->sendEstateOwnerMessage(gMessageSystem, "colliders", invoice, strings); |
1119 | strings_t strings; | 1119 | } |
1120 | strings.push_back("6"); // top 5 scripts | 1120 | |
1121 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); | 1121 | // static |
1122 | LLFloaterTopObjects::show(); | 1122 | void LLPanelRegionDebugInfo::onClickTopScripts(void* data) |
1123 | LLFloaterTopObjects::clearList(); | 1123 | { |
1124 | self->sendEstateOwnerMessage(gMessageSystem, "scripts", invoice, strings); | 1124 | LLPanelRegionDebugInfo* self = (LLPanelRegionDebugInfo*)data; |
1125 | } | 1125 | strings_t strings; |
1126 | 1126 | strings.push_back("6"); // top 5 scripts | |
1127 | // static | 1127 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); |
1128 | void LLPanelRegionDebugInfo::onClickRestart(void* data) | 1128 | LLFloaterTopObjects::show(); |
1129 | { | 1129 | LLFloaterTopObjects::clearList(); |
1130 | LLNotifications::instance().add("ConfirmRestart", LLSD(), LLSD(), | 1130 | self->sendEstateOwnerMessage(gMessageSystem, "scripts", invoice, strings); |
1131 | boost::bind(&LLPanelRegionDebugInfo::callbackRestart, (LLPanelRegionDebugInfo*)data, _1, _2)); | 1131 | } |
1132 | } | 1132 | |
1133 | 1133 | // static | |
1134 | bool LLPanelRegionDebugInfo::callbackRestart(const LLSD& notification, const LLSD& response) | 1134 | void LLPanelRegionDebugInfo::onClickRestart(void* data) |
1135 | { | 1135 | { |
1136 | S32 option = LLNotification::getSelectedOption(notification, response); | 1136 | LLNotifications::instance().add("ConfirmRestart", LLSD(), LLSD(), |
1137 | if (option != 0) return false; | 1137 | boost::bind(&LLPanelRegionDebugInfo::callbackRestart, (LLPanelRegionDebugInfo*)data, _1, _2)); |
1138 | 1138 | } | |
1139 | strings_t strings; | 1139 | |
1140 | strings.push_back("120"); | 1140 | bool LLPanelRegionDebugInfo::callbackRestart(const LLSD& notification, const LLSD& response) |
1141 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); | 1141 | { |
1142 | sendEstateOwnerMessage(gMessageSystem, "restart", invoice, strings); | 1142 | S32 option = LLNotification::getSelectedOption(notification, response); |
1143 | return false; | 1143 | if (option != 0) return false; |
1144 | } | 1144 | |
1145 | 1145 | strings_t strings; | |
1146 | // static | 1146 | strings.push_back("120"); |
1147 | void LLPanelRegionDebugInfo::onClickCancelRestart(void* data) | 1147 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); |
1148 | { | 1148 | sendEstateOwnerMessage(gMessageSystem, "restart", invoice, strings); |
1149 | LLPanelRegionDebugInfo* self = (LLPanelRegionDebugInfo*)data; | 1149 | return false; |
1150 | strings_t strings; | 1150 | } |
1151 | strings.push_back("-1"); | 1151 | |
1152 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); | 1152 | // static |
1153 | self->sendEstateOwnerMessage(gMessageSystem, "restart", invoice, strings); | 1153 | void LLPanelRegionDebugInfo::onClickCancelRestart(void* data) |
1154 | } | 1154 | { |
1155 | 1155 | LLPanelRegionDebugInfo* self = (LLPanelRegionDebugInfo*)data; | |
1156 | 1156 | strings_t strings; | |
1157 | ///////////////////////////////////////////////////////////////////////////// | 1157 | strings.push_back("-1"); |
1158 | // LLPanelRegionTextureInfo | 1158 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); |
1159 | // | 1159 | self->sendEstateOwnerMessage(gMessageSystem, "restart", invoice, strings); |
1160 | LLPanelRegionTextureInfo::LLPanelRegionTextureInfo() : LLPanelRegionInfo() | 1160 | } |
1161 | { | 1161 | |
1162 | // nothing. | 1162 | |
1163 | } | 1163 | ///////////////////////////////////////////////////////////////////////////// |
1164 | 1164 | // LLPanelRegionTextureInfo | |
1165 | bool LLPanelRegionTextureInfo::refreshFromRegion(LLViewerRegion* region) | 1165 | // |
1166 | { | 1166 | LLPanelRegionTextureInfo::LLPanelRegionTextureInfo() : LLPanelRegionInfo() |
1167 | BOOL allow_modify = gAgent.isGodlike() || (region && region->canManageEstate()); | 1167 | { |
1168 | setCtrlsEnabled(allow_modify); | 1168 | // nothing. |
1169 | childDisable("apply_btn"); | 1169 | } |
1170 | 1170 | ||
1171 | if (region) | 1171 | bool LLPanelRegionTextureInfo::refreshFromRegion(LLViewerRegion* region) |
1172 | { | 1172 | { |
1173 | childSetValue("region_text", LLSD(region->getName())); | 1173 | BOOL allow_modify = gAgent.isGodlike() || (region && region->canManageEstate()); |
1174 | } | 1174 | setCtrlsEnabled(allow_modify); |
1175 | else | 1175 | childDisable("apply_btn"); |
1176 | { | 1176 | |
1177 | childSetValue("region_text", LLSD("")); | 1177 | if (region) |
1178 | } | 1178 | { |
1179 | 1179 | childSetValue("region_text", LLSD(region->getName())); | |
1180 | if (!region) return LLPanelRegionInfo::refreshFromRegion(region); | 1180 | } |
1181 | 1181 | else | |
1182 | LLVLComposition* compp = region->getComposition(); | 1182 | { |
1183 | LLTextureCtrl* texture_ctrl; | 1183 | childSetValue("region_text", LLSD("")); |
1184 | std::string buffer; | 1184 | } |
1185 | for(S32 i = 0; i < TERRAIN_TEXTURE_COUNT; ++i) | 1185 | |
1186 | { | 1186 | if (!region) return LLPanelRegionInfo::refreshFromRegion(region); |
1187 | buffer = llformat("texture_detail_%d", i); | 1187 | |
1188 | texture_ctrl = getChild<LLTextureCtrl>(buffer); | 1188 | LLVLComposition* compp = region->getComposition(); |
1189 | if(texture_ctrl) | 1189 | LLTextureCtrl* texture_ctrl; |
1190 | { | 1190 | std::string buffer; |
1191 | lldebugs << "Detail Texture " << i << ": " | 1191 | for(S32 i = 0; i < TERRAIN_TEXTURE_COUNT; ++i) |
1192 | << compp->getDetailTextureID(i) << llendl; | 1192 | { |
1193 | LLUUID tmp_id(compp->getDetailTextureID(i)); | 1193 | buffer = llformat("texture_detail_%d", i); |
1194 | texture_ctrl->setImageAssetID(tmp_id); | 1194 | texture_ctrl = getChild<LLTextureCtrl>(buffer); |
1195 | } | 1195 | if(texture_ctrl) |
1196 | } | 1196 | { |
1197 | 1197 | lldebugs << "Detail Texture " << i << ": " | |
1198 | for(S32 i = 0; i < CORNER_COUNT; ++i) | 1198 | << compp->getDetailTextureID(i) << llendl; |
1199 | { | 1199 | LLUUID tmp_id(compp->getDetailTextureID(i)); |
1200 | buffer = llformat("height_start_spin_%d", i); | 1200 | texture_ctrl->setImageAssetID(tmp_id); |
1201 | childSetValue(buffer, LLSD(compp->getStartHeight(i))); | 1201 | } |
1202 | buffer = llformat("height_range_spin_%d", i); | 1202 | } |
1203 | childSetValue(buffer, LLSD(compp->getHeightRange(i))); | 1203 | |
1204 | } | 1204 | for(S32 i = 0; i < CORNER_COUNT; ++i) |
1205 | 1205 | { | |
1206 | // Call the parent for common book-keeping | 1206 | buffer = llformat("height_start_spin_%d", i); |
1207 | return LLPanelRegionInfo::refreshFromRegion(region); | 1207 | childSetValue(buffer, LLSD(compp->getStartHeight(i))); |
1208 | } | 1208 | buffer = llformat("height_range_spin_%d", i); |
1209 | 1209 | childSetValue(buffer, LLSD(compp->getHeightRange(i))); | |
1210 | 1210 | } | |
1211 | BOOL LLPanelRegionTextureInfo::postBuild() | 1211 | |
1212 | { | 1212 | // Call the parent for common book-keeping |
1213 | LLPanelRegionInfo::postBuild(); | 1213 | return LLPanelRegionInfo::refreshFromRegion(region); |
1214 | std::string buffer; | 1214 | } |
1215 | for(S32 i = 0; i < TERRAIN_TEXTURE_COUNT; ++i) | 1215 | |
1216 | { | 1216 | |
1217 | buffer = llformat("texture_detail_%d", i); | 1217 | BOOL LLPanelRegionTextureInfo::postBuild() |
1218 | initCtrl(buffer); | 1218 | { |
1219 | } | 1219 | LLPanelRegionInfo::postBuild(); |
1220 | 1220 | std::string buffer; | |
1221 | for(S32 i = 0; i < CORNER_COUNT; ++i) | 1221 | for(S32 i = 0; i < TERRAIN_TEXTURE_COUNT; ++i) |
1222 | { | 1222 | { |
1223 | buffer = llformat("height_start_spin_%d", i); | 1223 | buffer = llformat("texture_detail_%d", i); |
1224 | initCtrl(buffer); | 1224 | initCtrl(buffer); |
1225 | buffer = llformat("height_range_spin_%d", i); | 1225 | } |
1226 | initCtrl(buffer); | 1226 | |
1227 | } | 1227 | for(S32 i = 0; i < CORNER_COUNT; ++i) |
1228 | 1228 | { | |
1229 | // LLButton* btn = new LLButton("dump", LLRect(0, 20, 100, 0), "", onClickDump, this); | 1229 | buffer = llformat("height_start_spin_%d", i); |
1230 | // btn->setFollows(FOLLOWS_TOP|FOLLOWS_LEFT); | 1230 | initCtrl(buffer); |
1231 | // addChild(btn); | 1231 | buffer = llformat("height_range_spin_%d", i); |
1232 | 1232 | initCtrl(buffer); | |
1233 | return LLPanelRegionInfo::postBuild(); | 1233 | } |
1234 | } | 1234 | |
1235 | 1235 | // LLButton* btn = new LLButton("dump", LLRect(0, 20, 100, 0), "", onClickDump, this); | |
1236 | BOOL LLPanelRegionTextureInfo::sendUpdate() | 1236 | // btn->setFollows(FOLLOWS_TOP|FOLLOWS_LEFT); |
1237 | { | 1237 | // addChild(btn); |
1238 | llinfos << "LLPanelRegionTextureInfo::sendUpdate()" << llendl; | 1238 | |
1239 | 1239 | return LLPanelRegionInfo::postBuild(); | |
1240 | // Make sure user hasn't chosen wacky textures. | 1240 | } |
1241 | if (!validateTextureSizes()) | 1241 | |
1242 | { | 1242 | BOOL LLPanelRegionTextureInfo::sendUpdate() |
1243 | return FALSE; | 1243 | { |
1244 | } | 1244 | llinfos << "LLPanelRegionTextureInfo::sendUpdate()" << llendl; |
1245 | 1245 | ||
1246 | LLTextureCtrl* texture_ctrl; | 1246 | // Make sure user hasn't chosen wacky textures. |
1247 | std::string buffer; | 1247 | //if (!validateTextureSizes()) |
1248 | std::string id_str; | 1248 | //{ |
1249 | LLMessageSystem* msg = gMessageSystem; | 1249 | // return FALSE; |
1250 | strings_t strings; | 1250 | //} |
1251 | 1251 | ||
1252 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); | 1252 | LLTextureCtrl* texture_ctrl; |
1253 | 1253 | std::string buffer; | |
1254 | for(S32 i = 0; i < TERRAIN_TEXTURE_COUNT; ++i) | 1254 | std::string id_str; |
1255 | { | 1255 | LLMessageSystem* msg = gMessageSystem; |
1256 | buffer = llformat("texture_detail_%d", i); | 1256 | strings_t strings; |
1257 | texture_ctrl = getChild<LLTextureCtrl>(buffer); | 1257 | |
1258 | if(texture_ctrl) | 1258 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); |
1259 | { | 1259 | |
1260 | LLUUID tmp_id(texture_ctrl->getImageAssetID()); | 1260 | for(S32 i = 0; i < TERRAIN_TEXTURE_COUNT; ++i) |
1261 | tmp_id.toString(id_str); | 1261 | { |
1262 | buffer = llformat("%d %s", i, id_str.c_str()); | 1262 | buffer = llformat("texture_detail_%d", i); |
1263 | strings.push_back(buffer); | 1263 | texture_ctrl = getChild<LLTextureCtrl>(buffer); |
1264 | } | 1264 | if(texture_ctrl) |
1265 | } | 1265 | { |
1266 | sendEstateOwnerMessage(msg, "texturedetail", invoice, strings); | 1266 | LLUUID tmp_id(texture_ctrl->getImageAssetID()); |
1267 | strings.clear(); | 1267 | tmp_id.toString(id_str); |
1268 | for(S32 i = 0; i < CORNER_COUNT; ++i) | 1268 | buffer = llformat("%d %s", i, id_str.c_str()); |
1269 | { | 1269 | strings.push_back(buffer); |
1270 | buffer = llformat("height_start_spin_%d", i); | 1270 | } |
1271 | std::string buffer2 = llformat("height_range_spin_%d", i); | 1271 | } |
1272 | std::string buffer3 = llformat("%d %f %f", i, (F32)childGetValue(buffer).asReal(), (F32)childGetValue(buffer2).asReal()); | 1272 | sendEstateOwnerMessage(msg, "texturedetail", invoice, strings); |
1273 | strings.push_back(buffer3); | 1273 | strings.clear(); |
1274 | } | 1274 | for(S32 i = 0; i < CORNER_COUNT; ++i) |
1275 | sendEstateOwnerMessage(msg, "textureheights", invoice, strings); | 1275 | { |
1276 | strings.clear(); | 1276 | buffer = llformat("height_start_spin_%d", i); |
1277 | sendEstateOwnerMessage(msg, "texturecommit", invoice, strings); | 1277 | std::string buffer2 = llformat("height_range_spin_%d", i); |
1278 | return TRUE; | 1278 | std::string buffer3 = llformat("%d %f %f", i, (F32)childGetValue(buffer).asReal(), (F32)childGetValue(buffer2).asReal()); |
1279 | } | 1279 | strings.push_back(buffer3); |
1280 | 1280 | } | |
1281 | BOOL LLPanelRegionTextureInfo::validateTextureSizes() | 1281 | sendEstateOwnerMessage(msg, "textureheights", invoice, strings); |
1282 | { | 1282 | strings.clear(); |
1283 | for(S32 i = 0; i < TERRAIN_TEXTURE_COUNT; ++i) | 1283 | sendEstateOwnerMessage(msg, "texturecommit", invoice, strings); |
1284 | { | 1284 | return TRUE; |
1285 | std::string buffer; | 1285 | } |
1286 | buffer = llformat("texture_detail_%d", i); | 1286 | |
1287 | LLTextureCtrl* texture_ctrl = getChild<LLTextureCtrl>(buffer); | 1287 | BOOL LLPanelRegionTextureInfo::validateTextureSizes() |
1288 | if (!texture_ctrl) continue; | 1288 | { |
1289 | 1289 | for(S32 i = 0; i < TERRAIN_TEXTURE_COUNT; ++i) | |
1290 | LLUUID image_asset_id = texture_ctrl->getImageAssetID(); | 1290 | { |
1291 | LLViewerImage* img = gImageList.getImage(image_asset_id); | 1291 | std::string buffer; |
1292 | S32 components = img->getComponents(); | 1292 | buffer = llformat("texture_detail_%d", i); |
1293 | // Must ask for highest resolution version's width. JC | 1293 | LLTextureCtrl* texture_ctrl = getChild<LLTextureCtrl>(buffer); |
1294 | S32 width = img->getWidth(0); | 1294 | if (!texture_ctrl) continue; |
1295 | S32 height = img->getHeight(0); | 1295 | |
1296 | 1296 | LLUUID image_asset_id = texture_ctrl->getImageAssetID(); | |
1297 | //llinfos << "texture detail " << i << " is " << width << "x" << height << "x" << components << llendl; | 1297 | LLViewerImage* img = gImageList.getImage(image_asset_id); |
1298 | 1298 | S32 components = img->getComponents(); | |
1299 | if (components != 3) | 1299 | // Must ask for highest resolution version's width. JC |
1300 | { | 1300 | S32 width = img->getWidth(0); |
1301 | LLSD args; | 1301 | S32 height = img->getHeight(0); |
1302 | args["TEXTURE_NUM"] = i+1; | 1302 | |
1303 | args["TEXTURE_BIT_DEPTH"] = llformat("%d",components * 8); | 1303 | //llinfos << "texture detail " << i << " is " << width << "x" << height << "x" << components << llendl; |
1304 | LLNotifications::instance().add("InvalidTerrainBitDepth", args); | 1304 | |
1305 | return FALSE; | 1305 | if (components != 3) |
1306 | } | 1306 | { |
1307 | 1307 | LLSD args; | |
1308 | if (width > 512 || height > 512) | 1308 | args["TEXTURE_NUM"] = i+1; |
1309 | { | 1309 | args["TEXTURE_BIT_DEPTH"] = llformat("%d",components * 8); |
1310 | 1310 | LLNotifications::instance().add("InvalidTerrainBitDepth", args); | |
1311 | LLSD args; | 1311 | return FALSE; |
1312 | args["TEXTURE_NUM"] = i+1; | 1312 | } |
1313 | args["TEXTURE_SIZE_X"] = width; | 1313 | |
1314 | args["TEXTURE_SIZE_Y"] = height; | 1314 | if (width > 512 || height > 512) |
1315 | LLNotifications::instance().add("InvalidTerrainSize", args); | 1315 | { |
1316 | return FALSE; | 1316 | |
1317 | 1317 | LLSD args; | |
1318 | } | 1318 | args["TEXTURE_NUM"] = i+1; |
1319 | } | 1319 | args["TEXTURE_SIZE_X"] = width; |
1320 | 1320 | args["TEXTURE_SIZE_Y"] = height; | |
1321 | return TRUE; | 1321 | LLNotifications::instance().add("InvalidTerrainSize", args); |
1322 | } | 1322 | return FALSE; |
1323 | 1323 | ||
1324 | 1324 | } | |
1325 | // static | 1325 | } |
1326 | void LLPanelRegionTextureInfo::onClickDump(void* data) | 1326 | |
1327 | { | 1327 | return TRUE; |
1328 | llinfos << "LLPanelRegionTextureInfo::onClickDump()" << llendl; | 1328 | } |
1329 | } | 1329 | |
1330 | 1330 | ||
1331 | 1331 | // static | |
1332 | ///////////////////////////////////////////////////////////////////////////// | 1332 | void LLPanelRegionTextureInfo::onClickDump(void* data) |
1333 | // LLPanelRegionTerrainInfo | 1333 | { |
1334 | ///////////////////////////////////////////////////////////////////////////// | 1334 | llinfos << "LLPanelRegionTextureInfo::onClickDump()" << llendl; |
1335 | BOOL LLPanelRegionTerrainInfo::postBuild() | 1335 | } |
1336 | { | 1336 | |
1337 | LLPanelRegionInfo::postBuild(); | 1337 | |
1338 | 1338 | ///////////////////////////////////////////////////////////////////////////// | |
1339 | initHelpBtn("water_height_help", "HelpRegionWaterHeight"); | 1339 | // LLPanelRegionTerrainInfo |
1340 | initHelpBtn("terrain_raise_help", "HelpRegionTerrainRaise"); | 1340 | ///////////////////////////////////////////////////////////////////////////// |
1341 | initHelpBtn("terrain_lower_help", "HelpRegionTerrainLower"); | 1341 | BOOL LLPanelRegionTerrainInfo::postBuild() |
1342 | initHelpBtn("upload_raw_help", "HelpRegionUploadRaw"); | 1342 | { |
1343 | initHelpBtn("download_raw_help", "HelpRegionDownloadRaw"); | 1343 | LLPanelRegionInfo::postBuild(); |
1344 | initHelpBtn("use_estate_sun_help", "HelpRegionUseEstateSun"); | 1344 | |
1345 | initHelpBtn("fixed_sun_help", "HelpRegionFixedSun"); | 1345 | initHelpBtn("water_height_help", "HelpRegionWaterHeight"); |
1346 | initHelpBtn("bake_terrain_help", "HelpRegionBakeTerrain"); | 1346 | initHelpBtn("terrain_raise_help", "HelpRegionTerrainRaise"); |
1347 | 1347 | initHelpBtn("terrain_lower_help", "HelpRegionTerrainLower"); | |
1348 | initCtrl("water_height_spin"); | 1348 | initHelpBtn("upload_raw_help", "HelpRegionUploadRaw"); |
1349 | initCtrl("terrain_raise_spin"); | 1349 | initHelpBtn("download_raw_help", "HelpRegionDownloadRaw"); |
1350 | initCtrl("terrain_lower_spin"); | 1350 | initHelpBtn("use_estate_sun_help", "HelpRegionUseEstateSun"); |
1351 | 1351 | initHelpBtn("fixed_sun_help", "HelpRegionFixedSun"); | |
1352 | initCtrl("fixed_sun_check"); | 1352 | initHelpBtn("bake_terrain_help", "HelpRegionBakeTerrain"); |
1353 | childSetCommitCallback("fixed_sun_check", onChangeFixedSun, this); | 1353 | |
1354 | childSetCommitCallback("use_estate_sun_check", onChangeUseEstateTime, this); | 1354 | initCtrl("water_height_spin"); |
1355 | childSetCommitCallback("sun_hour_slider", onChangeSunHour, this); | 1355 | initCtrl("terrain_raise_spin"); |
1356 | 1356 | initCtrl("terrain_lower_spin"); | |
1357 | childSetAction("download_raw_btn", onClickDownloadRaw, this); | 1357 | |
1358 | childSetAction("upload_raw_btn", onClickUploadRaw, this); | 1358 | initCtrl("fixed_sun_check"); |
1359 | childSetAction("bake_terrain_btn", onClickBakeTerrain, this); | 1359 | childSetCommitCallback("fixed_sun_check", onChangeFixedSun, this); |
1360 | 1360 | childSetCommitCallback("use_estate_sun_check", onChangeUseEstateTime, this); | |
1361 | return TRUE; | 1361 | childSetCommitCallback("sun_hour_slider", onChangeSunHour, this); |
1362 | } | 1362 | |
1363 | 1363 | childSetAction("download_raw_btn", onClickDownloadRaw, this); | |
1364 | // virtual | 1364 | childSetAction("upload_raw_btn", onClickUploadRaw, this); |
1365 | bool LLPanelRegionTerrainInfo::refreshFromRegion(LLViewerRegion* region) | 1365 | childSetAction("bake_terrain_btn", onClickBakeTerrain, this); |
1366 | { | 1366 | |
1367 | llinfos << "LLPanelRegionTerrainInfo::refreshFromRegion" << llendl; | 1367 | return TRUE; |
1368 | 1368 | } | |
1369 | BOOL owner_or_god = gAgent.isGodlike() | 1369 | |
1370 | || (region && (region->getOwner() == gAgent.getID())); | 1370 | // virtual |
1371 | BOOL owner_or_god_or_manager = owner_or_god | 1371 | bool LLPanelRegionTerrainInfo::refreshFromRegion(LLViewerRegion* region) |
1372 | || (region && region->isEstateManager()); | 1372 | { |
1373 | setCtrlsEnabled(owner_or_god_or_manager); | 1373 | llinfos << "LLPanelRegionTerrainInfo::refreshFromRegion" << llendl; |
1374 | childDisable("apply_btn"); | 1374 | |
1375 | 1375 | BOOL owner_or_god = gAgent.isGodlike() | |
1376 | childSetEnabled("download_raw_btn", owner_or_god); | 1376 | || (region && (region->getOwner() == gAgent.getID())); |
1377 | childSetEnabled("upload_raw_btn", owner_or_god); | 1377 | BOOL owner_or_god_or_manager = owner_or_god |
1378 | childSetEnabled("bake_terrain_btn", owner_or_god); | 1378 | || (region && region->isEstateManager()); |
1379 | 1379 | setCtrlsEnabled(owner_or_god_or_manager); | |
1380 | return LLPanelRegionInfo::refreshFromRegion(region); | 1380 | childDisable("apply_btn"); |
1381 | } | 1381 | |
1382 | 1382 | childSetEnabled("download_raw_btn", owner_or_god); | |
1383 | // virtual | 1383 | childSetEnabled("upload_raw_btn", owner_or_god); |
1384 | BOOL LLPanelRegionTerrainInfo::sendUpdate() | 1384 | childSetEnabled("bake_terrain_btn", owner_or_god); |
1385 | { | 1385 | |
1386 | llinfos << "LLPanelRegionTerrainInfo::sendUpdate" << llendl; | 1386 | return LLPanelRegionInfo::refreshFromRegion(region); |
1387 | std::string buffer; | 1387 | } |
1388 | strings_t strings; | 1388 | |
1389 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); | 1389 | // virtual |
1390 | 1390 | BOOL LLPanelRegionTerrainInfo::sendUpdate() | |
1391 | buffer = llformat("%f", (F32)childGetValue("water_height_spin").asReal()); | 1391 | { |
1392 | strings.push_back(buffer); | 1392 | llinfos << "LLPanelRegionTerrainInfo::sendUpdate" << llendl; |
1393 | buffer = llformat("%f", (F32)childGetValue("terrain_raise_spin").asReal()); | 1393 | std::string buffer; |
1394 | strings.push_back(buffer); | 1394 | strings_t strings; |
1395 | buffer = llformat("%f", (F32)childGetValue("terrain_lower_spin").asReal()); | 1395 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); |
1396 | strings.push_back(buffer); | 1396 | |
1397 | buffer = llformat("%s", (childGetValue("use_estate_sun_check").asBoolean() ? "Y" : "N")); | 1397 | buffer = llformat("%f", (F32)childGetValue("water_height_spin").asReal()); |
1398 | strings.push_back(buffer); | 1398 | strings.push_back(buffer); |
1399 | buffer = llformat("%s", (childGetValue("fixed_sun_check").asBoolean() ? "Y" : "N")); | 1399 | buffer = llformat("%f", (F32)childGetValue("terrain_raise_spin").asReal()); |
1400 | strings.push_back(buffer); | 1400 | strings.push_back(buffer); |
1401 | buffer = llformat("%f", (F32)childGetValue("sun_hour_slider").asReal() ); | 1401 | buffer = llformat("%f", (F32)childGetValue("terrain_lower_spin").asReal()); |
1402 | strings.push_back(buffer); | 1402 | strings.push_back(buffer); |
1403 | 1403 | buffer = llformat("%s", (childGetValue("use_estate_sun_check").asBoolean() ? "Y" : "N")); | |
1404 | // Grab estate information in case the user decided to set the | 1404 | strings.push_back(buffer); |
1405 | // region back to estate time. JC | 1405 | buffer = llformat("%s", (childGetValue("fixed_sun_check").asBoolean() ? "Y" : "N")); |
1406 | LLFloaterRegionInfo* floater = LLFloaterRegionInfo::getInstance(); | 1406 | strings.push_back(buffer); |
1407 | if (!floater) return true; | 1407 | buffer = llformat("%f", (F32)childGetValue("sun_hour_slider").asReal() ); |
1408 | 1408 | strings.push_back(buffer); | |
1409 | LLTabContainer* tab = floater->getChild<LLTabContainer>("region_panels"); | 1409 | |
1410 | if (!tab) return true; | 1410 | // Grab estate information in case the user decided to set the |
1411 | 1411 | // region back to estate time. JC | |
1412 | LLPanelEstateInfo* panel = (LLPanelEstateInfo*)tab->getChild<LLPanel>("Estate"); | 1412 | LLFloaterRegionInfo* floater = LLFloaterRegionInfo::getInstance(); |
1413 | if (!panel) return true; | 1413 | if (!floater) return true; |
1414 | 1414 | ||
1415 | BOOL estate_global_time = panel->getGlobalTime(); | 1415 | LLTabContainer* tab = floater->getChild<LLTabContainer>("region_panels"); |
1416 | BOOL estate_fixed_sun = panel->getFixedSun(); | 1416 | if (!tab) return true; |
1417 | F32 estate_sun_hour; | 1417 | |
1418 | if (estate_global_time) | 1418 | LLPanelEstateInfo* panel = (LLPanelEstateInfo*)tab->getChild<LLPanel>("Estate"); |
1419 | { | 1419 | if (!panel) return true; |
1420 | estate_sun_hour = 0.f; | 1420 | |
1421 | } | 1421 | BOOL estate_global_time = panel->getGlobalTime(); |
1422 | else | 1422 | BOOL estate_fixed_sun = panel->getFixedSun(); |
1423 | { | 1423 | F32 estate_sun_hour; |
1424 | estate_sun_hour = panel->getSunHour(); | 1424 | if (estate_global_time) |
1425 | } | 1425 | { |
1426 | 1426 | estate_sun_hour = 0.f; | |
1427 | buffer = llformat("%s", (estate_global_time ? "Y" : "N") ); | 1427 | } |
1428 | strings.push_back(buffer); | 1428 | else |
1429 | buffer = llformat("%s", (estate_fixed_sun ? "Y" : "N") ); | 1429 | { |
1430 | strings.push_back(buffer); | 1430 | estate_sun_hour = panel->getSunHour(); |
1431 | buffer = llformat("%f", estate_sun_hour); | 1431 | } |
1432 | strings.push_back(buffer); | 1432 | |
1433 | 1433 | buffer = llformat("%s", (estate_global_time ? "Y" : "N") ); | |
1434 | sendEstateOwnerMessage(gMessageSystem, "setregionterrain", invoice, strings); | 1434 | strings.push_back(buffer); |
1435 | return TRUE; | 1435 | buffer = llformat("%s", (estate_fixed_sun ? "Y" : "N") ); |
1436 | } | 1436 | strings.push_back(buffer); |
1437 | 1437 | buffer = llformat("%f", estate_sun_hour); | |
1438 | // static | 1438 | strings.push_back(buffer); |
1439 | void LLPanelRegionTerrainInfo::onChangeUseEstateTime(LLUICtrl* ctrl, void* user_data) | 1439 | |
1440 | { | 1440 | sendEstateOwnerMessage(gMessageSystem, "setregionterrain", invoice, strings); |
1441 | LLPanelRegionTerrainInfo* panel = (LLPanelRegionTerrainInfo*) user_data; | 1441 | return TRUE; |
1442 | if (!panel) return; | 1442 | } |
1443 | BOOL use_estate_sun = panel->childGetValue("use_estate_sun_check").asBoolean(); | 1443 | |
1444 | panel->childSetEnabled("fixed_sun_check", !use_estate_sun); | 1444 | // static |
1445 | panel->childSetEnabled("sun_hour_slider", !use_estate_sun); | 1445 | void LLPanelRegionTerrainInfo::onChangeUseEstateTime(LLUICtrl* ctrl, void* user_data) |
1446 | if (use_estate_sun) | 1446 | { |
1447 | { | 1447 | LLPanelRegionTerrainInfo* panel = (LLPanelRegionTerrainInfo*) user_data; |
1448 | panel->childSetValue("fixed_sun_check", LLSD(FALSE)); | 1448 | if (!panel) return; |
1449 | panel->childSetValue("sun_hour_slider", LLSD(0.f)); | 1449 | BOOL use_estate_sun = panel->childGetValue("use_estate_sun_check").asBoolean(); |
1450 | } | 1450 | panel->childSetEnabled("fixed_sun_check", !use_estate_sun); |
1451 | panel->childEnable("apply_btn"); | 1451 | panel->childSetEnabled("sun_hour_slider", !use_estate_sun); |
1452 | } | 1452 | if (use_estate_sun) |
1453 | 1453 | { | |
1454 | // static | 1454 | panel->childSetValue("fixed_sun_check", LLSD(FALSE)); |
1455 | void LLPanelRegionTerrainInfo::onChangeFixedSun(LLUICtrl* ctrl, void* user_data) | 1455 | panel->childSetValue("sun_hour_slider", LLSD(0.f)); |
1456 | { | 1456 | } |
1457 | LLPanelRegionTerrainInfo* panel = (LLPanelRegionTerrainInfo*) user_data; | 1457 | panel->childEnable("apply_btn"); |
1458 | if (!panel) return; | 1458 | } |
1459 | // Just enable the apply button. We let the sun-hour slider be enabled | 1459 | |
1460 | // for both fixed-sun and non-fixed-sun. JC | 1460 | // static |
1461 | panel->childEnable("apply_btn"); | 1461 | void LLPanelRegionTerrainInfo::onChangeFixedSun(LLUICtrl* ctrl, void* user_data) |
1462 | } | 1462 | { |
1463 | 1463 | LLPanelRegionTerrainInfo* panel = (LLPanelRegionTerrainInfo*) user_data; | |
1464 | // static | 1464 | if (!panel) return; |
1465 | void LLPanelRegionTerrainInfo::onChangeSunHour(LLUICtrl* ctrl, void*) | 1465 | // Just enable the apply button. We let the sun-hour slider be enabled |
1466 | { | 1466 | // for both fixed-sun and non-fixed-sun. JC |
1467 | // can't use userdata to get panel, slider uses it internally | 1467 | panel->childEnable("apply_btn"); |
1468 | LLPanelRegionTerrainInfo* panel = (LLPanelRegionTerrainInfo*) ctrl->getParent(); | 1468 | } |
1469 | if (!panel) return; | 1469 | |
1470 | panel->childEnable("apply_btn"); | 1470 | // static |
1471 | } | 1471 | void LLPanelRegionTerrainInfo::onChangeSunHour(LLUICtrl* ctrl, void*) |
1472 | 1472 | { | |
1473 | // static | 1473 | // can't use userdata to get panel, slider uses it internally |
1474 | void LLPanelRegionTerrainInfo::onClickDownloadRaw(void* data) | 1474 | LLPanelRegionTerrainInfo* panel = (LLPanelRegionTerrainInfo*) ctrl->getParent(); |
1475 | { | 1475 | if (!panel) return; |
1476 | LLFilePicker& picker = LLFilePicker::instance(); | 1476 | panel->childEnable("apply_btn"); |
1477 | if (!picker.getSaveFile(LLFilePicker::FFSAVE_RAW, "terrain.raw")) | 1477 | } |
1478 | { | 1478 | |
1479 | llwarns << "No file" << llendl; | 1479 | // static |
1480 | return; | 1480 | void LLPanelRegionTerrainInfo::onClickDownloadRaw(void* data) |
1481 | } | 1481 | { |
1482 | std::string filepath = picker.getFirstFile(); | 1482 | LLFilePicker& picker = LLFilePicker::instance(); |
1483 | gXferManager->expectFileForRequest(filepath); | 1483 | if (!picker.getSaveFile(LLFilePicker::FFSAVE_RAW, "terrain.raw")) |
1484 | 1484 | { | |
1485 | LLPanelRegionTerrainInfo* self = (LLPanelRegionTerrainInfo*)data; | 1485 | llwarns << "No file" << llendl; |
1486 | strings_t strings; | 1486 | return; |
1487 | strings.push_back("download filename"); | 1487 | } |
1488 | strings.push_back(filepath); | 1488 | std::string filepath = picker.getFirstFile(); |
1489 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); | 1489 | gXferManager->expectFileForRequest(filepath); |
1490 | self->sendEstateOwnerMessage(gMessageSystem, "terrain", invoice, strings); | 1490 | |
1491 | } | 1491 | LLPanelRegionTerrainInfo* self = (LLPanelRegionTerrainInfo*)data; |
1492 | 1492 | strings_t strings; | |
1493 | // static | 1493 | strings.push_back("download filename"); |
1494 | void LLPanelRegionTerrainInfo::onClickUploadRaw(void* data) | 1494 | strings.push_back(filepath); |
1495 | { | 1495 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); |
1496 | LLFilePicker& picker = LLFilePicker::instance(); | 1496 | self->sendEstateOwnerMessage(gMessageSystem, "terrain", invoice, strings); |
1497 | if (!picker.getOpenFile(LLFilePicker::FFLOAD_RAW)) | 1497 | } |
1498 | { | 1498 | |
1499 | llwarns << "No file" << llendl; | 1499 | // static |
1500 | return; | 1500 | void LLPanelRegionTerrainInfo::onClickUploadRaw(void* data) |
1501 | } | 1501 | { |
1502 | std::string filepath = picker.getFirstFile(); | 1502 | LLFilePicker& picker = LLFilePicker::instance(); |
1503 | gXferManager->expectFileForTransfer(filepath); | 1503 | if (!picker.getOpenFile(LLFilePicker::FFLOAD_RAW)) |
1504 | 1504 | { | |
1505 | LLPanelRegionTerrainInfo* self = (LLPanelRegionTerrainInfo*)data; | 1505 | llwarns << "No file" << llendl; |
1506 | strings_t strings; | 1506 | return; |
1507 | strings.push_back("upload filename"); | 1507 | } |
1508 | strings.push_back(filepath); | 1508 | std::string filepath = picker.getFirstFile(); |
1509 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); | 1509 | gXferManager->expectFileForTransfer(filepath); |
1510 | self->sendEstateOwnerMessage(gMessageSystem, "terrain", invoice, strings); | 1510 | |
1511 | 1511 | LLPanelRegionTerrainInfo* self = (LLPanelRegionTerrainInfo*)data; | |
1512 | LLNotifications::instance().add("RawUploadStarted"); | 1512 | strings_t strings; |
1513 | } | 1513 | strings.push_back("upload filename"); |
1514 | 1514 | strings.push_back(filepath); | |
1515 | // static | 1515 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); |
1516 | void LLPanelRegionTerrainInfo::onClickBakeTerrain(void* data) | 1516 | self->sendEstateOwnerMessage(gMessageSystem, "terrain", invoice, strings); |
1517 | { | 1517 | |
1518 | LLNotifications::instance().add( | 1518 | LLNotifications::instance().add("RawUploadStarted"); |
1519 | LLNotification::Params("ConfirmBakeTerrain") | 1519 | } |
1520 | .functor(boost::bind(&LLPanelRegionTerrainInfo::callbackBakeTerrain, (LLPanelRegionTerrainInfo*)data, _1, _2))); | 1520 | |
1521 | } | 1521 | // static |
1522 | 1522 | void LLPanelRegionTerrainInfo::onClickBakeTerrain(void* data) | |
1523 | bool LLPanelRegionTerrainInfo::callbackBakeTerrain(const LLSD& notification, const LLSD& response) | 1523 | { |
1524 | { | 1524 | LLNotifications::instance().add( |
1525 | S32 option = LLNotification::getSelectedOption(notification, response); | 1525 | LLNotification::Params("ConfirmBakeTerrain") |
1526 | if (option != 0) return false; | 1526 | .functor(boost::bind(&LLPanelRegionTerrainInfo::callbackBakeTerrain, (LLPanelRegionTerrainInfo*)data, _1, _2))); |
1527 | 1527 | } | |
1528 | strings_t strings; | 1528 | |
1529 | strings.push_back("bake"); | 1529 | bool LLPanelRegionTerrainInfo::callbackBakeTerrain(const LLSD& notification, const LLSD& response) |
1530 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); | 1530 | { |
1531 | sendEstateOwnerMessage(gMessageSystem, "terrain", invoice, strings); | 1531 | S32 option = LLNotification::getSelectedOption(notification, response); |
1532 | return false; | 1532 | if (option != 0) return false; |
1533 | } | 1533 | |
1534 | 1534 | strings_t strings; | |
1535 | ///////////////////////////////////////////////////////////////////////////// | 1535 | strings.push_back("bake"); |
1536 | // LLPanelEstateInfo | 1536 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); |
1537 | // | 1537 | sendEstateOwnerMessage(gMessageSystem, "terrain", invoice, strings); |
1538 | 1538 | return false; | |
1539 | LLPanelEstateInfo::LLPanelEstateInfo() | 1539 | } |
1540 | : LLPanelRegionInfo(), | 1540 | |
1541 | mEstateID(0) // invalid | 1541 | ///////////////////////////////////////////////////////////////////////////// |
1542 | { | 1542 | // LLPanelEstateInfo |
1543 | } | 1543 | // |
1544 | 1544 | ||
1545 | // static | 1545 | LLPanelEstateInfo::LLPanelEstateInfo() |
1546 | void LLPanelEstateInfo::initDispatch(LLDispatcher& dispatch) | 1546 | : LLPanelRegionInfo(), |
1547 | { | 1547 | mEstateID(0) // invalid |
1548 | std::string name; | 1548 | { |
1549 | 1549 | } | |
1550 | // name.assign("setowner"); | 1550 | |
1551 | // static LLDispatchSetEstateOwner set_owner; | 1551 | // static |
1552 | // dispatch.addHandler(name, &set_owner); | 1552 | void LLPanelEstateInfo::initDispatch(LLDispatcher& dispatch) |
1553 | 1553 | { | |
1554 | name.assign("estateupdateinfo"); | 1554 | std::string name; |
1555 | static LLDispatchEstateUpdateInfo estate_update_info; | 1555 | |
1556 | dispatch.addHandler(name, &estate_update_info); | 1556 | // name.assign("setowner"); |
1557 | 1557 | // static LLDispatchSetEstateOwner set_owner; | |
1558 | name.assign("setaccess"); | 1558 | // dispatch.addHandler(name, &set_owner); |
1559 | static LLDispatchSetEstateAccess set_access; | 1559 | |
1560 | dispatch.addHandler(name, &set_access); | 1560 | name.assign("estateupdateinfo"); |
1561 | 1561 | static LLDispatchEstateUpdateInfo estate_update_info; | |
1562 | estate_dispatch_initialized = true; | 1562 | dispatch.addHandler(name, &estate_update_info); |
1563 | } | 1563 | |
1564 | 1564 | name.assign("setaccess"); | |
1565 | // static | 1565 | static LLDispatchSetEstateAccess set_access; |
1566 | // Disables the sun-hour slider and the use fixed time check if the use global time is check | 1566 | dispatch.addHandler(name, &set_access); |
1567 | void LLPanelEstateInfo::onChangeUseGlobalTime(LLUICtrl* ctrl, void* user_data) | 1567 | |
1568 | { | 1568 | estate_dispatch_initialized = true; |
1569 | LLPanelEstateInfo* panel = (LLPanelEstateInfo*) user_data; | 1569 | } |
1570 | if (panel) | 1570 | |
1571 | { | 1571 | // static |
1572 | bool enabled = !panel->childGetValue("use_global_time_check").asBoolean(); | 1572 | // Disables the sun-hour slider and the use fixed time check if the use global time is check |
1573 | panel->childSetEnabled("sun_hour_slider", enabled); | 1573 | void LLPanelEstateInfo::onChangeUseGlobalTime(LLUICtrl* ctrl, void* user_data) |
1574 | panel->childSetEnabled("fixed_sun_check", enabled); | 1574 | { |
1575 | panel->childSetValue("fixed_sun_check", LLSD(FALSE)); | 1575 | LLPanelEstateInfo* panel = (LLPanelEstateInfo*) user_data; |
1576 | panel->enableButton("apply_btn"); | 1576 | if (panel) |
1577 | } | 1577 | { |
1578 | } | 1578 | bool enabled = !panel->childGetValue("use_global_time_check").asBoolean(); |
1579 | 1579 | panel->childSetEnabled("sun_hour_slider", enabled); | |
1580 | // Enables the sun-hour slider if the fixed-sun checkbox is set | 1580 | panel->childSetEnabled("fixed_sun_check", enabled); |
1581 | void LLPanelEstateInfo::onChangeFixedSun(LLUICtrl* ctrl, void* user_data) | 1581 | panel->childSetValue("fixed_sun_check", LLSD(FALSE)); |
1582 | { | 1582 | panel->enableButton("apply_btn"); |
1583 | LLPanelEstateInfo* panel = (LLPanelEstateInfo*) user_data; | 1583 | } |
1584 | if (panel) | 1584 | } |
1585 | { | 1585 | |
1586 | bool enabled = !panel->childGetValue("fixed_sun_check").asBoolean(); | 1586 | // Enables the sun-hour slider if the fixed-sun checkbox is set |
1587 | panel->childSetEnabled("use_global_time_check", enabled); | 1587 | void LLPanelEstateInfo::onChangeFixedSun(LLUICtrl* ctrl, void* user_data) |
1588 | panel->childSetValue("use_global_time_check", LLSD(FALSE)); | 1588 | { |
1589 | panel->enableButton("apply_btn"); | 1589 | LLPanelEstateInfo* panel = (LLPanelEstateInfo*) user_data; |
1590 | } | 1590 | if (panel) |
1591 | } | 1591 | { |
1592 | 1592 | bool enabled = !panel->childGetValue("fixed_sun_check").asBoolean(); | |
1593 | 1593 | panel->childSetEnabled("use_global_time_check", enabled); | |
1594 | 1594 | panel->childSetValue("use_global_time_check", LLSD(FALSE)); | |
1595 | 1595 | panel->enableButton("apply_btn"); | |
1596 | //--------------------------------------------------------------------------- | 1596 | } |
1597 | // Add/Remove estate access button callbacks | 1597 | } |
1598 | //--------------------------------------------------------------------------- | 1598 | |
1599 | void LLPanelEstateInfo::onClickEditSky(void* user_data) | 1599 | |
1600 | { | 1600 | |
1601 | LLFloaterWindLight::show(); | 1601 | |
1602 | } | 1602 | //--------------------------------------------------------------------------- |
1603 | 1603 | // Add/Remove estate access button callbacks | |
1604 | void LLPanelEstateInfo::onClickEditDayCycle(void* user_data) | 1604 | //--------------------------------------------------------------------------- |
1605 | { | 1605 | void LLPanelEstateInfo::onClickEditSky(void* user_data) |
1606 | LLFloaterDayCycle::show(); | 1606 | { |
1607 | } | 1607 | LLFloaterWindLight::show(); |
1608 | 1608 | } | |
1609 | // static | 1609 | |
1610 | void LLPanelEstateInfo::onClickAddAllowedAgent(void* user_data) | 1610 | void LLPanelEstateInfo::onClickEditDayCycle(void* user_data) |
1611 | { | 1611 | { |
1612 | LLPanelEstateInfo* self = (LLPanelEstateInfo*)user_data; | 1612 | LLFloaterDayCycle::show(); |
1613 | LLCtrlListInterface *list = self->childGetListInterface("allowed_avatar_name_list"); | 1613 | } |
1614 | if (!list) return; | 1614 | |
1615 | if (list->getItemCount() >= ESTATE_MAX_ACCESS_IDS) | 1615 | // static |
1616 | { | 1616 | void LLPanelEstateInfo::onClickAddAllowedAgent(void* user_data) |
1617 | //args | 1617 | { |
1618 | 1618 | LLPanelEstateInfo* self = (LLPanelEstateInfo*)user_data; | |
1619 | LLSD args; | 1619 | LLCtrlListInterface *list = self->childGetListInterface("allowed_avatar_name_list"); |
1620 | args["MAX_AGENTS"] = llformat("%d",ESTATE_MAX_ACCESS_IDS); | 1620 | if (!list) return; |
1621 | LLNotifications::instance().add("MaxAllowedAgentOnRegion", args); | 1621 | if (list->getItemCount() >= ESTATE_MAX_ACCESS_IDS) |
1622 | return; | 1622 | { |
1623 | } | 1623 | //args |
1624 | accessAddCore(ESTATE_ACCESS_ALLOWED_AGENT_ADD, "EstateAllowedAgentAdd"); | 1624 | |
1625 | } | 1625 | LLSD args; |
1626 | 1626 | args["MAX_AGENTS"] = llformat("%d",ESTATE_MAX_ACCESS_IDS); | |
1627 | // static | 1627 | LLNotifications::instance().add("MaxAllowedAgentOnRegion", args); |
1628 | void LLPanelEstateInfo::onClickRemoveAllowedAgent(void* user_data) | 1628 | return; |
1629 | { | 1629 | } |
1630 | accessRemoveCore(ESTATE_ACCESS_ALLOWED_AGENT_REMOVE, "EstateAllowedAgentRemove", "allowed_avatar_name_list"); | 1630 | accessAddCore(ESTATE_ACCESS_ALLOWED_AGENT_ADD, "EstateAllowedAgentAdd"); |
1631 | } | 1631 | } |
1632 | 1632 | ||
1633 | // static | 1633 | // static |
1634 | void LLPanelEstateInfo::onClickAddAllowedGroup(void* user_data) | 1634 | void LLPanelEstateInfo::onClickRemoveAllowedAgent(void* user_data) |
1635 | { | 1635 | { |
1636 | LLPanelEstateInfo* self = (LLPanelEstateInfo*)user_data; | 1636 | accessRemoveCore(ESTATE_ACCESS_ALLOWED_AGENT_REMOVE, "EstateAllowedAgentRemove", "allowed_avatar_name_list"); |
1637 | LLCtrlListInterface *list = self->childGetListInterface("allowed_group_name_list"); | 1637 | } |
1638 | if (!list) return; | 1638 | |
1639 | if (list->getItemCount() >= ESTATE_MAX_ACCESS_IDS) | 1639 | // static |
1640 | { | 1640 | void LLPanelEstateInfo::onClickAddAllowedGroup(void* user_data) |
1641 | LLSD args; | 1641 | { |
1642 | args["MAX_GROUPS"] = llformat("%d",ESTATE_MAX_ACCESS_IDS); | 1642 | LLPanelEstateInfo* self = (LLPanelEstateInfo*)user_data; |
1643 | LLNotifications::instance().add("MaxAllowedGroupsOnRegion", args); | 1643 | LLCtrlListInterface *list = self->childGetListInterface("allowed_group_name_list"); |
1644 | return; | 1644 | if (!list) return; |
1645 | } | 1645 | if (list->getItemCount() >= ESTATE_MAX_ACCESS_IDS) |
1646 | 1646 | { | |
1647 | LLNotification::Params params("PfftLindenCrap"); | 1647 | LLSD args; |
1648 | params.functor(boost::bind(&LLPanelEstateInfo::addAllowedGroup, self, _1, _2)); | 1648 | args["MAX_GROUPS"] = llformat("%d",ESTATE_MAX_ACCESS_IDS); |
1649 | LLNotifications::instance().forceResponse(params, 0); | 1649 | LLNotifications::instance().add("MaxAllowedGroupsOnRegion", args); |
1650 | } | 1650 | return; |
1651 | 1651 | } | |
1652 | bool LLPanelEstateInfo::addAllowedGroup(const LLSD& notification, const LLSD& response) | 1652 | |
1653 | { | 1653 | LLNotification::Params params("ChangeLindenAccess"); |
1654 | S32 option = LLNotification::getSelectedOption(notification, response); | 1654 | params.functor(boost::bind(&LLPanelEstateInfo::addAllowedGroup, self, _1, _2)); |
1655 | if (option != 0) return false; | 1655 | if (isLindenEstate()) |
1656 | 1656 | { | |
1657 | LLFloater* parent_floater = gFloaterView->getParentFloater(this); | 1657 | LLNotifications::instance().add(params); |
1658 | 1658 | } | |
1659 | LLFloaterGroupPicker* widget; | 1659 | else |
1660 | widget = LLFloaterGroupPicker::showInstance(LLSD(gAgent.getID())); | 1660 | { |
1661 | if (widget) | 1661 | LLNotifications::instance().forceResponse(params, 0); |
1662 | { | 1662 | } |
1663 | widget->setSelectCallback(addAllowedGroup2, NULL); | 1663 | } |
1664 | if (parent_floater) | 1664 | |
1665 | { | 1665 | bool LLPanelEstateInfo::addAllowedGroup(const LLSD& notification, const LLSD& response) |
1666 | LLRect new_rect = gFloaterView->findNeighboringPosition(parent_floater, widget); | 1666 | { |
1667 | widget->setOrigin(new_rect.mLeft, new_rect.mBottom); | 1667 | S32 option = LLNotification::getSelectedOption(notification, response); |
1668 | parent_floater->addDependentFloater(widget); | 1668 | if (option != 0) return false; |
1669 | } | 1669 | |
1670 | } | 1670 | LLFloater* parent_floater = gFloaterView->getParentFloater(this); |
1671 | 1671 | ||
1672 | return false; | 1672 | LLFloaterGroupPicker* widget; |
1673 | } | 1673 | widget = LLFloaterGroupPicker::showInstance(LLSD(gAgent.getID())); |
1674 | 1674 | if (widget) | |
1675 | // static | 1675 | { |
1676 | void LLPanelEstateInfo::onClickRemoveAllowedGroup(void* user_data) | 1676 | widget->setSelectCallback(addAllowedGroup2, NULL); |
1677 | { | 1677 | if (parent_floater) |
1678 | accessRemoveCore(ESTATE_ACCESS_ALLOWED_GROUP_REMOVE, "EstateAllowedGroupRemove", "allowed_group_name_list"); | 1678 | { |
1679 | } | 1679 | LLRect new_rect = gFloaterView->findNeighboringPosition(parent_floater, widget); |
1680 | 1680 | widget->setOrigin(new_rect.mLeft, new_rect.mBottom); | |
1681 | // static | 1681 | parent_floater->addDependentFloater(widget); |
1682 | void LLPanelEstateInfo::onClickAddBannedAgent(void* user_data) | 1682 | } |
1683 | { | 1683 | } |
1684 | LLPanelEstateInfo* self = (LLPanelEstateInfo*)user_data; | 1684 | |
1685 | LLCtrlListInterface *list = self->childGetListInterface("banned_avatar_name_list"); | 1685 | return false; |
1686 | if (!list) return; | 1686 | } |
1687 | if (list->getItemCount() >= ESTATE_MAX_ACCESS_IDS) | 1687 | |
1688 | { | 1688 | // static |
1689 | LLSD args; | 1689 | void LLPanelEstateInfo::onClickRemoveAllowedGroup(void* user_data) |
1690 | args["MAX_BANNED"] = llformat("%d",ESTATE_MAX_ACCESS_IDS); | 1690 | { |
1691 | LLNotifications::instance().add("MaxBannedAgentsOnRegion", args); | 1691 | accessRemoveCore(ESTATE_ACCESS_ALLOWED_GROUP_REMOVE, "EstateAllowedGroupRemove", "allowed_group_name_list"); |
1692 | return; | 1692 | } |
1693 | } | 1693 | |
1694 | accessAddCore(ESTATE_ACCESS_BANNED_AGENT_ADD, "EstateBannedAgentAdd"); | 1694 | // static |
1695 | } | 1695 | void LLPanelEstateInfo::onClickAddBannedAgent(void* user_data) |
1696 | 1696 | { | |
1697 | // static | 1697 | LLPanelEstateInfo* self = (LLPanelEstateInfo*)user_data; |
1698 | void LLPanelEstateInfo::onClickRemoveBannedAgent(void* user_data) | 1698 | LLCtrlListInterface *list = self->childGetListInterface("banned_avatar_name_list"); |
1699 | { | 1699 | if (!list) return; |
1700 | accessRemoveCore(ESTATE_ACCESS_BANNED_AGENT_REMOVE, "EstateBannedAgentRemove", "banned_avatar_name_list"); | 1700 | if (list->getItemCount() >= ESTATE_MAX_ACCESS_IDS) |
1701 | } | 1701 | { |
1702 | 1702 | LLSD args; | |
1703 | // static | 1703 | args["MAX_BANNED"] = llformat("%d",ESTATE_MAX_ACCESS_IDS); |
1704 | void LLPanelEstateInfo::onClickAddEstateManager(void* user_data) | 1704 | LLNotifications::instance().add("MaxBannedAgentsOnRegion", args); |
1705 | { | 1705 | return; |
1706 | LLPanelEstateInfo* self = (LLPanelEstateInfo*)user_data; | 1706 | } |
1707 | LLCtrlListInterface *list = self->childGetListInterface("estate_manager_name_list"); | 1707 | accessAddCore(ESTATE_ACCESS_BANNED_AGENT_ADD, "EstateBannedAgentAdd"); |
1708 | if (!list) return; | 1708 | } |
1709 | if (list->getItemCount() >= ESTATE_MAX_MANAGERS) | 1709 | |
1710 | { // Tell user they can't add more managers | 1710 | // static |
1711 | LLSD args; | 1711 | void LLPanelEstateInfo::onClickRemoveBannedAgent(void* user_data) |
1712 | args["MAX_MANAGER"] = llformat("%d",ESTATE_MAX_MANAGERS); | 1712 | { |
1713 | LLNotifications::instance().add("MaxManagersOnRegion", args); | 1713 | accessRemoveCore(ESTATE_ACCESS_BANNED_AGENT_REMOVE, "EstateBannedAgentRemove", "banned_avatar_name_list"); |
1714 | } | 1714 | } |
1715 | else | 1715 | |
1716 | { // Go pick managers to add | 1716 | // static |
1717 | accessAddCore(ESTATE_ACCESS_MANAGER_ADD, "EstateManagerAdd"); | 1717 | void LLPanelEstateInfo::onClickAddEstateManager(void* user_data) |
1718 | } | 1718 | { |
1719 | } | 1719 | LLPanelEstateInfo* self = (LLPanelEstateInfo*)user_data; |
1720 | 1720 | LLCtrlListInterface *list = self->childGetListInterface("estate_manager_name_list"); | |
1721 | // static | 1721 | if (!list) return; |
1722 | void LLPanelEstateInfo::onClickRemoveEstateManager(void* user_data) | 1722 | if (list->getItemCount() >= ESTATE_MAX_MANAGERS) |
1723 | { | 1723 | { // Tell user they can't add more managers |
1724 | accessRemoveCore(ESTATE_ACCESS_MANAGER_REMOVE, "EstateManagerRemove", "estate_manager_name_list"); | 1724 | LLSD args; |
1725 | } | 1725 | args["MAX_MANAGER"] = llformat("%d",ESTATE_MAX_MANAGERS); |
1726 | 1726 | LLNotifications::instance().add("MaxManagersOnRegion", args); | |
1727 | //--------------------------------------------------------------------------- | 1727 | } |
1728 | // Kick from estate methods | 1728 | else |
1729 | //--------------------------------------------------------------------------- | 1729 | { // Go pick managers to add |
1730 | struct LLKickFromEstateInfo | 1730 | accessAddCore(ESTATE_ACCESS_MANAGER_ADD, "EstateManagerAdd"); |
1731 | { | 1731 | } |
1732 | LLPanelEstateInfo *mEstatePanelp; | 1732 | } |
1733 | LLUUID mAgentID; | 1733 | |
1734 | }; | 1734 | // static |
1735 | 1735 | void LLPanelEstateInfo::onClickRemoveEstateManager(void* user_data) | |
1736 | void LLPanelEstateInfo::onClickKickUser(void *user_data) | 1736 | { |
1737 | { | 1737 | accessRemoveCore(ESTATE_ACCESS_MANAGER_REMOVE, "EstateManagerRemove", "estate_manager_name_list"); |
1738 | LLPanelEstateInfo* panelp = (LLPanelEstateInfo*)user_data; | 1738 | } |
1739 | 1739 | ||
1740 | // this depends on the grandparent view being a floater | 1740 | //--------------------------------------------------------------------------- |
1741 | // in order to set up floater dependency | 1741 | // Kick from estate methods |
1742 | LLFloater* parent_floater = gFloaterView->getParentFloater(panelp); | 1742 | //--------------------------------------------------------------------------- |
1743 | LLFloater* child_floater = LLFloaterAvatarPicker::show(LLPanelEstateInfo::onKickUserCommit, user_data, FALSE, TRUE); | 1743 | struct LLKickFromEstateInfo |
1744 | parent_floater->addDependentFloater(child_floater); | 1744 | { |
1745 | } | 1745 | LLPanelEstateInfo *mEstatePanelp; |
1746 | 1746 | LLUUID mAgentID; | |
1747 | void LLPanelEstateInfo::onKickUserCommit(const std::vector<std::string>& names, const std::vector<LLUUID>& ids, void* userdata) | 1747 | }; |
1748 | { | 1748 | |
1749 | if (names.empty() || ids.empty()) return; | 1749 | void LLPanelEstateInfo::onClickKickUser(void *user_data) |
1750 | 1750 | { | |
1751 | //check to make sure there is one valid user and id | 1751 | LLPanelEstateInfo* panelp = (LLPanelEstateInfo*)user_data; |
1752 | if( (ids[0].isNull()) || | 1752 | |
1753 | (names[0].length() == 0) ) | 1753 | // this depends on the grandparent view being a floater |
1754 | { | 1754 | // in order to set up floater dependency |
1755 | return; | 1755 | LLFloater* parent_floater = gFloaterView->getParentFloater(panelp); |
1756 | } | 1756 | LLFloater* child_floater = LLFloaterAvatarPicker::show(LLPanelEstateInfo::onKickUserCommit, user_data, FALSE, TRUE); |
1757 | 1757 | parent_floater->addDependentFloater(child_floater); | |
1758 | LLPanelEstateInfo* self = (LLPanelEstateInfo*)userdata; | 1758 | } |
1759 | if(!self) return; | 1759 | |
1760 | 1760 | void LLPanelEstateInfo::onKickUserCommit(const std::vector<std::string>& names, const std::vector<LLUUID>& ids, void* userdata) | |
1761 | //keep track of what user they want to kick and other misc info | 1761 | { |
1762 | LLKickFromEstateInfo *kick_info = new LLKickFromEstateInfo(); | 1762 | if (names.empty() || ids.empty()) return; |
1763 | kick_info->mEstatePanelp = self; | 1763 | |
1764 | kick_info->mAgentID = ids[0]; | 1764 | //check to make sure there is one valid user and id |
1765 | 1765 | if( (ids[0].isNull()) || | |
1766 | //Bring up a confirmation dialog | 1766 | (names[0].length() == 0) ) |
1767 | LLSD args; | 1767 | { |
1768 | args["EVIL_USER"] = names[0]; | 1768 | return; |
1769 | LLSD payload; | 1769 | } |
1770 | payload["agent_id"] = ids[0]; | 1770 | |
1771 | LLNotifications::instance().add("EstateKickUser", args, payload, boost::bind(&LLPanelEstateInfo::kickUserConfirm, self, _1, _2)); | 1771 | LLPanelEstateInfo* self = (LLPanelEstateInfo*)userdata; |
1772 | 1772 | if(!self) return; | |
1773 | } | 1773 | |
1774 | 1774 | //keep track of what user they want to kick and other misc info | |
1775 | bool LLPanelEstateInfo::kickUserConfirm(const LLSD& notification, const LLSD& response) | 1775 | LLKickFromEstateInfo *kick_info = new LLKickFromEstateInfo(); |
1776 | { | 1776 | kick_info->mEstatePanelp = self; |
1777 | S32 option = LLNotification::getSelectedOption(notification, response); | 1777 | kick_info->mAgentID = ids[0]; |
1778 | switch(option) | 1778 | |
1779 | { | 1779 | //Bring up a confirmation dialog |
1780 | case 0: | 1780 | LLSD args; |
1781 | { | 1781 | args["EVIL_USER"] = names[0]; |
1782 | //Kick User | 1782 | LLSD payload; |
1783 | strings_t strings; | 1783 | payload["agent_id"] = ids[0]; |
1784 | strings.push_back(notification["payload"]["agent_id"].asString()); | 1784 | LLNotifications::instance().add("EstateKickUser", args, payload, boost::bind(&LLPanelEstateInfo::kickUserConfirm, self, _1, _2)); |
1785 | 1785 | ||
1786 | sendEstateOwnerMessage(gMessageSystem, "kickestate", LLFloaterRegionInfo::getLastInvoice(), strings); | 1786 | } |
1787 | break; | 1787 | |
1788 | } | 1788 | bool LLPanelEstateInfo::kickUserConfirm(const LLSD& notification, const LLSD& response) |
1789 | default: | 1789 | { |
1790 | break; | 1790 | S32 option = LLNotification::getSelectedOption(notification, response); |
1791 | } | 1791 | switch(option) |
1792 | return false; | 1792 | { |
1793 | } | 1793 | case 0: |
1794 | 1794 | { | |
1795 | //--------------------------------------------------------------------------- | 1795 | //Kick User |
1796 | // Core Add/Remove estate access methods | 1796 | strings_t strings; |
1797 | // TODO: INTERNATIONAL: don't build message text here; | 1797 | strings.push_back(notification["payload"]["agent_id"].asString()); |
1798 | // instead, create multiple translatable messages and choose | 1798 | |
1799 | // one based on the status. | 1799 | sendEstateOwnerMessage(gMessageSystem, "kickestate", LLFloaterRegionInfo::getLastInvoice(), strings); |
1800 | //--------------------------------------------------------------------------- | 1800 | break; |
1801 | std::string all_estates_text() | 1801 | } |
1802 | { | 1802 | default: |
1803 | LLPanelEstateInfo* panel = LLFloaterRegionInfo::getPanelEstate(); | 1803 | break; |
1804 | if (!panel) return "(error)"; | 1804 | } |
1805 | 1805 | return false; | |
1806 | std::string owner = panel->getOwnerName(); | 1806 | } |
1807 | 1807 | ||
1808 | LLViewerRegion* region = gAgent.getRegion(); | 1808 | //--------------------------------------------------------------------------- |
1809 | if (gAgent.isGodlike()) | 1809 | // Core Add/Remove estate access methods |
1810 | { | 1810 | // TODO: INTERNATIONAL: don't build message text here; |
1811 | return llformat("all estates\nowned by %s", owner.c_str()); | 1811 | // instead, create multiple translatable messages and choose |
1812 | } | 1812 | // one based on the status. |
1813 | else if (region && region->getOwner() == gAgent.getID()) | 1813 | //--------------------------------------------------------------------------- |
1814 | { | 1814 | std::string all_estates_text() |
1815 | return "all estates you own"; | 1815 | { |
1816 | } | 1816 | LLPanelEstateInfo* panel = LLFloaterRegionInfo::getPanelEstate(); |
1817 | else if (region && region->isEstateManager()) | 1817 | if (!panel) return "(error)"; |
1818 | { | 1818 | |
1819 | return llformat("all estates that\nyou manage for %s", owner.c_str()); | 1819 | std::string owner = panel->getOwnerName(); |
1820 | } | 1820 | |
1821 | else | 1821 | LLViewerRegion* region = gAgent.getRegion(); |
1822 | { | 1822 | if (gAgent.isGodlike()) |
1823 | return "(error)"; | 1823 | { |
1824 | } | 1824 | return llformat("all estates\nowned by %s", owner.c_str()); |
1825 | } | 1825 | } |
1826 | 1826 | else if (region && region->getOwner() == gAgent.getID()) | |
1827 | typedef std::vector<LLUUID> AgentOrGroupIDsVector; | 1827 | { |
1828 | struct LLEstateAccessChangeInfo | 1828 | return "all estates you own"; |
1829 | { | 1829 | } |
1830 | LLEstateAccessChangeInfo(const LLSD& sd) | 1830 | else if (region && region->isEstateManager()) |
1831 | { | 1831 | { |
1832 | mDialogName = sd["dialog_name"].asString(); | 1832 | return llformat("all estates that\nyou manage for %s", owner.c_str()); |
1833 | mOperationFlag = (U32)sd["operation"].asInteger(); | 1833 | } |
1834 | LLSD::array_const_iterator end_it = sd["allowed_ids"].endArray(); | 1834 | else |
1835 | for (LLSD::array_const_iterator id_it = sd["allowed_ids"].beginArray(); | 1835 | { |
1836 | id_it != end_it; | 1836 | return "(error)"; |
1837 | ++id_it) | 1837 | } |
1838 | { | 1838 | } |
1839 | mAgentOrGroupIDs.push_back(id_it->asUUID()); | 1839 | |
1840 | } | 1840 | // static |
1841 | } | 1841 | bool LLPanelEstateInfo::isLindenEstate() |
1842 | 1842 | { | |
1843 | const LLSD asLLSD() const | 1843 | LLPanelEstateInfo* panel = LLFloaterRegionInfo::getPanelEstate(); |
1844 | { | 1844 | if (!panel) return false; |
1845 | LLSD sd; | 1845 | |
1846 | sd["name"] = mDialogName; | 1846 | U32 estate_id = panel->getEstateID(); |
1847 | sd["operation"] = (S32)mOperationFlag; | 1847 | return (estate_id <= ESTATE_LAST_LINDEN); |
1848 | for (AgentOrGroupIDsVector::const_iterator it = mAgentOrGroupIDs.begin(); | 1848 | } |
1849 | it != mAgentOrGroupIDs.end(); | 1849 | |
1850 | ++it) | 1850 | typedef std::vector<LLUUID> AgentOrGroupIDsVector; |
1851 | { | 1851 | struct LLEstateAccessChangeInfo |
1852 | sd["allowed_ids"].append(*it); | 1852 | { |
1853 | } | 1853 | LLEstateAccessChangeInfo(const LLSD& sd) |
1854 | return sd; | 1854 | { |
1855 | } | 1855 | mDialogName = sd["dialog_name"].asString(); |
1856 | 1856 | mOperationFlag = (U32)sd["operation"].asInteger(); | |
1857 | U32 mOperationFlag; // ESTATE_ACCESS_BANNED_AGENT_ADD, _REMOVE, etc. | 1857 | LLSD::array_const_iterator end_it = sd["allowed_ids"].endArray(); |
1858 | std::string mDialogName; | 1858 | for (LLSD::array_const_iterator id_it = sd["allowed_ids"].beginArray(); |
1859 | AgentOrGroupIDsVector mAgentOrGroupIDs; // List of agent IDs to apply to this change | 1859 | id_it != end_it; |
1860 | }; | 1860 | ++id_it) |
1861 | 1861 | { | |
1862 | // Special case callback for groups, since it has different callback format than names | 1862 | mAgentOrGroupIDs.push_back(id_it->asUUID()); |
1863 | // static | 1863 | } |
1864 | void LLPanelEstateInfo::addAllowedGroup2(LLUUID id, void* user_data) | 1864 | } |
1865 | { | 1865 | |
1866 | LLSD payload; | 1866 | const LLSD asLLSD() const |
1867 | payload["operation"] = (S32)ESTATE_ACCESS_ALLOWED_GROUP_ADD; | 1867 | { |
1868 | payload["dialog_name"] = "EstateAllowedGroupAdd"; | 1868 | LLSD sd; |
1869 | payload["allowed_ids"].append(id); | 1869 | sd["name"] = mDialogName; |
1870 | 1870 | sd["operation"] = (S32)mOperationFlag; | |
1871 | LLSD args; | 1871 | for (AgentOrGroupIDsVector::const_iterator it = mAgentOrGroupIDs.begin(); |
1872 | args["ALL_ESTATES"] = all_estates_text(); | 1872 | it != mAgentOrGroupIDs.end(); |
1873 | 1873 | ++it) | |
1874 | LLNotification::Params params("EstateAllowedGroupAdd"); | 1874 | { |
1875 | params.payload(payload) | 1875 | sd["allowed_ids"].append(*it); |
1876 | .substitutions(args) | 1876 | } |
1877 | .functor(accessCoreConfirm); | 1877 | return sd; |
1878 | LLNotifications::instance().add(params); | 1878 | } |
1879 | } | 1879 | |
1880 | 1880 | U32 mOperationFlag; // ESTATE_ACCESS_BANNED_AGENT_ADD, _REMOVE, etc. | |
1881 | // static | 1881 | std::string mDialogName; |
1882 | void LLPanelEstateInfo::accessAddCore(U32 operation_flag, const std::string& dialog_name) | 1882 | AgentOrGroupIDsVector mAgentOrGroupIDs; // List of agent IDs to apply to this change |
1883 | { | 1883 | }; |
1884 | LLSD payload; | 1884 | |
1885 | payload["operation"] = (S32)operation_flag; | 1885 | // Special case callback for groups, since it has different callback format than names |
1886 | payload["dialog_name"] = dialog_name; | 1886 | // static |
1887 | // agent id filled in after avatar picker | 1887 | void LLPanelEstateInfo::addAllowedGroup2(LLUUID id, void* user_data) |
1888 | 1888 | { | |
1889 | LLNotification::Params params("PfftLindenCrap"); | 1889 | LLSD payload; |
1890 | params.payload(payload) | 1890 | payload["operation"] = (S32)ESTATE_ACCESS_ALLOWED_GROUP_ADD; |
1891 | .functor(accessAddCore2); | 1891 | payload["dialog_name"] = "EstateAllowedGroupAdd"; |
1892 | 1892 | payload["allowed_ids"].append(id); | |
1893 | // same as clicking "OK" | 1893 | |
1894 | LLNotifications::instance().forceResponse(params, 0); | 1894 | LLSD args; |
1895 | } | 1895 | args["ALL_ESTATES"] = all_estates_text(); |
1896 | 1896 | ||
1897 | // static | 1897 | LLNotification::Params params("EstateAllowedGroupAdd"); |
1898 | bool LLPanelEstateInfo::accessAddCore2(const LLSD& notification, const LLSD& response) | 1898 | params.payload(payload) |
1899 | { | 1899 | .substitutions(args) |
1900 | S32 option = LLNotification::getSelectedOption(notification, response); | 1900 | .functor(accessCoreConfirm); |
1901 | if (option != 0) | 1901 | if (isLindenEstate()) |
1902 | { | 1902 | { |
1903 | // abort change | 1903 | LLNotifications::instance().forceResponse(params, 0); |
1904 | return false; | 1904 | } |
1905 | } | 1905 | else |
1906 | 1906 | { | |
1907 | LLEstateAccessChangeInfo* change_info = new LLEstateAccessChangeInfo(notification["payload"]); | 1907 | LLNotifications::instance().add(params); |
1908 | // avatar picker yes multi-select, yes close-on-select | 1908 | } |
1909 | LLFloaterAvatarPicker::show(accessAddCore3, (void*)change_info, TRUE, TRUE); | 1909 | } |
1910 | return false; | 1910 | |
1911 | } | 1911 | // static |
1912 | 1912 | void LLPanelEstateInfo::accessAddCore(U32 operation_flag, const std::string& dialog_name) | |
1913 | // static | 1913 | { |
1914 | void LLPanelEstateInfo::accessAddCore3(const std::vector<std::string>& names, const std::vector<LLUUID>& ids, void* data) | 1914 | LLSD payload; |
1915 | { | 1915 | payload["operation"] = (S32)operation_flag; |
1916 | LLEstateAccessChangeInfo* change_info = (LLEstateAccessChangeInfo*)data; | 1916 | payload["dialog_name"] = dialog_name; |
1917 | if (!change_info) return; | 1917 | // agent id filled in after avatar picker |
1918 | if (ids.empty()) | 1918 | |
1919 | { | 1919 | LLNotification::Params params("ChangeLindenAccess"); |
1920 | // User didn't select a name. | 1920 | params.payload(payload) |
1921 | delete change_info; | 1921 | .functor(accessAddCore2); |
1922 | change_info = NULL; | 1922 | |
1923 | return; | 1923 | if (isLindenEstate()) |
1924 | } | 1924 | { |
1925 | // User did select a name. | 1925 | LLNotifications::instance().add(params); |
1926 | change_info->mAgentOrGroupIDs = ids; | 1926 | } |
1927 | // Can't put estate owner on ban list | 1927 | else |
1928 | LLPanelEstateInfo* panel = LLFloaterRegionInfo::getPanelEstate(); | 1928 | { |
1929 | if (!panel) return; | 1929 | // same as clicking "OK" |
1930 | LLViewerRegion* region = gAgent.getRegion(); | 1930 | LLNotifications::instance().forceResponse(params, 0); |
1931 | if (!region) return; | 1931 | } |
1932 | 1932 | } | |
1933 | if (change_info->mOperationFlag & ESTATE_ACCESS_ALLOWED_AGENT_ADD) | 1933 | |
1934 | { | 1934 | // static |
1935 | LLCtrlListInterface *list = panel->childGetListInterface("allowed_avatar_name_list"); | 1935 | bool LLPanelEstateInfo::accessAddCore2(const LLSD& notification, const LLSD& response) |
1936 | int currentCount = (list ? list->getItemCount() : 0); | 1936 | { |
1937 | if (ids.size() + currentCount > ESTATE_MAX_ACCESS_IDS) | 1937 | S32 option = LLNotification::getSelectedOption(notification, response); |
1938 | { | 1938 | if (option != 0) |
1939 | LLSD args; | 1939 | { |
1940 | args["NUM_ADDED"] = llformat("%d",ids.size()); | 1940 | // abort change |
1941 | args["MAX_AGENTS"] = llformat("%d",ESTATE_MAX_ACCESS_IDS); | 1941 | return false; |
1942 | args["LIST_TYPE"] = "Allowed Residents"; | 1942 | } |
1943 | args["NUM_EXCESS"] = llformat("%d",(ids.size()+currentCount)-ESTATE_MAX_ACCESS_IDS); | 1943 | |
1944 | LLNotifications::instance().add("MaxAgentOnRegionBatch", args); | 1944 | LLEstateAccessChangeInfo* change_info = new LLEstateAccessChangeInfo(notification["payload"]); |
1945 | delete change_info; | 1945 | // avatar picker yes multi-select, yes close-on-select |
1946 | return; | 1946 | LLFloaterAvatarPicker::show(accessAddCore3, (void*)change_info, TRUE, TRUE); |
1947 | } | 1947 | return false; |
1948 | } | 1948 | } |
1949 | if (change_info->mOperationFlag & ESTATE_ACCESS_BANNED_AGENT_ADD) | 1949 | |
1950 | { | 1950 | // static |
1951 | LLCtrlListInterface *list = panel->childGetListInterface("banned_avatar_name_list"); | 1951 | void LLPanelEstateInfo::accessAddCore3(const std::vector<std::string>& names, const std::vector<LLUUID>& ids, void* data) |
1952 | int currentCount = (list ? list->getItemCount() : 0); | 1952 | { |
1953 | if (ids.size() + currentCount > ESTATE_MAX_ACCESS_IDS) | 1953 | LLEstateAccessChangeInfo* change_info = (LLEstateAccessChangeInfo*)data; |
1954 | { | 1954 | if (!change_info) return; |
1955 | LLSD args; | 1955 | if (ids.empty()) |
1956 | args["NUM_ADDED"] = llformat("%d",ids.size()); | 1956 | { |
1957 | args["MAX_AGENTS"] = llformat("%d",ESTATE_MAX_ACCESS_IDS); | 1957 | // User didn't select a name. |
1958 | args["LIST_TYPE"] = "Banned Residents"; | 1958 | delete change_info; |
1959 | args["NUM_EXCESS"] = llformat("%d",(ids.size()+currentCount)-ESTATE_MAX_ACCESS_IDS); | 1959 | change_info = NULL; |
1960 | LLNotifications::instance().add("MaxAgentOnRegionBatch", args); | 1960 | return; |
1961 | delete change_info; | 1961 | } |
1962 | return; | 1962 | // User did select a name. |
1963 | } | 1963 | change_info->mAgentOrGroupIDs = ids; |
1964 | } | 1964 | // Can't put estate owner on ban list |
1965 | 1965 | LLPanelEstateInfo* panel = LLFloaterRegionInfo::getPanelEstate(); | |
1966 | LLSD args; | 1966 | if (!panel) return; |
1967 | args["ALL_ESTATES"] = all_estates_text(); | 1967 | LLViewerRegion* region = gAgent.getRegion(); |
1968 | 1968 | if (!region) return; | |
1969 | LLNotification::Params params(change_info->mDialogName); | 1969 | |
1970 | params.substitutions(args) | 1970 | if (change_info->mOperationFlag & ESTATE_ACCESS_ALLOWED_AGENT_ADD) |
1971 | .payload(change_info->asLLSD()) | 1971 | { |
1972 | .functor(accessCoreConfirm); | 1972 | LLCtrlListInterface *list = panel->childGetListInterface("allowed_avatar_name_list"); |
1973 | 1973 | int currentCount = (list ? list->getItemCount() : 0); | |
1974 | // ask if this estate or all estates with this owner | 1974 | if (ids.size() + currentCount > ESTATE_MAX_ACCESS_IDS) |
1975 | LLNotifications::instance().add(params); | 1975 | { |
1976 | } | 1976 | LLSD args; |
1977 | 1977 | args["NUM_ADDED"] = llformat("%d",ids.size()); | |
1978 | // static | 1978 | args["MAX_AGENTS"] = llformat("%d",ESTATE_MAX_ACCESS_IDS); |
1979 | void LLPanelEstateInfo::accessRemoveCore(U32 operation_flag, const std::string& dialog_name, const std::string& list_ctrl_name) | 1979 | args["LIST_TYPE"] = "Allowed Residents"; |
1980 | { | 1980 | args["NUM_EXCESS"] = llformat("%d",(ids.size()+currentCount)-ESTATE_MAX_ACCESS_IDS); |
1981 | LLPanelEstateInfo* panel = LLFloaterRegionInfo::getPanelEstate(); | 1981 | LLNotifications::instance().add("MaxAgentOnRegionBatch", args); |
1982 | if (!panel) return; | 1982 | delete change_info; |
1983 | LLNameListCtrl* name_list = panel->getChild<LLNameListCtrl>(list_ctrl_name); | 1983 | return; |
1984 | if (!name_list) return; | 1984 | } |
1985 | 1985 | } | |
1986 | std::vector<LLScrollListItem*> list_vector = name_list->getAllSelected(); | 1986 | if (change_info->mOperationFlag & ESTATE_ACCESS_BANNED_AGENT_ADD) |
1987 | if (list_vector.size() == 0) | 1987 | { |
1988 | return; | 1988 | LLCtrlListInterface *list = panel->childGetListInterface("banned_avatar_name_list"); |
1989 | 1989 | int currentCount = (list ? list->getItemCount() : 0); | |
1990 | LLSD payload; | 1990 | if (ids.size() + currentCount > ESTATE_MAX_ACCESS_IDS) |
1991 | payload["operation"] = (S32)operation_flag; | 1991 | { |
1992 | payload["dialog_name"] = dialog_name; | 1992 | LLSD args; |
1993 | 1993 | args["NUM_ADDED"] = llformat("%d",ids.size()); | |
1994 | for (std::vector<LLScrollListItem*>::const_iterator iter = list_vector.begin(); | 1994 | args["MAX_AGENTS"] = llformat("%d",ESTATE_MAX_ACCESS_IDS); |
1995 | iter != list_vector.end(); | 1995 | args["LIST_TYPE"] = "Banned Residents"; |
1996 | iter++) | 1996 | args["NUM_EXCESS"] = llformat("%d",(ids.size()+currentCount)-ESTATE_MAX_ACCESS_IDS); |
1997 | { | 1997 | LLNotifications::instance().add("MaxAgentOnRegionBatch", args); |
1998 | LLScrollListItem *item = (*iter); | 1998 | delete change_info; |
1999 | payload["allowed_ids"].append(item->getUUID()); | 1999 | return; |
2000 | } | 2000 | } |
2001 | 2001 | } | |
2002 | LLNotification::Params params("PfftLindenCrap"); | 2002 | |
2003 | params.payload(payload) | 2003 | LLSD args; |
2004 | .functor(accessRemoveCore2); | 2004 | args["ALL_ESTATES"] = all_estates_text(); |
2005 | 2005 | ||
2006 | // just proceed, as if clicking OK | 2006 | LLNotification::Params params(change_info->mDialogName); |
2007 | LLNotifications::instance().forceResponse(params, 0); | 2007 | params.substitutions(args) |
2008 | } | 2008 | .payload(change_info->asLLSD()) |
2009 | 2009 | .functor(accessCoreConfirm); | |
2010 | // static | 2010 | |
2011 | bool LLPanelEstateInfo::accessRemoveCore2(const LLSD& notification, const LLSD& response) | 2011 | if (isLindenEstate()) |
2012 | { | 2012 | { |
2013 | S32 option = LLNotification::getSelectedOption(notification, response); | 2013 | // just apply to this estate |
2014 | if (option != 0) | 2014 | LLNotifications::instance().forceResponse(params, 0); |
2015 | { | 2015 | } |
2016 | // abort | 2016 | else |
2017 | return false; | 2017 | { |
2018 | } | 2018 | // ask if this estate or all estates with this owner |
2019 | 2019 | LLNotifications::instance().add(params); | |
2020 | LLSD args; | 2020 | } |
2021 | args["ALL_ESTATES"] = all_estates_text(); | 2021 | } |
2022 | LLNotifications::instance().add(notification["payload"]["dialog_name"], | 2022 | |
2023 | args, | 2023 | // static |
2024 | notification["payload"], | 2024 | void LLPanelEstateInfo::accessRemoveCore(U32 operation_flag, const std::string& dialog_name, const std::string& list_ctrl_name) |
2025 | accessCoreConfirm); | 2025 | { |
2026 | return false; | 2026 | LLPanelEstateInfo* panel = LLFloaterRegionInfo::getPanelEstate(); |
2027 | } | 2027 | if (!panel) return; |
2028 | 2028 | LLNameListCtrl* name_list = panel->getChild<LLNameListCtrl>(list_ctrl_name); | |
2029 | // Used for both access add and remove operations, depending on the mOperationFlag | 2029 | if (!name_list) return; |
2030 | // passed in (ESTATE_ACCESS_BANNED_AGENT_ADD, ESTATE_ACCESS_ALLOWED_AGENT_REMOVE, etc.) | 2030 | |
2031 | // static | 2031 | std::vector<LLScrollListItem*> list_vector = name_list->getAllSelected(); |
2032 | bool LLPanelEstateInfo::accessCoreConfirm(const LLSD& notification, const LLSD& response) | 2032 | if (list_vector.size() == 0) |
2033 | { | 2033 | return; |
2034 | S32 option = LLNotification::getSelectedOption(notification, response); | 2034 | |
2035 | const U32 originalFlags = (U32)notification["payload"]["operation"].asInteger(); | 2035 | LLSD payload; |
2036 | 2036 | payload["operation"] = (S32)operation_flag; | |
2037 | LLViewerRegion* region = gAgent.getRegion(); | 2037 | payload["dialog_name"] = dialog_name; |
2038 | 2038 | ||
2039 | LLSD::array_const_iterator end_it = notification["payload"]["allowed_ids"].endArray(); | 2039 | for (std::vector<LLScrollListItem*>::const_iterator iter = list_vector.begin(); |
2040 | 2040 | iter != list_vector.end(); | |
2041 | for (LLSD::array_const_iterator iter = notification["payload"]["allowed_ids"].beginArray(); | 2041 | iter++) |
2042 | iter != end_it; | 2042 | { |
2043 | iter++) | 2043 | LLScrollListItem *item = (*iter); |
2044 | { | 2044 | payload["allowed_ids"].append(item->getUUID()); |
2045 | U32 flags = originalFlags; | 2045 | } |
2046 | if (iter + 1 != end_it) | 2046 | |
2047 | flags |= ESTATE_ACCESS_NO_REPLY; | 2047 | LLNotification::Params params("ChangeLindenAccess"); |
2048 | 2048 | params.payload(payload) | |
2049 | const LLUUID id = iter->asUUID(); | 2049 | .functor(accessRemoveCore2); |
2050 | if (((U32)notification["payload"]["operation"].asInteger() & ESTATE_ACCESS_BANNED_AGENT_ADD) | 2050 | |
2051 | && region && (region->getOwner() == id)) | 2051 | if (isLindenEstate()) |
2052 | { | 2052 | { |
2053 | LLNotifications::instance().add("OwnerCanNotBeDenied"); | 2053 | // warn on change linden estate |
2054 | break; | 2054 | LLNotifications::instance().add(params); |
2055 | } | 2055 | } |
2056 | switch(option) | 2056 | else |
2057 | { | 2057 | { |
2058 | case 0: | 2058 | // just proceed, as if clicking OK |
2059 | // This estate | 2059 | LLNotifications::instance().forceResponse(params, 0); |
2060 | sendEstateAccessDelta(flags, id); | 2060 | } |
2061 | break; | 2061 | } |
2062 | case 1: | 2062 | |
2063 | { | 2063 | // static |
2064 | // All estates, either than I own or manage for this owner. | 2064 | bool LLPanelEstateInfo::accessRemoveCore2(const LLSD& notification, const LLSD& response) |
2065 | // This will be verified on simulator. JC | 2065 | { |
2066 | if (!region) break; | 2066 | S32 option = LLNotification::getSelectedOption(notification, response); |
2067 | if (region->getOwner() == gAgent.getID() | 2067 | if (option != 0) |
2068 | || gAgent.isGodlike()) | 2068 | { |
2069 | { | 2069 | // abort |
2070 | flags |= ESTATE_ACCESS_APPLY_TO_ALL_ESTATES; | 2070 | return false; |
2071 | sendEstateAccessDelta(flags, id); | 2071 | } |
2072 | } | 2072 | |
2073 | else if (region->isEstateManager()) | 2073 | // If Linden estate, can only apply to "this" estate, not all estates |
2074 | { | 2074 | // owned by NULL. |
2075 | flags |= ESTATE_ACCESS_APPLY_TO_MANAGED_ESTATES; | 2075 | if (isLindenEstate()) |
2076 | sendEstateAccessDelta(flags, id); | 2076 | { |
2077 | } | 2077 | accessCoreConfirm(notification, response); |
2078 | break; | 2078 | } |
2079 | } | 2079 | else |
2080 | case 2: | 2080 | { |
2081 | default: | 2081 | LLSD args; |
2082 | break; | 2082 | args["ALL_ESTATES"] = all_estates_text(); |
2083 | } | 2083 | LLNotifications::instance().add(notification["payload"]["dialog_name"], |
2084 | } | 2084 | args, |
2085 | return false; | 2085 | notification["payload"], |
2086 | } | 2086 | accessCoreConfirm); |
2087 | 2087 | } | |
2088 | // key = "estateaccessdelta" | 2088 | return false; |
2089 | // str(estate_id) will be added to front of list by forward_EstateOwnerRequest_to_dataserver | 2089 | } |
2090 | // str[0] = str(agent_id) requesting the change | 2090 | |
2091 | // str[1] = str(flags) (ESTATE_ACCESS_DELTA_*) | 2091 | // Used for both access add and remove operations, depending on the mOperationFlag |
2092 | // str[2] = str(agent_id) to add or remove | 2092 | // passed in (ESTATE_ACCESS_BANNED_AGENT_ADD, ESTATE_ACCESS_ALLOWED_AGENT_REMOVE, etc.) |
2093 | // static | 2093 | // static |
2094 | void LLPanelEstateInfo::sendEstateAccessDelta(U32 flags, const LLUUID& agent_or_group_id) | 2094 | bool LLPanelEstateInfo::accessCoreConfirm(const LLSD& notification, const LLSD& response) |
2095 | { | 2095 | { |
2096 | LLMessageSystem* msg = gMessageSystem; | 2096 | S32 option = LLNotification::getSelectedOption(notification, response); |
2097 | msg->newMessage("EstateOwnerMessage"); | 2097 | const U32 originalFlags = (U32)notification["payload"]["operation"].asInteger(); |
2098 | msg->nextBlockFast(_PREHASH_AgentData); | 2098 | |
2099 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | 2099 | LLViewerRegion* region = gAgent.getRegion(); |
2100 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | 2100 | |
2101 | msg->addUUIDFast(_PREHASH_TransactionID, LLUUID::null); //not used | 2101 | LLSD::array_const_iterator end_it = notification["payload"]["allowed_ids"].endArray(); |
2102 | 2102 | ||
2103 | msg->nextBlock("MethodData"); | 2103 | for (LLSD::array_const_iterator iter = notification["payload"]["allowed_ids"].beginArray(); |
2104 | msg->addString("Method", "estateaccessdelta"); | 2104 | iter != end_it; |
2105 | msg->addUUID("Invoice", LLFloaterRegionInfo::getLastInvoice()); | 2105 | iter++) |
2106 | 2106 | { | |
2107 | std::string buf; | 2107 | U32 flags = originalFlags; |
2108 | gAgent.getID().toString(buf); | 2108 | if (iter + 1 != end_it) |
2109 | msg->nextBlock("ParamList"); | 2109 | flags |= ESTATE_ACCESS_NO_REPLY; |
2110 | msg->addString("Parameter", buf); | 2110 | |
2111 | 2111 | const LLUUID id = iter->asUUID(); | |
2112 | buf = llformat("%u", flags); | 2112 | if (((U32)notification["payload"]["operation"].asInteger() & ESTATE_ACCESS_BANNED_AGENT_ADD) |
2113 | msg->nextBlock("ParamList"); | 2113 | && region && (region->getOwner() == id)) |
2114 | msg->addString("Parameter", buf); | 2114 | { |
2115 | 2115 | LLNotifications::instance().add("OwnerCanNotBeDenied"); | |
2116 | agent_or_group_id.toString(buf); | 2116 | break; |
2117 | msg->nextBlock("ParamList"); | 2117 | } |
2118 | msg->addString("Parameter", buf); | 2118 | switch(option) |
2119 | 2119 | { | |
2120 | 2120 | case 0: | |
2121 | LLPanelEstateInfo* panel = LLFloaterRegionInfo::getPanelEstate(); | 2121 | // This estate |
2122 | 2122 | sendEstateAccessDelta(flags, id); | |
2123 | if (flags & (ESTATE_ACCESS_ALLOWED_AGENT_ADD | ESTATE_ACCESS_ALLOWED_AGENT_REMOVE | | 2123 | break; |
2124 | ESTATE_ACCESS_BANNED_AGENT_ADD | ESTATE_ACCESS_BANNED_AGENT_REMOVE)) | 2124 | case 1: |
2125 | { | 2125 | { |
2126 | 2126 | // All estates, either than I own or manage for this owner. | |
2127 | panel->clearAccessLists(); | 2127 | // This will be verified on simulator. JC |
2128 | } | 2128 | if (!region) break; |
2129 | 2129 | if (region->getOwner() == gAgent.getID() | |
2130 | gAgent.sendReliableMessage(); | 2130 | || gAgent.isGodlike()) |
2131 | } | 2131 | { |
2132 | 2132 | flags |= ESTATE_ACCESS_APPLY_TO_ALL_ESTATES; | |
2133 | void LLPanelEstateInfo::updateControls(LLViewerRegion* region) | 2133 | sendEstateAccessDelta(flags, id); |
2134 | { | 2134 | } |
2135 | BOOL god = gAgent.isGodlike(); | 2135 | else if (region->isEstateManager()) |
2136 | BOOL owner = (region && (region->getOwner() == gAgent.getID())); | 2136 | { |
2137 | BOOL manager = (region && region->isEstateManager()); | 2137 | flags |= ESTATE_ACCESS_APPLY_TO_MANAGED_ESTATES; |
2138 | setCtrlsEnabled(god || owner || manager); | 2138 | sendEstateAccessDelta(flags, id); |
2139 | 2139 | } | |
2140 | childDisable("apply_btn"); | 2140 | break; |
2141 | childSetEnabled("add_allowed_avatar_btn", god || owner || manager); | 2141 | } |
2142 | childSetEnabled("remove_allowed_avatar_btn", god || owner || manager); | 2142 | case 2: |
2143 | childSetEnabled("add_allowed_group_btn", god || owner || manager); | 2143 | default: |
2144 | childSetEnabled("remove_allowed_group_btn", god || owner || manager); | 2144 | break; |
2145 | childSetEnabled("add_banned_avatar_btn", god || owner || manager); | 2145 | } |
2146 | childSetEnabled("remove_banned_avatar_btn", god || owner || manager); | 2146 | } |
2147 | childSetEnabled("message_estate_btn", god || owner || manager); | 2147 | return false; |
2148 | childSetEnabled("kick_user_from_estate_btn", god || owner || manager); | 2148 | } |
2149 | childSetEnabled("abuse_email_address", god || owner || manager); | 2149 | |
2150 | 2150 | // key = "estateaccessdelta" | |
2151 | // estate managers can't add estate managers | 2151 | // str(estate_id) will be added to front of list by forward_EstateOwnerRequest_to_dataserver |
2152 | childSetEnabled("add_estate_manager_btn", god || owner); | 2152 | // str[0] = str(agent_id) requesting the change |
2153 | childSetEnabled("remove_estate_manager_btn", god || owner); | 2153 | // str[1] = str(flags) (ESTATE_ACCESS_DELTA_*) |
2154 | childSetEnabled("estate_manager_name_list", god || owner); | 2154 | // str[2] = str(agent_id) to add or remove |
2155 | } | 2155 | // static |
2156 | 2156 | void LLPanelEstateInfo::sendEstateAccessDelta(U32 flags, const LLUUID& agent_or_group_id) | |
2157 | bool LLPanelEstateInfo::refreshFromRegion(LLViewerRegion* region) | 2157 | { |
2158 | { | 2158 | LLMessageSystem* msg = gMessageSystem; |
2159 | updateControls(region); | 2159 | msg->newMessage("EstateOwnerMessage"); |
2160 | 2160 | msg->nextBlockFast(_PREHASH_AgentData); | |
2161 | // let the parent class handle the general data collection. | 2161 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); |
2162 | bool rv = LLPanelRegionInfo::refreshFromRegion(region); | 2162 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); |
2163 | 2163 | msg->addUUIDFast(_PREHASH_TransactionID, LLUUID::null); //not used | |
2164 | // We want estate info. To make sure it works across region | 2164 | |
2165 | // boundaries and multiple packets, we add a serial number to the | 2165 | msg->nextBlock("MethodData"); |
2166 | // integers and track against that on update. | 2166 | msg->addString("Method", "estateaccessdelta"); |
2167 | strings_t strings; | 2167 | msg->addUUID("Invoice", LLFloaterRegionInfo::getLastInvoice()); |
2168 | //integers_t integers; | 2168 | |
2169 | //LLFloaterRegionInfo::incrementSerial(); | 2169 | std::string buf; |
2170 | LLFloaterRegionInfo::nextInvoice(); | 2170 | gAgent.getID().toString(buf); |
2171 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); | 2171 | msg->nextBlock("ParamList"); |
2172 | //integers.push_back(LLFloaterRegionInfo::());::getPanelEstate(); | 2172 | msg->addString("Parameter", buf); |
2173 | 2173 | ||
2174 | 2174 | buf = llformat("%u", flags); | |
2175 | LLPanelEstateInfo* panel = LLFloaterRegionInfo::getPanelEstate(); | 2175 | msg->nextBlock("ParamList"); |
2176 | panel->clearAccessLists(); | 2176 | msg->addString("Parameter", buf); |
2177 | 2177 | ||
2178 | 2178 | agent_or_group_id.toString(buf); | |
2179 | sendEstateOwnerMessage(gMessageSystem, "getinfo", invoice, strings); | 2179 | msg->nextBlock("ParamList"); |
2180 | 2180 | msg->addString("Parameter", buf); | |
2181 | refresh(); | 2181 | |
2182 | 2182 | ||
2183 | return rv; | 2183 | LLPanelEstateInfo* panel = LLFloaterRegionInfo::getPanelEstate(); |
2184 | } | 2184 | |
2185 | 2185 | if (flags & (ESTATE_ACCESS_ALLOWED_AGENT_ADD | ESTATE_ACCESS_ALLOWED_AGENT_REMOVE | | |
2186 | void LLPanelEstateInfo::updateChild(LLUICtrl* child_ctrl) | 2186 | ESTATE_ACCESS_BANNED_AGENT_ADD | ESTATE_ACCESS_BANNED_AGENT_REMOVE)) |
2187 | { | 2187 | { |
2188 | if (checkRemovalButton(child_ctrl->getName())) | 2188 | |
2189 | { | 2189 | panel->clearAccessLists(); |
2190 | // do nothing | 2190 | } |
2191 | } | 2191 | |
2192 | else if (checkSunHourSlider(child_ctrl)) | 2192 | gAgent.sendReliableMessage(); |
2193 | { | 2193 | } |
2194 | // do nothing | 2194 | |
2195 | } | 2195 | void LLPanelEstateInfo::updateControls(LLViewerRegion* region) |
2196 | } | 2196 | { |
2197 | 2197 | BOOL god = gAgent.isGodlike(); | |
2198 | bool LLPanelEstateInfo::estateUpdate(LLMessageSystem* msg) | 2198 | BOOL owner = (region && (region->getOwner() == gAgent.getID())); |
2199 | { | 2199 | BOOL manager = (region && region->isEstateManager()); |
2200 | llinfos << "LLPanelEstateInfo::estateUpdate()" << llendl; | 2200 | setCtrlsEnabled(god || owner || manager); |
2201 | return false; | 2201 | |
2202 | } | 2202 | childDisable("apply_btn"); |
2203 | 2203 | childSetEnabled("add_allowed_avatar_btn", god || owner || manager); | |
2204 | 2204 | childSetEnabled("remove_allowed_avatar_btn", god || owner || manager); | |
2205 | BOOL LLPanelEstateInfo::postBuild() | 2205 | childSetEnabled("add_allowed_group_btn", god || owner || manager); |
2206 | { | 2206 | childSetEnabled("remove_allowed_group_btn", god || owner || manager); |
2207 | // set up the callbacks for the generic controls | 2207 | childSetEnabled("add_banned_avatar_btn", god || owner || manager); |
2208 | initCtrl("externally_visible_check"); | 2208 | childSetEnabled("remove_banned_avatar_btn", god || owner || manager); |
2209 | initCtrl("use_global_time_check"); | 2209 | childSetEnabled("message_estate_btn", god || owner || manager); |
2210 | initCtrl("fixed_sun_check"); | 2210 | childSetEnabled("kick_user_from_estate_btn", god || owner || manager); |
2211 | initCtrl("allow_direct_teleport"); | 2211 | childSetEnabled("abuse_email_address", god || owner || manager); |
2212 | initCtrl("limit_payment"); | 2212 | |
2213 | initCtrl("limit_age_verified"); | 2213 | // estate managers can't add estate managers |
2214 | initCtrl("voice_chat_check"); | 2214 | childSetEnabled("add_estate_manager_btn", god || owner); |
2215 | childSetCommitCallback("abuse_email_address", onChangeAnything, this); | 2215 | childSetEnabled("remove_estate_manager_btn", god || owner); |
2216 | childSetKeystrokeCallback("abuse_email_address", onChangeText, this); | 2216 | childSetEnabled("estate_manager_name_list", god || owner); |
2217 | 2217 | } | |
2218 | initHelpBtn("estate_manager_help", "HelpEstateEstateManager"); | 2218 | |
2219 | initHelpBtn("use_global_time_help", "HelpEstateUseGlobalTime"); | 2219 | bool LLPanelEstateInfo::refreshFromRegion(LLViewerRegion* region) |
2220 | initHelpBtn("fixed_sun_help", "HelpEstateFixedSun"); | 2220 | { |
2221 | initHelpBtn("WLEditSkyHelp", "HelpEditSky"); | 2221 | updateControls(region); |
2222 | initHelpBtn("WLEditDayCycleHelp", "HelpEditDayCycle"); | 2222 | |
2223 | 2223 | // let the parent class handle the general data collection. | |
2224 | initHelpBtn("externally_visible_help", "HelpEstateExternallyVisible"); | 2224 | bool rv = LLPanelRegionInfo::refreshFromRegion(region); |
2225 | initHelpBtn("allow_direct_teleport_help", "HelpEstateAllowDirectTeleport"); | 2225 | |
2226 | initHelpBtn("allow_resident_help", "HelpEstateAllowResident"); | 2226 | // We want estate info. To make sure it works across region |
2227 | initHelpBtn("allow_group_help", "HelpEstateAllowGroup"); | 2227 | // boundaries and multiple packets, we add a serial number to the |
2228 | initHelpBtn("ban_resident_help", "HelpEstateBanResident"); | 2228 | // integers and track against that on update. |
2229 | initHelpBtn("abuse_email_address_help", "HelpEstateAbuseEmailAddress"); | 2229 | strings_t strings; |
2230 | initHelpBtn("voice_chat_help", "HelpEstateVoiceChat"); | 2230 | //integers_t integers; |
2231 | 2231 | //LLFloaterRegionInfo::incrementSerial(); | |
2232 | // set up the use global time checkbox | 2232 | LLFloaterRegionInfo::nextInvoice(); |
2233 | childSetCommitCallback("use_global_time_check", onChangeUseGlobalTime, this); | 2233 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); |
2234 | childSetCommitCallback("fixed_sun_check", onChangeFixedSun, this); | 2234 | //integers.push_back(LLFloaterRegionInfo::());::getPanelEstate(); |
2235 | childSetCommitCallback("sun_hour_slider", onChangeChildCtrl, this); | 2235 | |
2236 | 2236 | ||
2237 | childSetCommitCallback("allowed_avatar_name_list", onChangeChildCtrl, this); | 2237 | LLPanelEstateInfo* panel = LLFloaterRegionInfo::getPanelEstate(); |
2238 | LLNameListCtrl *avatar_name_list = getChild<LLNameListCtrl>("allowed_avatar_name_list"); | 2238 | panel->clearAccessLists(); |
2239 | if (avatar_name_list) | 2239 | |
2240 | { | 2240 | |
2241 | avatar_name_list->setCommitOnSelectionChange(TRUE); | 2241 | sendEstateOwnerMessage(gMessageSystem, "getinfo", invoice, strings); |
2242 | avatar_name_list->setMaxItemCount(ESTATE_MAX_ACCESS_IDS); | 2242 | |
2243 | } | 2243 | refresh(); |
2244 | 2244 | ||
2245 | childSetAction("add_allowed_avatar_btn", onClickAddAllowedAgent, this); | 2245 | return rv; |
2246 | childSetAction("remove_allowed_avatar_btn", onClickRemoveAllowedAgent, this); | 2246 | } |
2247 | 2247 | ||
2248 | childSetCommitCallback("allowed_group_name_list", onChangeChildCtrl, this); | 2248 | void LLPanelEstateInfo::updateChild(LLUICtrl* child_ctrl) |
2249 | LLNameListCtrl* group_name_list = getChild<LLNameListCtrl>("allowed_group_name_list"); | 2249 | { |
2250 | if (group_name_list) | 2250 | if (checkRemovalButton(child_ctrl->getName())) |
2251 | { | 2251 | { |
2252 | group_name_list->setCommitOnSelectionChange(TRUE); | 2252 | // do nothing |
2253 | group_name_list->setMaxItemCount(ESTATE_MAX_ACCESS_IDS); | 2253 | } |
2254 | } | 2254 | else if (checkSunHourSlider(child_ctrl)) |
2255 | 2255 | { | |
2256 | childSetAction("add_allowed_group_btn", onClickAddAllowedGroup, this); | 2256 | // do nothing |
2257 | childSetAction("remove_allowed_group_btn", onClickRemoveAllowedGroup, this); | 2257 | } |
2258 | 2258 | } | |
2259 | childSetCommitCallback("banned_avatar_name_list", onChangeChildCtrl, this); | 2259 | |
2260 | LLNameListCtrl* banned_name_list = getChild<LLNameListCtrl>("banned_avatar_name_list"); | 2260 | bool LLPanelEstateInfo::estateUpdate(LLMessageSystem* msg) |
2261 | if (banned_name_list) | 2261 | { |
2262 | { | 2262 | llinfos << "LLPanelEstateInfo::estateUpdate()" << llendl; |
2263 | banned_name_list->setCommitOnSelectionChange(TRUE); | 2263 | return false; |
2264 | banned_name_list->setMaxItemCount(ESTATE_MAX_ACCESS_IDS); | 2264 | } |
2265 | } | 2265 | |
2266 | 2266 | ||
2267 | childSetAction("add_banned_avatar_btn", onClickAddBannedAgent, this); | 2267 | BOOL LLPanelEstateInfo::postBuild() |
2268 | childSetAction("remove_banned_avatar_btn", onClickRemoveBannedAgent, this); | 2268 | { |
2269 | 2269 | // set up the callbacks for the generic controls | |
2270 | childSetCommitCallback("estate_manager_name_list", onChangeChildCtrl, this); | 2270 | initCtrl("externally_visible_check"); |
2271 | LLNameListCtrl* manager_name_list = getChild<LLNameListCtrl>("estate_manager_name_list"); | 2271 | initCtrl("use_global_time_check"); |
2272 | if (manager_name_list) | 2272 | initCtrl("fixed_sun_check"); |
2273 | { | 2273 | initCtrl("allow_direct_teleport"); |
2274 | manager_name_list->setCommitOnSelectionChange(TRUE); | 2274 | initCtrl("limit_payment"); |
2275 | manager_name_list->setMaxItemCount(ESTATE_MAX_MANAGERS * 4); // Allow extras for dupe issue | 2275 | initCtrl("limit_age_verified"); |
2276 | } | 2276 | initCtrl("voice_chat_check"); |
2277 | 2277 | childSetCommitCallback("abuse_email_address", onChangeAnything, this); | |
2278 | childSetAction("add_estate_manager_btn", onClickAddEstateManager, this); | 2278 | childSetKeystrokeCallback("abuse_email_address", onChangeText, this); |
2279 | childSetAction("remove_estate_manager_btn", onClickRemoveEstateManager, this); | 2279 | |
2280 | childSetAction("message_estate_btn", onClickMessageEstate, this); | 2280 | initHelpBtn("estate_manager_help", "HelpEstateEstateManager"); |
2281 | childSetAction("kick_user_from_estate_btn", onClickKickUser, this); | 2281 | initHelpBtn("use_global_time_help", "HelpEstateUseGlobalTime"); |
2282 | 2282 | initHelpBtn("fixed_sun_help", "HelpEstateFixedSun"); | |
2283 | childSetAction("WLEditSky", onClickEditSky, this); | 2283 | initHelpBtn("WLEditSkyHelp", "HelpEditSky"); |
2284 | childSetAction("WLEditDayCycle", onClickEditDayCycle, this); | 2284 | initHelpBtn("WLEditDayCycleHelp", "HelpEditDayCycle"); |
2285 | 2285 | ||
2286 | return LLPanelRegionInfo::postBuild(); | 2286 | initHelpBtn("externally_visible_help", "HelpEstateExternallyVisible"); |
2287 | } | 2287 | initHelpBtn("allow_direct_teleport_help", "HelpEstateAllowDirectTeleport"); |
2288 | 2288 | initHelpBtn("allow_resident_help", "HelpEstateAllowResident"); | |
2289 | void LLPanelEstateInfo::refresh() | 2289 | initHelpBtn("allow_group_help", "HelpEstateAllowGroup"); |
2290 | { | 2290 | initHelpBtn("ban_resident_help", "HelpEstateBanResident"); |
2291 | bool public_access = childGetValue("externally_visible_check").asBoolean(); | 2291 | initHelpBtn("abuse_email_address_help", "HelpEstateAbuseEmailAddress"); |
2292 | childSetEnabled("Only Allow", public_access); | 2292 | initHelpBtn("voice_chat_help", "HelpEstateVoiceChat"); |
2293 | childSetEnabled("limit_payment", public_access); | 2293 | |
2294 | childSetEnabled("limit_age_verified", public_access); | 2294 | // set up the use global time checkbox |
2295 | // if this is set to false, then the limit fields are meaningless and should be turned off | 2295 | childSetCommitCallback("use_global_time_check", onChangeUseGlobalTime, this); |
2296 | if (public_access == false) | 2296 | childSetCommitCallback("fixed_sun_check", onChangeFixedSun, this); |
2297 | { | 2297 | childSetCommitCallback("sun_hour_slider", onChangeChildCtrl, this); |
2298 | childSetValue("limit_payment", false); | 2298 | |
2299 | childSetValue("limit_age_verified", false); | 2299 | childSetCommitCallback("allowed_avatar_name_list", onChangeChildCtrl, this); |
2300 | } | 2300 | LLNameListCtrl *avatar_name_list = getChild<LLNameListCtrl>("allowed_avatar_name_list"); |
2301 | } | 2301 | if (avatar_name_list) |
2302 | 2302 | { | |
2303 | BOOL LLPanelEstateInfo::sendUpdate() | 2303 | avatar_name_list->setCommitOnSelectionChange(TRUE); |
2304 | { | 2304 | avatar_name_list->setMaxItemCount(ESTATE_MAX_ACCESS_IDS); |
2305 | llinfos << "LLPanelEsateInfo::sendUpdate()" << llendl; | 2305 | } |
2306 | 2306 | ||
2307 | // send the update | 2307 | childSetAction("add_allowed_avatar_btn", onClickAddAllowedAgent, this); |
2308 | if (!commitEstateInfoCaps()) | 2308 | childSetAction("remove_allowed_avatar_btn", onClickRemoveAllowedAgent, this); |
2309 | { | 2309 | |
2310 | // the caps method failed, try the old way | 2310 | childSetCommitCallback("allowed_group_name_list", onChangeChildCtrl, this); |
2311 | LLFloaterRegionInfo::nextInvoice(); | 2311 | LLNameListCtrl* group_name_list = getChild<LLNameListCtrl>("allowed_group_name_list"); |
2312 | commitEstateInfoDataserver(); | 2312 | if (group_name_list) |
2313 | } | 2313 | { |
2314 | // we don't want to do this because we'll get it automatically from the sim | 2314 | group_name_list->setCommitOnSelectionChange(TRUE); |
2315 | // after the spaceserver processes it | 2315 | group_name_list->setMaxItemCount(ESTATE_MAX_ACCESS_IDS); |
2316 | // else | 2316 | } |
2317 | // { | 2317 | |
2318 | // // caps method does not automatically send this info | 2318 | childSetAction("add_allowed_group_btn", onClickAddAllowedGroup, this); |
2319 | // LLFloaterRegionInfo::requestRegionInfo(); | 2319 | childSetAction("remove_allowed_group_btn", onClickRemoveAllowedGroup, this); |
2320 | // } | 2320 | |
2321 | return TRUE; | 2321 | childSetCommitCallback("banned_avatar_name_list", onChangeChildCtrl, this); |
2322 | } | 2322 | LLNameListCtrl* banned_name_list = getChild<LLNameListCtrl>("banned_avatar_name_list"); |
2323 | 2323 | if (banned_name_list) | |
2324 | /* | 2324 | { |
2325 | // Request = "getowner" | 2325 | banned_name_list->setCommitOnSelectionChange(TRUE); |
2326 | // SParam[0] = "" (empty string) | 2326 | banned_name_list->setMaxItemCount(ESTATE_MAX_ACCESS_IDS); |
2327 | // IParam[0] = serial | 2327 | } |
2328 | void LLPanelEstateInfo::getEstateOwner() | 2328 | |
2329 | { | 2329 | childSetAction("add_banned_avatar_btn", onClickAddBannedAgent, this); |
2330 | // TODO -- disable the panel | 2330 | childSetAction("remove_banned_avatar_btn", onClickRemoveBannedAgent, this); |
2331 | // and call this function whenever we cross a region boundary | 2331 | |
2332 | // re-enable when owner matches, and get new estate info | 2332 | childSetCommitCallback("estate_manager_name_list", onChangeChildCtrl, this); |
2333 | LLMessageSystem* msg = gMessageSystem; | 2333 | LLNameListCtrl* manager_name_list = getChild<LLNameListCtrl>("estate_manager_name_list"); |
2334 | msg->newMessageFast(_PREHASH_EstateOwnerRequest); | 2334 | if (manager_name_list) |
2335 | msg->nextBlockFast(_PREHASH_AgentData); | 2335 | { |
2336 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | 2336 | manager_name_list->setCommitOnSelectionChange(TRUE); |
2337 | 2337 | manager_name_list->setMaxItemCount(ESTATE_MAX_MANAGERS * 4); // Allow extras for dupe issue | |
2338 | msg->nextBlockFast(_PREHASH_RequestData); | 2338 | } |
2339 | msg->addStringFast(_PREHASH_Request, "getowner"); | 2339 | |
2340 | 2340 | childSetAction("add_estate_manager_btn", onClickAddEstateManager, this); | |
2341 | // we send an empty string so that the variable block is not empty | 2341 | childSetAction("remove_estate_manager_btn", onClickRemoveEstateManager, this); |
2342 | msg->nextBlockFast(_PREHASH_StringData); | 2342 | childSetAction("message_estate_btn", onClickMessageEstate, this); |
2343 | msg->addStringFast(_PREHASH_SParam, ""); | 2343 | childSetAction("kick_user_from_estate_btn", onClickKickUser, this); |
2344 | 2344 | ||
2345 | msg->nextBlockFast(_PREHASH_IntegerData); | 2345 | childSetAction("WLEditSky", onClickEditSky, this); |
2346 | msg->addS32Fast(_PREHASH_IParam, LLFloaterRegionInfo::getSerial()); | 2346 | childSetAction("WLEditDayCycle", onClickEditDayCycle, this); |
2347 | 2347 | ||
2348 | gAgent.sendMessage(); | 2348 | return LLPanelRegionInfo::postBuild(); |
2349 | } | 2349 | } |
2350 | */ | 2350 | |
2351 | 2351 | void LLPanelEstateInfo::refresh() | |
2352 | class LLEstateChangeInfoResponder : public LLHTTPClient::Responder | 2352 | { |
2353 | { | 2353 | bool public_access = childGetValue("externally_visible_check").asBoolean(); |
2354 | public: | 2354 | childSetEnabled("Only Allow", public_access); |
2355 | LLEstateChangeInfoResponder(void* userdata) : mpPanel((LLPanelEstateInfo*)userdata) {}; | 2355 | childSetEnabled("limit_payment", public_access); |
2356 | 2356 | childSetEnabled("limit_age_verified", public_access); | |
2357 | // if we get a normal response, handle it here | 2357 | // if this is set to false, then the limit fields are meaningless and should be turned off |
2358 | virtual void result(const LLSD& content) | 2358 | if (public_access == false) |
2359 | { | 2359 | { |
2360 | // refresh the panel from the database | 2360 | childSetValue("limit_payment", false); |
2361 | mpPanel->refresh(); | 2361 | childSetValue("limit_age_verified", false); |
2362 | } | 2362 | } |
2363 | 2363 | } | |
2364 | // if we get an error response | 2364 | |
2365 | virtual void error(U32 status, const std::string& reason) | 2365 | BOOL LLPanelEstateInfo::sendUpdate() |
2366 | { | 2366 | { |
2367 | llinfos << "LLEstateChangeInfoResponder::error " | 2367 | llinfos << "LLPanelEsateInfo::sendUpdate()" << llendl; |
2368 | << status << ": " << reason << llendl; | 2368 | |
2369 | } | 2369 | LLNotification::Params params("ChangeLindenEstate"); |
2370 | private: | 2370 | params.functor(boost::bind(&LLPanelEstateInfo::callbackChangeLindenEstate, this, _1, _2)); |
2371 | LLPanelEstateInfo* mpPanel; | 2371 | |
2372 | }; | 2372 | if (getEstateID() <= ESTATE_LAST_LINDEN) |
2373 | 2373 | { | |
2374 | // tries to send estate info using a cap; returns true if it succeeded | 2374 | // trying to change reserved estate, warn |
2375 | bool LLPanelEstateInfo::commitEstateInfoCaps() | 2375 | LLNotifications::instance().add(params); |
2376 | { | 2376 | } |
2377 | std::string url = gAgent.getRegion()->getCapability("EstateChangeInfo"); | 2377 | else |
2378 | 2378 | { | |
2379 | if (url.empty()) | 2379 | // for normal estates, just make the change |
2380 | { | 2380 | LLNotifications::instance().forceResponse(params, 0); |
2381 | // whoops, couldn't find the cap, so bail out | 2381 | } |
2382 | return false; | 2382 | return TRUE; |
2383 | } | 2383 | } |
2384 | 2384 | ||
2385 | LLSD body; | 2385 | bool LLPanelEstateInfo::callbackChangeLindenEstate(const LLSD& notification, const LLSD& response) |
2386 | body["estate_name"] = getEstateName(); | 2386 | { |
2387 | 2387 | S32 option = LLNotification::getSelectedOption(notification, response); | |
2388 | body["is_externally_visible"] = childGetValue("externally_visible_check").asBoolean(); | 2388 | switch(option) |
2389 | body["allow_direct_teleport"] = childGetValue("allow_direct_teleport").asBoolean(); | 2389 | { |
2390 | body["is_sun_fixed" ] = childGetValue("fixed_sun_check").asBoolean(); | 2390 | case 0: |
2391 | body["deny_anonymous" ] = childGetValue("limit_payment").asBoolean(); | 2391 | // send the update |
2392 | body["deny_age_unverified" ] = childGetValue("limit_age_verified").asBoolean(); | 2392 | if (!commitEstateInfoCaps()) |
2393 | body["allow_voice_chat" ] = childGetValue("voice_chat_check").asBoolean(); | 2393 | { |
2394 | body["invoice" ] = LLFloaterRegionInfo::getLastInvoice(); | 2394 | // the caps method failed, try the old way |
2395 | 2395 | LLFloaterRegionInfo::nextInvoice(); | |
2396 | // block fly is in estate database but not in estate UI, so we're not supporting it | 2396 | commitEstateInfoDataserver(); |
2397 | //body["block_fly" ] = childGetValue("").asBoolean(); | 2397 | } |
2398 | 2398 | // we don't want to do this because we'll get it automatically from the sim | |
2399 | F32 sun_hour = getSunHour(); | 2399 | // after the spaceserver processes it |
2400 | if (childGetValue("use_global_time_check").asBoolean()) | 2400 | // else |
2401 | { | 2401 | // { |
2402 | sun_hour = 0.f; // 0 = global time | 2402 | // // caps method does not automatically send this info |
2403 | } | 2403 | // LLFloaterRegionInfo::requestRegionInfo(); |
2404 | body["sun_hour"] = sun_hour; | 2404 | // } |
2405 | 2405 | break; | |
2406 | body["owner_abuse_email"] = childGetValue("abuse_email_address").asString(); | 2406 | case 1: |
2407 | 2407 | default: | |
2408 | // we use a responder so that we can re-get the data after committing to the database | 2408 | // do nothing |
2409 | LLHTTPClient::post(url, body, new LLEstateChangeInfoResponder((void*)this)); | 2409 | break; |
2410 | return true; | 2410 | } |
2411 | } | 2411 | return false; |
2412 | 2412 | } | |
2413 | /* This is the old way of doing things, is deprecated, and should be | 2413 | |
2414 | deleted when the dataserver model can be removed */ | 2414 | |
2415 | // key = "estatechangeinfo" | 2415 | /* |
2416 | // strings[0] = str(estate_id) (added by simulator before relay - not here) | 2416 | // Request = "getowner" |
2417 | // strings[1] = estate_name | 2417 | // SParam[0] = "" (empty string) |
2418 | // strings[2] = str(estate_flags) | 2418 | // IParam[0] = serial |
2419 | // strings[3] = str((S32)(sun_hour * 1024.f)) | 2419 | void LLPanelEstateInfo::getEstateOwner() |
2420 | void LLPanelEstateInfo::commitEstateInfoDataserver() | 2420 | { |
2421 | { | 2421 | // TODO -- disable the panel |
2422 | LLMessageSystem* msg = gMessageSystem; | 2422 | // and call this function whenever we cross a region boundary |
2423 | msg->newMessage("EstateOwnerMessage"); | 2423 | // re-enable when owner matches, and get new estate info |
2424 | msg->nextBlockFast(_PREHASH_AgentData); | 2424 | LLMessageSystem* msg = gMessageSystem; |
2425 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | 2425 | msg->newMessageFast(_PREHASH_EstateOwnerRequest); |
2426 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | 2426 | msg->nextBlockFast(_PREHASH_AgentData); |
2427 | msg->addUUIDFast(_PREHASH_TransactionID, LLUUID::null); //not used | 2427 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); |
2428 | 2428 | ||
2429 | msg->nextBlock("MethodData"); | 2429 | msg->nextBlockFast(_PREHASH_RequestData); |
2430 | msg->addString("Method", "estatechangeinfo"); | 2430 | msg->addStringFast(_PREHASH_Request, "getowner"); |
2431 | msg->addUUID("Invoice", LLFloaterRegionInfo::getLastInvoice()); | 2431 | |
2432 | 2432 | // we send an empty string so that the variable block is not empty | |
2433 | msg->nextBlock("ParamList"); | 2433 | msg->nextBlockFast(_PREHASH_StringData); |
2434 | msg->addString("Parameter", getEstateName()); | 2434 | msg->addStringFast(_PREHASH_SParam, ""); |
2435 | 2435 | ||
2436 | std::string buffer; | 2436 | msg->nextBlockFast(_PREHASH_IntegerData); |
2437 | buffer = llformat("%u", computeEstateFlags()); | 2437 | msg->addS32Fast(_PREHASH_IParam, LLFloaterRegionInfo::getSerial()); |
2438 | msg->nextBlock("ParamList"); | 2438 | |
2439 | msg->addString("Parameter", buffer); | 2439 | gAgent.sendMessage(); |
2440 | 2440 | } | |
2441 | F32 sun_hour = getSunHour(); | 2441 | */ |
2442 | if (childGetValue("use_global_time_check").asBoolean()) | 2442 | |
2443 | { | 2443 | class LLEstateChangeInfoResponder : public LLHTTPClient::Responder |
2444 | sun_hour = 0.f; // 0 = global time | 2444 | { |
2445 | } | 2445 | public: |
2446 | 2446 | LLEstateChangeInfoResponder(void* userdata) : mpPanel((LLPanelEstateInfo*)userdata) {}; | |
2447 | buffer = llformat("%d", (S32)(sun_hour*1024.0f)); | 2447 | |
2448 | msg->nextBlock("ParamList"); | 2448 | // if we get a normal response, handle it here |
2449 | msg->addString("Parameter", buffer); | 2449 | virtual void result(const LLSD& content) |
2450 | 2450 | { | |
2451 | gAgent.sendMessage(); | 2451 | // refresh the panel from the database |
2452 | } | 2452 | mpPanel->refresh(); |
2453 | 2453 | } | |
2454 | void LLPanelEstateInfo::setEstateFlags(U32 flags) | 2454 | |
2455 | { | 2455 | // if we get an error response |
2456 | childSetValue("externally_visible_check", LLSD(flags & REGION_FLAGS_EXTERNALLY_VISIBLE ? TRUE : FALSE) ); | 2456 | virtual void error(U32 status, const std::string& reason) |
2457 | childSetValue("fixed_sun_check", LLSD(flags & REGION_FLAGS_SUN_FIXED ? TRUE : FALSE) ); | 2457 | { |
2458 | childSetValue( | 2458 | llinfos << "LLEstateChangeInfoResponder::error " |
2459 | "voice_chat_check", | 2459 | << status << ": " << reason << llendl; |
2460 | LLSD(flags & REGION_FLAGS_ALLOW_VOICE ? TRUE : FALSE)); | 2460 | } |
2461 | childSetValue("allow_direct_teleport", LLSD(flags & REGION_FLAGS_ALLOW_DIRECT_TELEPORT ? TRUE : FALSE) ); | 2461 | private: |
2462 | childSetValue("limit_payment", LLSD(flags & REGION_FLAGS_DENY_ANONYMOUS ? TRUE : FALSE) ); | 2462 | LLPanelEstateInfo* mpPanel; |
2463 | childSetValue("limit_age_verified", LLSD(flags & REGION_FLAGS_DENY_AGEUNVERIFIED ? TRUE : FALSE) ); | 2463 | }; |
2464 | 2464 | ||
2465 | refresh(); | 2465 | // tries to send estate info using a cap; returns true if it succeeded |
2466 | } | 2466 | bool LLPanelEstateInfo::commitEstateInfoCaps() |
2467 | 2467 | { | |
2468 | U32 LLPanelEstateInfo::computeEstateFlags() | 2468 | std::string url = gAgent.getRegion()->getCapability("EstateChangeInfo"); |
2469 | { | 2469 | |
2470 | U32 flags = 0; | 2470 | if (url.empty()) |
2471 | 2471 | { | |
2472 | if (childGetValue("externally_visible_check").asBoolean()) | 2472 | // whoops, couldn't find the cap, so bail out |
2473 | { | 2473 | return false; |
2474 | flags |= REGION_FLAGS_EXTERNALLY_VISIBLE; | 2474 | } |
2475 | } | 2475 | |
2476 | 2476 | LLSD body; | |
2477 | if ( childGetValue("voice_chat_check").asBoolean() ) | 2477 | body["estate_name"] = getEstateName(); |
2478 | { | 2478 | |
2479 | flags |= REGION_FLAGS_ALLOW_VOICE; | 2479 | body["is_externally_visible"] = childGetValue("externally_visible_check").asBoolean(); |
2480 | } | 2480 | body["allow_direct_teleport"] = childGetValue("allow_direct_teleport").asBoolean(); |
2481 | 2481 | body["is_sun_fixed" ] = childGetValue("fixed_sun_check").asBoolean(); | |
2482 | if (childGetValue("allow_direct_teleport").asBoolean()) | 2482 | body["deny_anonymous" ] = childGetValue("limit_payment").asBoolean(); |
2483 | { | 2483 | body["deny_age_unverified" ] = childGetValue("limit_age_verified").asBoolean(); |
2484 | flags |= REGION_FLAGS_ALLOW_DIRECT_TELEPORT; | 2484 | body["allow_voice_chat" ] = childGetValue("voice_chat_check").asBoolean(); |
2485 | } | 2485 | body["invoice" ] = LLFloaterRegionInfo::getLastInvoice(); |
2486 | 2486 | ||
2487 | if (childGetValue("fixed_sun_check").asBoolean()) | 2487 | // block fly is in estate database but not in estate UI, so we're not supporting it |
2488 | { | 2488 | //body["block_fly" ] = childGetValue("").asBoolean(); |
2489 | flags |= REGION_FLAGS_SUN_FIXED; | 2489 | |
2490 | } | 2490 | F32 sun_hour = getSunHour(); |
2491 | 2491 | if (childGetValue("use_global_time_check").asBoolean()) | |
2492 | if (childGetValue("limit_payment").asBoolean()) | 2492 | { |
2493 | { | 2493 | sun_hour = 0.f; // 0 = global time |
2494 | flags |= REGION_FLAGS_DENY_ANONYMOUS; | 2494 | } |
2495 | } | 2495 | body["sun_hour"] = sun_hour; |
2496 | 2496 | ||
2497 | if (childGetValue("limit_age_verified").asBoolean()) | 2497 | body["owner_abuse_email"] = childGetValue("abuse_email_address").asString(); |
2498 | { | 2498 | |
2499 | flags |= REGION_FLAGS_DENY_AGEUNVERIFIED; | 2499 | // we use a responder so that we can re-get the data after committing to the database |
2500 | } | 2500 | LLHTTPClient::post(url, body, new LLEstateChangeInfoResponder((void*)this)); |
2501 | 2501 | return true; | |
2502 | 2502 | } | |
2503 | return flags; | 2503 | |
2504 | } | 2504 | /* This is the old way of doing things, is deprecated, and should be |
2505 | 2505 | deleted when the dataserver model can be removed */ | |
2506 | BOOL LLPanelEstateInfo::getGlobalTime() | 2506 | // key = "estatechangeinfo" |
2507 | { | 2507 | // strings[0] = str(estate_id) (added by simulator before relay - not here) |
2508 | return childGetValue("use_global_time_check").asBoolean(); | 2508 | // strings[1] = estate_name |
2509 | } | 2509 | // strings[2] = str(estate_flags) |
2510 | 2510 | // strings[3] = str((S32)(sun_hour * 1024.f)) | |
2511 | void LLPanelEstateInfo::setGlobalTime(bool b) | 2511 | void LLPanelEstateInfo::commitEstateInfoDataserver() |
2512 | { | 2512 | { |
2513 | childSetValue("use_global_time_check", LLSD(b)); | 2513 | LLMessageSystem* msg = gMessageSystem; |
2514 | childSetEnabled("fixed_sun_check", LLSD(!b)); | 2514 | msg->newMessage("EstateOwnerMessage"); |
2515 | childSetEnabled("sun_hour_slider", LLSD(!b)); | 2515 | msg->nextBlockFast(_PREHASH_AgentData); |
2516 | if (b) | 2516 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); |
2517 | { | 2517 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); |
2518 | childSetValue("sun_hour_slider", LLSD(0.f)); | 2518 | msg->addUUIDFast(_PREHASH_TransactionID, LLUUID::null); //not used |
2519 | } | 2519 | |
2520 | } | 2520 | msg->nextBlock("MethodData"); |
2521 | 2521 | msg->addString("Method", "estatechangeinfo"); | |
2522 | 2522 | msg->addUUID("Invoice", LLFloaterRegionInfo::getLastInvoice()); | |
2523 | BOOL LLPanelEstateInfo::getFixedSun() | 2523 | |
2524 | { | 2524 | msg->nextBlock("ParamList"); |
2525 | return childGetValue("fixed_sun_check").asBoolean(); | 2525 | msg->addString("Parameter", getEstateName()); |
2526 | } | 2526 | |
2527 | 2527 | std::string buffer; | |
2528 | void LLPanelEstateInfo::setSunHour(F32 sun_hour) | 2528 | buffer = llformat("%u", computeEstateFlags()); |
2529 | { | 2529 | msg->nextBlock("ParamList"); |
2530 | if(sun_hour < 6.0f) | 2530 | msg->addString("Parameter", buffer); |
2531 | { | 2531 | |
2532 | sun_hour = 24.0f + sun_hour; | 2532 | F32 sun_hour = getSunHour(); |
2533 | } | 2533 | if (childGetValue("use_global_time_check").asBoolean()) |
2534 | childSetValue("sun_hour_slider", LLSD(sun_hour)); | 2534 | { |
2535 | } | 2535 | sun_hour = 0.f; // 0 = global time |
2536 | 2536 | } | |
2537 | F32 LLPanelEstateInfo::getSunHour() | 2537 | |
2538 | { | 2538 | buffer = llformat("%d", (S32)(sun_hour*1024.0f)); |
2539 | if (childIsEnabled("sun_hour_slider")) | 2539 | msg->nextBlock("ParamList"); |
2540 | { | 2540 | msg->addString("Parameter", buffer); |
2541 | return (F32)childGetValue("sun_hour_slider").asReal(); | 2541 | |
2542 | } | 2542 | gAgent.sendMessage(); |
2543 | return 0.f; | 2543 | } |
2544 | } | 2544 | |
2545 | 2545 | void LLPanelEstateInfo::setEstateFlags(U32 flags) | |
2546 | const std::string LLPanelEstateInfo::getEstateName() const | 2546 | { |
2547 | { | 2547 | childSetValue("externally_visible_check", LLSD(flags & REGION_FLAGS_EXTERNALLY_VISIBLE ? TRUE : FALSE) ); |
2548 | return childGetValue("estate_name").asString(); | 2548 | childSetValue("fixed_sun_check", LLSD(flags & REGION_FLAGS_SUN_FIXED ? TRUE : FALSE) ); |
2549 | } | 2549 | childSetValue( |
2550 | 2550 | "voice_chat_check", | |
2551 | void LLPanelEstateInfo::setEstateName(const std::string& name) | 2551 | LLSD(flags & REGION_FLAGS_ALLOW_VOICE ? TRUE : FALSE)); |
2552 | { | 2552 | childSetValue("allow_direct_teleport", LLSD(flags & REGION_FLAGS_ALLOW_DIRECT_TELEPORT ? TRUE : FALSE) ); |
2553 | childSetValue("estate_name", LLSD(name)); | 2553 | childSetValue("limit_payment", LLSD(flags & REGION_FLAGS_DENY_ANONYMOUS ? TRUE : FALSE) ); |
2554 | } | 2554 | childSetValue("limit_age_verified", LLSD(flags & REGION_FLAGS_DENY_AGEUNVERIFIED ? TRUE : FALSE) ); |
2555 | 2555 | ||
2556 | const std::string LLPanelEstateInfo::getOwnerName() const | 2556 | refresh(); |
2557 | { | 2557 | } |
2558 | return childGetValue("estate_owner").asString(); | 2558 | |
2559 | } | 2559 | U32 LLPanelEstateInfo::computeEstateFlags() |
2560 | 2560 | { | |
2561 | void LLPanelEstateInfo::setOwnerName(const std::string& name) | 2561 | U32 flags = 0; |
2562 | { | 2562 | |
2563 | childSetValue("estate_owner", LLSD(name)); | 2563 | if (childGetValue("externally_visible_check").asBoolean()) |
2564 | } | 2564 | { |
2565 | 2565 | flags |= REGION_FLAGS_EXTERNALLY_VISIBLE; | |
2566 | const std::string LLPanelEstateInfo::getAbuseEmailAddress() const | 2566 | } |
2567 | { | 2567 | |
2568 | return childGetValue("abuse_email_address").asString(); | 2568 | if ( childGetValue("voice_chat_check").asBoolean() ) |
2569 | } | 2569 | { |
2570 | 2570 | flags |= REGION_FLAGS_ALLOW_VOICE; | |
2571 | void LLPanelEstateInfo::setAbuseEmailAddress(const std::string& address) | 2571 | } |
2572 | { | 2572 | |
2573 | childSetValue("abuse_email_address", LLSD(address)); | 2573 | if (childGetValue("allow_direct_teleport").asBoolean()) |
2574 | } | 2574 | { |
2575 | 2575 | flags |= REGION_FLAGS_ALLOW_DIRECT_TELEPORT; | |
2576 | // static | 2576 | } |
2577 | void LLPanelEstateInfo::callbackCacheName( | 2577 | |
2578 | const LLUUID& id, | 2578 | if (childGetValue("fixed_sun_check").asBoolean()) |
2579 | const std::string& first, | 2579 | { |
2580 | const std::string& last, | 2580 | flags |= REGION_FLAGS_SUN_FIXED; |
2581 | BOOL is_group, | 2581 | } |
2582 | void*) | 2582 | |
2583 | { | 2583 | if (childGetValue("limit_payment").asBoolean()) |
2584 | LLPanelEstateInfo* self = LLFloaterRegionInfo::getPanelEstate(); | 2584 | { |
2585 | if (!self) return; | 2585 | flags |= REGION_FLAGS_DENY_ANONYMOUS; |
2586 | 2586 | } | |
2587 | std::string name; | 2587 | |
2588 | 2588 | if (childGetValue("limit_age_verified").asBoolean()) | |
2589 | if (id.isNull()) | 2589 | { |
2590 | { | 2590 | flags |= REGION_FLAGS_DENY_AGEUNVERIFIED; |
2591 | name = "(none)"; | 2591 | } |
2592 | } | 2592 | |
2593 | else | 2593 | |
2594 | { | 2594 | return flags; |
2595 | name = first + " " + last; | 2595 | } |
2596 | } | 2596 | |
2597 | 2597 | BOOL LLPanelEstateInfo::getGlobalTime() | |
2598 | self->setOwnerName(name); | 2598 | { |
2599 | } | 2599 | return childGetValue("use_global_time_check").asBoolean(); |
2600 | 2600 | } | |
2601 | void LLPanelEstateInfo::clearAccessLists() | 2601 | |
2602 | { | 2602 | void LLPanelEstateInfo::setGlobalTime(bool b) |
2603 | LLNameListCtrl* name_list = getChild<LLNameListCtrl>("allowed_avatar_name_list"); | 2603 | { |
2604 | if (name_list) | 2604 | childSetValue("use_global_time_check", LLSD(b)); |
2605 | { | 2605 | childSetEnabled("fixed_sun_check", LLSD(!b)); |
2606 | name_list->deleteAllItems(); | 2606 | childSetEnabled("sun_hour_slider", LLSD(!b)); |
2607 | } | 2607 | if (b) |
2608 | 2608 | { | |
2609 | name_list = getChild<LLNameListCtrl>("banned_avatar_name_list"); | 2609 | childSetValue("sun_hour_slider", LLSD(0.f)); |
2610 | if (name_list) | 2610 | } |
2611 | { | 2611 | } |
2612 | name_list->deleteAllItems(); | 2612 | |
2613 | } | 2613 | |
2614 | } | 2614 | BOOL LLPanelEstateInfo::getFixedSun() |
2615 | 2615 | { | |
2616 | // enables/disables the "remove" button for the various allow/ban lists | 2616 | return childGetValue("fixed_sun_check").asBoolean(); |
2617 | BOOL LLPanelEstateInfo::checkRemovalButton(std::string name) | 2617 | } |
2618 | { | 2618 | |
2619 | std::string btn_name = ""; | 2619 | void LLPanelEstateInfo::setSunHour(F32 sun_hour) |
2620 | if (name == "allowed_avatar_name_list") | 2620 | { |
2621 | { | 2621 | if(sun_hour < 6.0f) |
2622 | btn_name = "remove_allowed_avatar_btn"; | 2622 | { |
2623 | } | 2623 | sun_hour = 24.0f + sun_hour; |
2624 | else if (name == "allowed_group_name_list") | 2624 | } |
2625 | { | 2625 | childSetValue("sun_hour_slider", LLSD(sun_hour)); |
2626 | btn_name = "remove_allowed_group_btn"; | 2626 | } |
2627 | } | 2627 | |
2628 | else if (name == "banned_avatar_name_list") | 2628 | F32 LLPanelEstateInfo::getSunHour() |
2629 | { | 2629 | { |
2630 | btn_name = "remove_banned_avatar_btn"; | 2630 | if (childIsEnabled("sun_hour_slider")) |
2631 | } | 2631 | { |
2632 | else if (name == "estate_manager_name_list") | 2632 | return (F32)childGetValue("sun_hour_slider").asReal(); |
2633 | { | 2633 | } |
2634 | //ONLY OWNER CAN ADD /DELET ESTATE MANAGER | 2634 | return 0.f; |
2635 | LLViewerRegion* region = gAgent.getRegion(); | 2635 | } |
2636 | if (region && (region->getOwner() == gAgent.getID())) | 2636 | |
2637 | { | 2637 | const std::string LLPanelEstateInfo::getEstateName() const |
2638 | btn_name = "remove_estate_manager_btn"; | 2638 | { |
2639 | } | 2639 | return childGetValue("estate_name").asString(); |
2640 | } | 2640 | } |
2641 | 2641 | ||
2642 | // enable the remove button if something is selected | 2642 | void LLPanelEstateInfo::setEstateName(const std::string& name) |
2643 | LLNameListCtrl* name_list = getChild<LLNameListCtrl>(name); | 2643 | { |
2644 | childSetEnabled(btn_name, name_list && name_list->getFirstSelected() ? TRUE : FALSE); | 2644 | childSetValue("estate_name", LLSD(name)); |
2645 | 2645 | } | |
2646 | return (btn_name != ""); | 2646 | |
2647 | } | 2647 | const std::string LLPanelEstateInfo::getOwnerName() const |
2648 | 2648 | { | |
2649 | BOOL LLPanelEstateInfo::checkSunHourSlider(LLUICtrl* child_ctrl) | 2649 | return childGetValue("estate_owner").asString(); |
2650 | { | 2650 | } |
2651 | BOOL found_child_ctrl = FALSE; | 2651 | |
2652 | if (child_ctrl->getName() == "sun_hour_slider") | 2652 | void LLPanelEstateInfo::setOwnerName(const std::string& name) |
2653 | { | 2653 | { |
2654 | enableButton("apply_btn"); | 2654 | childSetValue("estate_owner", LLSD(name)); |
2655 | found_child_ctrl = TRUE; | 2655 | } |
2656 | } | 2656 | |
2657 | return found_child_ctrl; | 2657 | const std::string LLPanelEstateInfo::getAbuseEmailAddress() const |
2658 | } | 2658 | { |
2659 | 2659 | return childGetValue("abuse_email_address").asString(); | |
2660 | // static | 2660 | } |
2661 | void LLPanelEstateInfo::onClickMessageEstate(void* userdata) | 2661 | |
2662 | { | 2662 | void LLPanelEstateInfo::setAbuseEmailAddress(const std::string& address) |
2663 | llinfos << "LLPanelEstateInfo::onClickMessageEstate" << llendl; | 2663 | { |
2664 | LLNotifications::instance().add("MessageEstate", LLSD(), LLSD(), boost::bind(&LLPanelEstateInfo::onMessageCommit, (LLPanelEstateInfo*)userdata, _1, _2)); | 2664 | childSetValue("abuse_email_address", LLSD(address)); |
2665 | } | 2665 | } |
2666 | 2666 | ||
2667 | bool LLPanelEstateInfo::onMessageCommit(const LLSD& notification, const LLSD& response) | 2667 | void LLPanelEstateInfo::setAccessAllowedEnabled(bool enable_agent, |
2668 | { | 2668 | bool enable_group, |
2669 | S32 option = LLNotification::getSelectedOption(notification, response); | 2669 | bool enable_ban) |
2670 | std::string text = response["message"].asString(); | 2670 | { |
2671 | if(option != 0) return false; | 2671 | childSetEnabled("allow_resident_label", enable_agent); |
2672 | if(text.empty()) return false; | 2672 | childSetEnabled("allowed_avatar_name_list", enable_agent); |
2673 | llinfos << "Message to everyone: " << text << llendl; | 2673 | childSetVisible("allowed_avatar_name_list", enable_agent); |
2674 | strings_t strings; | 2674 | childSetEnabled("add_allowed_avatar_btn", enable_agent); |
2675 | //integers_t integers; | 2675 | childSetEnabled("remove_allowed_avatar_btn", enable_agent); |
2676 | std::string name; | 2676 | |
2677 | gAgent.buildFullname(name); | 2677 | // Groups |
2678 | strings.push_back(strings_t::value_type(name)); | 2678 | childSetEnabled("allow_group_label", enable_group); |
2679 | strings.push_back(strings_t::value_type(text)); | 2679 | childSetEnabled("allowed_group_name_list", enable_group); |
2680 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); | 2680 | childSetVisible("allowed_group_name_list", enable_group); |
2681 | sendEstateOwnerMessage(gMessageSystem, "instantmessage", invoice, strings); | 2681 | childSetEnabled("add_allowed_group_btn", enable_group); |
2682 | return false; | 2682 | childSetEnabled("remove_allowed_group_btn", enable_group); |
2683 | } | 2683 | |
2684 | 2684 | // Ban | |
2685 | LLPanelEstateCovenant::LLPanelEstateCovenant() | 2685 | childSetEnabled("ban_resident_label", enable_ban); |
2686 | : mCovenantID(LLUUID::null) | 2686 | childSetEnabled("banned_avatar_name_list", enable_ban); |
2687 | { | 2687 | childSetVisible("banned_avatar_name_list", enable_ban); |
2688 | } | 2688 | childSetEnabled("add_banned_avatar_btn", enable_ban); |
2689 | 2689 | childSetEnabled("remove_banned_avatar_btn", enable_ban); | |
2690 | // virtual | 2690 | |
2691 | bool LLPanelEstateCovenant::refreshFromRegion(LLViewerRegion* region) | 2691 | // Update removal buttons if needed |
2692 | { | 2692 | if (enable_agent) |
2693 | LLTextBox* region_name = getChild<LLTextBox>("region_name_text"); | 2693 | { |
2694 | if (region_name) | 2694 | checkRemovalButton("allowed_avatar_name_list"); |
2695 | { | 2695 | } |
2696 | region_name->setText(region->getName()); | 2696 | |
2697 | } | 2697 | if (enable_group) |
2698 | 2698 | { | |
2699 | LLTextBox* resellable_clause = getChild<LLTextBox>("resellable_clause"); | 2699 | checkRemovalButton("allowed_group_name_list"); |
2700 | if (resellable_clause) | 2700 | } |
2701 | { | 2701 | |
2702 | if (region->getRegionFlags() & REGION_FLAGS_BLOCK_LAND_RESELL) | 2702 | if (enable_ban) |
2703 | { | 2703 | { |
2704 | resellable_clause->setText(getString("can_not_resell")); | 2704 | checkRemovalButton("banned_avatar_name_list"); |
2705 | } | 2705 | } |
2706 | else | 2706 | } |
2707 | { | 2707 | |
2708 | resellable_clause->setText(getString("can_resell")); | 2708 | // static |
2709 | } | 2709 | void LLPanelEstateInfo::callbackCacheName( |
2710 | } | 2710 | const LLUUID& id, |
2711 | 2711 | const std::string& first, | |
2712 | LLTextBox* changeable_clause = getChild<LLTextBox>("changeable_clause"); | 2712 | const std::string& last, |
2713 | if (changeable_clause) | 2713 | BOOL is_group, |
2714 | { | 2714 | void*) |
2715 | if (region->getRegionFlags() & REGION_FLAGS_ALLOW_PARCEL_CHANGES) | 2715 | { |
2716 | { | 2716 | LLPanelEstateInfo* self = LLFloaterRegionInfo::getPanelEstate(); |
2717 | changeable_clause->setText(getString("can_change")); | 2717 | if (!self) return; |
2718 | } | 2718 | |
2719 | else | 2719 | std::string name; |
2720 | { | 2720 | |
2721 | changeable_clause->setText(getString("can_not_change")); | 2721 | if (id.isNull()) |
2722 | } | 2722 | { |
2723 | } | 2723 | name = "(none)"; |
2724 | 2724 | } | |
2725 | LLTextBox* region_maturity = getChild<LLTextBox>("region_maturity_text"); | 2725 | else |
2726 | if (region_maturity) | 2726 | { |
2727 | { | 2727 | name = first + " " + last; |
2728 | region_maturity->setText(region->getSimAccessString()); | 2728 | } |
2729 | } | 2729 | |
2730 | 2730 | self->setOwnerName(name); | |
2731 | LLTextBox* region_landtype = getChild<LLTextBox>("region_landtype_text"); | 2731 | } |
2732 | if (region_landtype) | 2732 | |
2733 | { | 2733 | void LLPanelEstateInfo::clearAccessLists() |
2734 | region_landtype->setText(region->getSimProductName()); | 2734 | { |
2735 | } | 2735 | LLNameListCtrl* name_list = getChild<LLNameListCtrl>("allowed_avatar_name_list"); |
2736 | 2736 | if (name_list) | |
2737 | 2737 | { | |
2738 | // let the parent class handle the general data collection. | 2738 | name_list->deleteAllItems(); |
2739 | bool rv = LLPanelRegionInfo::refreshFromRegion(region); | 2739 | } |
2740 | LLMessageSystem *msg = gMessageSystem; | 2740 | |
2741 | msg->newMessage("EstateCovenantRequest"); | 2741 | name_list = getChild<LLNameListCtrl>("banned_avatar_name_list"); |
2742 | msg->nextBlockFast(_PREHASH_AgentData); | 2742 | if (name_list) |
2743 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | 2743 | { |
2744 | msg->addUUIDFast(_PREHASH_SessionID,gAgent.getSessionID()); | 2744 | name_list->deleteAllItems(); |
2745 | msg->sendReliable(region->getHost()); | 2745 | } |
2746 | return rv; | 2746 | } |
2747 | } | 2747 | |
2748 | 2748 | // enables/disables the "remove" button for the various allow/ban lists | |
2749 | // virtual | 2749 | BOOL LLPanelEstateInfo::checkRemovalButton(std::string name) |
2750 | bool LLPanelEstateCovenant::estateUpdate(LLMessageSystem* msg) | 2750 | { |
2751 | { | 2751 | std::string btn_name = ""; |
2752 | llinfos << "LLPanelEstateCovenant::estateUpdate()" << llendl; | 2752 | if (name == "allowed_avatar_name_list") |
2753 | return true; | 2753 | { |
2754 | } | 2754 | btn_name = "remove_allowed_avatar_btn"; |
2755 | 2755 | } | |
2756 | // virtual | 2756 | else if (name == "allowed_group_name_list") |
2757 | BOOL LLPanelEstateCovenant::postBuild() | 2757 | { |
2758 | { | 2758 | btn_name = "remove_allowed_group_btn"; |
2759 | initHelpBtn("covenant_help", "HelpEstateCovenant"); | 2759 | } |
2760 | mEstateNameText = getChild<LLTextBox>("estate_name_text"); | 2760 | else if (name == "banned_avatar_name_list") |
2761 | mEstateOwnerText = getChild<LLTextBox>("estate_owner_text"); | 2761 | { |
2762 | mLastModifiedText = getChild<LLTextBox>("covenant_timestamp_text"); | 2762 | btn_name = "remove_banned_avatar_btn"; |
2763 | mEditor = getChild<LLViewerTextEditor>("covenant_editor"); | 2763 | } |
2764 | if (mEditor) mEditor->setHandleEditKeysDirectly(TRUE); | 2764 | else if (name == "estate_manager_name_list") |
2765 | LLButton* reset_button = getChild<LLButton>("reset_covenant"); | 2765 | { |
2766 | reset_button->setEnabled(gAgent.canManageEstate()); | 2766 | //ONLY OWNER CAN ADD /DELET ESTATE MANAGER |
2767 | reset_button->setClickedCallback(LLPanelEstateCovenant::resetCovenantID, NULL); | 2767 | LLViewerRegion* region = gAgent.getRegion(); |
2768 | 2768 | if (region && (region->getOwner() == gAgent.getID())) | |
2769 | return LLPanelRegionInfo::postBuild(); | 2769 | { |
2770 | } | 2770 | btn_name = "remove_estate_manager_btn"; |
2771 | 2771 | } | |
2772 | // virtual | 2772 | } |
2773 | void LLPanelEstateCovenant::updateChild(LLUICtrl* child_ctrl) | 2773 | |
2774 | { | 2774 | // enable the remove button if something is selected |
2775 | } | 2775 | LLNameListCtrl* name_list = getChild<LLNameListCtrl>(name); |
2776 | 2776 | childSetEnabled(btn_name, name_list && name_list->getFirstSelected() ? TRUE : FALSE); | |
2777 | // virtual | 2777 | |
2778 | BOOL LLPanelEstateCovenant::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, | 2778 | return (btn_name != ""); |
2779 | EDragAndDropType cargo_type, | 2779 | } |
2780 | void* cargo_data, | 2780 | |
2781 | EAcceptance* accept, | 2781 | BOOL LLPanelEstateInfo::checkSunHourSlider(LLUICtrl* child_ctrl) |
2782 | std::string& tooltip_msg) | 2782 | { |
2783 | { | 2783 | BOOL found_child_ctrl = FALSE; |
2784 | LLInventoryItem* item = (LLInventoryItem*)cargo_data; | 2784 | if (child_ctrl->getName() == "sun_hour_slider") |
2785 | 2785 | { | |
2786 | if (!gAgent.canManageEstate()) | 2786 | enableButton("apply_btn"); |
2787 | { | 2787 | found_child_ctrl = TRUE; |
2788 | *accept = ACCEPT_NO; | 2788 | } |
2789 | return TRUE; | 2789 | return found_child_ctrl; |
2790 | } | 2790 | } |
2791 | 2791 | ||
2792 | switch(cargo_type) | 2792 | // static |
2793 | { | 2793 | void LLPanelEstateInfo::onClickMessageEstate(void* userdata) |
2794 | case DAD_NOTECARD: | 2794 | { |
2795 | *accept = ACCEPT_YES_COPY_SINGLE; | 2795 | llinfos << "LLPanelEstateInfo::onClickMessageEstate" << llendl; |
2796 | if (item && drop) | 2796 | LLNotifications::instance().add("MessageEstate", LLSD(), LLSD(), boost::bind(&LLPanelEstateInfo::onMessageCommit, (LLPanelEstateInfo*)userdata, _1, _2)); |
2797 | { | 2797 | } |
2798 | LLSD payload; | 2798 | |
2799 | payload["item_id"] = item->getUUID(); | 2799 | bool LLPanelEstateInfo::onMessageCommit(const LLSD& notification, const LLSD& response) |
2800 | LLNotifications::instance().add("EstateChangeCovenant", LLSD(), payload, | 2800 | { |
2801 | LLPanelEstateCovenant::confirmChangeCovenantCallback); | 2801 | S32 option = LLNotification::getSelectedOption(notification, response); |
2802 | } | 2802 | std::string text = response["message"].asString(); |
2803 | break; | 2803 | if(option != 0) return false; |
2804 | default: | 2804 | if(text.empty()) return false; |
2805 | *accept = ACCEPT_NO; | 2805 | llinfos << "Message to everyone: " << text << llendl; |
2806 | break; | 2806 | strings_t strings; |
2807 | } | 2807 | //integers_t integers; |
2808 | 2808 | std::string name; | |
2809 | return TRUE; | 2809 | gAgent.buildFullname(name); |
2810 | } | 2810 | strings.push_back(strings_t::value_type(name)); |
2811 | 2811 | strings.push_back(strings_t::value_type(text)); | |
2812 | // static | 2812 | LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); |
2813 | bool LLPanelEstateCovenant::confirmChangeCovenantCallback(const LLSD& notification, const LLSD& response) | 2813 | sendEstateOwnerMessage(gMessageSystem, "instantmessage", invoice, strings); |
2814 | { | 2814 | return false; |
2815 | S32 option = LLNotification::getSelectedOption(notification, response); | 2815 | } |
2816 | LLInventoryItem* item = gInventory.getItem(notification["payload"]["item_id"].asUUID()); | 2816 | |
2817 | LLPanelEstateCovenant* self = LLFloaterRegionInfo::getPanelCovenant(); | 2817 | LLPanelEstateCovenant::LLPanelEstateCovenant() |
2818 | 2818 | : mCovenantID(LLUUID::null) | |
2819 | if (!item || !self) return false; | 2819 | { |
2820 | 2820 | } | |
2821 | switch(option) | 2821 | |
2822 | { | 2822 | // virtual |
2823 | case 0: | 2823 | bool LLPanelEstateCovenant::refreshFromRegion(LLViewerRegion* region) |
2824 | self->loadInvItem(item); | 2824 | { |
2825 | break; | 2825 | LLTextBox* region_name = getChild<LLTextBox>("region_name_text"); |
2826 | default: | 2826 | if (region_name) |
2827 | break; | 2827 | { |
2828 | } | 2828 | region_name->setText(region->getName()); |
2829 | return false; | 2829 | } |
2830 | } | 2830 | |
2831 | 2831 | LLTextBox* resellable_clause = getChild<LLTextBox>("resellable_clause"); | |
2832 | // static | 2832 | if (resellable_clause) |
2833 | void LLPanelEstateCovenant::resetCovenantID(void* userdata) | 2833 | { |
2834 | { | 2834 | if (region->getRegionFlags() & REGION_FLAGS_BLOCK_LAND_RESELL) |
2835 | LLNotifications::instance().add("EstateChangeCovenant", LLSD(), LLSD(), confirmResetCovenantCallback); | 2835 | { |
2836 | } | 2836 | resellable_clause->setText(getString("can_not_resell")); |
2837 | 2837 | } | |
2838 | // static | 2838 | else |
2839 | bool LLPanelEstateCovenant::confirmResetCovenantCallback(const LLSD& notification, const LLSD& response) | 2839 | { |
2840 | { | 2840 | resellable_clause->setText(getString("can_resell")); |
2841 | LLPanelEstateCovenant* self = LLFloaterRegionInfo::getPanelCovenant(); | 2841 | } |
2842 | if (!self) return false; | 2842 | } |
2843 | 2843 | ||
2844 | S32 option = LLNotification::getSelectedOption(notification, response); | 2844 | LLTextBox* changeable_clause = getChild<LLTextBox>("changeable_clause"); |
2845 | switch(option) | 2845 | if (changeable_clause) |
2846 | { | 2846 | { |
2847 | case 0: | 2847 | if (region->getRegionFlags() & REGION_FLAGS_ALLOW_PARCEL_CHANGES) |
2848 | self->loadInvItem(NULL); | 2848 | { |
2849 | break; | 2849 | changeable_clause->setText(getString("can_change")); |
2850 | default: | 2850 | } |
2851 | break; | 2851 | else |
2852 | } | 2852 | { |
2853 | return false; | 2853 | changeable_clause->setText(getString("can_not_change")); |
2854 | } | 2854 | } |
2855 | 2855 | } | |
2856 | void LLPanelEstateCovenant::loadInvItem(LLInventoryItem *itemp) | 2856 | |
2857 | { | 2857 | LLTextBox* region_maturity = getChild<LLTextBox>("region_maturity_text"); |
2858 | const BOOL high_priority = TRUE; | 2858 | if (region_maturity) |
2859 | if (itemp) | 2859 | { |
2860 | { | 2860 | region_maturity->setText(region->getSimAccessString()); |
2861 | gAssetStorage->getInvItemAsset(gAgent.getRegionHost(), | 2861 | } |
2862 | gAgent.getID(), | 2862 | |
2863 | gAgent.getSessionID(), | 2863 | LLTextBox* region_landtype = getChild<LLTextBox>("region_landtype_text"); |
2864 | itemp->getPermissions().getOwner(), | 2864 | if (region_landtype) |
2865 | LLUUID::null, | 2865 | { |
2866 | itemp->getUUID(), | 2866 | region_landtype->setText(region->getSimProductName()); |
2867 | itemp->getAssetUUID(), | 2867 | } |
2868 | itemp->getType(), | 2868 | |
2869 | onLoadComplete, | 2869 | |
2870 | (void*)this, | 2870 | // let the parent class handle the general data collection. |
2871 | high_priority); | 2871 | bool rv = LLPanelRegionInfo::refreshFromRegion(region); |
2872 | mAssetStatus = ASSET_LOADING; | 2872 | LLMessageSystem *msg = gMessageSystem; |
2873 | } | 2873 | msg->newMessage("EstateCovenantRequest"); |
2874 | else | 2874 | msg->nextBlockFast(_PREHASH_AgentData); |
2875 | { | 2875 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); |
2876 | mAssetStatus = ASSET_LOADED; | 2876 | msg->addUUIDFast(_PREHASH_SessionID,gAgent.getSessionID()); |
2877 | setCovenantTextEditor("There is no Covenant provided for this Estate."); | 2877 | msg->sendReliable(region->getHost()); |
2878 | sendChangeCovenantID(LLUUID::null); | 2878 | return rv; |
2879 | } | 2879 | } |
2880 | } | 2880 | |
2881 | 2881 | // virtual | |
2882 | // static | 2882 | bool LLPanelEstateCovenant::estateUpdate(LLMessageSystem* msg) |
2883 | void LLPanelEstateCovenant::onLoadComplete(LLVFS *vfs, | 2883 | { |
2884 | const LLUUID& asset_uuid, | 2884 | llinfos << "LLPanelEstateCovenant::estateUpdate()" << llendl; |
2885 | LLAssetType::EType type, | 2885 | return true; |
2886 | void* user_data, S32 status, LLExtStat ext_status) | 2886 | } |
2887 | { | 2887 | |
2888 | llinfos << "LLPanelEstateCovenant::onLoadComplete()" << llendl; | 2888 | // virtual |
2889 | LLPanelEstateCovenant* panelp = (LLPanelEstateCovenant*)user_data; | 2889 | BOOL LLPanelEstateCovenant::postBuild() |
2890 | if( panelp ) | 2890 | { |
2891 | { | 2891 | initHelpBtn("covenant_help", "HelpEstateCovenant"); |
2892 | if(0 == status) | 2892 | mEstateNameText = getChild<LLTextBox>("estate_name_text"); |
2893 | { | 2893 | mEstateOwnerText = getChild<LLTextBox>("estate_owner_text"); |
2894 | LLVFile file(vfs, asset_uuid, type, LLVFile::READ); | 2894 | mLastModifiedText = getChild<LLTextBox>("covenant_timestamp_text"); |
2895 | 2895 | mEditor = getChild<LLViewerTextEditor>("covenant_editor"); | |
2896 | S32 file_length = file.getSize(); | 2896 | if (mEditor) mEditor->setHandleEditKeysDirectly(TRUE); |
2897 | 2897 | LLButton* reset_button = getChild<LLButton>("reset_covenant"); | |
2898 | char* buffer = new char[file_length+1]; | 2898 | reset_button->setEnabled(gAgent.canManageEstate()); |
2899 | if (buffer == NULL) | 2899 | reset_button->setClickedCallback(LLPanelEstateCovenant::resetCovenantID, NULL); |
2900 | { | 2900 | |
2901 | llerrs << "Memory Allocation Failed" << llendl; | 2901 | return LLPanelRegionInfo::postBuild(); |
2902 | return; | 2902 | } |
2903 | } | 2903 | |
2904 | 2904 | // virtual | |
2905 | file.read((U8*)buffer, file_length); /* Flawfinder: ignore */ | 2905 | void LLPanelEstateCovenant::updateChild(LLUICtrl* child_ctrl) |
2906 | // put a EOS at the end | 2906 | { |
2907 | buffer[file_length] = 0; | 2907 | } |
2908 | 2908 | ||
2909 | if( (file_length > 19) && !strncmp( buffer, "Linden text version", 19 ) ) | 2909 | // virtual |
2910 | { | 2910 | BOOL LLPanelEstateCovenant::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, |
2911 | if( !panelp->mEditor->importBuffer( buffer, file_length+1 ) ) | 2911 | EDragAndDropType cargo_type, |
2912 | { | 2912 | void* cargo_data, |
2913 | llwarns << "Problem importing estate covenant." << llendl; | 2913 | EAcceptance* accept, |
2914 | LLNotifications::instance().add("ProblemImportingEstateCovenant"); | 2914 | std::string& tooltip_msg) |
2915 | } | 2915 | { |
2916 | else | 2916 | LLInventoryItem* item = (LLInventoryItem*)cargo_data; |
2917 | { | 2917 | |
2918 | panelp->sendChangeCovenantID(asset_uuid); | 2918 | if (!gAgent.canManageEstate()) |
2919 | } | 2919 | { |
2920 | } | 2920 | *accept = ACCEPT_NO; |
2921 | else | 2921 | return TRUE; |
2922 | { | 2922 | } |
2923 | // Version 0 (just text, doesn't include version number) | 2923 | |
2924 | panelp->sendChangeCovenantID(asset_uuid); | 2924 | switch(cargo_type) |
2925 | } | 2925 | { |
2926 | delete[] buffer; | 2926 | case DAD_NOTECARD: |
2927 | } | 2927 | *accept = ACCEPT_YES_COPY_SINGLE; |
2928 | else | 2928 | if (item && drop) |
2929 | { | 2929 | { |
2930 | LLViewerStats::getInstance()->incStat( LLViewerStats::ST_DOWNLOAD_FAILED ); | 2930 | LLSD payload; |
2931 | 2931 | payload["item_id"] = item->getUUID(); | |
2932 | if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status || | 2932 | LLNotifications::instance().add("EstateChangeCovenant", LLSD(), payload, |
2933 | LL_ERR_FILE_EMPTY == status) | 2933 | LLPanelEstateCovenant::confirmChangeCovenantCallback); |
2934 | { | 2934 | } |
2935 | LLNotifications::instance().add("MissingNotecardAssetID"); | 2935 | break; |
2936 | } | 2936 | default: |
2937 | else if (LL_ERR_INSUFFICIENT_PERMISSIONS == status) | 2937 | *accept = ACCEPT_NO; |
2938 | { | 2938 | break; |
2939 | LLNotifications::instance().add("NotAllowedToViewNotecard"); | 2939 | } |
2940 | } | 2940 | |
2941 | else | 2941 | return TRUE; |
2942 | { | 2942 | } |
2943 | LLNotifications::instance().add("UnableToLoadNotecardAsset"); | 2943 | |
2944 | } | 2944 | // static |
2945 | 2945 | bool LLPanelEstateCovenant::confirmChangeCovenantCallback(const LLSD& notification, const LLSD& response) | |
2946 | llwarns << "Problem loading notecard: " << status << llendl; | 2946 | { |
2947 | } | 2947 | S32 option = LLNotification::getSelectedOption(notification, response); |
2948 | panelp->mAssetStatus = ASSET_LOADED; | 2948 | LLInventoryItem* item = gInventory.getItem(notification["payload"]["item_id"].asUUID()); |
2949 | panelp->setCovenantID(asset_uuid); | 2949 | LLPanelEstateCovenant* self = LLFloaterRegionInfo::getPanelCovenant(); |
2950 | } | 2950 | |
2951 | } | 2951 | if (!item || !self) return false; |
2952 | 2952 | ||
2953 | // key = "estatechangecovenantid" | 2953 | switch(option) |
2954 | // strings[0] = str(estate_id) (added by simulator before relay - not here) | 2954 | { |
2955 | // strings[1] = str(covenant_id) | 2955 | case 0: |
2956 | void LLPanelEstateCovenant::sendChangeCovenantID(const LLUUID &asset_id) | 2956 | self->loadInvItem(item); |
2957 | { | 2957 | break; |
2958 | if (asset_id != getCovenantID()) | 2958 | default: |
2959 | { | 2959 | break; |
2960 | setCovenantID(asset_id); | 2960 | } |
2961 | 2961 | return false; | |
2962 | LLMessageSystem* msg = gMessageSystem; | 2962 | } |
2963 | msg->newMessage("EstateOwnerMessage"); | 2963 | |
2964 | msg->nextBlockFast(_PREHASH_AgentData); | 2964 | // static |
2965 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | 2965 | void LLPanelEstateCovenant::resetCovenantID(void* userdata) |
2966 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | 2966 | { |
2967 | msg->addUUIDFast(_PREHASH_TransactionID, LLUUID::null); //not used | 2967 | LLNotifications::instance().add("EstateChangeCovenant", LLSD(), LLSD(), confirmResetCovenantCallback); |
2968 | 2968 | } | |
2969 | msg->nextBlock("MethodData"); | 2969 | |
2970 | msg->addString("Method", "estatechangecovenantid"); | 2970 | // static |
2971 | msg->addUUID("Invoice", LLFloaterRegionInfo::getLastInvoice()); | 2971 | bool LLPanelEstateCovenant::confirmResetCovenantCallback(const LLSD& notification, const LLSD& response) |
2972 | 2972 | { | |
2973 | msg->nextBlock("ParamList"); | 2973 | LLPanelEstateCovenant* self = LLFloaterRegionInfo::getPanelCovenant(); |
2974 | msg->addString("Parameter", getCovenantID().asString()); | 2974 | if (!self) return false; |
2975 | gAgent.sendReliableMessage(); | 2975 | |
2976 | } | 2976 | S32 option = LLNotification::getSelectedOption(notification, response); |
2977 | } | 2977 | switch(option) |
2978 | 2978 | { | |
2979 | // virtual | 2979 | case 0: |
2980 | BOOL LLPanelEstateCovenant::sendUpdate() | 2980 | self->loadInvItem(NULL); |
2981 | { | 2981 | break; |
2982 | return TRUE; | 2982 | default: |
2983 | } | 2983 | break; |
2984 | 2984 | } | |
2985 | const std::string& LLPanelEstateCovenant::getEstateName() const | 2985 | return false; |
2986 | { | 2986 | } |
2987 | return mEstateNameText->getText(); | 2987 | |
2988 | } | 2988 | void LLPanelEstateCovenant::loadInvItem(LLInventoryItem *itemp) |
2989 | 2989 | { | |
2990 | void LLPanelEstateCovenant::setEstateName(const std::string& name) | 2990 | const BOOL high_priority = TRUE; |
2991 | { | 2991 | if (itemp) |
2992 | mEstateNameText->setText(name); | 2992 | { |
2993 | } | 2993 | gAssetStorage->getInvItemAsset(gAgent.getRegionHost(), |
2994 | 2994 | gAgent.getID(), | |
2995 | // static | 2995 | gAgent.getSessionID(), |
2996 | void LLPanelEstateCovenant::updateCovenantText(const std::string& string, const LLUUID& asset_id) | 2996 | itemp->getPermissions().getOwner(), |
2997 | { | 2997 | LLUUID::null, |
2998 | LLPanelEstateCovenant* panelp = LLFloaterRegionInfo::getPanelCovenant(); | 2998 | itemp->getUUID(), |
2999 | if( panelp ) | 2999 | itemp->getAssetUUID(), |
3000 | { | 3000 | itemp->getType(), |
3001 | panelp->mEditor->setText(string); | 3001 | onLoadComplete, |
3002 | panelp->setCovenantID(asset_id); | 3002 | (void*)this, |
3003 | } | 3003 | high_priority); |
3004 | } | 3004 | mAssetStatus = ASSET_LOADING; |
3005 | 3005 | } | |
3006 | // static | 3006 | else |
3007 | void LLPanelEstateCovenant::updateEstateName(const std::string& name) | 3007 | { |
3008 | { | 3008 | mAssetStatus = ASSET_LOADED; |
3009 | LLPanelEstateCovenant* panelp = LLFloaterRegionInfo::getPanelCovenant(); | 3009 | setCovenantTextEditor("There is no Covenant provided for this Estate."); |
3010 | if( panelp ) | 3010 | sendChangeCovenantID(LLUUID::null); |
3011 | { | 3011 | } |
3012 | panelp->mEstateNameText->setText(name); | 3012 | } |
3013 | } | 3013 | |
3014 | } | 3014 | // static |
3015 | 3015 | void LLPanelEstateCovenant::onLoadComplete(LLVFS *vfs, | |
3016 | // static | 3016 | const LLUUID& asset_uuid, |
3017 | void LLPanelEstateCovenant::updateLastModified(const std::string& text) | 3017 | LLAssetType::EType type, |
3018 | { | 3018 | void* user_data, S32 status, LLExtStat ext_status) |
3019 | LLPanelEstateCovenant* panelp = LLFloaterRegionInfo::getPanelCovenant(); | 3019 | { |
3020 | if( panelp ) | 3020 | llinfos << "LLPanelEstateCovenant::onLoadComplete()" << llendl; |
3021 | { | 3021 | LLPanelEstateCovenant* panelp = (LLPanelEstateCovenant*)user_data; |
3022 | panelp->mLastModifiedText->setText(text); | 3022 | if( panelp ) |
3023 | } | 3023 | { |
3024 | } | 3024 | if(0 == status) |
3025 | 3025 | { | |
3026 | // static | 3026 | LLVFile file(vfs, asset_uuid, type, LLVFile::READ); |
3027 | void LLPanelEstateCovenant::updateEstateOwnerName(const std::string& name) | 3027 | |
3028 | { | 3028 | S32 file_length = file.getSize(); |
3029 | LLPanelEstateCovenant* panelp = LLFloaterRegionInfo::getPanelCovenant(); | 3029 | |
3030 | if( panelp ) | 3030 | char* buffer = new char[file_length+1]; |
3031 | { | 3031 | if (buffer == NULL) |
3032 | panelp->mEstateOwnerText->setText(name); | 3032 | { |
3033 | } | 3033 | llerrs << "Memory Allocation Failed" << llendl; |
3034 | } | 3034 | return; |
3035 | 3035 | } | |
3036 | const std::string& LLPanelEstateCovenant::getOwnerName() const | 3036 | |
3037 | { | 3037 | file.read((U8*)buffer, file_length); /* Flawfinder: ignore */ |
3038 | return mEstateOwnerText->getText(); | 3038 | // put a EOS at the end |
3039 | } | 3039 | buffer[file_length] = 0; |
3040 | 3040 | ||
3041 | void LLPanelEstateCovenant::setOwnerName(const std::string& name) | 3041 | if( (file_length > 19) && !strncmp( buffer, "Linden text version", 19 ) ) |
3042 | { | 3042 | { |
3043 | mEstateOwnerText->setText(name); | 3043 | if( !panelp->mEditor->importBuffer( buffer, file_length+1 ) ) |
3044 | } | 3044 | { |
3045 | 3045 | llwarns << "Problem importing estate covenant." << llendl; | |
3046 | void LLPanelEstateCovenant::setCovenantTextEditor(const std::string& text) | 3046 | LLNotifications::instance().add("ProblemImportingEstateCovenant"); |
3047 | { | 3047 | } |
3048 | mEditor->setText(text); | 3048 | else |
3049 | } | 3049 | { |
3050 | 3050 | panelp->sendChangeCovenantID(asset_uuid); | |
3051 | // key = "estateupdateinfo" | 3051 | } |
3052 | // strings[0] = estate name | 3052 | } |
3053 | // strings[1] = str(owner_id) | 3053 | else |
3054 | // strings[2] = str(estate_id) | 3054 | { |
3055 | // strings[3] = str(estate_flags) | 3055 | // Version 0 (just text, doesn't include version number) |
3056 | // strings[4] = str((S32)(sun_hour * 1024)) | 3056 | panelp->sendChangeCovenantID(asset_uuid); |
3057 | // strings[5] = str(parent_estate_id) | 3057 | } |
3058 | // strings[6] = str(covenant_id) | 3058 | delete[] buffer; |
3059 | // strings[7] = str(covenant_timestamp) | 3059 | } |
3060 | // strings[8] = str(send_to_agent_only) | 3060 | else |
3061 | // strings[9] = str(abuse_email_addr) | 3061 | { |
3062 | bool LLDispatchEstateUpdateInfo::operator()( | 3062 | LLViewerStats::getInstance()->incStat( LLViewerStats::ST_DOWNLOAD_FAILED ); |
3063 | const LLDispatcher* dispatcher, | 3063 | |
3064 | const std::string& key, | 3064 | if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status || |
3065 | const LLUUID& invoice, | 3065 | LL_ERR_FILE_EMPTY == status) |
3066 | const sparam_t& strings) | 3066 | { |
3067 | { | 3067 | LLNotifications::instance().add("MissingNotecardAssetID"); |
3068 | LLPanelEstateInfo* panel = LLFloaterRegionInfo::getPanelEstate(); | 3068 | } |
3069 | if (!panel) return true; | 3069 | else if (LL_ERR_INSUFFICIENT_PERMISSIONS == status) |
3070 | 3070 | { | |
3071 | // NOTE: LLDispatcher extracts strings with an extra \0 at the | 3071 | LLNotifications::instance().add("NotAllowedToViewNotecard"); |
3072 | // end. If we pass the std::string direct to the UI/renderer | 3072 | } |
3073 | // it draws with a weird character at the end of the string. | 3073 | else |
3074 | std::string estate_name = strings[0].c_str(); // preserve c_str() call! | 3074 | { |
3075 | panel->setEstateName(estate_name); | 3075 | LLNotifications::instance().add("UnableToLoadNotecardAsset"); |
3076 | 3076 | } | |
3077 | if (strings.size() > 3) | 3077 | |
3078 | { | 3078 | llwarns << "Problem loading notecard: " << status << llendl; |
3079 | std::string abuse_email = strings[9].c_str(); // preserve c_str() call! | 3079 | } |
3080 | panel->setAbuseEmailAddress(abuse_email); | 3080 | panelp->mAssetStatus = ASSET_LOADED; |
3081 | } | 3081 | panelp->setCovenantID(asset_uuid); |
3082 | else | 3082 | } |
3083 | { | 3083 | } |
3084 | panel->setAbuseEmailAddress(panel->getString("email_unsupported")); | 3084 | |
3085 | } | 3085 | // key = "estatechangecovenantid" |
3086 | 3086 | // strings[0] = str(estate_id) (added by simulator before relay - not here) | |
3087 | LLViewerRegion* regionp = gAgent.getRegion(); | 3087 | // strings[1] = str(covenant_id) |
3088 | 3088 | void LLPanelEstateCovenant::sendChangeCovenantID(const LLUUID &asset_id) | |
3089 | LLUUID owner_id(strings[1]); | 3089 | { |
3090 | regionp->setOwner(owner_id); | 3090 | if (asset_id != getCovenantID()) |
3091 | // Update estate owner name in UI | 3091 | { |
3092 | const BOOL is_group = FALSE; | 3092 | setCovenantID(asset_id); |
3093 | gCacheName->get(owner_id, is_group, LLPanelEstateInfo::callbackCacheName); | 3093 | |
3094 | 3094 | LLMessageSystem* msg = gMessageSystem; | |
3095 | U32 estate_id = strtoul(strings[2].c_str(), NULL, 10); | 3095 | msg->newMessage("EstateOwnerMessage"); |
3096 | panel->setEstateID(estate_id); | 3096 | msg->nextBlockFast(_PREHASH_AgentData); |
3097 | 3097 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | |
3098 | U32 flags = strtoul(strings[3].c_str(), NULL, 10); | 3098 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); |
3099 | panel->setEstateFlags(flags); | 3099 | msg->addUUIDFast(_PREHASH_TransactionID, LLUUID::null); //not used |
3100 | 3100 | ||
3101 | F32 sun_hour = ((F32)(strtod(strings[4].c_str(), NULL)))/1024.0f; | 3101 | msg->nextBlock("MethodData"); |
3102 | if(sun_hour == 0 && (flags & REGION_FLAGS_SUN_FIXED ? FALSE : TRUE)) | 3102 | msg->addString("Method", "estatechangecovenantid"); |
3103 | { | 3103 | msg->addUUID("Invoice", LLFloaterRegionInfo::getLastInvoice()); |
3104 | panel->setGlobalTime(TRUE); | 3104 | |
3105 | } | 3105 | msg->nextBlock("ParamList"); |
3106 | else | 3106 | msg->addString("Parameter", getCovenantID().asString()); |
3107 | { | 3107 | gAgent.sendReliableMessage(); |
3108 | panel->setGlobalTime(FALSE); | 3108 | } |
3109 | panel->setSunHour(sun_hour); | 3109 | } |
3110 | } | 3110 | |
3111 | 3111 | // virtual | |
3112 | return true; | 3112 | BOOL LLPanelEstateCovenant::sendUpdate() |
3113 | } | 3113 | { |
3114 | 3114 | return TRUE; | |
3115 | 3115 | } | |
3116 | // key = "setaccess" | 3116 | |
3117 | // strings[0] = str(estate_id) | 3117 | const std::string& LLPanelEstateCovenant::getEstateName() const |
3118 | // strings[1] = str(packed_access_lists) | 3118 | { |
3119 | // strings[2] = str(num allowed agent ids) | 3119 | return mEstateNameText->getText(); |
3120 | // strings[3] = str(num allowed group ids) | 3120 | } |
3121 | // strings[4] = str(num banned agent ids) | 3121 | |
3122 | // strings[5] = str(num estate manager agent ids) | 3122 | void LLPanelEstateCovenant::setEstateName(const std::string& name) |
3123 | // strings[6] = bin(uuid) | 3123 | { |
3124 | // strings[7] = bin(uuid) | 3124 | mEstateNameText->setText(name); |
3125 | // strings[8] = bin(uuid) | 3125 | } |
3126 | // ... | 3126 | |
3127 | bool LLDispatchSetEstateAccess::operator()( | 3127 | // static |
3128 | const LLDispatcher* dispatcher, | 3128 | void LLPanelEstateCovenant::updateCovenantText(const std::string& string, const LLUUID& asset_id) |
3129 | const std::string& key, | 3129 | { |
3130 | const LLUUID& invoice, | 3130 | LLPanelEstateCovenant* panelp = LLFloaterRegionInfo::getPanelCovenant(); |
3131 | const sparam_t& strings) | 3131 | if( panelp ) |
3132 | { | 3132 | { |
3133 | LLPanelEstateInfo* panel = LLFloaterRegionInfo::getPanelEstate(); | 3133 | panelp->mEditor->setText(string); |
3134 | if (!panel) return true; | 3134 | panelp->setCovenantID(asset_id); |
3135 | 3135 | } | |
3136 | S32 index = 1; // skip estate_id | 3136 | } |
3137 | U32 access_flags = strtoul(strings[index++].c_str(), NULL,10); | 3137 | |
3138 | S32 num_allowed_agents = strtol(strings[index++].c_str(), NULL, 10); | 3138 | // static |
3139 | S32 num_allowed_groups = strtol(strings[index++].c_str(), NULL, 10); | 3139 | void LLPanelEstateCovenant::updateEstateName(const std::string& name) |
3140 | S32 num_banned_agents = strtol(strings[index++].c_str(), NULL, 10); | 3140 | { |
3141 | S32 num_estate_managers = strtol(strings[index++].c_str(), NULL, 10); | 3141 | LLPanelEstateCovenant* panelp = LLFloaterRegionInfo::getPanelCovenant(); |
3142 | 3142 | if( panelp ) | |
3143 | // sanity ckecks | 3143 | { |
3144 | if (num_allowed_agents > 0 | 3144 | panelp->mEstateNameText->setText(name); |
3145 | && !(access_flags & ESTATE_ACCESS_ALLOWED_AGENTS)) | 3145 | } |
3146 | { | 3146 | } |
3147 | llwarns << "non-zero count for allowed agents, but no corresponding flag" << llendl; | 3147 | |
3148 | } | 3148 | // static |
3149 | if (num_allowed_groups > 0 | 3149 | void LLPanelEstateCovenant::updateLastModified(const std::string& text) |
3150 | && !(access_flags & ESTATE_ACCESS_ALLOWED_GROUPS)) | 3150 | { |
3151 | { | 3151 | LLPanelEstateCovenant* panelp = LLFloaterRegionInfo::getPanelCovenant(); |
3152 | llwarns << "non-zero count for allowed groups, but no corresponding flag" << llendl; | 3152 | if( panelp ) |
3153 | } | 3153 | { |
3154 | if (num_banned_agents > 0 | 3154 | panelp->mLastModifiedText->setText(text); |
3155 | && !(access_flags & ESTATE_ACCESS_BANNED_AGENTS)) | 3155 | } |
3156 | { | 3156 | } |
3157 | llwarns << "non-zero count for banned agents, but no corresponding flag" << llendl; | 3157 | |
3158 | } | 3158 | // static |
3159 | if (num_estate_managers > 0 | 3159 | void LLPanelEstateCovenant::updateEstateOwnerName(const std::string& name) |
3160 | && !(access_flags & ESTATE_ACCESS_MANAGERS)) | 3160 | { |
3161 | { | 3161 | LLPanelEstateCovenant* panelp = LLFloaterRegionInfo::getPanelCovenant(); |
3162 | llwarns << "non-zero count for managers, but no corresponding flag" << llendl; | 3162 | if( panelp ) |
3163 | } | 3163 | { |
3164 | 3164 | panelp->mEstateOwnerText->setText(name); | |
3165 | // grab the UUID's out of the string fields | 3165 | } |
3166 | if (access_flags & ESTATE_ACCESS_ALLOWED_AGENTS) | 3166 | } |
3167 | { | 3167 | |
3168 | LLNameListCtrl* allowed_agent_name_list; | 3168 | const std::string& LLPanelEstateCovenant::getOwnerName() const |
3169 | allowed_agent_name_list = panel->getChild<LLNameListCtrl>("allowed_avatar_name_list"); | 3169 | { |
3170 | 3170 | return mEstateOwnerText->getText(); | |
3171 | int totalAllowedAgents = num_allowed_agents; | 3171 | } |
3172 | 3172 | ||
3173 | if (allowed_agent_name_list) | 3173 | void LLPanelEstateCovenant::setOwnerName(const std::string& name) |
3174 | { | 3174 | { |
3175 | totalAllowedAgents += allowed_agent_name_list->getItemCount(); | 3175 | mEstateOwnerText->setText(name); |
3176 | } | 3176 | } |
3177 | 3177 | ||
3178 | std::string msg = llformat("Allowed residents: (%d, max %d)", | 3178 | void LLPanelEstateCovenant::setCovenantTextEditor(const std::string& text) |
3179 | totalAllowedAgents, | 3179 | { |
3180 | ESTATE_MAX_ACCESS_IDS); | 3180 | mEditor->setText(text); |
3181 | panel->childSetValue("allow_resident_label", LLSD(msg)); | 3181 | } |
3182 | 3182 | ||
3183 | if (allowed_agent_name_list) | 3183 | // key = "estateupdateinfo" |
3184 | { | 3184 | // strings[0] = estate name |
3185 | //allowed_agent_name_list->deleteAllItems(); | 3185 | // strings[1] = str(owner_id) |
3186 | for (S32 i = 0; i < num_allowed_agents && i < ESTATE_MAX_ACCESS_IDS; i++) | 3186 | // strings[2] = str(estate_id) |
3187 | { | 3187 | // strings[3] = str(estate_flags) |
3188 | LLUUID id; | 3188 | // strings[4] = str((S32)(sun_hour * 1024)) |
3189 | memcpy(id.mData, strings[index++].data(), UUID_BYTES); /* Flawfinder: ignore */ | 3189 | // strings[5] = str(parent_estate_id) |
3190 | allowed_agent_name_list->addNameItem(id); | 3190 | // strings[6] = str(covenant_id) |
3191 | } | 3191 | // strings[7] = str(covenant_timestamp) |
3192 | panel->childSetEnabled("remove_allowed_avatar_btn", allowed_agent_name_list->getFirstSelected() ? TRUE : FALSE); | 3192 | // strings[8] = str(send_to_agent_only) |
3193 | allowed_agent_name_list->sortByColumnIndex(0, TRUE); | 3193 | // strings[9] = str(abuse_email_addr) |
3194 | } | 3194 | bool LLDispatchEstateUpdateInfo::operator()( |
3195 | } | 3195 | const LLDispatcher* dispatcher, |
3196 | 3196 | const std::string& key, | |
3197 | if (access_flags & ESTATE_ACCESS_ALLOWED_GROUPS) | 3197 | const LLUUID& invoice, |
3198 | { | 3198 | const sparam_t& strings) |
3199 | LLNameListCtrl* allowed_group_name_list; | 3199 | { |
3200 | allowed_group_name_list = panel->getChild<LLNameListCtrl>("allowed_group_name_list"); | 3200 | LLPanelEstateInfo* panel = LLFloaterRegionInfo::getPanelEstate(); |
3201 | 3201 | if (!panel) return true; | |
3202 | std::string msg = llformat("Allowed groups: (%d, max %d)", | 3202 | |
3203 | num_allowed_groups, | 3203 | // NOTE: LLDispatcher extracts strings with an extra \0 at the |
3204 | (S32) ESTATE_MAX_GROUP_IDS); | 3204 | // end. If we pass the std::string direct to the UI/renderer |
3205 | panel->childSetValue("allow_group_label", LLSD(msg)); | 3205 | // it draws with a weird character at the end of the string. |
3206 | 3206 | std::string estate_name = strings[0].c_str(); // preserve c_str() call! | |
3207 | if (allowed_group_name_list) | 3207 | panel->setEstateName(estate_name); |
3208 | { | 3208 | |
3209 | allowed_group_name_list->deleteAllItems(); | 3209 | if (strings.size() > 3) |
3210 | for (S32 i = 0; i < num_allowed_groups && i < ESTATE_MAX_GROUP_IDS; i++) | 3210 | { |
3211 | { | 3211 | std::string abuse_email = strings[9].c_str(); // preserve c_str() call! |
3212 | LLUUID id; | 3212 | panel->setAbuseEmailAddress(abuse_email); |
3213 | memcpy(id.mData, strings[index++].data(), UUID_BYTES); /* Flawfinder: ignore */ | 3213 | } |
3214 | allowed_group_name_list->addGroupNameItem(id); | 3214 | else |
3215 | } | 3215 | { |
3216 | panel->childSetEnabled("remove_allowed_group_btn", allowed_group_name_list->getFirstSelected() ? TRUE : FALSE); | 3216 | panel->setAbuseEmailAddress(panel->getString("email_unsupported")); |
3217 | allowed_group_name_list->sortByColumnIndex(0, TRUE); | 3217 | } |
3218 | } | 3218 | |
3219 | } | 3219 | LLViewerRegion* regionp = gAgent.getRegion(); |
3220 | 3220 | ||
3221 | if (access_flags & ESTATE_ACCESS_BANNED_AGENTS) | 3221 | LLUUID owner_id(strings[1]); |
3222 | { | 3222 | regionp->setOwner(owner_id); |
3223 | LLNameListCtrl* banned_agent_name_list; | 3223 | // Update estate owner name in UI |
3224 | banned_agent_name_list = panel->getChild<LLNameListCtrl>("banned_avatar_name_list"); | 3224 | const BOOL is_group = FALSE; |
3225 | 3225 | gCacheName->get(owner_id, is_group, LLPanelEstateInfo::callbackCacheName); | |
3226 | int totalBannedAgents = num_banned_agents; | 3226 | |
3227 | 3227 | U32 estate_id = strtoul(strings[2].c_str(), NULL, 10); | |
3228 | if (banned_agent_name_list) | 3228 | panel->setEstateID(estate_id); |
3229 | { | 3229 | |
3230 | totalBannedAgents += banned_agent_name_list->getItemCount(); | 3230 | U32 flags = strtoul(strings[3].c_str(), NULL, 10); |
3231 | } | 3231 | panel->setEstateFlags(flags); |
3232 | 3232 | ||
3233 | 3233 | F32 sun_hour = ((F32)(strtod(strings[4].c_str(), NULL)))/1024.0f; | |
3234 | std::string msg = llformat("Banned residents: (%d, max %d)", | 3234 | if(sun_hour == 0 && (flags & REGION_FLAGS_SUN_FIXED ? FALSE : TRUE)) |
3235 | totalBannedAgents, | 3235 | { |
3236 | ESTATE_MAX_ACCESS_IDS); | 3236 | panel->setGlobalTime(TRUE); |
3237 | panel->childSetValue("ban_resident_label", LLSD(msg)); | 3237 | } |
3238 | 3238 | else | |
3239 | if (banned_agent_name_list) | 3239 | { |
3240 | { | 3240 | panel->setGlobalTime(FALSE); |
3241 | //banned_agent_name_list->deleteAllItems(); | 3241 | panel->setSunHour(sun_hour); |
3242 | for (S32 i = 0; i < num_banned_agents && i < ESTATE_MAX_ACCESS_IDS; i++) | 3242 | } |
3243 | { | 3243 | |
3244 | LLUUID id; | 3244 | bool visible_from_mainland = (bool)(flags & REGION_FLAGS_EXTERNALLY_VISIBLE); |
3245 | memcpy(id.mData, strings[index++].data(), UUID_BYTES); /* Flawfinder: ignore */ | 3245 | bool god = gAgent.isGodlike(); |
3246 | banned_agent_name_list->addNameItem(id); | 3246 | bool linden_estate = (estate_id <= ESTATE_LAST_LINDEN); |
3247 | } | 3247 | |
3248 | panel->childSetEnabled("remove_banned_avatar_btn", banned_agent_name_list->getFirstSelected() ? TRUE : FALSE); | 3248 | // If visible from mainland, disable the access allowed |
3249 | banned_agent_name_list->sortByColumnIndex(0, TRUE); | 3249 | // UI, as anyone can teleport there. |
3250 | } | 3250 | // However, gods need to be able to edit the access list for |
3251 | } | 3251 | // linden estates, regardless of visibility, to allow object |
3252 | 3252 | // and L$ transfers. | |
3253 | if (access_flags & ESTATE_ACCESS_MANAGERS) | 3253 | bool enable_agent = (!visible_from_mainland || (god && linden_estate)); |
3254 | { | 3254 | bool enable_group = enable_agent; |
3255 | std::string msg = llformat("Estate Managers: (%d, max %d)", | 3255 | bool enable_ban = !linden_estate; |
3256 | num_estate_managers, | 3256 | panel->setAccessAllowedEnabled(enable_agent, enable_group, enable_ban); |
3257 | ESTATE_MAX_MANAGERS); | 3257 | |
3258 | panel->childSetValue("estate_manager_label", LLSD(msg)); | 3258 | return true; |
3259 | 3259 | } | |
3260 | LLNameListCtrl* estate_manager_name_list = | 3260 | |
3261 | panel->getChild<LLNameListCtrl>("estate_manager_name_list"); | 3261 | |
3262 | if (estate_manager_name_list) | 3262 | // key = "setaccess" |
3263 | { | 3263 | // strings[0] = str(estate_id) |
3264 | estate_manager_name_list->deleteAllItems(); // Clear existing entries | 3264 | // strings[1] = str(packed_access_lists) |
3265 | 3265 | // strings[2] = str(num allowed agent ids) | |
3266 | // There should be only ESTATE_MAX_MANAGERS people in the list, but if the database gets more (SL-46107) don't | 3266 | // strings[3] = str(num allowed group ids) |
3267 | // truncate the list unless it's really big. Go ahead and show the extras so the user doesn't get confused, | 3267 | // strings[4] = str(num banned agent ids) |
3268 | // and they can still remove them. | 3268 | // strings[5] = str(num estate manager agent ids) |
3269 | for (S32 i = 0; i < num_estate_managers && i < (ESTATE_MAX_MANAGERS * 4); i++) | 3269 | // strings[6] = bin(uuid) |
3270 | { | 3270 | // strings[7] = bin(uuid) |
3271 | LLUUID id; | 3271 | // strings[8] = bin(uuid) |
3272 | memcpy(id.mData, strings[index++].data(), UUID_BYTES); /* Flawfinder: ignore */ | 3272 | // ... |
3273 | estate_manager_name_list->addNameItem(id); | 3273 | bool LLDispatchSetEstateAccess::operator()( |
3274 | } | 3274 | const LLDispatcher* dispatcher, |
3275 | panel->childSetEnabled("remove_estate_manager_btn", estate_manager_name_list->getFirstSelected() ? TRUE : FALSE); | 3275 | const std::string& key, |
3276 | estate_manager_name_list->sortByColumnIndex(0, TRUE); | 3276 | const LLUUID& invoice, |
3277 | } | 3277 | const sparam_t& strings) |
3278 | } | 3278 | { |
3279 | 3279 | LLPanelEstateInfo* panel = LLFloaterRegionInfo::getPanelEstate(); | |
3280 | return true; | 3280 | if (!panel) return true; |
3281 | } | 3281 | |
3282 | 3282 | S32 index = 1; // skip estate_id | |
3283 | // [RLVa:KB] - Checked: 2009-07-04 (RLVa-1.0.0a) | 3283 | U32 access_flags = strtoul(strings[index++].c_str(), NULL,10); |
3284 | void LLFloaterRegionInfo::open() | 3284 | S32 num_allowed_agents = strtol(strings[index++].c_str(), NULL, 10); |
3285 | { | 3285 | S32 num_allowed_groups = strtol(strings[index++].c_str(), NULL, 10); |
3286 | // We'll allow access to the estate tools for estate managers (and for the sim owner) | 3286 | S32 num_banned_agents = strtol(strings[index++].c_str(), NULL, 10); |
3287 | if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) | 3287 | S32 num_estate_managers = strtol(strings[index++].c_str(), NULL, 10); |
3288 | { | 3288 | |
3289 | LLViewerRegion* pRegion = gAgent.getRegion(); | 3289 | // sanity ckecks |
3290 | if (!pRegion) | 3290 | if (num_allowed_agents > 0 |
3291 | return; | 3291 | && !(access_flags & ESTATE_ACCESS_ALLOWED_AGENTS)) |
3292 | 3292 | { | |
3293 | // Should be able to call LLRegion::canManageEstate() but then we can fake god like | 3293 | llwarns << "non-zero count for allowed agents, but no corresponding flag" << llendl; |
3294 | if ( (!pRegion->isEstateManager()) && (pRegion->getOwner() != gAgent.getID()) ) | 3294 | } |
3295 | return; | 3295 | if (num_allowed_groups > 0 |
3296 | } | 3296 | && !(access_flags & ESTATE_ACCESS_ALLOWED_GROUPS)) |
3297 | 3297 | { | |
3298 | LLFloater::open(); | 3298 | llwarns << "non-zero count for allowed groups, but no corresponding flag" << llendl; |
3299 | } | 3299 | } |
3300 | // [/RLVa:KB] | 3300 | if (num_banned_agents > 0 |
3301 | && !(access_flags & ESTATE_ACCESS_BANNED_AGENTS)) | ||
3302 | { | ||
3303 | llwarns << "non-zero count for banned agents, but no corresponding flag" << llendl; | ||
3304 | } | ||
3305 | if (num_estate_managers > 0 | ||
3306 | && !(access_flags & ESTATE_ACCESS_MANAGERS)) | ||
3307 | { | ||
3308 | llwarns << "non-zero count for managers, but no corresponding flag" << llendl; | ||
3309 | } | ||
3310 | |||
3311 | // grab the UUID's out of the string fields | ||
3312 | if (access_flags & ESTATE_ACCESS_ALLOWED_AGENTS) | ||
3313 | { | ||
3314 | LLNameListCtrl* allowed_agent_name_list; | ||
3315 | allowed_agent_name_list = panel->getChild<LLNameListCtrl>("allowed_avatar_name_list"); | ||
3316 | |||
3317 | int totalAllowedAgents = num_allowed_agents; | ||
3318 | |||
3319 | if (allowed_agent_name_list) | ||
3320 | { | ||
3321 | totalAllowedAgents += allowed_agent_name_list->getItemCount(); | ||
3322 | } | ||
3323 | |||
3324 | std::string msg = llformat("Allowed residents: (%d, max %d)", | ||
3325 | totalAllowedAgents, | ||
3326 | ESTATE_MAX_ACCESS_IDS); | ||
3327 | panel->childSetValue("allow_resident_label", LLSD(msg)); | ||
3328 | |||
3329 | if (allowed_agent_name_list) | ||
3330 | { | ||
3331 | //allowed_agent_name_list->deleteAllItems(); | ||
3332 | for (S32 i = 0; i < num_allowed_agents && i < ESTATE_MAX_ACCESS_IDS; i++) | ||
3333 | { | ||
3334 | LLUUID id; | ||
3335 | memcpy(id.mData, strings[index++].data(), UUID_BYTES); /* Flawfinder: ignore */ | ||
3336 | allowed_agent_name_list->addNameItem(id); | ||
3337 | } | ||
3338 | panel->childSetEnabled("remove_allowed_avatar_btn", allowed_agent_name_list->getFirstSelected() ? TRUE : FALSE); | ||
3339 | allowed_agent_name_list->sortByColumnIndex(0, TRUE); | ||
3340 | } | ||
3341 | } | ||
3342 | |||
3343 | if (access_flags & ESTATE_ACCESS_ALLOWED_GROUPS) | ||
3344 | { | ||
3345 | LLNameListCtrl* allowed_group_name_list; | ||
3346 | allowed_group_name_list = panel->getChild<LLNameListCtrl>("allowed_group_name_list"); | ||
3347 | |||
3348 | std::string msg = llformat("Allowed groups: (%d, max %d)", | ||
3349 | num_allowed_groups, | ||
3350 | (S32) ESTATE_MAX_GROUP_IDS); | ||
3351 | panel->childSetValue("allow_group_label", LLSD(msg)); | ||
3352 | |||
3353 | if (allowed_group_name_list) | ||
3354 | { | ||
3355 | allowed_group_name_list->deleteAllItems(); | ||
3356 | for (S32 i = 0; i < num_allowed_groups && i < ESTATE_MAX_GROUP_IDS; i++) | ||
3357 | { | ||
3358 | LLUUID id; | ||
3359 | memcpy(id.mData, strings[index++].data(), UUID_BYTES); /* Flawfinder: ignore */ | ||
3360 | allowed_group_name_list->addGroupNameItem(id); | ||
3361 | } | ||
3362 | panel->childSetEnabled("remove_allowed_group_btn", allowed_group_name_list->getFirstSelected() ? TRUE : FALSE); | ||
3363 | allowed_group_name_list->sortByColumnIndex(0, TRUE); | ||
3364 | } | ||
3365 | } | ||
3366 | |||
3367 | if (access_flags & ESTATE_ACCESS_BANNED_AGENTS) | ||
3368 | { | ||
3369 | LLNameListCtrl* banned_agent_name_list; | ||
3370 | banned_agent_name_list = panel->getChild<LLNameListCtrl>("banned_avatar_name_list"); | ||
3371 | |||
3372 | int totalBannedAgents = num_banned_agents; | ||
3373 | |||
3374 | if (banned_agent_name_list) | ||
3375 | { | ||
3376 | totalBannedAgents += banned_agent_name_list->getItemCount(); | ||
3377 | } | ||
3378 | |||
3379 | |||
3380 | std::string msg = llformat("Banned residents: (%d, max %d)", | ||
3381 | totalBannedAgents, | ||
3382 | ESTATE_MAX_ACCESS_IDS); | ||
3383 | panel->childSetValue("ban_resident_label", LLSD(msg)); | ||
3384 | |||
3385 | if (banned_agent_name_list) | ||
3386 | { | ||
3387 | //banned_agent_name_list->deleteAllItems(); | ||
3388 | for (S32 i = 0; i < num_banned_agents && i < ESTATE_MAX_ACCESS_IDS; i++) | ||
3389 | { | ||
3390 | LLUUID id; | ||
3391 | memcpy(id.mData, strings[index++].data(), UUID_BYTES); /* Flawfinder: ignore */ | ||
3392 | banned_agent_name_list->addNameItem(id); | ||
3393 | } | ||
3394 | panel->childSetEnabled("remove_banned_avatar_btn", banned_agent_name_list->getFirstSelected() ? TRUE : FALSE); | ||
3395 | banned_agent_name_list->sortByColumnIndex(0, TRUE); | ||
3396 | } | ||
3397 | } | ||
3398 | |||
3399 | if (access_flags & ESTATE_ACCESS_MANAGERS) | ||
3400 | { | ||
3401 | std::string msg = llformat("Estate Managers: (%d, max %d)", | ||
3402 | num_estate_managers, | ||
3403 | ESTATE_MAX_MANAGERS); | ||
3404 | panel->childSetValue("estate_manager_label", LLSD(msg)); | ||
3405 | |||
3406 | LLNameListCtrl* estate_manager_name_list = | ||
3407 | panel->getChild<LLNameListCtrl>("estate_manager_name_list"); | ||
3408 | if (estate_manager_name_list) | ||
3409 | { | ||
3410 | estate_manager_name_list->deleteAllItems(); // Clear existing entries | ||
3411 | |||
3412 | // There should be only ESTATE_MAX_MANAGERS people in the list, but if the database gets more (SL-46107) don't | ||
3413 | // truncate the list unless it's really big. Go ahead and show the extras so the user doesn't get confused, | ||
3414 | // and they can still remove them. | ||
3415 | for (S32 i = 0; i < num_estate_managers && i < (ESTATE_MAX_MANAGERS * 4); i++) | ||
3416 | { | ||
3417 | LLUUID id; | ||
3418 | memcpy(id.mData, strings[index++].data(), UUID_BYTES); /* Flawfinder: ignore */ | ||
3419 | estate_manager_name_list->addNameItem(id); | ||
3420 | } | ||
3421 | panel->childSetEnabled("remove_estate_manager_btn", estate_manager_name_list->getFirstSelected() ? TRUE : FALSE); | ||
3422 | estate_manager_name_list->sortByColumnIndex(0, TRUE); | ||
3423 | } | ||
3424 | } | ||
3425 | |||
3426 | return true; | ||
3427 | } | ||
3428 | |||
3429 | // [RLVa:KB] - Checked: 2009-07-04 (RLVa-1.0.0a) | ||
3430 | void LLFloaterRegionInfo::open() | ||
3431 | { | ||
3432 | // We'll allow access to the estate tools for estate managers (and for the sim owner) | ||
3433 | if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) | ||
3434 | { | ||
3435 | LLViewerRegion* pRegion = gAgent.getRegion(); | ||
3436 | if (!pRegion) | ||
3437 | return; | ||
3438 | |||
3439 | // Should be able to call LLRegion::canManageEstate() but then we can fake god like | ||
3440 | if ( (!pRegion->isEstateManager()) && (pRegion->getOwner() != gAgent.getID()) ) | ||
3441 | return; | ||
3442 | } | ||
3443 | |||
3444 | LLFloater::open(); | ||
3445 | } | ||
3446 | // [/RLVa:KB] | ||
3447 | |||
diff --git a/linden/indra/newview/llfloatertools.cpp b/linden/indra/newview/llfloatertools.cpp index 2aed361..e22de66 100644 --- a/linden/indra/newview/llfloatertools.cpp +++ b/linden/indra/newview/llfloatertools.cpp | |||
@@ -1259,9 +1259,8 @@ void LLFloaterTools::onClickLink(void* data) | |||
1259 | } | 1259 | } |
1260 | 1260 | ||
1261 | S32 max_linked_prims = 0; | 1261 | S32 max_linked_prims = 0; |
1262 | 1262 | LLViewerObject* first_rootp = LLSelectMgr::getInstance()->getSelection()->getFirstRootObject(); | |
1263 | LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getFirstRootObject(); | 1263 | if(first_rootp && first_rootp->usePhysics()) |
1264 | if(object && object->usePhysics()) | ||
1265 | { | 1264 | { |
1266 | //Physical - use phys prim limit | 1265 | //Physical - use phys prim limit |
1267 | max_linked_prims = gHippoLimits->getMaxPhysLinkedPrims(); | 1266 | max_linked_prims = gHippoLimits->getMaxPhysLinkedPrims(); |
diff --git a/linden/indra/newview/llfloatertos.cpp b/linden/indra/newview/llfloatertos.cpp index 748139d..ebbecb1 100644 --- a/linden/indra/newview/llfloatertos.cpp +++ b/linden/indra/newview/llfloatertos.cpp | |||
@@ -1,305 +1,306 @@ | |||
1 | /** | 1 | /** |
2 | * @file llfloatertos.cpp | 2 | * @file llfloatertos.cpp |
3 | * @brief Terms of Service Agreement dialog | 3 | * @brief Terms of Service Agreement dialog |
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2003&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2003&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2003-2009, Linden Research, Inc. | 7 | * Copyright (c) 2003-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
11 | * to you under the terms of the GNU General Public License, version 2.0 | 11 | * to you under the terms of the GNU General Public License, version 2.0 |
12 | * ("GPL"), unless you have obtained a separate licensing agreement | 12 | * ("GPL"), unless you have obtained a separate licensing agreement |
13 | * ("Other License"), formally executed by you and Linden Lab. Terms of | 13 | * ("Other License"), formally executed by you and Linden Lab. Terms of |
14 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | 14 | * the GPL can be found in doc/GPL-license.txt in this distribution, or |
15 | * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 | 15 | * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 |
16 | * | 16 | * |
17 | * There are special exceptions to the terms and conditions of the GPL as | 17 | * There are special exceptions to the terms and conditions of the GPL as |
18 | * it is applied to this Source Code. View the full text of the exception | 18 | * it is applied to this Source Code. View the full text of the exception |
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 19 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
20 | * online at | 20 | * online at |
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | 21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception |
22 | * | 22 | * |
23 | * By copying, modifying or distributing this software, you acknowledge | 23 | * By copying, modifying or distributing this software, you acknowledge |
24 | * that you have read and understood your obligations described above, | 24 | * that you have read and understood your obligations described above, |
25 | * and agree to abide by those obligations. | 25 | * and agree to abide by those obligations. |
26 | * | 26 | * |
27 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | 27 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO |
28 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | 28 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, |
29 | * COMPLETENESS OR PERFORMANCE. | 29 | * COMPLETENESS OR PERFORMANCE. |
30 | * $/LicenseInfo$ | 30 | * $/LicenseInfo$ |
31 | */ | 31 | */ |
32 | 32 | ||
33 | #include "llviewerprecompiledheaders.h" | 33 | #include "llviewerprecompiledheaders.h" |
34 | 34 | ||
35 | #include "llfloatertos.h" | 35 | #include "llfloatertos.h" |
36 | 36 | ||
37 | // viewer includes | 37 | // viewer includes |
38 | #include "llagent.h" | 38 | #include "llagent.h" |
39 | #include "llappviewer.h" | 39 | #include "llappviewer.h" |
40 | #include "llstartup.h" | 40 | #include "llstartup.h" |
41 | #include "llviewerstats.h" | 41 | #include "llviewerstats.h" |
42 | #include "llviewertexteditor.h" | 42 | #include "llviewertexteditor.h" |
43 | #include "llviewerwindow.h" | 43 | #include "llviewerwindow.h" |
44 | 44 | ||
45 | // viewer library includes | 45 | // linden library includes |
46 | #include "llbutton.h" | 46 | #include "llbutton.h" |
47 | #include "llhttpclient.h" | 47 | #include "llhttpclient.h" |
48 | #include "llhttpstatuscodes.h" // for HTTP_FOUND | 48 | #include "llhttpstatuscodes.h" // for HTTP_FOUND |
49 | #include "llradiogroup.h" | 49 | #include "llradiogroup.h" |
50 | #include "lltextbox.h" | 50 | #include "lltextbox.h" |
51 | #include "llui.h" | 51 | #include "llui.h" |
52 | #include "lluictrlfactory.h" | 52 | #include "lluictrlfactory.h" |
53 | #include "llvfile.h" | 53 | #include "llvfile.h" |
54 | #include "message.h" | 54 | #include "message.h" |
55 | #include "hippogridmanager.h" | 55 | #include "hippogridmanager.h" |
56 | 56 | ||
57 | 57 | ||
58 | // static | 58 | // static |
59 | LLFloaterTOS* LLFloaterTOS::sInstance = NULL; | 59 | LLFloaterTOS* LLFloaterTOS::sInstance = NULL; |
60 | 60 | ||
61 | // static | 61 | // static |
62 | LLFloaterTOS* LLFloaterTOS::show(ETOSType type, const std::string & message) | 62 | LLFloaterTOS* LLFloaterTOS::show(ETOSType type, const std::string & message) |
63 | { | 63 | { |
64 | if( !LLFloaterTOS::sInstance ) | 64 | if( !LLFloaterTOS::sInstance ) |
65 | { | 65 | { |
66 | LLFloaterTOS::sInstance = new LLFloaterTOS(type, message); | 66 | LLFloaterTOS::sInstance = new LLFloaterTOS(type, message); |
67 | } | 67 | } |
68 | 68 | ||
69 | if (type == TOS_TOS) | 69 | if (type == TOS_TOS) |
70 | { | 70 | { |
71 | LLUICtrlFactory::getInstance()->buildFloater(LLFloaterTOS::sInstance, "floater_tos.xml"); | 71 | LLUICtrlFactory::getInstance()->buildFloater(LLFloaterTOS::sInstance, "floater_tos.xml"); |
72 | } | 72 | } |
73 | else | 73 | else |
74 | { | 74 | { |
75 | LLUICtrlFactory::getInstance()->buildFloater(LLFloaterTOS::sInstance, "floater_critical.xml"); | 75 | LLUICtrlFactory::getInstance()->buildFloater(LLFloaterTOS::sInstance, "floater_critical.xml"); |
76 | } | 76 | } |
77 | 77 | ||
78 | return LLFloaterTOS::sInstance; | 78 | return LLFloaterTOS::sInstance; |
79 | } | 79 | } |
80 | 80 | ||
81 | 81 | ||
82 | LLFloaterTOS::LLFloaterTOS(ETOSType type, const std::string & message) | 82 | LLFloaterTOS::LLFloaterTOS(ETOSType type, const std::string & message) |
83 | : LLModalDialog( std::string(" "), 100, 100 ), | 83 | : LLModalDialog( std::string(" "), 100, 100 ), |
84 | mType(type), | 84 | mType(type), |
85 | mMessage(message), | 85 | mMessage(message), |
86 | mWebBrowserWindowId( 0 ), | 86 | mWebBrowserWindowId( 0 ), |
87 | mLoadCompleteCount( 0 ) | 87 | mLoadCompleteCount( 0 ) |
88 | { | 88 | { |
89 | } | 89 | } |
90 | 90 | ||
91 | // helper class that trys to download a URL from a web site and calls a method | 91 | // helper class that trys to download a URL from a web site and calls a method |
92 | // on parent class indicating if the web server is working or not | 92 | // on parent class indicating if the web server is working or not |
93 | class LLIamHereTOS : public LLHTTPClient::Responder | 93 | class LLIamHereTOS : public LLHTTPClient::Responder |
94 | { | 94 | { |
95 | private: | 95 | private: |
96 | LLIamHereTOS( LLFloaterTOS* parent ) : | 96 | LLIamHereTOS( LLFloaterTOS* parent ) : |
97 | mParent( parent ) | 97 | mParent( parent ) |
98 | {} | 98 | {} |
99 | 99 | ||
100 | LLFloaterTOS* mParent; | 100 | LLFloaterTOS* mParent; |
101 | 101 | ||
102 | public: | 102 | public: |
103 | 103 | ||
104 | static boost::intrusive_ptr< LLIamHereTOS > build( LLFloaterTOS* parent ) | 104 | static boost::intrusive_ptr< LLIamHereTOS > build( LLFloaterTOS* parent ) |
105 | { | 105 | { |
106 | return boost::intrusive_ptr< LLIamHereTOS >( new LLIamHereTOS( parent ) ); | 106 | return boost::intrusive_ptr< LLIamHereTOS >( new LLIamHereTOS( parent ) ); |
107 | }; | 107 | }; |
108 | 108 | ||
109 | virtual void setParent( LLFloaterTOS* parentIn ) | 109 | virtual void setParent( LLFloaterTOS* parentIn ) |
110 | { | 110 | { |
111 | mParent = parentIn; | 111 | mParent = parentIn; |
112 | }; | 112 | }; |
113 | 113 | ||
114 | virtual void result( const LLSD& content ) | 114 | virtual void result( const LLSD& content ) |
115 | { | 115 | { |
116 | if ( mParent ) | 116 | if ( mParent ) |
117 | mParent->setSiteIsAlive( true ); | 117 | mParent->setSiteIsAlive( true ); |
118 | }; | 118 | }; |
119 | 119 | ||
120 | virtual void error( U32 status, const std::string& reason ) | 120 | virtual void error( U32 status, const std::string& reason ) |
121 | { | 121 | { |
122 | if ( mParent ) | 122 | if ( mParent ) |
123 | { | 123 | { |
124 | // *HACK: For purposes of this alive check, 302 Found | 124 | // *HACK: For purposes of this alive check, 302 Found |
125 | // (aka Moved Temporarily) is considered alive. The web site | 125 | // (aka Moved Temporarily) is considered alive. The web site |
126 | // redirects this link to a "cache busting" temporary URL. JC | 126 | // redirects this link to a "cache busting" temporary URL. JC |
127 | bool alive = (status == HTTP_FOUND); | 127 | bool alive = (status == HTTP_FOUND); |
128 | mParent->setSiteIsAlive( alive ); | 128 | mParent->setSiteIsAlive( alive ); |
129 | } | 129 | } |
130 | }; | 130 | }; |
131 | }; | 131 | }; |
132 | 132 | ||
133 | // this is global and not a class member to keep crud out of the header file | 133 | // this is global and not a class member to keep crud out of the header file |
134 | namespace { | 134 | namespace { |
135 | boost::intrusive_ptr< LLIamHereTOS > gResponsePtr = 0; | 135 | boost::intrusive_ptr< LLIamHereTOS > gResponsePtr = 0; |
136 | }; | 136 | }; |
137 | 137 | ||
138 | BOOL LLFloaterTOS::postBuild() | 138 | BOOL LLFloaterTOS::postBuild() |
139 | { | 139 | { |
140 | childSetAction("Continue", onContinue, this); | 140 | childSetAction("Continue", onContinue, this); |
141 | childSetAction("Cancel", onCancel, this); | 141 | childSetAction("Cancel", onCancel, this); |
142 | childSetCommitCallback("agree_chk", updateAgree, this); | 142 | childSetCommitCallback("agree_chk", updateAgree, this); |
143 | 143 | ||
144 | LLCheckBoxCtrl* tos_agreement = getChild<LLCheckBoxCtrl>("agree_chk"); | 144 | LLCheckBoxCtrl* tos_agreement = getChild<LLCheckBoxCtrl>("agree_chk"); |
145 | tos_agreement->setEnabled( true ); | 145 | tos_agreement->setEnabled( true ); |
146 | 146 | ||
147 | //Always set this so that the TOS is displayed whether the web browser pops up or not. | 147 | //Always set this so that the TOS is displayed whether the web browser pops up or not. |
148 | LLTextEditor *editor = getChild<LLTextEditor>("tos_text"); | 148 | LLTextEditor *editor = getChild<LLTextEditor>("tos_text"); |
149 | editor->setHandleEditKeysDirectly( TRUE ); | 149 | editor->setHandleEditKeysDirectly( TRUE ); |
150 | editor->setEnabled( FALSE ); | 150 | editor->setEnabled( FALSE ); |
151 | editor->setWordWrap(TRUE); | 151 | editor->setWordWrap(TRUE); |
152 | editor->setFocus(TRUE); | 152 | editor->setFocus(TRUE); |
153 | editor->setValue(LLSD(mMessage)); | 153 | editor->setValue(LLSD(mMessage)); |
154 | LLMediaCtrl* web_browser = getChild<LLMediaCtrl>("tos_html"); | 154 | LLMediaCtrl* web_browser = getChild<LLMediaCtrl>("tos_html"); |
155 | if (web_browser) | 155 | if (web_browser) |
156 | { | 156 | { |
157 | //Disable for critical messages and text messages, it is reenabled later | 157 | //Disable for critical messages and text messages, it is reenabled later |
158 | web_browser->setVisible( FALSE ); | 158 | web_browser->setVisible( FALSE ); |
159 | } | 159 | } |
160 | 160 | ||
161 | if ( mType != TOS_TOS ) | 161 | if ( mType != TOS_TOS ) |
162 | { | 162 | { |
163 | // this displays the critical message only | 163 | // this displays the critical message only |
164 | return TRUE; | 164 | return TRUE; |
165 | } | 165 | } |
166 | bool use_web_browser = false; | 166 | bool use_web_browser = false; |
167 | 167 | ||
168 | //Check to see if the message is a link to display | 168 | //Check to see if the message is a link to display |
169 | std::string token = "http://"; | 169 | std::string token = "http://"; |
170 | std::string::size_type iIndex = mMessage.rfind(token); | 170 | std::string::size_type iIndex = mMessage.rfind(token); |
171 | //IF it has http:// in it, we use the web browser | 171 | //IF it has http:// in it, we use the web browser |
172 | if(iIndex != std::string::npos && mMessage.length() >= 2) | 172 | if(iIndex != std::string::npos && mMessage.length() >= 2) |
173 | { | 173 | { |
174 | // it exists | 174 | // it exists |
175 | use_web_browser = true; | 175 | use_web_browser = true; |
176 | } | 176 | } |
177 | else if (gHippoGridManager->getConnectedGrid()->isSecondLife()) | 177 | else if (gHippoGridManager->getConnectedGrid()->isSecondLife()) |
178 | { | 178 | { |
179 | //Its SL, use the browser for it as thats what it should do | 179 | //Its SL, use the browser for it as thats what it should do |
180 | use_web_browser = true; | 180 | use_web_browser = true; |
181 | } | 181 | } |
182 | 182 | ||
183 | if ( web_browser && use_web_browser) | 183 | if ( web_browser && use_web_browser) |
184 | { | 184 | { |
185 | // hide the SL text widget if we're displaying TOS with using a browser widget. | 185 | // hide the SL text widget if we're displaying TOS with using a browser widget. |
186 | LLTextEditor *editor = getChild<LLTextEditor>("tos_text"); | 186 | LLTextEditor *editor = getChild<LLTextEditor>("tos_text"); |
187 | editor->setVisible( FALSE ); | 187 | editor->setVisible( FALSE ); |
188 | 188 | ||
189 | // disable Agree to TOS radio button until the page has fully loaded | 189 | // disable Agree to TOS radio button until the page has fully loaded |
190 | tos_agreement->setEnabled( false ); | 190 | tos_agreement->setEnabled( false ); |
191 | 191 | ||
192 | // Reenable the web browser | 192 | // Reenable the web browser |
193 | web_browser->setVisible( TRUE ); | 193 | web_browser->setVisible( TRUE ); |
194 | 194 | ||
195 | web_browser->addObserver(this); | 195 | web_browser->addObserver(this); |
196 | gResponsePtr = LLIamHereTOS::build( this ); | 196 | gResponsePtr = LLIamHereTOS::build( this ); |
197 | LLHTTPClient::head( getString( "real_url" ), gResponsePtr ); | 197 | LLHTTPClient::head( getString( "real_url" ), gResponsePtr ); |
198 | } | 198 | } |
199 | 199 | ||
200 | return TRUE; | 200 | return TRUE; |
201 | } | 201 | } |
202 | 202 | ||
203 | void LLFloaterTOS::setSiteIsAlive( bool alive ) | 203 | void LLFloaterTOS::setSiteIsAlive( bool alive ) |
204 | { | 204 | { |
205 | // only do this for TOS pages | 205 | // only do this for TOS pages |
206 | if ( mType == TOS_TOS ) | 206 | if ( mType == TOS_TOS ) |
207 | { | 207 | { |
208 | LLMediaCtrl* web_browser = getChild<LLMediaCtrl>("tos_html"); | 208 | LLMediaCtrl* web_browser = getChild<LLMediaCtrl>("tos_html"); |
209 | // if the contents of the site was retrieved | 209 | // if the contents of the site was retrieved |
210 | if ( alive ) | 210 | if ( alive ) |
211 | { | 211 | { |
212 | if ( web_browser ) | 212 | if ( web_browser ) |
213 | { | 213 | { |
214 | // navigate to the "real" page | 214 | // navigate to the "real" page |
215 | web_browser->navigateTo( getString( "real_url" ) ); | 215 | web_browser->navigateTo( getString( "real_url" ) ); |
216 | }; | 216 | }; |
217 | } | 217 | } |
218 | else | 218 | else |
219 | { | 219 | { |
220 | // normally this is set when navigation to TOS page navigation completes (so you can't accept before TOS loads) | 220 | // normally this is set when navigation to TOS page navigation completes (so you can't accept before TOS loads) |
221 | // but if the page is unavailable, we need to do this now | 221 | // but if the page is unavailable, we need to do this now |
222 | LLCheckBoxCtrl* tos_agreement = getChild<LLCheckBoxCtrl>("agree_chk"); | 222 | LLCheckBoxCtrl* tos_agreement = getChild<LLCheckBoxCtrl>("agree_chk"); |
223 | tos_agreement->setEnabled( true ); | 223 | tos_agreement->setEnabled( true ); |
224 | }; | 224 | }; |
225 | }; | 225 | }; |
226 | } | 226 | } |
227 | 227 | ||
228 | LLFloaterTOS::~LLFloaterTOS() | 228 | LLFloaterTOS::~LLFloaterTOS() |
229 | { | 229 | { |
230 | 230 | ||
231 | // tell the responder we're not here anymore | 231 | // tell the responder we're not here anymore |
232 | if ( gResponsePtr ) | 232 | if ( gResponsePtr ) |
233 | gResponsePtr->setParent( 0 ); | 233 | gResponsePtr->setParent( 0 ); |
234 | 234 | ||
235 | LLFloaterTOS::sInstance = NULL; | 235 | LLFloaterTOS::sInstance = NULL; |
236 | } | 236 | } |
237 | 237 | ||
238 | // virtual | 238 | // virtual |
239 | void LLFloaterTOS::draw() | 239 | void LLFloaterTOS::draw() |
240 | { | 240 | { |
241 | // draw children | 241 | // draw children |
242 | LLModalDialog::draw(); | 242 | LLModalDialog::draw(); |
243 | } | 243 | } |
244 | 244 | ||
245 | // static | 245 | // static |
246 | void LLFloaterTOS::updateAgree(LLUICtrl*, void* userdata ) | 246 | void LLFloaterTOS::updateAgree(LLUICtrl*, void* userdata ) |
247 | { | 247 | { |
248 | LLFloaterTOS* self = (LLFloaterTOS*) userdata; | 248 | LLFloaterTOS* self = (LLFloaterTOS*) userdata; |
249 | bool agree = self->childGetValue("agree_chk").asBoolean(); | 249 | bool agree = self->childGetValue("agree_chk").asBoolean(); |
250 | self->childSetEnabled("Continue", agree); | 250 | self->childSetEnabled("Continue", agree); |
251 | } | 251 | } |
252 | 252 | ||
253 | // static | 253 | // static |
254 | void LLFloaterTOS::onContinue( void* userdata ) | 254 | void LLFloaterTOS::onContinue( void* userdata ) |
255 | { | 255 | { |
256 | LLFloaterTOS* self = (LLFloaterTOS*) userdata; | 256 | LLFloaterTOS* self = (LLFloaterTOS*) userdata; |
257 | llinfos << "User agrees with TOS." << llendl; | 257 | llinfos << "User agrees with TOS." << llendl; |
258 | if (self->mType == TOS_TOS) | 258 | if (self->mType == TOS_TOS) |
259 | { | 259 | { |
260 | gAcceptTOS = TRUE; | 260 | gAcceptTOS = TRUE; |
261 | } | 261 | } |
262 | else | 262 | else |
263 | { | 263 | { |
264 | gAcceptCriticalMessage = TRUE; | 264 | gAcceptCriticalMessage = TRUE; |
265 | } | 265 | } |
266 | 266 | ||
267 | // Testing TOS dialog | 267 | // Testing TOS dialog |
268 | #if ! LL_RELEASE_FOR_DOWNLOAD | 268 | #if ! LL_RELEASE_FOR_DOWNLOAD |
269 | if ( LLStartUp::getStartupState() == STATE_LOGIN_WAIT ) | 269 | if ( LLStartUp::getStartupState() == STATE_LOGIN_WAIT ) |
270 | { | 270 | { |
271 | LLStartUp::setStartupState( STATE_LOGIN_SHOW ); | 271 | LLStartUp::setStartupState( STATE_LOGIN_SHOW ); |
272 | } | 272 | } |
273 | else | 273 | else |
274 | #endif | 274 | #endif |
275 | 275 | ||
276 | LLStartUp::setStartupState( STATE_LOGIN_AUTH_INIT ); // Go back and finish authentication | 276 | LLStartUp::setStartupState( STATE_LOGIN_AUTH_INIT ); // Go back and finish authentication |
277 | self->close(); // destroys this object | 277 | self->close(); // destroys this object |
278 | } | 278 | } |
279 | 279 | ||
280 | // static | 280 | // static |
281 | void LLFloaterTOS::onCancel( void* userdata ) | 281 | void LLFloaterTOS::onCancel( void* userdata ) |
282 | { | 282 | { |
283 | LLFloaterTOS* self = (LLFloaterTOS*) userdata; | 283 | LLFloaterTOS* self = (LLFloaterTOS*) userdata; |
284 | llinfos << "User disagrees with TOS." << llendl; | 284 | llinfos << "User disagrees with TOS." << llendl; |
285 | LLNotifications::instance().add("MustAgreeToLogIn", LLSD(), LLSD(), login_alert_done); | 285 | LLNotifications::instance().add("MustAgreeToLogIn", LLSD(), LLSD(), login_alert_done); |
286 | LLStartUp::setStartupState( STATE_LOGIN_SHOW ); | 286 | LLStartUp::setStartupState( STATE_LOGIN_SHOW ); |
287 | self->mLoadCompleteCount = 0; // reset counter for next time we come to TOS | 287 | self->mLoadCompleteCount = 0; // reset counter for next time we come to TOS |
288 | self->close(); // destroys this object | 288 | self->close(); // destroys this object |
289 | } | 289 | } |
290 | 290 | ||
291 | //virtual | 291 | //virtual |
292 | void LLFloaterTOS::handleMediaEvent(LLPluginClassMedia* /*self*/, EMediaEvent event) | 292 | void LLFloaterTOS::handleMediaEvent(LLPluginClassMedia* /*self*/, EMediaEvent event) |
293 | { | 293 | { |
294 | if(event == MEDIA_EVENT_NAVIGATE_COMPLETE) | 294 | if(event == MEDIA_EVENT_NAVIGATE_COMPLETE) |
295 | { | 295 | { |
296 | // skip past the loading screen navigate complete | 296 | // skip past the loading screen navigate complete |
297 | if ( ++mLoadCompleteCount == 2 ) | 297 | if ( ++mLoadCompleteCount == 2 ) |
298 | { | 298 | { |
299 | llinfos << "NAVIGATE COMPLETE" << llendl; | 299 | llinfos << "NAVIGATE COMPLETE" << llendl; |
300 | // enable Agree to TOS radio button now that page has loaded | 300 | // enable Agree to TOS radio button now that page has loaded |
301 | LLCheckBoxCtrl * tos_agreement = getChild<LLCheckBoxCtrl>("agree_chk"); | 301 | LLCheckBoxCtrl * tos_agreement = getChild<LLCheckBoxCtrl>("agree_chk"); |
302 | tos_agreement->setEnabled( true ); | 302 | tos_agreement->setEnabled( true ); |
303 | } | 303 | } |
304 | } | 304 | } |
305 | } | 305 | } |
306 | |||
diff --git a/linden/indra/newview/llglsandbox.cpp b/linden/indra/newview/llglsandbox.cpp index 98c4d06..96fd39b 100644 --- a/linden/indra/newview/llglsandbox.cpp +++ b/linden/indra/newview/llglsandbox.cpp | |||
@@ -710,7 +710,7 @@ void LLViewerParcelMgr::renderOneSegment(F32 x1, F32 y1, F32 x2, F32 y2, F32 hei | |||
710 | { | 710 | { |
711 | // HACK: At edge of last region of world, we need to make sure the region | 711 | // HACK: At edge of last region of world, we need to make sure the region |
712 | // resolves correctly so we can get a height value. | 712 | // resolves correctly so we can get a height value. |
713 | const F32 BORDER = REGION_WIDTH_METERS - 0.1f; | 713 | const F32 BORDER = regionp->getWidth() - 0.1f; |
714 | 714 | ||
715 | F32 clamped_x1 = x1; | 715 | F32 clamped_x1 = x1; |
716 | F32 clamped_y1 = y1; | 716 | F32 clamped_y1 = y1; |
diff --git a/linden/indra/newview/llmaniptranslate.cpp b/linden/indra/newview/llmaniptranslate.cpp index 3e1536f..82298dd 100644 --- a/linden/indra/newview/llmaniptranslate.cpp +++ b/linden/indra/newview/llmaniptranslate.cpp | |||
@@ -531,7 +531,7 @@ BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask) | |||
531 | // You can't move more than some distance from your original mousedown point. | 531 | // You can't move more than some distance from your original mousedown point. |
532 | F32 max_drag_distance = gHippoLimits->getMaxDragDistance(); | 532 | F32 max_drag_distance = gHippoLimits->getMaxDragDistance(); |
533 | 533 | ||
534 | if (max_drag_distance != FLT_MAX && relative_move.magVecSquared() > max_drag_distance * max_drag_distance) | 534 | if (max_drag_distance != FLT_MAX && relative_move.magVecSquared() > max_drag_distance * max_drag_distance) |
535 | { | 535 | { |
536 | lldebugst(LLERR_USER_INPUT) << "hover handled by LLManipTranslate (too far)" << llendl; | 536 | lldebugst(LLERR_USER_INPUT) << "hover handled by LLManipTranslate (too far)" << llendl; |
537 | gViewerWindow->setCursor(UI_CURSOR_NOLOCKED); | 537 | gViewerWindow->setCursor(UI_CURSOR_NOLOCKED); |
diff --git a/linden/indra/newview/llmapresponders.cpp b/linden/indra/newview/llmapresponders.cpp index 9d974f2..31c04a3 100644 --- a/linden/indra/newview/llmapresponders.cpp +++ b/linden/indra/newview/llmapresponders.cpp | |||
@@ -120,6 +120,8 @@ void LLMapLayerResponder::result(const LLSD& result) | |||
120 | 120 | ||
121 | S32 x_regions = map_block["X"]; | 121 | S32 x_regions = map_block["X"]; |
122 | S32 y_regions = map_block["Y"]; | 122 | S32 y_regions = map_block["Y"]; |
123 | S32 size_x_regions = map_block["SizeX"]; | ||
124 | S32 size_y_regions = map_block["SizeY"]; | ||
123 | std::string name = map_block["Name"]; | 125 | std::string name = map_block["Name"]; |
124 | S32 access = map_block["Access"]; | 126 | S32 access = map_block["Access"]; |
125 | S32 region_flags = map_block["RegionFlags"]; | 127 | S32 region_flags = map_block["RegionFlags"]; |
@@ -168,6 +170,8 @@ void LLMapLayerResponder::result(const LLSD& result) | |||
168 | LLWorldMap::getInstance()->mSimInfoMap[handle] = siminfo; | 170 | LLWorldMap::getInstance()->mSimInfoMap[handle] = siminfo; |
169 | 171 | ||
170 | siminfo->mHandle = handle; | 172 | siminfo->mHandle = handle; |
173 | siminfo->msizeX = size_x_regions; | ||
174 | siminfo->msizeY = size_y_regions; | ||
171 | siminfo->mName.assign( name ); | 175 | siminfo->mName.assign( name ); |
172 | siminfo->mAccess = access; /*Flawfinder: ignore*/ | 176 | siminfo->mAccess = access; /*Flawfinder: ignore*/ |
173 | siminfo->mRegionFlags = region_flags; | 177 | siminfo->mRegionFlags = region_flags; |
diff --git a/linden/indra/newview/llmediactrl.cpp b/linden/indra/newview/llmediactrl.cpp index 51b0929..23cad3c 100644 --- a/linden/indra/newview/llmediactrl.cpp +++ b/linden/indra/newview/llmediactrl.cpp | |||
@@ -36,7 +36,7 @@ | |||
36 | #include "llmediactrl.h" | 36 | #include "llmediactrl.h" |
37 | 37 | ||
38 | // viewer includes | 38 | // viewer includes |
39 | #include "llfloaterhtml.h" | 39 | #include "llfloatermediabrowser.h" |
40 | #include "llfloaterworldmap.h" | 40 | #include "llfloaterworldmap.h" |
41 | #include "lluictrlfactory.h" | 41 | #include "lluictrlfactory.h" |
42 | #include "llurldispatcher.h" | 42 | #include "llurldispatcher.h" |
@@ -746,7 +746,7 @@ void LLMediaCtrl::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event) | |||
746 | 746 | ||
747 | case MEDIA_EVENT_CURSOR_CHANGED: | 747 | case MEDIA_EVENT_CURSOR_CHANGED: |
748 | { | 748 | { |
749 | LL_INFOS("Media") << "Media event: MEDIA_EVENT_CURSOR_CHANGED, new cursor is " << self->getCursorName() << LL_ENDL; | 749 | LL_DEBUGS("MediaEventCursor") << "Media event: MEDIA_EVENT_CURSOR_CHANGED, new cursor is " << self->getCursorName() << LL_ENDL; |
750 | 750 | ||
751 | std::string cursor = self->getCursorName(); | 751 | std::string cursor = self->getCursorName(); |
752 | 752 | ||
@@ -865,6 +865,7 @@ void LLMediaCtrl::onClickLinkHref( LLPluginClassMedia* self ) | |||
865 | const std::string protocol2( "https://" ); | 865 | const std::string protocol2( "https://" ); |
866 | if( mOpenLinksInExternalBrowser ) | 866 | if( mOpenLinksInExternalBrowser ) |
867 | { | 867 | { |
868 | LL_DEBUGS("Media") << "OpenLinksInExternalBrowser" << LL_ENDL; | ||
868 | if ( !url.empty() ) | 869 | if ( !url.empty() ) |
869 | { | 870 | { |
870 | if ( LLStringUtil::compareInsensitive( url.substr( 0, protocol1.length() ), protocol1 ) == 0 || | 871 | if ( LLStringUtil::compareInsensitive( url.substr( 0, protocol1.length() ), protocol1 ) == 0 || |
@@ -877,6 +878,7 @@ void LLMediaCtrl::onClickLinkHref( LLPluginClassMedia* self ) | |||
877 | else | 878 | else |
878 | if( mOpenLinksInInternalBrowser ) | 879 | if( mOpenLinksInInternalBrowser ) |
879 | { | 880 | { |
881 | LL_DEBUGS("Media") << "OpenLinksInInternalBrowser" << LL_ENDL; | ||
880 | if ( !url.empty() ) | 882 | if ( !url.empty() ) |
881 | { | 883 | { |
882 | if ( LLStringUtil::compareInsensitive( url.substr( 0, protocol1.length() ), protocol1 ) == 0 || | 884 | if ( LLStringUtil::compareInsensitive( url.substr( 0, protocol1.length() ), protocol1 ) == 0 || |
@@ -891,6 +893,8 @@ void LLMediaCtrl::onClickLinkHref( LLPluginClassMedia* self ) | |||
891 | // "Viewer Browser", | 893 | // "Viewer Browser", |
892 | // open_links_externally, | 894 | // open_links_externally, |
893 | // mTrusted); | 895 | // mTrusted); |
896 | |||
897 | LLFloaterMediaBrowser::getInstance()->openMedia(url); | ||
894 | } | 898 | } |
895 | } | 899 | } |
896 | } | 900 | } |
diff --git a/linden/indra/newview/llmediaremotectrl.cpp b/linden/indra/newview/llmediaremotectrl.cpp index 48715fc..8186293 100644 --- a/linden/indra/newview/llmediaremotectrl.cpp +++ b/linden/indra/newview/llmediaremotectrl.cpp | |||
@@ -153,7 +153,7 @@ void LLMediaRemoteCtrl::enableMediaButtons() | |||
153 | bool stop_media_enabled = false; | 153 | bool stop_media_enabled = false; |
154 | bool play_music_enabled = false; | 154 | bool play_music_enabled = false; |
155 | bool stop_music_enabled = false; | 155 | bool stop_music_enabled = false; |
156 | bool music_show_pause = false; | 156 | //bool music_show_pause = false; |
157 | bool media_show_pause = false; | 157 | bool media_show_pause = false; |
158 | 158 | ||
159 | static LLColor4* sIconDisabledColor = rebind_llcontrol<LLColor4>("IconDisabledColor", &gColors, true); | 159 | static LLColor4* sIconDisabledColor = rebind_llcontrol<LLColor4>("IconDisabledColor", &gColors, true); |
@@ -204,7 +204,7 @@ void LLMediaRemoteCtrl::enableMediaButtons() | |||
204 | } | 204 | } |
205 | } | 205 | } |
206 | 206 | ||
207 | if (gSavedSettings.getBOOL("AudioStreamingMusic") && gAudiop) | 207 | if (gSavedSettings.getBOOL("AudioStreamingMusic")) |
208 | { | 208 | { |
209 | if ( parcel && !parcel->getMusicURL().empty()) | 209 | if ( parcel && !parcel->getMusicURL().empty()) |
210 | { | 210 | { |
@@ -213,12 +213,12 @@ void LLMediaRemoteCtrl::enableMediaButtons() | |||
213 | 213 | ||
214 | if (gOverlayBar->musicPlaying()) | 214 | if (gOverlayBar->musicPlaying()) |
215 | { | 215 | { |
216 | music_show_pause = true; | 216 | play_music_enabled = false; |
217 | stop_music_enabled = true; | 217 | stop_music_enabled = true; |
218 | } | 218 | } |
219 | else | 219 | else |
220 | { | 220 | { |
221 | music_show_pause = false; | 221 | play_music_enabled = true; |
222 | stop_music_enabled = false; | 222 | stop_music_enabled = false; |
223 | } | 223 | } |
224 | } | 224 | } |
@@ -227,7 +227,7 @@ void LLMediaRemoteCtrl::enableMediaButtons() | |||
227 | const std::string media_icon_name = LLMIMETypes::findIcon(media_type); | 227 | const std::string media_icon_name = LLMIMETypes::findIcon(media_type); |
228 | LLButton* music_play_btn = getChild<LLButton>("music_play"); | 228 | LLButton* music_play_btn = getChild<LLButton>("music_play"); |
229 | LLButton* music_stop_btn = getChild<LLButton>("music_stop"); | 229 | LLButton* music_stop_btn = getChild<LLButton>("music_stop"); |
230 | LLButton* music_pause_btn = getChild<LLButton>("music_pause"); | 230 | //LLButton* music_pause_btn = getChild<LLButton>("music_pause"); |
231 | LLButton* media_play_btn = getChild<LLButton>("media_play"); | 231 | LLButton* media_play_btn = getChild<LLButton>("media_play"); |
232 | LLButton* media_stop_btn = getChild<LLButton>("media_stop"); | 232 | LLButton* media_stop_btn = getChild<LLButton>("media_stop"); |
233 | LLButton* media_pause_btn = getChild<LLButton>("media_pause"); | 233 | LLButton* media_pause_btn = getChild<LLButton>("media_pause"); |
@@ -235,9 +235,9 @@ void LLMediaRemoteCtrl::enableMediaButtons() | |||
235 | 235 | ||
236 | music_play_btn->setEnabled(play_music_enabled); | 236 | music_play_btn->setEnabled(play_music_enabled); |
237 | music_stop_btn->setEnabled(stop_music_enabled); | 237 | music_stop_btn->setEnabled(stop_music_enabled); |
238 | music_pause_btn->setEnabled(music_show_pause); | 238 | //music_pause_btn->setEnabled(music_show_pause); |
239 | music_pause_btn->setVisible(music_show_pause); | 239 | //music_pause_btn->setVisible(music_show_pause); |
240 | music_play_btn->setVisible(! music_show_pause); | 240 | //music_play_btn->setVisible(music_show_pause); |
241 | childSetColor("music_icon", music_icon_color); | 241 | childSetColor("music_icon", music_icon_color); |
242 | if(!media_icon_name.empty()) | 242 | if(!media_icon_name.empty()) |
243 | { | 243 | { |
diff --git a/linden/indra/newview/lloverlaybar.cpp b/linden/indra/newview/lloverlaybar.cpp index 4e1d03e..93b73c7 100644 --- a/linden/indra/newview/lloverlaybar.cpp +++ b/linden/indra/newview/lloverlaybar.cpp | |||
@@ -383,6 +383,23 @@ void LLOverlayBar::onClickStandUp(void*) | |||
383 | } | 383 | } |
384 | 384 | ||
385 | //////////////////////////////////////////////////////////////////////////////// | 385 | //////////////////////////////////////////////////////////////////////////////// |
386 | void LLOverlayBar::audioFilterPlay() | ||
387 | { | ||
388 | if (gOverlayBar && gOverlayBar->mMusicState != PLAYING) | ||
389 | { | ||
390 | gOverlayBar->mMusicState = PLAYING; | ||
391 | } | ||
392 | } | ||
393 | |||
394 | void LLOverlayBar::audioFilterStop() | ||
395 | { | ||
396 | if (gOverlayBar && gOverlayBar->mMusicState != STOPPED) | ||
397 | { | ||
398 | gOverlayBar->mMusicState = STOPPED; | ||
399 | } | ||
400 | } | ||
401 | |||
402 | //////////////////////////////////////////////////////////////////////////////// | ||
386 | // static media helpers | 403 | // static media helpers |
387 | // *TODO: Move this into an audio manager abstraction | 404 | // *TODO: Move this into an audio manager abstraction |
388 | //static | 405 | //static |
@@ -416,6 +433,7 @@ void LLOverlayBar::toggleMediaPlay(void*) | |||
416 | LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); | 433 | LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); |
417 | if (parcel) | 434 | if (parcel) |
418 | { | 435 | { |
436 | LLViewerParcelMedia::sIsUserAction = true; | ||
419 | LLViewerParcelMedia::play(parcel); | 437 | LLViewerParcelMedia::play(parcel); |
420 | } | 438 | } |
421 | } | 439 | } |
@@ -447,7 +465,8 @@ void LLOverlayBar::toggleMusicPlay(void*) | |||
447 | // stream is stopped, it doesn't return the right thing - commenting out for now. | 465 | // stream is stopped, it doesn't return the right thing - commenting out for now. |
448 | // if ( gAudioStream->isInternetStreamPlaying() == 0 ) | 466 | // if ( gAudioStream->isInternetStreamPlaying() == 0 ) |
449 | { | 467 | { |
450 | gAudioStream->startInternetStream(parcel->getMusicURL()); | 468 | LLViewerParcelMedia::sIsUserAction = true; |
469 | LLViewerParcelMedia::playStreamingMusic(parcel); | ||
451 | } | 470 | } |
452 | } | 471 | } |
453 | } | 472 | } |
diff --git a/linden/indra/newview/lloverlaybar.h b/linden/indra/newview/lloverlaybar.h index 233f5c5..f776639 100644 --- a/linden/indra/newview/lloverlaybar.h +++ b/linden/indra/newview/lloverlaybar.h | |||
@@ -77,6 +77,10 @@ public: | |||
77 | static void onClickStandUp(void* data); | 77 | static void onClickStandUp(void* data); |
78 | static void onClickResetView(void* data); | 78 | static void onClickResetView(void* data); |
79 | 79 | ||
80 | // media filter | ||
81 | static void audioFilterPlay(); | ||
82 | static void audioFilterStop(); | ||
83 | |||
80 | //static media helper functions | 84 | //static media helper functions |
81 | static void toggleMediaPlay(void*); | 85 | static void toggleMediaPlay(void*); |
82 | static void toggleMusicPlay(void*); | 86 | static void toggleMusicPlay(void*); |
diff --git a/linden/indra/newview/llpanellogin.cpp b/linden/indra/newview/llpanellogin.cpp index 00d9332..d00ccd9 100644 --- a/linden/indra/newview/llpanellogin.cpp +++ b/linden/indra/newview/llpanellogin.cpp | |||
@@ -347,16 +347,6 @@ void LLPanelLogin::setSiteIsAlive( bool alive ) | |||
347 | else | 347 | else |
348 | // the site is not available (missing page, server down, other badness) | 348 | // the site is not available (missing page, server down, other badness) |
349 | { | 349 | { |
350 | #if !USE_VIEWER_AUTH | ||
351 | if ( web_browser ) | ||
352 | { | ||
353 | // hide browser control (revealing default one) | ||
354 | web_browser->setVisible( FALSE ); | ||
355 | |||
356 | // mark as unavailable | ||
357 | mHtmlAvailable = FALSE; | ||
358 | } | ||
359 | #else | ||
360 | 350 | ||
361 | if ( web_browser ) | 351 | if ( web_browser ) |
362 | { | 352 | { |
@@ -365,7 +355,7 @@ void LLPanelLogin::setSiteIsAlive( bool alive ) | |||
365 | // mark as available | 355 | // mark as available |
366 | mHtmlAvailable = TRUE; | 356 | mHtmlAvailable = TRUE; |
367 | } | 357 | } |
368 | #endif | 358 | |
369 | } | 359 | } |
370 | } | 360 | } |
371 | 361 | ||
@@ -1164,3 +1154,4 @@ void LLPanelLogin::onServerComboLostFocus(LLFocusableElement* fe, void*) | |||
1164 | } | 1154 | } |
1165 | } | 1155 | } |
1166 | */ | 1156 | */ |
1157 | |||
diff --git a/linden/indra/newview/llprefsim.cpp b/linden/indra/newview/llprefsim.cpp index 9e86cd3..5ac2bb2 100644 --- a/linden/indra/newview/llprefsim.cpp +++ b/linden/indra/newview/llprefsim.cpp | |||
@@ -66,6 +66,7 @@ public: | |||
66 | void apply(); | 66 | void apply(); |
67 | void cancel(); | 67 | void cancel(); |
68 | void setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email); | 68 | void setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email); |
69 | void preparePerAccountPrefs(bool enable); | ||
69 | void enableHistory(); | 70 | void enableHistory(); |
70 | 71 | ||
71 | static void onClickLogPath(void* user_data); | 72 | static void onClickLogPath(void* user_data); |
@@ -76,6 +77,7 @@ public: | |||
76 | protected: | 77 | protected: |
77 | 78 | ||
78 | bool mGotPersonalInfo; | 79 | bool mGotPersonalInfo; |
80 | bool mGotPerAccountSettings; | ||
79 | bool mOriginalIMViaEmail; | 81 | bool mOriginalIMViaEmail; |
80 | 82 | ||
81 | bool mOriginalHideOnlineStatus; | 83 | bool mOriginalHideOnlineStatus; |
@@ -86,7 +88,9 @@ protected: | |||
86 | LLPrefsIMImpl::LLPrefsIMImpl() | 88 | LLPrefsIMImpl::LLPrefsIMImpl() |
87 | : LLPanel(std::string("IM Prefs Panel")), | 89 | : LLPanel(std::string("IM Prefs Panel")), |
88 | mGotPersonalInfo(false), | 90 | mGotPersonalInfo(false), |
89 | mOriginalIMViaEmail(false) | 91 | mGotPerAccountSettings(false), |
92 | mOriginalIMViaEmail(false), | ||
93 | mOriginalHideOnlineStatus(false) | ||
90 | { | 94 | { |
91 | LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_im.xml"); | 95 | LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_im.xml"); |
92 | } | 96 | } |
@@ -106,55 +110,38 @@ BOOL LLPrefsIMImpl::postBuild() | |||
106 | 110 | ||
107 | childSetLabelArg("send_im_to_email", "[EMAIL]", getString("log_in_to_change")); | 111 | childSetLabelArg("send_im_to_email", "[EMAIL]", getString("log_in_to_change")); |
108 | 112 | ||
109 | // Don't enable this until we get personal data | 113 | // Don't enable these until we get personal data |
110 | // Unless we're already logged in. Some non-SL grids won't send us the data we need -- MC | 114 | childSetEnabled("online_visibility", false); |
111 | childSetEnabled("include_im_in_chat_console", LLStartUp::isLoggedIn()); | 115 | childSetEnabled("send_im_to_email", false); |
112 | childSetEnabled("include_im_in_chat_history", LLStartUp::isLoggedIn()); | ||
113 | childSetEnabled("show_timestamps_check", LLStartUp::isLoggedIn()); | ||
114 | childSetEnabled("friends_online_notify_checkbox", LLStartUp::isLoggedIn()); | ||
115 | |||
116 | childSetEnabled("online_visibility", LLStartUp::isLoggedIn()); | ||
117 | childSetEnabled("send_im_to_email", LLStartUp::isLoggedIn()); | ||
118 | childSetEnabled("log_instant_messages", LLStartUp::isLoggedIn()); | ||
119 | childSetEnabled("log_chat", LLStartUp::isLoggedIn()); | ||
120 | childSetEnabled("log_show_history", LLStartUp::isLoggedIn()); | ||
121 | childSetEnabled("log_path_button", LLStartUp::isLoggedIn()); | ||
122 | childSetEnabled("busy_response", LLStartUp::isLoggedIn()); | ||
123 | childSetEnabled("log_instant_messages_timestamp", LLStartUp::isLoggedIn()); | ||
124 | childSetEnabled("log_chat_timestamp", LLStartUp::isLoggedIn()); | ||
125 | childSetEnabled("log_chat_IM", LLStartUp::isLoggedIn()); | ||
126 | childSetEnabled("log_date_timestamp", LLStartUp::isLoggedIn()); | ||
127 | |||
128 | childSetText("busy_response", getString("log_in_to_change")); | ||
129 | 116 | ||
117 | // These are safe to enable | ||
118 | childSetEnabled("include_im_in_chat_console", true); | ||
119 | childSetEnabled("include_im_in_chat_history", true); | ||
120 | childSetEnabled("show_timestamps_check", true); | ||
121 | childSetEnabled("friends_online_notify_checkbox", true); | ||
122 | childSetEnabled("vertical-imtabs-toggle", true); | ||
130 | childSetValue("include_im_in_chat_console", gSavedSettings.getBOOL("IMInChatConsole")); | 123 | childSetValue("include_im_in_chat_console", gSavedSettings.getBOOL("IMInChatConsole")); |
131 | childSetValue("include_im_in_chat_history", gSavedSettings.getBOOL("IMInChatHistory")); | 124 | childSetValue("include_im_in_chat_history", gSavedSettings.getBOOL("IMInChatHistory")); |
132 | childSetValue("show_timestamps_check", gSavedSettings.getBOOL("IMShowTimestamps")); | 125 | childSetValue("show_timestamps_check", gSavedSettings.getBOOL("IMShowTimestamps")); |
133 | childSetValue("friends_online_notify_checkbox", gSavedSettings.getBOOL("ChatOnlineNotification")); | 126 | childSetValue("friends_online_notify_checkbox", gSavedSettings.getBOOL("ChatOnlineNotification")); |
134 | childSetValue("vertical-imtabs-toggle", gSavedSettings.getBOOL("VerticalIMTabs")); | 127 | childSetValue("vertical-imtabs-toggle", gSavedSettings.getBOOL("VerticalIMTabs")); |
135 | 128 | ||
136 | childSetText("log_path_string", gSavedPerAccountSettings.getString("InstantMessageLogPath")); | ||
137 | childSetValue("log_instant_messages", gSavedPerAccountSettings.getBOOL("LogInstantMessages")); | ||
138 | childSetValue("log_chat", gSavedPerAccountSettings.getBOOL("LogChat")); | ||
139 | childSetValue("log_show_history", gSavedPerAccountSettings.getBOOL("LogShowHistory")); | ||
140 | childSetValue("log_instant_messages_timestamp", gSavedPerAccountSettings.getBOOL("IMLogTimestamp")); | ||
141 | childSetValue("log_chat_timestamp", gSavedPerAccountSettings.getBOOL("LogChatTimestamp")); | ||
142 | childSetValue("log_chat_IM", gSavedPerAccountSettings.getBOOL("LogChatIM")); | ||
143 | childSetValue("log_date_timestamp", gSavedPerAccountSettings.getBOOL("LogTimestampDate")); | ||
144 | |||
145 | childSetAction("log_path_button", onClickLogPath, this); | 129 | childSetAction("log_path_button", onClickLogPath, this); |
146 | childSetCommitCallback("log_chat",onCommitLogging,this); | 130 | childSetCommitCallback("log_chat",onCommitLogging,this); |
147 | childSetCommitCallback("log_instant_messages",onCommitLogging,this); | 131 | childSetCommitCallback("log_instant_messages",onCommitLogging,this); |
148 | 132 | ||
149 | childSetAction("busy_adv_btn", onClickBusyAdvanced, this); | 133 | childSetAction("busy_adv_btn", onClickBusyAdvanced, this); |
150 | 134 | ||
135 | preparePerAccountPrefs(LLStartUp::isLoggedIn()); | ||
136 | |||
151 | return TRUE; | 137 | return TRUE; |
152 | } | 138 | } |
153 | 139 | ||
154 | void LLPrefsIMImpl::enableHistory() | 140 | void LLPrefsIMImpl::enableHistory() |
155 | { | 141 | { |
156 | 142 | ||
157 | if (childGetValue("log_instant_messages").asBoolean() || childGetValue("log_chat").asBoolean()) | 143 | if (mGotPerAccountSettings && |
144 | (childGetValue("log_instant_messages").asBoolean() || childGetValue("log_chat").asBoolean())) | ||
158 | { | 145 | { |
159 | childEnable("log_show_history"); | 146 | childEnable("log_show_history"); |
160 | childEnable("log_path_button"); | 147 | childEnable("log_path_button"); |
@@ -168,23 +155,16 @@ void LLPrefsIMImpl::enableHistory() | |||
168 | 155 | ||
169 | void LLPrefsIMImpl::apply() | 156 | void LLPrefsIMImpl::apply() |
170 | { | 157 | { |
171 | LLTextEditor* busy = getChild<LLTextEditor>("busy_response"); | 158 | if (mGotPerAccountSettings) |
172 | LLWString busy_response; | ||
173 | if (busy) busy_response = busy->getWText(); | ||
174 | LLWStringUtil::replaceTabsWithSpaces(busy_response, 4); | ||
175 | LLWStringUtil::replaceChar(busy_response, '\n', '^'); | ||
176 | LLWStringUtil::replaceChar(busy_response, ' ', '%'); | ||
177 | |||
178 | if(mGotPersonalInfo) | ||
179 | { | 159 | { |
180 | 160 | LLTextEditor* busy = getChild<LLTextEditor>("busy_response"); | |
161 | LLWString busy_response; | ||
162 | if (busy) busy_response = busy->getWText(); | ||
163 | LLWStringUtil::replaceTabsWithSpaces(busy_response, 4); | ||
164 | LLWStringUtil::replaceChar(busy_response, '\n', '^'); | ||
165 | LLWStringUtil::replaceChar(busy_response, ' ', '%'); | ||
181 | gSavedPerAccountSettings.setString("BusyModeResponse", std::string(wstring_to_utf8str(busy_response))); | 166 | gSavedPerAccountSettings.setString("BusyModeResponse", std::string(wstring_to_utf8str(busy_response))); |
182 | 167 | ||
183 | gSavedSettings.setBOOL("IMInChatConsole", childGetValue("include_im_in_chat_console").asBoolean()); | ||
184 | gSavedSettings.setBOOL("IMInChatHistory", childGetValue("include_im_in_chat_history").asBoolean()); | ||
185 | gSavedSettings.setBOOL("IMShowTimestamps", childGetValue("show_timestamps_check").asBoolean()); | ||
186 | gSavedSettings.setBOOL("ChatOnlineNotification", childGetValue("friends_online_notify_checkbox").asBoolean()); | ||
187 | |||
188 | gSavedPerAccountSettings.setString("InstantMessageLogPath", childGetText("log_path_string")); | 168 | gSavedPerAccountSettings.setString("InstantMessageLogPath", childGetText("log_path_string")); |
189 | gSavedPerAccountSettings.setBOOL("LogInstantMessages",childGetValue("log_instant_messages").asBoolean()); | 169 | gSavedPerAccountSettings.setBOOL("LogInstantMessages",childGetValue("log_instant_messages").asBoolean()); |
190 | gSavedPerAccountSettings.setBOOL("LogChat",childGetValue("log_chat").asBoolean()); | 170 | gSavedPerAccountSettings.setBOOL("LogChat",childGetValue("log_chat").asBoolean()); |
@@ -207,7 +187,10 @@ void LLPrefsIMImpl::apply() | |||
207 | gSavedSettings.getString("FirstName"), gSavedSettings.getString("LastName") ); | 187 | gSavedSettings.getString("FirstName"), gSavedSettings.getString("LastName") ); |
208 | } | 188 | } |
209 | LLFile::mkdir(gDirUtilp->getPerAccountChatLogsDir()); | 189 | LLFile::mkdir(gDirUtilp->getPerAccountChatLogsDir()); |
210 | 190 | } | |
191 | |||
192 | if (mGotPersonalInfo) | ||
193 | { | ||
211 | bool new_im_via_email = childGetValue("send_im_to_email").asBoolean(); | 194 | bool new_im_via_email = childGetValue("send_im_to_email").asBoolean(); |
212 | bool new_hide_online = childGetValue("online_visibility").asBoolean(); | 195 | bool new_hide_online = childGetValue("online_visibility").asBoolean(); |
213 | 196 | ||
@@ -237,9 +220,15 @@ void LLPrefsIMImpl::apply() | |||
237 | gAgent.sendReliableMessage(); | 220 | gAgent.sendReliableMessage(); |
238 | } | 221 | } |
239 | } | 222 | } |
223 | |||
240 | gSavedSettings.setBOOL("VerticalIMTabs", childGetValue("vertical-imtabs-toggle").asBoolean()); | 224 | gSavedSettings.setBOOL("VerticalIMTabs", childGetValue("vertical-imtabs-toggle").asBoolean()); |
225 | gSavedSettings.setBOOL("IMInChatConsole", childGetValue("include_im_in_chat_console").asBoolean()); | ||
226 | gSavedSettings.setBOOL("IMInChatHistory", childGetValue("include_im_in_chat_history").asBoolean()); | ||
227 | gSavedSettings.setBOOL("IMShowTimestamps", childGetValue("show_timestamps_check").asBoolean()); | ||
228 | gSavedSettings.setBOOL("ChatOnlineNotification", childGetValue("friends_online_notify_checkbox").asBoolean()); | ||
241 | } | 229 | } |
242 | 230 | ||
231 | // Enable and set the value of settings recieved from the sim in AgentInfoReply | ||
243 | void LLPrefsIMImpl::setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email) | 232 | void LLPrefsIMImpl::setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email) |
244 | { | 233 | { |
245 | mGotPersonalInfo = true; | 234 | mGotPersonalInfo = true; |
@@ -261,36 +250,10 @@ void LLPrefsIMImpl::setPersonalInfo(const std::string& visibility, bool im_via_e | |||
261 | mOriginalHideOnlineStatus = true; | 250 | mOriginalHideOnlineStatus = true; |
262 | } | 251 | } |
263 | 252 | ||
264 | childEnable("include_im_in_chat_console"); | ||
265 | childEnable("include_im_in_chat_history"); | ||
266 | childEnable("show_timestamps_check"); | ||
267 | childEnable("friends_online_notify_checkbox"); | ||
268 | |||
269 | childSetValue("online_visibility", mOriginalHideOnlineStatus); | 253 | childSetValue("online_visibility", mOriginalHideOnlineStatus); |
270 | childSetLabelArg("online_visibility", "[DIR_VIS]", mDirectoryVisibility); | 254 | childSetLabelArg("online_visibility", "[DIR_VIS]", mDirectoryVisibility); |
271 | childEnable("send_im_to_email"); | 255 | childEnable("send_im_to_email"); |
272 | childSetValue("send_im_to_email", im_via_email); | 256 | childSetValue("send_im_to_email", im_via_email); |
273 | childEnable("log_instant_messages"); | ||
274 | childEnable("log_chat"); | ||
275 | childEnable("busy_response"); | ||
276 | childEnable("log_instant_messages_timestamp"); | ||
277 | childEnable("log_chat_timestamp"); | ||
278 | childEnable("log_chat_IM"); | ||
279 | childEnable("log_date_timestamp"); | ||
280 | |||
281 | //RN: get wide string so replace char can work (requires fixed-width encoding) | ||
282 | LLWString busy_response = utf8str_to_wstring( gSavedPerAccountSettings.getString("BusyModeResponse") ); | ||
283 | LLWStringUtil::replaceChar(busy_response, '^', '\n'); | ||
284 | LLWStringUtil::replaceChar(busy_response, '%', ' '); | ||
285 | childSetText("busy_response", wstring_to_utf8str(busy_response)); | ||
286 | // [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | ||
287 | if (gRlvHandler.hasBehaviour(RLV_BHVR_SENDIM)) | ||
288 | { | ||
289 | childDisable("busy_response"); | ||
290 | } | ||
291 | // [/RLVa:KB] | ||
292 | |||
293 | enableHistory(); | ||
294 | 257 | ||
295 | // Truncate the e-mail address if it's too long (to prevent going off | 258 | // Truncate the e-mail address if it's too long (to prevent going off |
296 | // the edge of the dialog). | 259 | // the edge of the dialog). |
@@ -300,10 +263,62 @@ void LLPrefsIMImpl::setPersonalInfo(const std::string& visibility, bool im_via_e | |||
300 | display_email.resize(30); | 263 | display_email.resize(30); |
301 | display_email += "..."; | 264 | display_email += "..."; |
302 | } | 265 | } |
303 | 266 | else if (display_email.empty()) | |
267 | { | ||
268 | display_email = getString("default_email_used"); | ||
269 | } | ||
304 | childSetLabelArg("send_im_to_email", "[EMAIL]", display_email); | 270 | childSetLabelArg("send_im_to_email", "[EMAIL]", display_email); |
305 | } | 271 | } |
306 | 272 | ||
273 | // Enable and set the value of settings that need an account name | ||
274 | void LLPrefsIMImpl::preparePerAccountPrefs(bool enable) | ||
275 | { | ||
276 | if (mGotPerAccountSettings && enable) | ||
277 | { | ||
278 | return; // prevent overwriting unsaved changes. | ||
279 | } | ||
280 | mGotPerAccountSettings = enable; | ||
281 | |||
282 | childSetEnabled("log_chat", enable); | ||
283 | childSetEnabled("log_chat_timestamp", enable); | ||
284 | childSetEnabled("log_chat_IM", enable); | ||
285 | childSetEnabled("log_instant_messages_timestamp", enable); | ||
286 | childSetEnabled("log_instant_messages", enable); | ||
287 | childSetEnabled("log_date_timestamp", enable); | ||
288 | |||
289 | childSetValue("log_chat", gSavedPerAccountSettings.getBOOL("LogChat")); | ||
290 | childSetValue("log_chat_timestamp", gSavedPerAccountSettings.getBOOL("LogChatTimestamp")); | ||
291 | childSetValue("log_chat_IM", gSavedPerAccountSettings.getBOOL("LogChatIM")); | ||
292 | childSetValue("log_instant_messages_timestamp", gSavedPerAccountSettings.getBOOL("IMLogTimestamp")); | ||
293 | childSetValue("log_instant_messages", gSavedPerAccountSettings.getBOOL("LogInstantMessages")); | ||
294 | childSetValue("log_date_timestamp", gSavedPerAccountSettings.getBOOL("LogTimestampDate")); | ||
295 | |||
296 | childSetValue("log_show_history", gSavedPerAccountSettings.getBOOL("LogShowHistory")); | ||
297 | enableHistory(); | ||
298 | childSetText("log_path_string", gSavedPerAccountSettings.getString("InstantMessageLogPath")); | ||
299 | |||
300 | childSetEnabled("busy_response", enable); | ||
301 | if (enable) | ||
302 | { | ||
303 | //RN: get wide string so replace char can work (requires fixed-width encoding) | ||
304 | LLWString busy_response = utf8str_to_wstring( gSavedPerAccountSettings.getString("BusyModeResponse") ); | ||
305 | LLWStringUtil::replaceChar(busy_response, '^', '\n'); | ||
306 | LLWStringUtil::replaceChar(busy_response, '%', ' '); | ||
307 | childSetText("busy_response", wstring_to_utf8str(busy_response)); | ||
308 | } | ||
309 | else | ||
310 | { | ||
311 | childSetText("busy_response", getString("log_in_to_change")); | ||
312 | } | ||
313 | // [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | ||
314 | if (gRlvHandler.hasBehaviour(RLV_BHVR_SENDIM)) | ||
315 | { | ||
316 | childDisable("busy_response"); | ||
317 | } | ||
318 | // [/RLVa:KB] | ||
319 | |||
320 | childSetEnabled("busy_adv_btn", enable); | ||
321 | } | ||
307 | 322 | ||
308 | // static | 323 | // static |
309 | void LLPrefsIMImpl::onClickBusyAdvanced(void* user_data) | 324 | void LLPrefsIMImpl::onClickBusyAdvanced(void* user_data) |
@@ -363,6 +378,11 @@ void LLPrefsIM::setPersonalInfo(const std::string& visibility, bool im_via_email | |||
363 | impl.setPersonalInfo(visibility, im_via_email, email); | 378 | impl.setPersonalInfo(visibility, im_via_email, email); |
364 | } | 379 | } |
365 | 380 | ||
381 | void LLPrefsIM::preparePerAccountPrefs(bool enable) | ||
382 | { | ||
383 | impl.preparePerAccountPrefs(enable); | ||
384 | } | ||
385 | |||
366 | LLPanel* LLPrefsIM::getPanel() | 386 | LLPanel* LLPrefsIM::getPanel() |
367 | { | 387 | { |
368 | return &impl; | 388 | return &impl; |
diff --git a/linden/indra/newview/llprefsim.h b/linden/indra/newview/llprefsim.h index 90bf465..acf9b0f 100644 --- a/linden/indra/newview/llprefsim.h +++ b/linden/indra/newview/llprefsim.h | |||
@@ -46,6 +46,7 @@ public: | |||
46 | void apply(); | 46 | void apply(); |
47 | void cancel(); | 47 | void cancel(); |
48 | void setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email); | 48 | void setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email); |
49 | void preparePerAccountPrefs(bool enable); | ||
49 | 50 | ||
50 | LLPanel* getPanel(); | 51 | LLPanel* getPanel(); |
51 | 52 | ||
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp index 32aba13..d9ab5e7 100644 --- a/linden/indra/newview/llstartup.cpp +++ b/linden/indra/newview/llstartup.cpp | |||
@@ -102,6 +102,7 @@ | |||
102 | #include "llfloatergesture.h" | 102 | #include "llfloatergesture.h" |
103 | #include "llfloaterhud.h" | 103 | #include "llfloaterhud.h" |
104 | #include "llfloaterland.h" | 104 | #include "llfloaterland.h" |
105 | #include "llfloaterpreference.h" | ||
105 | #include "llfloaterteleporthistory.h" | 106 | #include "llfloaterteleporthistory.h" |
106 | #include "llfloatertopobjects.h" | 107 | #include "llfloatertopobjects.h" |
107 | #include "llfloatertos.h" | 108 | #include "llfloatertos.h" |
@@ -367,6 +368,8 @@ bool idle_startup() | |||
367 | static U64 first_sim_handle = 0; | 368 | static U64 first_sim_handle = 0; |
368 | static LLHost first_sim; | 369 | static LLHost first_sim; |
369 | static std::string first_sim_seed_cap; | 370 | static std::string first_sim_seed_cap; |
371 | static U32 first_sim_size_x = 256; | ||
372 | static U32 first_sim_size_y = 256; | ||
370 | 373 | ||
371 | static LLVector3 initial_sun_direction(1.f, 0.f, 0.f); | 374 | static LLVector3 initial_sun_direction(1.f, 0.f, 0.f); |
372 | static LLVector3 agent_start_position_region(10.f, 10.f, 10.f); // default for when no space server | 375 | static LLVector3 agent_start_position_region(10.f, 10.f, 10.f); // default for when no space server |
@@ -1619,6 +1622,16 @@ bool idle_startup() | |||
1619 | first_sim_handle = to_region_handle(region_x, region_y); | 1622 | first_sim_handle = to_region_handle(region_x, region_y); |
1620 | } | 1623 | } |
1621 | 1624 | ||
1625 | text = LLUserAuth::getInstance()->getResponse("region_size_x"); | ||
1626 | if(!text.empty()) { | ||
1627 | first_sim_size_x = strtoul(text.c_str(), NULL, 10); | ||
1628 | LLViewerParcelMgr::getInstance()->init(first_sim_size_x); | ||
1629 | } | ||
1630 | |||
1631 | //region Y size is currently unused, major refactoring required. - Patrick Sapinski (2/10/2011) | ||
1632 | text = LLUserAuth::getInstance()->getResponse("region_size_y"); | ||
1633 | if(!text.empty()) first_sim_size_y = strtoul(text.c_str(), NULL, 10); | ||
1634 | |||
1622 | const std::string look_at_str = LLUserAuth::getInstance()->getResponse("look_at"); | 1635 | const std::string look_at_str = LLUserAuth::getInstance()->getResponse("look_at"); |
1623 | if (!look_at_str.empty()) | 1636 | if (!look_at_str.empty()) |
1624 | { | 1637 | { |
@@ -1914,7 +1927,7 @@ bool idle_startup() | |||
1914 | 1927 | ||
1915 | gAgent.initOriginGlobal(from_region_handle(first_sim_handle)); | 1928 | gAgent.initOriginGlobal(from_region_handle(first_sim_handle)); |
1916 | 1929 | ||
1917 | LLWorld::getInstance()->addRegion(first_sim_handle, first_sim); | 1930 | LLWorld::getInstance()->addRegion(first_sim_handle, first_sim, first_sim_size_x, first_sim_size_y); |
1918 | 1931 | ||
1919 | LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromHandle(first_sim_handle); | 1932 | LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromHandle(first_sim_handle); |
1920 | LL_INFOS("AppInit") << "Adding initial simulator " << regionp->getOriginGlobal() << LL_ENDL; | 1933 | LL_INFOS("AppInit") << "Adding initial simulator " << regionp->getOriginGlobal() << LL_ENDL; |
@@ -2821,6 +2834,8 @@ bool idle_startup() | |||
2821 | gFloaterTeleportHistory->addEntry(regionp->getName(),(S16)agent_pos.mV[0],(S16)agent_pos.mV[1],(S16)agent_pos.mV[2],false); | 2834 | gFloaterTeleportHistory->addEntry(regionp->getName(),(S16)agent_pos.mV[0],(S16)agent_pos.mV[1],(S16)agent_pos.mV[2],false); |
2822 | } | 2835 | } |
2823 | 2836 | ||
2837 | LLViewerParcelMedia::loadDomainFilterList(); | ||
2838 | |||
2824 | // Let the map know about the inventory. | 2839 | // Let the map know about the inventory. |
2825 | if(gFloaterWorldMap) | 2840 | if(gFloaterWorldMap) |
2826 | { | 2841 | { |
@@ -2918,6 +2933,8 @@ bool idle_startup() | |||
2918 | gDebugView->mFastTimerView->setVisible(TRUE); | 2933 | gDebugView->mFastTimerView->setVisible(TRUE); |
2919 | #endif | 2934 | #endif |
2920 | 2935 | ||
2936 | LLFloaterPreference::updateIsLoggedIn(true); | ||
2937 | |||
2921 | return TRUE; | 2938 | return TRUE; |
2922 | } | 2939 | } |
2923 | 2940 | ||
diff --git a/linden/indra/newview/llsurface.cpp b/linden/indra/newview/llsurface.cpp index aaafe0d..5a99e66 100644 --- a/linden/indra/newview/llsurface.cpp +++ b/linden/indra/newview/llsurface.cpp | |||
@@ -303,7 +303,7 @@ void LLSurface::initTextures() | |||
303 | mWaterObjp = (LLVOWater *)gObjectList.createObjectViewer(LLViewerObject::LL_VO_WATER, mRegionp); | 303 | mWaterObjp = (LLVOWater *)gObjectList.createObjectViewer(LLViewerObject::LL_VO_WATER, mRegionp); |
304 | gPipeline.createObject(mWaterObjp); | 304 | gPipeline.createObject(mWaterObjp); |
305 | LLVector3d water_pos_global = from_region_handle(mRegionp->getHandle()); | 305 | LLVector3d water_pos_global = from_region_handle(mRegionp->getHandle()); |
306 | water_pos_global += LLVector3d(128.0, 128.0, DEFAULT_WATER_HEIGHT); | 306 | water_pos_global += LLVector3d(mRegionp->getWidth()/2, mRegionp->getWidth()/2, DEFAULT_WATER_HEIGHT); |
307 | mWaterObjp->setPositionGlobal(water_pos_global); | 307 | mWaterObjp->setPositionGlobal(water_pos_global); |
308 | } | 308 | } |
309 | } | 309 | } |
@@ -356,8 +356,8 @@ void LLSurface::setOriginGlobal(const LLVector3d &origin_global) | |||
356 | // Hack! | 356 | // Hack! |
357 | if (mWaterObjp.notNull() && mWaterObjp->mDrawable.notNull()) | 357 | if (mWaterObjp.notNull() && mWaterObjp->mDrawable.notNull()) |
358 | { | 358 | { |
359 | const F64 x = origin_global.mdV[VX] + 128.0; | 359 | const F64 x = origin_global.mdV[VX] + (F64)mRegionp->getWidth()/2; |
360 | const F64 y = origin_global.mdV[VY] + 128.0; | 360 | const F64 y = origin_global.mdV[VY] + (F64)mRegionp->getWidth()/2; |
361 | const F64 z = mWaterObjp->getPositionGlobal().mdV[VZ]; | 361 | const F64 z = mWaterObjp->getPositionGlobal().mdV[VZ]; |
362 | 362 | ||
363 | LLVector3d water_origin_global(x, y, z); | 363 | LLVector3d water_origin_global(x, y, z); |
@@ -707,14 +707,22 @@ void LLSurface::decompressDCTPatch(LLBitPack &bitpack, LLGroupHeader *gopp, BOOL | |||
707 | 707 | ||
708 | while (1) | 708 | while (1) |
709 | { | 709 | { |
710 | decode_patch_header(bitpack, &ph); | 710 | decode_patch_header(bitpack, &ph, b_large_patch); |
711 | if (ph.quant_wbits == END_OF_PATCHES) | 711 | if (ph.quant_wbits == END_OF_PATCHES) |
712 | { | 712 | { |
713 | break; | 713 | break; |
714 | } | 714 | } |
715 | 715 | ||
716 | i = ph.patchids >> 5; | 716 | if (b_large_patch) |
717 | j = ph.patchids & 0x1F; | 717 | { |
718 | i = ph.patchids >> 16; //x | ||
719 | j = ph.patchids & 0xFFFF; //y | ||
720 | } | ||
721 | else | ||
722 | { | ||
723 | i = ph.patchids >> 5; //x | ||
724 | j = ph.patchids & 0x1F; //y | ||
725 | } | ||
718 | 726 | ||
719 | if ((i >= mPatchesPerEdge) || (j >= mPatchesPerEdge)) | 727 | if ((i >= mPatchesPerEdge) || (j >= mPatchesPerEdge)) |
720 | { | 728 | { |
diff --git a/linden/indra/newview/lltexturecache.cpp b/linden/indra/newview/lltexturecache.cpp index 2e7d585..5dc1018 100644 --- a/linden/indra/newview/lltexturecache.cpp +++ b/linden/indra/newview/lltexturecache.cpp | |||
@@ -250,9 +250,9 @@ bool LLTextureCacheLocalFileWorker::doRead() | |||
250 | } | 250 | } |
251 | } | 251 | } |
252 | #else | 252 | #else |
253 | if (!mDataSize || mDataSize > local_size) | 253 | if (!mDataSize || mDataSize + mOffset > local_size) |
254 | { | 254 | { |
255 | mDataSize = local_size; | 255 | mDataSize = local_size - mOffset; |
256 | } | 256 | } |
257 | mReadData = new U8[mDataSize]; | 257 | mReadData = new U8[mDataSize]; |
258 | 258 | ||
diff --git a/linden/indra/newview/lltexturefetch.cpp b/linden/indra/newview/lltexturefetch.cpp index 072af25..ab867a6 100644 --- a/linden/indra/newview/lltexturefetch.cpp +++ b/linden/indra/newview/lltexturefetch.cpp | |||
@@ -664,16 +664,17 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
664 | mLoaded = FALSE; | 664 | mLoaded = FALSE; |
665 | setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); // Set priority first since Responder may change it | 665 | setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); // Set priority first since Responder may change it |
666 | 666 | ||
667 | CacheReadResponder* responder = new CacheReadResponder(mFetcher, mID, mFormattedImage); | ||
668 | if (mUrl.compare(0, 7, "file://") == 0) | 667 | if (mUrl.compare(0, 7, "file://") == 0) |
669 | { | 668 | { |
670 | // read file from local disk | 669 | // read file from local disk |
671 | std::string filename = mUrl.substr(7, std::string::npos); | 670 | std::string filename = mUrl.substr(7, std::string::npos); |
671 | CacheReadResponder* responder = new CacheReadResponder(mFetcher, mID, mFormattedImage); | ||
672 | mCacheReadHandle = mFetcher->mTextureCache->readFromCache(filename, mID, cache_priority, | 672 | mCacheReadHandle = mFetcher->mTextureCache->readFromCache(filename, mID, cache_priority, |
673 | offset, size, responder); | 673 | offset, size, responder); |
674 | } | 674 | } |
675 | else if (mUrl.empty()) | 675 | else if (mUrl.empty()) |
676 | { | 676 | { |
677 | CacheReadResponder* responder = new CacheReadResponder(mFetcher, mID, mFormattedImage); | ||
677 | mCacheReadHandle = mFetcher->mTextureCache->readFromCache(mID, cache_priority, | 678 | mCacheReadHandle = mFetcher->mTextureCache->readFromCache(mID, cache_priority, |
678 | offset, size, responder); | 679 | offset, size, responder); |
679 | } | 680 | } |
@@ -723,6 +724,7 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
723 | { | 724 | { |
724 | // we have enough data, decode it | 725 | // we have enough data, decode it |
725 | llassert_always(mFormattedImage->getDataSize() > 0); | 726 | llassert_always(mFormattedImage->getDataSize() > 0); |
727 | mLoadedDiscard = mDesiredDiscard; | ||
726 | mState = DECODE_IMAGE; | 728 | mState = DECODE_IMAGE; |
727 | mWriteToCacheState = NOT_WRITE ; | 729 | mWriteToCacheState = NOT_WRITE ; |
728 | LL_DEBUGS("Texture") << mID << ": Cached. Bytes: " << mFormattedImage->getDataSize() | 730 | LL_DEBUGS("Texture") << mID << ": Cached. Bytes: " << mFormattedImage->getDataSize() |
@@ -1113,6 +1115,17 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
1113 | return false; | 1115 | return false; |
1114 | } | 1116 | } |
1115 | S32 datasize = mFormattedImage->getDataSize(); | 1117 | S32 datasize = mFormattedImage->getDataSize(); |
1118 | if(mFileSize < datasize)//This could happen when http fetching and sim fetching mixed. | ||
1119 | { | ||
1120 | if(mHaveAllData) | ||
1121 | { | ||
1122 | mFileSize = datasize ; | ||
1123 | } | ||
1124 | else | ||
1125 | { | ||
1126 | mFileSize = datasize + 1 ; //flag not fully loaded. | ||
1127 | } | ||
1128 | } | ||
1116 | llassert_always(datasize); | 1129 | llassert_always(datasize); |
1117 | setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); // Set priority first since Responder may change it | 1130 | setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); // Set priority first since Responder may change it |
1118 | U32 cache_priority = mWorkPriority; | 1131 | U32 cache_priority = mWorkPriority; |
diff --git a/linden/indra/newview/lltool.cpp b/linden/indra/newview/lltool.cpp index 6a3ada0..df2191b 100644 --- a/linden/indra/newview/lltool.cpp +++ b/linden/indra/newview/lltool.cpp | |||
@@ -104,6 +104,13 @@ BOOL LLTool::handleScrollWheel(S32 x, S32 y, S32 clicks) | |||
104 | return FALSE; | 104 | return FALSE; |
105 | } | 105 | } |
106 | 106 | ||
107 | BOOL LLTool::handleHScrollWheel(S32 x, S32 y, S32 clicks) | ||
108 | { | ||
109 | // by default, didn't handle it | ||
110 | // llinfos << "LLTool::handleScrollWheel" << llendl; | ||
111 | return FALSE; | ||
112 | } | ||
113 | |||
107 | BOOL LLTool::handleDoubleClick(S32 x,S32 y,MASK mask) | 114 | BOOL LLTool::handleDoubleClick(S32 x,S32 y,MASK mask) |
108 | { | 115 | { |
109 | // llinfos << "LLTool::handleDoubleClick" << llendl; | 116 | // llinfos << "LLTool::handleDoubleClick" << llendl; |
diff --git a/linden/indra/newview/lltool.h b/linden/indra/newview/lltool.h index f954a8c..26e6623 100644 --- a/linden/indra/newview/lltool.h +++ b/linden/indra/newview/lltool.h | |||
@@ -62,6 +62,7 @@ public: | |||
62 | 62 | ||
63 | virtual BOOL handleHover(S32 x, S32 y, MASK mask); | 63 | virtual BOOL handleHover(S32 x, S32 y, MASK mask); |
64 | virtual BOOL handleScrollWheel(S32 x, S32 y, S32 clicks); | 64 | virtual BOOL handleScrollWheel(S32 x, S32 y, S32 clicks); |
65 | virtual BOOL handleHScrollWheel(S32 x, S32 y, S32 clicks); | ||
65 | virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask); | 66 | virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask); |
66 | virtual BOOL handleRightMouseDown(S32 x, S32 y, MASK mask); | 67 | virtual BOOL handleRightMouseDown(S32 x, S32 y, MASK mask); |
67 | virtual BOOL handleRightMouseUp(S32 x, S32 y, MASK mask); | 68 | virtual BOOL handleRightMouseUp(S32 x, S32 y, MASK mask); |
diff --git a/linden/indra/newview/lltoolmgr.cpp b/linden/indra/newview/lltoolmgr.cpp index 8204374..764ca9d 100644 --- a/linden/indra/newview/lltoolmgr.cpp +++ b/linden/indra/newview/lltoolmgr.cpp | |||
@@ -34,6 +34,8 @@ | |||
34 | 34 | ||
35 | #include "lltoolmgr.h" | 35 | #include "lltoolmgr.h" |
36 | 36 | ||
37 | #include "llchatbar.h" | ||
38 | #include "llfloatertools.h" | ||
37 | #include "lltool.h" | 39 | #include "lltool.h" |
38 | // tools and manipulators | 40 | // tools and manipulators |
39 | #include "llmanipscale.h" | 41 | #include "llmanipscale.h" |
@@ -191,11 +193,22 @@ LLTool* LLToolMgr::getCurrentTool() | |||
191 | else | 193 | else |
192 | { | 194 | { |
193 | // due to window management weirdness we can get here with gToolNull | 195 | // due to window management weirdness we can get here with gToolNull |
194 | bool can_override = mBaseTool && (mBaseTool != gToolNull); | 196 | // Don't use keyboard overrides when the edit window doesn't have focus. The chatbar is an unfortunate exception -- MC |
195 | mOverrideTool = can_override ? mBaseTool->getOverrideTool(override_mask) : NULL; | 197 | if (gViewerWindow && gViewerWindow->getUIHasFocus() |
198 | && gFloaterTools && !gFloaterTools->hasFocus() | ||
199 | && gChatBar && !gChatBar->getVisible()) | ||
200 | { | ||
201 | cur_tool = mBaseTool; | ||
202 | } | ||
203 | else | ||
204 | { | ||
205 | bool can_override = mBaseTool && (mBaseTool != gToolNull) ; | ||
206 | |||
207 | mOverrideTool = can_override ? mBaseTool->getOverrideTool(override_mask) : NULL; | ||
196 | 208 | ||
197 | // use keyboard-override tool if available otherwise drop back to base tool | 209 | // use keyboard-override tool if available otherwise drop back to base tool |
198 | cur_tool = mOverrideTool ? mOverrideTool : mBaseTool; | 210 | cur_tool = mOverrideTool ? mOverrideTool : mBaseTool; |
211 | } | ||
199 | } | 212 | } |
200 | 213 | ||
201 | LLTool* prev_tool = mSelectedTool; | 214 | LLTool* prev_tool = mSelectedTool; |
diff --git a/linden/indra/newview/llviewercontrol.cpp b/linden/indra/newview/llviewercontrol.cpp index 572f64a..0a23045 100644 --- a/linden/indra/newview/llviewercontrol.cpp +++ b/linden/indra/newview/llviewercontrol.cpp | |||
@@ -63,6 +63,7 @@ | |||
63 | #include "llworld.h" | 63 | #include "llworld.h" |
64 | #include "pipeline.h" | 64 | #include "pipeline.h" |
65 | #include "llviewerjoystick.h" | 65 | #include "llviewerjoystick.h" |
66 | #include "llviewerparcelmedia.h" | ||
66 | #include "llviewerparcelmgr.h" | 67 | #include "llviewerparcelmgr.h" |
67 | #include "llparcel.h" | 68 | #include "llparcel.h" |
68 | #include "llnotify.h" | 69 | #include "llnotify.h" |
@@ -324,7 +325,7 @@ static bool handleAudioStreamMusicChanged(const LLSD& newvalue) | |||
324 | // otherwise music will briefly stop | 325 | // otherwise music will briefly stop |
325 | if ( !gAudioStream->isInternetStreamPlaying() ) | 326 | if ( !gAudioStream->isInternetStreamPlaying() ) |
326 | { | 327 | { |
327 | gAudioStream->startInternetStream(LLViewerParcelMgr::getInstance()->getAgentParcel()->getMusicURL()); | 328 | LLViewerParcelMedia::playStreamingMusic(LLViewerParcelMgr::getInstance()->getAgentParcel()); |
328 | } | 329 | } |
329 | } | 330 | } |
330 | } | 331 | } |
diff --git a/linden/indra/newview/llviewerimage.cpp b/linden/indra/newview/llviewerimage.cpp index 671a359..28561ed 100644 --- a/linden/indra/newview/llviewerimage.cpp +++ b/linden/indra/newview/llviewerimage.cpp | |||
@@ -61,6 +61,7 @@ | |||
61 | #include "llappviewer.h" | 61 | #include "llappviewer.h" |
62 | #include "llface.h" | 62 | #include "llface.h" |
63 | #include "llviewercamera.h" | 63 | #include "llviewercamera.h" |
64 | #include "llvovolume.h" | ||
64 | /////////////////////////////////////////////////////////////////////////////// | 65 | /////////////////////////////////////////////////////////////////////////////// |
65 | 66 | ||
66 | // statics | 67 | // statics |
@@ -352,6 +353,11 @@ void LLViewerImage::init(bool firstinit) | |||
352 | mDesiredSavedRawDiscardLevel = -1 ; | 353 | mDesiredSavedRawDiscardLevel = -1 ; |
353 | 354 | ||
354 | mCanUseHTTP = true; //default on if cap/settings allows us | 355 | mCanUseHTTP = true; //default on if cap/settings allows us |
356 | |||
357 | mNumFaces = 0 ; | ||
358 | mNumVolumes = 0; | ||
359 | mFaceList.clear() ; | ||
360 | mVolumeList.clear(); | ||
355 | } | 361 | } |
356 | 362 | ||
357 | // virtual | 363 | // virtual |
@@ -388,6 +394,7 @@ LLViewerImage::~LLViewerImage() | |||
388 | void LLViewerImage::cleanup() | 394 | void LLViewerImage::cleanup() |
389 | { | 395 | { |
390 | mFaceList.clear() ; | 396 | mFaceList.clear() ; |
397 | mVolumeList.clear(); | ||
391 | for(callback_list_t::iterator iter = mLoadedCallbackList.begin(); | 398 | for(callback_list_t::iterator iter = mLoadedCallbackList.begin(); |
392 | iter != mLoadedCallbackList.end(); ) | 399 | iter != mLoadedCallbackList.end(); ) |
393 | { | 400 | { |
@@ -754,19 +761,19 @@ void LLViewerImage::updateVirtualSize() | |||
754 | { | 761 | { |
755 | addTextureStats(0.f, FALSE) ;//reset | 762 | addTextureStats(0.f, FALSE) ;//reset |
756 | } | 763 | } |
757 | if(mFaceList.size() > 0) | 764 | for(U32 i = 0 ; i < mNumFaces ; i++) |
758 | { | 765 | { |
759 | for(std::list<LLFace*>::iterator iter = mFaceList.begin(); iter != mFaceList.end(); ++iter) | 766 | LLFace* facep = mFaceList[i] ; |
767 | if(facep->getDrawable()->isRecentlyVisible()) | ||
760 | { | 768 | { |
761 | LLFace* facep = *iter ; | 769 | addTextureStats(facep->getVirtualSize()) ; |
762 | if(facep->getDrawable()->isRecentlyVisible()) | 770 | setAdditionalDecodePriority(facep->getImportanceToCamera()) ; |
763 | { | 771 | } |
764 | addTextureStats(facep->getVirtualSize()) ; | ||
765 | setAdditionalDecodePriority(facep->getImportanceToCamera()) ; | ||
766 | } | ||
767 | } | ||
768 | } | 772 | } |
773 | |||
769 | mNeedsResetMaxVirtualSize = TRUE ; | 774 | mNeedsResetMaxVirtualSize = TRUE ; |
775 | reorganizeFaceList(); | ||
776 | reorganizeVolumeList(); | ||
770 | #endif | 777 | #endif |
771 | } | 778 | } |
772 | void LLViewerImage::scaleDown() | 779 | void LLViewerImage::scaleDown() |
@@ -1759,13 +1766,19 @@ void LLViewerImage::setCachedRawImage() | |||
1759 | if(mForSculpt) | 1766 | if(mForSculpt) |
1760 | { | 1767 | { |
1761 | max_size = MAX_CACHED_RAW_SCULPT_IMAGE_AREA ; | 1768 | max_size = MAX_CACHED_RAW_SCULPT_IMAGE_AREA ; |
1769 | // Even though we don't use the full pixel size, we want to decode up to discard 0, | ||
1770 | // because some legacy sculpts are weird like that. | ||
1771 | mCachedRawImageReady = !mRawDiscardLevel ; | ||
1772 | } | ||
1773 | else | ||
1774 | { | ||
1775 | mCachedRawImageReady = (!mRawDiscardLevel || ((w * h) >= max_size)) ; | ||
1762 | } | 1776 | } |
1763 | 1777 | ||
1764 | while(((w >> i) * (h >> i)) > max_size) | 1778 | while(((w >> i) * (h >> i)) > max_size) |
1765 | { | 1779 | { |
1766 | ++i ; | 1780 | ++i ; |
1767 | } | 1781 | } |
1768 | mCachedRawImageReady = (!mRawDiscardLevel || ((w * h) >= max_size)) ; | ||
1769 | 1782 | ||
1770 | if(i) | 1783 | if(i) |
1771 | { | 1784 | { |
@@ -1776,7 +1789,8 @@ void LLViewerImage::setCachedRawImage() | |||
1776 | mRawImage->scale(w >> i, h >> i) ; | 1789 | mRawImage->scale(w >> i, h >> i) ; |
1777 | } | 1790 | } |
1778 | mCachedRawImage = mRawImage ; | 1791 | mCachedRawImage = mRawImage ; |
1779 | mCachedRawDiscardLevel = mRawDiscardLevel + i ; | 1792 | mRawDiscardLevel += i ; |
1793 | mCachedRawDiscardLevel = mRawDiscardLevel ; | ||
1780 | } | 1794 | } |
1781 | } | 1795 | } |
1782 | 1796 | ||
@@ -1784,7 +1798,7 @@ void LLViewerImage::checkCachedRawSculptImage() | |||
1784 | { | 1798 | { |
1785 | if(mCachedRawImageReady && mCachedRawDiscardLevel > 0) | 1799 | if(mCachedRawImageReady && mCachedRawDiscardLevel > 0) |
1786 | { | 1800 | { |
1787 | if(mCachedRawImage->getWidth() * mCachedRawImage->getHeight() < MAX_CACHED_RAW_SCULPT_IMAGE_AREA) | 1801 | if(getDiscardLevel() != 0) |
1788 | { | 1802 | { |
1789 | mCachedRawImageReady = FALSE ; | 1803 | mCachedRawImageReady = FALSE ; |
1790 | } | 1804 | } |
@@ -1810,11 +1824,111 @@ void LLViewerImage::setForSculpt() | |||
1810 | checkCachedRawSculptImage() ; | 1824 | checkCachedRawSculptImage() ; |
1811 | } | 1825 | } |
1812 | 1826 | ||
1827 | //virtual | ||
1813 | void LLViewerImage::addFace(LLFace* facep) | 1828 | void LLViewerImage::addFace(LLFace* facep) |
1814 | { | 1829 | { |
1815 | mFaceList.push_back(facep) ; | 1830 | if(mNumFaces >= mFaceList.size()) |
1831 | { | ||
1832 | mFaceList.resize(2 * mNumFaces + 1) ; | ||
1833 | } | ||
1834 | mFaceList[mNumFaces] = facep ; | ||
1835 | facep->setIndexInTex(mNumFaces) ; | ||
1836 | mNumFaces++ ; | ||
1837 | mLastFaceListUpdateTimer.reset() ; | ||
1838 | } | ||
1839 | |||
1840 | //virtual | ||
1841 | void LLViewerImage::removeFace(LLFace* facep) | ||
1842 | { | ||
1843 | if(mNumFaces > 1) | ||
1844 | { | ||
1845 | S32 index = facep->getIndexInTex() ; | ||
1846 | mFaceList[index] = mFaceList[--mNumFaces] ; | ||
1847 | mFaceList[index]->setIndexInTex(index) ; | ||
1848 | } | ||
1849 | else | ||
1850 | { | ||
1851 | mFaceList.clear() ; | ||
1852 | mNumFaces = 0 ; | ||
1853 | } | ||
1854 | mLastFaceListUpdateTimer.reset() ; | ||
1855 | } | ||
1856 | |||
1857 | S32 LLViewerImage::getNumFaces() const | ||
1858 | { | ||
1859 | return mNumFaces ; | ||
1860 | } | ||
1861 | |||
1862 | |||
1863 | //virtual | ||
1864 | void LLViewerImage::addVolume(LLVOVolume* volumep) | ||
1865 | { | ||
1866 | if( mNumVolumes >= mVolumeList.size()) | ||
1867 | { | ||
1868 | mVolumeList.resize(2 * mNumVolumes + 1) ; | ||
1869 | } | ||
1870 | mVolumeList[mNumVolumes] = volumep ; | ||
1871 | volumep->setIndexInTex(mNumVolumes) ; | ||
1872 | mNumVolumes++ ; | ||
1873 | mLastVolumeListUpdateTimer.reset() ; | ||
1874 | } | ||
1875 | |||
1876 | //virtual | ||
1877 | void LLViewerImage::removeVolume(LLVOVolume* volumep) | ||
1878 | { | ||
1879 | if(mNumVolumes > 1) | ||
1880 | { | ||
1881 | S32 index = volumep->getIndexInTex() ; | ||
1882 | mVolumeList[index] = mVolumeList[--mNumVolumes] ; | ||
1883 | mVolumeList[index]->setIndexInTex(index) ; | ||
1884 | } | ||
1885 | else | ||
1886 | { | ||
1887 | mVolumeList.clear() ; | ||
1888 | mNumVolumes = 0 ; | ||
1889 | } | ||
1890 | mLastVolumeListUpdateTimer.reset() ; | ||
1816 | } | 1891 | } |
1817 | void LLViewerImage::removeFace(LLFace* facep) | 1892 | |
1893 | S32 LLViewerImage::getNumVolumes() const | ||
1818 | { | 1894 | { |
1819 | mFaceList.remove(facep) ; | 1895 | return mNumVolumes ; |
1896 | } | ||
1897 | |||
1898 | void LLViewerImage::reorganizeFaceList() | ||
1899 | { | ||
1900 | static const F32 MAX_WAIT_TIME = 20.f; // seconds | ||
1901 | static const U32 MAX_EXTRA_BUFFER_SIZE = 4 ; | ||
1902 | |||
1903 | if(mNumFaces + MAX_EXTRA_BUFFER_SIZE > mFaceList.size()) | ||
1904 | { | ||
1905 | return ; | ||
1906 | } | ||
1907 | |||
1908 | if(mLastFaceListUpdateTimer.getElapsedTimeF32() < MAX_WAIT_TIME) | ||
1909 | { | ||
1910 | return ; | ||
1911 | } | ||
1912 | |||
1913 | mLastFaceListUpdateTimer.reset() ; | ||
1914 | mFaceList.erase(mFaceList.begin() + mNumFaces, mFaceList.end()); | ||
1915 | } | ||
1916 | |||
1917 | void LLViewerImage::reorganizeVolumeList() | ||
1918 | { | ||
1919 | static const F32 MAX_WAIT_TIME = 20.f; // seconds | ||
1920 | static const U32 MAX_EXTRA_BUFFER_SIZE = 4 ; | ||
1921 | |||
1922 | if(mNumVolumes + MAX_EXTRA_BUFFER_SIZE > mVolumeList.size()) | ||
1923 | { | ||
1924 | return ; | ||
1925 | } | ||
1926 | |||
1927 | if(mLastVolumeListUpdateTimer.getElapsedTimeF32() < MAX_WAIT_TIME) | ||
1928 | { | ||
1929 | return ; | ||
1930 | } | ||
1931 | |||
1932 | mLastVolumeListUpdateTimer.reset() ; | ||
1933 | mVolumeList.erase(mVolumeList.begin() + mNumVolumes, mVolumeList.end()); | ||
1820 | } | 1934 | } |
diff --git a/linden/indra/newview/llviewerimage.h b/linden/indra/newview/llviewerimage.h index 3bee51c..c2e3303 100644 --- a/linden/indra/newview/llviewerimage.h +++ b/linden/indra/newview/llviewerimage.h | |||
@@ -51,6 +51,7 @@ typedef void (*loaded_callback_func)( BOOL success, LLViewerImage *src_vi, LLIma | |||
51 | 51 | ||
52 | class LLVFile; | 52 | class LLVFile; |
53 | class LLMessageSystem; | 53 | class LLMessageSystem; |
54 | class LLVOVolume; | ||
54 | 55 | ||
55 | class LLLoadedCallbackEntry | 56 | class LLLoadedCallbackEntry |
56 | { | 57 | { |
@@ -209,6 +210,9 @@ public: | |||
209 | INVALID_DISCARD_LEVEL = 0x7fff | 210 | INVALID_DISCARD_LEVEL = 0x7fff |
210 | }; | 211 | }; |
211 | 212 | ||
213 | typedef std::vector<LLFace*> ll_face_list_t; | ||
214 | typedef std::vector<LLVOVolume*> ll_volume_list_t; | ||
215 | |||
212 | protected: | 216 | protected: |
213 | /*virtual*/ ~LLViewerImage(); | 217 | /*virtual*/ ~LLViewerImage(); |
214 | 218 | ||
@@ -311,8 +315,17 @@ public: | |||
311 | 315 | ||
312 | BOOL isSameTexture(const LLViewerImage* tex) const ; | 316 | BOOL isSameTexture(const LLViewerImage* tex) const ; |
313 | 317 | ||
314 | void addFace(LLFace* facep) ; | 318 | virtual void addFace(LLFace* facep) ; |
315 | void removeFace(LLFace* facep) ; | 319 | virtual void removeFace(LLFace* facep) ; |
320 | S32 getNumFaces() const; | ||
321 | const ll_face_list_t* getFaceList() const {return &mFaceList;} | ||
322 | void reorganizeFaceList() ; | ||
323 | |||
324 | virtual void addVolume(LLVOVolume* volumep); | ||
325 | virtual void removeVolume(LLVOVolume* volumep); | ||
326 | S32 getNumVolumes() const; | ||
327 | const ll_volume_list_t* getVolumeList() const { return &mVolumeList; } | ||
328 | void reorganizeVolumeList() ; | ||
316 | 329 | ||
317 | void setCanUseHTTP(bool can_use_http) {mCanUseHTTP = can_use_http;}; | 330 | void setCanUseHTTP(bool can_use_http) {mCanUseHTTP = can_use_http;}; |
318 | 331 | ||
@@ -417,8 +430,13 @@ private: | |||
417 | BOOL mForSculpt ; //a flag if the texture is used for a sculpt data. | 430 | BOOL mForSculpt ; //a flag if the texture is used for a sculpt data. |
418 | mutable BOOL mNeedsResetMaxVirtualSize ; | 431 | mutable BOOL mNeedsResetMaxVirtualSize ; |
419 | 432 | ||
420 | typedef std::list<LLFace*> ll_face_list_t ; | 433 | ll_face_list_t mFaceList ; //reverse pointer pointing to the faces using this image as texture |
421 | ll_face_list_t mFaceList ; //reverse pointer pointing to the faces using this image as texture | 434 | U32 mNumFaces ; |
435 | LLFrameTimer mLastFaceListUpdateTimer ; | ||
436 | |||
437 | ll_volume_list_t mVolumeList; | ||
438 | U32 mNumVolumes; | ||
439 | LLFrameTimer mLastVolumeListUpdateTimer; | ||
422 | 440 | ||
423 | bool mCanUseHTTP; // can this image be fetched by http | 441 | bool mCanUseHTTP; // can this image be fetched by http |
424 | 442 | ||
diff --git a/linden/indra/newview/llviewerjointmesh_sse2.cpp b/linden/indra/newview/llviewerjointmesh_sse2.cpp index 550044c..450582f 100644 --- a/linden/indra/newview/llviewerjointmesh_sse2.cpp +++ b/linden/indra/newview/llviewerjointmesh_sse2.cpp | |||
@@ -114,7 +114,7 @@ void LLViewerJointMesh::updateGeometrySSE2(LLFace *face, LLPolyMesh *mesh) | |||
114 | ((LLV4Matrix3)blend_mat).multiply(normals[index], o_normals[index]); | 114 | ((LLV4Matrix3)blend_mat).multiply(normals[index], o_normals[index]); |
115 | } | 115 | } |
116 | 116 | ||
117 | //setBuffer(0) called in LLVOAvatar::renderSkinned | 117 | buffer->setBuffer(0); |
118 | } | 118 | } |
119 | 119 | ||
120 | #else | 120 | #else |
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp index 777ea35..0d34f18 100644 --- a/linden/indra/newview/llviewermenu.cpp +++ b/linden/indra/newview/llviewermenu.cpp | |||
@@ -234,6 +234,7 @@ | |||
234 | #include "hippolimits.h" | 234 | #include "hippolimits.h" |
235 | 235 | ||
236 | #include "llfloaterteleporthistory.h" | 236 | #include "llfloaterteleporthistory.h" |
237 | #include "slfloatermediafilter.h" | ||
237 | 238 | ||
238 | using namespace LLVOAvatarDefines; | 239 | using namespace LLVOAvatarDefines; |
239 | void init_client_menu(LLMenuGL* menu); | 240 | void init_client_menu(LLMenuGL* menu); |
@@ -5996,6 +5997,10 @@ class LLShowFloater : public view_listener_t | |||
5996 | { | 5997 | { |
5997 | LLFloaterMute::toggleInstance(); | 5998 | LLFloaterMute::toggleInstance(); |
5998 | } | 5999 | } |
6000 | else if (floater_name == "media filter") | ||
6001 | { | ||
6002 | SLFloaterMediaFilter::toggleInstance(); | ||
6003 | } | ||
5999 | else if (floater_name == "camera controls") | 6004 | else if (floater_name == "camera controls") |
6000 | { | 6005 | { |
6001 | LLFloaterCamera::toggleInstance(); | 6006 | LLFloaterCamera::toggleInstance(); |
@@ -6161,6 +6166,10 @@ class LLFloaterVisible : public view_listener_t | |||
6161 | { | 6166 | { |
6162 | new_value = LLFloaterMute::instanceVisible(); | 6167 | new_value = LLFloaterMute::instanceVisible(); |
6163 | } | 6168 | } |
6169 | else if (floater_name == "media filter") | ||
6170 | { | ||
6171 | new_value = SLFloaterMediaFilter::instanceVisible(); | ||
6172 | } | ||
6164 | else if (floater_name == "camera controls") | 6173 | else if (floater_name == "camera controls") |
6165 | { | 6174 | { |
6166 | new_value = LLFloaterCamera::instanceVisible(); | 6175 | new_value = LLFloaterCamera::instanceVisible(); |
@@ -9219,6 +9228,14 @@ U32 info_display_from_string(std::string info_display) | |||
9219 | { | 9228 | { |
9220 | return LLPipeline::RENDER_DEBUG_GLOW; | 9229 | return LLPipeline::RENDER_DEBUG_GLOW; |
9221 | } | 9230 | } |
9231 | else if ("raycasting" == info_display) | ||
9232 | { | ||
9233 | return LLPipeline::RENDER_DEBUG_RAYCAST; | ||
9234 | } | ||
9235 | else if ("sculpt" == info_display) | ||
9236 | { | ||
9237 | return LLPipeline::RENDER_DEBUG_SCULPTED; | ||
9238 | } | ||
9222 | else | 9239 | else |
9223 | { | 9240 | { |
9224 | return 0; | 9241 | return 0; |
diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp index 0a27e0a..504c193 100755 --- a/linden/indra/newview/llviewermessage.cpp +++ b/linden/indra/newview/llviewermessage.cpp | |||
@@ -3531,6 +3531,17 @@ void process_teleport_finish(LLMessageSystem* msg, void**) | |||
3531 | U32 teleport_flags; | 3531 | U32 teleport_flags; |
3532 | msg->getU32Fast(_PREHASH_Info, _PREHASH_TeleportFlags, teleport_flags); | 3532 | msg->getU32Fast(_PREHASH_Info, _PREHASH_TeleportFlags, teleport_flags); |
3533 | 3533 | ||
3534 | U32 region_size_x = 256; | ||
3535 | msg->getU32Fast(_PREHASH_Info, _PREHASH_RegionSizeX, region_size_x); | ||
3536 | U32 region_size_y = 256; | ||
3537 | msg->getU32Fast(_PREHASH_Info, _PREHASH_RegionSizeY, region_size_y); | ||
3538 | |||
3539 | //and a little hack for Second Life compatibility | ||
3540 | if (region_size_y == 0 || region_size_x == 0) | ||
3541 | { | ||
3542 | region_size_x = 256; | ||
3543 | region_size_y = 256; | ||
3544 | } | ||
3534 | 3545 | ||
3535 | std::string seedCap; | 3546 | std::string seedCap; |
3536 | msg->getStringFast(_PREHASH_Info, _PREHASH_SeedCapability, seedCap); | 3547 | msg->getStringFast(_PREHASH_Info, _PREHASH_SeedCapability, seedCap); |
@@ -3550,7 +3561,7 @@ void process_teleport_finish(LLMessageSystem* msg, void**) | |||
3550 | 3561 | ||
3551 | // Viewer trusts the simulator. | 3562 | // Viewer trusts the simulator. |
3552 | gMessageSystem->enableCircuit(sim_host, TRUE); | 3563 | gMessageSystem->enableCircuit(sim_host, TRUE); |
3553 | LLViewerRegion* regionp = LLWorld::getInstance()->addRegion(region_handle, sim_host); | 3564 | LLViewerRegion* regionp = LLWorld::getInstance()->addRegion(region_handle, sim_host, region_size_x, region_size_y); |
3554 | 3565 | ||
3555 | /* | 3566 | /* |
3556 | // send camera update to new region | 3567 | // send camera update to new region |
@@ -3866,9 +3877,21 @@ void process_crossed_region(LLMessageSystem* msg, void**) | |||
3866 | std::string seedCap; | 3877 | std::string seedCap; |
3867 | msg->getStringFast(_PREHASH_RegionData, _PREHASH_SeedCapability, seedCap); | 3878 | msg->getStringFast(_PREHASH_RegionData, _PREHASH_SeedCapability, seedCap); |
3868 | 3879 | ||
3880 | U32 region_size_x = 256; | ||
3881 | msg->getU32(_PREHASH_RegionData, _PREHASH_RegionSizeX, region_size_x); | ||
3882 | U32 region_size_y = 256; | ||
3883 | msg->getU32(_PREHASH_RegionData, _PREHASH_RegionSizeY, region_size_y); | ||
3884 | |||
3885 | //and a little hack for Second Life compatibility | ||
3886 | if (region_size_y == 0 || region_size_x == 0) | ||
3887 | { | ||
3888 | region_size_x = 256; | ||
3889 | region_size_y = 256; | ||
3890 | } | ||
3891 | |||
3869 | send_complete_agent_movement(sim_host); | 3892 | send_complete_agent_movement(sim_host); |
3870 | 3893 | ||
3871 | LLViewerRegion* regionp = LLWorld::getInstance()->addRegion(region_handle, sim_host); | 3894 | LLViewerRegion* regionp = LLWorld::getInstance()->addRegion(region_handle, sim_host, region_size_x, region_size_y); |
3872 | regionp->setSeedCapability(seedCap); | 3895 | regionp->setSeedCapability(seedCap); |
3873 | 3896 | ||
3874 | // Tell the LightShare handler that we have changed regions. | 3897 | // Tell the LightShare handler that we have changed regions. |
diff --git a/linden/indra/newview/llviewerparcelmedia.cpp b/linden/indra/newview/llviewerparcelmedia.cpp index d4ebbd9..a5d97f2 100644 --- a/linden/indra/newview/llviewerparcelmedia.cpp +++ b/linden/indra/newview/llviewerparcelmedia.cpp | |||
@@ -33,6 +33,7 @@ | |||
33 | #include "llviewerprecompiledheaders.h" | 33 | #include "llviewerprecompiledheaders.h" |
34 | #include "llviewerparcelmedia.h" | 34 | #include "llviewerparcelmedia.h" |
35 | 35 | ||
36 | #include "kokuastreamingaudio.h" | ||
36 | #include "llagent.h" | 37 | #include "llagent.h" |
37 | #include "llviewercontrol.h" | 38 | #include "llviewercontrol.h" |
38 | #include "llviewermedia.h" | 39 | #include "llviewermedia.h" |
@@ -46,17 +47,27 @@ | |||
46 | #include "llviewerwindow.h" | 47 | #include "llviewerwindow.h" |
47 | #include "llfirstuse.h" | 48 | #include "llfirstuse.h" |
48 | #include "llpluginclassmedia.h" | 49 | #include "llpluginclassmedia.h" |
50 | #include "llnotify.h" | ||
51 | #include "llsdserialize.h" | ||
49 | 52 | ||
53 | #include "lloverlaybar.h" | ||
54 | #include "slfloatermediafilter.h" | ||
55 | #include "llinventorymodel.h" | ||
50 | // Static Variables | 56 | // Static Variables |
51 | 57 | ||
52 | S32 LLViewerParcelMedia::sMediaParcelLocalID = 0; | 58 | S32 LLViewerParcelMedia::sMediaParcelLocalID = 0; |
53 | LLUUID LLViewerParcelMedia::sMediaRegionID; | 59 | LLUUID LLViewerParcelMedia::sMediaRegionID; |
54 | viewer_media_t LLViewerParcelMedia::sMediaImpl; | 60 | viewer_media_t LLViewerParcelMedia::sMediaImpl; |
55 | 61 | bool LLViewerParcelMedia::sIsUserAction = false; | |
62 | bool LLViewerParcelMedia::sMediaFilterListLoaded = false; | ||
63 | LLSD LLViewerParcelMedia::sMediaFilterList; | ||
64 | std::set<std::string> LLViewerParcelMedia::sMediaQueries; | ||
65 | std::set<std::string> LLViewerParcelMedia::sAllowedMedia; | ||
66 | std::set<std::string> LLViewerParcelMedia::sDeniedMedia; | ||
56 | 67 | ||
57 | // Local functions | 68 | // Local functions |
58 | bool callback_play_media(const LLSD& notification, const LLSD& response, LLParcel* parcel); | 69 | bool callback_play_media(const LLSD& notification, const LLSD& response, LLParcel* parcel); |
59 | 70 | void callback_media_alert(const LLSD& notification, const LLSD& response, LLParcel* parcel, U32 type, std::string domain); | |
60 | 71 | ||
61 | // static | 72 | // static |
62 | void LLViewerParcelMedia::initClass() | 73 | void LLViewerParcelMedia::initClass() |
@@ -175,7 +186,7 @@ void LLViewerParcelMedia::update(LLParcel* parcel) | |||
175 | } | 186 | } |
176 | 187 | ||
177 | // static | 188 | // static |
178 | void LLViewerParcelMedia::play(LLParcel* parcel) | 189 | void LLViewerParcelMedia::play(LLParcel* parcel, bool filter) |
179 | { | 190 | { |
180 | lldebugs << "LLViewerParcelMedia::play" << llendl; | 191 | lldebugs << "LLViewerParcelMedia::play" << llendl; |
181 | 192 | ||
@@ -185,7 +196,17 @@ void LLViewerParcelMedia::play(LLParcel* parcel) | |||
185 | return; | 196 | return; |
186 | 197 | ||
187 | std::string media_url = parcel->getMediaURL(); | 198 | std::string media_url = parcel->getMediaURL(); |
188 | std::string media_current_url = parcel->getMediaCurrentURL(); | 199 | LLStringUtil::trim(media_url); |
200 | |||
201 | if (!media_url.empty() && gSavedSettings.getBOOL("MediaEnableFilter") && (filter || !allowedMedia(media_url))) | ||
202 | { | ||
203 | // If filtering is needed or in case media_url just changed | ||
204 | // to something we did not yet approve. | ||
205 | LLViewerParcelMediaAutoPlay::playStarted(); | ||
206 | filterMedia(parcel, 0); | ||
207 | return; | ||
208 | } | ||
209 | |||
189 | std::string mime_type = parcel->getMediaType(); | 210 | std::string mime_type = parcel->getMediaType(); |
190 | LLUUID placeholder_texture_id = parcel->getMediaID(); | 211 | LLUUID placeholder_texture_id = parcel->getMediaID(); |
191 | U8 media_auto_scale = parcel->getMediaAutoScale(); | 212 | U8 media_auto_scale = parcel->getMediaAutoScale(); |
@@ -403,6 +424,8 @@ void LLViewerParcelMedia::processParcelMediaUpdate( LLMessageSystem *msg, void * | |||
403 | media_url = media_url_buffer; | 424 | media_url = media_url_buffer; |
404 | msg->getU8("DataBlock", "MediaAutoScale", media_auto_scale); | 425 | msg->getU8("DataBlock", "MediaAutoScale", media_auto_scale); |
405 | 426 | ||
427 | LL_DEBUGS("MediaFilter") << "New media texture id: " << media_id << LL_ENDL; | ||
428 | |||
406 | if (msg->has("DataBlockExtended")) // do we have the extended data? | 429 | if (msg->has("DataBlockExtended")) // do we have the extended data? |
407 | { | 430 | { |
408 | char media_type_buffer[257]; | 431 | char media_type_buffer[257]; |
@@ -438,6 +461,7 @@ void LLViewerParcelMedia::processParcelMediaUpdate( LLMessageSystem *msg, void * | |||
438 | 461 | ||
439 | play(parcel); | 462 | play(parcel); |
440 | } | 463 | } |
464 | |||
441 | } | 465 | } |
442 | } | 466 | } |
443 | // Static | 467 | // Static |
@@ -586,3 +610,368 @@ void LLViewerParcelMediaNavigationObserver::onNavigateComplete( const EventType& | |||
586 | 610 | ||
587 | } | 611 | } |
588 | */ | 612 | */ |
613 | |||
614 | void LLViewerParcelMedia::playStreamingMusic(LLParcel* parcel, bool filter) | ||
615 | { | ||
616 | std::string music_url = parcel->getMusicURL(); | ||
617 | LLStringUtil::trim(music_url); | ||
618 | if (!music_url.empty() && gSavedSettings.getBOOL("MediaEnableFilter") && (filter || !allowedMedia(music_url))) | ||
619 | { | ||
620 | // If filtering is needed or in case music_url just changed | ||
621 | // to something we did not yet approve. | ||
622 | filterMedia(parcel, 1); | ||
623 | } | ||
624 | else if (gAudioStream) | ||
625 | { | ||
626 | LLStringUtil::trim(music_url); | ||
627 | gAudioStream->startInternetStream(music_url); | ||
628 | if (music_url.empty()) | ||
629 | { | ||
630 | LLOverlayBar::audioFilterStop(); | ||
631 | } | ||
632 | else | ||
633 | { | ||
634 | LLOverlayBar::audioFilterPlay(); | ||
635 | } | ||
636 | } | ||
637 | } | ||
638 | |||
639 | void LLViewerParcelMedia::stopStreamingMusic() | ||
640 | { | ||
641 | if (gAudioStream) | ||
642 | { | ||
643 | gAudioStream->stopInternetStream(); | ||
644 | LLOverlayBar::audioFilterStop(); | ||
645 | } | ||
646 | } | ||
647 | |||
648 | bool LLViewerParcelMedia::allowedMedia(std::string media_url) | ||
649 | { | ||
650 | LLStringUtil::trim(media_url); | ||
651 | std::string domain = extractDomain(media_url); | ||
652 | if (sAllowedMedia.count(domain)) | ||
653 | { | ||
654 | return true; | ||
655 | } | ||
656 | for (S32 i = 0; i < (S32)sMediaFilterList.size(); i++) | ||
657 | { | ||
658 | if (sMediaFilterList[i]["domain"].asString() == domain) | ||
659 | { | ||
660 | if (sMediaFilterList[i]["action"].asString() == "allow") | ||
661 | { | ||
662 | return true; | ||
663 | } | ||
664 | else | ||
665 | { | ||
666 | return false; | ||
667 | } | ||
668 | } | ||
669 | } | ||
670 | return false; | ||
671 | } | ||
672 | |||
673 | void LLViewerParcelMedia::filterMedia(LLParcel* parcel, U32 type) | ||
674 | { | ||
675 | std::string media_action; | ||
676 | std::string media_url; | ||
677 | std::string domain; | ||
678 | |||
679 | if (parcel != LLViewerParcelMgr::getInstance()->getAgentParcel()) | ||
680 | { | ||
681 | // The parcel just changed (may occur right out after a TP) | ||
682 | sIsUserAction = false; | ||
683 | return; | ||
684 | } | ||
685 | |||
686 | if (type == 0) | ||
687 | { | ||
688 | media_url = parcel->getMediaURL(); | ||
689 | } | ||
690 | else | ||
691 | { | ||
692 | media_url = parcel->getMusicURL(); | ||
693 | } | ||
694 | LLStringUtil::trim(media_url); | ||
695 | |||
696 | LL_DEBUGS("MediaFilter") << "Requested " << (type == 0 ? "media" : "music") << "-URL: " << media_url << LL_ENDL; | ||
697 | |||
698 | domain = extractDomain(media_url); | ||
699 | |||
700 | if (sMediaQueries.count(domain) > 0) | ||
701 | { | ||
702 | sIsUserAction = false; | ||
703 | return; | ||
704 | } | ||
705 | |||
706 | if (sIsUserAction) | ||
707 | { | ||
708 | // This was a user manual request to play this media, so give | ||
709 | // it another chance... | ||
710 | sIsUserAction = false; | ||
711 | if (sDeniedMedia.count(domain)) | ||
712 | { | ||
713 | sDeniedMedia.erase(domain); | ||
714 | SLFloaterMediaFilter::setDirty(); | ||
715 | } | ||
716 | } | ||
717 | |||
718 | if (!sMediaFilterListLoaded || sDeniedMedia.count(domain)) | ||
719 | { | ||
720 | media_action = "ignore"; | ||
721 | } | ||
722 | else if (sAllowedMedia.count(domain)) | ||
723 | { | ||
724 | media_action = "allow"; | ||
725 | } | ||
726 | else | ||
727 | { | ||
728 | for (S32 i = 0; i < (S32)sMediaFilterList.size(); i++) | ||
729 | { | ||
730 | if (sMediaFilterList[i]["domain"].asString() == domain) | ||
731 | { | ||
732 | media_action = sMediaFilterList[i]["action"].asString(); | ||
733 | break; | ||
734 | } | ||
735 | } | ||
736 | } | ||
737 | |||
738 | if (media_action == "allow" || media_url.empty()) | ||
739 | { | ||
740 | if (type == 0) | ||
741 | { | ||
742 | play(parcel, false); | ||
743 | } | ||
744 | else | ||
745 | { | ||
746 | playStreamingMusic(parcel, false); | ||
747 | } | ||
748 | } | ||
749 | else if (media_action == "deny") | ||
750 | { | ||
751 | LLSD args; | ||
752 | args["DOMAIN"] = domain; | ||
753 | LLNotifications::instance().add("MediaBlocked", args); | ||
754 | if (type == 1) | ||
755 | { | ||
756 | LLViewerParcelMedia::stopStreamingMusic(); | ||
757 | } | ||
758 | // So to avoid other "blocked" messages later in the session | ||
759 | // for this url should it be requested again by a script. | ||
760 | sDeniedMedia.insert(domain); | ||
761 | } | ||
762 | else if (media_action == "ignore") | ||
763 | { | ||
764 | if (type == 1) | ||
765 | { | ||
766 | LLViewerParcelMedia::stopStreamingMusic(); | ||
767 | } | ||
768 | } | ||
769 | else | ||
770 | { | ||
771 | sMediaQueries.insert(domain); | ||
772 | LLSD args; | ||
773 | args["DOMAIN"] = domain; | ||
774 | if (media_url.find('?') != std::string::npos) | ||
775 | { | ||
776 | args["WARNING"] = " (WARNING: this URL also contains parameter(s) that could potentially be used to correlate your avatar name with your IP)"; | ||
777 | } | ||
778 | else | ||
779 | { | ||
780 | args["WARNING"] = ""; | ||
781 | } | ||
782 | if (type == 0) | ||
783 | { | ||
784 | args["TYPE"] = "a media"; | ||
785 | } | ||
786 | else | ||
787 | { | ||
788 | args["TYPE"] = "an audio"; | ||
789 | } | ||
790 | LLNotifications::instance().add("MediaAlert", args, LLSD(), boost::bind(callback_media_alert, _1, _2, parcel, type, domain)); | ||
791 | } | ||
792 | } | ||
793 | |||
794 | void callback_media_alert(const LLSD ¬ification, const LLSD &response, LLParcel* parcel, U32 type, std::string domain) | ||
795 | { | ||
796 | S32 option = LLNotification::getSelectedOption(notification, response); | ||
797 | |||
798 | LLSD args; | ||
799 | args["DOMAIN"] = domain; | ||
800 | |||
801 | if (option == 0 || option == 3) // Allow or Whitelist | ||
802 | { | ||
803 | LLViewerParcelMedia::sAllowedMedia.insert(domain); | ||
804 | if (option == 3) // Whitelist | ||
805 | { | ||
806 | LLSD newmedia; | ||
807 | newmedia["domain"] = domain; | ||
808 | newmedia["action"] = "allow"; | ||
809 | LLViewerParcelMedia::sMediaFilterList.append(newmedia); | ||
810 | LLViewerParcelMedia::saveDomainFilterList(); | ||
811 | args["LISTED"] = "whitelisted"; | ||
812 | LLNotifications::instance().add("MediaListed", args); | ||
813 | } | ||
814 | if (type == 0) | ||
815 | { | ||
816 | LLViewerParcelMedia::play(parcel, false); | ||
817 | } | ||
818 | else | ||
819 | { | ||
820 | LLViewerParcelMedia::playStreamingMusic(parcel, false); | ||
821 | } | ||
822 | } | ||
823 | else if (option == 1 || option == 2) // Deny or Blacklist | ||
824 | { | ||
825 | LLViewerParcelMedia::sDeniedMedia.insert(domain); | ||
826 | if (type == 1) | ||
827 | { | ||
828 | LLViewerParcelMedia::stopStreamingMusic(); | ||
829 | } | ||
830 | if (option == 1) // Deny | ||
831 | { | ||
832 | LLNotifications::instance().add("MediaBlocked", args); | ||
833 | } | ||
834 | else // Blacklist | ||
835 | { | ||
836 | LLSD newmedia; | ||
837 | newmedia["domain"] = domain; | ||
838 | newmedia["action"] = "deny"; | ||
839 | LLViewerParcelMedia::sMediaFilterList.append(newmedia); | ||
840 | LLViewerParcelMedia::saveDomainFilterList(); | ||
841 | args["LISTED"] = "blacklisted"; | ||
842 | LLNotifications::instance().add("MediaListed", args); | ||
843 | } | ||
844 | } | ||
845 | |||
846 | LLViewerParcelMedia::sMediaQueries.erase(domain); | ||
847 | SLFloaterMediaFilter::setDirty(); | ||
848 | } | ||
849 | |||
850 | void LLViewerParcelMedia::saveDomainFilterList() | ||
851 | { | ||
852 | std::string medialist_filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "media_filter.xml"); | ||
853 | |||
854 | llofstream medialistFile(medialist_filename); | ||
855 | LLSDSerialize::toPrettyXML(sMediaFilterList, medialistFile); | ||
856 | medialistFile.close(); | ||
857 | } | ||
858 | |||
859 | bool LLViewerParcelMedia::loadDomainFilterList() | ||
860 | { | ||
861 | sMediaFilterListLoaded = true; | ||
862 | |||
863 | std::string medialist_filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "media_filter.xml"); | ||
864 | |||
865 | if (!LLFile::isfile(medialist_filename)) | ||
866 | { | ||
867 | LLSD emptyllsd; | ||
868 | llofstream medialistFile(medialist_filename); | ||
869 | LLSDSerialize::toPrettyXML(emptyllsd, medialistFile); | ||
870 | medialistFile.close(); | ||
871 | } | ||
872 | |||
873 | if (LLFile::isfile(medialist_filename)) | ||
874 | { | ||
875 | llifstream medialistFile(medialist_filename); | ||
876 | LLSDSerialize::fromXML(sMediaFilterList, medialistFile); | ||
877 | medialistFile.close(); | ||
878 | SLFloaterMediaFilter::setDirty(); | ||
879 | return true; | ||
880 | } | ||
881 | else | ||
882 | { | ||
883 | return false; | ||
884 | } | ||
885 | } | ||
886 | |||
887 | void LLViewerParcelMedia::clearDomainFilterList() | ||
888 | { | ||
889 | sMediaFilterList.clear(); | ||
890 | sAllowedMedia.clear(); | ||
891 | sDeniedMedia.clear(); | ||
892 | saveDomainFilterList(); | ||
893 | LLNotifications::instance().add("MediaFiltersCleared"); | ||
894 | SLFloaterMediaFilter::setDirty(); | ||
895 | } | ||
896 | |||
897 | std::string LLViewerParcelMedia::extractDomain(std::string url) | ||
898 | { | ||
899 | static std::string last_region = "@"; | ||
900 | |||
901 | if (url.empty()) | ||
902 | { | ||
903 | return url; | ||
904 | } | ||
905 | |||
906 | LLStringUtil::toLower(url); | ||
907 | |||
908 | size_t pos = url.find("//"); | ||
909 | |||
910 | if (pos != std::string::npos) | ||
911 | { | ||
912 | size_t count = url.size() - pos + 2; | ||
913 | url = url.substr(pos + 2, count); | ||
914 | } | ||
915 | |||
916 | // Check that there is at least one slash in the URL and add a trailing | ||
917 | // one if not (for media/audio URLs such as http://mydomain.net) | ||
918 | if (url.find('/') == std::string::npos) | ||
919 | { | ||
920 | url += '/'; | ||
921 | } | ||
922 | |||
923 | // If there's a user:password@ part, remove it | ||
924 | pos = url.find('@'); | ||
925 | if (pos != std::string::npos && pos < url.find('/')) // if '@' is not before the first '/', then it's not a user:password | ||
926 | { | ||
927 | size_t count = url.size() - pos + 1; | ||
928 | url = url.substr(pos + 1, count); | ||
929 | } | ||
930 | |||
931 | if (url.find(gAgent.getRegion()->getHost().getHostName()) == 0 || url.find(last_region) == 0) | ||
932 | { | ||
933 | // This must be a scripted object rezzed in the region: | ||
934 | // extend the concept of "domain" to encompass the | ||
935 | // scripted object server id and avoid blocking all other | ||
936 | // objects at once in this region... | ||
937 | |||
938 | // Get rid of any port number | ||
939 | pos = url.find('/'); // We earlier made sure that there's one | ||
940 | url = gAgent.getRegion()->getHost().getHostName() + url.substr(pos); | ||
941 | |||
942 | pos = url.find('?'); | ||
943 | if (pos != std::string::npos) | ||
944 | { | ||
945 | // Get rid of any parameter | ||
946 | url = url.substr(0, pos); | ||
947 | } | ||
948 | |||
949 | pos = url.rfind('/'); | ||
950 | if (pos != std::string::npos) | ||
951 | { | ||
952 | // Get rid of the filename, if any, keeping only the server + path | ||
953 | url = url.substr(0, pos); | ||
954 | } | ||
955 | } | ||
956 | else | ||
957 | { | ||
958 | pos = url.find(':'); | ||
959 | if (pos != std::string::npos && pos < url.find('/')) | ||
960 | { | ||
961 | // Keep anything before the port number and strip the rest off | ||
962 | url = url.substr(0, pos); | ||
963 | } | ||
964 | else | ||
965 | { | ||
966 | pos = url.find('/'); // We earlier made sure that there's one | ||
967 | url = url.substr(0, pos); | ||
968 | } | ||
969 | } | ||
970 | |||
971 | |||
972 | // Remember this region, so to cope with requests occuring just after a | ||
973 | // TP out of it. | ||
974 | last_region = gAgent.getRegion()->getHost().getHostName(); | ||
975 | |||
976 | return url; | ||
977 | } | ||
diff --git a/linden/indra/newview/llviewerparcelmedia.h b/linden/indra/newview/llviewerparcelmedia.h index 0f1e85c..7531a0f 100644 --- a/linden/indra/newview/llviewerparcelmedia.h +++ b/linden/indra/newview/llviewerparcelmedia.h | |||
@@ -35,6 +35,9 @@ | |||
35 | 35 | ||
36 | #include "llviewermedia.h" | 36 | #include "llviewermedia.h" |
37 | 37 | ||
38 | // For use by other patches so they know that media filtering is implemented. | ||
39 | #define MEDIA_FILTERING 1 | ||
40 | |||
38 | class LLMessageSystem; | 41 | class LLMessageSystem; |
39 | class LLParcel; | 42 | class LLParcel; |
40 | class LLViewerParcelMediaNavigationObserver; | 43 | class LLViewerParcelMediaNavigationObserver; |
@@ -54,8 +57,20 @@ class LLViewerParcelMedia : public LLViewerMediaObserver | |||
54 | // called when the agent's parcel has a new URL, or the agent has | 57 | // called when the agent's parcel has a new URL, or the agent has |
55 | // walked on to a new parcel with media | 58 | // walked on to a new parcel with media |
56 | 59 | ||
57 | static void play(LLParcel* parcel); | 60 | static void play(LLParcel* parcel, bool filter = true); |
58 | // user clicked play button in media transport controls | 61 | // user clicked play button in media transport controls |
62 | static void playStreamingMusic(LLParcel* parcel, bool filter = true); | ||
63 | // play the parcel music stream | ||
64 | static void stopStreamingMusic(); | ||
65 | // stop the parcel music stream | ||
66 | |||
67 | static void filterMedia(LLParcel* parcel, U32 type); // type: 0 = media, 1 = streaming music | ||
68 | static bool allowedMedia(std::string media_url); | ||
69 | |||
70 | static bool loadDomainFilterList(); | ||
71 | static void saveDomainFilterList(); | ||
72 | static void clearDomainFilterList(); | ||
73 | static std::string extractDomain(std::string url); | ||
59 | 74 | ||
60 | static void stop(); | 75 | static void stop(); |
61 | // user clicked stop button in media transport controls | 76 | // user clicked stop button in media transport controls |
@@ -85,6 +100,13 @@ class LLViewerParcelMedia : public LLViewerMediaObserver | |||
85 | static LLUUID sMediaRegionID; | 100 | static LLUUID sMediaRegionID; |
86 | // HACK: this will change with Media on a Prim | 101 | // HACK: this will change with Media on a Prim |
87 | static viewer_media_t sMediaImpl; | 102 | static viewer_media_t sMediaImpl; |
103 | |||
104 | static bool sIsUserAction; | ||
105 | static bool sMediaFilterListLoaded; | ||
106 | static LLSD sMediaFilterList; | ||
107 | static std::set<std::string> sMediaQueries; | ||
108 | static std::set<std::string> sAllowedMedia; | ||
109 | static std::set<std::string> sDeniedMedia; | ||
88 | }; | 110 | }; |
89 | 111 | ||
90 | 112 | ||
diff --git a/linden/indra/newview/llviewerparcelmgr.cpp b/linden/indra/newview/llviewerparcelmgr.cpp index 630da54..11ab647 100644 --- a/linden/indra/newview/llviewerparcelmgr.cpp +++ b/linden/indra/newview/llviewerparcelmgr.cpp | |||
@@ -85,7 +85,7 @@ LLPointer<LLViewerImage> sBlockedImage; | |||
85 | LLPointer<LLViewerImage> sPassImage; | 85 | LLPointer<LLViewerImage> sPassImage; |
86 | 86 | ||
87 | // Local functions | 87 | // Local functions |
88 | void optionally_start_music(const std::string& music_url); | 88 | void optionally_start_music(LLParcel* parcel); |
89 | void callback_start_music(S32 option, void* data); | 89 | void callback_start_music(S32 option, void* data); |
90 | void optionally_prepare_video(const LLParcel *parcelp); | 90 | void optionally_prepare_video(const LLParcel *parcelp); |
91 | void callback_prepare_video(S32 option, void* data); | 91 | void callback_prepare_video(S32 option, void* data); |
@@ -137,17 +137,27 @@ LLViewerParcelMgr::LLViewerParcelMgr() | |||
137 | mHoverParcel = new LLParcel(); | 137 | mHoverParcel = new LLParcel(); |
138 | mCollisionParcel = new LLParcel(); | 138 | mCollisionParcel = new LLParcel(); |
139 | 139 | ||
140 | mParcelsPerEdge = S32( REGION_WIDTH_METERS / PARCEL_GRID_STEP_METERS ); | 140 | mBlockedImage = gImageList.getImageFromFile("noentrylines.j2c"); |
141 | mPassImage = gImageList.getImageFromFile("noentrypasslines.j2c"); | ||
142 | |||
143 | init(256); | ||
144 | } | ||
145 | |||
146 | //moved this stuff out of the constructor and into a function that we can call again after we get the region size. | ||
147 | //LLViewerParcelMgr needs to be changed so we either get an instance per region, or it handles various region sizes | ||
148 | //on a single grid properly - Patrick Sapinski (2/10/2011) | ||
149 | void LLViewerParcelMgr::init(F32 region_size) | ||
150 | { | ||
151 | mParcelsPerEdge = S32( region_size / PARCEL_GRID_STEP_METERS ); | ||
141 | mHighlightSegments = new U8[(mParcelsPerEdge+1)*(mParcelsPerEdge+1)]; | 152 | mHighlightSegments = new U8[(mParcelsPerEdge+1)*(mParcelsPerEdge+1)]; |
142 | resetSegments(mHighlightSegments); | 153 | resetSegments(mHighlightSegments); |
143 | 154 | ||
144 | mCollisionSegments = new U8[(mParcelsPerEdge+1)*(mParcelsPerEdge+1)]; | 155 | mCollisionSegments = new U8[(mParcelsPerEdge+1)*(mParcelsPerEdge+1)]; |
145 | resetSegments(mCollisionSegments); | 156 | resetSegments(mCollisionSegments); |
146 | 157 | ||
147 | mBlockedImage = gImageList.getImageFromFile("noentrylines.j2c"); | 158 | S32 mParcelOverLayChunks = region_size * region_size / (128 * 128); |
148 | mPassImage = gImageList.getImageFromFile("noentrypasslines.j2c"); | ||
149 | 159 | ||
150 | S32 overlay_size = mParcelsPerEdge * mParcelsPerEdge / PARCEL_OVERLAY_CHUNKS; | 160 | S32 overlay_size = mParcelsPerEdge * mParcelsPerEdge / mParcelOverLayChunks; |
151 | sPackedOverlay = new U8[overlay_size]; | 161 | sPackedOverlay = new U8[overlay_size]; |
152 | 162 | ||
153 | mAgentParcelOverlay = new U8[mParcelsPerEdge * mParcelsPerEdge]; | 163 | mAgentParcelOverlay = new U8[mParcelsPerEdge * mParcelsPerEdge]; |
@@ -1351,8 +1361,7 @@ void LLViewerParcelMgr::processParcelOverlay(LLMessageSystem *msg, void **user) | |||
1351 | return; | 1361 | return; |
1352 | } | 1362 | } |
1353 | 1363 | ||
1354 | S32 parcels_per_edge = LLViewerParcelMgr::getInstance()->mParcelsPerEdge; | 1364 | S32 expected_size = 1024; //parcels_per_edge * parcels_per_edge / PARCEL_OVERLAY_CHUNKS; |
1355 | S32 expected_size = parcels_per_edge * parcels_per_edge / PARCEL_OVERLAY_CHUNKS; | ||
1356 | if (packed_overlay_size != expected_size) | 1365 | if (packed_overlay_size != expected_size) |
1357 | { | 1366 | { |
1358 | llwarns << "Got parcel overlay size " << packed_overlay_size | 1367 | llwarns << "Got parcel overlay size " << packed_overlay_size |
@@ -1697,7 +1706,7 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use | |||
1697 | { | 1706 | { |
1698 | if (music_url.substr(0,7) == "http://") | 1707 | if (music_url.substr(0,7) == "http://") |
1699 | { | 1708 | { |
1700 | optionally_start_music(music_url); | 1709 | optionally_start_music(parcel); |
1701 | } | 1710 | } |
1702 | } | 1711 | } |
1703 | else if (!gAudioStream->getInternetStreamURL().empty()) | 1712 | else if (!gAudioStream->getInternetStreamURL().empty()) |
@@ -1719,18 +1728,18 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use | |||
1719 | }; | 1728 | }; |
1720 | } | 1729 | } |
1721 | 1730 | ||
1722 | void optionally_start_music(const std::string& music_url) | 1731 | void optionally_start_music(LLParcel* parcel) |
1723 | { | 1732 | { |
1724 | if (gSavedSettings.getBOOL("AudioStreamingMusic")) | 1733 | if (gSavedSettings.getBOOL("AudioStreamingMusic")) |
1725 | { | 1734 | { |
1726 | // Make the user click the start button on the overlay bar. JC | 1735 | // Make the user click the start button on the overlay bar. JC |
1727 | // llinfos << "Starting parcel music " << music_url << llendl; | 1736 | // llinfos << "Starting parcel music " << parcel->getMusicURL() << llendl; |
1728 | 1737 | ||
1729 | // now only play music when you enter a new parcel if the control is in PLAY state | 1738 | // now only play music when you enter a new parcel if the control is in PLAY state |
1730 | // changed as part of SL-4878 | 1739 | // changed as part of SL-4878 |
1731 | if ( gOverlayBar && gOverlayBar->musicPlaying()) | 1740 | if (gOverlayBar && gOverlayBar->musicPlaying()) |
1732 | { | 1741 | { |
1733 | gAudioStream->startInternetStream(music_url); | 1742 | LLViewerParcelMedia::playStreamingMusic(parcel); |
1734 | } | 1743 | } |
1735 | } | 1744 | } |
1736 | } | 1745 | } |
diff --git a/linden/indra/newview/llviewerparcelmgr.h b/linden/indra/newview/llviewerparcelmgr.h index 9bf6096..59e6186 100644 --- a/linden/indra/newview/llviewerparcelmgr.h +++ b/linden/indra/newview/llviewerparcelmgr.h | |||
@@ -82,6 +82,8 @@ public: | |||
82 | LLViewerParcelMgr(); | 82 | LLViewerParcelMgr(); |
83 | ~LLViewerParcelMgr(); | 83 | ~LLViewerParcelMgr(); |
84 | 84 | ||
85 | void init(F32 region_size); | ||
86 | |||
85 | static void cleanupGlobals(); | 87 | static void cleanupGlobals(); |
86 | 88 | ||
87 | BOOL selectionEmpty() const; | 89 | BOOL selectionEmpty() const; |
diff --git a/linden/indra/newview/llviewerparceloverlay.cpp b/linden/indra/newview/llviewerparceloverlay.cpp index 0bcd8f3..4ae3253 100644 --- a/linden/indra/newview/llviewerparceloverlay.cpp +++ b/linden/indra/newview/llviewerparceloverlay.cpp | |||
@@ -58,6 +58,7 @@ const U8 OVERLAY_IMG_COMPONENTS = 4; | |||
58 | LLViewerParcelOverlay::LLViewerParcelOverlay(LLViewerRegion* region, F32 region_width_meters) | 58 | LLViewerParcelOverlay::LLViewerParcelOverlay(LLViewerRegion* region, F32 region_width_meters) |
59 | : mRegion( region ), | 59 | : mRegion( region ), |
60 | mParcelGridsPerEdge( S32( region_width_meters / PARCEL_GRID_STEP_METERS ) ), | 60 | mParcelGridsPerEdge( S32( region_width_meters / PARCEL_GRID_STEP_METERS ) ), |
61 | mRegionSize(S32(region_width_meters)), | ||
61 | mDirty( FALSE ), | 62 | mDirty( FALSE ), |
62 | mTimeSinceLastUpdate(), | 63 | mTimeSinceLastUpdate(), |
63 | mOverlayTextureIdx(-1), | 64 | mOverlayTextureIdx(-1), |
@@ -299,7 +300,8 @@ void LLViewerParcelOverlay::uncompressLandOverlay(S32 chunk, U8 *packed_overlay) | |||
299 | { | 300 | { |
300 | // Unpack the message data into the ownership array | 301 | // Unpack the message data into the ownership array |
301 | S32 size = mParcelGridsPerEdge * mParcelGridsPerEdge; | 302 | S32 size = mParcelGridsPerEdge * mParcelGridsPerEdge; |
302 | S32 chunk_size = size / PARCEL_OVERLAY_CHUNKS; | 303 | S32 mParcelOverLayChunks = mRegionSize * mRegionSize / (128 * 128); |
304 | S32 chunk_size = size / mParcelOverLayChunks; | ||
303 | 305 | ||
304 | memcpy(mOwnership + chunk*chunk_size, packed_overlay, chunk_size); /*Flawfinder: ignore*/ | 306 | memcpy(mOwnership + chunk*chunk_size, packed_overlay, chunk_size); /*Flawfinder: ignore*/ |
305 | 307 | ||
diff --git a/linden/indra/newview/llviewerparceloverlay.h b/linden/indra/newview/llviewerparceloverlay.h index 9bed1dd..fc0db0a 100644 --- a/linden/indra/newview/llviewerparceloverlay.h +++ b/linden/indra/newview/llviewerparceloverlay.h | |||
@@ -98,6 +98,7 @@ private: | |||
98 | LLViewerRegion* mRegion; | 98 | LLViewerRegion* mRegion; |
99 | 99 | ||
100 | S32 mParcelGridsPerEdge; | 100 | S32 mParcelGridsPerEdge; |
101 | S32 mRegionSize; | ||
101 | 102 | ||
102 | LLPointer<LLImageGL> mTexture; | 103 | LLPointer<LLImageGL> mTexture; |
103 | LLPointer<LLImageRaw> mImageRaw; | 104 | LLPointer<LLImageRaw> mImageRaw; |
diff --git a/linden/indra/newview/llviewerregion.cpp b/linden/indra/newview/llviewerregion.cpp index a8047b8..eba0db7 100644 --- a/linden/indra/newview/llviewerregion.cpp +++ b/linden/indra/newview/llviewerregion.cpp | |||
@@ -65,6 +65,7 @@ | |||
65 | #include "llvoclouds.h" | 65 | #include "llvoclouds.h" |
66 | #include "llworld.h" | 66 | #include "llworld.h" |
67 | #include "llspatialpartition.h" | 67 | #include "llspatialpartition.h" |
68 | #include "llviewerparcelmgr.h" | ||
68 | 69 | ||
69 | // Viewer object cache version, change if object update | 70 | // Viewer object cache version, change if object update |
70 | // format changes. JC | 71 | // format changes. JC |
@@ -199,6 +200,8 @@ LLViewerRegion::LLViewerRegion(const U64 &handle, | |||
199 | if (!gNoRender) | 200 | if (!gNoRender) |
200 | { | 201 | { |
201 | mParcelOverlay = new LLViewerParcelOverlay(this, region_width_meters); | 202 | mParcelOverlay = new LLViewerParcelOverlay(this, region_width_meters); |
203 | //Re-init the parcel mgr for this sim | ||
204 | LLViewerParcelMgr::getInstance()->init(region_width_meters); | ||
202 | } | 205 | } |
203 | else | 206 | else |
204 | { | 207 | { |
diff --git a/linden/indra/newview/llviewerwindow.cpp b/linden/indra/newview/llviewerwindow.cpp index f721550..8a343ac 100644 --- a/linden/indra/newview/llviewerwindow.cpp +++ b/linden/indra/newview/llviewerwindow.cpp | |||
@@ -1134,6 +1134,10 @@ void LLViewerWindow::handleScrollWheel(LLWindow *window, S32 clicks) | |||
1134 | { | 1134 | { |
1135 | handleScrollWheel( clicks ); | 1135 | handleScrollWheel( clicks ); |
1136 | } | 1136 | } |
1137 | void LLViewerWindow::handleHScrollWheel(LLWindow *window, S32 clicks) | ||
1138 | { | ||
1139 | handleHScrollWheel( clicks ); | ||
1140 | } | ||
1137 | 1141 | ||
1138 | void LLViewerWindow::handleWindowBlock(LLWindow *window) | 1142 | void LLViewerWindow::handleWindowBlock(LLWindow *window) |
1139 | { | 1143 | { |
@@ -1305,7 +1309,7 @@ LLViewerWindow::LLViewerWindow( | |||
1305 | { | 1309 | { |
1306 | gSavedSettings.setBOOL("RenderVBOEnable", FALSE); | 1310 | gSavedSettings.setBOOL("RenderVBOEnable", FALSE); |
1307 | } | 1311 | } |
1308 | LLVertexBuffer::initClass(gSavedSettings.getBOOL("RenderVBOEnable")); | 1312 | LLVertexBuffer::initClass(gSavedSettings.getBOOL("RenderVBOEnable") && gGLManager.mHasVertexBufferObject); |
1309 | 1313 | ||
1310 | if (LLFeatureManager::getInstance()->isSafe() | 1314 | if (LLFeatureManager::getInstance()->isSafe() |
1311 | || (gSavedSettings.getS32("LastFeatureVersion") != LLFeatureManager::getInstance()->getVersion()) | 1315 | || (gSavedSettings.getS32("LastFeatureVersion") != LLFeatureManager::getInstance()->getVersion()) |
@@ -2486,6 +2490,60 @@ void LLViewerWindow::handleScrollWheel(S32 clicks) | |||
2486 | return; | 2490 | return; |
2487 | } | 2491 | } |
2488 | 2492 | ||
2493 | void LLViewerWindow::handleHScrollWheel(S32 clicks) | ||
2494 | { | ||
2495 | LLView::sMouseHandlerMessage.clear(); | ||
2496 | |||
2497 | gMouseIdleTimer.reset(); | ||
2498 | |||
2499 | // Hide tooltips | ||
2500 | if( mToolTip ) | ||
2501 | { | ||
2502 | mToolTip->setVisible( FALSE ); | ||
2503 | } | ||
2504 | |||
2505 | LLMouseHandler* mouse_captor = gFocusMgr.getMouseCapture(); | ||
2506 | if( mouse_captor ) | ||
2507 | { | ||
2508 | S32 local_x; | ||
2509 | S32 local_y; | ||
2510 | mouse_captor->screenPointToLocal( mCurrentMousePoint.mX, mCurrentMousePoint.mY, &local_x, &local_y ); | ||
2511 | mouse_captor->handleHScrollWheel(local_x, local_y, clicks); | ||
2512 | if (LLView::sDebugMouseHandling) | ||
2513 | { | ||
2514 | llinfos << "Tilt Wheel handled by captor " << mouse_captor->getName() << llendl; | ||
2515 | } | ||
2516 | return; | ||
2517 | } | ||
2518 | |||
2519 | LLUICtrl* top_ctrl = gFocusMgr.getTopCtrl(); | ||
2520 | if (top_ctrl) | ||
2521 | { | ||
2522 | S32 local_x; | ||
2523 | S32 local_y; | ||
2524 | top_ctrl->screenPointToLocal( mCurrentMousePoint.mX, mCurrentMousePoint.mY, &local_x, &local_y ); | ||
2525 | if (top_ctrl->handleHScrollWheel(local_x, local_y, clicks)) return; | ||
2526 | } | ||
2527 | |||
2528 | if (mRootView->handleHScrollWheel(mCurrentMousePoint.mX, mCurrentMousePoint.mY, clicks) ) | ||
2529 | { | ||
2530 | if (LLView::sDebugMouseHandling) | ||
2531 | { | ||
2532 | llinfos << "Tilt Wheel" << LLView::sMouseHandlerMessage << llendl; | ||
2533 | } | ||
2534 | return; | ||
2535 | } | ||
2536 | else if (LLView::sDebugMouseHandling) | ||
2537 | { | ||
2538 | llinfos << "Tilt Wheel not handled by view" << llendl; | ||
2539 | } | ||
2540 | |||
2541 | |||
2542 | gAgent.handleHScrollWheel(clicks); | ||
2543 | |||
2544 | return; | ||
2545 | } | ||
2546 | |||
2489 | void LLViewerWindow::moveCursorToCenter() | 2547 | void LLViewerWindow::moveCursorToCenter() |
2490 | { | 2548 | { |
2491 | S32 x = mVirtualWindowRect.getWidth() / 2; | 2549 | S32 x = mVirtualWindowRect.getWidth() / 2; |
@@ -4953,6 +5011,16 @@ LLRect LLViewerWindow::getChatConsoleRect() | |||
4953 | 5011 | ||
4954 | return console_rect; | 5012 | return console_rect; |
4955 | } | 5013 | } |
5014 | |||
5015 | bool LLViewerWindow::getUIHasFocus() | ||
5016 | { | ||
5017 | return gFocusMgr.getKeyboardFocus() != NULL | ||
5018 | || LLMenuGL::getKeyboardMode() | ||
5019 | || (gMenuBarView && gMenuBarView->getHighlightedItem() && gMenuBarView->getHighlightedItem()->isActive()) | ||
5020 | || gFocusMgr.childHasKeyboardFocus(mRootView); | ||
5021 | } | ||
5022 | |||
5023 | |||
4956 | //---------------------------------------------------------------------------- | 5024 | //---------------------------------------------------------------------------- |
4957 | 5025 | ||
4958 | 5026 | ||
diff --git a/linden/indra/newview/llviewerwindow.h b/linden/indra/newview/llviewerwindow.h index 53d346b..eab8818 100644 --- a/linden/indra/newview/llviewerwindow.h +++ b/linden/indra/newview/llviewerwindow.h | |||
@@ -172,6 +172,7 @@ public: | |||
172 | /*virtual*/ void handleMenuSelect(LLWindow *window, S32 menu_item); | 172 | /*virtual*/ void handleMenuSelect(LLWindow *window, S32 menu_item); |
173 | /*virtual*/ BOOL handlePaint(LLWindow *window, S32 x, S32 y, S32 width, S32 height); | 173 | /*virtual*/ BOOL handlePaint(LLWindow *window, S32 x, S32 y, S32 width, S32 height); |
174 | /*virtual*/ void handleScrollWheel(LLWindow *window, S32 clicks); | 174 | /*virtual*/ void handleScrollWheel(LLWindow *window, S32 clicks); |
175 | /*virtual*/ void handleHScrollWheel(LLWindow *window, S32 clicks); | ||
175 | /*virtual*/ BOOL handleDoubleClick(LLWindow *window, LLCoordGL pos, MASK mask); | 176 | /*virtual*/ BOOL handleDoubleClick(LLWindow *window, LLCoordGL pos, MASK mask); |
176 | /*virtual*/ void handleWindowBlock(LLWindow *window); | 177 | /*virtual*/ void handleWindowBlock(LLWindow *window); |
177 | /*virtual*/ void handleWindowUnblock(LLWindow *window); | 178 | /*virtual*/ void handleWindowUnblock(LLWindow *window); |
@@ -194,6 +195,9 @@ public: | |||
194 | S32 getWindowDisplayHeight() const; | 195 | S32 getWindowDisplayHeight() const; |
195 | S32 getWindowDisplayWidth() const; | 196 | S32 getWindowDisplayWidth() const; |
196 | 197 | ||
198 | // Returns true when the UI has focus, false when the 3D world does | ||
199 | bool getUIHasFocus(); | ||
200 | |||
197 | // Window in scaled pixels (via UI scale), use this for | 201 | // Window in scaled pixels (via UI scale), use this for |
198 | // UI elements checking size. | 202 | // UI elements checking size. |
199 | const LLRect& getVirtualWindowRect() const { return mVirtualWindowRect; }; | 203 | const LLRect& getVirtualWindowRect() const { return mVirtualWindowRect; }; |
@@ -266,6 +270,7 @@ public: | |||
266 | 270 | ||
267 | BOOL handleKey(KEY key, MASK mask); | 271 | BOOL handleKey(KEY key, MASK mask); |
268 | void handleScrollWheel (S32 clicks); | 272 | void handleScrollWheel (S32 clicks); |
273 | void handleHScrollWheel (S32 clicks); | ||
269 | 274 | ||
270 | // Hide normal UI when a logon fails, re-show everything when logon is attempted again | 275 | // Hide normal UI when a logon fails, re-show everything when logon is attempted again |
271 | void setNormalControlsVisible( BOOL visible ); | 276 | void setNormalControlsVisible( BOOL visible ); |
diff --git a/linden/indra/newview/llvlmanager.cpp b/linden/indra/newview/llvlmanager.cpp index 177093c..7f483ca 100644 --- a/linden/indra/newview/llvlmanager.cpp +++ b/linden/indra/newview/llvlmanager.cpp | |||
@@ -57,11 +57,13 @@ LLVLManager::~LLVLManager() | |||
57 | 57 | ||
58 | void LLVLManager::addLayerData(LLVLData *vl_datap, const S32 mesg_size) | 58 | void LLVLManager::addLayerData(LLVLData *vl_datap, const S32 mesg_size) |
59 | { | 59 | { |
60 | if (LAND_LAYER_CODE == vl_datap->mType) | 60 | if (LAND_LAYER_CODE == vl_datap->mType || |
61 | AURORA_LAND_LAYER_CODE == vl_datap->mType) | ||
61 | { | 62 | { |
62 | mLandBits += mesg_size * 8; | 63 | mLandBits += mesg_size * 8; |
63 | } | 64 | } |
64 | else if (WIND_LAYER_CODE == vl_datap->mType) | 65 | else if (WIND_LAYER_CODE == vl_datap->mType || |
66 | AURORA_WIND_LAYER_CODE == vl_datap->mType) | ||
65 | { | 67 | { |
66 | mWindBits += mesg_size * 8; | 68 | mWindBits += mesg_size * 8; |
67 | } | 69 | } |
@@ -94,12 +96,17 @@ void LLVLManager::unpackData(const S32 num_packets) | |||
94 | { | 96 | { |
95 | datap->mRegionp->getLand().decompressDCTPatch(bit_pack, &goph, FALSE); | 97 | datap->mRegionp->getLand().decompressDCTPatch(bit_pack, &goph, FALSE); |
96 | } | 98 | } |
97 | else if (WIND_LAYER_CODE == datap->mType) | 99 | else if (AURORA_LAND_LAYER_CODE == datap->mType) |
100 | { | ||
101 | datap->mRegionp->getLand().decompressDCTPatch(bit_pack, &goph, TRUE); | ||
102 | } | ||
103 | else if (WIND_LAYER_CODE == datap->mType || | ||
104 | AURORA_WIND_LAYER_CODE == datap->mType) | ||
98 | { | 105 | { |
99 | datap->mRegionp->mWind.decompress(bit_pack, &goph); | 106 | datap->mRegionp->mWind.decompress(bit_pack, &goph); |
100 | |||
101 | } | 107 | } |
102 | else if (CLOUD_LAYER_CODE == datap->mType) | 108 | else if (CLOUD_LAYER_CODE == datap->mType || |
109 | AURORA_CLOUD_LAYER_CODE == datap->mType) | ||
103 | { | 110 | { |
104 | datap->mRegionp->mCloudLayer.decompress(bit_pack, &goph); | 111 | datap->mRegionp->mCloudLayer.decompress(bit_pack, &goph); |
105 | } | 112 | } |
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp index 69e239a..49d786d 100644 --- a/linden/indra/newview/llvoavatar.cpp +++ b/linden/indra/newview/llvoavatar.cpp | |||
@@ -3942,7 +3942,7 @@ void LLVOAvatar::idleUpdateTractorBeam() | |||
3942 | msg->nextBlockFast(_PREHASH_ChatData); | 3942 | msg->nextBlockFast(_PREHASH_ChatData); |
3943 | msg->addStringFast(_PREHASH_Message, "stop"); | 3943 | msg->addStringFast(_PREHASH_Message, "stop"); |
3944 | msg->addU8Fast(_PREHASH_Type, CHAT_TYPE_WHISPER); | 3944 | msg->addU8Fast(_PREHASH_Type, CHAT_TYPE_WHISPER); |
3945 | msg->addS32("Channel", 9000); | 3945 | msg->addS32("Channel", gSavedSettings.getS32("ParticleChatChannel")); |
3946 | 3946 | ||
3947 | gAgent.sendReliableMessage(); | 3947 | gAgent.sendReliableMessage(); |
3948 | sBeamLastAt = LLVector3d::zero; | 3948 | sBeamLastAt = LLVector3d::zero; |
@@ -3962,53 +3962,58 @@ void LLVOAvatar::idleUpdateTractorBeam() | |||
3962 | if (!mBeam.isNull()) | 3962 | if (!mBeam.isNull()) |
3963 | { | 3963 | { |
3964 | LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection(); | 3964 | LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection(); |
3965 | LLViewerObject* obj_sel = LLSelectMgr::getInstance()->getSelection()->getFirstObject(); | ||
3965 | 3966 | ||
3966 | if (gAgent.mPointAt.notNull()) | 3967 | if (gAgent.mPointAt.notNull()) |
3967 | { | 3968 | { |
3968 | // get point from pointat effect | 3969 | // get point from pointat effect |
3969 | mBeam->setPositionGlobal(gAgent.mPointAt->getPointAtPosGlobal()); | 3970 | mBeam->setPositionGlobal(gAgent.mPointAt->getPointAtPosGlobal()); |
3970 | 3971 | ||
3972 | //lgg crap | ||
3971 | if(gSavedSettings.getBOOL("ParticleChat")) | 3973 | if(gSavedSettings.getBOOL("ParticleChat")) |
3972 | { | 3974 | { |
3973 | if(sPartsNow != TRUE) | 3975 | if(sPartsNow != TRUE) |
3974 | { | 3976 | { |
3975 | sPartsNow = TRUE; | 3977 | |
3976 | LLMessageSystem* msg = gMessageSystem; | 3978 | sPartsNow = TRUE; |
3977 | msg->newMessageFast(_PREHASH_ChatFromViewer); | 3979 | if(obj_sel){ |
3978 | msg->nextBlockFast(_PREHASH_AgentData); | 3980 | LLMessageSystem* msg = gMessageSystem; |
3979 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | 3981 | msg->newMessageFast(_PREHASH_ChatFromViewer); |
3980 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | 3982 | msg->nextBlockFast(_PREHASH_AgentData); |
3981 | msg->nextBlockFast(_PREHASH_ChatData); | 3983 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); |
3982 | msg->addStringFast(_PREHASH_Message, "start"); | 3984 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); |
3983 | msg->addU8Fast(_PREHASH_Type, CHAT_TYPE_WHISPER); | 3985 | msg->nextBlockFast(_PREHASH_ChatData); |
3984 | msg->addS32("Channel", 9000); | 3986 | msg->addStringFast(_PREHASH_Message, "start"+obj_sel->getID().asString()); |
3985 | 3987 | msg->addU8Fast(_PREHASH_Type, CHAT_TYPE_WHISPER); | |
3986 | gAgent.sendReliableMessage(); | 3988 | msg->addS32("Channel", gSavedSettings.getS32("ParticleChatChannel")); |
3989 | |||
3990 | gAgent.sendReliableMessage(); | ||
3991 | } | ||
3987 | 3992 | ||
3988 | LLViewerStats::getInstance()->incStat(LLViewerStats::ST_CHAT_COUNT); | 3993 | LLViewerStats::getInstance()->incStat(LLViewerStats::ST_CHAT_COUNT); |
3989 | } | 3994 | } |
3990 | //LLVector3d a = sBeamLastAt-gAgent.mPointAt->getPointAtPosGlobal(); | 3995 | |
3991 | //if(a.length > 2) | ||
3992 | if( (sBeamLastAt-gAgent.mPointAt->getPointAtPosGlobal()).length() > .2) | 3996 | if( (sBeamLastAt-gAgent.mPointAt->getPointAtPosGlobal()).length() > .2) |
3993 | //if(sBeamLastAt!=gAgent.mPointAt->getPointAtPosGlobal()) | ||
3994 | { | 3997 | { |
3995 | sBeamLastAt = gAgent.mPointAt->getPointAtPosGlobal(); | 3998 | sBeamLastAt = gAgent.mPointAt->getPointAtPosGlobal(); |
3996 | |||
3997 | LLMessageSystem* msg = gMessageSystem; | ||
3998 | msg->newMessageFast(_PREHASH_ChatFromViewer); | ||
3999 | msg->nextBlockFast(_PREHASH_AgentData); | ||
4000 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | ||
4001 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | ||
4002 | msg->nextBlockFast(_PREHASH_ChatData); | ||
4003 | msg->addStringFast(_PREHASH_Message, llformat("<%.6f, %.6f, %.6f>",(F32)(sBeamLastAt.mdV[VX]),(F32)(sBeamLastAt.mdV[VY]),(F32)(sBeamLastAt.mdV[VZ]))); | ||
4004 | msg->addU8Fast(_PREHASH_Type, CHAT_TYPE_WHISPER); | ||
4005 | msg->addS32("Channel", 9000); // *TODO: make configurable | ||
4006 | 3999 | ||
4007 | gAgent.sendReliableMessage(); | 4000 | if(obj_sel){ |
4001 | LLMessageSystem* msg = gMessageSystem; | ||
4002 | msg->newMessageFast(_PREHASH_ChatFromViewer); | ||
4003 | msg->nextBlockFast(_PREHASH_AgentData); | ||
4004 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | ||
4005 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | ||
4006 | msg->nextBlockFast(_PREHASH_ChatData); | ||
4007 | msg->addStringFast(_PREHASH_Message, "start"+obj_sel->getID().asString()); | ||
4008 | msg->addU8Fast(_PREHASH_Type, CHAT_TYPE_WHISPER); | ||
4009 | msg->addS32("Channel", gSavedSettings.getS32("ParticleChatChannel")); | ||
4010 | |||
4011 | gAgent.sendReliableMessage(); | ||
4012 | } | ||
4008 | } | 4013 | } |
4009 | 4014 | ||
4010 | } | 4015 | } |
4011 | 4016 | ||
4012 | mBeam->triggerLocal(); | 4017 | mBeam->triggerLocal(); |
4013 | } | 4018 | } |
4014 | else if (selection->getFirstRootObject() && | 4019 | else if (selection->getFirstRootObject() && |
@@ -4047,6 +4052,8 @@ void LLVOAvatar::idleUpdateTractorBeam() | |||
4047 | } | 4052 | } |
4048 | } | 4053 | } |
4049 | } | 4054 | } |
4055 | //</edit> | ||
4056 | |||
4050 | 4057 | ||
4051 | void LLVOAvatar::idleUpdateBelowWater() | 4058 | void LLVOAvatar::idleUpdateBelowWater() |
4052 | { | 4059 | { |
diff --git a/linden/indra/newview/llvoiceclient.cpp b/linden/indra/newview/llvoiceclient.cpp index 3800b4d..da7b840 100644 --- a/linden/indra/newview/llvoiceclient.cpp +++ b/linden/indra/newview/llvoiceclient.cpp | |||
@@ -62,6 +62,7 @@ | |||
62 | #include "llfirstuse.h" | 62 | #include "llfirstuse.h" |
63 | #include "llviewerwindow.h" | 63 | #include "llviewerwindow.h" |
64 | #include "llviewercamera.h" | 64 | #include "llviewercamera.h" |
65 | #include "hippolimits.h" | ||
65 | 66 | ||
66 | #include "llfloaterfriends.h" //VIVOX, inorder to refresh communicate panel | 67 | #include "llfloaterfriends.h" //VIVOX, inorder to refresh communicate panel |
67 | #include "llfloaterchat.h" // for LLFloaterChat::addChat() | 68 | #include "llfloaterchat.h" // for LLFloaterChat::addChat() |
@@ -1524,15 +1525,22 @@ void LLVoiceClient::setState(state inState) | |||
1524 | 1525 | ||
1525 | mState = inState; | 1526 | mState = inState; |
1526 | } | 1527 | } |
1528 | void LLVoiceClient::close() | ||
1529 | { | ||
1530 | setState(stateDisableCleanup); | ||
1531 | } | ||
1532 | |||
1533 | void LLVoiceClient::start() | ||
1534 | { | ||
1535 | setState(stateStart); | ||
1536 | } | ||
1527 | 1537 | ||
1528 | void LLVoiceClient::stateMachine() | 1538 | void LLVoiceClient::stateMachine() |
1529 | { | 1539 | { |
1530 | if(gDisconnected) | 1540 | |
1531 | { | 1541 | // Disable voice as long as the viewer is disconnected from the sim (login/relog) |
1532 | // The viewer has been disconnected from the sim. Disable voice. | 1542 | setVoiceEnabled(!gDisconnected); |
1533 | setVoiceEnabled(false); | 1543 | |
1534 | } | ||
1535 | |||
1536 | if(mVoiceEnabled) | 1544 | if(mVoiceEnabled) |
1537 | { | 1545 | { |
1538 | updatePosition(); | 1546 | updatePosition(); |
@@ -1549,7 +1557,7 @@ void LLVoiceClient::stateMachine() | |||
1549 | if(!mConnected) | 1557 | if(!mConnected) |
1550 | { | 1558 | { |
1551 | // if voice was turned off after the daemon was launched but before we could connect to it, we may need to issue a kill. | 1559 | // if voice was turned off after the daemon was launched but before we could connect to it, we may need to issue a kill. |
1552 | LL_INFOS("Voice") << "Disabling voice before connection to daemon, terminating." << LL_ENDL; | 1560 | LL_WARNS("Voice") << "Disabling voice before connection to daemon, terminating." << LL_ENDL; |
1553 | killGateway(); | 1561 | killGateway(); |
1554 | } | 1562 | } |
1555 | 1563 | ||
@@ -1654,12 +1662,12 @@ void LLVoiceClient::stateMachine() | |||
1654 | //std::string exe_path = gDirUtilp->getAppRODataDir(); | 1662 | //std::string exe_path = gDirUtilp->getAppRODataDir(); |
1655 | std::string exe_path = gDirUtilp->getExecutableDir(); | 1663 | std::string exe_path = gDirUtilp->getExecutableDir(); |
1656 | exe_path += gDirUtilp->getDirDelimiter(); | 1664 | exe_path += gDirUtilp->getDirDelimiter(); |
1665 | #if LL_DARWIN | ||
1666 | exe_path += "../Resources/"; | ||
1667 | #endif | ||
1668 | exe_path += gSavedSettings.getString("VoiceModule"); | ||
1657 | #if LL_WINDOWS | 1669 | #if LL_WINDOWS |
1658 | exe_path += "SLVoice.exe"; | 1670 | exe_path += ".exe"; |
1659 | #elif LL_DARWIN | ||
1660 | exe_path += "../Resources/SLVoice"; | ||
1661 | #else | ||
1662 | exe_path += "SLVoice"; | ||
1663 | #endif | 1671 | #endif |
1664 | // See if the vivox executable exists | 1672 | // See if the vivox executable exists |
1665 | llstat s; | 1673 | llstat s; |
@@ -1687,7 +1695,8 @@ void LLVoiceClient::stateMachine() | |||
1687 | STARTUPINFOA sinfo; | 1695 | STARTUPINFOA sinfo; |
1688 | memset(&sinfo, 0, sizeof(sinfo)); | 1696 | memset(&sinfo, 0, sizeof(sinfo)); |
1689 | std::string exe_dir = gDirUtilp->getAppRODataDir(); | 1697 | std::string exe_dir = gDirUtilp->getAppRODataDir(); |
1690 | cmd = "SLVoice.exe"; | 1698 | cmd = gSavedSettings.getString("VoiceModule"); |
1699 | cmd += ".exe"; | ||
1691 | cmd += args; | 1700 | cmd += args; |
1692 | 1701 | ||
1693 | // So retarded. Windows requires that the second parameter to CreateProcessA be a writable (non-const) string... | 1702 | // So retarded. Windows requires that the second parameter to CreateProcessA be a writable (non-const) string... |
@@ -1753,7 +1762,7 @@ void LLVoiceClient::stateMachine() | |||
1753 | } | 1762 | } |
1754 | else | 1763 | else |
1755 | { | 1764 | { |
1756 | LL_INFOS("Voice") << exe_path << " not found." << LL_ENDL; | 1765 | LL_WARNS("Voice") << exe_path << " not found." << LL_ENDL; |
1757 | mVoiceEnabled = false; | 1766 | mVoiceEnabled = false; |
1758 | } | 1767 | } |
1759 | } | 1768 | } |
@@ -3772,7 +3781,7 @@ void LLVoiceClient::loginResponse(int statusCode, std::string &statusString, std | |||
3772 | if ( statusCode == 401 ) | 3781 | if ( statusCode == 401 ) |
3773 | { | 3782 | { |
3774 | // Login failure which is probably caused by the delay after a user's password being updated. | 3783 | // Login failure which is probably caused by the delay after a user's password being updated. |
3775 | LL_INFOS("Voice") << "Account.Login response failure (" << statusCode << "): " << statusString << LL_ENDL; | 3784 | LL_WARNS("Voice") << "Account.Login response failure (" << statusCode << "): " << statusString << LL_ENDL; |
3776 | setState(stateLoginRetry); | 3785 | setState(stateLoginRetry); |
3777 | } | 3786 | } |
3778 | else if(statusCode != 0) | 3787 | else if(statusCode != 0) |
@@ -3950,7 +3959,7 @@ void LLVoiceClient::sessionAddedEvent( | |||
3950 | } | 3959 | } |
3951 | else | 3960 | else |
3952 | { | 3961 | { |
3953 | LL_INFOS("Voice") << "Could not generate caller id from uri, using hash of uri " << session->mSIPURI << LL_ENDL; | 3962 | LL_WARNS("Voice") << "Could not generate caller id from uri, using hash of uri " << session->mSIPURI << LL_ENDL; |
3954 | setUUIDFromStringHash(session->mCallerID, session->mSIPURI); | 3963 | setUUIDFromStringHash(session->mCallerID, session->mSIPURI); |
3955 | session->mSynthesizedCallerID = true; | 3964 | session->mSynthesizedCallerID = true; |
3956 | 3965 | ||
@@ -4468,7 +4477,7 @@ void LLVoiceClient::participantUpdatedEvent( | |||
4468 | } | 4477 | } |
4469 | else | 4478 | else |
4470 | { | 4479 | { |
4471 | LL_INFOS("Voice") << "unknown session " << sessionHandle << LL_ENDL; | 4480 | LL_WARNS("Voice") << "unknown session " << sessionHandle << LL_ENDL; |
4472 | } | 4481 | } |
4473 | } | 4482 | } |
4474 | 4483 | ||
@@ -5062,7 +5071,7 @@ void LLVoiceClient::parcelChanged() | |||
5062 | else | 5071 | else |
5063 | { | 5072 | { |
5064 | // The transition to stateNoChannel needs to kick this off again. | 5073 | // The transition to stateNoChannel needs to kick this off again. |
5065 | LL_INFOS("Voice") << "not logged in yet, deferring" << LL_ENDL; | 5074 | LL_WARNS("Voice") << "not logged in yet, deferring" << LL_ENDL; |
5066 | } | 5075 | } |
5067 | } | 5076 | } |
5068 | 5077 | ||
diff --git a/linden/indra/newview/llvoiceclient.h b/linden/indra/newview/llvoiceclient.h index cfc336b..9ef3be9 100644 --- a/linden/indra/newview/llvoiceclient.h +++ b/linden/indra/newview/llvoiceclient.h | |||
@@ -516,6 +516,9 @@ static void updatePosition(void); | |||
516 | // Currently this will be false only for PSTN P2P calls. | 516 | // Currently this will be false only for PSTN P2P calls. |
517 | // NOTE: this will return true if the session can't be found. | 517 | // NOTE: this will return true if the session can't be found. |
518 | bool isSessionTextIMPossible(const LLUUID &session_id); | 518 | bool isSessionTextIMPossible(const LLUUID &session_id); |
519 | |||
520 | void close(); | ||
521 | void start(); | ||
519 | 522 | ||
520 | private: | 523 | private: |
521 | 524 | ||
diff --git a/linden/indra/newview/llvovolume.cpp b/linden/indra/newview/llvovolume.cpp index 73ff860..7aaf845 100644 --- a/linden/indra/newview/llvovolume.cpp +++ b/linden/indra/newview/llvovolume.cpp | |||
@@ -89,12 +89,12 @@ LLVOVolume::LLVOVolume(const LLUUID &id, const LLPCode pcode, LLViewerRegion *re | |||
89 | mRelativeXformInvTrans.setIdentity(); | 89 | mRelativeXformInvTrans.setIdentity(); |
90 | 90 | ||
91 | mLOD = MIN_LOD; | 91 | mLOD = MIN_LOD; |
92 | mSculptLevel = -2; | ||
93 | mTextureAnimp = NULL; | 92 | mTextureAnimp = NULL; |
94 | mVObjRadius = LLVector3(1,1,0.5f).length(); | 93 | mVObjRadius = LLVector3(1,1,0.5f).length(); |
95 | mNumFaces = 0; | 94 | mNumFaces = 0; |
96 | mLODChanged = FALSE; | 95 | mLODChanged = FALSE; |
97 | mSculptChanged = FALSE; | 96 | mSculptChanged = FALSE; |
97 | mIndexInTex = 0; | ||
98 | } | 98 | } |
99 | 99 | ||
100 | LLVOVolume::~LLVOVolume() | 100 | LLVOVolume::~LLVOVolume() |
@@ -502,9 +502,8 @@ void LLVOVolume::updateTextureVirtualSize() | |||
502 | 502 | ||
503 | if (isSculpted()) | 503 | if (isSculpted()) |
504 | { | 504 | { |
505 | LLSculptParams *sculpt_params = (LLSculptParams *)getParameterEntry(LLNetworkData::PARAMS_SCULPT); | 505 | updateSculptTexture(); |
506 | LLUUID id = sculpt_params->getSculptTexture(); | 506 | |
507 | mSculptTexture = gImageList.getImage(id); | ||
508 | if (mSculptTexture.notNull()) | 507 | if (mSculptTexture.notNull()) |
509 | { | 508 | { |
510 | mSculptTexture->setBoostLevel(llmax((S32)mSculptTexture->getBoostLevel(), | 509 | mSculptTexture->setBoostLevel(llmax((S32)mSculptTexture->getBoostLevel(), |
@@ -527,8 +526,8 @@ void LLVOVolume::updateTextureVirtualSize() | |||
527 | } | 526 | } |
528 | } | 527 | } |
529 | 528 | ||
530 | S32 texture_discard = mSculptTexture->getCachedRawImageLevel(); //try to match the texture | 529 | S32 texture_discard = mSculptTexture->getDiscardLevel(); //try to match the texture |
531 | S32 current_discard = mSculptLevel; | 530 | S32 current_discard = getVolume() ? getVolume()->getSculptLevel() : -2 ; |
532 | 531 | ||
533 | if (texture_discard >= 0 && //texture has some data available | 532 | if (texture_discard >= 0 && //texture has some data available |
534 | (texture_discard < current_discard || //texture has more data than last rebuild | 533 | (texture_discard < current_discard || //texture has more data than last rebuild |
@@ -682,25 +681,52 @@ BOOL LLVOVolume::setVolume(const LLVolumeParams &volume_params, const S32 detail | |||
682 | mVolumeImpl->onSetVolume(volume_params, detail); | 681 | mVolumeImpl->onSetVolume(volume_params, detail); |
683 | } | 682 | } |
684 | 683 | ||
684 | updateSculptTexture(); | ||
685 | |||
685 | if (isSculpted()) | 686 | if (isSculpted()) |
686 | { | 687 | { |
687 | mSculptTexture = gImageList.getImage(volume_params.getSculptID()); | ||
688 | if (mSculptTexture.notNull()) | 688 | if (mSculptTexture.notNull()) |
689 | { | 689 | { |
690 | sculpt(); | 690 | sculpt(); |
691 | mSculptLevel = getVolume()->getSculptLevel(); | ||
692 | } | 691 | } |
693 | } | 692 | } |
694 | else | ||
695 | { | ||
696 | mSculptTexture = NULL; | ||
697 | } | ||
698 | 693 | ||
699 | return TRUE; | 694 | return TRUE; |
700 | } | 695 | } |
701 | return FALSE; | 696 | return FALSE; |
702 | } | 697 | } |
703 | 698 | ||
699 | void LLVOVolume::updateSculptTexture() | ||
700 | { | ||
701 | LLPointer<LLViewerImage> old_sculpt = mSculptTexture; | ||
702 | |||
703 | if (isSculpted()) | ||
704 | { | ||
705 | LLSculptParams *sculpt_params = (LLSculptParams *)getParameterEntry(LLNetworkData::PARAMS_SCULPT); | ||
706 | LLUUID id = sculpt_params->getSculptTexture(); | ||
707 | if (id.notNull()) | ||
708 | { | ||
709 | mSculptTexture = gImageList.getImage(id); | ||
710 | } | ||
711 | } | ||
712 | else | ||
713 | { | ||
714 | mSculptTexture = NULL; | ||
715 | } | ||
716 | |||
717 | if (mSculptTexture != old_sculpt) | ||
718 | { | ||
719 | if (old_sculpt.notNull()) | ||
720 | { | ||
721 | old_sculpt->removeVolume(this); | ||
722 | } | ||
723 | if (mSculptTexture.notNull()) | ||
724 | { | ||
725 | mSculptTexture->addVolume(this); | ||
726 | } | ||
727 | } | ||
728 | } | ||
729 | |||
704 | // sculpt replaces generate() for sculpted surfaces | 730 | // sculpt replaces generate() for sculpted surfaces |
705 | void LLVOVolume::sculpt() | 731 | void LLVOVolume::sculpt() |
706 | { | 732 | { |
@@ -711,7 +737,7 @@ void LLVOVolume::sculpt() | |||
711 | S8 sculpt_components = 0; | 737 | S8 sculpt_components = 0; |
712 | const U8* sculpt_data = NULL; | 738 | const U8* sculpt_data = NULL; |
713 | 739 | ||
714 | S32 discard_level = mSculptTexture->getCachedRawImageLevel() ; | 740 | S32 discard_level = mSculptTexture->getDiscardLevel(); |
715 | LLImageRaw* raw_image = mSculptTexture->getCachedRawImage() ; | 741 | LLImageRaw* raw_image = mSculptTexture->getCachedRawImage() ; |
716 | 742 | ||
717 | S32 max_discard = mSculptTexture->getMaxDiscardLevel(); | 743 | S32 max_discard = mSculptTexture->getMaxDiscardLevel(); |
@@ -754,6 +780,16 @@ void LLVOVolume::sculpt() | |||
754 | sculpt_data = raw_image->getData(); | 780 | sculpt_data = raw_image->getData(); |
755 | } | 781 | } |
756 | getVolume()->sculpt(sculpt_width, sculpt_height, sculpt_components, sculpt_data, discard_level); | 782 | getVolume()->sculpt(sculpt_width, sculpt_height, sculpt_components, sculpt_data, discard_level); |
783 | |||
784 | //notify rebuild any other VOVolumes that reference this sculpty volume | ||
785 | for (S32 i = 0; i < mSculptTexture->getNumVolumes(); ++i) | ||
786 | { | ||
787 | LLVOVolume* volume = (*(mSculptTexture->getVolumeList()))[i]; | ||
788 | if (volume && volume != this && volume->getVolume() == getVolume()) | ||
789 | { | ||
790 | gPipeline.markRebuild(volume->mDrawable, LLDrawable::REBUILD_GEOMETRY, FALSE); | ||
791 | } | ||
792 | } | ||
757 | } | 793 | } |
758 | } | 794 | } |
759 | 795 | ||
diff --git a/linden/indra/newview/llvovolume.h b/linden/indra/newview/llvovolume.h index a78aa37..7c8a68d 100644 --- a/linden/indra/newview/llvovolume.h +++ b/linden/indra/newview/llvovolume.h | |||
@@ -169,8 +169,10 @@ public: | |||
169 | /*virtual*/ BOOL setMaterial(const U8 material); | 169 | /*virtual*/ BOOL setMaterial(const U8 material); |
170 | 170 | ||
171 | void setTexture(const S32 face); | 171 | void setTexture(const S32 face); |
172 | 172 | S32 getIndexInTex() const {return mIndexInTex ;} | |
173 | /*virtual*/ BOOL setVolume(const LLVolumeParams &volume_params, const S32 detail, bool unique_volume = false); | 173 | /*virtual*/ BOOL setVolume(const LLVolumeParams &volume_params, const S32 detail, bool unique_volume = false); |
174 | void updateSculptTexture(); | ||
175 | void setIndexInTex(S32 index) { mIndexInTex = index ;} | ||
174 | void sculpt(); | 176 | void sculpt(); |
175 | void updateRelativeXform(); | 177 | void updateRelativeXform(); |
176 | /*virtual*/ BOOL updateGeometry(LLDrawable *drawable); | 178 | /*virtual*/ BOOL updateGeometry(LLDrawable *drawable); |
@@ -231,7 +233,6 @@ private: | |||
231 | LLFrameTimer mTextureUpdateTimer; | 233 | LLFrameTimer mTextureUpdateTimer; |
232 | S32 mLOD; | 234 | S32 mLOD; |
233 | BOOL mLODChanged; | 235 | BOOL mLODChanged; |
234 | S32 mSculptLevel; | ||
235 | BOOL mSculptChanged; | 236 | BOOL mSculptChanged; |
236 | LLMatrix4 mRelativeXform; | 237 | LLMatrix4 mRelativeXform; |
237 | LLMatrix3 mRelativeXformInvTrans; | 238 | LLMatrix3 mRelativeXformInvTrans; |
@@ -239,6 +240,7 @@ private: | |||
239 | F32 mVObjRadius; | 240 | F32 mVObjRadius; |
240 | LLVolumeInterface *mVolumeImpl; | 241 | LLVolumeInterface *mVolumeImpl; |
241 | LLPointer<LLViewerImage> mSculptTexture; | 242 | LLPointer<LLViewerImage> mSculptTexture; |
243 | S32 mIndexInTex; | ||
242 | 244 | ||
243 | // statics | 245 | // statics |
244 | public: | 246 | public: |
diff --git a/linden/indra/newview/llvowater.cpp b/linden/indra/newview/llvowater.cpp index c66295a..eb74520 100644 --- a/linden/indra/newview/llvowater.cpp +++ b/linden/indra/newview/llvowater.cpp | |||
@@ -74,7 +74,7 @@ LLVOWater::LLVOWater(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regi | |||
74 | { | 74 | { |
75 | // Terrain must draw during selection passes so it can block objects behind it. | 75 | // Terrain must draw during selection passes so it can block objects behind it. |
76 | mbCanSelect = FALSE; | 76 | mbCanSelect = FALSE; |
77 | setScale(LLVector3(256.f, 256.f, 0.f)); // Hack for setting scale for bounding boxes/visibility. | 77 | setScale(LLVector3(mRegionp->getWidth(), mRegionp->getWidth(), 0.f)); // Hack for setting scale for bounding boxes/visibility. |
78 | 78 | ||
79 | mUseTexture = TRUE; | 79 | mUseTexture = TRUE; |
80 | mIsEdgePatch = FALSE; | 80 | mIsEdgePatch = FALSE; |
diff --git a/linden/indra/newview/llwind.cpp b/linden/indra/newview/llwind.cpp index bdd31dc..ba35435 100644 --- a/linden/indra/newview/llwind.cpp +++ b/linden/indra/newview/llwind.cpp | |||
@@ -120,12 +120,12 @@ void LLWind::decompress(LLBitPack &bitpack, LLGroupHeader *group_headerp) | |||
120 | set_group_of_patch_header(group_headerp); | 120 | set_group_of_patch_header(group_headerp); |
121 | 121 | ||
122 | // X component | 122 | // X component |
123 | decode_patch_header(bitpack, &patch_header); | 123 | decode_patch_header(bitpack, &patch_header, FALSE); |
124 | decode_patch(bitpack, buffer); | 124 | decode_patch(bitpack, buffer); |
125 | decompress_patch(mVelX, buffer, &patch_header); | 125 | decompress_patch(mVelX, buffer, &patch_header); |
126 | 126 | ||
127 | // Y component | 127 | // Y component |
128 | decode_patch_header(bitpack, &patch_header); | 128 | decode_patch_header(bitpack, &patch_header, FALSE); |
129 | decode_patch(bitpack, buffer); | 129 | decode_patch(bitpack, buffer); |
130 | decompress_patch(mVelY, buffer, &patch_header); | 130 | decompress_patch(mVelY, buffer, &patch_header); |
131 | 131 | ||
diff --git a/linden/indra/newview/llworld.cpp b/linden/indra/newview/llworld.cpp index 7866bf8..13fc91c 100644 --- a/linden/indra/newview/llworld.cpp +++ b/linden/indra/newview/llworld.cpp | |||
@@ -80,12 +80,12 @@ const S32 WORLD_PATCH_SIZE = 16; | |||
80 | 80 | ||
81 | extern LLColor4U MAX_WATER_COLOR; | 81 | extern LLColor4U MAX_WATER_COLOR; |
82 | 82 | ||
83 | const U32 LLWorld::mWidth = 256; | 83 | U32 LLWorld::mWidth = 256; |
84 | 84 | ||
85 | // meters/point, therefore mWidth * mScale = meters per edge | 85 | // meters/point, therefore mWidth * mScale = meters per edge |
86 | const F32 LLWorld::mScale = 1.f; | 86 | const F32 LLWorld::mScale = 1.f; |
87 | 87 | ||
88 | const F32 LLWorld::mWidthInMeters = mWidth * mScale; | 88 | F32 LLWorld::mWidthInMeters = mWidth * mScale; |
89 | 89 | ||
90 | // | 90 | // |
91 | // Functions | 91 | // Functions |
@@ -140,7 +140,7 @@ F32 LLWorld::getRegionMaxHeight() const | |||
140 | return gHippoLimits->getMaxHeight(); | 140 | return gHippoLimits->getMaxHeight(); |
141 | } | 141 | } |
142 | 142 | ||
143 | LLViewerRegion* LLWorld::addRegion(const U64 ®ion_handle, const LLHost &host) | 143 | LLViewerRegion* LLWorld::addRegion(const U64 ®ion_handle, const LLHost &host, const U32 ®ion_size_x, const U32 ®ion_size_y) |
144 | { | 144 | { |
145 | LLMemType mt(LLMemType::MTYPE_REGIONS); | 145 | LLMemType mt(LLMemType::MTYPE_REGIONS); |
146 | 146 | ||
@@ -172,9 +172,11 @@ LLViewerRegion* LLWorld::addRegion(const U64 ®ion_handle, const LLHost &host) | |||
172 | 172 | ||
173 | U32 iindex = 0; | 173 | U32 iindex = 0; |
174 | U32 jindex = 0; | 174 | U32 jindex = 0; |
175 | mWidth = region_size_x; | ||
176 | mWidthInMeters = mWidth * mScale; | ||
175 | from_region_handle(region_handle, &iindex, &jindex); | 177 | from_region_handle(region_handle, &iindex, &jindex); |
176 | S32 x = (S32)(iindex/mWidth); | 178 | S32 x = (S32)(iindex/256); |
177 | S32 y = (S32)(jindex/mWidth); | 179 | S32 y = (S32)(jindex/256); |
178 | llinfos << "Adding new region (" << x << ":" << y << ")" << llendl; | 180 | llinfos << "Adding new region (" << x << ":" << y << ")" << llendl; |
179 | llinfos << "Host: " << host << llendl; | 181 | llinfos << "Host: " << host << llendl; |
180 | 182 | ||
@@ -902,7 +904,7 @@ void LLWorld::updateWaterObjects() | |||
902 | } | 904 | } |
903 | 905 | ||
904 | // Region width in meters. | 906 | // Region width in meters. |
905 | S32 const rwidth = (S32)REGION_WIDTH_U32; | 907 | S32 const rwidth = (S32)getRegionWidthInMeters(); |
906 | 908 | ||
907 | // The distance we might see into the void | 909 | // The distance we might see into the void |
908 | // when standing on the edge of a region, in meters. | 910 | // when standing on the edge of a region, in meters. |
@@ -1256,9 +1258,20 @@ void process_enable_simulator(LLMessageSystem *msg, void **user_data) | |||
1256 | // which simulator should we modify? | 1258 | // which simulator should we modify? |
1257 | LLHost sim(ip_u32, port); | 1259 | LLHost sim(ip_u32, port); |
1258 | 1260 | ||
1261 | U32 region_size_x = 256; | ||
1262 | msg->getU32Fast(_PREHASH_SimulatorInfo, _PREHASH_RegionSizeX, region_size_x); | ||
1263 | U32 region_size_y = 256; | ||
1264 | msg->getU32Fast(_PREHASH_SimulatorInfo, _PREHASH_RegionSizeY, region_size_y); | ||
1265 | |||
1266 | if (region_size_y == 0 || region_size_x == 0) | ||
1267 | { | ||
1268 | region_size_x = 256; | ||
1269 | region_size_y = 256; | ||
1270 | } | ||
1271 | |||
1259 | // Viewer trusts the simulator. | 1272 | // Viewer trusts the simulator. |
1260 | msg->enableCircuit(sim, TRUE); | 1273 | msg->enableCircuit(sim, TRUE); |
1261 | LLWorld::getInstance()->addRegion(handle, sim); | 1274 | LLWorld::getInstance()->addRegion(handle, sim, region_size_x, region_size_y); |
1262 | 1275 | ||
1263 | // give the simulator a message it can use to get ip and port | 1276 | // give the simulator a message it can use to get ip and port |
1264 | llinfos << "simulator_enable() Enabling " << sim << " with code " << msg->getOurCircuitCode() << llendl; | 1277 | llinfos << "simulator_enable() Enabling " << sim << " with code " << msg->getOurCircuitCode() << llendl; |
diff --git a/linden/indra/newview/llworld.h b/linden/indra/newview/llworld.h index 964729d..5dbef6d 100644 --- a/linden/indra/newview/llworld.h +++ b/linden/indra/newview/llworld.h | |||
@@ -71,7 +71,7 @@ public: | |||
71 | LLWorld(); | 71 | LLWorld(); |
72 | void destroyClass(); | 72 | void destroyClass(); |
73 | 73 | ||
74 | LLViewerRegion* addRegion(const U64 ®ion_handle, const LLHost &host); | 74 | LLViewerRegion* addRegion(const U64 ®ion_handle, const LLHost &host, const U32 ®ion_size_x, const U32 ®ion_size_y); |
75 | // safe to call if already present, does the "right thing" if | 75 | // safe to call if already present, does the "right thing" if |
76 | // hosts are same, or if hosts are different, etc... | 76 | // hosts are same, or if hosts are different, etc... |
77 | void removeRegion(const LLHost &host); | 77 | void removeRegion(const LLHost &host); |
@@ -171,12 +171,12 @@ private: | |||
171 | region_list_t mCulledRegionList; | 171 | region_list_t mCulledRegionList; |
172 | 172 | ||
173 | // Number of points on edge | 173 | // Number of points on edge |
174 | static const U32 mWidth; | 174 | static U32 mWidth; |
175 | 175 | ||
176 | // meters/point, therefore mWidth * mScale = meters per edge | 176 | // meters/point, therefore mWidth * mScale = meters per edge |
177 | static const F32 mScale; | 177 | static const F32 mScale; |
178 | 178 | ||
179 | static const F32 mWidthInMeters; | 179 | static F32 mWidthInMeters; |
180 | 180 | ||
181 | F32 mLandFarClip; // Far clip distance for land. | 181 | F32 mLandFarClip; // Far clip distance for land. |
182 | LLPatchVertexArray mLandPatch; | 182 | LLPatchVertexArray mLandPatch; |
diff --git a/linden/indra/newview/llworldmap.cpp b/linden/indra/newview/llworldmap.cpp index 3ada36f..bd3996d 100644 --- a/linden/indra/newview/llworldmap.cpp +++ b/linden/indra/newview/llworldmap.cpp | |||
@@ -237,15 +237,26 @@ LLSimInfo* LLWorldMap::simInfoFromPosGlobal(const LLVector3d& pos_global) | |||
237 | return simInfoFromHandle(handle); | 237 | return simInfoFromHandle(handle); |
238 | } | 238 | } |
239 | 239 | ||
240 | LLSimInfo* LLWorldMap::simInfoFromHandle(const U64 handle) | 240 | LLSimInfo* LLWorldMap::simInfoFromHandle(const U64 findhandle) |
241 | { | 241 | { |
242 | sim_info_map_t::iterator it = mSimInfoMap.find(handle); | 242 | std::map<U64, LLSimInfo*>::const_iterator it; |
243 | if (it != mSimInfoMap.end()) | 243 | for (it = LLWorldMap::getInstance()->mSimInfoMap.begin(); it != LLWorldMap::getInstance()->mSimInfoMap.end(); ++it) |
244 | { | 244 | { |
245 | LLSimInfo* sim_info = (*it).second; | 245 | const U64 handle = (*it).first; |
246 | if (sim_info) | 246 | LLSimInfo* info = (*it).second; |
247 | if(handle == findhandle) | ||
248 | { | ||
249 | return info; | ||
250 | } | ||
251 | U32 x = 0, y = 0; | ||
252 | from_region_handle(findhandle, &x, &y); | ||
253 | U32 checkRegionX, checkRegionY; | ||
254 | from_region_handle(handle, &checkRegionX, &checkRegionY); | ||
255 | |||
256 | if(x > checkRegionX && x < (checkRegionX + info->msizeX) && | ||
257 | y > checkRegionY && y < (checkRegionY + info->msizeY)) | ||
247 | { | 258 | { |
248 | return sim_info; | 259 | return info; |
249 | } | 260 | } |
250 | } | 261 | } |
251 | return NULL; | 262 | return NULL; |
diff --git a/linden/indra/newview/llworldmap.h b/linden/indra/newview/llworldmap.h index b7089f3..56b32a2 100644 --- a/linden/indra/newview/llworldmap.h +++ b/linden/indra/newview/llworldmap.h | |||
@@ -81,6 +81,8 @@ public: | |||
81 | 81 | ||
82 | public: | 82 | public: |
83 | U64 mHandle; | 83 | U64 mHandle; |
84 | S32 msizeX; | ||
85 | S32 msizeY; | ||
84 | std::string mName; | 86 | std::string mName; |
85 | 87 | ||
86 | F64 mAgentsUpdateTime; | 88 | F64 mAgentsUpdateTime; |
diff --git a/linden/indra/newview/llworldmapview.cpp b/linden/indra/newview/llworldmapview.cpp index 443ee74..8d9ed1b 100644 --- a/linden/indra/newview/llworldmapview.cpp +++ b/linden/indra/newview/llworldmapview.cpp | |||
@@ -471,8 +471,8 @@ void LLWorldMapView::draw() | |||
471 | // When the view isn't panned, 0,0 = center of rectangle | 471 | // When the view isn't panned, 0,0 = center of rectangle |
472 | F32 bottom = sPanY + half_height + relative_y; | 472 | F32 bottom = sPanY + half_height + relative_y; |
473 | F32 left = sPanX + half_width + relative_x; | 473 | F32 left = sPanX + half_width + relative_x; |
474 | F32 top = bottom + sMapScale ; | 474 | F32 top = bottom+ (sMapScale * info->msizeY / REGION_WIDTH_METERS); |
475 | F32 right = left + sMapScale ; | 475 | F32 right = left + (sMapScale * info->msizeY / REGION_WIDTH_METERS); |
476 | 476 | ||
477 | // Switch to world map texture (if available for this region) if either: | 477 | // Switch to world map texture (if available for this region) if either: |
478 | // 1. Tiles are zoomed out small enough, or | 478 | // 1. Tiles are zoomed out small enough, or |
@@ -567,17 +567,21 @@ void LLWorldMapView::draw() | |||
567 | center_global.mdV[VX] += 128.0; | 567 | center_global.mdV[VX] += 128.0; |
568 | center_global.mdV[VY] += 128.0; | 568 | center_global.mdV[VY] += 128.0; |
569 | 569 | ||
570 | S32 draw_size = llround(sMapScale); | 570 | S32 x_draw_size = llround(sMapScale); |
571 | S32 y_draw_size = llround(sMapScale); | ||
572 | x_draw_size *= info->msizeX / REGION_WIDTH_METERS; | ||
573 | y_draw_size *= info->msizeY / REGION_WIDTH_METERS; | ||
574 | |||
571 | if (simimage != NULL) | 575 | if (simimage != NULL) |
572 | { | 576 | { |
573 | simimage->setBoostLevel(LLViewerImageBoostLevel::BOOST_MAP); | 577 | simimage->setBoostLevel(LLViewerImageBoostLevel::BOOST_MAP); |
574 | simimage->setKnownDrawSize(llround(draw_size * LLUI::sGLScaleFactor.mV[VX]), llround(draw_size * LLUI::sGLScaleFactor.mV[VY])); | 578 | simimage->setKnownDrawSize(llround(x_draw_size * LLUI::sGLScaleFactor.mV[VX]), llround(y_draw_size * LLUI::sGLScaleFactor.mV[VY])); |
575 | } | 579 | } |
576 | 580 | ||
577 | if (overlayimage != NULL) | 581 | if (overlayimage != NULL) |
578 | { | 582 | { |
579 | overlayimage->setBoostLevel(LLViewerImageBoostLevel::BOOST_MAP); | 583 | overlayimage->setBoostLevel(LLViewerImageBoostLevel::BOOST_MAP); |
580 | overlayimage->setKnownDrawSize(llround(draw_size * LLUI::sGLScaleFactor.mV[VX]), llround(draw_size * LLUI::sGLScaleFactor.mV[VY])); | 584 | overlayimage->setKnownDrawSize(llround(x_draw_size * LLUI::sGLScaleFactor.mV[VX]), llround(y_draw_size * LLUI::sGLScaleFactor.mV[VY])); |
581 | } | 585 | } |
582 | 586 | ||
583 | // LLTextureView::addDebugImage(simimage); | 587 | // LLTextureView::addDebugImage(simimage); |
diff --git a/linden/indra/newview/pipeline.cpp b/linden/indra/newview/pipeline.cpp index 9da0da0..5458af5 100644 --- a/linden/indra/newview/pipeline.cpp +++ b/linden/indra/newview/pipeline.cpp | |||
@@ -157,6 +157,7 @@ std::string gPoolNames[] = | |||
157 | "POOL_GROUND", | 157 | "POOL_GROUND", |
158 | "POOL_INVISIBLE", | 158 | "POOL_INVISIBLE", |
159 | "POOL_AVATAR", | 159 | "POOL_AVATAR", |
160 | "POOL_VOIDWATER", | ||
160 | "POOL_WATER", | 161 | "POOL_WATER", |
161 | "POOL_GRASS", | 162 | "POOL_GRASS", |
162 | "POOL_FULLBRIGHT", | 163 | "POOL_FULLBRIGHT", |
@@ -4933,7 +4934,7 @@ void LLPipeline::setUseVBO(BOOL use_vbo) | |||
4933 | } | 4934 | } |
4934 | 4935 | ||
4935 | resetVertexBuffers(); | 4936 | resetVertexBuffers(); |
4936 | LLVertexBuffer::initClass(use_vbo); | 4937 | LLVertexBuffer::initClass(use_vbo && gGLManager.mHasVertexBufferObject); |
4937 | } | 4938 | } |
4938 | } | 4939 | } |
4939 | 4940 | ||
diff --git a/linden/indra/newview/skins/default/html/en-us/loading-error/index.html b/linden/indra/newview/skins/default/html/en-us/loading-error/index.html index 9898149..2f6ccf7 100644 --- a/linden/indra/newview/skins/default/html/en-us/loading-error/index.html +++ b/linden/indra/newview/skins/default/html/en-us/loading-error/index.html | |||
@@ -1,14 +1,14 @@ | |||
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | 1 | |
2 | DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||
2 | <html xmlns="http://www.w3.org/1999/xhtml"> | 3 | <html xmlns="http://www.w3.org/1999/xhtml"> |
3 | <head> | 4 | <head> |
4 | <title>Unable to Connect</title> | 5 | <title>Unable to Connect</title><style> |
5 | <style> | 6 | body {background-color:#000000;font-family:verdana,helvetica,sans-serif;font-size:85%;color:#e9f1f8;width:100%;padding:0px;margin:0px;} |
6 | body {background-color:#000000;font-family:verdana,helvetica,sans-serif;font-size:62.5%;color:#e9f1f8;width:100%;padding:0px;margin:0px;} | ||
7 | a {color:#93a9d5;} | 7 | a {color:#93a9d5;} |
8 | a:active {color:#50607C;text-decoration:underline;} | 8 | a:active {color:#50607C;text-decoration:underline;} |
9 | a:hover {color:#ff7900;text-decoration:underline;} | 9 | a:hover {color:#ff7900;text-decoration:underline;} |
10 | #infobox{position:absolute;top:40%;left:50%;z-index:1;padding:0;width:592px;margin-left:-296px;margin-top:-150px;text-align:center;font-size:1.2em; color:#ccc;} | 10 | #infobox{position:absolute;top:40%;left:50%;z-index:1;padding:0;width:592px;margin-left:-296px;margin-top:-80px;text-align:left;font-size:1.2em; color:#ccc;} |
11 | #infobox #submitbtn {padding:15px 3px 5px 15px;height:28px;width:127px;margin-left:244px;} | 11 | #infobox #submitbtn {height:28px;width:127px;} |
12 | #infobox #submitbtn input {text-transform:capitalize;color:#fff;font-size:1.0em;height:28px;width:127px;border:none;font-weight:normal;background:url(../../btn_purplepill_bg.png) bottom left no-repeat;vertical-align:text-bottom;font-weight:bold;} | 12 | #infobox #submitbtn input {text-transform:capitalize;color:#fff;font-size:1.0em;height:28px;width:127px;border:none;font-weight:normal;background:url(../../btn_purplepill_bg.png) bottom left no-repeat;vertical-align:text-bottom;font-weight:bold;} |
13 | #infobox #submitbtn input:hover.input_over, #login_box #submitbtn input:hover.input_off {color:#fff;border:none;background:url(../../btn_purplepill_bg.png) bottom right no-repeat;} | 13 | #infobox #submitbtn input:hover.input_over, #login_box #submitbtn input:hover.input_off {color:#fff;border:none;background:url(../../btn_purplepill_bg.png) bottom right no-repeat;} |
14 | #infobox #submitbtn input:active.input_over {color:#fff;border:none;background:url(../../btn_purplepill_bg.png) top left no-repeat;} | 14 | #infobox #submitbtn input:active.input_over {color:#fff;border:none;background:url(../../btn_purplepill_bg.png) top left no-repeat;} |
@@ -17,16 +17,34 @@ a:hover {color:#ff7900;text-decoration:underline;} | |||
17 | </head> | 17 | </head> |
18 | <body> | 18 | <body> |
19 | <div id="infobox"> | 19 | <div id="infobox"> |
20 | <img src="../../unabletoconnect.png"><br/> | 20 | <table> |
21 | <p> | 21 | |
22 | This viewer can't establish a connection to the login server. | 22 | <tbody style="height: 100px; overflow: scroll"> |
23 | </p> | 23 | <tr> |
24 | <p> | 24 | This viewer can't establish a connection to the login screen of the grid you have chosen. |
25 | Please check your internet connection. If your computer or network is protected by a firewall or proxy, make sure that this viewer is permitted to access the network. | 25 | </tr> |
26 | </p> | 26 | <tr> |
27 | <div id="submitbtn"> | 27 | <td> |
28 | <input class="input_over" type="submit" value="Try Again" onclick="document.location='secondlife:///app/login_refresh'; this.className='pressed';" onmouseover="this.className='input_over';" onmouseout="this.className='input_off';" /> | 28 | <img src="../../unabletoconnect.png"><br/> |
29 | </div> | 29 | |
30 | </div> | 30 | <div id="submitbtn"> |
31 | <input class="input_over" type="submit" value="Try Again" onclick="document.location='secondlife:///app/login_refresh'; this.className='pressed';" onmouseover="this.className='input_over';" onmouseout="this.className='input_off';" /> | ||
32 | </div> | ||
33 | |||
34 | <td> | ||
35 | If you are used to see a loginscreen for that grid please | ||
36 | <ul> | ||
37 | <li>for OpenSimulator grids: check if the loginuri of that grid is still valid.</li> | ||
38 | <li>for OpenSimulator and Second Life: check the grid status page of the grid, and</li> | ||
39 | <li>if the grid status page of the grid says online check your internet connection. | ||
40 | If your computer or network is protected by a firewall or proxy, make sure that | ||
41 | meta-impy is permitted to access the network</li> | ||
42 | |||
43 | </ul> | ||
44 | </td> | ||
45 | </tr> | ||
46 | |||
47 | </tbody> | ||
48 | </table> | ||
31 | </div> | 49 | </div> |
32 | </body> \ No newline at end of file | 50 | </body> |
diff --git a/linden/indra/newview/skins/default/xui/de/floater_pay_object.xml b/linden/indra/newview/skins/default/xui/de/floater_pay_object.xml index 07dee37..fc7c204 100644 --- a/linden/indra/newview/skins/default/xui/de/floater_pay_object.xml +++ b/linden/indra/newview/skins/default/xui/de/floater_pay_object.xml | |||
@@ -1,5 +1,5 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <floater name="Give Money" title="[PAY TYPE] [FIRST] [LAST> | 2 | <floater name="Give Money" title="[PAY TYPE] [FIRST] [LAST]"> |
3 | 3 | ||
4 | <string name="pay group"> | 4 | <string name="pay group"> |
5 | Gruppe bezahlen: | 5 | Gruppe bezahlen: |
diff --git a/linden/indra/newview/skins/default/xui/de/panel_status_bar.xml b/linden/indra/newview/skins/default/xui/de/panel_status_bar.xml index 565e6b8..6c2da13 100644 --- a/linden/indra/newview/skins/default/xui/de/panel_status_bar.xml +++ b/linden/indra/newview/skins/default/xui/de/panel_status_bar.xml | |||
@@ -6,7 +6,7 @@ | |||
6 | <text length="1" name="BalanceText" tool_tip="Kontostand" type="string"> | 6 | <text length="1" name="BalanceText" tool_tip="Kontostand" type="string"> |
7 | Wird geladen... | 7 | Wird geladen... |
8 | </text> | 8 | </text> |
9 | <button label="" label_selected="" name="buycurrency" tool_tip="Geld kaufen"/> | 9 | <button label="[CURRENCY]" label_selected="" name="buycurrency" tool_tip="Geld kaufen"/> |
10 | <text length="12" name="TimeText" tool_tip="Aktuelle Zeit (Pazifik)" type="string"> | 10 | <text length="12" name="TimeText" tool_tip="Aktuelle Zeit (Pazifik)" type="string"> |
11 | 12:00 | 11 | 12:00 |
12 | </text> | 12 | </text> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_about.xml b/linden/indra/newview/skins/default/xui/en-us/floater_about.xml index 0275d9a..f25fd47 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_about.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_about.xml | |||
@@ -3,66 +3,91 @@ | |||
3 | can_resize="false" height="440" min_height="100" min_width="100" | 3 | can_resize="false" height="440" min_height="100" min_width="100" |
4 | name="floater_about" rect_control="FloaterAboutRect" | 4 | name="floater_about" rect_control="FloaterAboutRect" |
5 | title="About grid viewer" width="470"> | 5 | title="About grid viewer" width="470"> |
6 | <text_editor bottom="-434" embedded_items="false" | 6 | <tab_container |
7 | follows="left|top|right|bottom" font="SansSerifSmall" height="168" left="6" | 7 | follows="all" |
8 | max_length="65536" mouse_opaque="true" name="credits_editor" width="458" | 8 | bottom="10" |
9 | left="10" | ||
10 | height="405" | ||
11 | width="450" | ||
12 | name="about_tab" | ||
13 | tab_position="top"> | ||
14 | <panel | ||
15 | border="true" | ||
16 | height="386" | ||
17 | label="Version" | ||
18 | help_topic="about_support_tab" | ||
19 | name="support_panel"> | ||
20 | <text_editor bottom="28" embedded_items="false" | ||
21 | follows="left|top|right|bottom" font="SansSerif" height="352" left="6" | ||
22 | max_length="65536" mouse_opaque="true" name="support_editor" width="423" | ||
23 | word_wrap="true" /> | ||
24 | <button follows="left|top" label="Copy to Clipboard" name="copy_btn" | ||
25 | left="5" bottom="0" top_pad="5" height="20" width="180" /> | ||
26 | </panel> | ||
27 | <panel | ||
28 | border="true" | ||
29 | label="Credits" | ||
30 | height="386" | ||
31 | help_topic="about_credits_tab" | ||
32 | name="credits_panel"> | ||
33 | |||
34 | <text_editor bottom="6" embedded_items="false" | ||
35 | follows="left|top|right|bottom" font="SansSerifSmall" height="374" left="6" | ||
36 | max_length="65536" mouse_opaque="true" name="credits_editor" width="423" | ||
9 | word_wrap="true"> | 37 | word_wrap="true"> |
10 | Meta 7 is brought to you by Laurent, George, Melanie, Shaun, Dave, Kitto, Mike, Brandon, Erich, Daniel, Mark, Trinity, and Tom. | 38 | Meta 7 is brought to you by Laurent, George, Melanie, Shaun, Dave, Kitto, Mike, Brandon, Erich, Daniel, Mark, Trinity, and Tom. |
11 | 39 | ||
12 | http://www.meta7.com/ | 40 | http://www.meta7.com/ |
13 | 41 | ||
14 | |||
15 | This viewer is based on the Imprudence viewer. | 42 | This viewer is based on the Imprudence viewer. |
16 | 43 | ||
17 | The Imprudence Viewer was rocked hard by: | 44 | The Imprudence Viewer was rocked hard by: |
18 | Jacek Antonelli, McCabe Maxsted, Armin Weatherwax, Elektra Hesse, and CodeBastard Redgrave. | 45 | Jacek Antonelli, McCabe Maxsted, Armin Weatherwax, Elektra Hesse, and CodeBastard Redgrave. |
19 | 46 | ||
20 | http://kokuaviewer.org/ | 47 | http://kokuaviewer.org/ |
21 | 48 | ||
22 | Imprudence is so awesome thanks to contributions from many generous people: | 49 | Imprudence is so awesome thanks to contributions from many generous people: |
23 | 50 | ||
24 | For their patches and code contributions, we thank Admiral Admiral, Aimee Trescothick, Aleric Inglewood, Alissa Sabre, Archimedies Plutonian, Angus Boyd, Ansariel Hiller, Ardy Lay, Asuka Neely, Balp Allen, Carjay McGinnis, Chalice Yao, Dale Glass, Damian Delacrois, Danny Nolan, Felix Duesenburg, Geneko Nemeth, Henri Beauchamp, Katharine Berry, KirstenLee Cinquetti, Kitty Barnett, Latif Khalifa, Lilly Zenovka, Makomk Makosen, Mana Janus, Matthew Dowd, Michelle2 Zenovka, Mm Alder, Nemurimasu Neiro, Nicholaz Beresford, Patrick Sapinski, Paul Churchill, Peter Lameth, Robin Cornelius, Stephen Zenith, Thickbrick Sleaford, Thomas Shikami, Tom Meta, tx Oh, Vaalith Jinn, Vadim Bigbear, Vex Streeter, Zi Ree, and Zwagoth Klaar. | 51 | For their patches and code contributions, we thank Admiral Admiral, Aimee Trescothick, Aleric Inglewood, Alissa Sabre, Archimedies Plutonian, Angus Boyd, Ansariel Hiller, Ardy Lay, Asuka Neely, Balp Allen, Carjay McGinnis, Chalice Yao, Dale Glass, Damian Delacrois, Danny Nolan, Felix Duesenburg, Geneko Nemeth, Henri Beauchamp, Katharine Berry, KirstenLee Cinquetti, Kitty Barnett, Latif Khalifa, Lilly Zenovka, Makomk Makosen, Mana Janus, Matthew Dowd, Michelle2 Zenovka, Mm Alder, Nemurimasu Neiro, Nicholaz Beresford, Patrick Sapinski, Paul Churchill, Peter Lameth, Robin Cornelius, Stephen Zenith, Thickbrick Sleaford, Thomas Shikami, Tom Meta, tx Oh, Vaalith Jinn, Vadim Bigbear, Vex Streeter, Zi Ree, and Zwagoth Klaar. |
25 | 52 | ||
26 | For their WindLight presets, we thank Ana Lutetia, CodeBastard Redgrave, and Torley Linden. | 53 | For their WindLight presets, we thank Ana Lutetia, CodeBastard Redgrave, and Torley Linden. |
27 | 54 | ||
28 | Thanks also to the developer(s) of the Emerald Viewer, Hippo Viewer, Cool VL Viewer, Snowglobe Viewer, meta 7 Viewer, FrozenGlobe Viewer, and Meerkat Viewer for viewer enhancements we have incorporated, as well as Kitty Barnett for RLVa. Special thanks to the folks at Linden Lab for releasing the viewer source, without which this endeavor would have been impossible. | 55 | Thanks also to the developer(s) of the Emerald Viewer, Hippo Viewer, Cool VL Viewer, Snowglobe Viewer, meta 7 Viewer, FrozenGlobe Viewer, and Meerkat Viewer for viewer enhancements we have incorporated, as well as Kitty Barnett for RLVa. Special thanks to the folks at Linden Lab for releasing the viewer source, without which this endeavor would have been impossible. |
29 | 56 | ||
30 | For a complete list of who did what, read the release notes! | 57 | For a complete list of who did what, read the release notes! |
31 | 58 | ||
59 | Many thanks to the many residents in many grids who contributed towards this viewer in countless ways. | ||
32 | 60 | ||
33 | Many thanks to Linden Lab and the many residents in both grids who contributed towards this viewer in countless ways. | 61 | 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion |
34 | 62 | APR Copyright (C) 2000-2004 The Apache Software Foundation | |
35 | 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion | 63 | cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se) |
36 | APR Copyright (C) 2000-2004 The Apache Software Foundation | 64 | DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc. |
37 | cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se) | 65 | expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd. |
38 | DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc. | 66 | FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org). |
39 | expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd. | 67 | GL Copyright (C) 1999-2004 Brian Paul. |
40 | FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org). | 68 | Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited. |
41 | GL Copyright (C) 1999-2004 Brian Paul. | 69 | jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW) |
42 | Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited. | 70 | jpeglib Copyright (C) 1991-1998, Thomas G. Lane. |
43 | jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW) | 71 | ogg/vorbis Copyright (C) 2001, Xiphophorus |
44 | jpeglib Copyright (C) 1991-1998, Thomas G. Lane. | 72 | OpenSSL Copyright (C) 1998-2002 The OpenSSL Project. |
45 | ogg/vorbis Copyright (C) 2001, Xiphophorus | 73 | SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga |
46 | OpenSSL Copyright (C) 1998-2002 The OpenSSL Project. | 74 | SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
47 | SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga | 75 | xmlrpc-epi Copyright (C) 2000 Epinions, Inc. |
48 | SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 76 | zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler. |
49 | xmlrpc-epi Copyright (C) 2000 Epinions, Inc. | 77 | google-perftools Copyright (c) 2005, Google Inc. |
50 | zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler. | 78 | Code from FAAD2 is copyright (c) Nero AG, www.nero.com |
51 | google-perftools Copyright (c) 2005, Google Inc. | ||
52 | Code from FAAD2 is copyright (c) Nero AG, www.nero.com | ||
53 | 79 | ||
54 | All rights reserved. See LICENSE-libraries.txt for details. | 80 | All rights reserved. See LICENSE-libraries.txt for details. |
55 | 81 | ||
56 | Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C) | 82 | Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C) |
57 | 83 | ||
58 | 84 | ||
59 | I live in the future, just waiting for the rest of you to catch up. -- onefang Rejected </text_editor> | 85 | I live in the future, just waiting for the rest of you to catch up. -- onefang Rejected |
60 | 86 | </text_editor> | |
61 | <text_editor bottom_delta="174" embedded_items="false" | 87 | </panel> |
62 | follows="left|top|right|bottom" font="SansSerif" height="238" left="6" | 88 | </tab_container> |
63 | max_length="65536" mouse_opaque="true" name="support_editor" width="458" | 89 | <string name="you_are_at"> |
64 | word_wrap="true" /> | ||
65 | <string name="you_are_at"> | ||
66 | You are at [POSITION] | 90 | You are at [POSITION] |
67 | </string> | 91 | </string> |
68 | </floater> | 92 | </floater> |
93 | |||
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_media_filter.xml b/linden/indra/newview/skins/default/xui/en-us/floater_media_filter.xml new file mode 100644 index 0000000..9b7355c --- /dev/null +++ b/linden/indra/newview/skins/default/xui/en-us/floater_media_filter.xml | |||
@@ -0,0 +1,61 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater name="floatermediafilter" title="Media Filter" rect_control="MediaFilterRect" | ||
3 | can_close="true" can_drag_on_left="false" can_minimize="true" can_resize="true" | ||
4 | height="350" width="600" min_height="350" min_width="600"> | ||
5 | <text name="info1" font="SansSerif" mouse_opaque="true" halign="center" | ||
6 | bottom_delta="-45" left="20" height="20" width="560" follows="left|right|top"> | ||
7 | Domains in bold are in the persistent list (i.e. they are whitelisted or blacklisted). | ||
8 | </text> | ||
9 | <text name="info2" font="SansSerif" mouse_opaque="true" halign="center" | ||
10 | bottom_delta="-20" left="20" height="20" width="560" follows="left|right|top"> | ||
11 | Domains in italics are in the session list (i.e. they are temporarily allowed or denied). | ||
12 | </text> | ||
13 | |||
14 | <scroll_list name="whitelist_list" follows="top|bottom|left" | ||
15 | background_visible="true" mouse_opaque="true" | ||
16 | multi_select="false" column_padding="5" draw_border="true" draw_heading="true" | ||
17 | bottom_delta="-205" left="15" height="200" width="280"> | ||
18 | <column name="whitelist_col" label="Allowed domains/objects" dynamicwidth="true" /> | ||
19 | </scroll_list> | ||
20 | |||
21 | <scroll_list name="blacklist_list" follows="top|bottom|right" | ||
22 | background_visible="true" mouse_opaque="true" | ||
23 | multi_select="false" column_padding="5" draw_border="true" draw_heading="true" | ||
24 | bottom_delta="0" right="-15" height="200" width="280"> | ||
25 | <column name="blacklist_col" label="Blocked domains/objects" dynamicwidth="true" /> | ||
26 | </scroll_list> | ||
27 | |||
28 | <button name="add_whitelist" font="SansSerif" label="Add..." halign="center" | ||
29 | enabled="true" mouse_opaque="true" follows="bottom|left" | ||
30 | bottom_delta="-25" left="30" height="20" width="80" /> | ||
31 | |||
32 | <button name="remove_whitelist" font="SansSerif" label="Remove" halign="center" | ||
33 | enabled="true" mouse_opaque="true" follows="bottom|left" | ||
34 | bottom_delta="0" left_delta="100" height="20" width="80" /> | ||
35 | |||
36 | <button name="clear_lists" font="SansSerif" label="Clear lists" halign="center" | ||
37 | enabled="true" mouse_opaque="true" follows="bottom|left|right" | ||
38 | bottom_delta="0" left_delta="110" height="20" width="120" /> | ||
39 | |||
40 | <button name="add_blacklist" font="SansSerif" label="Add..." halign="center" | ||
41 | enabled="true" mouse_opaque="true" follows="bottom|right" | ||
42 | bottom_delta="0" right="-130" height="20" width="80" /> | ||
43 | |||
44 | <button name="remove_blacklist" font="SansSerif" label="Remove" halign="center" | ||
45 | enabled="true" mouse_opaque="true" follows="bottom|right" | ||
46 | bottom_delta="0" right="-30" height="20" width="80" /> | ||
47 | |||
48 | <text name="add_text" font="SansSerif" mouse_opaque="true" enabled="true" | ||
49 | bottom_delta="-25" left="20" height="20" width="500" follows="left|right|bottom"> | ||
50 | New domain: | ||
51 | </text> | ||
52 | |||
53 | <line_editor name="input_domain" max_length="255" font="SansSerif" enabled="false" | ||
54 | select_all_on_focus_received="true" select_on_focus="true" | ||
55 | bevel_style="in" border_style="line" border_thickness="1" | ||
56 | bottom_delta="-20" right="-100" height="20" left="15" follows="left|bottom|right"/> | ||
57 | |||
58 | <button name="commit_domain" font="SansSerif" label="Add" halign="center" enabled="false" | ||
59 | mouse_opaque="true" follows="bottom|right" | ||
60 | bottom_delta="0" right="-15" height="20" width="80"/> | ||
61 | </floater> | ||
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_login.xml b/linden/indra/newview/skins/default/xui/en-us/menu_login.xml index 6fc6c57..87907ec 100644 --- a/linden/indra/newview/skins/default/xui/en-us/menu_login.xml +++ b/linden/indra/newview/skins/default/xui/en-us/menu_login.xml | |||
@@ -1,5 +1,5 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <menu_bar name="Login Menu" opaque="true" tear_off="false" height="18" bottom="-18"> | 2 | <menu_bar name="Login Menu" opaque="true" tear_off="false" height="18" bottom="-18" follows="left|top|right"> |
3 | <menu create_jump_keys="true" label="File" name="File" opaque="true" tear_off="false"> | 3 | <menu create_jump_keys="true" label="File" name="File" opaque="true" tear_off="false"> |
4 | <menu_item_call label="Quit" name="Quit" shortcut="control|Q"> | 4 | <menu_item_call label="Quit" name="Quit" shortcut="control|Q"> |
5 | <on_click function="File.Quit" userdata="" /> | 5 | <on_click function="File.Quit" userdata="" /> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml index 97d339f..93ebd1c 100644 --- a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml +++ b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml | |||
@@ -277,6 +277,11 @@ | |||
277 | <on_click function="ShowAgentGroups" | 277 | <on_click function="ShowAgentGroups" |
278 | userdata="agent" /> | 278 | userdata="agent" /> |
279 | </menu_item_call> | 279 | </menu_item_call> |
280 | <menu_item_check bottom="-192" enabled="true" height="19" label="Media Filter" left="0" | ||
281 | mouse_opaque="true" name="Media Filter" width="211"> | ||
282 | <on_click function="ShowFloater" userdata="media filter" /> | ||
283 | <on_check function="FloaterVisible" userdata="media filter" /> | ||
284 | </menu_item_check> | ||
280 | <menu_item_separator /> | 285 | <menu_item_separator /> |
281 | <menu_item_call name="Preferences..." label="Preferences..." | 286 | <menu_item_call name="Preferences..." label="Preferences..." |
282 | shortcut="control|P"> | 287 | shortcut="control|P"> |
@@ -1343,6 +1348,18 @@ | |||
1343 | <on_check function="Advanced.CheckInfoDisplay" | 1348 | <on_check function="Advanced.CheckInfoDisplay" |
1344 | userdata="glow" /> | 1349 | userdata="glow" /> |
1345 | </menu_item_check> | 1350 | </menu_item_check> |
1351 | <menu_item_check name="Raycasting" label="Raycasting"> | ||
1352 | <on_click function="Advanced.ToggleInfoDisplay" | ||
1353 | userdata="raycasting" /> | ||
1354 | <on_check function="Advanced.CheckInfoDisplay" | ||
1355 | userdata="raycasting" /> | ||
1356 | </menu_item_check> | ||
1357 | <menu_item_check name="Sculpt" label="Sculpt"> | ||
1358 | <on_click function="Advanced.ToggleInfoDisplay" | ||
1359 | userdata="sculpt" /> | ||
1360 | <on_check function="Advanced.CheckInfoDisplay" | ||
1361 | userdata="sculpt" /> | ||
1362 | </menu_item_check> | ||
1346 | <menu_item_check name="Vectorize Perf Test" | 1363 | <menu_item_check name="Vectorize Perf Test" |
1347 | label="Vectorize Perf Test"> | 1364 | label="Vectorize Perf Test"> |
1348 | <on_click function="ToggleControl" | 1365 | <on_click function="ToggleControl" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/notifications.xml b/linden/indra/newview/skins/default/xui/en-us/notifications.xml index 4cea9ce..320ed18 100644 --- a/linden/indra/newview/skins/default/xui/en-us/notifications.xml +++ b/linden/indra/newview/skins/default/xui/en-us/notifications.xml | |||
@@ -7299,6 +7299,56 @@ The Second Life Terms of Service do not allow you to opt out. By logging in to S | |||
7299 | notext="Cancel"/> | 7299 | notext="Cancel"/> |
7300 | </notification> | 7300 | </notification> |
7301 | 7301 | ||
7302 | <notification | ||
7303 | icon="alert.tga" | ||
7304 | name="MediaAlert" | ||
7305 | type="alert"> | ||
7306 | The owner of this parcel has requested [TYPE] URL pertaining to the following domain or scripted object to be loaded by your viewer[WARNING]: | ||
7307 | |||
7308 | [DOMAIN] | ||
7309 | |||
7310 | "Allow" and "Deny" apply only for this session, while "Blacklist" and "Whitelist" apply forever to the above domain or scripted object. | ||
7311 | <form name="form"> | ||
7312 | <button | ||
7313 | index="0" | ||
7314 | name="Allow" | ||
7315 | text="Allow"/> | ||
7316 | <button | ||
7317 | index="1" | ||
7318 | name="Deny" | ||
7319 | text="Deny"/> | ||
7320 | <button | ||
7321 | index="2" | ||
7322 | name="Blacklist" | ||
7323 | text="Blacklist"/> | ||
7324 | <button | ||
7325 | index="3" | ||
7326 | name="Whitelist" | ||
7327 | text="Whitelist"/> | ||
7328 | </form> | ||
7329 | </notification> | ||
7330 | |||
7331 | <notification | ||
7332 | icon="alert.tga" | ||
7333 | name="MediaListed" | ||
7334 | type="alert"> | ||
7335 | Media/audio URLs for [DOMAIN] now [LISTED] | ||
7336 | </notification> | ||
7337 | |||
7338 | <notification | ||
7339 | icon="notifytip.tga" | ||
7340 | name="MediaBlocked" | ||
7341 | type="notifytip"> | ||
7342 | Media/audio URL blocked for [DOMAIN] | ||
7343 | </notification> | ||
7344 | |||
7345 | <notification | ||
7346 | icon="alertmodal.tga" | ||
7347 | name="MediaFiltersCleared" | ||
7348 | type="alertmodal"> | ||
7349 | The media filters have been cleared | ||
7350 | </notification> | ||
7351 | |||
7302 | <!--End Imprudence notifications--> | 7352 | <!--End Imprudence notifications--> |
7303 | <!-- [KITTY VIEWER] --> | 7353 | <!-- [KITTY VIEWER] --> |
7304 | <notification | 7354 | <notification |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml index e64f6c7..fe17e7a 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml | |||
@@ -22,6 +22,9 @@ | |||
22 | <string name="log_in_to_change"> | 22 | <string name="log_in_to_change"> |
23 | log in to change | 23 | log in to change |
24 | </string> | 24 | </string> |
25 | <string name="default_email_used"> | ||
26 | using default address | ||
27 | </string> | ||
25 | <check_box bottom="-45" enabled="true" follows="left|top" font="SansSerifSmall" | 28 | <check_box bottom="-45" enabled="true" follows="left|top" font="SansSerifSmall" |
26 | height="16" initial_value="false" label="Send IM to email ([EMAIL])" | 29 | height="16" initial_value="false" label="Send IM to email ([EMAIL])" |
27 | left="148" mouse_opaque="true" name="send_im_to_email" radio_style="false" | 30 | left="148" mouse_opaque="true" name="send_im_to_email" radio_style="false" |
diff --git a/linden/indra/newview/slfloatermediafilter.cpp b/linden/indra/newview/slfloatermediafilter.cpp new file mode 100644 index 0000000..c47ed26 --- /dev/null +++ b/linden/indra/newview/slfloatermediafilter.cpp | |||
@@ -0,0 +1,350 @@ | |||
1 | /** | ||
2 | * @file slfloatermediafilter.cpp | ||
3 | * @brief The SLFloaterMediaFilter class definitions | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2011&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2011, Sione Lomu | ||
8 | * with debugging and improvements by Henri Beauchamp | ||
9 | * | ||
10 | * Second Life Viewer Source Code | ||
11 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
12 | * to you under the terms of the GNU General Public License, version 2.0 | ||
13 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
14 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
15 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
16 | * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
17 | * | ||
18 | * There are special exceptions to the terms and conditions of the GPL as | ||
19 | * it is applied to this Source Code. View the full text of the exception | ||
20 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
21 | * online at | ||
22 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
23 | * | ||
24 | * By copying, modifying or distributing this software, you acknowledge | ||
25 | * that you have read and understood your obligations described above, | ||
26 | * and agree to abide by those obligations. | ||
27 | * | ||
28 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
29 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
30 | * COMPLETENESS OR PERFORMANCE. | ||
31 | * $/LicenseInfo$ | ||
32 | */ | ||
33 | |||
34 | #include "llviewerprecompiledheaders.h" | ||
35 | |||
36 | #include "lllineeditor.h" | ||
37 | #include "llscrolllistctrl.h" | ||
38 | #include "lluictrlfactory.h" | ||
39 | |||
40 | #include "slfloatermediafilter.h" | ||
41 | #include "llviewercontrol.h" | ||
42 | #include "llviewerparcelmedia.h" | ||
43 | |||
44 | SLFloaterMediaFilter* SLFloaterMediaFilter::sInstance = NULL; | ||
45 | bool SLFloaterMediaFilter::sIsWhitelist = false; | ||
46 | |||
47 | SLFloaterMediaFilter::SLFloaterMediaFilter() : LLFloater(std::string("media filter")), mIsDirty(false) | ||
48 | { | ||
49 | LLUICtrlFactory::getInstance()->buildFloater(this, "floater_media_filter.xml"); | ||
50 | } | ||
51 | |||
52 | SLFloaterMediaFilter::~SLFloaterMediaFilter() | ||
53 | { | ||
54 | sInstance = NULL; | ||
55 | } | ||
56 | |||
57 | BOOL SLFloaterMediaFilter::postBuild() | ||
58 | { | ||
59 | mWhitelistSLC = getChild<LLScrollListCtrl>("whitelist_list"); | ||
60 | mBlacklistSLC = getChild<LLScrollListCtrl>("blacklist_list"); | ||
61 | |||
62 | if (mWhitelistSLC && mBlacklistSLC) | ||
63 | { | ||
64 | childSetAction("clear_lists", onClearLists, this); | ||
65 | childSetAction("add_whitelist", onWhitelistAdd, this); | ||
66 | childSetAction("remove_whitelist", onWhitelistRemove, this); | ||
67 | childSetAction("add_blacklist", onBlacklistAdd, this); | ||
68 | childSetAction("remove_blacklist", onBlacklistRemove, this); | ||
69 | childSetAction("commit_domain", onCommitDomain, this); | ||
70 | childSetUserData("whitelist_list", this); | ||
71 | childSetUserData("blacklist_list", this); | ||
72 | mIsDirty = true; | ||
73 | } | ||
74 | |||
75 | return TRUE; | ||
76 | } | ||
77 | |||
78 | void SLFloaterMediaFilter::draw() | ||
79 | { | ||
80 | if (mIsDirty && mWhitelistSLC && mBlacklistSLC) | ||
81 | { | ||
82 | S32 whitescrollpos = mWhitelistSLC->getScrollPos(); | ||
83 | S32 blackscrollpos = mBlacklistSLC->getScrollPos(); | ||
84 | mWhitelistSLC->deleteAllItems(); | ||
85 | mBlacklistSLC->deleteAllItems(); | ||
86 | std::set<std::string> listed; | ||
87 | std::string domain; | ||
88 | std::string action; | ||
89 | LLSD element; | ||
90 | element["columns"][0]["font"] = "SANSSERIF"; | ||
91 | element["columns"][0]["font-style"] = "BOLD"; | ||
92 | for (S32 i = 0; i < (S32)LLViewerParcelMedia::sMediaFilterList.size(); i++) | ||
93 | { | ||
94 | domain = LLViewerParcelMedia::sMediaFilterList[i]["domain"].asString(); | ||
95 | action = LLViewerParcelMedia::sMediaFilterList[i]["action"].asString(); | ||
96 | if (!domain.empty() && action == "allow") | ||
97 | { | ||
98 | element["columns"][0]["column"] = "whitelist_col"; | ||
99 | element["columns"][0]["value"] = domain; | ||
100 | //element["columns"][0]["color"] = LLColor4::green3.getValue(); | ||
101 | mWhitelistSLC->addElement(element, ADD_BOTTOM); | ||
102 | listed.insert(domain); | ||
103 | } | ||
104 | else if (!domain.empty() && action == "deny") | ||
105 | { | ||
106 | element["columns"][0]["column"] = "blacklist_col"; | ||
107 | element["columns"][0]["value"] = domain; | ||
108 | //element["columns"][0]["color"] = LLColor4::red2.getValue(); | ||
109 | mBlacklistSLC->addElement(element, ADD_BOTTOM); | ||
110 | listed.insert(domain); | ||
111 | } | ||
112 | else | ||
113 | { | ||
114 | LL_WARNS("MediaFilter") << "Bad media filter list: removing corrupted entry for \"" << domain << "\"" << LL_ENDL; | ||
115 | LLViewerParcelMedia::sMediaFilterList.erase(i--); | ||
116 | } | ||
117 | } | ||
118 | std::set<std::string>::iterator it; | ||
119 | element["columns"][0]["font"] = "SANSSERIF"; | ||
120 | element["columns"][0]["font-style"] = "ITALIC"; | ||
121 | //element["columns"][0]["color"] = LLColor4::green3.getValue(); | ||
122 | element["columns"][0]["column"] = "whitelist_col"; | ||
123 | for (it = LLViewerParcelMedia::sAllowedMedia.begin(); it != LLViewerParcelMedia::sAllowedMedia.end(); it++) | ||
124 | { | ||
125 | domain = *it; | ||
126 | if (listed.count(domain) == 0) | ||
127 | { | ||
128 | element["columns"][0]["value"] = domain; | ||
129 | mWhitelistSLC->addElement(element, ADD_BOTTOM); | ||
130 | } | ||
131 | } | ||
132 | element["columns"][0]["column"] = "blacklist_col"; | ||
133 | for (it = LLViewerParcelMedia::sDeniedMedia.begin(); it != LLViewerParcelMedia::sDeniedMedia.end(); it++) | ||
134 | { | ||
135 | domain = *it; | ||
136 | if (listed.count(domain) == 0) | ||
137 | { | ||
138 | element["columns"][0]["value"] = domain; | ||
139 | mBlacklistSLC->addElement(element, ADD_BOTTOM); | ||
140 | } | ||
141 | } | ||
142 | mWhitelistSLC->setScrollPos(whitescrollpos); | ||
143 | mBlacklistSLC->setScrollPos(blackscrollpos); | ||
144 | |||
145 | if (!gSavedSettings.getBOOL("MediaEnableFilter")) | ||
146 | { | ||
147 | childDisable("clear_lists"); | ||
148 | childDisable("blacklist_list"); | ||
149 | childDisable("whitelist_list"); | ||
150 | childDisable("remove_whitelist"); | ||
151 | childDisable("add_whitelist"); | ||
152 | childDisable("remove_blacklist"); | ||
153 | childDisable("add_blacklist"); | ||
154 | childDisable("input_domain"); | ||
155 | childDisable("commit_domain"); | ||
156 | childSetText("add_text", std::string("****** WARNING: media filtering is currently DISABLED ******")); | ||
157 | } | ||
158 | |||
159 | mIsDirty = false; | ||
160 | } | ||
161 | |||
162 | LLFloater::draw(); | ||
163 | } | ||
164 | |||
165 | void SLFloaterMediaFilter::setDirty() | ||
166 | { | ||
167 | if (sInstance) | ||
168 | { | ||
169 | sInstance->mIsDirty = true; | ||
170 | sInstance->draw(); | ||
171 | } | ||
172 | } | ||
173 | |||
174 | BOOL SLFloaterMediaFilter::instanceVisible() | ||
175 | { | ||
176 | if (sInstance) | ||
177 | { | ||
178 | return sInstance->getVisible(); | ||
179 | } | ||
180 | else | ||
181 | { | ||
182 | return FALSE; | ||
183 | } | ||
184 | } | ||
185 | |||
186 | void SLFloaterMediaFilter::toggleInstance() | ||
187 | { | ||
188 | if (sInstance) | ||
189 | { | ||
190 | if (sInstance->getVisible()) | ||
191 | { | ||
192 | sInstance->destroy(); | ||
193 | } | ||
194 | else | ||
195 | { | ||
196 | sInstance->open(); | ||
197 | } | ||
198 | } | ||
199 | else | ||
200 | { | ||
201 | sInstance = new SLFloaterMediaFilter(); | ||
202 | sInstance->open(); | ||
203 | } | ||
204 | } | ||
205 | |||
206 | void SLFloaterMediaFilter::onClearLists(void* data) | ||
207 | { | ||
208 | LLViewerParcelMedia::clearDomainFilterList(); | ||
209 | } | ||
210 | |||
211 | void SLFloaterMediaFilter::onWhitelistAdd(void* data) | ||
212 | { | ||
213 | if (!sInstance) | ||
214 | { | ||
215 | return; | ||
216 | } | ||
217 | sInstance->childDisable("clear_lists"); | ||
218 | sInstance->childDisable("blacklist_list"); | ||
219 | sInstance->childDisable("whitelist_list"); | ||
220 | sInstance->childDisable("remove_whitelist"); | ||
221 | sInstance->childDisable("add_whitelist"); | ||
222 | sInstance->childDisable("remove_blacklist"); | ||
223 | sInstance->childDisable("add_blacklist"); | ||
224 | sInstance->childEnable("input_domain"); | ||
225 | sInstance->childEnable("commit_domain"); | ||
226 | sInstance->childSetText("add_text", std::string("Enter the domain/url to add to the white list:")); | ||
227 | sIsWhitelist = true; | ||
228 | } | ||
229 | |||
230 | void SLFloaterMediaFilter::onWhitelistRemove(void* data) | ||
231 | { | ||
232 | if (!sInstance) | ||
233 | { | ||
234 | return; | ||
235 | } | ||
236 | LLScrollListItem* selected = sInstance->mWhitelistSLC->getFirstSelected(); | ||
237 | |||
238 | if (selected) | ||
239 | { | ||
240 | std::string domain = sInstance->mWhitelistSLC->getSelectedItemLabel(); | ||
241 | LLViewerParcelMedia::sAllowedMedia.erase(domain); | ||
242 | |||
243 | for (S32 i = 0; i < (S32)LLViewerParcelMedia::sMediaFilterList.size(); i++) | ||
244 | { | ||
245 | if (LLViewerParcelMedia::sMediaFilterList[i]["domain"].asString() == domain) | ||
246 | { | ||
247 | LLViewerParcelMedia::sMediaFilterList.erase(i); | ||
248 | LLViewerParcelMedia::saveDomainFilterList(); | ||
249 | break; | ||
250 | } | ||
251 | } | ||
252 | |||
253 | setDirty(); | ||
254 | } | ||
255 | } | ||
256 | |||
257 | void SLFloaterMediaFilter::onBlacklistAdd(void* data) | ||
258 | { | ||
259 | if (!sInstance) | ||
260 | { | ||
261 | return; | ||
262 | } | ||
263 | sInstance->childDisable("clear_lists"); | ||
264 | sInstance->childDisable("blacklist_list"); | ||
265 | sInstance->childDisable("whitelist_list"); | ||
266 | sInstance->childDisable("remove_whitelist"); | ||
267 | sInstance->childDisable("add_whitelist"); | ||
268 | sInstance->childDisable("remove_blacklist"); | ||
269 | sInstance->childDisable("add_blacklist"); | ||
270 | sInstance->childEnable("input_domain"); | ||
271 | sInstance->childEnable("commit_domain"); | ||
272 | sInstance->childSetText("add_text", std::string("Enter the domain/url to add to the black list:")); | ||
273 | sIsWhitelist = false; | ||
274 | } | ||
275 | |||
276 | void SLFloaterMediaFilter::onBlacklistRemove(void* data) | ||
277 | { | ||
278 | if (!sInstance) | ||
279 | { | ||
280 | return; | ||
281 | } | ||
282 | LLScrollListItem* selected = sInstance->mBlacklistSLC->getFirstSelected(); | ||
283 | |||
284 | if (selected) | ||
285 | { | ||
286 | std::string domain = sInstance->mBlacklistSLC->getSelectedItemLabel(); | ||
287 | LLViewerParcelMedia::sDeniedMedia.erase(domain); | ||
288 | |||
289 | for (S32 i = 0; i < (S32)LLViewerParcelMedia::sMediaFilterList.size(); i++) | ||
290 | { | ||
291 | if (LLViewerParcelMedia::sMediaFilterList[i]["domain"].asString() == domain) | ||
292 | { | ||
293 | LLViewerParcelMedia::sMediaFilterList.erase(i); | ||
294 | LLViewerParcelMedia::saveDomainFilterList(); | ||
295 | break; | ||
296 | } | ||
297 | } | ||
298 | |||
299 | setDirty(); | ||
300 | } | ||
301 | } | ||
302 | |||
303 | void SLFloaterMediaFilter::onCommitDomain(void* data) | ||
304 | { | ||
305 | if (!sInstance) | ||
306 | { | ||
307 | return; | ||
308 | } | ||
309 | std::string domain = sInstance->childGetText("input_domain"); | ||
310 | domain = LLViewerParcelMedia::extractDomain(domain); | ||
311 | |||
312 | if (!domain.empty()) | ||
313 | { | ||
314 | LLViewerParcelMedia::sDeniedMedia.erase(domain); | ||
315 | LLViewerParcelMedia::sAllowedMedia.erase(domain); | ||
316 | for (S32 i = 0; i < (S32)LLViewerParcelMedia::sMediaFilterList.size(); i++) | ||
317 | { | ||
318 | if (LLViewerParcelMedia::sMediaFilterList[i]["domain"].asString() == domain) | ||
319 | { | ||
320 | LLViewerParcelMedia::sMediaFilterList.erase(i); | ||
321 | break; | ||
322 | } | ||
323 | } | ||
324 | LLSD newmedia; | ||
325 | newmedia["domain"] = domain; | ||
326 | if (sIsWhitelist) | ||
327 | { | ||
328 | newmedia["action"] = "allow"; | ||
329 | } | ||
330 | else | ||
331 | { | ||
332 | newmedia["action"] = "deny"; | ||
333 | } | ||
334 | LLViewerParcelMedia::sMediaFilterList.append(newmedia); | ||
335 | LLViewerParcelMedia::saveDomainFilterList(); | ||
336 | } | ||
337 | |||
338 | sInstance->childEnable("clear_lists"); | ||
339 | sInstance->childEnable("blacklist_list"); | ||
340 | sInstance->childEnable("whitelist_list"); | ||
341 | sInstance->childEnable("remove_whitelist"); | ||
342 | sInstance->childEnable("add_whitelist"); | ||
343 | sInstance->childEnable("remove_blacklist"); | ||
344 | sInstance->childEnable("add_blacklist"); | ||
345 | sInstance->childDisable("input_domain"); | ||
346 | sInstance->childDisable("commit_domain"); | ||
347 | sInstance->childSetText("add_text", std::string("New domain:")); | ||
348 | sInstance->childSetText("input_domain", std::string("")); | ||
349 | setDirty(); | ||
350 | } | ||
diff --git a/linden/indra/newview/slfloatermediafilter.h b/linden/indra/newview/slfloatermediafilter.h new file mode 100644 index 0000000..0f900be --- /dev/null +++ b/linden/indra/newview/slfloatermediafilter.h | |||
@@ -0,0 +1,70 @@ | |||
1 | /** | ||
2 | * @file slfloatermediafilter.h | ||
3 | * @brief The SLFloaterMediaFilter class declaration | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2011&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2011, Sione Lomu | ||
8 | * with debugging and improvements by Henri Beauchamp | ||
9 | * | ||
10 | * Second Life Viewer Source Code | ||
11 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
12 | * to you under the terms of the GNU General Public License, version 2.0 | ||
13 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
14 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
15 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
16 | * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
17 | * | ||
18 | * There are special exceptions to the terms and conditions of the GPL as | ||
19 | * it is applied to this Source Code. View the full text of the exception | ||
20 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
21 | * online at | ||
22 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
23 | * | ||
24 | * By copying, modifying or distributing this software, you acknowledge | ||
25 | * that you have read and understood your obligations described above, | ||
26 | * and agree to abide by those obligations. | ||
27 | * | ||
28 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
29 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
30 | * COMPLETENESS OR PERFORMANCE. | ||
31 | * $/LicenseInfo$ | ||
32 | */ | ||
33 | |||
34 | #ifndef LL_SLFLOATERMEDIAFILTER_H | ||
35 | #define LL_SLFLOATERMEDIAFILTER_H | ||
36 | |||
37 | #include "llfloater.h" | ||
38 | |||
39 | class LLScrollListCtrl; | ||
40 | class LLButton; | ||
41 | |||
42 | class SLFloaterMediaFilter : public LLFloater | ||
43 | { | ||
44 | public: | ||
45 | SLFloaterMediaFilter(); | ||
46 | BOOL postBuild(); | ||
47 | virtual void draw(); | ||
48 | virtual ~SLFloaterMediaFilter(); | ||
49 | |||
50 | static void setDirty(); | ||
51 | static BOOL instanceVisible(); | ||
52 | static void toggleInstance(); | ||
53 | |||
54 | static void onClearLists(void*); | ||
55 | static void onWhitelistAdd(void*); | ||
56 | static void onWhitelistRemove(void*); | ||
57 | static void onBlacklistAdd(void*); | ||
58 | static void onBlacklistRemove(void*); | ||
59 | static void onCommitDomain(void*); | ||
60 | |||
61 | private: | ||
62 | static bool sIsWhitelist; | ||
63 | LLScrollListCtrl* mWhitelistSLC; | ||
64 | LLScrollListCtrl* mBlacklistSLC; | ||
65 | bool mIsDirty; | ||
66 | |||
67 | static SLFloaterMediaFilter* sInstance; | ||
68 | |||
69 | }; | ||
70 | #endif | ||
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py index a053861..81811a9 100755 --- a/linden/indra/newview/viewer_manifest.py +++ b/linden/indra/newview/viewer_manifest.py | |||
@@ -65,6 +65,9 @@ class ViewerManifest(LLManifest): | |||
65 | self.path("shaders") | 65 | self.path("shaders") |
66 | # ... and the entire windlight directory | 66 | # ... and the entire windlight directory |
67 | self.path("windlight") | 67 | self.path("windlight") |
68 | # ...and the entire dictionaries directory | ||
69 | self.path("dictionaries") | ||
70 | |||
68 | self.end_prefix("app_settings") | 71 | self.end_prefix("app_settings") |
69 | 72 | ||
70 | if self.prefix(src="character"): | 73 | if self.prefix(src="character"): |
@@ -134,7 +137,6 @@ class ViewerManifest(LLManifest): | |||
134 | self.path("README.txt") | 137 | self.path("README.txt") |
135 | self.path("MANIFESTO.txt") | 138 | self.path("MANIFESTO.txt") |
136 | self.path("CONTRIBUTE.txt") | 139 | self.path("CONTRIBUTE.txt") |
137 | self.path("RELEASE_NOTES.txt") | ||
138 | self.path("ChangeLog.txt", required=False) | 140 | self.path("ChangeLog.txt", required=False) |
139 | self.end_prefix("../../..") | 141 | self.end_prefix("../../..") |
140 | 142 | ||
@@ -280,6 +282,11 @@ class WindowsManifest(ViewerManifest): | |||
280 | if self.prefix(src='../media_plugins/webkit/%s' % self.args['configuration'], dst="llplugin"): | 282 | if self.prefix(src='../media_plugins/webkit/%s' % self.args['configuration'], dst="llplugin"): |
281 | self.path("media_plugin_webkit.dll") | 283 | self.path("media_plugin_webkit.dll") |
282 | self.end_prefix() | 284 | self.end_prefix() |
285 | |||
286 | # Media plugins - GStreamer | ||
287 | if self.prefix(src='../media_plugins/gstreamer010/%s' % self.args['configuration'], dst="llplugin"): | ||
288 | self.path("media_plugin_gstreamer010.dll") | ||
289 | self.end_prefix() | ||
283 | 290 | ||
284 | # For WebKit/Qt plugin runtimes | 291 | # For WebKit/Qt plugin runtimes |
285 | if self.prefix(src="../../libraries/i686-win32/lib/release", dst="llplugin"): | 292 | if self.prefix(src="../../libraries/i686-win32/lib/release", dst="llplugin"): |
@@ -303,9 +310,6 @@ class WindowsManifest(ViewerManifest): | |||
303 | self.path("qtiff4.dll") | 310 | self.path("qtiff4.dll") |
304 | self.end_prefix() | 311 | self.end_prefix() |
305 | 312 | ||
306 | # Per platform MIME config on the cheap. See SNOW-307 / DEV-41388 | ||
307 | self.path("skins/default/xui/en-us/mime_types_windows.xml", "skins/default/xui/en-us/mime_types.xml") | ||
308 | |||
309 | # These need to be installed as a SxS assembly, currently a 'private' assembly. | 313 | # These need to be installed as a SxS assembly, currently a 'private' assembly. |
310 | # See http://msdn.microsoft.com/en-us/library/ms235291(VS.80).aspx | 314 | # See http://msdn.microsoft.com/en-us/library/ms235291(VS.80).aspx |
311 | if self.prefix(src=self.args['configuration'], dst=""): | 315 | if self.prefix(src=self.args['configuration'], dst=""): |
@@ -346,64 +350,74 @@ class WindowsManifest(ViewerManifest): | |||
346 | self.path("ortp.dll") | 350 | self.path("ortp.dll") |
347 | 351 | ||
348 | self.end_prefix() | 352 | self.end_prefix() |
349 | # Gstreamer is not used in webkit_plugins. The librries are never delivered/extracted to | 353 | |
350 | # ../../libraries/i686-win32/lib/release . Commented out until decision made to use or drop. | ||
351 | # Gstreamer plugins | 354 | # Gstreamer plugins |
352 | #if self.prefix(src="lib/gstreamer-plugins", dst=""): | 355 | if self.prefix(src="lib/gstreamer-plugins", dst=""): |
353 | # self.path("*.dll", dst="lib/gstreamer-plugins/*.dll") | 356 | self.path("*.dll", dst="lib/gstreamer-plugins/*.dll") |
354 | # self.end_prefix() | 357 | self.end_prefix() |
355 | 358 | ||
356 | # Gstreamer libs | 359 | # Gstreamer libs |
357 | #if (not self.standalone()) and self.prefix(src="../../libraries/i686-win32/lib/release", dst=""): | 360 | if (not self.standalone()) and self.prefix(src="../../libraries/i686-win32/lib/release", dst=""): |
358 | # self.path("iconv.dll") | 361 | self.path("avcodec-gpl-52.dll") |
359 | # self.path("libxml2.dll") | 362 | self.path("avdevice-gpl-52.dll") |
360 | # self.path("libcairo-2.dll") | 363 | self.path("avfilter-gpl-1.dll") |
361 | # self.path("libgio-2.0-0.dll") | 364 | self.path("avformat-gpl-52.dll") |
362 | # self.path("libglib-2.0-0.dll") | 365 | self.path("avutil-gpl-50.dll") |
363 | # self.path("libgmodule-2.0-0.dll") | 366 | self.path("iconv.dll") |
364 | # self.path("libgobject-2.0-0.dll") | 367 | self.path("liba52-0.dll") |
365 | # self.path("libgthread-2.0-0.dll") | 368 | self.path("libbz2.dll") |
366 | # self.path("charset.dll") | 369 | self.path("libcelt-0.dll") |
367 | # self.path("intl.dll") | 370 | self.path("libdca-0.dll") |
368 | # self.path("libgcrypt-11.dll") | 371 | self.path("libexpat-1.dll") |
369 | # self.path("libgnutls-26.dll") | 372 | self.path("libfaad-2.dll") |
370 | # self.path("libgpg-error-0.dll") | 373 | self.path("libFLAC-8.dll") |
371 | # self.path("libgstapp.dll") | 374 | self.path("libgcrypt-11.dll") |
372 | # self.path("libgstaudio.dll") | 375 | self.path("libgio-2.0-0.dll") |
373 | # self.path("libgstbase-0.10.dll") | 376 | self.path("libglib-2.0-0.dll") |
374 | # self.path("libgstcdda.dll") | 377 | self.path("libgmodule-2.0-0.dll") |
375 | # self.path("libgstcontroller-0.10.dll") | 378 | self.path("libgnutls-26.dll") |
376 | # self.path("libgstdataprotocol-0.10.dll") | 379 | self.path("libgobject-2.0-0.dll") |
377 | # self.path("libgstdshow.dll") | 380 | self.path("libgpg-error-0.dll") |
378 | # self.path("libgstfft.dll") | 381 | self.path("libgstapp-0.10.dll") |
379 | # self.path("libgstinterfaces.dll") | 382 | self.path("libgstaudio-0.10.dll") |
380 | # self.path("libgstnet-0.10.dll") | 383 | self.path("libgstbase-0.10.dll") |
381 | # self.path("libgstnetbuffer.dll") | 384 | self.path("libgstcontroller-0.10.dll") |
382 | # self.path("libgstpbutils.dll") | 385 | self.path("libgstdataprotocol-0.10.dll") |
383 | # self.path("libgstreamer-0.10.dll") | 386 | self.path("libgstfft-0.10.dll") |
384 | # self.path("libgstriff.dll") | 387 | self.path("libgstinterfaces-0.10.dll") |
385 | # self.path("libgstrtp.dll") | 388 | self.path("libgstnet-0.10.dll") |
386 | # self.path("libgstrtsp.dll") | 389 | self.path("libgstnetbuffer-0.10.dll") |
387 | # self.path("libgstsdp.dll") | 390 | self.path("libgstpbutils-0.10.dll") |
388 | # self.path("libgsttag.dll") | 391 | self.path("libgstphotography-0.10.dll") |
389 | # self.path("libgstvideo.dll") | 392 | self.path("libgstreamer-0.10.dll") |
390 | # self.path("libjpeg.dll") | 393 | self.path("libgstriff-0.10.dll") |
391 | # self.path("libmp3lame-0.dll") | 394 | self.path("libgstrtp-0.10.dll") |
392 | # self.path("libneon-27.dll") | 395 | self.path("libgstrtsp-0.10.dll") |
393 | # self.path("libogg-0.dll") | 396 | self.path("libgstsdp-0.10.dll") |
394 | # self.path("liboil-0.3-0.dll") | 397 | self.path("libgstsignalprocessor-0.10.dll") |
395 | # self.path("libopenjpeg-2.dll") | 398 | self.path("libgsttag-0.10.dll") |
396 | # self.path("libpng12-0.dll") | 399 | self.path("libgstvideo-0.10.dll") |
397 | # self.path("libschroedinger-1.0-0.dll") | 400 | self.path("libgthread-2.0-0.dll") |
398 | # self.path("libspeex-1.dll") | 401 | self.path("libmms-0.dll") |
399 | # self.path("libtheora-0.dll") | 402 | self.path("libmpeg2-0.dll") |
400 | # self.path("libvorbis-0.dll") | 403 | self.path("libneon-27.dll") |
401 | # self.path("libvorbisenc-2.dll") | 404 | self.path("libogg-0.dll") |
402 | # self.path("libxml2-2.dll") | 405 | self.path("liboil-0.3-0.dll") |
403 | # self.path("glew32.dll") | 406 | self.path("libsoup-2.4-1.dll") |
404 | # self.path("xvidcore.dll") | 407 | self.path("libtasn1-3.dll") |
405 | # self.path("zlib1.dll") | 408 | self.path("libtheora-0.dll") |
406 | # self.end_prefix() | 409 | self.path("libtheoradec-1.dll") |
410 | self.path("libvorbis-0.dll") | ||
411 | self.path("libvorbisenc-2.dll") | ||
412 | self.path("libvorbisfile-3.dll") | ||
413 | self.path("libwavpack-1.dll") | ||
414 | self.path("libx264-67.dll") | ||
415 | self.path("libxml2-2.dll") | ||
416 | self.path("libxml2.dll") | ||
417 | self.path("SDL.dll") | ||
418 | self.path("xvidcore.dll") | ||
419 | self.path("z.dll") | ||
420 | self.end_prefix() | ||
407 | 421 | ||
408 | # # pull in the crash logger and updater from other projects | 422 | # # pull in the crash logger and updater from other projects |
409 | # self.path(src=self.find_existing_file( # tag:"crash-logger" here as a cue to the exporter | 423 | # self.path(src=self.find_existing_file( # tag:"crash-logger" here as a cue to the exporter |
@@ -543,11 +557,16 @@ class WindowsManifest(ViewerManifest): | |||
543 | # We use the Unicode version of NSIS, available from | 557 | # We use the Unicode version of NSIS, available from |
544 | # http://www.scratchpaper.com/ | 558 | # http://www.scratchpaper.com/ |
545 | try: | 559 | try: |
546 | NSIS_path = 'C:\\Program Files\\NSIS\\Unicode\\makensis.exe' | 560 | import _winreg as reg |
547 | self.run_command('"' + proper_windows_path(NSIS_path) + '" ' + self.dst_path_of(tempfile)) | 561 | NSIS_path = reg.QueryValue(reg.HKEY_LOCAL_MACHINE, r"SOFTWARE\NSIS\Unicode") + '\\makensis.exe' |
562 | self.run_command('"' + proper_windows_path(NSIS_path) + '" ' + self.dst_path_of(tempfile)) | ||
548 | except: | 563 | except: |
549 | NSIS_path = 'C:\\Program Files (x86)\\NSIS\\Unicode\\makensis.exe' | 564 | try: |
565 | NSIS_path = os.environ['ProgramFiles'] + '\\NSIS\\Unicode\\makensis.exe' | ||
550 | self.run_command('"' + proper_windows_path(NSIS_path) + '" ' + self.dst_path_of(tempfile)) | 566 | self.run_command('"' + proper_windows_path(NSIS_path) + '" ' + self.dst_path_of(tempfile)) |
567 | except: | ||
568 | NSIS_path = os.environ['ProgramFiles(X86)'] + '\\NSIS\\Unicode\\makensis.exe' | ||
569 | self.run_command('"' + proper_windows_path(NSIS_path) + '" ' + self.dst_path_of(tempfile)) | ||
551 | # self.remove(self.dst_path_of(tempfile)) | 570 | # self.remove(self.dst_path_of(tempfile)) |
552 | # If we're on a build machine, sign the code using our Authenticode certificate. JC | 571 | # If we're on a build machine, sign the code using our Authenticode certificate. JC |
553 | sign_py = 'C:\\buildscripts\\code-signing\\sign.py' | 572 | sign_py = 'C:\\buildscripts\\code-signing\\sign.py' |
@@ -577,10 +596,10 @@ class DarwinManifest(ViewerManifest): | |||
577 | self.path("libopenal.1.dylib") | 596 | self.path("libopenal.1.dylib") |
578 | self.path("libalut.0.dylib") | 597 | self.path("libalut.0.dylib") |
579 | 598 | ||
580 | self.path("libglib-2.0.dylib") | 599 | # self.path("libglib-2.0.dylib") |
581 | self.path("libgmodule-2.0.dylib") | 600 | # self.path("libgmodule-2.0.dylib") |
582 | self.path("libgobject-2.0.dylib") | 601 | # self.path("libgobject-2.0.dylib") |
583 | self.path("libgthread-2.0.dylib") | 602 | # self.path("libgthread-2.0.dylib") |
584 | 603 | ||
585 | # self.path("libgstreamer-0.10.dylib") | 604 | # self.path("libgstreamer-0.10.dylib") |
586 | # self.path("libgstapp-0.10.dylib") | 605 | # self.path("libgstapp-0.10.dylib") |
@@ -601,15 +620,15 @@ class DarwinManifest(ViewerManifest): | |||
601 | # self.path("libgsttag-0.10.dylib") | 620 | # self.path("libgsttag-0.10.dylib") |
602 | # self.path("libgstvideo-0.10.dylib") | 621 | # self.path("libgstvideo-0.10.dylib") |
603 | 622 | ||
604 | self.path("libxml2.2.dylib") | 623 | # self.path("libxml2.2.dylib") |
605 | # self.path("libfaad.2.dylib") | 624 | # self.path("libfaad.2.dylib") |
606 | # self.path("libFLAC.8.dylib") | 625 | # self.path("libFLAC.8.dylib") |
607 | self.path("libintl.3.dylib") | 626 | # self.path("libintl.3.dylib") |
608 | self.path("libjpeg.62.dylib") | 627 | self.path("libjpeg.62.dylib") |
609 | self.path("libpng12.0.dylib") | 628 | self.path("libpng12.0.dylib") |
610 | self.path("libneon.27.dylib") | 629 | # self.path("libneon.27.dylib") |
611 | self.path("libogg.0.dylib") | 630 | self.path("libogg.0.dylib") |
612 | self.path("liboil-0.3.0.dylib") | 631 | # self.path("liboil-0.3.0.dylib") |
613 | self.path("libopenjpeg.1.4.dylib") | 632 | self.path("libopenjpeg.1.4.dylib") |
614 | # self.path("libtheora.0.dylib") | 633 | # self.path("libtheora.0.dylib") |
615 | self.path("libvorbis.0.dylib") | 634 | self.path("libvorbis.0.dylib") |
@@ -999,11 +1018,12 @@ class Linux_i686Manifest(LinuxManifest): | |||
999 | self.path("libELFIO.so") | 1018 | self.path("libELFIO.so") |
1000 | self.path("libopenjpeg.so.2") | 1019 | self.path("libopenjpeg.so.2") |
1001 | self.path("libxml2.so.2") | 1020 | self.path("libxml2.so.2") |
1021 | self.path("libz.so") | ||
1002 | self.path("libz.so.1") | 1022 | self.path("libz.so.1") |
1003 | 1023 | ||
1004 | # OpenAL | 1024 | # OpenAL |
1005 | self.path("libopenal.so.1") | 1025 | self.path("libopenal.so.1.12.854", "libopenal.so.1") |
1006 | self.path("libalut.so.0") | 1026 | self.path("libalut.so.0.1.0", "libalut.so.0") |
1007 | 1027 | ||
1008 | # GTK+ and dependencies | 1028 | # GTK+ and dependencies |
1009 | ## Lets just use the system libraries for all of these: | 1029 | ## Lets just use the system libraries for all of these: |
@@ -1135,17 +1155,15 @@ class Linux_x86_64Manifest(LinuxManifest): | |||
1135 | #self.path("libz.so.1") #not needed | 1155 | #self.path("libz.so.1") #not needed |
1136 | 1156 | ||
1137 | # OpenAL | 1157 | # OpenAL |
1138 | self.path("libopenal.so.1") | 1158 | self.path("libopenal.so.1.12.854", "libopenal.so.1") |
1139 | self.path("libalut.so.0") | 1159 | self.path("libalut.so.0.1.0", "libalut.so.0") |
1140 | |||
1141 | # GTK+ and dependencies | 1160 | # GTK+ and dependencies |
1142 | ## Lets just use the system libraries for all of these: | 1161 | ## Lets just use the system libraries for all of these: |
1143 | ##self.path("libatk-1.0.so.0") | 1162 | ##self.path("libatk-1.0.so.0") |
1144 | ##self.path("libcairo.so.2") | 1163 | ##self.path("libcairo.so.2") |
1145 | ##self.path("libfontconfig.so.1") | 1164 | ##self.path("libfontconfig.so.1") |
1146 | ##self.path("libfreetype.so.6") | 1165 | ##self.path("libfreetype.so.6") |
1147 | self.path("libgdk_pixbuf-2.0.so.0") # was commented to use systems gdk pixbufs instead - | 1166 | #self.path("libgdk_pixbuf-2.0.so.0") |
1148 | # but seems webkit needs it o_O . Packaging for testing now. | ||
1149 | ##self.path("libgdk-x11-2.0.so.0") | 1167 | ##self.path("libgdk-x11-2.0.so.0") |
1150 | ##self.path("libgtk-x11-2.0.so.0") | 1168 | ##self.path("libgtk-x11-2.0.so.0") |
1151 | # self.path("libpango-1.0.so.0") # use systems pango instead | 1169 | # self.path("libpango-1.0.so.0") # use systems pango instead |
diff --git a/linden/indra/newview/viewertime.cpp b/linden/indra/newview/viewertime.cpp index 06436b6..5ed9465 100644 --- a/linden/indra/newview/viewertime.cpp +++ b/linden/indra/newview/viewertime.cpp | |||
@@ -28,6 +28,7 @@ | |||
28 | * $/LicenseInfo$ | 28 | * $/LicenseInfo$ |
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include <sstream> | ||
31 | #include "llviewerprecompiledheaders.h" | 32 | #include "llviewerprecompiledheaders.h" |
32 | 33 | ||
33 | #include "llappviewer.h" // for gPacificDaylightTime | 34 | #include "llappviewer.h" // for gPacificDaylightTime |
@@ -129,10 +130,19 @@ void ViewerTime::refresh() | |||
129 | if (hour == 0) hour = 12; | 130 | if (hour == 0) hour = 12; |
130 | } | 131 | } |
131 | 132 | ||
132 | mTZ = "PST"; | 133 | if (sUseTimeOffset) |
133 | if (gPacificDaylightTime) | ||
134 | { | 134 | { |
135 | mTZ = "PDT"; | 135 | std::stringstream myString; |
136 | myString << "UTC " << sTimeOffset; | ||
137 | mTZ = myString.str(); | ||
138 | } | ||
139 | else | ||
140 | { | ||
141 | mTZ = "PST"; | ||
142 | if (gPacificDaylightTime) | ||
143 | { | ||
144 | mTZ = "PDT"; | ||
145 | } | ||
136 | } | 146 | } |
137 | } | 147 | } |
138 | else // just UTC | 148 | else // just UTC |