diff options
author | Jacek Antonelli | 2008-08-15 23:45:50 -0500 |
---|---|---|
committer | Jacek Antonelli | 2008-08-15 23:45:50 -0500 |
commit | 2a4dea528f670b9bb1f77ef27a8a1dd16603d114 (patch) | |
tree | 95c68e362703c9099d571ecbdc6142b1cda1e005 /linden/indra/newview | |
parent | Second Life viewer sources 1.20.6 (diff) | |
download | meta-impy-2a4dea528f670b9bb1f77ef27a8a1dd16603d114.zip meta-impy-2a4dea528f670b9bb1f77ef27a8a1dd16603d114.tar.gz meta-impy-2a4dea528f670b9bb1f77ef27a8a1dd16603d114.tar.bz2 meta-impy-2a4dea528f670b9bb1f77ef27a8a1dd16603d114.tar.xz |
Second Life viewer sources 1.20.7
Diffstat (limited to '')
264 files changed, 14873 insertions, 13946 deletions
diff --git a/linden/indra/newview/English.lproj/InfoPlist.strings b/linden/indra/newview/English.lproj/InfoPlist.strings index bb7ddc1..7272173 100644 --- a/linden/indra/newview/English.lproj/InfoPlist.strings +++ b/linden/indra/newview/English.lproj/InfoPlist.strings | |||
@@ -1,5 +1,5 @@ | |||
1 | /* Localized versions of Info.plist keys */ | 1 | /* Localized versions of Info.plist keys */ |
2 | 2 | ||
3 | CFBundleName = "Second Life"; | 3 | CFBundleName = "Second Life"; |
4 | CFBundleShortVersionString = "Second Life version 1.19.1.4"; | 4 | CFBundleShortVersionString = "Second Life version 1.20.6.86975"; |
5 | CFBundleGetInfoString = "Second Life version 1.19.1.4, Copyright 2004-2008 Linden Research, Inc."; | 5 | CFBundleGetInfoString = "Second Life version 1.20.6.86975, Copyright 2004-2008 Linden Research, Inc."; |
diff --git a/linden/indra/newview/Info-SecondLife.plist b/linden/indra/newview/Info-SecondLife.plist index 492e589..fa50503 100644 --- a/linden/indra/newview/Info-SecondLife.plist +++ b/linden/indra/newview/Info-SecondLife.plist | |||
@@ -32,7 +32,7 @@ | |||
32 | </dict> | 32 | </dict> |
33 | </array> | 33 | </array> |
34 | <key>CFBundleVersion</key> | 34 | <key>CFBundleVersion</key> |
35 | <string>1.19.1.4</string> | 35 | <string>1.20.6.86975</string> |
36 | <key>CSResourcesFileMapped</key> | 36 | <key>CSResourcesFileMapped</key> |
37 | <true/> | 37 | <true/> |
38 | </dict> | 38 | </dict> |
diff --git a/linden/indra/newview/app_settings/cmd_line.xml b/linden/indra/newview/app_settings/cmd_line.xml index 3e6fa21..746e56d 100644 --- a/linden/indra/newview/app_settings/cmd_line.xml +++ b/linden/indra/newview/app_settings/cmd_line.xml | |||
@@ -1,335 +1,335 @@ | |||
1 | <?xml version="1.0"?> | 1 | <?xml version="1.0"?> |
2 | <llsd> | 2 | <llsd> |
3 | <map> | 3 | <map> |
4 | <key>help</key> | 4 | <key>help</key> |
5 | <map> | 5 | <map> |
6 | <key>desc</key> | 6 | <key>desc</key> |
7 | <string>display this help message</string> | 7 | <string>display this help message</string> |
8 | 8 | ||
9 | <key>short</key> | 9 | <key>short</key> |
10 | <string>h</string> | 10 | <string>h</string> |
11 | </map> | 11 | </map> |
12 | 12 | ||
13 | <key>port</key> | 13 | <key>port</key> |
14 | <map> | 14 | <map> |
15 | <key>count</key> | 15 | <key>count</key> |
16 | <integer>1</integer> | 16 | <integer>1</integer> |
17 | <key>map-to</key> | 17 | <key>map-to</key> |
18 | <string>UserConnectionPort</string> | 18 | <string>UserConnectionPort</string> |
19 | </map> | 19 | </map> |
20 | 20 | ||
21 | <key>drop</key> | 21 | <key>drop</key> |
22 | <map> | 22 | <map> |
23 | <key>count</key> | 23 | <key>count</key> |
24 | <integer>1</integer> | 24 | <integer>1</integer> |
25 | <key>map-to</key> | 25 | <key>map-to</key> |
26 | <string>PacketDropPercentage</string> | 26 | <string>PacketDropPercentage</string> |
27 | </map> | 27 | </map> |
28 | 28 | ||
29 | <key>inbw</key> | 29 | <key>inbw</key> |
30 | <map> | 30 | <map> |
31 | <key>count</key> | 31 | <key>count</key> |
32 | <integer>1</integer> | 32 | <integer>1</integer> |
33 | <key>map-to</key> | 33 | <key>map-to</key> |
34 | <string>InBandwidth</string> | 34 | <string>InBandwidth</string> |
35 | </map> | 35 | </map> |
36 | 36 | ||
37 | <key>outbw</key> | 37 | <key>outbw</key> |
38 | <map> | 38 | <map> |
39 | <key>count</key> | 39 | <key>count</key> |
40 | <integer>1</integer> | 40 | <integer>1</integer> |
41 | <key>map-to</key> | 41 | <key>map-to</key> |
42 | <string>OutBandwidth</string> | 42 | <string>OutBandwidth</string> |
43 | </map> | 43 | </map> |
44 | 44 | ||
45 | <key>grid</key> | 45 | <key>grid</key> |
46 | <map> | 46 | <map> |
47 | <key>desc</key> | 47 | <key>desc</key> |
48 | <string>Specify the name of the grid, local, or an IP address to connect to.</string> | 48 | <string>Specify the name of the grid, local, or an IP address to connect to.</string> |
49 | <key>count</key> | 49 | <key>count</key> |
50 | <integer>1</integer> | 50 | <integer>1</integer> |
51 | <key>map-to</key> | 51 | <key>map-to</key> |
52 | <string>GridChoice</string> | 52 | <string>CmdLineGridChoice</string> |
53 | </map> | 53 | </map> |
54 | 54 | ||
55 | <key>loginuri</key> | 55 | <key>loginuri</key> |
56 | <map> | 56 | <map> |
57 | <key>desc</key> | 57 | <key>desc</key> |
58 | <string>login server and CGI script to use</string> | 58 | <string>login server and CGI script to use</string> |
59 | <key>count</key> | 59 | <key>count</key> |
60 | <integer>1</integer> | 60 | <integer>1</integer> |
61 | <key>compose</key> | 61 | <key>compose</key> |
62 | <boolean>true</boolean> | 62 | <boolean>true</boolean> |
63 | <key>map-to</key> | 63 | <key>map-to</key> |
64 | <string>LoginURI</string> | 64 | <string>CmdLineLoginURI</string> |
65 | </map> | 65 | </map> |
66 | 66 | ||
67 | <key>helperuri</key> | 67 | <key>helperuri</key> |
68 | <map> | 68 | <map> |
69 | <key>desc</key> | 69 | <key>desc</key> |
70 | <string>helper web CGI prefix to use</string> | 70 | <string>helper web CGI prefix to use</string> |
71 | <key>count</key> | 71 | <key>count</key> |
72 | <integer>1</integer> | 72 | <integer>1</integer> |
73 | <key>map-to</key> | 73 | <key>map-to</key> |
74 | <string>HelperURI</string> | 74 | <string>CmdLineHelperURI</string> |
75 | </map> | 75 | </map> |
76 | 76 | ||
77 | <key>debugviews</key> | 77 | <key>debugviews</key> |
78 | <map> | 78 | <map> |
79 | <key>map-to</key> | 79 | <key>map-to</key> |
80 | <string>DebugViews</string> | 80 | <string>DebugViews</string> |
81 | </map> | 81 | </map> |
82 | 82 | ||
83 | <key>skin</key> | 83 | <key>skin</key> |
84 | <map> | 84 | <map> |
85 | <key>desc</key> | 85 | <key>desc</key> |
86 | <string>ui/branding skin folder to use</string> | 86 | <string>ui/branding skin folder to use</string> |
87 | <key>count</key> | 87 | <key>count</key> |
88 | <integer>1</integer> | 88 | <integer>1</integer> |
89 | <key>map-to</key> | 89 | <key>map-to</key> |
90 | <string>SkinFolder</string> | 90 | <string>SkinFolder</string> |
91 | </map> | 91 | </map> |
92 | 92 | ||
93 | <key>autologin</key> | 93 | <key>autologin</key> |
94 | <map> | 94 | <map> |
95 | <key>desc</key> | 95 | <key>desc</key> |
96 | <string>log in as last saved user</string> | 96 | <string>log in as last saved user</string> |
97 | <key>map-to</key> | 97 | <key>map-to</key> |
98 | <string>AutoLogin</string> | 98 | <string>AutoLogin</string> |
99 | </map> | 99 | </map> |
100 | 100 | ||
101 | <key>quitafter</key> | 101 | <key>quitafter</key> |
102 | <map> | 102 | <map> |
103 | <key>count</key> | 103 | <key>count</key> |
104 | <integer>1</integer> | 104 | <integer>1</integer> |
105 | <key>map-to</key> | 105 | <key>map-to</key> |
106 | <string>QuitAfterSeconds</string> | 106 | <string>QuitAfterSeconds</string> |
107 | </map> | 107 | </map> |
108 | 108 | ||
109 | <key>rotate</key> | 109 | <key>rotate</key> |
110 | <map> | 110 | <map> |
111 | <key>map-to</key> | 111 | <key>map-to</key> |
112 | <string>RotateRight</string> | 112 | <string>RotateRight</string> |
113 | </map> | 113 | </map> |
114 | 114 | ||
115 | <key>noaudio</key> | 115 | <key>noaudio</key> |
116 | <map> | 116 | <map> |
117 | <key>map-to</key> | 117 | <key>map-to</key> |
118 | <string>NoAudio</string> | 118 | <string>NoAudio</string> |
119 | </map> | 119 | </map> |
120 | 120 | ||
121 | <key>nosound</key> | 121 | <key>nosound</key> |
122 | <map> | 122 | <map> |
123 | <key>map-to</key> | 123 | <key>map-to</key> |
124 | <string>NoAudio</string> | 124 | <string>NoAudio</string> |
125 | </map> | 125 | </map> |
126 | 126 | ||
127 | <key>noprobe</key> | 127 | <key>noprobe</key> |
128 | <map> | 128 | <map> |
129 | <key>map-to</key> | 129 | <key>map-to</key> |
130 | <string>NoHardwareProbe</string> | 130 | <string>NoHardwareProbe</string> |
131 | </map> | 131 | </map> |
132 | 132 | ||
133 | <key>noquicktime</key> | 133 | <key>noquicktime</key> |
134 | <map> | 134 | <map> |
135 | <key>map-to</key> | 135 | <key>map-to</key> |
136 | <string>NoQuickTime</string> | 136 | <string>NoQuickTime</string> |
137 | </map> | 137 | </map> |
138 | 138 | ||
139 | <key>nopreload</key> | 139 | <key>nopreload</key> |
140 | <map> | 140 | <map> |
141 | <key>map-to</key> | 141 | <key>map-to</key> |
142 | <string>NoPreload</string> | 142 | <string>NoPreload</string> |
143 | </map> | 143 | </map> |
144 | 144 | ||
145 | <key>purge</key> | 145 | <key>purge</key> |
146 | <map> | 146 | <map> |
147 | <key>desc</key> | 147 | <key>desc</key> |
148 | <string>Delete files in the cache.</string> | 148 | <string>Delete files in the cache.</string> |
149 | <key>map-to</key> | 149 | <key>map-to</key> |
150 | <string>PurgeCacheOnNextStartup</string> | 150 | <string>PurgeCacheOnNextStartup</string> |
151 | </map> | 151 | </map> |
152 | 152 | ||
153 | <key>noinvlib</key> | 153 | <key>noinvlib</key> |
154 | <map> | 154 | <map> |
155 | <key>desc</key> | 155 | <key>desc</key> |
156 | <string>Do not request the inventory library.</string> | 156 | <string>Do not request the inventory library.</string> |
157 | <key>map-to</key> | 157 | <key>map-to</key> |
158 | <string>NoInventoryLibrary</string> | 158 | <string>NoInventoryLibrary</string> |
159 | </map> | 159 | </map> |
160 | 160 | ||
161 | <key>logfile</key> | 161 | <key>logfile</key> |
162 | <map> | 162 | <map> |
163 | <key>count</key> | 163 | <key>count</key> |
164 | <integer>1</integer> | 164 | <integer>1</integer> |
165 | <key>map-to</key> | 165 | <key>map-to</key> |
166 | <string>UserLogFile</string> | 166 | <string>UserLogFile</string> |
167 | </map> | 167 | </map> |
168 | 168 | ||
169 | <key>setdefault</key> | 169 | <key>setdefault</key> |
170 | <map> | 170 | <map> |
171 | <key>desc</key> | 171 | <key>desc</key> |
172 | <string> specify the value of a particular | 172 | <string> specify the value of a particular |
173 | configuration variable which can be | 173 | configuration variable which can be |
174 | overridden by settings.xml | 174 | overridden by settings.xml |
175 | </string> | 175 | </string> |
176 | <key>count</key> | 176 | <key>count</key> |
177 | <integer>2</integer> | 177 | <integer>2</integer> |
178 | <!-- Special case. Mapped to settings procedurally. --> | 178 | <!-- Special case. Mapped to settings procedurally. --> |
179 | </map> | 179 | </map> |
180 | 180 | ||
181 | <key>set</key> | 181 | <key>set</key> |
182 | <map> | 182 | <map> |
183 | <key>desc</key> | 183 | <key>desc</key> |
184 | <string> specify the value of a particular | 184 | <string> specify the value of a particular |
185 | configuration variable that | 185 | configuration variable that |
186 | overrides all other settings | 186 | overrides all other settings |
187 | </string> | 187 | </string> |
188 | <key>count</key> | 188 | <key>count</key> |
189 | <integer>2</integer> | 189 | <integer>2</integer> |
190 | <!-- Special case. Mapped to settings procedurally. --> | 190 | <!-- Special case. Mapped to settings procedurally. --> |
191 | </map> | 191 | </map> |
192 | 192 | ||
193 | <key>settings</key> | 193 | <key>settings</key> |
194 | <map> | 194 | <map> |
195 | <key>desc</key> | 195 | <key>desc</key> |
196 | <string>Specify the filename of a configuration file.</string> | 196 | <string>Specify the filename of a configuration file.</string> |
197 | <key>count</key> | 197 | <key>count</key> |
198 | <integer>1</integer> | 198 | <integer>1</integer> |
199 | <!-- Special case. Mapped to settings procedurally. --> | 199 | <!-- Special case. Mapped to settings procedurally. --> |
200 | </map> | 200 | </map> |
201 | 201 | ||
202 | <key>login</key> | 202 | <key>login</key> |
203 | <map> | 203 | <map> |
204 | <key>desc</key> | 204 | <key>desc</key> |
205 | <string>3 tokens: first, last and password</string> | 205 | <string>3 tokens: first, last and password</string> |
206 | <key>count</key> | 206 | <key>count</key> |
207 | <integer>3</integer> | 207 | <integer>3</integer> |
208 | <key>map-to</key> | 208 | <key>map-to</key> |
209 | <string>UserLoginInfo</string> | 209 | <string>UserLoginInfo</string> |
210 | </map> | 210 | </map> |
211 | 211 | ||
212 | <key>god</key> | 212 | <key>god</key> |
213 | <map> | 213 | <map> |
214 | <key>desc</key> | 214 | <key>desc</key> |
215 | <string>Log in a god if you have god access.</string> | 215 | <string>Log in a god if you have god access.</string> |
216 | <key>map-to</key> | 216 | <key>map-to</key> |
217 | <string>ConnectAsGod</string> | 217 | <string>ConnectAsGod</string> |
218 | </map> | 218 | </map> |
219 | 219 | ||
220 | <key>console</key> | 220 | <key>console</key> |
221 | <map> | 221 | <map> |
222 | <key>count</key> | 222 | <key>count</key> |
223 | <integer>1</integer> | 223 | <integer>1</integer> |
224 | <key>map-to</key> | 224 | <key>map-to</key> |
225 | <string>ShowConsoleWindow</string> | 225 | <string>ShowConsoleWindow</string> |
226 | </map> | 226 | </map> |
227 | 227 | ||
228 | <key>safe</key> | 228 | <key>safe</key> |
229 | <map> | 229 | <map> |
230 | <key>desc</key> | 230 | <key>desc</key> |
231 | <string>Reset preferences, run in safe mode.</string> | 231 | <string>Reset preferences, run in safe mode.</string> |
232 | <key>map-to</key> | 232 | <key>map-to</key> |
233 | <string>SafeMode</string> | 233 | <string>SafeMode</string> |
234 | </map> | 234 | </map> |
235 | 235 | ||
236 | <key>multiple</key> | 236 | <key>multiple</key> |
237 | <map> | 237 | <map> |
238 | <key>desc</key> | 238 | <key>desc</key> |
239 | <string>Allow multple viewers.</string> | 239 | <string>Allow multple viewers.</string> |
240 | <key>map-to</key> | 240 | <key>map-to</key> |
241 | <string>AllowMultipleViewers</string> | 241 | <string>AllowMultipleViewers</string> |
242 | </map> | 242 | </map> |
243 | 243 | ||
244 | <key>novoice</key> | 244 | <key>novoice</key> |
245 | <map> | 245 | <map> |
246 | <key>desc</key> | 246 | <key>desc</key> |
247 | <string>Disable voice.</string> | 247 | <string>Disable voice.</string> |
248 | <key>map-to</key> | 248 | <key>map-to</key> |
249 | <string>CmdLineDisableVoice</string> | 249 | <string>CmdLineDisableVoice</string> |
250 | </map> | 250 | </map> |
251 | 251 | ||
252 | <key>url</key> | 252 | <key>url</key> |
253 | <map> | 253 | <map> |
254 | <key>desc</key> | 254 | <key>desc</key> |
255 | <string>Startup location</string> | 255 | <string>Startup location</string> |
256 | <key>count</key> | 256 | <key>count</key> |
257 | <integer>1</integer> | 257 | <integer>1</integer> |
258 | <key>last_option</key> | 258 | <key>last_option</key> |
259 | <boolean>true</boolean> | 259 | <boolean>true</boolean> |
260 | <!-- Special case. Not mapped to a setting. --> | 260 | <!-- Special case. Not mapped to a setting. --> |
261 | </map> | 261 | </map> |
262 | 262 | ||
263 | <key>slurl</key> | 263 | <key>slurl</key> |
264 | <map> | 264 | <map> |
265 | <key>desc</key> | 265 | <key>desc</key> |
266 | <string>Startup SLurl</string> | 266 | <string>Startup SLurl</string> |
267 | <key>count</key> | 267 | <key>count</key> |
268 | <integer>1</integer> | 268 | <integer>1</integer> |
269 | <key>positional</key> | 269 | <key>positional</key> |
270 | <boolean>true</boolean> | 270 | <boolean>true</boolean> |
271 | <key>last_option</key> | 271 | <key>last_option</key> |
272 | <boolean>true</boolean> | 272 | <boolean>true</boolean> |
273 | <!-- Special case. Not mapped to a setting. --> | 273 | <!-- Special case. Not mapped to a setting. --> |
274 | </map> | 274 | </map> |
275 | 275 | ||
276 | <key>ignorepixeldepth</key> | 276 | <key>ignorepixeldepth</key> |
277 | <map> | 277 | <map> |
278 | <key>desc</key> | 278 | <key>desc</key> |
279 | <string>Ignore pixel depth settings.</string> | 279 | <string>Ignore pixel depth settings.</string> |
280 | <key>map-to</key> | 280 | <key>map-to</key> |
281 | <string>IgnorePixelDepth</string> | 281 | <string>IgnorePixelDepth</string> |
282 | </map> | 282 | </map> |
283 | 283 | ||
284 | <key>cooperative</key> | 284 | <key>cooperative</key> |
285 | <map> | 285 | <map> |
286 | <key>desc</key> | 286 | <key>desc</key> |
287 | <string>Yield some idle time to local host.</string> | 287 | <string>Yield some idle time to local host.</string> |
288 | <key>count</key> | 288 | <key>count</key> |
289 | <integer>1</integer> | 289 | <integer>1</integer> |
290 | <key>map-to</key> | 290 | <key>map-to</key> |
291 | <string>YieldTime</string> | 291 | <string>YieldTime</string> |
292 | </map> | 292 | </map> |
293 | 293 | ||
294 | <key>no-verify-ssl-cert</key> | 294 | <key>no-verify-ssl-cert</key> |
295 | <map> | 295 | <map> |
296 | <key>map-to</key> | 296 | <key>map-to</key> |
297 | <string>NoVerifySSLCert</string> | 297 | <string>NoVerifySSLCert</string> |
298 | </map> | 298 | </map> |
299 | 299 | ||
300 | <key>channel</key> | 300 | <key>channel</key> |
301 | <map> | 301 | <map> |
302 | <key>count</key> | 302 | <key>count</key> |
303 | <integer>1</integer> | 303 | <integer>1</integer> |
304 | <key>map-to</key> | 304 | <key>map-to</key> |
305 | <string>VersionChannelName</string> | 305 | <string>VersionChannelName</string> |
306 | </map> | 306 | </map> |
307 | 307 | ||
308 | <key>loginpage</key> | 308 | <key>loginpage</key> |
309 | <map> | 309 | <map> |
310 | <key>desc</key> | 310 | <key>desc</key> |
311 | <string>Login authentication page to use.</string> | 311 | <string>Login authentication page to use.</string> |
312 | <key>count</key> | 312 | <key>count</key> |
313 | <integer>1</integer> | 313 | <integer>1</integer> |
314 | <key>map-to</key> | 314 | <key>map-to</key> |
315 | <string>LoginPage</string> | 315 | <string>LoginPage</string> |
316 | </map> | 316 | </map> |
317 | 317 | ||
318 | <key>qa</key> | 318 | <key>qa</key> |
319 | <map> | 319 | <map> |
320 | <key>desc</key> | 320 | <key>desc</key> |
321 | <string>Activated debugging menu in Advanced Settings.</string> | 321 | <string>Activated debugging menu in Advanced Settings.</string> |
322 | <key>map-to</key> | 322 | <key>map-to</key> |
323 | <string>QAMode</string> | 323 | <string>QAMode</string> |
324 | </map> | 324 | </map> |
325 | 325 | ||
326 | <key>crashonstartup</key> | 326 | <key>crashonstartup</key> |
327 | <map> | 327 | <map> |
328 | <key>desc</key> | 328 | <key>desc</key> |
329 | <string>Crashes on startup. For QA use.</string> | 329 | <string>Crashes on startup. For QA use.</string> |
330 | <key>map-to</key> | 330 | <key>map-to</key> |
331 | <string>CrashOnStartup</string> | 331 | <string>CrashOnStartup</string> |
332 | </map> | 332 | </map> |
333 | 333 | ||
334 | </map> | 334 | </map> |
335 | </llsd> | 335 | </llsd> |
diff --git a/linden/indra/newview/app_settings/keywords.ini b/linden/indra/newview/app_settings/keywords.ini index 9a8b1f7..b6892dc 100644 --- a/linden/indra/newview/app_settings/keywords.ini +++ b/linden/indra/newview/app_settings/keywords.ini | |||
@@ -507,6 +507,10 @@ CLICK_ACTION_OPEN_MEDIA Used with llSetClickAction to set open-media as the defa | |||
507 | [word .1, .3, .5] | 507 | [word .1, .3, .5] |
508 | NULL_KEY Indicates an empty key | 508 | NULL_KEY Indicates an empty key |
509 | EOF Indicates the last line of a notecard was read | 509 | EOF Indicates the last line of a notecard was read |
510 | TEXTURE_BLANK UUID for the "Blank" texture | ||
511 | TEXTURE_DEFAULT UUID for the "Default Media" texture | ||
512 | TEXTURE_PLYWOOD UUID for the default "Plywood" texture | ||
513 | TEXTURE_TRANSPARENT UUID for the "White - Transparent" texture | ||
510 | 514 | ||
511 | # float constants | 515 | # float constants |
512 | [word .3, .1, .5] | 516 | [word .3, .1, .5] |
diff --git a/linden/indra/newview/app_settings/logcontrol.xml b/linden/indra/newview/app_settings/logcontrol.xml new file mode 100644 index 0000000..d7bb64c --- /dev/null +++ b/linden/indra/newview/app_settings/logcontrol.xml | |||
@@ -0,0 +1,47 @@ | |||
1 | <llsd> | ||
2 | <map> | ||
3 | <!-- default-level can be ALL, DEBUG, INFO, WARN, ERROR, or NONE --> | ||
4 | <key>default-level</key> <string>INFO</string> | ||
5 | <key>print-location</key> <boolean>false</boolean> | ||
6 | <key>settings</key> | ||
7 | <array> | ||
8 | <!-- sample entry for changing settings on specific items --> | ||
9 | <map> | ||
10 | <key>level</key><string>INFO</string> | ||
11 | <key>functions</key> | ||
12 | <array> | ||
13 | </array> | ||
14 | <key>classes</key> | ||
15 | <array> | ||
16 | </array> | ||
17 | <key>files</key> | ||
18 | <array> | ||
19 | </array> | ||
20 | <key>tags</key> | ||
21 | <array> | ||
22 | <string>AppInit</string> | ||
23 | <string>SystemInfo</string> | ||
24 | <string>TextureCache</string> | ||
25 | <string>AppCache</string> | ||
26 | <string>Window</string> | ||
27 | <string>RenderInit</string> | ||
28 | </array> | ||
29 | </map> | ||
30 | <map> | ||
31 | <key>level</key><string>DEBUG</string> | ||
32 | <key>functions</key> | ||
33 | <array> | ||
34 | </array> | ||
35 | <key>classes</key> | ||
36 | <array> | ||
37 | </array> | ||
38 | <key>files</key> | ||
39 | <array> | ||
40 | </array> | ||
41 | <key>tags</key> | ||
42 | <array> | ||
43 | </array> | ||
44 | </map> | ||
45 | </array> | ||
46 | </map> | ||
47 | </llsd> | ||
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml index 69ae958..f5e57a5 100644 --- a/linden/indra/newview/app_settings/settings.xml +++ b/linden/indra/newview/app_settings/settings.xml | |||
@@ -1,10118 +1,10196 @@ | |||
1 | <?xml version="1.0" ?> | ||
1 | <llsd> | 2 | <llsd> |
3 | <map> | ||
4 | <key>AFKTimeout</key> | ||
2 | <map> | 5 | <map> |
6 | <key>Comment</key> | ||
7 | <string>Time before automatically setting AFK (away from keyboard) mode (seconds)</string> | ||
8 | <key>Persist</key> | ||
9 | <integer>1</integer> | ||
10 | <key>Type</key> | ||
11 | <string>F32</string> | ||
12 | <key>Value</key> | ||
13 | <real>300.0</real> | ||
14 | </map> | ||
3 | <key>AdvanceSnapshot</key> | 15 | <key>AdvanceSnapshot</key> |
4 | <map> | 16 | <map> |
5 | <key>Comment</key> | 17 | <key>Comment</key> |
6 | <string>Display advanced parameter settings in snaphot interface</string> | 18 | <string>Display advanced parameter settings in snaphot interface</string> |
7 | <key>Persist</key> | 19 | <key>Persist</key> |
8 | <integer>1</integer> | 20 | <integer>1</integer> |
9 | <key>Type</key> | 21 | <key>Type</key> |
10 | <string>Boolean</string> | 22 | <string>Boolean</string> |
11 | <key>Value</key> | 23 | <key>Value</key> |
12 | <integer>0</integer> | 24 | <integer>0</integer> |
13 | </map> | 25 | </map> |
14 | <key>AFKTimeout</key> | ||
15 | <map> | ||
16 | <key>Comment</key> | ||
17 | <string>Time before automatically setting AFK (away from keyboard) mode (seconds)</string> | ||
18 | <key>Persist</key> | ||
19 | <integer>1</integer> | ||
20 | <key>Type</key> | ||
21 | <string>F32</string> | ||
22 | <key>Value</key> | ||
23 | <real>300</real> | ||
24 | </map> | ||
25 | <key>AgentChatColor</key> | 26 | <key>AgentChatColor</key> |
26 | <map> | 27 | <map> |
27 | <key>Comment</key> | 28 | <key>Comment</key> |
28 | <string>Color of chat messages from other residents</string> | 29 | <string>Color of chat messages from other residents</string> |
29 | <key>Persist</key> | 30 | <key>Persist</key> |
30 | <integer>1</integer> | 31 | <integer>1</integer> |
31 | <key>Type</key> | 32 | <key>Type</key> |
32 | <string>Color4</string> | 33 | <string>Color4</string> |
33 | <key>Value</key> | 34 | <key>Value</key> |
34 | <array> | 35 | <array> |
35 | <real>1</real> | 36 | <real>1.0</real> |
36 | <real>1</real> | 37 | <real>1.0</real> |
37 | <real>1</real> | 38 | <real>1.0</real> |
38 | <real>1</real> | 39 | <real>1.0</real> |
39 | </array> | 40 | </array> |
40 | </map> | 41 | </map> |
41 | <key>IMChatColor</key> | ||
42 | <map> | ||
43 | <key>Comment</key> | ||
44 | <string>Color of instant messages from other residents</string> | ||
45 | <key>Persist</key> | ||
46 | <integer>1</integer> | ||
47 | <key>Type</key> | ||
48 | <string>Color4</string> | ||
49 | <key>Value</key> | ||
50 | <array> | ||
51 | <real>1</real> | ||
52 | <real>1</real> | ||
53 | <real>1</real> | ||
54 | <real>1</real> | ||
55 | </array> | ||
56 | </map> | ||
57 | <key>AllowIdleAFK</key> | 42 | <key>AllowIdleAFK</key> |
58 | <map> | 43 | <map> |
59 | <key>Comment</key> | 44 | <key>Comment</key> |
60 | <string>Automatically set AFK (away from keyboard) mode when idle</string> | 45 | <string>Automatically set AFK (away from keyboard) mode when idle</string> |
61 | <key>Persist</key> | 46 | <key>Persist</key> |
62 | <integer>1</integer> | 47 | <integer>1</integer> |
63 | <key>Type</key> | 48 | <key>Type</key> |
64 | <string>Boolean</string> | 49 | <string>Boolean</string> |
65 | <key>Value</key> | 50 | <key>Value</key> |
66 | <integer>1</integer> | 51 | <integer>1</integer> |
67 | </map> | 52 | </map> |
68 | <key>AllowMultipleViewers</key> | 53 | <key>AllowMultipleViewers</key> |
69 | <map> | 54 | <map> |
70 | <key>Comment</key> | 55 | <key>Comment</key> |
71 | <string>Allow multiple viewers.</string> | 56 | <string>Allow multiple viewers.</string> |
72 | <key>Persist</key> | 57 | <key>Persist</key> |
73 | <integer>1</integer> | 58 | <integer>1</integer> |
74 | <key>Type</key> | 59 | <key>Type</key> |
75 | <string>Boolean</string> | 60 | <string>Boolean</string> |
76 | <key>Value</key> | 61 | <key>Value</key> |
77 | <integer>0</integer> | 62 | <integer>0</integer> |
78 | </map> | 63 | </map> |
79 | <key>AllowTapTapHoldRun</key> | 64 | <key>AllowTapTapHoldRun</key> |
80 | <map> | 65 | <map> |
81 | <key>Comment</key> | 66 | <key>Comment</key> |
82 | <string>Tapping a direction key twice and holding it down makes avatar run</string> | 67 | <string>Tapping a direction key twice and holding it down makes avatar run</string> |
83 | <key>Persist</key> | 68 | <key>Persist</key> |
84 | <integer>1</integer> | 69 | <integer>1</integer> |
85 | <key>Type</key> | 70 | <key>Type</key> |
86 | <string>Boolean</string> | 71 | <string>Boolean</string> |
87 | <key>Value</key> | 72 | <key>Value</key> |
88 | <integer>1</integer> | 73 | <integer>1</integer> |
89 | </map> | 74 | </map> |
90 | <key>AnimateTextures</key> | 75 | <key>AnimateTextures</key> |
91 | <map> | 76 | <map> |
92 | <key>Comment</key> | 77 | <key>Comment</key> |
93 | <string>Enable texture animation (debug)</string> | 78 | <string>Enable texture animation (debug)</string> |
94 | <key>Persist</key> | 79 | <key>Persist</key> |
95 | <integer>1</integer> | 80 | <integer>1</integer> |
96 | <key>Type</key> | 81 | <key>Type</key> |
97 | <string>Boolean</string> | 82 | <string>Boolean</string> |
98 | <key>Value</key> | 83 | <key>Value</key> |
99 | <integer>1</integer> | 84 | <integer>1</integer> |
100 | </map> | 85 | </map> |
101 | <key>AnimationDebug</key> | 86 | <key>AnimationDebug</key> |
102 | <map> | 87 | <map> |
103 | <key>Comment</key> | 88 | <key>Comment</key> |
104 | <string>Show active animations in a bubble above avatars head</string> | 89 | <string>Show active animations in a bubble above avatars head</string> |
105 | <key>Persist</key> | 90 | <key>Persist</key> |
106 | <integer>1</integer> | 91 | <integer>1</integer> |
107 | <key>Type</key> | 92 | <key>Type</key> |
108 | <string>Boolean</string> | 93 | <string>Boolean</string> |
109 | <key>Value</key> | 94 | <key>Value</key> |
110 | <integer>0</integer> | 95 | <integer>0</integer> |
111 | </map> | 96 | </map> |
112 | <key>AppearanceCameraMovement</key> | 97 | <key>AppearanceCameraMovement</key> |
113 | <map> | 98 | <map> |
114 | <key>Comment</key> | 99 | <key>Comment</key> |
115 | <string>When entering appearance editing mode, camera zooms in on currently selected portion of avatar</string> | 100 | <string>When entering appearance editing mode, camera zooms in on currently selected portion of avatar</string> |
116 | <key>Persist</key> | 101 | <key>Persist</key> |
117 | <integer>1</integer> | 102 | <integer>1</integer> |
118 | <key>Type</key> | 103 | <key>Type</key> |
119 | <string>Boolean</string> | 104 | <string>Boolean</string> |
120 | <key>Value</key> | 105 | <key>Value</key> |
121 | <integer>1</integer> | 106 | <integer>1</integer> |
122 | </map> | 107 | </map> |
123 | <key>ApplyColorImmediately</key> | 108 | <key>ApplyColorImmediately</key> |
124 | <map> | 109 | <map> |
125 | <key>Comment</key> | 110 | <key>Comment</key> |
126 | <string>Preview selections in color picker immediately</string> | 111 | <string>Preview selections in color picker immediately</string> |
127 | <key>Persist</key> | 112 | <key>Persist</key> |
128 | <integer>1</integer> | 113 | <integer>1</integer> |
129 | <key>Type</key> | 114 | <key>Type</key> |
130 | <string>Boolean</string> | 115 | <string>Boolean</string> |
131 | <key>Value</key> | 116 | <key>Value</key> |
132 | <integer>1</integer> | 117 | <integer>1</integer> |
133 | </map> | 118 | </map> |
134 | <key>ApplyTextureImmediately</key> | 119 | <key>ApplyTextureImmediately</key> |
135 | <map> | 120 | <map> |
136 | <key>Comment</key> | 121 | <key>Comment</key> |
137 | <string>Preview selections in texture picker immediately</string> | 122 | <string>Preview selections in texture picker immediately</string> |
138 | <key>Persist</key> | 123 | <key>Persist</key> |
139 | <integer>1</integer> | 124 | <integer>1</integer> |
140 | <key>Type</key> | 125 | <key>Type</key> |
141 | <string>Boolean</string> | 126 | <string>Boolean</string> |
142 | <key>Value</key> | 127 | <key>Value</key> |
143 | <integer>1</integer> | 128 | <integer>1</integer> |
144 | </map> | 129 | </map> |
145 | <key>ArrowKeysMoveAvatar</key> | 130 | <key>ArrowKeysMoveAvatar</key> |
146 | <map> | 131 | <map> |
147 | <key>Comment</key> | 132 | <key>Comment</key> |
148 | <string>While cursor is in chat entry box, arrow keys still control your avatar</string> | 133 | <string>While cursor is in chat entry box, arrow keys still control your avatar</string> |
149 | <key>Persist</key> | 134 | <key>Persist</key> |
150 | <integer>1</integer> | 135 | <integer>1</integer> |
151 | <key>Type</key> | 136 | <key>Type</key> |
152 | <string>Boolean</string> | 137 | <string>Boolean</string> |
153 | <key>Value</key> | 138 | <key>Value</key> |
154 | <integer>1</integer> | 139 | <integer>1</integer> |
155 | </map> | 140 | </map> |
156 | <key>AskedAboutCrashReports</key> | 141 | <key>AskedAboutCrashReports</key> |
157 | <map> | 142 | <map> |
158 | <key>Comment</key> | 143 | <key>Comment</key> |
159 | <string>Turns off dialog asking if you want to enable crash reporting</string> | 144 | <string>Turns off dialog asking if you want to enable crash reporting</string> |
160 | <key>Persist</key> | 145 | <key>Persist</key> |
161 | <integer>1</integer> | 146 | <integer>1</integer> |
162 | <key>Type</key> | 147 | <key>Type</key> |
163 | <string>Boolean</string> | 148 | <string>Boolean</string> |
164 | <key>Value</key> | 149 | <key>Value</key> |
165 | <integer>0</integer> | 150 | <integer>0</integer> |
166 | </map> | 151 | </map> |
167 | <key>AsyncKeyboard</key> | 152 | <key>AsyncKeyboard</key> |
168 | <map> | 153 | <map> |
169 | <key>Comment</key> | 154 | <key>Comment</key> |
170 | <string>Improves responsiveness to keyboard input when at low framerates</string> | 155 | <string>Improves responsiveness to keyboard input when at low framerates</string> |
171 | <key>Persist</key> | 156 | <key>Persist</key> |
172 | <integer>1</integer> | 157 | <integer>1</integer> |
173 | <key>Type</key> | 158 | <key>Type</key> |
174 | <string>Boolean</string> | 159 | <string>Boolean</string> |
175 | <key>Value</key> | 160 | <key>Value</key> |
176 | <integer>1</integer> | 161 | <integer>1</integer> |
177 | </map> | 162 | </map> |
178 | <key>AuctionShowFence</key> | 163 | <key>AuctionShowFence</key> |
179 | <map> | 164 | <map> |
180 | <key>Comment</key> | 165 | <key>Comment</key> |
181 | <string>When auctioning land, include parcel boundary marker in snapshot</string> | 166 | <string>When auctioning land, include parcel boundary marker in snapshot</string> |
182 | <key>Persist</key> | 167 | <key>Persist</key> |
183 | <integer>1</integer> | 168 | <integer>1</integer> |
184 | <key>Type</key> | 169 | <key>Type</key> |
185 | <string>Boolean</string> | 170 | <string>Boolean</string> |
186 | <key>Value</key> | 171 | <key>Value</key> |
187 | <integer>1</integer> | 172 | <integer>1</integer> |
188 | </map> | 173 | </map> |
189 | <key>AudioLevelAmbient</key> | 174 | <key>AudioLevelAmbient</key> |
190 | <map> | 175 | <map> |
191 | <key>Comment</key> | 176 | <key>Comment</key> |
192 | <string>Audio level of environment sounds</string> | 177 | <string>Audio level of environment sounds</string> |
193 | <key>Persist</key> | 178 | <key>Persist</key> |
194 | <integer>1</integer> | 179 | <integer>1</integer> |
195 | <key>Type</key> | 180 | <key>Type</key> |
196 | <string>F32</string> | 181 | <string>F32</string> |
197 | <key>Value</key> | 182 | <key>Value</key> |
198 | <real>0.5</real> | 183 | <real>0.5</real> |
199 | </map> | 184 | </map> |
200 | <key>AudioLevelDistance</key> | 185 | <key>AudioLevelDistance</key> |
201 | <map> | 186 | <map> |
202 | <key>Comment</key> | 187 | <key>Comment</key> |
203 | <string>Scale factor for audio engine (multiple of world scale, 2.0 = audio falls off twice as fast)</string> | 188 | <string>Scale factor for audio engine (multiple of world scale, 2.0 = audio falls off twice as fast)</string> |
204 | <key>Persist</key> | 189 | <key>Persist</key> |
205 | <integer>1</integer> | 190 | <integer>1</integer> |
206 | <key>Type</key> | 191 | <key>Type</key> |
207 | <string>F32</string> | 192 | <string>F32</string> |
208 | <key>Value</key> | 193 | <key>Value</key> |
209 | <real>1</real> | 194 | <real>1.0</real> |
210 | </map> | 195 | </map> |
211 | <key>AudioLevelDoppler</key> | 196 | <key>AudioLevelDoppler</key> |
212 | <map> | 197 | <map> |
213 | <key>Comment</key> | 198 | <key>Comment</key> |
214 | <string>Scale of doppler effect on moving audio sources (1.0 = normal, <1.0 = diminished doppler effect, >1.0 = enhanced doppler effect)</string> | 199 | <string>Scale of doppler effect on moving audio sources (1.0 = normal, <1.0 = diminished doppler effect, >1.0 = enhanced doppler effect)</string> |
215 | <key>Persist</key> | 200 | <key>Persist</key> |
216 | <integer>1</integer> | 201 | <integer>1</integer> |
217 | <key>Type</key> | 202 | <key>Type</key> |
218 | <string>F32</string> | 203 | <string>F32</string> |
219 | <key>Value</key> | 204 | <key>Value</key> |
220 | <real>1</real> | 205 | <real>1.0</real> |
221 | </map> | 206 | </map> |
222 | <key>AudioLevelMaster</key> | 207 | <key>AudioLevelMaster</key> |
223 | <map> | 208 | <map> |
224 | <key>Comment</key> | 209 | <key>Comment</key> |
225 | <string>Master audio level, or overall volume</string> | 210 | <string>Master audio level, or overall volume</string> |
226 | <key>Persist</key> | 211 | <key>Persist</key> |
227 | <integer>1</integer> | 212 | <integer>1</integer> |
228 | <key>Type</key> | 213 | <key>Type</key> |
229 | <string>F32</string> | 214 | <string>F32</string> |
230 | <key>Value</key> | 215 | <key>Value</key> |
231 | <real>1</real> | 216 | <real>1.0</real> |
232 | </map> | 217 | </map> |
233 | <key>AudioLevelMedia</key> | 218 | <key>AudioLevelMedia</key> |
234 | <map> | 219 | <map> |
235 | <key>Comment</key> | 220 | <key>Comment</key> |
236 | <string>Audio level of Quicktime movies</string> | 221 | <string>Audio level of Quicktime movies</string> |
237 | <key>Persist</key> | 222 | <key>Persist</key> |
238 | <integer>1</integer> | 223 | <integer>1</integer> |
239 | <key>Type</key> | 224 | <key>Type</key> |
240 | <string>F32</string> | 225 | <string>F32</string> |
241 | <key>Value</key> | 226 | <key>Value</key> |
242 | <real>1</real> | 227 | <real>1.0</real> |
243 | </map> | 228 | </map> |
244 | <key>AudioLevelMic</key> | 229 | <key>AudioLevelMic</key> |
245 | <map> | 230 | <map> |
246 | <key>Comment</key> | 231 | <key>Comment</key> |
247 | <string>Audio level of microphone input</string> | 232 | <string>Audio level of microphone input</string> |
248 | <key>Persist</key> | 233 | <key>Persist</key> |
249 | <integer>1</integer> | 234 | <integer>1</integer> |
250 | <key>Type</key> | 235 | <key>Type</key> |
251 | <string>F32</string> | 236 | <string>F32</string> |
252 | <key>Value</key> | 237 | <key>Value</key> |
253 | <real>1</real> | 238 | <real>1.0</real> |
254 | </map> | 239 | </map> |
255 | <key>AudioLevelMusic</key> | 240 | <key>AudioLevelMusic</key> |
256 | <map> | 241 | <map> |
257 | <key>Comment</key> | 242 | <key>Comment</key> |
258 | <string>Audio level of streaming music</string> | 243 | <string>Audio level of streaming music</string> |
259 | <key>Persist</key> | 244 | <key>Persist</key> |
260 | <integer>1</integer> | 245 | <integer>1</integer> |
261 | <key>Type</key> | 246 | <key>Type</key> |
262 | <string>F32</string> | 247 | <string>F32</string> |
263 | <key>Value</key> | 248 | <key>Value</key> |
264 | <real>1</real> | 249 | <real>1.0</real> |
265 | </map> | 250 | </map> |
266 | <key>AudioLevelRolloff</key> | 251 | <key>AudioLevelRolloff</key> |
267 | <map> | 252 | <map> |
268 | <key>Comment</key> | 253 | <key>Comment</key> |
269 | <string>Controls the distance-based dropoff of audio volume (fraction or multiple of default audio rolloff)</string> | 254 | <string>Controls the distance-based dropoff of audio volume (fraction or multiple of default audio rolloff)</string> |
270 | <key>Persist</key> | 255 | <key>Persist</key> |
271 | <integer>1</integer> | 256 | <integer>1</integer> |
272 | <key>Type</key> | 257 | <key>Type</key> |
273 | <string>F32</string> | 258 | <string>F32</string> |
274 | <key>Value</key> | 259 | <key>Value</key> |
275 | <real>1</real> | 260 | <real>1.0</real> |
276 | </map> | 261 | </map> |
277 | <key>AudioLevelSFX</key> | 262 | <key>AudioLevelSFX</key> |
278 | <map> | 263 | <map> |
279 | <key>Comment</key> | 264 | <key>Comment</key> |
280 | <string>Audio level of in-world sound effects</string> | 265 | <string>Audio level of in-world sound effects</string> |
281 | <key>Persist</key> | 266 | <key>Persist</key> |
282 | <integer>1</integer> | 267 | <integer>1</integer> |
283 | <key>Type</key> | 268 | <key>Type</key> |
284 | <string>F32</string> | 269 | <string>F32</string> |
285 | <key>Value</key> | 270 | <key>Value</key> |
286 | <real>1</real> | 271 | <real>1.0</real> |
287 | </map> | 272 | </map> |
288 | <key>AudioLevelUI</key> | 273 | <key>AudioLevelUI</key> |
289 | <map> | 274 | <map> |
290 | <key>Comment</key> | 275 | <key>Comment</key> |
291 | <string>Audio level of UI sound effects</string> | 276 | <string>Audio level of UI sound effects</string> |
292 | <key>Persist</key> | 277 | <key>Persist</key> |
293 | <integer>1</integer> | 278 | <integer>1</integer> |
294 | <key>Type</key> | 279 | <key>Type</key> |
295 | <string>F32</string> | 280 | <string>F32</string> |
296 | <key>Value</key> | 281 | <key>Value</key> |
297 | <real>0.5</real> | 282 | <real>0.5</real> |
298 | </map> | 283 | </map> |
299 | <key>AudioLevelVoice</key> | 284 | <key>AudioLevelVoice</key> |
300 | <map> | 285 | <map> |
301 | <key>Comment</key> | 286 | <key>Comment</key> |
302 | <string>Audio level of voice chat</string> | 287 | <string>Audio level of voice chat</string> |
303 | <key>Persist</key> | 288 | <key>Persist</key> |
304 | <integer>1</integer> | 289 | <integer>1</integer> |
305 | <key>Type</key> | 290 | <key>Type</key> |
306 | <string>F32</string> | 291 | <string>F32</string> |
307 | <key>Value</key> | 292 | <key>Value</key> |
308 | <real>0.5</real> | 293 | <real>0.5</real> |
309 | </map> | 294 | </map> |
310 | <key>AudioStreamingMusic</key> | 295 | <key>AudioStreamingMusic</key> |
311 | <map> | 296 | <map> |
312 | <key>Comment</key> | 297 | <key>Comment</key> |
313 | <string>Enable streaming audio</string> | 298 | <string>Enable streaming audio</string> |
314 | <key>Persist</key> | 299 | <key>Persist</key> |
315 | <integer>1</integer> | 300 | <integer>1</integer> |
316 | <key>Type</key> | 301 | <key>Type</key> |
317 | <string>Boolean</string> | 302 | <string>Boolean</string> |
318 | <key>Value</key> | 303 | <key>Value</key> |
319 | <integer>0</integer> | 304 | <integer>0</integer> |
320 | </map> | 305 | </map> |
321 | <key>AudioStreamingVideo</key> | 306 | <key>AudioStreamingVideo</key> |
322 | <map> | 307 | <map> |
323 | <key>Comment</key> | 308 | <key>Comment</key> |
324 | <string>Enable streaming video</string> | 309 | <string>Enable streaming video</string> |
325 | <key>Persist</key> | 310 | <key>Persist</key> |
326 | <integer>1</integer> | 311 | <integer>1</integer> |
327 | <key>Type</key> | 312 | <key>Type</key> |
328 | <string>Boolean</string> | 313 | <string>Boolean</string> |
329 | <key>Value</key> | 314 | <key>Value</key> |
330 | <integer>0</integer> | 315 | <integer>0</integer> |
331 | </map> | 316 | </map> |
332 | <key>AutoAcceptNewInventory</key> | 317 | <key>AutoAcceptNewInventory</key> |
333 | <map> | 318 | <map> |
334 | <key>Comment</key> | 319 | <key>Comment</key> |
335 | <string>Automatically accept new notecards/textures/landmarks</string> | 320 | <string>Automatically accept new notecards/textures/landmarks</string> |
336 | <key>Persist</key> | 321 | <key>Persist</key> |
337 | <integer>1</integer> | 322 | <integer>1</integer> |
338 | <key>Type</key> | 323 | <key>Type</key> |
339 | <string>Boolean</string> | 324 | <string>Boolean</string> |
340 | <key>Value</key> | 325 | <key>Value</key> |
341 | <integer>0</integer> | 326 | <integer>0</integer> |
342 | </map> | 327 | </map> |
328 | <key>AutoLeveling</key> | ||
329 | <map> | ||
330 | <key>Comment</key> | ||
331 | <string>Keep Flycam level.</string> | ||
332 | <key>Persist</key> | ||
333 | <integer>1</integer> | ||
334 | <key>Type</key> | ||
335 | <string>Boolean</string> | ||
336 | <key>Value</key> | ||
337 | <integer>1</integer> | ||
338 | </map> | ||
343 | <key>AutoLoadWebProfiles</key> | 339 | <key>AutoLoadWebProfiles</key> |
344 | <map> | 340 | <map> |
345 | <key>Comment</key> | 341 | <key>Comment</key> |
346 | <string>Automatically load ALL profile webpages without asking first.</string> | 342 | <string>Automatically load ALL profile webpages without asking first.</string> |
347 | <key>Persist</key> | 343 | <key>Persist</key> |
348 | <integer>1</integer> | 344 | <integer>1</integer> |
349 | <key>Type</key> | 345 | <key>Type</key> |
350 | <string>Boolean</string> | 346 | <string>Boolean</string> |
351 | <key>Value</key> | 347 | <key>Value</key> |
352 | <integer>0</integer> | 348 | <integer>0</integer> |
353 | </map> | 349 | </map> |
354 | <key>AutoLogin</key> | 350 | <key>AutoLogin</key> |
355 | <map> | 351 | <map> |
356 | <key>Comment</key> | 352 | <key>Comment</key> |
357 | <string>Login automatically using last username/password combination</string> | 353 | <string>Login automatically using last username/password combination</string> |
358 | <key>Persist</key> | 354 | <key>Persist</key> |
359 | <integer>1</integer> | 355 | <integer>0</integer> |
360 | <key>Type</key> | 356 | <key>Type</key> |
361 | <string>Boolean</string> | 357 | <string>Boolean</string> |
362 | <key>Value</key> | 358 | <key>Value</key> |
363 | <integer>0</integer> | 359 | <integer>0</integer> |
364 | </map> | 360 | </map> |
365 | <key>AutoMimeDiscovery</key> | 361 | <key>AutoMimeDiscovery</key> |
366 | <map> | 362 | <map> |
367 | <key>Comment</key> | 363 | <key>Comment</key> |
368 | <string>Enable viewer mime type discovery of media URLs</string> | 364 | <string>Enable viewer mime type discovery of media URLs</string> |
369 | <key>Persist</key> | 365 | <key>Persist</key> |
370 | <integer>1</integer> | 366 | <integer>1</integer> |
371 | <key>Type</key> | 367 | <key>Type</key> |
372 | <string>Boolean</string> | 368 | <string>Boolean</string> |
373 | <key>Value</key> | 369 | <key>Value</key> |
374 | <integer>0</integer> | 370 | <integer>0</integer> |
375 | </map> | 371 | </map> |
376 | <key>AutoPilotLocksCamera</key> | 372 | <key>AutoPilotLocksCamera</key> |
377 | <map> | 373 | <map> |
378 | <key>Comment</key> | 374 | <key>Comment</key> |
379 | <string>Keep camera position locked when avatar walks to selected position</string> | 375 | <string>Keep camera position locked when avatar walks to selected position</string> |
380 | <key>Persist</key> | 376 | <key>Persist</key> |
381 | <integer>1</integer> | 377 | <integer>1</integer> |
382 | <key>Type</key> | 378 | <key>Type</key> |
383 | <string>Boolean</string> | 379 | <string>Boolean</string> |
384 | <key>Value</key> | 380 | <key>Value</key> |
385 | <integer>0</integer> | 381 | <integer>0</integer> |
386 | </map> | 382 | </map> |
387 | <key>AutoSnapshot</key> | 383 | <key>AutoSnapshot</key> |
388 | <map> | 384 | <map> |
389 | <key>Comment</key> | 385 | <key>Comment</key> |
390 | <string>Update snapshot when camera stops moving, or any parameter changes</string> | 386 | <string>Update snapshot when camera stops moving, or any parameter changes</string> |
391 | <key>Persist</key> | 387 | <key>Persist</key> |
392 | <integer>1</integer> | 388 | <integer>1</integer> |
393 | <key>Type</key> | 389 | <key>Type</key> |
394 | <string>Boolean</string> | 390 | <string>Boolean</string> |
395 | <key>Value</key> | 391 | <key>Value</key> |
396 | <integer>0</integer> | 392 | <integer>0</integer> |
397 | </map> | 393 | </map> |
398 | <key>AutomaticFly</key> | 394 | <key>AutomaticFly</key> |
399 | <map> | 395 | <map> |
400 | <key>Comment</key> | 396 | <key>Comment</key> |
401 | <string>Fly by holding jump key or using "Fly" command (FALSE = fly by using "Fly" command only)</string> | 397 | <string>Fly by holding jump key or using "Fly" command (FALSE = fly by using "Fly" command only)</string> |
402 | <key>Persist</key> | 398 | <key>Persist</key> |
403 | <integer>1</integer> | 399 | <integer>1</integer> |
404 | <key>Type</key> | 400 | <key>Type</key> |
405 | <string>Boolean</string> | 401 | <string>Boolean</string> |
406 | <key>Value</key> | 402 | <key>Value</key> |
407 | <integer>1</integer> | 403 | <integer>1</integer> |
408 | </map> | 404 | </map> |
405 | <key>AvatarAxisDeadZone0</key> | ||
406 | <map> | ||
407 | <key>Comment</key> | ||
408 | <string>Avatar axis 0 dead zone.</string> | ||
409 | <key>Persist</key> | ||
410 | <integer>1</integer> | ||
411 | <key>Type</key> | ||
412 | <string>F32</string> | ||
413 | <key>Value</key> | ||
414 | <real>0.1</real> | ||
415 | </map> | ||
416 | <key>AvatarAxisDeadZone1</key> | ||
417 | <map> | ||
418 | <key>Comment</key> | ||
419 | <string>Avatar axis 1 dead zone.</string> | ||
420 | <key>Persist</key> | ||
421 | <integer>1</integer> | ||
422 | <key>Type</key> | ||
423 | <string>F32</string> | ||
424 | <key>Value</key> | ||
425 | <real>0.1</real> | ||
426 | </map> | ||
427 | <key>AvatarAxisDeadZone2</key> | ||
428 | <map> | ||
429 | <key>Comment</key> | ||
430 | <string>Avatar axis 2 dead zone.</string> | ||
431 | <key>Persist</key> | ||
432 | <integer>1</integer> | ||
433 | <key>Type</key> | ||
434 | <string>F32</string> | ||
435 | <key>Value</key> | ||
436 | <real>0.1</real> | ||
437 | </map> | ||
438 | <key>AvatarAxisDeadZone3</key> | ||
439 | <map> | ||
440 | <key>Comment</key> | ||
441 | <string>Avatar axis 3 dead zone.</string> | ||
442 | <key>Persist</key> | ||
443 | <integer>1</integer> | ||
444 | <key>Type</key> | ||
445 | <string>F32</string> | ||
446 | <key>Value</key> | ||
447 | <real>0.1</real> | ||
448 | </map> | ||
449 | <key>AvatarAxisDeadZone4</key> | ||
450 | <map> | ||
451 | <key>Comment</key> | ||
452 | <string>Avatar axis 4 dead zone.</string> | ||
453 | <key>Persist</key> | ||
454 | <integer>1</integer> | ||
455 | <key>Type</key> | ||
456 | <string>F32</string> | ||
457 | <key>Value</key> | ||
458 | <real>0.1</real> | ||
459 | </map> | ||
460 | <key>AvatarAxisDeadZone5</key> | ||
461 | <map> | ||
462 | <key>Comment</key> | ||
463 | <string>Avatar axis 5 dead zone.</string> | ||
464 | <key>Persist</key> | ||
465 | <integer>1</integer> | ||
466 | <key>Type</key> | ||
467 | <string>F32</string> | ||
468 | <key>Value</key> | ||
469 | <real>0.1</real> | ||
470 | </map> | ||
471 | <key>AvatarAxisScale0</key> | ||
472 | <map> | ||
473 | <key>Comment</key> | ||
474 | <string>Avatar axis 0 scaler.</string> | ||
475 | <key>Persist</key> | ||
476 | <integer>1</integer> | ||
477 | <key>Type</key> | ||
478 | <string>F32</string> | ||
479 | <key>Value</key> | ||
480 | <real>1.0</real> | ||
481 | </map> | ||
482 | <key>AvatarAxisScale1</key> | ||
483 | <map> | ||
484 | <key>Comment</key> | ||
485 | <string>Avatar axis 1 scaler.</string> | ||
486 | <key>Persist</key> | ||
487 | <integer>1</integer> | ||
488 | <key>Type</key> | ||
489 | <string>F32</string> | ||
490 | <key>Value</key> | ||
491 | <real>1.0</real> | ||
492 | </map> | ||
493 | <key>AvatarAxisScale2</key> | ||
494 | <map> | ||
495 | <key>Comment</key> | ||
496 | <string>Avatar axis 2 scaler.</string> | ||
497 | <key>Persist</key> | ||
498 | <integer>1</integer> | ||
499 | <key>Type</key> | ||
500 | <string>F32</string> | ||
501 | <key>Value</key> | ||
502 | <real>1.0</real> | ||
503 | </map> | ||
504 | <key>AvatarAxisScale3</key> | ||
505 | <map> | ||
506 | <key>Comment</key> | ||
507 | <string>Avatar axis 3 scaler.</string> | ||
508 | <key>Persist</key> | ||
509 | <integer>1</integer> | ||
510 | <key>Type</key> | ||
511 | <string>F32</string> | ||
512 | <key>Value</key> | ||
513 | <real>1.0</real> | ||
514 | </map> | ||
515 | <key>AvatarAxisScale4</key> | ||
516 | <map> | ||
517 | <key>Comment</key> | ||
518 | <string>Avatar axis 4 scaler.</string> | ||
519 | <key>Persist</key> | ||
520 | <integer>1</integer> | ||
521 | <key>Type</key> | ||
522 | <string>F32</string> | ||
523 | <key>Value</key> | ||
524 | <real>1.0</real> | ||
525 | </map> | ||
526 | <key>AvatarAxisScale5</key> | ||
527 | <map> | ||
528 | <key>Comment</key> | ||
529 | <string>Avatar axis 5 scaler.</string> | ||
530 | <key>Persist</key> | ||
531 | <integer>1</integer> | ||
532 | <key>Type</key> | ||
533 | <string>F32</string> | ||
534 | <key>Value</key> | ||
535 | <real>1.0</real> | ||
536 | </map> | ||
409 | <key>AvatarBacklight</key> | 537 | <key>AvatarBacklight</key> |
410 | <map> | 538 | <map> |
411 | <key>Comment</key> | 539 | <key>Comment</key> |
412 | <string>Add rim lighting to avatar rendering to approximate shininess of skin</string> | 540 | <string>Add rim lighting to avatar rendering to approximate shininess of skin</string> |
413 | <key>Persist</key> | 541 | <key>Persist</key> |
414 | <integer>1</integer> | 542 | <integer>1</integer> |
415 | <key>Type</key> | 543 | <key>Type</key> |
416 | <string>Boolean</string> | 544 | <string>Boolean</string> |
417 | <key>Value</key> | 545 | <key>Value</key> |
418 | <integer>1</integer> | 546 | <integer>1</integer> |
419 | </map> | 547 | </map> |
420 | <key>AvatarCompositeLimit</key> | 548 | <key>AvatarCompositeLimit</key> |
421 | <map> | 549 | <map> |
422 | <key>Comment</key> | 550 | <key>Comment</key> |
423 | <string>Maximum number of avatars to display appearance changes on the fly</string> | 551 | <string>Maximum number of avatars to display appearance changes on the fly</string> |
424 | <key>Persist</key> | 552 | <key>Persist</key> |
425 | <integer>1</integer> | 553 | <integer>1</integer> |
426 | <key>Type</key> | 554 | <key>Type</key> |
427 | <string>S32</string> | 555 | <string>S32</string> |
428 | <key>Value</key> | 556 | <key>Value</key> |
429 | <integer>5</integer> | 557 | <integer>5</integer> |
430 | </map> | 558 | </map> |
559 | <key>AvatarFeathering</key> | ||
560 | <map> | ||
561 | <key>Comment</key> | ||
562 | <string>Avatar feathering (less is softer)</string> | ||
563 | <key>Persist</key> | ||
564 | <integer>1</integer> | ||
565 | <key>Type</key> | ||
566 | <string>F32</string> | ||
567 | <key>Value</key> | ||
568 | <real>16.0</real> | ||
569 | </map> | ||
431 | <key>AvatarPickerSortOrder</key> | 570 | <key>AvatarPickerSortOrder</key> |
432 | <map> | 571 | <map> |
433 | <key>Comment</key> | 572 | <key>Comment</key> |
434 | <string>Specifies sort key for textures in avatar picker (+0 = name, +1 = date, +2 = folders always by name, +4 = system folders to top)</string> | 573 | <string>Specifies sort key for textures in avatar picker (+0 = name, +1 = date, +2 = folders always by name, +4 = system folders to top)</string> |
435 | <key>Persist</key> | 574 | <key>Persist</key> |
436 | <integer>1</integer> | 575 | <integer>1</integer> |
437 | <key>Type</key> | 576 | <key>Type</key> |
438 | <string>U32</string> | 577 | <string>U32</string> |
439 | <key>Value</key> | 578 | <key>Value</key> |
440 | <integer>2</integer> | 579 | <integer>2</integer> |
441 | </map> | 580 | </map> |
442 | <key>AvatarSex</key> | 581 | <key>AvatarSex</key> |
443 | <map> | 582 | <map> |
444 | <key>Comment</key> | 583 | <key>Comment</key> |
445 | <string /> | 584 | <string /> |
446 | <key>Persist</key> | 585 | <key>Persist</key> |
447 | <integer>0</integer> | 586 | <integer>0</integer> |
448 | <key>Type</key> | 587 | <key>Type</key> |
449 | <string>U32</string> | 588 | <string>U32</string> |
450 | <key>Value</key> | 589 | <key>Value</key> |
451 | <integer>0</integer> | 590 | <integer>0</integer> |
452 | </map> | 591 | </map> |
453 | <key>BackgroundChatColor</key> | 592 | <key>BackgroundChatColor</key> |
454 | <map> | 593 | <map> |
455 | <key>Comment</key> | 594 | <key>Comment</key> |
456 | <string>Color of chat bubble background</string> | 595 | <string>Color of chat bubble background</string> |
457 | <key>Persist</key> | 596 | <key>Persist</key> |
458 | <integer>1</integer> | 597 | <integer>1</integer> |
459 | <key>Type</key> | 598 | <key>Type</key> |
460 | <string>Color4</string> | 599 | <string>Color4</string> |
461 | <key>Value</key> | 600 | <key>Value</key> |
462 | <array> | 601 | <array> |
463 | <real>0</real> | 602 | <real>0.0</real> |
464 | <real>0</real> | 603 | <real>0.0</real> |
465 | <real>0</real> | 604 | <real>0.0</real> |
466 | <real>1</real> | 605 | <real>1.0</real> |
467 | </array> | 606 | </array> |
468 | </map> | 607 | </map> |
469 | <key>BackgroundYieldTime</key> | 608 | <key>BackgroundYieldTime</key> |
470 | <map> | 609 | <map> |
471 | <key>Comment</key> | 610 | <key>Comment</key> |
472 | <string>Amount of time to yield every frame to other applications when SL is not the foreground window (milliseconds)</string> | 611 | <string>Amount of time to yield every frame to other applications when SL is not the foreground window (milliseconds)</string> |
473 | <key>Persist</key> | 612 | <key>Persist</key> |
474 | <integer>1</integer> | 613 | <integer>1</integer> |
475 | <key>Type</key> | 614 | <key>Type</key> |
476 | <string>S32</string> | 615 | <string>S32</string> |
477 | <key>Value</key> | 616 | <key>Value</key> |
478 | <integer>40</integer> | 617 | <integer>40</integer> |
479 | </map> | 618 | </map> |
480 | <key>BackwardBtnRect</key> | 619 | <key>BackwardBtnRect</key> |
481 | <map> | 620 | <map> |
482 | <key>Comment</key> | 621 | <key>Comment</key> |
483 | <string /> | 622 | <string /> |
484 | <key>Persist</key> | 623 | <key>Persist</key> |
485 | <integer>0</integer> | 624 | <integer>0</integer> |
486 | <key>Type</key> | 625 | <key>Type</key> |
487 | <string>Rect</string> | 626 | <string>Rect</string> |
488 | <key>Value</key> | 627 | <key>Value</key> |
489 | <array> | 628 | <array> |
490 | <integer>45</integer> | 629 | <integer>45</integer> |
491 | <integer>29</integer> | 630 | <integer>29</integer> |
492 | <integer>66</integer> | 631 | <integer>66</integer> |
493 | <integer>4</integer> | 632 | <integer>4</integer> |
494 | </array> | 633 | </array> |
495 | </map> | 634 | </map> |
496 | <key>BasicHelpRect</key> | 635 | <key>BasicHelpRect</key> |
497 | <map> | 636 | <map> |
498 | <key>Comment</key> | 637 | <key>Comment</key> |
499 | <string>Rectangle for help window</string> | 638 | <string>Rectangle for help window</string> |
500 | <key>Persist</key> | 639 | <key>Persist</key> |
501 | <integer>1</integer> | 640 | <integer>1</integer> |
502 | <key>Type</key> | 641 | <key>Type</key> |
503 | <string>Rect</string> | 642 | <string>Rect</string> |
504 | <key>Value</key> | 643 | <key>Value</key> |
505 | <array> | 644 | <array> |
506 | <integer>0</integer> | 645 | <integer>0</integer> |
507 | <integer>404</integer> | 646 | <integer>404</integer> |
508 | <integer>467</integer> | 647 | <integer>467</integer> |
509 | <integer>0</integer> | 648 | <integer>0</integer> |
510 | </array> | 649 | </array> |
511 | </map> | 650 | </map> |
512 | <key>BeaconAlwaysOn</key> | 651 | <key>BeaconAlwaysOn</key> |
513 | <map> | 652 | <map> |
514 | <key>Comment</key> | 653 | <key>Comment</key> |
515 | <string>Beacons / highlighting always on</string> | 654 | <string>Beacons / highlighting always on</string> |
516 | <key>Persist</key> | 655 | <key>Persist</key> |
517 | <integer>1</integer> | 656 | <integer>1</integer> |
518 | <key>Type</key> | 657 | <key>Type</key> |
519 | <string>Boolean</string> | 658 | <string>Boolean</string> |
520 | <key>Value</key> | 659 | <key>Value</key> |
521 | <integer>0</integer> | 660 | <integer>0</integer> |
522 | </map> | 661 | </map> |
523 | <key>BrowserHomePage</key> | 662 | <key>BrowserHomePage</key> |
524 | <map> | 663 | <map> |
525 | <key>Comment</key> | 664 | <key>Comment</key> |
526 | <string>[NOT USED]</string> | 665 | <string>[NOT USED]</string> |
527 | <key>Persist</key> | 666 | <key>Persist</key> |
528 | <integer>1</integer> | 667 | <integer>1</integer> |
529 | <key>Type</key> | 668 | <key>Type</key> |
530 | <string>String</string> | 669 | <string>String</string> |
531 | <key>Value</key> | 670 | <key>Value</key> |
532 | <string>http://www.secondlife.com</string> | 671 | <string>http://www.secondlife.com</string> |
533 | </map> | 672 | </map> |
534 | <key>BrowserProxyAddress</key> | 673 | <key>BrowserProxyAddress</key> |
535 | <map> | 674 | <map> |
536 | <key>Comment</key> | 675 | <key>Comment</key> |
537 | <string>Address for the Web Proxy]</string> | 676 | <string>Address for the Web Proxy]</string> |
538 | <key>Persist</key> | 677 | <key>Persist</key> |
539 | <integer>1</integer> | 678 | <integer>1</integer> |
540 | <key>Type</key> | 679 | <key>Type</key> |
541 | <string>String</string> | 680 | <string>String</string> |
542 | <key>Value</key> | 681 | <key>Value</key> |
543 | <string /> | 682 | <string /> |
544 | </map> | 683 | </map> |
545 | <key>BrowserProxyEnabled</key> | 684 | <key>BrowserProxyEnabled</key> |
546 | <map> | 685 | <map> |
547 | <key>Comment</key> | 686 | <key>Comment</key> |
548 | <string>Use Web Proxy</string> | 687 | <string>Use Web Proxy</string> |
549 | <key>Persist</key> | 688 | <key>Persist</key> |
550 | <integer>1</integer> | 689 | <integer>1</integer> |
551 | <key>Type</key> | 690 | <key>Type</key> |
552 | <string>Boolean</string> | 691 | <string>Boolean</string> |
553 | <key>Value</key> | 692 | <key>Value</key> |
554 | <integer>0</integer> | 693 | <integer>0</integer> |
555 | </map> | 694 | </map> |
556 | <key>BrowserProxyExclusions</key> | 695 | <key>BrowserProxyExclusions</key> |
557 | <map> | 696 | <map> |
558 | <key>Comment</key> | 697 | <key>Comment</key> |
559 | <string>[NOT USED]</string> | 698 | <string>[NOT USED]</string> |
560 | <key>Persist</key> | 699 | <key>Persist</key> |
561 | <integer>1</integer> | 700 | <integer>1</integer> |
562 | <key>Type</key> | 701 | <key>Type</key> |
563 | <string>String</string> | 702 | <string>String</string> |
564 | <key>Value</key> | 703 | <key>Value</key> |
565 | <string /> | 704 | <string /> |
566 | </map> | 705 | </map> |
567 | <key>BrowserProxyPort</key> | 706 | <key>BrowserProxyPort</key> |
568 | <map> | 707 | <map> |
569 | <key>Comment</key> | 708 | <key>Comment</key> |
570 | <string>Port for Web Proxy</string> | 709 | <string>Port for Web Proxy</string> |
571 | <key>Persist</key> | 710 | <key>Persist</key> |
572 | <integer>1</integer> | 711 | <integer>1</integer> |
573 | <key>Type</key> | 712 | <key>Type</key> |
574 | <string>S32</string> | 713 | <string>S32</string> |
575 | <key>Value</key> | 714 | <key>Value</key> |
576 | <integer>3128</integer> | 715 | <integer>3128</integer> |
577 | </map> | 716 | </map> |
578 | <key>BrowserProxySocks45</key> | 717 | <key>BrowserProxySocks45</key> |
579 | <map> | 718 | <map> |
580 | <key>Comment</key> | 719 | <key>Comment</key> |
581 | <string>[NOT USED]</string> | 720 | <string>[NOT USED]</string> |
582 | <key>Persist</key> | 721 | <key>Persist</key> |
583 | <integer>1</integer> | 722 | <integer>1</integer> |
584 | <key>Type</key> | 723 | <key>Type</key> |
585 | <string>S32</string> | 724 | <string>S32</string> |
586 | <key>Value</key> | 725 | <key>Value</key> |
587 | <integer>5</integer> | 726 | <integer>5</integer> |
588 | </map> | 727 | </map> |
728 | <key>BuildAxisDeadZone0</key> | ||
729 | <map> | ||
730 | <key>Comment</key> | ||
731 | <string>Build axis 0 dead zone.</string> | ||
732 | <key>Persist</key> | ||
733 | <integer>1</integer> | ||
734 | <key>Type</key> | ||
735 | <string>F32</string> | ||
736 | <key>Value</key> | ||
737 | <real>0.1</real> | ||
738 | </map> | ||
739 | <key>BuildAxisDeadZone1</key> | ||
740 | <map> | ||
741 | <key>Comment</key> | ||
742 | <string>Build axis 1 dead zone.</string> | ||
743 | <key>Persist</key> | ||
744 | <integer>1</integer> | ||
745 | <key>Type</key> | ||
746 | <string>F32</string> | ||
747 | <key>Value</key> | ||
748 | <real>0.1</real> | ||
749 | </map> | ||
750 | <key>BuildAxisDeadZone2</key> | ||
751 | <map> | ||
752 | <key>Comment</key> | ||
753 | <string>Build axis 2 dead zone.</string> | ||
754 | <key>Persist</key> | ||
755 | <integer>1</integer> | ||
756 | <key>Type</key> | ||
757 | <string>F32</string> | ||
758 | <key>Value</key> | ||
759 | <real>0.1</real> | ||
760 | </map> | ||
761 | <key>BuildAxisDeadZone3</key> | ||
762 | <map> | ||
763 | <key>Comment</key> | ||
764 | <string>Build axis 3 dead zone.</string> | ||
765 | <key>Persist</key> | ||
766 | <integer>1</integer> | ||
767 | <key>Type</key> | ||
768 | <string>F32</string> | ||
769 | <key>Value</key> | ||
770 | <real>0.1</real> | ||
771 | </map> | ||
772 | <key>BuildAxisDeadZone4</key> | ||
773 | <map> | ||
774 | <key>Comment</key> | ||
775 | <string>Build axis 4 dead zone.</string> | ||
776 | <key>Persist</key> | ||
777 | <integer>1</integer> | ||
778 | <key>Type</key> | ||
779 | <string>F32</string> | ||
780 | <key>Value</key> | ||
781 | <real>0.1</real> | ||
782 | </map> | ||
783 | <key>BuildAxisDeadZone5</key> | ||
784 | <map> | ||
785 | <key>Comment</key> | ||
786 | <string>Build axis 5 dead zone.</string> | ||
787 | <key>Persist</key> | ||
788 | <integer>1</integer> | ||
789 | <key>Type</key> | ||
790 | <string>F32</string> | ||
791 | <key>Value</key> | ||
792 | <real>0.1</real> | ||
793 | </map> | ||
794 | <key>BuildAxisScale0</key> | ||
795 | <map> | ||
796 | <key>Comment</key> | ||
797 | <string>Build axis 0 scaler.</string> | ||
798 | <key>Persist</key> | ||
799 | <integer>1</integer> | ||
800 | <key>Type</key> | ||
801 | <string>F32</string> | ||
802 | <key>Value</key> | ||
803 | <real>1.0</real> | ||
804 | </map> | ||
805 | <key>BuildAxisScale1</key> | ||
806 | <map> | ||
807 | <key>Comment</key> | ||
808 | <string>Build axis 1 scaler.</string> | ||
809 | <key>Persist</key> | ||
810 | <integer>1</integer> | ||
811 | <key>Type</key> | ||
812 | <string>F32</string> | ||
813 | <key>Value</key> | ||
814 | <real>1.0</real> | ||
815 | </map> | ||
816 | <key>BuildAxisScale2</key> | ||
817 | <map> | ||
818 | <key>Comment</key> | ||
819 | <string>Build axis 2 scaler.</string> | ||
820 | <key>Persist</key> | ||
821 | <integer>1</integer> | ||
822 | <key>Type</key> | ||
823 | <string>F32</string> | ||
824 | <key>Value</key> | ||
825 | <real>1.0</real> | ||
826 | </map> | ||
827 | <key>BuildAxisScale3</key> | ||
828 | <map> | ||
829 | <key>Comment</key> | ||
830 | <string>Build axis 3 scaler.</string> | ||
831 | <key>Persist</key> | ||
832 | <integer>1</integer> | ||
833 | <key>Type</key> | ||
834 | <string>F32</string> | ||
835 | <key>Value</key> | ||
836 | <real>1.0</real> | ||
837 | </map> | ||
838 | <key>BuildAxisScale4</key> | ||
839 | <map> | ||
840 | <key>Comment</key> | ||
841 | <string>Build axis 4 scaler.</string> | ||
842 | <key>Persist</key> | ||
843 | <integer>1</integer> | ||
844 | <key>Type</key> | ||
845 | <string>F32</string> | ||
846 | <key>Value</key> | ||
847 | <real>1.0</real> | ||
848 | </map> | ||
849 | <key>BuildAxisScale5</key> | ||
850 | <map> | ||
851 | <key>Comment</key> | ||
852 | <string>Build axis 5 scaler.</string> | ||
853 | <key>Persist</key> | ||
854 | <integer>1</integer> | ||
855 | <key>Type</key> | ||
856 | <string>F32</string> | ||
857 | <key>Value</key> | ||
858 | <real>1.0</real> | ||
859 | </map> | ||
589 | <key>BuildBtnState</key> | 860 | <key>BuildBtnState</key> |
590 | <map> | 861 | <map> |
591 | <key>Comment</key> | 862 | <key>Comment</key> |
592 | <string /> | 863 | <string /> |
593 | <key>Persist</key> | 864 | <key>Persist</key> |
594 | <integer>0</integer> | 865 | <integer>0</integer> |
595 | <key>Type</key> | 866 | <key>Type</key> |
596 | <string>Boolean</string> | 867 | <string>Boolean</string> |
597 | <key>Value</key> | 868 | <key>Value</key> |
598 | <integer>0</integer> | 869 | <integer>0</integer> |
599 | </map> | 870 | </map> |
871 | <key>BuildFeathering</key> | ||
872 | <map> | ||
873 | <key>Comment</key> | ||
874 | <string>Build feathering (less is softer)</string> | ||
875 | <key>Persist</key> | ||
876 | <integer>1</integer> | ||
877 | <key>Type</key> | ||
878 | <string>F32</string> | ||
879 | <key>Value</key> | ||
880 | <real>16.0</real> | ||
881 | </map> | ||
600 | <key>ButtonFlashCount</key> | 882 | <key>ButtonFlashCount</key> |
601 | <map> | 883 | <map> |
602 | <key>Comment</key> | 884 | <key>Comment</key> |
603 | <string>Number of flashes after which flashing buttons stay lit up</string> | 885 | <string>Number of flashes after which flashing buttons stay lit up</string> |
604 | <key>Persist</key> | 886 | <key>Persist</key> |
605 | <integer>1</integer> | 887 | <integer>1</integer> |
606 | <key>Type</key> | 888 | <key>Type</key> |
607 | <string>S32</string> | 889 | <string>S32</string> |
608 | <key>Value</key> | 890 | <key>Value</key> |
609 | <integer>3</integer> | 891 | <integer>3</integer> |
610 | </map> | 892 | </map> |
611 | <key>ButtonFlashRate</key> | 893 | <key>ButtonFlashRate</key> |
612 | <map> | 894 | <map> |
613 | <key>Comment</key> | 895 | <key>Comment</key> |
614 | <string>Frequency at which buttons flash (hz)</string> | 896 | <string>Frequency at which buttons flash (hz)</string> |
615 | <key>Persist</key> | 897 | <key>Persist</key> |
616 | <integer>1</integer> | 898 | <integer>1</integer> |
617 | <key>Type</key> | 899 | <key>Type</key> |
618 | <string>F32</string> | 900 | <string>F32</string> |
619 | <key>Value</key> | 901 | <key>Value</key> |
620 | <real>2</real> | 902 | <real>2.0</real> |
621 | </map> | 903 | </map> |
622 | <key>ButtonHPad</key> | 904 | <key>ButtonHPad</key> |
623 | <map> | 905 | <map> |
624 | <key>Comment</key> | 906 | <key>Comment</key> |
625 | <string>Default horizontal spacing between buttons (pixels)</string> | 907 | <string>Default horizontal spacing between buttons (pixels)</string> |
626 | <key>Persist</key> | 908 | <key>Persist</key> |
627 | <integer>1</integer> | 909 | <integer>1</integer> |
628 | <key>Type</key> | 910 | <key>Type</key> |
629 | <string>S32</string> | 911 | <string>S32</string> |
630 | <key>Value</key> | 912 | <key>Value</key> |
631 | <integer>10</integer> | 913 | <integer>10</integer> |
632 | </map> | 914 | </map> |
633 | <key>ButtonHeight</key> | 915 | <key>ButtonHeight</key> |
634 | <map> | 916 | <map> |
635 | <key>Comment</key> | 917 | <key>Comment</key> |
636 | <string>Default height for normal buttons (pixels)</string> | 918 | <string>Default height for normal buttons (pixels)</string> |
637 | <key>Persist</key> | 919 | <key>Persist</key> |
638 | <integer>1</integer> | 920 | <integer>1</integer> |
639 | <key>Type</key> | 921 | <key>Type</key> |
640 | <string>S32</string> | 922 | <string>S32</string> |
641 | <key>Value</key> | 923 | <key>Value</key> |
642 | <integer>20</integer> | 924 | <integer>20</integer> |
643 | </map> | 925 | </map> |
644 | <key>ButtonHeightSmall</key> | 926 | <key>ButtonHeightSmall</key> |
645 | <map> | 927 | <map> |
646 | <key>Comment</key> | 928 | <key>Comment</key> |
647 | <string>Default height for small buttons (pixels)</string> | 929 | <string>Default height for small buttons (pixels)</string> |
648 | <key>Persist</key> | 930 | <key>Persist</key> |
649 | <integer>1</integer> | 931 | <integer>1</integer> |
650 | <key>Type</key> | 932 | <key>Type</key> |
651 | <string>S32</string> | 933 | <string>S32</string> |
652 | <key>Value</key> | 934 | <key>Value</key> |
653 | <integer>16</integer> | 935 | <integer>16</integer> |
654 | </map> | 936 | </map> |
655 | <key>ButtonVPad</key> | 937 | <key>ButtonVPad</key> |
656 | <map> | 938 | <map> |
657 | <key>Comment</key> | 939 | <key>Comment</key> |
658 | <string>Default vertical spacing between buttons (pixels)</string> | 940 | <string>Default vertical spacing between buttons (pixels)</string> |
659 | <key>Persist</key> | 941 | <key>Persist</key> |
660 | <integer>1</integer> | 942 | <integer>1</integer> |
661 | <key>Type</key> | 943 | <key>Type</key> |
662 | <string>S32</string> | 944 | <string>S32</string> |
663 | <key>Value</key> | 945 | <key>Value</key> |
664 | <integer>1</integer> | 946 | <integer>1</integer> |
665 | </map> | 947 | </map> |
666 | <key>CacheLocation</key> | 948 | <key>CacheLocation</key> |
667 | <map> | 949 | <map> |
668 | <key>Comment</key> | 950 | <key>Comment</key> |
669 | <string>Controls the location of the local disk cache</string> | 951 | <string>Controls the location of the local disk cache</string> |
670 | <key>Persist</key> | 952 | <key>Persist</key> |
671 | <integer>1</integer> | 953 | <integer>1</integer> |
672 | <key>Type</key> | 954 | <key>Type</key> |
673 | <string>String</string> | 955 | <string>String</string> |
674 | <key>Value</key> | 956 | <key>Value</key> |
675 | <string /> | 957 | <string /> |
676 | </map> | 958 | </map> |
677 | <key>CacheSize</key> | 959 | <key>CacheSize</key> |
678 | <map> | 960 | <map> |
679 | <key>Comment</key> | 961 | <key>Comment</key> |
680 | <string>Controls amount of hard drive space reserved for local file caching in MB</string> | 962 | <string>Controls amount of hard drive space reserved for local file caching in MB</string> |
681 | <key>Persist</key> | 963 | <key>Persist</key> |
682 | <integer>1</integer> | 964 | <integer>1</integer> |
683 | <key>Type</key> | 965 | <key>Type</key> |
684 | <string>U32</string> | 966 | <string>U32</string> |
685 | <key>Value</key> | 967 | <key>Value</key> |
686 | <integer>500</integer> | 968 | <integer>500</integer> |
687 | </map> | 969 | </map> |
688 | <key>CacheValidateCounter</key> | 970 | <key>CacheValidateCounter</key> |
689 | <map> | 971 | <map> |
690 | <key>Comment</key> | 972 | <key>Comment</key> |
691 | <string>Used to distribute cache validation</string> | 973 | <string>Used to distribute cache validation</string> |
692 | <key>Persist</key> | 974 | <key>Persist</key> |
693 | <integer>1</integer> | 975 | <integer>1</integer> |
694 | <key>Type</key> | 976 | <key>Type</key> |
695 | <string>U32</string> | 977 | <string>U32</string> |
696 | <key>Value</key> | 978 | <key>Value</key> |
697 | <integer>0</integer> | 979 | <integer>0</integer> |
698 | </map> | 980 | </map> |
981 | <key>CameraMouseWheelZoom</key> | ||
982 | <map> | ||
983 | <key>Comment</key> | ||
984 | <string>Camera zooms in and out with mousewheel</string> | ||
985 | <key>Persist</key> | ||
986 | <integer>1</integer> | ||
987 | <key>Type</key> | ||
988 | <string>Boolean</string> | ||
989 | <key>Value</key> | ||
990 | <integer>1</integer> | ||
991 | </map> | ||
699 | <key>CameraOffset</key> | 992 | <key>CameraOffset</key> |
700 | <map> | 993 | <map> |
701 | <key>Comment</key> | 994 | <key>Comment</key> |
702 | <string>Render with camera offset from view frustum (rendering debug)</string> | 995 | <string>Render with camera offset from view frustum (rendering debug)</string> |
703 | <key>Persist</key> | 996 | <key>Persist</key> |
704 | <integer>1</integer> | 997 | <integer>1</integer> |
705 | <key>Type</key> | 998 | <key>Type</key> |
706 | <string>Boolean</string> | 999 | <string>Boolean</string> |
707 | <key>Value</key> | 1000 | <key>Value</key> |
708 | <integer>0</integer> | 1001 | <integer>0</integer> |
709 | </map> | 1002 | </map> |
710 | <key>CameraOffsetBuild</key> | 1003 | <key>CameraOffsetBuild</key> |
711 | <map> | 1004 | <map> |
712 | <key>Comment</key> | 1005 | <key>Comment</key> |
713 | <string>Default camera position relative to focus point when entering build mode</string> | 1006 | <string>Default camera position relative to focus point when entering build mode</string> |
714 | <key>Persist</key> | 1007 | <key>Persist</key> |
715 | <integer>1</integer> | 1008 | <integer>1</integer> |
716 | <key>Type</key> | 1009 | <key>Type</key> |
717 | <string>Vector3</string> | 1010 | <string>Vector3</string> |
718 | <key>Value</key> | 1011 | <key>Value</key> |
719 | <array> | 1012 | <array> |
720 | <real>-6</real> | 1013 | <real>-6.0</real> |
721 | <real>0</real> | 1014 | <real>0.0</real> |
722 | <real>6</real> | 1015 | <real>6.0</real> |
723 | </array> | 1016 | </array> |
724 | </map> | 1017 | </map> |
725 | <key>CameraOffsetDefault</key> | 1018 | <key>CameraOffsetDefault</key> |
726 | <map> | 1019 | <map> |
727 | <key>Comment</key> | 1020 | <key>Comment</key> |
728 | <string>Default camera offset from avatar</string> | 1021 | <string>Default camera offset from avatar</string> |
729 | <key>Persist</key> | 1022 | <key>Persist</key> |
730 | <integer>1</integer> | 1023 | <integer>1</integer> |
731 | <key>Type</key> | 1024 | <key>Type</key> |
732 | <string>Vector3</string> | 1025 | <string>Vector3</string> |
733 | <key>Value</key> | 1026 | <key>Value</key> |
734 | <array> | 1027 | <array> |
735 | <real>-3</real> | 1028 | <real>-3.0</real> |
736 | <real>0</real> | 1029 | <real>0.0</real> |
737 | <real>0.75</real> | 1030 | <real>0.75</real> |
738 | </array> | 1031 | </array> |
739 | </map> | 1032 | </map> |
740 | <key>CameraPositionSmoothing</key> | ||
741 | <map> | ||
742 | <key>Comment</key> | ||
743 | <string>Smooths camera position over time</string> | ||
744 | <key>Persist</key> | ||
745 | <integer>1</integer> | ||
746 | <key>Type</key> | ||
747 | <string>F32</string> | ||
748 | <key>Value</key> | ||
749 | <real>1.0</real> | ||
750 | </map> | ||
751 | <key>CameraPosOnLogout</key> | 1033 | <key>CameraPosOnLogout</key> |
752 | <map> | 1034 | <map> |
753 | <key>Comment</key> | 1035 | <key>Comment</key> |
754 | <string>Camera position when last logged out (global coordinates)</string> | 1036 | <string>Camera position when last logged out (global coordinates)</string> |
755 | <key>Persist</key> | 1037 | <key>Persist</key> |
756 | <integer>1</integer> | 1038 | <integer>1</integer> |
757 | <key>Type</key> | 1039 | <key>Type</key> |
758 | <string>Vector3D</string> | 1040 | <string>Vector3D</string> |
759 | <key>Value</key> | 1041 | <key>Value</key> |
760 | <array> | 1042 | <array> |
761 | <real>0</real> | 1043 | <real>0.0</real> |
762 | <real>0</real> | 1044 | <real>0.0</real> |
763 | <real>0</real> | 1045 | <real>0.0</real> |
764 | </array> | 1046 | </array> |
765 | </map> | 1047 | </map> |
766 | <key>CameraMouseWheelZoom</key> | 1048 | <key>CameraPositionSmoothing</key> |
767 | <map> | 1049 | <map> |
768 | <key>Comment</key> | 1050 | <key>Comment</key> |
769 | <string>Camera zooms in and out with mousewheel</string> | 1051 | <string>Smooths camera position over time</string> |
770 | <key>Persist</key> | 1052 | <key>Persist</key> |
771 | <integer>1</integer> | 1053 | <integer>1</integer> |
772 | <key>Type</key> | 1054 | <key>Type</key> |
773 | <string>Boolean</string> | 1055 | <string>F32</string> |
774 | <key>Value</key> | 1056 | <key>Value</key> |
775 | <integer>1</integer> | 1057 | <real>1.0</real> |
776 | </map> | 1058 | </map> |
777 | <key>ChatBarStealsFocus</key> | 1059 | <key>ChatBarStealsFocus</key> |
778 | <map> | 1060 | <map> |
779 | <key>Comment</key> | 1061 | <key>Comment</key> |
780 | <string>Whenever keyboard focus is removed from the UI, and the chat bar is visible, the chat bar takes focus</string> | 1062 | <string>Whenever keyboard focus is removed from the UI, and the chat bar is visible, the chat bar takes focus</string> |
781 | <key>Persist</key> | 1063 | <key>Persist</key> |
782 | <integer>1</integer> | 1064 | <integer>1</integer> |
783 | <key>Type</key> | 1065 | <key>Type</key> |
784 | <string>Boolean</string> | 1066 | <string>Boolean</string> |
785 | <key>Value</key> | 1067 | <key>Value</key> |
786 | <integer>1</integer> | 1068 | <integer>1</integer> |
787 | </map> | 1069 | </map> |
788 | <key>ChatBubbleOpacity</key> | 1070 | <key>ChatBubbleOpacity</key> |
789 | <map> | 1071 | <map> |
790 | <key>Comment</key> | 1072 | <key>Comment</key> |
791 | <string>Opacity of chat bubble background (0.0 = completely transparent, 1.0 = completely opaque)</string> | 1073 | <string>Opacity of chat bubble background (0.0 = completely transparent, 1.0 = completely opaque)</string> |
792 | <key>Persist</key> | 1074 | <key>Persist</key> |
793 | <integer>1</integer> | 1075 | <integer>1</integer> |
794 | <key>Type</key> | 1076 | <key>Type</key> |
795 | <string>F32</string> | 1077 | <string>F32</string> |
796 | <key>Value</key> | 1078 | <key>Value</key> |
797 | <real>0.5</real> | 1079 | <real>0.5</real> |
798 | </map> | 1080 | </map> |
799 | <key>ChatFontSize</key> | 1081 | <key>ChatFontSize</key> |
800 | <map> | 1082 | <map> |
801 | <key>Comment</key> | 1083 | <key>Comment</key> |
802 | <string>Size of chat text in chat console (0 = small, 1 = big)</string> | 1084 | <string>Size of chat text in chat console (0 = small, 1 = big)</string> |
803 | <key>Persist</key> | 1085 | <key>Persist</key> |
804 | <integer>1</integer> | 1086 | <integer>1</integer> |
805 | <key>Type</key> | 1087 | <key>Type</key> |
806 | <string>S32</string> | 1088 | <string>S32</string> |
807 | <key>Value</key> | 1089 | <key>Value</key> |
808 | <integer>1</integer> | 1090 | <integer>1</integer> |
809 | </map> | 1091 | </map> |
810 | <key>ChatFullWidth</key> | 1092 | <key>ChatFullWidth</key> |
811 | <map> | 1093 | <map> |
812 | <key>Comment</key> | 1094 | <key>Comment</key> |
813 | <string>Chat console takes up full width of SL window</string> | 1095 | <string>Chat console takes up full width of SL window</string> |
814 | <key>Persist</key> | 1096 | <key>Persist</key> |
815 | <integer>1</integer> | 1097 | <integer>1</integer> |
816 | <key>Type</key> | 1098 | <key>Type</key> |
817 | <string>Boolean</string> | 1099 | <string>Boolean</string> |
818 | <key>Value</key> | 1100 | <key>Value</key> |
819 | <integer>1</integer> | 1101 | <integer>1</integer> |
820 | </map> | 1102 | </map> |
821 | <key>ChatHistoryTornOff</key> | 1103 | <key>ChatHistoryTornOff</key> |
822 | <map> | 1104 | <map> |
823 | <key>Comment</key> | 1105 | <key>Comment</key> |
824 | <string>Show chat history window separately from Communicate window.</string> | 1106 | <string>Show chat history window separately from Communicate window.</string> |
825 | <key>Persist</key> | 1107 | <key>Persist</key> |
826 | <integer>1</integer> | 1108 | <integer>1</integer> |
827 | <key>Type</key> | 1109 | <key>Type</key> |
828 | <string>Boolean</string> | 1110 | <string>Boolean</string> |
829 | <key>Value</key> | 1111 | <key>Value</key> |
830 | <integer>0</integer> | 1112 | <integer>0</integer> |
831 | </map> | 1113 | </map> |
832 | <key>ChatOnlineNotification</key> | 1114 | <key>ChatOnlineNotification</key> |
833 | <map> | 1115 | <map> |
834 | <key>Comment</key> | 1116 | <key>Comment</key> |
835 | <string>Provide notifications for when friend log on and off of SL</string> | 1117 | <string>Provide notifications for when friend log on and off of SL</string> |
836 | <key>Persist</key> | 1118 | <key>Persist</key> |
837 | <integer>1</integer> | 1119 | <integer>1</integer> |
838 | <key>Type</key> | 1120 | <key>Type</key> |
839 | <string>Boolean</string> | 1121 | <string>Boolean</string> |
840 | <key>Value</key> | 1122 | <key>Value</key> |
841 | <integer>1</integer> | 1123 | <integer>1</integer> |
842 | </map> | 1124 | </map> |
843 | <key>ChatPersistTime</key> | 1125 | <key>ChatPersistTime</key> |
844 | <map> | 1126 | <map> |
845 | <key>Comment</key> | 1127 | <key>Comment</key> |
846 | <string>Time for which chat stays visible in console (seconds)</string> | 1128 | <string>Time for which chat stays visible in console (seconds)</string> |
847 | <key>Persist</key> | 1129 | <key>Persist</key> |
848 | <integer>1</integer> | 1130 | <integer>1</integer> |
849 | <key>Type</key> | 1131 | <key>Type</key> |
850 | <string>F32</string> | 1132 | <string>F32</string> |
851 | <key>Value</key> | 1133 | <key>Value</key> |
852 | <real>15</real> | 1134 | <real>15.0</real> |
853 | </map> | 1135 | </map> |
854 | <key>ChatShowTimestamps</key> | 1136 | <key>ChatShowTimestamps</key> |
855 | <map> | 1137 | <map> |
856 | <key>Comment</key> | 1138 | <key>Comment</key> |
857 | <string>Show timestamps in chat</string> | 1139 | <string>Show timestamps in chat</string> |
858 | <key>Persist</key> | 1140 | <key>Persist</key> |
859 | <integer>1</integer> | 1141 | <integer>1</integer> |
860 | <key>Type</key> | 1142 | <key>Type</key> |
861 | <string>Boolean</string> | 1143 | <string>Boolean</string> |
862 | <key>Value</key> | 1144 | <key>Value</key> |
863 | <integer>1</integer> | 1145 | <integer>1</integer> |
864 | </map> | 1146 | </map> |
865 | <key>ChatVisible</key> | 1147 | <key>ChatVisible</key> |
866 | <map> | 1148 | <map> |
867 | <key>Comment</key> | 1149 | <key>Comment</key> |
868 | <string>Chat bar is visible</string> | 1150 | <string>Chat bar is visible</string> |
869 | <key>Persist</key> | 1151 | <key>Persist</key> |
870 | <integer>1</integer> | 1152 | <integer>1</integer> |
871 | <key>Type</key> | 1153 | <key>Type</key> |
872 | <string>Boolean</string> | 1154 | <string>Boolean</string> |
873 | <key>Value</key> | 1155 | <key>Value</key> |
874 | <integer>1</integer> | 1156 | <integer>1</integer> |
875 | </map> | 1157 | </map> |
876 | <key>ChatterboxRect</key> | 1158 | <key>ChatterboxRect</key> |
877 | <map> | 1159 | <map> |
878 | <key>Comment</key> | 1160 | <key>Comment</key> |
879 | <string>Rectangle for chatterbox window</string> | 1161 | <string>Rectangle for chatterbox window</string> |
880 | <key>Persist</key> | 1162 | <key>Persist</key> |
881 | <integer>1</integer> | 1163 | <integer>1</integer> |
882 | <key>Type</key> | 1164 | <key>Type</key> |
883 | <string>Rect</string> | 1165 | <string>Rect</string> |
884 | <key>Value</key> | 1166 | <key>Value</key> |
885 | <array> | 1167 | <array> |
886 | <integer>0</integer> | 1168 | <integer>0</integer> |
887 | <integer>400</integer> | 1169 | <integer>400</integer> |
888 | <integer>350</integer> | 1170 | <integer>350</integer> |
889 | <integer>0</integer> | 1171 | <integer>0</integer> |
890 | </array> | 1172 | </array> |
891 | </map> | 1173 | </map> |
892 | <key>CheesyBeacon</key> | 1174 | <key>CheesyBeacon</key> |
893 | <map> | 1175 | <map> |
894 | <key>Comment</key> | 1176 | <key>Comment</key> |
895 | <string>Enable cheesy beacon effects</string> | 1177 | <string>Enable cheesy beacon effects</string> |
896 | <key>Persist</key> | 1178 | <key>Persist</key> |
897 | <integer>1</integer> | 1179 | <integer>1</integer> |
898 | <key>Type</key> | 1180 | <key>Type</key> |
899 | <string>Boolean</string> | 1181 | <string>Boolean</string> |
900 | <key>Value</key> | 1182 | <key>Value</key> |
901 | <integer>0</integer> | 1183 | <integer>0</integer> |
902 | </map> | 1184 | </map> |
903 | <key>ClientSettingsFile</key> | 1185 | <key>ClientSettingsFile</key> |
904 | <map> | 1186 | <map> |
905 | <key>Comment</key> | 1187 | <key>Comment</key> |
906 | <string>Persisted client settings file name (per install).</string> | 1188 | <string>Persisted client settings file name (per install).</string> |
907 | <key>Persist</key> | 1189 | <key>Persist</key> |
908 | <integer>0</integer> | 1190 | <integer>0</integer> |
909 | <key>Type</key> | 1191 | <key>Type</key> |
910 | <string>String</string> | 1192 | <string>String</string> |
911 | <key>Value</key> | 1193 | <key>Value</key> |
912 | <string /> | 1194 | <string /> |
913 | </map> | 1195 | </map> |
914 | <key>CloseChatOnReturn</key> | 1196 | <key>CloseChatOnReturn</key> |
915 | <map> | 1197 | <map> |
916 | <key>Comment</key> | 1198 | <key>Comment</key> |
917 | <string>Close chat after hitting return</string> | 1199 | <string>Close chat after hitting return</string> |
918 | <key>Persist</key> | 1200 | <key>Persist</key> |
919 | <integer>1</integer> | 1201 | <integer>1</integer> |
920 | <key>Type</key> | 1202 | <key>Type</key> |
921 | <string>Boolean</string> | 1203 | <string>Boolean</string> |
922 | <key>Value</key> | 1204 | <key>Value</key> |
923 | <integer>0</integer> | 1205 | <integer>0</integer> |
924 | </map> | 1206 | </map> |
925 | <key>CloseSnapshotOnKeep</key> | 1207 | <key>CloseSnapshotOnKeep</key> |
926 | <map> | 1208 | <map> |
927 | <key>Comment</key> | 1209 | <key>Comment</key> |
928 | <string>Close snapshot window after saving snapshot</string> | 1210 | <string>Close snapshot window after saving snapshot</string> |
929 | <key>Persist</key> | 1211 | <key>Persist</key> |
930 | <integer>1</integer> | 1212 | <integer>1</integer> |
931 | <key>Type</key> | 1213 | <key>Type</key> |
932 | <string>Boolean</string> | 1214 | <string>Boolean</string> |
933 | <key>Value</key> | 1215 | <key>Value</key> |
934 | <integer>1</integer> | 1216 | <integer>1</integer> |
935 | </map> | 1217 | </map> |
936 | <key>ClothingBtnState</key> | 1218 | <key>ClothingBtnState</key> |
937 | <map> | 1219 | <map> |
938 | <key>Comment</key> | 1220 | <key>Comment</key> |
939 | <string /> | 1221 | <string /> |
940 | <key>Persist</key> | 1222 | <key>Persist</key> |
941 | <integer>0</integer> | 1223 | <integer>0</integer> |
942 | <key>Type</key> | 1224 | <key>Type</key> |
943 | <string>Boolean</string> | 1225 | <string>Boolean</string> |
944 | <key>Value</key> | 1226 | <key>Value</key> |
945 | <integer>0</integer> | 1227 | <integer>0</integer> |
946 | </map> | 1228 | </map> |
947 | <key>CmdLineDisableVoice</key> | 1229 | <key>CmdLineDisableVoice</key> |
948 | <map> | 1230 | <map> |
949 | <key>Comment</key> | 1231 | <key>Comment</key> |
950 | <string>Disable Voice.</string> | 1232 | <string>Disable Voice.</string> |
951 | <key>Persist</key> | 1233 | <key>Persist</key> |
952 | <integer>0</integer> | 1234 | <integer>0</integer> |
953 | <key>Type</key> | 1235 | <key>Type</key> |
954 | <string>Boolean</string> | 1236 | <string>Boolean</string> |
955 | <key>Value</key> | 1237 | <key>Value</key> |
956 | <integer>0</integer> | 1238 | <integer>0</integer> |
957 | </map> | 1239 | </map> |
1240 | <key>CmdLineGridChoice</key> | ||
1241 | <map> | ||
1242 | <key>Comment</key> | ||
1243 | <string>The user's grid choice or ip address.</string> | ||
1244 | <key>Persist</key> | ||
1245 | <integer>0</integer> | ||
1246 | <key>Type</key> | ||
1247 | <string>String</string> | ||
1248 | <key>Value</key> | ||
1249 | <string /> | ||
1250 | </map> | ||
1251 | <key>CmdLineHelperURI</key> | ||
1252 | <map> | ||
1253 | <key>Comment</key> | ||
1254 | <string>Command line specified helper web CGI prefix to use.</string> | ||
1255 | <key>Persist</key> | ||
1256 | <integer>0</integer> | ||
1257 | <key>Type</key> | ||
1258 | <string>String</string> | ||
1259 | <key>Value</key> | ||
1260 | <string /> | ||
1261 | </map> | ||
1262 | <key>CmdLineLoginURI</key> | ||
1263 | <map> | ||
1264 | <key>Comment</key> | ||
1265 | <string>Command line specified login server and CGI prefix to use.</string> | ||
1266 | <key>Persist</key> | ||
1267 | <integer>0</integer> | ||
1268 | <key>Type</key> | ||
1269 | <string>LLSD</string> | ||
1270 | <key>Value</key> | ||
1271 | <array> | ||
1272 | <string /> | ||
1273 | </array> | ||
1274 | </map> | ||
958 | <key>ColorPaletteEntry01</key> | 1275 | <key>ColorPaletteEntry01</key> |
959 | <map> | 1276 | <map> |
960 | <key>Comment</key> | 1277 | <key>Comment</key> |
961 | <string>Color picker palette entry</string> | 1278 | <string>Color picker palette entry</string> |
962 | <key>Persist</key> | 1279 | <key>Persist</key> |
963 | <integer>1</integer> | 1280 | <integer>1</integer> |
964 | <key>Type</key> | 1281 | <key>Type</key> |
965 | <string>Color4</string> | 1282 | <string>Color4</string> |
966 | <key>Value</key> | 1283 | <key>Value</key> |
967 | <array> | 1284 | <array> |
968 | <real>0</real> | 1285 | <real>0.0</real> |
969 | <real>0</real> | 1286 | <real>0.0</real> |
970 | <real>0</real> | 1287 | <real>0.0</real> |
971 | <real>1</real> | 1288 | <real>1.0</real> |
972 | </array> | 1289 | </array> |
973 | </map> | 1290 | </map> |
974 | <key>ColorPaletteEntry02</key> | 1291 | <key>ColorPaletteEntry02</key> |
975 | <map> | 1292 | <map> |
976 | <key>Comment</key> | 1293 | <key>Comment</key> |
977 | <string>Color picker palette entry</string> | 1294 | <string>Color picker palette entry</string> |
978 | <key>Persist</key> | 1295 | <key>Persist</key> |
979 | <integer>1</integer> | 1296 | <integer>1</integer> |
980 | <key>Type</key> | 1297 | <key>Type</key> |
981 | <string>Color4</string> | 1298 | <string>Color4</string> |
982 | <key>Value</key> | 1299 | <key>Value</key> |
983 | <array> | 1300 | <array> |
984 | <real>0.5</real> | 1301 | <real>0.5</real> |
985 | <real>0.5</real> | 1302 | <real>0.5</real> |
986 | <real>0.5</real> | 1303 | <real>0.5</real> |
987 | <real>1</real> | 1304 | <real>1.0</real> |
988 | </array> | 1305 | </array> |
989 | </map> | 1306 | </map> |
990 | <key>ColorPaletteEntry03</key> | 1307 | <key>ColorPaletteEntry03</key> |
991 | <map> | 1308 | <map> |
992 | <key>Comment</key> | 1309 | <key>Comment</key> |
993 | <string>Color picker palette entry</string> | 1310 | <string>Color picker palette entry</string> |
994 | <key>Persist</key> | 1311 | <key>Persist</key> |
995 | <integer>1</integer> | 1312 | <integer>1</integer> |
996 | <key>Type</key> | 1313 | <key>Type</key> |
997 | <string>Color4</string> | 1314 | <string>Color4</string> |
998 | <key>Value</key> | 1315 | <key>Value</key> |
999 | <array> | 1316 | <array> |
1000 | <real>0.5</real> | 1317 | <real>0.5</real> |
1001 | <real>0</real> | 1318 | <real>0.0</real> |
1002 | <real>0</real> | 1319 | <real>0.0</real> |
1003 | <real>1</real> | 1320 | <real>1.0</real> |
1004 | </array> | 1321 | </array> |
1005 | </map> | 1322 | </map> |
1006 | <key>ColorPaletteEntry04</key> | 1323 | <key>ColorPaletteEntry04</key> |
1007 | <map> | 1324 | <map> |
1008 | <key>Comment</key> | 1325 | <key>Comment</key> |
1009 | <string>Color picker palette entry</string> | 1326 | <string>Color picker palette entry</string> |
1010 | <key>Persist</key> | 1327 | <key>Persist</key> |
1011 | <integer>1</integer> | 1328 | <integer>1</integer> |
1012 | <key>Type</key> | 1329 | <key>Type</key> |
1013 | <string>Color4</string> | 1330 | <string>Color4</string> |
1014 | <key>Value</key> | 1331 | <key>Value</key> |
1015 | <array> | 1332 | <array> |
1016 | <real>0.5</real> | 1333 | <real>0.5</real> |
1017 | <real>0.5</real> | 1334 | <real>0.5</real> |
1018 | <real>0</real> | 1335 | <real>0.0</real> |
1019 | <real>1</real> | 1336 | <real>1.0</real> |
1020 | </array> | 1337 | </array> |
1021 | </map> | 1338 | </map> |
1022 | <key>ColorPaletteEntry05</key> | 1339 | <key>ColorPaletteEntry05</key> |
1023 | <map> | 1340 | <map> |
1024 | <key>Comment</key> | 1341 | <key>Comment</key> |
1025 | <string>Color picker palette entry</string> | 1342 | <string>Color picker palette entry</string> |
1026 | <key>Persist</key> | 1343 | <key>Persist</key> |
1027 | <integer>1</integer> | 1344 | <integer>1</integer> |
1028 | <key>Type</key> | 1345 | <key>Type</key> |
1029 | <string>Color4</string> | 1346 | <string>Color4</string> |
1030 | <key>Value</key> | 1347 | <key>Value</key> |
1031 | <array> | 1348 | <array> |
1032 | <real>0</real> | 1349 | <real>0.0</real> |
1033 | <real>0.5</real> | 1350 | <real>0.5</real> |
1034 | <real>0</real> | 1351 | <real>0.0</real> |
1035 | <real>1</real> | 1352 | <real>1.0</real> |
1036 | </array> | 1353 | </array> |
1037 | </map> | 1354 | </map> |
1038 | <key>ColorPaletteEntry06</key> | 1355 | <key>ColorPaletteEntry06</key> |
1039 | <map> | 1356 | <map> |
1040 | <key>Comment</key> | 1357 | <key>Comment</key> |
1041 | <string>Color picker palette entry</string> | 1358 | <string>Color picker palette entry</string> |
1042 | <key>Persist</key> | 1359 | <key>Persist</key> |
1043 | <integer>1</integer> | 1360 | <integer>1</integer> |
1044 | <key>Type</key> | 1361 | <key>Type</key> |
1045 | <string>Color4</string> | 1362 | <string>Color4</string> |
1046 | <key>Value</key> | 1363 | <key>Value</key> |
1047 | <array> | 1364 | <array> |
1048 | <real>0</real> | 1365 | <real>0.0</real> |
1049 | <real>0.5</real> | 1366 | <real>0.5</real> |
1050 | <real>0.5</real> | 1367 | <real>0.5</real> |
1051 | <real>1</real> | 1368 | <real>1.0</real> |
1052 | </array> | 1369 | </array> |
1053 | </map> | 1370 | </map> |
1054 | <key>ColorPaletteEntry07</key> | 1371 | <key>ColorPaletteEntry07</key> |
1055 | <map> | 1372 | <map> |
1056 | <key>Comment</key> | 1373 | <key>Comment</key> |
1057 | <string>Color picker palette entry</string> | 1374 | <string>Color picker palette entry</string> |
1058 | <key>Persist</key> | 1375 | <key>Persist</key> |
1059 | <integer>1</integer> | 1376 | <integer>1</integer> |
1060 | <key>Type</key> | 1377 | <key>Type</key> |
1061 | <string>Color4</string> | 1378 | <string>Color4</string> |
1062 | <key>Value</key> | 1379 | <key>Value</key> |
1063 | <array> | 1380 | <array> |
1064 | <real>0</real> | 1381 | <real>0.0</real> |
1065 | <real>0</real> | 1382 | <real>0.0</real> |
1066 | <real>0.5</real> | 1383 | <real>0.5</real> |
1067 | <real>1</real> | 1384 | <real>1.0</real> |
1068 | </array> | 1385 | </array> |
1069 | </map> | 1386 | </map> |
1070 | <key>ColorPaletteEntry08</key> | 1387 | <key>ColorPaletteEntry08</key> |
1071 | <map> | 1388 | <map> |
1072 | <key>Comment</key> | 1389 | <key>Comment</key> |
1073 | <string>Color picker palette entry</string> | 1390 | <string>Color picker palette entry</string> |
1074 | <key>Persist</key> | 1391 | <key>Persist</key> |
1075 | <integer>1</integer> | 1392 | <integer>1</integer> |
1076 | <key>Type</key> | 1393 | <key>Type</key> |
1077 | <string>Color4</string> | 1394 | <string>Color4</string> |
1078 | <key>Value</key> | 1395 | <key>Value</key> |
1079 | <array> | 1396 | <array> |
1080 | <real>0.5</real> | 1397 | <real>0.5</real> |
1081 | <real>0</real> | 1398 | <real>0.0</real> |
1082 | <real>0.5</real> | 1399 | <real>0.5</real> |
1083 | <real>1</real> | 1400 | <real>1.0</real> |
1084 | </array> | 1401 | </array> |
1085 | </map> | 1402 | </map> |
1086 | <key>ColorPaletteEntry09</key> | 1403 | <key>ColorPaletteEntry09</key> |
1087 | <map> | 1404 | <map> |
1088 | <key>Comment</key> | 1405 | <key>Comment</key> |
1089 | <string>Color picker palette entry</string> | 1406 | <string>Color picker palette entry</string> |
1090 | <key>Persist</key> | 1407 | <key>Persist</key> |
1091 | <integer>1</integer> | 1408 | <integer>1</integer> |
1092 | <key>Type</key> | 1409 | <key>Type</key> |
1093 | <string>Color4</string> | 1410 | <string>Color4</string> |
1094 | <key>Value</key> | 1411 | <key>Value</key> |
1095 | <array> | 1412 | <array> |
1096 | <real>0.5</real> | 1413 | <real>0.5</real> |
1097 | <real>0.5</real> | 1414 | <real>0.5</real> |
1098 | <real>0</real> | 1415 | <real>0.0</real> |
1099 | <real>1</real> | 1416 | <real>1.0</real> |
1100 | </array> | 1417 | </array> |
1101 | </map> | 1418 | </map> |
1102 | <key>ColorPaletteEntry10</key> | 1419 | <key>ColorPaletteEntry10</key> |
1103 | <map> | 1420 | <map> |
1104 | <key>Comment</key> | 1421 | <key>Comment</key> |
1105 | <string>Color picker palette entry</string> | 1422 | <string>Color picker palette entry</string> |
1106 | <key>Persist</key> | 1423 | <key>Persist</key> |
1107 | <integer>1</integer> | 1424 | <integer>1</integer> |
1108 | <key>Type</key> | 1425 | <key>Type</key> |
1109 | <string>Color4</string> | 1426 | <string>Color4</string> |
1110 | <key>Value</key> | 1427 | <key>Value</key> |
1111 | <array> | 1428 | <array> |
1112 | <real>0</real> | 1429 | <real>0.0</real> |
1113 | <real>0.25</real> | 1430 | <real>0.25</real> |
1114 | <real>0.25</real> | 1431 | <real>0.25</real> |
1115 | <real>1</real> | 1432 | <real>1.0</real> |
1116 | </array> | 1433 | </array> |
1117 | </map> | 1434 | </map> |
1118 | <key>ColorPaletteEntry11</key> | 1435 | <key>ColorPaletteEntry11</key> |
1119 | <map> | 1436 | <map> |
1120 | <key>Comment</key> | 1437 | <key>Comment</key> |
1121 | <string>Color picker palette entry</string> | 1438 | <string>Color picker palette entry</string> |
1122 | <key>Persist</key> | 1439 | <key>Persist</key> |
1123 | <integer>1</integer> | 1440 | <integer>1</integer> |
1124 | <key>Type</key> | 1441 | <key>Type</key> |
1125 | <string>Color4</string> | 1442 | <string>Color4</string> |
1126 | <key>Value</key> | 1443 | <key>Value</key> |
1127 | <array> | 1444 | <array> |
1128 | <real>0</real> | 1445 | <real>0.0</real> |
1129 | <real>0.5</real> | 1446 | <real>0.5</real> |
1130 | <real>1</real> | 1447 | <real>1.0</real> |
1131 | <real>1</real> | 1448 | <real>1.0</real> |
1132 | </array> | 1449 | </array> |
1133 | </map> | 1450 | </map> |
1134 | <key>ColorPaletteEntry12</key> | 1451 | <key>ColorPaletteEntry12</key> |
1135 | <map> | 1452 | <map> |
1136 | <key>Comment</key> | 1453 | <key>Comment</key> |
1137 | <string>Color picker palette entry</string> | 1454 | <string>Color picker palette entry</string> |
1138 | <key>Persist</key> | 1455 | <key>Persist</key> |
1139 | <integer>1</integer> | 1456 | <integer>1</integer> |
1140 | <key>Type</key> | 1457 | <key>Type</key> |
1141 | <string>Color4</string> | 1458 | <string>Color4</string> |
1142 | <key>Value</key> | 1459 | <key>Value</key> |
1143 | <array> | 1460 | <array> |
1144 | <real>0</real> | 1461 | <real>0.0</real> |
1145 | <real>0.25</real> | 1462 | <real>0.25</real> |
1146 | <real>0.5</real> | 1463 | <real>0.5</real> |
1147 | <real>1</real> | 1464 | <real>1.0</real> |
1148 | </array> | 1465 | </array> |
1149 | </map> | 1466 | </map> |
1150 | <key>ColorPaletteEntry13</key> | 1467 | <key>ColorPaletteEntry13</key> |
1151 | <map> | 1468 | <map> |
1152 | <key>Comment</key> | 1469 | <key>Comment</key> |
1153 | <string>Color picker palette entry</string> | 1470 | <string>Color picker palette entry</string> |
1154 | <key>Persist</key> | 1471 | <key>Persist</key> |
1155 | <integer>1</integer> | 1472 | <integer>1</integer> |
1156 | <key>Type</key> | 1473 | <key>Type</key> |
1157 | <string>Color4</string> | 1474 | <string>Color4</string> |
1158 | <key>Value</key> | 1475 | <key>Value</key> |
1159 | <array> | 1476 | <array> |
1160 | <real>0.5</real> | 1477 | <real>0.5</real> |
1161 | <real>0</real> | 1478 | <real>0.0</real> |
1162 | <real>1</real> | 1479 | <real>1.0</real> |
1163 | <real>1</real> | 1480 | <real>1.0</real> |
1164 | </array> | 1481 | </array> |
1165 | </map> | 1482 | </map> |
1166 | <key>ColorPaletteEntry14</key> | 1483 | <key>ColorPaletteEntry14</key> |
1167 | <map> | 1484 | <map> |
1168 | <key>Comment</key> | 1485 | <key>Comment</key> |
1169 | <string>Color picker palette entry</string> | 1486 | <string>Color picker palette entry</string> |
1170 | <key>Persist</key> | 1487 | <key>Persist</key> |
1171 | <integer>1</integer> | 1488 | <integer>1</integer> |
1172 | <key>Type</key> | 1489 | <key>Type</key> |
1173 | <string>Color4</string> | 1490 | <string>Color4</string> |
1174 | <key>Value</key> | 1491 | <key>Value</key> |
1175 | <array> | 1492 | <array> |
1176 | <real>0.5</real> | 1493 | <real>0.5</real> |
1177 | <real>0.25</real> | 1494 | <real>0.25</real> |
1178 | <real>0</real> | 1495 | <real>0.0</real> |
1179 | <real>1</real> | 1496 | <real>1.0</real> |
1180 | </array> | 1497 | </array> |
1181 | </map> | 1498 | </map> |
1182 | <key>ColorPaletteEntry15</key> | 1499 | <key>ColorPaletteEntry15</key> |
1183 | <map> | 1500 | <map> |
1184 | <key>Comment</key> | 1501 | <key>Comment</key> |
1185 | <string>Color picker palette entry</string> | 1502 | <string>Color picker palette entry</string> |
1186 | <key>Persist</key> | 1503 | <key>Persist</key> |
1187 | <integer>1</integer> | 1504 | <integer>1</integer> |
1188 | <key>Type</key> | 1505 | <key>Type</key> |
1189 | <string>Color4</string> | 1506 | <string>Color4</string> |
1190 | <key>Value</key> | 1507 | <key>Value</key> |
1191 | <array> | 1508 | <array> |
1192 | <real>1</real> | 1509 | <real>1.0</real> |
1193 | <real>1</real> | 1510 | <real>1.0</real> |
1194 | <real>1</real> | 1511 | <real>1.0</real> |
1195 | <real>1</real> | 1512 | <real>1.0</real> |
1196 | </array> | 1513 | </array> |
1197 | </map> | 1514 | </map> |
1198 | <key>ColorPaletteEntry16</key> | 1515 | <key>ColorPaletteEntry16</key> |
1199 | <map> | 1516 | <map> |
1200 | <key>Comment</key> | 1517 | <key>Comment</key> |
1201 | <string>Color picker palette entry</string> | 1518 | <string>Color picker palette entry</string> |
1202 | <key>Persist</key> | 1519 | <key>Persist</key> |
1203 | <integer>1</integer> | 1520 | <integer>1</integer> |
1204 | <key>Type</key> | 1521 | <key>Type</key> |
1205 | <string>Color4</string> | 1522 | <string>Color4</string> |
1206 | <key>Value</key> | 1523 | <key>Value</key> |
1207 | <array> | 1524 | <array> |
1208 | <real>1</real> | 1525 | <real>1.0</real> |
1209 | <real>1</real> | 1526 | <real>1.0</real> |
1210 | <real>1</real> | 1527 | <real>1.0</real> |
1211 | <real>1</real> | 1528 | <real>1.0</real> |
1212 | </array> | 1529 | </array> |
1213 | </map> | 1530 | </map> |
1214 | <key>ColorPaletteEntry17</key> | 1531 | <key>ColorPaletteEntry17</key> |
1215 | <map> | 1532 | <map> |
1216 | <key>Comment</key> | 1533 | <key>Comment</key> |
1217 | <string>Color picker palette entry</string> | 1534 | <string>Color picker palette entry</string> |
1218 | <key>Persist</key> | 1535 | <key>Persist</key> |
1219 | <integer>1</integer> | 1536 | <integer>1</integer> |
1220 | <key>Type</key> | 1537 | <key>Type</key> |
1221 | <string>Color4</string> | 1538 | <string>Color4</string> |
1222 | <key>Value</key> | 1539 | <key>Value</key> |
1223 | <array> | 1540 | <array> |
1224 | <real>1</real> | 1541 | <real>1.0</real> |
1225 | <real>1</real> | 1542 | <real>1.0</real> |
1226 | <real>1</real> | 1543 | <real>1.0</real> |
1227 | <real>1</real> | 1544 | <real>1.0</real> |
1228 | </array> | 1545 | </array> |
1229 | </map> | 1546 | </map> |
1230 | <key>ColorPaletteEntry18</key> | 1547 | <key>ColorPaletteEntry18</key> |
1231 | <map> | 1548 | <map> |
1232 | <key>Comment</key> | 1549 | <key>Comment</key> |
1233 | <string>Color picker palette entry</string> | 1550 | <string>Color picker palette entry</string> |
1234 | <key>Persist</key> | 1551 | <key>Persist</key> |
1235 | <integer>1</integer> | 1552 | <integer>1</integer> |
1236 | <key>Type</key> | 1553 | <key>Type</key> |
1237 | <string>Color4</string> | 1554 | <string>Color4</string> |
1238 | <key>Value</key> | 1555 | <key>Value</key> |
1239 | <array> | 1556 | <array> |
1240 | <real>0.75</real> | 1557 | <real>0.75</real> |
1241 | <real>0.75</real> | 1558 | <real>0.75</real> |
1242 | <real>0.75</real> | 1559 | <real>0.75</real> |
1243 | <real>1</real> | 1560 | <real>1.0</real> |
1244 | </array> | 1561 | </array> |
1245 | </map> | 1562 | </map> |
1246 | <key>ColorPaletteEntry19</key> | 1563 | <key>ColorPaletteEntry19</key> |
1247 | <map> | 1564 | <map> |
1248 | <key>Comment</key> | 1565 | <key>Comment</key> |
1249 | <string>Color picker palette entry</string> | 1566 | <string>Color picker palette entry</string> |
1250 | <key>Persist</key> | 1567 | <key>Persist</key> |
1251 | <integer>1</integer> | 1568 | <integer>1</integer> |
1252 | <key>Type</key> | 1569 | <key>Type</key> |
1253 | <string>Color4</string> | 1570 | <string>Color4</string> |
1254 | <key>Value</key> | 1571 | <key>Value</key> |
1255 | <array> | 1572 | <array> |
1256 | <real>1</real> | 1573 | <real>1.0</real> |
1257 | <real>0</real> | 1574 | <real>0.0</real> |
1258 | <real>0</real> | 1575 | <real>0.0</real> |
1259 | <real>1</real> | 1576 | <real>1.0</real> |
1260 | </array> | 1577 | </array> |
1261 | </map> | 1578 | </map> |
1262 | <key>ColorPaletteEntry20</key> | 1579 | <key>ColorPaletteEntry20</key> |
1263 | <map> | 1580 | <map> |
1264 | <key>Comment</key> | 1581 | <key>Comment</key> |
1265 | <string>Color picker palette entry</string> | 1582 | <string>Color picker palette entry</string> |
1266 | <key>Persist</key> | 1583 | <key>Persist</key> |
1267 | <integer>1</integer> | 1584 | <integer>1</integer> |
1268 | <key>Type</key> | 1585 | <key>Type</key> |
1269 | <string>Color4</string> | 1586 | <string>Color4</string> |
1270 | <key>Value</key> | 1587 | <key>Value</key> |
1271 | <array> | 1588 | <array> |
1272 | <real>1</real> | 1589 | <real>1.0</real> |
1273 | <real>1</real> | 1590 | <real>1.0</real> |
1274 | <real>0</real> | 1591 | <real>0.0</real> |
1275 | <real>1</real> | 1592 | <real>1.0</real> |
1276 | </array> | 1593 | </array> |
1277 | </map> | 1594 | </map> |
1278 | <key>ColorPaletteEntry21</key> | 1595 | <key>ColorPaletteEntry21</key> |
1279 | <map> | 1596 | <map> |
1280 | <key>Comment</key> | 1597 | <key>Comment</key> |
1281 | <string>Color picker palette entry</string> | 1598 | <string>Color picker palette entry</string> |
1282 | <key>Persist</key> | 1599 | <key>Persist</key> |
1283 | <integer>1</integer> | 1600 | <integer>1</integer> |
1284 | <key>Type</key> | 1601 | <key>Type</key> |
1285 | <string>Color4</string> | 1602 | <string>Color4</string> |
1286 | <key>Value</key> | 1603 | <key>Value</key> |
1287 | <array> | 1604 | <array> |
1288 | <real>0</real> | 1605 | <real>0.0</real> |
1289 | <real>1</real> | 1606 | <real>1.0</real> |
1290 | <real>0</real> | 1607 | <real>0.0</real> |
1291 | <real>1</real> | 1608 | <real>1.0</real> |
1292 | </array> | 1609 | </array> |
1293 | </map> | 1610 | </map> |
1294 | <key>ColorPaletteEntry22</key> | 1611 | <key>ColorPaletteEntry22</key> |
1295 | <map> | 1612 | <map> |
1296 | <key>Comment</key> | 1613 | <key>Comment</key> |
1297 | <string>Color picker palette entry</string> | 1614 | <string>Color picker palette entry</string> |
1298 | <key>Persist</key> | 1615 | <key>Persist</key> |
1299 | <integer>1</integer> | 1616 | <integer>1</integer> |
1300 | <key>Type</key> | 1617 | <key>Type</key> |
1301 | <string>Color4</string> | 1618 | <string>Color4</string> |
1302 | <key>Value</key> | 1619 | <key>Value</key> |
1303 | <array> | 1620 | <array> |
1304 | <real>0</real> | 1621 | <real>0.0</real> |
1305 | <real>1</real> | 1622 | <real>1.0</real> |
1306 | <real>1</real> | 1623 | <real>1.0</real> |
1307 | <real>1</real> | 1624 | <real>1.0</real> |
1308 | </array> | 1625 | </array> |
1309 | </map> | 1626 | </map> |
1310 | <key>ColorPaletteEntry23</key> | 1627 | <key>ColorPaletteEntry23</key> |
1311 | <map> | 1628 | <map> |
1312 | <key>Comment</key> | 1629 | <key>Comment</key> |
1313 | <string>Color picker palette entry</string> | 1630 | <string>Color picker palette entry</string> |
1314 | <key>Persist</key> | 1631 | <key>Persist</key> |
1315 | <integer>1</integer> | 1632 | <integer>1</integer> |
1316 | <key>Type</key> | 1633 | <key>Type</key> |
1317 | <string>Color4</string> | 1634 | <string>Color4</string> |
1318 | <key>Value</key> | 1635 | <key>Value</key> |
1319 | <array> | 1636 | <array> |
1320 | <real>0</real> | 1637 | <real>0.0</real> |
1321 | <real>0</real> | 1638 | <real>0.0</real> |
1322 | <real>1</real> | 1639 | <real>1.0</real> |
1323 | <real>1</real> | 1640 | <real>1.0</real> |
1324 | </array> | 1641 | </array> |
1325 | </map> | 1642 | </map> |
1326 | <key>ColorPaletteEntry24</key> | 1643 | <key>ColorPaletteEntry24</key> |
1327 | <map> | 1644 | <map> |
1328 | <key>Comment</key> | 1645 | <key>Comment</key> |
1329 | <string>Color picker palette entry</string> | 1646 | <string>Color picker palette entry</string> |
1330 | <key>Persist</key> | 1647 | <key>Persist</key> |
1331 | <integer>1</integer> | 1648 | <integer>1</integer> |
1332 | <key>Type</key> | 1649 | <key>Type</key> |
1333 | <string>Color4</string> | 1650 | <string>Color4</string> |
1334 | <key>Value</key> | 1651 | <key>Value</key> |
1335 | <array> | 1652 | <array> |
1336 | <real>1</real> | 1653 | <real>1.0</real> |
1337 | <real>0</real> | 1654 | <real>0.0</real> |
1338 | <real>1</real> | 1655 | <real>1.0</real> |
1339 | <real>1</real> | 1656 | <real>1.0</real> |
1340 | </array> | 1657 | </array> |
1341 | </map> | 1658 | </map> |
1342 | <key>ColorPaletteEntry25</key> | 1659 | <key>ColorPaletteEntry25</key> |
1343 | <map> | 1660 | <map> |
1344 | <key>Comment</key> | 1661 | <key>Comment</key> |
1345 | <string>Color picker palette entry</string> | 1662 | <string>Color picker palette entry</string> |
1346 | <key>Persist</key> | 1663 | <key>Persist</key> |
1347 | <integer>1</integer> | 1664 | <integer>1</integer> |
1348 | <key>Type</key> | 1665 | <key>Type</key> |
1349 | <string>Color4</string> | 1666 | <string>Color4</string> |
1350 | <key>Value</key> | 1667 | <key>Value</key> |
1351 | <array> | 1668 | <array> |
1352 | <real>1</real> | 1669 | <real>1.0</real> |
1353 | <real>1</real> | 1670 | <real>1.0</real> |
1354 | <real>0.5</real> | 1671 | <real>0.5</real> |
1355 | <real>1</real> | 1672 | <real>1.0</real> |
1356 | </array> | 1673 | </array> |
1357 | </map> | 1674 | </map> |
1358 | <key>ColorPaletteEntry26</key> | 1675 | <key>ColorPaletteEntry26</key> |
1359 | <map> | 1676 | <map> |
1360 | <key>Comment</key> | 1677 | <key>Comment</key> |
1361 | <string>Color picker palette entry</string> | 1678 | <string>Color picker palette entry</string> |
1362 | <key>Persist</key> | 1679 | <key>Persist</key> |
1363 | <integer>1</integer> | 1680 | <integer>1</integer> |
1364 | <key>Type</key> | 1681 | <key>Type</key> |
1365 | <string>Color4</string> | 1682 | <string>Color4</string> |
1366 | <key>Value</key> | 1683 | <key>Value</key> |
1367 | <array> | 1684 | <array> |
1368 | <real>0</real> | 1685 | <real>0.0</real> |
1369 | <real>1</real> | 1686 | <real>1.0</real> |
1370 | <real>0.5</real> | 1687 | <real>0.5</real> |
1371 | <real>1</real> | 1688 | <real>1.0</real> |
1372 | </array> | 1689 | </array> |
1373 | </map> | 1690 | </map> |
1374 | <key>ColorPaletteEntry27</key> | 1691 | <key>ColorPaletteEntry27</key> |
1375 | <map> | 1692 | <map> |
1376 | <key>Comment</key> | 1693 | <key>Comment</key> |
1377 | <string>Color picker palette entry</string> | 1694 | <string>Color picker palette entry</string> |
1378 | <key>Persist</key> | 1695 | <key>Persist</key> |
1379 | <integer>1</integer> | 1696 | <integer>1</integer> |
1380 | <key>Type</key> | 1697 | <key>Type</key> |
1381 | <string>Color4</string> | 1698 | <string>Color4</string> |
1382 | <key>Value</key> | 1699 | <key>Value</key> |
1383 | <array> | 1700 | <array> |
1384 | <real>0.5</real> | 1701 | <real>0.5</real> |
1385 | <real>1</real> | 1702 | <real>1.0</real> |
1386 | <real>1</real> | 1703 | <real>1.0</real> |
1387 | <real>1</real> | 1704 | <real>1.0</real> |
1388 | </array> | 1705 | </array> |
1389 | </map> | 1706 | </map> |
1390 | <key>ColorPaletteEntry28</key> | 1707 | <key>ColorPaletteEntry28</key> |
1391 | <map> | 1708 | <map> |
1392 | <key>Comment</key> | 1709 | <key>Comment</key> |
1393 | <string>Color picker palette entry</string> | 1710 | <string>Color picker palette entry</string> |
1394 | <key>Persist</key> | 1711 | <key>Persist</key> |
1395 | <integer>1</integer> | 1712 | <integer>1</integer> |
1396 | <key>Type</key> | 1713 | <key>Type</key> |
1397 | <string>Color4</string> | 1714 | <string>Color4</string> |
1398 | <key>Value</key> | 1715 | <key>Value</key> |
1399 | <array> | 1716 | <array> |
1400 | <real>0.5</real> | 1717 | <real>0.5</real> |
1401 | <real>0.5</real> | 1718 | <real>0.5</real> |
1402 | <real>1</real> | 1719 | <real>1.0</real> |
1403 | <real>1</real> | 1720 | <real>1.0</real> |
1404 | </array> | 1721 | </array> |
1405 | </map> | 1722 | </map> |
1406 | <key>ColorPaletteEntry29</key> | 1723 | <key>ColorPaletteEntry29</key> |
1407 | <map> | 1724 | <map> |
1408 | <key>Comment</key> | 1725 | <key>Comment</key> |
1409 | <string>Color picker palette entry</string> | 1726 | <string>Color picker palette entry</string> |
1410 | <key>Persist</key> | 1727 | <key>Persist</key> |
1411 | <integer>1</integer> | 1728 | <integer>1</integer> |
1412 | <key>Type</key> | 1729 | <key>Type</key> |
1413 | <string>Color4</string> | 1730 | <string>Color4</string> |
1414 | <key>Value</key> | 1731 | <key>Value</key> |
1415 | <array> | 1732 | <array> |
1416 | <real>1</real> | 1733 | <real>1.0</real> |
1417 | <real>0</real> | 1734 | <real>0.0</real> |
1418 | <real>0.5</real> | 1735 | <real>0.5</real> |
1419 | <real>1</real> | 1736 | <real>1.0</real> |
1420 | </array> | 1737 | </array> |
1421 | </map> | 1738 | </map> |
1422 | <key>ColorPaletteEntry30</key> | 1739 | <key>ColorPaletteEntry30</key> |
1423 | <map> | 1740 | <map> |
1424 | <key>Comment</key> | 1741 | <key>Comment</key> |
1425 | <string>Color picker palette entry</string> | 1742 | <string>Color picker palette entry</string> |
1426 | <key>Persist</key> | 1743 | <key>Persist</key> |
1427 | <integer>1</integer> | 1744 | <integer>1</integer> |
1428 | <key>Type</key> | 1745 | <key>Type</key> |
1429 | <string>Color4</string> | 1746 | <string>Color4</string> |
1430 | <key>Value</key> | 1747 | <key>Value</key> |
1431 | <array> | 1748 | <array> |
1432 | <real>1</real> | 1749 | <real>1.0</real> |
1433 | <real>0.5</real> | 1750 | <real>0.5</real> |
1434 | <real>0</real> | 1751 | <real>0.0</real> |
1435 | <real>1</real> | 1752 | <real>1.0</real> |
1436 | </array> | 1753 | </array> |
1437 | </map> | 1754 | </map> |
1438 | <key>ColorPaletteEntry31</key> | 1755 | <key>ColorPaletteEntry31</key> |
1439 | <map> | 1756 | <map> |
1440 | <key>Comment</key> | 1757 | <key>Comment</key> |
1441 | <string>Color picker palette entry</string> | 1758 | <string>Color picker palette entry</string> |
1442 | <key>Persist</key> | 1759 | <key>Persist</key> |
1443 | <integer>1</integer> | 1760 | <integer>1</integer> |
1444 | <key>Type</key> | 1761 | <key>Type</key> |
1445 | <string>Color4</string> | 1762 | <string>Color4</string> |
1446 | <key>Value</key> | 1763 | <key>Value</key> |
1447 | <array> | 1764 | <array> |
1448 | <real>1</real> | 1765 | <real>1.0</real> |
1449 | <real>1</real> | 1766 | <real>1.0</real> |
1450 | <real>1</real> | 1767 | <real>1.0</real> |
1451 | <real>1</real> | 1768 | <real>1.0</real> |
1452 | </array> | 1769 | </array> |
1453 | </map> | 1770 | </map> |
1454 | <key>ColorPaletteEntry32</key> | 1771 | <key>ColorPaletteEntry32</key> |
1455 | <map> | 1772 | <map> |
1456 | <key>Comment</key> | 1773 | <key>Comment</key> |
1457 | <string>Color picker palette entry</string> | 1774 | <string>Color picker palette entry</string> |
1458 | <key>Persist</key> | 1775 | <key>Persist</key> |
1459 | <integer>1</integer> | 1776 | <integer>1</integer> |
1460 | <key>Type</key> | 1777 | <key>Type</key> |
1461 | <string>Color4</string> | 1778 | <string>Color4</string> |
1462 | <key>Value</key> | 1779 | <key>Value</key> |
1463 | <array> | 1780 | <array> |
1464 | <real>1</real> | 1781 | <real>1.0</real> |
1465 | <real>1</real> | 1782 | <real>1.0</real> |
1466 | <real>1</real> | 1783 | <real>1.0</real> |
1467 | <real>1</real> | 1784 | <real>1.0</real> |
1468 | </array> | 1785 | </array> |
1469 | </map> | 1786 | </map> |
1470 | <key>ColumnHeaderDropDownDelay</key> | 1787 | <key>ColumnHeaderDropDownDelay</key> |
1471 | <map> | 1788 | <map> |
1472 | <key>Comment</key> | 1789 | <key>Comment</key> |
1473 | <string>Time in seconds of mouse click before column header shows sort options list</string> | 1790 | <string>Time in seconds of mouse click before column header shows sort options list</string> |
1474 | <key>Persist</key> | 1791 | <key>Persist</key> |
1475 | <integer>1</integer> | 1792 | <integer>1</integer> |
1476 | <key>Type</key> | 1793 | <key>Type</key> |
1477 | <string>F32</string> | 1794 | <string>F32</string> |
1478 | <key>Value</key> | 1795 | <key>Value</key> |
1479 | <real>0.300000011920928955078125</real> | 1796 | <real>0.300000011921</real> |
1480 | </map> | 1797 | </map> |
1481 | <key>CompileOutputRect</key> | 1798 | <key>CompileOutputRect</key> |
1482 | <map> | 1799 | <map> |
1483 | <key>Comment</key> | 1800 | <key>Comment</key> |
1484 | <string>Rectangle for script Recompile Everything output window</string> | 1801 | <string>Rectangle for script Recompile Everything output window</string> |
1485 | <key>Persist</key> | 1802 | <key>Persist</key> |
1486 | <integer>1</integer> | 1803 | <integer>1</integer> |
1487 | <key>Type</key> | 1804 | <key>Type</key> |
1488 | <string>Rect</string> | 1805 | <string>Rect</string> |
1489 | <key>Value</key> | 1806 | <key>Value</key> |
1490 | <array> | 1807 | <array> |
1491 | <integer>0</integer> | 1808 | <integer>0</integer> |
1492 | <integer>400</integer> | 1809 | <integer>400</integer> |
1493 | <integer>300</integer> | 1810 | <integer>300</integer> |
1494 | <integer>0</integer> | 1811 | <integer>0</integer> |
1495 | </array> | 1812 | </array> |
1496 | </map> | 1813 | </map> |
1497 | <key>CompressSnapshotsToDisk</key> | 1814 | <key>CompressSnapshotsToDisk</key> |
1498 | <map> | 1815 | <map> |
1499 | <key>Comment</key> | 1816 | <key>Comment</key> |
1500 | <string>Compress snapshots saved to disk (Using JPEG 2000)</string> | 1817 | <string>Compress snapshots saved to disk (Using JPEG 2000)</string> |
1501 | <key>Persist</key> | 1818 | <key>Persist</key> |
1502 | <integer>1</integer> | 1819 | <integer>1</integer> |
1503 | <key>Type</key> | 1820 | <key>Type</key> |
1504 | <string>Boolean</string> | 1821 | <string>Boolean</string> |
1505 | <key>Value</key> | 1822 | <key>Value</key> |
1506 | <integer>0</integer> | 1823 | <integer>0</integer> |
1507 | </map> | 1824 | </map> |
1508 | <key>ConnectAsGod</key> | 1825 | <key>ConnectAsGod</key> |
1509 | <map> | 1826 | <map> |
1510 | <key>Comment</key> | 1827 | <key>Comment</key> |
1511 | <string>Log in a god if you have god access.</string> | 1828 | <string>Log in a god if you have god access.</string> |
1512 | <key>Persist</key> | 1829 | <key>Persist</key> |
1513 | <integer>1</integer> | 1830 | <integer>1</integer> |
1514 | <key>Type</key> | 1831 | <key>Type</key> |
1515 | <string>Boolean</string> | 1832 | <string>Boolean</string> |
1516 | <key>Value</key> | 1833 | <key>Value</key> |
1517 | <integer>0</integer> | 1834 | <integer>0</integer> |
1518 | </map> | 1835 | </map> |
1519 | <key>ConnectionPort</key> | 1836 | <key>ConnectionPort</key> |
1520 | <map> | 1837 | <map> |
1521 | <key>Comment</key> | 1838 | <key>Comment</key> |
1522 | <string>Custom connection port number</string> | 1839 | <string>Custom connection port number</string> |
1523 | <key>Persist</key> | 1840 | <key>Persist</key> |
1524 | <integer>1</integer> | 1841 | <integer>1</integer> |
1525 | <key>Type</key> | 1842 | <key>Type</key> |
1526 | <string>U32</string> | 1843 | <string>U32</string> |
1527 | <key>Value</key> | 1844 | <key>Value</key> |
1528 | <integer>13000</integer> | 1845 | <integer>13000</integer> |
1529 | </map> | 1846 | </map> |
1530 | <key>ConnectionPortEnabled</key> | 1847 | <key>ConnectionPortEnabled</key> |
1531 | <map> | 1848 | <map> |
1532 | <key>Comment</key> | 1849 | <key>Comment</key> |
1533 | <string>Use the custom connection port?</string> | 1850 | <string>Use the custom connection port?</string> |
1534 | <key>Persist</key> | 1851 | <key>Persist</key> |
1535 | <integer>1</integer> | 1852 | <integer>1</integer> |
1536 | <key>Type</key> | 1853 | <key>Type</key> |
1537 | <string>Boolean</string> | 1854 | <string>Boolean</string> |
1538 | <key>Value</key> | 1855 | <key>Value</key> |
1539 | <integer>0</integer> | 1856 | <integer>0</integer> |
1540 | </map> | 1857 | </map> |
1541 | <key>ConsoleBackgroundOpacity</key> | 1858 | <key>ConsoleBackgroundOpacity</key> |
1542 | <map> | 1859 | <map> |
1543 | <key>Comment</key> | 1860 | <key>Comment</key> |
1544 | <string>Opacity of chat console (0.0 = completely transparent, 1.0 = completely opaque)</string> | 1861 | <string>Opacity of chat console (0.0 = completely transparent, 1.0 = completely opaque)</string> |
1545 | <key>Persist</key> | 1862 | <key>Persist</key> |
1546 | <integer>1</integer> | 1863 | <integer>1</integer> |
1547 | <key>Type</key> | 1864 | <key>Type</key> |
1548 | <string>F32</string> | 1865 | <string>F32</string> |
1549 | <key>Value</key> | 1866 | <key>Value</key> |
1550 | <real>0.4000000059604644775390625</real> | 1867 | <real>0.40000000596</real> |
1551 | </map> | 1868 | </map> |
1552 | <key>ConsoleBufferSize</key> | 1869 | <key>ConsoleBufferSize</key> |
1553 | <map> | 1870 | <map> |
1554 | <key>Comment</key> | 1871 | <key>Comment</key> |
1555 | <string>Size of chat console history (lines of chat)</string> | 1872 | <string>Size of chat console history (lines of chat)</string> |
1556 | <key>Persist</key> | 1873 | <key>Persist</key> |
1557 | <integer>1</integer> | 1874 | <integer>1</integer> |
1558 | <key>Type</key> | 1875 | <key>Type</key> |
1559 | <string>S32</string> | 1876 | <string>S32</string> |
1560 | <key>Value</key> | 1877 | <key>Value</key> |
1561 | <integer>40</integer> | 1878 | <integer>40</integer> |
1562 | </map> | 1879 | </map> |
1563 | <key>ConsoleMaxLines</key> | 1880 | <key>ConsoleMaxLines</key> |
1564 | <map> | 1881 | <map> |
1565 | <key>Comment</key> | 1882 | <key>Comment</key> |
1566 | <string>Max number of lines of chat text visible in console.</string> | 1883 | <string>Max number of lines of chat text visible in console.</string> |
1567 | <key>Persist</key> | 1884 | <key>Persist</key> |
1568 | <integer>1</integer> | 1885 | <integer>1</integer> |
1569 | <key>Type</key> | 1886 | <key>Type</key> |
1570 | <string>S32</string> | 1887 | <string>S32</string> |
1571 | <key>Value</key> | 1888 | <key>Value</key> |
1572 | <integer>40</integer> | 1889 | <integer>40</integer> |
1573 | </map> | 1890 | </map> |
1574 | <key>ContactsTornOff</key> | 1891 | <key>ContactsTornOff</key> |
1575 | <map> | 1892 | <map> |
1576 | <key>Comment</key> | 1893 | <key>Comment</key> |
1577 | <string>Show contacts window separately from Communicate window.</string> | 1894 | <string>Show contacts window separately from Communicate window.</string> |
1578 | <key>Persist</key> | 1895 | <key>Persist</key> |
1579 | <integer>1</integer> | 1896 | <integer>1</integer> |
1580 | <key>Type</key> | 1897 | <key>Type</key> |
1581 | <string>Boolean</string> | 1898 | <string>Boolean</string> |
1582 | <key>Value</key> | 1899 | <key>Value</key> |
1583 | <integer>0</integer> | 1900 | <integer>0</integer> |
1584 | </map> | 1901 | </map> |
1585 | <key>CookiesEnabled</key> | 1902 | <key>CookiesEnabled</key> |
1586 | <map> | 1903 | <map> |
1587 | <key>Comment</key> | 1904 | <key>Comment</key> |
1588 | <string>Accept cookies from Web sites?</string> | 1905 | <string>Accept cookies from Web sites?</string> |
1589 | <key>Persist</key> | 1906 | <key>Persist</key> |
1590 | <integer>1</integer> | 1907 | <integer>1</integer> |
1591 | <key>Type</key> | 1908 | <key>Type</key> |
1592 | <string>Boolean</string> | 1909 | <string>Boolean</string> |
1593 | <key>Value</key> | 1910 | <key>Value</key> |
1594 | <integer>1</integer> | 1911 | <integer>1</integer> |
1595 | </map> | 1912 | </map> |
1596 | <key>CrashLogBehavior</key> | 1913 | <key>CrashLogBehavior</key> |
1597 | <map> | 1914 | <map> |
1598 | <key>Comment</key> | 1915 | <key>Comment</key> |
1599 | <string>Controls behavior when viewer (0 = ask before sending crash report, 1 = always send crash report, 2 = never send crash report)</string> | 1916 | <string>Controls behavior when viewer (0 = ask before sending crash report, 1 = always send crash report, 2 = never send crash report)</string> |
1600 | <key>Persist</key> | 1917 | <key>Persist</key> |
1601 | <integer>0</integer> | 1918 | <integer>0</integer> |
1602 | <key>Type</key> | 1919 | <key>Type</key> |
1603 | <string>S32</string> | 1920 | <string>S32</string> |
1604 | <key>Value</key> | 1921 | <key>Value</key> |
1605 | <integer>1</integer> | 1922 | <integer>1</integer> |
1606 | </map> | 1923 | </map> |
1607 | <key>CreateToolCopyCenters</key> | 1924 | <key>CreateToolCopyCenters</key> |
1608 | <map> | 1925 | <map> |
1609 | <key>Comment</key> | 1926 | <key>Comment</key> |
1610 | <string /> | 1927 | <string /> |
1611 | <key>Persist</key> | 1928 | <key>Persist</key> |
1612 | <integer>0</integer> | 1929 | <integer>0</integer> |
1613 | <key>Type</key> | 1930 | <key>Type</key> |
1614 | <string>Boolean</string> | 1931 | <string>Boolean</string> |
1615 | <key>Value</key> | 1932 | <key>Value</key> |
1616 | <integer>1</integer> | 1933 | <integer>1</integer> |
1617 | </map> | 1934 | </map> |
1618 | <key>CreateToolCopyRotates</key> | 1935 | <key>CreateToolCopyRotates</key> |
1619 | <map> | 1936 | <map> |
1620 | <key>Comment</key> | 1937 | <key>Comment</key> |
1621 | <string /> | 1938 | <string /> |
1622 | <key>Persist</key> | 1939 | <key>Persist</key> |
1623 | <integer>0</integer> | 1940 | <integer>0</integer> |
1624 | <key>Type</key> | 1941 | <key>Type</key> |
1625 | <string>Boolean</string> | 1942 | <string>Boolean</string> |
1626 | <key>Value</key> | 1943 | <key>Value</key> |
1627 | <integer>0</integer> | 1944 | <integer>0</integer> |
1628 | </map> | 1945 | </map> |
1629 | <key>CreateToolCopySelection</key> | 1946 | <key>CreateToolCopySelection</key> |
1630 | <map> | 1947 | <map> |
1631 | <key>Comment</key> | 1948 | <key>Comment</key> |
1632 | <string /> | 1949 | <string /> |
1633 | <key>Persist</key> | 1950 | <key>Persist</key> |
1634 | <integer>0</integer> | 1951 | <integer>0</integer> |
1635 | <key>Type</key> | 1952 | <key>Type</key> |
1636 | <string>Boolean</string> | 1953 | <string>Boolean</string> |
1637 | <key>Value</key> | 1954 | <key>Value</key> |
1638 | <integer>0</integer> | 1955 | <integer>0</integer> |
1639 | </map> | 1956 | </map> |
1640 | <key>CreateToolKeepSelected</key> | 1957 | <key>CreateToolKeepSelected</key> |
1641 | <map> | 1958 | <map> |
1642 | <key>Comment</key> | 1959 | <key>Comment</key> |
1643 | <string>After using create tool, keep the create tool active</string> | 1960 | <string>After using create tool, keep the create tool active</string> |
1644 | <key>Persist</key> | 1961 | <key>Persist</key> |
1645 | <integer>1</integer> | 1962 | <integer>1</integer> |
1646 | <key>Type</key> | 1963 | <key>Type</key> |
1647 | <string>Boolean</string> | 1964 | <string>Boolean</string> |
1648 | <key>Value</key> | 1965 | <key>Value</key> |
1649 | <integer>0</integer> | 1966 | <integer>0</integer> |
1650 | </map> | 1967 | </map> |
1968 | <key>Cursor3D</key> | ||
1969 | <map> | ||
1970 | <key>Comment</key> | ||
1971 | <string>Tread Joystick values as absolute positions (not deltas).</string> | ||
1972 | <key>Persist</key> | ||
1973 | <integer>1</integer> | ||
1974 | <key>Type</key> | ||
1975 | <string>Boolean</string> | ||
1976 | <key>Value</key> | ||
1977 | <integer>1</integer> | ||
1978 | </map> | ||
1651 | <key>CustomServer</key> | 1979 | <key>CustomServer</key> |
1652 | <map> | 1980 | <map> |
1653 | <key>Comment</key> | 1981 | <key>Comment</key> |
1654 | <string>Specifies IP address or hostname of grid to which you connect</string> | 1982 | <string>Specifies IP address or hostname of grid to which you connect</string> |
1655 | <key>Persist</key> | 1983 | <key>Persist</key> |
1656 | <integer>1</integer> | 1984 | <integer>1</integer> |
1657 | <key>Type</key> | 1985 | <key>Type</key> |
1658 | <string>String</string> | 1986 | <string>String</string> |
1659 | <key>Value</key> | 1987 | <key>Value</key> |
1660 | <string /> | 1988 | <string /> |
1661 | </map> | 1989 | </map> |
1662 | <key>DebugBeaconLineWidth</key> | 1990 | <key>DebugBeaconLineWidth</key> |
1663 | <map> | 1991 | <map> |
1664 | <key>Comment</key> | 1992 | <key>Comment</key> |
1665 | <string>Size of lines for Debug Beacons</string> | 1993 | <string>Size of lines for Debug Beacons</string> |
1666 | <key>Persist</key> | 1994 | <key>Persist</key> |
1667 | <integer>1</integer> | 1995 | <integer>1</integer> |
1668 | <key>Type</key> | 1996 | <key>Type</key> |
1669 | <string>S32</string> | 1997 | <string>S32</string> |
1670 | <key>Value</key> | 1998 | <key>Value</key> |
1671 | <integer>1</integer> | 1999 | <integer>1</integer> |
1672 | </map> | 2000 | </map> |
1673 | <key>DebugInventoryFilters</key> | 2001 | <key>DebugInventoryFilters</key> |
1674 | <map> | 2002 | <map> |
1675 | <key>Comment</key> | 2003 | <key>Comment</key> |
1676 | <string>Turn on debugging display for inventory filtering</string> | 2004 | <string>Turn on debugging display for inventory filtering</string> |
1677 | <key>Persist</key> | 2005 | <key>Persist</key> |
1678 | <integer>1</integer> | 2006 | <integer>1</integer> |
1679 | <key>Type</key> | 2007 | <key>Type</key> |
1680 | <string>Boolean</string> | 2008 | <string>Boolean</string> |
1681 | <key>Value</key> | 2009 | <key>Value</key> |
1682 | <integer>0</integer> | 2010 | <integer>0</integer> |
1683 | </map> | 2011 | </map> |
1684 | <key>DebugPermissions</key> | 2012 | <key>DebugPermissions</key> |
1685 | <map> | 2013 | <map> |
1686 | <key>Comment</key> | 2014 | <key>Comment</key> |
1687 | <string>Log permissions for selected inventory items</string> | 2015 | <string>Log permissions for selected inventory items</string> |
1688 | <key>Persist</key> | 2016 | <key>Persist</key> |
1689 | <integer>1</integer> | 2017 | <integer>1</integer> |
1690 | <key>Type</key> | 2018 | <key>Type</key> |
1691 | <string>Boolean</string> | 2019 | <string>Boolean</string> |
1692 | <key>Value</key> | 2020 | <key>Value</key> |
1693 | <integer>0</integer> | 2021 | <integer>0</integer> |
1694 | </map> | 2022 | </map> |
1695 | <key>DebugShowColor</key> | 2023 | <key>DebugShowColor</key> |
1696 | <map> | 2024 | <map> |
1697 | <key>Comment</key> | 2025 | <key>Comment</key> |
1698 | <string>Show color under cursor</string> | 2026 | <string>Show color under cursor</string> |
1699 | <key>Persist</key> | 2027 | <key>Persist</key> |
1700 | <integer>1</integer> | 2028 | <integer>1</integer> |
1701 | <key>Type</key> | 2029 | <key>Type</key> |
1702 | <string>Boolean</string> | 2030 | <string>Boolean</string> |
1703 | <key>Value</key> | 2031 | <key>Value</key> |
1704 | <integer>0</integer> | 2032 | <integer>0</integer> |
1705 | </map> | 2033 | </map> |
1706 | <key>DebugShowRenderInfo</key> | 2034 | <key>DebugShowRenderInfo</key> |
1707 | <map> | 2035 | <map> |
1708 | <key>Comment</key> | 2036 | <key>Comment</key> |
1709 | <string>Show depth buffer contents</string> | 2037 | <string>Show depth buffer contents</string> |
1710 | <key>Persist</key> | 2038 | <key>Persist</key> |
1711 | <integer>1</integer> | 2039 | <integer>1</integer> |
1712 | <key>Type</key> | 2040 | <key>Type</key> |
1713 | <string>Boolean</string> | 2041 | <string>Boolean</string> |
1714 | <key>Value</key> | 2042 | <key>Value</key> |
1715 | <integer>0</integer> | 2043 | <integer>0</integer> |
1716 | </map> | 2044 | </map> |
1717 | <key>DebugShowTime</key> | 2045 | <key>DebugShowTime</key> |
1718 | <map> | 2046 | <map> |
1719 | <key>Comment</key> | 2047 | <key>Comment</key> |
1720 | <string>Show depth buffer contents</string> | 2048 | <string>Show depth buffer contents</string> |
1721 | <key>Persist</key> | 2049 | <key>Persist</key> |
1722 | <integer>1</integer> | 2050 | <integer>1</integer> |
1723 | <key>Type</key> | 2051 | <key>Type</key> |
1724 | <string>Boolean</string> | 2052 | <string>Boolean</string> |
1725 | <key>Value</key> | 2053 | <key>Value</key> |
1726 | <integer>0</integer> | 2054 | <integer>0</integer> |
1727 | </map> | 2055 | </map> |
1728 | <key>DebugViews</key> | 2056 | <key>DebugViews</key> |
1729 | <map> | 2057 | <map> |
1730 | <key>Comment</key> | 2058 | <key>Comment</key> |
1731 | <string>Display debugging info for views.</string> | 2059 | <string>Display debugging info for views.</string> |
1732 | <key>Persist</key> | 2060 | <key>Persist</key> |
1733 | <integer>1</integer> | 2061 | <integer>1</integer> |
1734 | <key>Type</key> | 2062 | <key>Type</key> |
1735 | <string>Boolean</string> | 2063 | <string>Boolean</string> |
1736 | <key>Value</key> | 2064 | <key>Value</key> |
1737 | <integer>0</integer> | 2065 | <integer>0</integer> |
1738 | </map> | 2066 | </map> |
1739 | <key>DebugWindowProc</key> | 2067 | <key>DebugWindowProc</key> |
1740 | <map> | 2068 | <map> |
1741 | <key>Comment</key> | 2069 | <key>Comment</key> |
1742 | <string>Log windows messages</string> | 2070 | <string>Log windows messages</string> |
1743 | <key>Persist</key> | 2071 | <key>Persist</key> |
1744 | <integer>1</integer> | 2072 | <integer>1</integer> |
1745 | <key>Type</key> | 2073 | <key>Type</key> |
1746 | <string>Boolean</string> | 2074 | <string>Boolean</string> |
1747 | <key>Value</key> | 2075 | <key>Value</key> |
1748 | <integer>0</integer> | 2076 | <integer>0</integer> |
1749 | </map> | 2077 | </map> |
1750 | <key>DefaultObjectTexture</key> | 2078 | <key>DefaultObjectTexture</key> |
1751 | <map> | 2079 | <map> |
1752 | <key>Comment</key> | 2080 | <key>Comment</key> |
1753 | <string>Texture used as 'Default' in texture picker. (UUID texture reference)</string> | 2081 | <string>Texture used as 'Default' in texture picker. (UUID texture reference)</string> |
1754 | <key>Persist</key> | 2082 | <key>Persist</key> |
1755 | <integer>1</integer> | 2083 | <integer>1</integer> |
1756 | <key>Type</key> | 2084 | <key>Type</key> |
1757 | <string>String</string> | 2085 | <string>String</string> |
1758 | <key>Value</key> | 2086 | <key>Value</key> |
1759 | <string>89556747-24cb-43ed-920b-47caed15465f</string> | 2087 | <string>89556747-24cb-43ed-920b-47caed15465f</string> |
1760 | </map> | 2088 | </map> |
1761 | <key>DisableCameraConstraints</key> | 2089 | <key>DisableCameraConstraints</key> |
1762 | <map> | 2090 | <map> |
1763 | <key>Comment</key> | 2091 | <key>Comment</key> |
1764 | <string>Disable the normal bounds put on the camera by avatar position</string> | 2092 | <string>Disable the normal bounds put on the camera by avatar position</string> |
1765 | <key>Persist</key> | 2093 | <key>Persist</key> |
1766 | <integer>1</integer> | 2094 | <integer>1</integer> |
1767 | <key>Type</key> | 2095 | <key>Type</key> |
1768 | <string>Boolean</string> | 2096 | <string>Boolean</string> |
1769 | <key>Value</key> | 2097 | <key>Value</key> |
1770 | <integer>0</integer> | 2098 | <integer>0</integer> |
1771 | </map> | 2099 | </map> |
1772 | <key>DisableRendering</key> | 2100 | <key>DisableRendering</key> |
1773 | <map> | 2101 | <map> |
1774 | <key>Comment</key> | 2102 | <key>Comment</key> |
1775 | <string>Disable GL rendering and GUI (load testing)</string> | 2103 | <string>Disable GL rendering and GUI (load testing)</string> |
1776 | <key>Persist</key> | 2104 | <key>Persist</key> |
1777 | <integer>1</integer> | 2105 | <integer>1</integer> |
1778 | <key>Type</key> | 2106 | <key>Type</key> |
1779 | <string>Boolean</string> | 2107 | <string>Boolean</string> |
1780 | <key>Value</key> | 2108 | <key>Value</key> |
1781 | <integer>0</integer> | 2109 | <integer>0</integer> |
1782 | </map> | 2110 | </map> |
1783 | <key>DisableVerticalSync</key> | 2111 | <key>DisableVerticalSync</key> |
1784 | <map> | 2112 | <map> |
1785 | <key>Comment</key> | 2113 | <key>Comment</key> |
1786 | <string>Update frames as fast as possible (FALSE = update frames between display scans)</string> | 2114 | <string>Update frames as fast as possible (FALSE = update frames between display scans)</string> |
1787 | <key>Persist</key> | 2115 | <key>Persist</key> |
1788 | <integer>1</integer> | 2116 | <integer>1</integer> |
1789 | <key>Type</key> | 2117 | <key>Type</key> |
1790 | <string>Boolean</string> | 2118 | <string>Boolean</string> |
1791 | <key>Value</key> | 2119 | <key>Value</key> |
1792 | <integer>1</integer> | 2120 | <integer>1</integer> |
1793 | </map> | 2121 | </map> |
1794 | <key>DisplayAvatarAgentTarget</key> | 2122 | <key>DisplayAvatarAgentTarget</key> |
1795 | <map> | 2123 | <map> |
1796 | <key>Comment</key> | 2124 | <key>Comment</key> |
1797 | <string>Show avatar positioning locators (animation debug)</string> | 2125 | <string>Show avatar positioning locators (animation debug)</string> |
1798 | <key>Persist</key> | 2126 | <key>Persist</key> |
1799 | <integer>1</integer> | 2127 | <integer>1</integer> |
1800 | <key>Type</key> | 2128 | <key>Type</key> |
1801 | <string>Boolean</string> | 2129 | <string>Boolean</string> |
1802 | <key>Value</key> | 2130 | <key>Value</key> |
1803 | <integer>0</integer> | 2131 | <integer>0</integer> |
1804 | </map> | 2132 | </map> |
1805 | <key>DisplayChat</key> | 2133 | <key>DisplayChat</key> |
1806 | <map> | 2134 | <map> |
1807 | <key>Comment</key> | 2135 | <key>Comment</key> |
1808 | <string>Display Latest Chat message on LCD</string> | 2136 | <string>Display Latest Chat message on LCD</string> |
1809 | <key>Persist</key> | 2137 | <key>Persist</key> |
1810 | <integer>1</integer> | 2138 | <integer>1</integer> |
1811 | <key>Type</key> | 2139 | <key>Type</key> |
1812 | <string>Boolean</string> | 2140 | <string>Boolean</string> |
1813 | <key>Value</key> | 2141 | <key>Value</key> |
1814 | <integer>1</integer> | 2142 | <integer>1</integer> |
1815 | </map> | 2143 | </map> |
1816 | <key>DisplayDebug</key> | 2144 | <key>DisplayDebug</key> |
1817 | <map> | 2145 | <map> |
1818 | <key>Comment</key> | 2146 | <key>Comment</key> |
1819 | <string>Display Network Information on LCD</string> | 2147 | <string>Display Network Information on LCD</string> |
1820 | <key>Persist</key> | 2148 | <key>Persist</key> |
1821 | <integer>1</integer> | 2149 | <integer>1</integer> |
1822 | <key>Type</key> | 2150 | <key>Type</key> |
1823 | <string>Boolean</string> | 2151 | <string>Boolean</string> |
1824 | <key>Value</key> | 2152 | <key>Value</key> |
1825 | <integer>1</integer> | 2153 | <integer>1</integer> |
1826 | </map> | 2154 | </map> |
1827 | <key>DisplayDebugConsole</key> | 2155 | <key>DisplayDebugConsole</key> |
1828 | <map> | 2156 | <map> |
1829 | <key>Comment</key> | 2157 | <key>Comment</key> |
1830 | <string>Display Console Debug Information on LCD</string> | 2158 | <string>Display Console Debug Information on LCD</string> |
1831 | <key>Persist</key> | 2159 | <key>Persist</key> |
1832 | <integer>1</integer> | 2160 | <integer>1</integer> |
1833 | <key>Type</key> | 2161 | <key>Type</key> |
1834 | <string>Boolean</string> | 2162 | <string>Boolean</string> |
1835 | <key>Value</key> | 2163 | <key>Value</key> |
1836 | <integer>1</integer> | 2164 | <integer>1</integer> |
1837 | </map> | 2165 | </map> |
1838 | <key>DisplayIM</key> | 2166 | <key>DisplayIM</key> |
1839 | <map> | 2167 | <map> |
1840 | <key>Comment</key> | 2168 | <key>Comment</key> |
1841 | <string>Display Latest IM message on LCD</string> | 2169 | <string>Display Latest IM message on LCD</string> |
1842 | <key>Persist</key> | 2170 | <key>Persist</key> |
1843 | <integer>1</integer> | 2171 | <integer>1</integer> |
1844 | <key>Type</key> | 2172 | <key>Type</key> |
1845 | <string>Boolean</string> | 2173 | <string>Boolean</string> |
1846 | <key>Value</key> | 2174 | <key>Value</key> |
1847 | <integer>1</integer> | 2175 | <integer>1</integer> |
1848 | </map> | 2176 | </map> |
1849 | <key>DisplayLinden</key> | 2177 | <key>DisplayLinden</key> |
1850 | <map> | 2178 | <map> |
1851 | <key>Comment</key> | 2179 | <key>Comment</key> |
1852 | <string>Display Account Information on LCD</string> | 2180 | <string>Display Account Information on LCD</string> |
1853 | <key>Persist</key> | 2181 | <key>Persist</key> |
1854 | <integer>1</integer> | 2182 | <integer>1</integer> |
1855 | <key>Type</key> | 2183 | <key>Type</key> |
1856 | <string>Boolean</string> | 2184 | <string>Boolean</string> |
1857 | <key>Value</key> | 2185 | <key>Value</key> |
1858 | <integer>1</integer> | 2186 | <integer>1</integer> |
1859 | </map> | 2187 | </map> |
1860 | <key>DisplayRegion</key> | 2188 | <key>DisplayRegion</key> |
1861 | <map> | 2189 | <map> |
1862 | <key>Comment</key> | 2190 | <key>Comment</key> |
1863 | <string>Display Location information on LCD</string> | 2191 | <string>Display Location information on LCD</string> |
1864 | <key>Persist</key> | 2192 | <key>Persist</key> |
1865 | <integer>1</integer> | 2193 | <integer>1</integer> |
1866 | <key>Type</key> | 2194 | <key>Type</key> |
1867 | <string>Boolean</string> | 2195 | <string>Boolean</string> |
1868 | <key>Value</key> | 2196 | <key>Value</key> |
1869 | <integer>1</integer> | 2197 | <integer>1</integer> |
1870 | </map> | 2198 | </map> |
1871 | <key>DisplayTimecode</key> | 2199 | <key>DisplayTimecode</key> |
1872 | <map> | 2200 | <map> |
1873 | <key>Comment</key> | 2201 | <key>Comment</key> |
1874 | <string>Display timecode on screen</string> | 2202 | <string>Display timecode on screen</string> |
1875 | <key>Persist</key> | 2203 | <key>Persist</key> |
1876 | <integer>1</integer> | 2204 | <integer>1</integer> |
1877 | <key>Type</key> | 2205 | <key>Type</key> |
1878 | <string>Boolean</string> | 2206 | <string>Boolean</string> |
1879 | <key>Value</key> | 2207 | <key>Value</key> |
1880 | <integer>0</integer> | 2208 | <integer>0</integer> |
1881 | </map> | 2209 | </map> |
1882 | <key>Disregard128DefaultDrawDistance</key> | 2210 | <key>Disregard128DefaultDrawDistance</key> |
1883 | <map> | 2211 | <map> |
1884 | <key>Comment</key> | 2212 | <key>Comment</key> |
1885 | <string>Whether to use the auto default to 128 draw distance</string> | 2213 | <string>Whether to use the auto default to 128 draw distance</string> |
1886 | <key>Persist</key> | 2214 | <key>Persist</key> |
1887 | <integer>1</integer> | 2215 | <integer>1</integer> |
1888 | <key>Type</key> | 2216 | <key>Type</key> |
1889 | <string>Boolean</string> | 2217 | <string>Boolean</string> |
1890 | <key>Value</key> | 2218 | <key>Value</key> |
1891 | <integer>1</integer> | 2219 | <real>1.0</real> |
1892 | </map> | 2220 | </map> |
1893 | <key>Disregard96DefaultDrawDistance</key> | 2221 | <key>Disregard96DefaultDrawDistance</key> |
1894 | <map> | 2222 | <map> |
1895 | <key>Comment</key> | 2223 | <key>Comment</key> |
1896 | <string>Whether to use the auto default to 96 draw distance</string> | 2224 | <string>Whether to use the auto default to 96 draw distance</string> |
1897 | <key>Persist</key> | 2225 | <key>Persist</key> |
1898 | <integer>1</integer> | 2226 | <integer>1</integer> |
1899 | <key>Type</key> | 2227 | <key>Type</key> |
1900 | <string>Boolean</string> | 2228 | <string>Boolean</string> |
1901 | <key>Value</key> | 2229 | <key>Value</key> |
1902 | <integer>1</integer> | 2230 | <real>1.0</real> |
1903 | </map> | 2231 | </map> |
1904 | <key>DoubleClickAutoPilot</key> | 2232 | <key>DoubleClickAutoPilot</key> |
1905 | <map> | 2233 | <map> |
1906 | <key>Comment</key> | 2234 | <key>Comment</key> |
1907 | <string>Enable double-click auto pilot</string> | 2235 | <string>Enable double-click auto pilot</string> |
1908 | <key>Persist</key> | 2236 | <key>Persist</key> |
1909 | <integer>1</integer> | 2237 | <integer>1</integer> |
1910 | <key>Type</key> | 2238 | <key>Type</key> |
1911 | <string>Boolean</string> | 2239 | <string>Boolean</string> |
1912 | <key>Value</key> | 2240 | <key>Value</key> |
1913 | <integer>0</integer> | 2241 | <integer>0</integer> |
1914 | </map> | 2242 | </map> |
1915 | <key>DragAndDropToolTipDelay</key> | 2243 | <key>DragAndDropToolTipDelay</key> |
1916 | <map> | 2244 | <map> |
1917 | <key>Comment</key> | 2245 | <key>Comment</key> |
1918 | <string>Seconds before displaying tooltip when performing drag and drop operation</string> | 2246 | <string>Seconds before displaying tooltip when performing drag and drop operation</string> |
1919 | <key>Persist</key> | 2247 | <key>Persist</key> |
1920 | <integer>1</integer> | 2248 | <integer>1</integer> |
1921 | <key>Type</key> | 2249 | <key>Type</key> |
1922 | <string>F32</string> | 2250 | <string>F32</string> |
1923 | <key>Value</key> | 2251 | <key>Value</key> |
1924 | <real>0.1000000014901161193847656</real> | 2252 | <real>0.10000000149</real> |
1925 | </map> | 2253 | </map> |
1926 | <key>DropShadowButton</key> | 2254 | <key>DropShadowButton</key> |
1927 | <map> | 2255 | <map> |
1928 | <key>Comment</key> | 2256 | <key>Comment</key> |
1929 | <string>Drop shadow width for buttons (pixels)</string> | 2257 | <string>Drop shadow width for buttons (pixels)</string> |
1930 | <key>Persist</key> | 2258 | <key>Persist</key> |
1931 | <integer>1</integer> | 2259 | <integer>1</integer> |
1932 | <key>Type</key> | 2260 | <key>Type</key> |
1933 | <string>S32</string> | 2261 | <string>S32</string> |
1934 | <key>Value</key> | 2262 | <key>Value</key> |
1935 | <integer>2</integer> | 2263 | <integer>2</integer> |
1936 | </map> | 2264 | </map> |
1937 | <key>DropShadowFloater</key> | 2265 | <key>DropShadowFloater</key> |
1938 | <map> | 2266 | <map> |
1939 | <key>Comment</key> | 2267 | <key>Comment</key> |
1940 | <string>Drop shadow width for floaters (pixels)</string> | 2268 | <string>Drop shadow width for floaters (pixels)</string> |
1941 | <key>Persist</key> | 2269 | <key>Persist</key> |
1942 | <integer>1</integer> | 2270 | <integer>1</integer> |
1943 | <key>Type</key> | 2271 | <key>Type</key> |
1944 | <string>S32</string> | 2272 | <string>S32</string> |
1945 | <key>Value</key> | 2273 | <key>Value</key> |
1946 | <integer>5</integer> | 2274 | <integer>5</integer> |
1947 | </map> | 2275 | </map> |
1948 | <key>DropShadowSlider</key> | 2276 | <key>DropShadowSlider</key> |
1949 | <map> | 2277 | <map> |
1950 | <key>Comment</key> | 2278 | <key>Comment</key> |
1951 | <string>Drop shadow width for sliders (pixels)</string> | 2279 | <string>Drop shadow width for sliders (pixels)</string> |
1952 | <key>Persist</key> | 2280 | <key>Persist</key> |
1953 | <integer>1</integer> | 2281 | <integer>1</integer> |
1954 | <key>Type</key> | 2282 | <key>Type</key> |
1955 | <string>S32</string> | 2283 | <string>S32</string> |
1956 | <key>Value</key> | 2284 | <key>Value</key> |
1957 | <integer>3</integer> | 2285 | <integer>3</integer> |
1958 | </map> | 2286 | </map> |
1959 | <key>DropShadowTooltip</key> | 2287 | <key>DropShadowTooltip</key> |
1960 | <map> | 2288 | <map> |
1961 | <key>Comment</key> | 2289 | <key>Comment</key> |
1962 | <string>Drop shadow width for tooltips (pixels)</string> | 2290 | <string>Drop shadow width for tooltips (pixels)</string> |
1963 | <key>Persist</key> | 2291 | <key>Persist</key> |
1964 | <integer>1</integer> | 2292 | <integer>1</integer> |
1965 | <key>Type</key> | 2293 | <key>Type</key> |
1966 | <string>S32</string> | 2294 | <string>S32</string> |
1967 | <key>Value</key> | 2295 | <key>Value</key> |
1968 | <integer>4</integer> | 2296 | <integer>4</integer> |
1969 | </map> | 2297 | </map> |
1970 | <key>DynamicCameraStrength</key> | 2298 | <key>DynamicCameraStrength</key> |
1971 | <map> | 2299 | <map> |
1972 | <key>Comment</key> | 2300 | <key>Comment</key> |
1973 | <string>Amount camera lags behind avatar motion (0 = none, 30 = avatar velocity)</string> | 2301 | <string>Amount camera lags behind avatar motion (0 = none, 30 = avatar velocity)</string> |
1974 | <key>Persist</key> | 2302 | <key>Persist</key> |
1975 | <integer>1</integer> | 2303 | <integer>1</integer> |
1976 | <key>Type</key> | 2304 | <key>Type</key> |
1977 | <string>F32</string> | 2305 | <string>F32</string> |
1978 | <key>Value</key> | 2306 | <key>Value</key> |
1979 | <real>2</real> | 2307 | <real>2.0</real> |
1980 | </map> | 2308 | </map> |
1981 | <key>EditCameraMovement</key> | 2309 | <key>EditCameraMovement</key> |
1982 | <map> | 2310 | <map> |
1983 | <key>Comment</key> | 2311 | <key>Comment</key> |
1984 | <string>When entering build mode, camera moves up above avatar</string> | 2312 | <string>When entering build mode, camera moves up above avatar</string> |
1985 | <key>Persist</key> | 2313 | <key>Persist</key> |
1986 | <integer>1</integer> | 2314 | <integer>1</integer> |
1987 | <key>Type</key> | 2315 | <key>Type</key> |
1988 | <string>Boolean</string> | 2316 | <string>Boolean</string> |
1989 | <key>Value</key> | 2317 | <key>Value</key> |
1990 | <integer>0</integer> | 2318 | <integer>0</integer> |
1991 | </map> | 2319 | </map> |
1992 | <key>EditLinkedParts</key> | 2320 | <key>EditLinkedParts</key> |
1993 | <map> | 2321 | <map> |
1994 | <key>Comment</key> | 2322 | <key>Comment</key> |
1995 | <string>Select individual parts of linked objects</string> | 2323 | <string>Select individual parts of linked objects</string> |
1996 | <key>Persist</key> | 2324 | <key>Persist</key> |
1997 | <integer>0</integer> | 2325 | <integer>0</integer> |
1998 | <key>Type</key> | 2326 | <key>Type</key> |
1999 | <string>Boolean</string> | 2327 | <string>Boolean</string> |
2000 | <key>Value</key> | 2328 | <key>Value</key> |
2001 | <integer>0</integer> | 2329 | <integer>0</integer> |
2002 | </map> | 2330 | </map> |
2003 | <key>EffectColor</key> | 2331 | <key>EffectColor</key> |
2004 | <map> | 2332 | <map> |
2005 | <key>Comment</key> | 2333 | <key>Comment</key> |
2006 | <string>Particle effects color</string> | 2334 | <string>Particle effects color</string> |
2007 | <key>Persist</key> | 2335 | <key>Persist</key> |
2008 | <integer>1</integer> | 2336 | <integer>1</integer> |
2009 | <key>Type</key> | 2337 | <key>Type</key> |
2010 | <string>Color4</string> | 2338 | <string>Color4</string> |
2011 | <key>Value</key> | 2339 | <key>Value</key> |
2012 | <array> | 2340 | <array> |
2013 | <real>1</real> | 2341 | <real>1.0</real> |
2014 | <real>1</real> | 2342 | <real>1.0</real> |
2015 | <real>1</real> | 2343 | <real>1.0</real> |
2016 | <real>1</real> | 2344 | <real>1.0</real> |
2017 | </array> | 2345 | </array> |
2018 | </map> | 2346 | </map> |
2019 | <key>EnablePushToTalk</key> | 2347 | <key>EnablePushToTalk</key> |
2020 | <map> | 2348 | <map> |
2021 | <key>Comment</key> | 2349 | <key>Comment</key> |
2022 | <string>Must hold down a key or moouse button when talking into your microphone</string> | 2350 | <string>Must hold down a key or moouse button when talking into your microphone</string> |
2023 | <key>Persist</key> | 2351 | <key>Persist</key> |
2024 | <integer>1</integer> | 2352 | <integer>1</integer> |
2025 | <key>Type</key> | 2353 | <key>Type</key> |
2026 | <string>Boolean</string> | 2354 | <string>Boolean</string> |
2027 | <key>Value</key> | 2355 | <key>Value</key> |
2028 | <integer>1</integer> | 2356 | <integer>1</integer> |
2029 | </map> | 2357 | </map> |
2358 | <key>EnableRippleWater</key> | ||
2359 | <map> | ||
2360 | <key>Comment</key> | ||
2361 | <string>Whether to use ripple water shader or not</string> | ||
2362 | <key>Persist</key> | ||
2363 | <integer>1</integer> | ||
2364 | <key>Type</key> | ||
2365 | <string>Boolean</string> | ||
2366 | <key>Value</key> | ||
2367 | <integer>1</integer> | ||
2368 | </map> | ||
2030 | <key>EnableVoiceChat</key> | 2369 | <key>EnableVoiceChat</key> |
2031 | <map> | 2370 | <map> |
2032 | <key>Comment</key> | 2371 | <key>Comment</key> |
2033 | <string>Enable talking to other residents with a microphone</string> | 2372 | <string>Enable talking to other residents with a microphone</string> |
2034 | <key>Persist</key> | 2373 | <key>Persist</key> |
2035 | <integer>1</integer> | 2374 | <integer>1</integer> |
2036 | <key>Type</key> | 2375 | <key>Type</key> |
2037 | <string>Boolean</string> | 2376 | <string>Boolean</string> |
2038 | <key>Value</key> | 2377 | <key>Value</key> |
2039 | <integer>1</integer> | 2378 | <integer>1</integer> |
2040 | </map> | 2379 | </map> |
2041 | <key>EnergyFromTop</key> | 2380 | <key>EnergyFromTop</key> |
2042 | <map> | 2381 | <map> |
2043 | <key>Comment</key> | 2382 | <key>Comment</key> |
2044 | <string /> | 2383 | <string /> |
2045 | <key>Persist</key> | 2384 | <key>Persist</key> |
2046 | <integer>0</integer> | 2385 | <integer>0</integer> |
2047 | <key>Type</key> | 2386 | <key>Type</key> |
2048 | <string>S32</string> | 2387 | <string>S32</string> |
2049 | <key>Value</key> | 2388 | <key>Value</key> |
2050 | <integer>20</integer> | 2389 | <integer>20</integer> |
2051 | </map> | 2390 | </map> |
2052 | <key>EnergyHeight</key> | 2391 | <key>EnergyHeight</key> |
2053 | <map> | 2392 | <map> |
2054 | <key>Comment</key> | 2393 | <key>Comment</key> |
2055 | <string /> | 2394 | <string /> |
2056 | <key>Persist</key> | 2395 | <key>Persist</key> |
2057 | <integer>0</integer> | 2396 | <integer>0</integer> |
2058 | <key>Type</key> | 2397 | <key>Type</key> |
2059 | <string>S32</string> | 2398 | <string>S32</string> |
2060 | <key>Value</key> | 2399 | <key>Value</key> |
2061 | <integer>40</integer> | 2400 | <integer>40</integer> |
2062 | </map> | 2401 | </map> |
2063 | <key>EnergyWidth</key> | 2402 | <key>EnergyWidth</key> |
2064 | <map> | 2403 | <map> |
2065 | <key>Comment</key> | 2404 | <key>Comment</key> |
2066 | <string /> | 2405 | <string /> |
2067 | <key>Persist</key> | 2406 | <key>Persist</key> |
2068 | <integer>0</integer> | 2407 | <integer>0</integer> |
2069 | <key>Type</key> | 2408 | <key>Type</key> |
2070 | <string>S32</string> | 2409 | <string>S32</string> |
2071 | <key>Value</key> | 2410 | <key>Value</key> |
2072 | <integer>175</integer> | 2411 | <integer>175</integer> |
2073 | </map> | 2412 | </map> |
2413 | <key>FPSLogFrequency</key> | ||
2414 | <map> | ||
2415 | <key>Comment</key> | ||
2416 | <string>Seconds between display of FPS in log (0 for never)</string> | ||
2417 | <key>Persist</key> | ||
2418 | <integer>1</integer> | ||
2419 | <key>Type</key> | ||
2420 | <string>F32</string> | ||
2421 | <key>Value</key> | ||
2422 | <real>10.0</real> | ||
2423 | </map> | ||
2074 | <key>FilterItemsPerFrame</key> | 2424 | <key>FilterItemsPerFrame</key> |
2075 | <map> | 2425 | <map> |
2076 | <key>Comment</key> | 2426 | <key>Comment</key> |
2077 | <string>Maximum number of inventory items to match against search filter every frame (lower to increase framerate while searching, higher to improve search speed)</string> | 2427 | <string>Maximum number of inventory items to match against search filter every frame (lower to increase framerate while searching, higher to improve search speed)</string> |
2078 | <key>Persist</key> | 2428 | <key>Persist</key> |
2079 | <integer>1</integer> | 2429 | <integer>1</integer> |
2080 | <key>Type</key> | 2430 | <key>Type</key> |
2081 | <string>S32</string> | 2431 | <string>S32</string> |
2082 | <key>Value</key> | 2432 | <key>Value</key> |
2083 | <integer>500</integer> | 2433 | <integer>500</integer> |
2084 | </map> | 2434 | </map> |
2085 | <key>FindLandArea</key> | 2435 | <key>FindLandArea</key> |
2086 | <map> | 2436 | <map> |
2087 | <key>Comment</key> | 2437 | <key>Comment</key> |
2088 | <string>Enables filtering of land search results by area</string> | 2438 | <string>Enables filtering of land search results by area</string> |
2089 | <key>Persist</key> | 2439 | <key>Persist</key> |
2090 | <integer>1</integer> | 2440 | <integer>1</integer> |
2091 | <key>Type</key> | 2441 | <key>Type</key> |
2092 | <string>Boolean</string> | 2442 | <string>Boolean</string> |
2093 | <key>Value</key> | 2443 | <key>Value</key> |
2094 | <integer>0</integer> | 2444 | <integer>0</integer> |
2095 | </map> | 2445 | </map> |
2096 | <key>FindLandPrice</key> | 2446 | <key>FindLandPrice</key> |
2097 | <map> | 2447 | <map> |
2098 | <key>Comment</key> | 2448 | <key>Comment</key> |
2099 | <string>Enables filtering of land search results by price</string> | 2449 | <string>Enables filtering of land search results by price</string> |
2100 | <key>Persist</key> | 2450 | <key>Persist</key> |
2101 | <integer>1</integer> | 2451 | <integer>1</integer> |
2102 | <key>Type</key> | 2452 | <key>Type</key> |
2103 | <string>Boolean</string> | 2453 | <string>Boolean</string> |
2104 | <key>Value</key> | 2454 | <key>Value</key> |
2105 | <integer>1</integer> | 2455 | <integer>1</integer> |
2106 | </map> | 2456 | </map> |
2107 | <key>FindLandType</key> | 2457 | <key>FindLandType</key> |
2108 | <map> | 2458 | <map> |
2109 | <key>Comment</key> | 2459 | <key>Comment</key> |
2110 | <string>Controls which type of land you are searching for in Find Land interface ("All", "Auction", "For Sale")</string> | 2460 | <string>Controls which type of land you are searching for in Find Land interface ("All", "Auction", "For Sale")</string> |
2111 | <key>Persist</key> | 2461 | <key>Persist</key> |
2112 | <integer>1</integer> | 2462 | <integer>1</integer> |
2113 | <key>Type</key> | 2463 | <key>Type</key> |
2114 | <string>String</string> | 2464 | <string>String</string> |
2115 | <key>Value</key> | 2465 | <key>Value</key> |
2116 | <string>All</string> | 2466 | <string>All</string> |
2117 | </map> | 2467 | </map> |
2118 | <key>FindPeopleOnline</key> | 2468 | <key>FindPeopleOnline</key> |
2119 | <map> | 2469 | <map> |
2120 | <key>Comment</key> | 2470 | <key>Comment</key> |
2121 | <string>Limits people search to only users who are logged on</string> | 2471 | <string>Limits people search to only users who are logged on</string> |
2122 | <key>Persist</key> | 2472 | <key>Persist</key> |
2123 | <integer>1</integer> | 2473 | <integer>1</integer> |
2124 | <key>Type</key> | 2474 | <key>Type</key> |
2125 | <string>Boolean</string> | 2475 | <string>Boolean</string> |
2126 | <key>Value</key> | 2476 | <key>Value</key> |
2127 | <integer>1</integer> | 2477 | <integer>1</integer> |
2128 | </map> | 2478 | </map> |
2129 | <key>FindPlacesPictures</key> | 2479 | <key>FindPlacesPictures</key> |
2130 | <map> | 2480 | <map> |
2131 | <key>Comment</key> | 2481 | <key>Comment</key> |
2132 | <string>Display only results of find places that have pictures</string> | 2482 | <string>Display only results of find places that have pictures</string> |
2133 | <key>Persist</key> | 2483 | <key>Persist</key> |
2134 | <integer>1</integer> | 2484 | <integer>1</integer> |
2135 | <key>Type</key> | 2485 | <key>Type</key> |
2136 | <string>Boolean</string> | 2486 | <string>Boolean</string> |
2137 | <key>Value</key> | 2487 | <key>Value</key> |
2138 | <integer>1</integer> | 2488 | <integer>1</integer> |
2139 | </map> | 2489 | </map> |
2140 | <key>FirstLoginThisInstall</key> | 2490 | <key>FirstLoginThisInstall</key> |
2141 | <map> | 2491 | <map> |
2142 | <key>Comment</key> | 2492 | <key>Comment</key> |
2143 | <string>Specifies that you have not successfully logged in since you installed the latest update</string> | 2493 | <string>Specifies that you have not successfully logged in since you installed the latest update</string> |
2144 | <key>Persist</key> | 2494 | <key>Persist</key> |
2145 | <integer>1</integer> | 2495 | <integer>1</integer> |
2146 | <key>Type</key> | 2496 | <key>Type</key> |
2147 | <string>Boolean</string> | 2497 | <string>Boolean</string> |
2148 | <key>Value</key> | 2498 | <key>Value</key> |
2149 | <integer>1</integer> | 2499 | <integer>1</integer> |
2150 | </map> | 2500 | </map> |
2151 | <key>FirstName</key> | 2501 | <key>FirstName</key> |
2152 | <map> | 2502 | <map> |
2153 | <key>Comment</key> | 2503 | <key>Comment</key> |
2154 | <string>Login first name</string> | 2504 | <string>Login first name</string> |
2155 | <key>Persist</key> | 2505 | <key>Persist</key> |
2156 | <integer>1</integer> | 2506 | <integer>1</integer> |
2157 | <key>Type</key> | 2507 | <key>Type</key> |
2158 | <string>String</string> | 2508 | <string>String</string> |
2159 | <key>Value</key> | 2509 | <key>Value</key> |
2160 | <string /> | 2510 | <string /> |
2161 | </map> | 2511 | </map> |
2162 | <key>FirstPersonAvatarVisible</key> | 2512 | <key>FirstPersonAvatarVisible</key> |
2163 | <map> | 2513 | <map> |
2164 | <key>Comment</key> | 2514 | <key>Comment</key> |
2165 | <string>Display avatar and attachments below neck while in mouselook</string> | 2515 | <string>Display avatar and attachments below neck while in mouselook</string> |
2166 | <key>Persist</key> | 2516 | <key>Persist</key> |
2167 | <integer>1</integer> | 2517 | <integer>1</integer> |
2168 | <key>Type</key> | 2518 | <key>Type</key> |
2169 | <string>Boolean</string> | 2519 | <string>Boolean</string> |
2170 | <key>Value</key> | 2520 | <key>Value</key> |
2171 | <integer>0</integer> | 2521 | <integer>0</integer> |
2172 | </map> | 2522 | </map> |
2173 | <key>FirstPersonBtnState</key> | 2523 | <key>FirstPersonBtnState</key> |
2174 | <map> | 2524 | <map> |
2175 | <key>Comment</key> | 2525 | <key>Comment</key> |
2176 | <string /> | 2526 | <string /> |
2177 | <key>Persist</key> | 2527 | <key>Persist</key> |
2178 | <integer>0</integer> | 2528 | <integer>0</integer> |
2179 | <key>Type</key> | 2529 | <key>Type</key> |
2180 | <string>Boolean</string> | 2530 | <string>Boolean</string> |
2181 | <key>Value</key> | 2531 | <key>Value</key> |
2182 | <integer>0</integer> | 2532 | <integer>0</integer> |
2183 | </map> | 2533 | </map> |
2184 | <key>FirstRunThisInstall</key> | 2534 | <key>FirstRunThisInstall</key> |
2185 | <map> | 2535 | <map> |
2186 | <key>Comment</key> | 2536 | <key>Comment</key> |
2187 | <string>Specifies that you have not run the viewer since you installed the latest update</string> | 2537 | <string>Specifies that you have not run the viewer since you installed the latest update</string> |
2188 | <key>Persist</key> | 2538 | <key>Persist</key> |
2189 | <integer>1</integer> | 2539 | <integer>1</integer> |
2190 | <key>Type</key> | 2540 | <key>Type</key> |
2191 | <string>Boolean</string> | 2541 | <string>Boolean</string> |
2192 | <key>Value</key> | 2542 | <key>Value</key> |
2193 | <integer>1</integer> | 2543 | <integer>1</integer> |
2194 | </map> | 2544 | </map> |
2195 | <key>FixedWeather</key> | 2545 | <key>FixedWeather</key> |
2196 | <map> | 2546 | <map> |
2197 | <key>Comment</key> | 2547 | <key>Comment</key> |
2198 | <string>Weather effects do not change over time</string> | 2548 | <string>Weather effects do not change over time</string> |
2199 | <key>Persist</key> | 2549 | <key>Persist</key> |
2200 | <integer>1</integer> | 2550 | <integer>1</integer> |
2201 | <key>Type</key> | 2551 | <key>Type</key> |
2202 | <string>Boolean</string> | 2552 | <string>Boolean</string> |
2203 | <key>Value</key> | 2553 | <key>Value</key> |
2204 | <integer>0</integer> | 2554 | <integer>0</integer> |
2205 | </map> | 2555 | </map> |
2206 | <key>FloaterAboutRect</key> | 2556 | <key>FloaterAboutRect</key> |
2207 | <map> | 2557 | <map> |
2208 | <key>Comment</key> | 2558 | <key>Comment</key> |
2209 | <string>Rectangle for About window</string> | 2559 | <string>Rectangle for About window</string> |
2210 | <key>Persist</key> | 2560 | <key>Persist</key> |
2211 | <integer>1</integer> | 2561 | <integer>1</integer> |
2212 | <key>Type</key> | 2562 | <key>Type</key> |
2213 | <string>Rect</string> | 2563 | <string>Rect</string> |
2214 | <key>Value</key> | 2564 | <key>Value</key> |
2215 | <array> | 2565 | <array> |
2216 | <integer>0</integer> | 2566 | <integer>0</integer> |
2217 | <integer>440</integer> | 2567 | <integer>440</integer> |
2218 | <integer>470</integer> | 2568 | <integer>470</integer> |
2219 | <integer>0</integer> | 2569 | <integer>0</integer> |
2220 | </array> | 2570 | </array> |
2221 | </map> | 2571 | </map> |
2222 | <key>FloaterActiveSpeakersRect</key> | 2572 | <key>FloaterActiveSpeakersRect</key> |
2223 | <map> | 2573 | <map> |
2224 | <key>Comment</key> | 2574 | <key>Comment</key> |
2225 | <string>Rectangle for active speakers window</string> | 2575 | <string>Rectangle for active speakers window</string> |
2226 | <key>Persist</key> | 2576 | <key>Persist</key> |
2227 | <integer>1</integer> | 2577 | <integer>1</integer> |
2228 | <key>Type</key> | 2578 | <key>Type</key> |
2229 | <string>Rect</string> | 2579 | <string>Rect</string> |
2230 | <key>Value</key> | 2580 | <key>Value</key> |
2231 | <array> | 2581 | <array> |
2232 | <integer>0</integer> | 2582 | <integer>0</integer> |
2233 | <integer>300</integer> | 2583 | <integer>300</integer> |
2234 | <integer>250</integer> | 2584 | <integer>250</integer> |
2235 | <integer>0</integer> | 2585 | <integer>0</integer> |
2236 | </array> | 2586 | </array> |
2237 | </map> | 2587 | </map> |
2238 | <key>FloaterActiveSpeakersSortColumn</key> | ||
2239 | <map> | ||
2240 | <key>Comment</key> | ||
2241 | <string>Column name to sort on</string> | ||
2242 | <key>Persist</key> | ||
2243 | <integer>1</integer> | ||
2244 | <key>Type</key> | ||
2245 | <string>String</string> | ||
2246 | <key>Value</key> | ||
2247 | <string>speaker_name</string> | ||
2248 | </map> | ||
2249 | <key>FloaterActiveSpeakersSortAscending</key> | 2588 | <key>FloaterActiveSpeakersSortAscending</key> |
2250 | <map> | 2589 | <map> |
2251 | <key>Comment</key> | 2590 | <key>Comment</key> |
2252 | <string>Whether to sort up or down</string> | 2591 | <string>Whether to sort up or down</string> |
2253 | <key>Persist</key> | 2592 | <key>Persist</key> |
2254 | <integer>1</integer> | 2593 | <integer>1</integer> |
2255 | <key>Type</key> | 2594 | <key>Type</key> |
2256 | <string>Boolean</string> | 2595 | <string>Boolean</string> |
2257 | <key>Value</key> | 2596 | <key>Value</key> |
2258 | <integer>0</integer> | 2597 | <integer>0</integer> |
2259 | </map> | 2598 | </map> |
2599 | <key>FloaterActiveSpeakersSortColumn</key> | ||
2600 | <map> | ||
2601 | <key>Comment</key> | ||
2602 | <string>Column name to sort on</string> | ||
2603 | <key>Persist</key> | ||
2604 | <integer>1</integer> | ||
2605 | <key>Type</key> | ||
2606 | <string>String</string> | ||
2607 | <key>Value</key> | ||
2608 | <string>speaker_name</string> | ||
2609 | </map> | ||
2610 | <key>FloaterAdvancedSkyRect</key> | ||
2611 | <map> | ||
2612 | <key>Comment</key> | ||
2613 | <string>Rectangle for Advanced Sky Editor</string> | ||
2614 | <key>Persist</key> | ||
2615 | <integer>1</integer> | ||
2616 | <key>Type</key> | ||
2617 | <string>Rect</string> | ||
2618 | <key>Value</key> | ||
2619 | <array> | ||
2620 | <integer>50</integer> | ||
2621 | <integer>220</integer> | ||
2622 | <integer>450</integer> | ||
2623 | <integer>0</integer> | ||
2624 | </array> | ||
2625 | </map> | ||
2626 | <key>FloaterAdvancedWaterRect</key> | ||
2627 | <map> | ||
2628 | <key>Comment</key> | ||
2629 | <string>Rectangle for Advanced Water Editor</string> | ||
2630 | <key>Persist</key> | ||
2631 | <integer>1</integer> | ||
2632 | <key>Type</key> | ||
2633 | <string>Rect</string> | ||
2634 | <key>Value</key> | ||
2635 | <array> | ||
2636 | <integer>50</integer> | ||
2637 | <integer>220</integer> | ||
2638 | <integer>450</integer> | ||
2639 | <integer>0</integer> | ||
2640 | </array> | ||
2641 | </map> | ||
2260 | <key>FloaterAudioVolumeRect</key> | 2642 | <key>FloaterAudioVolumeRect</key> |
2261 | <map> | 2643 | <map> |
2262 | <key>Comment</key> | 2644 | <key>Comment</key> |
2263 | <string>Rectangle for Audio Volume window</string> | 2645 | <string>Rectangle for Audio Volume window</string> |
2264 | <key>Persist</key> | 2646 | <key>Persist</key> |
2265 | <integer>1</integer> | 2647 | <integer>1</integer> |
2266 | <key>Type</key> | 2648 | <key>Type</key> |
2267 | <string>Rect</string> | 2649 | <string>Rect</string> |
2268 | <key>Value</key> | 2650 | <key>Value</key> |
2269 | <array> | 2651 | <array> |
2270 | <integer>0</integer> | 2652 | <integer>0</integer> |
2271 | <integer>440</integer> | 2653 | <integer>440</integer> |
2272 | <integer>470</integer> | 2654 | <integer>470</integer> |
2273 | <integer>0</integer> | 2655 | <integer>0</integer> |
2274 | </array> | 2656 | </array> |
2275 | </map> | 2657 | </map> |
2276 | <key>FloaterBuildOptionsRect</key> | 2658 | <key>FloaterBuildOptionsRect</key> |
2277 | <map> | 2659 | <map> |
2278 | <key>Comment</key> | 2660 | <key>Comment</key> |
2279 | <string>Rectangle for build options window.</string> | 2661 | <string>Rectangle for build options window.</string> |
2280 | <key>Persist</key> | 2662 | <key>Persist</key> |
2281 | <integer>1</integer> | 2663 | <integer>1</integer> |
2282 | <key>Type</key> | 2664 | <key>Type</key> |
2283 | <string>Rect</string> | 2665 | <string>Rect</string> |
2284 | <key>Value</key> | 2666 | <key>Value</key> |
2285 | <array> | 2667 | <array> |
2286 | <integer>0</integer> | 2668 | <integer>0</integer> |
2287 | <integer>0</integer> | 2669 | <integer>0</integer> |
2288 | <integer>0</integer> | 2670 | <integer>0</integer> |
2289 | <integer>0</integer> | 2671 | <integer>0</integer> |
2290 | </array> | 2672 | </array> |
2291 | </map> | 2673 | </map> |
2292 | <key>FloaterBumpRect</key> | 2674 | <key>FloaterBumpRect</key> |
2293 | <map> | 2675 | <map> |
2294 | <key>Comment</key> | 2676 | <key>Comment</key> |
2295 | <string>Rectangle for Bumps/Hits window</string> | 2677 | <string>Rectangle for Bumps/Hits window</string> |
2296 | <key>Persist</key> | 2678 | <key>Persist</key> |
2297 | <integer>1</integer> | 2679 | <integer>1</integer> |
2298 | <key>Type</key> | 2680 | <key>Type</key> |
2299 | <string>Rect</string> | 2681 | <string>Rect</string> |
2300 | <key>Value</key> | 2682 | <key>Value</key> |
2301 | <array> | 2683 | <array> |
2302 | <integer>0</integer> | 2684 | <integer>0</integer> |
2303 | <integer>180</integer> | 2685 | <integer>180</integer> |
2304 | <integer>400</integer> | 2686 | <integer>400</integer> |
2305 | <integer>0</integer> | 2687 | <integer>0</integer> |
2306 | </array> | 2688 | </array> |
2307 | </map> | 2689 | </map> |
2308 | <key>FloaterBuyContentsRect</key> | 2690 | <key>FloaterBuyContentsRect</key> |
2309 | <map> | 2691 | <map> |
2310 | <key>Comment</key> | 2692 | <key>Comment</key> |
2311 | <string>Rectangle for Buy Contents window</string> | 2693 | <string>Rectangle for Buy Contents window</string> |
2312 | <key>Persist</key> | 2694 | <key>Persist</key> |
2313 | <integer>1</integer> | 2695 | <integer>1</integer> |
2314 | <key>Type</key> | 2696 | <key>Type</key> |
2315 | <string>Rect</string> | 2697 | <string>Rect</string> |
2316 | <key>Value</key> | 2698 | <key>Value</key> |
2317 | <array> | 2699 | <array> |
2318 | <integer>0</integer> | 2700 | <integer>0</integer> |
2319 | <integer>250</integer> | 2701 | <integer>250</integer> |
2320 | <integer>300</integer> | 2702 | <integer>300</integer> |
2321 | <integer>0</integer> | 2703 | <integer>0</integer> |
2322 | </array> | 2704 | </array> |
2323 | </map> | 2705 | </map> |
2324 | <key>FloaterBuyRect</key> | 2706 | <key>FloaterBuyRect</key> |
2325 | <map> | 2707 | <map> |
2326 | <key>Comment</key> | 2708 | <key>Comment</key> |
2327 | <string>Rectangle for buy window</string> | 2709 | <string>Rectangle for buy window</string> |
2328 | <key>Persist</key> | 2710 | <key>Persist</key> |
2329 | <integer>1</integer> | 2711 | <integer>1</integer> |
2330 | <key>Type</key> | 2712 | <key>Type</key> |
2331 | <string>Rect</string> | 2713 | <string>Rect</string> |
2332 | <key>Value</key> | 2714 | <key>Value</key> |
2333 | <array> | 2715 | <array> |
2334 | <integer>0</integer> | 2716 | <integer>0</integer> |
2335 | <integer>250</integer> | 2717 | <integer>250</integer> |
2336 | <integer>300</integer> | 2718 | <integer>300</integer> |
2337 | <integer>0</integer> | 2719 | <integer>0</integer> |
2338 | </array> | 2720 | </array> |
2339 | </map> | 2721 | </map> |
2340 | <key>FloaterCameraRect3</key> | 2722 | <key>FloaterCameraRect3</key> |
2341 | <map> | 2723 | <map> |
2342 | <key>Comment</key> | 2724 | <key>Comment</key> |
2343 | <string>Rectangle for camera control window</string> | 2725 | <string>Rectangle for camera control window</string> |
2344 | <key>Persist</key> | 2726 | <key>Persist</key> |
2345 | <integer>1</integer> | 2727 | <integer>1</integer> |
2346 | <key>Type</key> | 2728 | <key>Type</key> |
2347 | <string>Rect</string> | 2729 | <string>Rect</string> |
2348 | <key>Value</key> | 2730 | <key>Value</key> |
2349 | <array> | 2731 | <array> |
2350 | <integer>0</integer> | 2732 | <integer>0</integer> |
2351 | <integer>64</integer> | 2733 | <integer>64</integer> |
2352 | <integer>176</integer> | 2734 | <integer>176</integer> |
2353 | <integer>0</integer> | 2735 | <integer>0</integer> |
2354 | </array> | 2736 | </array> |
2355 | </map> | 2737 | </map> |
2356 | <key>FloaterChatRect</key> | 2738 | <key>FloaterChatRect</key> |
2357 | <map> | 2739 | <map> |
2358 | <key>Comment</key> | 2740 | <key>Comment</key> |
2359 | <string>Rectangle for chat history</string> | 2741 | <string>Rectangle for chat history</string> |
2360 | <key>Persist</key> | 2742 | <key>Persist</key> |
2361 | <integer>1</integer> | 2743 | <integer>1</integer> |
2362 | <key>Type</key> | 2744 | <key>Type</key> |
2363 | <string>Rect</string> | 2745 | <string>Rect</string> |
2364 | <key>Value</key> | 2746 | <key>Value</key> |
2365 | <array> | 2747 | <array> |
2366 | <integer>0</integer> | 2748 | <integer>0</integer> |
2367 | <integer>172</integer> | 2749 | <integer>172</integer> |
2368 | <integer>500</integer> | 2750 | <integer>500</integer> |
2369 | <integer>0</integer> | 2751 | <integer>0</integer> |
2370 | </array> | 2752 | </array> |
2371 | </map> | 2753 | </map> |
2372 | <key>FloaterClothingRect</key> | 2754 | <key>FloaterClothingRect</key> |
2373 | <map> | 2755 | <map> |
2374 | <key>Comment</key> | 2756 | <key>Comment</key> |
2375 | <string>Rectangle for clothing window</string> | 2757 | <string>Rectangle for clothing window</string> |
2376 | <key>Persist</key> | 2758 | <key>Persist</key> |
2377 | <integer>1</integer> | 2759 | <integer>1</integer> |
2378 | <key>Type</key> | 2760 | <key>Type</key> |
2379 | <string>Rect</string> | 2761 | <string>Rect</string> |
2380 | <key>Value</key> | 2762 | <key>Value</key> |
2381 | <array> | 2763 | <array> |
2382 | <integer>0</integer> | 2764 | <integer>0</integer> |
2383 | <integer>480</integer> | 2765 | <integer>480</integer> |
2384 | <integer>320</integer> | 2766 | <integer>320</integer> |
2385 | <integer>0</integer> | 2767 | <integer>0</integer> |
2386 | </array> | 2768 | </array> |
2387 | </map> | 2769 | </map> |
2388 | <key>FloaterContactsRect</key> | 2770 | <key>FloaterContactsRect</key> |
2389 | <map> | 2771 | <map> |
2390 | <key>Comment</key> | 2772 | <key>Comment</key> |
2391 | <string>Rectangle for chat history</string> | 2773 | <string>Rectangle for chat history</string> |
2392 | <key>Persist</key> | 2774 | <key>Persist</key> |
2393 | <integer>1</integer> | 2775 | <integer>1</integer> |
2394 | <key>Type</key> | 2776 | <key>Type</key> |
2395 | <string>Rect</string> | 2777 | <string>Rect</string> |
2396 | <key>Value</key> | 2778 | <key>Value</key> |
2397 | <array> | 2779 | <array> |
2398 | <integer>0</integer> | 2780 | <integer>0</integer> |
2399 | <integer>390</integer> | 2781 | <integer>390</integer> |
2400 | <integer>395</integer> | 2782 | <integer>395</integer> |
2401 | <integer>0</integer> | 2783 | <integer>0</integer> |
2402 | </array> | 2784 | </array> |
2403 | </map> | 2785 | </map> |
2404 | <key>FloaterCustomizeAppearanceRect</key> | 2786 | <key>FloaterCustomizeAppearanceRect</key> |
2405 | <map> | 2787 | <map> |
2406 | <key>Comment</key> | 2788 | <key>Comment</key> |
2407 | <string>Rectangle for avatar customization window</string> | 2789 | <string>Rectangle for avatar customization window</string> |
2408 | <key>Persist</key> | 2790 | <key>Persist</key> |
2409 | <integer>1</integer> | 2791 | <integer>1</integer> |
2410 | <key>Type</key> | 2792 | <key>Type</key> |
2411 | <string>Rect</string> | 2793 | <string>Rect</string> |
2412 | <key>Value</key> | 2794 | <key>Value</key> |
2413 | <array> | 2795 | <array> |
2414 | <integer>0</integer> | 2796 | <integer>0</integer> |
2415 | <integer>540</integer> | 2797 | <integer>540</integer> |
2416 | <integer>494</integer> | 2798 | <integer>494</integer> |
2417 | <integer>0</integer> | 2799 | <integer>0</integer> |
2418 | </array> | 2800 | </array> |
2419 | </map> | 2801 | </map> |
2802 | <key>FloaterDayCycleRect</key> | ||
2803 | <map> | ||
2804 | <key>Comment</key> | ||
2805 | <string>Rectangle for Day Cycle Editor</string> | ||
2806 | <key>Persist</key> | ||
2807 | <integer>1</integer> | ||
2808 | <key>Type</key> | ||
2809 | <string>Rect</string> | ||
2810 | <key>Value</key> | ||
2811 | <array> | ||
2812 | <integer>50</integer> | ||
2813 | <integer>450</integer> | ||
2814 | <integer>300</integer> | ||
2815 | <integer>0</integer> | ||
2816 | </array> | ||
2817 | </map> | ||
2818 | <key>FloaterEnvRect</key> | ||
2819 | <map> | ||
2820 | <key>Comment</key> | ||
2821 | <string>Rectangle for Environment Editor</string> | ||
2822 | <key>Persist</key> | ||
2823 | <integer>1</integer> | ||
2824 | <key>Type</key> | ||
2825 | <string>Rect</string> | ||
2826 | <key>Value</key> | ||
2827 | <array> | ||
2828 | <integer>50</integer> | ||
2829 | <integer>150</integer> | ||
2830 | <integer>650</integer> | ||
2831 | <integer>0</integer> | ||
2832 | </array> | ||
2833 | </map> | ||
2420 | <key>FloaterFindRect2</key> | 2834 | <key>FloaterFindRect2</key> |
2421 | <map> | 2835 | <map> |
2422 | <key>Comment</key> | 2836 | <key>Comment</key> |
2423 | <string>Rectangle for Find window</string> | 2837 | <string>Rectangle for Find window</string> |
2424 | <key>Persist</key> | 2838 | <key>Persist</key> |
2425 | <integer>1</integer> | 2839 | <integer>1</integer> |
2426 | <key>Type</key> | 2840 | <key>Type</key> |
2427 | <string>Rect</string> | 2841 | <string>Rect</string> |
2428 | <key>Value</key> | 2842 | <key>Value</key> |
2429 | <array> | 2843 | <array> |
2430 | <integer>0</integer> | 2844 | <integer>0</integer> |
2431 | <integer>570</integer> | 2845 | <integer>570</integer> |
2432 | <integer>780</integer> | 2846 | <integer>780</integer> |
2433 | <integer>0</integer> | 2847 | <integer>0</integer> |
2434 | </array> | 2848 | </array> |
2435 | </map> | 2849 | </map> |
2436 | <key>FloaterFriendsRect</key> | 2850 | <key>FloaterFriendsRect</key> |
2437 | <map> | 2851 | <map> |
2438 | <key>Comment</key> | 2852 | <key>Comment</key> |
2439 | <string>Rectangle for friends window</string> | 2853 | <string>Rectangle for friends window</string> |
2440 | <key>Persist</key> | 2854 | <key>Persist</key> |
2441 | <integer>1</integer> | 2855 | <integer>1</integer> |
2442 | <key>Type</key> | 2856 | <key>Type</key> |
2443 | <string>Rect</string> | 2857 | <string>Rect</string> |
2444 | <key>Value</key> | 2858 | <key>Value</key> |
2445 | <array> | 2859 | <array> |
2446 | <integer>0</integer> | 2860 | <integer>0</integer> |
2447 | <integer>400</integer> | 2861 | <integer>400</integer> |
2448 | <integer>250</integer> | 2862 | <integer>250</integer> |
2449 | <integer>0</integer> | 2863 | <integer>0</integer> |
2450 | </array> | 2864 | </array> |
2451 | </map> | 2865 | </map> |
2452 | <key>FloaterGestureRect2</key> | 2866 | <key>FloaterGestureRect2</key> |
2453 | <map> | 2867 | <map> |
2454 | <key>Comment</key> | 2868 | <key>Comment</key> |
2455 | <string>Rectangle for gestures window</string> | 2869 | <string>Rectangle for gestures window</string> |
2456 | <key>Persist</key> | 2870 | <key>Persist</key> |
2457 | <integer>1</integer> | 2871 | <integer>1</integer> |
2458 | <key>Type</key> | 2872 | <key>Type</key> |
2459 | <string>Rect</string> | 2873 | <string>Rect</string> |
2460 | <key>Value</key> | 2874 | <key>Value</key> |
2461 | <array> | 2875 | <array> |
2462 | <integer>0</integer> | 2876 | <integer>0</integer> |
2463 | <integer>465</integer> | 2877 | <integer>465</integer> |
2464 | <integer>350</integer> | 2878 | <integer>350</integer> |
2465 | <integer>0</integer> | 2879 | <integer>0</integer> |
2466 | </array> | 2880 | </array> |
2467 | </map> | 2881 | </map> |
2468 | <key>FloaterHtmlRect</key> | ||
2469 | <map> | ||
2470 | <key>Comment</key> | ||
2471 | <string>Rectangle for HTML window</string> | ||
2472 | <key>Persist</key> | ||
2473 | <integer>1</integer> | ||
2474 | <key>Type</key> | ||
2475 | <string>Rect</string> | ||
2476 | <key>Value</key> | ||
2477 | <array> | ||
2478 | <integer>100</integer> | ||
2479 | <integer>460</integer> | ||
2480 | <integer>370</integer> | ||
2481 | <integer>100</integer> | ||
2482 | </array> | ||
2483 | </map> | ||
2484 | <key>FloaterHUDRect</key> | 2882 | <key>FloaterHUDRect</key> |
2485 | <map> | 2883 | <map> |
2486 | <key>Comment</key> | 2884 | <key>Comment</key> |
2487 | <string>Rectangle for HUD Floater window</string> | 2885 | <string>Rectangle for HUD Floater window</string> |
2488 | <key>Persist</key> | 2886 | <key>Persist</key> |
2489 | <integer>1</integer> | 2887 | <integer>1</integer> |
2490 | <key>Type</key> | 2888 | <key>Type</key> |
2491 | <string>Rect</string> | 2889 | <string>Rect</string> |
2492 | <key>Value</key> | 2890 | <key>Value</key> |
2493 | <array> | 2891 | <array> |
2494 | <integer>0</integer> | 2892 | <integer>0</integer> |
2495 | <integer>282</integer> | 2893 | <integer>282</integer> |
2496 | <integer>342</integer> | 2894 | <integer>342</integer> |
2497 | <integer>0</integer> | 2895 | <integer>0</integer> |
2498 | </array> | 2896 | </array> |
2499 | </map> | 2897 | </map> |
2898 | <key>FloaterHtmlRect</key> | ||
2899 | <map> | ||
2900 | <key>Comment</key> | ||
2901 | <string>Rectangle for HTML window</string> | ||
2902 | <key>Persist</key> | ||
2903 | <integer>1</integer> | ||
2904 | <key>Type</key> | ||
2905 | <string>Rect</string> | ||
2906 | <key>Value</key> | ||
2907 | <array> | ||
2908 | <integer>100</integer> | ||
2909 | <integer>460</integer> | ||
2910 | <integer>370</integer> | ||
2911 | <integer>100</integer> | ||
2912 | </array> | ||
2913 | </map> | ||
2500 | <key>FloaterIMRect</key> | 2914 | <key>FloaterIMRect</key> |
2501 | <map> | 2915 | <map> |
2502 | <key>Comment</key> | 2916 | <key>Comment</key> |
2503 | <string>Rectangle for IM window</string> | 2917 | <string>Rectangle for IM window</string> |
2504 | <key>Persist</key> | 2918 | <key>Persist</key> |
2505 | <integer>1</integer> | 2919 | <integer>1</integer> |
2506 | <key>Type</key> | 2920 | <key>Type</key> |
2507 | <string>Rect</string> | 2921 | <string>Rect</string> |
2508 | <key>Value</key> | 2922 | <key>Value</key> |
2509 | <array> | 2923 | <array> |
2510 | <integer>0</integer> | 2924 | <integer>0</integer> |
2511 | <integer>160</integer> | 2925 | <integer>160</integer> |
2512 | <integer>500</integer> | 2926 | <integer>500</integer> |
2513 | <integer>0</integer> | 2927 | <integer>0</integer> |
2514 | </array> | 2928 | </array> |
2515 | </map> | 2929 | </map> |
2516 | <key>FloaterInspectRect</key> | 2930 | <key>FloaterInspectRect</key> |
2517 | <map> | 2931 | <map> |
2518 | <key>Comment</key> | 2932 | <key>Comment</key> |
2519 | <string>Rectangle for Object Inspect window</string> | 2933 | <string>Rectangle for Object Inspect window</string> |
2520 | <key>Persist</key> | 2934 | <key>Persist</key> |
2521 | <integer>1</integer> | 2935 | <integer>1</integer> |
2522 | <key>Type</key> | 2936 | <key>Type</key> |
2523 | <string>Rect</string> | 2937 | <string>Rect</string> |
2524 | <key>Value</key> | 2938 | <key>Value</key> |
2525 | <array> | 2939 | <array> |
2526 | <integer>0</integer> | 2940 | <integer>0</integer> |
2527 | <integer>400</integer> | 2941 | <integer>400</integer> |
2528 | <integer>400</integer> | 2942 | <integer>400</integer> |
2529 | <integer>0</integer> | 2943 | <integer>0</integer> |
2530 | </array> | 2944 | </array> |
2531 | </map> | 2945 | </map> |
2532 | <key>FloaterInventoryRect</key> | 2946 | <key>FloaterInventoryRect</key> |
2533 | <map> | 2947 | <map> |
2534 | <key>Comment</key> | 2948 | <key>Comment</key> |
2535 | <string>Rectangle for inventory window</string> | 2949 | <string>Rectangle for inventory window</string> |
2536 | <key>Persist</key> | 2950 | <key>Persist</key> |
2537 | <integer>1</integer> | 2951 | <integer>1</integer> |
2538 | <key>Type</key> | 2952 | <key>Type</key> |
2539 | <string>Rect</string> | 2953 | <string>Rect</string> |
2540 | <key>Value</key> | 2954 | <key>Value</key> |
2541 | <array> | 2955 | <array> |
2542 | <integer>0</integer> | 2956 | <integer>0</integer> |
2543 | <integer>400</integer> | 2957 | <integer>400</integer> |
2544 | <integer>300</integer> | 2958 | <integer>300</integer> |
2545 | <integer>0</integer> | 2959 | <integer>0</integer> |
2546 | </array> | 2960 | </array> |
2547 | </map> | 2961 | </map> |
2548 | <key>FloaterJoystickRect</key> | 2962 | <key>FloaterJoystickRect</key> |
2549 | <map> | 2963 | <map> |
2550 | <key>Comment</key> | 2964 | <key>Comment</key> |
2551 | <string>Rectangle for joystick controls window.</string> | 2965 | <string>Rectangle for joystick controls window.</string> |
2552 | <key>Persist</key> | 2966 | <key>Persist</key> |
2553 | <integer>1</integer> | 2967 | <integer>1</integer> |
2554 | <key>Type</key> | 2968 | <key>Type</key> |
2555 | <string>Rect</string> | 2969 | <string>Rect</string> |
2556 | <key>Value</key> | 2970 | <key>Value</key> |
2557 | <array> | 2971 | <array> |
2558 | <integer>0</integer> | 2972 | <integer>0</integer> |
2559 | <integer>0</integer> | 2973 | <integer>0</integer> |
2560 | <integer>0</integer> | 2974 | <integer>0</integer> |
2561 | <integer>0</integer> | 2975 | <integer>0</integer> |
2562 | </array> | 2976 | </array> |
2563 | </map> | 2977 | </map> |
2564 | <key>FloaterLagMeter</key> | 2978 | <key>FloaterLagMeter</key> |
2565 | <map> | 2979 | <map> |
2566 | <key>Comment</key> | 2980 | <key>Comment</key> |
2567 | <string>Rectangle for lag meter</string> | 2981 | <string>Rectangle for lag meter</string> |
2568 | <key>Persist</key> | 2982 | <key>Persist</key> |
2569 | <integer>1</integer> | 2983 | <integer>1</integer> |
2570 | <key>Type</key> | 2984 | <key>Type</key> |
2571 | <string>Rect</string> | 2985 | <string>Rect</string> |
2572 | <key>Value</key> | 2986 | <key>Value</key> |
2573 | <array> | 2987 | <array> |
2574 | <integer>0</integer> | 2988 | <integer>0</integer> |
2575 | <integer>142</integer> | 2989 | <integer>142</integer> |
2576 | <integer>350</integer> | 2990 | <integer>350</integer> |
2577 | <integer>0</integer> | 2991 | <integer>0</integer> |
2578 | </array> | 2992 | </array> |
2579 | </map> | 2993 | </map> |
2580 | <key>FloaterLandRect5</key> | 2994 | <key>FloaterLandRect5</key> |
2581 | <map> | 2995 | <map> |
2582 | <key>Comment</key> | 2996 | <key>Comment</key> |
2583 | <string>Rectangle for About Land window</string> | 2997 | <string>Rectangle for About Land window</string> |
2584 | <key>Persist</key> | 2998 | <key>Persist</key> |
2585 | <integer>1</integer> | 2999 | <integer>1</integer> |
2586 | <key>Type</key> | 3000 | <key>Type</key> |
2587 | <string>Rect</string> | 3001 | <string>Rect</string> |
2588 | <key>Value</key> | 3002 | <key>Value</key> |
2589 | <array> | 3003 | <array> |
2590 | <integer>0</integer> | 3004 | <integer>0</integer> |
2591 | <integer>370</integer> | 3005 | <integer>370</integer> |
2592 | <integer>460</integer> | 3006 | <integer>460</integer> |
2593 | <integer>0</integer> | 3007 | <integer>0</integer> |
2594 | </array> | 3008 | </array> |
2595 | </map> | 3009 | </map> |
2596 | <key>FloaterLandmarkRect</key> | 3010 | <key>FloaterLandmarkRect</key> |
2597 | <map> | 3011 | <map> |
2598 | <key>Comment</key> | 3012 | <key>Comment</key> |
2599 | <string>Rectangle for landmark picker</string> | 3013 | <string>Rectangle for landmark picker</string> |
2600 | <key>Persist</key> | 3014 | <key>Persist</key> |
2601 | <integer>1</integer> | 3015 | <integer>1</integer> |
2602 | <key>Type</key> | 3016 | <key>Type</key> |
2603 | <string>Rect</string> | 3017 | <string>Rect</string> |
2604 | <key>Value</key> | 3018 | <key>Value</key> |
2605 | <array> | 3019 | <array> |
2606 | <integer>0</integer> | 3020 | <integer>0</integer> |
2607 | <integer>290</integer> | 3021 | <integer>290</integer> |
2608 | <integer>310</integer> | 3022 | <integer>310</integer> |
2609 | <integer>0</integer> | 3023 | <integer>0</integer> |
2610 | </array> | 3024 | </array> |
2611 | </map> | 3025 | </map> |
2612 | <key>FloaterMediaRect</key> | 3026 | <key>FloaterMediaRect</key> |
2613 | <map> | 3027 | <map> |
2614 | <key>Comment</key> | 3028 | <key>Comment</key> |
2615 | <string>Rectangle for media browser window</string> | 3029 | <string>Rectangle for media browser window</string> |
2616 | <key>Persist</key> | 3030 | <key>Persist</key> |
2617 | <integer>1</integer> | 3031 | <integer>1</integer> |
2618 | <key>Type</key> | 3032 | <key>Type</key> |
2619 | <string>Rect</string> | 3033 | <string>Rect</string> |
2620 | <key>Value</key> | 3034 | <key>Value</key> |
2621 | <array> | 3035 | <array> |
2622 | <integer>16</integer> | 3036 | <integer>16</integer> |
2623 | <integer>650</integer> | 3037 | <integer>650</integer> |
2624 | <integer>600</integer> | 3038 | <integer>600</integer> |
2625 | <integer>128</integer> | 3039 | <integer>128</integer> |
2626 | </array> | 3040 | </array> |
2627 | </map> | 3041 | </map> |
2628 | <key>FloaterMiniMapRect</key> | 3042 | <key>FloaterMiniMapRect</key> |
2629 | <map> | 3043 | <map> |
2630 | <key>Comment</key> | 3044 | <key>Comment</key> |
2631 | <string>Rectangle for world map</string> | 3045 | <string>Rectangle for world map</string> |
2632 | <key>Persist</key> | 3046 | <key>Persist</key> |
2633 | <integer>1</integer> | 3047 | <integer>1</integer> |
2634 | <key>Type</key> | 3048 | <key>Type</key> |
2635 | <string>Rect</string> | 3049 | <string>Rect</string> |
2636 | <key>Value</key> | 3050 | <key>Value</key> |
2637 | <array> | 3051 | <array> |
2638 | <integer>0</integer> | 3052 | <integer>0</integer> |
2639 | <integer>225</integer> | 3053 | <integer>225</integer> |
2640 | <integer>200</integer> | 3054 | <integer>200</integer> |
2641 | <integer>0</integer> | 3055 | <integer>0</integer> |
2642 | </array> | 3056 | </array> |
2643 | </map> | 3057 | </map> |
2644 | <key>FloaterMoveRect2</key> | 3058 | <key>FloaterMoveRect2</key> |
2645 | <map> | 3059 | <map> |
2646 | <key>Comment</key> | 3060 | <key>Comment</key> |
2647 | <string>Rectangle for avatar control window</string> | 3061 | <string>Rectangle for avatar control window</string> |
2648 | <key>Persist</key> | 3062 | <key>Persist</key> |
2649 | <integer>1</integer> | 3063 | <integer>1</integer> |
2650 | <key>Type</key> | 3064 | <key>Type</key> |
2651 | <string>Rect</string> | 3065 | <string>Rect</string> |
2652 | <key>Value</key> | 3066 | <key>Value</key> |
2653 | <array> | 3067 | <array> |
2654 | <integer>0</integer> | 3068 | <integer>0</integer> |
2655 | <integer>58</integer> | 3069 | <integer>58</integer> |
2656 | <integer>135</integer> | 3070 | <integer>135</integer> |
2657 | <integer>0</integer> | 3071 | <integer>0</integer> |
2658 | </array> | 3072 | </array> |
2659 | </map> | 3073 | </map> |
2660 | <key>FloaterMuteRect3</key> | 3074 | <key>FloaterMuteRect3</key> |
2661 | <map> | 3075 | <map> |
2662 | <key>Comment</key> | 3076 | <key>Comment</key> |
2663 | <string>Rectangle for mute window</string> | 3077 | <string>Rectangle for mute window</string> |
2664 | <key>Persist</key> | 3078 | <key>Persist</key> |
2665 | <integer>1</integer> | 3079 | <integer>1</integer> |
2666 | <key>Type</key> | 3080 | <key>Type</key> |
2667 | <string>Rect</string> | 3081 | <string>Rect</string> |
2668 | <key>Value</key> | 3082 | <key>Value</key> |
2669 | <array> | 3083 | <array> |
2670 | <integer>0</integer> | 3084 | <integer>0</integer> |
2671 | <integer>300</integer> | 3085 | <integer>300</integer> |
2672 | <integer>300</integer> | 3086 | <integer>300</integer> |
2673 | <integer>0</integer> | 3087 | <integer>0</integer> |
2674 | </array> | 3088 | </array> |
2675 | </map> | 3089 | </map> |
2676 | <key>FloaterOpenObjectRect</key> | 3090 | <key>FloaterOpenObjectRect</key> |
2677 | <map> | 3091 | <map> |
2678 | <key>Comment</key> | 3092 | <key>Comment</key> |
2679 | <string>Rectangle for Open Object window</string> | 3093 | <string>Rectangle for Open Object window</string> |
2680 | <key>Persist</key> | 3094 | <key>Persist</key> |
2681 | <integer>1</integer> | 3095 | <integer>1</integer> |
2682 | <key>Type</key> | 3096 | <key>Type</key> |
2683 | <string>Rect</string> | 3097 | <string>Rect</string> |
2684 | <key>Value</key> | 3098 | <key>Value</key> |
2685 | <array> | 3099 | <array> |
2686 | <integer>0</integer> | 3100 | <integer>0</integer> |
2687 | <integer>350</integer> | 3101 | <integer>350</integer> |
2688 | <integer>300</integer> | 3102 | <integer>300</integer> |
2689 | <integer>0</integer> | 3103 | <integer>0</integer> |
2690 | </array> | 3104 | </array> |
2691 | </map> | 3105 | </map> |
2692 | <key>FloaterPayRectB</key> | 3106 | <key>FloaterPayRectB</key> |
2693 | <map> | 3107 | <map> |
2694 | <key>Comment</key> | 3108 | <key>Comment</key> |
2695 | <string>Rectangle for pay window</string> | 3109 | <string>Rectangle for pay window</string> |
2696 | <key>Persist</key> | 3110 | <key>Persist</key> |
2697 | <integer>1</integer> | 3111 | <integer>1</integer> |
2698 | <key>Type</key> | 3112 | <key>Type</key> |
2699 | <string>Rect</string> | 3113 | <string>Rect</string> |
2700 | <key>Value</key> | 3114 | <key>Value</key> |
2701 | <array> | 3115 | <array> |
2702 | <integer>0</integer> | 3116 | <integer>0</integer> |
2703 | <integer>150</integer> | 3117 | <integer>150</integer> |
2704 | <integer>400</integer> | 3118 | <integer>400</integer> |
2705 | <integer>0</integer> | 3119 | <integer>0</integer> |
2706 | </array> | 3120 | </array> |
2707 | </map> | 3121 | </map> |
2708 | <key>FloaterRegionInfo</key> | 3122 | <key>FloaterRegionInfo</key> |
2709 | <map> | 3123 | <map> |
2710 | <key>Comment</key> | 3124 | <key>Comment</key> |
2711 | <string>Rectangle for region info window</string> | 3125 | <string>Rectangle for region info window</string> |
2712 | <key>Persist</key> | 3126 | <key>Persist</key> |
2713 | <integer>1</integer> | 3127 | <integer>1</integer> |
2714 | <key>Type</key> | 3128 | <key>Type</key> |
2715 | <string>Rect</string> | 3129 | <string>Rect</string> |
2716 | <key>Value</key> | 3130 | <key>Value</key> |
2717 | <array> | 3131 | <array> |
2718 | <integer>0</integer> | 3132 | <integer>0</integer> |
2719 | <integer>512</integer> | 3133 | <integer>512</integer> |
2720 | <integer>480</integer> | 3134 | <integer>480</integer> |
2721 | <integer>0</integer> | 3135 | <integer>0</integer> |
2722 | </array> | 3136 | </array> |
2723 | </map> | 3137 | </map> |
2724 | <key>FloaterScriptDebugRect</key> | 3138 | <key>FloaterScriptDebugRect</key> |
2725 | <map> | 3139 | <map> |
2726 | <key>Comment</key> | 3140 | <key>Comment</key> |
2727 | <string>Rectangle for Script Error/Debug window</string> | 3141 | <string>Rectangle for Script Error/Debug window</string> |
2728 | <key>Persist</key> | 3142 | <key>Persist</key> |
2729 | <integer>1</integer> | 3143 | <integer>1</integer> |
2730 | <key>Type</key> | 3144 | <key>Type</key> |
2731 | <string>Rect</string> | 3145 | <string>Rect</string> |
2732 | <key>Value</key> | 3146 | <key>Value</key> |
2733 | <array> | 3147 | <array> |
2734 | <integer>0</integer> | 3148 | <integer>0</integer> |
2735 | <integer>130</integer> | 3149 | <integer>130</integer> |
2736 | <integer>450</integer> | 3150 | <integer>450</integer> |
2737 | <integer>0</integer> | 3151 | <integer>0</integer> |
2738 | </array> | 3152 | </array> |
2739 | </map> | 3153 | </map> |
2740 | <key>FloaterSnapshotRect</key> | 3154 | <key>FloaterSnapshotRect</key> |
2741 | <map> | 3155 | <map> |
2742 | <key>Comment</key> | 3156 | <key>Comment</key> |
2743 | <string>Rectangle for snapshot window</string> | 3157 | <string>Rectangle for snapshot window</string> |
2744 | <key>Persist</key> | 3158 | <key>Persist</key> |
2745 | <integer>1</integer> | 3159 | <integer>1</integer> |
2746 | <key>Type</key> | 3160 | <key>Type</key> |
2747 | <string>Rect</string> | 3161 | <string>Rect</string> |
2748 | <key>Value</key> | 3162 | <key>Value</key> |
2749 | <array> | 3163 | <array> |
2750 | <integer>0</integer> | 3164 | <integer>0</integer> |
2751 | <integer>200</integer> | 3165 | <integer>200</integer> |
2752 | <integer>200</integer> | 3166 | <integer>200</integer> |
2753 | <integer>400</integer> | 3167 | <integer>400</integer> |
2754 | </array> | 3168 | </array> |
2755 | </map> | 3169 | </map> |
2756 | <key>FloaterViewBottom</key> | 3170 | <key>FloaterViewBottom</key> |
2757 | <map> | 3171 | <map> |
2758 | <key>Comment</key> | 3172 | <key>Comment</key> |
2759 | <string>[DO NOT MODIFY] Controls layout of floating windows within SL window</string> | 3173 | <string>[DO NOT MODIFY] Controls layout of floating windows within SL window</string> |
2760 | <key>Persist</key> | 3174 | <key>Persist</key> |
2761 | <integer>1</integer> | 3175 | <integer>1</integer> |
2762 | <key>Type</key> | 3176 | <key>Type</key> |
2763 | <string>S32</string> | 3177 | <string>S32</string> |
2764 | <key>Value</key> | 3178 | <key>Value</key> |
2765 | <integer>-1</integer> | 3179 | <integer>-1</integer> |
2766 | </map> | 3180 | </map> |
2767 | <key>FloaterWorldMapRect2</key> | 3181 | <key>FloaterWorldMapRect2</key> |
2768 | <map> | 3182 | <map> |
2769 | <key>Comment</key> | 3183 | <key>Comment</key> |
2770 | <string>Rectangle for world map window</string> | 3184 | <string>Rectangle for world map window</string> |
2771 | <key>Persist</key> | 3185 | <key>Persist</key> |
2772 | <integer>1</integer> | 3186 | <integer>1</integer> |
2773 | <key>Type</key> | 3187 | <key>Type</key> |
2774 | <string>Rect</string> | 3188 | <string>Rect</string> |
2775 | <key>Value</key> | 3189 | <key>Value</key> |
2776 | <array> | 3190 | <array> |
2777 | <integer>0</integer> | 3191 | <integer>0</integer> |
2778 | <integer>0</integer> | 3192 | <integer>0</integer> |
2779 | <integer>0</integer> | 3193 | <integer>0</integer> |
2780 | <integer>0</integer> | 3194 | <integer>0</integer> |
2781 | </array> | 3195 | </array> |
2782 | </map> | 3196 | </map> |
2783 | <key>FlyBtnState</key> | 3197 | <key>FlyBtnState</key> |
2784 | <map> | 3198 | <map> |
2785 | <key>Comment</key> | 3199 | <key>Comment</key> |
2786 | <string /> | 3200 | <string /> |
2787 | <key>Persist</key> | 3201 | <key>Persist</key> |
2788 | <integer>0</integer> | 3202 | <integer>0</integer> |
2789 | <key>Type</key> | 3203 | <key>Type</key> |
2790 | <string>Boolean</string> | 3204 | <string>Boolean</string> |
2791 | <key>Value</key> | 3205 | <key>Value</key> |
2792 | <integer>0</integer> | 3206 | <integer>0</integer> |
2793 | </map> | 3207 | </map> |
2794 | <key>FlycamAbsolute</key> | 3208 | <key>FlycamAbsolute</key> |
2795 | <map> | 3209 | <map> |
2796 | <key>Comment</key> | 3210 | <key>Comment</key> |
2797 | <string>Treat Flycam values as absolute positions (not deltas).</string> | 3211 | <string>Treat Flycam values as absolute positions (not deltas).</string> |
2798 | <key>Persist</key> | 3212 | <key>Persist</key> |
2799 | <integer>1</integer> | 3213 | <integer>1</integer> |
2800 | <key>Type</key> | 3214 | <key>Type</key> |
2801 | <string>Boolean</string> | 3215 | <string>Boolean</string> |
2802 | <key>Value</key> | 3216 | <key>Value</key> |
2803 | <integer>0</integer> | 3217 | <integer>0</integer> |
2804 | </map> | 3218 | </map> |
2805 | <key>AutoLeveling</key> | ||
2806 | <map> | ||
2807 | <key>Comment</key> | ||
2808 | <string>Keep Flycam level.</string> | ||
2809 | <key>Persist</key> | ||
2810 | <integer>1</integer> | ||
2811 | <key>Type</key> | ||
2812 | <string>Boolean</string> | ||
2813 | <key>Value</key> | ||
2814 | <integer>1</integer> | ||
2815 | </map> | ||
2816 | <key>Cursor3D</key> | ||
2817 | <map> | ||
2818 | <key>Comment</key> | ||
2819 | <string>Tread Joystick values as absolute positions (not deltas).</string> | ||
2820 | <key>Persist</key> | ||
2821 | <integer>1</integer> | ||
2822 | <key>Type</key> | ||
2823 | <string>Boolean</string> | ||
2824 | <key>Value</key> | ||
2825 | <integer>1</integer> | ||
2826 | </map> | ||
2827 | <key>ZoomDirect</key> | ||
2828 | <map> | ||
2829 | <key>Comment</key> | ||
2830 | <string>Map Joystick zoom axis directly to camera zoom.</string> | ||
2831 | <key>Persist</key> | ||
2832 | <integer>1</integer> | ||
2833 | <key>Type</key> | ||
2834 | <string>Boolean</string> | ||
2835 | <key>Value</key> | ||
2836 | <integer>0</integer> | ||
2837 | </map> | ||
2838 | <key>JoystickInitialized</key> | ||
2839 | <map> | ||
2840 | <key>Comment</key> | ||
2841 | <string>Whether or not a joystick has been detected and initiailized.</string> | ||
2842 | <key>Persist</key> | ||
2843 | <integer>0</integer> | ||
2844 | <key>Type</key> | ||
2845 | <string>String</string> | ||
2846 | <key>Value</key> | ||
2847 | <string></string> | ||
2848 | </map> | ||
2849 | <key>JoystickEnabled</key> | ||
2850 | <map> | ||
2851 | <key>Comment</key> | ||
2852 | <string>Enables Joystick Input.</string> | ||
2853 | <key>Persist</key> | ||
2854 | <integer>1</integer> | ||
2855 | <key>Type</key> | ||
2856 | <string>Boolean</string> | ||
2857 | <key>Value</key> | ||
2858 | <integer>0</integer> | ||
2859 | </map> | ||
2860 | <key>JoystickFlycamEnabled</key> | ||
2861 | <map> | ||
2862 | <key>Comment</key> | ||
2863 | <string>Enables the Joystick to control the flycam.</string> | ||
2864 | <key>Persist</key> | ||
2865 | <integer>1</integer> | ||
2866 | <key>Type</key> | ||
2867 | <string>Boolean</string> | ||
2868 | <key>Value</key> | ||
2869 | <string>1</string> | ||
2870 | </map> | ||
2871 | <key>JoystickAvatarEnabled</key> | ||
2872 | <map> | ||
2873 | <key>Comment</key> | ||
2874 | <string>Enables the Joystick to control Avatar movmement.</string> | ||
2875 | <key>Persist</key> | ||
2876 | <integer>1</integer> | ||
2877 | <key>Type</key> | ||
2878 | <string>Boolean</string> | ||
2879 | <key>Value</key> | ||
2880 | <string>1</string> | ||
2881 | </map> | ||
2882 | <key>JoystickBuildEnabled</key> | ||
2883 | <map> | ||
2884 | <key>Comment</key> | ||
2885 | <string>Enables the Joystick to move edited objects.</string> | ||
2886 | <key>Persist</key> | ||
2887 | <integer>1</integer> | ||
2888 | <key>Type</key> | ||
2889 | <string>Boolean</string> | ||
2890 | <key>Value</key> | ||
2891 | <string>1</string> | ||
2892 | </map> | ||
2893 | <key>JoystickAxis0</key> | ||
2894 | <map> | ||
2895 | <key>Comment</key> | ||
2896 | <string>Flycam hardware axis mapping for internal axis 0 ([0, 5]).</string> | ||
2897 | <key>Persist</key> | ||
2898 | <integer>1</integer> | ||
2899 | <key>Type</key> | ||
2900 | <string>S32</string> | ||
2901 | <key>Value</key> | ||
2902 | <integer>1</integer> | ||
2903 | </map> | ||
2904 | <key>JoystickAxis1</key> | ||
2905 | <map> | ||
2906 | <key>Comment</key> | ||
2907 | <string>Flycam hardware axis mapping for internal axis 1 ([0, 5]).</string> | ||
2908 | <key>Persist</key> | ||
2909 | <integer>1</integer> | ||
2910 | <key>Type</key> | ||
2911 | <string>S32</string> | ||
2912 | <key>Value</key> | ||
2913 | <integer>0</integer> | ||
2914 | </map> | ||
2915 | <key>JoystickAxis2</key> | ||
2916 | <map> | ||
2917 | <key>Comment</key> | ||
2918 | <string>Flycam hardware axis mapping for internal axis 2 ([0, 5]).</string> | ||
2919 | <key>Persist</key> | ||
2920 | <integer>1</integer> | ||
2921 | <key>Type</key> | ||
2922 | <string>S32</string> | ||
2923 | <key>Value</key> | ||
2924 | <integer>2</integer> | ||
2925 | </map> | ||
2926 | <key>JoystickAxis3</key> | ||
2927 | <map> | ||
2928 | <key>Comment</key> | ||
2929 | <string>Flycam hardware axis mapping for internal axis 3 ([0, 5]).</string> | ||
2930 | <key>Persist</key> | ||
2931 | <integer>1</integer> | ||
2932 | <key>Type</key> | ||
2933 | <string>S32</string> | ||
2934 | <key>Value</key> | ||
2935 | <integer>4</integer> | ||
2936 | </map> | ||
2937 | <key>JoystickAxis4</key> | ||
2938 | <map> | ||
2939 | <key>Comment</key> | ||
2940 | <string>Flycam hardware axis mapping for internal axis 4 ([0, 5]).</string> | ||
2941 | <key>Persist</key> | ||
2942 | <integer>1</integer> | ||
2943 | <key>Type</key> | ||
2944 | <string>S32</string> | ||
2945 | <key>Value</key> | ||
2946 | <integer>3</integer> | ||
2947 | </map> | ||
2948 | <key>JoystickAxis5</key> | ||
2949 | <map> | ||
2950 | <key>Comment</key> | ||
2951 | <string>Flycam hardware axis mapping for internal axis 5 ([0, 5]).</string> | ||
2952 | <key>Persist</key> | ||
2953 | <integer>1</integer> | ||
2954 | <key>Type</key> | ||
2955 | <string>S32</string> | ||
2956 | <key>Value</key> | ||
2957 | <integer>5</integer> | ||
2958 | </map> | ||
2959 | <key>JoystickAxis6</key> | ||
2960 | <map> | ||
2961 | <key>Comment</key> | ||
2962 | <string>Flycam hardware axis mapping for internal axis 6 ([0, 5]).</string> | ||
2963 | <key>Persist</key> | ||
2964 | <integer>1</integer> | ||
2965 | <key>Type</key> | ||
2966 | <string>S32</string> | ||
2967 | <key>Value</key> | ||
2968 | <integer>-1</integer> | ||
2969 | </map> | ||
2970 | <key>FlycamAxisDeadZone0</key> | 3219 | <key>FlycamAxisDeadZone0</key> |
2971 | <map> | 3220 | <map> |
2972 | <key>Comment</key> | 3221 | <key>Comment</key> |
2973 | <string>Flycam axis 0 dead zone.</string> | 3222 | <string>Flycam axis 0 dead zone.</string> |
2974 | <key>Persist</key> | 3223 | <key>Persist</key> |
2975 | <integer>1</integer> | 3224 | <integer>1</integer> |
2976 | <key>Type</key> | 3225 | <key>Type</key> |
2977 | <string>F32</string> | 3226 | <string>F32</string> |
2978 | <key>Value</key> | 3227 | <key>Value</key> |
2979 | <real>0.1</real> | 3228 | <real>0.1</real> |
2980 | </map> | 3229 | </map> |
2981 | <key>FlycamAxisDeadZone1</key> | 3230 | <key>FlycamAxisDeadZone1</key> |
2982 | <map> | 3231 | <map> |
2983 | <key>Comment</key> | 3232 | <key>Comment</key> |
2984 | <string>Flycam axis 1 dead zone.</string> | 3233 | <string>Flycam axis 1 dead zone.</string> |
2985 | <key>Persist</key> | 3234 | <key>Persist</key> |
2986 | <integer>1</integer> | 3235 | <integer>1</integer> |
2987 | <key>Type</key> | 3236 | <key>Type</key> |
2988 | <string>F32</string> | 3237 | <string>F32</string> |
2989 | <key>Value</key> | 3238 | <key>Value</key> |
2990 | <real>0.1</real> | 3239 | <real>0.1</real> |
2991 | </map> | 3240 | </map> |
2992 | <key>FlycamAxisDeadZone2</key> | 3241 | <key>FlycamAxisDeadZone2</key> |
2993 | <map> | 3242 | <map> |
2994 | <key>Comment</key> | 3243 | <key>Comment</key> |
2995 | <string>Flycam axis 2 dead zone.</string> | 3244 | <string>Flycam axis 2 dead zone.</string> |
2996 | <key>Persist</key> | 3245 | <key>Persist</key> |
2997 | <integer>1</integer> | 3246 | <integer>1</integer> |
2998 | <key>Type</key> | 3247 | <key>Type</key> |
2999 | <string>F32</string> | 3248 | <string>F32</string> |
3000 | <key>Value</key> | 3249 | <key>Value</key> |
3001 | <real>0.1</real> | 3250 | <real>0.1</real> |
3002 | </map> | 3251 | </map> |
3003 | <key>FlycamAxisDeadZone3</key> | 3252 | <key>FlycamAxisDeadZone3</key> |
3004 | <map> | 3253 | <map> |
3005 | <key>Comment</key> | 3254 | <key>Comment</key> |
3006 | <string>Flycam axis 3 dead zone.</string> | 3255 | <string>Flycam axis 3 dead zone.</string> |
3007 | <key>Persist</key> | 3256 | <key>Persist</key> |
3008 | <integer>1</integer> | 3257 | <integer>1</integer> |
3009 | <key>Type</key> | 3258 | <key>Type</key> |
3010 | <string>F32</string> | 3259 | <string>F32</string> |
3011 | <key>Value</key> | 3260 | <key>Value</key> |
3012 | <real>0.1</real> | 3261 | <real>0.1</real> |
3013 | </map> | 3262 | </map> |
3014 | <key>FlycamAxisDeadZone4</key> | 3263 | <key>FlycamAxisDeadZone4</key> |
3015 | <map> | 3264 | <map> |
3016 | <key>Comment</key> | 3265 | <key>Comment</key> |
3017 | <string>Flycam axis 4 dead zone.</string> | 3266 | <string>Flycam axis 4 dead zone.</string> |
3018 | <key>Persist</key> | 3267 | <key>Persist</key> |
3019 | <integer>1</integer> | 3268 | <integer>1</integer> |
3020 | <key>Type</key> | 3269 | <key>Type</key> |
3021 | <string>F32</string> | 3270 | <string>F32</string> |
3022 | <key>Value</key> | 3271 | <key>Value</key> |
3023 | <real>0.1</real> | 3272 | <real>0.1</real> |
3024 | </map> | 3273 | </map> |
3025 | <key>FlycamAxisDeadZone5</key> | 3274 | <key>FlycamAxisDeadZone5</key> |
3026 | <map> | 3275 | <map> |
3027 | <key>Comment</key> | 3276 | <key>Comment</key> |
3028 | <string>Flycam axis 5 dead zone.</string> | 3277 | <string>Flycam axis 5 dead zone.</string> |
3029 | <key>Persist</key> | 3278 | <key>Persist</key> |
3030 | <integer>1</integer> | 3279 | <integer>1</integer> |
3031 | <key>Type</key> | 3280 | <key>Type</key> |
3032 | <string>F32</string> | 3281 | <string>F32</string> |
3033 | <key>Value</key> | 3282 | <key>Value</key> |
3034 | <real>0.1</real> | 3283 | <real>0.1</real> |
3035 | </map> | 3284 | </map> |
3036 | <key>FlycamAxisDeadZone6</key> | 3285 | <key>FlycamAxisDeadZone6</key> |
3037 | <map> | 3286 | <map> |
3038 | <key>Comment</key> | 3287 | <key>Comment</key> |
3039 | <string>Flycam axis 6 dead zone.</string> | 3288 | <string>Flycam axis 6 dead zone.</string> |
3040 | <key>Persist</key> | 3289 | <key>Persist</key> |
3041 | <integer>1</integer> | 3290 | <integer>1</integer> |
3042 | <key>Type</key> | 3291 | <key>Type</key> |
3043 | <string>F32</string> | 3292 | <string>F32</string> |
3044 | <key>Value</key> | 3293 | <key>Value</key> |
3045 | <real>0.1</real> | 3294 | <real>0.1</real> |
3046 | </map> | 3295 | </map> |
3047 | <key>FlycamAxisScale0</key> | 3296 | <key>FlycamAxisScale0</key> |
3048 | <map> | 3297 | <map> |
3049 | <key>Comment</key> | 3298 | <key>Comment</key> |
3050 | <string>Flycam axis 0 scaler.</string> | 3299 | <string>Flycam axis 0 scaler.</string> |
3051 | <key>Persist</key> | 3300 | <key>Persist</key> |
3052 | <integer>1</integer> | 3301 | <integer>1</integer> |
3053 | <key>Type</key> | 3302 | <key>Type</key> |
3054 | <string>F32</string> | 3303 | <string>F32</string> |
3055 | <key>Value</key> | 3304 | <key>Value</key> |
3056 | <real>1</real> | 3305 | <real>1.0</real> |
3057 | </map> | 3306 | </map> |
3058 | <key>FlycamAxisScale1</key> | 3307 | <key>FlycamAxisScale1</key> |
3059 | <map> | 3308 | <map> |
3060 | <key>Comment</key> | 3309 | <key>Comment</key> |
3061 | <string>Flycam axis 1 scaler.</string> | 3310 | <string>Flycam axis 1 scaler.</string> |
3062 | <key>Persist</key> | 3311 | <key>Persist</key> |
3063 | <integer>1</integer> | 3312 | <integer>1</integer> |
3064 | <key>Type</key> | 3313 | <key>Type</key> |
3065 | <string>F32</string> | 3314 | <string>F32</string> |
3066 | <key>Value</key> | 3315 | <key>Value</key> |
3067 | <real>1</real> | 3316 | <real>1.0</real> |
3068 | </map> | 3317 | </map> |
3069 | <key>FlycamAxisScale2</key> | 3318 | <key>FlycamAxisScale2</key> |
3070 | <map> | 3319 | <map> |
3071 | <key>Comment</key> | 3320 | <key>Comment</key> |
3072 | <string>Flycam axis 2 scaler.</string> | 3321 | <string>Flycam axis 2 scaler.</string> |
3073 | <key>Persist</key> | 3322 | <key>Persist</key> |
3074 | <integer>1</integer> | 3323 | <integer>1</integer> |
3075 | <key>Type</key> | 3324 | <key>Type</key> |
3076 | <string>F32</string> | 3325 | <string>F32</string> |
3077 | <key>Value</key> | 3326 | <key>Value</key> |
3078 | <real>1</real> | 3327 | <real>1.0</real> |
3079 | </map> | 3328 | </map> |
3080 | <key>FlycamAxisScale3</key> | 3329 | <key>FlycamAxisScale3</key> |
3081 | <map> | 3330 | <map> |
3082 | <key>Comment</key> | 3331 | <key>Comment</key> |
3083 | <string>Flycam axis 3 scaler.</string> | 3332 | <string>Flycam axis 3 scaler.</string> |
3084 | <key>Persist</key> | 3333 | <key>Persist</key> |
3085 | <integer>1</integer> | 3334 | <integer>1</integer> |
3086 | <key>Type</key> | 3335 | <key>Type</key> |
3087 | <string>F32</string> | 3336 | <string>F32</string> |
3088 | <key>Value</key> | 3337 | <key>Value</key> |
3089 | <real>1</real> | 3338 | <real>1.0</real> |
3090 | </map> | 3339 | </map> |
3091 | <key>FlycamAxisScale4</key> | 3340 | <key>FlycamAxisScale4</key> |
3092 | <map> | 3341 | <map> |
3093 | <key>Comment</key> | 3342 | <key>Comment</key> |
3094 | <string>Flycam axis 4 scaler.</string> | 3343 | <string>Flycam axis 4 scaler.</string> |
3095 | <key>Persist</key> | 3344 | <key>Persist</key> |
3096 | <integer>1</integer> | 3345 | <integer>1</integer> |
3097 | <key>Type</key> | 3346 | <key>Type</key> |
3098 | <string>F32</string> | 3347 | <string>F32</string> |
3099 | <key>Value</key> | 3348 | <key>Value</key> |
3100 | <real>1</real> | 3349 | <real>1.0</real> |
3101 | </map> | 3350 | </map> |
3102 | <key>FlycamAxisScale5</key> | 3351 | <key>FlycamAxisScale5</key> |
3103 | <map> | 3352 | <map> |
3104 | <key>Comment</key> | 3353 | <key>Comment</key> |
3105 | <string>Flycam axis 5 scaler.</string> | 3354 | <string>Flycam axis 5 scaler.</string> |
3106 | <key>Persist</key> | 3355 | <key>Persist</key> |
3107 | <integer>1</integer> | 3356 | <integer>1</integer> |
3108 | <key>Type</key> | 3357 | <key>Type</key> |
3109 | <string>F32</string> | 3358 | <string>F32</string> |
3110 | <key>Value</key> | 3359 | <key>Value</key> |
3111 | <real>1</real> | 3360 | <real>1.0</real> |
3112 | </map> | 3361 | </map> |
3113 | <key>FlycamAxisScale6</key> | 3362 | <key>FlycamAxisScale6</key> |
3114 | <map> | 3363 | <map> |
3115 | <key>Comment</key> | 3364 | <key>Comment</key> |
3116 | <string>Flycam axis 6 scaler.</string> | 3365 | <string>Flycam axis 6 scaler.</string> |
3117 | <key>Persist</key> | 3366 | <key>Persist</key> |
3118 | <integer>1</integer> | 3367 | <integer>1</integer> |
3119 | <key>Type</key> | 3368 | <key>Type</key> |
3120 | <string>F32</string> | 3369 | <string>F32</string> |
3121 | <key>Value</key> | 3370 | <key>Value</key> |
3122 | <real>1</real> | 3371 | <real>1.0</real> |
3123 | </map> | 3372 | </map> |
3124 | <key>FlycamFeathering</key> | 3373 | <key>FlycamFeathering</key> |
3125 | <map> | 3374 | <map> |
3126 | <key>Comment</key> | 3375 | <key>Comment</key> |
3127 | <string>Flycam feathering (less is softer)</string> | 3376 | <string>Flycam feathering (less is softer)</string> |
3128 | <key>Persist</key> | 3377 | <key>Persist</key> |
3129 | <integer>1</integer> | 3378 | <integer>1</integer> |
3130 | <key>Type</key> | 3379 | <key>Type</key> |
3131 | <string>F32</string> | 3380 | <string>F32</string> |
3132 | <key>Value</key> | 3381 | <key>Value</key> |
3133 | <real>16</real> | 3382 | <real>16.0</real> |
3134 | </map> | 3383 | </map> |
3135 | <key>FlycamZoomDirect</key> | 3384 | <key>FlycamZoomDirect</key> |
3136 | <map> | 3385 | <map> |
3137 | <key>Comment</key> | 3386 | <key>Comment</key> |
3138 | <string>Map flycam zoom axis directly to camera zoom.</string> | 3387 | <string>Map flycam zoom axis directly to camera zoom.</string> |
3139 | <key>Persist</key> | 3388 | <key>Persist</key> |
3140 | <integer>1</integer> | 3389 | <integer>1</integer> |
3141 | <key>Type</key> | 3390 | <key>Type</key> |
3142 | <string>Boolean</string> | 3391 | <string>Boolean</string> |
3143 | <key>Value</key> | 3392 | <key>Value</key> |
3144 | <integer>0</integer> | 3393 | <integer>0</integer> |
3145 | </map> | 3394 | </map> |
3146 | <key>FlyingAtExit</key> | 3395 | <key>FlyingAtExit</key> |
3147 | <map> | 3396 | <map> |
3148 | <key>Comment</key> | 3397 | <key>Comment</key> |
3149 | <string>Was flying when last logged out, so fly when logging in</string> | 3398 | <string>Was flying when last logged out, so fly when logging in</string> |
3150 | <key>Persist</key> | 3399 | <key>Persist</key> |
3151 | <integer>1</integer> | 3400 | <integer>1</integer> |
3152 | <key>Type</key> | 3401 | <key>Type</key> |
3153 | <string>Boolean</string> | 3402 | <string>Boolean</string> |
3154 | <key>Value</key> | 3403 | <key>Value</key> |
3155 | <integer>0</integer> | 3404 | <integer>0</integer> |
3156 | </map> | 3405 | </map> |
3157 | <key>FocusOffsetDefault</key> | 3406 | <key>FocusOffsetDefault</key> |
3158 | <map> | 3407 | <map> |
3159 | <key>Comment</key> | 3408 | <key>Comment</key> |
3160 | <string>Default focus point offset relative to avatar (x-axis is forward)</string> | 3409 | <string>Default focus point offset relative to avatar (x-axis is forward)</string> |
3161 | <key>Persist</key> | 3410 | <key>Persist</key> |
3162 | <integer>1</integer> | 3411 | <integer>1</integer> |
3163 | <key>Type</key> | 3412 | <key>Type</key> |
3164 | <string>Vector3</string> | 3413 | <string>Vector3</string> |
3165 | <key>Value</key> | 3414 | <key>Value</key> |
3166 | <array> | 3415 | <array> |
3167 | <real>1</real> | 3416 | <real>1.0</real> |
3168 | <real>0</real> | 3417 | <real>0.0</real> |
3169 | <real>1</real> | 3418 | <real>1.0</real> |
3170 | </array> | 3419 | </array> |
3171 | </map> | 3420 | </map> |
3172 | <key>FocusPosOnLogout</key> | 3421 | <key>FocusPosOnLogout</key> |
3173 | <map> | 3422 | <map> |
3174 | <key>Comment</key> | 3423 | <key>Comment</key> |
3175 | <string>Camera focus point when last logged out (global coordinates)</string> | 3424 | <string>Camera focus point when last logged out (global coordinates)</string> |
3176 | <key>Persist</key> | 3425 | <key>Persist</key> |
3177 | <integer>1</integer> | 3426 | <integer>1</integer> |
3178 | <key>Type</key> | 3427 | <key>Type</key> |
3179 | <string>Vector3D</string> | 3428 | <string>Vector3D</string> |
3180 | <key>Value</key> | 3429 | <key>Value</key> |
3181 | <array> | 3430 | <array> |
3182 | <real>0</real> | 3431 | <real>0.0</real> |
3183 | <real>0</real> | 3432 | <real>0.0</real> |
3184 | <real>0</real> | 3433 | <real>0.0</real> |
3185 | </array> | 3434 | </array> |
3186 | </map> | 3435 | </map> |
3187 | <key>FolderAutoOpenDelay</key> | 3436 | <key>FolderAutoOpenDelay</key> |
3188 | <map> | 3437 | <map> |
3189 | <key>Comment</key> | 3438 | <key>Comment</key> |
3190 | <string>Seconds before automatically expanding the folder under the mouse when performing inventory drag and drop</string> | 3439 | <string>Seconds before automatically expanding the folder under the mouse when performing inventory drag and drop</string> |
3191 | <key>Persist</key> | 3440 | <key>Persist</key> |
3192 | <integer>1</integer> | 3441 | <integer>1</integer> |
3193 | <key>Type</key> | 3442 | <key>Type</key> |
3194 | <string>F32</string> | 3443 | <string>F32</string> |
3195 | <key>Value</key> | 3444 | <key>Value</key> |
3196 | <real>0.75</real> | 3445 | <real>0.75</real> |
3197 | </map> | 3446 | </map> |
3198 | <key>FolderLoadingMessageWaitTime</key> | 3447 | <key>FolderLoadingMessageWaitTime</key> |
3199 | <map> | 3448 | <map> |
3200 | <key>Comment</key> | 3449 | <key>Comment</key> |
3201 | <string>Seconds to wait before showing the LOADING... text in folder views</string> | 3450 | <string>Seconds to wait before showing the LOADING... text in folder views</string> |
3202 | <key>Persist</key> | 3451 | <key>Persist</key> |
3203 | <integer>1</integer> | 3452 | <integer>1</integer> |
3204 | <key>Type</key> | 3453 | <key>Type</key> |
3205 | <string>F32</string> | 3454 | <string>F32</string> |
3206 | <key>Value</key> | 3455 | <key>Value</key> |
3207 | <real>0.5</real> | 3456 | <real>0.5</real> |
3208 | </map> | 3457 | </map> |
3209 | <key>FontMonospace</key> | 3458 | <key>FontMonospace</key> |
3210 | <map> | 3459 | <map> |
3211 | <key>Comment</key> | 3460 | <key>Comment</key> |
3212 | <string>Name of monospace font (Truetype file name)</string> | 3461 | <string>Name of monospace font (Truetype file name)</string> |
3213 | <key>Persist</key> | 3462 | <key>Persist</key> |
3214 | <integer>1</integer> | 3463 | <integer>1</integer> |
3215 | <key>Type</key> | 3464 | <key>Type</key> |
3216 | <string>String</string> | 3465 | <string>String</string> |
3217 | <key>Value</key> | 3466 | <key>Value</key> |
3218 | <string>profontwindows.ttf</string> | 3467 | <string>profontwindows.ttf</string> |
3219 | </map> | 3468 | </map> |
3220 | <key>FontSansSerif</key> | 3469 | <key>FontSansSerif</key> |
3221 | <map> | 3470 | <map> |
3222 | <key>Comment</key> | 3471 | <key>Comment</key> |
3223 | <string>Name of san-serif font (Truetype file name)</string> | 3472 | <string>Name of san-serif font (Truetype file name)</string> |
3224 | <key>Persist</key> | 3473 | <key>Persist</key> |
3225 | <integer>1</integer> | 3474 | <integer>1</integer> |
3226 | <key>Type</key> | 3475 | <key>Type</key> |
3227 | <string>String</string> | 3476 | <string>String</string> |
3228 | <key>Value</key> | 3477 | <key>Value</key> |
3229 | <string>MtBkLfRg.ttf</string> | 3478 | <string>MtBkLfRg.ttf</string> |
3230 | </map> | 3479 | </map> |
3231 | <key>FontSansSerifBold</key> | 3480 | <key>FontSansSerifBold</key> |
3232 | <map> | 3481 | <map> |
3233 | <key>Comment</key> | 3482 | <key>Comment</key> |
3234 | <string>Name of bold font (Truetype file name)</string> | 3483 | <string>Name of bold font (Truetype file name)</string> |
3235 | <key>Persist</key> | 3484 | <key>Persist</key> |
3236 | <integer>1</integer> | 3485 | <integer>1</integer> |
3237 | <key>Type</key> | 3486 | <key>Type</key> |
3238 | <string>String</string> | 3487 | <string>String</string> |
3239 | <key>Value</key> | 3488 | <key>Value</key> |
3240 | <string>MtBdLfRg.ttf</string> | 3489 | <string>MtBdLfRg.ttf</string> |
3241 | </map> | 3490 | </map> |
3242 | <key>FontSansSerifFallback</key> | 3491 | <key>FontSansSerifFallback</key> |
3243 | <map> | 3492 | <map> |
3244 | <key>Comment</key> | 3493 | <key>Comment</key> |
3245 | <string>Name of san-serif font (Truetype file name)</string> | 3494 | <string>Name of san-serif font (Truetype file name)</string> |
3246 | <key>Persist</key> | 3495 | <key>Persist</key> |
3247 | <integer>1</integer> | 3496 | <integer>1</integer> |
3248 | <key>Type</key> | 3497 | <key>Type</key> |
3249 | <string>String</string> | 3498 | <string>String</string> |
3250 | <key>Value</key> | 3499 | <key>Value</key> |
3251 | <string></string> | 3500 | <string /> |
3252 | </map> | 3501 | </map> |
3253 | <key>FontSansSerifFallbackScale</key> | 3502 | <key>FontSansSerifFallbackScale</key> |
3254 | <map> | 3503 | <map> |
3255 | <key>Comment</key> | 3504 | <key>Comment</key> |
3256 | <string>Scale of fallback font relative to huge font (fraction of huge font size)</string> | 3505 | <string>Scale of fallback font relative to huge font (fraction of huge font size)</string> |
3257 | <key>Persist</key> | 3506 | <key>Persist</key> |
3258 | <integer>1</integer> | 3507 | <integer>1</integer> |
3259 | <key>Type</key> | 3508 | <key>Type</key> |
3260 | <string>F32</string> | 3509 | <string>F32</string> |
3261 | <key>Value</key> | 3510 | <key>Value</key> |
3262 | <real>1</real> | 3511 | <real>1.0</real> |
3263 | </map> | 3512 | </map> |
3264 | <key>FontScreenDPI</key> | 3513 | <key>FontScreenDPI</key> |
3265 | <map> | 3514 | <map> |
3266 | <key>Comment</key> | 3515 | <key>Comment</key> |
3267 | <string>Font resolution, higher is bigger (pixels per inch)</string> | 3516 | <string>Font resolution, higher is bigger (pixels per inch)</string> |
3268 | <key>Persist</key> | 3517 | <key>Persist</key> |
3269 | <integer>1</integer> | 3518 | <integer>1</integer> |
3270 | <key>Type</key> | 3519 | <key>Type</key> |
3271 | <string>F32</string> | 3520 | <string>F32</string> |
3272 | <key>Value</key> | 3521 | <key>Value</key> |
3273 | <real>96</real> | 3522 | <real>96.0</real> |
3274 | </map> | 3523 | </map> |
3275 | <key>FontSizeHuge</key> | 3524 | <key>FontSizeHuge</key> |
3276 | <map> | 3525 | <map> |
3277 | <key>Comment</key> | 3526 | <key>Comment</key> |
3278 | <string>Size of huge font (points, or 1/72 of an inch)</string> | 3527 | <string>Size of huge font (points, or 1/72 of an inch)</string> |
3279 | <key>Persist</key> | 3528 | <key>Persist</key> |
3280 | <integer>1</integer> | 3529 | <integer>1</integer> |
3281 | <key>Type</key> | 3530 | <key>Type</key> |
3282 | <string>F32</string> | 3531 | <string>F32</string> |
3283 | <key>Value</key> | 3532 | <key>Value</key> |
3284 | <real>16</real> | 3533 | <real>16.0</real> |
3285 | </map> | 3534 | </map> |
3286 | <key>FontSizeLarge</key> | 3535 | <key>FontSizeLarge</key> |
3287 | <map> | 3536 | <map> |
3288 | <key>Comment</key> | 3537 | <key>Comment</key> |
3289 | <string>Size of large font (points, or 1/72 of an inch)</string> | 3538 | <string>Size of large font (points, or 1/72 of an inch)</string> |
3290 | <key>Persist</key> | 3539 | <key>Persist</key> |
3291 | <integer>1</integer> | 3540 | <integer>1</integer> |
3292 | <key>Type</key> | 3541 | <key>Type</key> |
3293 | <string>F32</string> | 3542 | <string>F32</string> |
3294 | <key>Value</key> | 3543 | <key>Value</key> |
3295 | <real>12</real> | 3544 | <real>12.0</real> |
3296 | </map> | 3545 | </map> |
3297 | <key>FontSizeMedium</key> | 3546 | <key>FontSizeMedium</key> |
3298 | <map> | 3547 | <map> |
3299 | <key>Comment</key> | 3548 | <key>Comment</key> |
3300 | <string>Size of medium font (points, or 1/72 of an inch)</string> | 3549 | <string>Size of medium font (points, or 1/72 of an inch)</string> |
3301 | <key>Persist</key> | 3550 | <key>Persist</key> |
3302 | <integer>1</integer> | 3551 | <integer>1</integer> |
3303 | <key>Type</key> | 3552 | <key>Type</key> |
3304 | <string>F32</string> | 3553 | <string>F32</string> |
3305 | <key>Value</key> | 3554 | <key>Value</key> |
3306 | <real>10</real> | 3555 | <real>10.0</real> |
3307 | </map> | 3556 | </map> |
3308 | <key>FontSizeMonospace</key> | 3557 | <key>FontSizeMonospace</key> |
3309 | <map> | 3558 | <map> |
3310 | <key>Comment</key> | 3559 | <key>Comment</key> |
3311 | <string>Size of monospaced font (points, or 1/72 of an inch)</string> | 3560 | <string>Size of monospaced font (points, or 1/72 of an inch)</string> |
3312 | <key>Persist</key> | 3561 | <key>Persist</key> |
3313 | <integer>1</integer> | 3562 | <integer>1</integer> |
3314 | <key>Type</key> | 3563 | <key>Type</key> |
3315 | <string>F32</string> | 3564 | <string>F32</string> |
3316 | <key>Value</key> | 3565 | <key>Value</key> |
3317 | <real>9</real> | 3566 | <real>9.0</real> |
3318 | </map> | 3567 | </map> |
3319 | <key>FontSizeSmall</key> | 3568 | <key>FontSizeSmall</key> |
3320 | <map> | 3569 | <map> |
3321 | <key>Comment</key> | 3570 | <key>Comment</key> |
3322 | <string>Size of small font (points, or 1/72 of an inch)</string> | 3571 | <string>Size of small font (points, or 1/72 of an inch)</string> |
3323 | <key>Persist</key> | 3572 | <key>Persist</key> |
3324 | <integer>1</integer> | 3573 | <integer>1</integer> |
3325 | <key>Type</key> | 3574 | <key>Type</key> |
3326 | <string>F32</string> | 3575 | <string>F32</string> |
3327 | <key>Value</key> | 3576 | <key>Value</key> |
3328 | <real>9</real> | 3577 | <real>9.0</real> |
3329 | </map> | 3578 | </map> |
3330 | <key>ForceShowGrid</key> | 3579 | <key>ForceShowGrid</key> |
3331 | <map> | 3580 | <map> |
3332 | <key>Comment</key> | 3581 | <key>Comment</key> |
3333 | <string>Always show grid dropdown on login screen</string> | 3582 | <string>Always show grid dropdown on login screen</string> |
3334 | <key>Persist</key> | 3583 | <key>Persist</key> |
3335 | <integer>1</integer> | 3584 | <integer>1</integer> |
3336 | <key>Type</key> | 3585 | <key>Type</key> |
3337 | <string>Boolean</string> | 3586 | <string>Boolean</string> |
3338 | <key>Value</key> | 3587 | <key>Value</key> |
3339 | <integer>0</integer> | 3588 | <integer>0</integer> |
3340 | </map> | 3589 | </map> |
3341 | <key>ForwardBtnRect</key> | 3590 | <key>ForwardBtnRect</key> |
3342 | <map> | 3591 | <map> |
3343 | <key>Comment</key> | 3592 | <key>Comment</key> |
3344 | <string /> | 3593 | <string /> |
3345 | <key>Persist</key> | 3594 | <key>Persist</key> |
3346 | <integer>0</integer> | 3595 | <integer>0</integer> |
3347 | <key>Type</key> | 3596 | <key>Type</key> |
3348 | <string>Rect</string> | 3597 | <string>Rect</string> |
3349 | <key>Value</key> | 3598 | <key>Value</key> |
3350 | <array> | 3599 | <array> |
3351 | <integer>45</integer> | 3600 | <integer>45</integer> |
3352 | <integer>54</integer> | 3601 | <integer>54</integer> |
3353 | <integer>66</integer> | 3602 | <integer>66</integer> |
3354 | <integer>29</integer> | 3603 | <integer>29</integer> |
3355 | </array> | 3604 | </array> |
3356 | </map> | 3605 | </map> |
3357 | <key>FreezeTime</key> | 3606 | <key>FreezeTime</key> |
3358 | <map> | 3607 | <map> |
3359 | <key>Comment</key> | 3608 | <key>Comment</key> |
3360 | <string /> | 3609 | <string /> |
3361 | <key>Persist</key> | 3610 | <key>Persist</key> |
3362 | <integer>0</integer> | 3611 | <integer>0</integer> |
3363 | <key>Type</key> | 3612 | <key>Type</key> |
3364 | <string>Boolean</string> | 3613 | <string>Boolean</string> |
3365 | <key>Value</key> | 3614 | <key>Value</key> |
3366 | <integer>0</integer> | 3615 | <integer>0</integer> |
3367 | </map> | 3616 | </map> |
3368 | <key>FullScreen</key> | 3617 | <key>FullScreen</key> |
3369 | <map> | 3618 | <map> |
3370 | <key>Comment</key> | 3619 | <key>Comment</key> |
3371 | <string>Run SL in fullscreen mode</string> | 3620 | <string>Run SL in fullscreen mode</string> |
3372 | <key>Persist</key> | 3621 | <key>Persist</key> |
3373 | <integer>1</integer> | 3622 | <integer>1</integer> |
3374 | <key>Type</key> | 3623 | <key>Type</key> |
3375 | <string>Boolean</string> | 3624 | <string>Boolean</string> |
3376 | <key>Value</key> | 3625 | <key>Value</key> |
3377 | <integer>0</integer> | 3626 | <integer>0</integer> |
3378 | </map> | 3627 | </map> |
3379 | <key>FullScreenAspectRatio</key> | 3628 | <key>FullScreenAspectRatio</key> |
3380 | <map> | 3629 | <map> |
3381 | <key>Comment</key> | 3630 | <key>Comment</key> |
3382 | <string>Aspect ratio of fullscreen display (width / height)</string> | 3631 | <string>Aspect ratio of fullscreen display (width / height)</string> |
3383 | <key>Persist</key> | 3632 | <key>Persist</key> |
3384 | <integer>1</integer> | 3633 | <integer>1</integer> |
3385 | <key>Type</key> | 3634 | <key>Type</key> |
3386 | <string>F32</string> | 3635 | <string>F32</string> |
3387 | <key>Value</key> | 3636 | <key>Value</key> |
3388 | <real>1.33329999446868896484375</real> | 3637 | <real>1.33329999447</real> |
3389 | </map> | 3638 | </map> |
3390 | <key>FullScreenAutoDetectAspectRatio</key> | 3639 | <key>FullScreenAutoDetectAspectRatio</key> |
3391 | <map> | 3640 | <map> |
3392 | <key>Comment</key> | 3641 | <key>Comment</key> |
3393 | <string>Automatically detect proper aspect ratio for fullscreen display</string> | 3642 | <string>Automatically detect proper aspect ratio for fullscreen display</string> |
3394 | <key>Persist</key> | 3643 | <key>Persist</key> |
3395 | <integer>1</integer> | 3644 | <integer>1</integer> |
3396 | <key>Type</key> | 3645 | <key>Type</key> |
3397 | <string>Boolean</string> | 3646 | <string>Boolean</string> |
3398 | <key>Value</key> | 3647 | <key>Value</key> |
3399 | <integer>1</integer> | 3648 | <integer>1</integer> |
3400 | </map> | 3649 | </map> |
3401 | <key>FullScreenHeight</key> | 3650 | <key>FullScreenHeight</key> |
3402 | <map> | 3651 | <map> |
3403 | <key>Comment</key> | 3652 | <key>Comment</key> |
3404 | <string>Fullscreen resolution in height</string> | 3653 | <string>Fullscreen resolution in height</string> |
3405 | <key>Persist</key> | 3654 | <key>Persist</key> |
3406 | <integer>1</integer> | 3655 | <integer>1</integer> |
3407 | <key>Type</key> | 3656 | <key>Type</key> |
3408 | <string>S32</string> | 3657 | <string>S32</string> |
3409 | <key>Value</key> | 3658 | <key>Value</key> |
3410 | <integer>768</integer> | 3659 | <integer>768</integer> |
3411 | </map> | 3660 | </map> |
3412 | <key>FullScreenWidth</key> | 3661 | <key>FullScreenWidth</key> |
3413 | <map> | 3662 | <map> |
3414 | <key>Comment</key> | 3663 | <key>Comment</key> |
3415 | <string>Fullscreen resolution in width</string> | 3664 | <string>Fullscreen resolution in width</string> |
3416 | <key>Persist</key> | 3665 | <key>Persist</key> |
3417 | <integer>1</integer> | 3666 | <integer>1</integer> |
3418 | <key>Type</key> | 3667 | <key>Type</key> |
3419 | <string>S32</string> | 3668 | <string>S32</string> |
3420 | <key>Value</key> | 3669 | <key>Value</key> |
3421 | <integer>1024</integer> | 3670 | <integer>1024</integer> |
3422 | </map> | 3671 | </map> |
3423 | <key>GridChoice</key> | ||
3424 | <map> | ||
3425 | <key>Comment</key> | ||
3426 | <string>The user's grid choice or ip address.</string> | ||
3427 | <key>Persist</key> | ||
3428 | <integer>1</integer> | ||
3429 | <key>Type</key> | ||
3430 | <string>String</string> | ||
3431 | <key>Value</key> | ||
3432 | <string /> | ||
3433 | </map> | ||
3434 | <key>GridCrossSections</key> | 3672 | <key>GridCrossSections</key> |
3435 | <map> | 3673 | <map> |
3436 | <key>Comment</key> | 3674 | <key>Comment</key> |
3437 | <string>Highlight cross sections of prims with grid manipulation plane.</string> | 3675 | <string>Highlight cross sections of prims with grid manipulation plane.</string> |
3438 | <key>Persist</key> | 3676 | <key>Persist</key> |
3439 | <integer>1</integer> | 3677 | <integer>1</integer> |
3440 | <key>Type</key> | 3678 | <key>Type</key> |
3441 | <string>Boolean</string> | 3679 | <string>Boolean</string> |
3442 | <key>Value</key> | 3680 | <key>Value</key> |
3443 | <integer>0</integer> | 3681 | <integer>0</integer> |
3444 | </map> | 3682 | </map> |
3445 | <key>GridDrawSize</key> | 3683 | <key>GridDrawSize</key> |
3446 | <map> | 3684 | <map> |
3447 | <key>Comment</key> | 3685 | <key>Comment</key> |
3448 | <string>Visible extent of 2D snap grid (meters)</string> | 3686 | <string>Visible extent of 2D snap grid (meters)</string> |
3449 | <key>Persist</key> | 3687 | <key>Persist</key> |
3450 | <integer>1</integer> | 3688 | <integer>1</integer> |
3451 | <key>Type</key> | 3689 | <key>Type</key> |
3452 | <string>F32</string> | 3690 | <string>F32</string> |
3453 | <key>Value</key> | 3691 | <key>Value</key> |
3454 | <real>12</real> | 3692 | <real>12.0</real> |
3455 | </map> | 3693 | </map> |
3456 | <key>GridMode</key> | 3694 | <key>GridMode</key> |
3457 | <map> | 3695 | <map> |
3458 | <key>Comment</key> | 3696 | <key>Comment</key> |
3459 | <string>Snap grid reference frame (0 = world, 1 = local, 2 = reference object)</string> | 3697 | <string>Snap grid reference frame (0 = world, 1 = local, 2 = reference object)</string> |
3460 | <key>Persist</key> | 3698 | <key>Persist</key> |
3461 | <integer>1</integer> | 3699 | <integer>1</integer> |
3462 | <key>Type</key> | 3700 | <key>Type</key> |
3463 | <string>S32</string> | 3701 | <string>S32</string> |
3464 | <key>Value</key> | 3702 | <key>Value</key> |
3465 | <integer>0</integer> | 3703 | <integer>0</integer> |
3466 | </map> | 3704 | </map> |
3467 | <key>GridOpacity</key> | 3705 | <key>GridOpacity</key> |
3468 | <map> | 3706 | <map> |
3469 | <key>Comment</key> | 3707 | <key>Comment</key> |
3470 | <string>Grid line opacity (0.0 = completely transparent, 1.0 = completely opaque)</string> | 3708 | <string>Grid line opacity (0.0 = completely transparent, 1.0 = completely opaque)</string> |
3471 | <key>Persist</key> | 3709 | <key>Persist</key> |
3472 | <integer>1</integer> | 3710 | <integer>1</integer> |
3473 | <key>Type</key> | 3711 | <key>Type</key> |
3474 | <string>F32</string> | 3712 | <string>F32</string> |
3475 | <key>Value</key> | 3713 | <key>Value</key> |
3476 | <real>0.699999988079071044921875</real> | 3714 | <real>0.699999988079</real> |
3477 | </map> | 3715 | </map> |
3478 | <key>GridResolution</key> | 3716 | <key>GridResolution</key> |
3479 | <map> | 3717 | <map> |
3480 | <key>Comment</key> | 3718 | <key>Comment</key> |
3481 | <string>Size of single grid step (meters)</string> | 3719 | <string>Size of single grid step (meters)</string> |
3482 | <key>Persist</key> | 3720 | <key>Persist</key> |
3483 | <integer>1</integer> | 3721 | <integer>1</integer> |
3484 | <key>Type</key> | 3722 | <key>Type</key> |
3485 | <string>F32</string> | 3723 | <string>F32</string> |
3486 | <key>Value</key> | 3724 | <key>Value</key> |
3487 | <real>0.5</real> | 3725 | <real>0.5</real> |
3488 | </map> | 3726 | </map> |
3489 | <key>GridSubUnit</key> | 3727 | <key>GridSubUnit</key> |
3490 | <map> | 3728 | <map> |
3491 | <key>Comment</key> | 3729 | <key>Comment</key> |
3492 | <string>Display fractional grid steps, relative to grid size</string> | 3730 | <string>Display fractional grid steps, relative to grid size</string> |
3493 | <key>Persist</key> | 3731 | <key>Persist</key> |
3494 | <integer>1</integer> | 3732 | <integer>1</integer> |
3495 | <key>Type</key> | 3733 | <key>Type</key> |
3496 | <string>Boolean</string> | 3734 | <string>Boolean</string> |
3497 | <key>Value</key> | 3735 | <key>Value</key> |
3498 | <integer>0</integer> | 3736 | <integer>0</integer> |
3499 | </map> | 3737 | </map> |
3500 | <key>GridSubdivision</key> | 3738 | <key>GridSubdivision</key> |
3501 | <map> | 3739 | <map> |
3502 | <key>Comment</key> | 3740 | <key>Comment</key> |
3503 | <string>Maximum number of times to divide single snap grid unit when GridSubUnit is true</string> | 3741 | <string>Maximum number of times to divide single snap grid unit when GridSubUnit is true</string> |
3504 | <key>Persist</key> | 3742 | <key>Persist</key> |
3505 | <integer>1</integer> | 3743 | <integer>1</integer> |
3506 | <key>Type</key> | 3744 | <key>Type</key> |
3507 | <string>S32</string> | 3745 | <string>S32</string> |
3508 | <key>Value</key> | 3746 | <key>Value</key> |
3509 | <integer>32</integer> | 3747 | <integer>32</integer> |
3510 | </map> | 3748 | </map> |
3511 | <key>GroupNotifyBoxHeight</key> | 3749 | <key>GroupNotifyBoxHeight</key> |
3512 | <map> | 3750 | <map> |
3513 | <key>Comment</key> | 3751 | <key>Comment</key> |
3514 | <string>Height of group notice messages</string> | 3752 | <string>Height of group notice messages</string> |
3515 | <key>Persist</key> | 3753 | <key>Persist</key> |
3516 | <integer>1</integer> | 3754 | <integer>1</integer> |
3517 | <key>Type</key> | 3755 | <key>Type</key> |
3518 | <string>S32</string> | 3756 | <string>S32</string> |
3519 | <key>Value</key> | 3757 | <key>Value</key> |
3520 | <integer>260</integer> | 3758 | <integer>260</integer> |
3521 | </map> | 3759 | </map> |
3522 | <key>GroupNotifyBoxWidth</key> | 3760 | <key>GroupNotifyBoxWidth</key> |
3523 | <map> | 3761 | <map> |
3524 | <key>Comment</key> | 3762 | <key>Comment</key> |
3525 | <string>Width of group notice messages</string> | 3763 | <string>Width of group notice messages</string> |
3526 | <key>Persist</key> | 3764 | <key>Persist</key> |
3527 | <integer>1</integer> | 3765 | <integer>1</integer> |
3528 | <key>Type</key> | 3766 | <key>Type</key> |
3529 | <string>S32</string> | 3767 | <string>S32</string> |
3530 | <key>Value</key> | 3768 | <key>Value</key> |
3531 | <integer>400</integer> | 3769 | <integer>400</integer> |
3532 | </map> | 3770 | </map> |
3533 | <key>HTMLLinkColor</key> | 3771 | <key>HTMLLinkColor</key> |
3534 | <map> | 3772 | <map> |
3535 | <key>Comment</key> | 3773 | <key>Comment</key> |
3536 | <string>Color of hyperlinks</string> | 3774 | <string>Color of hyperlinks</string> |
3537 | <key>Persist</key> | 3775 | <key>Persist</key> |
3538 | <integer>1</integer> | 3776 | <integer>1</integer> |
3539 | <key>Type</key> | 3777 | <key>Type</key> |
3540 | <string>Color4</string> | 3778 | <string>Color4</string> |
3541 | <key>Value</key> | 3779 | <key>Value</key> |
3542 | <array> | 3780 | <array> |
3543 | <real>0.60000002384185791015625</real> | 3781 | <real>0.600000023842</real> |
3544 | <real>0.60000002384185791015625</real> | 3782 | <real>0.600000023842</real> |
3545 | <real>1</real> | 3783 | <real>1.0</real> |
3546 | <real>1</real> | 3784 | <real>1.0</real> |
3547 | </array> | 3785 | </array> |
3548 | </map> | 3786 | </map> |
3549 | <key>HelpHomeURL</key> | 3787 | <key>HelpHomeURL</key> |
3550 | <map> | 3788 | <map> |
3551 | <key>Comment</key> | 3789 | <key>Comment</key> |
3552 | <string>URL of initial help page</string> | 3790 | <string>URL of initial help page</string> |
3553 | <key>Persist</key> | 3791 | <key>Persist</key> |
3554 | <integer>1</integer> | 3792 | <integer>1</integer> |
3555 | <key>Type</key> | 3793 | <key>Type</key> |
3556 | <string>String</string> | 3794 | <string>String</string> |
3557 | <key>Value</key> | 3795 | <key>Value</key> |
3558 | <string>help/index.html</string> | 3796 | <string>help/index.html</string> |
3559 | </map> | 3797 | </map> |
3560 | <key>HelpLastVisitedURL</key> | 3798 | <key>HelpLastVisitedURL</key> |
3561 | <map> | 3799 | <map> |
3562 | <key>Comment</key> | 3800 | <key>Comment</key> |
3563 | <string>URL of last help page, will be shown next time help is accessed</string> | 3801 | <string>URL of last help page, will be shown next time help is accessed</string> |
3564 | <key>Persist</key> | 3802 | <key>Persist</key> |
3565 | <integer>1</integer> | 3803 | <integer>1</integer> |
3566 | <key>Type</key> | 3804 | <key>Type</key> |
3567 | <string>String</string> | 3805 | <string>String</string> |
3568 | <key>Value</key> | 3806 | <key>Value</key> |
3569 | <string>help/index.html</string> | 3807 | <string>help/index.html</string> |
3570 | </map> | 3808 | </map> |
3571 | <key>HelperURI</key> | ||
3572 | <map> | ||
3573 | <key>Comment</key> | ||
3574 | <string>helper web CGI prefix to use</string> | ||
3575 | <key>Persist</key> | ||
3576 | <integer>1</integer> | ||
3577 | <key>Type</key> | ||
3578 | <string>String</string> | ||
3579 | <key>Value</key> | ||
3580 | <string /> | ||
3581 | </map> | ||
3582 | <key>HighResSnapshot</key> | 3809 | <key>HighResSnapshot</key> |
3583 | <map> | 3810 | <map> |
3584 | <key>Comment</key> | 3811 | <key>Comment</key> |
3585 | <string>Double resolution of snapshot from current window resolution</string> | 3812 | <string>Double resolution of snapshot from current window resolution</string> |
3586 | <key>Persist</key> | 3813 | <key>Persist</key> |
3587 | <integer>1</integer> | 3814 | <integer>1</integer> |
3588 | <key>Type</key> | 3815 | <key>Type</key> |
3589 | <string>Boolean</string> | 3816 | <string>Boolean</string> |
3590 | <key>Value</key> | 3817 | <key>Value</key> |
3591 | <integer>0</integer> | 3818 | <integer>0</integer> |
3592 | </map> | 3819 | </map> |
3593 | <key>HtmlFindRect</key> | 3820 | <key>HtmlFindRect</key> |
3594 | <map> | 3821 | <map> |
3595 | <key>Comment</key> | 3822 | <key>Comment</key> |
3596 | <string>Rectangle for HTML find window</string> | 3823 | <string>Rectangle for HTML find window</string> |
3597 | <key>Persist</key> | 3824 | <key>Persist</key> |
3598 | <integer>1</integer> | 3825 | <integer>1</integer> |
3599 | <key>Type</key> | 3826 | <key>Type</key> |
3600 | <string>Rect</string> | 3827 | <string>Rect</string> |
3601 | <key>Value</key> | 3828 | <key>Value</key> |
3602 | <array> | 3829 | <array> |
3603 | <integer>16</integer> | 3830 | <integer>16</integer> |
3604 | <integer>650</integer> | 3831 | <integer>650</integer> |
3605 | <integer>600</integer> | 3832 | <integer>600</integer> |
3606 | <integer>128</integer> | 3833 | <integer>128</integer> |
3607 | </array> | 3834 | </array> |
3608 | </map> | 3835 | </map> |
3609 | <key>HtmlHelpLastPage</key> | 3836 | <key>HtmlHelpLastPage</key> |
3610 | <map> | 3837 | <map> |
3611 | <key>Comment</key> | 3838 | <key>Comment</key> |
3612 | <string>Last URL visited via help system</string> | 3839 | <string>Last URL visited via help system</string> |
3613 | <key>Persist</key> | 3840 | <key>Persist</key> |
3614 | <integer>1</integer> | 3841 | <integer>1</integer> |
3615 | <key>Type</key> | 3842 | <key>Type</key> |
3616 | <string>String</string> | 3843 | <string>String</string> |
3617 | <key>Value</key> | 3844 | <key>Value</key> |
3618 | <string /> | 3845 | <string /> |
3619 | </map> | 3846 | </map> |
3620 | <key>HtmlHelpRect</key> | 3847 | <key>HtmlHelpRect</key> |
3621 | <map> | 3848 | <map> |
3622 | <key>Comment</key> | 3849 | <key>Comment</key> |
3623 | <string>Rectangle for HTML help window</string> | 3850 | <string>Rectangle for HTML help window</string> |
3624 | <key>Persist</key> | 3851 | <key>Persist</key> |
3625 | <integer>1</integer> | 3852 | <integer>1</integer> |
3626 | <key>Type</key> | 3853 | <key>Type</key> |
3627 | <string>Rect</string> | 3854 | <string>Rect</string> |
3628 | <key>Value</key> | 3855 | <key>Value</key> |
3629 | <array> | 3856 | <array> |
3630 | <integer>16</integer> | 3857 | <integer>16</integer> |
3631 | <integer>650</integer> | 3858 | <integer>650</integer> |
3632 | <integer>600</integer> | 3859 | <integer>600</integer> |
3633 | <integer>128</integer> | 3860 | <integer>128</integer> |
3634 | </array> | 3861 | </array> |
3635 | </map> | 3862 | </map> |
3636 | <key>HtmlReleaseMessage</key> | 3863 | <key>HtmlReleaseMessage</key> |
3637 | <map> | 3864 | <map> |
3638 | <key>Comment</key> | 3865 | <key>Comment</key> |
3639 | <string>Rectangle for HTML Release Message Floater window</string> | 3866 | <string>Rectangle for HTML Release Message Floater window</string> |
3640 | <key>Persist</key> | 3867 | <key>Persist</key> |
3641 | <integer>1</integer> | 3868 | <integer>1</integer> |
3642 | <key>Type</key> | 3869 | <key>Type</key> |
3643 | <string>Rect</string> | 3870 | <string>Rect</string> |
3644 | <key>Value</key> | 3871 | <key>Value</key> |
3645 | <array> | 3872 | <array> |
3646 | <integer>46</integer> | 3873 | <integer>46</integer> |
3647 | <integer>520</integer> | 3874 | <integer>520</integer> |
3648 | <integer>400</integer> | 3875 | <integer>400</integer> |
3649 | <integer>128</integer> | 3876 | <integer>128</integer> |
3650 | </array> | 3877 | </array> |
3651 | </map> | 3878 | </map> |
3879 | <key>IMChatColor</key> | ||
3880 | <map> | ||
3881 | <key>Comment</key> | ||
3882 | <string>Color of instant messages from other residents</string> | ||
3883 | <key>Persist</key> | ||
3884 | <integer>1</integer> | ||
3885 | <key>Type</key> | ||
3886 | <string>Color4</string> | ||
3887 | <key>Value</key> | ||
3888 | <array> | ||
3889 | <real>1.0</real> | ||
3890 | <real>1.0</real> | ||
3891 | <real>1.0</real> | ||
3892 | <real>1.0</real> | ||
3893 | </array> | ||
3894 | </map> | ||
3652 | <key>IMInChatHistory</key> | 3895 | <key>IMInChatHistory</key> |
3653 | <map> | 3896 | <map> |
3654 | <key>Comment</key> | 3897 | <key>Comment</key> |
3655 | <string>Copy IM into chat history</string> | 3898 | <string>Copy IM into chat history</string> |
3656 | <key>Persist</key> | 3899 | <key>Persist</key> |
3657 | <integer>1</integer> | 3900 | <integer>1</integer> |
3658 | <key>Type</key> | 3901 | <key>Type</key> |
3659 | <string>Boolean</string> | 3902 | <string>Boolean</string> |
3660 | <key>Value</key> | 3903 | <key>Value</key> |
3661 | <integer>0</integer> | 3904 | <integer>0</integer> |
3662 | </map> | 3905 | </map> |
3663 | <key>IMShowTimestamps</key> | 3906 | <key>IMShowTimestamps</key> |
3664 | <map> | 3907 | <map> |
3665 | <key>Comment</key> | 3908 | <key>Comment</key> |
3666 | <string>Show timestamps in IM</string> | 3909 | <string>Show timestamps in IM</string> |
3667 | <key>Persist</key> | 3910 | <key>Persist</key> |
3668 | <integer>1</integer> | 3911 | <integer>1</integer> |
3669 | <key>Type</key> | 3912 | <key>Type</key> |
3670 | <string>Boolean</string> | 3913 | <string>Boolean</string> |
3671 | <key>Value</key> | 3914 | <key>Value</key> |
3672 | <integer>1</integer> | 3915 | <integer>1</integer> |
3673 | </map> | 3916 | </map> |
3674 | <key>IgnorePixelDepth</key> | 3917 | <key>IgnorePixelDepth</key> |
3675 | <map> | 3918 | <map> |
3676 | <key>Comment</key> | 3919 | <key>Comment</key> |
3677 | <string>Ignore pixel depth settings.</string> | 3920 | <string>Ignore pixel depth settings.</string> |
3678 | <key>Persist</key> | 3921 | <key>Persist</key> |
3679 | <integer>1</integer> | 3922 | <integer>1</integer> |
3680 | <key>Type</key> | 3923 | <key>Type</key> |
3681 | <string>Boolean</string> | 3924 | <string>Boolean</string> |
3682 | <key>Value</key> | 3925 | <key>Value</key> |
3683 | <integer>0</integer> | 3926 | <integer>0</integer> |
3684 | </map> | 3927 | </map> |
3685 | <key>ImagePipelineUseHTTP</key> | 3928 | <key>ImagePipelineUseHTTP</key> |
3686 | <map> | 3929 | <map> |
3687 | <key>Comment</key> | 3930 | <key>Comment</key> |
3688 | <string>If TRUE use HTTP GET to fetch textures from the server</string> | 3931 | <string>If TRUE use HTTP GET to fetch textures from the server</string> |
3689 | <key>Persist</key> | 3932 | <key>Persist</key> |
3690 | <integer>1</integer> | 3933 | <integer>1</integer> |
3691 | <key>Type</key> | 3934 | <key>Type</key> |
3692 | <string>Boolean</string> | 3935 | <string>Boolean</string> |
3693 | <key>Value</key> | 3936 | <key>Value</key> |
3694 | <integer>0</integer> | 3937 | <integer>0</integer> |
3695 | </map> | 3938 | </map> |
3696 | <key>InBandwidth</key> | 3939 | <key>InBandwidth</key> |
3697 | <map> | 3940 | <map> |
3698 | <key>Comment</key> | 3941 | <key>Comment</key> |
3699 | <string>Incoming bandwidth throttle (bps)</string> | 3942 | <string>Incoming bandwidth throttle (bps)</string> |
3700 | <key>Persist</key> | 3943 | <key>Persist</key> |
3701 | <integer>1</integer> | 3944 | <integer>1</integer> |
3702 | <key>Type</key> | 3945 | <key>Type</key> |
3703 | <string>F32</string> | 3946 | <string>F32</string> |
3704 | <key>Value</key> | 3947 | <key>Value</key> |
3705 | <real>0</real> | 3948 | <real>0.0</real> |
3706 | </map> | 3949 | </map> |
3707 | <key>InventoryAutoOpenDelay</key> | 3950 | <key>InventoryAutoOpenDelay</key> |
3708 | <map> | 3951 | <map> |
3709 | <key>Comment</key> | 3952 | <key>Comment</key> |
3710 | <string>Seconds before automatically opening inventory when mouse is over inventory button when performing inventory drag and drop</string> | 3953 | <string>Seconds before automatically opening inventory when mouse is over inventory button when performing inventory drag and drop</string> |
3711 | <key>Persist</key> | 3954 | <key>Persist</key> |
3712 | <integer>1</integer> | 3955 | <integer>1</integer> |
3713 | <key>Type</key> | 3956 | <key>Type</key> |
3714 | <string>F32</string> | 3957 | <string>F32</string> |
3715 | <key>Value</key> | 3958 | <key>Value</key> |
3716 | <real>1</real> | 3959 | <real>1.0</real> |
3717 | </map> | 3960 | </map> |
3718 | <key>InventorySortOrder</key> | 3961 | <key>InventorySortOrder</key> |
3719 | <map> | 3962 | <map> |
3720 | <key>Comment</key> | 3963 | <key>Comment</key> |
3721 | <string>Specifies sort key for inventory items (+0 = name, +1 = date, +2 = folders always by name, +4 = system folders to top)</string> | 3964 | <string>Specifies sort key for inventory items (+0 = name, +1 = date, +2 = folders always by name, +4 = system folders to top)</string> |
3722 | <key>Persist</key> | 3965 | <key>Persist</key> |
3723 | <integer>1</integer> | 3966 | <integer>1</integer> |
3724 | <key>Type</key> | 3967 | <key>Type</key> |
3725 | <string>U32</string> | 3968 | <string>U32</string> |
3726 | <key>Value</key> | 3969 | <key>Value</key> |
3727 | <integer>7</integer> | 3970 | <integer>7</integer> |
3728 | </map> | 3971 | </map> |
3729 | <key>InvertMouse</key> | 3972 | <key>InvertMouse</key> |
3730 | <map> | 3973 | <map> |
3731 | <key>Comment</key> | 3974 | <key>Comment</key> |
3732 | <string>When in mouselook, moving mouse up looks down and vice verse (FALSE = moving up looks up)</string> | 3975 | <string>When in mouselook, moving mouse up looks down and vice verse (FALSE = moving up looks up)</string> |
3733 | <key>Persist</key> | 3976 | <key>Persist</key> |
3734 | <integer>1</integer> | 3977 | <integer>1</integer> |
3735 | <key>Type</key> | 3978 | <key>Type</key> |
3736 | <string>Boolean</string> | 3979 | <string>Boolean</string> |
3737 | <key>Value</key> | 3980 | <key>Value</key> |
3738 | <integer>0</integer> | 3981 | <integer>0</integer> |
3739 | </map> | 3982 | </map> |
3983 | <key>JoystickAvatarEnabled</key> | ||
3984 | <map> | ||
3985 | <key>Comment</key> | ||
3986 | <string>Enables the Joystick to control Avatar movmement.</string> | ||
3987 | <key>Persist</key> | ||
3988 | <integer>1</integer> | ||
3989 | <key>Type</key> | ||
3990 | <string>Boolean</string> | ||
3991 | <key>Value</key> | ||
3992 | <string>1</string> | ||
3993 | </map> | ||
3994 | <key>JoystickAxis0</key> | ||
3995 | <map> | ||
3996 | <key>Comment</key> | ||
3997 | <string>Flycam hardware axis mapping for internal axis 0 ([0, 5]).</string> | ||
3998 | <key>Persist</key> | ||
3999 | <integer>1</integer> | ||
4000 | <key>Type</key> | ||
4001 | <string>S32</string> | ||
4002 | <key>Value</key> | ||
4003 | <integer>1</integer> | ||
4004 | </map> | ||
4005 | <key>JoystickAxis1</key> | ||
4006 | <map> | ||
4007 | <key>Comment</key> | ||
4008 | <string>Flycam hardware axis mapping for internal axis 1 ([0, 5]).</string> | ||
4009 | <key>Persist</key> | ||
4010 | <integer>1</integer> | ||
4011 | <key>Type</key> | ||
4012 | <string>S32</string> | ||
4013 | <key>Value</key> | ||
4014 | <integer>0</integer> | ||
4015 | </map> | ||
4016 | <key>JoystickAxis2</key> | ||
4017 | <map> | ||
4018 | <key>Comment</key> | ||
4019 | <string>Flycam hardware axis mapping for internal axis 2 ([0, 5]).</string> | ||
4020 | <key>Persist</key> | ||
4021 | <integer>1</integer> | ||
4022 | <key>Type</key> | ||
4023 | <string>S32</string> | ||
4024 | <key>Value</key> | ||
4025 | <integer>2</integer> | ||
4026 | </map> | ||
4027 | <key>JoystickAxis3</key> | ||
4028 | <map> | ||
4029 | <key>Comment</key> | ||
4030 | <string>Flycam hardware axis mapping for internal axis 3 ([0, 5]).</string> | ||
4031 | <key>Persist</key> | ||
4032 | <integer>1</integer> | ||
4033 | <key>Type</key> | ||
4034 | <string>S32</string> | ||
4035 | <key>Value</key> | ||
4036 | <integer>4</integer> | ||
4037 | </map> | ||
4038 | <key>JoystickAxis4</key> | ||
4039 | <map> | ||
4040 | <key>Comment</key> | ||
4041 | <string>Flycam hardware axis mapping for internal axis 4 ([0, 5]).</string> | ||
4042 | <key>Persist</key> | ||
4043 | <integer>1</integer> | ||
4044 | <key>Type</key> | ||
4045 | <string>S32</string> | ||
4046 | <key>Value</key> | ||
4047 | <integer>3</integer> | ||
4048 | </map> | ||
4049 | <key>JoystickAxis5</key> | ||
4050 | <map> | ||
4051 | <key>Comment</key> | ||
4052 | <string>Flycam hardware axis mapping for internal axis 5 ([0, 5]).</string> | ||
4053 | <key>Persist</key> | ||
4054 | <integer>1</integer> | ||
4055 | <key>Type</key> | ||
4056 | <string>S32</string> | ||
4057 | <key>Value</key> | ||
4058 | <integer>5</integer> | ||
4059 | </map> | ||
4060 | <key>JoystickAxis6</key> | ||
4061 | <map> | ||
4062 | <key>Comment</key> | ||
4063 | <string>Flycam hardware axis mapping for internal axis 6 ([0, 5]).</string> | ||
4064 | <key>Persist</key> | ||
4065 | <integer>1</integer> | ||
4066 | <key>Type</key> | ||
4067 | <string>S32</string> | ||
4068 | <key>Value</key> | ||
4069 | <integer>-1</integer> | ||
4070 | </map> | ||
4071 | <key>JoystickBuildEnabled</key> | ||
4072 | <map> | ||
4073 | <key>Comment</key> | ||
4074 | <string>Enables the Joystick to move edited objects.</string> | ||
4075 | <key>Persist</key> | ||
4076 | <integer>1</integer> | ||
4077 | <key>Type</key> | ||
4078 | <string>Boolean</string> | ||
4079 | <key>Value</key> | ||
4080 | <string>1</string> | ||
4081 | </map> | ||
4082 | <key>JoystickEnabled</key> | ||
4083 | <map> | ||
4084 | <key>Comment</key> | ||
4085 | <string>Enables Joystick Input.</string> | ||
4086 | <key>Persist</key> | ||
4087 | <integer>1</integer> | ||
4088 | <key>Type</key> | ||
4089 | <string>Boolean</string> | ||
4090 | <key>Value</key> | ||
4091 | <integer>0</integer> | ||
4092 | </map> | ||
4093 | <key>JoystickFlycamEnabled</key> | ||
4094 | <map> | ||
4095 | <key>Comment</key> | ||
4096 | <string>Enables the Joystick to control the flycam.</string> | ||
4097 | <key>Persist</key> | ||
4098 | <integer>1</integer> | ||
4099 | <key>Type</key> | ||
4100 | <string>Boolean</string> | ||
4101 | <key>Value</key> | ||
4102 | <string>1</string> | ||
4103 | </map> | ||
4104 | <key>JoystickInitialized</key> | ||
4105 | <map> | ||
4106 | <key>Comment</key> | ||
4107 | <string>Whether or not a joystick has been detected and initiailized.</string> | ||
4108 | <key>Persist</key> | ||
4109 | <integer>1</integer> | ||
4110 | <key>Type</key> | ||
4111 | <string>String</string> | ||
4112 | <key>Value</key> | ||
4113 | <string /> | ||
4114 | </map> | ||
3740 | <key>KeepAspectForSnapshot</key> | 4115 | <key>KeepAspectForSnapshot</key> |
3741 | <map> | 4116 | <map> |
3742 | <key>Comment</key> | 4117 | <key>Comment</key> |
3743 | <string>Use full window when taking snapshot, regardless of requested image size</string> | 4118 | <string>Use full window when taking snapshot, regardless of requested image size</string> |
3744 | <key>Persist</key> | 4119 | <key>Persist</key> |
3745 | <integer>1</integer> | 4120 | <integer>1</integer> |
3746 | <key>Type</key> | 4121 | <key>Type</key> |
3747 | <string>Boolean</string> | 4122 | <string>Boolean</string> |
3748 | <key>Value</key> | 4123 | <key>Value</key> |
3749 | <integer>1</integer> | 4124 | <integer>1</integer> |
3750 | </map> | 4125 | </map> |
3751 | <key>LCDDestination</key> | 4126 | <key>LCDDestination</key> |
3752 | <map> | 4127 | <map> |
3753 | <key>Comment</key> | 4128 | <key>Comment</key> |
3754 | <string>Which LCD to use</string> | 4129 | <string>Which LCD to use</string> |
3755 | <key>Persist</key> | 4130 | <key>Persist</key> |
3756 | <integer>1</integer> | 4131 | <integer>1</integer> |
3757 | <key>Type</key> | 4132 | <key>Type</key> |
3758 | <string>S32</string> | 4133 | <string>S32</string> |
3759 | <key>Value</key> | 4134 | <key>Value</key> |
3760 | <integer>0</integer> | 4135 | <integer>0</integer> |
3761 | </map> | 4136 | </map> |
3762 | <key>LSLHelpRect</key> | 4137 | <key>LSLHelpRect</key> |
3763 | <map> | 4138 | <map> |
3764 | <key>Comment</key> | 4139 | <key>Comment</key> |
3765 | <string>Rectangle for LSL help window</string> | 4140 | <string>Rectangle for LSL help window</string> |
3766 | <key>Persist</key> | 4141 | <key>Persist</key> |
3767 | <integer>1</integer> | 4142 | <integer>1</integer> |
3768 | <key>Type</key> | 4143 | <key>Type</key> |
3769 | <string>Rect</string> | 4144 | <string>Rect</string> |
3770 | <key>Value</key> | 4145 | <key>Value</key> |
3771 | <array> | 4146 | <array> |
3772 | <integer>0</integer> | 4147 | <integer>0</integer> |
3773 | <integer>400</integer> | 4148 | <integer>400</integer> |
3774 | <integer>400</integer> | 4149 | <integer>400</integer> |
3775 | <integer>0</integer> | 4150 | <integer>0</integer> |
3776 | </array> | 4151 | </array> |
3777 | </map> | 4152 | </map> |
3778 | <key>LSLHelpURL</key> | 4153 | <key>LSLHelpURL</key> |
3779 | <map> | 4154 | <map> |
3780 | <key>Comment</key> | 4155 | <key>Comment</key> |
3781 | <string>URL that points to LSL help files, with [LSL_STRING] corresponding to the referenced LSL function or keyword</string> | 4156 | <string>URL that points to LSL help files, with [LSL_STRING] corresponding to the referenced LSL function or keyword</string> |
3782 | <key>Persist</key> | 4157 | <key>Persist</key> |
3783 | <integer>1</integer> | 4158 | <integer>1</integer> |
3784 | <key>Type</key> | 4159 | <key>Type</key> |
3785 | <string>String</string> | 4160 | <string>String</string> |
3786 | <key>Value</key> | 4161 | <key>Value</key> |
3787 | <string>https://wiki.secondlife.com/wiki/[LSL_STRING]</string> | 4162 | <string>https://wiki.secondlife.com/wiki/[LSL_STRING]</string> |
3788 | </map> | 4163 | </map> |
3789 | <key>LagMeterShrunk</key> | 4164 | <key>LagMeterShrunk</key> |
3790 | <map> | 4165 | <map> |
3791 | <key>Comment</key> | 4166 | <key>Comment</key> |
3792 | <string>Last large/small state for lag meter</string> | 4167 | <string>Last large/small state for lag meter</string> |
3793 | <key>Persist</key> | 4168 | <key>Persist</key> |
3794 | <integer>1</integer> | 4169 | <integer>1</integer> |
3795 | <key>Type</key> | 4170 | <key>Type</key> |
3796 | <string>Boolean</string> | 4171 | <string>Boolean</string> |
3797 | <key>Value</key> | 4172 | <key>Value</key> |
3798 | <integer>0</integer> | 4173 | <integer>0</integer> |
3799 | </map> | 4174 | </map> |
3800 | <key>Language</key> | 4175 | <key>Language</key> |
3801 | <map> | 4176 | <map> |
3802 | <key>Comment</key> | 4177 | <key>Comment</key> |
3803 | <string>Language specifier (for XUI)</string> | 4178 | <string>Language specifier (for XUI)</string> |
3804 | <key>Persist</key> | 4179 | <key>Persist</key> |
3805 | <integer>1</integer> | 4180 | <integer>1</integer> |
3806 | <key>Type</key> | 4181 | <key>Type</key> |
3807 | <string>String</string> | 4182 | <string>String</string> |
3808 | <key>Value</key> | 4183 | <key>Value</key> |
3809 | <string>default</string> | 4184 | <string>default</string> |
3810 | </map> | 4185 | </map> |
3811 | <key>LastFeatureVersion</key> | 4186 | <key>LastFeatureVersion</key> |
3812 | <map> | 4187 | <map> |
3813 | <key>Comment</key> | 4188 | <key>Comment</key> |
3814 | <string>[DO NOT MODIFY] Version number for tracking hardware changes</string> | 4189 | <string>[DO NOT MODIFY] Version number for tracking hardware changes</string> |
3815 | <key>Persist</key> | 4190 | <key>Persist</key> |
3816 | <integer>1</integer> | 4191 | <integer>1</integer> |
3817 | <key>Type</key> | 4192 | <key>Type</key> |
3818 | <string>S32</string> | 4193 | <string>S32</string> |
3819 | <key>Value</key> | 4194 | <key>Value</key> |
3820 | <integer>0</integer> | 4195 | <integer>0</integer> |
3821 | </map> | 4196 | </map> |
3822 | <key>LastFindPanel</key> | 4197 | <key>LastFindPanel</key> |
3823 | <map> | 4198 | <map> |
3824 | <key>Comment</key> | 4199 | <key>Comment</key> |
3825 | <string>Controls which find operation appears by default when clicking "Find" button </string> | 4200 | <string>Controls which find operation appears by default when clicking "Find" button </string> |
3826 | <key>Persist</key> | 4201 | <key>Persist</key> |
3827 | <integer>1</integer> | 4202 | <integer>1</integer> |
3828 | <key>Type</key> | 4203 | <key>Type</key> |
3829 | <string>String</string> | 4204 | <string>String</string> |
3830 | <key>Value</key> | 4205 | <key>Value</key> |
3831 | <string>find_all_panel</string> | 4206 | <string>find_all_panel</string> |
3832 | </map> | 4207 | </map> |
3833 | <key>LastName</key> | 4208 | <key>LastName</key> |
3834 | <map> | 4209 | <map> |
3835 | <key>Comment</key> | 4210 | <key>Comment</key> |
3836 | <string>Login last name</string> | 4211 | <string>Login last name</string> |
3837 | <key>Persist</key> | 4212 | <key>Persist</key> |
3838 | <integer>1</integer> | 4213 | <integer>1</integer> |
3839 | <key>Type</key> | 4214 | <key>Type</key> |
3840 | <string>String</string> | 4215 | <string>String</string> |
3841 | <key>Value</key> | 4216 | <key>Value</key> |
3842 | <string /> | 4217 | <string /> |
3843 | </map> | 4218 | </map> |
3844 | <key>LastPrefTab</key> | 4219 | <key>LastPrefTab</key> |
3845 | <map> | 4220 | <map> |
3846 | <key>Comment</key> | 4221 | <key>Comment</key> |
3847 | <string>Last selected tab in preferences window</string> | 4222 | <string>Last selected tab in preferences window</string> |
3848 | <key>Persist</key> | 4223 | <key>Persist</key> |
3849 | <integer>1</integer> | 4224 | <integer>1</integer> |
3850 | <key>Type</key> | 4225 | <key>Type</key> |
3851 | <string>S32</string> | 4226 | <string>S32</string> |
3852 | <key>Value</key> | 4227 | <key>Value</key> |
3853 | <integer>0</integer> | 4228 | <integer>0</integer> |
3854 | </map> | 4229 | </map> |
3855 | <key>LastRunVersion</key> | 4230 | <key>LastRunVersion</key> |
3856 | <map> | 4231 | <map> |
3857 | <key>Comment</key> | 4232 | <key>Comment</key> |
3858 | <string>Version number of last instance of the viewer that you ran</string> | 4233 | <string>Version number of last instance of the viewer that you ran</string> |
3859 | <key>Persist</key> | 4234 | <key>Persist</key> |
3860 | <integer>1</integer> | 4235 | <integer>1</integer> |
3861 | <key>Type</key> | 4236 | <key>Type</key> |
3862 | <string>String</string> | 4237 | <string>String</string> |
3863 | <key>Value</key> | 4238 | <key>Value</key> |
3864 | <string>0.0.0</string> | 4239 | <string>0.0.0</string> |
3865 | </map> | 4240 | </map> |
3866 | <key>LastSnapshotHeight</key> | 4241 | <key>LastSnapshotHeight</key> |
3867 | <map> | 4242 | <map> |
3868 | <key>Comment</key> | 4243 | <key>Comment</key> |
3869 | <string>The height of the last snapshot, in px</string> | 4244 | <string>The height of the last snapshot, in px</string> |
3870 | <key>Persist</key> | 4245 | <key>Persist</key> |
3871 | <integer>1</integer> | 4246 | <integer>1</integer> |
3872 | <key>Type</key> | 4247 | <key>Type</key> |
3873 | <string>S32</string> | 4248 | <string>S32</string> |
3874 | <key>Value</key> | 4249 | <key>Value</key> |
3875 | <integer>768</integer> | 4250 | <integer>768</integer> |
3876 | </map> | 4251 | </map> |
3877 | <key>LastSnapshotType</key> | 4252 | <key>LastSnapshotType</key> |
3878 | <map> | 4253 | <map> |
3879 | <key>Comment</key> | 4254 | <key>Comment</key> |
3880 | <string>Select this as next type of snapshot to take (0 = postcard, 1 = texture, 2 = local image)</string> | 4255 | <string>Select this as next type of snapshot to take (0 = postcard, 1 = texture, 2 = local image)</string> |
3881 | <key>Persist</key> | 4256 | <key>Persist</key> |
3882 | <integer>1</integer> | 4257 | <integer>1</integer> |
3883 | <key>Type</key> | 4258 | <key>Type</key> |
3884 | <string>S32</string> | 4259 | <string>S32</string> |
3885 | <key>Value</key> | 4260 | <key>Value</key> |
3886 | <integer>0</integer> | 4261 | <integer>0</integer> |
3887 | </map> | 4262 | </map> |
3888 | <key>LastSnapshotWidth</key> | 4263 | <key>LastSnapshotWidth</key> |
3889 | <map> | 4264 | <map> |
3890 | <key>Comment</key> | 4265 | <key>Comment</key> |
3891 | <string>The width of the last snapshot, in px</string> | 4266 | <string>The width of the last snapshot, in px</string> |
3892 | <key>Persist</key> | 4267 | <key>Persist</key> |
3893 | <integer>1</integer> | 4268 | <integer>1</integer> |
3894 | <key>Type</key> | 4269 | <key>Type</key> |
3895 | <string>S32</string> | 4270 | <string>S32</string> |
3896 | <key>Value</key> | 4271 | <key>Value</key> |
3897 | <integer>1024</integer> | 4272 | <integer>1024</integer> |
3898 | </map> | 4273 | </map> |
3899 | <key>LeftClickShowMenu</key> | 4274 | <key>LeftClickShowMenu</key> |
3900 | <map> | 4275 | <map> |
3901 | <key>Comment</key> | 4276 | <key>Comment</key> |
3902 | <string>Left click opens pie menu (FALSE = left click touches or grabs object)</string> | 4277 | <string>Left click opens pie menu (FALSE = left click touches or grabs object)</string> |
3903 | <key>Persist</key> | 4278 | <key>Persist</key> |
3904 | <integer>1</integer> | 4279 | <integer>1</integer> |
3905 | <key>Type</key> | 4280 | <key>Type</key> |
3906 | <string>Boolean</string> | 4281 | <string>Boolean</string> |
3907 | <key>Value</key> | 4282 | <key>Value</key> |
3908 | <integer>0</integer> | 4283 | <integer>0</integer> |
3909 | </map> | 4284 | </map> |
3910 | <key>LimitDragDistance</key> | 4285 | <key>LimitDragDistance</key> |
3911 | <map> | 4286 | <map> |
3912 | <key>Comment</key> | 4287 | <key>Comment</key> |
3913 | <string>Limit translation of object via translate tool</string> | 4288 | <string>Limit translation of object via translate tool</string> |
3914 | <key>Persist</key> | 4289 | <key>Persist</key> |
3915 | <integer>1</integer> | 4290 | <integer>1</integer> |
3916 | <key>Type</key> | 4291 | <key>Type</key> |
3917 | <string>Boolean</string> | 4292 | <string>Boolean</string> |
3918 | <key>Value</key> | 4293 | <key>Value</key> |
3919 | <integer>1</integer> | 4294 | <integer>1</integer> |
3920 | </map> | 4295 | </map> |
3921 | <key>LimitSelectDistance</key> | 4296 | <key>LimitSelectDistance</key> |
3922 | <map> | 4297 | <map> |
3923 | <key>Comment</key> | 4298 | <key>Comment</key> |
3924 | <string>Disallow selection of objects beyond max select distance</string> | 4299 | <string>Disallow selection of objects beyond max select distance</string> |
3925 | <key>Persist</key> | 4300 | <key>Persist</key> |
3926 | <integer>1</integer> | 4301 | <integer>1</integer> |
3927 | <key>Type</key> | 4302 | <key>Type</key> |
3928 | <string>Boolean</string> | 4303 | <string>Boolean</string> |
3929 | <key>Value</key> | 4304 | <key>Value</key> |
3930 | <integer>1</integer> | 4305 | <integer>1</integer> |
3931 | </map> | 4306 | </map> |
4307 | <key>LipSyncAah</key> | ||
4308 | <map> | ||
4309 | <key>Comment</key> | ||
4310 | <string>Aah (jaw opening) babble loop</string> | ||
4311 | <key>Persist</key> | ||
4312 | <integer>1</integer> | ||
4313 | <key>Type</key> | ||
4314 | <string>String</string> | ||
4315 | <key>Value</key> | ||
4316 | <string>257998776531013446642343</string> | ||
4317 | </map> | ||
4318 | <key>LipSyncAahPowerTransfer</key> | ||
4319 | <map> | ||
4320 | <key>Comment</key> | ||
4321 | <string>Transfer curve for Voice Interface power to aah lip sync amplitude</string> | ||
4322 | <key>Persist</key> | ||
4323 | <integer>1</integer> | ||
4324 | <key>Type</key> | ||
4325 | <string>String</string> | ||
4326 | <key>Value</key> | ||
4327 | <string>0000123456789</string> | ||
4328 | </map> | ||
4329 | <key>LipSyncEnabled</key> | ||
4330 | <map> | ||
4331 | <key>Comment</key> | ||
4332 | <string>0 disable lip-sync, 1 enable babble loop</string> | ||
4333 | <key>Persist</key> | ||
4334 | <integer>1</integer> | ||
4335 | <key>Type</key> | ||
4336 | <string>Boolean</string> | ||
4337 | <key>Value</key> | ||
4338 | <integer>0</integer> | ||
4339 | </map> | ||
4340 | <key>LipSyncOoh</key> | ||
4341 | <map> | ||
4342 | <key>Comment</key> | ||
4343 | <string>Ooh (mouth width) babble loop</string> | ||
4344 | <key>Persist</key> | ||
4345 | <integer>1</integer> | ||
4346 | <key>Type</key> | ||
4347 | <string>String</string> | ||
4348 | <key>Value</key> | ||
4349 | <string>1247898743223344444443200000</string> | ||
4350 | </map> | ||
4351 | <key>LipSyncOohAahRate</key> | ||
4352 | <map> | ||
4353 | <key>Comment</key> | ||
4354 | <string>Rate to babble Ooh and Aah (/sec)</string> | ||
4355 | <key>Persist</key> | ||
4356 | <integer>1</integer> | ||
4357 | <key>Type</key> | ||
4358 | <string>F32</string> | ||
4359 | <key>Value</key> | ||
4360 | <real>24.0</real> | ||
4361 | </map> | ||
4362 | <key>LipSyncOohPowerTransfer</key> | ||
4363 | <map> | ||
4364 | <key>Comment</key> | ||
4365 | <string>Transfer curve for Voice Interface power to ooh lip sync amplitude</string> | ||
4366 | <key>Persist</key> | ||
4367 | <integer>1</integer> | ||
4368 | <key>Type</key> | ||
4369 | <string>String</string> | ||
4370 | <key>Value</key> | ||
4371 | <string>0012345566778899</string> | ||
4372 | </map> | ||
3932 | <key>LocalCacheVersion</key> | 4373 | <key>LocalCacheVersion</key> |
3933 | <map> | 4374 | <map> |
3934 | <key>Comment</key> | 4375 | <key>Comment</key> |
3935 | <string>Version number of cache</string> | 4376 | <string>Version number of cache</string> |
3936 | <key>Persist</key> | 4377 | <key>Persist</key> |
3937 | <integer>1</integer> | 4378 | <integer>1</integer> |
3938 | <key>Type</key> | 4379 | <key>Type</key> |
3939 | <string>S32</string> | 4380 | <string>S32</string> |
3940 | <key>Value</key> | 4381 | <key>Value</key> |
3941 | <integer>0</integer> | 4382 | <integer>0</integer> |
3942 | </map> | 4383 | </map> |
3943 | <key>LogMessages</key> | 4384 | <key>LogMessages</key> |
3944 | <map> | 4385 | <map> |
3945 | <key>Comment</key> | 4386 | <key>Comment</key> |
3946 | <string>Log network traffic</string> | 4387 | <string>Log network traffic</string> |
3947 | <key>Persist</key> | 4388 | <key>Persist</key> |
3948 | <integer>1</integer> | 4389 | <integer>1</integer> |
3949 | <key>Type</key> | 4390 | <key>Type</key> |
3950 | <string>Boolean</string> | 4391 | <string>Boolean</string> |
3951 | <key>Value</key> | 4392 | <key>Value</key> |
3952 | <integer>0</integer> | 4393 | <integer>0</integer> |
3953 | </map> | 4394 | </map> |
3954 | <key>LoginAsGod</key> | 4395 | <key>LoginAsGod</key> |
3955 | <map> | 4396 | <map> |
3956 | <key>Comment</key> | 4397 | <key>Comment</key> |
3957 | <string>Attempt to login with god powers (Linden accounts only)</string> | 4398 | <string>Attempt to login with god powers (Linden accounts only)</string> |
3958 | <key>Persist</key> | 4399 | <key>Persist</key> |
3959 | <integer>1</integer> | 4400 | <integer>1</integer> |
3960 | <key>Type</key> | 4401 | <key>Type</key> |
3961 | <string>Boolean</string> | 4402 | <string>Boolean</string> |
3962 | <key>Value</key> | 4403 | <key>Value</key> |
3963 | <integer>0</integer> | 4404 | <integer>0</integer> |
3964 | </map> | 4405 | </map> |
3965 | <key>LoginLastLocation</key> | 4406 | <key>LoginLastLocation</key> |
3966 | <map> | 4407 | <map> |
3967 | <key>Comment</key> | 4408 | <key>Comment</key> |
3968 | <string>Login at same location you last logged out</string> | 4409 | <string>Login at same location you last logged out</string> |
3969 | <key>Persist</key> | 4410 | <key>Persist</key> |
3970 | <integer>1</integer> | 4411 | <integer>1</integer> |
3971 | <key>Type</key> | 4412 | <key>Type</key> |
3972 | <string>Boolean</string> | 4413 | <string>Boolean</string> |
3973 | <key>Value</key> | 4414 | <key>Value</key> |
3974 | <integer>1</integer> | 4415 | <integer>1</integer> |
3975 | </map> | 4416 | </map> |
3976 | <key>LoginPage</key> | 4417 | <key>LoginPage</key> |
3977 | <map> | 4418 | <map> |
3978 | <key>Comment</key> | 4419 | <key>Comment</key> |
3979 | <string>Login authentication page.</string> | 4420 | <string>Login authentication page.</string> |
3980 | <key>Persist</key> | 4421 | <key>Persist</key> |
3981 | <integer>1</integer> | 4422 | <integer>1</integer> |
3982 | <key>Type</key> | 4423 | <key>Type</key> |
3983 | <string>String</string> | 4424 | <string>String</string> |
3984 | <key>Value</key> | 4425 | <key>Value</key> |
3985 | <string /> | 4426 | <string /> |
3986 | </map> | 4427 | </map> |
3987 | <key>LoginURI</key> | ||
3988 | <map> | ||
3989 | <key>Comment</key> | ||
3990 | <string>login server and CGI prefix to use</string> | ||
3991 | <key>Persist</key> | ||
3992 | <integer>1</integer> | ||
3993 | <key>Type</key> | ||
3994 | <string>String</string> | ||
3995 | <key>Value</key> | ||
3996 | <string /> | ||
3997 | </map> | ||
3998 | <key>LosslessJ2CUpload</key> | 4428 | <key>LosslessJ2CUpload</key> |
3999 | <map> | 4429 | <map> |
4000 | <key>Comment</key> | 4430 | <key>Comment</key> |
4001 | <string>Use lossless compression for small image uploads</string> | 4431 | <string>Use lossless compression for small image uploads</string> |
4002 | <key>Persist</key> | 4432 | <key>Persist</key> |
4003 | <integer>1</integer> | 4433 | <integer>1</integer> |
4004 | <key>Type</key> | 4434 | <key>Type</key> |
4005 | <string>Boolean</string> | 4435 | <string>Boolean</string> |
4006 | <key>Value</key> | 4436 | <key>Value</key> |
4007 | <integer>0</integer> | 4437 | <integer>0</integer> |
4008 | </map> | 4438 | </map> |
4439 | <key>MainloopTimeoutDefault</key> | ||
4440 | <map> | ||
4441 | <key>Comment</key> | ||
4442 | <string>Timeout duration for mainloop lock detection, in seconds.</string> | ||
4443 | <key>Persist</key> | ||
4444 | <integer>1</integer> | ||
4445 | <key>Type</key> | ||
4446 | <string>F32</string> | ||
4447 | <key>Value</key> | ||
4448 | <real>10.0</real> | ||
4449 | </map> | ||
4009 | <key>MapOverlayIndex</key> | 4450 | <key>MapOverlayIndex</key> |
4010 | <map> | 4451 | <map> |
4011 | <key>Comment</key> | 4452 | <key>Comment</key> |
4012 | <string>Currently selected world map type</string> | 4453 | <string>Currently selected world map type</string> |
4013 | <key>Persist</key> | 4454 | <key>Persist</key> |
4014 | <integer>1</integer> | 4455 | <integer>1</integer> |
4015 | <key>Type</key> | 4456 | <key>Type</key> |
4016 | <string>S32</string> | 4457 | <string>S32</string> |
4017 | <key>Value</key> | 4458 | <key>Value</key> |
4018 | <integer>0</integer> | 4459 | <integer>0</integer> |
4019 | </map> | 4460 | </map> |
4020 | <key>MapScale</key> | 4461 | <key>MapScale</key> |
4021 | <map> | 4462 | <map> |
4022 | <key>Comment</key> | 4463 | <key>Comment</key> |
4023 | <string>World map zoom level (pixels per region)</string> | 4464 | <string>World map zoom level (pixels per region)</string> |
4024 | <key>Persist</key> | 4465 | <key>Persist</key> |
4025 | <integer>1</integer> | 4466 | <integer>1</integer> |
4026 | <key>Type</key> | 4467 | <key>Type</key> |
4027 | <string>F32</string> | 4468 | <string>F32</string> |
4028 | <key>Value</key> | 4469 | <key>Value</key> |
4029 | <real>128</real> | 4470 | <real>128.0</real> |
4030 | </map> | 4471 | </map> |
4031 | <key>MapShowClassifieds</key> | 4472 | <key>MapShowClassifieds</key> |
4032 | <map> | 4473 | <map> |
4033 | <key>Comment</key> | 4474 | <key>Comment</key> |
4034 | <string>Show locations associated with classified ads on world map</string> | 4475 | <string>Show locations associated with classified ads on world map</string> |
4035 | <key>Persist</key> | 4476 | <key>Persist</key> |
4036 | <integer>1</integer> | 4477 | <integer>1</integer> |
4037 | <key>Type</key> | 4478 | <key>Type</key> |
4038 | <string>Boolean</string> | 4479 | <string>Boolean</string> |
4039 | <key>Value</key> | 4480 | <key>Value</key> |
4040 | <integer>1</integer> | 4481 | <integer>1</integer> |
4041 | </map> | 4482 | </map> |
4042 | <key>MapShowEvents</key> | 4483 | <key>MapShowEvents</key> |
4043 | <map> | 4484 | <map> |
4044 | <key>Comment</key> | 4485 | <key>Comment</key> |
4045 | <string>Show events on world map</string> | 4486 | <string>Show events on world map</string> |
4046 | <key>Persist</key> | 4487 | <key>Persist</key> |
4047 | <integer>1</integer> | 4488 | <integer>1</integer> |
4048 | <key>Type</key> | 4489 | <key>Type</key> |
4049 | <string>Boolean</string> | 4490 | <string>Boolean</string> |
4050 | <key>Value</key> | 4491 | <key>Value</key> |
4051 | <integer>1</integer> | 4492 | <integer>1</integer> |
4052 | </map> | 4493 | </map> |
4053 | <key>MapShowInfohubs</key> | 4494 | <key>MapShowInfohubs</key> |
4054 | <map> | 4495 | <map> |
4055 | <key>Comment</key> | 4496 | <key>Comment</key> |
4056 | <string>Show infohubs on the world map</string> | 4497 | <string>Show infohubs on the world map</string> |
4057 | <key>Persist</key> | 4498 | <key>Persist</key> |
4058 | <integer>1</integer> | 4499 | <integer>1</integer> |
4059 | <key>Type</key> | 4500 | <key>Type</key> |
4060 | <string>Boolean</string> | 4501 | <string>Boolean</string> |
4061 | <key>Value</key> | 4502 | <key>Value</key> |
4062 | <integer>1</integer> | 4503 | <integer>1</integer> |
4063 | </map> | 4504 | </map> |
4064 | <key>MapShowLandForSale</key> | 4505 | <key>MapShowLandForSale</key> |
4065 | <map> | 4506 | <map> |
4066 | <key>Comment</key> | 4507 | <key>Comment</key> |
4067 | <string>Show land for sale on world map</string> | 4508 | <string>Show land for sale on world map</string> |
4068 | <key>Persist</key> | 4509 | <key>Persist</key> |
4069 | <integer>1</integer> | 4510 | <integer>1</integer> |
4070 | <key>Type</key> | 4511 | <key>Type</key> |
4071 | <string>Boolean</string> | 4512 | <string>Boolean</string> |
4072 | <key>Value</key> | 4513 | <key>Value</key> |
4073 | <integer>0</integer> | 4514 | <integer>0</integer> |
4074 | </map> | 4515 | </map> |
4075 | <key>MapShowPeople</key> | 4516 | <key>MapShowPeople</key> |
4076 | <map> | 4517 | <map> |
4077 | <key>Comment</key> | 4518 | <key>Comment</key> |
4078 | <string>Show other users on world map</string> | 4519 | <string>Show other users on world map</string> |
4079 | <key>Persist</key> | 4520 | <key>Persist</key> |
4080 | <integer>1</integer> | 4521 | <integer>1</integer> |
4081 | <key>Type</key> | 4522 | <key>Type</key> |
4082 | <string>Boolean</string> | 4523 | <string>Boolean</string> |
4083 | <key>Value</key> | 4524 | <key>Value</key> |
4084 | <integer>1</integer> | 4525 | <integer>1</integer> |
4085 | </map> | 4526 | </map> |
4086 | <key>MapShowPopular</key> | ||
4087 | <map> | ||
4088 | <key>Comment</key> | ||
4089 | <string>Show popular places on world map</string> | ||
4090 | <key>Persist</key> | ||
4091 | <integer>1</integer> | ||
4092 | <key>Type</key> | ||
4093 | <string>Boolean</string> | ||
4094 | <key>Value</key> | ||
4095 | <integer>1</integer> | ||
4096 | </map> | ||
4097 | <key>MapShowTelehubs</key> | 4527 | <key>MapShowTelehubs</key> |
4098 | <map> | 4528 | <map> |
4099 | <key>Comment</key> | 4529 | <key>Comment</key> |
4100 | <string>Show telehubs on world map</string> | 4530 | <string>Show telehubs on world map</string> |
4101 | <key>Persist</key> | 4531 | <key>Persist</key> |
4102 | <integer>1</integer> | 4532 | <integer>1</integer> |
4103 | <key>Type</key> | 4533 | <key>Type</key> |
4104 | <string>Boolean</string> | 4534 | <string>Boolean</string> |
4105 | <key>Value</key> | 4535 | <key>Value</key> |
4106 | <integer>1</integer> | 4536 | <integer>1</integer> |
4107 | </map> | 4537 | </map> |
4108 | <key>Marker</key> | 4538 | <key>Marker</key> |
4109 | <map> | 4539 | <map> |
4110 | <key>Comment</key> | 4540 | <key>Comment</key> |
4111 | <string>[NOT USED]</string> | 4541 | <string>[NOT USED]</string> |
4112 | <key>Persist</key> | 4542 | <key>Persist</key> |
4113 | <integer>1</integer> | 4543 | <integer>1</integer> |
4114 | <key>Type</key> | 4544 | <key>Type</key> |
4115 | <string>String</string> | 4545 | <string>String</string> |
4116 | <key>Value</key> | 4546 | <key>Value</key> |
4117 | <string /> | 4547 | <string /> |
4118 | </map> | 4548 | </map> |
4119 | <key>MaxDragDistance</key> | 4549 | <key>MaxDragDistance</key> |
4120 | <map> | 4550 | <map> |
4121 | <key>Comment</key> | 4551 | <key>Comment</key> |
4122 | <string>Maximum allowed translation distance in a single operation of translate tool (meters from start point)</string> | 4552 | <string>Maximum allowed translation distance in a single operation of translate tool (meters from start point)</string> |
4123 | <key>Persist</key> | 4553 | <key>Persist</key> |
4124 | <integer>1</integer> | 4554 | <integer>1</integer> |
4125 | <key>Type</key> | 4555 | <key>Type</key> |
4126 | <string>F32</string> | 4556 | <string>F32</string> |
4127 | <key>Value</key> | 4557 | <key>Value</key> |
4128 | <real>48</real> | 4558 | <real>48.0</real> |
4129 | </map> | 4559 | </map> |
4130 | <key>MaxSelectDistance</key> | 4560 | <key>MaxSelectDistance</key> |
4131 | <map> | 4561 | <map> |
4132 | <key>Comment</key> | 4562 | <key>Comment</key> |
4133 | <string>Maximum allowed selection distance (meters from avatar)</string> | 4563 | <string>Maximum allowed selection distance (meters from avatar)</string> |
4134 | <key>Persist</key> | 4564 | <key>Persist</key> |
4135 | <integer>1</integer> | 4565 | <integer>1</integer> |
4136 | <key>Type</key> | 4566 | <key>Type</key> |
4137 | <string>F32</string> | 4567 | <string>F32</string> |
4138 | <key>Value</key> | 4568 | <key>Value</key> |
4139 | <real>64</real> | 4569 | <real>64.0</real> |
4140 | </map> | 4570 | </map> |
4141 | <key>MeanCollisionBump</key> | 4571 | <key>MeanCollisionBump</key> |
4142 | <map> | 4572 | <map> |
4143 | <key>Comment</key> | 4573 | <key>Comment</key> |
4144 | <string>You have experienced an abuse of being bumped by an object or avatar</string> | 4574 | <string>You have experienced an abuse of being bumped by an object or avatar</string> |
4145 | <key>Persist</key> | 4575 | <key>Persist</key> |
4146 | <integer>1</integer> | 4576 | <integer>1</integer> |
4147 | <key>Type</key> | 4577 | <key>Type</key> |
4148 | <string>Boolean</string> | 4578 | <string>Boolean</string> |
4149 | <key>Value</key> | 4579 | <key>Value</key> |
4150 | <integer>0</integer> | 4580 | <integer>0</integer> |
4151 | </map> | 4581 | </map> |
4152 | <key>MeanCollisionPhysical</key> | 4582 | <key>MeanCollisionPhysical</key> |
4153 | <map> | 4583 | <map> |
4154 | <key>Comment</key> | 4584 | <key>Comment</key> |
4155 | <string>You have experienced an abuse from a physical object</string> | 4585 | <string>You have experienced an abuse from a physical object</string> |
4156 | <key>Persist</key> | 4586 | <key>Persist</key> |
4157 | <integer>1</integer> | 4587 | <integer>1</integer> |
4158 | <key>Type</key> | 4588 | <key>Type</key> |
4159 | <string>Boolean</string> | 4589 | <string>Boolean</string> |
4160 | <key>Value</key> | 4590 | <key>Value</key> |
4161 | <integer>0</integer> | 4591 | <integer>0</integer> |
4162 | </map> | 4592 | </map> |
4163 | <key>MeanCollisionPushObject</key> | 4593 | <key>MeanCollisionPushObject</key> |
4164 | <map> | 4594 | <map> |
4165 | <key>Comment</key> | 4595 | <key>Comment</key> |
4166 | <string>You have experienced an abuse of being pushed by a scripted object</string> | 4596 | <string>You have experienced an abuse of being pushed by a scripted object</string> |
4167 | <key>Persist</key> | 4597 | <key>Persist</key> |
4168 | <integer>1</integer> | 4598 | <integer>1</integer> |
4169 | <key>Type</key> | 4599 | <key>Type</key> |
4170 | <string>Boolean</string> | 4600 | <string>Boolean</string> |
4171 | <key>Value</key> | 4601 | <key>Value</key> |
4172 | <integer>0</integer> | 4602 | <integer>0</integer> |
4173 | </map> | 4603 | </map> |
4174 | <key>MeanCollisionScripted</key> | 4604 | <key>MeanCollisionScripted</key> |
4175 | <map> | 4605 | <map> |
4176 | <key>Comment</key> | 4606 | <key>Comment</key> |
4177 | <string>You have experienced an abuse from a scripted object</string> | 4607 | <string>You have experienced an abuse from a scripted object</string> |
4178 | <key>Persist</key> | 4608 | <key>Persist</key> |
4179 | <integer>1</integer> | 4609 | <integer>1</integer> |
4180 | <key>Type</key> | 4610 | <key>Type</key> |
4181 | <string>Boolean</string> | 4611 | <string>Boolean</string> |
4182 | <key>Value</key> | 4612 | <key>Value</key> |
4183 | <integer>0</integer> | 4613 | <integer>0</integer> |
4184 | </map> | 4614 | </map> |
4185 | <key>MeanCollisionSelected</key> | 4615 | <key>MeanCollisionSelected</key> |
4186 | <map> | 4616 | <map> |
4187 | <key>Comment</key> | 4617 | <key>Comment</key> |
4188 | <string>You have experienced an abuse of being pushed via a selected object</string> | 4618 | <string>You have experienced an abuse of being pushed via a selected object</string> |
4189 | <key>Persist</key> | 4619 | <key>Persist</key> |
4190 | <integer>1</integer> | 4620 | <integer>1</integer> |
4191 | <key>Type</key> | 4621 | <key>Type</key> |
4192 | <string>Boolean</string> | 4622 | <string>Boolean</string> |
4193 | <key>Value</key> | 4623 | <key>Value</key> |
4194 | <integer>0</integer> | 4624 | <integer>0</integer> |
4195 | </map> | 4625 | </map> |
4196 | <key>MenuAccessKeyTime</key> | 4626 | <key>MenuAccessKeyTime</key> |
4197 | <map> | 4627 | <map> |
4198 | <key>Comment</key> | 4628 | <key>Comment</key> |
4199 | <string>Time (seconds) in which the menu key must be tapped to move focus to the menu bar</string> | 4629 | <string>Time (seconds) in which the menu key must be tapped to move focus to the menu bar</string> |
4200 | <key>Persist</key> | 4630 | <key>Persist</key> |
4201 | <integer>1</integer> | 4631 | <integer>1</integer> |
4202 | <key>Type</key> | 4632 | <key>Type</key> |
4203 | <string>F32</string> | 4633 | <string>F32</string> |
4204 | <key>Value</key> | 4634 | <key>Value</key> |
4205 | <real>0.25</real> | 4635 | <real>0.25</real> |
4206 | </map> | 4636 | </map> |
4207 | <key>MenuBarHeight</key> | 4637 | <key>MenuBarHeight</key> |
4208 | <map> | 4638 | <map> |
4209 | <key>Comment</key> | 4639 | <key>Comment</key> |
4210 | <string /> | 4640 | <string /> |
4211 | <key>Persist</key> | 4641 | <key>Persist</key> |
4212 | <integer>0</integer> | 4642 | <integer>0</integer> |
4213 | <key>Type</key> | 4643 | <key>Type</key> |
4214 | <string>S32</string> | 4644 | <string>S32</string> |
4215 | <key>Value</key> | 4645 | <key>Value</key> |
4216 | <integer>18</integer> | 4646 | <integer>18</integer> |
4217 | </map> | 4647 | </map> |
4218 | <key>MenuBarWidth</key> | 4648 | <key>MenuBarWidth</key> |
4219 | <map> | 4649 | <map> |
4220 | <key>Comment</key> | 4650 | <key>Comment</key> |
4221 | <string /> | 4651 | <string /> |
4222 | <key>Persist</key> | 4652 | <key>Persist</key> |
4223 | <integer>0</integer> | 4653 | <integer>0</integer> |
4224 | <key>Type</key> | 4654 | <key>Type</key> |
4225 | <string>S32</string> | 4655 | <string>S32</string> |
4226 | <key>Value</key> | 4656 | <key>Value</key> |
4227 | <integer>410</integer> | 4657 | <integer>410</integer> |
4228 | </map> | 4658 | </map> |
4229 | <key>MiniMapRotate</key> | 4659 | <key>MiniMapRotate</key> |
4230 | <map> | 4660 | <map> |
4231 | <key>Comment</key> | 4661 | <key>Comment</key> |
4232 | <string>Rotate miniature world map to avatar direction</string> | 4662 | <string>Rotate miniature world map to avatar direction</string> |
4233 | <key>Persist</key> | 4663 | <key>Persist</key> |
4234 | <integer>1</integer> | 4664 | <integer>1</integer> |
4235 | <key>Type</key> | 4665 | <key>Type</key> |
4236 | <string>Boolean</string> | 4666 | <string>Boolean</string> |
4237 | <key>Value</key> | 4667 | <key>Value</key> |
4238 | <integer>1</integer> | 4668 | <integer>1</integer> |
4239 | </map> | 4669 | </map> |
4240 | <key>MiniMapScale</key> | 4670 | <key>MiniMapScale</key> |
4241 | <map> | 4671 | <map> |
4242 | <key>Comment</key> | 4672 | <key>Comment</key> |
4243 | <string>Miniature world map zoom levle (pixels per region)</string> | 4673 | <string>Miniature world map zoom levle (pixels per region)</string> |
4244 | <key>Persist</key> | 4674 | <key>Persist</key> |
4245 | <integer>1</integer> | 4675 | <integer>1</integer> |
4246 | <key>Type</key> | 4676 | <key>Type</key> |
4247 | <string>F32</string> | 4677 | <string>F32</string> |
4248 | <key>Value</key> | 4678 | <key>Value</key> |
4249 | <real>128</real> | 4679 | <real>128.0</real> |
4250 | </map> | 4680 | </map> |
4251 | <key>MouseSensitivity</key> | 4681 | <key>MouseSensitivity</key> |
4252 | <map> | 4682 | <map> |
4253 | <key>Comment</key> | 4683 | <key>Comment</key> |
4254 | <string>Controls responsiveness of mouse when in mouselook mode (fraction or multiple of default mouse sensitivity)</string> | 4684 | <string>Controls responsiveness of mouse when in mouselook mode (fraction or multiple of default mouse sensitivity)</string> |
4255 | <key>Persist</key> | 4685 | <key>Persist</key> |
4256 | <integer>1</integer> | 4686 | <integer>1</integer> |
4257 | <key>Type</key> | 4687 | <key>Type</key> |
4258 | <string>F32</string> | 4688 | <string>F32</string> |
4259 | <key>Value</key> | 4689 | <key>Value</key> |
4260 | <real>3</real> | 4690 | <real>3.0</real> |
4261 | </map> | 4691 | </map> |
4262 | <key>MouseSmooth</key> | 4692 | <key>MouseSmooth</key> |
4263 | <map> | 4693 | <map> |
4264 | <key>Comment</key> | 4694 | <key>Comment</key> |
4265 | <string>Smooths out motion of mouse when in mouselook mode.</string> | 4695 | <string>Smooths out motion of mouse when in mouselook mode.</string> |
4266 | <key>Persist</key> | 4696 | <key>Persist</key> |
4267 | <integer>1</integer> | 4697 | <integer>1</integer> |
4268 | <key>Type</key> | 4698 | <key>Type</key> |
4269 | <string>Boolean</string> | 4699 | <string>Boolean</string> |
4270 | <key>Value</key> | 4700 | <key>Value</key> |
4271 | <integer>0</integer> | 4701 | <integer>0</integer> |
4272 | </map> | 4702 | </map> |
4273 | <key>MouseSun</key> | 4703 | <key>MouseSun</key> |
4274 | <map> | 4704 | <map> |
4275 | <key>Comment</key> | 4705 | <key>Comment</key> |
4276 | <string /> | 4706 | <string /> |
4277 | <key>Persist</key> | 4707 | <key>Persist</key> |
4278 | <integer>0</integer> | 4708 | <integer>0</integer> |
4279 | <key>Type</key> | 4709 | <key>Type</key> |
4280 | <string>Boolean</string> | 4710 | <string>Boolean</string> |
4281 | <key>Value</key> | 4711 | <key>Value</key> |
4282 | <integer>0</integer> | 4712 | <integer>0</integer> |
4283 | </map> | 4713 | </map> |
4284 | <key>MouselookBtnState</key> | 4714 | <key>MouselookBtnState</key> |
4285 | <map> | 4715 | <map> |
4286 | <key>Comment</key> | 4716 | <key>Comment</key> |
4287 | <string /> | 4717 | <string /> |
4288 | <key>Persist</key> | 4718 | <key>Persist</key> |
4289 | <integer>0</integer> | 4719 | <integer>0</integer> |
4290 | <key>Type</key> | 4720 | <key>Type</key> |
4291 | <string>Boolean</string> | 4721 | <string>Boolean</string> |
4292 | <key>Value</key> | 4722 | <key>Value</key> |
4293 | <integer>0</integer> | 4723 | <integer>0</integer> |
4294 | </map> | 4724 | </map> |
4295 | <key>MoveDownBtnRect</key> | 4725 | <key>MoveDownBtnRect</key> |
4296 | <map> | 4726 | <map> |
4297 | <key>Comment</key> | 4727 | <key>Comment</key> |
4298 | <string /> | 4728 | <string /> |
4299 | <key>Persist</key> | 4729 | <key>Persist</key> |
4300 | <integer>0</integer> | 4730 | <integer>0</integer> |
4301 | <key>Type</key> | 4731 | <key>Type</key> |
4302 | <string>Rect</string> | 4732 | <string>Rect</string> |
4303 | <key>Value</key> | 4733 | <key>Value</key> |
4304 | <array> | 4734 | <array> |
4305 | <integer>91</integer> | 4735 | <integer>91</integer> |
4306 | <integer>29</integer> | 4736 | <integer>29</integer> |
4307 | <integer>116</integer> | 4737 | <integer>116</integer> |
4308 | <integer>4</integer> | 4738 | <integer>4</integer> |
4309 | </array> | 4739 | </array> |
4310 | </map> | 4740 | </map> |
4311 | <key>MoveUpBtnRect</key> | 4741 | <key>MoveUpBtnRect</key> |
4312 | <map> | 4742 | <map> |
4313 | <key>Comment</key> | 4743 | <key>Comment</key> |
4314 | <string /> | 4744 | <string /> |
4315 | <key>Persist</key> | 4745 | <key>Persist</key> |
4316 | <integer>0</integer> | 4746 | <integer>0</integer> |
4317 | <key>Type</key> | 4747 | <key>Type</key> |
4318 | <string>Rect</string> | 4748 | <string>Rect</string> |
4319 | <key>Value</key> | 4749 | <key>Value</key> |
4320 | <array> | 4750 | <array> |
4321 | <integer>91</integer> | 4751 | <integer>91</integer> |
4322 | <integer>54</integer> | 4752 | <integer>54</integer> |
4323 | <integer>116</integer> | 4753 | <integer>116</integer> |
4324 | <integer>29</integer> | 4754 | <integer>29</integer> |
4325 | </array> | 4755 | </array> |
4326 | </map> | 4756 | </map> |
4327 | <key>MuteAmbient</key> | 4757 | <key>MuteAmbient</key> |
4328 | <map> | 4758 | <map> |
4329 | <key>Comment</key> | 4759 | <key>Comment</key> |
4330 | <string>Ambient sound effects, such as wind noise, play at 0 volume</string> | 4760 | <string>Ambient sound effects, such as wind noise, play at 0 volume</string> |
4331 | <key>Persist</key> | 4761 | <key>Persist</key> |
4332 | <integer>1</integer> | 4762 | <integer>1</integer> |
4333 | <key>Type</key> | 4763 | <key>Type</key> |
4334 | <string>Boolean</string> | 4764 | <string>Boolean</string> |
4335 | <key>Value</key> | 4765 | <key>Value</key> |
4336 | <integer>0</integer> | 4766 | <integer>0</integer> |
4337 | </map> | 4767 | </map> |
4338 | <key>MuteAudio</key> | 4768 | <key>MuteAudio</key> |
4339 | <map> | 4769 | <map> |
4340 | <key>Comment</key> | 4770 | <key>Comment</key> |
4341 | <string>All audio plays at 0 volume (streaming audio still takes up bandwidth, for example)</string> | 4771 | <string>All audio plays at 0 volume (streaming audio still takes up bandwidth, for example)</string> |
4342 | <key>Persist</key> | 4772 | <key>Persist</key> |
4343 | <integer>1</integer> | 4773 | <integer>1</integer> |
4344 | <key>Type</key> | 4774 | <key>Type</key> |
4345 | <string>Boolean</string> | 4775 | <string>Boolean</string> |
4346 | <key>Value</key> | 4776 | <key>Value</key> |
4347 | <integer>0</integer> | 4777 | <integer>0</integer> |
4348 | </map> | 4778 | </map> |
4349 | <key>MuteMedia</key> | 4779 | <key>MuteMedia</key> |
4350 | <map> | 4780 | <map> |
4351 | <key>Comment</key> | 4781 | <key>Comment</key> |
4352 | <string>Media plays at 0 volume (streaming audio still takes up bandwidth)</string> | 4782 | <string>Media plays at 0 volume (streaming audio still takes up bandwidth)</string> |
4353 | <key>Persist</key> | 4783 | <key>Persist</key> |
4354 | <integer>1</integer> | 4784 | <integer>1</integer> |
4355 | <key>Type</key> | 4785 | <key>Type</key> |
4356 | <string>Boolean</string> | 4786 | <string>Boolean</string> |
4357 | <key>Value</key> | 4787 | <key>Value</key> |
4358 | <integer>0</integer> | 4788 | <integer>0</integer> |
4359 | </map> | 4789 | </map> |
4360 | <key>MuteMusic</key> | 4790 | <key>MuteMusic</key> |
4361 | <map> | 4791 | <map> |
4362 | <key>Comment</key> | 4792 | <key>Comment</key> |
4363 | <string>Music plays at 0 volume (streaming audio still takes up bandwidth)</string> | 4793 | <string>Music plays at 0 volume (streaming audio still takes up bandwidth)</string> |
4364 | <key>Persist</key> | 4794 | <key>Persist</key> |
4365 | <integer>1</integer> | 4795 | <integer>1</integer> |
4366 | <key>Type</key> | 4796 | <key>Type</key> |
4367 | <string>Boolean</string> | 4797 | <string>Boolean</string> |
4368 | <key>Value</key> | 4798 | <key>Value</key> |
4369 | <integer>0</integer> | 4799 | <integer>0</integer> |
4370 | </map> | 4800 | </map> |
4371 | <key>MuteSounds</key> | 4801 | <key>MuteSounds</key> |
4372 | <map> | 4802 | <map> |
4373 | <key>Comment</key> | 4803 | <key>Comment</key> |
4374 | <string>Sound effects play at 0 volume</string> | 4804 | <string>Sound effects play at 0 volume</string> |
4375 | <key>Persist</key> | 4805 | <key>Persist</key> |
4376 | <integer>1</integer> | 4806 | <integer>1</integer> |
4377 | <key>Type</key> | 4807 | <key>Type</key> |
4378 | <string>Boolean</string> | 4808 | <string>Boolean</string> |
4379 | <key>Value</key> | 4809 | <key>Value</key> |
4380 | <integer>0</integer> | 4810 | <integer>0</integer> |
4381 | </map> | 4811 | </map> |
4382 | <key>MuteUI</key> | 4812 | <key>MuteUI</key> |
4383 | <map> | 4813 | <map> |
4384 | <key>Comment</key> | 4814 | <key>Comment</key> |
4385 | <string>UI sound effects play at 0 volume</string> | 4815 | <string>UI sound effects play at 0 volume</string> |
4386 | <key>Persist</key> | 4816 | <key>Persist</key> |
4387 | <integer>1</integer> | 4817 | <integer>1</integer> |
4388 | <key>Type</key> | 4818 | <key>Type</key> |
4389 | <string>Boolean</string> | 4819 | <string>Boolean</string> |
4390 | <key>Value</key> | 4820 | <key>Value</key> |
4391 | <integer>0</integer> | 4821 | <integer>0</integer> |
4392 | </map> | 4822 | </map> |
4393 | <key>MuteVoice</key> | 4823 | <key>MuteVoice</key> |
4394 | <map> | 4824 | <map> |
4395 | <key>Comment</key> | 4825 | <key>Comment</key> |
4396 | <string>Voice plays at 0 volume (streaming audio still takes up bandwidth)</string> | 4826 | <string>Voice plays at 0 volume (streaming audio still takes up bandwidth)</string> |
4397 | <key>Persist</key> | 4827 | <key>Persist</key> |
4398 | <integer>1</integer> | 4828 | <integer>1</integer> |
4399 | <key>Type</key> | 4829 | <key>Type</key> |
4400 | <string>Boolean</string> | 4830 | <string>Boolean</string> |
4401 | <key>Value</key> | 4831 | <key>Value</key> |
4402 | <integer>0</integer> | 4832 | <integer>0</integer> |
4403 | </map> | 4833 | </map> |
4404 | <key>MuteWhenMinimized</key> | 4834 | <key>MuteWhenMinimized</key> |
4405 | <map> | 4835 | <map> |
4406 | <key>Comment</key> | 4836 | <key>Comment</key> |
4407 | <string>Mute audio when SL window is minimized</string> | 4837 | <string>Mute audio when SL window is minimized</string> |
4408 | <key>Persist</key> | 4838 | <key>Persist</key> |
4409 | <integer>1</integer> | 4839 | <integer>1</integer> |
4410 | <key>Type</key> | 4840 | <key>Type</key> |
4411 | <string>Boolean</string> | 4841 | <string>Boolean</string> |
4412 | <key>Value</key> | 4842 | <key>Value</key> |
4413 | <integer>1</integer> | 4843 | <integer>1</integer> |
4414 | </map> | 4844 | </map> |
4415 | <key>NewCacheLocation</key> | 4845 | <key>NewCacheLocation</key> |
4416 | <map> | 4846 | <map> |
4417 | <key>Comment</key> | 4847 | <key>Comment</key> |
4418 | <string>Change the location of the local disk cache to this</string> | 4848 | <string>Change the location of the local disk cache to this</string> |
4419 | <key>Persist</key> | 4849 | <key>Persist</key> |
4420 | <integer>1</integer> | 4850 | <integer>1</integer> |
4421 | <key>Type</key> | 4851 | <key>Type</key> |
4422 | <string>String</string> | 4852 | <string>String</string> |
4423 | <key>Value</key> | 4853 | <key>Value</key> |
4424 | <string /> | 4854 | <string /> |
4425 | </map> | 4855 | </map> |
4426 | <key>NextLoginLocation</key> | 4856 | <key>NextLoginLocation</key> |
4427 | <map> | 4857 | <map> |
4428 | <key>Comment</key> | 4858 | <key>Comment</key> |
4429 | <string>Location to log into by default.</string> | 4859 | <string>Location to log into by default.</string> |
4430 | <key>Persist</key> | 4860 | <key>Persist</key> |
4431 | <integer>1</integer> | 4861 | <integer>1</integer> |
4432 | <key>Type</key> | 4862 | <key>Type</key> |
4433 | <string>String</string> | 4863 | <string>String</string> |
4434 | <key>Value</key> | 4864 | <key>Value</key> |
4435 | <string /> | 4865 | <string /> |
4436 | </map> | 4866 | </map> |
4437 | <key>NoAudio</key> | 4867 | <key>NoAudio</key> |
4438 | <map> | 4868 | <map> |
4439 | <key>Comment</key> | 4869 | <key>Comment</key> |
4440 | <string>Disable audio playback.</string> | 4870 | <string>Disable audio playback.</string> |
4441 | <key>Persist</key> | 4871 | <key>Persist</key> |
4442 | <integer>1</integer> | 4872 | <integer>1</integer> |
4443 | <key>Type</key> | 4873 | <key>Type</key> |
4444 | <string>Boolean</string> | 4874 | <string>Boolean</string> |
4445 | <key>Value</key> | 4875 | <key>Value</key> |
4446 | <integer>0</integer> | 4876 | <integer>0</integer> |
4447 | </map> | 4877 | </map> |
4448 | <key>NoHardwareProbe</key> | 4878 | <key>NoHardwareProbe</key> |
4449 | <map> | 4879 | <map> |
4450 | <key>Comment</key> | 4880 | <key>Comment</key> |
4451 | <string>Disable hardware probe.</string> | 4881 | <string>Disable hardware probe.</string> |
4452 | <key>Persist</key> | 4882 | <key>Persist</key> |
4453 | <integer>1</integer> | 4883 | <integer>1</integer> |
4454 | <key>Type</key> | 4884 | <key>Type</key> |
4455 | <string>Boolean</string> | 4885 | <string>Boolean</string> |
4456 | <key>Value</key> | 4886 | <key>Value</key> |
4457 | <integer>0</integer> | 4887 | <integer>0</integer> |
4458 | </map> | 4888 | </map> |
4459 | <key>NoInventoryLibrary</key> | 4889 | <key>NoInventoryLibrary</key> |
4460 | <map> | 4890 | <map> |
4461 | <key>Comment</key> | 4891 | <key>Comment</key> |
4462 | <string>Do not request inventory library.</string> | 4892 | <string>Do not request inventory library.</string> |
4463 | <key>Persist</key> | 4893 | <key>Persist</key> |
4464 | <integer>1</integer> | 4894 | <integer>1</integer> |
4465 | <key>Type</key> | 4895 | <key>Type</key> |
4466 | <string>Boolean</string> | 4896 | <string>Boolean</string> |
4467 | <key>Value</key> | 4897 | <key>Value</key> |
4468 | <integer>0</integer> | 4898 | <integer>0</integer> |
4469 | </map> | 4899 | </map> |
4470 | <key>NoPreload</key> | 4900 | <key>NoPreload</key> |
4471 | <map> | 4901 | <map> |
4472 | <key>Comment</key> | 4902 | <key>Comment</key> |
4473 | <string>Disable sound and image preload.</string> | 4903 | <string>Disable sound and image preload.</string> |
4474 | <key>Persist</key> | 4904 | <key>Persist</key> |
4475 | <integer>1</integer> | 4905 | <integer>1</integer> |
4476 | <key>Type</key> | 4906 | <key>Type</key> |
4477 | <string>Boolean</string> | 4907 | <string>Boolean</string> |
4478 | <key>Value</key> | 4908 | <key>Value</key> |
4479 | <integer>0</integer> | 4909 | <integer>0</integer> |
4480 | </map> | 4910 | </map> |
4481 | <key>NoQuickTime</key> | 4911 | <key>NoQuickTime</key> |
4482 | <map> | 4912 | <map> |
4483 | <key>Comment</key> | 4913 | <key>Comment</key> |
4484 | <string>Disable quicktime playback.</string> | 4914 | <string>Disable quicktime playback.</string> |
4485 | <key>Persist</key> | 4915 | <key>Persist</key> |
4486 | <integer>1</integer> | 4916 | <integer>1</integer> |
4487 | <key>Type</key> | 4917 | <key>Type</key> |
4488 | <string>Boolean</string> | 4918 | <string>Boolean</string> |
4489 | <key>Value</key> | 4919 | <key>Value</key> |
4490 | <integer>0</integer> | 4920 | <integer>0</integer> |
4491 | </map> | 4921 | </map> |
4492 | <key>NoVerifySSLCert</key> | 4922 | <key>NoVerifySSLCert</key> |
4493 | <map> | 4923 | <map> |
4494 | <key>Comment</key> | 4924 | <key>Comment</key> |
4495 | <string>Do not verify SSL peers.</string> | 4925 | <string>Do not verify SSL peers.</string> |
4496 | <key>Persist</key> | 4926 | <key>Persist</key> |
4497 | <integer>1</integer> | 4927 | <integer>1</integer> |
4498 | <key>Type</key> | 4928 | <key>Type</key> |
4499 | <string>Boolean</string> | 4929 | <string>Boolean</string> |
4500 | <key>Value</key> | 4930 | <key>Value</key> |
4501 | <integer>0</integer> | 4931 | <integer>0</integer> |
4502 | </map> | 4932 | </map> |
4503 | <key>NotecardEditorRect</key> | 4933 | <key>NotecardEditorRect</key> |
4504 | <map> | 4934 | <map> |
4505 | <key>Comment</key> | 4935 | <key>Comment</key> |
4506 | <string>Rectangle for notecard editor</string> | 4936 | <string>Rectangle for notecard editor</string> |
4507 | <key>Persist</key> | 4937 | <key>Persist</key> |
4508 | <integer>1</integer> | 4938 | <integer>1</integer> |
4509 | <key>Type</key> | 4939 | <key>Type</key> |
4510 | <string>Rect</string> | 4940 | <string>Rect</string> |
4511 | <key>Value</key> | 4941 | <key>Value</key> |
4512 | <array> | 4942 | <array> |
4513 | <integer>0</integer> | 4943 | <integer>0</integer> |
4514 | <integer>400</integer> | 4944 | <integer>400</integer> |
4515 | <integer>400</integer> | 4945 | <integer>400</integer> |
4516 | <integer>0</integer> | 4946 | <integer>0</integer> |
4517 | </array> | 4947 | </array> |
4518 | </map> | 4948 | </map> |
4519 | <key>NotifyBoxHeight</key> | 4949 | <key>NotifyBoxHeight</key> |
4520 | <map> | 4950 | <map> |
4521 | <key>Comment</key> | 4951 | <key>Comment</key> |
4522 | <string>Height of notification messages</string> | 4952 | <string>Height of notification messages</string> |
4523 | <key>Persist</key> | 4953 | <key>Persist</key> |
4524 | <integer>1</integer> | 4954 | <integer>1</integer> |
4525 | <key>Type</key> | 4955 | <key>Type</key> |
4526 | <string>S32</string> | 4956 | <string>S32</string> |
4527 | <key>Value</key> | 4957 | <key>Value</key> |
4528 | <integer>200</integer> | 4958 | <integer>200</integer> |
4529 | </map> | 4959 | </map> |
4530 | <key>NotifyBoxWidth</key> | 4960 | <key>NotifyBoxWidth</key> |
4531 | <map> | 4961 | <map> |
4532 | <key>Comment</key> | 4962 | <key>Comment</key> |
4533 | <string>Width of notification messages</string> | 4963 | <string>Width of notification messages</string> |
4534 | <key>Persist</key> | 4964 | <key>Persist</key> |
4535 | <integer>1</integer> | 4965 | <integer>1</integer> |
4536 | <key>Type</key> | 4966 | <key>Type</key> |
4537 | <string>S32</string> | 4967 | <string>S32</string> |
4538 | <key>Value</key> | 4968 | <key>Value</key> |
4539 | <integer>350</integer> | 4969 | <integer>350</integer> |
4540 | </map> | 4970 | </map> |
4541 | <key>NotifyMoneyChange</key> | 4971 | <key>NotifyMoneyChange</key> |
4542 | <map> | 4972 | <map> |
4543 | <key>Comment</key> | 4973 | <key>Comment</key> |
4544 | <string>Pop up notifications for all L$ transactions</string> | 4974 | <string>Pop up notifications for all L$ transactions</string> |
4545 | <key>Persist</key> | 4975 | <key>Persist</key> |
4546 | <integer>1</integer> | 4976 | <integer>1</integer> |
4547 | <key>Type</key> | 4977 | <key>Type</key> |
4548 | <string>Boolean</string> | 4978 | <string>Boolean</string> |
4549 | <key>Value</key> | 4979 | <key>Value</key> |
4550 | <integer>1</integer> | 4980 | <integer>1</integer> |
4551 | </map> | 4981 | </map> |
4552 | <key>NotifyTipDuration</key> | 4982 | <key>NotifyTipDuration</key> |
4553 | <map> | 4983 | <map> |
4554 | <key>Comment</key> | 4984 | <key>Comment</key> |
4555 | <string>Length of time that notification tips stay on screen (seconds)</string> | 4985 | <string>Length of time that notification tips stay on screen (seconds)</string> |
4556 | <key>Persist</key> | 4986 | <key>Persist</key> |
4557 | <integer>1</integer> | 4987 | <integer>1</integer> |
4558 | <key>Type</key> | 4988 | <key>Type</key> |
4559 | <string>F32</string> | 4989 | <string>F32</string> |
4560 | <key>Value</key> | 4990 | <key>Value</key> |
4561 | <real>4</real> | 4991 | <real>4.0</real> |
4562 | </map> | 4992 | </map> |
4563 | <key>NumSessions</key> | 4993 | <key>NumSessions</key> |
4564 | <map> | 4994 | <map> |
4565 | <key>Comment</key> | 4995 | <key>Comment</key> |
4566 | <string>Number of successful logins to Second Life</string> | 4996 | <string>Number of successful logins to Second Life</string> |
4567 | <key>Persist</key> | 4997 | <key>Persist</key> |
4568 | <integer>1</integer> | 4998 | <integer>1</integer> |
4569 | <key>Type</key> | 4999 | <key>Type</key> |
4570 | <string>S32</string> | 5000 | <string>S32</string> |
4571 | <key>Value</key> | 5001 | <key>Value</key> |
4572 | <integer>0</integer> | 5002 | <integer>0</integer> |
4573 | </map> | 5003 | </map> |
4574 | <key>NumpadControl</key> | 5004 | <key>NumpadControl</key> |
4575 | <map> | 5005 | <map> |
4576 | <key>Comment</key> | 5006 | <key>Comment</key> |
4577 | <string>How numpad keys control your avatar. 0 = Like the normal arrow keys, 1 = Numpad moves avatar when numlock is off, 2 = Numpad moves avatar regardless of numlock (use this if you have no numlock)</string> | 5007 | <string>How numpad keys control your avatar. 0 = Like the normal arrow keys, 1 = Numpad moves avatar when numlock is off, 2 = Numpad moves avatar regardless of numlock (use this if you have no numlock)</string> |
4578 | <key>Persist</key> | 5008 | <key>Persist</key> |
4579 | <integer>1</integer> | 5009 | <integer>1</integer> |
4580 | <key>Type</key> | 5010 | <key>Type</key> |
4581 | <string>S32</string> | 5011 | <string>S32</string> |
4582 | <key>Value</key> | 5012 | <key>Value</key> |
4583 | <integer>0</integer> | 5013 | <integer>0</integer> |
4584 | </map> | 5014 | </map> |
4585 | <key>ObjectChatColor</key> | 5015 | <key>ObjectChatColor</key> |
4586 | <map> | 5016 | <map> |
4587 | <key>Comment</key> | 5017 | <key>Comment</key> |
4588 | <string>Color of chat messages from objects</string> | 5018 | <string>Color of chat messages from objects</string> |
4589 | <key>Persist</key> | 5019 | <key>Persist</key> |
4590 | <integer>1</integer> | 5020 | <integer>1</integer> |
4591 | <key>Type</key> | 5021 | <key>Type</key> |
4592 | <string>Color4</string> | 5022 | <string>Color4</string> |
4593 | <key>Value</key> | 5023 | <key>Value</key> |
4594 | <array> | 5024 | <array> |
4595 | <real>0.699999988079071044921875</real> | 5025 | <real>0.699999988079</real> |
4596 | <real>0.89999997615814208984375</real> | 5026 | <real>0.899999976158</real> |
4597 | <real>0.699999988079071044921875</real> | 5027 | <real>0.699999988079</real> |
4598 | <real>1</real> | 5028 | <real>1.0</real> |
4599 | </array> | 5029 | </array> |
4600 | </map> | 5030 | </map> |
4601 | <key>OpenDebugStatAdvanced</key> | 5031 | <key>OpenDebugStatAdvanced</key> |
4602 | <map> | 5032 | <map> |
4603 | <key>Comment</key> | 5033 | <key>Comment</key> |
4604 | <string>Expand advanced performance stats display</string> | 5034 | <string>Expand advanced performance stats display</string> |
4605 | <key>Persist</key> | 5035 | <key>Persist</key> |
4606 | <integer>1</integer> | 5036 | <integer>1</integer> |
4607 | <key>Type</key> | 5037 | <key>Type</key> |
4608 | <string>Boolean</string> | 5038 | <string>Boolean</string> |
4609 | <key>Value</key> | 5039 | <key>Value</key> |
4610 | <integer>0</integer> | 5040 | <integer>0</integer> |
4611 | </map> | 5041 | </map> |
4612 | <key>OpenDebugStatBasic</key> | 5042 | <key>OpenDebugStatBasic</key> |
4613 | <map> | 5043 | <map> |
4614 | <key>Comment</key> | 5044 | <key>Comment</key> |
4615 | <string>Expand basic performance stats display</string> | 5045 | <string>Expand basic performance stats display</string> |
4616 | <key>Persist</key> | 5046 | <key>Persist</key> |
4617 | <integer>1</integer> | 5047 | <integer>1</integer> |
4618 | <key>Type</key> | 5048 | <key>Type</key> |
4619 | <string>Boolean</string> | 5049 | <string>Boolean</string> |
4620 | <key>Value</key> | 5050 | <key>Value</key> |
4621 | <integer>1</integer> | 5051 | <integer>1</integer> |
4622 | </map> | 5052 | </map> |
4623 | <key>OpenDebugStatNet</key> | 5053 | <key>OpenDebugStatNet</key> |
4624 | <map> | 5054 | <map> |
4625 | <key>Comment</key> | 5055 | <key>Comment</key> |
4626 | <string>Expand network stats display</string> | 5056 | <string>Expand network stats display</string> |
4627 | <key>Persist</key> | 5057 | <key>Persist</key> |
4628 | <integer>1</integer> | 5058 | <integer>1</integer> |
4629 | <key>Type</key> | 5059 | <key>Type</key> |
4630 | <string>Boolean</string> | 5060 | <string>Boolean</string> |
4631 | <key>Value</key> | 5061 | <key>Value</key> |
4632 | <integer>1</integer> | 5062 | <integer>1</integer> |
4633 | </map> | 5063 | </map> |
4634 | <key>OpenDebugStatRender</key> | 5064 | <key>OpenDebugStatRender</key> |
4635 | <map> | 5065 | <map> |
4636 | <key>Comment</key> | 5066 | <key>Comment</key> |
4637 | <string>Expand render stats display</string> | 5067 | <string>Expand render stats display</string> |
4638 | <key>Persist</key> | 5068 | <key>Persist</key> |
4639 | <integer>1</integer> | 5069 | <integer>1</integer> |
4640 | <key>Type</key> | 5070 | <key>Type</key> |
4641 | <string>Boolean</string> | 5071 | <string>Boolean</string> |
4642 | <key>Value</key> | 5072 | <key>Value</key> |
4643 | <integer>1</integer> | 5073 | <integer>1</integer> |
4644 | </map> | 5074 | </map> |
4645 | <key>OpenDebugStatSim</key> | 5075 | <key>OpenDebugStatSim</key> |
4646 | <map> | 5076 | <map> |
4647 | <key>Comment</key> | 5077 | <key>Comment</key> |
4648 | <string>Expand simulator performance stats display</string> | 5078 | <string>Expand simulator performance stats display</string> |
4649 | <key>Persist</key> | 5079 | <key>Persist</key> |
4650 | <integer>1</integer> | 5080 | <integer>1</integer> |
4651 | <key>Type</key> | 5081 | <key>Type</key> |
4652 | <string>Boolean</string> | 5082 | <string>Boolean</string> |
4653 | <key>Value</key> | 5083 | <key>Value</key> |
4654 | <integer>1</integer> | 5084 | <integer>1</integer> |
4655 | </map> | 5085 | </map> |
4656 | <key>OutBandwidth</key> | 5086 | <key>OutBandwidth</key> |
4657 | <map> | 5087 | <map> |
4658 | <key>Comment</key> | 5088 | <key>Comment</key> |
4659 | <string>Outgoing bandwidth throttle (bps)</string> | 5089 | <string>Outgoing bandwidth throttle (bps)</string> |
4660 | <key>Persist</key> | 5090 | <key>Persist</key> |
4661 | <integer>1</integer> | 5091 | <integer>1</integer> |
4662 | <key>Type</key> | 5092 | <key>Type</key> |
4663 | <string>F32</string> | 5093 | <string>F32</string> |
4664 | <key>Value</key> | 5094 | <key>Value</key> |
4665 | <real>0</real> | 5095 | <real>0.0</real> |
4666 | </map> | 5096 | </map> |
4667 | <key>OverdrivenColor</key> | 5097 | <key>OverdrivenColor</key> |
4668 | <map> | 5098 | <map> |
4669 | <key>Comment</key> | 5099 | <key>Comment</key> |
4670 | <string>Color of various indicators when resident is speaking too loud.</string> | 5100 | <string>Color of various indicators when resident is speaking too loud.</string> |
4671 | <key>Persist</key> | 5101 | <key>Persist</key> |
4672 | <integer>1</integer> | 5102 | <integer>1</integer> |
4673 | <key>Type</key> | 5103 | <key>Type</key> |
4674 | <string>Color4</string> | 5104 | <string>Color4</string> |
4675 | <key>Value</key> | 5105 | <key>Value</key> |
4676 | <array> | 5106 | <array> |
4677 | <real>1</real> | 5107 | <real>1.0</real> |
4678 | <real>0</real> | 5108 | <real>0.0</real> |
4679 | <real>0</real> | 5109 | <real>0.0</real> |
4680 | <real>1</real> | 5110 | <real>1.0</real> |
4681 | </array> | 5111 | </array> |
4682 | </map> | 5112 | </map> |
4683 | <key>OverlayTitle</key> | 5113 | <key>OverlayTitle</key> |
4684 | <map> | 5114 | <map> |
4685 | <key>Comment</key> | 5115 | <key>Comment</key> |
4686 | <string>Controls watermark text message displayed on screen when "ShowOverlayTitle" is enabled (one word, underscores become spaces)</string> | 5116 | <string>Controls watermark text message displayed on screen when "ShowOverlayTitle" is enabled (one word, underscores become spaces)</string> |
4687 | <key>Persist</key> | 5117 | <key>Persist</key> |
4688 | <integer>1</integer> | 5118 | <integer>1</integer> |
4689 | <key>Type</key> | 5119 | <key>Type</key> |
4690 | <string>String</string> | 5120 | <string>String</string> |
4691 | <key>Value</key> | 5121 | <key>Value</key> |
4692 | <string>Set_via_OverlayTitle_in_settings.xml</string> | 5122 | <string>Set_via_OverlayTitle_in_settings.xml</string> |
4693 | </map> | 5123 | </map> |
4694 | <key>PTTCurrentlyEnabled</key> | 5124 | <key>PTTCurrentlyEnabled</key> |
4695 | <map> | 5125 | <map> |
4696 | <key>Comment</key> | 5126 | <key>Comment</key> |
4697 | <string /> | 5127 | <string /> |
4698 | <key>Persist</key> | 5128 | <key>Persist</key> |
4699 | <integer>0</integer> | 5129 | <integer>0</integer> |
4700 | <key>Type</key> | 5130 | <key>Type</key> |
4701 | <string>Boolean</string> | 5131 | <string>Boolean</string> |
4702 | <key>Value</key> | 5132 | <key>Value</key> |
4703 | <integer>1</integer> | 5133 | <integer>1</integer> |
4704 | </map> | 5134 | </map> |
4705 | <key>PacketDropPercentage</key> | 5135 | <key>PacketDropPercentage</key> |
4706 | <map> | 5136 | <map> |
4707 | <key>Comment</key> | 5137 | <key>Comment</key> |
4708 | <string>Percentage of packets dropped by the client.</string> | 5138 | <string>Percentage of packets dropped by the client.</string> |
4709 | <key>Persist</key> | 5139 | <key>Persist</key> |
4710 | <integer>1</integer> | 5140 | <integer>1</integer> |
4711 | <key>Type</key> | 5141 | <key>Type</key> |
4712 | <string>F32</string> | 5142 | <string>F32</string> |
4713 | <key>Value</key> | 5143 | <key>Value</key> |
4714 | <real>0</real> | 5144 | <real>0.0</real> |
4715 | </map> | 5145 | </map> |
5146 | <key>ParcelMediaAutoPlayEnable</key> | ||
5147 | <map> | ||
5148 | <key>Comment</key> | ||
5149 | <string>Auto play parcel media when available</string> | ||
5150 | <key>Persist</key> | ||
5151 | <integer>1</integer> | ||
5152 | <key>Type</key> | ||
5153 | <string>Boolean</string> | ||
5154 | <key>Value</key> | ||
5155 | <integer>0</integer> | ||
5156 | </map> | ||
4716 | <key>PerAccountSettingsFile</key> | 5157 | <key>PerAccountSettingsFile</key> |
4717 | <map> | 5158 | <map> |
4718 | <key>Comment</key> | 5159 | <key>Comment</key> |
4719 | <string>Persisted client settings file name (per user).</string> | 5160 | <string>Persisted client settings file name (per user).</string> |
4720 | <key>Persist</key> | 5161 | <key>Persist</key> |
4721 | <integer>0</integer> | 5162 | <integer>0</integer> |
4722 | <key>Type</key> | 5163 | <key>Type</key> |
4723 | <string>String</string> | 5164 | <string>String</string> |
4724 | <key>Value</key> | 5165 | <key>Value</key> |
4725 | <string /> | 5166 | <string /> |
4726 | </map> | 5167 | </map> |
4727 | <key>PermissionsCautionEnabled</key> | 5168 | <key>PermissionsCautionEnabled</key> |
4728 | <map> | 5169 | <map> |
4729 | <key>Comment</key> | 5170 | <key>Comment</key> |
4730 | <string>When enabled, changes the handling of script permission requests to help avoid accidental granting of certain permissions, such as the debit permission</string> | 5171 | <string>When enabled, changes the handling of script permission requests to help avoid accidental granting of certain permissions, such as the debit permission</string> |
4731 | <key>Persist</key> | 5172 | <key>Persist</key> |
4732 | <integer>0</integer> | 5173 | <integer>0</integer> |
4733 | <key>Type</key> | 5174 | <key>Type</key> |
4734 | <string>Boolean</string> | 5175 | <string>Boolean</string> |
4735 | <key>Value</key> | 5176 | <key>Value</key> |
4736 | <integer>1</integer> | 5177 | <integer>1</integer> |
4737 | </map> | 5178 | </map> |
4738 | <key>PermissionsCautionNotifyBoxHeight</key> | 5179 | <key>PermissionsCautionNotifyBoxHeight</key> |
4739 | <map> | 5180 | <map> |
4740 | <key>Comment</key> | 5181 | <key>Comment</key> |
4741 | <string>Height of caution-style notification messages</string> | 5182 | <string>Height of caution-style notification messages</string> |
4742 | <key>Persist</key> | 5183 | <key>Persist</key> |
4743 | <integer>0</integer> | 5184 | <integer>0</integer> |
4744 | <key>Type</key> | 5185 | <key>Type</key> |
4745 | <string>S32</string> | 5186 | <string>S32</string> |
4746 | <key>Value</key> | 5187 | <key>Value</key> |
4747 | <integer>344</integer> | 5188 | <integer>344</integer> |
4748 | </map> | 5189 | </map> |
4749 | <key>PermissionsManagerRect</key> | 5190 | <key>PermissionsManagerRect</key> |
4750 | <map> | 5191 | <map> |
4751 | <key>Comment</key> | 5192 | <key>Comment</key> |
4752 | <string>Rectangle for permissions manager window</string> | 5193 | <string>Rectangle for permissions manager window</string> |
4753 | <key>Persist</key> | 5194 | <key>Persist</key> |
4754 | <integer>1</integer> | 5195 | <integer>1</integer> |
4755 | <key>Type</key> | 5196 | <key>Type</key> |
4756 | <string>Rect</string> | 5197 | <string>Rect</string> |
4757 | <key>Value</key> | 5198 | <key>Value</key> |
4758 | <array> | 5199 | <array> |
4759 | <integer>0</integer> | 5200 | <integer>0</integer> |
4760 | <integer>85</integer> | 5201 | <integer>85</integer> |
4761 | <integer>300</integer> | 5202 | <integer>300</integer> |
4762 | <integer>0</integer> | 5203 | <integer>0</integer> |
4763 | </array> | 5204 | </array> |
4764 | </map> | 5205 | </map> |
4765 | <key>PickerContextOpacity</key> | 5206 | <key>PickerContextOpacity</key> |
4766 | <map> | 5207 | <map> |
4767 | <key>Comment</key> | 5208 | <key>Comment</key> |
4768 | <string>Controls overall opacity of context frustrum connecting color and texture pickers with their swatches</string> | 5209 | <string>Controls overall opacity of context frustrum connecting color and texture pickers with their swatches</string> |
4769 | <key>Persist</key> | 5210 | <key>Persist</key> |
4770 | <integer>1</integer> | 5211 | <integer>1</integer> |
4771 | <key>Type</key> | 5212 | <key>Type</key> |
4772 | <string>F32</string> | 5213 | <string>F32</string> |
4773 | <key>Value</key> | 5214 | <key>Value</key> |
4774 | <real>0.3499999940395355224609375</real> | 5215 | <real>0.34999999404</real> |
4775 | </map> | 5216 | </map> |
4776 | <key>PieMenuLineWidth</key> | 5217 | <key>PieMenuLineWidth</key> |
4777 | <map> | 5218 | <map> |
4778 | <key>Comment</key> | 5219 | <key>Comment</key> |
4779 | <string>Width of lines in pie menu display (pixels)</string> | 5220 | <string>Width of lines in pie menu display (pixels)</string> |
4780 | <key>Persist</key> | 5221 | <key>Persist</key> |
4781 | <integer>1</integer> | 5222 | <integer>1</integer> |
4782 | <key>Type</key> | 5223 | <key>Type</key> |
4783 | <string>F32</string> | 5224 | <string>F32</string> |
4784 | <key>Value</key> | 5225 | <key>Value</key> |
4785 | <real>2.5</real> | 5226 | <real>2.5</real> |
4786 | </map> | 5227 | </map> |
4787 | <key>PinTalkViewOpen</key> | 5228 | <key>PinTalkViewOpen</key> |
4788 | <map> | 5229 | <map> |
4789 | <key>Comment</key> | 5230 | <key>Comment</key> |
4790 | <string>Stay in IM after hitting return</string> | 5231 | <string>Stay in IM after hitting return</string> |
4791 | <key>Persist</key> | 5232 | <key>Persist</key> |
4792 | <integer>1</integer> | 5233 | <integer>1</integer> |
4793 | <key>Type</key> | 5234 | <key>Type</key> |
4794 | <string>Boolean</string> | 5235 | <string>Boolean</string> |
4795 | <key>Value</key> | 5236 | <key>Value</key> |
4796 | <integer>1</integer> | 5237 | <integer>1</integer> |
4797 | </map> | 5238 | </map> |
4798 | <key>PingInterpolate</key> | 5239 | <key>PingInterpolate</key> |
4799 | <map> | 5240 | <map> |
4800 | <key>Comment</key> | 5241 | <key>Comment</key> |
4801 | <string>Extrapolate object position along velocity vector based on ping delay</string> | 5242 | <string>Extrapolate object position along velocity vector based on ping delay</string> |
4802 | <key>Persist</key> | 5243 | <key>Persist</key> |
4803 | <integer>1</integer> | 5244 | <integer>1</integer> |
4804 | <key>Type</key> | 5245 | <key>Type</key> |
4805 | <string>Boolean</string> | 5246 | <string>Boolean</string> |
4806 | <key>Value</key> | 5247 | <key>Value</key> |
4807 | <integer>0</integer> | 5248 | <integer>0</integer> |
4808 | </map> | 5249 | </map> |
4809 | <key>PitchFromMousePosition</key> | 5250 | <key>PitchFromMousePosition</key> |
4810 | <map> | 5251 | <map> |
4811 | <key>Comment</key> | 5252 | <key>Comment</key> |
4812 | <string>Vertical range over which avatar head tracks mouse position (degrees of head rotation from top of window to bottom)</string> | 5253 | <string>Vertical range over which avatar head tracks mouse position (degrees of head rotation from top of window to bottom)</string> |
4813 | <key>Persist</key> | 5254 | <key>Persist</key> |
4814 | <integer>1</integer> | 5255 | <integer>1</integer> |
4815 | <key>Type</key> | 5256 | <key>Type</key> |
4816 | <string>F32</string> | 5257 | <string>F32</string> |
4817 | <key>Value</key> | 5258 | <key>Value</key> |
4818 | <real>90</real> | 5259 | <real>90.0</real> |
4819 | </map> | 5260 | </map> |
4820 | <key>PlayTypingAnim</key> | 5261 | <key>PlayTypingAnim</key> |
4821 | <map> | 5262 | <map> |
4822 | <key>Comment</key> | 5263 | <key>Comment</key> |
4823 | <string>Your avatar plays the typing animation whenever you type in the chat bar</string> | 5264 | <string>Your avatar plays the typing animation whenever you type in the chat bar</string> |
4824 | <key>Persist</key> | 5265 | <key>Persist</key> |
4825 | <integer>1</integer> | 5266 | <integer>1</integer> |
4826 | <key>Type</key> | 5267 | <key>Type</key> |
4827 | <string>Boolean</string> | 5268 | <string>Boolean</string> |
4828 | <key>Value</key> | 5269 | <key>Value</key> |
4829 | <integer>1</integer> | 5270 | <integer>1</integer> |
4830 | </map> | 5271 | </map> |
4831 | <key>PrecachingDelay</key> | 5272 | <key>PrecachingDelay</key> |
4832 | <map> | 5273 | <map> |
4833 | <key>Comment</key> | 5274 | <key>Comment</key> |
4834 | <string>Delay when logging in to load world before showing it (seconds)</string> | 5275 | <string>Delay when logging in to load world before showing it (seconds)</string> |
4835 | <key>Persist</key> | 5276 | <key>Persist</key> |
4836 | <integer>1</integer> | 5277 | <integer>1</integer> |
4837 | <key>Type</key> | 5278 | <key>Type</key> |
4838 | <string>F32</string> | 5279 | <string>F32</string> |
4839 | <key>Value</key> | 5280 | <key>Value</key> |
4840 | <real>6</real> | 5281 | <real>6.0</real> |
4841 | </map> | 5282 | </map> |
4842 | <key>PreviewAnimRect</key> | 5283 | <key>PreviewAnimRect</key> |
4843 | <map> | 5284 | <map> |
4844 | <key>Comment</key> | 5285 | <key>Comment</key> |
4845 | <string>Rectangle for animation preview window</string> | 5286 | <string>Rectangle for animation preview window</string> |
4846 | <key>Persist</key> | 5287 | <key>Persist</key> |
4847 | <integer>1</integer> | 5288 | <integer>1</integer> |
4848 | <key>Type</key> | 5289 | <key>Type</key> |
4849 | <string>Rect</string> | 5290 | <string>Rect</string> |
4850 | <key>Value</key> | 5291 | <key>Value</key> |
4851 | <array> | 5292 | <array> |
4852 | <integer>0</integer> | 5293 | <integer>0</integer> |
4853 | <integer>85</integer> | 5294 | <integer>85</integer> |
4854 | <integer>300</integer> | 5295 | <integer>300</integer> |
4855 | <integer>0</integer> | 5296 | <integer>0</integer> |
4856 | </array> | 5297 | </array> |
4857 | </map> | 5298 | </map> |
4858 | <key>PreviewClassifiedRect</key> | 5299 | <key>PreviewClassifiedRect</key> |
4859 | <map> | 5300 | <map> |
4860 | <key>Comment</key> | 5301 | <key>Comment</key> |
4861 | <string>Rectangle for URL preview window</string> | 5302 | <string>Rectangle for URL preview window</string> |
4862 | <key>Persist</key> | 5303 | <key>Persist</key> |
4863 | <integer>1</integer> | 5304 | <integer>1</integer> |
4864 | <key>Type</key> | 5305 | <key>Type</key> |
4865 | <string>Rect</string> | 5306 | <string>Rect</string> |
4866 | <key>Value</key> | 5307 | <key>Value</key> |
4867 | <array> | 5308 | <array> |
4868 | <integer>0</integer> | 5309 | <integer>0</integer> |
4869 | <integer>530</integer> | 5310 | <integer>530</integer> |
4870 | <integer>420</integer> | 5311 | <integer>420</integer> |
4871 | <integer>0</integer> | 5312 | <integer>0</integer> |
4872 | </array> | 5313 | </array> |
4873 | </map> | 5314 | </map> |
4874 | <key>PreviewEventRect</key> | 5315 | <key>PreviewEventRect</key> |
4875 | <map> | 5316 | <map> |
4876 | <key>Comment</key> | 5317 | <key>Comment</key> |
4877 | <string>Rectangle for Event preview window</string> | 5318 | <string>Rectangle for Event preview window</string> |
4878 | <key>Persist</key> | 5319 | <key>Persist</key> |
4879 | <integer>1</integer> | 5320 | <integer>1</integer> |
4880 | <key>Type</key> | 5321 | <key>Type</key> |
4881 | <string>Rect</string> | 5322 | <string>Rect</string> |
4882 | <key>Value</key> | 5323 | <key>Value</key> |
4883 | <array> | 5324 | <array> |
4884 | <integer>0</integer> | 5325 | <integer>0</integer> |
4885 | <integer>530</integer> | 5326 | <integer>530</integer> |
4886 | <integer>420</integer> | 5327 | <integer>420</integer> |
4887 | <integer>0</integer> | 5328 | <integer>0</integer> |
4888 | </array> | 5329 | </array> |
4889 | </map> | 5330 | </map> |
4890 | <key>PreviewLandmarkRect</key> | 5331 | <key>PreviewLandmarkRect</key> |
4891 | <map> | 5332 | <map> |
4892 | <key>Comment</key> | 5333 | <key>Comment</key> |
4893 | <string>Rectangle for landmark preview window</string> | 5334 | <string>Rectangle for landmark preview window</string> |
4894 | <key>Persist</key> | 5335 | <key>Persist</key> |
4895 | <integer>1</integer> | 5336 | <integer>1</integer> |
4896 | <key>Type</key> | 5337 | <key>Type</key> |
4897 | <string>Rect</string> | 5338 | <string>Rect</string> |
4898 | <key>Value</key> | 5339 | <key>Value</key> |
4899 | <array> | 5340 | <array> |
4900 | <integer>0</integer> | 5341 | <integer>0</integer> |
4901 | <integer>90</integer> | 5342 | <integer>90</integer> |
4902 | <integer>300</integer> | 5343 | <integer>300</integer> |
4903 | <integer>0</integer> | 5344 | <integer>0</integer> |
4904 | </array> | 5345 | </array> |
4905 | </map> | 5346 | </map> |
4906 | <key>PreviewObjectRect</key> | 5347 | <key>PreviewObjectRect</key> |
4907 | <map> | 5348 | <map> |
4908 | <key>Comment</key> | 5349 | <key>Comment</key> |
4909 | <string>Rectangle for object preview window</string> | 5350 | <string>Rectangle for object preview window</string> |
4910 | <key>Persist</key> | 5351 | <key>Persist</key> |
4911 | <integer>1</integer> | 5352 | <integer>1</integer> |
4912 | <key>Type</key> | 5353 | <key>Type</key> |
4913 | <string>Rect</string> | 5354 | <string>Rect</string> |
4914 | <key>Value</key> | 5355 | <key>Value</key> |
4915 | <array> | 5356 | <array> |
4916 | <integer>0</integer> | 5357 | <integer>0</integer> |
4917 | <integer>85</integer> | 5358 | <integer>85</integer> |
4918 | <integer>300</integer> | 5359 | <integer>300</integer> |
4919 | <integer>0</integer> | 5360 | <integer>0</integer> |
4920 | </array> | 5361 | </array> |
4921 | </map> | 5362 | </map> |
4922 | <key>PreviewScriptRect</key> | 5363 | <key>PreviewScriptRect</key> |
4923 | <map> | 5364 | <map> |
4924 | <key>Comment</key> | 5365 | <key>Comment</key> |
4925 | <string>Rectangle for script preview window</string> | 5366 | <string>Rectangle for script preview window</string> |
4926 | <key>Persist</key> | 5367 | <key>Persist</key> |
4927 | <integer>1</integer> | 5368 | <integer>1</integer> |
4928 | <key>Type</key> | 5369 | <key>Type</key> |
4929 | <string>Rect</string> | 5370 | <string>Rect</string> |
4930 | <key>Value</key> | 5371 | <key>Value</key> |
4931 | <array> | 5372 | <array> |
4932 | <integer>0</integer> | 5373 | <integer>0</integer> |
4933 | <integer>550</integer> | 5374 | <integer>550</integer> |
4934 | <integer>500</integer> | 5375 | <integer>500</integer> |
4935 | <integer>0</integer> | 5376 | <integer>0</integer> |
4936 | </array> | 5377 | </array> |
4937 | </map> | 5378 | </map> |
4938 | <key>PreviewSoundRect</key> | 5379 | <key>PreviewSoundRect</key> |
4939 | <map> | 5380 | <map> |
4940 | <key>Comment</key> | 5381 | <key>Comment</key> |
4941 | <string>Rectangle for sound preview window</string> | 5382 | <string>Rectangle for sound preview window</string> |
4942 | <key>Persist</key> | 5383 | <key>Persist</key> |
4943 | <integer>1</integer> | 5384 | <integer>1</integer> |
4944 | <key>Type</key> | 5385 | <key>Type</key> |
4945 | <string>Rect</string> | 5386 | <string>Rect</string> |
4946 | <key>Value</key> | 5387 | <key>Value</key> |
4947 | <array> | 5388 | <array> |
4948 | <integer>0</integer> | 5389 | <integer>0</integer> |
4949 | <integer>85</integer> | 5390 | <integer>85</integer> |
4950 | <integer>300</integer> | 5391 | <integer>300</integer> |
4951 | <integer>0</integer> | 5392 | <integer>0</integer> |
4952 | </array> | 5393 | </array> |
4953 | </map> | 5394 | </map> |
4954 | <key>PreviewTextureRect</key> | 5395 | <key>PreviewTextureRect</key> |
4955 | <map> | 5396 | <map> |
4956 | <key>Comment</key> | 5397 | <key>Comment</key> |
4957 | <string>Rectangle for texture preview window</string> | 5398 | <string>Rectangle for texture preview window</string> |
4958 | <key>Persist</key> | 5399 | <key>Persist</key> |
4959 | <integer>1</integer> | 5400 | <integer>1</integer> |
4960 | <key>Type</key> | 5401 | <key>Type</key> |
4961 | <string>Rect</string> | 5402 | <string>Rect</string> |
4962 | <key>Value</key> | 5403 | <key>Value</key> |
4963 | <array> | 5404 | <array> |
4964 | <integer>0</integer> | 5405 | <integer>0</integer> |
4965 | <integer>400</integer> | 5406 | <integer>400</integer> |
4966 | <integer>400</integer> | 5407 | <integer>400</integer> |
4967 | <integer>0</integer> | 5408 | <integer>0</integer> |
4968 | </array> | 5409 | </array> |
4969 | </map> | 5410 | </map> |
4970 | <key>PreviewURLRect</key> | 5411 | <key>PreviewURLRect</key> |
4971 | <map> | 5412 | <map> |
4972 | <key>Comment</key> | 5413 | <key>Comment</key> |
4973 | <string>Rectangle for URL preview window</string> | 5414 | <string>Rectangle for URL preview window</string> |
4974 | <key>Persist</key> | 5415 | <key>Persist</key> |
4975 | <integer>1</integer> | 5416 | <integer>1</integer> |
4976 | <key>Type</key> | 5417 | <key>Type</key> |
4977 | <string>Rect</string> | 5418 | <string>Rect</string> |
4978 | <key>Value</key> | 5419 | <key>Value</key> |
4979 | <array> | 5420 | <array> |
4980 | <integer>0</integer> | 5421 | <integer>0</integer> |
4981 | <integer>90</integer> | 5422 | <integer>90</integer> |
4982 | <integer>300</integer> | 5423 | <integer>300</integer> |
4983 | <integer>0</integer> | 5424 | <integer>0</integer> |
4984 | </array> | 5425 | </array> |
4985 | </map> | 5426 | </map> |
4986 | <key>PreviewWearableRect</key> | 5427 | <key>PreviewWearableRect</key> |
4987 | <map> | 5428 | <map> |
4988 | <key>Comment</key> | 5429 | <key>Comment</key> |
4989 | <string>Rectangle for wearable preview window</string> | 5430 | <string>Rectangle for wearable preview window</string> |
4990 | <key>Persist</key> | 5431 | <key>Persist</key> |
4991 | <integer>1</integer> | 5432 | <integer>1</integer> |
4992 | <key>Type</key> | 5433 | <key>Type</key> |
4993 | <string>Rect</string> | 5434 | <string>Rect</string> |
4994 | <key>Value</key> | 5435 | <key>Value</key> |
4995 | <array> | 5436 | <array> |
4996 | <integer>0</integer> | 5437 | <integer>0</integer> |
4997 | <integer>85</integer> | 5438 | <integer>85</integer> |
4998 | <integer>300</integer> | 5439 | <integer>300</integer> |
4999 | <integer>0</integer> | 5440 | <integer>0</integer> |
5000 | </array> | 5441 | </array> |
5001 | </map> | 5442 | </map> |
5002 | <key>ProbeHardwareOnStartup</key> | 5443 | <key>ProbeHardwareOnStartup</key> |
5003 | <map> | 5444 | <map> |
5004 | <key>Comment</key> | 5445 | <key>Comment</key> |
5005 | <string>Query current hardware configuration on application startup</string> | 5446 | <string>Query current hardware configuration on application startup</string> |
5006 | <key>Persist</key> | 5447 | <key>Persist</key> |
5007 | <integer>1</integer> | 5448 | <integer>1</integer> |
5008 | <key>Type</key> | 5449 | <key>Type</key> |
5009 | <string>Boolean</string> | 5450 | <string>Boolean</string> |
5010 | <key>Value</key> | 5451 | <key>Value</key> |
5011 | <integer>1</integer> | 5452 | <integer>1</integer> |
5012 | </map> | 5453 | </map> |
5013 | <key>PropertiesRect</key> | 5454 | <key>PropertiesRect</key> |
5014 | <map> | 5455 | <map> |
5015 | <key>Comment</key> | 5456 | <key>Comment</key> |
5016 | <string>Rectangle for inventory item properties window</string> | 5457 | <string>Rectangle for inventory item properties window</string> |
5017 | <key>Persist</key> | 5458 | <key>Persist</key> |
5018 | <integer>1</integer> | 5459 | <integer>1</integer> |
5019 | <key>Type</key> | 5460 | <key>Type</key> |
5020 | <string>Rect</string> | 5461 | <string>Rect</string> |
5021 | <key>Value</key> | 5462 | <key>Value</key> |
5022 | <array> | 5463 | <array> |
5023 | <integer>0</integer> | 5464 | <integer>0</integer> |
5024 | <integer>320</integer> | 5465 | <integer>320</integer> |
5025 | <integer>350</integer> | 5466 | <integer>350</integer> |
5026 | <integer>0</integer> | 5467 | <integer>0</integer> |
5027 | </array> | 5468 | </array> |
5028 | </map> | 5469 | </map> |
5029 | <key>PurgeCacheOnNextStartup</key> | 5470 | <key>PurgeCacheOnNextStartup</key> |
5030 | <map> | 5471 | <map> |
5031 | <key>Comment</key> | 5472 | <key>Comment</key> |
5032 | <string>Clear local file cache next time viewer is run</string> | 5473 | <string>Clear local file cache next time viewer is run</string> |
5033 | <key>Persist</key> | 5474 | <key>Persist</key> |
5034 | <integer>1</integer> | 5475 | <integer>1</integer> |
5035 | <key>Type</key> | 5476 | <key>Type</key> |
5036 | <string>Boolean</string> | 5477 | <string>Boolean</string> |
5037 | <key>Value</key> | 5478 | <key>Value</key> |
5038 | <integer>0</integer> | 5479 | <integer>0</integer> |
5039 | </map> | 5480 | </map> |
5040 | <key>PurgeCacheOnStartup</key> | 5481 | <key>PurgeCacheOnStartup</key> |
5041 | <map> | 5482 | <map> |
5042 | <key>Comment</key> | 5483 | <key>Comment</key> |
5043 | <string>Clear local file cache every time viewer is run</string> | 5484 | <string>Clear local file cache every time viewer is run</string> |
5044 | <key>Persist</key> | 5485 | <key>Persist</key> |
5045 | <integer>1</integer> | 5486 | <integer>1</integer> |
5046 | <key>Type</key> | 5487 | <key>Type</key> |
5047 | <string>Boolean</string> | 5488 | <string>Boolean</string> |
5048 | <key>Value</key> | 5489 | <key>Value</key> |
5049 | <integer>0</integer> | 5490 | <integer>0</integer> |
5050 | </map> | 5491 | </map> |
5051 | <key>PushToTalkButton</key> | 5492 | <key>PushToTalkButton</key> |
5052 | <map> | 5493 | <map> |
5053 | <key>Comment</key> | 5494 | <key>Comment</key> |
5054 | <string>Which button or keyboard key is used for push-to-talk</string> | 5495 | <string>Which button or keyboard key is used for push-to-talk</string> |
5055 | <key>Persist</key> | 5496 | <key>Persist</key> |
5056 | <integer>1</integer> | 5497 | <integer>1</integer> |
5057 | <key>Type</key> | 5498 | <key>Type</key> |
5058 | <string>String</string> | 5499 | <string>String</string> |
5059 | <key>Value</key> | 5500 | <key>Value</key> |
5060 | <string>MiddleMouse</string> | 5501 | <string>MiddleMouse</string> |
5061 | </map> | 5502 | </map> |
5062 | <key>PushToTalkToggle</key> | 5503 | <key>PushToTalkToggle</key> |
5063 | <map> | 5504 | <map> |
5064 | <key>Comment</key> | 5505 | <key>Comment</key> |
5065 | <string>Should the push-to-talk button behave as a toggle</string> | 5506 | <string>Should the push-to-talk button behave as a toggle</string> |
5066 | <key>Persist</key> | 5507 | <key>Persist</key> |
5067 | <integer>1</integer> | 5508 | <integer>1</integer> |
5068 | <key>Type</key> | 5509 | <key>Type</key> |
5069 | <string>Boolean</string> | 5510 | <string>Boolean</string> |
5070 | <key>Value</key> | 5511 | <key>Value</key> |
5071 | <integer>0</integer> | 5512 | <integer>0</integer> |
5072 | </map> | 5513 | </map> |
5073 | <key>QAMode</key> | 5514 | <key>QAMode</key> |
5074 | <map> | 5515 | <map> |
5075 | <key>Comment</key> | 5516 | <key>Comment</key> |
5076 | <string>Enable Testing Features.</string> | 5517 | <string>Enable Testing Features.</string> |
5077 | <key>Persist</key> | 5518 | <key>Persist</key> |
5078 | <integer>1</integer> | 5519 | <integer>1</integer> |
5079 | <key>Type</key> | 5520 | <key>Type</key> |
5080 | <string>Boolean</string> | 5521 | <string>Boolean</string> |
5081 | <key>Value</key> | 5522 | <key>Value</key> |
5082 | <integer>0</integer> | 5523 | <integer>0</integer> |
5083 | </map> | 5524 | </map> |
5084 | <key>QuietSnapshotsToDisk</key> | 5525 | <key>QuietSnapshotsToDisk</key> |
5085 | <map> | 5526 | <map> |
5086 | <key>Comment</key> | 5527 | <key>Comment</key> |
5087 | <string>Take snapshots to disk without playing animation or sound</string> | 5528 | <string>Take snapshots to disk without playing animation or sound</string> |
5088 | <key>Persist</key> | 5529 | <key>Persist</key> |
5089 | <integer>1</integer> | 5530 | <integer>1</integer> |
5090 | <key>Type</key> | 5531 | <key>Type</key> |
5091 | <string>Boolean</string> | 5532 | <string>Boolean</string> |
5092 | <key>Value</key> | 5533 | <key>Value</key> |
5093 | <integer>0</integer> | 5534 | <integer>0</integer> |
5094 | </map> | 5535 | </map> |
5095 | <key>QuitAfterSeconds</key> | 5536 | <key>QuitAfterSeconds</key> |
5096 | <map> | 5537 | <map> |
5097 | <key>Comment</key> | 5538 | <key>Comment</key> |
5098 | <string>The duration allowed before quitting.</string> | 5539 | <string>The duration allowed before quitting.</string> |
5099 | <key>Persist</key> | 5540 | <key>Persist</key> |
5100 | <integer>1</integer> | 5541 | <integer>1</integer> |
5101 | <key>Type</key> | 5542 | <key>Type</key> |
5102 | <string>F32</string> | 5543 | <string>F32</string> |
5103 | <key>Value</key> | 5544 | <key>Value</key> |
5104 | <real>0</real> | 5545 | <real>0.0</real> |
5105 | </map> | 5546 | </map> |
5106 | <key>RadioLandBrushAction</key> | 5547 | <key>RadioLandBrushAction</key> |
5107 | <map> | 5548 | <map> |
5108 | <key>Comment</key> | 5549 | <key>Comment</key> |
5109 | <string>Last selected land modification operation (0 = flatten, 1 = raise, 2 = lower, 3 = smooth, 4 = roughen, 5 = revert)</string> | 5550 | <string>Last selected land modification operation (0 = flatten, 1 = raise, 2 = lower, 3 = smooth, 4 = roughen, 5 = revert)</string> |
5110 | <key>Persist</key> | 5551 | <key>Persist</key> |
5111 | <integer>1</integer> | 5552 | <integer>1</integer> |
5112 | <key>Type</key> | 5553 | <key>Type</key> |
5113 | <string>S32</string> | 5554 | <string>S32</string> |
5114 | <key>Value</key> | 5555 | <key>Value</key> |
5115 | <integer>0</integer> | 5556 | <integer>0</integer> |
5116 | </map> | 5557 | </map> |
5117 | <key>RadioLandBrushSize</key> | 5558 | <key>RadioLandBrushSize</key> |
5118 | <map> | 5559 | <map> |
5119 | <key>Comment</key> | 5560 | <key>Comment</key> |
5120 | <string>Size of land modification brush (0 = small, 1 = medium, 2 = large)</string> | 5561 | <string>Size of land modification brush (0 = small, 1 = medium, 2 = large)</string> |
5121 | <key>Persist</key> | 5562 | <key>Persist</key> |
5122 | <integer>1</integer> | 5563 | <integer>1</integer> |
5123 | <key>Type</key> | 5564 | <key>Type</key> |
5124 | <string>S32</string> | 5565 | <string>S32</string> |
5125 | <key>Value</key> | 5566 | <key>Value</key> |
5126 | <integer>0</integer> | 5567 | <integer>0</integer> |
5127 | </map> | 5568 | </map> |
5128 | <key>RecentItemsSortOrder</key> | 5569 | <key>RecentItemsSortOrder</key> |
5129 | <map> | 5570 | <map> |
5130 | <key>Comment</key> | 5571 | <key>Comment</key> |
5131 | <string>Specifies sort key for recent inventory items (+0 = name, +1 = date, +2 = folders always by name, +4 = system folders to top)</string> | 5572 | <string>Specifies sort key for recent inventory items (+0 = name, +1 = date, +2 = folders always by name, +4 = system folders to top)</string> |
5132 | <key>Persist</key> | 5573 | <key>Persist</key> |
5133 | <integer>1</integer> | 5574 | <integer>1</integer> |
5134 | <key>Type</key> | 5575 | <key>Type</key> |
5135 | <string>U32</string> | 5576 | <string>U32</string> |
5136 | <key>Value</key> | 5577 | <key>Value</key> |
5137 | <integer>1</integer> | 5578 | <integer>1</integer> |
5138 | </map> | 5579 | </map> |
5139 | <key>RectangleSelectInclusive</key> | 5580 | <key>RectangleSelectInclusive</key> |
5140 | <map> | 5581 | <map> |
5141 | <key>Comment</key> | 5582 | <key>Comment</key> |
5142 | <string>Select objects that have at least one vertex inside selection rectangle</string> | 5583 | <string>Select objects that have at least one vertex inside selection rectangle</string> |
5143 | <key>Persist</key> | 5584 | <key>Persist</key> |
5144 | <integer>1</integer> | 5585 | <integer>1</integer> |
5145 | <key>Type</key> | 5586 | <key>Type</key> |
5146 | <string>Boolean</string> | 5587 | <string>Boolean</string> |
5147 | <key>Value</key> | 5588 | <key>Value</key> |
5148 | <integer>1</integer> | 5589 | <integer>1</integer> |
5149 | </map> | 5590 | </map> |
5150 | <key>RegionTextureSize</key> | 5591 | <key>RegionTextureSize</key> |
5151 | <map> | 5592 | <map> |
5152 | <key>Comment</key> | 5593 | <key>Comment</key> |
5153 | <string>Terrain texture dimensions (power of 2)</string> | 5594 | <string>Terrain texture dimensions (power of 2)</string> |
5154 | <key>Persist</key> | 5595 | <key>Persist</key> |
5155 | <integer>1</integer> | 5596 | <integer>1</integer> |
5156 | <key>Type</key> | 5597 | <key>Type</key> |
5157 | <string>U32</string> | 5598 | <string>U32</string> |
5158 | <key>Value</key> | 5599 | <key>Value</key> |
5159 | <integer>256</integer> | 5600 | <integer>256</integer> |
5160 | </map> | 5601 | </map> |
5161 | <key>RememberPassword</key> | 5602 | <key>RememberPassword</key> |
5162 | <map> | 5603 | <map> |
5163 | <key>Comment</key> | 5604 | <key>Comment</key> |
5164 | <string>Keep password (in encrypted form) for next login</string> | 5605 | <string>Keep password (in encrypted form) for next login</string> |
5165 | <key>Persist</key> | 5606 | <key>Persist</key> |
5166 | <integer>1</integer> | 5607 | <integer>1</integer> |
5167 | <key>Type</key> | 5608 | <key>Type</key> |
5168 | <string>Boolean</string> | 5609 | <string>Boolean</string> |
5169 | <key>Value</key> | 5610 | <key>Value</key> |
5170 | <integer>1</integer> | 5611 | <integer>1</integer> |
5171 | </map> | 5612 | </map> |
5172 | <key>RenderAnisotropic</key> | 5613 | <key>RenderAnisotropic</key> |
5173 | <map> | 5614 | <map> |
5174 | <key>Comment</key> | 5615 | <key>Comment</key> |
5175 | <string>Render textures using anisotropic filtering</string> | 5616 | <string>Render textures using anisotropic filtering</string> |
5176 | <key>Persist</key> | 5617 | <key>Persist</key> |
5177 | <integer>1</integer> | 5618 | <integer>1</integer> |
5178 | <key>Type</key> | 5619 | <key>Type</key> |
5179 | <string>Boolean</string> | 5620 | <string>Boolean</string> |
5180 | <key>Value</key> | 5621 | <key>Value</key> |
5181 | <integer>0</integer> | 5622 | <integer>0</integer> |
5182 | </map> | 5623 | </map> |
5183 | <key>RenderAppleUseMultGL</key> | 5624 | <key>RenderAppleUseMultGL</key> |
5184 | <map> | 5625 | <map> |
5185 | <key>Comment</key> | 5626 | <key>Comment</key> |
5186 | <string>Whether we want to use multi-threaded OpenGL on Apple hardware (requires restart of SL).</string> | 5627 | <string>Whether we want to use multi-threaded OpenGL on Apple hardware (requires restart of SL).</string> |
5187 | <key>Persist</key> | 5628 | <key>Persist</key> |
5188 | <integer>1</integer> | 5629 | <integer>1</integer> |
5189 | <key>Type</key> | 5630 | <key>Type</key> |
5190 | <string>Boolean</string> | 5631 | <string>Boolean</string> |
5191 | <key>Value</key> | 5632 | <key>Value</key> |
5192 | <integer>0</integer> | 5633 | <integer>0</integer> |
5193 | </map> | 5634 | </map> |
5194 | <key>RenderAvatarCloth</key> | 5635 | <key>RenderAvatarCloth</key> |
5195 | <map> | 5636 | <map> |
5196 | <key>Comment</key> | 5637 | <key>Comment</key> |
5197 | <string>Controls if avatars use wavy cloth</string> | 5638 | <string>Controls if avatars use wavy cloth</string> |
5198 | <key>Persist</key> | 5639 | <key>Persist</key> |
5199 | <integer>1</integer> | 5640 | <integer>1</integer> |
5200 | <key>Type</key> | 5641 | <key>Type</key> |
5201 | <string>Boolean</string> | 5642 | <string>Boolean</string> |
5202 | <key>Value</key> | 5643 | <key>Value</key> |
5203 | <integer>1</integer> | 5644 | <integer>1</integer> |
5204 | </map> | 5645 | </map> |
5205 | <key>RenderAvatarLODFactor</key> | 5646 | <key>RenderAvatarLODFactor</key> |
5206 | <map> | 5647 | <map> |
5207 | <key>Comment</key> | 5648 | <key>Comment</key> |
5208 | <string>Controls level of detail of avatars (multiplier for current screen area when calculated level of detail)</string> | 5649 | <string>Controls level of detail of avatars (multiplier for current screen area when calculated level of detail)</string> |
5209 | <key>Persist</key> | 5650 | <key>Persist</key> |
5210 | <integer>1</integer> | 5651 | <integer>1</integer> |
5211 | <key>Type</key> | 5652 | <key>Type</key> |
5212 | <string>F32</string> | 5653 | <string>F32</string> |
5213 | <key>Value</key> | 5654 | <key>Value</key> |
5214 | <real>0.5</real> | 5655 | <real>0.5</real> |
5215 | </map> | 5656 | </map> |
5216 | <key>RenderAvatarMaxVisible</key> | 5657 | <key>RenderAvatarMaxVisible</key> |
5217 | <map> | 5658 | <map> |
5218 | <key>Comment</key> | 5659 | <key>Comment</key> |
5219 | <string>Maximum number of avatars to display at any one time</string> | 5660 | <string>Maximum number of avatars to display at any one time</string> |
5220 | <key>Persist</key> | 5661 | <key>Persist</key> |
5221 | <integer>1</integer> | 5662 | <integer>1</integer> |
5222 | <key>Type</key> | 5663 | <key>Type</key> |
5223 | <string>S32</string> | 5664 | <string>S32</string> |
5224 | <key>Value</key> | 5665 | <key>Value</key> |
5225 | <integer>35</integer> | 5666 | <integer>35</integer> |
5226 | </map> | 5667 | </map> |
5227 | <key>RenderAvatarVP</key> | 5668 | <key>RenderAvatarVP</key> |
5228 | <map> | 5669 | <map> |
5229 | <key>Comment</key> | 5670 | <key>Comment</key> |
5230 | <string>Use vertex programs to perform hardware skinning of avatar</string> | 5671 | <string>Use vertex programs to perform hardware skinning of avatar</string> |
5231 | <key>Persist</key> | 5672 | <key>Persist</key> |
5232 | <integer>1</integer> | 5673 | <integer>1</integer> |
5233 | <key>Type</key> | 5674 | <key>Type</key> |
5234 | <string>Boolean</string> | 5675 | <string>Boolean</string> |
5235 | <key>Value</key> | 5676 | <key>Value</key> |
5236 | <integer>1</integer> | 5677 | <integer>1</integer> |
5237 | </map> | 5678 | </map> |
5238 | <key>RenderBumpmapMinDistanceSquared</key> | 5679 | <key>RenderBumpmapMinDistanceSquared</key> |
5239 | <map> | 5680 | <map> |
5240 | <key>Comment</key> | 5681 | <key>Comment</key> |
5241 | <string>Maximum distance at which to render bumpmapped primitives (distance in meters, squared)</string> | 5682 | <string>Maximum distance at which to render bumpmapped primitives (distance in meters, squared)</string> |
5242 | <key>Persist</key> | 5683 | <key>Persist</key> |
5243 | <integer>1</integer> | 5684 | <integer>1</integer> |
5244 | <key>Type</key> | 5685 | <key>Type</key> |
5245 | <string>F32</string> | 5686 | <string>F32</string> |
5246 | <key>Value</key> | 5687 | <key>Value</key> |
5247 | <real>100</real> | 5688 | <real>100.0</real> |
5248 | </map> | 5689 | </map> |
5249 | <key>RenderCubeMap</key> | 5690 | <key>RenderCubeMap</key> |
5250 | <map> | 5691 | <map> |
5251 | <key>Comment</key> | 5692 | <key>Comment</key> |
5252 | <string>Whether we can render the cube map or not</string> | 5693 | <string>Whether we can render the cube map or not</string> |
5253 | <key>Persist</key> | 5694 | <key>Persist</key> |
5254 | <integer>1</integer> | 5695 | <integer>1</integer> |
5255 | <key>Type</key> | 5696 | <key>Type</key> |
5256 | <string>Boolean</string> | 5697 | <string>Boolean</string> |
5257 | <key>Value</key> | 5698 | <key>Value</key> |
5258 | <integer>1</integer> | 5699 | <integer>1</integer> |
5259 | </map> | 5700 | </map> |
5260 | <key>RenderCustomSettings</key> | 5701 | <key>RenderCustomSettings</key> |
5261 | <map> | 5702 | <map> |
5262 | <key>Comment</key> | 5703 | <key>Comment</key> |
5263 | <string>Do you want to set the graphics settings yourself</string> | 5704 | <string>Do you want to set the graphics settings yourself</string> |
5264 | <key>Persist</key> | 5705 | <key>Persist</key> |
5265 | <integer>1</integer> | 5706 | <integer>1</integer> |
5266 | <key>Type</key> | 5707 | <key>Type</key> |
5267 | <string>Boolean</string> | 5708 | <string>Boolean</string> |
5268 | <key>Value</key> | 5709 | <key>Value</key> |
5269 | <integer>0</integer> | 5710 | <integer>0</integer> |
5270 | </map> | 5711 | </map> |
5712 | <key>RenderDebugGL</key> | ||
5713 | <map> | ||
5714 | <key>Comment</key> | ||
5715 | <string>Enable strict GL debugging.</string> | ||
5716 | <key>Persist</key> | ||
5717 | <integer>1</integer> | ||
5718 | <key>Type</key> | ||
5719 | <string>Boolean</string> | ||
5720 | <key>Value</key> | ||
5721 | <integer>0</integer> | ||
5722 | </map> | ||
5723 | <key>RenderDebugPipeline</key> | ||
5724 | <map> | ||
5725 | <key>Comment</key> | ||
5726 | <string>Enable strict pipeline debugging.</string> | ||
5727 | <key>Persist</key> | ||
5728 | <integer>1</integer> | ||
5729 | <key>Type</key> | ||
5730 | <string>Boolean</string> | ||
5731 | <key>Value</key> | ||
5732 | <integer>0</integer> | ||
5733 | </map> | ||
5271 | <key>RenderDebugTextureBind</key> | 5734 | <key>RenderDebugTextureBind</key> |
5272 | <map> | 5735 | <map> |
5273 | <key>Comment</key> | 5736 | <key>Comment</key> |
5274 | <string>Enable texture bind performance test.</string> | 5737 | <string>Enable texture bind performance test.</string> |
5275 | <key>Persist</key> | 5738 | <key>Persist</key> |
5276 | <integer>1</integer> | 5739 | <integer>1</integer> |
5277 | <key>Type</key> | 5740 | <key>Type</key> |
5278 | <string>Boolean</string> | 5741 | <string>Boolean</string> |
5279 | <key>Value</key> | 5742 | <key>Value</key> |
5280 | <integer>0</integer> | 5743 | <integer>0</integer> |
5281 | </map> | 5744 | </map> |
5745 | <key>RenderDeferred</key> | ||
5746 | <map> | ||
5747 | <key>Comment</key> | ||
5748 | <string>Use deferred rendering pipeline.</string> | ||
5749 | <key>Persist</key> | ||
5750 | <integer>1</integer> | ||
5751 | <key>Type</key> | ||
5752 | <string>Boolean</string> | ||
5753 | <key>Value</key> | ||
5754 | <integer>0</integer> | ||
5755 | </map> | ||
5282 | <key>RenderDynamicLOD</key> | 5756 | <key>RenderDynamicLOD</key> |
5283 | <map> | 5757 | <map> |
5284 | <key>Comment</key> | 5758 | <key>Comment</key> |
5285 | <string>Dynamically adjust level of detail.</string> | 5759 | <string>Dynamically adjust level of detail.</string> |
5286 | <key>Persist</key> | 5760 | <key>Persist</key> |
5287 | <integer>1</integer> | 5761 | <integer>1</integer> |
5288 | <key>Type</key> | 5762 | <key>Type</key> |
5289 | <string>Boolean</string> | 5763 | <string>Boolean</string> |
5290 | <key>Value</key> | 5764 | <key>Value</key> |
5291 | <integer>1</integer> | 5765 | <integer>1</integer> |
5292 | </map> | 5766 | </map> |
5293 | <key>RenderDynamicReflections</key> | 5767 | <key>RenderDynamicReflections</key> |
5294 | <map> | 5768 | <map> |
5295 | <key>Comment</key> | 5769 | <key>Comment</key> |
5296 | <string>Generate a dynamic cube map for reflections (objects reflect their environment, experimental).</string> | 5770 | <string>Generate a dynamic cube map for reflections (objects reflect their environment, experimental).</string> |
5297 | <key>Persist</key> | 5771 | <key>Persist</key> |
5298 | <integer>1</integer> | 5772 | <integer>1</integer> |
5299 | <key>Type</key> | 5773 | <key>Type</key> |
5300 | <string>Boolean</string> | 5774 | <string>Boolean</string> |
5301 | <key>Value</key> | 5775 | <key>Value</key> |
5302 | <integer>0</integer> | 5776 | <integer>0</integer> |
5303 | </map> | 5777 | </map> |
5778 | <key>RenderFSAASamples</key> | ||
5779 | <map> | ||
5780 | <key>Comment</key> | ||
5781 | <string>Number of samples to use for FSAA (0 = no AA).</string> | ||
5782 | <key>Persist</key> | ||
5783 | <integer>1</integer> | ||
5784 | <key>Type</key> | ||
5785 | <string>U32</string> | ||
5786 | <key>Value</key> | ||
5787 | <integer>0</integer> | ||
5788 | </map> | ||
5304 | <key>RenderFarClip</key> | 5789 | <key>RenderFarClip</key> |
5305 | <map> | 5790 | <map> |
5306 | <key>Comment</key> | 5791 | <key>Comment</key> |
5307 | <string>Distance of far clip plane from camera (meters)</string> | 5792 | <string>Distance of far clip plane from camera (meters)</string> |
5308 | <key>Persist</key> | 5793 | <key>Persist</key> |
5309 | <integer>1</integer> | 5794 | <integer>1</integer> |
5310 | <key>Type</key> | 5795 | <key>Type</key> |
5311 | <string>F32</string> | 5796 | <string>F32</string> |
5312 | <key>Value</key> | 5797 | <key>Value</key> |
5313 | <real>256</real> | 5798 | <real>256.0</real> |
5314 | </map> | 5799 | </map> |
5800 | <key>RenderFastAlpha</key> | ||
5801 | <map> | ||
5802 | <key>Comment</key> | ||
5803 | <string>Use lossy alpha rendering optimization (opaque/nonexistent small alpha faces).</string> | ||
5804 | <key>Persist</key> | ||
5805 | <integer>1</integer> | ||
5806 | <key>Type</key> | ||
5807 | <string>Boolean</string> | ||
5808 | <key>Value</key> | ||
5809 | <integer>0</integer> | ||
5810 | </map> | ||
5315 | <key>RenderFastUI</key> | 5811 | <key>RenderFastUI</key> |
5316 | <map> | 5812 | <map> |
5317 | <key>Comment</key> | 5813 | <key>Comment</key> |
5318 | <string>[NOT USED]</string> | 5814 | <string>[NOT USED]</string> |
5319 | <key>Persist</key> | 5815 | <key>Persist</key> |
5320 | <integer>1</integer> | 5816 | <integer>1</integer> |
5321 | <key>Type</key> | 5817 | <key>Type</key> |
5322 | <string>Boolean</string> | 5818 | <string>Boolean</string> |
5323 | <key>Value</key> | 5819 | <key>Value</key> |
5324 | <integer>0</integer> | 5820 | <integer>0</integer> |
5325 | </map> | 5821 | </map> |
5326 | <key>RenderFlexTimeFactor</key> | 5822 | <key>RenderFlexTimeFactor</key> |
5327 | <map> | 5823 | <map> |
5328 | <key>Comment</key> | 5824 | <key>Comment</key> |
5329 | <string>Controls level of detail of flexible objects (multiplier for amount of time spent processing flex objects)</string> | 5825 | <string>Controls level of detail of flexible objects (multiplier for amount of time spent processing flex objects)</string> |
5330 | <key>Persist</key> | 5826 | <key>Persist</key> |
5331 | <integer>1</integer> | 5827 | <integer>1</integer> |
5332 | <key>Type</key> | 5828 | <key>Type</key> |
5333 | <string>F32</string> | 5829 | <string>F32</string> |
5334 | <key>Value</key> | 5830 | <key>Value</key> |
5335 | <real>1</real> | 5831 | <real>1.0</real> |
5336 | </map> | 5832 | </map> |
5337 | <key>RenderFogRatio</key> | 5833 | <key>RenderFogRatio</key> |
5338 | <map> | 5834 | <map> |
5339 | <key>Comment</key> | 5835 | <key>Comment</key> |
5340 | <string>Distance from camera where fog reaches maximum density (fraction or multiple of far clip distance)</string> | 5836 | <string>Distance from camera where fog reaches maximum density (fraction or multiple of far clip distance)</string> |
5341 | <key>Persist</key> | 5837 | <key>Persist</key> |
5342 | <integer>1</integer> | 5838 | <integer>1</integer> |
5343 | <key>Type</key> | 5839 | <key>Type</key> |
5344 | <string>F32</string> | 5840 | <string>F32</string> |
5345 | <key>Value</key> | 5841 | <key>Value</key> |
5346 | <real>4.0</real> | 5842 | <real>4.0</real> |
5347 | </map> | 5843 | </map> |
5348 | <key>RenderGamma</key> | 5844 | <key>RenderGamma</key> |
5349 | <map> | 5845 | <map> |
5350 | <key>Comment</key> | 5846 | <key>Comment</key> |
5351 | <string>Sets gamma exponent for renderer</string> | 5847 | <string>Sets gamma exponent for renderer</string> |
5352 | <key>Persist</key> | 5848 | <key>Persist</key> |
5353 | <integer>1</integer> | 5849 | <integer>1</integer> |
5354 | <key>Type</key> | 5850 | <key>Type</key> |
5355 | <string>F32</string> | 5851 | <string>F32</string> |
5356 | <key>Value</key> | 5852 | <key>Value</key> |
5357 | <real>0</real> | 5853 | <real>0.0</real> |
5358 | </map> | 5854 | </map> |
5359 | <key>RenderGammaFull</key> | 5855 | <key>RenderGammaFull</key> |
5360 | <map> | 5856 | <map> |
5361 | <key>Comment</key> | 5857 | <key>Comment</key> |
5362 | <string>Use fully controllable gamma correction, instead of faster, hard-coded gamma correction of 2.</string> | 5858 | <string>Use fully controllable gamma correction, instead of faster, hard-coded gamma correction of 2.</string> |
5363 | <key>Persist</key> | 5859 | <key>Persist</key> |
5364 | <integer>1</integer> | 5860 | <integer>1</integer> |
5365 | <key>Type</key> | 5861 | <key>Type</key> |
5366 | <string>Boolean</string> | 5862 | <string>Boolean</string> |
5367 | <key>Value</key> | 5863 | <key>Value</key> |
5368 | <real>1</real> | 5864 | <real>1.0</real> |
5369 | </map> | 5865 | </map> |
5370 | <key>RenderGlow</key> | 5866 | <key>RenderGlow</key> |
5371 | <map> | 5867 | <map> |
5372 | <key>Comment</key> | 5868 | <key>Comment</key> |
5373 | <string>Render bloom post effect.</string> | 5869 | <string>Render bloom post effect.</string> |
5374 | <key>Persist</key> | 5870 | <key>Persist</key> |
5375 | <integer>1</integer> | 5871 | <integer>1</integer> |
5376 | <key>Type</key> | 5872 | <key>Type</key> |
5377 | <string>Boolean</string> | 5873 | <string>Boolean</string> |
5378 | <key>Value</key> | 5874 | <key>Value</key> |
5379 | <integer>1</integer> | 5875 | <integer>1</integer> |
5380 | </map> | 5876 | </map> |
5381 | <key>RenderGlowIterations</key> | 5877 | <key>RenderGlowIterations</key> |
5382 | <map> | 5878 | <map> |
5383 | <key>Comment</key> | 5879 | <key>Comment</key> |
5384 | <string>Number of times to iterate the glow (higher = wider and smoother but slower)</string> | 5880 | <string>Number of times to iterate the glow (higher = wider and smoother but slower)</string> |
5385 | <key>Persist</key> | 5881 | <key>Persist</key> |
5386 | <integer>1</integer> | 5882 | <integer>1</integer> |
5387 | <key>Type</key> | 5883 | <key>Type</key> |
5388 | <string>S32</string> | 5884 | <string>S32</string> |
5389 | <key>Value</key> | 5885 | <key>Value</key> |
5390 | <integer>2</integer> | 5886 | <integer>2</integer> |
5391 | </map> | 5887 | </map> |
5392 | <key>RenderGlowLumWeights</key> | 5888 | <key>RenderGlowLumWeights</key> |
5393 | <map> | 5889 | <map> |
5394 | <key>Comment</key> | 5890 | <key>Comment</key> |
5395 | <string>Weights for each color channel to be used in calculating luminance (should add up to 1.0)</string> | 5891 | <string>Weights for each color channel to be used in calculating luminance (should add up to 1.0)</string> |
5396 | <key>Persist</key> | 5892 | <key>Persist</key> |
5397 | <integer>1</integer> | 5893 | <integer>1</integer> |
5398 | <key>Type</key> | 5894 | <key>Type</key> |
5399 | <string>Vector3</string> | 5895 | <string>Vector3</string> |
5400 | <key>Value</key> | 5896 | <key>Value</key> |
5401 | <array> | 5897 | <array> |
5402 | <real>0.299</real> | 5898 | <real>0.299</real> |
5403 | <real>0.587</real> | 5899 | <real>0.587</real> |
5404 | <real>0.114</real> | 5900 | <real>0.114</real> |
5405 | </array> | 5901 | </array> |
5406 | </map> | 5902 | </map> |
5407 | <key>RenderGlowMaxExtractAlpha</key> | 5903 | <key>RenderGlowMaxExtractAlpha</key> |
5408 | <map> | 5904 | <map> |
5409 | <key>Comment</key> | 5905 | <key>Comment</key> |
5410 | <string>Max glow alpha value for brightness extraction to auto-glow.</string> | 5906 | <string>Max glow alpha value for brightness extraction to auto-glow.</string> |
5411 | <key>Persist</key> | 5907 | <key>Persist</key> |
5412 | <integer>1</integer> | 5908 | <integer>1</integer> |
5413 | <key>Type</key> | 5909 | <key>Type</key> |
5414 | <string>F32</string> | 5910 | <string>F32</string> |
5415 | <key>Value</key> | 5911 | <key>Value</key> |
5416 | <real>0.065</real> | 5912 | <real>0.065</real> |
5417 | </map> | 5913 | </map> |
5418 | <key>RenderGlowMinLuminance</key> | 5914 | <key>RenderGlowMinLuminance</key> |
5419 | <map> | 5915 | <map> |
5420 | <key>Comment</key> | 5916 | <key>Comment</key> |
5421 | <string>Min luminance intensity necessary to consider an object bright enough to automatically glow. (Gets clamped to 0 - 1.0 range)</string> | 5917 | <string>Min luminance intensity necessary to consider an object bright enough to automatically glow. (Gets clamped to 0 - 1.0 range)</string> |
5422 | <key>Persist</key> | 5918 | <key>Persist</key> |
5423 | <integer>1</integer> | 5919 | <integer>1</integer> |
5424 | <key>Type</key> | 5920 | <key>Type</key> |
5425 | <string>F32</string> | 5921 | <string>F32</string> |
5426 | <key>Value</key> | 5922 | <key>Value</key> |
5427 | <real>1.0</real> | 5923 | <real>1.0</real> |
5428 | </map> | 5924 | </map> |
5429 | <key>RenderGlowResolutionPow</key> | 5925 | <key>RenderGlowResolutionPow</key> |
5430 | <map> | 5926 | <map> |
5431 | <key>Comment</key> | 5927 | <key>Comment</key> |
5432 | <string>Glow map resolution power of two.</string> | 5928 | <string>Glow map resolution power of two.</string> |
5433 | <key>Persist</key> | 5929 | <key>Persist</key> |
5434 | <integer>1</integer> | 5930 | <integer>1</integer> |
5435 | <key>Type</key> | 5931 | <key>Type</key> |
5436 | <string>S32</string> | 5932 | <string>S32</string> |
5437 | <key>Value</key> | 5933 | <key>Value</key> |
5438 | <integer>9</integer> | 5934 | <integer>9</integer> |
5439 | </map> | 5935 | </map> |
5440 | <key>RenderGlowStrength</key> | 5936 | <key>RenderGlowStrength</key> |
5441 | <map> | 5937 | <map> |
5442 | <key>Comment</key> | 5938 | <key>Comment</key> |
5443 | <string>Additive strength of glow.</string> | 5939 | <string>Additive strength of glow.</string> |
5444 | <key>Persist</key> | 5940 | <key>Persist</key> |
5445 | <integer>1</integer> | 5941 | <integer>1</integer> |
5446 | <key>Type</key> | 5942 | <key>Type</key> |
5447 | <string>F32</string> | 5943 | <string>F32</string> |
5448 | <key>Value</key> | 5944 | <key>Value</key> |
5449 | <real>0.35</real> | 5945 | <real>0.35</real> |
5450 | </map> | 5946 | </map> |
5451 | <key>RenderGlowWarmthAmount</key> | 5947 | <key>RenderGlowWarmthAmount</key> |
5452 | <map> | 5948 | <map> |
5453 | <key>Comment</key> | 5949 | <key>Comment</key> |
5454 | <string>Amount of warmth extraction to use (versus luminance extraction). 0 = lum, 1.0 = warmth</string> | 5950 | <string>Amount of warmth extraction to use (versus luminance extraction). 0 = lum, 1.0 = warmth</string> |
5455 | <key>Persist</key> | 5951 | <key>Persist</key> |
5456 | <integer>1</integer> | 5952 | <integer>1</integer> |
5457 | <key>Type</key> | 5953 | <key>Type</key> |
5458 | <string>F32</string> | 5954 | <string>F32</string> |
5459 | <key>Value</key> | 5955 | <key>Value</key> |
5460 | <real>0</real> | 5956 | <real>0.0</real> |
5461 | </map> | 5957 | </map> |
5462 | <key>RenderGlowWarmthWeights</key> | 5958 | <key>RenderGlowWarmthWeights</key> |
5463 | <map> | 5959 | <map> |
5464 | <key>Comment</key> | 5960 | <key>Comment</key> |
5465 | <string>Weight of each color channel used before finding the max warmth</string> | 5961 | <string>Weight of each color channel used before finding the max warmth</string> |
5466 | <key>Persist</key> | 5962 | <key>Persist</key> |
5467 | <integer>1</integer> | 5963 | <integer>1</integer> |
5468 | <key>Type</key> | 5964 | <key>Type</key> |
5469 | <string>Vector3</string> | 5965 | <string>Vector3</string> |
5470 | <key>Value</key> | 5966 | <key>Value</key> |
5471 | <array> | 5967 | <array> |
5472 | <real>1.0</real> | 5968 | <real>1.0</real> |
5473 | <real>0.5</real> | 5969 | <real>0.5</real> |
5474 | <real>0.7</real> | 5970 | <real>0.7</real> |
5475 | </array> | 5971 | </array> |
5476 | </map> | 5972 | </map> |
5477 | <key>RenderGlowWidth</key> | 5973 | <key>RenderGlowWidth</key> |
5478 | <map> | 5974 | <map> |
5479 | <key>Comment</key> | 5975 | <key>Comment</key> |
5480 | <string>Glow sample size (higher = wider and softer but eventually more pixelated)</string> | 5976 | <string>Glow sample size (higher = wider and softer but eventually more pixelated)</string> |
5481 | <key>Persist</key> | 5977 | <key>Persist</key> |
5482 | <integer>1</integer> | 5978 | <integer>1</integer> |
5483 | <key>Type</key> | 5979 | <key>Type</key> |
5484 | <string>F32</string> | 5980 | <string>F32</string> |
5485 | <key>Value</key> | 5981 | <key>Value</key> |
5486 | <real>1.3</real> | 5982 | <real>1.3</real> |
5487 | </map> | 5983 | </map> |
5488 | <key>RenderHUDInSnapshot</key> | 5984 | <key>RenderHUDInSnapshot</key> |
5489 | <map> | 5985 | <map> |
5490 | <key>Comment</key> | 5986 | <key>Comment</key> |
5491 | <string>Display HUD attachments in snapshot</string> | 5987 | <string>Display HUD attachments in snapshot</string> |
5492 | <key>Persist</key> | 5988 | <key>Persist</key> |
5493 | <integer>1</integer> | 5989 | <integer>1</integer> |
5494 | <key>Type</key> | 5990 | <key>Type</key> |
5495 | <string>Boolean</string> | 5991 | <string>Boolean</string> |
5496 | <key>Value</key> | 5992 | <key>Value</key> |
5497 | <integer>0</integer> | 5993 | <integer>0</integer> |
5498 | </map> | 5994 | </map> |
5499 | <key>RenderHiddenSelections</key> | 5995 | <key>RenderHiddenSelections</key> |
5500 | <map> | 5996 | <map> |
5501 | <key>Comment</key> | 5997 | <key>Comment</key> |
5502 | <string>Show selection lines on objects that are behind other objects</string> | 5998 | <string>Show selection lines on objects that are behind other objects</string> |
5503 | <key>Persist</key> | 5999 | <key>Persist</key> |
5504 | <integer>1</integer> | 6000 | <integer>1</integer> |
5505 | <key>Type</key> | 6001 | <key>Type</key> |
5506 | <string>Boolean</string> | 6002 | <string>Boolean</string> |
5507 | <key>Value</key> | 6003 | <key>Value</key> |
5508 | <integer>1</integer> | 6004 | <integer>1</integer> |
5509 | </map> | 6005 | </map> |
5510 | <key>RenderHideGroupTitle</key> | 6006 | <key>RenderHideGroupTitle</key> |
5511 | <map> | 6007 | <map> |
5512 | <key>Comment</key> | 6008 | <key>Comment</key> |
5513 | <string>Don't show my group title in my name label</string> | 6009 | <string>Don't show my group title in my name label</string> |
5514 | <key>Persist</key> | 6010 | <key>Persist</key> |
5515 | <integer>1</integer> | 6011 | <integer>1</integer> |
5516 | <key>Type</key> | 6012 | <key>Type</key> |
5517 | <string>Boolean</string> | 6013 | <string>Boolean</string> |
5518 | <key>Value</key> | 6014 | <key>Value</key> |
5519 | <integer>0</integer> | 6015 | <integer>0</integer> |
5520 | </map> | 6016 | </map> |
5521 | <key>RenderHideGroupTitleAll</key> | 6017 | <key>RenderHideGroupTitleAll</key> |
5522 | <map> | 6018 | <map> |
5523 | <key>Comment</key> | 6019 | <key>Comment</key> |
5524 | <string>Show group titles in name labels</string> | 6020 | <string>Show group titles in name labels</string> |
5525 | <key>Persist</key> | 6021 | <key>Persist</key> |
5526 | <integer>1</integer> | 6022 | <integer>1</integer> |
5527 | <key>Type</key> | 6023 | <key>Type</key> |
5528 | <string>Boolean</string> | 6024 | <string>Boolean</string> |
5529 | <key>Value</key> | 6025 | <key>Value</key> |
5530 | <integer>0</integer> | 6026 | <integer>0</integer> |
5531 | </map> | 6027 | </map> |
5532 | <key>RenderInitError</key> | 6028 | <key>RenderInitError</key> |
5533 | <map> | 6029 | <map> |
5534 | <key>Comment</key> | 6030 | <key>Comment</key> |
5535 | <string>Error occured while initializing GL</string> | 6031 | <string>Error occured while initializing GL</string> |
5536 | <key>Persist</key> | 6032 | <key>Persist</key> |
5537 | <integer>1</integer> | 6033 | <integer>1</integer> |
5538 | <key>Type</key> | 6034 | <key>Type</key> |
5539 | <string>Boolean</string> | 6035 | <string>Boolean</string> |
5540 | <key>Value</key> | 6036 | <key>Value</key> |
5541 | <integer>0</integer> | 6037 | <integer>0</integer> |
5542 | </map> | 6038 | </map> |
5543 | <key>RenderLightRadius</key> | 6039 | <key>RenderLightRadius</key> |
5544 | <map> | 6040 | <map> |
5545 | <key>Comment</key> | 6041 | <key>Comment</key> |
5546 | <string>Render the radius of selected lights</string> | 6042 | <string>Render the radius of selected lights</string> |
5547 | <key>Persist</key> | 6043 | <key>Persist</key> |
5548 | <integer>1</integer> | 6044 | <integer>1</integer> |
5549 | <key>Type</key> | 6045 | <key>Type</key> |
5550 | <string>Boolean</string> | 6046 | <string>Boolean</string> |
5551 | <key>Value</key> | 6047 | <key>Value</key> |
5552 | <integer>0</integer> | 6048 | <integer>0</integer> |
5553 | </map> | 6049 | </map> |
5554 | <key>RenderLightingDetail</key> | 6050 | <key>RenderLightingDetail</key> |
5555 | <map> | 6051 | <map> |
5556 | <key>Comment</key> | 6052 | <key>Comment</key> |
5557 | <string>Amount of detail for lighting objects/avatars/terrain (0=sun/moon only, 1=enable local lights)</string> | 6053 | <string>Amount of detail for lighting objects/avatars/terrain (0=sun/moon only, 1=enable local lights)</string> |
5558 | <key>Persist</key> | 6054 | <key>Persist</key> |
5559 | <integer>1</integer> | 6055 | <integer>1</integer> |
5560 | <key>Type</key> | 6056 | <key>Type</key> |
5561 | <string>S32</string> | 6057 | <string>S32</string> |
5562 | <key>Value</key> | 6058 | <key>Value</key> |
5563 | <integer>1</integer> | 6059 | <integer>1</integer> |
5564 | </map> | 6060 | </map> |
5565 | <key>RenderMaxPartCount</key> | 6061 | <key>RenderMaxPartCount</key> |
5566 | <map> | 6062 | <map> |
5567 | <key>Comment</key> | 6063 | <key>Comment</key> |
5568 | <string>Maximum number of particles to display on screen</string> | 6064 | <string>Maximum number of particles to display on screen</string> |
5569 | <key>Persist</key> | 6065 | <key>Persist</key> |
5570 | <integer>1</integer> | 6066 | <integer>1</integer> |
5571 | <key>Type</key> | 6067 | <key>Type</key> |
5572 | <string>S32</string> | 6068 | <string>S32</string> |
5573 | <key>Value</key> | 6069 | <key>Value</key> |
5574 | <integer>4096</integer> | 6070 | <integer>4096</integer> |
5575 | </map> | 6071 | </map> |
5576 | <key>RenderMaxVBOSize</key> | 6072 | <key>RenderMaxVBOSize</key> |
5577 | <map> | 6073 | <map> |
5578 | <key>Comment</key> | 6074 | <key>Comment</key> |
5579 | <string>Maximum size of a vertex buffer (in KB).</string> | 6075 | <string>Maximum size of a vertex buffer (in KB).</string> |
5580 | <key>Persist</key> | 6076 | <key>Persist</key> |
5581 | <integer>1</integer> | 6077 | <integer>1</integer> |
5582 | <key>Type</key> | 6078 | <key>Type</key> |
5583 | <string>S32</string> | 6079 | <string>S32</string> |
5584 | <key>Value</key> | 6080 | <key>Value</key> |
5585 | <integer>32</integer> | 6081 | <integer>32</integer> |
5586 | </map> | 6082 | </map> |
5587 | <key>RenderName</key> | 6083 | <key>RenderName</key> |
5588 | <map> | 6084 | <map> |
5589 | <key>Comment</key> | 6085 | <key>Comment</key> |
5590 | <string>Controls display of names above avatars (0 = never, 1 = fade, 2 = always)</string> | 6086 | <string>Controls display of names above avatars (0 = never, 1 = fade, 2 = always)</string> |
5591 | <key>Persist</key> | 6087 | <key>Persist</key> |
5592 | <integer>1</integer> | 6088 | <integer>1</integer> |
5593 | <key>Type</key> | 6089 | <key>Type</key> |
5594 | <string>S32</string> | 6090 | <string>S32</string> |
5595 | <key>Value</key> | 6091 | <key>Value</key> |
5596 | <integer>2</integer> | 6092 | <integer>2</integer> |
5597 | </map> | 6093 | </map> |
5598 | <key>RenderNameFadeDuration</key> | 6094 | <key>RenderNameFadeDuration</key> |
5599 | <map> | 6095 | <map> |
5600 | <key>Comment</key> | 6096 | <key>Comment</key> |
5601 | <string>Time interval over which to fade avatar names (seconds)</string> | 6097 | <string>Time interval over which to fade avatar names (seconds)</string> |
5602 | <key>Persist</key> | 6098 | <key>Persist</key> |
5603 | <integer>1</integer> | 6099 | <integer>1</integer> |
5604 | <key>Type</key> | 6100 | <key>Type</key> |
5605 | <string>F32</string> | 6101 | <string>F32</string> |
5606 | <key>Value</key> | 6102 | <key>Value</key> |
5607 | <real>1</real> | 6103 | <real>1.0</real> |
5608 | </map> | 6104 | </map> |
5609 | <key>RenderNameHideSelf</key> | 6105 | <key>RenderNameHideSelf</key> |
5610 | <map> | 6106 | <map> |
5611 | <key>Comment</key> | 6107 | <key>Comment</key> |
5612 | <string>Don't display own name above avatar</string> | 6108 | <string>Don't display own name above avatar</string> |
5613 | <key>Persist</key> | 6109 | <key>Persist</key> |
5614 | <integer>1</integer> | 6110 | <integer>1</integer> |
5615 | <key>Type</key> | 6111 | <key>Type</key> |
5616 | <string>Boolean</string> | 6112 | <string>Boolean</string> |
5617 | <key>Value</key> | 6113 | <key>Value</key> |
5618 | <integer>0</integer> | 6114 | <integer>0</integer> |
5619 | </map> | 6115 | </map> |
5620 | <key>RenderNameShowTime</key> | 6116 | <key>RenderNameShowTime</key> |
5621 | <map> | 6117 | <map> |
5622 | <key>Comment</key> | 6118 | <key>Comment</key> |
5623 | <string>Fade avatar names after specified time (seconds)</string> | 6119 | <string>Fade avatar names after specified time (seconds)</string> |
5624 | <key>Persist</key> | 6120 | <key>Persist</key> |
5625 | <integer>1</integer> | 6121 | <integer>1</integer> |
5626 | <key>Type</key> | 6122 | <key>Type</key> |
5627 | <string>F32</string> | 6123 | <string>F32</string> |
5628 | <key>Value</key> | 6124 | <key>Value</key> |
5629 | <real>10</real> | 6125 | <real>10.0</real> |
5630 | </map> | 6126 | </map> |
5631 | <key>RenderObjectBump</key> | 6127 | <key>RenderObjectBump</key> |
5632 | <map> | 6128 | <map> |
5633 | <key>Comment</key> | 6129 | <key>Comment</key> |
5634 | <string>Show bumpmapping on primitives</string> | 6130 | <string>Show bumpmapping on primitives</string> |
5635 | <key>Persist</key> | 6131 | <key>Persist</key> |
5636 | <integer>1</integer> | 6132 | <integer>1</integer> |
5637 | <key>Type</key> | 6133 | <key>Type</key> |
5638 | <string>Boolean</string> | 6134 | <string>Boolean</string> |
5639 | <key>Value</key> | 6135 | <key>Value</key> |
5640 | <integer>1</integer> | 6136 | <integer>1</integer> |
5641 | </map> | 6137 | </map> |
5642 | <key>RenderQualityPerformance</key> | 6138 | <key>RenderQualityPerformance</key> |
5643 | <map> | 6139 | <map> |
5644 | <key>Comment</key> | 6140 | <key>Comment</key> |
5645 | <string>Which graphics settings you've chosen</string> | 6141 | <string>Which graphics settings you've chosen</string> |
5646 | <key>Persist</key> | 6142 | <key>Persist</key> |
5647 | <integer>1</integer> | 6143 | <integer>1</integer> |
5648 | <key>Type</key> | 6144 | <key>Type</key> |
5649 | <string>U32</string> | 6145 | <string>U32</string> |
5650 | <key>Value</key> | 6146 | <key>Value</key> |
5651 | <integer>1</integer> | 6147 | <integer>1</integer> |
5652 | </map> | 6148 | </map> |
5653 | <key>RenderReflectionDetail</key> | 6149 | <key>RenderReflectionDetail</key> |
5654 | <map> | 6150 | <map> |
5655 | <key>Comment</key> | 6151 | <key>Comment</key> |
5656 | <string>Detail of reflection render pass.</string> | 6152 | <string>Detail of reflection render pass.</string> |
5657 | <key>Persist</key> | 6153 | <key>Persist</key> |
5658 | <integer>1</integer> | 6154 | <integer>1</integer> |
5659 | <key>Type</key> | 6155 | <key>Type</key> |
5660 | <string>S32</string> | 6156 | <string>S32</string> |
5661 | <key>Value</key> | 6157 | <key>Value</key> |
5662 | <integer>2</integer> | 6158 | <integer>2</integer> |
5663 | </map> | 6159 | </map> |
5664 | <key>RenderReflectionRes</key> | 6160 | <key>RenderReflectionRes</key> |
5665 | <map> | 6161 | <map> |
5666 | <key>Comment</key> | 6162 | <key>Comment</key> |
5667 | <string>Reflection map resolution.</string> | 6163 | <string>Reflection map resolution.</string> |
5668 | <key>Persist</key> | 6164 | <key>Persist</key> |
5669 | <integer>1</integer> | 6165 | <integer>1</integer> |
5670 | <key>Type</key> | 6166 | <key>Type</key> |
5671 | <string>S32</string> | 6167 | <string>S32</string> |
5672 | <key>Value</key> | 6168 | <key>Value</key> |
5673 | <integer>64</integer> | 6169 | <integer>64</integer> |
5674 | </map> | 6170 | </map> |
5675 | <key>RenderResolutionDivisor</key> | 6171 | <key>RenderResolutionDivisor</key> |
5676 | <map> | 6172 | <map> |
5677 | <key>Comment</key> | 6173 | <key>Comment</key> |
5678 | <string>Divisor for rendering 3D scene at reduced resolution.</string> | 6174 | <string>Divisor for rendering 3D scene at reduced resolution.</string> |
5679 | <key>Persist</key> | 6175 | <key>Persist</key> |
5680 | <integer>1</integer> | 6176 | <integer>1</integer> |
5681 | <key>Type</key> | 6177 | <key>Type</key> |
5682 | <string>U32</string> | 6178 | <string>U32</string> |
5683 | <key>Value</key> | 6179 | <key>Value</key> |
5684 | <integer>1</integer> | 6180 | <integer>1</integer> |
5685 | </map> | 6181 | </map> |
5686 | <key>RenderShaderLODThreshold</key> | 6182 | <key>RenderShaderLODThreshold</key> |
5687 | <map> | 6183 | <map> |
5688 | <key>Comment</key> | 6184 | <key>Comment</key> |
5689 | <string>Fraction of draw distance defining the switch to a different shader LOD</string> | 6185 | <string>Fraction of draw distance defining the switch to a different shader LOD</string> |
5690 | <key>Persist</key> | 6186 | <key>Persist</key> |
5691 | <integer>1</integer> | 6187 | <integer>1</integer> |
5692 | <key>Type</key> | 6188 | <key>Type</key> |
5693 | <string>F32</string> | 6189 | <string>F32</string> |
5694 | <key>Value</key> | 6190 | <key>Value</key> |
5695 | <integer>1.0</integer> | 6191 | <real>1.0</real> |
5696 | </map> | 6192 | </map> |
6193 | <key>RenderShaderParticleThreshold</key> | ||
6194 | <map> | ||
6195 | <key>Comment</key> | ||
6196 | <string>Fraction of draw distance to not use shader on particles</string> | ||
6197 | <key>Persist</key> | ||
6198 | <integer>1</integer> | ||
6199 | <key>Type</key> | ||
6200 | <string>F32</string> | ||
6201 | <key>Value</key> | ||
6202 | <real>0.25</real> | ||
6203 | </map> | ||
5697 | <key>RenderSunDynamicRange</key> | 6204 | <key>RenderSunDynamicRange</key> |
5698 | <map> | 6205 | <map> |
5699 | <key>Comment</key> | 6206 | <key>Comment</key> |
5700 | <string>Defines what percent brighter the sun is than local point lights (1.0 = 100% brighter. Value should not be less than 0. ).</string> | 6207 | <string>Defines what percent brighter the sun is than local point lights (1.0 = 100% brighter. Value should not be less than 0. ).</string> |
5701 | <key>Persist</key> | 6208 | <key>Persist</key> |
5702 | <integer>1</integer> | 6209 | <integer>1</integer> |
5703 | <key>Type</key> | 6210 | <key>Type</key> |
5704 | <string>F32</string> | 6211 | <string>F32</string> |
5705 | <key>Value</key> | 6212 | <key>Value</key> |
5706 | <integer>1.0</integer> | 6213 | <real>1.0</real> |
5707 | </map> | 6214 | </map> |
5708 | <key>RenderTerrainDetail</key> | 6215 | <key>RenderTerrainDetail</key> |
5709 | <map> | 6216 | <map> |
5710 | <key>Comment</key> | 6217 | <key>Comment</key> |
5711 | <string>Detail applied to terrain texturing (0 = none, 1 or 2 = full)</string> | 6218 | <string>Detail applied to terrain texturing (0 = none, 1 or 2 = full)</string> |
5712 | <key>Persist</key> | 6219 | <key>Persist</key> |
5713 | <integer>1</integer> | 6220 | <integer>1</integer> |
5714 | <key>Type</key> | 6221 | <key>Type</key> |
5715 | <string>S32</string> | 6222 | <string>S32</string> |
5716 | <key>Value</key> | 6223 | <key>Value</key> |
5717 | <integer>2</integer> | 6224 | <integer>2</integer> |
5718 | </map> | 6225 | </map> |
5719 | <key>RenderTerrainLODFactor</key> | 6226 | <key>RenderTerrainLODFactor</key> |
5720 | <map> | 6227 | <map> |
5721 | <key>Comment</key> | 6228 | <key>Comment</key> |
5722 | <string>Controls level of detail of terrain (multiplier for current screen area when calculated level of detail)</string> | 6229 | <string>Controls level of detail of terrain (multiplier for current screen area when calculated level of detail)</string> |
5723 | <key>Persist</key> | 6230 | <key>Persist</key> |
5724 | <integer>1</integer> | 6231 | <integer>1</integer> |
5725 | <key>Type</key> | 6232 | <key>Type</key> |
5726 | <string>F32</string> | 6233 | <string>F32</string> |
5727 | <key>Value</key> | 6234 | <key>Value</key> |
5728 | <real>1.0</real> | 6235 | <real>1.0</real> |
5729 | </map> | 6236 | </map> |
5730 | <key>RenderTerrainScale</key> | 6237 | <key>RenderTerrainScale</key> |
5731 | <map> | 6238 | <map> |
5732 | <key>Comment</key> | 6239 | <key>Comment</key> |
5733 | <string>Terrain detail texture scale</string> | 6240 | <string>Terrain detail texture scale</string> |
5734 | <key>Persist</key> | 6241 | <key>Persist</key> |
5735 | <integer>1</integer> | 6242 | <integer>1</integer> |
5736 | <key>Type</key> | 6243 | <key>Type</key> |
5737 | <string>F32</string> | 6244 | <string>F32</string> |
5738 | <key>Value</key> | 6245 | <key>Value</key> |
5739 | <real>12</real> | 6246 | <real>12.0</real> |
5740 | </map> | 6247 | </map> |
6248 | <key>RenderTextureMemoryMultiple</key> | ||
6249 | <map> | ||
6250 | <key>Comment</key> | ||
6251 | <string>Multiple of texture memory value to use (should fit: 0 < value <= 1.0)</string> | ||
6252 | <key>Persist</key> | ||
6253 | <integer>1</integer> | ||
6254 | <key>Type</key> | ||
6255 | <string>F32</string> | ||
6256 | <key>Value</key> | ||
6257 | <real>1.0</real> | ||
6258 | </map> | ||
5741 | <key>RenderTreeLODFactor</key> | 6259 | <key>RenderTreeLODFactor</key> |
5742 | <map> | 6260 | <map> |
5743 | <key>Comment</key> | 6261 | <key>Comment</key> |
5744 | <string>Controls level of detail of vegetation (multiplier for current screen area when calculated level of detail)</string> | 6262 | <string>Controls level of detail of vegetation (multiplier for current screen area when calculated level of detail)</string> |
5745 | <key>Persist</key> | 6263 | <key>Persist</key> |
5746 | <integer>1</integer> | 6264 | <integer>1</integer> |
5747 | <key>Type</key> | 6265 | <key>Type</key> |
5748 | <string>F32</string> | 6266 | <string>F32</string> |
5749 | <key>Value</key> | 6267 | <key>Value</key> |
5750 | <real>0.5</real> | 6268 | <real>0.5</real> |
5751 | </map> | 6269 | </map> |
5752 | <key>RenderUIInSnapshot</key> | 6270 | <key>RenderUIInSnapshot</key> |
5753 | <map> | 6271 | <map> |
5754 | <key>Comment</key> | 6272 | <key>Comment</key> |
5755 | <string>Display user interface in snapshot</string> | 6273 | <string>Display user interface in snapshot</string> |
5756 | <key>Persist</key> | 6274 | <key>Persist</key> |
5757 | <integer>1</integer> | 6275 | <integer>1</integer> |
5758 | <key>Type</key> | 6276 | <key>Type</key> |
5759 | <string>Boolean</string> | 6277 | <string>Boolean</string> |
5760 | <key>Value</key> | 6278 | <key>Value</key> |
5761 | <integer>0</integer> | 6279 | <integer>0</integer> |
5762 | </map> | 6280 | </map> |
5763 | <key>RenderUseCleverUI</key> | 6281 | <key>RenderUnloadedAvatar</key> |
5764 | <map> | 6282 | <map> |
5765 | <key>Comment</key> | 6283 | <key>Comment</key> |
5766 | <string>Turns on the \"clever\" UI rendering optimization. It's a known performace gain on apple.</string> | 6284 | <string>Show avatars which haven't finished loading</string> |
5767 | <key>Persist</key> | 6285 | <key>Persist</key> |
5768 | <integer>1</integer> | 6286 | <integer>1</integer> |
5769 | <key>Type</key> | 6287 | <key>Type</key> |
5770 | <string>Boolean</string> | 6288 | <string>Boolean</string> |
5771 | <key>Value</key> | 6289 | <key>Value</key> |
5772 | <integer>1</integer> | 6290 | <integer>0</integer> |
5773 | </map> | 6291 | </map> |
5774 | <key>RenderUseFarClip</key> | ||
5775 | <map> | ||
5776 | <key>Comment</key> | ||
5777 | <string>If false, frustum culling will ignore far clip plane.</string> | ||
5778 | <key>Persist</key> | ||
5779 | <integer>1</integer> | ||
5780 | <key>Type</key> | ||
5781 | <string>Boolean</string> | ||
5782 | <key>Value</key> | ||
5783 | <integer>1</integer> | ||
5784 | </map> | ||
5785 | <key>RenderUseFBO</key> | 6292 | <key>RenderUseFBO</key> |
5786 | <map> | 6293 | <map> |
5787 | <key>Comment</key> | 6294 | <key>Comment</key> |
5788 | <string>Whether we want to use GL_EXT_framebuffer_objects.</string> | 6295 | <string>Whether we want to use GL_EXT_framebuffer_objects.</string> |
5789 | <key>Persist</key> | 6296 | <key>Persist</key> |
5790 | <integer>1</integer> | 6297 | <integer>1</integer> |
5791 | <key>Type</key> | 6298 | <key>Type</key> |
5792 | <string>Boolean</string> | 6299 | <string>Boolean</string> |
5793 | <key>Value</key> | 6300 | <key>Value</key> |
5794 | <integer>0</integer> | 6301 | <integer>0</integer> |
5795 | </map> | 6302 | </map> |
6303 | <key>RenderUseFarClip</key> | ||
6304 | <map> | ||
6305 | <key>Comment</key> | ||
6306 | <string>If false, frustum culling will ignore far clip plane.</string> | ||
6307 | <key>Persist</key> | ||
6308 | <integer>1</integer> | ||
6309 | <key>Type</key> | ||
6310 | <string>Boolean</string> | ||
6311 | <key>Value</key> | ||
6312 | <integer>1</integer> | ||
6313 | </map> | ||
5796 | <key>RenderUseImpostors</key> | 6314 | <key>RenderUseImpostors</key> |
5797 | <map> | 6315 | <map> |
5798 | <key>Comment</key> | 6316 | <key>Comment</key> |
5799 | <string>Whether we want to use impostors for far away avatars.</string> | 6317 | <string>Whether we want to use impostors for far away avatars.</string> |
5800 | <key>Persist</key> | 6318 | <key>Persist</key> |
5801 | <integer>1</integer> | 6319 | <integer>1</integer> |
5802 | <key>Type</key> | 6320 | <key>Type</key> |
5803 | <string>Boolean</string> | 6321 | <string>Boolean</string> |
5804 | <key>Value</key> | 6322 | <key>Value</key> |
5805 | <integer>1</integer> | 6323 | <integer>1</integer> |
5806 | </map> | 6324 | </map> |
5807 | <key>RenderUseShaderLOD</key> | 6325 | <key>RenderUseShaderLOD</key> |
5808 | <map> | 6326 | <map> |
5809 | <key>Comment</key> | 6327 | <key>Comment</key> |
5810 | <string>Whether we want to have different shaders for LOD</string> | 6328 | <string>Whether we want to have different shaders for LOD</string> |
5811 | <key>Persist</key> | 6329 | <key>Persist</key> |
5812 | <integer>1</integer> | 6330 | <integer>1</integer> |
5813 | <key>Type</key> | 6331 | <key>Type</key> |
5814 | <string>Boolean</string> | 6332 | <string>Boolean</string> |
5815 | <key>Value</key> | 6333 | <key>Value</key> |
5816 | <integer>1</integer> | 6334 | <integer>1</integer> |
5817 | </map> | 6335 | </map> |
5818 | <key>RenderUseShaderNearParticles</key> | 6336 | <key>RenderUseShaderNearParticles</key> |
5819 | <map> | 6337 | <map> |
5820 | <key>Comment</key> | 6338 | <key>Comment</key> |
5821 | <string>Whether we want to use shaders on near particles</string> | 6339 | <string>Whether we want to use shaders on near particles</string> |
5822 | <key>Persist</key> | 6340 | <key>Persist</key> |
5823 | <integer>1</integer> | 6341 | <integer>1</integer> |
5824 | <key>Type</key> | 6342 | <key>Type</key> |
5825 | <string>Boolean</string> | 6343 | <string>Boolean</string> |
5826 | <key>Value</key> | 6344 | <key>Value</key> |
5827 | <integer>0</integer> | 6345 | <integer>0</integer> |
5828 | </map> | 6346 | </map> |
5829 | <key>RenderShaderParticleThreshold</key> | ||
5830 | <map> | ||
5831 | <key>Comment</key> | ||
5832 | <string>Fraction of draw distance to not use shader on particles</string> | ||
5833 | <key>Persist</key> | ||
5834 | <integer>1</integer> | ||
5835 | <key>Type</key> | ||
5836 | <string>F32</string> | ||
5837 | <key>Value</key> | ||
5838 | <real>0.25</real> | ||
5839 | </map> | ||
5840 | <key>RenderVBOEnable</key> | 6347 | <key>RenderVBOEnable</key> |
5841 | <map> | 6348 | <map> |
5842 | <key>Comment</key> | 6349 | <key>Comment</key> |
5843 | <string>Use GL Vertex Buffer Objects</string> | 6350 | <string>Use GL Vertex Buffer Objects</string> |
5844 | <key>Persist</key> | 6351 | <key>Persist</key> |
5845 | <integer>1</integer> | 6352 | <integer>1</integer> |
5846 | <key>Type</key> | 6353 | <key>Type</key> |
5847 | <string>Boolean</string> | 6354 | <string>Boolean</string> |
5848 | <key>Value</key> | 6355 | <key>Value</key> |
5849 | <integer>1</integer> | 6356 | <integer>1</integer> |
5850 | </map> | 6357 | </map> |
5851 | <key>RenderVolumeLODFactor</key> | 6358 | <key>RenderVolumeLODFactor</key> |
5852 | <map> | 6359 | <map> |
5853 | <key>Comment</key> | 6360 | <key>Comment</key> |
5854 | <string>Controls level of detail of primitives (multiplier for current screen area when calculated level of detail)</string> | 6361 | <string>Controls level of detail of primitives (multiplier for current screen area when calculated level of detail)</string> |
5855 | <key>Persist</key> | 6362 | <key>Persist</key> |
5856 | <integer>1</integer> | 6363 | <integer>1</integer> |
5857 | <key>Type</key> | 6364 | <key>Type</key> |
5858 | <string>F32</string> | 6365 | <string>F32</string> |
5859 | <key>Value</key> | 6366 | <key>Value</key> |
5860 | <real>1</real> | 6367 | <real>1.0</real> |
5861 | </map> | 6368 | </map> |
5862 | <key>RenderWater</key> | 6369 | <key>RenderWater</key> |
5863 | <map> | 6370 | <map> |
5864 | <key>Comment</key> | 6371 | <key>Comment</key> |
5865 | <string>Display water</string> | 6372 | <string>Display water</string> |
5866 | <key>Persist</key> | 6373 | <key>Persist</key> |
5867 | <integer>1</integer> | 6374 | <integer>1</integer> |
5868 | <key>Type</key> | 6375 | <key>Type</key> |
5869 | <string>Boolean</string> | 6376 | <string>Boolean</string> |
5870 | <key>Value</key> | 6377 | <key>Value</key> |
5871 | <integer>1</integer> | 6378 | <integer>1</integer> |
5872 | </map> | 6379 | </map> |
5873 | <key>RenderWaterMipNormal</key> | 6380 | <key>RenderWaterMipNormal</key> |
5874 | <map> | 6381 | <map> |
5875 | <key>Comment</key> | 6382 | <key>Comment</key> |
5876 | <string>Use mip maps for water normal map.</string> | 6383 | <string>Use mip maps for water normal map.</string> |
5877 | <key>Persist</key> | 6384 | <key>Persist</key> |
5878 | <integer>1</integer> | 6385 | <integer>1</integer> |
5879 | <key>Type</key> | 6386 | <key>Type</key> |
5880 | <string>Boolean</string> | 6387 | <string>Boolean</string> |
5881 | <key>Value</key> | 6388 | <key>Value</key> |
5882 | <integer>1</integer> | 6389 | <integer>1</integer> |
5883 | </map> | 6390 | </map> |
5884 | <key>RenderWaterReflections</key> | ||
5885 | <map> | ||
5886 | <key>Comment</key> | ||
5887 | <string>Reflect the environment in the water.</string> | ||
5888 | <key>Persist</key> | ||
5889 | <integer>1</integer> | ||
5890 | <key>Type</key> | ||
5891 | <string>Boolean</string> | ||
5892 | <key>Value</key> | ||
5893 | <integer>0</integer> | ||
5894 | </map> | ||
5895 | <key>RenderWaterRefResolution</key> | 6391 | <key>RenderWaterRefResolution</key> |
5896 | <map> | 6392 | <map> |
5897 | <key>Comment</key> | 6393 | <key>Comment</key> |
5898 | <string>Water planar reflection resolution.</string> | 6394 | <string>Water planar reflection resolution.</string> |
5899 | <key>Persist</key> | 6395 | <key>Persist</key> |
5900 | <integer>1</integer> | 6396 | <integer>1</integer> |
5901 | <key>Type</key> | 6397 | <key>Type</key> |
5902 | <string>S32</string> | 6398 | <string>S32</string> |
5903 | <key>Value</key> | 6399 | <key>Value</key> |
5904 | <integer>512</integer> | 6400 | <integer>512</integer> |
5905 | </map> | 6401 | </map> |
6402 | <key>RenderWaterReflections</key> | ||
6403 | <map> | ||
6404 | <key>Comment</key> | ||
6405 | <string>Reflect the environment in the water.</string> | ||
6406 | <key>Persist</key> | ||
6407 | <integer>1</integer> | ||
6408 | <key>Type</key> | ||
6409 | <string>Boolean</string> | ||
6410 | <key>Value</key> | ||
6411 | <integer>0</integer> | ||
6412 | </map> | ||
5906 | <key>RotateRight</key> | 6413 | <key>RotateRight</key> |
5907 | <map> | 6414 | <map> |
5908 | <key>Comment</key> | 6415 | <key>Comment</key> |
5909 | <string>Make the agent rotate to its right.</string> | 6416 | <string>Make the agent rotate to its right.</string> |
5910 | <key>Persist</key> | 6417 | <key>Persist</key> |
5911 | <integer>1</integer> | 6418 | <integer>1</integer> |
5912 | <key>Type</key> | 6419 | <key>Type</key> |
5913 | <string>Boolean</string> | 6420 | <string>Boolean</string> |
5914 | <key>Value</key> | 6421 | <key>Value</key> |
5915 | <integer>0</integer> | 6422 | <integer>0</integer> |
5916 | </map> | 6423 | </map> |
5917 | <key>RotationStep</key> | 6424 | <key>RotationStep</key> |
5918 | <map> | 6425 | <map> |
5919 | <key>Comment</key> | 6426 | <key>Comment</key> |
5920 | <string>All rotations via rotation tool are constrained to multiples of this unit (degrees)</string> | 6427 | <string>All rotations via rotation tool are constrained to multiples of this unit (degrees)</string> |
5921 | <key>Persist</key> | 6428 | <key>Persist</key> |
5922 | <integer>1</integer> | 6429 | <integer>1</integer> |
5923 | <key>Type</key> | 6430 | <key>Type</key> |
5924 | <string>F32</string> | 6431 | <string>F32</string> |
5925 | <key>Value</key> | 6432 | <key>Value</key> |
5926 | <real>1</real> | 6433 | <real>1.0</real> |
5927 | </map> | 6434 | </map> |
5928 | <key>RunBtnState</key> | 6435 | <key>RunBtnState</key> |
5929 | <map> | 6436 | <map> |
5930 | <key>Comment</key> | 6437 | <key>Comment</key> |
5931 | <string /> | 6438 | <string /> |
5932 | <key>Persist</key> | 6439 | <key>Persist</key> |
5933 | <integer>0</integer> | 6440 | <integer>0</integer> |
5934 | <key>Type</key> | 6441 | <key>Type</key> |
5935 | <string>Boolean</string> | 6442 | <string>Boolean</string> |
5936 | <key>Value</key> | 6443 | <key>Value</key> |
5937 | <integer>0</integer> | 6444 | <integer>0</integer> |
5938 | </map> | 6445 | </map> |
5939 | <key>RunMultipleThreads</key> | 6446 | <key>RunMultipleThreads</key> |
5940 | <map> | 6447 | <map> |
5941 | <key>Comment</key> | 6448 | <key>Comment</key> |
5942 | <string>If TRUE keep background threads active during render</string> | 6449 | <string>If TRUE keep background threads active during render</string> |
5943 | <key>Persist</key> | 6450 | <key>Persist</key> |
5944 | <integer>1</integer> | 6451 | <integer>1</integer> |
5945 | <key>Type</key> | 6452 | <key>Type</key> |
5946 | <string>Boolean</string> | 6453 | <string>Boolean</string> |
5947 | <key>Value</key> | 6454 | <key>Value</key> |
5948 | <integer>0</integer> | 6455 | <integer>0</integer> |
5949 | </map> | 6456 | </map> |
5950 | <key>SafeMode</key> | 6457 | <key>SafeMode</key> |
5951 | <map> | 6458 | <map> |
5952 | <key>Comment</key> | 6459 | <key>Comment</key> |
5953 | <string>Reset preferences, run in safe mode.</string> | 6460 | <string>Reset preferences, run in safe mode.</string> |
5954 | <key>Persist</key> | 6461 | <key>Persist</key> |
5955 | <integer>1</integer> | 6462 | <integer>1</integer> |
5956 | <key>Type</key> | 6463 | <key>Type</key> |
5957 | <string>Boolean</string> | 6464 | <string>Boolean</string> |
5958 | <key>Value</key> | 6465 | <key>Value</key> |
5959 | <integer>0</integer> | 6466 | <integer>0</integer> |
5960 | </map> | 6467 | </map> |
5961 | <key>SaveMinidump</key> | 6468 | <key>SaveMinidump</key> |
5962 | <map> | 6469 | <map> |
5963 | <key>Comment</key> | 6470 | <key>Comment</key> |
5964 | <string>Save minidump for developer debugging on crash</string> | 6471 | <string>Save minidump for developer debugging on crash</string> |
5965 | <key>Persist</key> | 6472 | <key>Persist</key> |
5966 | <integer>1</integer> | 6473 | <integer>1</integer> |
5967 | <key>Type</key> | 6474 | <key>Type</key> |
5968 | <string>Boolean</string> | 6475 | <string>Boolean</string> |
5969 | <key>Value</key> | 6476 | <key>Value</key> |
5970 | <integer>1</integer> | 6477 | <integer>1</integer> |
5971 | </map> | 6478 | </map> |
5972 | <key>ScaleShowAxes</key> | 6479 | <key>ScaleShowAxes</key> |
5973 | <map> | 6480 | <map> |
5974 | <key>Comment</key> | 6481 | <key>Comment</key> |
5975 | <string>Show indicator of selected scale axis when scaling</string> | 6482 | <string>Show indicator of selected scale axis when scaling</string> |
5976 | <key>Persist</key> | 6483 | <key>Persist</key> |
5977 | <integer>1</integer> | 6484 | <integer>1</integer> |
5978 | <key>Type</key> | 6485 | <key>Type</key> |
5979 | <string>Boolean</string> | 6486 | <string>Boolean</string> |
5980 | <key>Value</key> | 6487 | <key>Value</key> |
5981 | <integer>0</integer> | 6488 | <integer>0</integer> |
5982 | </map> | 6489 | </map> |
5983 | <key>ScaleStretchTextures</key> | 6490 | <key>ScaleStretchTextures</key> |
5984 | <map> | 6491 | <map> |
5985 | <key>Comment</key> | 6492 | <key>Comment</key> |
5986 | <string>Stretch textures along with object when scaling</string> | 6493 | <string>Stretch textures along with object when scaling</string> |
5987 | <key>Persist</key> | 6494 | <key>Persist</key> |
5988 | <integer>1</integer> | 6495 | <integer>1</integer> |
5989 | <key>Type</key> | 6496 | <key>Type</key> |
5990 | <string>Boolean</string> | 6497 | <string>Boolean</string> |
5991 | <key>Value</key> | 6498 | <key>Value</key> |
5992 | <integer>1</integer> | 6499 | <integer>1</integer> |
5993 | </map> | 6500 | </map> |
5994 | <key>ScaleUniform</key> | 6501 | <key>ScaleUniform</key> |
5995 | <map> | 6502 | <map> |
5996 | <key>Comment</key> | 6503 | <key>Comment</key> |
5997 | <string>Scale selected objects evenly about center of selection</string> | 6504 | <string>Scale selected objects evenly about center of selection</string> |
5998 | <key>Persist</key> | 6505 | <key>Persist</key> |
5999 | <integer>1</integer> | 6506 | <integer>1</integer> |
6000 | <key>Type</key> | 6507 | <key>Type</key> |
6001 | <string>Boolean</string> | 6508 | <string>Boolean</string> |
6002 | <key>Value</key> | 6509 | <key>Value</key> |
6003 | <integer>0</integer> | 6510 | <integer>0</integer> |
6004 | </map> | 6511 | </map> |
6005 | <key>ScriptErrorColor</key> | 6512 | <key>ScriptErrorColor</key> |
6006 | <map> | 6513 | <map> |
6007 | <key>Comment</key> | 6514 | <key>Comment</key> |
6008 | <string>Color of script error messages</string> | 6515 | <string>Color of script error messages</string> |
6009 | <key>Persist</key> | 6516 | <key>Persist</key> |
6010 | <integer>1</integer> | 6517 | <integer>1</integer> |
6011 | <key>Type</key> | 6518 | <key>Type</key> |
6012 | <string>Color4</string> | 6519 | <string>Color4</string> |
6013 | <key>Value</key> | 6520 | <key>Value</key> |
6014 | <array> | 6521 | <array> |
6015 | <real>0.8235294117</real> | 6522 | <real>0.8235294117</real> |
6016 | <real>0.2745098039</real> | 6523 | <real>0.2745098039</real> |
6017 | <real>0.2745098039</real> | 6524 | <real>0.2745098039</real> |
6018 | <real>1</real> | 6525 | <real>1.0</real> |
6019 | </array> | 6526 | </array> |
6020 | </map> | 6527 | </map> |
6021 | <key>ScriptErrorsAsChat</key> | 6528 | <key>ScriptErrorsAsChat</key> |
6022 | <map> | 6529 | <map> |
6023 | <key>Comment</key> | 6530 | <key>Comment</key> |
6024 | <string>Display script errors and warning in chat history</string> | 6531 | <string>Display script errors and warning in chat history</string> |
6025 | <key>Persist</key> | 6532 | <key>Persist</key> |
6026 | <integer>1</integer> | 6533 | <integer>1</integer> |
6027 | <key>Type</key> | 6534 | <key>Type</key> |
6028 | <string>Boolean</string> | 6535 | <string>Boolean</string> |
6029 | <key>Value</key> | 6536 | <key>Value</key> |
6030 | <integer>0</integer> | 6537 | <integer>0</integer> |
6031 | </map> | 6538 | </map> |
6032 | <key>ScriptHelpFollowsCursor</key> | 6539 | <key>ScriptHelpFollowsCursor</key> |
6033 | <map> | 6540 | <map> |
6034 | <key>Comment</key> | 6541 | <key>Comment</key> |
6035 | <string>Scripting help window updates contents based on script editor contents under text cursor</string> | 6542 | <string>Scripting help window updates contents based on script editor contents under text cursor</string> |
6036 | <key>Persist</key> | 6543 | <key>Persist</key> |
6037 | <integer>1</integer> | 6544 | <integer>1</integer> |
6038 | <key>Type</key> | 6545 | <key>Type</key> |
6039 | <string>Boolean</string> | 6546 | <string>Boolean</string> |
6040 | <key>Value</key> | 6547 | <key>Value</key> |
6041 | <integer>0</integer> | 6548 | <integer>0</integer> |
6042 | </map> | 6549 | </map> |
6043 | <key>SearchURLDefault</key> | 6550 | <key>SearchURLDefault</key> |
6044 | <map> | 6551 | <map> |
6045 | <key>Comment</key> | 6552 | <key>Comment</key> |
6046 | <string>URL to load for empty searches</string> | 6553 | <string>URL to load for empty searches</string> |
6047 | <key>Persist</key> | 6554 | <key>Persist</key> |
6048 | <integer>1</integer> | 6555 | <integer>1</integer> |
6049 | <key>Type</key> | 6556 | <key>Type</key> |
6050 | <string>String</string> | 6557 | <string>String</string> |
6051 | <key>Value</key> | 6558 | <key>Value</key> |
6052 | <string>http://secondlife.com/app/search/index.php?</string> | 6559 | <string>http://secondlife.com/app/search/index.php?</string> |
6053 | </map> | 6560 | </map> |
6054 | <key>SearchURLQuery</key> | 6561 | <key>SearchURLQuery</key> |
6055 | <map> | 6562 | <map> |
6056 | <key>Comment</key> | 6563 | <key>Comment</key> |
6057 | <string>URL to use for searches</string> | 6564 | <string>URL to use for searches</string> |
6058 | <key>Persist</key> | 6565 | <key>Persist</key> |
6059 | <integer>1</integer> | 6566 | <integer>1</integer> |
6060 | <key>Type</key> | 6567 | <key>Type</key> |
6061 | <string>String</string> | 6568 | <string>String</string> |
6062 | <key>Value</key> | 6569 | <key>Value</key> |
6063 | <string>http://secondlife.com/app/search/search_proxy.php?q=[QUERY]&s=[COLLECTION]&</string> | 6570 | <string>http://secondlife.com/app/search/search_proxy.php?q=[QUERY]&s=[COLLECTION]&</string> |
6064 | </map> | 6571 | </map> |
6065 | <key>SearchURLSuffix2</key> | 6572 | <key>SearchURLSuffix2</key> |
6066 | <map> | 6573 | <map> |
6067 | <key>Comment</key> | 6574 | <key>Comment</key> |
6068 | <string>Parameters added to end of search queries</string> | 6575 | <string>Parameters added to end of search queries</string> |
6069 | <key>Persist</key> | 6576 | <key>Persist</key> |
6070 | <integer>1</integer> | 6577 | <integer>1</integer> |
6071 | <key>Type</key> | 6578 | <key>Type</key> |
6072 | <string>String</string> | 6579 | <string>String</string> |
6073 | <key>Value</key> | 6580 | <key>Value</key> |
6074 | <string>lang=[LANG]&m=[MATURE]&t=[TEEN]&region=[REGION]&x=[X]&y=[Y]&z=[Z]&session=[SESSION]</string> | 6581 | <string>lang=[LANG]&m=[MATURE]&t=[TEEN]&region=[REGION]&x=[X]&y=[Y]&z=[Z]&session=[SESSION]</string> |
6075 | </map> | 6582 | </map> |
6076 | <key>SelectMovableOnly</key> | 6583 | <key>SelectMovableOnly</key> |
6077 | <map> | 6584 | <map> |
6078 | <key>Comment</key> | 6585 | <key>Comment</key> |
6079 | <string>Select only objects you can move</string> | 6586 | <string>Select only objects you can move</string> |
6080 | <key>Persist</key> | 6587 | <key>Persist</key> |
6081 | <integer>1</integer> | 6588 | <integer>1</integer> |
6082 | <key>Type</key> | 6589 | <key>Type</key> |
6083 | <string>Boolean</string> | 6590 | <string>Boolean</string> |
6084 | <key>Value</key> | 6591 | <key>Value</key> |
6085 | <integer>0</integer> | 6592 | <integer>0</integer> |
6086 | </map> | 6593 | </map> |
6087 | <key>SelectOwnedOnly</key> | 6594 | <key>SelectOwnedOnly</key> |
6088 | <map> | 6595 | <map> |
6089 | <key>Comment</key> | 6596 | <key>Comment</key> |
6090 | <string>Select only objects you own</string> | 6597 | <string>Select only objects you own</string> |
6091 | <key>Persist</key> | 6598 | <key>Persist</key> |
6092 | <integer>1</integer> | 6599 | <integer>1</integer> |
6093 | <key>Type</key> | 6600 | <key>Type</key> |
6094 | <string>Boolean</string> | 6601 | <string>Boolean</string> |
6095 | <key>Value</key> | 6602 | <key>Value</key> |
6096 | <integer>0</integer> | 6603 | <integer>0</integer> |
6097 | </map> | 6604 | </map> |
6098 | <key>SelectionHighlightAlpha</key> | 6605 | <key>SelectionHighlightAlpha</key> |
6099 | <map> | 6606 | <map> |
6100 | <key>Comment</key> | 6607 | <key>Comment</key> |
6101 | <string>Opacity of selection highlight (0.0 = completely transparent, 1.0 = completely opaque)</string> | 6608 | <string>Opacity of selection highlight (0.0 = completely transparent, 1.0 = completely opaque)</string> |
6102 | <key>Persist</key> | 6609 | <key>Persist</key> |
6103 | <integer>1</integer> | 6610 | <integer>1</integer> |
6104 | <key>Type</key> | 6611 | <key>Type</key> |
6105 | <string>F32</string> | 6612 | <string>F32</string> |
6106 | <key>Value</key> | 6613 | <key>Value</key> |
6107 | <real>0.4000000059604644775390625</real> | 6614 | <real>0.40000000596</real> |
6108 | </map> | 6615 | </map> |
6109 | <key>SelectionHighlightAlphaTest</key> | 6616 | <key>SelectionHighlightAlphaTest</key> |
6110 | <map> | 6617 | <map> |
6111 | <key>Comment</key> | 6618 | <key>Comment</key> |
6112 | <string>Alpha value below which pixels are displayed on selection highlight line (0.0 = show all pixels, 1.0 = show now pixels)</string> | 6619 | <string>Alpha value below which pixels are displayed on selection highlight line (0.0 = show all pixels, 1.0 = show now pixels)</string> |
6113 | <key>Persist</key> | 6620 | <key>Persist</key> |
6114 | <integer>1</integer> | 6621 | <integer>1</integer> |
6115 | <key>Type</key> | 6622 | <key>Type</key> |
6116 | <string>F32</string> | 6623 | <string>F32</string> |
6117 | <key>Value</key> | 6624 | <key>Value</key> |
6118 | <real>0.1</real> | 6625 | <real>0.1</real> |
6119 | </map> | 6626 | </map> |
6120 | <key>SelectionHighlightThickness</key> | 6627 | <key>SelectionHighlightThickness</key> |
6121 | <map> | 6628 | <map> |
6122 | <key>Comment</key> | 6629 | <key>Comment</key> |
6123 | <string>Thickness of selection highlight line (fraction of view distance)</string> | 6630 | <string>Thickness of selection highlight line (fraction of view distance)</string> |
6124 | <key>Persist</key> | 6631 | <key>Persist</key> |
6125 | <integer>1</integer> | 6632 | <integer>1</integer> |
6126 | <key>Type</key> | 6633 | <key>Type</key> |
6127 | <string>F32</string> | 6634 | <string>F32</string> |
6128 | <key>Value</key> | 6635 | <key>Value</key> |
6129 | <real>0.009999999776482582092285156</real> | 6636 | <real>0.00999999977648</real> |
6130 | </map> | 6637 | </map> |
6131 | <key>SelectionHighlightUAnim</key> | 6638 | <key>SelectionHighlightUAnim</key> |
6132 | <map> | 6639 | <map> |
6133 | <key>Comment</key> | 6640 | <key>Comment</key> |
6134 | <string>Rate at which texture animates along U direction in selection highlight line (fraction of texture per second)</string> | 6641 | <string>Rate at which texture animates along U direction in selection highlight line (fraction of texture per second)</string> |
6135 | <key>Persist</key> | 6642 | <key>Persist</key> |
6136 | <integer>1</integer> | 6643 | <integer>1</integer> |
6137 | <key>Type</key> | 6644 | <key>Type</key> |
6138 | <string>F32</string> | 6645 | <string>F32</string> |
6139 | <key>Value</key> | 6646 | <key>Value</key> |
6140 | <real>0</real> | 6647 | <real>0.0</real> |
6141 | </map> | 6648 | </map> |
6142 | <key>SelectionHighlightUScale</key> | 6649 | <key>SelectionHighlightUScale</key> |
6143 | <map> | 6650 | <map> |
6144 | <key>Comment</key> | 6651 | <key>Comment</key> |
6145 | <string>Scale of texture display on selection highlight line (fraction of texture size)</string> | 6652 | <string>Scale of texture display on selection highlight line (fraction of texture size)</string> |
6146 | <key>Persist</key> | 6653 | <key>Persist</key> |
6147 | <integer>1</integer> | 6654 | <integer>1</integer> |
6148 | <key>Type</key> | 6655 | <key>Type</key> |
6149 | <string>F32</string> | 6656 | <string>F32</string> |
6150 | <key>Value</key> | 6657 | <key>Value</key> |
6151 | <real>0.1</real> | 6658 | <real>0.1</real> |
6152 | </map> | 6659 | </map> |
6153 | <key>SelectionHighlightVAnim</key> | 6660 | <key>SelectionHighlightVAnim</key> |
6154 | <map> | 6661 | <map> |
6155 | <key>Comment</key> | 6662 | <key>Comment</key> |
6156 | <string>Rate at which texture animates along V direction in selection highlight line (fraction of texture per second)</string> | 6663 | <string>Rate at which texture animates along V direction in selection highlight line (fraction of texture per second)</string> |
6157 | <key>Persist</key> | 6664 | <key>Persist</key> |
6158 | <integer>1</integer> | 6665 | <integer>1</integer> |
6159 | <key>Type</key> | 6666 | <key>Type</key> |
6160 | <string>F32</string> | 6667 | <string>F32</string> |
6161 | <key>Value</key> | 6668 | <key>Value</key> |
6162 | <real>0.5</real> | 6669 | <real>0.5</real> |
6163 | </map> | 6670 | </map> |
6164 | <key>SelectionHighlightVScale</key> | 6671 | <key>SelectionHighlightVScale</key> |
6165 | <map> | 6672 | <map> |
6166 | <key>Comment</key> | 6673 | <key>Comment</key> |
6167 | <string>Scale of texture display on selection highlight line (fraction of texture size)</string> | 6674 | <string>Scale of texture display on selection highlight line (fraction of texture size)</string> |
6168 | <key>Persist</key> | 6675 | <key>Persist</key> |
6169 | <integer>1</integer> | 6676 | <integer>1</integer> |
6170 | <key>Type</key> | 6677 | <key>Type</key> |
6171 | <string>F32</string> | 6678 | <string>F32</string> |
6172 | <key>Value</key> | 6679 | <key>Value</key> |
6173 | <real>1</real> | 6680 | <real>1.0</real> |
6174 | </map> | 6681 | </map> |
6175 | <key>ServerChoice</key> | 6682 | <key>ServerChoice</key> |
6176 | <map> | 6683 | <map> |
6177 | <key>Comment</key> | 6684 | <key>Comment</key> |
6178 | <string>[DO NOT MODIFY] Controls which grid you connect to</string> | 6685 | <string>[DO NOT MODIFY] Controls which grid you connect to</string> |
6179 | <key>Persist</key> | 6686 | <key>Persist</key> |
6180 | <integer>1</integer> | 6687 | <integer>1</integer> |
6181 | <key>Type</key> | 6688 | <key>Type</key> |
6182 | <string>S32</string> | 6689 | <string>S32</string> |
6183 | <key>Value</key> | 6690 | <key>Value</key> |
6184 | <integer>0</integer> | 6691 | <integer>0</integer> |
6185 | </map> | 6692 | </map> |
6186 | <key>ShowAllObjectHoverTip</key> | ||
6187 | <map> | ||
6188 | <key>Comment</key> | ||
6189 | <string>Show descriptive tooltip when mouse hovers over non-interactive and interactive objects.</string> | ||
6190 | <key>Persist</key> | ||
6191 | <integer>1</integer> | ||
6192 | <key>Type</key> | ||
6193 | <string>Boolean</string> | ||
6194 | <key>Value</key> | ||
6195 | <integer>0</integer> | ||
6196 | </map> | ||
6197 | <key>ShowActiveSpeakers</key> | 6693 | <key>ShowActiveSpeakers</key> |
6198 | <map> | 6694 | <map> |
6199 | <key>Comment</key> | 6695 | <key>Comment</key> |
6200 | <string>Display active speakers list on login</string> | 6696 | <string>Display active speakers list on login</string> |
6201 | <key>Persist</key> | 6697 | <key>Persist</key> |
6202 | <integer>1</integer> | 6698 | <integer>1</integer> |
6203 | <key>Type</key> | 6699 | <key>Type</key> |
6204 | <string>Boolean</string> | 6700 | <string>Boolean</string> |
6205 | <key>Value</key> | 6701 | <key>Value</key> |
6206 | <integer>0</integer> | 6702 | <integer>0</integer> |
6207 | </map> | 6703 | </map> |
6704 | <key>ShowAllObjectHoverTip</key> | ||
6705 | <map> | ||
6706 | <key>Comment</key> | ||
6707 | <string>Show descriptive tooltip when mouse hovers over non-interactive and interactive objects.</string> | ||
6708 | <key>Persist</key> | ||
6709 | <integer>1</integer> | ||
6710 | <key>Type</key> | ||
6711 | <string>Boolean</string> | ||
6712 | <key>Value</key> | ||
6713 | <integer>0</integer> | ||
6714 | </map> | ||
6208 | <key>ShowAxes</key> | 6715 | <key>ShowAxes</key> |
6209 | <map> | 6716 | <map> |
6210 | <key>Comment</key> | 6717 | <key>Comment</key> |
6211 | <string>Render coordinate frame at your position</string> | 6718 | <string>Render coordinate frame at your position</string> |
6212 | <key>Persist</key> | 6719 | <key>Persist</key> |
6213 | <integer>1</integer> | 6720 | <integer>1</integer> |
6214 | <key>Type</key> | 6721 | <key>Type</key> |
6215 | <string>Boolean</string> | 6722 | <string>Boolean</string> |
6216 | <key>Value</key> | 6723 | <key>Value</key> |
6217 | <integer>0</integer> | 6724 | <integer>0</integer> |
6218 | </map> | 6725 | </map> |
6219 | <key>ShowCameraControls</key> | 6726 | <key>ShowCameraControls</key> |
6220 | <map> | 6727 | <map> |
6221 | <key>Comment</key> | 6728 | <key>Comment</key> |
6222 | <string>Display camera controls on login</string> | 6729 | <string>Display camera controls on login</string> |
6223 | <key>Persist</key> | 6730 | <key>Persist</key> |
6224 | <integer>1</integer> | 6731 | <integer>1</integer> |
6225 | <key>Type</key> | 6732 | <key>Type</key> |
6226 | <string>Boolean</string> | 6733 | <string>Boolean</string> |
6227 | <key>Value</key> | 6734 | <key>Value</key> |
6228 | <integer>1</integer> | 6735 | <integer>1</integer> |
6229 | </map> | 6736 | </map> |
6230 | <key>ShowChatHistory</key> | 6737 | <key>ShowChatHistory</key> |
6231 | <map> | 6738 | <map> |
6232 | <key>Comment</key> | 6739 | <key>Comment</key> |
6233 | <string /> | 6740 | <string /> |
6234 | <key>Persist</key> | 6741 | <key>Persist</key> |
6235 | <integer>0</integer> | 6742 | <integer>0</integer> |
6236 | <key>Type</key> | 6743 | <key>Type</key> |
6237 | <string>Boolean</string> | 6744 | <string>Boolean</string> |
6238 | <key>Value</key> | 6745 | <key>Value</key> |
6239 | <integer>0</integer> | 6746 | <integer>0</integer> |
6240 | </map> | 6747 | </map> |
6241 | <key>ShowCommunicate</key> | 6748 | <key>ShowCommunicate</key> |
6242 | <map> | 6749 | <map> |
6243 | <key>Comment</key> | 6750 | <key>Comment</key> |
6244 | <string /> | 6751 | <string /> |
6245 | <key>Persist</key> | 6752 | <key>Persist</key> |
6246 | <integer>0</integer> | 6753 | <integer>0</integer> |
6247 | <key>Type</key> | 6754 | <key>Type</key> |
6248 | <string>Boolean</string> | 6755 | <string>Boolean</string> |
6249 | <key>Value</key> | 6756 | <key>Value</key> |
6250 | <integer>0</integer> | 6757 | <integer>0</integer> |
6251 | </map> | 6758 | </map> |
6252 | <key>ShowConsoleWindow</key> | 6759 | <key>ShowConsoleWindow</key> |
6253 | <map> | 6760 | <map> |
6254 | <key>Comment</key> | 6761 | <key>Comment</key> |
6255 | <string>Show log in separate OS window</string> | 6762 | <string>Show log in separate OS window</string> |
6256 | <key>Persist</key> | 6763 | <key>Persist</key> |
6257 | <integer>1</integer> | 6764 | <integer>1</integer> |
6258 | <key>Type</key> | 6765 | <key>Type</key> |
6259 | <string>Boolean</string> | 6766 | <string>Boolean</string> |
6260 | <key>Value</key> | 6767 | <key>Value</key> |
6261 | <integer>0</integer> | 6768 | <integer>0</integer> |
6262 | </map> | 6769 | </map> |
6263 | <key>ShowCrosshairs</key> | 6770 | <key>ShowCrosshairs</key> |
6264 | <map> | 6771 | <map> |
6265 | <key>Comment</key> | 6772 | <key>Comment</key> |
6266 | <string>Display crosshairs when in mouselook mode</string> | 6773 | <string>Display crosshairs when in mouselook mode</string> |
6267 | <key>Persist</key> | 6774 | <key>Persist</key> |
6268 | <integer>1</integer> | 6775 | <integer>1</integer> |
6269 | <key>Type</key> | 6776 | <key>Type</key> |
6270 | <string>Boolean</string> | 6777 | <string>Boolean</string> |
6271 | <key>Value</key> | 6778 | <key>Value</key> |
6272 | <integer>1</integer> | 6779 | <integer>1</integer> |
6273 | </map> | 6780 | </map> |
6274 | <key>ShowDebugConsole</key> | 6781 | <key>ShowDebugConsole</key> |
6275 | <map> | 6782 | <map> |
6276 | <key>Comment</key> | 6783 | <key>Comment</key> |
6277 | <string>Show log in SL window</string> | 6784 | <string>Show log in SL window</string> |
6278 | <key>Persist</key> | 6785 | <key>Persist</key> |
6279 | <integer>1</integer> | 6786 | <integer>1</integer> |
6280 | <key>Type</key> | 6787 | <key>Type</key> |
6281 | <string>Boolean</string> | 6788 | <string>Boolean</string> |
6282 | <key>Value</key> | 6789 | <key>Value</key> |
6283 | <integer>0</integer> | 6790 | <integer>0</integer> |
6284 | </map> | 6791 | </map> |
6285 | <key>ShowDebugStats</key> | 6792 | <key>ShowDebugStats</key> |
6286 | <map> | 6793 | <map> |
6287 | <key>Comment</key> | 6794 | <key>Comment</key> |
6288 | <string>Show performance stats display</string> | 6795 | <string>Show performance stats display</string> |
6289 | <key>Persist</key> | 6796 | <key>Persist</key> |
6290 | <integer>1</integer> | 6797 | <integer>1</integer> |
6291 | <key>Type</key> | 6798 | <key>Type</key> |
6292 | <string>Boolean</string> | 6799 | <string>Boolean</string> |
6293 | <key>Value</key> | 6800 | <key>Value</key> |
6294 | <integer>0</integer> | 6801 | <integer>0</integer> |
6295 | </map> | 6802 | </map> |
6296 | <key>ShowDepthBuffer</key> | 6803 | <key>ShowDepthBuffer</key> |
6297 | <map> | 6804 | <map> |
6298 | <key>Comment</key> | 6805 | <key>Comment</key> |
6299 | <string>Show depth buffer contents</string> | 6806 | <string>Show depth buffer contents</string> |
6300 | <key>Persist</key> | 6807 | <key>Persist</key> |
6301 | <integer>1</integer> | 6808 | <integer>1</integer> |
6302 | <key>Type</key> | 6809 | <key>Type</key> |
6303 | <string>Boolean</string> | 6810 | <string>Boolean</string> |
6304 | <key>Value</key> | 6811 | <key>Value</key> |
6305 | <integer>0</integer> | 6812 | <integer>0</integer> |
6306 | </map> | 6813 | </map> |
6307 | <key>ShowDirectory</key> | 6814 | <key>ShowDirectory</key> |
6308 | <map> | 6815 | <map> |
6309 | <key>Comment</key> | 6816 | <key>Comment</key> |
6310 | <string /> | 6817 | <string /> |
6311 | <key>Persist</key> | 6818 | <key>Persist</key> |
6312 | <integer>0</integer> | 6819 | <integer>0</integer> |
6313 | <key>Type</key> | 6820 | <key>Type</key> |
6314 | <string>Boolean</string> | 6821 | <string>Boolean</string> |
6315 | <key>Value</key> | 6822 | <key>Value</key> |
6316 | <integer>0</integer> | 6823 | <integer>0</integer> |
6317 | </map> | 6824 | </map> |
6318 | <key>ShowEmptyFoldersWhenSearching</key> | 6825 | <key>ShowEmptyFoldersWhenSearching</key> |
6319 | <map> | 6826 | <map> |
6320 | <key>Comment</key> | 6827 | <key>Comment</key> |
6321 | <string>Shows folders that do not have any visible contents when applying a filter to inventory</string> | 6828 | <string>Shows folders that do not have any visible contents when applying a filter to inventory</string> |
6322 | <key>Persist</key> | 6829 | <key>Persist</key> |
6323 | <integer>1</integer> | 6830 | <integer>1</integer> |
6324 | <key>Type</key> | 6831 | <key>Type</key> |
6325 | <string>Boolean</string> | 6832 | <string>Boolean</string> |
6326 | <key>Value</key> | 6833 | <key>Value</key> |
6327 | <integer>0</integer> | 6834 | <integer>0</integer> |
6328 | </map> | 6835 | </map> |
6329 | <key>ShowHoverTips</key> | 6836 | <key>ShowHoverTips</key> |
6330 | <map> | 6837 | <map> |
6331 | <key>Comment</key> | 6838 | <key>Comment</key> |
6332 | <string>Show descriptive tooltip when mouse hovers over items in world</string> | 6839 | <string>Show descriptive tooltip when mouse hovers over items in world</string> |
6333 | <key>Persist</key> | 6840 | <key>Persist</key> |
6334 | <integer>1</integer> | 6841 | <integer>1</integer> |
6335 | <key>Type</key> | 6842 | <key>Type</key> |
6336 | <string>Boolean</string> | 6843 | <string>Boolean</string> |
6337 | <key>Value</key> | 6844 | <key>Value</key> |
6338 | <integer>1</integer> | 6845 | <integer>1</integer> |
6339 | </map> | 6846 | </map> |
6340 | <key>ShowInventory</key> | 6847 | <key>ShowInventory</key> |
6341 | <map> | 6848 | <map> |
6342 | <key>Comment</key> | 6849 | <key>Comment</key> |
6343 | <string>Open inventory window on login</string> | 6850 | <string>Open inventory window on login</string> |
6344 | <key>Persist</key> | 6851 | <key>Persist</key> |
6345 | <integer>1</integer> | 6852 | <integer>1</integer> |
6346 | <key>Type</key> | 6853 | <key>Type</key> |
6347 | <string>Boolean</string> | 6854 | <string>Boolean</string> |
6348 | <key>Value</key> | 6855 | <key>Value</key> |
6349 | <integer>0</integer> | 6856 | <integer>0</integer> |
6350 | </map> | 6857 | </map> |
6351 | <key>ShowLandHoverTip</key> | 6858 | <key>ShowLandHoverTip</key> |
6352 | <map> | 6859 | <map> |
6353 | <key>Comment</key> | 6860 | <key>Comment</key> |
6354 | <string>Show descriptive tooltip when mouse hovers over land</string> | 6861 | <string>Show descriptive tooltip when mouse hovers over land</string> |
6355 | <key>Persist</key> | 6862 | <key>Persist</key> |
6356 | <integer>1</integer> | 6863 | <integer>1</integer> |
6357 | <key>Type</key> | 6864 | <key>Type</key> |
6358 | <string>Boolean</string> | 6865 | <string>Boolean</string> |
6359 | <key>Value</key> | 6866 | <key>Value</key> |
6360 | <integer>0</integer> | 6867 | <integer>0</integer> |
6361 | </map> | 6868 | </map> |
6362 | <key>ShowLeaders</key> | 6869 | <key>ShowLeaders</key> |
6363 | <map> | 6870 | <map> |
6364 | <key>Comment</key> | 6871 | <key>Comment</key> |
6365 | <string /> | 6872 | <string /> |
6366 | <key>Persist</key> | 6873 | <key>Persist</key> |
6367 | <integer>0</integer> | 6874 | <integer>0</integer> |
6368 | <key>Type</key> | 6875 | <key>Type</key> |
6369 | <string>Boolean</string> | 6876 | <string>Boolean</string> |
6370 | <key>Value</key> | 6877 | <key>Value</key> |
6371 | <integer>0</integer> | 6878 | <integer>0</integer> |
6372 | </map> | 6879 | </map> |
6373 | <key>ShowMatureClassifieds</key> | 6880 | <key>ShowMatureClassifieds</key> |
6374 | <map> | 6881 | <map> |
6375 | <key>Comment</key> | 6882 | <key>Comment</key> |
6376 | <string>Display results of find classifieds that are flagged as mature</string> | 6883 | <string>Display results of find classifieds that are flagged as mature</string> |
6377 | <key>Persist</key> | 6884 | <key>Persist</key> |
6378 | <integer>1</integer> | 6885 | <integer>1</integer> |
6379 | <key>Type</key> | 6886 | <key>Type</key> |
6380 | <string>Boolean</string> | 6887 | <string>Boolean</string> |
6381 | <key>Value</key> | 6888 | <key>Value</key> |
6382 | <integer>0</integer> | 6889 | <integer>0</integer> |
6383 | </map> | 6890 | </map> |
6384 | <key>ShowMatureEvents</key> | 6891 | <key>ShowMatureEvents</key> |
6385 | <map> | 6892 | <map> |
6386 | <key>Comment</key> | 6893 | <key>Comment</key> |
6387 | <string>Display results of find events that are flagged as mature</string> | 6894 | <string>Display results of find events that are flagged as mature</string> |
6388 | <key>Persist</key> | 6895 | <key>Persist</key> |
6389 | <integer>1</integer> | 6896 | <integer>1</integer> |
6390 | <key>Type</key> | 6897 | <key>Type</key> |
6391 | <string>Boolean</string> | 6898 | <string>Boolean</string> |
6392 | <key>Value</key> | 6899 | <key>Value</key> |
6393 | <integer>0</integer> | 6900 | <integer>0</integer> |
6394 | </map> | 6901 | </map> |
6395 | <key>ShowMatureFindAll</key> | 6902 | <key>ShowMatureFindAll</key> |
6396 | <map> | 6903 | <map> |
6397 | <key>Comment</key> | 6904 | <key>Comment</key> |
6398 | <string>Display results of find all that are in mature sims</string> | 6905 | <string>Display results of find all that are in mature sims</string> |
6399 | <key>Persist</key> | 6906 | <key>Persist</key> |
6400 | <integer>1</integer> | 6907 | <integer>1</integer> |
6401 | <key>Type</key> | 6908 | <key>Type</key> |
6402 | <string>Boolean</string> | 6909 | <string>Boolean</string> |
6403 | <key>Value</key> | 6910 | <key>Value</key> |
6404 | <integer>0</integer> | 6911 | <integer>0</integer> |
6405 | </map> | 6912 | </map> |
6406 | <key>ShowMatureGroups</key> | 6913 | <key>ShowMatureGroups</key> |
6407 | <map> | 6914 | <map> |
6408 | <key>Comment</key> | 6915 | <key>Comment</key> |
6409 | <string>Display results of find groups that are in flagged as mature</string> | 6916 | <string>Display results of find groups that are in flagged as mature</string> |
6410 | <key>Persist</key> | 6917 | <key>Persist</key> |
6411 | <integer>1</integer> | 6918 | <integer>1</integer> |
6412 | <key>Type</key> | 6919 | <key>Type</key> |
6413 | <string>Boolean</string> | 6920 | <string>Boolean</string> |
6414 | <key>Value</key> | 6921 | <key>Value</key> |
6415 | <integer>1</integer> | 6922 | <integer>1</integer> |
6416 | </map> | 6923 | </map> |
6417 | <key>ShowMatureSims</key> | 6924 | <key>ShowMatureSims</key> |
6418 | <map> | 6925 | <map> |
6419 | <key>Comment</key> | 6926 | <key>Comment</key> |
6420 | <string>Display results of find places or find popular that are in mature sims</string> | 6927 | <string>Display results of find places or find popular that are in mature sims</string> |
6421 | <key>Persist</key> | 6928 | <key>Persist</key> |
6422 | <integer>1</integer> | 6929 | <integer>1</integer> |
6423 | <key>Type</key> | 6930 | <key>Type</key> |
6424 | <string>Boolean</string> | 6931 | <string>Boolean</string> |
6425 | <key>Value</key> | 6932 | <key>Value</key> |
6426 | <integer>0</integer> | 6933 | <integer>0</integer> |
6427 | </map> | 6934 | </map> |
6428 | <key>ShowMiniMap</key> | 6935 | <key>ShowMiniMap</key> |
6429 | <map> | 6936 | <map> |
6430 | <key>Comment</key> | 6937 | <key>Comment</key> |
6431 | <string>Display mini map on login</string> | 6938 | <string>Display mini map on login</string> |
6432 | <key>Persist</key> | 6939 | <key>Persist</key> |
6433 | <integer>1</integer> | 6940 | <integer>1</integer> |
6434 | <key>Type</key> | 6941 | <key>Type</key> |
6435 | <string>Boolean</string> | 6942 | <string>Boolean</string> |
6436 | <key>Value</key> | 6943 | <key>Value</key> |
6437 | <integer>1</integer> | 6944 | <integer>1</integer> |
6438 | </map> | 6945 | </map> |
6439 | <key>ShowMovementControls</key> | 6946 | <key>ShowMovementControls</key> |
6440 | <map> | 6947 | <map> |
6441 | <key>Comment</key> | 6948 | <key>Comment</key> |
6442 | <string>Display movement controls on login</string> | 6949 | <string>Display movement controls on login</string> |
6443 | <key>Persist</key> | 6950 | <key>Persist</key> |
6444 | <integer>1</integer> | 6951 | <integer>1</integer> |
6445 | <key>Type</key> | 6952 | <key>Type</key> |
6446 | <string>Boolean</string> | 6953 | <string>Boolean</string> |
6447 | <key>Value</key> | 6954 | <key>Value</key> |
6448 | <integer>1</integer> | 6955 | <integer>1</integer> |
6449 | </map> | 6956 | </map> |
6450 | <key>ShowNearClip</key> | 6957 | <key>ShowNearClip</key> |
6451 | <map> | 6958 | <map> |
6452 | <key>Comment</key> | 6959 | <key>Comment</key> |
6453 | <string /> | 6960 | <string /> |
6454 | <key>Persist</key> | 6961 | <key>Persist</key> |
6455 | <integer>0</integer> | 6962 | <integer>0</integer> |
6456 | <key>Type</key> | 6963 | <key>Type</key> |
6457 | <string>Boolean</string> | 6964 | <string>Boolean</string> |
6458 | <key>Value</key> | 6965 | <key>Value</key> |
6459 | <integer>0</integer> | 6966 | <integer>0</integer> |
6460 | </map> | 6967 | </map> |
6461 | <key>ShowNewInventory</key> | 6968 | <key>ShowNewInventory</key> |
6462 | <map> | 6969 | <map> |
6463 | <key>Comment</key> | 6970 | <key>Comment</key> |
6464 | <string>Automatically views new notecards/textures/landmarks</string> | 6971 | <string>Automatically views new notecards/textures/landmarks</string> |
6465 | <key>Persist</key> | 6972 | <key>Persist</key> |
6466 | <integer>1</integer> | 6973 | <integer>1</integer> |
6467 | <key>Type</key> | 6974 | <key>Type</key> |
6468 | <string>Boolean</string> | 6975 | <string>Boolean</string> |
6469 | <key>Value</key> | 6976 | <key>Value</key> |
6470 | <integer>1</integer> | 6977 | <integer>1</integer> |
6471 | </map> | 6978 | </map> |
6472 | <key>ShowObjectUpdates</key> | 6979 | <key>ShowObjectUpdates</key> |
6473 | <map> | 6980 | <map> |
6474 | <key>Comment</key> | 6981 | <key>Comment</key> |
6475 | <string>Show when update messages are received for individual objects</string> | 6982 | <string>Show when update messages are received for individual objects</string> |
6476 | <key>Persist</key> | 6983 | <key>Persist</key> |
6477 | <integer>1</integer> | 6984 | <integer>1</integer> |
6478 | <key>Type</key> | 6985 | <key>Type</key> |
6479 | <string>Boolean</string> | 6986 | <string>Boolean</string> |
6480 | <key>Value</key> | 6987 | <key>Value</key> |
6481 | <integer>0</integer> | 6988 | <integer>0</integer> |
6482 | </map> | 6989 | </map> |
6483 | <key>ShowOverlayTitle</key> | 6990 | <key>ShowOverlayTitle</key> |
6484 | <map> | 6991 | <map> |
6485 | <key>Comment</key> | 6992 | <key>Comment</key> |
6486 | <string>Prints watermark text message on screen</string> | 6993 | <string>Prints watermark text message on screen</string> |
6487 | <key>Persist</key> | 6994 | <key>Persist</key> |
6488 | <integer>1</integer> | 6995 | <integer>1</integer> |
6489 | <key>Type</key> | 6996 | <key>Type</key> |
6490 | <string>Boolean</string> | 6997 | <string>Boolean</string> |
6491 | <key>Value</key> | 6998 | <key>Value</key> |
6492 | <integer>0</integer> | 6999 | <integer>0</integer> |
6493 | </map> | 7000 | </map> |
6494 | <key>ShowParcelOwners</key> | 7001 | <key>ShowParcelOwners</key> |
6495 | <map> | 7002 | <map> |
6496 | <key>Comment</key> | 7003 | <key>Comment</key> |
6497 | <string /> | 7004 | <string /> |
6498 | <key>Persist</key> | 7005 | <key>Persist</key> |
6499 | <integer>0</integer> | 7006 | <integer>0</integer> |
6500 | <key>Type</key> | 7007 | <key>Type</key> |
6501 | <string>Boolean</string> | 7008 | <string>Boolean</string> |
6502 | <key>Value</key> | 7009 | <key>Value</key> |
6503 | <integer>0</integer> | 7010 | <integer>0</integer> |
6504 | </map> | 7011 | </map> |
6505 | <key>ShowPermissions</key> | 7012 | <key>ShowPermissions</key> |
6506 | <map> | 7013 | <map> |
6507 | <key>Comment</key> | 7014 | <key>Comment</key> |
6508 | <string /> | 7015 | <string /> |
6509 | <key>Persist</key> | 7016 | <key>Persist</key> |
6510 | <integer>0</integer> | 7017 | <integer>0</integer> |
6511 | <key>Type</key> | 7018 | <key>Type</key> |
6512 | <string>Boolean</string> | 7019 | <string>Boolean</string> |
6513 | <key>Value</key> | 7020 | <key>Value</key> |
6514 | <integer>0</integer> | 7021 | <integer>0</integer> |
6515 | </map> | 7022 | </map> |
6516 | <key>ShowPropertyLines</key> | 7023 | <key>ShowPropertyLines</key> |
6517 | <map> | 7024 | <map> |
6518 | <key>Comment</key> | 7025 | <key>Comment</key> |
6519 | <string>Show line overlay demarking property boundaries</string> | 7026 | <string>Show line overlay demarking property boundaries</string> |
6520 | <key>Persist</key> | 7027 | <key>Persist</key> |
6521 | <integer>1</integer> | 7028 | <integer>1</integer> |
6522 | <key>Type</key> | 7029 | <key>Type</key> |
6523 | <string>Boolean</string> | 7030 | <string>Boolean</string> |
6524 | <key>Value</key> | 7031 | <key>Value</key> |
6525 | <integer>0</integer> | 7032 | <integer>0</integer> |
6526 | </map> | 7033 | </map> |
6527 | <key>ShowSearchBar</key> | 7034 | <key>ShowSearchBar</key> |
6528 | <map> | 7035 | <map> |
6529 | <key>Comment</key> | 7036 | <key>Comment</key> |
6530 | <string>Show the Search Bar in the Status Overlay</string> | 7037 | <string>Show the Search Bar in the Status Overlay</string> |
6531 | <key>Persist</key> | 7038 | <key>Persist</key> |
6532 | <integer>1</integer> | 7039 | <integer>1</integer> |
6533 | <key>Type</key> | 7040 | <key>Type</key> |
6534 | <string>Boolean</string> | 7041 | <string>Boolean</string> |
6535 | <key>Value</key> | 7042 | <key>Value</key> |
6536 | <integer>1</integer> | 7043 | <integer>1</integer> |
6537 | </map> | 7044 | </map> |
6538 | <key>ShowSelectionBeam</key> | 7045 | <key>ShowSelectionBeam</key> |
6539 | <map> | 7046 | <map> |
6540 | <key>Comment</key> | 7047 | <key>Comment</key> |
6541 | <string>Show selection particle beam when selecting or interacting with objects.</string> | 7048 | <string>Show selection particle beam when selecting or interacting with objects.</string> |
6542 | <key>Persist</key> | 7049 | <key>Persist</key> |
6543 | <integer>1</integer> | 7050 | <integer>1</integer> |
6544 | <key>Type</key> | 7051 | <key>Type</key> |
6545 | <string>Boolean</string> | 7052 | <string>Boolean</string> |
6546 | <key>Value</key> | 7053 | <key>Value</key> |
6547 | <integer>1</integer> | 7054 | <integer>1</integer> |
6548 | </map> | 7055 | </map> |
6549 | <key>ShowStartLocation</key> | 7056 | <key>ShowStartLocation</key> |
6550 | <map> | 7057 | <map> |
6551 | <key>Comment</key> | 7058 | <key>Comment</key> |
6552 | <string>Display starting location menu on login screen</string> | 7059 | <string>Display starting location menu on login screen</string> |
6553 | <key>Persist</key> | 7060 | <key>Persist</key> |
6554 | <integer>1</integer> | 7061 | <integer>1</integer> |
6555 | <key>Type</key> | 7062 | <key>Type</key> |
6556 | <string>Boolean</string> | 7063 | <string>Boolean</string> |
6557 | <key>Value</key> | 7064 | <key>Value</key> |
6558 | <integer>0</integer> | 7065 | <integer>0</integer> |
6559 | </map> | 7066 | </map> |
6560 | <key>ShowTangentBasis</key> | 7067 | <key>ShowTangentBasis</key> |
6561 | <map> | 7068 | <map> |
6562 | <key>Comment</key> | 7069 | <key>Comment</key> |
6563 | <string>Render normal and binormal (debugging bump mapping)</string> | 7070 | <string>Render normal and binormal (debugging bump mapping)</string> |
6564 | <key>Persist</key> | 7071 | <key>Persist</key> |
6565 | <integer>1</integer> | 7072 | <integer>1</integer> |
6566 | <key>Type</key> | 7073 | <key>Type</key> |
6567 | <string>Boolean</string> | 7074 | <string>Boolean</string> |
6568 | <key>Value</key> | 7075 | <key>Value</key> |
6569 | <integer>0</integer> | 7076 | <integer>0</integer> |
6570 | </map> | 7077 | </map> |
6571 | <key>ShowToolBar</key> | 7078 | <key>ShowToolBar</key> |
6572 | <map> | 7079 | <map> |
6573 | <key>Comment</key> | 7080 | <key>Comment</key> |
6574 | <string>Show toolbar at bottom of screen</string> | 7081 | <string>Show toolbar at bottom of screen</string> |
6575 | <key>Persist</key> | 7082 | <key>Persist</key> |
6576 | <integer>1</integer> | 7083 | <integer>1</integer> |
6577 | <key>Type</key> | 7084 | <key>Type</key> |
6578 | <string>Boolean</string> | 7085 | <string>Boolean</string> |
6579 | <key>Value</key> | 7086 | <key>Value</key> |
6580 | <integer>1</integer> | 7087 | <integer>1</integer> |
6581 | </map> | 7088 | </map> |
6582 | <key>ShowTools</key> | 7089 | <key>ShowTools</key> |
6583 | <map> | 7090 | <map> |
6584 | <key>Comment</key> | 7091 | <key>Comment</key> |
6585 | <string /> | 7092 | <string /> |
6586 | <key>Persist</key> | 7093 | <key>Persist</key> |
6587 | <integer>0</integer> | 7094 | <integer>0</integer> |
6588 | <key>Type</key> | 7095 | <key>Type</key> |
6589 | <string>Boolean</string> | 7096 | <string>Boolean</string> |
6590 | <key>Value</key> | 7097 | <key>Value</key> |
6591 | <integer>0</integer> | 7098 | <integer>0</integer> |
6592 | </map> | 7099 | </map> |
6593 | <key>ShowVoiceChannelPopup</key> | 7100 | <key>ShowVoiceChannelPopup</key> |
6594 | <map> | 7101 | <map> |
6595 | <key>Comment</key> | 7102 | <key>Comment</key> |
6596 | <string>Controls visibility of the current voice channel popup above the voice tab</string> | 7103 | <string>Controls visibility of the current voice channel popup above the voice tab</string> |
6597 | <key>Persist</key> | 7104 | <key>Persist</key> |
6598 | <integer>1</integer> | 7105 | <integer>1</integer> |
6599 | <key>Type</key> | 7106 | <key>Type</key> |
6600 | <string>Boolean</string> | 7107 | <string>Boolean</string> |
6601 | <key>Value</key> | 7108 | <key>Value</key> |
6602 | <integer>0</integer> | 7109 | <integer>0</integer> |
6603 | </map> | 7110 | </map> |
6604 | <key>ShowVolumeSettingsPopup</key> | 7111 | <key>ShowVolumeSettingsPopup</key> |
6605 | <map> | 7112 | <map> |
6606 | <key>Comment</key> | 7113 | <key>Comment</key> |
6607 | <string>Show individual volume slider for voice, sound effects, etc</string> | 7114 | <string>Show individual volume slider for voice, sound effects, etc</string> |
6608 | <key>Persist</key> | 7115 | <key>Persist</key> |
6609 | <integer>1</integer> | 7116 | <integer>1</integer> |
6610 | <key>Type</key> | 7117 | <key>Type</key> |
6611 | <string>Boolean</string> | 7118 | <string>Boolean</string> |
6612 | <key>Value</key> | 7119 | <key>Value</key> |
6613 | <integer>0</integer> | 7120 | <integer>0</integer> |
6614 | </map> | 7121 | </map> |
6615 | <key>ShowWorldMap</key> | 7122 | <key>ShowWorldMap</key> |
6616 | <map> | 7123 | <map> |
6617 | <key>Comment</key> | 7124 | <key>Comment</key> |
6618 | <string>Display world map on login</string> | 7125 | <string>Display world map on login</string> |
6619 | <key>Persist</key> | 7126 | <key>Persist</key> |
6620 | <integer>1</integer> | 7127 | <integer>1</integer> |
6621 | <key>Type</key> | 7128 | <key>Type</key> |
6622 | <string>Boolean</string> | 7129 | <string>Boolean</string> |
6623 | <key>Value</key> | 7130 | <key>Value</key> |
6624 | <integer>0</integer> | 7131 | <integer>0</integer> |
6625 | </map> | 7132 | </map> |
6626 | <key>ShowXUINames</key> | 7133 | <key>ShowXUINames</key> |
6627 | <map> | 7134 | <map> |
6628 | <key>Comment</key> | 7135 | <key>Comment</key> |
6629 | <string>Display XUI Names as Tooltips</string> | 7136 | <string>Display XUI Names as Tooltips</string> |
6630 | <key>Persist</key> | 7137 | <key>Persist</key> |
6631 | <integer>1</integer> | 7138 | <integer>1</integer> |
6632 | <key>Type</key> | 7139 | <key>Type</key> |
6633 | <string>Boolean</string> | 7140 | <string>Boolean</string> |
6634 | <key>Value</key> | 7141 | <key>Value</key> |
6635 | <integer>0</integer> | 7142 | <integer>0</integer> |
6636 | </map> | 7143 | </map> |
6637 | <key>SitBtnState</key> | 7144 | <key>SitBtnState</key> |
6638 | <map> | 7145 | <map> |
6639 | <key>Comment</key> | 7146 | <key>Comment</key> |
6640 | <string /> | 7147 | <string /> |
6641 | <key>Persist</key> | 7148 | <key>Persist</key> |
6642 | <integer>0</integer> | 7149 | <integer>0</integer> |
6643 | <key>Type</key> | 7150 | <key>Type</key> |
6644 | <string>Boolean</string> | 7151 | <string>Boolean</string> |
6645 | <key>Value</key> | 7152 | <key>Value</key> |
6646 | <integer>0</integer> | 7153 | <integer>0</integer> |
6647 | </map> | 7154 | </map> |
6648 | <key>SkinFolder</key> | 7155 | <key>SkinFolder</key> |
6649 | <map> | 7156 | <map> |
6650 | <key>Comment</key> | 7157 | <key>Comment</key> |
6651 | <string>The skin folder to use.</string> | 7158 | <string>The skin folder to use.</string> |
6652 | <key>Persist</key> | 7159 | <key>Persist</key> |
6653 | <integer>1</integer> | 7160 | <integer>1</integer> |
6654 | <key>Type</key> | 7161 | <key>Type</key> |
6655 | <string>String</string> | 7162 | <string>String</string> |
6656 | <key>Value</key> | 7163 | <key>Value</key> |
6657 | <string /> | 7164 | <string /> |
6658 | </map> | 7165 | </map> |
6659 | <key>SkyAmbientScale</key> | 7166 | <key>SkyAmbientScale</key> |
6660 | <map> | 7167 | <map> |
6661 | <key>Comment</key> | 7168 | <key>Comment</key> |
6662 | <string>Controls strength of ambient, or non-directional light from the sun and moon (fraction or multiple of default ambient level)</string> | 7169 | <string>Controls strength of ambient, or non-directional light from the sun and moon (fraction or multiple of default ambient level)</string> |
6663 | <key>Persist</key> | 7170 | <key>Persist</key> |
6664 | <integer>1</integer> | 7171 | <integer>1</integer> |
6665 | <key>Type</key> | 7172 | <key>Type</key> |
6666 | <string>F32</string> | 7173 | <string>F32</string> |
6667 | <key>Value</key> | 7174 | <key>Value</key> |
6668 | <real>0.300000011920928955078125</real> | 7175 | <real>0.300000011921</real> |
6669 | </map> | 7176 | </map> |
7177 | <key>SkyEditPresets</key> | ||
7178 | <map> | ||
7179 | <key>Comment</key> | ||
7180 | <string>Whether to be able to edit the sky defaults or not</string> | ||
7181 | <key>Persist</key> | ||
7182 | <integer>1</integer> | ||
7183 | <key>Type</key> | ||
7184 | <string>Boolean</string> | ||
7185 | <key>Value</key> | ||
7186 | <integer>0</integer> | ||
7187 | </map> | ||
6670 | <key>SkyNightColorShift</key> | 7188 | <key>SkyNightColorShift</key> |
6671 | <map> | 7189 | <map> |
6672 | <key>Comment</key> | 7190 | <key>Comment</key> |
6673 | <string>Controls moonlight color (base color applied to moon as light source)</string> | 7191 | <string>Controls moonlight color (base color applied to moon as light source)</string> |
6674 | <key>Persist</key> | 7192 | <key>Persist</key> |
6675 | <integer>1</integer> | 7193 | <integer>1</integer> |
6676 | <key>Type</key> | 7194 | <key>Type</key> |
6677 | <string>Color3</string> | 7195 | <string>Color3</string> |
6678 | <key>Value</key> | 7196 | <key>Value</key> |
6679 | <array> | 7197 | <array> |
6680 | <real>0.699999988079071044921875</real> | 7198 | <real>0.699999988079</real> |
6681 | <real>0.699999988079071044921875</real> | 7199 | <real>0.699999988079</real> |
6682 | <real>1</real> | 7200 | <real>1.0</real> |
6683 | </array> | 7201 | </array> |
6684 | </map> | 7202 | </map> |
6685 | <key>SkyOverrideSimSunPosition</key> | 7203 | <key>SkyOverrideSimSunPosition</key> |
6686 | <map> | 7204 | <map> |
6687 | <key>Comment</key> | 7205 | <key>Comment</key> |
6688 | <string /> | 7206 | <string /> |
6689 | <key>Persist</key> | 7207 | <key>Persist</key> |
6690 | <integer>0</integer> | 7208 | <integer>0</integer> |
6691 | <key>Type</key> | 7209 | <key>Type</key> |
6692 | <string>Boolean</string> | 7210 | <string>Boolean</string> |
6693 | <key>Value</key> | 7211 | <key>Value</key> |
6694 | <integer>0</integer> | 7212 | <integer>0</integer> |
6695 | </map> | 7213 | </map> |
6696 | <key>SkySunDefaultPosition</key> | 7214 | <key>SkySunDefaultPosition</key> |
6697 | <map> | 7215 | <map> |
6698 | <key>Comment</key> | 7216 | <key>Comment</key> |
6699 | <string>Default position of sun in sky (direction in world coordinates)</string> | 7217 | <string>Default position of sun in sky (direction in world coordinates)</string> |
6700 | <key>Persist</key> | 7218 | <key>Persist</key> |
6701 | <integer>1</integer> | 7219 | <integer>1</integer> |
6702 | <key>Type</key> | 7220 | <key>Type</key> |
6703 | <string>Vector3</string> | 7221 | <string>Vector3</string> |
6704 | <key>Value</key> | 7222 | <key>Value</key> |
6705 | <array> | 7223 | <array> |
6706 | <real>1</real> | 7224 | <real>1.0</real> |
6707 | <real>0</real> | 7225 | <real>0.0</real> |
6708 | <real>0.1</real> | 7226 | <real>0.1</real> |
6709 | </array> | 7227 | </array> |
6710 | </map> | 7228 | </map> |
6711 | <key>SkyUseClassicClouds</key> | 7229 | <key>SkyUseClassicClouds</key> |
6712 | <map> | 7230 | <map> |
6713 | <key>Comment</key> | 7231 | <key>Comment</key> |
6714 | <string>Whether to use the old Second Life particle clouds or not</string> | 7232 | <string>Whether to use the old Second Life particle clouds or not</string> |
6715 | <key>Persist</key> | 7233 | <key>Persist</key> |
6716 | <integer>1</integer> | 7234 | <integer>1</integer> |
6717 | <key>Type</key> | 7235 | <key>Type</key> |
6718 | <string>Boolean</string> | 7236 | <string>Boolean</string> |
6719 | <key>Value</key> | 7237 | <key>Value</key> |
6720 | <integer>1</integer> | 7238 | <integer>1</integer> |
6721 | </map> | 7239 | </map> |
6722 | <key>SlideLeftBtnRect</key> | 7240 | <key>SlideLeftBtnRect</key> |
6723 | <map> | 7241 | <map> |
6724 | <key>Comment</key> | 7242 | <key>Comment</key> |
6725 | <string /> | 7243 | <string /> |
6726 | <key>Persist</key> | 7244 | <key>Persist</key> |
6727 | <integer>0</integer> | 7245 | <integer>0</integer> |
6728 | <key>Type</key> | 7246 | <key>Type</key> |
6729 | <string>Rect</string> | 7247 | <string>Rect</string> |
6730 | <key>Value</key> | 7248 | <key>Value</key> |
6731 | <array> | 7249 | <array> |
6732 | <integer>20</integer> | 7250 | <integer>20</integer> |
6733 | <integer>54</integer> | 7251 | <integer>54</integer> |
6734 | <integer>45</integer> | 7252 | <integer>45</integer> |
6735 | <integer>29</integer> | 7253 | <integer>29</integer> |
6736 | </array> | 7254 | </array> |
6737 | </map> | 7255 | </map> |
6738 | <key>SlideRightBtnRect</key> | 7256 | <key>SlideRightBtnRect</key> |
6739 | <map> | 7257 | <map> |
6740 | <key>Comment</key> | 7258 | <key>Comment</key> |
6741 | <string /> | 7259 | <string /> |
6742 | <key>Persist</key> | 7260 | <key>Persist</key> |
6743 | <integer>0</integer> | 7261 | <integer>0</integer> |
6744 | <key>Type</key> | 7262 | <key>Type</key> |
6745 | <string>Rect</string> | 7263 | <string>Rect</string> |
6746 | <key>Value</key> | 7264 | <key>Value</key> |
6747 | <array> | 7265 | <array> |
6748 | <integer>66</integer> | 7266 | <integer>66</integer> |
6749 | <integer>54</integer> | 7267 | <integer>54</integer> |
6750 | <integer>91</integer> | 7268 | <integer>91</integer> |
6751 | <integer>29</integer> | 7269 | <integer>29</integer> |
6752 | </array> | 7270 | </array> |
6753 | </map> | 7271 | </map> |
6754 | <key>SmallAvatarNames</key> | 7272 | <key>SmallAvatarNames</key> |
6755 | <map> | 7273 | <map> |
6756 | <key>Comment</key> | 7274 | <key>Comment</key> |
6757 | <string>Display avatar name text in smaller font</string> | 7275 | <string>Display avatar name text in smaller font</string> |
6758 | <key>Persist</key> | 7276 | <key>Persist</key> |
6759 | <integer>1</integer> | 7277 | <integer>1</integer> |
6760 | <key>Type</key> | 7278 | <key>Type</key> |
6761 | <string>Boolean</string> | 7279 | <string>Boolean</string> |
6762 | <key>Value</key> | 7280 | <key>Value</key> |
6763 | <integer>1</integer> | 7281 | <integer>1</integer> |
6764 | </map> | 7282 | </map> |
6765 | <key>SnapEnabled</key> | 7283 | <key>SnapEnabled</key> |
6766 | <map> | 7284 | <map> |
6767 | <key>Comment</key> | 7285 | <key>Comment</key> |
6768 | <string>Enable snapping to grid</string> | 7286 | <string>Enable snapping to grid</string> |
6769 | <key>Persist</key> | 7287 | <key>Persist</key> |
6770 | <integer>1</integer> | 7288 | <integer>1</integer> |
6771 | <key>Type</key> | 7289 | <key>Type</key> |
6772 | <string>Boolean</string> | 7290 | <string>Boolean</string> |
6773 | <key>Value</key> | 7291 | <key>Value</key> |
6774 | <integer>1</integer> | 7292 | <integer>1</integer> |
6775 | </map> | 7293 | </map> |
6776 | <key>SnapMargin</key> | 7294 | <key>SnapMargin</key> |
6777 | <map> | 7295 | <map> |
6778 | <key>Comment</key> | 7296 | <key>Comment</key> |
6779 | <string>Controls maximum distance between windows before they auto-snap together (pixels)</string> | 7297 | <string>Controls maximum distance between windows before they auto-snap together (pixels)</string> |
6780 | <key>Persist</key> | 7298 | <key>Persist</key> |
6781 | <integer>1</integer> | 7299 | <integer>1</integer> |
6782 | <key>Type</key> | 7300 | <key>Type</key> |
6783 | <string>S32</string> | 7301 | <string>S32</string> |
6784 | <key>Value</key> | 7302 | <key>Value</key> |
6785 | <integer>10</integer> | 7303 | <integer>10</integer> |
6786 | </map> | 7304 | </map> |
6787 | <key>SnapToMouseCursor</key> | 7305 | <key>SnapToMouseCursor</key> |
6788 | <map> | 7306 | <map> |
6789 | <key>Comment</key> | 7307 | <key>Comment</key> |
6790 | <string>When snapping to grid, center object on nearest grid point to mouse cursor</string> | 7308 | <string>When snapping to grid, center object on nearest grid point to mouse cursor</string> |
6791 | <key>Persist</key> | 7309 | <key>Persist</key> |
6792 | <integer>1</integer> | 7310 | <integer>1</integer> |
6793 | <key>Type</key> | 7311 | <key>Type</key> |
6794 | <string>Boolean</string> | 7312 | <string>Boolean</string> |
6795 | <key>Value</key> | 7313 | <key>Value</key> |
6796 | <integer>0</integer> | 7314 | <integer>0</integer> |
6797 | </map> | 7315 | </map> |
6798 | <key>SnapshotLocalLastResolution</key> | 7316 | <key>SnapshotLocalLastResolution</key> |
6799 | <map> | 7317 | <map> |
6800 | <key>Comment</key> | 7318 | <key>Comment</key> |
6801 | <string>Take next local snapshot at this resolution</string> | 7319 | <string>Take next local snapshot at this resolution</string> |
6802 | <key>Persist</key> | 7320 | <key>Persist</key> |
6803 | <integer>1</integer> | 7321 | <integer>1</integer> |
6804 | <key>Type</key> | 7322 | <key>Type</key> |
6805 | <string>S32</string> | 7323 | <string>S32</string> |
6806 | <key>Value</key> | 7324 | <key>Value</key> |
6807 | <integer>0</integer> | 7325 | <integer>0</integer> |
6808 | </map> | 7326 | </map> |
6809 | <key>SnapshotPostcardLastResolution</key> | 7327 | <key>SnapshotPostcardLastResolution</key> |
6810 | <map> | 7328 | <map> |
6811 | <key>Comment</key> | 7329 | <key>Comment</key> |
6812 | <string>Take next postcard snapshot at this resolution</string> | 7330 | <string>Take next postcard snapshot at this resolution</string> |
6813 | <key>Persist</key> | 7331 | <key>Persist</key> |
6814 | <integer>1</integer> | 7332 | <integer>1</integer> |
6815 | <key>Type</key> | 7333 | <key>Type</key> |
6816 | <string>S32</string> | 7334 | <string>S32</string> |
6817 | <key>Value</key> | 7335 | <key>Value</key> |
6818 | <integer>0</integer> | 7336 | <integer>0</integer> |
6819 | </map> | 7337 | </map> |
6820 | <key>SnapshotQuality</key> | 7338 | <key>SnapshotQuality</key> |
6821 | <map> | 7339 | <map> |
6822 | <key>Comment</key> | 7340 | <key>Comment</key> |
6823 | <string>Quality setting of postcard JPEGs (0 = worst, 100 = best)</string> | 7341 | <string>Quality setting of postcard JPEGs (0 = worst, 100 = best)</string> |
6824 | <key>Persist</key> | 7342 | <key>Persist</key> |
6825 | <integer>1</integer> | 7343 | <integer>1</integer> |
6826 | <key>Type</key> | 7344 | <key>Type</key> |
6827 | <string>S32</string> | 7345 | <string>S32</string> |
6828 | <key>Value</key> | 7346 | <key>Value</key> |
6829 | <integer>75</integer> | 7347 | <integer>75</integer> |
6830 | </map> | 7348 | </map> |
6831 | <key>SnapshotTextureLastResolution</key> | 7349 | <key>SnapshotTextureLastResolution</key> |
6832 | <map> | 7350 | <map> |
6833 | <key>Comment</key> | 7351 | <key>Comment</key> |
6834 | <string>Take next texture snapshot at this resolution</string> | 7352 | <string>Take next texture snapshot at this resolution</string> |
6835 | <key>Persist</key> | 7353 | <key>Persist</key> |
6836 | <integer>1</integer> | 7354 | <integer>1</integer> |
6837 | <key>Type</key> | 7355 | <key>Type</key> |
6838 | <string>S32</string> | 7356 | <string>S32</string> |
6839 | <key>Value</key> | 7357 | <key>Value</key> |
6840 | <integer>0</integer> | 7358 | <integer>0</integer> |
6841 | </map> | 7359 | </map> |
6842 | <key>SpeakingColor</key> | 7360 | <key>SpeakingColor</key> |
6843 | <map> | 7361 | <map> |
6844 | <key>Comment</key> | 7362 | <key>Comment</key> |
6845 | <string>Color of various indicators when resident is speaking on a voice channel.</string> | 7363 | <string>Color of various indicators when resident is speaking on a voice channel.</string> |
6846 | <key>Persist</key> | 7364 | <key>Persist</key> |
6847 | <integer>1</integer> | 7365 | <integer>1</integer> |
6848 | <key>Type</key> | 7366 | <key>Type</key> |
6849 | <string>Color4</string> | 7367 | <string>Color4</string> |
6850 | <key>Value</key> | 7368 | <key>Value</key> |
6851 | <array> | 7369 | <array> |
6852 | <real>0</real> | 7370 | <real>0.0</real> |
6853 | <real>1</real> | 7371 | <real>1.0</real> |
6854 | <real>0</real> | 7372 | <real>0.0</real> |
6855 | <real>1</real> | 7373 | <real>1.0</real> |
6856 | </array> | 7374 | </array> |
6857 | </map> | 7375 | </map> |
6858 | <key>SpeedTest</key> | 7376 | <key>SpeedTest</key> |
6859 | <map> | 7377 | <map> |
6860 | <key>Comment</key> | 7378 | <key>Comment</key> |
6861 | <string>Performance testing mode, no network</string> | 7379 | <string>Performance testing mode, no network</string> |
6862 | <key>Persist</key> | 7380 | <key>Persist</key> |
6863 | <integer>1</integer> | 7381 | <integer>1</integer> |
6864 | <key>Type</key> | 7382 | <key>Type</key> |
6865 | <string>Boolean</string> | 7383 | <string>Boolean</string> |
6866 | <key>Value</key> | 7384 | <key>Value</key> |
6867 | <integer>0</integer> | 7385 | <integer>0</integer> |
6868 | </map> | 7386 | </map> |
6869 | <key>StatsAutoRun</key> | 7387 | <key>StatsAutoRun</key> |
6870 | <map> | 7388 | <map> |
6871 | <key>Comment</key> | 7389 | <key>Comment</key> |
6872 | <string>Play back autopilot</string> | 7390 | <string>Play back autopilot</string> |
6873 | <key>Persist</key> | 7391 | <key>Persist</key> |
6874 | <integer>1</integer> | 7392 | <integer>1</integer> |
6875 | <key>Type</key> | 7393 | <key>Type</key> |
6876 | <string>Boolean</string> | 7394 | <string>Boolean</string> |
6877 | <key>Value</key> | 7395 | <key>Value</key> |
6878 | <integer>0</integer> | 7396 | <integer>0</integer> |
6879 | </map> | 7397 | </map> |
6880 | <key>StatsFile</key> | 7398 | <key>StatsFile</key> |
6881 | <map> | 7399 | <map> |
6882 | <key>Comment</key> | 7400 | <key>Comment</key> |
6883 | <string>Filename for stats logging output</string> | 7401 | <string>Filename for stats logging output</string> |
6884 | <key>Persist</key> | 7402 | <key>Persist</key> |
6885 | <integer>1</integer> | 7403 | <integer>1</integer> |
6886 | <key>Type</key> | 7404 | <key>Type</key> |
6887 | <string>String</string> | 7405 | <string>String</string> |
6888 | <key>Value</key> | 7406 | <key>Value</key> |
6889 | <string>fs.txt</string> | 7407 | <string>fs.txt</string> |
6890 | </map> | 7408 | </map> |
6891 | <key>StatsNumRuns</key> | 7409 | <key>StatsNumRuns</key> |
6892 | <map> | 7410 | <map> |
6893 | <key>Comment</key> | 7411 | <key>Comment</key> |
6894 | <string>Loop autopilot playback this number of times</string> | 7412 | <string>Loop autopilot playback this number of times</string> |
6895 | <key>Persist</key> | 7413 | <key>Persist</key> |
6896 | <integer>1</integer> | 7414 | <integer>1</integer> |
6897 | <key>Type</key> | 7415 | <key>Type</key> |
6898 | <string>S32</string> | 7416 | <string>S32</string> |
6899 | <key>Value</key> | 7417 | <key>Value</key> |
6900 | <integer>-1</integer> | 7418 | <integer>-1</integer> |
6901 | </map> | 7419 | </map> |
6902 | <key>StatsPilotFile</key> | 7420 | <key>StatsPilotFile</key> |
6903 | <map> | 7421 | <map> |
6904 | <key>Comment</key> | 7422 | <key>Comment</key> |
6905 | <string>Filename for stats logging autopilot path</string> | 7423 | <string>Filename for stats logging autopilot path</string> |
6906 | <key>Persist</key> | 7424 | <key>Persist</key> |
6907 | <integer>1</integer> | 7425 | <integer>1</integer> |
6908 | <key>Type</key> | 7426 | <key>Type</key> |
6909 | <string>String</string> | 7427 | <string>String</string> |
6910 | <key>Value</key> | 7428 | <key>Value</key> |
6911 | <string>pilot.txt</string> | 7429 | <string>pilot.txt</string> |
6912 | </map> | 7430 | </map> |
6913 | <key>StatsQuitAfterRuns</key> | 7431 | <key>StatsQuitAfterRuns</key> |
6914 | <map> | 7432 | <map> |
6915 | <key>Comment</key> | 7433 | <key>Comment</key> |
6916 | <string>Quit application after this number of autopilot playback runs</string> | 7434 | <string>Quit application after this number of autopilot playback runs</string> |
6917 | <key>Persist</key> | 7435 | <key>Persist</key> |
6918 | <integer>1</integer> | 7436 | <integer>1</integer> |
6919 | <key>Type</key> | 7437 | <key>Type</key> |
6920 | <string>Boolean</string> | 7438 | <string>Boolean</string> |
6921 | <key>Value</key> | 7439 | <key>Value</key> |
6922 | <integer>0</integer> | 7440 | <integer>0</integer> |
6923 | </map> | 7441 | </map> |
6924 | <key>StatsSessionTrackFrameStats</key> | 7442 | <key>StatsSessionTrackFrameStats</key> |
6925 | <map> | 7443 | <map> |
6926 | <key>Comment</key> | 7444 | <key>Comment</key> |
6927 | <string>Track rendering and network statistics</string> | 7445 | <string>Track rendering and network statistics</string> |
6928 | <key>Persist</key> | 7446 | <key>Persist</key> |
6929 | <integer>1</integer> | 7447 | <integer>1</integer> |
6930 | <key>Type</key> | 7448 | <key>Type</key> |
6931 | <string>Boolean</string> | 7449 | <string>Boolean</string> |
6932 | <key>Value</key> | 7450 | <key>Value</key> |
6933 | <integer>0</integer> | 7451 | <integer>0</integer> |
6934 | </map> | 7452 | </map> |
6935 | <key>StatsSummaryFile</key> | 7453 | <key>StatsSummaryFile</key> |
6936 | <map> | 7454 | <map> |
6937 | <key>Comment</key> | 7455 | <key>Comment</key> |
6938 | <string>Filename for stats logging summary</string> | 7456 | <string>Filename for stats logging summary</string> |
6939 | <key>Persist</key> | 7457 | <key>Persist</key> |
6940 | <integer>1</integer> | 7458 | <integer>1</integer> |
6941 | <key>Type</key> | 7459 | <key>Type</key> |
6942 | <string>String</string> | 7460 | <string>String</string> |
6943 | <key>Value</key> | 7461 | <key>Value</key> |
6944 | <string>fss.txt</string> | 7462 | <string>fss.txt</string> |
6945 | </map> | 7463 | </map> |
6946 | <key>StatusBarHeight</key> | 7464 | <key>StatusBarHeight</key> |
6947 | <map> | 7465 | <map> |
6948 | <key>Comment</key> | 7466 | <key>Comment</key> |
6949 | <string>Height of menu/status bar at top of screen (pixels)</string> | 7467 | <string>Height of menu/status bar at top of screen (pixels)</string> |
6950 | <key>Persist</key> | 7468 | <key>Persist</key> |
6951 | <integer>1</integer> | 7469 | <integer>1</integer> |
6952 | <key>Type</key> | 7470 | <key>Type</key> |
6953 | <string>S32</string> | 7471 | <string>S32</string> |
6954 | <key>Value</key> | 7472 | <key>Value</key> |
6955 | <integer>26</integer> | 7473 | <integer>26</integer> |
6956 | </map> | 7474 | </map> |
6957 | <key>StatusBarPad</key> | 7475 | <key>StatusBarPad</key> |
6958 | <map> | 7476 | <map> |
6959 | <key>Comment</key> | 7477 | <key>Comment</key> |
6960 | <string>Spacing between popup buttons at bottom of screen (Stand up, Release Controls)</string> | 7478 | <string>Spacing between popup buttons at bottom of screen (Stand up, Release Controls)</string> |
6961 | <key>Persist</key> | 7479 | <key>Persist</key> |
6962 | <integer>1</integer> | 7480 | <integer>1</integer> |
6963 | <key>Type</key> | 7481 | <key>Type</key> |
6964 | <string>S32</string> | 7482 | <string>S32</string> |
6965 | <key>Value</key> | 7483 | <key>Value</key> |
6966 | <integer>10</integer> | 7484 | <integer>10</integer> |
6967 | </map> | 7485 | </map> |
6968 | <key>SystemChatColor</key> | 7486 | <key>SystemChatColor</key> |
6969 | <map> | 7487 | <map> |
6970 | <key>Comment</key> | 7488 | <key>Comment</key> |
6971 | <string>Color of chat messages from SL System</string> | 7489 | <string>Color of chat messages from SL System</string> |
6972 | <key>Persist</key> | 7490 | <key>Persist</key> |
6973 | <integer>1</integer> | 7491 | <integer>1</integer> |
6974 | <key>Type</key> | 7492 | <key>Type</key> |
6975 | <string>Color4</string> | 7493 | <string>Color4</string> |
6976 | <key>Value</key> | 7494 | <key>Value</key> |
6977 | <array> | 7495 | <array> |
6978 | <real>0.800000011920928955078125</real> | 7496 | <real>0.800000011921</real> |
6979 | <real>1</real> | 7497 | <real>1.0</real> |
6980 | <real>1</real> | 7498 | <real>1.0</real> |
6981 | <real>1</real> | 7499 | <real>1.0</real> |
6982 | </array> | 7500 | </array> |
6983 | </map> | 7501 | </map> |
6984 | <key>SystemLanguage</key> | 7502 | <key>SystemLanguage</key> |
6985 | <map> | 7503 | <map> |
6986 | <key>Comment</key> | 7504 | <key>Comment</key> |
6987 | <string>Language indicated by system settings (for XUI)</string> | 7505 | <string>Language indicated by system settings (for XUI)</string> |
6988 | <key>Persist</key> | 7506 | <key>Persist</key> |
6989 | <integer>1</integer> | 7507 | <integer>1</integer> |
6990 | <key>Type</key> | 7508 | <key>Type</key> |
6991 | <string>String</string> | 7509 | <string>String</string> |
6992 | <key>Value</key> | 7510 | <key>Value</key> |
6993 | <string>en-us</string> | 7511 | <string>en-us</string> |
6994 | </map> | 7512 | </map> |
6995 | <key>TabToTextFieldsOnly</key> | 7513 | <key>TabToTextFieldsOnly</key> |
6996 | <map> | 7514 | <map> |
6997 | <key>Comment</key> | 7515 | <key>Comment</key> |
6998 | <string>TAB key takes you to next text entry field, instead of next widget</string> | 7516 | <string>TAB key takes you to next text entry field, instead of next widget</string> |
6999 | <key>Persist</key> | 7517 | <key>Persist</key> |
7000 | <integer>1</integer> | 7518 | <integer>1</integer> |
7001 | <key>Type</key> | 7519 | <key>Type</key> |
7002 | <string>Boolean</string> | 7520 | <string>Boolean</string> |
7003 | <key>Value</key> | 7521 | <key>Value</key> |
7004 | <integer>0</integer> | 7522 | <integer>0</integer> |
7005 | </map> | 7523 | </map> |
7006 | <key>TerrainColorHeightRange</key> | 7524 | <key>TerrainColorHeightRange</key> |
7007 | <map> | 7525 | <map> |
7008 | <key>Comment</key> | 7526 | <key>Comment</key> |
7009 | <string>Altitude range over which a given terrain texture has effect (meters)</string> | 7527 | <string>Altitude range over which a given terrain texture has effect (meters)</string> |
7010 | <key>Persist</key> | 7528 | <key>Persist</key> |
7011 | <integer>1</integer> | 7529 | <integer>1</integer> |
7012 | <key>Type</key> | 7530 | <key>Type</key> |
7013 | <string>F32</string> | 7531 | <string>F32</string> |
7014 | <key>Value</key> | 7532 | <key>Value</key> |
7015 | <real>60</real> | 7533 | <real>60.0</real> |
7016 | </map> | 7534 | </map> |
7017 | <key>TerrainColorStartHeight</key> | 7535 | <key>TerrainColorStartHeight</key> |
7018 | <map> | 7536 | <map> |
7019 | <key>Comment</key> | 7537 | <key>Comment</key> |
7020 | <string>Starting altitude for terrain texturing (meters)</string> | 7538 | <string>Starting altitude for terrain texturing (meters)</string> |
7021 | <key>Persist</key> | 7539 | <key>Persist</key> |
7022 | <integer>1</integer> | 7540 | <integer>1</integer> |
7023 | <key>Type</key> | 7541 | <key>Type</key> |
7024 | <string>F32</string> | 7542 | <string>F32</string> |
7025 | <key>Value</key> | 7543 | <key>Value</key> |
7026 | <real>20</real> | 7544 | <real>20.0</real> |
7027 | </map> | 7545 | </map> |
7028 | <key>TextureMemory</key> | 7546 | <key>TextureMemory</key> |
7029 | <map> | 7547 | <map> |
7030 | <key>Comment</key> | 7548 | <key>Comment</key> |
7031 | <string>Amount of memory to use for textures in MB (0 = autodetect)</string> | 7549 | <string>Amount of memory to use for textures in MB (0 = autodetect)</string> |
7032 | <key>Persist</key> | 7550 | <key>Persist</key> |
7033 | <integer>1</integer> | 7551 | <integer>1</integer> |
7034 | <key>Type</key> | 7552 | <key>Type</key> |
7035 | <string>S32</string> | 7553 | <string>S32</string> |
7036 | <key>Value</key> | 7554 | <key>Value</key> |
7037 | <integer>0</integer> | 7555 | <integer>0</integer> |
7038 | </map> | 7556 | </map> |
7039 | <key>TexturePickerRect</key> | 7557 | <key>TexturePickerRect</key> |
7040 | <map> | 7558 | <map> |
7041 | <key>Comment</key> | 7559 | <key>Comment</key> |
7042 | <string>Rectangle for texture picker</string> | 7560 | <string>Rectangle for texture picker</string> |
7043 | <key>Persist</key> | 7561 | <key>Persist</key> |
7044 | <integer>1</integer> | 7562 | <integer>1</integer> |
7045 | <key>Type</key> | 7563 | <key>Type</key> |
7046 | <string>Rect</string> | 7564 | <string>Rect</string> |
7047 | <key>Value</key> | 7565 | <key>Value</key> |
7048 | <array> | 7566 | <array> |
7049 | <integer>0</integer> | 7567 | <integer>0</integer> |
7050 | <integer>290</integer> | 7568 | <integer>290</integer> |
7051 | <integer>350</integer> | 7569 | <integer>350</integer> |
7052 | <integer>0</integer> | 7570 | <integer>0</integer> |
7053 | </array> | 7571 | </array> |
7054 | </map> | 7572 | </map> |
7055 | <key>TexturePickerShowFolders</key> | 7573 | <key>TexturePickerShowFolders</key> |
7056 | <map> | 7574 | <map> |
7057 | <key>Comment</key> | 7575 | <key>Comment</key> |
7058 | <string>Show folders with no texures in texture picker</string> | 7576 | <string>Show folders with no texures in texture picker</string> |
7059 | <key>Persist</key> | 7577 | <key>Persist</key> |
7060 | <integer>1</integer> | 7578 | <integer>1</integer> |
7061 | <key>Type</key> | 7579 | <key>Type</key> |
7062 | <string>Boolean</string> | 7580 | <string>Boolean</string> |
7063 | <key>Value</key> | 7581 | <key>Value</key> |
7064 | <integer>1</integer> | 7582 | <integer>1</integer> |
7065 | </map> | 7583 | </map> |
7066 | <key>TexturePickerSortOrder</key> | 7584 | <key>TexturePickerSortOrder</key> |
7067 | <map> | 7585 | <map> |
7068 | <key>Comment</key> | 7586 | <key>Comment</key> |
7069 | <string>Specifies sort key for textures in texture picker (+0 = name, +1 = date, +2 = folders always by name, +4 = system folders to top)</string> | 7587 | <string>Specifies sort key for textures in texture picker (+0 = name, +1 = date, +2 = folders always by name, +4 = system folders to top)</string> |
7070 | <key>Persist</key> | 7588 | <key>Persist</key> |
7071 | <integer>1</integer> | 7589 | <integer>1</integer> |
7072 | <key>Type</key> | 7590 | <key>Type</key> |
7073 | <string>U32</string> | 7591 | <string>U32</string> |
7074 | <key>Value</key> | 7592 | <key>Value</key> |
7075 | <integer>2</integer> | 7593 | <integer>2</integer> |
7076 | </map> | 7594 | </map> |
7077 | <key>ThirdPersonBtnState</key> | 7595 | <key>ThirdPersonBtnState</key> |
7078 | <map> | 7596 | <map> |
7079 | <key>Comment</key> | 7597 | <key>Comment</key> |
7080 | <string /> | 7598 | <string /> |
7081 | <key>Persist</key> | 7599 | <key>Persist</key> |
7082 | <integer>0</integer> | 7600 | <integer>0</integer> |
7083 | <key>Type</key> | 7601 | <key>Type</key> |
7084 | <string>Boolean</string> | 7602 | <string>Boolean</string> |
7085 | <key>Value</key> | 7603 | <key>Value</key> |
7086 | <integer>1</integer> | 7604 | <integer>1</integer> |
7087 | </map> | 7605 | </map> |
7088 | <key>ThrottleBandwidthKBPS</key> | 7606 | <key>ThrottleBandwidthKBPS</key> |
7089 | <map> | 7607 | <map> |
7090 | <key>Comment</key> | 7608 | <key>Comment</key> |
7091 | <string>Maximum allowable downstream bandwidth (kilo bits per second)</string> | 7609 | <string>Maximum allowable downstream bandwidth (kilo bits per second)</string> |
7092 | <key>Persist</key> | 7610 | <key>Persist</key> |
7093 | <integer>1</integer> | 7611 | <integer>1</integer> |
7094 | <key>Type</key> | 7612 | <key>Type</key> |
7095 | <string>F32</string> | 7613 | <string>F32</string> |
7096 | <key>Value</key> | 7614 | <key>Value</key> |
7097 | <real>500</real> | 7615 | <real>500.0</real> |
7098 | </map> | 7616 | </map> |
7099 | <key>ToolHelpRect</key> | 7617 | <key>ToolHelpRect</key> |
7100 | <map> | 7618 | <map> |
7101 | <key>Comment</key> | 7619 | <key>Comment</key> |
7102 | <string /> | 7620 | <string /> |
7103 | <key>Persist</key> | 7621 | <key>Persist</key> |
7104 | <integer>0</integer> | 7622 | <integer>0</integer> |
7105 | <key>Type</key> | 7623 | <key>Type</key> |
7106 | <string>Rect</string> | 7624 | <string>Rect</string> |
7107 | <key>Value</key> | 7625 | <key>Value</key> |
7108 | <array> | 7626 | <array> |
7109 | <integer>8</integer> | 7627 | <integer>8</integer> |
7110 | <integer>178</integer> | 7628 | <integer>178</integer> |
7111 | <integer>75</integer> | 7629 | <integer>75</integer> |
7112 | <integer>162</integer> | 7630 | <integer>162</integer> |
7113 | </array> | 7631 | </array> |
7114 | </map> | 7632 | </map> |
7115 | <key>ToolTipDelay</key> | 7633 | <key>ToolTipDelay</key> |
7116 | <map> | 7634 | <map> |
7117 | <key>Comment</key> | 7635 | <key>Comment</key> |
7118 | <string>Seconds before displaying tooltip when mouse stops over UI element</string> | 7636 | <string>Seconds before displaying tooltip when mouse stops over UI element</string> |
7119 | <key>Persist</key> | 7637 | <key>Persist</key> |
7120 | <integer>1</integer> | 7638 | <integer>1</integer> |
7121 | <key>Type</key> | 7639 | <key>Type</key> |
7122 | <string>F32</string> | 7640 | <string>F32</string> |
7123 | <key>Value</key> | 7641 | <key>Value</key> |
7124 | <real>0.699999988079071044921875</real> | 7642 | <real>0.699999988079</real> |
7125 | </map> | 7643 | </map> |
7126 | <key>ToolboxAutoMove</key> | 7644 | <key>ToolboxAutoMove</key> |
7127 | <map> | 7645 | <map> |
7128 | <key>Comment</key> | 7646 | <key>Comment</key> |
7129 | <string>[NOT USED]</string> | 7647 | <string>[NOT USED]</string> |
7130 | <key>Persist</key> | 7648 | <key>Persist</key> |
7131 | <integer>1</integer> | 7649 | <integer>1</integer> |
7132 | <key>Type</key> | 7650 | <key>Type</key> |
7133 | <string>Boolean</string> | 7651 | <string>Boolean</string> |
7134 | <key>Value</key> | 7652 | <key>Value</key> |
7135 | <integer>0</integer> | 7653 | <integer>0</integer> |
7136 | </map> | 7654 | </map> |
7137 | <key>ToolboxRect</key> | 7655 | <key>ToolboxRect</key> |
7138 | <map> | 7656 | <map> |
7139 | <key>Comment</key> | 7657 | <key>Comment</key> |
7140 | <string>Rectangle for tools window</string> | 7658 | <string>Rectangle for tools window</string> |
7141 | <key>Persist</key> | 7659 | <key>Persist</key> |
7142 | <integer>1</integer> | 7660 | <integer>1</integer> |
7143 | <key>Type</key> | 7661 | <key>Type</key> |
7144 | <string>Rect</string> | 7662 | <string>Rect</string> |
7145 | <key>Value</key> | 7663 | <key>Value</key> |
7146 | <array> | 7664 | <array> |
7147 | <integer>0</integer> | 7665 | <integer>0</integer> |
7148 | <integer>100</integer> | 7666 | <integer>100</integer> |
7149 | <integer>100</integer> | 7667 | <integer>100</integer> |
7150 | <integer>100</integer> | 7668 | <integer>100</integer> |
7151 | </array> | 7669 | </array> |
7152 | </map> | 7670 | </map> |
7153 | <key>ToolboxShowMore</key> | 7671 | <key>ToolboxShowMore</key> |
7154 | <map> | 7672 | <map> |
7155 | <key>Comment</key> | 7673 | <key>Comment</key> |
7156 | <string>Whether to show additional build tool controls</string> | 7674 | <string>Whether to show additional build tool controls</string> |
7157 | <key>Persist</key> | 7675 | <key>Persist</key> |
7158 | <integer>1</integer> | 7676 | <integer>1</integer> |
7159 | <key>Type</key> | 7677 | <key>Type</key> |
7160 | <string>Boolean</string> | 7678 | <string>Boolean</string> |
7161 | <key>Value</key> | 7679 | <key>Value</key> |
7162 | <integer>1</integer> | 7680 | <integer>1</integer> |
7163 | </map> | 7681 | </map> |
7164 | <key>TrackFocusObject</key> | 7682 | <key>TrackFocusObject</key> |
7165 | <map> | 7683 | <map> |
7166 | <key>Comment</key> | 7684 | <key>Comment</key> |
7167 | <string>Camera tracks last object zoomed on</string> | 7685 | <string>Camera tracks last object zoomed on</string> |
7168 | <key>Persist</key> | 7686 | <key>Persist</key> |
7169 | <integer>1</integer> | 7687 | <integer>1</integer> |
7170 | <key>Type</key> | 7688 | <key>Type</key> |
7171 | <string>Boolean</string> | 7689 | <string>Boolean</string> |
7172 | <key>Value</key> | 7690 | <key>Value</key> |
7173 | <integer>1</integer> | 7691 | <integer>1</integer> |
7174 | </map> | 7692 | </map> |
7175 | <key>TurnLeftBtnRect</key> | 7693 | <key>TurnLeftBtnRect</key> |
7176 | <map> | 7694 | <map> |
7177 | <key>Comment</key> | 7695 | <key>Comment</key> |
7178 | <string /> | 7696 | <string /> |
7179 | <key>Persist</key> | 7697 | <key>Persist</key> |
7180 | <integer>0</integer> | 7698 | <integer>0</integer> |
7181 | <key>Type</key> | 7699 | <key>Type</key> |
7182 | <string>Rect</string> | 7700 | <string>Rect</string> |
7183 | <key>Value</key> | 7701 | <key>Value</key> |
7184 | <array> | 7702 | <array> |
7185 | <integer>20</integer> | 7703 | <integer>20</integer> |
7186 | <integer>29</integer> | 7704 | <integer>29</integer> |
7187 | <integer>45</integer> | 7705 | <integer>45</integer> |
7188 | <integer>4</integer> | 7706 | <integer>4</integer> |
7189 | </array> | 7707 | </array> |
7190 | </map> | 7708 | </map> |
7191 | <key>TurnRightBtnRect</key> | 7709 | <key>TurnRightBtnRect</key> |
7192 | <map> | 7710 | <map> |
7193 | <key>Comment</key> | 7711 | <key>Comment</key> |
7194 | <string /> | 7712 | <string /> |
7195 | <key>Persist</key> | 7713 | <key>Persist</key> |
7196 | <integer>0</integer> | 7714 | <integer>0</integer> |
7197 | <key>Type</key> | 7715 | <key>Type</key> |
7198 | <string>Rect</string> | 7716 | <string>Rect</string> |
7199 | <key>Value</key> | 7717 | <key>Value</key> |
7200 | <array> | 7718 | <array> |
7201 | <integer>66</integer> | 7719 | <integer>66</integer> |
7202 | <integer>29</integer> | 7720 | <integer>29</integer> |
7203 | <integer>91</integer> | 7721 | <integer>91</integer> |
7204 | <integer>4</integer> | 7722 | <integer>4</integer> |
7205 | </array> | 7723 | </array> |
7206 | </map> | 7724 | </map> |
7207 | <key>TypeAheadTimeout</key> | 7725 | <key>TypeAheadTimeout</key> |
7208 | <map> | 7726 | <map> |
7209 | <key>Comment</key> | 7727 | <key>Comment</key> |
7210 | <string>Time delay before clearing type-ahead buffer in lists (seconds)</string> | 7728 | <string>Time delay before clearing type-ahead buffer in lists (seconds)</string> |
7211 | <key>Persist</key> | 7729 | <key>Persist</key> |
7212 | <integer>1</integer> | 7730 | <integer>1</integer> |
7213 | <key>Type</key> | 7731 | <key>Type</key> |
7214 | <string>F32</string> | 7732 | <string>F32</string> |
7215 | <key>Value</key> | 7733 | <key>Value</key> |
7216 | <real>1.5</real> | 7734 | <real>1.5</real> |
7217 | </map> | 7735 | </map> |
7218 | <key>UIAutoScale</key> | 7736 | <key>UIAutoScale</key> |
7219 | <map> | 7737 | <map> |
7220 | <key>Comment</key> | 7738 | <key>Comment</key> |
7221 | <string>Keep UI scale consistent across different resolutions</string> | 7739 | <string>Keep UI scale consistent across different resolutions</string> |
7222 | <key>Persist</key> | 7740 | <key>Persist</key> |
7223 | <integer>1</integer> | 7741 | <integer>1</integer> |
7224 | <key>Type</key> | 7742 | <key>Type</key> |
7225 | <string>Boolean</string> | 7743 | <string>Boolean</string> |
7226 | <key>Value</key> | 7744 | <key>Value</key> |
7227 | <integer>1</integer> | 7745 | <integer>1</integer> |
7228 | </map> | 7746 | </map> |
7229 | <key>UIFloaterTestBool</key> | 7747 | <key>UIFloaterTestBool</key> |
7230 | <map> | 7748 | <map> |
7231 | <key>Comment</key> | 7749 | <key>Comment</key> |
7232 | <string>Example saved setting for the test floater</string> | 7750 | <string>Example saved setting for the test floater</string> |
7233 | <key>Persist</key> | 7751 | <key>Persist</key> |
7234 | <integer>1</integer> | 7752 | <integer>1</integer> |
7235 | <key>Type</key> | 7753 | <key>Type</key> |
7236 | <string>Boolean</string> | 7754 | <string>Boolean</string> |
7237 | <key>Value</key> | 7755 | <key>Value</key> |
7238 | <integer>0</integer> | 7756 | <integer>0</integer> |
7239 | </map> | 7757 | </map> |
7240 | <key>UIImgBtnCloseActiveUUID</key> | 7758 | <key>UIImgBtnCloseActiveUUID</key> |
7241 | <map> | 7759 | <map> |
7242 | <key>Comment</key> | 7760 | <key>Comment</key> |
7243 | <string /> | 7761 | <string /> |
7244 | <key>Persist</key> | 7762 | <key>Persist</key> |
7245 | <integer>0</integer> | 7763 | <integer>0</integer> |
7246 | <key>Type</key> | 7764 | <key>Type</key> |
7247 | <string>String</string> | 7765 | <string>String</string> |
7248 | <key>Value</key> | 7766 | <key>Value</key> |
7249 | <string>47a8c844-cd2a-4b1a-be01-df8b1612fe5d</string> | 7767 | <string>47a8c844-cd2a-4b1a-be01-df8b1612fe5d</string> |
7250 | </map> | 7768 | </map> |
7251 | <key>UIImgBtnCloseInactiveUUID</key> | 7769 | <key>UIImgBtnCloseInactiveUUID</key> |
7252 | <map> | 7770 | <map> |
7253 | <key>Comment</key> | 7771 | <key>Comment</key> |
7254 | <string /> | 7772 | <string /> |
7255 | <key>Persist</key> | 7773 | <key>Persist</key> |
7256 | <integer>0</integer> | 7774 | <integer>0</integer> |
7257 | <key>Type</key> | 7775 | <key>Type</key> |
7258 | <string>String</string> | 7776 | <string>String</string> |
7259 | <key>Value</key> | 7777 | <key>Value</key> |
7260 | <string>779e4fa3-9b13-f74a-fba9-3886fe9c86ba</string> | 7778 | <string>779e4fa3-9b13-f74a-fba9-3886fe9c86ba</string> |
7261 | </map> | 7779 | </map> |
7262 | <key>UIImgBtnClosePressedUUID</key> | 7780 | <key>UIImgBtnClosePressedUUID</key> |
7263 | <map> | 7781 | <map> |
7264 | <key>Comment</key> | 7782 | <key>Comment</key> |
7265 | <string /> | 7783 | <string /> |
7266 | <key>Persist</key> | 7784 | <key>Persist</key> |
7267 | <integer>0</integer> | 7785 | <integer>0</integer> |
7268 | <key>Type</key> | 7786 | <key>Type</key> |
7269 | <string>String</string> | 7787 | <string>String</string> |
7270 | <key>Value</key> | 7788 | <key>Value</key> |
7271 | <string>e5821134-23c0-4bd0-af06-7fa95b9fb01a</string> | 7789 | <string>e5821134-23c0-4bd0-af06-7fa95b9fb01a</string> |
7272 | </map> | 7790 | </map> |
7273 | <key>UIImgBtnForwardInUUID</key> | 7791 | <key>UIImgBtnForwardInUUID</key> |
7274 | <map> | 7792 | <map> |
7275 | <key>Comment</key> | 7793 | <key>Comment</key> |
7276 | <string /> | 7794 | <string /> |
7277 | <key>Persist</key> | 7795 | <key>Persist</key> |
7278 | <integer>0</integer> | 7796 | <integer>0</integer> |
7279 | <key>Type</key> | 7797 | <key>Type</key> |
7280 | <string>String</string> | 7798 | <string>String</string> |
7281 | <key>Value</key> | 7799 | <key>Value</key> |
7282 | <string>54197a61-f5d1-4c29-95d2-c071d08849cb</string> | 7800 | <string>54197a61-f5d1-4c29-95d2-c071d08849cb</string> |
7283 | </map> | 7801 | </map> |
7284 | <key>UIImgBtnForwardOutUUID</key> | 7802 | <key>UIImgBtnForwardOutUUID</key> |
7285 | <map> | 7803 | <map> |
7286 | <key>Comment</key> | 7804 | <key>Comment</key> |
7287 | <string /> | 7805 | <string /> |
7288 | <key>Persist</key> | 7806 | <key>Persist</key> |
7289 | <integer>0</integer> | 7807 | <integer>0</integer> |
7290 | <key>Type</key> | 7808 | <key>Type</key> |
7291 | <string>String</string> | 7809 | <string>String</string> |
7292 | <key>Value</key> | 7810 | <key>Value</key> |
7293 | <string>a0eb4021-1b20-4a53-892d-8faa9265a6f5</string> | 7811 | <string>a0eb4021-1b20-4a53-892d-8faa9265a6f5</string> |
7294 | </map> | 7812 | </map> |
7295 | <key>UIImgBtnJumpLeftInUUID</key> | 7813 | <key>UIImgBtnJumpLeftInUUID</key> |
7296 | <map> | 7814 | <map> |
7297 | <key>Comment</key> | 7815 | <key>Comment</key> |
7298 | <string /> | 7816 | <string /> |
7299 | <key>Persist</key> | 7817 | <key>Persist</key> |
7300 | <integer>0</integer> | 7818 | <integer>0</integer> |
7301 | <key>Type</key> | 7819 | <key>Type</key> |
7302 | <string>String</string> | 7820 | <string>String</string> |
7303 | <key>Value</key> | 7821 | <key>Value</key> |
7304 | <string>9cad3e6d-2d6d-107d-f8ab-5ba272b5bfe1</string> | 7822 | <string>9cad3e6d-2d6d-107d-f8ab-5ba272b5bfe1</string> |
7305 | </map> | 7823 | </map> |
7306 | <key>UIImgBtnJumpLeftOutUUID</key> | 7824 | <key>UIImgBtnJumpLeftOutUUID</key> |
7307 | <map> | 7825 | <map> |
7308 | <key>Comment</key> | 7826 | <key>Comment</key> |
7309 | <string /> | 7827 | <string /> |
7310 | <key>Persist</key> | 7828 | <key>Persist</key> |
7311 | <integer>0</integer> | 7829 | <integer>0</integer> |
7312 | <key>Type</key> | 7830 | <key>Type</key> |
7313 | <string>String</string> | 7831 | <string>String</string> |
7314 | <key>Value</key> | 7832 | <key>Value</key> |
7315 | <string>3c18c87e-5f50-14e2-e744-f44734aa365f</string> | 7833 | <string>3c18c87e-5f50-14e2-e744-f44734aa365f</string> |
7316 | </map> | 7834 | </map> |
7317 | <key>UIImgBtnJumpRightInUUID</key> | 7835 | <key>UIImgBtnJumpRightInUUID</key> |
7318 | <map> | 7836 | <map> |
7319 | <key>Comment</key> | 7837 | <key>Comment</key> |
7320 | <string /> | 7838 | <string /> |
7321 | <key>Persist</key> | 7839 | <key>Persist</key> |
7322 | <integer>0</integer> | 7840 | <integer>0</integer> |
7323 | <key>Type</key> | 7841 | <key>Type</key> |
7324 | <string>String</string> | 7842 | <string>String</string> |
7325 | <key>Value</key> | 7843 | <key>Value</key> |
7326 | <string>7dabc040-ec13-2309-ddf7-4f161f6de2f4</string> | 7844 | <string>7dabc040-ec13-2309-ddf7-4f161f6de2f4</string> |
7327 | </map> | 7845 | </map> |
7328 | <key>UIImgBtnJumpRightOutUUID</key> | 7846 | <key>UIImgBtnJumpRightOutUUID</key> |
7329 | <map> | 7847 | <map> |
7330 | <key>Comment</key> | 7848 | <key>Comment</key> |
7331 | <string /> | 7849 | <string /> |
7332 | <key>Persist</key> | 7850 | <key>Persist</key> |
7333 | <integer>0</integer> | 7851 | <integer>0</integer> |
7334 | <key>Type</key> | 7852 | <key>Type</key> |
7335 | <string>String</string> | 7853 | <string>String</string> |
7336 | <key>Value</key> | 7854 | <key>Value</key> |
7337 | <string>ff9a71eb-7414-4cf8-866e-a701deb7c3cf</string> | 7855 | <string>ff9a71eb-7414-4cf8-866e-a701deb7c3cf</string> |
7338 | </map> | 7856 | </map> |
7339 | <key>UIImgBtnLeftInUUID</key> | 7857 | <key>UIImgBtnLeftInUUID</key> |
7340 | <map> | 7858 | <map> |
7341 | <key>Comment</key> | 7859 | <key>Comment</key> |
7342 | <string /> | 7860 | <string /> |
7343 | <key>Persist</key> | 7861 | <key>Persist</key> |
7344 | <integer>0</integer> | 7862 | <integer>0</integer> |
7345 | <key>Type</key> | 7863 | <key>Type</key> |
7346 | <string>String</string> | 7864 | <string>String</string> |
7347 | <key>Value</key> | 7865 | <key>Value</key> |
7348 | <string>95463c78-aaa6-464d-892d-3a805b6bb7bf</string> | 7866 | <string>95463c78-aaa6-464d-892d-3a805b6bb7bf</string> |
7349 | </map> | 7867 | </map> |
7350 | <key>UIImgBtnLeftOutUUID</key> | 7868 | <key>UIImgBtnLeftOutUUID</key> |
7351 | <map> | 7869 | <map> |
7352 | <key>Comment</key> | 7870 | <key>Comment</key> |
7353 | <string /> | 7871 | <string /> |
7354 | <key>Persist</key> | 7872 | <key>Persist</key> |
7355 | <integer>0</integer> | 7873 | <integer>0</integer> |
7356 | <key>Type</key> | 7874 | <key>Type</key> |
7357 | <string>String</string> | 7875 | <string>String</string> |
7358 | <key>Value</key> | 7876 | <key>Value</key> |
7359 | <string>13a93910-6b44-45eb-ad3a-4d1324c59bac</string> | 7877 | <string>13a93910-6b44-45eb-ad3a-4d1324c59bac</string> |
7360 | </map> | 7878 | </map> |
7361 | <key>UIImgBtnMinimizeActiveUUID</key> | 7879 | <key>UIImgBtnMinimizeActiveUUID</key> |
7362 | <map> | 7880 | <map> |
7363 | <key>Comment</key> | 7881 | <key>Comment</key> |
7364 | <string /> | 7882 | <string /> |
7365 | <key>Persist</key> | 7883 | <key>Persist</key> |
7366 | <integer>0</integer> | 7884 | <integer>0</integer> |
7367 | <key>Type</key> | 7885 | <key>Type</key> |
7368 | <string>String</string> | 7886 | <string>String</string> |
7369 | <key>Value</key> | 7887 | <key>Value</key> |
7370 | <string>34c9398d-bb78-4643-9633-46a2fa3e9637</string> | 7888 | <string>34c9398d-bb78-4643-9633-46a2fa3e9637</string> |
7371 | </map> | 7889 | </map> |
7372 | <key>UIImgBtnMinimizeInactiveUUID</key> | 7890 | <key>UIImgBtnMinimizeInactiveUUID</key> |
7373 | <map> | 7891 | <map> |
7374 | <key>Comment</key> | 7892 | <key>Comment</key> |
7375 | <string /> | 7893 | <string /> |
7376 | <key>Persist</key> | 7894 | <key>Persist</key> |
7377 | <integer>0</integer> | 7895 | <integer>0</integer> |
7378 | <key>Type</key> | 7896 | <key>Type</key> |
7379 | <string>String</string> | 7897 | <string>String</string> |
7380 | <key>Value</key> | 7898 | <key>Value</key> |
7381 | <string>6e72abba-1378-437f-bf7a-f0c15f3e99a3</string> | 7899 | <string>6e72abba-1378-437f-bf7a-f0c15f3e99a3</string> |
7382 | </map> | 7900 | </map> |
7383 | <key>UIImgBtnMinimizePressedUUID</key> | 7901 | <key>UIImgBtnMinimizePressedUUID</key> |
7384 | <map> | 7902 | <map> |
7385 | <key>Comment</key> | 7903 | <key>Comment</key> |
7386 | <string /> | 7904 | <string /> |
7387 | <key>Persist</key> | 7905 | <key>Persist</key> |
7388 | <integer>0</integer> | 7906 | <integer>0</integer> |
7389 | <key>Type</key> | 7907 | <key>Type</key> |
7390 | <string>String</string> | 7908 | <string>String</string> |
7391 | <key>Value</key> | 7909 | <key>Value</key> |
7392 | <string>39801651-26cb-4926-af57-7af9352c273c</string> | 7910 | <string>39801651-26cb-4926-af57-7af9352c273c</string> |
7393 | </map> | 7911 | </map> |
7394 | <key>UIImgBtnMoveDownInUUID</key> | 7912 | <key>UIImgBtnMoveDownInUUID</key> |
7395 | <map> | 7913 | <map> |
7396 | <key>Comment</key> | 7914 | <key>Comment</key> |
7397 | <string /> | 7915 | <string /> |
7398 | <key>Persist</key> | 7916 | <key>Persist</key> |
7399 | <integer>0</integer> | 7917 | <integer>0</integer> |
7400 | <key>Type</key> | 7918 | <key>Type</key> |
7401 | <string>String</string> | 7919 | <string>String</string> |
7402 | <key>Value</key> | 7920 | <key>Value</key> |
7403 | <string>b92a70b9-c841-4c94-b4b3-cee9eb460d48</string> | 7921 | <string>b92a70b9-c841-4c94-b4b3-cee9eb460d48</string> |
7404 | </map> | 7922 | </map> |
7405 | <key>UIImgBtnMoveDownOutUUID</key> | 7923 | <key>UIImgBtnMoveDownOutUUID</key> |
7406 | <map> | 7924 | <map> |
7407 | <key>Comment</key> | 7925 | <key>Comment</key> |
7408 | <string /> | 7926 | <string /> |
7409 | <key>Persist</key> | 7927 | <key>Persist</key> |
7410 | <integer>0</integer> | 7928 | <integer>0</integer> |
7411 | <key>Type</key> | 7929 | <key>Type</key> |
7412 | <string>String</string> | 7930 | <string>String</string> |
7413 | <key>Value</key> | 7931 | <key>Value</key> |
7414 | <string>b5abc9fa-9e62-4e03-bc33-82c4c1b6b689</string> | 7932 | <string>b5abc9fa-9e62-4e03-bc33-82c4c1b6b689</string> |
7415 | </map> | 7933 | </map> |
7416 | <key>UIImgBtnMoveUpInUUID</key> | 7934 | <key>UIImgBtnMoveUpInUUID</key> |
7417 | <map> | 7935 | <map> |
7418 | <key>Comment</key> | 7936 | <key>Comment</key> |
7419 | <string /> | 7937 | <string /> |
7420 | <key>Persist</key> | 7938 | <key>Persist</key> |
7421 | <integer>0</integer> | 7939 | <integer>0</integer> |
7422 | <key>Type</key> | 7940 | <key>Type</key> |
7423 | <string>String</string> | 7941 | <string>String</string> |
7424 | <key>Value</key> | 7942 | <key>Value</key> |
7425 | <string>49b4b357-e430-4b56-b9e0-05b8759c3c82</string> | 7943 | <string>49b4b357-e430-4b56-b9e0-05b8759c3c82</string> |
7426 | </map> | 7944 | </map> |
7427 | <key>UIImgBtnMoveUpOutUUID</key> | 7945 | <key>UIImgBtnMoveUpOutUUID</key> |
7428 | <map> | 7946 | <map> |
7429 | <key>Comment</key> | 7947 | <key>Comment</key> |
7430 | <string /> | 7948 | <string /> |
7431 | <key>Persist</key> | 7949 | <key>Persist</key> |
7432 | <integer>0</integer> | 7950 | <integer>0</integer> |
7433 | <key>Type</key> | 7951 | <key>Type</key> |
7434 | <string>String</string> | 7952 | <string>String</string> |
7435 | <key>Value</key> | 7953 | <key>Value</key> |
7436 | <string>f887146d-829f-4e39-9211-cf872b78f97c</string> | 7954 | <string>f887146d-829f-4e39-9211-cf872b78f97c</string> |
7437 | </map> | 7955 | </map> |
7438 | <key>UIImgBtnPanDownInUUID</key> | 7956 | <key>UIImgBtnPanDownInUUID</key> |
7439 | <map> | 7957 | <map> |
7440 | <key>Comment</key> | 7958 | <key>Comment</key> |
7441 | <string /> | 7959 | <string /> |
7442 | <key>Persist</key> | 7960 | <key>Persist</key> |
7443 | <integer>0</integer> | 7961 | <integer>0</integer> |
7444 | <key>Type</key> | 7962 | <key>Type</key> |
7445 | <string>String</string> | 7963 | <string>String</string> |
7446 | <key>Value</key> | 7964 | <key>Value</key> |
7447 | <string>e5821134-23c0-4bd0-af06-7fa95b9fb01a</string> | 7965 | <string>e5821134-23c0-4bd0-af06-7fa95b9fb01a</string> |
7448 | </map> | 7966 | </map> |
7449 | <key>UIImgBtnPanDownOutUUID</key> | 7967 | <key>UIImgBtnPanDownOutUUID</key> |
7450 | <map> | 7968 | <map> |
7451 | <key>Comment</key> | 7969 | <key>Comment</key> |
7452 | <string /> | 7970 | <string /> |
7453 | <key>Persist</key> | 7971 | <key>Persist</key> |
7454 | <integer>0</integer> | 7972 | <integer>0</integer> |
7455 | <key>Type</key> | 7973 | <key>Type</key> |
7456 | <string>String</string> | 7974 | <string>String</string> |
7457 | <key>Value</key> | 7975 | <key>Value</key> |
7458 | <string>47a8c844-cd2a-4b1a-be01-df8b1612fe5d</string> | 7976 | <string>47a8c844-cd2a-4b1a-be01-df8b1612fe5d</string> |
7459 | </map> | 7977 | </map> |
7460 | <key>UIImgBtnPanLeftInUUID</key> | 7978 | <key>UIImgBtnPanLeftInUUID</key> |
7461 | <map> | 7979 | <map> |
7462 | <key>Comment</key> | 7980 | <key>Comment</key> |
7463 | <string /> | 7981 | <string /> |
7464 | <key>Persist</key> | 7982 | <key>Persist</key> |
7465 | <integer>0</integer> | 7983 | <integer>0</integer> |
7466 | <key>Type</key> | 7984 | <key>Type</key> |
7467 | <string>String</string> | 7985 | <string>String</string> |
7468 | <key>Value</key> | 7986 | <key>Value</key> |
7469 | <string>e5821134-23c0-4bd0-af06-7fa95b9fb01a</string> | 7987 | <string>e5821134-23c0-4bd0-af06-7fa95b9fb01a</string> |
7470 | </map> | 7988 | </map> |
7471 | <key>UIImgBtnPanLeftOutUUID</key> | 7989 | <key>UIImgBtnPanLeftOutUUID</key> |
7472 | <map> | 7990 | <map> |
7473 | <key>Comment</key> | 7991 | <key>Comment</key> |
7474 | <string /> | 7992 | <string /> |
7475 | <key>Persist</key> | 7993 | <key>Persist</key> |
7476 | <integer>0</integer> | 7994 | <integer>0</integer> |
7477 | <key>Type</key> | 7995 | <key>Type</key> |
7478 | <string>String</string> | 7996 | <string>String</string> |
7479 | <key>Value</key> | 7997 | <key>Value</key> |
7480 | <string>47a8c844-cd2a-4b1a-be01-df8b1612fe5d</string> | 7998 | <string>47a8c844-cd2a-4b1a-be01-df8b1612fe5d</string> |
7481 | </map> | 7999 | </map> |
7482 | <key>UIImgBtnPanRightInUUID</key> | 8000 | <key>UIImgBtnPanRightInUUID</key> |
7483 | <map> | 8001 | <map> |
7484 | <key>Comment</key> | 8002 | <key>Comment</key> |
7485 | <string /> | 8003 | <string /> |
7486 | <key>Persist</key> | 8004 | <key>Persist</key> |
7487 | <integer>0</integer> | 8005 | <integer>0</integer> |
7488 | <key>Type</key> | 8006 | <key>Type</key> |
7489 | <string>String</string> | 8007 | <string>String</string> |
7490 | <key>Value</key> | 8008 | <key>Value</key> |
7491 | <string>e5821134-23c0-4bd0-af06-7fa95b9fb01a</string> | 8009 | <string>e5821134-23c0-4bd0-af06-7fa95b9fb01a</string> |
7492 | </map> | 8010 | </map> |
7493 | <key>UIImgBtnPanRightOutUUID</key> | 8011 | <key>UIImgBtnPanRightOutUUID</key> |
7494 | <map> | 8012 | <map> |
7495 | <key>Comment</key> | 8013 | <key>Comment</key> |
7496 | <string /> | 8014 | <string /> |
7497 | <key>Persist</key> | 8015 | <key>Persist</key> |
7498 | <integer>0</integer> | 8016 | <integer>0</integer> |
7499 | <key>Type</key> | 8017 | <key>Type</key> |
7500 | <string>String</string> | 8018 | <string>String</string> |
7501 | <key>Value</key> | 8019 | <key>Value</key> |
7502 | <string>47a8c844-cd2a-4b1a-be01-df8b1612fe5d</string> | 8020 | <string>47a8c844-cd2a-4b1a-be01-df8b1612fe5d</string> |
7503 | </map> | 8021 | </map> |
7504 | <key>UIImgBtnPanUpInUUID</key> | 8022 | <key>UIImgBtnPanUpInUUID</key> |
7505 | <map> | 8023 | <map> |
7506 | <key>Comment</key> | 8024 | <key>Comment</key> |
7507 | <string /> | 8025 | <string /> |
7508 | <key>Persist</key> | 8026 | <key>Persist</key> |
7509 | <integer>0</integer> | 8027 | <integer>0</integer> |
7510 | <key>Type</key> | 8028 | <key>Type</key> |
7511 | <string>String</string> | 8029 | <string>String</string> |
7512 | <key>Value</key> | 8030 | <key>Value</key> |
7513 | <string>e5821134-23c0-4bd0-af06-7fa95b9fb01a</string> | 8031 | <string>e5821134-23c0-4bd0-af06-7fa95b9fb01a</string> |
7514 | </map> | 8032 | </map> |
7515 | <key>UIImgBtnPanUpOutUUID</key> | 8033 | <key>UIImgBtnPanUpOutUUID</key> |
7516 | <map> | 8034 | <map> |
7517 | <key>Comment</key> | 8035 | <key>Comment</key> |
7518 | <string /> | 8036 | <string /> |
7519 | <key>Persist</key> | 8037 | <key>Persist</key> |
7520 | <integer>0</integer> | 8038 | <integer>0</integer> |
7521 | <key>Type</key> | 8039 | <key>Type</key> |
7522 | <string>String</string> | 8040 | <string>String</string> |
7523 | <key>Value</key> | 8041 | <key>Value</key> |
7524 | <string>47a8c844-cd2a-4b1a-be01-df8b1612fe5d</string> | 8042 | <string>47a8c844-cd2a-4b1a-be01-df8b1612fe5d</string> |
7525 | </map> | 8043 | </map> |
7526 | <key>UIImgBtnRestoreActiveUUID</key> | 8044 | <key>UIImgBtnRestoreActiveUUID</key> |
7527 | <map> | 8045 | <map> |
7528 | <key>Comment</key> | 8046 | <key>Comment</key> |
7529 | <string /> | 8047 | <string /> |
7530 | <key>Persist</key> | 8048 | <key>Persist</key> |
7531 | <integer>0</integer> | 8049 | <integer>0</integer> |
7532 | <key>Type</key> | 8050 | <key>Type</key> |
7533 | <string>String</string> | 8051 | <string>String</string> |
7534 | <key>Value</key> | 8052 | <key>Value</key> |
7535 | <string>111b39de-8928-4690-b7b2-e17d5c960277</string> | 8053 | <string>111b39de-8928-4690-b7b2-e17d5c960277</string> |
7536 | </map> | 8054 | </map> |
7537 | <key>UIImgBtnRestoreInactiveUUID</key> | 8055 | <key>UIImgBtnRestoreInactiveUUID</key> |
7538 | <map> | 8056 | <map> |
7539 | <key>Comment</key> | 8057 | <key>Comment</key> |
7540 | <string /> | 8058 | <string /> |
7541 | <key>Persist</key> | 8059 | <key>Persist</key> |
7542 | <integer>0</integer> | 8060 | <integer>0</integer> |
7543 | <key>Type</key> | 8061 | <key>Type</key> |
7544 | <string>String</string> | 8062 | <string>String</string> |
7545 | <key>Value</key> | 8063 | <key>Value</key> |
7546 | <string>0eafa471-70af-4882-b8c1-40a310929744</string> | 8064 | <string>0eafa471-70af-4882-b8c1-40a310929744</string> |
7547 | </map> | 8065 | </map> |
7548 | <key>UIImgBtnRestorePressedUUID</key> | 8066 | <key>UIImgBtnRestorePressedUUID</key> |
7549 | <map> | 8067 | <map> |
7550 | <key>Comment</key> | 8068 | <key>Comment</key> |
7551 | <string /> | 8069 | <string /> |
7552 | <key>Persist</key> | 8070 | <key>Persist</key> |
7553 | <integer>0</integer> | 8071 | <integer>0</integer> |
7554 | <key>Type</key> | 8072 | <key>Type</key> |
7555 | <string>String</string> | 8073 | <string>String</string> |
7556 | <key>Value</key> | 8074 | <key>Value</key> |
7557 | <string>90a0ed5c-2e7b-4845-9958-a64a1b30f312</string> | 8075 | <string>90a0ed5c-2e7b-4845-9958-a64a1b30f312</string> |
7558 | </map> | 8076 | </map> |
7559 | <key>UIImgBtnRightInUUID</key> | 8077 | <key>UIImgBtnRightInUUID</key> |
7560 | <map> | 8078 | <map> |
7561 | <key>Comment</key> | 8079 | <key>Comment</key> |
7562 | <string /> | 8080 | <string /> |
7563 | <key>Persist</key> | 8081 | <key>Persist</key> |
7564 | <integer>0</integer> | 8082 | <integer>0</integer> |
7565 | <key>Type</key> | 8083 | <key>Type</key> |
7566 | <string>String</string> | 8084 | <string>String</string> |
7567 | <key>Value</key> | 8085 | <key>Value</key> |
7568 | <string>5e616d0d-4335-476f-9977-560bccd009da</string> | 8086 | <string>5e616d0d-4335-476f-9977-560bccd009da</string> |
7569 | </map> | 8087 | </map> |
7570 | <key>UIImgBtnRightOutUUID</key> | 8088 | <key>UIImgBtnRightOutUUID</key> |
7571 | <map> | 8089 | <map> |
7572 | <key>Comment</key> | 8090 | <key>Comment</key> |
7573 | <string /> | 8091 | <string /> |
7574 | <key>Persist</key> | 8092 | <key>Persist</key> |
7575 | <integer>0</integer> | 8093 | <integer>0</integer> |
7576 | <key>Type</key> | 8094 | <key>Type</key> |
7577 | <string>String</string> | 8095 | <string>String</string> |
7578 | <key>Value</key> | 8096 | <key>Value</key> |
7579 | <string>5a44fd04-f52b-4c30-8b00-4a31e27614bd</string> | 8097 | <string>5a44fd04-f52b-4c30-8b00-4a31e27614bd</string> |
7580 | </map> | 8098 | </map> |
7581 | <key>UIImgBtnScrollDownInUUID</key> | 8099 | <key>UIImgBtnScrollDownInUUID</key> |
7582 | <map> | 8100 | <map> |
7583 | <key>Comment</key> | 8101 | <key>Comment</key> |
7584 | <string /> | 8102 | <string /> |
7585 | <key>Persist</key> | 8103 | <key>Persist</key> |
7586 | <integer>0</integer> | 8104 | <integer>0</integer> |
7587 | <key>Type</key> | 8105 | <key>Type</key> |
7588 | <string>String</string> | 8106 | <string>String</string> |
7589 | <key>Value</key> | 8107 | <key>Value</key> |
7590 | <string>d2421bab-2eaf-4863-b8f6-5e4c52519247</string> | 8108 | <string>d2421bab-2eaf-4863-b8f6-5e4c52519247</string> |
7591 | </map> | 8109 | </map> |
7592 | <key>UIImgBtnScrollDownOutUUID</key> | 8110 | <key>UIImgBtnScrollDownOutUUID</key> |
7593 | <map> | 8111 | <map> |
7594 | <key>Comment</key> | 8112 | <key>Comment</key> |
7595 | <string /> | 8113 | <string /> |
7596 | <key>Persist</key> | 8114 | <key>Persist</key> |
7597 | <integer>0</integer> | 8115 | <integer>0</integer> |
7598 | <key>Type</key> | 8116 | <key>Type</key> |
7599 | <string>String</string> | 8117 | <string>String</string> |
7600 | <key>Value</key> | 8118 | <key>Value</key> |
7601 | <string>b4ecdecf-5c8d-44e7-b882-17a77e88ed55</string> | 8119 | <string>b4ecdecf-5c8d-44e7-b882-17a77e88ed55</string> |
7602 | </map> | 8120 | </map> |
7603 | <key>UIImgBtnScrollLeftInUUID</key> | 8121 | <key>UIImgBtnScrollLeftInUUID</key> |
7604 | <map> | 8122 | <map> |
7605 | <key>Comment</key> | 8123 | <key>Comment</key> |
7606 | <string /> | 8124 | <string /> |
7607 | <key>Persist</key> | 8125 | <key>Persist</key> |
7608 | <integer>0</integer> | 8126 | <integer>0</integer> |
7609 | <key>Type</key> | 8127 | <key>Type</key> |
7610 | <string>String</string> | 8128 | <string>String</string> |
7611 | <key>Value</key> | 8129 | <key>Value</key> |
7612 | <string>ea137a32-6718-4d05-9c22-7d570d27b2cd</string> | 8130 | <string>ea137a32-6718-4d05-9c22-7d570d27b2cd</string> |
7613 | </map> | 8131 | </map> |
7614 | <key>UIImgBtnScrollLeftOutUUID</key> | 8132 | <key>UIImgBtnScrollLeftOutUUID</key> |
7615 | <map> | 8133 | <map> |
7616 | <key>Comment</key> | 8134 | <key>Comment</key> |
7617 | <string /> | 8135 | <string /> |
7618 | <key>Persist</key> | 8136 | <key>Persist</key> |
7619 | <integer>0</integer> | 8137 | <integer>0</integer> |
7620 | <key>Type</key> | 8138 | <key>Type</key> |
7621 | <string>String</string> | 8139 | <string>String</string> |
7622 | <key>Value</key> | 8140 | <key>Value</key> |
7623 | <string>43773e8d-49aa-48e0-80f3-a04715f4677a</string> | 8141 | <string>43773e8d-49aa-48e0-80f3-a04715f4677a</string> |
7624 | </map> | 8142 | </map> |
7625 | <key>UIImgBtnScrollRightInUUID</key> | 8143 | <key>UIImgBtnScrollRightInUUID</key> |
7626 | <map> | 8144 | <map> |
7627 | <key>Comment</key> | 8145 | <key>Comment</key> |
7628 | <string /> | 8146 | <string /> |
7629 | <key>Persist</key> | 8147 | <key>Persist</key> |
7630 | <integer>0</integer> | 8148 | <integer>0</integer> |
7631 | <key>Type</key> | 8149 | <key>Type</key> |
7632 | <string>String</string> | 8150 | <string>String</string> |
7633 | <key>Value</key> | 8151 | <key>Value</key> |
7634 | <string>b749de64-e903-4c3c-ac0b-25fb6fa39cb5</string> | 8152 | <string>b749de64-e903-4c3c-ac0b-25fb6fa39cb5</string> |
7635 | </map> | 8153 | </map> |
7636 | <key>UIImgBtnScrollRightOutUUID</key> | 8154 | <key>UIImgBtnScrollRightOutUUID</key> |
7637 | <map> | 8155 | <map> |
7638 | <key>Comment</key> | 8156 | <key>Comment</key> |
7639 | <string /> | 8157 | <string /> |
7640 | <key>Persist</key> | 8158 | <key>Persist</key> |
7641 | <integer>0</integer> | 8159 | <integer>0</integer> |
7642 | <key>Type</key> | 8160 | <key>Type</key> |
7643 | <string>String</string> | 8161 | <string>String</string> |
7644 | <key>Value</key> | 8162 | <key>Value</key> |
7645 | <string>3d700d19-e708-465d-87f2-46c8c0ee7938</string> | 8163 | <string>3d700d19-e708-465d-87f2-46c8c0ee7938</string> |
7646 | </map> | 8164 | </map> |
7647 | <key>UIImgBtnScrollUpInUUID</key> | 8165 | <key>UIImgBtnScrollUpInUUID</key> |
7648 | <map> | 8166 | <map> |
7649 | <key>Comment</key> | 8167 | <key>Comment</key> |
7650 | <string /> | 8168 | <string /> |
7651 | <key>Persist</key> | 8169 | <key>Persist</key> |
7652 | <integer>0</integer> | 8170 | <integer>0</integer> |
7653 | <key>Type</key> | 8171 | <key>Type</key> |
7654 | <string>String</string> | 8172 | <string>String</string> |
7655 | <key>Value</key> | 8173 | <key>Value</key> |
7656 | <string>a93abdf3-27b5-4e22-a8fa-c48216cd2e3a</string> | 8174 | <string>a93abdf3-27b5-4e22-a8fa-c48216cd2e3a</string> |
7657 | </map> | 8175 | </map> |
7658 | <key>UIImgBtnScrollUpOutUUID</key> | 8176 | <key>UIImgBtnScrollUpOutUUID</key> |
7659 | <map> | 8177 | <map> |
7660 | <key>Comment</key> | 8178 | <key>Comment</key> |
7661 | <string /> | 8179 | <string /> |
7662 | <key>Persist</key> | 8180 | <key>Persist</key> |
7663 | <integer>0</integer> | 8181 | <integer>0</integer> |
7664 | <key>Type</key> | 8182 | <key>Type</key> |
7665 | <string>String</string> | 8183 | <string>String</string> |
7666 | <key>Value</key> | 8184 | <key>Value</key> |
7667 | <string>dad084d7-9a46-452a-b0ff-4b9f1cefdde9</string> | 8185 | <string>dad084d7-9a46-452a-b0ff-4b9f1cefdde9</string> |
7668 | </map> | 8186 | </map> |
7669 | <key>UIImgBtnSlideLeftInUUID</key> | 8187 | <key>UIImgBtnSlideLeftInUUID</key> |
7670 | <map> | 8188 | <map> |
7671 | <key>Comment</key> | 8189 | <key>Comment</key> |
7672 | <string /> | 8190 | <string /> |
7673 | <key>Persist</key> | 8191 | <key>Persist</key> |
7674 | <integer>0</integer> | 8192 | <integer>0</integer> |
7675 | <key>Type</key> | 8193 | <key>Type</key> |
7676 | <string>String</string> | 8194 | <string>String</string> |
7677 | <key>Value</key> | 8195 | <key>Value</key> |
7678 | <string>724996f5-b956-46f6-9844-4fcfce1d5e83</string> | 8196 | <string>724996f5-b956-46f6-9844-4fcfce1d5e83</string> |
7679 | </map> | 8197 | </map> |
7680 | <key>UIImgBtnSlideLeftOutUUID</key> | 8198 | <key>UIImgBtnSlideLeftOutUUID</key> |
7681 | <map> | 8199 | <map> |
7682 | <key>Comment</key> | 8200 | <key>Comment</key> |
7683 | <string /> | 8201 | <string /> |
7684 | <key>Persist</key> | 8202 | <key>Persist</key> |
7685 | <integer>0</integer> | 8203 | <integer>0</integer> |
7686 | <key>Type</key> | 8204 | <key>Type</key> |
7687 | <string>String</string> | 8205 | <string>String</string> |
7688 | <key>Value</key> | 8206 | <key>Value</key> |
7689 | <string>82476321-0374-4c26-9567-521535ab4cd7</string> | 8207 | <string>82476321-0374-4c26-9567-521535ab4cd7</string> |
7690 | </map> | 8208 | </map> |
7691 | <key>UIImgBtnSlideRightInUUID</key> | 8209 | <key>UIImgBtnSlideRightInUUID</key> |
7692 | <map> | 8210 | <map> |
7693 | <key>Comment</key> | 8211 | <key>Comment</key> |
7694 | <string /> | 8212 | <string /> |
7695 | <key>Persist</key> | 8213 | <key>Persist</key> |
7696 | <integer>0</integer> | 8214 | <integer>0</integer> |
7697 | <key>Type</key> | 8215 | <key>Type</key> |
7698 | <string>String</string> | 8216 | <string>String</string> |
7699 | <key>Value</key> | 8217 | <key>Value</key> |
7700 | <string>7eeb57d2-3f37-454d-a729-8b217b8be443</string> | 8218 | <string>7eeb57d2-3f37-454d-a729-8b217b8be443</string> |
7701 | </map> | 8219 | </map> |
7702 | <key>UIImgBtnSlideRightOutUUID</key> | 8220 | <key>UIImgBtnSlideRightOutUUID</key> |
7703 | <map> | 8221 | <map> |
7704 | <key>Comment</key> | 8222 | <key>Comment</key> |
7705 | <string /> | 8223 | <string /> |
7706 | <key>Persist</key> | 8224 | <key>Persist</key> |
7707 | <integer>0</integer> | 8225 | <integer>0</integer> |
7708 | <key>Type</key> | 8226 | <key>Type</key> |
7709 | <string>String</string> | 8227 | <string>String</string> |
7710 | <key>Value</key> | 8228 | <key>Value</key> |
7711 | <string>1fbe4e60-0607-44d1-a50a-032eff56ae75</string> | 8229 | <string>1fbe4e60-0607-44d1-a50a-032eff56ae75</string> |
7712 | </map> | 8230 | </map> |
7713 | <key>UIImgBtnSpinDownInUUID</key> | 8231 | <key>UIImgBtnSpinDownInUUID</key> |
7714 | <map> | 8232 | <map> |
7715 | <key>Comment</key> | 8233 | <key>Comment</key> |
7716 | <string /> | 8234 | <string /> |
7717 | <key>Persist</key> | 8235 | <key>Persist</key> |
7718 | <integer>0</integer> | 8236 | <integer>0</integer> |
7719 | <key>Type</key> | 8237 | <key>Type</key> |
7720 | <string>String</string> | 8238 | <string>String</string> |
7721 | <key>Value</key> | 8239 | <key>Value</key> |
7722 | <string>a985ac71-052f-48e6-9c33-d931c813ac92</string> | 8240 | <string>a985ac71-052f-48e6-9c33-d931c813ac92</string> |
7723 | </map> | 8241 | </map> |
7724 | <key>UIImgBtnSpinDownOutUUID</key> | 8242 | <key>UIImgBtnSpinDownOutUUID</key> |
7725 | <map> | 8243 | <map> |
7726 | <key>Comment</key> | 8244 | <key>Comment</key> |
7727 | <string /> | 8245 | <string /> |
7728 | <key>Persist</key> | 8246 | <key>Persist</key> |
7729 | <integer>0</integer> | 8247 | <integer>0</integer> |
7730 | <key>Type</key> | 8248 | <key>Type</key> |
7731 | <string>String</string> | 8249 | <string>String</string> |
7732 | <key>Value</key> | 8250 | <key>Value</key> |
7733 | <string>b6d240dd-5602-426f-b606-bbb49a30726d</string> | 8251 | <string>b6d240dd-5602-426f-b606-bbb49a30726d</string> |
7734 | </map> | 8252 | </map> |
7735 | <key>UIImgBtnSpinUpInUUID</key> | 8253 | <key>UIImgBtnSpinUpInUUID</key> |
7736 | <map> | 8254 | <map> |
7737 | <key>Comment</key> | 8255 | <key>Comment</key> |
7738 | <string /> | 8256 | <string /> |
7739 | <key>Persist</key> | 8257 | <key>Persist</key> |
7740 | <integer>0</integer> | 8258 | <integer>0</integer> |
7741 | <key>Type</key> | 8259 | <key>Type</key> |
7742 | <string>String</string> | 8260 | <string>String</string> |
7743 | <key>Value</key> | 8261 | <key>Value</key> |
7744 | <string>c8450082-96a0-4319-8090-d3ff900b4954</string> | 8262 | <string>c8450082-96a0-4319-8090-d3ff900b4954</string> |
7745 | </map> | 8263 | </map> |
7746 | <key>UIImgBtnSpinUpOutUUID</key> | 8264 | <key>UIImgBtnSpinUpOutUUID</key> |
7747 | <map> | 8265 | <map> |
7748 | <key>Comment</key> | 8266 | <key>Comment</key> |
7749 | <string /> | 8267 | <string /> |
7750 | <key>Persist</key> | 8268 | <key>Persist</key> |
7751 | <integer>0</integer> | 8269 | <integer>0</integer> |
7752 | <key>Type</key> | 8270 | <key>Type</key> |
7753 | <string>String</string> | 8271 | <string>String</string> |
7754 | <key>Value</key> | 8272 | <key>Value</key> |
7755 | <string>56576e6e-6710-4e66-89f9-471b59122794</string> | 8273 | <string>56576e6e-6710-4e66-89f9-471b59122794</string> |
7756 | </map> | 8274 | </map> |
7757 | <key>UIImgBtnTabBottomInUUID</key> | 8275 | <key>UIImgBtnTabBottomInUUID</key> |
7758 | <map> | 8276 | <map> |
7759 | <key>Comment</key> | 8277 | <key>Comment</key> |
7760 | <string /> | 8278 | <string /> |
7761 | <key>Persist</key> | 8279 | <key>Persist</key> |
7762 | <integer>0</integer> | 8280 | <integer>0</integer> |
7763 | <key>Type</key> | 8281 | <key>Type</key> |
7764 | <string>String</string> | 8282 | <string>String</string> |
7765 | <key>Value</key> | 8283 | <key>Value</key> |
7766 | <string>c001d8fd-a869-4b6f-86a1-fdcb106df9c7</string> | 8284 | <string>c001d8fd-a869-4b6f-86a1-fdcb106df9c7</string> |
7767 | </map> | 8285 | </map> |
7768 | <key>UIImgBtnTabBottomOutUUID</key> | 8286 | <key>UIImgBtnTabBottomOutUUID</key> |
7769 | <map> | 8287 | <map> |
7770 | <key>Comment</key> | 8288 | <key>Comment</key> |
7771 | <string /> | 8289 | <string /> |
7772 | <key>Persist</key> | 8290 | <key>Persist</key> |
7773 | <integer>0</integer> | 8291 | <integer>0</integer> |
7774 | <key>Type</key> | 8292 | <key>Type</key> |
7775 | <string>String</string> | 8293 | <string>String</string> |
7776 | <key>Value</key> | 8294 | <key>Value</key> |
7777 | <string>bf0a8779-689b-48c3-bb9a-6af546366ef4</string> | 8295 | <string>bf0a8779-689b-48c3-bb9a-6af546366ef4</string> |
7778 | </map> | 8296 | </map> |
7779 | <key>UIImgBtnTabBottomPartialInUUID</key> | 8297 | <key>UIImgBtnTabBottomPartialInUUID</key> |
7780 | <map> | 8298 | <map> |
7781 | <key>Comment</key> | 8299 | <key>Comment</key> |
7782 | <string /> | 8300 | <string /> |
7783 | <key>Persist</key> | 8301 | <key>Persist</key> |
7784 | <integer>0</integer> | 8302 | <integer>0</integer> |
7785 | <key>Type</key> | 8303 | <key>Type</key> |
7786 | <string>String</string> | 8304 | <string>String</string> |
7787 | <key>Value</key> | 8305 | <key>Value</key> |
7788 | <string>eb0b0904-8c91-4f24-b500-1180b91140de</string> | 8306 | <string>eb0b0904-8c91-4f24-b500-1180b91140de</string> |
7789 | </map> | 8307 | </map> |
7790 | <key>UIImgBtnTabBottomPartialOutUUID</key> | 8308 | <key>UIImgBtnTabBottomPartialOutUUID</key> |
7791 | <map> | 8309 | <map> |
7792 | <key>Comment</key> | 8310 | <key>Comment</key> |
7793 | <string /> | 8311 | <string /> |
7794 | <key>Persist</key> | 8312 | <key>Persist</key> |
7795 | <integer>0</integer> | 8313 | <integer>0</integer> |
7796 | <key>Type</key> | 8314 | <key>Type</key> |
7797 | <string>String</string> | 8315 | <string>String</string> |
7798 | <key>Value</key> | 8316 | <key>Value</key> |
7799 | <string>8dca716c-b29c-403a-9886-91c028357d6e</string> | 8317 | <string>8dca716c-b29c-403a-9886-91c028357d6e</string> |
7800 | </map> | 8318 | </map> |
7801 | <key>UIImgBtnTabTopInUUID</key> | 8319 | <key>UIImgBtnTabTopInUUID</key> |
7802 | <map> | 8320 | <map> |
7803 | <key>Comment</key> | 8321 | <key>Comment</key> |
7804 | <string /> | 8322 | <string /> |
7805 | <key>Persist</key> | 8323 | <key>Persist</key> |
7806 | <integer>0</integer> | 8324 | <integer>0</integer> |
7807 | <key>Type</key> | 8325 | <key>Type</key> |
7808 | <string>String</string> | 8326 | <string>String</string> |
7809 | <key>Value</key> | 8327 | <key>Value</key> |
7810 | <string>16d032e8-817b-4368-8a4e-b7b947ae3889</string> | 8328 | <string>16d032e8-817b-4368-8a4e-b7b947ae3889</string> |
7811 | </map> | 8329 | </map> |
7812 | <key>UIImgBtnTabTopOutUUID</key> | 8330 | <key>UIImgBtnTabTopOutUUID</key> |
7813 | <map> | 8331 | <map> |
7814 | <key>Comment</key> | 8332 | <key>Comment</key> |
7815 | <string /> | 8333 | <string /> |
7816 | <key>Persist</key> | 8334 | <key>Persist</key> |
7817 | <integer>0</integer> | 8335 | <integer>0</integer> |
7818 | <key>Type</key> | 8336 | <key>Type</key> |
7819 | <string>String</string> | 8337 | <string>String</string> |
7820 | <key>Value</key> | 8338 | <key>Value</key> |
7821 | <string>1ed83f57-41cf-4052-a3b4-2e8bb78d8191</string> | 8339 | <string>1ed83f57-41cf-4052-a3b4-2e8bb78d8191</string> |
7822 | </map> | 8340 | </map> |
7823 | <key>UIImgBtnTabTopPartialInUUID</key> | 8341 | <key>UIImgBtnTabTopPartialInUUID</key> |
7824 | <map> | 8342 | <map> |
7825 | <key>Comment</key> | 8343 | <key>Comment</key> |
7826 | <string /> | 8344 | <string /> |
7827 | <key>Persist</key> | 8345 | <key>Persist</key> |
7828 | <integer>0</integer> | 8346 | <integer>0</integer> |
7829 | <key>Type</key> | 8347 | <key>Type</key> |
7830 | <string>String</string> | 8348 | <string>String</string> |
7831 | <key>Value</key> | 8349 | <key>Value</key> |
7832 | <string>7c6c6c26-0e25-4438-89bd-30d8b8e9d704</string> | 8350 | <string>7c6c6c26-0e25-4438-89bd-30d8b8e9d704</string> |
7833 | </map> | 8351 | </map> |
7834 | <key>UIImgBtnTabTopPartialOutUUID</key> | 8352 | <key>UIImgBtnTabTopPartialOutUUID</key> |
7835 | <map> | 8353 | <map> |
7836 | <key>Comment</key> | 8354 | <key>Comment</key> |
7837 | <string /> | 8355 | <string /> |
7838 | <key>Persist</key> | 8356 | <key>Persist</key> |
7839 | <integer>0</integer> | 8357 | <integer>0</integer> |
7840 | <key>Type</key> | 8358 | <key>Type</key> |
7841 | <string>String</string> | 8359 | <string>String</string> |
7842 | <key>Value</key> | 8360 | <key>Value</key> |
7843 | <string>932ad585-0e45-4a57-aa23-4cf81beeb7b0</string> | 8361 | <string>932ad585-0e45-4a57-aa23-4cf81beeb7b0</string> |
7844 | </map> | 8362 | </map> |
7845 | <key>UIImgBtnTearOffActiveUUID</key> | 8363 | <key>UIImgBtnTearOffActiveUUID</key> |
7846 | <map> | 8364 | <map> |
7847 | <key>Comment</key> | 8365 | <key>Comment</key> |
7848 | <string /> | 8366 | <string /> |
7849 | <key>Persist</key> | 8367 | <key>Persist</key> |
7850 | <integer>0</integer> | 8368 | <integer>0</integer> |
7851 | <key>Type</key> | 8369 | <key>Type</key> |
7852 | <string>String</string> | 8370 | <string>String</string> |
7853 | <key>Value</key> | 8371 | <key>Value</key> |
7854 | <string>74e1a96f-4833-a24d-a1bb-1bce1468b0e7</string> | 8372 | <string>74e1a96f-4833-a24d-a1bb-1bce1468b0e7</string> |
7855 | </map> | 8373 | </map> |
7856 | <key>UIImgBtnTearOffInactiveUUID</key> | 8374 | <key>UIImgBtnTearOffInactiveUUID</key> |
7857 | <map> | 8375 | <map> |
7858 | <key>Comment</key> | 8376 | <key>Comment</key> |
7859 | <string /> | 8377 | <string /> |
7860 | <key>Persist</key> | 8378 | <key>Persist</key> |
7861 | <integer>0</integer> | 8379 | <integer>0</integer> |
7862 | <key>Type</key> | 8380 | <key>Type</key> |
7863 | <string>String</string> | 8381 | <string>String</string> |
7864 | <key>Value</key> | 8382 | <key>Value</key> |
7865 | <string>74e1a96f-4833-a24d-a1bb-1bce1468b0e7</string> | 8383 | <string>74e1a96f-4833-a24d-a1bb-1bce1468b0e7</string> |
7866 | </map> | 8384 | </map> |
7867 | <key>UIImgBtnTearOffPressedUUID</key> | 8385 | <key>UIImgBtnTearOffPressedUUID</key> |
7868 | <map> | 8386 | <map> |
7869 | <key>Comment</key> | 8387 | <key>Comment</key> |
7870 | <string /> | 8388 | <string /> |
7871 | <key>Persist</key> | 8389 | <key>Persist</key> |
7872 | <integer>0</integer> | 8390 | <integer>0</integer> |
7873 | <key>Type</key> | 8391 | <key>Type</key> |
7874 | <string>String</string> | 8392 | <string>String</string> |
7875 | <key>Value</key> | 8393 | <key>Value</key> |
7876 | <string>d2524c13-4ba6-af7c-e305-8ac6cc18d86a</string> | 8394 | <string>d2524c13-4ba6-af7c-e305-8ac6cc18d86a</string> |
7877 | </map> | 8395 | </map> |
7878 | <key>UIImgCheckboxActiveSelectedUUID</key> | 8396 | <key>UIImgCheckboxActiveSelectedUUID</key> |
7879 | <map> | 8397 | <map> |
7880 | <key>Comment</key> | 8398 | <key>Comment</key> |
7881 | <string /> | 8399 | <string /> |
7882 | <key>Persist</key> | 8400 | <key>Persist</key> |
7883 | <integer>0</integer> | 8401 | <integer>0</integer> |
7884 | <key>Type</key> | 8402 | <key>Type</key> |
7885 | <string>String</string> | 8403 | <string>String</string> |
7886 | <key>Value</key> | 8404 | <key>Value</key> |
7887 | <string>cf4a2ed7-1533-4686-9dde-df9a37ddca55</string> | 8405 | <string>cf4a2ed7-1533-4686-9dde-df9a37ddca55</string> |
7888 | </map> | 8406 | </map> |
7889 | <key>UIImgCheckboxActiveUUID</key> | 8407 | <key>UIImgCheckboxActiveUUID</key> |
7890 | <map> | 8408 | <map> |
7891 | <key>Comment</key> | 8409 | <key>Comment</key> |
7892 | <string /> | 8410 | <string /> |
7893 | <key>Persist</key> | 8411 | <key>Persist</key> |
7894 | <integer>0</integer> | 8412 | <integer>0</integer> |
7895 | <key>Type</key> | 8413 | <key>Type</key> |
7896 | <string>String</string> | 8414 | <string>String</string> |
7897 | <key>Value</key> | 8415 | <key>Value</key> |
7898 | <string>05bb64ee-96fd-4243-b74e-f40a41bc53ba</string> | 8416 | <string>05bb64ee-96fd-4243-b74e-f40a41bc53ba</string> |
7899 | </map> | 8417 | </map> |
7900 | <key>UIImgCheckboxInactiveSelectedUUID</key> | 8418 | <key>UIImgCheckboxInactiveSelectedUUID</key> |
7901 | <map> | 8419 | <map> |
7902 | <key>Comment</key> | 8420 | <key>Comment</key> |
7903 | <string /> | 8421 | <string /> |
7904 | <key>Persist</key> | 8422 | <key>Persist</key> |
7905 | <integer>0</integer> | 8423 | <integer>0</integer> |
7906 | <key>Type</key> | 8424 | <key>Type</key> |
7907 | <string>String</string> | 8425 | <string>String</string> |
7908 | <key>Value</key> | 8426 | <key>Value</key> |
7909 | <string>c817c642-9abd-4236-9287-ae0513fe7d2b</string> | 8427 | <string>c817c642-9abd-4236-9287-ae0513fe7d2b</string> |
7910 | </map> | 8428 | </map> |
7911 | <key>UIImgCheckboxInactiveUUID</key> | 8429 | <key>UIImgCheckboxInactiveUUID</key> |
7912 | <map> | 8430 | <map> |
7913 | <key>Comment</key> | 8431 | <key>Comment</key> |
7914 | <string /> | 8432 | <string /> |
7915 | <key>Persist</key> | 8433 | <key>Persist</key> |
7916 | <integer>0</integer> | 8434 | <integer>0</integer> |
7917 | <key>Type</key> | 8435 | <key>Type</key> |
7918 | <string>String</string> | 8436 | <string>String</string> |
7919 | <key>Value</key> | 8437 | <key>Value</key> |
7920 | <string>7d94cb59-32a2-49bf-a516-9e5a2045f9d9</string> | 8438 | <string>7d94cb59-32a2-49bf-a516-9e5a2045f9d9</string> |
7921 | </map> | 8439 | </map> |
7922 | <key>UIImgCreateSelectedUUID</key> | 8440 | <key>UIImgCreateSelectedUUID</key> |
7923 | <map> | 8441 | <map> |
7924 | <key>Comment</key> | 8442 | <key>Comment</key> |
7925 | <string /> | 8443 | <string /> |
7926 | <key>Persist</key> | 8444 | <key>Persist</key> |
7927 | <integer>0</integer> | 8445 | <integer>0</integer> |
7928 | <key>Type</key> | 8446 | <key>Type</key> |
7929 | <string>String</string> | 8447 | <string>String</string> |
7930 | <key>Value</key> | 8448 | <key>Value</key> |
7931 | <string>0098b015-3daf-4cfe-a72f-915369ea97c2</string> | 8449 | <string>0098b015-3daf-4cfe-a72f-915369ea97c2</string> |
7932 | </map> | 8450 | </map> |
7933 | <key>UIImgCreateUUID</key> | 8451 | <key>UIImgCreateUUID</key> |
7934 | <map> | 8452 | <map> |
7935 | <key>Comment</key> | 8453 | <key>Comment</key> |
7936 | <string /> | 8454 | <string /> |
7937 | <key>Persist</key> | 8455 | <key>Persist</key> |
7938 | <integer>0</integer> | 8456 | <integer>0</integer> |
7939 | <key>Type</key> | 8457 | <key>Type</key> |
7940 | <string>String</string> | 8458 | <string>String</string> |
7941 | <key>Value</key> | 8459 | <key>Value</key> |
7942 | <string>7a0b1bdb-b5d9-4df5-bac2-ba230da93b5b</string> | 8460 | <string>7a0b1bdb-b5d9-4df5-bac2-ba230da93b5b</string> |
7943 | </map> | 8461 | </map> |
7944 | <key>UIImgCrosshairsUUID</key> | 8462 | <key>UIImgCrosshairsUUID</key> |
7945 | <map> | 8463 | <map> |
7946 | <key>Comment</key> | 8464 | <key>Comment</key> |
7947 | <string>Image to use for crosshair display (UUID texture reference)</string> | 8465 | <string>Image to use for crosshair display (UUID texture reference)</string> |
7948 | <key>Persist</key> | 8466 | <key>Persist</key> |
7949 | <integer>1</integer> | 8467 | <integer>1</integer> |
7950 | <key>Type</key> | 8468 | <key>Type</key> |
7951 | <string>String</string> | 8469 | <string>String</string> |
7952 | <key>Value</key> | 8470 | <key>Value</key> |
7953 | <string>6e1a3980-bf2d-4274-8970-91e60d85fb52</string> | 8471 | <string>6e1a3980-bf2d-4274-8970-91e60d85fb52</string> |
7954 | </map> | 8472 | </map> |
7955 | <key>UIImgDefaultEyesUUID</key> | 8473 | <key>UIImgDefaultEyesUUID</key> |
7956 | <map> | 8474 | <map> |
7957 | <key>Comment</key> | 8475 | <key>Comment</key> |
7958 | <string /> | 8476 | <string /> |
7959 | <key>Persist</key> | 8477 | <key>Persist</key> |
7960 | <integer>0</integer> | 8478 | <integer>0</integer> |
7961 | <key>Type</key> | 8479 | <key>Type</key> |
7962 | <string>String</string> | 8480 | <string>String</string> |
7963 | <key>Value</key> | 8481 | <key>Value</key> |
7964 | <string>6522e74d-1660-4e7f-b601-6f48c1659a77</string> | 8482 | <string>6522e74d-1660-4e7f-b601-6f48c1659a77</string> |
7965 | </map> | 8483 | </map> |
7966 | <key>UIImgDefaultGlovesUUID</key> | 8484 | <key>UIImgDefaultGlovesUUID</key> |
7967 | <map> | 8485 | <map> |
7968 | <key>Comment</key> | 8486 | <key>Comment</key> |
7969 | <string /> | 8487 | <string /> |
7970 | <key>Persist</key> | 8488 | <key>Persist</key> |
7971 | <integer>0</integer> | 8489 | <integer>0</integer> |
7972 | <key>Type</key> | 8490 | <key>Type</key> |
7973 | <string>String</string> | 8491 | <string>String</string> |
7974 | <key>Value</key> | 8492 | <key>Value</key> |
7975 | <string>5748decc-f629-461c-9a36-a35a221fe21f</string> | 8493 | <string>5748decc-f629-461c-9a36-a35a221fe21f</string> |
7976 | </map> | 8494 | </map> |
7977 | <key>UIImgDefaultHairUUID</key> | 8495 | <key>UIImgDefaultHairUUID</key> |
7978 | <map> | 8496 | <map> |
7979 | <key>Comment</key> | 8497 | <key>Comment</key> |
7980 | <string /> | 8498 | <string /> |
7981 | <key>Persist</key> | 8499 | <key>Persist</key> |
7982 | <integer>0</integer> | 8500 | <integer>0</integer> |
7983 | <key>Type</key> | 8501 | <key>Type</key> |
7984 | <string>String</string> | 8502 | <string>String</string> |
7985 | <key>Value</key> | 8503 | <key>Value</key> |
7986 | <string>7ca39b4c-bd19-4699-aff7-f93fd03d3e7b</string> | 8504 | <string>7ca39b4c-bd19-4699-aff7-f93fd03d3e7b</string> |
7987 | </map> | 8505 | </map> |
7988 | <key>UIImgDefaultJacketUUID</key> | 8506 | <key>UIImgDefaultJacketUUID</key> |
7989 | <map> | 8507 | <map> |
7990 | <key>Comment</key> | 8508 | <key>Comment</key> |
7991 | <string /> | 8509 | <string /> |
7992 | <key>Persist</key> | 8510 | <key>Persist</key> |
7993 | <integer>0</integer> | 8511 | <integer>0</integer> |
7994 | <key>Type</key> | 8512 | <key>Type</key> |
7995 | <string>String</string> | 8513 | <string>String</string> |
7996 | <key>Value</key> | 8514 | <key>Value</key> |
7997 | <string>5748decc-f629-461c-9a36-a35a221fe21f</string> | 8515 | <string>5748decc-f629-461c-9a36-a35a221fe21f</string> |
7998 | </map> | 8516 | </map> |
7999 | <key>UIImgDefaultPantsUUID</key> | 8517 | <key>UIImgDefaultPantsUUID</key> |
8000 | <map> | 8518 | <map> |
8001 | <key>Comment</key> | 8519 | <key>Comment</key> |
8002 | <string /> | 8520 | <string /> |
8003 | <key>Persist</key> | 8521 | <key>Persist</key> |
8004 | <integer>0</integer> | 8522 | <integer>0</integer> |
8005 | <key>Type</key> | 8523 | <key>Type</key> |
8006 | <string>String</string> | 8524 | <string>String</string> |
8007 | <key>Value</key> | 8525 | <key>Value</key> |
8008 | <string>5748decc-f629-461c-9a36-a35a221fe21f</string> | 8526 | <string>5748decc-f629-461c-9a36-a35a221fe21f</string> |
8009 | </map> | 8527 | </map> |
8010 | <key>UIImgDefaultShirtUUID</key> | 8528 | <key>UIImgDefaultShirtUUID</key> |
8011 | <map> | 8529 | <map> |
8012 | <key>Comment</key> | 8530 | <key>Comment</key> |
8013 | <string /> | 8531 | <string /> |
8014 | <key>Persist</key> | 8532 | <key>Persist</key> |
8015 | <integer>0</integer> | 8533 | <integer>0</integer> |
8016 | <key>Type</key> | 8534 | <key>Type</key> |
8017 | <string>String</string> | 8535 | <string>String</string> |
8018 | <key>Value</key> | 8536 | <key>Value</key> |
8019 | <string>5748decc-f629-461c-9a36-a35a221fe21f</string> | 8537 | <string>5748decc-f629-461c-9a36-a35a221fe21f</string> |
8020 | </map> | 8538 | </map> |
8021 | <key>UIImgDefaultShoesUUID</key> | 8539 | <key>UIImgDefaultShoesUUID</key> |
8022 | <map> | 8540 | <map> |
8023 | <key>Comment</key> | 8541 | <key>Comment</key> |
8024 | <string /> | 8542 | <string /> |
8025 | <key>Persist</key> | 8543 | <key>Persist</key> |
8026 | <integer>0</integer> | 8544 | <integer>0</integer> |
8027 | <key>Type</key> | 8545 | <key>Type</key> |
8028 | <string>String</string> | 8546 | <string>String</string> |
8029 | <key>Value</key> | 8547 | <key>Value</key> |
8030 | <string>5748decc-f629-461c-9a36-a35a221fe21f</string> | 8548 | <string>5748decc-f629-461c-9a36-a35a221fe21f</string> |
8031 | </map> | 8549 | </map> |
8032 | <key>UIImgDefaultSkirtUUID</key> | 8550 | <key>UIImgDefaultSkirtUUID</key> |
8033 | <map> | 8551 | <map> |
8034 | <key>Comment</key> | 8552 | <key>Comment</key> |
8035 | <string /> | 8553 | <string /> |
8036 | <key>Persist</key> | 8554 | <key>Persist</key> |
8037 | <integer>0</integer> | 8555 | <integer>0</integer> |
8038 | <key>Type</key> | 8556 | <key>Type</key> |
8039 | <string>String</string> | 8557 | <string>String</string> |
8040 | <key>Value</key> | 8558 | <key>Value</key> |
8041 | <string>5748decc-f629-461c-9a36-a35a221fe21f</string> | 8559 | <string>5748decc-f629-461c-9a36-a35a221fe21f</string> |
8042 | </map> | 8560 | </map> |
8043 | <key>UIImgDefaultSocksUUID</key> | 8561 | <key>UIImgDefaultSocksUUID</key> |
8044 | <map> | 8562 | <map> |
8045 | <key>Comment</key> | 8563 | <key>Comment</key> |
8046 | <string /> | 8564 | <string /> |
8047 | <key>Persist</key> | 8565 | <key>Persist</key> |
8048 | <integer>0</integer> | 8566 | <integer>0</integer> |
8049 | <key>Type</key> | 8567 | <key>Type</key> |
8050 | <string>String</string> | 8568 | <string>String</string> |
8051 | <key>Value</key> | 8569 | <key>Value</key> |
8052 | <string>5748decc-f629-461c-9a36-a35a221fe21f</string> | 8570 | <string>5748decc-f629-461c-9a36-a35a221fe21f</string> |
8053 | </map> | 8571 | </map> |
8054 | <key>UIImgDefaultUnderwearUUID</key> | 8572 | <key>UIImgDefaultUnderwearUUID</key> |
8055 | <map> | 8573 | <map> |
8056 | <key>Comment</key> | 8574 | <key>Comment</key> |
8057 | <string /> | 8575 | <string /> |
8058 | <key>Persist</key> | 8576 | <key>Persist</key> |
8059 | <integer>0</integer> | 8577 | <integer>0</integer> |
8060 | <key>Type</key> | 8578 | <key>Type</key> |
8061 | <string>String</string> | 8579 | <string>String</string> |
8062 | <key>Value</key> | 8580 | <key>Value</key> |
8063 | <string>5748decc-f629-461c-9a36-a35a221fe21f</string> | 8581 | <string>5748decc-f629-461c-9a36-a35a221fe21f</string> |
8064 | </map> | 8582 | </map> |
8065 | <key>UIImgDirectionArrowUUID</key> | 8583 | <key>UIImgDirectionArrowUUID</key> |
8066 | <map> | 8584 | <map> |
8067 | <key>Comment</key> | 8585 | <key>Comment</key> |
8068 | <string /> | 8586 | <string /> |
8069 | <key>Persist</key> | 8587 | <key>Persist</key> |
8070 | <integer>0</integer> | 8588 | <integer>0</integer> |
8071 | <key>Type</key> | 8589 | <key>Type</key> |
8072 | <string>String</string> | 8590 | <string>String</string> |
8073 | <key>Value</key> | 8591 | <key>Value</key> |
8074 | <string>586383e8-4d9b-4fba-9196-2b5938e79c2c</string> | 8592 | <string>586383e8-4d9b-4fba-9196-2b5938e79c2c</string> |
8075 | </map> | 8593 | </map> |
8076 | <key>UIImgFaceSelectedUUID</key> | 8594 | <key>UIImgFaceSelectedUUID</key> |
8077 | <map> | 8595 | <map> |
8078 | <key>Comment</key> | 8596 | <key>Comment</key> |
8079 | <string /> | 8597 | <string /> |
8080 | <key>Persist</key> | 8598 | <key>Persist</key> |
8081 | <integer>0</integer> | 8599 | <integer>0</integer> |
8082 | <key>Type</key> | 8600 | <key>Type</key> |
8083 | <string>String</string> | 8601 | <string>String</string> |
8084 | <key>Value</key> | 8602 | <key>Value</key> |
8085 | <string>b4870163-6208-42a9-9801-93133bf9a6cd</string> | 8603 | <string>b4870163-6208-42a9-9801-93133bf9a6cd</string> |
8086 | </map> | 8604 | </map> |
8087 | <key>UIImgFaceUUID</key> | 8605 | <key>UIImgFaceUUID</key> |
8088 | <map> | 8606 | <map> |
8089 | <key>Comment</key> | 8607 | <key>Comment</key> |
8090 | <string /> | 8608 | <string /> |
8091 | <key>Persist</key> | 8609 | <key>Persist</key> |
8092 | <integer>0</integer> | 8610 | <integer>0</integer> |
8093 | <key>Type</key> | 8611 | <key>Type</key> |
8094 | <string>String</string> | 8612 | <string>String</string> |
8095 | <key>Value</key> | 8613 | <key>Value</key> |
8096 | <string>ce15fd63-b0b6-463c-a37d-ea6393208b3e</string> | 8614 | <string>ce15fd63-b0b6-463c-a37d-ea6393208b3e</string> |
8097 | </map> | 8615 | </map> |
8098 | <key>UIImgFocusSelectedUUID</key> | 8616 | <key>UIImgFocusSelectedUUID</key> |
8099 | <map> | 8617 | <map> |
8100 | <key>Comment</key> | 8618 | <key>Comment</key> |
8101 | <string /> | 8619 | <string /> |
8102 | <key>Persist</key> | 8620 | <key>Persist</key> |
8103 | <integer>0</integer> | 8621 | <integer>0</integer> |
8104 | <key>Type</key> | 8622 | <key>Type</key> |
8105 | <string>String</string> | 8623 | <string>String</string> |
8106 | <key>Value</key> | 8624 | <key>Value</key> |
8107 | <string>ab6a730e-ddfd-4982-9a32-c6de3de6d31d</string> | 8625 | <string>ab6a730e-ddfd-4982-9a32-c6de3de6d31d</string> |
8108 | </map> | 8626 | </map> |
8109 | <key>UIImgFocusUUID</key> | 8627 | <key>UIImgFocusUUID</key> |
8110 | <map> | 8628 | <map> |
8111 | <key>Comment</key> | 8629 | <key>Comment</key> |
8112 | <string /> | 8630 | <string /> |
8113 | <key>Persist</key> | 8631 | <key>Persist</key> |
8114 | <integer>0</integer> | 8632 | <integer>0</integer> |
8115 | <key>Type</key> | 8633 | <key>Type</key> |
8116 | <string>String</string> | 8634 | <string>String</string> |
8117 | <key>Value</key> | 8635 | <key>Value</key> |
8118 | <string>57bc39d1-288c-4519-aea6-6d1786a5c274</string> | 8636 | <string>57bc39d1-288c-4519-aea6-6d1786a5c274</string> |
8119 | </map> | 8637 | </map> |
8120 | <key>UIImgGrabSelectedUUID</key> | 8638 | <key>UIImgGrabSelectedUUID</key> |
8121 | <map> | 8639 | <map> |
8122 | <key>Comment</key> | 8640 | <key>Comment</key> |
8123 | <string /> | 8641 | <string /> |
8124 | <key>Persist</key> | 8642 | <key>Persist</key> |
8125 | <integer>0</integer> | 8643 | <integer>0</integer> |
8126 | <key>Type</key> | 8644 | <key>Type</key> |
8127 | <string>String</string> | 8645 | <string>String</string> |
8128 | <key>Value</key> | 8646 | <key>Value</key> |
8129 | <string>c1e21504-f136-451d-b8e9-929037812f1d</string> | 8647 | <string>c1e21504-f136-451d-b8e9-929037812f1d</string> |
8130 | </map> | 8648 | </map> |
8131 | <key>UIImgGrabUUID</key> | 8649 | <key>UIImgGrabUUID</key> |
8132 | <map> | 8650 | <map> |
8133 | <key>Comment</key> | 8651 | <key>Comment</key> |
8134 | <string /> | 8652 | <string /> |
8135 | <key>Persist</key> | 8653 | <key>Persist</key> |
8136 | <integer>0</integer> | 8654 | <integer>0</integer> |
8137 | <key>Type</key> | 8655 | <key>Type</key> |
8138 | <string>String</string> | 8656 | <string>String</string> |
8139 | <key>Value</key> | 8657 | <key>Value</key> |
8140 | <string>c63f124c-6340-4fbf-b59e-0869a44adb64</string> | 8658 | <string>c63f124c-6340-4fbf-b59e-0869a44adb64</string> |
8141 | </map> | 8659 | </map> |
8142 | <key>UIImgMoveSelectedUUID</key> | 8660 | <key>UIImgMoveSelectedUUID</key> |
8143 | <map> | 8661 | <map> |
8144 | <key>Comment</key> | 8662 | <key>Comment</key> |
8145 | <string /> | 8663 | <string /> |
8146 | <key>Persist</key> | 8664 | <key>Persist</key> |
8147 | <integer>0</integer> | 8665 | <integer>0</integer> |
8148 | <key>Type</key> | 8666 | <key>Type</key> |
8149 | <string>String</string> | 8667 | <string>String</string> |
8150 | <key>Value</key> | 8668 | <key>Value</key> |
8151 | <string>46f17c7b-8381-48c3-b628-6a406e060dd6</string> | 8669 | <string>46f17c7b-8381-48c3-b628-6a406e060dd6</string> |
8152 | </map> | 8670 | </map> |
8153 | <key>UIImgMoveUUID</key> | 8671 | <key>UIImgMoveUUID</key> |
8154 | <map> | 8672 | <map> |
8155 | <key>Comment</key> | 8673 | <key>Comment</key> |
8156 | <string /> | 8674 | <string /> |
8157 | <key>Persist</key> | 8675 | <key>Persist</key> |
8158 | <integer>0</integer> | 8676 | <integer>0</integer> |
8159 | <key>Type</key> | 8677 | <key>Type</key> |
8160 | <string>String</string> | 8678 | <string>String</string> |
8161 | <key>Value</key> | 8679 | <key>Value</key> |
8162 | <string>2fa5dc06-bcdd-4e09-a426-f9f262d4fa65</string> | 8680 | <string>2fa5dc06-bcdd-4e09-a426-f9f262d4fa65</string> |
8163 | </map> | 8681 | </map> |
8164 | <key>UIImgRadioActiveSelectedUUID</key> | 8682 | <key>UIImgRadioActiveSelectedUUID</key> |
8165 | <map> | 8683 | <map> |
8166 | <key>Comment</key> | 8684 | <key>Comment</key> |
8167 | <string /> | 8685 | <string /> |
8168 | <key>Persist</key> | 8686 | <key>Persist</key> |
8169 | <integer>0</integer> | 8687 | <integer>0</integer> |
8170 | <key>Type</key> | 8688 | <key>Type</key> |
8171 | <string>String</string> | 8689 | <string>String</string> |
8172 | <key>Value</key> | 8690 | <key>Value</key> |
8173 | <string>52f09e07-5816-4052-953c-94c6c10479b7</string> | 8691 | <string>52f09e07-5816-4052-953c-94c6c10479b7</string> |
8174 | </map> | 8692 | </map> |
8175 | <key>UIImgRadioActiveUUID</key> | 8693 | <key>UIImgRadioActiveUUID</key> |
8176 | <map> | 8694 | <map> |
8177 | <key>Comment</key> | 8695 | <key>Comment</key> |
8178 | <string /> | 8696 | <string /> |
8179 | <key>Persist</key> | 8697 | <key>Persist</key> |
8180 | <integer>0</integer> | 8698 | <integer>0</integer> |
8181 | <key>Type</key> | 8699 | <key>Type</key> |
8182 | <string>String</string> | 8700 | <string>String</string> |
8183 | <key>Value</key> | 8701 | <key>Value</key> |
8184 | <string>7a1ba9b8-1047-4d1e-9cfc-bc478c80b63f</string> | 8702 | <string>7a1ba9b8-1047-4d1e-9cfc-bc478c80b63f</string> |
8185 | </map> | 8703 | </map> |
8186 | <key>UIImgRadioInactiveSelectedUUID</key> | 8704 | <key>UIImgRadioInactiveSelectedUUID</key> |
8187 | <map> | 8705 | <map> |
8188 | <key>Comment</key> | 8706 | <key>Comment</key> |
8189 | <string /> | 8707 | <string /> |
8190 | <key>Persist</key> | 8708 | <key>Persist</key> |
8191 | <integer>0</integer> | 8709 | <integer>0</integer> |
8192 | <key>Type</key> | 8710 | <key>Type</key> |
8193 | <string>String</string> | 8711 | <string>String</string> |
8194 | <key>Value</key> | 8712 | <key>Value</key> |
8195 | <string>1975db39-aa29-4251-aea0-409ac09d414d</string> | 8713 | <string>1975db39-aa29-4251-aea0-409ac09d414d</string> |
8196 | </map> | 8714 | </map> |
8197 | <key>UIImgRadioInactiveUUID</key> | 8715 | <key>UIImgRadioInactiveUUID</key> |
8198 | <map> | 8716 | <map> |
8199 | <key>Comment</key> | 8717 | <key>Comment</key> |
8200 | <string /> | 8718 | <string /> |
8201 | <key>Persist</key> | 8719 | <key>Persist</key> |
8202 | <integer>0</integer> | 8720 | <integer>0</integer> |
8203 | <key>Type</key> | 8721 | <key>Type</key> |
8204 | <string>String</string> | 8722 | <string>String</string> |
8205 | <key>Value</key> | 8723 | <key>Value</key> |
8206 | <string>90688481-67ff-4af0-be69-4aa084bcad1e</string> | 8724 | <string>90688481-67ff-4af0-be69-4aa084bcad1e</string> |
8207 | </map> | 8725 | </map> |
8208 | <key>UIImgResizeBottomRightUUID</key> | 8726 | <key>UIImgResizeBottomRightUUID</key> |
8209 | <map> | 8727 | <map> |
8210 | <key>Comment</key> | 8728 | <key>Comment</key> |
8211 | <string /> | 8729 | <string /> |
8212 | <key>Persist</key> | 8730 | <key>Persist</key> |
8213 | <integer>0</integer> | 8731 | <integer>0</integer> |
8214 | <key>Type</key> | 8732 | <key>Type</key> |
8215 | <string>String</string> | 8733 | <string>String</string> |
8216 | <key>Value</key> | 8734 | <key>Value</key> |
8217 | <string>e3690e25-9690-4f6c-a745-e7dcd885285a</string> | 8735 | <string>e3690e25-9690-4f6c-a745-e7dcd885285a</string> |
8218 | </map> | 8736 | </map> |
8219 | <key>UIImgRotateSelectedUUID</key> | 8737 | <key>UIImgRotateSelectedUUID</key> |
8220 | <map> | 8738 | <map> |
8221 | <key>Comment</key> | 8739 | <key>Comment</key> |
8222 | <string /> | 8740 | <string /> |
8223 | <key>Persist</key> | 8741 | <key>Persist</key> |
8224 | <integer>0</integer> | 8742 | <integer>0</integer> |
8225 | <key>Type</key> | 8743 | <key>Type</key> |
8226 | <string>String</string> | 8744 | <string>String</string> |
8227 | <key>Value</key> | 8745 | <key>Value</key> |
8228 | <string>cdfb7fde-0d13-418a-9d89-2bd91019fc95</string> | 8746 | <string>cdfb7fde-0d13-418a-9d89-2bd91019fc95</string> |
8229 | </map> | 8747 | </map> |
8230 | <key>UIImgRotateUUID</key> | 8748 | <key>UIImgRotateUUID</key> |
8231 | <map> | 8749 | <map> |
8232 | <key>Comment</key> | 8750 | <key>Comment</key> |
8233 | <string /> | 8751 | <string /> |
8234 | <key>Persist</key> | 8752 | <key>Persist</key> |
8235 | <integer>0</integer> | 8753 | <integer>0</integer> |
8236 | <key>Type</key> | 8754 | <key>Type</key> |
8237 | <string>String</string> | 8755 | <string>String</string> |
8238 | <key>Value</key> | 8756 | <key>Value</key> |
8239 | <string>c34b1eaa-aae3-4351-b082-e26c0b636779</string> | 8757 | <string>c34b1eaa-aae3-4351-b082-e26c0b636779</string> |
8240 | </map> | 8758 | </map> |
8241 | <key>UIImgScaleSelectedUUID</key> | 8759 | <key>UIImgScaleSelectedUUID</key> |
8242 | <map> | 8760 | <map> |
8243 | <key>Comment</key> | 8761 | <key>Comment</key> |
8244 | <string /> | 8762 | <string /> |
8245 | <key>Persist</key> | 8763 | <key>Persist</key> |
8246 | <integer>0</integer> | 8764 | <integer>0</integer> |
8247 | <key>Type</key> | 8765 | <key>Type</key> |
8248 | <string>String</string> | 8766 | <string>String</string> |
8249 | <key>Value</key> | 8767 | <key>Value</key> |
8250 | <string>55aa57ef-508a-47f7-8867-85d21c5a810d</string> | 8768 | <string>55aa57ef-508a-47f7-8867-85d21c5a810d</string> |
8251 | </map> | 8769 | </map> |
8252 | <key>UIImgScaleUUID</key> | 8770 | <key>UIImgScaleUUID</key> |
8253 | <map> | 8771 | <map> |
8254 | <key>Comment</key> | 8772 | <key>Comment</key> |
8255 | <string /> | 8773 | <string /> |
8256 | <key>Persist</key> | 8774 | <key>Persist</key> |
8257 | <integer>0</integer> | 8775 | <integer>0</integer> |
8258 | <key>Type</key> | 8776 | <key>Type</key> |
8259 | <string>String</string> | 8777 | <string>String</string> |
8260 | <key>Value</key> | 8778 | <key>Value</key> |
8261 | <string>88a90fef-b448-4883-9344-ecf378a60433</string> | 8779 | <string>88a90fef-b448-4883-9344-ecf378a60433</string> |
8262 | </map> | 8780 | </map> |
8263 | <key>UIImgWhiteUUID</key> | 8781 | <key>UIImgWhiteUUID</key> |
8264 | <map> | 8782 | <map> |
8265 | <key>Comment</key> | 8783 | <key>Comment</key> |
8266 | <string /> | 8784 | <string /> |
8267 | <key>Persist</key> | 8785 | <key>Persist</key> |
8268 | <integer>0</integer> | 8786 | <integer>0</integer> |
8269 | <key>Type</key> | 8787 | <key>Type</key> |
8270 | <string>String</string> | 8788 | <string>String</string> |
8271 | <key>Value</key> | 8789 | <key>Value</key> |
8272 | <string>5748decc-f629-461c-9a36-a35a221fe21f</string> | 8790 | <string>5748decc-f629-461c-9a36-a35a221fe21f</string> |
8273 | </map> | 8791 | </map> |
8274 | <key>UIScaleFactor</key> | 8792 | <key>UIScaleFactor</key> |
8275 | <map> | 8793 | <map> |
8276 | <key>Comment</key> | 8794 | <key>Comment</key> |
8277 | <string>Size of UI relative to default layout on 1024x768 screen</string> | 8795 | <string>Size of UI relative to default layout on 1024x768 screen</string> |
8278 | <key>Persist</key> | 8796 | <key>Persist</key> |
8279 | <integer>1</integer> | 8797 | <integer>1</integer> |
8280 | <key>Type</key> | 8798 | <key>Type</key> |
8281 | <string>F32</string> | 8799 | <string>F32</string> |
8282 | <key>Value</key> | 8800 | <key>Value</key> |
8283 | <real>1</real> | 8801 | <real>1.0</real> |
8284 | </map> | 8802 | </map> |
8285 | <key>UISndAlert</key> | 8803 | <key>UISndAlert</key> |
8286 | <map> | 8804 | <map> |
8287 | <key>Comment</key> | 8805 | <key>Comment</key> |
8288 | <string>Sound file for alerts (uuid for sound asset)</string> | 8806 | <string>Sound file for alerts (uuid for sound asset)</string> |
8289 | <key>Persist</key> | 8807 | <key>Persist</key> |
8290 | <integer>1</integer> | 8808 | <integer>1</integer> |
8291 | <key>Type</key> | 8809 | <key>Type</key> |
8292 | <string>String</string> | 8810 | <string>String</string> |
8293 | <key>Value</key> | 8811 | <key>Value</key> |
8294 | <string>ed124764-705d-d497-167a-182cd9fa2e6c</string> | 8812 | <string>ed124764-705d-d497-167a-182cd9fa2e6c</string> |
8295 | </map> | 8813 | </map> |
8296 | <key>UISndBadKeystroke</key> | 8814 | <key>UISndBadKeystroke</key> |
8297 | <map> | 8815 | <map> |
8298 | <key>Comment</key> | 8816 | <key>Comment</key> |
8299 | <string>Sound file for invalid keystroke (uuid for sound asset)</string> | 8817 | <string>Sound file for invalid keystroke (uuid for sound asset)</string> |
8300 | <key>Persist</key> | 8818 | <key>Persist</key> |
8301 | <integer>1</integer> | 8819 | <integer>1</integer> |
8302 | <key>Type</key> | 8820 | <key>Type</key> |
8303 | <string>String</string> | 8821 | <string>String</string> |
8304 | <key>Value</key> | 8822 | <key>Value</key> |
8305 | <string>2ca849ba-2885-4bc3-90ef-d4987a5b983a</string> | 8823 | <string>2ca849ba-2885-4bc3-90ef-d4987a5b983a</string> |
8306 | </map> | 8824 | </map> |
8307 | <key>UISndClick</key> | 8825 | <key>UISndClick</key> |
8308 | <map> | 8826 | <map> |
8309 | <key>Comment</key> | 8827 | <key>Comment</key> |
8310 | <string>Sound file for mouse click (uuid for sound asset)</string> | 8828 | <string>Sound file for mouse click (uuid for sound asset)</string> |
8311 | <key>Persist</key> | 8829 | <key>Persist</key> |
8312 | <integer>1</integer> | 8830 | <integer>1</integer> |
8313 | <key>Type</key> | 8831 | <key>Type</key> |
8314 | <string>String</string> | 8832 | <string>String</string> |
8315 | <key>Value</key> | 8833 | <key>Value</key> |
8316 | <string>4c8c3c77-de8d-bde2-b9b8-32635e0fd4a6</string> | 8834 | <string>4c8c3c77-de8d-bde2-b9b8-32635e0fd4a6</string> |
8317 | </map> | 8835 | </map> |
8318 | <key>UISndClickRelease</key> | 8836 | <key>UISndClickRelease</key> |
8319 | <map> | 8837 | <map> |
8320 | <key>Comment</key> | 8838 | <key>Comment</key> |
8321 | <string>Sound file for mouse button release (uuid for sound asset)</string> | 8839 | <string>Sound file for mouse button release (uuid for sound asset)</string> |
8322 | <key>Persist</key> | 8840 | <key>Persist</key> |
8323 | <integer>1</integer> | 8841 | <integer>1</integer> |
8324 | <key>Type</key> | 8842 | <key>Type</key> |
8325 | <string>String</string> | 8843 | <string>String</string> |
8326 | <key>Value</key> | 8844 | <key>Value</key> |
8327 | <string>4c8c3c77-de8d-bde2-b9b8-32635e0fd4a6</string> | 8845 | <string>4c8c3c77-de8d-bde2-b9b8-32635e0fd4a6</string> |
8328 | </map> | 8846 | </map> |
8329 | <key>UISndDebugSpamToggle</key> | 8847 | <key>UISndDebugSpamToggle</key> |
8330 | <map> | 8848 | <map> |
8331 | <key>Comment</key> | 8849 | <key>Comment</key> |
8332 | <string>Log UI sound effects as they are played</string> | 8850 | <string>Log UI sound effects as they are played</string> |
8333 | <key>Persist</key> | 8851 | <key>Persist</key> |
8334 | <integer>1</integer> | 8852 | <integer>1</integer> |
8335 | <key>Type</key> | 8853 | <key>Type</key> |
8336 | <string>Boolean</string> | 8854 | <string>Boolean</string> |
8337 | <key>Value</key> | 8855 | <key>Value</key> |
8338 | <integer>0</integer> | 8856 | <integer>0</integer> |
8339 | </map> | 8857 | </map> |
8340 | <key>UISndHealthReductionF</key> | 8858 | <key>UISndHealthReductionF</key> |
8341 | <map> | 8859 | <map> |
8342 | <key>Comment</key> | 8860 | <key>Comment</key> |
8343 | <string>Sound file for female pain (uuid for sound asset)</string> | 8861 | <string>Sound file for female pain (uuid for sound asset)</string> |
8344 | <key>Persist</key> | 8862 | <key>Persist</key> |
8345 | <integer>1</integer> | 8863 | <integer>1</integer> |
8346 | <key>Type</key> | 8864 | <key>Type</key> |
8347 | <string>String</string> | 8865 | <string>String</string> |
8348 | <key>Value</key> | 8866 | <key>Value</key> |
8349 | <string>219c5d93-6c09-31c5-fb3f-c5fe7495c115</string> | 8867 | <string>219c5d93-6c09-31c5-fb3f-c5fe7495c115</string> |
8350 | </map> | 8868 | </map> |
8351 | <key>UISndHealthReductionM</key> | 8869 | <key>UISndHealthReductionM</key> |
8352 | <map> | 8870 | <map> |
8353 | <key>Comment</key> | 8871 | <key>Comment</key> |
8354 | <string>Sound file for male pain (uuid for sound asset)</string> | 8872 | <string>Sound file for male pain (uuid for sound asset)</string> |
8355 | <key>Persist</key> | 8873 | <key>Persist</key> |
8356 | <integer>1</integer> | 8874 | <integer>1</integer> |
8357 | <key>Type</key> | 8875 | <key>Type</key> |
8358 | <string>String</string> | 8876 | <string>String</string> |
8359 | <key>Value</key> | 8877 | <key>Value</key> |
8360 | <string>e057c244-5768-1056-c37e-1537454eeb62</string> | 8878 | <string>e057c244-5768-1056-c37e-1537454eeb62</string> |
8361 | </map> | 8879 | </map> |
8362 | <key>UISndHealthReductionThreshold</key> | 8880 | <key>UISndHealthReductionThreshold</key> |
8363 | <map> | 8881 | <map> |
8364 | <key>Comment</key> | 8882 | <key>Comment</key> |
8365 | <string>Amount of health reduction required to trigger "pain" sound</string> | 8883 | <string>Amount of health reduction required to trigger "pain" sound</string> |
8366 | <key>Persist</key> | 8884 | <key>Persist</key> |
8367 | <integer>1</integer> | 8885 | <integer>1</integer> |
8368 | <key>Type</key> | 8886 | <key>Type</key> |
8369 | <string>F32</string> | 8887 | <string>F32</string> |
8370 | <key>Value</key> | 8888 | <key>Value</key> |
8371 | <real>10</real> | 8889 | <real>10.0</real> |
8372 | </map> | 8890 | </map> |
8373 | <key>UISndInvalidOp</key> | 8891 | <key>UISndInvalidOp</key> |
8374 | <map> | 8892 | <map> |
8375 | <key>Comment</key> | 8893 | <key>Comment</key> |
8376 | <string>Sound file for invalid operations (uuid for sound asset)</string> | 8894 | <string>Sound file for invalid operations (uuid for sound asset)</string> |
8377 | <key>Persist</key> | 8895 | <key>Persist</key> |
8378 | <integer>1</integer> | 8896 | <integer>1</integer> |
8379 | <key>Type</key> | 8897 | <key>Type</key> |
8380 | <string>String</string> | 8898 | <string>String</string> |
8381 | <key>Value</key> | 8899 | <key>Value</key> |
8382 | <string>4174f859-0d3d-c517-c424-72923dc21f65</string> | 8900 | <string>4174f859-0d3d-c517-c424-72923dc21f65</string> |
8383 | </map> | 8901 | </map> |
8384 | <key>UISndMoneyChangeDown</key> | 8902 | <key>UISndMoneyChangeDown</key> |
8385 | <map> | 8903 | <map> |
8386 | <key>Comment</key> | 8904 | <key>Comment</key> |
8387 | <string>Sound file for L$ balance increase (uuid for sound asset)</string> | 8905 | <string>Sound file for L$ balance increase (uuid for sound asset)</string> |
8388 | <key>Persist</key> | 8906 | <key>Persist</key> |
8389 | <integer>1</integer> | 8907 | <integer>1</integer> |
8390 | <key>Type</key> | 8908 | <key>Type</key> |
8391 | <string>String</string> | 8909 | <string>String</string> |
8392 | <key>Value</key> | 8910 | <key>Value</key> |
8393 | <string>104974e3-dfda-428b-99ee-b0d4e748d3a3</string> | 8911 | <string>104974e3-dfda-428b-99ee-b0d4e748d3a3</string> |
8394 | </map> | 8912 | </map> |
8395 | <key>UISndMoneyChangeThreshold</key> | 8913 | <key>UISndMoneyChangeThreshold</key> |
8396 | <map> | 8914 | <map> |
8397 | <key>Comment</key> | 8915 | <key>Comment</key> |
8398 | <string>Amount of change in L$ balance required to trigger "money" sound</string> | 8916 | <string>Amount of change in L$ balance required to trigger "money" sound</string> |
8399 | <key>Persist</key> | 8917 | <key>Persist</key> |
8400 | <integer>1</integer> | 8918 | <integer>1</integer> |
8401 | <key>Type</key> | 8919 | <key>Type</key> |
8402 | <string>F32</string> | 8920 | <string>F32</string> |
8403 | <key>Value</key> | 8921 | <key>Value</key> |
8404 | <real>50</real> | 8922 | <real>50.0</real> |
8405 | </map> | 8923 | </map> |
8406 | <key>UISndMoneyChangeUp</key> | 8924 | <key>UISndMoneyChangeUp</key> |
8407 | <map> | 8925 | <map> |
8408 | <key>Comment</key> | 8926 | <key>Comment</key> |
8409 | <string>Sound file for L$ balance decrease(uuid for sound asset)</string> | 8927 | <string>Sound file for L$ balance decrease(uuid for sound asset)</string> |
8410 | <key>Persist</key> | 8928 | <key>Persist</key> |
8411 | <integer>1</integer> | 8929 | <integer>1</integer> |
8412 | <key>Type</key> | 8930 | <key>Type</key> |
8413 | <string>String</string> | 8931 | <string>String</string> |
8414 | <key>Value</key> | 8932 | <key>Value</key> |
8415 | <string>77a018af-098e-c037-51a6-178f05877c6f</string> | 8933 | <string>77a018af-098e-c037-51a6-178f05877c6f</string> |
8416 | </map> | 8934 | </map> |
8417 | <key>UISndNewIncomingIMSession</key> | 8935 | <key>UISndNewIncomingIMSession</key> |
8418 | <map> | 8936 | <map> |
8419 | <key>Comment</key> | 8937 | <key>Comment</key> |
8420 | <string>Sound file for new instant message session(uuid for sound asset)</string> | 8938 | <string>Sound file for new instant message session(uuid for sound asset)</string> |
8421 | <key>Persist</key> | 8939 | <key>Persist</key> |
8422 | <integer>1</integer> | 8940 | <integer>1</integer> |
8423 | <key>Type</key> | 8941 | <key>Type</key> |
8424 | <string>String</string> | 8942 | <string>String</string> |
8425 | <key>Value</key> | 8943 | <key>Value</key> |
8426 | <string>67cc2844-00f3-2b3c-b991-6418d01e1bb7</string> | 8944 | <string>67cc2844-00f3-2b3c-b991-6418d01e1bb7</string> |
8427 | </map> | 8945 | </map> |
8428 | <key>UISndObjectCreate</key> | 8946 | <key>UISndObjectCreate</key> |
8429 | <map> | 8947 | <map> |
8430 | <key>Comment</key> | 8948 | <key>Comment</key> |
8431 | <string>Sound file for object creation (uuid for sound asset)</string> | 8949 | <string>Sound file for object creation (uuid for sound asset)</string> |
8432 | <key>Persist</key> | 8950 | <key>Persist</key> |
8433 | <integer>1</integer> | 8951 | <integer>1</integer> |
8434 | <key>Type</key> | 8952 | <key>Type</key> |
8435 | <string>String</string> | 8953 | <string>String</string> |
8436 | <key>Value</key> | 8954 | <key>Value</key> |
8437 | <string>f4a0660f-5446-dea2-80b7-6482a082803c</string> | 8955 | <string>f4a0660f-5446-dea2-80b7-6482a082803c</string> |
8438 | </map> | 8956 | </map> |
8439 | <key>UISndObjectDelete</key> | 8957 | <key>UISndObjectDelete</key> |
8440 | <map> | 8958 | <map> |
8441 | <key>Comment</key> | 8959 | <key>Comment</key> |
8442 | <string>Sound file for object deletion (uuid for sound asset)</string> | 8960 | <string>Sound file for object deletion (uuid for sound asset)</string> |
8443 | <key>Persist</key> | 8961 | <key>Persist</key> |
8444 | <integer>1</integer> | 8962 | <integer>1</integer> |
8445 | <key>Type</key> | 8963 | <key>Type</key> |
8446 | <string>String</string> | 8964 | <string>String</string> |
8447 | <key>Value</key> | 8965 | <key>Value</key> |
8448 | <string>0cb7b00a-4c10-6948-84de-a93c09af2ba9</string> | 8966 | <string>0cb7b00a-4c10-6948-84de-a93c09af2ba9</string> |
8449 | </map> | 8967 | </map> |
8450 | <key>UISndObjectRezIn</key> | 8968 | <key>UISndObjectRezIn</key> |
8451 | <map> | 8969 | <map> |
8452 | <key>Comment</key> | 8970 | <key>Comment</key> |
8453 | <string>Sound file for rezzing objects (uuid for sound asset)</string> | 8971 | <string>Sound file for rezzing objects (uuid for sound asset)</string> |
8454 | <key>Persist</key> | 8972 | <key>Persist</key> |
8455 | <integer>1</integer> | 8973 | <integer>1</integer> |
8456 | <key>Type</key> | 8974 | <key>Type</key> |
8457 | <string>String</string> | 8975 | <string>String</string> |
8458 | <key>Value</key> | 8976 | <key>Value</key> |
8459 | <string>3c8fc726-1fd6-862d-fa01-16c5b2568db6</string> | 8977 | <string>3c8fc726-1fd6-862d-fa01-16c5b2568db6</string> |
8460 | </map> | 8978 | </map> |
8461 | <key>UISndObjectRezOut</key> | 8979 | <key>UISndObjectRezOut</key> |
8462 | <map> | 8980 | <map> |
8463 | <key>Comment</key> | 8981 | <key>Comment</key> |
8464 | <string>Sound file for derezzing objects (uuid for sound asset)</string> | 8982 | <string>Sound file for derezzing objects (uuid for sound asset)</string> |
8465 | <key>Persist</key> | 8983 | <key>Persist</key> |
8466 | <integer>1</integer> | 8984 | <integer>1</integer> |
8467 | <key>Type</key> | 8985 | <key>Type</key> |
8468 | <string>String</string> | 8986 | <string>String</string> |
8469 | <key>Value</key> | 8987 | <key>Value</key> |
8470 | <string>00000000-0000-0000-0000-000000000000</string> | 8988 | <string>00000000-0000-0000-0000-000000000000</string> |
8471 | </map> | 8989 | </map> |
8472 | <key>UISndPieMenuAppear</key> | 8990 | <key>UISndPieMenuAppear</key> |
8473 | <map> | 8991 | <map> |
8474 | <key>Comment</key> | 8992 | <key>Comment</key> |
8475 | <string>Sound file for opening pie menu (uuid for sound asset)</string> | 8993 | <string>Sound file for opening pie menu (uuid for sound asset)</string> |
8476 | <key>Persist</key> | 8994 | <key>Persist</key> |
8477 | <integer>1</integer> | 8995 | <integer>1</integer> |
8478 | <key>Type</key> | 8996 | <key>Type</key> |
8479 | <string>String</string> | 8997 | <string>String</string> |
8480 | <key>Value</key> | 8998 | <key>Value</key> |
8481 | <string>8eaed61f-92ff-6485-de83-4dcc938a478e</string> | 8999 | <string>8eaed61f-92ff-6485-de83-4dcc938a478e</string> |
8482 | </map> | 9000 | </map> |
8483 | <key>UISndPieMenuHide</key> | 9001 | <key>UISndPieMenuHide</key> |
8484 | <map> | 9002 | <map> |
8485 | <key>Comment</key> | 9003 | <key>Comment</key> |
8486 | <string>Sound file for closing pie menu (uuid for sound asset)</string> | 9004 | <string>Sound file for closing pie menu (uuid for sound asset)</string> |
8487 | <key>Persist</key> | 9005 | <key>Persist</key> |
8488 | <integer>1</integer> | 9006 | <integer>1</integer> |
8489 | <key>Type</key> | 9007 | <key>Type</key> |
8490 | <string>String</string> | 9008 | <string>String</string> |
8491 | <key>Value</key> | 9009 | <key>Value</key> |
8492 | <string>00000000-0000-0000-0000-000000000000</string> | 9010 | <string>00000000-0000-0000-0000-000000000000</string> |
8493 | </map> | 9011 | </map> |
8494 | <key>UISndPieMenuSliceHighlight0</key> | 9012 | <key>UISndPieMenuSliceHighlight0</key> |
8495 | <map> | 9013 | <map> |
8496 | <key>Comment</key> | 9014 | <key>Comment</key> |
8497 | <string>Sound file for selecting pie menu item 0 (uuid for sound asset)</string> | 9015 | <string>Sound file for selecting pie menu item 0 (uuid for sound asset)</string> |
8498 | <key>Persist</key> | 9016 | <key>Persist</key> |
8499 | <integer>1</integer> | 9017 | <integer>1</integer> |
8500 | <key>Type</key> | 9018 | <key>Type</key> |
8501 | <string>String</string> | 9019 | <string>String</string> |
8502 | <key>Value</key> | 9020 | <key>Value</key> |
8503 | <string>d9f73cf8-17b4-6f7a-1565-7951226c305d</string> | 9021 | <string>d9f73cf8-17b4-6f7a-1565-7951226c305d</string> |
8504 | </map> | 9022 | </map> |
8505 | <key>UISndPieMenuSliceHighlight1</key> | 9023 | <key>UISndPieMenuSliceHighlight1</key> |
8506 | <map> | 9024 | <map> |
8507 | <key>Comment</key> | 9025 | <key>Comment</key> |
8508 | <string>Sound file for selecting pie menu item 1 (uuid for sound asset)</string> | 9026 | <string>Sound file for selecting pie menu item 1 (uuid for sound asset)</string> |
8509 | <key>Persist</key> | 9027 | <key>Persist</key> |
8510 | <integer>1</integer> | 9028 | <integer>1</integer> |
8511 | <key>Type</key> | 9029 | <key>Type</key> |
8512 | <string>String</string> | 9030 | <string>String</string> |
8513 | <key>Value</key> | 9031 | <key>Value</key> |
8514 | <string>f6ba9816-dcaf-f755-7b67-51b31b6233e5</string> | 9032 | <string>f6ba9816-dcaf-f755-7b67-51b31b6233e5</string> |
8515 | </map> | 9033 | </map> |
8516 | <key>UISndPieMenuSliceHighlight2</key> | 9034 | <key>UISndPieMenuSliceHighlight2</key> |
8517 | <map> | 9035 | <map> |
8518 | <key>Comment</key> | 9036 | <key>Comment</key> |
8519 | <string>Sound file for selecting pie menu item 2 (uuid for sound asset)</string> | 9037 | <string>Sound file for selecting pie menu item 2 (uuid for sound asset)</string> |
8520 | <key>Persist</key> | 9038 | <key>Persist</key> |
8521 | <integer>1</integer> | 9039 | <integer>1</integer> |
8522 | <key>Type</key> | 9040 | <key>Type</key> |
8523 | <string>String</string> | 9041 | <string>String</string> |
8524 | <key>Value</key> | 9042 | <key>Value</key> |
8525 | <string>7aff2265-d05b-8b72-63c7-dbf96dc2f21f</string> | 9043 | <string>7aff2265-d05b-8b72-63c7-dbf96dc2f21f</string> |
8526 | </map> | 9044 | </map> |
8527 | <key>UISndPieMenuSliceHighlight3</key> | 9045 | <key>UISndPieMenuSliceHighlight3</key> |
8528 | <map> | 9046 | <map> |
8529 | <key>Comment</key> | 9047 | <key>Comment</key> |
8530 | <string>Sound file for selecting pie menu item 3 (uuid for sound asset)</string> | 9048 | <string>Sound file for selecting pie menu item 3 (uuid for sound asset)</string> |
8531 | <key>Persist</key> | 9049 | <key>Persist</key> |
8532 | <integer>1</integer> | 9050 | <integer>1</integer> |
8533 | <key>Type</key> | 9051 | <key>Type</key> |
8534 | <string>String</string> | 9052 | <string>String</string> |
8535 | <key>Value</key> | 9053 | <key>Value</key> |
8536 | <string>09b2184e-8601-44e2-afbb-ce37434b8ba1</string> | 9054 | <string>09b2184e-8601-44e2-afbb-ce37434b8ba1</string> |
8537 | </map> | 9055 | </map> |
8538 | <key>UISndPieMenuSliceHighlight4</key> | 9056 | <key>UISndPieMenuSliceHighlight4</key> |
8539 | <map> | 9057 | <map> |
8540 | <key>Comment</key> | 9058 | <key>Comment</key> |
8541 | <string>Sound file for selecting pie menu item 4 (uuid for sound asset)</string> | 9059 | <string>Sound file for selecting pie menu item 4 (uuid for sound asset)</string> |
8542 | <key>Persist</key> | 9060 | <key>Persist</key> |
8543 | <integer>1</integer> | 9061 | <integer>1</integer> |
8544 | <key>Type</key> | 9062 | <key>Type</key> |
8545 | <string>String</string> | 9063 | <string>String</string> |
8546 | <key>Value</key> | 9064 | <key>Value</key> |
8547 | <string>bbe4c7fc-7044-b05e-7b89-36924a67593c</string> | 9065 | <string>bbe4c7fc-7044-b05e-7b89-36924a67593c</string> |
8548 | </map> | 9066 | </map> |
8549 | <key>UISndPieMenuSliceHighlight5</key> | 9067 | <key>UISndPieMenuSliceHighlight5</key> |
8550 | <map> | 9068 | <map> |
8551 | <key>Comment</key> | 9069 | <key>Comment</key> |
8552 | <string>Sound file for selecting pie menu item 5 (uuid for sound asset)</string> | 9070 | <string>Sound file for selecting pie menu item 5 (uuid for sound asset)</string> |
8553 | <key>Persist</key> | 9071 | <key>Persist</key> |
8554 | <integer>1</integer> | 9072 | <integer>1</integer> |
8555 | <key>Type</key> | 9073 | <key>Type</key> |
8556 | <string>String</string> | 9074 | <string>String</string> |
8557 | <key>Value</key> | 9075 | <key>Value</key> |
8558 | <string>d166039b-b4f5-c2ec-4911-c85c727b016c</string> | 9076 | <string>d166039b-b4f5-c2ec-4911-c85c727b016c</string> |
8559 | </map> | 9077 | </map> |
8560 | <key>UISndPieMenuSliceHighlight6</key> | 9078 | <key>UISndPieMenuSliceHighlight6</key> |
8561 | <map> | 9079 | <map> |
8562 | <key>Comment</key> | 9080 | <key>Comment</key> |
8563 | <string>Sound file for selecting pie menu item 6 (uuid for sound asset)</string> | 9081 | <string>Sound file for selecting pie menu item 6 (uuid for sound asset)</string> |
8564 | <key>Persist</key> | 9082 | <key>Persist</key> |
8565 | <integer>1</integer> | 9083 | <integer>1</integer> |
8566 | <key>Type</key> | 9084 | <key>Type</key> |
8567 | <string>String</string> | 9085 | <string>String</string> |
8568 | <key>Value</key> | 9086 | <key>Value</key> |
8569 | <string>242af82b-43c2-9a3b-e108-3b0c7e384981</string> | 9087 | <string>242af82b-43c2-9a3b-e108-3b0c7e384981</string> |
8570 | </map> | 9088 | </map> |
8571 | <key>UISndPieMenuSliceHighlight7</key> | 9089 | <key>UISndPieMenuSliceHighlight7</key> |
8572 | <map> | 9090 | <map> |
8573 | <key>Comment</key> | 9091 | <key>Comment</key> |
8574 | <string>Sound file for selecting pie menu item 7 (uuid for sound asset)</string> | 9092 | <string>Sound file for selecting pie menu item 7 (uuid for sound asset)</string> |
8575 | <key>Persist</key> | 9093 | <key>Persist</key> |
8576 | <integer>1</integer> | 9094 | <integer>1</integer> |
8577 | <key>Type</key> | 9095 | <key>Type</key> |
8578 | <string>String</string> | 9096 | <string>String</string> |
8579 | <key>Value</key> | 9097 | <key>Value</key> |
8580 | <string>c1f334fb-a5be-8fe7-22b3-29631c21cf0b</string> | 9098 | <string>c1f334fb-a5be-8fe7-22b3-29631c21cf0b</string> |
8581 | </map> | 9099 | </map> |
8582 | <key>UISndSnapshot</key> | 9100 | <key>UISndSnapshot</key> |
8583 | <map> | 9101 | <map> |
8584 | <key>Comment</key> | 9102 | <key>Comment</key> |
8585 | <string>Sound file for taking a snapshot (uuid for sound asset)</string> | 9103 | <string>Sound file for taking a snapshot (uuid for sound asset)</string> |
8586 | <key>Persist</key> | 9104 | <key>Persist</key> |
8587 | <integer>1</integer> | 9105 | <integer>1</integer> |
8588 | <key>Type</key> | 9106 | <key>Type</key> |
8589 | <string>String</string> | 9107 | <string>String</string> |
8590 | <key>Value</key> | 9108 | <key>Value</key> |
8591 | <string>3d09f582-3851-c0e0-f5ba-277ac5c73fb4</string> | 9109 | <string>3d09f582-3851-c0e0-f5ba-277ac5c73fb4</string> |
8592 | </map> | 9110 | </map> |
8593 | <key>UISndStartIM</key> | 9111 | <key>UISndStartIM</key> |
8594 | <map> | 9112 | <map> |
8595 | <key>Comment</key> | 9113 | <key>Comment</key> |
8596 | <string>Sound file for starting a new IM session (uuid for sound asset)</string> | 9114 | <string>Sound file for starting a new IM session (uuid for sound asset)</string> |
8597 | <key>Persist</key> | 9115 | <key>Persist</key> |
8598 | <integer>1</integer> | 9116 | <integer>1</integer> |
8599 | <key>Type</key> | 9117 | <key>Type</key> |
8600 | <string>String</string> | 9118 | <string>String</string> |
8601 | <key>Value</key> | 9119 | <key>Value</key> |
8602 | <string>c825dfbc-9827-7e02-6507-3713d18916c1</string> | 9120 | <string>c825dfbc-9827-7e02-6507-3713d18916c1</string> |
8603 | </map> | 9121 | </map> |
8604 | <key>UISndTeleportOut</key> | 9122 | <key>UISndTeleportOut</key> |
8605 | <map> | 9123 | <map> |
8606 | <key>Comment</key> | 9124 | <key>Comment</key> |
8607 | <string>Sound file for teleporting (uuid for sound asset)</string> | 9125 | <string>Sound file for teleporting (uuid for sound asset)</string> |
8608 | <key>Persist</key> | 9126 | <key>Persist</key> |
8609 | <integer>1</integer> | 9127 | <integer>1</integer> |
8610 | <key>Type</key> | 9128 | <key>Type</key> |
8611 | <string>String</string> | 9129 | <string>String</string> |
8612 | <key>Value</key> | 9130 | <key>Value</key> |
8613 | <string>d7a9a565-a013-2a69-797d-5332baa1a947</string> | 9131 | <string>d7a9a565-a013-2a69-797d-5332baa1a947</string> |
8614 | </map> | 9132 | </map> |
8615 | <key>UISndTyping</key> | 9133 | <key>UISndTyping</key> |
8616 | <map> | 9134 | <map> |
8617 | <key>Comment</key> | 9135 | <key>Comment</key> |
8618 | <string>Sound file for starting to type a chat message (uuid for sound asset)</string> | 9136 | <string>Sound file for starting to type a chat message (uuid for sound asset)</string> |
8619 | <key>Persist</key> | 9137 | <key>Persist</key> |
8620 | <integer>1</integer> | 9138 | <integer>1</integer> |
8621 | <key>Type</key> | 9139 | <key>Type</key> |
8622 | <string>String</string> | 9140 | <string>String</string> |
8623 | <key>Value</key> | 9141 | <key>Value</key> |
8624 | <string>5e191c7b-8996-9ced-a177-b2ac32bfea06</string> | 9142 | <string>5e191c7b-8996-9ced-a177-b2ac32bfea06</string> |
8625 | </map> | 9143 | </map> |
8626 | <key>UISndWindowClose</key> | 9144 | <key>UISndWindowClose</key> |
8627 | <map> | 9145 | <map> |
8628 | <key>Comment</key> | 9146 | <key>Comment</key> |
8629 | <string>Sound file for closing a window (uuid for sound asset)</string> | 9147 | <string>Sound file for closing a window (uuid for sound asset)</string> |
8630 | <key>Persist</key> | 9148 | <key>Persist</key> |
8631 | <integer>1</integer> | 9149 | <integer>1</integer> |
8632 | <key>Type</key> | 9150 | <key>Type</key> |
8633 | <string>String</string> | 9151 | <string>String</string> |
8634 | <key>Value</key> | 9152 | <key>Value</key> |
8635 | <string>2c346eda-b60c-ab33-1119-b8941916a499</string> | 9153 | <string>2c346eda-b60c-ab33-1119-b8941916a499</string> |
8636 | </map> | 9154 | </map> |
8637 | <key>UISndWindowOpen</key> | 9155 | <key>UISndWindowOpen</key> |
8638 | <map> | 9156 | <map> |
8639 | <key>Comment</key> | 9157 | <key>Comment</key> |
8640 | <string>Sound file for opening a window (uuid for sound asset)</string> | 9158 | <string>Sound file for opening a window (uuid for sound asset)</string> |
8641 | <key>Persist</key> | 9159 | <key>Persist</key> |
8642 | <integer>1</integer> | 9160 | <integer>1</integer> |
8643 | <key>Type</key> | 9161 | <key>Type</key> |
8644 | <string>String</string> | 9162 | <string>String</string> |
8645 | <key>Value</key> | 9163 | <key>Value</key> |
8646 | <string>c80260ba-41fd-8a46-768a-6bf236360e3a</string> | 9164 | <string>c80260ba-41fd-8a46-768a-6bf236360e3a</string> |
8647 | </map> | 9165 | </map> |
8648 | <key>UseAltKeyForMenus</key> | 9166 | <key>UseAltKeyForMenus</key> |
8649 | <map> | 9167 | <map> |
8650 | <key>Comment</key> | 9168 | <key>Comment</key> |
8651 | <string>Access menus via keyboard by tapping Alt</string> | 9169 | <string>Access menus via keyboard by tapping Alt</string> |
8652 | <key>Persist</key> | 9170 | <key>Persist</key> |
8653 | <integer>1</integer> | 9171 | <integer>1</integer> |
8654 | <key>Type</key> | 9172 | <key>Type</key> |
8655 | <string>Boolean</string> | 9173 | <string>Boolean</string> |
8656 | <key>Value</key> | 9174 | <key>Value</key> |
8657 | <integer>0</integer> | 9175 | <integer>0</integer> |
8658 | </map> | 9176 | </map> |
8659 | <key>UseChatBubbles</key> | 9177 | <key>UseChatBubbles</key> |
8660 | <map> | 9178 | <map> |
8661 | <key>Comment</key> | 9179 | <key>Comment</key> |
8662 | <string>Show chat above avatars head in chat bubbles</string> | 9180 | <string>Show chat above avatars head in chat bubbles</string> |
8663 | <key>Persist</key> | 9181 | <key>Persist</key> |
8664 | <integer>1</integer> | 9182 | <integer>1</integer> |
8665 | <key>Type</key> | 9183 | <key>Type</key> |
8666 | <string>Boolean</string> | 9184 | <string>Boolean</string> |
8667 | <key>Value</key> | 9185 | <key>Value</key> |
8668 | <integer>0</integer> | 9186 | <integer>0</integer> |
8669 | </map> | 9187 | </map> |
8670 | <key>UseDebugLogin</key> | 9188 | <key>UseDebugLogin</key> |
8671 | <map> | 9189 | <map> |
8672 | <key>Comment</key> | 9190 | <key>Comment</key> |
8673 | <string>Provides extra control over which grid to connect to</string> | 9191 | <string>Provides extra control over which grid to connect to</string> |
8674 | <key>Persist</key> | 9192 | <key>Persist</key> |
8675 | <integer>1</integer> | 9193 | <integer>1</integer> |
8676 | <key>Type</key> | 9194 | <key>Type</key> |
8677 | <string>Boolean</string> | 9195 | <string>Boolean</string> |
8678 | <key>Value</key> | 9196 | <key>Value</key> |
8679 | <integer>0</integer> | 9197 | <integer>0</integer> |
8680 | </map> | 9198 | </map> |
8681 | <key>UseDebugMenus</key> | 9199 | <key>UseDebugMenus</key> |
8682 | <map> | 9200 | <map> |
8683 | <key>Comment</key> | 9201 | <key>Comment</key> |
8684 | <string>Turns on "Debug" menu</string> | 9202 | <string>Turns on "Debug" menu</string> |
8685 | <key>Persist</key> | 9203 | <key>Persist</key> |
8686 | <integer>1</integer> | 9204 | <integer>1</integer> |
8687 | <key>Type</key> | 9205 | <key>Type</key> |
8688 | <string>Boolean</string> | 9206 | <string>Boolean</string> |
8689 | <key>Value</key> | 9207 | <key>Value</key> |
8690 | <integer>0</integer> | 9208 | <integer>0</integer> |
8691 | </map> | 9209 | </map> |
8692 | <key>UseDefaultColorPicker</key> | 9210 | <key>UseDefaultColorPicker</key> |
8693 | <map> | 9211 | <map> |
8694 | <key>Comment</key> | 9212 | <key>Comment</key> |
8695 | <string>Use color picker supplied by operating system</string> | 9213 | <string>Use color picker supplied by operating system</string> |
8696 | <key>Persist</key> | 9214 | <key>Persist</key> |
8697 | <integer>1</integer> | 9215 | <integer>1</integer> |
8698 | <key>Type</key> | 9216 | <key>Type</key> |
8699 | <string>Boolean</string> | 9217 | <string>Boolean</string> |
8700 | <key>Value</key> | 9218 | <key>Value</key> |
8701 | <integer>0</integer> | 9219 | <integer>0</integer> |
8702 | </map> | 9220 | </map> |
8703 | <key>UseEnergy</key> | 9221 | <key>UseEnergy</key> |
8704 | <map> | 9222 | <map> |
8705 | <key>Comment</key> | 9223 | <key>Comment</key> |
8706 | <string /> | 9224 | <string /> |
8707 | <key>Persist</key> | 9225 | <key>Persist</key> |
8708 | <integer>0</integer> | 9226 | <integer>0</integer> |
8709 | <key>Type</key> | 9227 | <key>Type</key> |
8710 | <string>Boolean</string> | 9228 | <string>Boolean</string> |
8711 | <key>Value</key> | 9229 | <key>Value</key> |
8712 | <integer>1</integer> | 9230 | <integer>1</integer> |
8713 | </map> | 9231 | </map> |
8714 | <key>UseExternalBrowser</key> | 9232 | <key>UseExternalBrowser</key> |
8715 | <map> | 9233 | <map> |
8716 | <key>Comment</key> | 9234 | <key>Comment</key> |
8717 | <string>Use default browser when opening web pages instead of in-world browser.</string> | 9235 | <string>Use default browser when opening web pages instead of in-world browser.</string> |
8718 | <key>Persist</key> | 9236 | <key>Persist</key> |
8719 | <integer>1</integer> | 9237 | <integer>1</integer> |
8720 | <key>Type</key> | 9238 | <key>Type</key> |
8721 | <string>Boolean</string> | 9239 | <string>Boolean</string> |
8722 | <key>Value</key> | 9240 | <key>Value</key> |
8723 | <integer>0</integer> | 9241 | <integer>0</integer> |
8724 | </map> | 9242 | </map> |
8725 | <key>UseFreezeFrame</key> | 9243 | <key>UseFreezeFrame</key> |
8726 | <map> | 9244 | <map> |
8727 | <key>Comment</key> | 9245 | <key>Comment</key> |
8728 | <string>Freeze time when taking snapshots.</string> | 9246 | <string>Freeze time when taking snapshots.</string> |
8729 | <key>Persist</key> | 9247 | <key>Persist</key> |
8730 | <integer>1</integer> | 9248 | <integer>1</integer> |
8731 | <key>Type</key> | 9249 | <key>Type</key> |
8732 | <string>Boolean</string> | 9250 | <string>Boolean</string> |
8733 | <key>Value</key> | 9251 | <key>Value</key> |
8734 | <integer>0</integer> | 9252 | <integer>0</integer> |
8735 | </map> | 9253 | </map> |
8736 | <key>UseOcclusion</key> | 9254 | <key>UseOcclusion</key> |
8737 | <map> | 9255 | <map> |
8738 | <key>Comment</key> | 9256 | <key>Comment</key> |
8739 | <string>Enable object culling based on occlusion (coverage) by other objects</string> | 9257 | <string>Enable object culling based on occlusion (coverage) by other objects</string> |
8740 | <key>Persist</key> | 9258 | <key>Persist</key> |
8741 | <integer>1</integer> | 9259 | <integer>1</integer> |
8742 | <key>Type</key> | 9260 | <key>Type</key> |
8743 | <string>Boolean</string> | 9261 | <string>Boolean</string> |
8744 | <key>Value</key> | 9262 | <key>Value</key> |
8745 | <integer>1</integer> | 9263 | <integer>1</integer> |
8746 | </map> | 9264 | </map> |
9265 | <key>UseStartScreen</key> | ||
9266 | <map> | ||
9267 | <key>Comment</key> | ||
9268 | <string>Whether to load a start screen image or not.</string> | ||
9269 | <key>Persist</key> | ||
9270 | <integer>1</integer> | ||
9271 | <key>Type</key> | ||
9272 | <string>Boolean</string> | ||
9273 | <key>Value</key> | ||
9274 | <integer>1</integer> | ||
9275 | </map> | ||
8747 | <key>UseWebPagesOnPrims</key> | 9276 | <key>UseWebPagesOnPrims</key> |
8748 | <map> | 9277 | <map> |
8749 | <key>Comment</key> | 9278 | <key>Comment</key> |
8750 | <string>[NOT USED]</string> | 9279 | <string>[NOT USED]</string> |
8751 | <key>Persist</key> | 9280 | <key>Persist</key> |
8752 | <integer>1</integer> | 9281 | <integer>1</integer> |
8753 | <key>Type</key> | 9282 | <key>Type</key> |
8754 | <string>Boolean</string> | 9283 | <string>Boolean</string> |
8755 | <key>Value</key> | 9284 | <key>Value</key> |
8756 | <integer>0</integer> | 9285 | <integer>0</integer> |
8757 | </map> | 9286 | </map> |
8758 | <key>UserConnectionPort</key> | 9287 | <key>UserConnectionPort</key> |
8759 | <map> | 9288 | <map> |
8760 | <key>Comment</key> | 9289 | <key>Comment</key> |
8761 | <string>Port that this client transmits on.</string> | 9290 | <string>Port that this client transmits on.</string> |
8762 | <key>Persist</key> | 9291 | <key>Persist</key> |
8763 | <integer>1</integer> | 9292 | <integer>1</integer> |
8764 | <key>Type</key> | 9293 | <key>Type</key> |
8765 | <string>U32</string> | 9294 | <string>U32</string> |
8766 | <key>Value</key> | 9295 | <key>Value</key> |
8767 | <integer>0</integer> | 9296 | <integer>0</integer> |
8768 | </map> | 9297 | </map> |
8769 | <key>UserLogFile</key> | 9298 | <key>UserLogFile</key> |
8770 | <map> | 9299 | <map> |
8771 | <key>Comment</key> | 9300 | <key>Comment</key> |
8772 | <string>User specified log file name.</string> | 9301 | <string>User specified log file name.</string> |
8773 | <key>Persist</key> | 9302 | <key>Persist</key> |
8774 | <integer>1</integer> | 9303 | <integer>1</integer> |
8775 | <key>Type</key> | 9304 | <key>Type</key> |
8776 | <string>String</string> | 9305 | <string>String</string> |
8777 | <key>Value</key> | 9306 | <key>Value</key> |
8778 | <string /> | 9307 | <string /> |
8779 | </map> | 9308 | </map> |
8780 | <key>UserLoginInfo</key> | 9309 | <key>UserLoginInfo</key> |
8781 | <map> | 9310 | <map> |
8782 | <key>Comment</key> | 9311 | <key>Comment</key> |
8783 | <string>Users loging data.</string> | 9312 | <string>Users loging data.</string> |
8784 | <key>Persist</key> | 9313 | <key>Persist</key> |
8785 | <integer>1</integer> | 9314 | <integer>1</integer> |
8786 | <key>Type</key> | 9315 | <key>Type</key> |
8787 | <string>LLSD</string> | 9316 | <string>LLSD</string> |
8788 | <key>Value</key> | 9317 | <key>Value</key> |
8789 | <map /> | 9318 | <map> |
8790 | </map> | 9319 | </map> |
8791 | <key>UseStartScreen</key> | 9320 | </map> |
8792 | <map> | ||
8793 | <key>Comment</key> | ||
8794 | <string>Whether to load a start screen image or not.</string> | ||
8795 | <key>Persist</key> | ||
8796 | <integer>1</integer> | ||
8797 | <key>Type</key> | ||
8798 | <string>Boolean</string> | ||
8799 | <key>Value</key> | ||
8800 | <integer>1</integer> | ||
8801 | </map> | ||
8802 | <key>VFSOldSize</key> | 9321 | <key>VFSOldSize</key> |
8803 | <map> | 9322 | <map> |
8804 | <key>Comment</key> | 9323 | <key>Comment</key> |
8805 | <string>[DO NOT MODIFY] Controls resizing of local file cache</string> | 9324 | <string>[DO NOT MODIFY] Controls resizing of local file cache</string> |
8806 | <key>Persist</key> | 9325 | <key>Persist</key> |
8807 | <integer>1</integer> | 9326 | <integer>1</integer> |
8808 | <key>Type</key> | 9327 | <key>Type</key> |
8809 | <string>U32</string> | 9328 | <string>U32</string> |
8810 | <key>Value</key> | 9329 | <key>Value</key> |
8811 | <integer>0</integer> | 9330 | <integer>0</integer> |
8812 | </map> | 9331 | </map> |
8813 | <key>VFSSalt</key> | 9332 | <key>VFSSalt</key> |
8814 | <map> | 9333 | <map> |
8815 | <key>Comment</key> | 9334 | <key>Comment</key> |
8816 | <string>[DO NOT MODIFY] Controls local file caching behavior</string> | 9335 | <string>[DO NOT MODIFY] Controls local file caching behavior</string> |
8817 | <key>Persist</key> | 9336 | <key>Persist</key> |
8818 | <integer>1</integer> | 9337 | <integer>1</integer> |
8819 | <key>Type</key> | 9338 | <key>Type</key> |
8820 | <string>U32</string> | 9339 | <string>U32</string> |
8821 | <key>Value</key> | 9340 | <key>Value</key> |
8822 | <integer>1</integer> | 9341 | <integer>1</integer> |
8823 | </map> | 9342 | </map> |
8824 | <key>VectorizeEnable</key> | 9343 | <key>VectorizeEnable</key> |
8825 | <map> | 9344 | <map> |
8826 | <key>Comment</key> | 9345 | <key>Comment</key> |
8827 | <string>Enable general vector operations and data alignment.</string> | 9346 | <string>Enable general vector operations and data alignment.</string> |
8828 | <key>Persist</key> | 9347 | <key>Persist</key> |
8829 | <integer>1</integer> | 9348 | <integer>1</integer> |
8830 | <key>Type</key> | 9349 | <key>Type</key> |
8831 | <string>Boolean</string> | 9350 | <string>Boolean</string> |
8832 | <key>Value</key> | 9351 | <key>Value</key> |
8833 | <integer>0</integer> | 9352 | <integer>0</integer> |
8834 | </map> | 9353 | </map> |
8835 | <key>VectorizePerfTest</key> | 9354 | <key>VectorizePerfTest</key> |
8836 | <map> | 9355 | <map> |
8837 | <key>Comment</key> | 9356 | <key>Comment</key> |
8838 | <string>Test SSE/vectorization performance and choose fastest version.</string> | 9357 | <string>Test SSE/vectorization performance and choose fastest version.</string> |
8839 | <key>Persist</key> | 9358 | <key>Persist</key> |
8840 | <integer>1</integer> | 9359 | <integer>1</integer> |
8841 | <key>Type</key> | 9360 | <key>Type</key> |
8842 | <string>Boolean</string> | 9361 | <string>Boolean</string> |
8843 | <key>Value</key> | 9362 | <key>Value</key> |
8844 | <integer>1</integer> | 9363 | <integer>1</integer> |
8845 | </map> | 9364 | </map> |
8846 | <key>VectorizeProcessor</key> | 9365 | <key>VectorizeProcessor</key> |
8847 | <map> | 9366 | <map> |
8848 | <key>Comment</key> | 9367 | <key>Comment</key> |
8849 | <string>0=Compiler Default, 1=SSE, 2=SSE2, autodetected</string> | 9368 | <string>0=Compiler Default, 1=SSE, 2=SSE2, autodetected</string> |
8850 | <key>Persist</key> | 9369 | <key>Persist</key> |
8851 | <integer>0</integer> | 9370 | <integer>0</integer> |
8852 | <key>Type</key> | 9371 | <key>Type</key> |
8853 | <string>U32</string> | 9372 | <string>U32</string> |
8854 | <key>Value</key> | 9373 | <key>Value</key> |
8855 | <integer>0</integer> | 9374 | <integer>0</integer> |
8856 | </map> | 9375 | </map> |
8857 | <key>VectorizeSkin</key> | 9376 | <key>VectorizeSkin</key> |
8858 | <map> | 9377 | <map> |
8859 | <key>Comment</key> | 9378 | <key>Comment</key> |
8860 | <string>Enable vector operations for avatar skinning.</string> | 9379 | <string>Enable vector operations for avatar skinning.</string> |
8861 | <key>Persist</key> | 9380 | <key>Persist</key> |
8862 | <integer>1</integer> | 9381 | <integer>1</integer> |
8863 | <key>Type</key> | 9382 | <key>Type</key> |
8864 | <string>Boolean</string> | 9383 | <string>Boolean</string> |
8865 | <key>Value</key> | 9384 | <key>Value</key> |
8866 | <integer>1</integer> | 9385 | <integer>1</integer> |
8867 | </map> | 9386 | </map> |
8868 | <key>VelocityInterpolate</key> | 9387 | <key>VelocityInterpolate</key> |
8869 | <map> | 9388 | <map> |
8870 | <key>Comment</key> | 9389 | <key>Comment</key> |
8871 | <string>Extrapolate object motion from last packet based on received velocity</string> | 9390 | <string>Extrapolate object motion from last packet based on received velocity</string> |
8872 | <key>Persist</key> | 9391 | <key>Persist</key> |
8873 | <integer>1</integer> | 9392 | <integer>1</integer> |
8874 | <key>Type</key> | 9393 | <key>Type</key> |
8875 | <string>Boolean</string> | 9394 | <string>Boolean</string> |
8876 | <key>Value</key> | 9395 | <key>Value</key> |
8877 | <integer>1</integer> | 9396 | <integer>1</integer> |
8878 | </map> | 9397 | </map> |
8879 | <key>VerboseLogs</key> | 9398 | <key>VerboseLogs</key> |
8880 | <map> | 9399 | <map> |
8881 | <key>Comment</key> | 9400 | <key>Comment</key> |
8882 | <string>Display source file and line number for each log item for debugging purposes</string> | 9401 | <string>Display source file and line number for each log item for debugging purposes</string> |
8883 | <key>Persist</key> | 9402 | <key>Persist</key> |
8884 | <integer>1</integer> | 9403 | <integer>1</integer> |
8885 | <key>Type</key> | 9404 | <key>Type</key> |
8886 | <string>Boolean</string> | 9405 | <string>Boolean</string> |
8887 | <key>Value</key> | 9406 | <key>Value</key> |
8888 | <integer>0</integer> | 9407 | <integer>0</integer> |
8889 | </map> | 9408 | </map> |
8890 | <key>VersionChannelName</key> | 9409 | <key>VersionChannelName</key> |
8891 | <map> | 9410 | <map> |
8892 | <key>Comment</key> | 9411 | <key>Comment</key> |
8893 | <string>Versioning Channel Name.</string> | 9412 | <string>Versioning Channel Name.</string> |
8894 | <key>Persist</key> | 9413 | <key>Persist</key> |
8895 | <integer>1</integer> | 9414 | <integer>1</integer> |
8896 | <key>Type</key> | 9415 | <key>Type</key> |
8897 | <string>String</string> | 9416 | <string>String</string> |
8898 | <key>Value</key> | 9417 | <key>Value</key> |
8899 | <string>Second Life Release</string> | 9418 | <string>Second Life Release</string> |
8900 | </map> | 9419 | </map> |
8901 | <key>VertexShaderEnable</key> | 9420 | <key>VertexShaderEnable</key> |
8902 | <map> | 9421 | <map> |
8903 | <key>Comment</key> | 9422 | <key>Comment</key> |
8904 | <string>Enable/disable all GLSL shaders (debug)</string> | 9423 | <string>Enable/disable all GLSL shaders (debug)</string> |
8905 | <key>Persist</key> | 9424 | <key>Persist</key> |
8906 | <integer>1</integer> | 9425 | <integer>1</integer> |
8907 | <key>Type</key> | 9426 | <key>Type</key> |
8908 | <string>Boolean</string> | 9427 | <string>Boolean</string> |
8909 | <key>Value</key> | 9428 | <key>Value</key> |
8910 | <integer>0</integer> | 9429 | <integer>0</integer> |
8911 | </map> | 9430 | </map> |
8912 | <key>VivoxDebugLevel</key> | 9431 | <key>VivoxDebugLevel</key> |
8913 | <map> | 9432 | <map> |
8914 | <key>Comment</key> | 9433 | <key>Comment</key> |
8915 | <string>Logging level to use when launching the vivox daemon</string> | 9434 | <string>Logging level to use when launching the vivox daemon</string> |
8916 | <key>Persist</key> | 9435 | <key>Persist</key> |
8917 | <integer>1</integer> | 9436 | <integer>1</integer> |
8918 | <key>Type</key> | 9437 | <key>Type</key> |
8919 | <string>String</string> | 9438 | <string>String</string> |
8920 | <key>Value</key> | 9439 | <key>Value</key> |
8921 | <string>-1</string> | 9440 | <string>-1</string> |
8922 | </map> | 9441 | </map> |
8923 | <key>VivoxDebugServerName</key> | 9442 | <key>VivoxDebugServerName</key> |
8924 | <map> | 9443 | <map> |
8925 | <key>Comment</key> | 9444 | <key>Comment</key> |
8926 | <string>Hostname of the vivox account server to use for voice when not connected to Agni.</string> | 9445 | <string>Hostname of the vivox account server to use for voice when not connected to Agni.</string> |
8927 | <key>Persist</key> | 9446 | <key>Persist</key> |
8928 | <integer>1</integer> | 9447 | <integer>1</integer> |
8929 | <key>Type</key> | 9448 | <key>Type</key> |
8930 | <string>String</string> | 9449 | <string>String</string> |
8931 | <key>Value</key> | 9450 | <key>Value</key> |
8932 | <string>bhd.vivox.com</string> | 9451 | <string>bhd.vivox.com</string> |
8933 | </map> | 9452 | </map> |
8934 | <key>VoiceCallsFriendsOnly</key> | 9453 | <key>VoiceCallsFriendsOnly</key> |
8935 | <map> | 9454 | <map> |
8936 | <key>Comment</key> | 9455 | <key>Comment</key> |
8937 | <string>Only accept voice calls from residents on your friends list</string> | 9456 | <string>Only accept voice calls from residents on your friends list</string> |
8938 | <key>Persist</key> | 9457 | <key>Persist</key> |
8939 | <integer>1</integer> | 9458 | <integer>1</integer> |
8940 | <key>Type</key> | 9459 | <key>Type</key> |
8941 | <string>Boolean</string> | 9460 | <string>Boolean</string> |
8942 | <key>Value</key> | 9461 | <key>Value</key> |
8943 | <integer>0</integer> | 9462 | <integer>0</integer> |
8944 | </map> | 9463 | </map> |
8945 | <key>VoiceEarLocation</key> | 9464 | <key>VoiceEarLocation</key> |
8946 | <map> | 9465 | <map> |
8947 | <key>Comment</key> | 9466 | <key>Comment</key> |
8948 | <string>Location of the virtual ear for voice</string> | 9467 | <string>Location of the virtual ear for voice</string> |
8949 | <key>Persist</key> | 9468 | <key>Persist</key> |
8950 | <integer>1</integer> | 9469 | <integer>1</integer> |
8951 | <key>Type</key> | 9470 | <key>Type</key> |
8952 | <string>S32</string> | 9471 | <string>S32</string> |
8953 | <key>Value</key> | 9472 | <key>Value</key> |
8954 | <integer>0</integer> | 9473 | <integer>0</integer> |
8955 | </map> | 9474 | </map> |
8956 | <key>VoiceHost</key> | 9475 | <key>VoiceHost</key> |
8957 | <map> | 9476 | <map> |
8958 | <key>Comment</key> | 9477 | <key>Comment</key> |
8959 | <string>Client SLVoice host to connect to</string> | 9478 | <string>Client SLVoice host to connect to</string> |
8960 | <key>Persist</key> | 9479 | <key>Persist</key> |
8961 | <integer>1</integer> | 9480 | <integer>1</integer> |
8962 | <key>Type</key> | 9481 | <key>Type</key> |
8963 | <string>String</string> | 9482 | <string>String</string> |
8964 | <key>Value</key> | 9483 | <key>Value</key> |
8965 | <string>127.0.0.1</string> | 9484 | <string>127.0.0.1</string> |
8966 | </map> | 9485 | </map> |
8967 | <key>VoiceImageLevel0</key> | 9486 | <key>VoiceImageLevel0</key> |
8968 | <map> | 9487 | <map> |
8969 | <key>Comment</key> | 9488 | <key>Comment</key> |
8970 | <string>Texture UUID for voice image level 0</string> | 9489 | <string>Texture UUID for voice image level 0</string> |
8971 | <key>Persist</key> | 9490 | <key>Persist</key> |
8972 | <integer>1</integer> | 9491 | <integer>1</integer> |
8973 | <key>Type</key> | 9492 | <key>Type</key> |
8974 | <string>String</string> | 9493 | <string>String</string> |
8975 | <key>Value</key> | 9494 | <key>Value</key> |
8976 | <string>041ee5a0-cb6a-9ac5-6e49-41e9320507d5</string> | 9495 | <string>041ee5a0-cb6a-9ac5-6e49-41e9320507d5</string> |
8977 | </map> | 9496 | </map> |
8978 | <key>VoiceImageLevel1</key> | 9497 | <key>VoiceImageLevel1</key> |
8979 | <map> | 9498 | <map> |
8980 | <key>Comment</key> | 9499 | <key>Comment</key> |
8981 | <string>Texture UUID for voice image level 1</string> | 9500 | <string>Texture UUID for voice image level 1</string> |
8982 | <key>Persist</key> | 9501 | <key>Persist</key> |
8983 | <integer>1</integer> | 9502 | <integer>1</integer> |
8984 | <key>Type</key> | 9503 | <key>Type</key> |
8985 | <string>String</string> | 9504 | <string>String</string> |
8986 | <key>Value</key> | 9505 | <key>Value</key> |
8987 | <string>29de489d-0491-fb00-7dab-f9e686d31e83</string> | 9506 | <string>29de489d-0491-fb00-7dab-f9e686d31e83</string> |
8988 | </map> | 9507 | </map> |
8989 | <key>VoiceImageLevel2</key> | 9508 | <key>VoiceImageLevel2</key> |
8990 | <map> | 9509 | <map> |
8991 | <key>Comment</key> | 9510 | <key>Comment</key> |
8992 | <string>Texture UUID for voice image level 2</string> | 9511 | <string>Texture UUID for voice image level 2</string> |
8993 | <key>Persist</key> | 9512 | <key>Persist</key> |
8994 | <integer>1</integer> | 9513 | <integer>1</integer> |
8995 | <key>Type</key> | 9514 | <key>Type</key> |
8996 | <string>String</string> | 9515 | <string>String</string> |
8997 | <key>Value</key> | 9516 | <key>Value</key> |
8998 | <string>29de489d-0491-fb00-7dab-f9e686d31e83</string> | 9517 | <string>29de489d-0491-fb00-7dab-f9e686d31e83</string> |
8999 | </map> | 9518 | </map> |
9000 | <key>VoiceImageLevel3</key> | 9519 | <key>VoiceImageLevel3</key> |
9001 | <map> | 9520 | <map> |
9002 | <key>Comment</key> | 9521 | <key>Comment</key> |
9003 | <string>Texture UUID for voice image level 3</string> | 9522 | <string>Texture UUID for voice image level 3</string> |
9004 | <key>Persist</key> | 9523 | <key>Persist</key> |
9005 | <integer>1</integer> | 9524 | <integer>1</integer> |
9006 | <key>Type</key> | 9525 | <key>Type</key> |
9007 | <string>String</string> | 9526 | <string>String</string> |
9008 | <key>Value</key> | 9527 | <key>Value</key> |
9009 | <string>29de489d-0491-fb00-7dab-f9e686d31e83</string> | 9528 | <string>29de489d-0491-fb00-7dab-f9e686d31e83</string> |
9010 | </map> | 9529 | </map> |
9011 | <key>VoiceImageLevel4</key> | 9530 | <key>VoiceImageLevel4</key> |
9012 | <map> | 9531 | <map> |
9013 | <key>Comment</key> | 9532 | <key>Comment</key> |
9014 | <string>Texture UUID for voice image level 4</string> | 9533 | <string>Texture UUID for voice image level 4</string> |
9015 | <key>Persist</key> | 9534 | <key>Persist</key> |
9016 | <integer>1</integer> | 9535 | <integer>1</integer> |
9017 | <key>Type</key> | 9536 | <key>Type</key> |
9018 | <string>String</string> | 9537 | <string>String</string> |
9019 | <key>Value</key> | 9538 | <key>Value</key> |
9020 | <string>29de489d-0491-fb00-7dab-f9e686d31e83</string> | 9539 | <string>29de489d-0491-fb00-7dab-f9e686d31e83</string> |
9021 | </map> | 9540 | </map> |
9022 | <key>VoiceImageLevel5</key> | 9541 | <key>VoiceImageLevel5</key> |
9023 | <map> | 9542 | <map> |
9024 | <key>Comment</key> | 9543 | <key>Comment</key> |
9025 | <string>Texture UUID for voice image level 5</string> | 9544 | <string>Texture UUID for voice image level 5</string> |
9026 | <key>Persist</key> | 9545 | <key>Persist</key> |
9027 | <integer>1</integer> | 9546 | <integer>1</integer> |
9028 | <key>Type</key> | 9547 | <key>Type</key> |
9029 | <string>String</string> | 9548 | <string>String</string> |
9030 | <key>Value</key> | 9549 | <key>Value</key> |
9031 | <string>29de489d-0491-fb00-7dab-f9e686d31e83</string> | 9550 | <string>29de489d-0491-fb00-7dab-f9e686d31e83</string> |
9032 | </map> | 9551 | </map> |
9033 | <key>VoiceImageLevel6</key> | 9552 | <key>VoiceImageLevel6</key> |
9034 | <map> | 9553 | <map> |
9035 | <key>Comment</key> | 9554 | <key>Comment</key> |
9036 | <string>Texture UUID for voice image level 6</string> | 9555 | <string>Texture UUID for voice image level 6</string> |
9037 | <key>Persist</key> | 9556 | <key>Persist</key> |
9038 | <integer>1</integer> | 9557 | <integer>1</integer> |
9039 | <key>Type</key> | 9558 | <key>Type</key> |
9040 | <string>String</string> | 9559 | <string>String</string> |
9041 | <key>Value</key> | 9560 | <key>Value</key> |
9042 | <string>29de489d-0491-fb00-7dab-f9e686d31e83</string> | 9561 | <string>29de489d-0491-fb00-7dab-f9e686d31e83</string> |
9043 | </map> | 9562 | </map> |
9044 | <key>VoiceInputAudioDevice</key> | 9563 | <key>VoiceInputAudioDevice</key> |
9045 | <map> | 9564 | <map> |
9046 | <key>Comment</key> | 9565 | <key>Comment</key> |
9047 | <string>Audio input device to use for voice</string> | 9566 | <string>Audio input device to use for voice</string> |
9048 | <key>Persist</key> | 9567 | <key>Persist</key> |
9049 | <integer>1</integer> | 9568 | <integer>1</integer> |
9050 | <key>Type</key> | 9569 | <key>Type</key> |
9051 | <string>String</string> | 9570 | <string>String</string> |
9052 | <key>Value</key> | 9571 | <key>Value</key> |
9053 | <string>Default</string> | 9572 | <string>Default</string> |
9054 | </map> | 9573 | </map> |
9055 | <key>VoiceOutputAudioDevice</key> | 9574 | <key>VoiceOutputAudioDevice</key> |
9056 | <map> | 9575 | <map> |
9057 | <key>Comment</key> | 9576 | <key>Comment</key> |
9058 | <string>Audio output device to use for voice</string> | 9577 | <string>Audio output device to use for voice</string> |
9059 | <key>Persist</key> | 9578 | <key>Persist</key> |
9060 | <integer>1</integer> | 9579 | <integer>1</integer> |
9061 | <key>Type</key> | 9580 | <key>Type</key> |
9062 | <string>String</string> | 9581 | <string>String</string> |
9063 | <key>Value</key> | 9582 | <key>Value</key> |
9064 | <string>Default</string> | 9583 | <string>Default</string> |
9065 | </map> | 9584 | </map> |
9066 | <key>VoicePort</key> | 9585 | <key>VoicePort</key> |
9067 | <map> | 9586 | <map> |
9068 | <key>Comment</key> | 9587 | <key>Comment</key> |
9069 | <string>Client SLVoice port to connect to</string> | 9588 | <string>Client SLVoice port to connect to</string> |
9070 | <key>Persist</key> | 9589 | <key>Persist</key> |
9071 | <integer>1</integer> | 9590 | <integer>1</integer> |
9072 | <key>Type</key> | 9591 | <key>Type</key> |
9073 | <string>U32</string> | 9592 | <string>U32</string> |
9074 | <key>Value</key> | 9593 | <key>Value</key> |
9075 | <integer>44124</integer> | 9594 | <integer>44124</integer> |
9076 | </map> | 9595 | </map> |
9596 | <key>WLSkyDetail</key> | ||
9597 | <map> | ||
9598 | <key>Comment</key> | ||
9599 | <string>Controls vertex detail on the WindLight sky. Lower numbers will give better performance and uglier skies.</string> | ||
9600 | <key>Persist</key> | ||
9601 | <integer>1</integer> | ||
9602 | <key>Type</key> | ||
9603 | <string>U32</string> | ||
9604 | <key>Value</key> | ||
9605 | <integer>64</integer> | ||
9606 | </map> | ||
9077 | <key>WarnAboutBadPCI</key> | 9607 | <key>WarnAboutBadPCI</key> |
9078 | <map> | 9608 | <map> |
9079 | <key>Comment</key> | 9609 | <key>Comment</key> |
9080 | <string>Enables AboutBadPCI warning dialog</string> | 9610 | <string>Enables AboutBadPCI warning dialog</string> |
9081 | <key>Persist</key> | 9611 | <key>Persist</key> |
9082 | <integer>1</integer> | 9612 | <integer>1</integer> |
9083 | <key>Type</key> | 9613 | <key>Type</key> |
9084 | <string>Boolean</string> | 9614 | <string>Boolean</string> |
9085 | <key>Value</key> | 9615 | <key>Value</key> |
9086 | <integer>1</integer> | 9616 | <integer>1</integer> |
9087 | </map> | 9617 | </map> |
9088 | <key>WarnAboutDirectX9</key> | 9618 | <key>WarnAboutDirectX9</key> |
9089 | <map> | 9619 | <map> |
9090 | <key>Comment</key> | 9620 | <key>Comment</key> |
9091 | <string>Enables AboutDirectX9 warning dialog</string> | 9621 | <string>Enables AboutDirectX9 warning dialog</string> |
9092 | <key>Persist</key> | 9622 | <key>Persist</key> |
9093 | <integer>1</integer> | 9623 | <integer>1</integer> |
9094 | <key>Type</key> | 9624 | <key>Type</key> |
9095 | <string>Boolean</string> | 9625 | <string>Boolean</string> |
9096 | <key>Value</key> | 9626 | <key>Value</key> |
9097 | <integer>1</integer> | 9627 | <integer>1</integer> |
9098 | </map> | 9628 | </map> |
9099 | <key>WarnAboutOldGraphicsDriver</key> | 9629 | <key>WarnAboutOldGraphicsDriver</key> |
9100 | <map> | 9630 | <map> |
9101 | <key>Comment</key> | 9631 | <key>Comment</key> |
9102 | <string>Enables AboutOldGraphicsDriver warning dialog</string> | 9632 | <string>Enables AboutOldGraphicsDriver warning dialog</string> |
9103 | <key>Persist</key> | 9633 | <key>Persist</key> |
9104 | <integer>1</integer> | 9634 | <integer>1</integer> |
9105 | <key>Type</key> | 9635 | <key>Type</key> |
9106 | <string>Boolean</string> | 9636 | <string>Boolean</string> |
9107 | <key>Value</key> | 9637 | <key>Value</key> |
9108 | <integer>1</integer> | 9638 | <integer>1</integer> |
9109 | </map> | 9639 | </map> |
9110 | <key>WarnAboutPCIGraphics</key> | 9640 | <key>WarnAboutPCIGraphics</key> |
9111 | <map> | 9641 | <map> |
9112 | <key>Comment</key> | 9642 | <key>Comment</key> |
9113 | <string>Enables AboutPCIGraphics warning dialog</string> | 9643 | <string>Enables AboutPCIGraphics warning dialog</string> |
9114 | <key>Persist</key> | 9644 | <key>Persist</key> |
9115 | <integer>1</integer> | 9645 | <integer>1</integer> |
9116 | <key>Type</key> | 9646 | <key>Type</key> |
9117 | <string>Boolean</string> | 9647 | <string>Boolean</string> |
9118 | <key>Value</key> | 9648 | <key>Value</key> |
9119 | <integer>1</integer> | 9649 | <integer>1</integer> |
9120 | </map> | 9650 | </map> |
9121 | <key>WarnBrowserLaunch</key> | 9651 | <key>WarnBrowserLaunch</key> |
9122 | <map> | 9652 | <map> |
9123 | <key>Comment</key> | 9653 | <key>Comment</key> |
9124 | <string>Enables BrowserLaunch warning dialog</string> | 9654 | <string>Enables BrowserLaunch warning dialog</string> |
9125 | <key>Persist</key> | 9655 | <key>Persist</key> |
9126 | <integer>1</integer> | 9656 | <integer>1</integer> |
9127 | <key>Type</key> | 9657 | <key>Type</key> |
9128 | <string>Boolean</string> | 9658 | <string>Boolean</string> |
9129 | <key>Value</key> | 9659 | <key>Value</key> |
9130 | <integer>1</integer> | 9660 | <integer>1</integer> |
9131 | </map> | 9661 | </map> |
9132 | <key>WarnDeedObject</key> | 9662 | <key>WarnDeedObject</key> |
9133 | <map> | 9663 | <map> |
9134 | <key>Comment</key> | 9664 | <key>Comment</key> |
9135 | <string>Enables DeedObject warning dialog</string> | 9665 | <string>Enables DeedObject warning dialog</string> |
9136 | <key>Persist</key> | 9666 | <key>Persist</key> |
9137 | <integer>1</integer> | 9667 | <integer>1</integer> |
9138 | <key>Type</key> | 9668 | <key>Type</key> |
9139 | <string>Boolean</string> | 9669 | <string>Boolean</string> |
9140 | <key>Value</key> | 9670 | <key>Value</key> |
9141 | <integer>1</integer> | 9671 | <integer>1</integer> |
9142 | </map> | 9672 | </map> |
9143 | <key>WarnFirstAppearance</key> | 9673 | <key>WarnFirstAppearance</key> |
9144 | <map> | 9674 | <map> |
9145 | <key>Comment</key> | 9675 | <key>Comment</key> |
9146 | <string>Enables FirstAppearance warning dialog</string> | 9676 | <string>Enables FirstAppearance warning dialog</string> |
9147 | <key>Persist</key> | 9677 | <key>Persist</key> |
9148 | <integer>1</integer> | 9678 | <integer>1</integer> |
9149 | <key>Type</key> | 9679 | <key>Type</key> |
9150 | <string>Boolean</string> | 9680 | <string>Boolean</string> |
9151 | <key>Value</key> | 9681 | <key>Value</key> |
9152 | <integer>1</integer> | 9682 | <integer>1</integer> |
9153 | </map> | 9683 | </map> |
9154 | <key>WarnFirstMedia</key> | ||
9155 | <map> | ||
9156 | <key>Comment</key> | ||
9157 | <string>Enables FirstMedia warning dialog</string> | ||
9158 | <key>Persist</key> | ||
9159 | <integer>1</integer> | ||
9160 | <key>Type</key> | ||
9161 | <string>Boolean</string> | ||
9162 | <key>Value</key> | ||
9163 | <integer>1</integer> | ||
9164 | </map> | ||
9165 | <key>WarnFirstAttach</key> | 9684 | <key>WarnFirstAttach</key> |
9166 | <map> | 9685 | <map> |
9167 | <key>Comment</key> | 9686 | <key>Comment</key> |
9168 | <string>Enables FirstAttach warning dialog</string> | 9687 | <string>Enables FirstAttach warning dialog</string> |
9169 | <key>Persist</key> | 9688 | <key>Persist</key> |
9170 | <integer>1</integer> | 9689 | <integer>1</integer> |
9171 | <key>Type</key> | 9690 | <key>Type</key> |
9172 | <string>Boolean</string> | 9691 | <string>Boolean</string> |
9173 | <key>Value</key> | 9692 | <key>Value</key> |
9174 | <integer>1</integer> | 9693 | <integer>1</integer> |
9175 | </map> | 9694 | </map> |
9176 | <key>WarnFirstBalanceDecrease</key> | 9695 | <key>WarnFirstBalanceDecrease</key> |
9177 | <map> | 9696 | <map> |
9178 | <key>Comment</key> | 9697 | <key>Comment</key> |
9179 | <string>Enables FirstBalanceDecrease warning dialog</string> | 9698 | <string>Enables FirstBalanceDecrease warning dialog</string> |
9180 | <key>Persist</key> | 9699 | <key>Persist</key> |
9181 | <integer>1</integer> | 9700 | <integer>1</integer> |
9182 | <key>Type</key> | 9701 | <key>Type</key> |
9183 | <string>Boolean</string> | 9702 | <string>Boolean</string> |
9184 | <key>Value</key> | 9703 | <key>Value</key> |
9185 | <integer>1</integer> | 9704 | <integer>1</integer> |
9186 | </map> | 9705 | </map> |
9187 | <key>WarnFirstBalanceIncrease</key> | 9706 | <key>WarnFirstBalanceIncrease</key> |
9188 | <map> | 9707 | <map> |
9189 | <key>Comment</key> | 9708 | <key>Comment</key> |
9190 | <string>Enables FirstBalanceIncrease warning dialog</string> | 9709 | <string>Enables FirstBalanceIncrease warning dialog</string> |
9191 | <key>Persist</key> | 9710 | <key>Persist</key> |
9192 | <integer>1</integer> | 9711 | <integer>1</integer> |
9193 | <key>Type</key> | 9712 | <key>Type</key> |
9194 | <string>Boolean</string> | 9713 | <string>Boolean</string> |
9195 | <key>Value</key> | 9714 | <key>Value</key> |
9196 | <integer>1</integer> | 9715 | <integer>1</integer> |
9197 | </map> | 9716 | </map> |
9198 | <key>WarnFirstBuild</key> | 9717 | <key>WarnFirstBuild</key> |
9199 | <map> | 9718 | <map> |
9200 | <key>Comment</key> | 9719 | <key>Comment</key> |
9201 | <string>Enables FirstBuild warning dialog</string> | 9720 | <string>Enables FirstBuild warning dialog</string> |
9202 | <key>Persist</key> | 9721 | <key>Persist</key> |
9203 | <integer>1</integer> | 9722 | <integer>1</integer> |
9204 | <key>Type</key> | 9723 | <key>Type</key> |
9205 | <string>Boolean</string> | 9724 | <string>Boolean</string> |
9206 | <key>Value</key> | 9725 | <key>Value</key> |
9207 | <integer>1</integer> | 9726 | <integer>1</integer> |
9208 | </map> | 9727 | </map> |
9209 | <key>WarnFirstDebugMenus</key> | 9728 | <key>WarnFirstDebugMenus</key> |
9210 | <map> | 9729 | <map> |
9211 | <key>Comment</key> | 9730 | <key>Comment</key> |
9212 | <string>Enables FirstDebugMenus warning dialog</string> | 9731 | <string>Enables FirstDebugMenus warning dialog</string> |
9213 | <key>Persist</key> | 9732 | <key>Persist</key> |
9214 | <integer>1</integer> | 9733 | <integer>1</integer> |
9215 | <key>Type</key> | 9734 | <key>Type</key> |
9216 | <string>Boolean</string> | 9735 | <string>Boolean</string> |
9217 | <key>Value</key> | 9736 | <key>Value</key> |
9218 | <integer>1</integer> | 9737 | <integer>1</integer> |
9219 | </map> | 9738 | </map> |
9220 | <key>WarnFirstFlexible</key> | 9739 | <key>WarnFirstFlexible</key> |
9221 | <map> | 9740 | <map> |
9222 | <key>Comment</key> | 9741 | <key>Comment</key> |
9223 | <string>Enables FirstFlexible warning dialog</string> | 9742 | <string>Enables FirstFlexible warning dialog</string> |
9224 | <key>Persist</key> | 9743 | <key>Persist</key> |
9225 | <integer>1</integer> | 9744 | <integer>1</integer> |
9226 | <key>Type</key> | 9745 | <key>Type</key> |
9227 | <string>Boolean</string> | 9746 | <string>Boolean</string> |
9228 | <key>Value</key> | 9747 | <key>Value</key> |
9229 | <integer>1</integer> | 9748 | <integer>1</integer> |
9230 | </map> | 9749 | </map> |
9231 | <key>WarnFirstGoTo</key> | 9750 | <key>WarnFirstGoTo</key> |
9232 | <map> | 9751 | <map> |
9233 | <key>Comment</key> | 9752 | <key>Comment</key> |
9234 | <string>Enables FirstGoTo warning dialog</string> | 9753 | <string>Enables FirstGoTo warning dialog</string> |
9235 | <key>Persist</key> | 9754 | <key>Persist</key> |
9236 | <integer>1</integer> | 9755 | <integer>1</integer> |
9237 | <key>Type</key> | 9756 | <key>Type</key> |
9238 | <string>Boolean</string> | 9757 | <string>Boolean</string> |
9239 | <key>Value</key> | 9758 | <key>Value</key> |
9240 | <integer>1</integer> | 9759 | <integer>1</integer> |
9241 | </map> | 9760 | </map> |
9242 | <key>WarnFirstInventory</key> | 9761 | <key>WarnFirstInventory</key> |
9243 | <map> | 9762 | <map> |
9244 | <key>Comment</key> | 9763 | <key>Comment</key> |
9245 | <string>Enables FirstInventory warning dialog</string> | 9764 | <string>Enables FirstInventory warning dialog</string> |
9246 | <key>Persist</key> | 9765 | <key>Persist</key> |
9247 | <integer>1</integer> | 9766 | <integer>1</integer> |
9248 | <key>Type</key> | 9767 | <key>Type</key> |
9249 | <string>Boolean</string> | 9768 | <string>Boolean</string> |
9250 | <key>Value</key> | 9769 | <key>Value</key> |
9251 | <integer>1</integer> | 9770 | <integer>1</integer> |
9252 | </map> | 9771 | </map> |
9253 | <key>WarnFirstLeftClickNoHit</key> | 9772 | <key>WarnFirstLeftClickNoHit</key> |
9254 | <map> | 9773 | <map> |
9255 | <key>Comment</key> | 9774 | <key>Comment</key> |
9256 | <string>Enables FirstLeftClickNoHit warning dialog</string> | 9775 | <string>Enables FirstLeftClickNoHit warning dialog</string> |
9257 | <key>Persist</key> | 9776 | <key>Persist</key> |
9258 | <integer>1</integer> | 9777 | <integer>1</integer> |
9259 | <key>Type</key> | 9778 | <key>Type</key> |
9260 | <string>Boolean</string> | 9779 | <string>Boolean</string> |
9261 | <key>Value</key> | 9780 | <key>Value</key> |
9262 | <integer>1</integer> | 9781 | <integer>1</integer> |
9263 | </map> | 9782 | </map> |
9264 | <key>WarnFirstMap</key> | 9783 | <key>WarnFirstMap</key> |
9265 | <map> | 9784 | <map> |
9266 | <key>Comment</key> | 9785 | <key>Comment</key> |
9267 | <string>Enables FirstMap warning dialog</string> | 9786 | <string>Enables FirstMap warning dialog</string> |
9268 | <key>Persist</key> | 9787 | <key>Persist</key> |
9269 | <integer>1</integer> | 9788 | <integer>1</integer> |
9270 | <key>Type</key> | 9789 | <key>Type</key> |
9271 | <string>Boolean</string> | 9790 | <string>Boolean</string> |
9272 | <key>Value</key> | 9791 | <key>Value</key> |
9273 | <integer>1</integer> | 9792 | <integer>1</integer> |
9274 | </map> | 9793 | </map> |
9275 | <key>WarnFirstMedia</key> | 9794 | <key>WarnFirstMedia</key> |
9276 | <map> | 9795 | <map> |
9277 | <key>Comment</key> | 9796 | <key>Comment</key> |
9278 | <string>Enables FirstMedia warning dialog</string> | 9797 | <string>Enables FirstMedia warning dialog</string> |
9279 | <key>Persist</key> | 9798 | <key>Persist</key> |
9280 | <integer>1</integer> | 9799 | <integer>1</integer> |
9281 | <key>Type</key> | 9800 | <key>Type</key> |
9282 | <string>Boolean</string> | 9801 | <string>Boolean</string> |
9283 | <key>Value</key> | 9802 | <key>Value</key> |
9284 | <integer>1</integer> | 9803 | <integer>1</integer> |
9285 | </map> | 9804 | </map> |
9286 | <key>WarnFirstOverrideKeys</key> | 9805 | <key>WarnFirstOverrideKeys</key> |
9287 | <map> | 9806 | <map> |
9288 | <key>Comment</key> | 9807 | <key>Comment</key> |
9289 | <string>Enables FirstOverrideKeys warning dialog</string> | 9808 | <string>Enables FirstOverrideKeys warning dialog</string> |
9290 | <key>Persist</key> | 9809 | <key>Persist</key> |
9291 | <integer>1</integer> | 9810 | <integer>1</integer> |
9292 | <key>Type</key> | 9811 | <key>Type</key> |
9293 | <string>Boolean</string> | 9812 | <string>Boolean</string> |
9294 | <key>Value</key> | 9813 | <key>Value</key> |
9295 | <integer>1</integer> | 9814 | <integer>1</integer> |
9296 | </map> | 9815 | </map> |
9297 | <key>WarnFirstSandbox</key> | 9816 | <key>WarnFirstSandbox</key> |
9298 | <map> | 9817 | <map> |
9299 | <key>Comment</key> | 9818 | <key>Comment</key> |
9300 | <string>Enables FirstSandbox warning dialog</string> | 9819 | <string>Enables FirstSandbox warning dialog</string> |
9301 | <key>Persist</key> | 9820 | <key>Persist</key> |
9302 | <integer>1</integer> | 9821 | <integer>1</integer> |
9303 | <key>Type</key> | 9822 | <key>Type</key> |
9304 | <string>Boolean</string> | 9823 | <string>Boolean</string> |
9305 | <key>Value</key> | 9824 | <key>Value</key> |
9306 | <integer>1</integer> | 9825 | <integer>1</integer> |
9307 | </map> | 9826 | </map> |
9308 | <key>WarnFirstSculptedPrim</key> | 9827 | <key>WarnFirstSculptedPrim</key> |
9309 | <map> | 9828 | <map> |
9310 | <key>Comment</key> | 9829 | <key>Comment</key> |
9311 | <string>Enables FirstSculptedPrim warning dialog</string> | 9830 | <string>Enables FirstSculptedPrim warning dialog</string> |
9312 | <key>Persist</key> | 9831 | <key>Persist</key> |
9313 | <integer>1</integer> | 9832 | <integer>1</integer> |
9314 | <key>Type</key> | 9833 | <key>Type</key> |
9315 | <string>Boolean</string> | 9834 | <string>Boolean</string> |
9316 | <key>Value</key> | 9835 | <key>Value</key> |
9317 | <integer>1</integer> | 9836 | <integer>1</integer> |
9318 | </map> | 9837 | </map> |
9319 | <key>WarnFirstSit</key> | 9838 | <key>WarnFirstSit</key> |
9320 | <map> | 9839 | <map> |
9321 | <key>Comment</key> | 9840 | <key>Comment</key> |
9322 | <string>Enables FirstSit warning dialog</string> | 9841 | <string>Enables FirstSit warning dialog</string> |
9323 | <key>Persist</key> | 9842 | <key>Persist</key> |
9324 | <integer>1</integer> | 9843 | <integer>1</integer> |
9325 | <key>Type</key> | 9844 | <key>Type</key> |
9326 | <string>Boolean</string> | 9845 | <string>Boolean</string> |
9327 | <key>Value</key> | 9846 | <key>Value</key> |
9328 | <integer>1</integer> | 9847 | <integer>1</integer> |
9329 | </map> | 9848 | </map> |
9330 | <key>WarnFirstStreamingMusic</key> | 9849 | <key>WarnFirstStreamingMusic</key> |
9331 | <map> | 9850 | <map> |
9332 | <key>Comment</key> | 9851 | <key>Comment</key> |
9333 | <string>Enables FirstStreamingMusic warning dialog</string> | 9852 | <string>Enables FirstStreamingMusic warning dialog</string> |
9334 | <key>Persist</key> | 9853 | <key>Persist</key> |
9335 | <integer>1</integer> | 9854 | <integer>1</integer> |
9336 | <key>Type</key> | 9855 | <key>Type</key> |
9337 | <string>Boolean</string> | 9856 | <string>Boolean</string> |
9338 | <key>Value</key> | 9857 | <key>Value</key> |
9339 | <integer>1</integer> | 9858 | <integer>1</integer> |
9340 | </map> | 9859 | </map> |
9341 | <key>WarnFirstStreamingVideo</key> | 9860 | <key>WarnFirstStreamingVideo</key> |
9342 | <map> | 9861 | <map> |
9343 | <key>Comment</key> | 9862 | <key>Comment</key> |
9344 | <string>Enables FirstStreamingVideo warning dialog</string> | 9863 | <string>Enables FirstStreamingVideo warning dialog</string> |
9345 | <key>Persist</key> | 9864 | <key>Persist</key> |
9346 | <integer>1</integer> | 9865 | <integer>1</integer> |
9347 | <key>Type</key> | 9866 | <key>Type</key> |
9348 | <string>Boolean</string> | 9867 | <string>Boolean</string> |
9349 | <key>Value</key> | 9868 | <key>Value</key> |
9350 | <integer>1</integer> | 9869 | <integer>1</integer> |
9351 | </map> | 9870 | </map> |
9352 | <key>WarnFirstTeleport</key> | 9871 | <key>WarnFirstTeleport</key> |
9353 | <map> | 9872 | <map> |
9354 | <key>Comment</key> | 9873 | <key>Comment</key> |
9355 | <string>Enables FirstTeleport warning dialog</string> | 9874 | <string>Enables FirstTeleport warning dialog</string> |
9356 | <key>Persist</key> | 9875 | <key>Persist</key> |
9357 | <integer>1</integer> | 9876 | <integer>1</integer> |
9358 | <key>Type</key> | 9877 | <key>Type</key> |
9359 | <string>Boolean</string> | 9878 | <string>Boolean</string> |
9360 | <key>Value</key> | 9879 | <key>Value</key> |
9361 | <integer>1</integer> | 9880 | <integer>1</integer> |
9362 | </map> | 9881 | </map> |
9363 | <key>WarnFirstVoice</key> | 9882 | <key>WarnFirstVoice</key> |
9364 | <map> | 9883 | <map> |
9365 | <key>Comment</key> | 9884 | <key>Comment</key> |
9366 | <string>Enables FirstVoice warning dialog</string> | 9885 | <string>Enables FirstVoice warning dialog</string> |
9367 | <key>Persist</key> | 9886 | <key>Persist</key> |
9368 | <integer>1</integer> | 9887 | <integer>1</integer> |
9369 | <key>Type</key> | 9888 | <key>Type</key> |
9370 | <string>Boolean</string> | 9889 | <string>Boolean</string> |
9371 | <key>Value</key> | 9890 | <key>Value</key> |
9372 | <integer>1</integer> | 9891 | <integer>1</integer> |
9373 | </map> | 9892 | </map> |
9374 | <key>WarnNewClassified</key> | 9893 | <key>WarnNewClassified</key> |
9375 | <map> | 9894 | <map> |
9376 | <key>Comment</key> | 9895 | <key>Comment</key> |
9377 | <string>Enables NewClassified warning dialog</string> | 9896 | <string>Enables NewClassified warning dialog</string> |
9378 | <key>Persist</key> | 9897 | <key>Persist</key> |
9379 | <integer>1</integer> | 9898 | <integer>1</integer> |
9380 | <key>Type</key> | 9899 | <key>Type</key> |
9381 | <string>Boolean</string> | 9900 | <string>Boolean</string> |
9382 | <key>Value</key> | 9901 | <key>Value</key> |
9383 | <integer>1</integer> | 9902 | <integer>1</integer> |
9384 | </map> | 9903 | </map> |
9385 | <key>WarnQuickTimeInstalled</key> | 9904 | <key>WarnQuickTimeInstalled</key> |
9386 | <map> | 9905 | <map> |
9387 | <key>Comment</key> | 9906 | <key>Comment</key> |
9388 | <string>Enables QuickTimeInstalled warning dialog</string> | 9907 | <string>Enables QuickTimeInstalled warning dialog</string> |
9389 | <key>Persist</key> | 9908 | <key>Persist</key> |
9390 | <integer>1</integer> | 9909 | <integer>1</integer> |
9391 | <key>Type</key> | 9910 | <key>Type</key> |
9392 | <string>Boolean</string> | 9911 | <string>Boolean</string> |
9393 | <key>Value</key> | 9912 | <key>Value</key> |
9394 | <integer>1</integer> | 9913 | <integer>1</integer> |
9395 | </map> | 9914 | </map> |
9396 | <key>WarnReturnToOwner</key> | 9915 | <key>WarnReturnToOwner</key> |
9397 | <map> | 9916 | <map> |
9398 | <key>Comment</key> | 9917 | <key>Comment</key> |
9399 | <string>Enables ReturnToOwner warning dialog</string> | 9918 | <string>Enables ReturnToOwner warning dialog</string> |
9400 | <key>Persist</key> | 9919 | <key>Persist</key> |
9401 | <integer>1</integer> | 9920 | <integer>1</integer> |
9402 | <key>Type</key> | 9921 | <key>Type</key> |
9403 | <string>Boolean</string> | 9922 | <string>Boolean</string> |
9404 | <key>Value</key> | 9923 | <key>Value</key> |
9405 | <integer>1</integer> | 9924 | <integer>1</integer> |
9406 | </map> | 9925 | </map> |
9407 | <key>WindLightUseAtmosShaders</key> | 9926 | <key>WatchdogEnabled</key> |
9408 | <map> | 9927 | <map> |
9409 | <key>Comment</key> | 9928 | <key>Comment</key> |
9410 | <string>Whether to enable or disable WindLight atmospheric shaders.</string> | 9929 | <string>Controls whether the thread watchdog timer is activated.</string> |
9411 | <key>Persist</key> | 9930 | <key>Persist</key> |
9412 | <integer>1</integer> | 9931 | <integer>1</integer> |
9413 | <key>Type</key> | 9932 | <key>Type</key> |
9414 | <string>Boolean</string> | 9933 | <string>Boolean</string> |
9415 | <key>Value</key> | 9934 | <key>Value</key> |
9416 | <integer>1</integer> | 9935 | <integer>1</integer> |
9417 | </map> | 9936 | </map> |
9937 | <key>WaterEditPresets</key> | ||
9938 | <map> | ||
9939 | <key>Comment</key> | ||
9940 | <string>Whether to be able to edit the water defaults or not</string> | ||
9941 | <key>Persist</key> | ||
9942 | <integer>1</integer> | ||
9943 | <key>Type</key> | ||
9944 | <string>Boolean</string> | ||
9945 | <key>Value</key> | ||
9946 | <integer>0</integer> | ||
9947 | </map> | ||
9948 | <key>WaterGLFogDensityScale</key> | ||
9949 | <map> | ||
9950 | <key>Comment</key> | ||
9951 | <string>Maps shader water fog density to gl fog density</string> | ||
9952 | <key>Persist</key> | ||
9953 | <integer>1</integer> | ||
9954 | <key>Type</key> | ||
9955 | <string>F32</string> | ||
9956 | <key>Value</key> | ||
9957 | <real>0.02</real> | ||
9958 | </map> | ||
9959 | <key>WaterGLFogDepthFloor</key> | ||
9960 | <map> | ||
9961 | <key>Comment</key> | ||
9962 | <string>Controls how dark water gl fog can get</string> | ||
9963 | <key>Persist</key> | ||
9964 | <integer>1</integer> | ||
9965 | <key>Type</key> | ||
9966 | <string>F32</string> | ||
9967 | <key>Value</key> | ||
9968 | <real>0.25</real> | ||
9969 | </map> | ||
9970 | <key>WaterGLFogDepthScale</key> | ||
9971 | <map> | ||
9972 | <key>Comment</key> | ||
9973 | <string>Controls how quickly gl fog gets dark under water</string> | ||
9974 | <key>Persist</key> | ||
9975 | <integer>1</integer> | ||
9976 | <key>Type</key> | ||
9977 | <string>F32</string> | ||
9978 | <key>Value</key> | ||
9979 | <real>50.0</real> | ||
9980 | </map> | ||
9981 | <key>WindLightUseAtmosShaders</key> | ||
9982 | <map> | ||
9983 | <key>Comment</key> | ||
9984 | <string>Whether to enable or disable WindLight atmospheric shaders.</string> | ||
9985 | <key>Persist</key> | ||
9986 | <integer>1</integer> | ||
9987 | <key>Type</key> | ||
9988 | <string>Boolean</string> | ||
9989 | <key>Value</key> | ||
9990 | <integer>1</integer> | ||
9991 | </map> | ||
9418 | <key>WindowHeight</key> | 9992 | <key>WindowHeight</key> |
9419 | <map> | 9993 | <map> |
9420 | <key>Comment</key> | 9994 | <key>Comment</key> |
9421 | <string>SL viewer window height</string> | 9995 | <string>SL viewer window height</string> |
9422 | <key>Persist</key> | 9996 | <key>Persist</key> |
9423 | <integer>1</integer> | 9997 | <integer>1</integer> |
9424 | <key>Type</key> | 9998 | <key>Type</key> |
9425 | <string>S32</string> | 9999 | <string>S32</string> |
9426 | <key>Value</key> | 10000 | <key>Value</key> |
9427 | <integer>700</integer> | 10001 | <integer>700</integer> |
9428 | </map> | 10002 | </map> |
9429 | <key>WindowMaximized</key> | 10003 | <key>WindowMaximized</key> |
9430 | <map> | 10004 | <map> |
9431 | <key>Comment</key> | 10005 | <key>Comment</key> |
9432 | <string>SL viewer window maximized on login</string> | 10006 | <string>SL viewer window maximized on login</string> |
9433 | <key>Persist</key> | 10007 | <key>Persist</key> |
9434 | <integer>1</integer> | 10008 | <integer>1</integer> |
9435 | <key>Type</key> | 10009 | <key>Type</key> |
9436 | <string>Boolean</string> | 10010 | <string>Boolean</string> |
9437 | <key>Value</key> | 10011 | <key>Value</key> |
9438 | <integer>1</integer> | 10012 | <integer>1</integer> |
9439 | </map> | 10013 | </map> |
9440 | <key>WindowWidth</key> | 10014 | <key>WindowWidth</key> |
9441 | <map> | 10015 | <map> |
9442 | <key>Comment</key> | 10016 | <key>Comment</key> |
9443 | <string>SL viewer window width</string> | 10017 | <string>SL viewer window width</string> |
9444 | <key>Persist</key> | 10018 | <key>Persist</key> |
9445 | <integer>1</integer> | 10019 | <integer>1</integer> |
9446 | <key>Type</key> | 10020 | <key>Type</key> |
9447 | <string>S32</string> | 10021 | <string>S32</string> |
9448 | <key>Value</key> | 10022 | <key>Value</key> |
9449 | <integer>1000</integer> | 10023 | <integer>1000</integer> |
9450 | </map> | 10024 | </map> |
9451 | <key>WindowX</key> | 10025 | <key>WindowX</key> |
9452 | <map> | 10026 | <map> |
9453 | <key>Comment</key> | 10027 | <key>Comment</key> |
9454 | <string>X coordinate of lower left corner of SL viewer window, relative to primary display (pixels)</string> | 10028 | <string>X coordinate of lower left corner of SL viewer window, relative to primary display (pixels)</string> |
9455 | <key>Persist</key> | 10029 | <key>Persist</key> |
9456 | <integer>1</integer> | 10030 | <integer>1</integer> |
9457 | <key>Type</key> | 10031 | <key>Type</key> |
9458 | <string>S32</string> | 10032 | <string>S32</string> |
9459 | <key>Value</key> | 10033 | <key>Value</key> |
9460 | <integer>10</integer> | 10034 | <integer>10</integer> |
9461 | </map> | 10035 | </map> |
9462 | <key>WindowY</key> | 10036 | <key>WindowY</key> |
9463 | <map> | 10037 | <map> |
9464 | <key>Comment</key> | 10038 | <key>Comment</key> |
9465 | <string>Y coordinate of lower left corner of SL viewer window, relative to primary display (pixels)</string> | 10039 | <string>Y coordinate of lower left corner of SL viewer window, relative to primary display (pixels)</string> |
9466 | <key>Persist</key> | 10040 | <key>Persist</key> |
9467 | <integer>1</integer> | 10041 | <integer>1</integer> |
9468 | <key>Type</key> | 10042 | <key>Type</key> |
9469 | <string>S32</string> | 10043 | <string>S32</string> |
9470 | <key>Value</key> | 10044 | <key>Value</key> |
9471 | <integer>10</integer> | 10045 | <integer>10</integer> |
9472 | </map> | 10046 | </map> |
9473 | <key>WLSkyDetail</key> | ||
9474 | <map> | ||
9475 | <key>Comment</key> | ||
9476 | <string>Controls vertex detail on the WindLight sky. Lower numbers will give better performance and uglier skies.</string> | ||
9477 | <key>Persist</key> | ||
9478 | <integer>1</integer> | ||
9479 | <key>Type</key> | ||
9480 | <string>U32</string> | ||
9481 | <key>Value</key> | ||
9482 | <integer>64</integer> | ||
9483 | </map> | ||
9484 | <key>XferThrottle</key> | 10047 | <key>XferThrottle</key> |
9485 | <map> | 10048 | <map> |
9486 | <key>Comment</key> | 10049 | <key>Comment</key> |
9487 | <string>Maximum allowable downstream bandwidth for asset transfers (bits per second)</string> | 10050 | <string>Maximum allowable downstream bandwidth for asset transfers (bits per second)</string> |
9488 | <key>Persist</key> | 10051 | <key>Persist</key> |
9489 | <integer>1</integer> | 10052 | <integer>1</integer> |
9490 | <key>Type</key> | 10053 | <key>Type</key> |
9491 | <string>F32</string> | 10054 | <string>F32</string> |
9492 | <key>Value</key> | 10055 | <key>Value</key> |
9493 | <real>150000</real> | 10056 | <real>150000.0</real> |
9494 | </map> | 10057 | </map> |
9495 | <key>YawFromMousePosition</key> | 10058 | <key>YawFromMousePosition</key> |
9496 | <map> | 10059 | <map> |
9497 | <key>Comment</key> | 10060 | <key>Comment</key> |
9498 | <string>Horizontal range over which avatar head tracks mouse position (degrees of head rotation from left of window to right)</string> | 10061 | <string>Horizontal range over which avatar head tracks mouse position (degrees of head rotation from left of window to right)</string> |
9499 | <key>Persist</key> | 10062 | <key>Persist</key> |
9500 | <integer>1</integer> | 10063 | <integer>1</integer> |
9501 | <key>Type</key> | 10064 | <key>Type</key> |
9502 | <string>F32</string> | 10065 | <string>F32</string> |
9503 | <key>Value</key> | 10066 | <key>Value</key> |
9504 | <real>90</real> | 10067 | <real>90.0</real> |
9505 | </map> | 10068 | </map> |
9506 | <key>YieldTime</key> | 10069 | <key>YieldTime</key> |
9507 | <map> | 10070 | <map> |
9508 | <key>Comment</key> | 10071 | <key>Comment</key> |
9509 | <string>Yield some time to the local host.</string> | 10072 | <string>Yield some time to the local host.</string> |
9510 | <key>Persist</key> | 10073 | <key>Persist</key> |
9511 | <integer>1</integer> | 10074 | <integer>1</integer> |
9512 | <key>Type</key> | 10075 | <key>Type</key> |
9513 | <string>S32</string> | 10076 | <string>S32</string> |
9514 | <key>Value</key> | 10077 | <key>Value</key> |
9515 | <integer>-1</integer> | 10078 | <integer>-1</integer> |
9516 | </map> | 10079 | </map> |
10080 | <key>ZoomDirect</key> | ||
10081 | <map> | ||
10082 | <key>Comment</key> | ||
10083 | <string>Map Joystick zoom axis directly to camera zoom.</string> | ||
10084 | <key>Persist</key> | ||
10085 | <integer>1</integer> | ||
10086 | <key>Type</key> | ||
10087 | <string>Boolean</string> | ||
10088 | <key>Value</key> | ||
10089 | <integer>0</integer> | ||
10090 | </map> | ||
9517 | <key>ZoomTime</key> | 10091 | <key>ZoomTime</key> |
9518 | <map> | 10092 | <map> |
9519 | <key>Comment</key> | 10093 | <key>Comment</key> |
9520 | <string>Time of transition between different camera modes (seconds)</string> | 10094 | <string>Time of transition between different camera modes (seconds)</string> |
9521 | <key>Persist</key> | 10095 | <key>Persist</key> |
9522 | <integer>1</integer> | 10096 | <integer>1</integer> |
9523 | <key>Type</key> | 10097 | <key>Type</key> |
9524 | <string>F32</string> | 10098 | <string>F32</string> |
9525 | <key>Value</key> | 10099 | <key>Value</key> |
9526 | <real>0.4000000059604644775390625</real> | 10100 | <real>0.40000000596</real> |
9527 | </map> | 10101 | </map> |
9528 | <key>llOwnerSayChatColor</key> | 10102 | <key>llOwnerSayChatColor</key> |
9529 | <map> | 10103 | <map> |
9530 | <key>Comment</key> | 10104 | <key>Comment</key> |
9531 | <string>Color of chat messages from objects only visible to the owner</string> | 10105 | <string>Color of chat messages from objects only visible to the owner</string> |
9532 | <key>Persist</key> | 10106 | <key>Persist</key> |
9533 | <integer>1</integer> | 10107 | <integer>1</integer> |
9534 | <key>Type</key> | 10108 | <key>Type</key> |
9535 | <string>Color4</string> | 10109 | <string>Color4</string> |
9536 | <key>Value</key> | 10110 | <key>Value</key> |
9537 | <array> | 10111 | <array> |
9538 | <real>0.9900000095367431640625</real> | 10112 | <real>0.990000009537</real> |
9539 | <real>0.9900000095367431640625</real> | 10113 | <real>0.990000009537</real> |
9540 | <real>0.689999997615814208984375</real> | 10114 | <real>0.689999997616</real> |
9541 | <real>1</real> | 10115 | <real>1.0</real> |
9542 | </array> | 10116 | </array> |
9543 | </map> | 10117 | </map> |
9544 | <key>ParcelMediaAutoPlayEnable</key> | ||
9545 | <map> | ||
9546 | <key>Comment</key> | ||
9547 | <string>Auto play parcel media when available</string> | ||
9548 | <key>Persist</key> | ||
9549 | <integer>1</integer> | ||
9550 | <key>Type</key> | ||
9551 | <string>Boolean</string> | ||
9552 | <key>Value</key> | ||
9553 | <integer>0</integer> | ||
9554 | </map> | ||
9555 | <key>particlesbeacon</key> | 10118 | <key>particlesbeacon</key> |
9556 | <map> | 10119 | <map> |
9557 | <key>Comment</key> | 10120 | <key>Comment</key> |
9558 | <string>Beacon / Highlight particle generators</string> | 10121 | <string>Beacon / Highlight particle generators</string> |
9559 | <key>Persist</key> | 10122 | <key>Persist</key> |
9560 | <integer>1</integer> | 10123 | <integer>1</integer> |
9561 | <key>Type</key> | 10124 | <key>Type</key> |
9562 | <string>Boolean</string> | 10125 | <string>Boolean</string> |
9563 | <key>Value</key> | 10126 | <key>Value</key> |
9564 | <integer>0</integer> | 10127 | <integer>0</integer> |
9565 | </map> | 10128 | </map> |
9566 | <key>physicalbeacon</key> | 10129 | <key>physicalbeacon</key> |
9567 | <map> | 10130 | <map> |
9568 | <key>Comment</key> | 10131 | <key>Comment</key> |
9569 | <string>Beacon / Highlight physical objects</string> | 10132 | <string>Beacon / Highlight physical objects</string> |
9570 | <key>Persist</key> | 10133 | <key>Persist</key> |
9571 | <integer>1</integer> | 10134 | <integer>1</integer> |
9572 | <key>Type</key> | 10135 | <key>Type</key> |
9573 | <string>Boolean</string> | 10136 | <string>Boolean</string> |
9574 | <key>Value</key> | 10137 | <key>Value</key> |
9575 | <integer>1</integer> | 10138 | <integer>1</integer> |
9576 | </map> | 10139 | </map> |
9577 | <key>renderbeacons</key> | 10140 | <key>renderbeacons</key> |
9578 | <map> | 10141 | <map> |
9579 | <key>Comment</key> | 10142 | <key>Comment</key> |
9580 | <string>Beacon / Highlight particle generators</string> | 10143 | <string>Beacon / Highlight particle generators</string> |
9581 | <key>Persist</key> | 10144 | <key>Persist</key> |
9582 | <integer>1</integer> | 10145 | <integer>1</integer> |
9583 | <key>Type</key> | 10146 | <key>Type</key> |
9584 | <string>Boolean</string> | 10147 | <string>Boolean</string> |
9585 | <key>Value</key> | 10148 | <key>Value</key> |
9586 | <integer>0</integer> | 10149 | <integer>0</integer> |
9587 | </map> | 10150 | </map> |
9588 | <key>renderhighlights</key> | 10151 | <key>renderhighlights</key> |
9589 | <map> | 10152 | <map> |
9590 | <key>Comment</key> | 10153 | <key>Comment</key> |
9591 | <string>Beacon / Highlight scripted objects with touch function</string> | 10154 | <string>Beacon / Highlight scripted objects with touch function</string> |
9592 | <key>Persist</key> | 10155 | <key>Persist</key> |
9593 | <integer>1</integer> | 10156 | <integer>1</integer> |
9594 | <key>Type</key> | 10157 | <key>Type</key> |
9595 | <string>Boolean</string> | 10158 | <string>Boolean</string> |
9596 | <key>Value</key> | 10159 | <key>Value</key> |
9597 | <integer>1</integer> | 10160 | <integer>1</integer> |
9598 | </map> | 10161 | </map> |
9599 | <key>scriptsbeacon</key> | 10162 | <key>scriptsbeacon</key> |
9600 | <map> | 10163 | <map> |
9601 | <key>Comment</key> | 10164 | <key>Comment</key> |
9602 | <string>Beacon / Highlight scripted objects</string> | 10165 | <string>Beacon / Highlight scripted objects</string> |
9603 | <key>Persist</key> | 10166 | <key>Persist</key> |
9604 | <integer>1</integer> | 10167 | <integer>1</integer> |
9605 | <key>Type</key> | 10168 | <key>Type</key> |
9606 | <string>Boolean</string> | 10169 | <string>Boolean</string> |
9607 | <key>Value</key> | 10170 | <key>Value</key> |
9608 | <integer>0</integer> | 10171 | <integer>0</integer> |
9609 | </map> | 10172 | </map> |
9610 | <key>scripttouchbeacon</key> | 10173 | <key>scripttouchbeacon</key> |
9611 | <map> | 10174 | <map> |
9612 | <key>Comment</key> | 10175 | <key>Comment</key> |
9613 | <string>Beacon / Highlight scripted objects with touch function</string> | 10176 | <string>Beacon / Highlight scripted objects with touch function</string> |
9614 | <key>Persist</key> | 10177 | <key>Persist</key> |
9615 | <integer>1</integer> | 10178 | <integer>1</integer> |
9616 | <key>Type</key> | 10179 | <key>Type</key> |
9617 | <string>Boolean</string> | 10180 | <string>Boolean</string> |
9618 | <key>Value</key> | 10181 | <key>Value</key> |
9619 | <integer>1</integer> | 10182 | <integer>1</integer> |
9620 | </map> | 10183 | </map> |
9621 | <key>soundsbeacon</key> | 10184 | <key>soundsbeacon</key> |
9622 | <map> | 10185 | <map> |
9623 | <key>Comment</key> | 10186 | <key>Comment</key> |
9624 | <string>Beacon / Highlight sound generators</string> | 10187 | <string>Beacon / Highlight sound generators</string> |
9625 | <key>Persist</key> | 10188 | <key>Persist</key> |
9626 | <integer>1</integer> | 10189 | <integer>1</integer> |
9627 | <key>Type</key> | 10190 | <key>Type</key> |
9628 | <string>Boolean</string> | 10191 | <string>Boolean</string> |
9629 | <key>Value</key> | 10192 | <key>Value</key> |
9630 | <integer>0</integer> | 10193 | <integer>0</integer> |
9631 | </map> | ||
9632 | <key>SkyEditPresets</key> | ||
9633 | <map> | ||
9634 | <key>Comment</key> | ||
9635 | <string>Whether to be able to edit the sky defaults or not</string> | ||
9636 | <key>Persist</key> | ||
9637 | <integer>1</integer> | ||
9638 | <key>Type</key> | ||
9639 | <string>Boolean</string> | ||
9640 | <key>Value</key> | ||
9641 | <integer>0</integer> | ||
9642 | </map> | ||
9643 | <key>WaterGLFogDepthFloor</key> | ||
9644 | <map> | ||
9645 | <key>Comment</key> | ||
9646 | <string>Controls how dark water gl fog can get</string> | ||
9647 | <key>Persist</key> | ||
9648 | <integer>1</integer> | ||
9649 | <key>Type</key> | ||
9650 | <string>F32</string> | ||
9651 | <key>Value</key> | ||
9652 | <real>0.25</real> | ||
9653 | </map> | ||
9654 | <key>WaterGLFogDepthScale</key> | ||
9655 | <map> | ||
9656 | <key>Comment</key> | ||
9657 | <string>Controls how quickly gl fog gets dark under water</string> | ||
9658 | <key>Persist</key> | ||
9659 | <integer>1</integer> | ||
9660 | <key>Type</key> | ||
9661 | <string>F32</string> | ||
9662 | <key>Value</key> | ||
9663 | <real>50.0</real> | ||
9664 | </map> | ||
9665 | <key>WaterGLFogDensityScale</key> | ||
9666 | <map> | ||
9667 | <key>Comment</key> | ||
9668 | <string>Maps shader water fog density to gl fog density</string> | ||
9669 | <key>Persist</key> | ||
9670 | <integer>1</integer> | ||
9671 | <key>Type</key> | ||
9672 | <string>F32</string> | ||
9673 | <key>Value</key> | ||
9674 | <real>0.02</real> | ||
9675 | </map> | ||
9676 | <key>EnableRippleWater</key> | ||
9677 | <map> | ||
9678 | <key>Comment</key> | ||
9679 | <string>Whether to use ripple water shader or not</string> | ||
9680 | <key>Persist</key> | ||
9681 | <integer>1</integer> | ||
9682 | <key>Type</key> | ||
9683 | <string>Boolean</string> | ||
9684 | <key>Value</key> | ||
9685 | <integer>1</integer> | ||
9686 | </map> | ||
9687 | <key>WaterEditPresets</key> | ||
9688 | <map> | ||
9689 | <key>Comment</key> | ||
9690 | <string>Whether to be able to edit the water defaults or not</string> | ||
9691 | <key>Persist</key> | ||
9692 | <integer>1</integer> | ||
9693 | <key>Type</key> | ||
9694 | <string>Boolean</string> | ||
9695 | <key>Value</key> | ||
9696 | <integer>0</integer> | ||
9697 | </map> | ||
9698 | <key>FloaterEnvRect</key> | ||
9699 | <map> | ||
9700 | <key>Comment</key> | ||
9701 | <string>Rectangle for Environment Editor</string> | ||
9702 | <key>Persist</key> | ||
9703 | <integer>1</integer> | ||
9704 | <key>Type</key> | ||
9705 | <string>Rect</string> | ||
9706 | <key>Value</key> | ||
9707 | <array> | ||
9708 | <integer>50</integer> | ||
9709 | <integer>150</integer> | ||
9710 | <integer>650</integer> | ||
9711 | <integer>0</integer> | ||
9712 | </array> | ||
9713 | </map> | ||
9714 | <key>FloaterAdvancedSkyRect</key> | ||
9715 | <map> | ||
9716 | <key>Comment</key> | ||
9717 | <string>Rectangle for Advanced Sky Editor</string> | ||
9718 | <key>Persist</key> | ||
9719 | <integer>1</integer> | ||
9720 | <key>Type</key> | ||
9721 | <string>Rect</string> | ||
9722 | <key>Value</key> | ||
9723 | <array> | ||
9724 | <integer>50</integer> | ||
9725 | <integer>220</integer> | ||
9726 | <integer>450</integer> | ||
9727 | <integer>0</integer> | ||
9728 | </array> | ||
9729 | </map> | ||
9730 | <key>FloaterDayCycleRect</key> | ||
9731 | <map> | ||
9732 | <key>Comment</key> | ||
9733 | <string>Rectangle for Day Cycle Editor</string> | ||
9734 | <key>Persist</key> | ||
9735 | <integer>1</integer> | ||
9736 | <key>Type</key> | ||
9737 | <string>Rect</string> | ||
9738 | <key>Value</key> | ||
9739 | <array> | ||
9740 | <integer>50</integer> | ||
9741 | <integer>450</integer> | ||
9742 | <integer>300</integer> | ||
9743 | <integer>0</integer> | ||
9744 | </array> | ||
9745 | </map> | ||
9746 | <key>FloaterAdvancedWaterRect</key> | ||
9747 | <map> | ||
9748 | <key>Comment</key> | ||
9749 | <string>Rectangle for Advanced Water Editor</string> | ||
9750 | <key>Persist</key> | ||
9751 | <integer>1</integer> | ||
9752 | <key>Type</key> | ||
9753 | <string>Rect</string> | ||
9754 | <key>Value</key> | ||
9755 | <array> | ||
9756 | <integer>50</integer> | ||
9757 | <integer>220</integer> | ||
9758 | <integer>450</integer> | ||
9759 | <integer>0</integer> | ||
9760 | </array> | ||
9761 | </map> | ||
9762 | <key>RenderFastAlpha</key> | ||
9763 | <map> | ||
9764 | <key>Comment</key> | ||
9765 | <string>Use lossy alpha rendering optimization (opaque/nonexistent small alpha faces).</string> | ||
9766 | <key>Persist</key> | ||
9767 | <integer>1</integer> | ||
9768 | <key>Type</key> | ||
9769 | <string>Boolean</string> | ||
9770 | <key>Value</key> | ||
9771 | <integer>0</integer> | ||
9772 | </map> | ||
9773 | <key>RenderDeferred</key> | ||
9774 | <map> | ||
9775 | <key>Comment</key> | ||
9776 | <string>Use deferred rendering pipeline.</string> | ||
9777 | <key>Persist</key> | ||
9778 | <integer>1</integer> | ||
9779 | <key>Type</key> | ||
9780 | <string>Boolean</string> | ||
9781 | <key>Value</key> | ||
9782 | <integer>0</integer> | ||
9783 | </map> | ||
9784 | <key>RenderFSAASamples</key> | ||
9785 | <map> | ||
9786 | <key>Comment</key> | ||
9787 | <string>Number of samples to use for FSAA (0 = no AA).</string> | ||
9788 | <key>Persist</key> | ||
9789 | <integer>1</integer> | ||
9790 | <key>Type</key> | ||
9791 | <string>U32</string> | ||
9792 | <key>Value</key> | ||
9793 | <integer>0</integer> | ||
9794 | </map> | ||
9795 | <key>RenderTextureMemoryMultiple</key> | ||
9796 | <map> | ||
9797 | <key>Comment</key> | ||
9798 | <string>Multiple of texture memory value to use (should fit: 0 < value <= 1.0)</string> | ||
9799 | <key>Persist</key> | ||
9800 | <integer>1</integer> | ||
9801 | <key>Type</key> | ||
9802 | <string>F32</string> | ||
9803 | <key>Value</key> | ||
9804 | <real>1.0</real> | ||
9805 | </map> | ||
9806 | <key>Disregard128DefaultDrawDistance</key> | ||
9807 | <map> | ||
9808 | <key>Comment</key> | ||
9809 | <string>Whether to use the auto default to 128 draw distance</string> | ||
9810 | <key>Persist</key> | ||
9811 | <integer>1</integer> | ||
9812 | <key>Type</key> | ||
9813 | <string>Boolean</string> | ||
9814 | <key>Value</key> | ||
9815 | <real>1</real> | ||
9816 | </map> | ||
9817 | <key>Disregard96DefaultDrawDistance</key> | ||
9818 | <map> | ||
9819 | <key>Comment</key> | ||
9820 | <string>Whether to use the auto default to 96 draw distance</string> | ||
9821 | <key>Persist</key> | ||
9822 | <integer>1</integer> | ||
9823 | <key>Type</key> | ||
9824 | <string>Boolean</string> | ||
9825 | <key>Value</key> | ||
9826 | <real>1</real> | ||
9827 | </map> | ||
9828 | |||
9829 | <key>AvatarAxisDeadZone0</key> | ||
9830 | <map> | ||
9831 | <key>Comment</key> | ||
9832 | <string>Avatar axis 0 dead zone.</string> | ||
9833 | <key>Persist</key> | ||
9834 | <integer>1</integer> | ||
9835 | <key>Type</key> | ||
9836 | <string>F32</string> | ||
9837 | <key>Value</key> | ||
9838 | <real>0.1</real> | ||
9839 | </map> | ||
9840 | <key>AvatarAxisDeadZone1</key> | ||
9841 | <map> | ||
9842 | <key>Comment</key> | ||
9843 | <string>Avatar axis 1 dead zone.</string> | ||
9844 | <key>Persist</key> | ||
9845 | <integer>1</integer> | ||
9846 | <key>Type</key> | ||
9847 | <string>F32</string> | ||
9848 | <key>Value</key> | ||
9849 | <real>0.1</real> | ||
9850 | </map> | ||
9851 | <key>AvatarAxisDeadZone2</key> | ||
9852 | <map> | ||
9853 | <key>Comment</key> | ||
9854 | <string>Avatar axis 2 dead zone.</string> | ||
9855 | <key>Persist</key> | ||
9856 | <integer>1</integer> | ||
9857 | <key>Type</key> | ||
9858 | <string>F32</string> | ||
9859 | <key>Value</key> | ||
9860 | <real>0.1</real> | ||
9861 | </map> | ||
9862 | <key>AvatarAxisDeadZone3</key> | ||
9863 | <map> | ||
9864 | <key>Comment</key> | ||
9865 | <string>Avatar axis 3 dead zone.</string> | ||
9866 | <key>Persist</key> | ||
9867 | <integer>1</integer> | ||
9868 | <key>Type</key> | ||
9869 | <string>F32</string> | ||
9870 | <key>Value</key> | ||
9871 | <real>0.1</real> | ||
9872 | </map> | ||
9873 | <key>AvatarAxisDeadZone4</key> | ||
9874 | <map> | ||
9875 | <key>Comment</key> | ||
9876 | <string>Avatar axis 4 dead zone.</string> | ||
9877 | <key>Persist</key> | ||
9878 | <integer>1</integer> | ||
9879 | <key>Type</key> | ||
9880 | <string>F32</string> | ||
9881 | <key>Value</key> | ||
9882 | <real>0.1</real> | ||
9883 | </map> | ||
9884 | <key>AvatarAxisDeadZone5</key> | ||
9885 | <map> | ||
9886 | <key>Comment</key> | ||
9887 | <string>Avatar axis 5 dead zone.</string> | ||
9888 | <key>Persist</key> | ||
9889 | <integer>1</integer> | ||
9890 | <key>Type</key> | ||
9891 | <string>F32</string> | ||
9892 | <key>Value</key> | ||
9893 | <real>0.1</real> | ||
9894 | </map> | ||
9895 | <key>AvatarAxisScale0</key> | ||
9896 | <map> | ||
9897 | <key>Comment</key> | ||
9898 | <string>Avatar axis 0 scaler.</string> | ||
9899 | <key>Persist</key> | ||
9900 | <integer>1</integer> | ||
9901 | <key>Type</key> | ||
9902 | <string>F32</string> | ||
9903 | <key>Value</key> | ||
9904 | <real>1</real> | ||
9905 | </map> | ||
9906 | <key>AvatarAxisScale1</key> | ||
9907 | <map> | ||
9908 | <key>Comment</key> | ||
9909 | <string>Avatar axis 1 scaler.</string> | ||
9910 | <key>Persist</key> | ||
9911 | <integer>1</integer> | ||
9912 | <key>Type</key> | ||
9913 | <string>F32</string> | ||
9914 | <key>Value</key> | ||
9915 | <real>1</real> | ||
9916 | </map> | ||
9917 | <key>AvatarAxisScale2</key> | ||
9918 | <map> | ||
9919 | <key>Comment</key> | ||
9920 | <string>Avatar axis 2 scaler.</string> | ||
9921 | <key>Persist</key> | ||
9922 | <integer>1</integer> | ||
9923 | <key>Type</key> | ||
9924 | <string>F32</string> | ||
9925 | <key>Value</key> | ||
9926 | <real>1</real> | ||
9927 | </map> | ||
9928 | <key>AvatarAxisScale3</key> | ||
9929 | <map> | ||
9930 | <key>Comment</key> | ||
9931 | <string>Avatar axis 3 scaler.</string> | ||
9932 | <key>Persist</key> | ||
9933 | <integer>1</integer> | ||
9934 | <key>Type</key> | ||
9935 | <string>F32</string> | ||
9936 | <key>Value</key> | ||
9937 | <real>1</real> | ||
9938 | </map> | ||
9939 | <key>AvatarAxisScale4</key> | ||
9940 | <map> | ||
9941 | <key>Comment</key> | ||
9942 | <string>Avatar axis 4 scaler.</string> | ||
9943 | <key>Persist</key> | ||
9944 | <integer>1</integer> | ||
9945 | <key>Type</key> | ||
9946 | <string>F32</string> | ||
9947 | <key>Value</key> | ||
9948 | <real>1</real> | ||
9949 | </map> | ||
9950 | <key>AvatarAxisScale5</key> | ||
9951 | <map> | ||
9952 | <key>Comment</key> | ||
9953 | <string>Avatar axis 5 scaler.</string> | ||
9954 | <key>Persist</key> | ||
9955 | <integer>1</integer> | ||
9956 | <key>Type</key> | ||
9957 | <string>F32</string> | ||
9958 | <key>Value</key> | ||
9959 | <real>1</real> | ||
9960 | </map> | ||
9961 | <key>AvatarFeathering</key> | ||
9962 | <map> | ||
9963 | <key>Comment</key> | ||
9964 | <string>Avatar feathering (less is softer)</string> | ||
9965 | <key>Persist</key> | ||
9966 | <integer>1</integer> | ||
9967 | <key>Type</key> | ||
9968 | <string>F32</string> | ||
9969 | <key>Value</key> | ||
9970 | <real>16</real> | ||
9971 | </map> | ||
9972 | |||
9973 | <key>BuildAxisDeadZone0</key> | ||
9974 | <map> | ||
9975 | <key>Comment</key> | ||
9976 | <string>Build axis 0 dead zone.</string> | ||
9977 | <key>Persist</key> | ||
9978 | <integer>1</integer> | ||
9979 | <key>Type</key> | ||
9980 | <string>F32</string> | ||
9981 | <key>Value</key> | ||
9982 | <real>0.1</real> | ||
9983 | </map> | ||
9984 | <key>BuildAxisDeadZone1</key> | ||
9985 | <map> | ||
9986 | <key>Comment</key> | ||
9987 | <string>Build axis 1 dead zone.</string> | ||
9988 | <key>Persist</key> | ||
9989 | <integer>1</integer> | ||
9990 | <key>Type</key> | ||
9991 | <string>F32</string> | ||
9992 | <key>Value</key> | ||
9993 | <real>0.1</real> | ||
9994 | </map> | ||
9995 | <key>BuildAxisDeadZone2</key> | ||
9996 | <map> | ||
9997 | <key>Comment</key> | ||
9998 | <string>Build axis 2 dead zone.</string> | ||
9999 | <key>Persist</key> | ||
10000 | <integer>1</integer> | ||
10001 | <key>Type</key> | ||
10002 | <string>F32</string> | ||
10003 | <key>Value</key> | ||
10004 | <real>0.1</real> | ||
10005 | </map> | ||
10006 | <key>BuildAxisDeadZone3</key> | ||
10007 | <map> | ||
10008 | <key>Comment</key> | ||
10009 | <string>Build axis 3 dead zone.</string> | ||
10010 | <key>Persist</key> | ||
10011 | <integer>1</integer> | ||
10012 | <key>Type</key> | ||
10013 | <string>F32</string> | ||
10014 | <key>Value</key> | ||
10015 | <real>0.1</real> | ||
10016 | </map> | ||
10017 | <key>BuildAxisDeadZone4</key> | ||
10018 | <map> | ||
10019 | <key>Comment</key> | ||
10020 | <string>Build axis 4 dead zone.</string> | ||
10021 | <key>Persist</key> | ||
10022 | <integer>1</integer> | ||
10023 | <key>Type</key> | ||
10024 | <string>F32</string> | ||
10025 | <key>Value</key> | ||
10026 | <real>0.1</real> | ||
10027 | </map> | ||
10028 | <key>BuildAxisDeadZone5</key> | ||
10029 | <map> | ||
10030 | <key>Comment</key> | ||
10031 | <string>Build axis 5 dead zone.</string> | ||
10032 | <key>Persist</key> | ||
10033 | <integer>1</integer> | ||
10034 | <key>Type</key> | ||
10035 | <string>F32</string> | ||
10036 | <key>Value</key> | ||
10037 | <real>0.1</real> | ||
10038 | </map> | ||
10039 | <key>BuildAxisScale0</key> | ||
10040 | <map> | ||
10041 | <key>Comment</key> | ||
10042 | <string>Build axis 0 scaler.</string> | ||
10043 | <key>Persist</key> | ||
10044 | <integer>1</integer> | ||
10045 | <key>Type</key> | ||
10046 | <string>F32</string> | ||
10047 | <key>Value</key> | ||
10048 | <real>1</real> | ||
10049 | </map> | ||
10050 | <key>BuildAxisScale1</key> | ||
10051 | <map> | ||
10052 | <key>Comment</key> | ||
10053 | <string>Build axis 1 scaler.</string> | ||
10054 | <key>Persist</key> | ||
10055 | <integer>1</integer> | ||
10056 | <key>Type</key> | ||
10057 | <string>F32</string> | ||
10058 | <key>Value</key> | ||
10059 | <real>1</real> | ||
10060 | </map> | ||
10061 | <key>BuildAxisScale2</key> | ||
10062 | <map> | ||
10063 | <key>Comment</key> | ||
10064 | <string>Build axis 2 scaler.</string> | ||
10065 | <key>Persist</key> | ||
10066 | <integer>1</integer> | ||
10067 | <key>Type</key> | ||
10068 | <string>F32</string> | ||
10069 | <key>Value</key> | ||
10070 | <real>1</real> | ||
10071 | </map> | ||
10072 | <key>BuildAxisScale3</key> | ||
10073 | <map> | ||
10074 | <key>Comment</key> | ||
10075 | <string>Build axis 3 scaler.</string> | ||
10076 | <key>Persist</key> | ||
10077 | <integer>1</integer> | ||
10078 | <key>Type</key> | ||
10079 | <string>F32</string> | ||
10080 | <key>Value</key> | ||
10081 | <real>1</real> | ||
10082 | </map> | ||
10083 | <key>BuildAxisScale4</key> | ||
10084 | <map> | ||
10085 | <key>Comment</key> | ||
10086 | <string>Build axis 4 scaler.</string> | ||
10087 | <key>Persist</key> | ||
10088 | <integer>1</integer> | ||
10089 | <key>Type</key> | ||
10090 | <string>F32</string> | ||
10091 | <key>Value</key> | ||
10092 | <real>1</real> | ||
10093 | </map> | ||
10094 | <key>BuildAxisScale5</key> | ||
10095 | <map> | ||
10096 | <key>Comment</key> | ||
10097 | <string>Build axis 5 scaler.</string> | ||
10098 | <key>Persist</key> | ||
10099 | <integer>1</integer> | ||
10100 | <key>Type</key> | ||
10101 | <string>F32</string> | ||
10102 | <key>Value</key> | ||
10103 | <real>1</real> | ||
10104 | </map> | ||
10105 | <key>BuildFeathering</key> | ||
10106 | <map> | ||
10107 | <key>Comment</key> | ||
10108 | <string>Build feathering (less is softer)</string> | ||
10109 | <key>Persist</key> | ||
10110 | <integer>1</integer> | ||
10111 | <key>Type</key> | ||
10112 | <string>F32</string> | ||
10113 | <key>Value</key> | ||
10114 | <real>16</real> | ||
10115 | </map> | ||
10116 | |||
10117 | </map> | 10194 | </map> |
10195 | </map> | ||
10118 | </llsd> | 10196 | </llsd> |
diff --git a/linden/indra/newview/app_settings/skinned_avatar.vp b/linden/indra/newview/app_settings/skinned_avatar.vp deleted file mode 100644 index a4adbd5..0000000 --- a/linden/indra/newview/app_settings/skinned_avatar.vp +++ /dev/null | |||
@@ -1,146 +0,0 @@ | |||
1 | !!ARBvp1.0 | ||
2 | # Vertex Program for lit, skinned avatars | ||
3 | |||
4 | # Parameters | ||
5 | PARAM mat[45] = { program.env[0..44] }; | ||
6 | PARAM embossScale = program.env[63]; | ||
7 | PARAM proj[4] = { state.matrix.projection }; | ||
8 | PARAM modelAmbient = state.lightmodel.ambient; | ||
9 | PARAM materialDiffuse = state.material.diffuse; | ||
10 | PARAM lightDir0 = state.light[0].position; | ||
11 | PARAM diffuseCol0 = state.light[0].diffuse; | ||
12 | PARAM lightDir1 = state.light[1].position; | ||
13 | PARAM diffuseCol1 = state.light[1].diffuse; | ||
14 | PARAM lightPos2 = state.light[2].position; | ||
15 | PARAM diffuseCol2 = state.light[2].diffuse; | ||
16 | PARAM lightPos3 = state.light[3].position; | ||
17 | PARAM diffuseCol3 = state.light[3].diffuse; | ||
18 | |||
19 | # Per vertex inputs | ||
20 | ATTRIB iPos = vertex.position; | ||
21 | ATTRIB iNormal = vertex.normal; | ||
22 | ATTRIB iTex0 = vertex.texcoord[0]; | ||
23 | ATTRIB iTex1 = vertex.texcoord[1]; | ||
24 | ATTRIB iWeight = vertex.attrib[1]; | ||
25 | ATTRIB iBinormal = vertex.attrib[6]; | ||
26 | |||
27 | # Temporaries | ||
28 | TEMP blendBinorm; # result of skinned binormal | ||
29 | TEMP blendTangent; # result of skinned tangent | ||
30 | TEMP blendMat; | ||
31 | TEMP blendPos; # skinned vertex pos | ||
32 | TEMP dots; # dot product for lighting calculations | ||
33 | TEMP blendNorm; # skinned normal | ||
34 | TEMP colorAcc; # color accumulator | ||
35 | |||
36 | ALIAS scaledWeight = colorAcc; | ||
37 | ALIAS divisor = blendMat; # divisor for normalization process | ||
38 | ALIAS lightDir = blendBinorm; | ||
39 | |||
40 | ADDRESS address; | ||
41 | |||
42 | # Outputs | ||
43 | OUTPUT oPos = result.position; #position | ||
44 | OUTPUT oCol0 = result.color; #primary color | ||
45 | OUTPUT oTex0 = result.texcoord[0]; #texture coordinate set 0 | ||
46 | OUTPUT oTex1 = result.texcoord[1]; #texture coordinate set 1 | ||
47 | OUTPUT oFog = result.fogcoord; #output fog coord | ||
48 | |||
49 | #fix input blending weight | ||
50 | ARL address.x, iWeight.x; | ||
51 | FRC scaledWeight.x, iWeight; | ||
52 | |||
53 | #Output position and normal | ||
54 | MUL dots, mat[address.x + 1], {1,1,1,1}; | ||
55 | SUB blendMat, dots, mat[address.x + 0]; | ||
56 | MAD blendMat, scaledWeight.x, blendMat, mat[address.x + 0]; | ||
57 | DP4 blendPos.x, blendMat, iPos; | ||
58 | DP3 blendNorm.x, blendMat, iNormal; | ||
59 | DP3 blendBinorm.x, blendMat, iBinormal; | ||
60 | |||
61 | MUL dots, mat[address.x + 16], {1,1,1,1}; | ||
62 | SUB blendMat, dots, mat[address.x + 15]; | ||
63 | MAD blendMat, scaledWeight.x, blendMat, mat[address.x + 15]; | ||
64 | DP4 blendPos.y, blendMat, iPos; | ||
65 | DP3 blendNorm.y, blendMat, iNormal; | ||
66 | DP3 blendBinorm.y, blendMat, iBinormal; | ||
67 | |||
68 | MUL dots, mat[address.x + 31], {1,1,1,1}; | ||
69 | SUB blendMat, dots, mat[address.x + 30]; | ||
70 | MAD blendMat, scaledWeight.x, blendMat, mat[address.x + 30]; | ||
71 | DP4 blendPos.z, blendMat, iPos; | ||
72 | DP3 blendNorm.z, blendMat, iNormal; | ||
73 | DP3 blendBinorm.z, blendMat, iBinormal; | ||
74 | MOV blendPos.w, {0, 0, 0, 1}; | ||
75 | |||
76 | #renormalize normal | ||
77 | #add "normal spread" effect | ||
78 | ADD blendNorm, blendNorm, {0, 0, -0.4, 0}; | ||
79 | DP3 divisor.w, blendNorm, blendNorm; | ||
80 | RSQ divisor.xyz, divisor.w; | ||
81 | MUL blendNorm.xyz, blendNorm, divisor; | ||
82 | |||
83 | #renormalize binormal | ||
84 | DP3 divisor.w, blendBinorm, blendBinorm; | ||
85 | RSQ divisor.xyz, divisor.w; | ||
86 | MUL blendBinorm.xyz, blendBinorm, divisor; | ||
87 | |||
88 | #Projection | ||
89 | DP4 oPos.x, proj[0], blendPos; | ||
90 | DP4 oPos.y, proj[1], blendPos; | ||
91 | DP4 oPos.z, proj[2], blendPos; | ||
92 | DP4 oPos.w, proj[3], blendPos; | ||
93 | |||
94 | #tangent = binormal X normal | ||
95 | XPD blendTangent, blendNorm, blendBinorm; | ||
96 | |||
97 | #oTex1 = iTex0 + LLVector2( lightDir0 * tangent, lightDir0 * binormal ); | ||
98 | DP3 blendTangent.x, lightDir0, blendTangent; | ||
99 | DP3 blendTangent.y, lightDir0, blendBinorm; | ||
100 | MAD oTex1, embossScale.x, blendTangent, iTex0; | ||
101 | |||
102 | #Light 0 | ||
103 | DP3 colorAcc.xyz, blendNorm, lightDir0; | ||
104 | MAD colorAcc.xyz, colorAcc, {0.55, 0.55, 0.55, 0.55}, {0.3, 0.3, 0.3, 0.3}; | ||
105 | MAX colorAcc, colorAcc, {0, 0, 0, 0}; | ||
106 | |||
107 | # Accumulate color contributions. | ||
108 | MAD colorAcc.xyz, colorAcc.x, diffuseCol0, modelAmbient; | ||
109 | MOV colorAcc.w, {0, 0, 0, 1.0}; | ||
110 | |||
111 | #Light 1 | ||
112 | DP3 dots.x, blendNorm, lightDir1; | ||
113 | |||
114 | #Light 2 | ||
115 | SUB lightDir, lightPos2, blendPos; | ||
116 | DP3 divisor.w, lightDir, lightDir; | ||
117 | RSQ divisor.xyz, divisor.w; | ||
118 | MUL lightDir.xyz, lightDir, divisor; | ||
119 | |||
120 | DP3 dots.y, blendNorm, lightDir; | ||
121 | |||
122 | #Light 3 | ||
123 | SUB lightDir, lightPos3, blendPos; | ||
124 | DP3 divisor.w, lightDir, lightDir; | ||
125 | RSQ divisor.xyz, divisor.w; | ||
126 | MUL lightDir.xyz, lightDir, divisor; | ||
127 | |||
128 | DP3 dots.z, blendNorm, lightDir; | ||
129 | |||
130 | # Apply Lights | ||
131 | MAD dots, dots, {0.55, 0.55, 0.55, 0.55}, {0.3, 0.3, 0.3, 0.3}; | ||
132 | MAX dots, dots, {0,0,0,0}; | ||
133 | MAD colorAcc.xyz, dots.x, diffuseCol1, colorAcc; | ||
134 | MAD colorAcc.xyz, dots.y, diffuseCol2, colorAcc; | ||
135 | MAD colorAcc.xyz, dots.z, diffuseCol3, colorAcc; | ||
136 | |||
137 | #Output color | ||
138 | MUL oCol0, materialDiffuse, colorAcc; | ||
139 | |||
140 | #Output tex coordinate | ||
141 | MOV oTex0, iTex0; | ||
142 | |||
143 | #Output fog | ||
144 | MOV oFog.x, blendPos.z; | ||
145 | |||
146 | END | ||
diff --git a/linden/indra/newview/app_settings/skinned_avatar_hair_wind.vp b/linden/indra/newview/app_settings/skinned_avatar_hair_wind.vp deleted file mode 100644 index 5c45118..0000000 --- a/linden/indra/newview/app_settings/skinned_avatar_hair_wind.vp +++ /dev/null | |||
@@ -1,179 +0,0 @@ | |||
1 | !!ARBvp1.0 | ||
2 | # Vertex Program for lit, skinned avatars | ||
3 | |||
4 | # Parameters | ||
5 | #PARAM gGravity = program.env[62]; | ||
6 | |||
7 | PARAM gMat[45] = { program.env[0..44] }; | ||
8 | PARAM gWindDir = program.env[60]; # wind direction with strength stored in w | ||
9 | PARAM gSinWaveParams = program.env[61]; # frequency, frequency2, frequency, phase | ||
10 | PARAM gMinMaxConstants = {1.0, 0.166666, 0.0083143, .00018542}; #minimax-generated coefficients | ||
11 | PARAM gPiConstants = {0.159154943, 6.28318530, 3.141592653, 1.5707963}; # {1/2PI, 2PI, PI, PI/2} | ||
12 | PARAM gProjection[4] = { state.matrix.projection }; | ||
13 | PARAM gModelAmbient = state.lightmodel.ambient; | ||
14 | PARAM gMaterialDiffuse = state.material.diffuse; | ||
15 | PARAM gLightDir0 = state.light[0].position; | ||
16 | PARAM gDiffuseCol0 = state.light[0].diffuse; | ||
17 | PARAM gLightDir1 = state.light[1].position; | ||
18 | PARAM gDiffuseCol1 = state.light[1].diffuse; | ||
19 | PARAM gLightPos2 = state.light[2].position; | ||
20 | PARAM gDiffuseCol2 = state.light[2].diffuse; | ||
21 | PARAM gLightPos3 = state.light[3].position; | ||
22 | PARAM gDiffuseCol3 = state.light[3].diffuse; | ||
23 | |||
24 | # Per vertex inputs | ||
25 | ATTRIB iPos = vertex.position; | ||
26 | ATTRIB iNormal = vertex.normal; | ||
27 | ATTRIB iTex0 = vertex.texcoord; | ||
28 | ATTRIB iWeight = vertex.attrib[1]; | ||
29 | ATTRIB iClothing = vertex.attrib[4]; | ||
30 | |||
31 | # Temporaries | ||
32 | TEMP blendedPos; # weighted sum of tpos0 and tpos1 | ||
33 | TEMP blendNorm; # weighted sum of eyeNormal0 and eyeNormal1 | ||
34 | TEMP temp0; | ||
35 | TEMP temp1; # another general purpose temp | ||
36 | TEMP temp2; | ||
37 | TEMP windEffect; # amount of displacement from wind | ||
38 | TEMP blendMatX; | ||
39 | TEMP blendMatY; | ||
40 | TEMP blendMatZ; | ||
41 | |||
42 | ALIAS colorAcc = temp0; | ||
43 | ALIAS sinWave = temp0; | ||
44 | ALIAS offsetPos = temp1; | ||
45 | ALIAS dots = temp1; # dot product for lighting calculations | ||
46 | ALIAS posDelta = windEffect; # movement of vertex according to joint angle | ||
47 | ALIAS pivot_pos = windEffect; | ||
48 | ALIAS scaledWeight = temp0; | ||
49 | ALIAS divisor = temp2; | ||
50 | ALIAS lightDir = windEffect; | ||
51 | |||
52 | ADDRESS address; | ||
53 | |||
54 | # Outputs | ||
55 | OUTPUT oPos = result.position; # position | ||
56 | OUTPUT oCol0 = result.color; # primary color | ||
57 | OUTPUT oTex0 = result.texcoord; # texture coordinate set 0 | ||
58 | OUTPUT oFog = result.fogcoord; # output fog coordinates | ||
59 | |||
60 | #fix input blending weight | ||
61 | ARL address.x, iWeight.x; | ||
62 | FRC scaledWeight.x, iWeight; | ||
63 | |||
64 | # Blend joint matrices | ||
65 | MUL blendMatX, gMat[address.x + 1], {1,1,1,1}; | ||
66 | SUB blendMatX, blendMatX, gMat[address.x + 0]; | ||
67 | MAD blendMatX, scaledWeight.x, blendMatX, gMat[address.x + 0]; | ||
68 | DP3 blendNorm.x, blendMatX, iNormal; | ||
69 | |||
70 | MUL blendMatY, gMat[address.x + 16], {1,1,1,1}; | ||
71 | SUB blendMatY, blendMatY, gMat[address.x + 15]; | ||
72 | MAD blendMatY, scaledWeight.x, blendMatY, gMat[address.x + 15]; | ||
73 | DP3 blendNorm.y, blendMatY, iNormal; | ||
74 | |||
75 | MUL blendMatZ, gMat[address.x + 31], {1,1,1,1}; | ||
76 | SUB blendMatZ, blendMatZ, gMat[address.x + 30]; | ||
77 | MAD blendMatZ, scaledWeight.x, blendMatZ, gMat[address.x + 30]; | ||
78 | DP3 blendNorm.z, blendMatZ, iNormal; | ||
79 | |||
80 | #wind | ||
81 | DP3 windEffect, blendNorm, gWindDir; | ||
82 | MAD windEffect.xyz, windEffect, gSinWaveParams, gSinWaveParams.w; # use sin wave params to scale and offset input | ||
83 | |||
84 | #reduce to period of 2 PI | ||
85 | MUL temp1.xyz, windEffect, gPiConstants.x; # change input as multiple of [0-2PI] to [0-1] | ||
86 | EXP temp0, temp1.x; # find mod(x, 1) | ||
87 | MUL windEffect.x, temp0.y, gPiConstants.y; # scale from [0,1] to [0, 2PI] | ||
88 | |||
89 | # offset to [-PI, PI] | ||
90 | ADD windEffect.xyz, windEffect, {-3.141592, -3.141592, -3.141592, -3.141592}; | ||
91 | |||
92 | #calculate sinusoid | ||
93 | MUL temp1, windEffect, windEffect; # x^2 | ||
94 | MAD sinWave, -temp1, gMinMaxConstants.w, gMinMaxConstants.z; # y = -(x^2)/7! + 1/5! | ||
95 | MAD sinWave, sinWave, -temp1, gMinMaxConstants.y; # y = -(x^2) * (-(x^2)/7! + 1/5!) + 1/3! | ||
96 | MAD sinWave, sinWave, -temp1, gMinMaxConstants.x; # y = -(x^2) * (-(x^2) * (-(x^2)/7! + 1/5!) + 1/3!) + 1 | ||
97 | MUL sinWave, sinWave, windEffect; # y = x * (-(x^2) * (-(x^2) * (-(x^2)/7! + 1/5!) + 1/3!) + 1) | ||
98 | |||
99 | # sinWave.x holds sin(norm . wind_direction)+ | ||
100 | MUL sinWave.xyz, sinWave, gWindDir.w; # multiply by wind strength in gWindDir.w [-wind, wind] | ||
101 | SUB sinWave.xyz, sinWave, {0.2, 0.2, 0.2, 0.2}; | ||
102 | MUL sinWave.xyz, sinWave, iClothing.w; # modulate by clothing coverage | ||
103 | |||
104 | DP3 temp2.x, iClothing, iClothing; | ||
105 | MAX temp2.x, temp2, {0, 0, 0, 0.2}; | ||
106 | MUL temp2.x, temp2.x, {3, 0, 0, 0}; | ||
107 | MUL sinWave.x, sinWave, temp2; | ||
108 | |||
109 | #add pseudo-specular effect | ||
110 | ADD blendNorm, blendNorm, {0, 0, -0.5, 0}; | ||
111 | |||
112 | #renormalize normal | ||
113 | DP3 divisor.w, blendNorm, blendNorm; | ||
114 | RSQ divisor.xyz, divisor.w; | ||
115 | MUL blendNorm.xyz, blendNorm, divisor; | ||
116 | |||
117 | #Output position | ||
118 | DP4 blendedPos.x, blendMatX, iPos; | ||
119 | DP4 blendedPos.y, blendMatY, iPos; | ||
120 | DP4 blendedPos.z, blendMatZ, iPos; | ||
121 | |||
122 | MUL offsetPos, gWindDir, sinWave.x; # multiply wind effect times clothing displacement | ||
123 | MAD blendedPos, {-1.0, -1.0, -1.0, 0.0}, offsetPos, blendedPos; # add to offset vertex position, and zero out effect from w | ||
124 | |||
125 | MOV blendedPos.w, {0, 0, 0, 1}; | ||
126 | |||
127 | #Projection | ||
128 | DP4 oPos.x, gProjection[0], blendedPos; # projection matrix | ||
129 | DP4 oPos.y, gProjection[1], blendedPos; | ||
130 | DP4 oPos.z, gProjection[2], blendedPos; | ||
131 | DP4 oPos.w, gProjection[3], blendedPos; | ||
132 | |||
133 | #Light 0 | ||
134 | DP3 dots.x, blendNorm, gLightDir0; | ||
135 | MAD dots.x, dots.x, {0.55, 0.55, 0.55, 0.55}, {0.3, 0.3, 0.3, 0.3}; | ||
136 | MAX dots, dots, {0, 0, 0, 0}; | ||
137 | |||
138 | # Accumulate color contributions. | ||
139 | MAD temp2, dots.x, gDiffuseCol0, gModelAmbient; | ||
140 | MOV colorAcc.xyz, temp2; | ||
141 | |||
142 | #Light 1 | ||
143 | DP3 dots.x, blendNorm, gLightDir1; | ||
144 | |||
145 | #Light 2 | ||
146 | SUB lightDir, gLightPos2, blendedPos; | ||
147 | DP3 divisor.w, lightDir, lightDir; | ||
148 | RSQ divisor.xyz, divisor.w; | ||
149 | MUL lightDir.xyz, lightDir, divisor; | ||
150 | |||
151 | DP3 dots.y, blendNorm, lightDir; | ||
152 | |||
153 | #Light 3 | ||
154 | SUB lightDir, gLightPos3, blendedPos; | ||
155 | DP3 divisor.w, lightDir, lightDir; | ||
156 | RSQ divisor.xyz, divisor.w; | ||
157 | MUL lightDir.xyz, lightDir, divisor; | ||
158 | |||
159 | DP3 dots.z, blendNorm, lightDir; | ||
160 | |||
161 | #Apply lights | ||
162 | MAD dots, dots, {0.55, 0.55, 0.55, 0.55}, {0.3, 0.3, 0.3, 0.3}; | ||
163 | MAX dots, dots, {0, 0, 0, 0}; | ||
164 | MAD colorAcc.xyz, dots.x, gDiffuseCol1, colorAcc; | ||
165 | MAD colorAcc.xyz, dots.y, gDiffuseCol2, colorAcc; | ||
166 | MAD colorAcc.xyz, dots.z, gDiffuseCol3, colorAcc; | ||
167 | |||
168 | #Output fog | ||
169 | # This causes issues on ATI when fog is disabled | ||
170 | MOV oFog.x, blendedPos.z; | ||
171 | |||
172 | #Output color | ||
173 | MOV colorAcc.w, {0, 0, 0, 1.0}; | ||
174 | MUL oCol0, gMaterialDiffuse, colorAcc; | ||
175 | |||
176 | #Output tex coordinate | ||
177 | MOV oTex0, iTex0; | ||
178 | |||
179 | END | ||
diff --git a/linden/indra/newview/app_settings/skinned_avatar_nobump.vp b/linden/indra/newview/app_settings/skinned_avatar_nobump.vp deleted file mode 100644 index 1874e54..0000000 --- a/linden/indra/newview/app_settings/skinned_avatar_nobump.vp +++ /dev/null | |||
@@ -1,128 +0,0 @@ | |||
1 | !!ARBvp1.0 | ||
2 | # Vertex Program for lit, skinned avatars | ||
3 | |||
4 | # Parameters | ||
5 | PARAM mat[45] = { program.env[0..44] }; | ||
6 | PARAM proj[4] = { state.matrix.projection }; | ||
7 | PARAM modelAmbient = state.lightmodel.ambient; | ||
8 | PARAM materialDiffuse = state.material.diffuse; | ||
9 | PARAM lightDir0 = state.light[0].position; | ||
10 | PARAM diffuseCol0 = state.light[0].diffuse; | ||
11 | PARAM lightDir1 = state.light[1].position; | ||
12 | PARAM diffuseCol1 = state.light[1].diffuse; | ||
13 | PARAM lightPos2 = state.light[2].position; | ||
14 | PARAM diffuseCol2 = state.light[2].diffuse; | ||
15 | PARAM lightPos3 = state.light[3].position; | ||
16 | PARAM diffuseCol3 = state.light[3].diffuse; | ||
17 | |||
18 | # Per vertex inputs | ||
19 | ATTRIB iPos = vertex.position; | ||
20 | ATTRIB iNormal = vertex.normal; | ||
21 | ATTRIB iTex0 = vertex.texcoord[0]; | ||
22 | ATTRIB iWeight = vertex.attrib[1]; | ||
23 | |||
24 | # Temporaries | ||
25 | TEMP blendMat; | ||
26 | TEMP blendPos; # skinned vertex pos | ||
27 | TEMP dots; # dot product for lighting calculations | ||
28 | TEMP blendNorm; # skinned normal | ||
29 | TEMP colorAcc; # color accumulator | ||
30 | TEMP lightDir; | ||
31 | |||
32 | |||
33 | ALIAS scaledWeight = colorAcc; | ||
34 | ALIAS divisor = blendMat; # divisor for normalization process | ||
35 | |||
36 | ADDRESS address; | ||
37 | |||
38 | # Outputs | ||
39 | OUTPUT oPos = result.position; #position | ||
40 | OUTPUT oCol0 = result.color; #primary color | ||
41 | OUTPUT oTex0 = result.texcoord[0]; #texture coordinate set 0 | ||
42 | OUTPUT oFog = result.fogcoord; #output fog coord | ||
43 | |||
44 | #fix input blending weight | ||
45 | ARL address.x, iWeight.x; | ||
46 | FRC scaledWeight.x, iWeight; | ||
47 | |||
48 | #Output position and normal | ||
49 | MUL dots, mat[address.x + 1], {1,1,1,1}; | ||
50 | SUB blendMat, dots, mat[address.x + 0]; | ||
51 | MAD blendMat, scaledWeight.x, blendMat, mat[address.x + 0]; | ||
52 | DP4 blendPos.x, blendMat, iPos; | ||
53 | DP3 blendNorm.x, blendMat, iNormal; | ||
54 | |||
55 | MUL dots, mat[address.x + 16], {1,1,1,1}; | ||
56 | SUB blendMat, dots, mat[address.x + 15]; | ||
57 | MAD blendMat, scaledWeight.x, blendMat, mat[address.x + 15]; | ||
58 | DP4 blendPos.y, blendMat, iPos; | ||
59 | DP3 blendNorm.y, blendMat, iNormal; | ||
60 | |||
61 | |||
62 | MUL dots, mat[address.x + 31], {1,1,1,1}; | ||
63 | SUB blendMat, dots, mat[address.x + 30]; | ||
64 | MAD blendMat, scaledWeight.x, blendMat, mat[address.x + 30]; | ||
65 | DP4 blendPos.z, blendMat, iPos; | ||
66 | DP3 blendNorm.z, blendMat, iNormal; | ||
67 | MOV blendPos.w, {0, 0, 0, 1}; | ||
68 | |||
69 | #renormalize normal | ||
70 | #add "backlighting" effect | ||
71 | ADD blendNorm, blendNorm, {0, 0, -0.2, 0}; | ||
72 | DP3 divisor.w, blendNorm, blendNorm; | ||
73 | RSQ divisor.xyz, divisor.w; | ||
74 | MUL blendNorm.xyz, blendNorm, divisor; | ||
75 | |||
76 | |||
77 | #Projection | ||
78 | DP4 oPos.x, proj[0], blendPos; | ||
79 | DP4 oPos.y, proj[1], blendPos; | ||
80 | DP4 oPos.z, proj[2], blendPos; | ||
81 | DP4 oPos.w, proj[3], blendPos; | ||
82 | |||
83 | |||
84 | #Light 0 | ||
85 | DP3 colorAcc.xyz, blendNorm, lightDir0; | ||
86 | MAD colorAcc.xyz, colorAcc, {0.55, 0.55, 0.55, 0.55}, {0.3, 0.3, 0.3, 0.3}; | ||
87 | MAX colorAcc, colorAcc, {0, 0, 0, 0}; | ||
88 | |||
89 | # Accumulate color contributions. | ||
90 | MAD colorAcc.xyz, colorAcc.x, diffuseCol0, modelAmbient; | ||
91 | MOV colorAcc.w, {0, 0, 0, 1.0}; | ||
92 | |||
93 | #Light 1 | ||
94 | DP3 dots.x, blendNorm, lightDir1; | ||
95 | |||
96 | #Light 2 | ||
97 | SUB lightDir, lightPos2, blendPos; | ||
98 | DP3 divisor.w, lightDir, lightDir; | ||
99 | RSQ divisor.xyz, divisor.w; | ||
100 | MUL lightDir.xyz, lightDir, divisor; | ||
101 | |||
102 | DP3 dots.y, blendNorm, lightDir; | ||
103 | |||
104 | #Light 3 | ||
105 | SUB lightDir, lightPos3, blendPos; | ||
106 | DP3 divisor.w, lightDir, lightDir; | ||
107 | RSQ divisor.xyz, divisor.w; | ||
108 | MUL lightDir.xyz, lightDir, divisor; | ||
109 | |||
110 | DP3 dots.z, blendNorm, lightDir; | ||
111 | |||
112 | #Apply lights | ||
113 | MAD dots, dots, {0.55, 0.55, 0.55, 0.55}, {0.3, 0.3, 0.3, 0.3}; | ||
114 | MAX dots, dots, {0, 0, 0, 0}; | ||
115 | MAD colorAcc.xyz, dots.x, diffuseCol1, colorAcc; | ||
116 | MAD colorAcc.xyz, dots.y, diffuseCol2, colorAcc; | ||
117 | MAD colorAcc.xyz, dots.z, diffuseCol3, colorAcc; | ||
118 | |||
119 | #Output color | ||
120 | MUL oCol0, materialDiffuse, colorAcc; | ||
121 | |||
122 | #Output tex coordinate | ||
123 | MOV oTex0, iTex0; | ||
124 | |||
125 | #Output fog | ||
126 | MOV oFog.x, blendPos.z; | ||
127 | |||
128 | END | ||
diff --git a/linden/indra/newview/app_settings/skinned_avatar_select.vp b/linden/indra/newview/app_settings/skinned_avatar_select.vp deleted file mode 100644 index 28506b0..0000000 --- a/linden/indra/newview/app_settings/skinned_avatar_select.vp +++ /dev/null | |||
@@ -1,60 +0,0 @@ | |||
1 | !!ARBvp1.0 | ||
2 | # Vertex Program for lit, skinned avatars | ||
3 | |||
4 | # Parameters | ||
5 | PARAM mat[45] = { program.env[0..44] }; | ||
6 | PARAM proj[4] = { state.matrix.projection }; | ||
7 | PARAM materialDiffuse = state.material.diffuse; | ||
8 | |||
9 | # Per vertex inputs | ||
10 | ATTRIB iPos = vertex.position; | ||
11 | ATTRIB iTex0 = vertex.texcoord[0]; | ||
12 | ATTRIB iWeight = vertex.attrib[1]; | ||
13 | |||
14 | # Temporaries | ||
15 | TEMP blendMat; | ||
16 | TEMP blendPos; # skinned vertex pos | ||
17 | TEMP childPos; | ||
18 | TEMP parentPos; | ||
19 | TEMP dots; # dot product for lighting calculations | ||
20 | TEMP scaledWeight; | ||
21 | |||
22 | ALIAS divisor = blendMat; # divisor for normalization process | ||
23 | |||
24 | ADDRESS address; | ||
25 | |||
26 | # Outputs | ||
27 | OUTPUT oPos = result.position; #position | ||
28 | OUTPUT oCol0 = result.color; #primary color | ||
29 | OUTPUT oTex0 = result.texcoord[0]; #texture coordinate set 0 | ||
30 | |||
31 | #fix input blending weight | ||
32 | ARL address.x, iWeight.x; | ||
33 | FRC scaledWeight.x, iWeight; | ||
34 | |||
35 | #Output position and normal | ||
36 | DP4 parentPos.x, mat[address.x + 0], iPos; | ||
37 | DP4 parentPos.y, mat[address.x + 15], iPos; | ||
38 | DP4 parentPos.z, mat[address.x + 30], iPos; | ||
39 | |||
40 | DP4 childPos.x, mat[address.x + 1], iPos; | ||
41 | DP4 childPos.y, mat[address.x + 16], iPos; | ||
42 | DP4 childPos.z, mat[address.x + 31], iPos; | ||
43 | |||
44 | SUB blendPos, childPos, parentPos; | ||
45 | MAD blendPos, scaledWeight.x, blendPos, parentPos; | ||
46 | MOV blendPos.w, {0, 0, 0, 1}; | ||
47 | |||
48 | #Projection | ||
49 | DP4 oPos.x, proj[0], blendPos; | ||
50 | DP4 oPos.y, proj[1], blendPos; | ||
51 | DP4 oPos.z, proj[2], blendPos; | ||
52 | DP4 oPos.w, proj[3], blendPos; | ||
53 | |||
54 | #Output color | ||
55 | MOV oCol0, materialDiffuse; | ||
56 | |||
57 | #Output tex coordinate | ||
58 | MOV oTex0, iTex0; | ||
59 | |||
60 | END | ||
diff --git a/linden/indra/newview/app_settings/skinned_avatar_wind.vp b/linden/indra/newview/app_settings/skinned_avatar_wind.vp deleted file mode 100644 index 5f40086..0000000 --- a/linden/indra/newview/app_settings/skinned_avatar_wind.vp +++ /dev/null | |||
@@ -1,211 +0,0 @@ | |||
1 | !!ARBvp1.0 | ||
2 | # Vertex Program for lit, skinned avatars | ||
3 | |||
4 | # Parameters | ||
5 | PARAM gMat[45] = { program.env[0..44] }; | ||
6 | PARAM gEmbossScale = program.env[63]; | ||
7 | PARAM gWindDir = program.env[60]; # wind direction with strength stored in w | ||
8 | PARAM gSinWaveParams = program.env[61]; # frequency, frequency2, frequency, phase | ||
9 | PARAM gGravity = program.env[62]; | ||
10 | PARAM gMinMaxConstants = {1.0, 0.166666, 0.0083143, .00018542}; #minimax-generated coefficients | ||
11 | PARAM gPiConstants = {0.159154943, 6.28318530, 3.141592653, 1.5707963}; # {1/2PI, 2PI, PI, PI/2} | ||
12 | PARAM gProj[4] = { state.matrix.projection }; | ||
13 | PARAM gModelAmbient = state.lightmodel.ambient; | ||
14 | PARAM gMaterialDiffuse = state.material.diffuse; | ||
15 | PARAM gLightDir0 = state.light[0].position; | ||
16 | PARAM gDiffuseCol0 = state.light[0].diffuse; | ||
17 | PARAM gLightDir1 = state.light[1].position; | ||
18 | PARAM gDiffuseCol1 = state.light[1].diffuse; | ||
19 | PARAM gLightPos2 = state.light[2].position; | ||
20 | PARAM gDiffuseCol2 = state.light[2].diffuse; | ||
21 | PARAM gLightPos3 = state.light[3].position; | ||
22 | PARAM gDiffuseCol3 = state.light[3].diffuse; | ||
23 | |||
24 | # Per vertex inputs | ||
25 | ATTRIB iPos = vertex.position; | ||
26 | ATTRIB iNormal = vertex.normal; | ||
27 | ATTRIB iTex0 = vertex.texcoord[0]; | ||
28 | ATTRIB iTex1 = vertex.texcoord[1]; | ||
29 | ATTRIB iWeight = vertex.attrib[1]; | ||
30 | ATTRIB iClothing = vertex.attrib[4]; | ||
31 | ATTRIB iBinormal = vertex.attrib[6]; | ||
32 | |||
33 | # Temporaries | ||
34 | TEMP blendMatX; | ||
35 | TEMP blendMatY; | ||
36 | TEMP blendMatZ; | ||
37 | TEMP blendPos; # weighted sum of tpos0 and tpos1 | ||
38 | TEMP blendNorm; # weighted sum of eyeNormal0 and eyeNormal1 | ||
39 | TEMP blendBinorm; # result of skinned binormal | ||
40 | TEMP temp0; | ||
41 | TEMP temp1; # another general purpose temp | ||
42 | TEMP temp2; | ||
43 | |||
44 | ALIAS blendTangent = temp2; # result of skinned tangent | ||
45 | |||
46 | ALIAS colorAcc = temp0; | ||
47 | ALIAS offsetPos = temp1; | ||
48 | ALIAS dots = temp1; # dot product for lighting calculations | ||
49 | ALIAS scaledWeight = temp0; # vertex weight as decoded from input weight | ||
50 | ALIAS divisor = temp2; | ||
51 | ALIAS sinWave = temp0; | ||
52 | ALIAS windEffect = temp2; | ||
53 | ALIAS lightDir = blendMatX; | ||
54 | |||
55 | ADDRESS address; | ||
56 | |||
57 | # Outputs | ||
58 | OUTPUT oPos = result.position; # position | ||
59 | OUTPUT oCol0 = result.color; # primary color | ||
60 | OUTPUT oTex0 = result.texcoord[0]; # texture coordinate set 0 | ||
61 | OUTPUT oTex1 = result.texcoord[1]; # texture coordinate set 1 | ||
62 | OUTPUT oFog = result.fogcoord; # output fog coordinates | ||
63 | |||
64 | #fix input blending weight | ||
65 | ARL address.x, iWeight.x; | ||
66 | FRC scaledWeight.x, iWeight; | ||
67 | |||
68 | # Blend joint matrices | ||
69 | MUL blendMatX, gMat[address.x + 1], {1,1,1,1}; | ||
70 | SUB blendMatX, blendMatX, gMat[address.x + 0]; | ||
71 | MAD blendMatX, scaledWeight.x, blendMatX, gMat[address.x + 0]; | ||
72 | DP3 blendNorm.x, blendMatX, iNormal; | ||
73 | DP3 blendBinorm.x, blendMatX, iBinormal; | ||
74 | |||
75 | MUL blendMatY, gMat[address.x + 16], {1,1,1,1}; | ||
76 | SUB blendMatY, blendMatY, gMat[address.x + 15]; | ||
77 | MAD blendMatY, scaledWeight.x, blendMatY, gMat[address.x + 15]; | ||
78 | DP3 blendNorm.y, blendMatY, iNormal; | ||
79 | DP3 blendBinorm.y, blendMatY, iBinormal; | ||
80 | |||
81 | MUL blendMatZ, gMat[address.x + 31], {1,1,1,1}; | ||
82 | SUB blendMatZ, blendMatZ, gMat[address.x + 30]; | ||
83 | MAD blendMatZ, scaledWeight.x, blendMatZ, gMat[address.x + 30]; | ||
84 | DP3 blendNorm.z, blendMatZ, iNormal; | ||
85 | DP3 blendBinorm.z, blendMatZ, iBinormal; | ||
86 | |||
87 | #wind | ||
88 | DP3 windEffect, blendNorm, gWindDir; | ||
89 | DP3 blendPos.x, blendMatZ, iPos; | ||
90 | MAD windEffect.xyz, blendPos.x, {0.015, 0.015, 0.015, 0}, windEffect; | ||
91 | MAD windEffect.w, windEffect, {0, 0, 0, 2}, {0, 0, 0, 1}; # move wind offset value to [-1, 3] | ||
92 | MUL windEffect.w, windEffect, gWindDir; # modulate wind strength | ||
93 | MAD windEffect.xyz, windEffect, gSinWaveParams, gSinWaveParams.w; # use sin wave params to scale and offset input | ||
94 | |||
95 | #reduce to period of 2 PI | ||
96 | MUL temp1.xyz, windEffect, gPiConstants.x; # change input as multiple of [0-2PI] to [0-1] | ||
97 | EXP temp0, temp1.x; # find mod(x, 1) | ||
98 | MUL windEffect.x, temp0.y, gPiConstants.y; # scale from [0,1] to [0, 2PI] | ||
99 | ADD temp1.z, temp1.z, -gPiConstants.w; # shift normal oscillation by PI/2 | ||
100 | EXP temp0, temp1.z; # find mod(x, 1) | ||
101 | |||
102 | MUL windEffect.z, temp0.y, gPiConstants.y; # scale from [0,1] to [0, 2PI] | ||
103 | |||
104 | # offset to [-PI, PI] | ||
105 | ADD windEffect.xyz, windEffect, {-3.141592, -3.141592, -3.141592, -3.141592}; | ||
106 | |||
107 | #calculate sinusoid | ||
108 | MUL temp1, windEffect, windEffect; # x^2 | ||
109 | MAD sinWave, -temp1, gMinMaxConstants.w, gMinMaxConstants.z; # y = -(x^2)/7! + 1/5! | ||
110 | MAD sinWave, sinWave, -temp1, gMinMaxConstants.y; # y = -(x^2) * (-(x^2)/7! + 1/5!) + 1/3! | ||
111 | MAD sinWave, sinWave, -temp1, gMinMaxConstants.x; # y = -(x^2) * (-(x^2) * (-(x^2)/7! + 1/5!) + 1/3!) + 1 | ||
112 | MUL sinWave, sinWave, windEffect; # y = x * (-(x^2) * (-(x^2) * (-(x^2)/7! + 1/5!) + 1/3!) + 1) | ||
113 | |||
114 | # sinWave.x holds sin(norm . wind_direction) with primary frequency | ||
115 | # sinWave.y holds sin(norm . wind_direction) with secondary frequency | ||
116 | # sinWave.z hold cos(norm . wind_direction) with primary frequency | ||
117 | MAD sinWave.xyz, sinWave, gWindDir.w, windEffect.w; # multiply by wind strength in gWindDir.w [-wind, wind] | ||
118 | # add normal facing bias offset [-wind,wind] -> [-wind - .25, wind + 1] | ||
119 | DP3 temp1, blendNorm, gGravity; # how much is this normal facing in direction of gGravity? | ||
120 | MIN temp1, temp1, {0.2, 0, 0, 0}; # clamp [-1, 1] to [-1, 0.2] | ||
121 | MUL temp1, temp1, {1.5, 0, 0, 0}; # scale from [-1,0.2] to [-1.5, 0.3] | ||
122 | ADD sinWave.x, sinWave, temp1; # add gGravity effect to sinwave (only primary frequency) | ||
123 | MUL sinWave.xyz, sinWave, iClothing.w; # modulate by clothing coverage | ||
124 | #MAD temp2, {1,1,1,1}, iClothing.w, {-1,-1,-1,-1}; | ||
125 | #ADD sinWave, sinWave, temp2; | ||
126 | MAX sinWave.xyz, sinWave, {-1, -1, -1, -1}; # clamp to underlying body shape | ||
127 | MUL offsetPos, iClothing, sinWave.x; # multiply wind effect times clothing displacement | ||
128 | MAD temp2, gWindDir, sinWave.z, blendNorm; # calculate normal offset due to wind oscillation | ||
129 | MAD offsetPos, {1.0, 1.0, 1.0, 0.0}, offsetPos, iPos; # add to offset vertex position, and zero out effect from w | ||
130 | MAD blendNorm, temp2, {2, 2, 2, 2}, blendNorm; # add sin wave effect on normals (exaggerated) | ||
131 | |||
132 | #add "backlighting" effect | ||
133 | SUB colorAcc, {1, 1, 1, 1}, iClothing; | ||
134 | MAD blendNorm, colorAcc.w, {0, 0, -0.2, 0}, blendNorm; | ||
135 | |||
136 | #renormalize normal (again) | ||
137 | DP3 divisor.w, blendNorm, blendNorm; | ||
138 | RSQ divisor.xyz, divisor.w; | ||
139 | MUL blendNorm.xyz, blendNorm, divisor; | ||
140 | |||
141 | #project binormal to normal plane to ensure orthogonality | ||
142 | DP3 temp2, blendNorm, blendBinorm; | ||
143 | SUB blendBinorm, blendBinorm, temp2; | ||
144 | |||
145 | #renormalize binormal | ||
146 | DP3 divisor.w, blendBinorm, blendBinorm; | ||
147 | RSQ divisor.xyz, divisor.w; | ||
148 | MUL blendBinorm.xyz, blendBinorm, divisor; | ||
149 | |||
150 | #tangent = binormal X normal | ||
151 | XPD blendTangent, blendNorm, blendBinorm; | ||
152 | |||
153 | #oTex1 = iTex0 + LLVector2( gLightDir0 * tangent, gLightDir0 * binormal ); | ||
154 | DP3 blendTangent.x, gLightDir0, blendTangent; | ||
155 | DP3 blendTangent.y, gLightDir0, blendBinorm; | ||
156 | MAD oTex1, gEmbossScale.x, blendTangent, iTex0; | ||
157 | |||
158 | #Output position | ||
159 | DP4 blendPos.x, blendMatX, offsetPos; | ||
160 | DP4 blendPos.y, blendMatY, offsetPos; | ||
161 | DP4 blendPos.z, blendMatZ, offsetPos; | ||
162 | MOV blendPos.w, {0, 0, 0, 1}; | ||
163 | |||
164 | #Projection | ||
165 | DP4 oPos.x, gProj[0], blendPos; | ||
166 | DP4 oPos.y, gProj[1], blendPos; | ||
167 | DP4 oPos.z, gProj[2], blendPos; | ||
168 | DP4 oPos.w, gProj[3], blendPos; | ||
169 | |||
170 | #Light 0 | ||
171 | DP3 colorAcc.x, blendNorm, gLightDir0; | ||
172 | MAD colorAcc.x, colorAcc.x, {0.55, 0.55, 0.55, 0.55}, {0.3, 0.3, 0.3, 0.3}; | ||
173 | MAX colorAcc, colorAcc, {0, 0, 0, 0}; | ||
174 | |||
175 | # Accumulate color contributions. | ||
176 | MAD colorAcc.xyz, colorAcc.x, gDiffuseCol0, gModelAmbient; | ||
177 | |||
178 | #Light 1 | ||
179 | DP3 dots.x, blendNorm, gLightDir1; | ||
180 | |||
181 | #Light 2 | ||
182 | SUB lightDir, gLightPos2, blendPos; | ||
183 | DP3 divisor.w, lightDir, lightDir; | ||
184 | RSQ divisor.xyz, divisor.w; | ||
185 | MUL lightDir, lightDir, divisor; | ||
186 | DP3 dots.y, blendNorm, lightDir; | ||
187 | |||
188 | #Light 3 | ||
189 | SUB lightDir, gLightPos3, blendPos; | ||
190 | DP3 divisor.w, lightDir, lightDir; | ||
191 | RSQ divisor.xyz, divisor.w; | ||
192 | MUL lightDir, lightDir, divisor; | ||
193 | DP3 dots.z, blendNorm, lightDir; | ||
194 | |||
195 | MAD dots, dots, {0.55, 0.55, 0.55, 0.55}, {0.3, 0.3, 0.3, 0.3}; | ||
196 | MAX dots, dots, {0, 0, 0, 0}; | ||
197 | MAD colorAcc, dots.x, gDiffuseCol1, colorAcc; | ||
198 | MAD colorAcc, dots.y, gDiffuseCol2, colorAcc; | ||
199 | MAD colorAcc, dots.z, gDiffuseCol3, colorAcc; | ||
200 | |||
201 | #Output color | ||
202 | MOV colorAcc.w, {0, 0, 0, 1.0}; | ||
203 | MUL oCol0, gMaterialDiffuse, colorAcc; | ||
204 | |||
205 | #Output tex coordinate | ||
206 | MOV oTex0, iTex0; | ||
207 | |||
208 | #Output fog | ||
209 | MOV oFog.x, blendPos.z; | ||
210 | |||
211 | END | ||
diff --git a/linden/indra/newview/files.lst b/linden/indra/newview/files.lst index f2603d8..15062ae 100644 --- a/linden/indra/newview/files.lst +++ b/linden/indra/newview/files.lst | |||
@@ -1,6 +1,7 @@ | |||
1 | newview/llagent.cpp | 1 | newview/llagent.cpp |
2 | newview/llagentdata.cpp | 2 | newview/llagentdata.cpp |
3 | newview/llagentpilot.cpp | 3 | newview/llagentpilot.cpp |
4 | newview/llanimstatelabels.cpp | ||
4 | newview/llappviewer.cpp | 5 | newview/llappviewer.cpp |
5 | newview/llappviewerlinux.cpp | 6 | newview/llappviewerlinux.cpp |
6 | newview/llassetuploadresponders.cpp | 7 | newview/llassetuploadresponders.cpp |
@@ -251,6 +252,7 @@ newview/llstatbar.cpp | |||
251 | newview/llstatgraph.cpp | 252 | newview/llstatgraph.cpp |
252 | newview/llstatusbar.cpp | 253 | newview/llstatusbar.cpp |
253 | newview/llstatview.cpp | 254 | newview/llstatview.cpp |
255 | newview/llstylemap.cpp | ||
254 | newview/llsurface.cpp | 256 | newview/llsurface.cpp |
255 | newview/llsurfacepatch.cpp | 257 | newview/llsurfacepatch.cpp |
256 | newview/lltexlayer.cpp | 258 | newview/lltexlayer.cpp |
@@ -279,6 +281,7 @@ newview/lltoolselectland.cpp | |||
279 | newview/lltoolselectrect.cpp | 281 | newview/lltoolselectrect.cpp |
280 | newview/lltoolview.cpp | 282 | newview/lltoolview.cpp |
281 | newview/lltracker.cpp | 283 | newview/lltracker.cpp |
284 | newview/lltrans.cpp | ||
282 | newview/lluploaddialog.cpp | 285 | newview/lluploaddialog.cpp |
283 | newview/llurl.cpp | 286 | newview/llurl.cpp |
284 | newview/llurldispatcher.cpp | 287 | newview/llurldispatcher.cpp |
@@ -348,6 +351,7 @@ newview/llvotree.cpp | |||
348 | newview/llvovolume.cpp | 351 | newview/llvovolume.cpp |
349 | newview/llvowater.cpp | 352 | newview/llvowater.cpp |
350 | newview/llvowlsky.cpp | 353 | newview/llvowlsky.cpp |
354 | newview/llwatchdog.cpp | ||
351 | newview/llwaterparammanager.cpp | 355 | newview/llwaterparammanager.cpp |
352 | newview/llwaterparamset.cpp | 356 | newview/llwaterparamset.cpp |
353 | newview/llwearable.cpp | 357 | newview/llwearable.cpp |
diff --git a/linden/indra/newview/installers/windows/installer_template.nsi b/linden/indra/newview/installers/windows/installer_template.nsi index 8db336f..836780d 100644 --- a/linden/indra/newview/installers/windows/installer_template.nsi +++ b/linden/indra/newview/installers/windows/installer_template.nsi | |||
@@ -87,7 +87,6 @@ SetShellVarContext all ; install for all users (if you change this, change it | |||
87 | 87 | ||
88 | ; Start with some default values. | 88 | ; Start with some default values. |
89 | StrCpy $INSTFLAGS "${INSTFLAGS}" | 89 | StrCpy $INSTFLAGS "${INSTFLAGS}" |
90 | StrCpy $INSTFLAGS "$INSTFLAGS $LANGFLAGS" | ||
91 | StrCpy $INSTPROG "${INSTNAME}" | 90 | StrCpy $INSTPROG "${INSTNAME}" |
92 | StrCpy $INSTEXE "${INSTEXE}" | 91 | StrCpy $INSTEXE "${INSTEXE}" |
93 | StrCpy $INSTSHORTCUT "${SHORTCUT}" | 92 | StrCpy $INSTSHORTCUT "${SHORTCUT}" |
@@ -933,26 +932,6 @@ Function .onInit | |||
933 | 932 | ||
934 | ; save language in registry | 933 | ; save language in registry |
935 | WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" $LANGUAGE | 934 | WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" $LANGUAGE |
936 | |||
937 | ; generate language ID that will be used as a command line arg | ||
938 | StrCmp $LANGUAGE "1042" 0 +3 | ||
939 | StrCpy $LANGFLAGS " --set SystemLanguage ko" | ||
940 | Goto EndOfFunc | ||
941 | |||
942 | StrCmp $LANGUAGE "1041" 0 +3 | ||
943 | StrCpy $LANGFLAGS " --set SystemLanguage ja" | ||
944 | Goto EndOfFunc | ||
945 | |||
946 | StrCmp $LANGUAGE "1031" 0 +3 | ||
947 | StrCpy $LANGFLAGS " --set SystemLanguage de" | ||
948 | Goto EndOfFunc | ||
949 | |||
950 | StrCmp $LANGUAGE "1033" 0 +3 | ||
951 | StrCpy $LANGFLAGS " --set SystemLanguage en-us" | ||
952 | Goto EndOfFunc | ||
953 | |||
954 | EndOfFunc: | ||
955 | |||
956 | FunctionEnd | 935 | FunctionEnd |
957 | 936 | ||
958 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 937 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
diff --git a/linden/indra/newview/linux_tools/client-readme.txt b/linden/indra/newview/linux_tools/client-readme.txt index 87087be..179cb9e 100644 --- a/linden/indra/newview/linux_tools/client-readme.txt +++ b/linden/indra/newview/linux_tools/client-readme.txt | |||
@@ -12,7 +12,7 @@ Life itself - please see <http://www.secondlife.com/whatis/>. | |||
12 | 5. Troubleshooting | 12 | 5. Troubleshooting |
13 | 5.1. 'Error creating window.' | 13 | 5.1. 'Error creating window.' |
14 | 5.2. System hangs | 14 | 5.2. System hangs |
15 | 5.3. 'Shiny' and client performance | 15 | 5.3. Blank window after minimizing it |
16 | 5.4. Audio | 16 | 5.4. Audio |
17 | 5.5. 'Alt' key for camera controls doesn't work | 17 | 5.5. 'Alt' key for camera controls doesn't work |
18 | 5.6. In-world movie playback | 18 | 5.6. In-world movie playback |
@@ -98,16 +98,6 @@ you wish. | |||
98 | These are the most commonly-encountered known issues which are specific to | 98 | These are the most commonly-encountered known issues which are specific to |
99 | the Beta release of the Linux client. | 99 | the Beta release of the Linux client. |
100 | 100 | ||
101 | * VISUAL EFFECTS AND PERFORMANCE - many Linux graphics drivers are not as | ||
102 | robust as their counterparts for other operating systems, so some advanced | ||
103 | Second Life graphical features have been DISABLED by default to aid | ||
104 | stability. See PROBLEM 3 in the TROUBLESHOOTING section if you wish to | ||
105 | turn these on to possibly enhance your experience. | ||
106 | |||
107 | * MISC - The following features are not currently fully implemented on the | ||
108 | Linux client and are therefore known not to work properly: | ||
109 | * Full Unicode font rendering | ||
110 | |||
111 | * UPLOAD / SAVE / COLOR-PICKER DIALOGS - These only appear when the client | 101 | * UPLOAD / SAVE / COLOR-PICKER DIALOGS - These only appear when the client |
112 | is in 'windowed' mode, not 'fullscreen' mode. | 102 | is in 'windowed' mode, not 'fullscreen' mode. |
113 | 103 | ||
@@ -156,29 +146,21 @@ SOLUTION:- As a last resort, you can disable most of Second Life's advanced | |||
156 | graphics features by editing the 'secondlife' script and removing the '#' | 146 | graphics features by editing the 'secondlife' script and removing the '#' |
157 | from the line which reads '#export LL_GL_NOEXT=x' | 147 | from the line which reads '#export LL_GL_NOEXT=x' |
158 | 148 | ||
159 | PROBLEM 3:- Performance or graphical quality are not as high as I expect. | 149 | PROBLEM 3:- After I minimize the Second Life window, it's just blank when |
160 | PROBLEM:- 'SHINY' doesn't work. | 150 | it comes back. |
161 | PROBLEM:- I can't turn on Anisotropic Filtering, Ripple Water, or AGP. | 151 | SOLUTION:- Some Linux desktop 'Visual Effects' features are incompatible |
162 | SOLUTION:- Some graphics performance features in Second Life are disabled | 152 | with Second Life. One reported solution is to use your desktop |
163 | by default for the Linux version due to stability issues with some common | 153 | configuration program to disable such effects. For example, on Ubuntu 7.10, |
164 | Linux graphic drivers. You can re-enable these features at the slight | 154 | use the desktop toolbar menu to select System -> Preferences -> Appearance, |
165 | risk of decreasing system stability. To do so: | 155 | then change 'Visual Effects' to 'None'. |
166 | * Edit the 'secondlife' script. Comment-out these lines by putting a '#' | 156 | |
167 | in front of them: 'export LL_GL_BASICEXT=x', 'export LL_GL_NOEXT=x', | 157 | PROBLEM 4:- Music and sound effects are silent or very stuttery. |
168 | 'export LL_GL_BLACKLIST=abcdefghijklmno'. | 158 | SOLUTION:- The most common solution is to ensure that you have the 'esd' |
169 | * Now start Second Life. Some advanced performance features will now be | 159 | program (part of the 'esound' package) installed and running before you |
170 | automatically used, and some new options in Preferences will now be | 160 | start Second Life. Users of Ubuntu (and some other) Linux systems can |
171 | available to you; there is no guarantee, however, that they will | 161 | simply run the following to install and configure 'esound': |
172 | positively affect performance! | 162 | sudo apt-get install esound |
173 | SOLUTION:- If you are not running an official Second Life client obtained from | 163 | For others, simply running 'esd&' from a command-line should get it running. |
174 | secondlife.com, you should consider doing so as you may find its | ||
175 | performance to be superior to third-party versions. | ||
176 | |||
177 | PROBLEM 4:- Sound effects seem to 'lag' a fraction of a second behind | ||
178 | actions. | ||
179 | SOLUTION:- You may uncomment the 'LL_BAD_ESD' line in the 'secondlife' script | ||
180 | to get more responsive audio. However, if you do this then you may | ||
181 | encounter audio issues or a hang during login, so beware. | ||
182 | 164 | ||
183 | PROBLEM 5:- Using the 'Alt' key to control the camera doesn't work or just | 165 | PROBLEM 5:- Using the 'Alt' key to control the camera doesn't work or just |
184 | moves the Second Life window. | 166 | moves the Second Life window. |
diff --git a/linden/indra/newview/linux_tools/unicode.ttf b/linden/indra/newview/linux_tools/unicode.ttf deleted file mode 120000 index 91e6150..0000000 --- a/linden/indra/newview/linux_tools/unicode.ttf +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | /usr/share/fonts/truetype/kochi/kochi-gothic.ttf \ No newline at end of file | ||
diff --git a/linden/indra/newview/linux_tools/wrapper.sh b/linden/indra/newview/linux_tools/wrapper.sh index 1b7d6b8..eaa2f61 100755 --- a/linden/indra/newview/linux_tools/wrapper.sh +++ b/linden/indra/newview/linux_tools/wrapper.sh | |||
@@ -43,7 +43,7 @@ | |||
43 | ## in the bin directory will be stripped: you should replace it with | 43 | ## in the bin directory will be stripped: you should replace it with |
44 | ## an unstripped binary before you run. | 44 | ## an unstripped binary before you run. |
45 | #export LL_WRAPPER='gdb --args' | 45 | #export LL_WRAPPER='gdb --args' |
46 | #export LL_WRAPPER='valgrind --smc-check=all --log-file=secondlife.vg --leak-check=full --suppressions=/usr/lib/valgrind/glibc-2.5.supp --suppressions=secondlife-i686.supp' | 46 | #export LL_WRAPPER='valgrind --smc-check=all --error-limit=no --log-file=secondlife.vg --leak-check=full --suppressions=/usr/lib/valgrind/glibc-2.5.supp --suppressions=secondlife-i686.supp' |
47 | 47 | ||
48 | ## - Avoids an often-buggy X feature that doesn't really benefit us anyway. | 48 | ## - Avoids an often-buggy X feature that doesn't really benefit us anyway. |
49 | export SDL_VIDEO_X11_DGAMOUSE=0 | 49 | export SDL_VIDEO_X11_DGAMOUSE=0 |
@@ -104,7 +104,7 @@ if [ -n "$LL_RUN_ERR" ]; then | |||
104 | if [ "$LL_RUN_ERR" = "runerr" ]; then | 104 | if [ "$LL_RUN_ERR" = "runerr" ]; then |
105 | # generic error running the binary | 105 | # generic error running the binary |
106 | echo '*** Unclean shutdown. ***' | 106 | echo '*** Unclean shutdown. ***' |
107 | if [ "`arch`" = "x86_64" ]; then | 107 | if [ "`uname -m`" = "x86_64" ]; then |
108 | echo | 108 | echo |
109 | cat << EOFMARKER | 109 | cat << EOFMARKER |
110 | You are running the Second Life Viewer on a x86_64 platform. The | 110 | You are running the Second Life Viewer on a x86_64 platform. The |
diff --git a/linden/indra/newview/llagent.cpp b/linden/indra/newview/llagent.cpp index 397a11e..1d3c5d4 100644 --- a/linden/indra/newview/llagent.cpp +++ b/linden/indra/newview/llagent.cpp | |||
@@ -5823,6 +5823,7 @@ void LLAgent::teleportViaLure(const LLUUID& lure_id, BOOL godlike) | |||
5823 | msg->addUUIDFast(_PREHASH_AgentID, getID()); | 5823 | msg->addUUIDFast(_PREHASH_AgentID, getID()); |
5824 | msg->addUUIDFast(_PREHASH_SessionID, getSessionID()); | 5824 | msg->addUUIDFast(_PREHASH_SessionID, getSessionID()); |
5825 | msg->addUUIDFast(_PREHASH_LureID, lure_id); | 5825 | msg->addUUIDFast(_PREHASH_LureID, lure_id); |
5826 | // teleport_flags is a legacy field, now derived sim-side: | ||
5826 | msg->addU32("TeleportFlags", teleport_flags); | 5827 | msg->addU32("TeleportFlags", teleport_flags); |
5827 | sendReliableMessage(); | 5828 | sendReliableMessage(); |
5828 | } | 5829 | } |
diff --git a/linden/indra/llwindow/llwindowlinux.cpp b/linden/indra/newview/llanimstatelabels.cpp index 6c026e4..c51740f 100644 --- a/linden/indra/llwindow/llwindowlinux.cpp +++ b/linden/indra/newview/llanimstatelabels.cpp | |||
@@ -1,6 +1,6 @@ | |||
1 | /** | 1 | /** |
2 | * @file llwindowlinux.cpp | 2 | * @file llanimationstatenames.cpp |
3 | * @brief Platform-dependent implementation of llwindow | 3 | * @brief Names for built-in animation states |
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
@@ -29,33 +29,11 @@ | |||
29 | * $/LicenseInfo$ | 29 | * $/LicenseInfo$ |
30 | */ | 30 | */ |
31 | 31 | ||
32 | #if LL_LINUX | 32 | #include "llviewerprecompiledheaders.h" |
33 | #include "llanimstatelabels.h" | ||
34 | #include "lltrans.h" | ||
33 | 35 | ||
34 | #include "linden_common.h" | 36 | std::string LLAnimStateLabels::getStateLabel( const char *animName ) |
35 | #include "indra_constants.h" | ||
36 | |||
37 | #include "llwindowlinux.h" | ||
38 | #include "llgl.h" | ||
39 | #include "llglheaders.h" | ||
40 | |||
41 | // | ||
42 | // LLWindowLinux | ||
43 | // | ||
44 | LLWindowLinux::LLWindowLinux(char *title, char *name, S32 x, S32 y, S32 width, S32 height, | ||
45 | U32 flags, BOOL fullscreen, BOOL clearBg, | ||
46 | BOOL disable_vsync, BOOL use_gl, BOOL ignore_pixel_depth) | ||
47 | : LLWindow(fullscreen, flags) | ||
48 | { | ||
49 | llerrs << "Linux window not yet supported" << llendl; | ||
50 | } | ||
51 | |||
52 | |||
53 | LLWindowLinux::~LLWindowLinux() | ||
54 | { | 37 | { |
38 | return LLTrans::getString("anim_" + LLString(animName) ); | ||
55 | } | 39 | } |
56 | |||
57 | void LLWindowLinux::swapBuffers() | ||
58 | { | ||
59 | } | ||
60 | |||
61 | #endif // LL_LINUX | ||
diff --git a/linden/indra/llrender/llvertexprogramgl.h b/linden/indra/newview/llanimstatelabels.h index f9190f9..db1c1d8 100644 --- a/linden/indra/llrender/llvertexprogramgl.h +++ b/linden/indra/newview/llanimstatelabels.h | |||
@@ -1,10 +1,11 @@ | |||
1 | /** | 1 | /** |
2 | * @file llvertexprogramgl.h | 2 | * @file llanimstatelabels.h |
3 | * @brief LLVertexProgramGL base class | 3 | * @brief Declaration of LLVOAvatar class which is a derivation fo |
4 | * LLViewerObject | ||
4 | * | 5 | * |
5 | * $LicenseInfo:firstyear=2003&license=viewergpl$ | 6 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 7 | * |
7 | * Copyright (c) 2003-2008, Linden Research, Inc. | 8 | * Copyright (c) 2001-2008, Linden Research, Inc. |
8 | * | 9 | * |
9 | * Second Life Viewer Source Code | 10 | * Second Life Viewer Source Code |
10 | * 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 |
@@ -29,27 +30,13 @@ | |||
29 | * $/LicenseInfo$ | 30 | * $/LicenseInfo$ |
30 | */ | 31 | */ |
31 | 32 | ||
32 | #ifndef LL_LLVERTEXPROGRAMGL_H | 33 | #ifndef LL_LLANIMSTATELABELS_H |
33 | #define LL_LLVERTEXPROGRAMGL_H | 34 | #define LL_LLANIMSTATELABELS_H |
34 | 35 | ||
35 | // This file contains the definition of LLVertexProgramGL, | 36 | class LLAnimStateLabels |
36 | // for purposes of running vertex programs on GL hardware. | ||
37 | |||
38 | #include "llgl.h" | ||
39 | |||
40 | class LLVertexProgramGL | ||
41 | { | 37 | { |
42 | public: | 38 | public: |
43 | LLVertexProgramGL(); | 39 | static std::string getStateLabel( const char *animName ); |
44 | ~LLVertexProgramGL(); | ||
45 | |||
46 | void bind(); | ||
47 | void unbind(); | ||
48 | |||
49 | BOOL load(const char * filename); | ||
50 | |||
51 | private: | ||
52 | LLGLuint mVertexProgramID; | ||
53 | }; | 40 | }; |
54 | 41 | ||
55 | #endif // LL_LLVERTEXPROGRAMGL_H | 42 | #endif // LL_ANIMSTATELABELS_H |
diff --git a/linden/indra/newview/llappviewer.cpp b/linden/indra/newview/llappviewer.cpp index 4a9a158..c6f4cdd 100644 --- a/linden/indra/newview/llappviewer.cpp +++ b/linden/indra/newview/llappviewer.cpp | |||
@@ -64,7 +64,7 @@ | |||
64 | #include "llurldispatcher.h" | 64 | #include "llurldispatcher.h" |
65 | #include "llurlhistory.h" | 65 | #include "llurlhistory.h" |
66 | #include "llfirstuse.h" | 66 | #include "llfirstuse.h" |
67 | #include "llglimmediate.h" | 67 | #include "llrender.h" |
68 | 68 | ||
69 | #include "llweb.h" | 69 | #include "llweb.h" |
70 | #include "llsecondlifeurls.h" | 70 | #include "llsecondlifeurls.h" |
@@ -102,6 +102,7 @@ | |||
102 | #include "audioengine.h" | 102 | #include "audioengine.h" |
103 | #include "llviewermenu.h" | 103 | #include "llviewermenu.h" |
104 | #include "llselectmgr.h" | 104 | #include "llselectmgr.h" |
105 | #include "lltrans.h" | ||
105 | #include "lltracker.h" | 106 | #include "lltracker.h" |
106 | #include "llviewerparcelmgr.h" | 107 | #include "llviewerparcelmgr.h" |
107 | #include "llworldmapview.h" | 108 | #include "llworldmapview.h" |
@@ -121,6 +122,7 @@ | |||
121 | #include "llhudeffecttrail.h" | 122 | #include "llhudeffecttrail.h" |
122 | #include "llvectorperfoptions.h" | 123 | #include "llvectorperfoptions.h" |
123 | #include "llurlsimstring.h" | 124 | #include "llurlsimstring.h" |
125 | #include "llwatchdog.h" | ||
124 | 126 | ||
125 | // Included so that constants/settings might be initialized | 127 | // Included so that constants/settings might be initialized |
126 | // in save_settings_to_globals() | 128 | // in save_settings_to_globals() |
@@ -160,6 +162,13 @@ | |||
160 | 162 | ||
161 | #include "llcommandlineparser.h" | 163 | #include "llcommandlineparser.h" |
162 | 164 | ||
165 | // annoying detail to determine whether font prefs are over-ridden | ||
166 | #if LL_LINUX | ||
167 | # define LL_DYNAMIC_FONT_DISCOVERY 1 | ||
168 | #else | ||
169 | # define LL_DYNAMIC_FONT_DISCOVERY 0 | ||
170 | #endif | ||
171 | |||
163 | // *FIX: These extern globals should be cleaned up. | 172 | // *FIX: These extern globals should be cleaned up. |
164 | // The globals either represent state/config/resource-storage of either | 173 | // The globals either represent state/config/resource-storage of either |
165 | // this app, or another 'component' of the viewer. App globals should be | 174 | // this app, or another 'component' of the viewer. App globals should be |
@@ -183,24 +192,6 @@ | |||
183 | // viewer.cpp - these are only used in viewer, should be easily moved. | 192 | // viewer.cpp - these are only used in viewer, should be easily moved. |
184 | extern void disable_win_error_reporting(); | 193 | extern void disable_win_error_reporting(); |
185 | 194 | ||
186 | //#define APPLE_PREVIEW // Define this if you're doing a preview build on the Mac | ||
187 | #if LL_RELEASE_FOR_DOWNLOAD | ||
188 | // Default userserver for production builds is agni | ||
189 | #ifndef APPLE_PREVIEW | ||
190 | static EGridInfo GridDefaultChoice = GRID_INFO_AGNI; | ||
191 | #else | ||
192 | static EGridInfo GridDefaultChoice = GRID_INFO_ADITI; | ||
193 | #endif | ||
194 | #else | ||
195 | // Default userserver for development builds is none | ||
196 | static EGridInfo GridDefaultChoice = GRID_INFO_NONE; | ||
197 | #endif | ||
198 | |||
199 | #if LL_WINDOWS | ||
200 | extern void create_console(); | ||
201 | #endif | ||
202 | |||
203 | |||
204 | #if LL_DARWIN | 195 | #if LL_DARWIN |
205 | #include <Carbon/Carbon.h> | 196 | #include <Carbon/Carbon.h> |
206 | extern void init_apple_menu(const char* product); | 197 | extern void init_apple_menu(const char* product); |
@@ -214,6 +205,7 @@ extern OSStatus DisplayReleaseNotes(void); | |||
214 | 205 | ||
215 | extern BOOL gRandomizeFramerate; | 206 | extern BOOL gRandomizeFramerate; |
216 | extern BOOL gPeriodicSlowFrame; | 207 | extern BOOL gPeriodicSlowFrame; |
208 | extern BOOL gDebugGL; | ||
217 | 209 | ||
218 | //////////////////////////////////////////////////////////// | 210 | //////////////////////////////////////////////////////////// |
219 | // All from the last globals push... | 211 | // All from the last globals push... |
@@ -413,7 +405,8 @@ static void settings_modify() | |||
413 | LLVOAvatar::sUseImpostors = gSavedSettings.getBOOL("RenderUseImpostors"); | 405 | LLVOAvatar::sUseImpostors = gSavedSettings.getBOOL("RenderUseImpostors"); |
414 | LLVOSurfacePatch::sLODFactor = gSavedSettings.getF32("RenderTerrainLODFactor"); | 406 | LLVOSurfacePatch::sLODFactor = gSavedSettings.getF32("RenderTerrainLODFactor"); |
415 | LLVOSurfacePatch::sLODFactor *= LLVOSurfacePatch::sLODFactor; //sqaure lod factor to get exponential range of [1,4] | 407 | LLVOSurfacePatch::sLODFactor *= LLVOSurfacePatch::sLODFactor; //sqaure lod factor to get exponential range of [1,4] |
416 | gGL.setClever(gSavedSettings.getBOOL("RenderUseCleverUI")); | 408 | gDebugGL = gSavedSettings.getBOOL("RenderDebugGL"); |
409 | gDebugPipeline = gSavedSettings.getBOOL("RenderDebugPipeline"); | ||
417 | 410 | ||
418 | #if LL_VECTORIZE | 411 | #if LL_VECTORIZE |
419 | if (gSysCPU.hasAltivec()) | 412 | if (gSysCPU.hasAltivec()) |
@@ -453,73 +446,35 @@ static void settings_modify() | |||
453 | gSavedSettings.setBOOL("PTTCurrentlyEnabled", TRUE); //gSavedSettings.getBOOL("EnablePushToTalk")); | 446 | gSavedSettings.setBOOL("PTTCurrentlyEnabled", TRUE); //gSavedSettings.getBOOL("EnablePushToTalk")); |
454 | } | 447 | } |
455 | 448 | ||
456 | void initGridChoice() | 449 | void LLAppViewer::initGridChoice() |
457 | { | 450 | { |
458 | LLString gridChoice = gSavedSettings.getString("GridChoice"); | 451 | // Load up the initial grid choice from: |
459 | if(!gridChoice.empty()) | 452 | // - hard coded defaults... |
460 | // Used to show first chunk of each argument passed in the | 453 | // - command line settings... |
461 | // window title. | 454 | // - if dev build, persisted settings... |
462 | { | ||
463 | // find the grid choice from the user setting. | ||
464 | int gridIndex = GRID_INFO_NONE; | ||
465 | for(;gridIndex < GRID_INFO_OTHER; ++gridIndex ) | ||
466 | { | ||
467 | if(0 == LLString::compareInsensitive(gGridInfo[gridIndex].mLabel, gridChoice.c_str())) | ||
468 | { | ||
469 | gGridChoice = (EGridInfo)gridIndex; | ||
470 | |||
471 | if(GRID_INFO_LOCAL == gGridChoice) | ||
472 | { | ||
473 | gGridName = LOOPBACK_ADDRESS_STRING; | ||
474 | break; | ||
475 | } | ||
476 | else | ||
477 | { | ||
478 | gGridName = gGridInfo[gGridChoice].mName; | ||
479 | break; | ||
480 | } | ||
481 | } | ||
482 | } | ||
483 | |||
484 | if(GRID_INFO_OTHER == gridIndex) | ||
485 | { | ||
486 | // *FIX:MEP Can and should we validate that this is an IP address? | ||
487 | gGridChoice = (EGridInfo)gridIndex; | ||
488 | gGridName = llformat("%s", gSavedSettings.getString("GridChoice").c_str()); | ||
489 | |||
490 | } | ||
491 | } | ||
492 | 455 | ||
456 | // Set the "grid choice", this is specified by command line. | ||
457 | std::string grid_choice = gSavedSettings.getString("CmdLineGridChoice"); | ||
458 | LLViewerLogin::getInstance()->setGridChoice(grid_choice); | ||
493 | 459 | ||
494 | #if !LL_RELEASE_FOR_DOWNLOAD | 460 | #if !LL_RELEASE_FOR_DOWNLOAD |
495 | if (gGridChoice == GRID_INFO_NONE) | 461 | // Development version: load last server choice by default |
462 | // ignored is the command line grid choice has been set | ||
463 | if(grid_choice.empty()) | ||
496 | { | 464 | { |
497 | // Development version: load last server choice by default (overridden by cmd line args) | 465 | S32 server = gSavedSettings.getS32("ServerChoice"); |
498 | S32 server = gSavedSettings.getS32("ServerChoice"); | 466 | server = llclamp(server, 0, (S32)GRID_INFO_COUNT - 1); |
499 | if (server != 0) | 467 | if(server == GRID_INFO_OTHER) |
500 | gGridChoice = (EGridInfo)llclamp(server, 0, (S32)GRID_INFO_COUNT - 1); | ||
501 | if (server == GRID_INFO_OTHER) | ||
502 | { | 468 | { |
503 | LLString custom_server = gSavedSettings.getString("CustomServer"); | 469 | LLString custom_server = gSavedSettings.getString("CustomServer"); |
504 | if (custom_server.empty()) | 470 | LLViewerLogin::getInstance()->setGridChoice(custom_server); |
505 | { | 471 | } |
506 | gGridName = "none"; | 472 | else if(server != 0) |
507 | } | 473 | { |
508 | else | 474 | LLViewerLogin::getInstance()->setGridChoice((EGridInfo)server); |
509 | { | ||
510 | gGridName = custom_server.c_str(); | ||
511 | } | ||
512 | } | 475 | } |
513 | |||
514 | gSavedSettings.setString("GridChoice", gGridInfo[gGridChoice].mLabel); | ||
515 | } | 476 | } |
516 | #endif | 477 | #endif |
517 | |||
518 | if (gGridChoice == GRID_INFO_NONE) | ||
519 | { | ||
520 | gGridChoice = GridDefaultChoice; | ||
521 | gSavedSettings.setString("GridChoice", gGridInfo[gGridChoice].mLabel); | ||
522 | } | ||
523 | } | 478 | } |
524 | 479 | ||
525 | bool send_url_to_other_instance(const std::string& url) | 480 | bool send_url_to_other_instance(const std::string& url) |
@@ -583,23 +538,22 @@ LLAppViewer::LLAppViewer() : | |||
583 | } | 538 | } |
584 | 539 | ||
585 | sInstance = this; | 540 | sInstance = this; |
541 | |||
542 | // Initialize the mainloop timeout. | ||
543 | mMainloopTimeout = new LLWatchdogTimeout(); | ||
586 | } | 544 | } |
587 | 545 | ||
588 | LLAppViewer::~LLAppViewer() | 546 | LLAppViewer::~LLAppViewer() |
589 | { | 547 | { |
548 | // Initialize the mainloop timeout. | ||
549 | delete mMainloopTimeout; | ||
550 | |||
590 | // If we got to this destructor somehow, the app didn't hang. | 551 | // If we got to this destructor somehow, the app didn't hang. |
591 | removeMarkerFile(); | 552 | removeMarkerFile(); |
592 | } | 553 | } |
593 | 554 | ||
594 | bool LLAppViewer::init() | 555 | bool LLAppViewer::init() |
595 | { | 556 | { |
596 | // *NOTE:Mani - LLCurl::initClass is not thread safe. | ||
597 | // Called before threads are created. | ||
598 | LLCurl::initClass(); | ||
599 | |||
600 | initThreads(); | ||
601 | |||
602 | |||
603 | // | 557 | // |
604 | // Start of the application | 558 | // Start of the application |
605 | // | 559 | // |
@@ -612,7 +566,6 @@ bool LLAppViewer::init() | |||
612 | // that touches files should really go through the lldir API | 566 | // that touches files should really go through the lldir API |
613 | gDirUtilp->initAppDirs("SecondLife"); | 567 | gDirUtilp->initAppDirs("SecondLife"); |
614 | 568 | ||
615 | |||
616 | initLogging(); | 569 | initLogging(); |
617 | 570 | ||
618 | // | 571 | // |
@@ -621,6 +574,12 @@ bool LLAppViewer::init() | |||
621 | if (!initConfiguration()) | 574 | if (!initConfiguration()) |
622 | return false; | 575 | return false; |
623 | 576 | ||
577 | // *NOTE:Mani - LLCurl::initClass is not thread safe. | ||
578 | // Called before threads are created. | ||
579 | LLCurl::initClass(); | ||
580 | |||
581 | initThreads(); | ||
582 | |||
624 | writeSystemInfo(); | 583 | writeSystemInfo(); |
625 | 584 | ||
626 | // Build a string representing the current version number. | 585 | // Build a string representing the current version number. |
@@ -640,7 +599,7 @@ bool LLAppViewer::init() | |||
640 | // | 599 | // |
641 | // Various introspection concerning the libs we're using. | 600 | // Various introspection concerning the libs we're using. |
642 | // | 601 | // |
643 | llinfos << "J2C Engine is: " << LLImageJ2C::getEngineInfo() << llendl; | 602 | LL_DEBUGS("InitInfo") << "J2C Engine is: " << LLImageJ2C::getEngineInfo() << LL_ENDL; |
644 | 603 | ||
645 | // Get the single value from the crash settings file, if it exists | 604 | // Get the single value from the crash settings file, if it exists |
646 | std::string crash_settings_filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, CRASH_SETTINGS_FILE); | 605 | std::string crash_settings_filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, CRASH_SETTINGS_FILE); |
@@ -683,15 +642,15 @@ bool LLAppViewer::init() | |||
683 | 642 | ||
684 | // Load art UUID information, don't require these strings to be declared in code. | 643 | // Load art UUID information, don't require these strings to be declared in code. |
685 | LLString colors_base_filename = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "colors_base.xml"); | 644 | LLString colors_base_filename = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "colors_base.xml"); |
686 | llinfos << "Loading base colors from " << colors_base_filename << llendl; | 645 | LL_DEBUGS("InitInfo") << "Loading base colors from " << colors_base_filename << LL_ENDL; |
687 | gColors.loadFromFileLegacy(colors_base_filename.c_str(), FALSE, TYPE_COL4U); | 646 | gColors.loadFromFileLegacy(colors_base_filename.c_str(), FALSE, TYPE_COL4U); |
688 | 647 | ||
689 | // Load overrides from user colors file | 648 | // Load overrides from user colors file |
690 | LLString user_colors_filename = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "colors.xml"); | 649 | LLString user_colors_filename = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "colors.xml"); |
691 | llinfos << "Loading user colors from " << user_colors_filename << llendl; | 650 | LL_DEBUGS("InitInfo") << "Loading user colors from " << user_colors_filename << LL_ENDL; |
692 | if (gColors.loadFromFileLegacy(user_colors_filename.c_str(), FALSE, TYPE_COL4U) == 0) | 651 | if (gColors.loadFromFileLegacy(user_colors_filename.c_str(), FALSE, TYPE_COL4U) == 0) |
693 | { | 652 | { |
694 | llinfos << "Cannot load user colors from " << user_colors_filename << llendl; | 653 | LL_DEBUGS("InitInfo") << "Cannot load user colors from " << user_colors_filename << LL_ENDL; |
695 | } | 654 | } |
696 | 655 | ||
697 | // Widget construction depends on LLUI being initialized | 656 | // Widget construction depends on LLUI being initialized |
@@ -782,7 +741,7 @@ bool LLAppViewer::init() | |||
782 | #endif | 741 | #endif |
783 | 742 | ||
784 | gGLManager.getGLInfo(gDebugInfo); | 743 | gGLManager.getGLInfo(gDebugInfo); |
785 | llinfos << gGLManager.getGLInfoString() << llendl; | 744 | gGLManager.printGLInfoString(); |
786 | 745 | ||
787 | //load key settings | 746 | //load key settings |
788 | bind_keyboard_functions(); | 747 | bind_keyboard_functions(); |
@@ -790,7 +749,7 @@ bool LLAppViewer::init() | |||
790 | // Load Default bindings | 749 | // Load Default bindings |
791 | if (!gViewerKeyboard.loadBindings(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keys.ini").c_str())) | 750 | if (!gViewerKeyboard.loadBindings(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keys.ini").c_str())) |
792 | { | 751 | { |
793 | llerrs << "Unable to open keys.ini" << llendl; | 752 | LL_ERRS("InitInfo") << "Unable to open keys.ini" << LL_ENDL; |
794 | } | 753 | } |
795 | // Load Custom bindings (override defaults) | 754 | // Load Custom bindings (override defaults) |
796 | gViewerKeyboard.loadBindings(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"custom_keys.ini").c_str()); | 755 | gViewerKeyboard.loadBindings(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"custom_keys.ini").c_str()); |
@@ -865,20 +824,16 @@ bool LLAppViewer::init() | |||
865 | gSimFrames = (F32)gFrameCount; | 824 | gSimFrames = (F32)gFrameCount; |
866 | 825 | ||
867 | LLViewerJoystick::getInstance()->init(false); | 826 | LLViewerJoystick::getInstance()->init(false); |
868 | if (LLViewerJoystick::getInstance()->isLikeSpaceNavigator()) | 827 | |
869 | { | ||
870 | if (gSavedSettings.getString("JoystickInitialized") != "SpaceNavigator") | ||
871 | { | ||
872 | LLFloaterJoystick::setSNDefaults(); | ||
873 | gSavedSettings.setString("JoystickInitialized", "SpaceNavigator"); | ||
874 | } | ||
875 | } | ||
876 | |||
877 | return true; | 828 | return true; |
878 | } | 829 | } |
879 | 830 | ||
880 | bool LLAppViewer::mainLoop() | 831 | bool LLAppViewer::mainLoop() |
881 | { | 832 | { |
833 | mMainloopTimeout = new LLWatchdogTimeout(); | ||
834 | // *FIX:Mani - Make this a setting, once new settings exist in this branch. | ||
835 | mMainloopTimeout->setTimeout(5); | ||
836 | |||
882 | //------------------------------------------- | 837 | //------------------------------------------- |
883 | // Run main loop until time to quit | 838 | // Run main loop until time to quit |
884 | //------------------------------------------- | 839 | //------------------------------------------- |
@@ -910,7 +865,7 @@ bool LLAppViewer::mainLoop() | |||
910 | { | 865 | { |
911 | LLFastTimer t2(LLFastTimer::FTM_MESSAGES); | 866 | LLFastTimer t2(LLFastTimer::FTM_MESSAGES); |
912 | #if LL_WINDOWS | 867 | #if LL_WINDOWS |
913 | if (!LLWinDebug::setupExceptionHandler()) | 868 | if (!LLWinDebug::checkExceptionHandler()) |
914 | { | 869 | { |
915 | llwarns << " Someone took over my exception handler (post messagehandling)!" << llendl; | 870 | llwarns << " Someone took over my exception handler (post messagehandling)!" << llendl; |
916 | } | 871 | } |
@@ -1059,6 +1014,8 @@ bool LLAppViewer::mainLoop() | |||
1059 | } | 1014 | } |
1060 | //LLVFSThread::sLocal->pause(); // Prevent the VFS thread from running while rendering. | 1015 | //LLVFSThread::sLocal->pause(); // Prevent the VFS thread from running while rendering. |
1061 | //LLLFSThread::sLocal->pause(); // Prevent the LFS thread from running while rendering. | 1016 | //LLLFSThread::sLocal->pause(); // Prevent the LFS thread from running while rendering. |
1017 | |||
1018 | mMainloopTimeout->ping(); | ||
1062 | } | 1019 | } |
1063 | 1020 | ||
1064 | } | 1021 | } |
@@ -1083,6 +1040,8 @@ bool LLAppViewer::mainLoop() | |||
1083 | 1040 | ||
1084 | delete gServicePump; | 1041 | delete gServicePump; |
1085 | 1042 | ||
1043 | mMainloopTimeout->stop(); | ||
1044 | |||
1086 | llinfos << "Exiting main_loop" << llendflush; | 1045 | llinfos << "Exiting main_loop" << llendflush; |
1087 | 1046 | ||
1088 | return true; | 1047 | return true; |
@@ -1346,7 +1305,9 @@ bool LLAppViewer::cleanup() | |||
1346 | gStaticVFS = NULL; | 1305 | gStaticVFS = NULL; |
1347 | delete gVFS; | 1306 | delete gVFS; |
1348 | gVFS = NULL; | 1307 | gVFS = NULL; |
1349 | 1308 | ||
1309 | LLWatchdog::getInstance()->cleanup(); | ||
1310 | |||
1350 | end_messaging_system(); | 1311 | end_messaging_system(); |
1351 | 1312 | ||
1352 | // *NOTE:Mani - The following call is not thread safe. | 1313 | // *NOTE:Mani - The following call is not thread safe. |
@@ -1380,6 +1341,14 @@ bool LLAppViewer::initThreads() | |||
1380 | #else | 1341 | #else |
1381 | static const bool enable_threads = true; | 1342 | static const bool enable_threads = true; |
1382 | #endif | 1343 | #endif |
1344 | |||
1345 | const S32 NEVER_SUBMIT_REPORT = 2; | ||
1346 | if(TRUE == gSavedSettings.getBOOL("WatchdogEnabled") | ||
1347 | && (gCrashSettings.getS32("CrashSubmitBehavior") != NEVER_SUBMIT_REPORT)) | ||
1348 | { | ||
1349 | LLWatchdog::getInstance()->init(); | ||
1350 | } | ||
1351 | |||
1383 | LLVFSThread::initClass(enable_threads && true); | 1352 | LLVFSThread::initClass(enable_threads && true); |
1384 | LLLFSThread::initClass(enable_threads && true); | 1353 | LLLFSThread::initClass(enable_threads && true); |
1385 | 1354 | ||
@@ -1434,7 +1403,7 @@ bool LLAppViewer::initLogging() | |||
1434 | } | 1403 | } |
1435 | 1404 | ||
1436 | void LLAppViewer::loadSettingsFromDirectory(ELLPath path_index) | 1405 | void LLAppViewer::loadSettingsFromDirectory(ELLPath path_index) |
1437 | { | 1406 | { |
1438 | for(LLSD::map_iterator itr = mSettingsFileList.beginMap(); itr != mSettingsFileList.endMap(); ++itr) | 1407 | for(LLSD::map_iterator itr = mSettingsFileList.beginMap(); itr != mSettingsFileList.endMap(); ++itr) |
1439 | { | 1408 | { |
1440 | LLString settings_name = (*itr).first; | 1409 | LLString settings_name = (*itr).first; |
@@ -1487,7 +1456,7 @@ std::string LLAppViewer::getSettingsFileName(const std::string& file) | |||
1487 | } | 1456 | } |
1488 | 1457 | ||
1489 | bool LLAppViewer::initConfiguration() | 1458 | bool LLAppViewer::initConfiguration() |
1490 | { | 1459 | { |
1491 | //Set up internal pointers | 1460 | //Set up internal pointers |
1492 | gSettings[sGlobalSettingsName] = &gSavedSettings; | 1461 | gSettings[sGlobalSettingsName] = &gSavedSettings; |
1493 | gSettings[sPerAccountSettingsName] = &gSavedPerAccountSettings; | 1462 | gSettings[sPerAccountSettingsName] = &gSavedPerAccountSettings; |
@@ -1523,30 +1492,17 @@ bool LLAppViewer::initConfiguration() | |||
1523 | 1492 | ||
1524 | gSavedSettings.setString("VersionChannelName", LL_CHANNEL); | 1493 | gSavedSettings.setString("VersionChannelName", LL_CHANNEL); |
1525 | 1494 | ||
1526 | #ifndef LL_RELEASE_FOR_DOWNLOAD | 1495 | #ifndef LL_RELEASE_FOR_DOWNLOAD |
1527 | gSavedSettings.setBOOL("ShowConsoleWindow", TRUE); | 1496 | gSavedSettings.setBOOL("ShowConsoleWindow", TRUE); |
1528 | gSavedSettings.setBOOL("AllowMultipleViewers", TRUE); | 1497 | gSavedSettings.setBOOL("AllowMultipleViewers", TRUE); |
1529 | #endif | 1498 | #endif |
1530 | 1499 | ||
1531 | #if LL_WINDOWS | 1500 | #if !LL_DYNAMIC_FONT_DISCOVERY |
1532 | // Lists Japanese, Korean, and Chinese sanserif fonts available in | 1501 | // static font discovery - user settings can override. |
1533 | // Windows XP and Vista, as well as "Arial Unicode MS". | ||
1534 | gSavedSettings.setString("FontSansSerifFallback", | 1502 | gSavedSettings.setString("FontSansSerifFallback", |
1535 | "MSGOTHIC.TTC;gulim.ttc;simhei.ttf;ArialUni.ttf"); | 1503 | LLWindow::getFontListSans()); |
1536 | #elif LL_DARWIN | ||
1537 | // This is a fairly complete Japanese font that ships with Mac OS X. | ||
1538 | // The first filename is in UTF8, but it shows up in the font menu as "Hiragino Kaku Gothic Pro W3". | ||
1539 | // The third filename is in UTF8, but it shows up in the font menu as "STHeiti Light" | ||
1540 | gSavedSettings.setString("FontSansSerifFallback", | ||
1541 | "\xE3\x83\x92\xE3\x83\xA9\xE3\x82\xAD\xE3\x82\x99\xE3\x83\x8E\xE8\xA7\x92\xE3\x82\xB3\xE3\x82\x99 Pro W3.otf;\xE3\x83\x92\xE3\x83\xA9\xE3\x82\xAD\xE3\x82\x99\xE3\x83\x8E\xE8\xA7\x92\xE3\x82\xB3\xE3\x82\x99 ProN W3.otf;AppleGothic.dfont;AppleGothic.ttf;\xe5\x8d\x8e\xe6\x96\x87\xe7\xbb\x86\xe9\xbb\x91.ttf"); | ||
1542 | #else | ||
1543 | // 'unicode.ttf' doesn't exist, but hopefully an international | ||
1544 | // user can take the hint and drop in their favourite local font. | ||
1545 | gSavedSettings.setString("FontSansSerifFallback", | ||
1546 | "unicode.ttf"); | ||
1547 | #endif | 1504 | #endif |
1548 | 1505 | ||
1549 | |||
1550 | // These are warnings that appear on the first experience of that condition. | 1506 | // These are warnings that appear on the first experience of that condition. |
1551 | // They are already set in the settings_default.xml file, but still need to be added to LLFirstUse | 1507 | // They are already set in the settings_default.xml file, but still need to be added to LLFirstUse |
1552 | // for disable/reset ability | 1508 | // for disable/reset ability |
@@ -1590,7 +1546,16 @@ bool LLAppViewer::initConfiguration() | |||
1590 | // Do this *before* loading the settings file | 1546 | // Do this *before* loading the settings file |
1591 | LLAlertDialog::parseAlerts("alerts.xml", &gSavedSettings, TRUE); | 1547 | LLAlertDialog::parseAlerts("alerts.xml", &gSavedSettings, TRUE); |
1592 | 1548 | ||
1593 | // - read command line settings | 1549 | #if LL_DYNAMIC_FONT_DISCOVERY |
1550 | // Linux does *dynamic* font discovery which is preferable to | ||
1551 | // whatever got written-out into the config file last time. This | ||
1552 | // does remove the ability of the user to hand-define the fallbacks | ||
1553 | // though, so from a config-management point of view this is hacky. | ||
1554 | gSavedSettings.setString("FontSansSerifFallback", | ||
1555 | LLWindow::getFontListSans()); | ||
1556 | #endif | ||
1557 | |||
1558 | // - read command line settings. | ||
1594 | LLControlGroupCLP clp; | 1559 | LLControlGroupCLP clp; |
1595 | std::string cmd_line_config = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, | 1560 | std::string cmd_line_config = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, |
1596 | "cmd_line.xml"); | 1561 | "cmd_line.xml"); |
@@ -1769,18 +1734,6 @@ bool LLAppViewer::initConfiguration() | |||
1769 | } | 1734 | } |
1770 | } | 1735 | } |
1771 | 1736 | ||
1772 | const LLControlVariable* loginuri = gSavedSettings.getControl("LoginURI"); | ||
1773 | if(loginuri && LLString::null != loginuri->getValue().asString()) | ||
1774 | { | ||
1775 | addLoginURI(loginuri->getValue().asString()); | ||
1776 | } | ||
1777 | |||
1778 | const LLControlVariable* helperuri = gSavedSettings.getControl("HelperURI"); | ||
1779 | if(helperuri && LLString::null != helperuri->getValue().asString()) | ||
1780 | { | ||
1781 | setHelperURI(helperuri->getValue().asString()); | ||
1782 | } | ||
1783 | |||
1784 | const LLControlVariable* skinfolder = gSavedSettings.getControl("SkinFolder"); | 1737 | const LLControlVariable* skinfolder = gSavedSettings.getControl("SkinFolder"); |
1785 | if(skinfolder && LLString::null != skinfolder->getValue().asString()) | 1738 | if(skinfolder && LLString::null != skinfolder->getValue().asString()) |
1786 | { | 1739 | { |
@@ -2025,7 +1978,7 @@ bool LLAppViewer::initConfiguration() | |||
2025 | 1978 | ||
2026 | bool LLAppViewer::initWindow() | 1979 | bool LLAppViewer::initWindow() |
2027 | { | 1980 | { |
2028 | llinfos << "Initializing window..." << llendl; | 1981 | LL_INFOS("AppInit") << "Initializing window..." << LL_ENDL; |
2029 | 1982 | ||
2030 | // store setting in a global for easy access and modification | 1983 | // store setting in a global for easy access and modification |
2031 | gNoRender = gSavedSettings.getBOOL("DisableRendering"); | 1984 | gNoRender = gSavedSettings.getBOOL("DisableRendering"); |
@@ -2085,6 +2038,7 @@ bool LLAppViewer::initWindow() | |||
2085 | 2038 | ||
2086 | LLAlertDialog::parseAlerts("alerts.xml"); | 2039 | LLAlertDialog::parseAlerts("alerts.xml"); |
2087 | LLNotifyBox::parseNotify("notify.xml"); | 2040 | LLNotifyBox::parseNotify("notify.xml"); |
2041 | LLTrans::parseStrings("strings.xml"); | ||
2088 | 2042 | ||
2089 | // Show watch cursor | 2043 | // Show watch cursor |
2090 | gViewerWindow->setCursor(UI_CURSOR_WAIT); | 2044 | gViewerWindow->setCursor(UI_CURSOR_WAIT); |
@@ -2160,10 +2114,6 @@ void LLAppViewer::cleanupSavedSettings() | |||
2160 | { | 2114 | { |
2161 | gSavedSettings.setF32("RenderFarClip", gAgent.mDrawDistance); | 2115 | gSavedSettings.setF32("RenderFarClip", gAgent.mDrawDistance); |
2162 | } | 2116 | } |
2163 | |||
2164 | // *REMOVE: This is now done via LLAppViewer::setCrashBehavior() | ||
2165 | // Left vestigially in case I borked it. | ||
2166 | // gCrashSettings.setS32(CRASH_BEHAVIOR_SETTING, gCrashBehavior); | ||
2167 | } | 2117 | } |
2168 | 2118 | ||
2169 | void LLAppViewer::removeCacheFiles(const char* file_mask) | 2119 | void LLAppViewer::removeCacheFiles(const char* file_mask) |
@@ -2194,22 +2144,22 @@ void LLAppViewer::writeSystemInfo() | |||
2194 | gDebugInfo["OSInfo"] = getOSInfo().getOSStringSimple(); | 2144 | gDebugInfo["OSInfo"] = getOSInfo().getOSStringSimple(); |
2195 | 2145 | ||
2196 | // Dump some debugging info | 2146 | // Dump some debugging info |
2197 | llinfos << gSecondLife | 2147 | LL_INFOS("SystemInfo") << gSecondLife |
2198 | << " version " << LL_VERSION_MAJOR << "." << LL_VERSION_MINOR << "." << LL_VERSION_PATCH | 2148 | << " version " << LL_VERSION_MAJOR << "." << LL_VERSION_MINOR << "." << LL_VERSION_PATCH |
2199 | << llendl; | 2149 | << LL_ENDL; |
2200 | 2150 | ||
2201 | // Dump the local time and time zone | 2151 | // Dump the local time and time zone |
2202 | time_t now; | 2152 | time_t now; |
2203 | time(&now); | 2153 | time(&now); |
2204 | char tbuffer[256]; /* Flawfinder: ignore */ | 2154 | char tbuffer[256]; /* Flawfinder: ignore */ |
2205 | strftime(tbuffer, 256, "%Y-%m-%dT%H:%M:%S %Z", localtime(&now)); | 2155 | strftime(tbuffer, 256, "%Y-%m-%dT%H:%M:%S %Z", localtime(&now)); |
2206 | llinfos << "Local time: " << tbuffer << llendl; | 2156 | LL_INFOS("SystemInfo") << "Local time: " << tbuffer << LL_ENDL; |
2207 | 2157 | ||
2208 | // query some system information | 2158 | // query some system information |
2209 | llinfos << "CPU info:\n" << gSysCPU << llendl; | 2159 | LL_INFOS("SystemInfo") << "CPU info:\n" << gSysCPU << LL_ENDL; |
2210 | llinfos << "Memory info:\n" << gSysMemory << llendl; | 2160 | LL_INFOS("SystemInfo") << "Memory info:\n" << gSysMemory << LL_ENDL; |
2211 | llinfos << "OS: " << getOSInfo().getOSStringSimple() << llendl; | 2161 | LL_INFOS("SystemInfo") << "OS: " << getOSInfo().getOSStringSimple() << LL_ENDL; |
2212 | llinfos << "OS info: " << getOSInfo() << llendl; | 2162 | LL_INFOS("SystemInfo") << "OS info: " << getOSInfo() << LL_ENDL; |
2213 | } | 2163 | } |
2214 | 2164 | ||
2215 | void LLAppViewer::handleSyncViewerCrash() | 2165 | void LLAppViewer::handleSyncViewerCrash() |
@@ -2221,6 +2171,8 @@ void LLAppViewer::handleSyncViewerCrash() | |||
2221 | 2171 | ||
2222 | void LLAppViewer::handleViewerCrash() | 2172 | void LLAppViewer::handleViewerCrash() |
2223 | { | 2173 | { |
2174 | llinfos << "Handle viewer crash entry." << llendl; | ||
2175 | |||
2224 | LLAppViewer* pApp = LLAppViewer::instance(); | 2176 | LLAppViewer* pApp = LLAppViewer::instance(); |
2225 | if (pApp->beingDebugged()) | 2177 | if (pApp->beingDebugged()) |
2226 | { | 2178 | { |
@@ -2287,11 +2239,11 @@ void LLAppViewer::handleViewerCrash() | |||
2287 | apr_file_t* crash_file = ll_apr_file_open(crash_file_name, LL_APR_W); | 2239 | apr_file_t* crash_file = ll_apr_file_open(crash_file_name, LL_APR_W); |
2288 | if (crash_file) | 2240 | if (crash_file) |
2289 | { | 2241 | { |
2290 | llinfos << "Created crash marker file " << crash_file_name << llendl; | 2242 | LL_INFOS("MarkerFile") << "Created crash marker file " << crash_file_name << LL_ENDL; |
2291 | } | 2243 | } |
2292 | else | 2244 | else |
2293 | { | 2245 | { |
2294 | llwarns << "Cannot create error marker file " << crash_file_name << llendl; | 2246 | LL_WARNS("MarkerFile") << "Cannot create error marker file " << crash_file_name << LL_ENDL; |
2295 | } | 2247 | } |
2296 | apr_file_close(crash_file); | 2248 | apr_file_close(crash_file); |
2297 | } | 2249 | } |
@@ -2303,6 +2255,7 @@ void LLAppViewer::handleViewerCrash() | |||
2303 | llofstream file(filename.c_str(), llofstream::binary); | 2255 | llofstream file(filename.c_str(), llofstream::binary); |
2304 | if(file.good()) | 2256 | if(file.good()) |
2305 | { | 2257 | { |
2258 | llinfos << "Handle viewer crash generating stats log." << llendl; | ||
2306 | gMessageSystem->summarizeLogs(file); | 2259 | gMessageSystem->summarizeLogs(file); |
2307 | file.close(); | 2260 | file.close(); |
2308 | } | 2261 | } |
@@ -2318,6 +2271,7 @@ void LLAppViewer::handleViewerCrash() | |||
2318 | 2271 | ||
2319 | // Close the debug file | 2272 | // Close the debug file |
2320 | pApp->closeDebug(); | 2273 | pApp->closeDebug(); |
2274 | |||
2321 | LLError::logToFile(""); | 2275 | LLError::logToFile(""); |
2322 | 2276 | ||
2323 | // Remove the marker file, since otherwise we'll spawn a process that'll keep it locked | 2277 | // Remove the marker file, since otherwise we'll spawn a process that'll keep it locked |
@@ -2348,7 +2302,7 @@ bool LLAppViewer::anotherInstanceRunning() | |||
2348 | // If the file is currently locked, that means another process is already running. | 2302 | // If the file is currently locked, that means another process is already running. |
2349 | 2303 | ||
2350 | std::string marker_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, MARKER_FILE_NAME); | 2304 | std::string marker_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, MARKER_FILE_NAME); |
2351 | llinfos << "Checking marker file for lock..." << llendl; | 2305 | LL_DEBUGS("MarkerFile") << "Checking marker file for lock..." << LL_ENDL; |
2352 | 2306 | ||
2353 | //Freeze case checks | 2307 | //Freeze case checks |
2354 | apr_file_t* fMarker = ll_apr_file_open(marker_file, LL_APR_RB); | 2308 | apr_file_t* fMarker = ll_apr_file_open(marker_file, LL_APR_RB); |
@@ -2360,19 +2314,19 @@ bool LLAppViewer::anotherInstanceRunning() | |||
2360 | if (fMarker == NULL) | 2314 | if (fMarker == NULL) |
2361 | { | 2315 | { |
2362 | // Another instance is running. Skip the rest of these operations. | 2316 | // Another instance is running. Skip the rest of these operations. |
2363 | llinfos << "Marker file is locked." << llendl; | 2317 | LL_INFOS("MarkerFile") << "Marker file is locked." << LL_ENDL; |
2364 | return TRUE; | 2318 | return TRUE; |
2365 | } | 2319 | } |
2366 | if (apr_file_lock(fMarker, APR_FLOCK_NONBLOCK | APR_FLOCK_EXCLUSIVE) != APR_SUCCESS) //flock(fileno(fMarker), LOCK_EX | LOCK_NB) == -1) | 2320 | if (apr_file_lock(fMarker, APR_FLOCK_NONBLOCK | APR_FLOCK_EXCLUSIVE) != APR_SUCCESS) //flock(fileno(fMarker), LOCK_EX | LOCK_NB) == -1) |
2367 | { | 2321 | { |
2368 | apr_file_close(fMarker); | 2322 | apr_file_close(fMarker); |
2369 | llinfos << "Marker file is locked." << llendl; | 2323 | LL_INFOS("MarkerFile") << "Marker file is locked." << LL_ENDL; |
2370 | return TRUE; | 2324 | return TRUE; |
2371 | } | 2325 | } |
2372 | // No other instances; we'll lock this file now & delete on quit. | 2326 | // No other instances; we'll lock this file now & delete on quit. |
2373 | apr_file_close(fMarker); | 2327 | apr_file_close(fMarker); |
2374 | } | 2328 | } |
2375 | llinfos << "Marker file isn't locked." << llendl; | 2329 | LL_DEBUGS("MarkerFile") << "Marker file isn't locked." << LL_ENDL; |
2376 | return FALSE; | 2330 | return FALSE; |
2377 | } | 2331 | } |
2378 | 2332 | ||
@@ -2383,7 +2337,7 @@ void LLAppViewer::initMarkerFile() | |||
2383 | //There are marker files for two different types of crashes | 2337 | //There are marker files for two different types of crashes |
2384 | 2338 | ||
2385 | mMarkerFileName = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,MARKER_FILE_NAME); | 2339 | mMarkerFileName = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,MARKER_FILE_NAME); |
2386 | llinfos << "Checking marker file for lock..." << llendl; | 2340 | LL_DEBUGS("MarkerFile") << "Checking marker file for lock..." << LL_ENDL; |
2387 | 2341 | ||
2388 | //We've got 4 things to test for here | 2342 | //We've got 4 things to test for here |
2389 | // - Other Process Running (SecondLife.exec_marker present, locked) | 2343 | // - Other Process Running (SecondLife.exec_marker present, locked) |
@@ -2401,7 +2355,7 @@ void LLAppViewer::initMarkerFile() | |||
2401 | if(fMarker != NULL) | 2355 | if(fMarker != NULL) |
2402 | { | 2356 | { |
2403 | apr_file_close(fMarker); | 2357 | apr_file_close(fMarker); |
2404 | llinfos << "Last exec LLError crashed, setting LastExecEvent to " << LAST_EXEC_LLERROR_CRASH << llendl; | 2358 | LL_INFOS("MarkerFile") << "Last exec LLError crashed, setting LastExecEvent to " << LAST_EXEC_LLERROR_CRASH << LL_ENDL; |
2405 | gLastExecEvent = LAST_EXEC_LOGOUT_FROZE; | 2359 | gLastExecEvent = LAST_EXEC_LOGOUT_FROZE; |
2406 | } | 2360 | } |
2407 | fMarker = ll_apr_file_open(llerror_marker_file, LL_APR_RB); | 2361 | fMarker = ll_apr_file_open(llerror_marker_file, LL_APR_RB); |
@@ -2416,7 +2370,7 @@ void LLAppViewer::initMarkerFile() | |||
2416 | if(fMarker != NULL) | 2370 | if(fMarker != NULL) |
2417 | { | 2371 | { |
2418 | apr_file_close(fMarker); | 2372 | apr_file_close(fMarker); |
2419 | llinfos << "Last exec crashed, setting LastExecEvent to " << LAST_EXEC_OTHER_CRASH << llendl; | 2373 | LL_INFOS("MarkerFile") << "Last exec crashed, setting LastExecEvent to " << LAST_EXEC_OTHER_CRASH << LL_ENDL; |
2420 | if(gLastExecEvent == LAST_EXEC_LOGOUT_FROZE) gLastExecEvent = LAST_EXEC_LOGOUT_CRASH; | 2374 | if(gLastExecEvent == LAST_EXEC_LOGOUT_FROZE) gLastExecEvent = LAST_EXEC_LOGOUT_CRASH; |
2421 | else gLastExecEvent = LAST_EXEC_OTHER_CRASH; | 2375 | else gLastExecEvent = LAST_EXEC_OTHER_CRASH; |
2422 | } | 2376 | } |
@@ -2436,34 +2390,33 @@ void LLAppViewer::initMarkerFile() | |||
2436 | { | 2390 | { |
2437 | apr_file_close(fMarker); | 2391 | apr_file_close(fMarker); |
2438 | gLastExecEvent = LAST_EXEC_FROZE; | 2392 | gLastExecEvent = LAST_EXEC_FROZE; |
2439 | llinfos << "Exec marker found: program froze on previous execution" << llendl; | 2393 | LL_INFOS("MarkerFile") << "Exec marker found: program froze on previous execution" << LL_ENDL; |
2440 | } | 2394 | } |
2441 | 2395 | ||
2442 | // Create the marker file for this execution & lock it | 2396 | // Create the marker file for this execution & lock it |
2443 | mMarkerFile = ll_apr_file_open(mMarkerFileName, LL_APR_W); | 2397 | mMarkerFile = ll_apr_file_open(mMarkerFileName, LL_APR_W); |
2444 | if (mMarkerFile) | 2398 | if (mMarkerFile) |
2445 | { | 2399 | { |
2446 | llinfos << "Marker file created." << llendl; | 2400 | LL_DEBUGS("MarkerFile") << "Marker file created." << LL_ENDL; |
2447 | } | 2401 | } |
2448 | else | 2402 | else |
2449 | { | 2403 | { |
2450 | llinfos << "Failed to create marker file." << llendl; | 2404 | LL_INFOS("MarkerFile") << "Failed to create marker file." << LL_ENDL; |
2451 | return; | 2405 | return; |
2452 | } | 2406 | } |
2453 | if (apr_file_lock(mMarkerFile, APR_FLOCK_NONBLOCK | APR_FLOCK_EXCLUSIVE) != APR_SUCCESS) | 2407 | if (apr_file_lock(mMarkerFile, APR_FLOCK_NONBLOCK | APR_FLOCK_EXCLUSIVE) != APR_SUCCESS) |
2454 | { | 2408 | { |
2455 | apr_file_close(mMarkerFile); | 2409 | apr_file_close(mMarkerFile); |
2456 | llinfos << "Marker file cannot be locked." << llendl; | 2410 | LL_INFOS("MarkerFile") << "Marker file cannot be locked." << LL_ENDL; |
2457 | return; | 2411 | return; |
2458 | } | 2412 | } |
2459 | 2413 | ||
2460 | llinfos << "Marker file locked." << llendl; | 2414 | LL_DEBUGS("MarkerFile") << "Marker file locked." << LL_ENDL; |
2461 | llinfos << "Exiting initMarkerFile()." << llendl; | ||
2462 | } | 2415 | } |
2463 | 2416 | ||
2464 | void LLAppViewer::removeMarkerFile(bool leave_logout_marker) | 2417 | void LLAppViewer::removeMarkerFile(bool leave_logout_marker) |
2465 | { | 2418 | { |
2466 | llinfos << "removeMarkerFile()" << llendl; | 2419 | LL_DEBUGS("MarkerFile") << "removeMarkerFile()" << LL_ENDL; |
2467 | if (mMarkerFile != NULL) | 2420 | if (mMarkerFile != NULL) |
2468 | { | 2421 | { |
2469 | ll_apr_file_remove( mMarkerFileName ); | 2422 | ll_apr_file_remove( mMarkerFileName ); |
@@ -2588,7 +2541,7 @@ bool LLAppViewer::initCache() | |||
2588 | 2541 | ||
2589 | if (!gDirUtilp->setCacheDir(gSavedSettings.getString("CacheLocation"))) | 2542 | if (!gDirUtilp->setCacheDir(gSavedSettings.getString("CacheLocation"))) |
2590 | { | 2543 | { |
2591 | llwarns << "Unable to set cache location" << llendl; | 2544 | LL_WARNS("AppCache") << "Unable to set cache location" << LL_ENDL; |
2592 | gSavedSettings.setString("CacheLocation", ""); | 2545 | gSavedSettings.setString("CacheLocation", ""); |
2593 | } | 2546 | } |
2594 | 2547 | ||
@@ -2625,7 +2578,7 @@ bool LLAppViewer::initCache() | |||
2625 | { | 2578 | { |
2626 | gSavedSettings.setU32("VFSOldSize", vfs_size_u32/MB); | 2579 | gSavedSettings.setU32("VFSOldSize", vfs_size_u32/MB); |
2627 | } | 2580 | } |
2628 | llinfos << "VFS CACHE SIZE: " << vfs_size/(1024*1024) << " MB" << llendl; | 2581 | LL_INFOS("AppCache") << "VFS CACHE SIZE: " << vfs_size/(1024*1024) << " MB" << LL_ENDL; |
2629 | 2582 | ||
2630 | // This has to happen BEFORE starting the vfs | 2583 | // This has to happen BEFORE starting the vfs |
2631 | //time_t ltime; | 2584 | //time_t ltime; |
@@ -2689,8 +2642,7 @@ bool LLAppViewer::initCache() | |||
2689 | { | 2642 | { |
2690 | sscanf(found_file.c_str() + start_pos, "%d", &old_salt); | 2643 | sscanf(found_file.c_str() + start_pos, "%d", &old_salt); |
2691 | } | 2644 | } |
2692 | llinfos << "Default vfs data file not present, found " << old_vfs_data_file << llendl; | 2645 | LL_DEBUGS("AppCache") << "Default vfs data file not present, found: " << old_vfs_data_file << " Old salt: " << old_salt << llendl; |
2693 | llinfos << "Old salt: " << old_salt << llendl; | ||
2694 | } | 2646 | } |
2695 | } | 2647 | } |
2696 | 2648 | ||
@@ -2702,8 +2654,8 @@ bool LLAppViewer::initCache() | |||
2702 | if (stat_result) | 2654 | if (stat_result) |
2703 | { | 2655 | { |
2704 | // We've got a bad/missing index file, nukem! | 2656 | // We've got a bad/missing index file, nukem! |
2705 | llwarns << "Bad or missing vfx index file " << old_vfs_index_file << llendl; | 2657 | LL_WARNS("AppCache") << "Bad or missing vfx index file " << old_vfs_index_file << LL_ENDL; |
2706 | llwarns << "Removing old vfs data file " << old_vfs_data_file << llendl; | 2658 | LL_WARNS("AppCache") << "Removing old vfs data file " << old_vfs_data_file << LL_ENDL; |
2707 | LLFile::remove(old_vfs_data_file); | 2659 | LLFile::remove(old_vfs_data_file); |
2708 | LLFile::remove(old_vfs_index_file); | 2660 | LLFile::remove(old_vfs_index_file); |
2709 | 2661 | ||
@@ -2740,7 +2692,7 @@ bool LLAppViewer::initCache() | |||
2740 | 2692 | ||
2741 | if (resize_vfs) | 2693 | if (resize_vfs) |
2742 | { | 2694 | { |
2743 | llinfos << "Removing old vfs and re-sizing" << llendl; | 2695 | LL_DEBUGS("AppCache") << "Removing old vfs and re-sizing" << LL_ENDL; |
2744 | 2696 | ||
2745 | LLFile::remove(old_vfs_data_file); | 2697 | LLFile::remove(old_vfs_data_file); |
2746 | LLFile::remove(old_vfs_index_file); | 2698 | LLFile::remove(old_vfs_index_file); |
@@ -2748,8 +2700,8 @@ bool LLAppViewer::initCache() | |||
2748 | else if (old_salt != new_salt) | 2700 | else if (old_salt != new_salt) |
2749 | { | 2701 | { |
2750 | // move the vfs files to a new name before opening | 2702 | // move the vfs files to a new name before opening |
2751 | llinfos << "Renaming " << old_vfs_data_file << " to " << new_vfs_data_file << llendl; | 2703 | LL_DEBUGS("AppCache") << "Renaming " << old_vfs_data_file << " to " << new_vfs_data_file << LL_ENDL; |
2752 | llinfos << "Renaming " << old_vfs_index_file << " to " << new_vfs_index_file << llendl; | 2704 | LL_DEBUGS("AppCache") << "Renaming " << old_vfs_index_file << " to " << new_vfs_index_file << LL_ENDL; |
2753 | LLFile::rename(old_vfs_data_file, new_vfs_data_file); | 2705 | LLFile::rename(old_vfs_data_file, new_vfs_data_file); |
2754 | LLFile::rename(old_vfs_index_file, new_vfs_index_file); | 2706 | LLFile::rename(old_vfs_index_file, new_vfs_index_file); |
2755 | } | 2707 | } |
@@ -2763,7 +2715,7 @@ bool LLAppViewer::initCache() | |||
2763 | { | 2715 | { |
2764 | // Try again with fresh files | 2716 | // Try again with fresh files |
2765 | // (The constructor deletes corrupt files when it finds them.) | 2717 | // (The constructor deletes corrupt files when it finds them.) |
2766 | llwarns << "VFS corrupt, deleted. Making new VFS." << llendl; | 2718 | LL_WARNS("AppCache") << "VFS corrupt, deleted. Making new VFS." << LL_ENDL; |
2767 | delete gVFS; | 2719 | delete gVFS; |
2768 | gVFS = new LLVFS(new_vfs_index_file, new_vfs_data_file, false, vfs_size_u32, false); | 2720 | gVFS = new LLVFS(new_vfs_index_file, new_vfs_data_file, false, vfs_size_u32, false); |
2769 | } | 2721 | } |
@@ -2784,9 +2736,8 @@ bool LLAppViewer::initCache() | |||
2784 | 2736 | ||
2785 | void LLAppViewer::purgeCache() | 2737 | void LLAppViewer::purgeCache() |
2786 | { | 2738 | { |
2787 | llinfos << "Purging Texture Cache..." << llendl; | 2739 | LL_INFOS("AppCache") << "Purging Cache and Texture Cache..." << llendl; |
2788 | LLAppViewer::getTextureCache()->purgeCache(LL_PATH_CACHE); | 2740 | LLAppViewer::getTextureCache()->purgeCache(LL_PATH_CACHE); |
2789 | llinfos << "Purging Cache..." << llendl; | ||
2790 | std::string mask = gDirUtilp->getDirDelimiter() + "*.*"; | 2741 | std::string mask = gDirUtilp->getDirDelimiter() + "*.*"; |
2791 | gDirUtilp->deleteFilesInDir(gDirUtilp->getExpandedFilename(LL_PATH_CACHE,"").c_str(),mask); | 2742 | gDirUtilp->deleteFilesInDir(gDirUtilp->getExpandedFilename(LL_PATH_CACHE,"").c_str(),mask); |
2792 | } | 2743 | } |
@@ -2801,61 +2752,6 @@ const LLString& LLAppViewer::getWindowTitle() const | |||
2801 | return gWindowTitle; | 2752 | return gWindowTitle; |
2802 | } | 2753 | } |
2803 | 2754 | ||
2804 | void LLAppViewer::resetURIs() const | ||
2805 | { | ||
2806 | // Clear URIs when picking a new server | ||
2807 | gLoginURIs.clear(); | ||
2808 | gHelperURI.clear(); | ||
2809 | } | ||
2810 | |||
2811 | const std::vector<std::string>& LLAppViewer::getLoginURIs() const | ||
2812 | { | ||
2813 | if (gLoginURIs.empty()) | ||
2814 | { | ||
2815 | // not specified on the command line, use value from table | ||
2816 | gLoginURIs.push_back(gGridInfo[gGridChoice].mLoginURI); | ||
2817 | } | ||
2818 | return gLoginURIs; | ||
2819 | } | ||
2820 | |||
2821 | const std::string& LLAppViewer::getHelperURI() const | ||
2822 | { | ||
2823 | if (gHelperURI.empty()) | ||
2824 | { | ||
2825 | // not specified on the command line, use value from table | ||
2826 | gHelperURI = gGridInfo[gGridChoice].mHelperURI; | ||
2827 | } | ||
2828 | return gHelperURI; | ||
2829 | } | ||
2830 | |||
2831 | void LLAppViewer::addLoginURI(const std::string& uri) | ||
2832 | { | ||
2833 | // *NOTE:Mani - login uri trumps the --grid (gGridChoice) setting. | ||
2834 | // Update gGridChoice to reflect the loginURI setting. | ||
2835 | gLoginURIs.push_back(uri); | ||
2836 | |||
2837 | const std::string& top_uri = getLoginURIs()[0]; | ||
2838 | int i = 0; | ||
2839 | for(; i < GRID_INFO_COUNT; ++i) | ||
2840 | { | ||
2841 | if(top_uri == gGridInfo[i].mLoginURI) | ||
2842 | { | ||
2843 | gGridChoice = (EGridInfo)i; | ||
2844 | break; | ||
2845 | } | ||
2846 | } | ||
2847 | |||
2848 | if(GRID_INFO_COUNT == i) | ||
2849 | { | ||
2850 | gGridChoice = GRID_INFO_OTHER; | ||
2851 | } | ||
2852 | } | ||
2853 | |||
2854 | void LLAppViewer::setHelperURI(const std::string& uri) | ||
2855 | { | ||
2856 | gHelperURI = uri; | ||
2857 | } | ||
2858 | |||
2859 | // Callback from a dialog indicating user was logged out. | 2755 | // Callback from a dialog indicating user was logged out. |
2860 | void finish_disconnect(S32 option, void* userdata) | 2756 | void finish_disconnect(S32 option, void* userdata) |
2861 | { | 2757 | { |
@@ -2916,7 +2812,7 @@ void LLAppViewer::badNetworkHandler() | |||
2916 | 2812 | ||
2917 | #if LL_WINDOWS | 2813 | #if LL_WINDOWS |
2918 | // Generates the minidump. | 2814 | // Generates the minidump. |
2919 | LLWinDebug::handleException(NULL); | 2815 | LLWinDebug::generateCrashStacks(NULL); |
2920 | #endif | 2816 | #endif |
2921 | LLAppViewer::handleSyncViewerCrash(); | 2817 | LLAppViewer::handleSyncViewerCrash(); |
2922 | LLAppViewer::handleViewerCrash(); | 2818 | LLAppViewer::handleViewerCrash(); |
@@ -2972,7 +2868,7 @@ void LLAppViewer::loadNameCache() | |||
2972 | 2868 | ||
2973 | // Try to load from the legacy format. This should go away after a | 2869 | // Try to load from the legacy format. This should go away after a |
2974 | // while. Phoenix 2008-01-30 | 2870 | // while. Phoenix 2008-01-30 |
2975 | FILE* name_cache_fp = LLFile::fopen(name_cache.c_str(), "r"); // Flawfinder: ignore | 2871 | LLFILE* name_cache_fp = LLFile::fopen(name_cache.c_str(), "r"); // Flawfinder: ignore |
2976 | if (name_cache_fp) | 2872 | if (name_cache_fp) |
2977 | { | 2873 | { |
2978 | gCacheName->importFile(name_cache_fp); | 2874 | gCacheName->importFile(name_cache_fp); |
@@ -2993,15 +2889,6 @@ void LLAppViewer::saveNameCache() | |||
2993 | } | 2889 | } |
2994 | } | 2890 | } |
2995 | 2891 | ||
2996 | bool LLAppViewer::isInProductionGrid() | ||
2997 | { | ||
2998 | // *NOTE:Mani This used to compare GRID_INFO_AGNI to gGridChoice, | ||
2999 | // but it seems that loginURI trumps that. | ||
3000 | const std::string& loginURI = getLoginURIs()[0]; | ||
3001 | return (loginURI == gGridInfo[GRID_INFO_AGNI].mLoginURI); | ||
3002 | } | ||
3003 | |||
3004 | |||
3005 | /*! @brief This class is an LLFrameTimer that can be created with | 2892 | /*! @brief This class is an LLFrameTimer that can be created with |
3006 | an elapsed time that starts counting up from the given value | 2893 | an elapsed time that starts counting up from the given value |
3007 | rather than 0.0. | 2894 | rather than 0.0. |
@@ -3694,3 +3581,19 @@ void LLAppViewer::forceErrorSoftwareException() | |||
3694 | // *FIX: Any way to insure it won't be handled? | 3581 | // *FIX: Any way to insure it won't be handled? |
3695 | throw; | 3582 | throw; |
3696 | } | 3583 | } |
3584 | |||
3585 | void LLAppViewer::startMainloopTimeout(F32 secs) | ||
3586 | { | ||
3587 | if(secs < 0.0f) | ||
3588 | { | ||
3589 | secs = gSavedSettings.getF32("MainloopTimeoutDefault"); | ||
3590 | } | ||
3591 | |||
3592 | mMainloopTimeout->setTimeout(secs); | ||
3593 | mMainloopTimeout->start(); | ||
3594 | } | ||
3595 | |||
3596 | void LLAppViewer::stopMainloopTimeout() | ||
3597 | { | ||
3598 | mMainloopTimeout->stop(); | ||
3599 | } | ||
diff --git a/linden/indra/newview/llappviewer.h b/linden/indra/newview/llappviewer.h index b3f3681..160f2c8 100644 --- a/linden/indra/newview/llappviewer.h +++ b/linden/indra/newview/llappviewer.h | |||
@@ -35,7 +35,7 @@ | |||
35 | class LLTextureCache; | 35 | class LLTextureCache; |
36 | class LLWorkerThread; | 36 | class LLWorkerThread; |
37 | class LLTextureFetch; | 37 | class LLTextureFetch; |
38 | 38 | class LLWatchdogTimeout; | |
39 | class LLCommandLineParser; | 39 | class LLCommandLineParser; |
40 | 40 | ||
41 | class LLAppViewer : public LLApp | 41 | class LLAppViewer : public LLApp |
@@ -96,13 +96,6 @@ public: | |||
96 | const LLString& getSecondLifeTitle() const; // The Second Life title. | 96 | const LLString& getSecondLifeTitle() const; // The Second Life title. |
97 | const LLString& getWindowTitle() const; // The window display name. | 97 | const LLString& getWindowTitle() const; // The window display name. |
98 | 98 | ||
99 | // Helpers for URIs | ||
100 | void addLoginURI(const std::string& uri); | ||
101 | void setHelperURI(const std::string& uri); | ||
102 | const std::vector<std::string>& getLoginURIs() const; | ||
103 | const std::string& getHelperURI() const; | ||
104 | void resetURIs() const; | ||
105 | |||
106 | void forceDisconnect(const LLString& msg); // Force disconnection, with a message to the user. | 99 | void forceDisconnect(const LLString& msg); // Force disconnection, with a message to the user. |
107 | void badNetworkHandler(); // Cause a crash state due to bad network packet. | 100 | void badNetworkHandler(); // Cause a crash state due to bad network packet. |
108 | 101 | ||
@@ -112,8 +105,6 @@ public: | |||
112 | void loadNameCache(); | 105 | void loadNameCache(); |
113 | void saveNameCache(); | 106 | void saveNameCache(); |
114 | 107 | ||
115 | bool isInProductionGrid(); | ||
116 | |||
117 | void removeMarkerFile(bool leave_logout_marker = false); | 108 | void removeMarkerFile(bool leave_logout_marker = false); |
118 | 109 | ||
119 | // LLAppViewer testing helpers. | 110 | // LLAppViewer testing helpers. |
@@ -137,6 +128,11 @@ public: | |||
137 | 128 | ||
138 | std::string getSettingsFileName(const std::string& file); | 129 | std::string getSettingsFileName(const std::string& file); |
139 | 130 | ||
131 | // For thread debugging. | ||
132 | // llstartup needs to control this. | ||
133 | // llworld, send_agent_pause() also controls this. | ||
134 | void startMainloopTimeout(F32 secs = -1.0f); | ||
135 | void stopMainloopTimeout(); | ||
140 | 136 | ||
141 | protected: | 137 | protected: |
142 | virtual bool initWindow(); // Initialize the viewer's window. | 138 | virtual bool initWindow(); // Initialize the viewer's window. |
@@ -154,6 +150,7 @@ private: | |||
154 | 150 | ||
155 | bool initThreads(); // Initialize viewer threads, return false on failure. | 151 | bool initThreads(); // Initialize viewer threads, return false on failure. |
156 | bool initConfiguration(); // Initialize settings from the command line/config file. | 152 | bool initConfiguration(); // Initialize settings from the command line/config file. |
153 | void initGridChoice(); | ||
157 | 154 | ||
158 | bool initCache(); // Initialize local client cache. | 155 | bool initCache(); // Initialize local client cache. |
159 | void purgeCache(); // Clear the local cache. | 156 | void purgeCache(); // Clear the local cache. |
@@ -207,6 +204,8 @@ private: | |||
207 | bool mLogoutRequestSent; // Disconnect message sent to simulator, no longer safe to send messages to the sim. | 204 | bool mLogoutRequestSent; // Disconnect message sent to simulator, no longer safe to send messages to the sim. |
208 | S32 mYieldTime; | 205 | S32 mYieldTime; |
209 | LLSD mSettingsFileList; | 206 | LLSD mSettingsFileList; |
207 | |||
208 | LLWatchdogTimeout* mMainloopTimeout; | ||
210 | }; | 209 | }; |
211 | 210 | ||
212 | // consts from viewer.h | 211 | // consts from viewer.h |
diff --git a/linden/indra/newview/llappviewerlinux.cpp b/linden/indra/newview/llappviewerlinux.cpp index 084df9b..e41c505 100644 --- a/linden/indra/newview/llappviewerlinux.cpp +++ b/linden/indra/newview/llappviewerlinux.cpp | |||
@@ -37,7 +37,9 @@ | |||
37 | 37 | ||
38 | #include "llmemtype.h" | 38 | #include "llmemtype.h" |
39 | #include "llviewernetwork.h" | 39 | #include "llviewernetwork.h" |
40 | #include "llviewercontrol.h" | ||
40 | #include "llmd5.h" | 41 | #include "llmd5.h" |
42 | #include "llfindlocale.h" | ||
41 | 43 | ||
42 | #include <exception> | 44 | #include <exception> |
43 | 45 | ||
@@ -129,7 +131,7 @@ static inline BOOL do_basic_glibc_backtrace() | |||
129 | 131 | ||
130 | std::string strace_filename = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,"stack_trace.log"); | 132 | std::string strace_filename = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,"stack_trace.log"); |
131 | llinfos << "Opening stack trace file " << strace_filename << llendl; | 133 | llinfos << "Opening stack trace file " << strace_filename << llendl; |
132 | FILE* StraceFile = LLFile::fopen(strace_filename.c_str(), "w"); | 134 | LLFILE* StraceFile = LLFile::fopen(strace_filename.c_str(), "w"); |
133 | if (!StraceFile) | 135 | if (!StraceFile) |
134 | { | 136 | { |
135 | llinfos << "Opening stack trace file " << strace_filename << " failed. Using stderr." << llendl; | 137 | llinfos << "Opening stack trace file " << strace_filename << " failed. Using stderr." << llendl; |
@@ -160,7 +162,7 @@ static inline BOOL do_basic_glibc_backtrace() | |||
160 | 162 | ||
161 | std::string strace_filename = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,"stack_trace.log"); | 163 | std::string strace_filename = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,"stack_trace.log"); |
162 | llinfos << "Opening stack trace file " << strace_filename << llendl; | 164 | llinfos << "Opening stack trace file " << strace_filename << llendl; |
163 | FILE* StraceFile = LLFile::fopen(strace_filename.c_str(), "w"); // Flawfinder: ignore | 165 | LLFILE* StraceFile = LLFile::fopen(strace_filename.c_str(), "w"); // Flawfinder: ignore |
164 | if (!StraceFile) | 166 | if (!StraceFile) |
165 | { | 167 | { |
166 | llinfos << "Opening stack trace file " << strace_filename << " failed. Using stderr." << llendl; | 168 | llinfos << "Opening stack trace file " << strace_filename << " failed. Using stderr." << llendl; |
@@ -198,7 +200,7 @@ static inline BOOL do_elfio_glibc_backtrace() | |||
198 | 200 | ||
199 | std::string strace_filename = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,"stack_trace.log"); | 201 | std::string strace_filename = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,"stack_trace.log"); |
200 | llinfos << "Opening stack trace file " << strace_filename << llendl; | 202 | llinfos << "Opening stack trace file " << strace_filename << llendl; |
201 | FILE* StraceFile = LLFile::fopen(strace_filename.c_str(), "w"); // Flawfinder: ignore | 203 | LLFILE* StraceFile = LLFile::fopen(strace_filename.c_str(), "w"); // Flawfinder: ignore |
202 | if (!StraceFile) | 204 | if (!StraceFile) |
203 | { | 205 | { |
204 | llinfos << "Opening stack trace file " << strace_filename << " failed. Using stderr." << llendl; | 206 | llinfos << "Opening stack trace file " << strace_filename << " failed. Using stderr." << llendl; |
@@ -346,7 +348,7 @@ void LLAppViewerLinux::handleCrashReporting() | |||
346 | {(char*)cmd.c_str(), | 348 | {(char*)cmd.c_str(), |
347 | ask_dialog, | 349 | ask_dialog, |
348 | (char*)"-user", | 350 | (char*)"-user", |
349 | (char*)gGridName.c_str(), | 351 | (char*)LLViewerLogin::getInstance()->getGridLabel().c_str(), |
350 | (char*)"-name", | 352 | (char*)"-name", |
351 | (char*)LLAppViewer::instance()->getSecondLifeTitle().c_str(), | 353 | (char*)LLAppViewer::instance()->getSecondLifeTitle().c_str(), |
352 | NULL}; | 354 | NULL}; |
@@ -432,7 +434,27 @@ bool LLAppViewerLinux::initLogging() | |||
432 | 434 | ||
433 | bool LLAppViewerLinux::initParseCommandLine(LLCommandLineParser& clp) | 435 | bool LLAppViewerLinux::initParseCommandLine(LLCommandLineParser& clp) |
434 | { | 436 | { |
435 | clp.parseCommandLine(gArgC, gArgV); | 437 | if (!clp.parseCommandLine(gArgC, gArgV)) |
438 | { | ||
439 | return false; | ||
440 | } | ||
441 | |||
442 | // Find the system language. | ||
443 | FL_Locale *locale = NULL; | ||
444 | FL_Success success = FL_FindLocale(&locale, FL_MESSAGES); | ||
445 | if (success != 0) | ||
446 | { | ||
447 | if (success >= 2 && locale->lang) // confident! | ||
448 | { | ||
449 | LLControlVariable* c = gSavedSettings.getControl("SystemLanguage"); | ||
450 | if(c) | ||
451 | { | ||
452 | c->setValue(std::string(locale->lang), false); | ||
453 | } | ||
454 | } | ||
455 | FL_FreeLocale(&locale); | ||
456 | } | ||
457 | |||
436 | return true; | 458 | return true; |
437 | } | 459 | } |
438 | 460 | ||
diff --git a/linden/indra/newview/llappviewermacosx.cpp b/linden/indra/newview/llappviewermacosx.cpp index c128634..96b6b24 100644 --- a/linden/indra/newview/llappviewermacosx.cpp +++ b/linden/indra/newview/llappviewermacosx.cpp | |||
@@ -47,7 +47,7 @@ | |||
47 | #include "llfloaterworldmap.h" | 47 | #include "llfloaterworldmap.h" |
48 | #include "llurldispatcher.h" | 48 | #include "llurldispatcher.h" |
49 | #include <Carbon/Carbon.h> | 49 | #include <Carbon/Carbon.h> |
50 | 50 | #include "lldir.h" | |
51 | namespace | 51 | namespace |
52 | { | 52 | { |
53 | // The command line args stored. | 53 | // The command line args stored. |
@@ -197,12 +197,13 @@ void LLAppViewerMacOSX::handleCrashReporting() | |||
197 | { | 197 | { |
198 | // Macintosh | 198 | // Macintosh |
199 | LLString command_str; | 199 | LLString command_str; |
200 | command_str = "open crashreporter.app"; | 200 | command_str += "open crashreporter.app"; |
201 | |||
202 | clear_signals(); | ||
203 | llinfos << "Launching crash reporter using: '" << command_str << "'" << llendl; | ||
201 | system(command_str.c_str()); /* Flawfinder: ignore */ | 204 | system(command_str.c_str()); /* Flawfinder: ignore */ |
202 | 205 | llinfos << "returned from crash reporter... dying" << llendl; | |
203 | // Sometimes signals don't seem to quit the viewer. | 206 | _exit(1); |
204 | // Make sure we exit so as to not totally confuse the user. | ||
205 | exit(1); | ||
206 | } | 207 | } |
207 | 208 | ||
208 | std::string LLAppViewerMacOSX::generateSerialNumber() | 209 | std::string LLAppViewerMacOSX::generateSerialNumber() |
diff --git a/linden/indra/newview/llappviewerwin32.cpp b/linden/indra/newview/llappviewerwin32.cpp index a2d89a3..59883e5 100644 --- a/linden/indra/newview/llappviewerwin32.cpp +++ b/linden/indra/newview/llappviewerwin32.cpp | |||
@@ -54,9 +54,23 @@ | |||
54 | 54 | ||
55 | #include "llviewernetwork.h" | 55 | #include "llviewernetwork.h" |
56 | #include "llmd5.h" | 56 | #include "llmd5.h" |
57 | #include "llfindlocale.h" | ||
57 | 58 | ||
58 | #include "llcommandlineparser.h" | 59 | #include "llcommandlineparser.h" |
59 | 60 | ||
61 | //*FIX:Mani - This hack is to fix a linker issue with libndofdev.lib | ||
62 | // The lib was compiled under VS2005 - in VS2003 we need to remap assert | ||
63 | #ifdef LL_DEBUG | ||
64 | #if (_MSC_VER < 1400) | ||
65 | extern "C" { | ||
66 | void _wassert(const wchar_t * _Message, const wchar_t *_File, unsigned _Line) | ||
67 | { | ||
68 | llerrs << _Message << llendl; | ||
69 | } | ||
70 | } | ||
71 | #endif | ||
72 | #endif | ||
73 | |||
60 | LONG WINAPI viewer_windows_exception_handler(struct _EXCEPTION_POINTERS *exception_infop) | 74 | LONG WINAPI viewer_windows_exception_handler(struct _EXCEPTION_POINTERS *exception_infop) |
61 | { | 75 | { |
62 | // *NOTE:Mani - this code is stolen from LLApp, where its never actually used. | 76 | // *NOTE:Mani - this code is stolen from LLApp, where its never actually used. |
@@ -78,7 +92,7 @@ LONG WINAPI viewer_windows_exception_handler(struct _EXCEPTION_POINTERS *excepti | |||
78 | // Generate a minidump if we can. | 92 | // Generate a minidump if we can. |
79 | // Before we wake the error thread... | 93 | // Before we wake the error thread... |
80 | // Which will start the crash reporting. | 94 | // Which will start the crash reporting. |
81 | LLWinDebug::handleException(exception_infop); | 95 | LLWinDebug::generateCrashStacks(exception_infop); |
82 | 96 | ||
83 | // Flag status to error, so thread_error starts its work | 97 | // Flag status to error, so thread_error starts its work |
84 | LLApp::setError(); | 98 | LLApp::setError(); |
@@ -118,27 +132,11 @@ int APIENTRY WINMAIN(HINSTANCE hInstance, | |||
118 | 132 | ||
119 | LLAppViewerWin32* viewer_app_ptr = new LLAppViewerWin32(lpCmdLine); | 133 | LLAppViewerWin32* viewer_app_ptr = new LLAppViewerWin32(lpCmdLine); |
120 | 134 | ||
121 | // *FIX:Mani This method is poorly named, since the exception | 135 | LLWinDebug::initExceptionHandler(viewer_windows_exception_handler); |
122 | // is now handled by LLApp. | ||
123 | bool ok = LLWinDebug::setupExceptionHandler(); | ||
124 | 136 | ||
125 | // Actually here's the exception setup. | ||
126 | LPTOP_LEVEL_EXCEPTION_FILTER prev_filter; | ||
127 | prev_filter = SetUnhandledExceptionFilter(viewer_windows_exception_handler); | ||
128 | if (!prev_filter) | ||
129 | { | ||
130 | llwarns << "Our exception handler (" << (void *)LLWinDebug::handleException << ") replaced with NULL!" << llendl; | ||
131 | ok = FALSE; | ||
132 | } | ||
133 | if (prev_filter != LLWinDebug::handleException) | ||
134 | { | ||
135 | llwarns << "Our exception handler (" << (void *)LLWinDebug::handleException << ") replaced with " << prev_filter << "!" << llendl; | ||
136 | ok = FALSE; | ||
137 | } | ||
138 | |||
139 | viewer_app_ptr->setErrorHandler(LLAppViewer::handleViewerCrash); | 137 | viewer_app_ptr->setErrorHandler(LLAppViewer::handleViewerCrash); |
140 | 138 | ||
141 | ok = viewer_app_ptr->init(); | 139 | bool ok = viewer_app_ptr->init(); |
142 | if(!ok) | 140 | if(!ok) |
143 | { | 141 | { |
144 | llwarns << "Application init failed." << llendl; | 142 | llwarns << "Application init failed." << llendl; |
@@ -326,14 +324,14 @@ bool LLAppViewerWin32::initHardwareTest() | |||
326 | 324 | ||
327 | LLSplashScreen::update("Detecting hardware..."); | 325 | LLSplashScreen::update("Detecting hardware..."); |
328 | 326 | ||
329 | llinfos << "Attempting to poll DirectX for hardware info" << llendl; | 327 | LL_DEBUGS("AppInit") << "Attempting to poll DirectX for hardware info" << LL_ENDL; |
330 | gDXHardware.setWriteDebugFunc(write_debug_dx); | 328 | gDXHardware.setWriteDebugFunc(write_debug_dx); |
331 | BOOL probe_ok = gDXHardware.getInfo(vram_only); | 329 | BOOL probe_ok = gDXHardware.getInfo(vram_only); |
332 | 330 | ||
333 | if (!probe_ok | 331 | if (!probe_ok |
334 | && gSavedSettings.getWarning("AboutDirectX9")) | 332 | && gSavedSettings.getWarning("AboutDirectX9")) |
335 | { | 333 | { |
336 | llinfos << "DirectX probe failed, alerting user." << llendl; | 334 | LL_WARNS("AppInit") << "DirectX probe failed, alerting user." << LL_ENDL; |
337 | 335 | ||
338 | // Warn them that runnin without DirectX 9 will | 336 | // Warn them that runnin without DirectX 9 will |
339 | // not allow us to tell them about driver issues | 337 | // not allow us to tell them about driver issues |
@@ -354,13 +352,13 @@ bool LLAppViewerWin32::initHardwareTest() | |||
354 | OSMB_YESNO); | 352 | OSMB_YESNO); |
355 | if (OSBTN_NO== button) | 353 | if (OSBTN_NO== button) |
356 | { | 354 | { |
357 | llinfos << "User quitting after failed DirectX 9 detection" << llendl; | 355 | LL_INFOS("AppInit") << "User quitting after failed DirectX 9 detection" << LL_ENDL; |
358 | LLWeb::loadURLExternal(DIRECTX_9_URL); | 356 | LLWeb::loadURLExternal(DIRECTX_9_URL); |
359 | return false; | 357 | return false; |
360 | } | 358 | } |
361 | gSavedSettings.setWarning("AboutDirectX9", FALSE); | 359 | gSavedSettings.setWarning("AboutDirectX9", FALSE); |
362 | } | 360 | } |
363 | llinfos << "Done polling DirectX for hardware info" << llendl; | 361 | LL_DEBUGS("AppInit") << "Done polling DirectX for hardware info" << LL_ENDL; |
364 | 362 | ||
365 | // Only probe once after installation | 363 | // Only probe once after installation |
366 | gSavedSettings.setBOOL("ProbeHardwareOnStartup", FALSE); | 364 | gSavedSettings.setBOOL("ProbeHardwareOnStartup", FALSE); |
@@ -372,20 +370,41 @@ bool LLAppViewerWin32::initHardwareTest() | |||
372 | LLSplashScreen::update(splash_msg.str().c_str()); | 370 | LLSplashScreen::update(splash_msg.str().c_str()); |
373 | } | 371 | } |
374 | 372 | ||
375 | if (!LLWinDebug::setupExceptionHandler()) | 373 | if (!LLWinDebug::checkExceptionHandler()) |
376 | { | 374 | { |
377 | llwarns << " Someone took over my exception handler (post hardware probe)!" << llendl; | 375 | LL_WARNS("AppInit") << " Someone took over my exception handler (post hardware probe)!" << LL_ENDL; |
378 | } | 376 | } |
379 | 377 | ||
380 | gGLManager.mVRAM = gDXHardware.getVRAM(); | 378 | gGLManager.mVRAM = gDXHardware.getVRAM(); |
381 | llinfos << "Detected VRAM: " << gGLManager.mVRAM << llendl; | 379 | LL_INFOS("AppInit") << "Detected VRAM: " << gGLManager.mVRAM << LL_ENDL; |
382 | 380 | ||
383 | return true; | 381 | return true; |
384 | } | 382 | } |
385 | 383 | ||
386 | bool LLAppViewerWin32::initParseCommandLine(LLCommandLineParser& clp) | 384 | bool LLAppViewerWin32::initParseCommandLine(LLCommandLineParser& clp) |
387 | { | 385 | { |
388 | return clp.parseCommandLineString(mCmdLine); | 386 | if (!clp.parseCommandLineString(mCmdLine)) |
387 | { | ||
388 | return false; | ||
389 | } | ||
390 | |||
391 | // Find the system language. | ||
392 | FL_Locale *locale = NULL; | ||
393 | FL_Success success = FL_FindLocale(&locale, FL_MESSAGES); | ||
394 | if (success != 0) | ||
395 | { | ||
396 | if (success >= 2 && locale->lang) // confident! | ||
397 | { | ||
398 | LLControlVariable* c = gSavedSettings.getControl("SystemLanguage"); | ||
399 | if(c) | ||
400 | { | ||
401 | c->setValue(std::string(locale->lang), false); | ||
402 | } | ||
403 | } | ||
404 | FL_FreeLocale(&locale); | ||
405 | } | ||
406 | |||
407 | return true; | ||
389 | } | 408 | } |
390 | 409 | ||
391 | void LLAppViewerWin32::handleSyncCrashTrace() | 410 | void LLAppViewerWin32::handleSyncCrashTrace() |
@@ -401,7 +420,7 @@ void LLAppViewerWin32::handleCrashReporting() | |||
401 | exe_path += "win_crash_logger.exe"; | 420 | exe_path += "win_crash_logger.exe"; |
402 | 421 | ||
403 | std::string arg_string = "-user "; | 422 | std::string arg_string = "-user "; |
404 | arg_string += gGridName; | 423 | arg_string += LLViewerLogin::getInstance()->getGridLabel(); |
405 | 424 | ||
406 | switch(getCrashBehavior()) | 425 | switch(getCrashBehavior()) |
407 | { | 426 | { |
diff --git a/linden/indra/newview/llbox.cpp b/linden/indra/newview/llbox.cpp index 984d15b..1e6d282 100644 --- a/linden/indra/newview/llbox.cpp +++ b/linden/indra/newview/llbox.cpp | |||
@@ -34,7 +34,7 @@ | |||
34 | #include "llbox.h" | 34 | #include "llbox.h" |
35 | 35 | ||
36 | #include "llgl.h" | 36 | #include "llgl.h" |
37 | #include "llglimmediate.h" | 37 | #include "llrender.h" |
38 | #include "llglheaders.h" | 38 | #include "llglheaders.h" |
39 | 39 | ||
40 | LLBox gBox; | 40 | LLBox gBox; |
diff --git a/linden/indra/newview/llchatbar.cpp b/linden/indra/newview/llchatbar.cpp index d1834a6..bbbdb93 100644 --- a/linden/indra/newview/llchatbar.cpp +++ b/linden/indra/newview/llchatbar.cpp | |||
@@ -144,6 +144,7 @@ BOOL LLChatBar::postBuild() | |||
144 | mInputEditor->setRevertOnEsc( FALSE ); | 144 | mInputEditor->setRevertOnEsc( FALSE ); |
145 | mInputEditor->setIgnoreTab(TRUE); | 145 | mInputEditor->setIgnoreTab(TRUE); |
146 | mInputEditor->setPassDelete(TRUE); | 146 | mInputEditor->setPassDelete(TRUE); |
147 | mInputEditor->setReplaceNewlinesWithSpaces(FALSE); | ||
147 | 148 | ||
148 | mInputEditor->setMaxTextLength(1023); | 149 | mInputEditor->setMaxTextLength(1023); |
149 | mInputEditor->setEnableLineHistory(TRUE); | 150 | mInputEditor->setEnableLineHistory(TRUE); |
diff --git a/linden/indra/newview/llcolorswatch.cpp b/linden/indra/newview/llcolorswatch.cpp index 3f18d39..64db86c 100644 --- a/linden/indra/newview/llcolorswatch.cpp +++ b/linden/indra/newview/llcolorswatch.cpp | |||
@@ -39,7 +39,7 @@ | |||
39 | 39 | ||
40 | // Project includes | 40 | // Project includes |
41 | #include "llui.h" | 41 | #include "llui.h" |
42 | #include "llglimmediate.h" | 42 | #include "llrender.h" |
43 | #include "lluiconstants.h" | 43 | #include "lluiconstants.h" |
44 | #include "llviewerwindow.h" | 44 | #include "llviewerwindow.h" |
45 | #include "llviewercontrol.h" | 45 | #include "llviewercontrol.h" |
diff --git a/linden/indra/newview/llcommandlineparser.cpp b/linden/indra/newview/llcommandlineparser.cpp index 8123632..45f33dc 100644 --- a/linden/indra/newview/llcommandlineparser.cpp +++ b/linden/indra/newview/llcommandlineparser.cpp | |||
@@ -291,12 +291,15 @@ bool LLCommandLineParser::parseAndStoreResults(po::command_line_parser& clp) | |||
291 | } | 291 | } |
292 | catch(LLCLPLastOption&) | 292 | catch(LLCLPLastOption&) |
293 | { | 293 | { |
294 | // Continue without parsing. | 294 | // This exception means a token was read after an option |
295 | std::string msg = "Found tokens past last option. Ignoring."; | 295 | // that must be the last option was reached (see url and slurl options) |
296 | llwarns << msg << llendl; | 296 | |
297 | mErrorMsg = msg; | 297 | // boost::po will have stored a malformed option. |
298 | // boost::po will have stored a mal-formed option. | ||
299 | // All such options will be removed below. | 298 | // All such options will be removed below. |
299 | // The last option read, the last_option option, and its value | ||
300 | // are put into the error message. | ||
301 | std::string last_option; | ||
302 | std::string last_value; | ||
300 | for(po::variables_map::iterator i = gVariableMap.begin(); i != gVariableMap.end();) | 303 | for(po::variables_map::iterator i = gVariableMap.begin(); i != gVariableMap.end();) |
301 | { | 304 | { |
302 | po::variables_map::iterator tempI = i++; | 305 | po::variables_map::iterator tempI = i++; |
@@ -304,7 +307,27 @@ bool LLCommandLineParser::parseAndStoreResults(po::command_line_parser& clp) | |||
304 | { | 307 | { |
305 | gVariableMap.erase(tempI); | 308 | gVariableMap.erase(tempI); |
306 | } | 309 | } |
310 | else | ||
311 | { | ||
312 | last_option = tempI->first; | ||
313 | LLCommandLineParser::token_vector_t* tv = | ||
314 | boost::any_cast<LLCommandLineParser::token_vector_t>(&(tempI->second.value())); | ||
315 | if(!tv->empty()) | ||
316 | { | ||
317 | last_value = (*tv)[tv->size()-1]; | ||
318 | } | ||
319 | } | ||
307 | } | 320 | } |
321 | |||
322 | // Continue without parsing. | ||
323 | std::ostringstream msg; | ||
324 | msg << "Caught Error: Found options after last option: " | ||
325 | << last_option << " " | ||
326 | << last_value; | ||
327 | |||
328 | llwarns << msg.str() << llendl; | ||
329 | mErrorMsg = msg.str(); | ||
330 | return false; | ||
308 | } | 331 | } |
309 | return true; | 332 | return true; |
310 | } | 333 | } |
diff --git a/linden/indra/newview/llcompilequeue.cpp b/linden/indra/newview/llcompilequeue.cpp index aeaa189..45d8e1c 100644 --- a/linden/indra/newview/llcompilequeue.cpp +++ b/linden/indra/newview/llcompilequeue.cpp | |||
@@ -386,7 +386,7 @@ void LLFloaterCompileQueue::scriptArrived(LLVFS *vfs, const LLUUID& asset_id, | |||
386 | asset_id.toString(uuid_str); | 386 | asset_id.toString(uuid_str); |
387 | snprintf(filename, sizeof(filename), "%s.%s",gDirUtilp->getExpandedFilename(LL_PATH_CACHE,uuid_str).c_str(),LLAssetType::lookup(type)); /* Flawfinder: ignore */ | 387 | snprintf(filename, sizeof(filename), "%s.%s",gDirUtilp->getExpandedFilename(LL_PATH_CACHE,uuid_str).c_str(),LLAssetType::lookup(type)); /* Flawfinder: ignore */ |
388 | 388 | ||
389 | FILE *fp = LLFile::fopen(filename, "wb"); /*Flawfinder: ignore*/ | 389 | LLFILE *fp = LLFile::fopen(filename, "wb"); /*Flawfinder: ignore*/ |
390 | if (fp) | 390 | if (fp) |
391 | { | 391 | { |
392 | const S32 buf_size = 65536; | 392 | const S32 buf_size = 65536; |
diff --git a/linden/indra/newview/llconsole.cpp b/linden/indra/newview/llconsole.cpp index 517e06f..08ef124 100644 --- a/linden/indra/newview/llconsole.cpp +++ b/linden/indra/newview/llconsole.cpp | |||
@@ -262,34 +262,38 @@ void LLConsole::addQueuedLines() | |||
262 | if (!wline.empty() && mFont != NULL) | 262 | if (!wline.empty() && mFont != NULL) |
263 | { | 263 | { |
264 | // Wrap lines that are longer than the view is wide. | 264 | // Wrap lines that are longer than the view is wide. |
265 | S32 offset = 0; | 265 | S32 line_start_offset = 0; |
266 | while( offset < (S32)wline.length() ) | 266 | while( line_start_offset < (S32)wline.length() ) |
267 | { | 267 | { |
268 | S32 skip_chars; // skip '\n' | 268 | // Find the next '\n', if any |
269 | // Figure out if a word-wrapped line fits here. | 269 | LLWString::size_type line_end = wline.find_first_of(llwchar('\n'), line_start_offset); |
270 | LLWString::size_type line_end = wline.find_first_of(llwchar('\n'), offset); | 270 | if (LLWString::npos == line_end) |
271 | if (line_end != LLWString::npos) | ||
272 | { | ||
273 | skip_chars = 1; // skip '\n' | ||
274 | } | ||
275 | else | ||
276 | { | 271 | { |
272 | // no more '\n's, try to use the whole line | ||
277 | line_end = wline.size(); | 273 | line_end = wline.size(); |
278 | skip_chars = 0; | ||
279 | } | 274 | } |
280 | U32 drawable = mFont->maxDrawableChars(wline.c_str()+offset, (F32)getRect().getWidth(), line_end-offset, TRUE); | 275 | // Find how many characters will reasonably fit in the allowed width |
276 | U32 drawable = mFont->maxDrawableChars(wline.c_str()+line_start_offset, (F32)getRect().getWidth(), line_end-line_start_offset, TRUE); | ||
281 | if (drawable != 0) | 277 | if (drawable != 0) |
282 | { | 278 | { |
283 | LLFixedBuffer::addLine(wline.substr(offset, drawable)); | 279 | LLFixedBuffer::addLine(wline.substr(line_start_offset, drawable)); |
284 | mAddTimes[mAddTimes.size()-1] = line_info.add_time; | 280 | mAddTimes[mAddTimes.size()-1] = line_info.add_time; |
281 | |||
282 | // move the line_start_offset by the number of characters we were able to draw, up to an implicit or explicit line-break. | ||
283 | line_start_offset += drawable; | ||
285 | } | 284 | } |
286 | else | 285 | else |
287 | { | 286 | { |
288 | // force a blank line | 287 | // no drawable characters - force a blank line and try the next character. |
289 | LLFixedBuffer::addLine(" "); | 288 | LLFixedBuffer::addLine(" "); |
289 | line_start_offset++; | ||
290 | } | 290 | } |
291 | mColors.push_back(color); | 291 | mColors.push_back(color); |
292 | offset += (drawable + skip_chars); | 292 | // if this was an *explicit* line-break or the end of the text, then increment the offset for the start of the next line (if any). |
293 | if (line_start_offset == line_end) | ||
294 | { | ||
295 | line_start_offset++; | ||
296 | } | ||
293 | } | 297 | } |
294 | } | 298 | } |
295 | } | 299 | } |
diff --git a/linden/indra/newview/llcubemap.cpp b/linden/indra/newview/llcubemap.cpp index 31937ba..f79fd0f 100644 --- a/linden/indra/newview/llcubemap.cpp +++ b/linden/indra/newview/llcubemap.cpp | |||
@@ -38,6 +38,8 @@ | |||
38 | #include "v4coloru.h" | 38 | #include "v4coloru.h" |
39 | #include "v3math.h" | 39 | #include "v3math.h" |
40 | 40 | ||
41 | #include "llrender.h" | ||
42 | |||
41 | #include "llviewercamera.h" | 43 | #include "llviewercamera.h" |
42 | #include "llviewerimage.h" | 44 | #include "llviewerimage.h" |
43 | #include "llviewerimagelist.h" | 45 | #include "llviewerimagelist.h" |
@@ -95,9 +97,7 @@ void LLCubeMap::initGL() | |||
95 | mImages[i]->createGLTexture(0, mRawImages[i], texname); | 97 | mImages[i]->createGLTexture(0, mRawImages[i], texname); |
96 | 98 | ||
97 | glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, texname); | 99 | glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, texname); |
98 | glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); | 100 | mImages[i]->setClampCubemap (TRUE, TRUE, TRUE); |
99 | glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); | ||
100 | glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); | ||
101 | stop_glerror(); | 101 | stop_glerror(); |
102 | } | 102 | } |
103 | } | 103 | } |
@@ -187,16 +187,15 @@ void LLCubeMap::bind() | |||
187 | // We assume that if they have cube mapping, they have multitexturing. | 187 | // We assume that if they have cube mapping, they have multitexturing. |
188 | if (mTextureStage > 0) | 188 | if (mTextureStage > 0) |
189 | { | 189 | { |
190 | glActiveTextureARB(GL_TEXTURE0_ARB + mTextureStage); | 190 | gGL.getTexUnit(mTextureStage)->activate(); |
191 | } | 191 | } |
192 | glEnable(GL_TEXTURE_CUBE_MAP_ARB); | 192 | glEnable(GL_TEXTURE_CUBE_MAP_ARB); |
193 | glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, mImages[0]->getTexName()); | 193 | glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, mImages[0]->getTexName()); |
194 | 194 | ||
195 | glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR); | 195 | mImages[0]->setMipFilterNearest (FALSE, FALSE); |
196 | glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MIN_FILTER, (use_cube_mipmaps? GL_LINEAR_MIPMAP_LINEAR : GL_LINEAR)); | ||
197 | if (mTextureStage > 0) | 196 | if (mTextureStage > 0) |
198 | { | 197 | { |
199 | glActiveTextureARB(GL_TEXTURE0_ARB); | 198 | gGL.getTexUnit(0)->activate(); |
200 | } | 199 | } |
201 | } | 200 | } |
202 | else | 201 | else |
@@ -221,14 +220,14 @@ void LLCubeMap::enableTexture(S32 stage) | |||
221 | { | 220 | { |
222 | if (stage > 0) | 221 | if (stage > 0) |
223 | { | 222 | { |
224 | glActiveTextureARB(GL_TEXTURE0_ARB + stage); | 223 | gGL.getTexUnit(stage)->activate(); |
225 | } | 224 | } |
226 | 225 | ||
227 | glEnable(GL_TEXTURE_CUBE_MAP_ARB); | 226 | glEnable(GL_TEXTURE_CUBE_MAP_ARB); |
228 | 227 | ||
229 | if (stage > 0) | 228 | if (stage > 0) |
230 | { | 229 | { |
231 | glActiveTextureARB(GL_TEXTURE0_ARB); | 230 | gGL.getTexUnit(0)->activate(); |
232 | } | 231 | } |
233 | } | 232 | } |
234 | } | 233 | } |
@@ -240,7 +239,7 @@ void LLCubeMap::enableTextureCoords(S32 stage) | |||
240 | { | 239 | { |
241 | if (stage > 0) | 240 | if (stage > 0) |
242 | { | 241 | { |
243 | glActiveTextureARB(GL_TEXTURE0_ARB + stage); | 242 | gGL.getTexUnit(stage)->activate(); |
244 | } | 243 | } |
245 | 244 | ||
246 | glEnable(GL_TEXTURE_GEN_R); | 245 | glEnable(GL_TEXTURE_GEN_R); |
@@ -253,7 +252,7 @@ void LLCubeMap::enableTextureCoords(S32 stage) | |||
253 | 252 | ||
254 | if (stage > 0) | 253 | if (stage > 0) |
255 | { | 254 | { |
256 | glActiveTextureARB(GL_TEXTURE0_ARB); | 255 | gGL.getTexUnit(0)->activate(); |
257 | } | 256 | } |
258 | } | 257 | } |
259 | } | 258 | } |
@@ -272,13 +271,13 @@ void LLCubeMap::disableTexture(void) | |||
272 | { | 271 | { |
273 | if (mTextureStage > 0) | 272 | if (mTextureStage > 0) |
274 | { | 273 | { |
275 | glActiveTextureARB(GL_TEXTURE0_ARB + mTextureStage); | 274 | gGL.getTexUnit(mTextureStage)->activate(); |
276 | } | 275 | } |
277 | glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, 0); | 276 | glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, 0); |
278 | glDisable(GL_TEXTURE_CUBE_MAP_ARB); | 277 | glDisable(GL_TEXTURE_CUBE_MAP_ARB); |
279 | if (mTextureStage > 0) | 278 | if (mTextureStage > 0) |
280 | { | 279 | { |
281 | glActiveTextureARB(GL_TEXTURE0_ARB); | 280 | gGL.getTexUnit(0)->activate(); |
282 | } | 281 | } |
283 | } | 282 | } |
284 | } | 283 | } |
@@ -289,14 +288,14 @@ void LLCubeMap::disableTextureCoords(void) | |||
289 | { | 288 | { |
290 | if (mTextureCoordStage > 0) | 289 | if (mTextureCoordStage > 0) |
291 | { | 290 | { |
292 | glActiveTextureARB(GL_TEXTURE0_ARB + mTextureCoordStage); | 291 | gGL.getTexUnit(mTextureCoordStage)->activate(); |
293 | } | 292 | } |
294 | glDisable(GL_TEXTURE_GEN_S); | 293 | glDisable(GL_TEXTURE_GEN_S); |
295 | glDisable(GL_TEXTURE_GEN_T); | 294 | glDisable(GL_TEXTURE_GEN_T); |
296 | glDisable(GL_TEXTURE_GEN_R); | 295 | glDisable(GL_TEXTURE_GEN_R); |
297 | if (mTextureCoordStage > 0) | 296 | if (mTextureCoordStage > 0) |
298 | { | 297 | { |
299 | glActiveTextureARB(GL_TEXTURE0_ARB); | 298 | gGL.getTexUnit(0)->activate(); |
300 | } | 299 | } |
301 | } | 300 | } |
302 | } | 301 | } |
@@ -307,7 +306,7 @@ void LLCubeMap::setMatrix(S32 stage) | |||
307 | 306 | ||
308 | if (stage > 0) | 307 | if (stage > 0) |
309 | { | 308 | { |
310 | glActiveTextureARB(GL_TEXTURE0_ARB+stage); | 309 | gGL.getTexUnit(stage)->activate(); |
311 | } | 310 | } |
312 | 311 | ||
313 | LLVector3 x(LLVector3d(gGLModelView+0)); | 312 | LLVector3 x(LLVector3d(gGLModelView+0)); |
@@ -326,7 +325,7 @@ void LLCubeMap::setMatrix(S32 stage) | |||
326 | 325 | ||
327 | if (stage > 0) | 326 | if (stage > 0) |
328 | { | 327 | { |
329 | glActiveTextureARB(GL_TEXTURE0_ARB); | 328 | gGL.getTexUnit(0)->activate(); |
330 | } | 329 | } |
331 | } | 330 | } |
332 | 331 | ||
@@ -334,7 +333,7 @@ void LLCubeMap::restoreMatrix() | |||
334 | { | 333 | { |
335 | if (mMatrixStage > 0) | 334 | if (mMatrixStage > 0) |
336 | { | 335 | { |
337 | glActiveTextureARB(GL_TEXTURE0_ARB+mMatrixStage); | 336 | gGL.getTexUnit(mMatrixStage)->activate(); |
338 | } | 337 | } |
339 | glMatrixMode(GL_TEXTURE); | 338 | glMatrixMode(GL_TEXTURE); |
340 | glPopMatrix(); | 339 | glPopMatrix(); |
@@ -342,10 +341,17 @@ void LLCubeMap::restoreMatrix() | |||
342 | 341 | ||
343 | if (mMatrixStage > 0) | 342 | if (mMatrixStage > 0) |
344 | { | 343 | { |
345 | glActiveTextureARB(GL_TEXTURE0_ARB); | 344 | gGL.getTexUnit(0)->activate(); |
346 | } | 345 | } |
347 | } | 346 | } |
348 | 347 | ||
348 | void LLCubeMap::setReflection (void) | ||
349 | { | ||
350 | glBindTexture (GL_TEXTURE_CUBE_MAP_ARB, getGLName()); | ||
351 | mImages[0]->setMipFilterNearest (FALSE, FALSE); | ||
352 | mImages[0]->setClampCubemap (TRUE, TRUE); | ||
353 | } | ||
354 | |||
349 | LLVector3 LLCubeMap::map(U8 side, U16 v_val, U16 h_val) const | 355 | LLVector3 LLCubeMap::map(U8 side, U16 v_val, U16 h_val) const |
350 | { | 356 | { |
351 | LLVector3 dir; | 357 | LLVector3 dir; |
diff --git a/linden/indra/newview/llcubemap.h b/linden/indra/newview/llcubemap.h index a4d9106..0b8cf29 100644 --- a/linden/indra/newview/llcubemap.h +++ b/linden/indra/newview/llcubemap.h | |||
@@ -60,6 +60,7 @@ public: | |||
60 | void disableTextureCoords(void); | 60 | void disableTextureCoords(void); |
61 | void setMatrix(S32 stage); | 61 | void setMatrix(S32 stage); |
62 | void restoreMatrix(); | 62 | void restoreMatrix(); |
63 | void setReflection (void); | ||
63 | 64 | ||
64 | void finishPaint(); | 65 | void finishPaint(); |
65 | 66 | ||
diff --git a/linden/indra/newview/llcurrencyuimanager.cpp b/linden/indra/newview/llcurrencyuimanager.cpp index 8964054..74f6c71 100644 --- a/linden/indra/newview/llcurrencyuimanager.cpp +++ b/linden/indra/newview/llcurrencyuimanager.cpp | |||
@@ -44,7 +44,7 @@ | |||
44 | #include "lllineeditor.h" | 44 | #include "lllineeditor.h" |
45 | #include "llviewchildren.h" | 45 | #include "llviewchildren.h" |
46 | #include "llxmlrpctransaction.h" | 46 | #include "llxmlrpctransaction.h" |
47 | #include "llappviewer.h" | 47 | #include "llviewernetwork.h" |
48 | 48 | ||
49 | 49 | ||
50 | const F64 CURRENCY_ESTIMATE_FREQUENCY = 2.0; | 50 | const F64 CURRENCY_ESTIMATE_FREQUENCY = 2.0; |
@@ -238,7 +238,7 @@ void LLCurrencyUIManager::Impl::startTransaction(TransactionType type, | |||
238 | static std::string transactionURI; | 238 | static std::string transactionURI; |
239 | if (transactionURI.empty()) | 239 | if (transactionURI.empty()) |
240 | { | 240 | { |
241 | transactionURI = LLAppViewer::instance()->getHelperURI() + "currency.php"; | 241 | transactionURI = LLViewerLogin::getInstance()->getHelperURI() + "currency.php"; |
242 | } | 242 | } |
243 | 243 | ||
244 | delete mTransaction; | 244 | delete mTransaction; |
@@ -526,3 +526,4 @@ std::string LLCurrencyUIManager::errorURI() | |||
526 | } | 526 | } |
527 | 527 | ||
528 | 528 | ||
529 | |||
diff --git a/linden/indra/newview/lldrawable.cpp b/linden/indra/newview/lldrawable.cpp index d2b2a99..ba7d6b9 100644 --- a/linden/indra/newview/lldrawable.cpp +++ b/linden/indra/newview/lldrawable.cpp | |||
@@ -418,7 +418,7 @@ void LLDrawable::makeStatic(BOOL warning_enabled) | |||
418 | 418 | ||
419 | if (mParent.notNull() && mParent->isActive() && warning_enabled) | 419 | if (mParent.notNull() && mParent->isActive() && warning_enabled) |
420 | { | 420 | { |
421 | llwarns << "Drawable becamse static with active parent!" << llendl; | 421 | LL_WARNS_ONCE("Drawable") << "Drawable becomes static with active parent!" << LL_ENDL; |
422 | } | 422 | } |
423 | 423 | ||
424 | S32 child_count = mVObjp->mChildList.size(); | 424 | S32 child_count = mVObjp->mChildList.size(); |
@@ -1170,11 +1170,13 @@ void LLSpatialBridge::setVisible(LLCamera& camera_in, std::vector<LLDrawable*>* | |||
1170 | LLSpatialGroup* group = av->getSpatialGroup(); | 1170 | LLSpatialGroup* group = av->getSpatialGroup(); |
1171 | 1171 | ||
1172 | BOOL impostor = objparent->isAvatar() && ((LLVOAvatar*) objparent)->isImpostor(); | 1172 | BOOL impostor = objparent->isAvatar() && ((LLVOAvatar*) objparent)->isImpostor(); |
1173 | 1173 | BOOL loaded = objparent->isAvatar() && ((LLVOAvatar*) objparent)->isFullyLoaded(); | |
1174 | |||
1174 | if (!group || | 1175 | if (!group || |
1175 | av->getSpatialGroup()->mDistance > LLVOAvatar::sRenderDistance || | 1176 | av->getSpatialGroup()->mDistance > LLVOAvatar::sRenderDistance || |
1176 | LLDrawable::getCurrentFrame() - av->mVisible > 1 || | 1177 | LLDrawable::getCurrentFrame() - av->mVisible > 1 || |
1177 | impostor) | 1178 | impostor || |
1179 | !loaded) | ||
1178 | { | 1180 | { |
1179 | return; | 1181 | return; |
1180 | } | 1182 | } |
diff --git a/linden/indra/newview/lldrawpool.cpp b/linden/indra/newview/lldrawpool.cpp index c579c68..9d8bd0a 100644 --- a/linden/indra/newview/lldrawpool.cpp +++ b/linden/indra/newview/lldrawpool.cpp | |||
@@ -32,7 +32,7 @@ | |||
32 | #include "llviewerprecompiledheaders.h" | 32 | #include "llviewerprecompiledheaders.h" |
33 | 33 | ||
34 | #include "lldrawpool.h" | 34 | #include "lldrawpool.h" |
35 | #include "llglimmediate.h" | 35 | #include "llrender.h" |
36 | #include "llfasttimer.h" | 36 | #include "llfasttimer.h" |
37 | #include "llviewercontrol.h" | 37 | #include "llviewercontrol.h" |
38 | 38 | ||
diff --git a/linden/indra/newview/lldrawpoolalpha.cpp b/linden/indra/newview/lldrawpoolalpha.cpp index 95f8502..ca8f3b4 100644 --- a/linden/indra/newview/lldrawpoolalpha.cpp +++ b/linden/indra/newview/lldrawpoolalpha.cpp | |||
@@ -37,6 +37,7 @@ | |||
37 | #include "llviewercontrol.h" | 37 | #include "llviewercontrol.h" |
38 | #include "llcriticaldamp.h" | 38 | #include "llcriticaldamp.h" |
39 | #include "llfasttimer.h" | 39 | #include "llfasttimer.h" |
40 | #include "llrender.h" | ||
40 | 41 | ||
41 | #include "llcubemap.h" | 42 | #include "llcubemap.h" |
42 | #include "llsky.h" | 43 | #include "llsky.h" |
@@ -93,7 +94,7 @@ void LLDrawPoolAlpha::beginRenderPass(S32 pass) | |||
93 | { | 94 | { |
94 | // Start out with no shaders. | 95 | // Start out with no shaders. |
95 | current_shader = target_shader = NULL; | 96 | current_shader = target_shader = NULL; |
96 | glUseProgramObjectARB(0); | 97 | LLGLSLShader::bindNoShader(); |
97 | } | 98 | } |
98 | gPipeline.enableLightsDynamic(); | 99 | gPipeline.enableLightsDynamic(); |
99 | } | 100 | } |
@@ -105,7 +106,7 @@ void LLDrawPoolAlpha::endRenderPass( S32 pass ) | |||
105 | 106 | ||
106 | if(gPipeline.canUseWindLightShaders()) | 107 | if(gPipeline.canUseWindLightShaders()) |
107 | { | 108 | { |
108 | glUseProgramObjectARB(0); | 109 | LLGLSLShader::bindNoShader(); |
109 | } | 110 | } |
110 | } | 111 | } |
111 | 112 | ||
@@ -123,7 +124,7 @@ void LLDrawPoolAlpha::render(S32 pass) | |||
123 | { | 124 | { |
124 | if(gPipeline.canUseWindLightShaders()) | 125 | if(gPipeline.canUseWindLightShaders()) |
125 | { | 126 | { |
126 | glUseProgramObjectARB(0); | 127 | LLGLSLShader::bindNoShader(); |
127 | } | 128 | } |
128 | gPipeline.enableLightsFullbright(LLColor4(1,1,1,1)); | 129 | gPipeline.enableLightsFullbright(LLColor4(1,1,1,1)); |
129 | glColor4f(1,0,0,1); | 130 | glColor4f(1,0,0,1); |
@@ -207,18 +208,17 @@ void LLDrawPoolAlpha::renderGroupAlpha(LLSpatialGroup* group, U32 type, U32 mask | |||
207 | { | 208 | { |
208 | return; | 209 | return; |
209 | } | 210 | } |
210 | // *TODO - Uhhh, we should always be doing some type of alpha rejection. These should probably both be 0.01f | 211 | gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); |
211 | glAlphaFunc(GL_GREATER, 0.f); | ||
212 | } | 212 | } |
213 | else | 213 | else |
214 | { | 214 | { |
215 | if (LLPipeline::sImpostorRender) | 215 | if (LLPipeline::sImpostorRender) |
216 | { | 216 | { |
217 | glAlphaFunc(GL_GREATER, 0.5f); | 217 | gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.5f); |
218 | } | 218 | } |
219 | else | 219 | else |
220 | { | 220 | { |
221 | glAlphaFunc(GL_GREATER, 0.01f); | 221 | gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); |
222 | } | 222 | } |
223 | } | 223 | } |
224 | 224 | ||
@@ -230,7 +230,7 @@ void LLDrawPoolAlpha::renderGroupAlpha(LLSpatialGroup* group, U32 type, U32 mask | |||
230 | 230 | ||
231 | if (texture && params.mTexture.notNull()) | 231 | if (texture && params.mTexture.notNull()) |
232 | { | 232 | { |
233 | glActiveTextureARB(GL_TEXTURE0_ARB); | 233 | gGL.getTexUnit(0)->activate(); |
234 | params.mTexture->bind(); | 234 | params.mTexture->bind(); |
235 | params.mTexture->addTextureStats(params.mVSize); | 235 | params.mTexture->addTextureStats(params.mVSize); |
236 | if (params.mTextureMatrix) | 236 | if (params.mTextureMatrix) |
@@ -283,7 +283,7 @@ void LLDrawPoolAlpha::renderGroupAlpha(LLSpatialGroup* group, U32 type, U32 mask | |||
283 | } | 283 | } |
284 | else if (!use_shaders && current_shader != NULL) | 284 | else if (!use_shaders && current_shader != NULL) |
285 | { | 285 | { |
286 | glUseProgramObjectARB(0); | 286 | LLGLSLShader::bindNoShader(); |
287 | current_shader = NULL; | 287 | current_shader = NULL; |
288 | } | 288 | } |
289 | 289 | ||
diff --git a/linden/indra/newview/lldrawpoolalpha.h b/linden/indra/newview/lldrawpoolalpha.h index 4318045..b717398 100644 --- a/linden/indra/newview/lldrawpoolalpha.h +++ b/linden/indra/newview/lldrawpoolalpha.h | |||
@@ -68,13 +68,10 @@ public: | |||
68 | static BOOL sShowDebugAlpha; | 68 | static BOOL sShowDebugAlpha; |
69 | 69 | ||
70 | private: | 70 | private: |
71 | S32 mDiffuse; | ||
72 | LLGLSLShader* current_shader; | 71 | LLGLSLShader* current_shader; |
73 | LLGLSLShader* target_shader; | 72 | LLGLSLShader* target_shader; |
74 | LLGLSLShader* simple_shader; | 73 | LLGLSLShader* simple_shader; |
75 | LLGLSLShader* simple_lod_shader; | ||
76 | LLGLSLShader* fullbright_shader; | 74 | LLGLSLShader* fullbright_shader; |
77 | LLGLSLShader* fullbright_lod_shader; | ||
78 | }; | 75 | }; |
79 | 76 | ||
80 | class LLDrawPoolAlphaPostWater : public LLDrawPoolAlpha | 77 | class LLDrawPoolAlphaPostWater : public LLDrawPoolAlpha |
diff --git a/linden/indra/newview/lldrawpoolavatar.cpp b/linden/indra/newview/lldrawpoolavatar.cpp index 6cfd131..fe5d4cd 100644 --- a/linden/indra/newview/lldrawpoolavatar.cpp +++ b/linden/indra/newview/lldrawpoolavatar.cpp | |||
@@ -32,7 +32,7 @@ | |||
32 | #include "llviewerprecompiledheaders.h" | 32 | #include "llviewerprecompiledheaders.h" |
33 | 33 | ||
34 | #include "lldrawpoolavatar.h" | 34 | #include "lldrawpoolavatar.h" |
35 | #include "llglimmediate.h" | 35 | #include "llrender.h" |
36 | 36 | ||
37 | #include "llvoavatar.h" | 37 | #include "llvoavatar.h" |
38 | #include "m3math.h" | 38 | #include "m3math.h" |
@@ -299,7 +299,7 @@ void LLDrawPoolAvatar::beginSkinned() | |||
299 | } | 299 | } |
300 | 300 | ||
301 | sVertexProgram->enableTexture(LLShaderMgr::BUMP_MAP); | 301 | sVertexProgram->enableTexture(LLShaderMgr::BUMP_MAP); |
302 | glActiveTextureARB(GL_TEXTURE0_ARB); | 302 | gGL.getTexUnit(0)->activate(); |
303 | } | 303 | } |
304 | else | 304 | else |
305 | { | 305 | { |
@@ -319,7 +319,7 @@ void LLDrawPoolAvatar::endSkinned() | |||
319 | { | 319 | { |
320 | sRenderingSkinned = FALSE; | 320 | sRenderingSkinned = FALSE; |
321 | sVertexProgram->disableTexture(LLShaderMgr::BUMP_MAP); | 321 | sVertexProgram->disableTexture(LLShaderMgr::BUMP_MAP); |
322 | glActiveTextureARB(GL_TEXTURE0_ARB); | 322 | gGL.getTexUnit(0)->activate(); |
323 | disable_vertex_weighting(sVertexProgram->mAttribute[LLShaderMgr::AVATAR_WEIGHT]); | 323 | disable_vertex_weighting(sVertexProgram->mAttribute[LLShaderMgr::AVATAR_WEIGHT]); |
324 | if (sShaderLevel >= SHADER_LEVEL_BUMP) | 324 | if (sShaderLevel >= SHADER_LEVEL_BUMP) |
325 | { | 325 | { |
@@ -343,7 +343,7 @@ void LLDrawPoolAvatar::endSkinned() | |||
343 | } | 343 | } |
344 | } | 344 | } |
345 | 345 | ||
346 | glActiveTextureARB(GL_TEXTURE0_ARB); | 346 | gGL.getTexUnit(0)->activate(); |
347 | } | 347 | } |
348 | 348 | ||
349 | 349 | ||
@@ -395,6 +395,31 @@ void LLDrawPoolAvatar::renderAvatars(LLVOAvatar* single_avatar, S32 pass) | |||
395 | return; | 395 | return; |
396 | } | 396 | } |
397 | 397 | ||
398 | if (!single_avatar && !avatarp->isFullyLoaded()) | ||
399 | { | ||
400 | |||
401 | /* // debug code to draw a cube in place of avatar | ||
402 | LLGLSNoTexture gls_no_texture; | ||
403 | LLVector3 pos = avatarp->getPositionAgent(); | ||
404 | |||
405 | gGL.color4f(1.0f, 0.0f, 0.0f, 0.8f); | ||
406 | gGL.begin(GL_LINES); | ||
407 | { | ||
408 | gGL.vertex3fv((pos - LLVector3(0.2f, 0.f, 0.f)).mV); | ||
409 | gGL.vertex3fv((pos + LLVector3(0.2f, 0.f, 0.f)).mV); | ||
410 | gGL.vertex3fv((pos - LLVector3(0.f, 0.2f, 0.f)).mV); | ||
411 | gGL.vertex3fv((pos + LLVector3(0.f, 0.2f, 0.f)).mV); | ||
412 | gGL.vertex3fv((pos - LLVector3(0.f, 0.f, 0.2f)).mV); | ||
413 | gGL.vertex3fv((pos + LLVector3(0.f, 0.f, 0.2f)).mV); | ||
414 | } | ||
415 | gGL.end(); | ||
416 | */ | ||
417 | |||
418 | |||
419 | // don't render please | ||
420 | return; | ||
421 | } | ||
422 | |||
398 | BOOL impostor = avatarp->isImpostor() && !single_avatar; | 423 | BOOL impostor = avatarp->isImpostor() && !single_avatar; |
399 | 424 | ||
400 | if (impostor && pass != 0) | 425 | if (impostor && pass != 0) |
@@ -574,22 +599,12 @@ void LLDrawPoolAvatar::renderForSelect() | |||
574 | BOOL impostor = avatarp->isImpostor(); | 599 | BOOL impostor = avatarp->isImpostor(); |
575 | if (impostor) | 600 | if (impostor) |
576 | { | 601 | { |
577 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 602 | gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_VERT_COLOR); |
578 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); | 603 | gGL.getTexUnit(0)->setTextureAlphaBlend(LLTexUnit::TBO_MULT, LLTexUnit::TBS_TEX_ALPHA, LLTexUnit::TBS_VERT_ALPHA); |
579 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_MODULATE); | ||
580 | |||
581 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PRIMARY_COLOR); | ||
582 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
583 | |||
584 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_TEXTURE); | ||
585 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA); | ||
586 | |||
587 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_ALPHA_ARB, GL_PRIMARY_COLOR_ARB); | ||
588 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_ALPHA_ARB, GL_SRC_ALPHA); | ||
589 | 604 | ||
590 | avatarp->renderImpostor(color); | 605 | avatarp->renderImpostor(color); |
591 | 606 | ||
592 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 607 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
593 | return; | 608 | return; |
594 | } | 609 | } |
595 | 610 | ||
@@ -598,8 +613,8 @@ void LLDrawPoolAvatar::renderForSelect() | |||
598 | { | 613 | { |
599 | gAvatarMatrixParam = sVertexProgram->mUniform[LLShaderMgr::AVATAR_MATRIX]; | 614 | gAvatarMatrixParam = sVertexProgram->mUniform[LLShaderMgr::AVATAR_MATRIX]; |
600 | } | 615 | } |
601 | glAlphaFunc(GL_GEQUAL, 0.2f); | 616 | gGL.setAlphaRejectSettings(LLRender::CF_GREATER_EQUAL, 0.2f); |
602 | gGL.blendFunc(GL_ONE, GL_ZERO); | 617 | gGL.setSceneBlendType(LLRender::BT_REPLACE); |
603 | 618 | ||
604 | glColor4ubv(color.mV); | 619 | glColor4ubv(color.mV); |
605 | 620 | ||
@@ -620,11 +635,11 @@ void LLDrawPoolAvatar::renderForSelect() | |||
620 | disable_vertex_weighting(sVertexProgram->mAttribute[LLShaderMgr::AVATAR_WEIGHT]); | 635 | disable_vertex_weighting(sVertexProgram->mAttribute[LLShaderMgr::AVATAR_WEIGHT]); |
621 | } | 636 | } |
622 | 637 | ||
623 | glAlphaFunc(GL_GREATER, 0.01f); | 638 | gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); |
624 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 639 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
625 | 640 | ||
626 | // restore texture mode | 641 | // restore texture mode |
627 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 642 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
628 | } | 643 | } |
629 | 644 | ||
630 | //----------------------------------------------------------------------------- | 645 | //----------------------------------------------------------------------------- |
diff --git a/linden/indra/newview/lldrawpoolbump.cpp b/linden/indra/newview/lldrawpoolbump.cpp index 7e8b9d6..303b8d5 100644 --- a/linden/indra/newview/lldrawpoolbump.cpp +++ b/linden/indra/newview/lldrawpoolbump.cpp | |||
@@ -41,7 +41,7 @@ | |||
41 | #include "m4math.h" | 41 | #include "m4math.h" |
42 | #include "v4math.h" | 42 | #include "v4math.h" |
43 | #include "llglheaders.h" | 43 | #include "llglheaders.h" |
44 | #include "llglimmediate.h" | 44 | #include "llrender.h" |
45 | 45 | ||
46 | #include "llagent.h" | 46 | #include "llagent.h" |
47 | #include "llcubemap.h" | 47 | #include "llcubemap.h" |
@@ -100,7 +100,7 @@ void LLStandardBumpmap::restoreGL() | |||
100 | gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount++] = LLStandardBumpmap("Darkness"); // BE_DARKNESS | 100 | gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount++] = LLStandardBumpmap("Darkness"); // BE_DARKNESS |
101 | 101 | ||
102 | std::string file_name = gDirUtilp->getExpandedFilename( LL_PATH_APP_SETTINGS, "std_bump.ini" ); | 102 | std::string file_name = gDirUtilp->getExpandedFilename( LL_PATH_APP_SETTINGS, "std_bump.ini" ); |
103 | FILE* file = LLFile::fopen( file_name.c_str(), "rt" ); /*Flawfinder: ignore*/ | 103 | LLFILE* file = LLFile::fopen( file_name.c_str(), "rt" ); /*Flawfinder: ignore*/ |
104 | if( !file ) | 104 | if( !file ) |
105 | { | 105 | { |
106 | llwarns << "Could not open std_bump <" << file_name << ">" << llendl; | 106 | llwarns << "Could not open std_bump <" << file_name << ">" << llendl; |
@@ -371,17 +371,8 @@ void LLDrawPoolBump::beginShiny(bool invisible) | |||
371 | cube_map->setMatrix(0); | 371 | cube_map->setMatrix(0); |
372 | cube_map->bind(); | 372 | cube_map->bind(); |
373 | 373 | ||
374 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 374 | gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_COLOR); |
375 | 375 | gGL.getTexUnit(0)->setTextureAlphaBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_VERT_ALPHA); | |
376 | //use RGB from texture | ||
377 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); | ||
378 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_TEXTURE); | ||
379 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
380 | |||
381 | // use alpha from color | ||
382 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_REPLACE); | ||
383 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_PRIMARY_COLOR); | ||
384 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA); | ||
385 | } | 376 | } |
386 | } | 377 | } |
387 | } | 378 | } |
@@ -443,15 +434,17 @@ void LLDrawPoolBump::endShiny(bool invisible) | |||
443 | } | 434 | } |
444 | 435 | ||
445 | shader->unbind(); | 436 | shader->unbind(); |
446 | glActiveTextureARB(GL_TEXTURE0_ARB); | 437 | gGL.getTexUnit(0)->activate(); |
447 | glEnable(GL_TEXTURE_2D); | 438 | glEnable(GL_TEXTURE_2D); |
448 | } | 439 | } |
449 | 440 | if (cube_channel >= 0) | |
450 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 441 | { |
442 | gGL.getTexUnit(cube_channel)->setTextureBlendType(LLTexUnit::TB_MULT); | ||
443 | } | ||
451 | } | 444 | } |
452 | 445 | ||
453 | LLImageGL::unbindTexture(0, GL_TEXTURE_2D); | 446 | LLImageGL::unbindTexture(0, GL_TEXTURE_2D); |
454 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 447 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
455 | 448 | ||
456 | diffuse_channel = -1; | 449 | diffuse_channel = -1; |
457 | cube_channel = 0; | 450 | cube_channel = 0; |
@@ -540,16 +533,16 @@ void LLDrawPoolBump::endFullbrightShiny() | |||
540 | { | 533 | { |
541 | shader->disableTexture(LLShaderMgr::DIFFUSE_MAP); | 534 | shader->disableTexture(LLShaderMgr::DIFFUSE_MAP); |
542 | } | 535 | } |
543 | glActiveTextureARB(GL_TEXTURE0_ARB); | 536 | gGL.getTexUnit(0)->activate(); |
544 | glEnable(GL_TEXTURE_2D); | 537 | glEnable(GL_TEXTURE_2D); |
545 | 538 | ||
546 | shader->unbind(); | 539 | shader->unbind(); |
547 | 540 | ||
548 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 541 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
549 | } | 542 | } |
550 | 543 | ||
551 | LLImageGL::unbindTexture(0, GL_TEXTURE_2D); | 544 | LLImageGL::unbindTexture(0, GL_TEXTURE_2D); |
552 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 545 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
553 | 546 | ||
554 | diffuse_channel = -1; | 547 | diffuse_channel = -1; |
555 | cube_channel = 0; | 548 | cube_channel = 0; |
@@ -650,37 +643,18 @@ void LLDrawPoolBump::beginBump() | |||
650 | 643 | ||
651 | // TEXTURE UNIT 0 | 644 | // TEXTURE UNIT 0 |
652 | // Output.rgb = texture at texture coord 0 | 645 | // Output.rgb = texture at texture coord 0 |
653 | glActiveTextureARB(GL_TEXTURE0_ARB); | 646 | gGL.getTexUnit(0)->activate(); |
654 | |||
655 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | ||
656 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); | ||
657 | |||
658 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_TEXTURE); | ||
659 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_ALPHA); | ||
660 | 647 | ||
661 | // Don't care about alpha output | 648 | gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_ALPHA); |
662 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_REPLACE); | 649 | gGL.getTexUnit(0)->setTextureAlphaBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_ALPHA); |
663 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_TEXTURE); | ||
664 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA); | ||
665 | 650 | ||
666 | // TEXTURE UNIT 1 | 651 | // TEXTURE UNIT 1 |
667 | glActiveTextureARB(GL_TEXTURE1_ARB); | 652 | gGL.getTexUnit(1)->activate(); |
668 | 653 | ||
669 | glEnable(GL_TEXTURE_2D); // Texture unit 1 | 654 | glEnable(GL_TEXTURE_2D); // Texture unit 1 |
670 | 655 | ||
671 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 656 | gGL.getTexUnit(1)->setTextureColorBlend(LLTexUnit::TBO_ADD_SIGNED, LLTexUnit::TBS_PREV_COLOR, LLTexUnit::TBS_ONE_MINUS_TEX_ALPHA); |
672 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_ADD_SIGNED_ARB); | 657 | gGL.getTexUnit(1)->setTextureAlphaBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_ALPHA); |
673 | |||
674 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB); | ||
675 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
676 | |||
677 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE); | ||
678 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_ONE_MINUS_SRC_ALPHA); | ||
679 | |||
680 | // Don't care about alpha output | ||
681 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_REPLACE); | ||
682 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_TEXTURE); | ||
683 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA); | ||
684 | 658 | ||
685 | // src = tex0 + (1 - tex1) - 0.5 | 659 | // src = tex0 + (1 - tex1) - 0.5 |
686 | // = (bump0/2 + 0.5) + (1 - (bump1/2 + 0.5)) - 0.5 | 660 | // = (bump0/2 + 0.5) + (1 - (bump1/2 + 0.5)) - 0.5 |
@@ -692,9 +666,8 @@ void LLDrawPoolBump::beginBump() | |||
692 | // = 2 * ((1 + bump0 - bump1) / 2) * dst [0 - 2 * dst] | 666 | // = 2 * ((1 + bump0 - bump1) / 2) * dst [0 - 2 * dst] |
693 | // = (1 + bump0 - bump1) * dst.rgb | 667 | // = (1 + bump0 - bump1) * dst.rgb |
694 | // = dst.rgb + dst.rgb * (bump0 - bump1) | 668 | // = dst.rgb + dst.rgb * (bump0 - bump1) |
695 | gGL.blendFunc(GL_DST_COLOR, GL_SRC_COLOR); | 669 | gGL.setSceneBlendType(LLRender::BT_MULT_X2); |
696 | // gGL.blendFunc(GL_ONE, GL_ZERO); // temp | 670 | gGL.getTexUnit(0)->activate(); |
697 | glActiveTextureARB(GL_TEXTURE0_ARB); | ||
698 | stop_glerror(); | 671 | stop_glerror(); |
699 | 672 | ||
700 | LLViewerImage::unbindTexture(1, GL_TEXTURE_2D); | 673 | LLViewerImage::unbindTexture(1, GL_TEXTURE_2D); |
@@ -728,15 +701,15 @@ void LLDrawPoolBump::endBump() | |||
728 | } | 701 | } |
729 | 702 | ||
730 | // Disable texture unit 1 | 703 | // Disable texture unit 1 |
731 | glActiveTextureARB(GL_TEXTURE1_ARB); | 704 | gGL.getTexUnit(1)->activate(); |
732 | glDisable(GL_TEXTURE_2D); // Texture unit 1 | 705 | glDisable(GL_TEXTURE_2D); // Texture unit 1 |
733 | glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 706 | gGL.getTexUnit(1)->setTextureBlendType(LLTexUnit::TB_MULT); |
734 | 707 | ||
735 | // Disable texture unit 0 | 708 | // Disable texture unit 0 |
736 | glActiveTextureARB(GL_TEXTURE0_ARB); | 709 | gGL.getTexUnit(0)->activate(); |
737 | glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 710 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
738 | 711 | ||
739 | gGL.blendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); | 712 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
740 | } | 713 | } |
741 | 714 | ||
742 | //////////////////////////////////////////////////////////////// | 715 | //////////////////////////////////////////////////////////////// |
@@ -1101,16 +1074,16 @@ void LLDrawPoolBump::pushBatch(LLDrawInfo& params, U32 mask, BOOL texture) | |||
1101 | { | 1074 | { |
1102 | if (mShiny) | 1075 | if (mShiny) |
1103 | { | 1076 | { |
1104 | glActiveTextureARB(GL_TEXTURE0_ARB); | 1077 | gGL.getTexUnit(0)->activate(); |
1105 | glMatrixMode(GL_TEXTURE); | 1078 | glMatrixMode(GL_TEXTURE); |
1106 | } | 1079 | } |
1107 | else | 1080 | else |
1108 | { | 1081 | { |
1109 | glActiveTextureARB(GL_TEXTURE1_ARB); | 1082 | gGL.getTexUnit(1)->activate(); |
1110 | glMatrixMode(GL_TEXTURE); | 1083 | glMatrixMode(GL_TEXTURE); |
1111 | glLoadMatrixf((GLfloat*) params.mTextureMatrix->mMatrix); | 1084 | glLoadMatrixf((GLfloat*) params.mTextureMatrix->mMatrix); |
1112 | gPipeline.mTextureMatrixOps++; | 1085 | gPipeline.mTextureMatrixOps++; |
1113 | glActiveTextureARB(GL_TEXTURE0_ARB); | 1086 | gGL.getTexUnit(0)->activate(); |
1114 | } | 1087 | } |
1115 | 1088 | ||
1116 | glLoadMatrixf((GLfloat*) params.mTextureMatrix->mMatrix); | 1089 | glLoadMatrixf((GLfloat*) params.mTextureMatrix->mMatrix); |
@@ -1153,13 +1126,13 @@ void LLDrawPoolBump::pushBatch(LLDrawInfo& params, U32 mask, BOOL texture) | |||
1153 | { | 1126 | { |
1154 | if (mShiny) | 1127 | if (mShiny) |
1155 | { | 1128 | { |
1156 | glActiveTextureARB(GL_TEXTURE0_ARB); | 1129 | gGL.getTexUnit(0)->activate(); |
1157 | } | 1130 | } |
1158 | else | 1131 | else |
1159 | { | 1132 | { |
1160 | glActiveTextureARB(GL_TEXTURE1_ARB); | 1133 | gGL.getTexUnit(1)->activate(); |
1161 | glLoadIdentity(); | 1134 | glLoadIdentity(); |
1162 | glActiveTextureARB(GL_TEXTURE0_ARB); | 1135 | gGL.getTexUnit(0)->activate(); |
1163 | } | 1136 | } |
1164 | glLoadIdentity(); | 1137 | glLoadIdentity(); |
1165 | glMatrixMode(GL_MODELVIEW); | 1138 | glMatrixMode(GL_MODELVIEW); |
@@ -1172,9 +1145,9 @@ void LLDrawPoolInvisible::render(S32 pass) | |||
1172 | 1145 | ||
1173 | U32 invisi_mask = LLVertexBuffer::MAP_VERTEX; | 1146 | U32 invisi_mask = LLVertexBuffer::MAP_VERTEX; |
1174 | glStencilMask(0); | 1147 | glStencilMask(0); |
1175 | glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); | 1148 | gGL.setColorMask(false, false); |
1176 | pushBatches(LLRenderPass::PASS_INVISIBLE, invisi_mask, FALSE); | 1149 | pushBatches(LLRenderPass::PASS_INVISIBLE, invisi_mask, FALSE); |
1177 | glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_FALSE); | 1150 | gGL.setColorMask(true, false); |
1178 | glStencilMask(0xFFFFFFFF); | 1151 | glStencilMask(0xFFFFFFFF); |
1179 | 1152 | ||
1180 | if (gPipeline.hasRenderBatches(LLRenderPass::PASS_INVISI_SHINY)) | 1153 | if (gPipeline.hasRenderBatches(LLRenderPass::PASS_INVISI_SHINY)) |
diff --git a/linden/indra/newview/lldrawpoolsimple.cpp b/linden/indra/newview/lldrawpoolsimple.cpp index 330ac57..d580e97 100644 --- a/linden/indra/newview/lldrawpoolsimple.cpp +++ b/linden/indra/newview/lldrawpoolsimple.cpp | |||
@@ -41,7 +41,7 @@ | |||
41 | #include "pipeline.h" | 41 | #include "pipeline.h" |
42 | #include "llspatialpartition.h" | 42 | #include "llspatialpartition.h" |
43 | #include "llglslshader.h" | 43 | #include "llglslshader.h" |
44 | #include "llglimmediate.h" | 44 | #include "llrender.h" |
45 | 45 | ||
46 | 46 | ||
47 | static LLGLSLShader* simple_shader = NULL; | 47 | static LLGLSLShader* simple_shader = NULL; |
@@ -52,7 +52,7 @@ void LLDrawPoolGlow::render(S32 pass) | |||
52 | LLFastTimer t(LLFastTimer::FTM_RENDER_GLOW); | 52 | LLFastTimer t(LLFastTimer::FTM_RENDER_GLOW); |
53 | LLGLEnable blend(GL_BLEND); | 53 | LLGLEnable blend(GL_BLEND); |
54 | LLGLDisable test(GL_ALPHA_TEST); | 54 | LLGLDisable test(GL_ALPHA_TEST); |
55 | gGL.blendFunc(GL_ONE, GL_ONE); | 55 | gGL.setSceneBlendType(LLRender::BT_ADD); |
56 | 56 | ||
57 | U32 shader_level = LLShaderMgr::getVertexShaderLevel(LLShaderMgr::SHADER_OBJECT); | 57 | U32 shader_level = LLShaderMgr::getVertexShaderLevel(LLShaderMgr::SHADER_OBJECT); |
58 | 58 | ||
@@ -66,11 +66,11 @@ void LLDrawPoolGlow::render(S32 pass) | |||
66 | } | 66 | } |
67 | 67 | ||
68 | LLGLDepthTest depth(GL_TRUE, GL_FALSE); | 68 | LLGLDepthTest depth(GL_TRUE, GL_FALSE); |
69 | glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_TRUE); | 69 | gGL.setColorMask(false, true); |
70 | renderTexture(LLRenderPass::PASS_GLOW, getVertexDataMask()); | 70 | renderTexture(LLRenderPass::PASS_GLOW, getVertexDataMask()); |
71 | 71 | ||
72 | glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_FALSE); | 72 | gGL.setColorMask(true, false); |
73 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 73 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
74 | 74 | ||
75 | if (shader_level > 0 && fullbright_shader) | 75 | if (shader_level > 0 && fullbright_shader) |
76 | { | 76 | { |
@@ -120,7 +120,7 @@ void LLDrawPoolSimple::beginRenderPass(S32 pass) | |||
120 | // don't use shaders! | 120 | // don't use shaders! |
121 | if (gGLManager.mHasShaderObjects) | 121 | if (gGLManager.mHasShaderObjects) |
122 | { | 122 | { |
123 | glUseProgramObjectARB(0); | 123 | LLGLSLShader::bindNoShader(); |
124 | } | 124 | } |
125 | } | 125 | } |
126 | } | 126 | } |
@@ -140,7 +140,7 @@ void LLDrawPoolSimple::render(S32 pass) | |||
140 | { | 140 | { |
141 | LLGLDisable blend(GL_BLEND); | 141 | LLGLDisable blend(GL_BLEND); |
142 | LLGLState alpha_test(GL_ALPHA_TEST, gPipeline.canUseWindLightShadersOnObjects()); | 142 | LLGLState alpha_test(GL_ALPHA_TEST, gPipeline.canUseWindLightShadersOnObjects()); |
143 | glAlphaFunc(GL_GREATER, 0.5f); | 143 | gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.5f); |
144 | 144 | ||
145 | { //render simple | 145 | { //render simple |
146 | LLFastTimer t(LLFastTimer::FTM_RENDER_SIMPLE); | 146 | LLFastTimer t(LLFastTimer::FTM_RENDER_SIMPLE); |
@@ -152,7 +152,7 @@ void LLDrawPoolSimple::render(S32 pass) | |||
152 | LLFastTimer t(LLFastTimer::FTM_RENDER_GRASS); | 152 | LLFastTimer t(LLFastTimer::FTM_RENDER_GRASS); |
153 | LLGLEnable test(GL_ALPHA_TEST); | 153 | LLGLEnable test(GL_ALPHA_TEST); |
154 | LLGLEnable blend(GL_BLEND); | 154 | LLGLEnable blend(GL_BLEND); |
155 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 155 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
156 | //render grass | 156 | //render grass |
157 | LLRenderPass::renderTexture(LLRenderPass::PASS_GRASS, getVertexDataMask()); | 157 | LLRenderPass::renderTexture(LLRenderPass::PASS_GRASS, getVertexDataMask()); |
158 | } | 158 | } |
@@ -172,6 +172,6 @@ void LLDrawPoolSimple::render(S32 pass) | |||
172 | renderTexture(LLRenderPass::PASS_FULLBRIGHT, fullbright_mask); | 172 | renderTexture(LLRenderPass::PASS_FULLBRIGHT, fullbright_mask); |
173 | } | 173 | } |
174 | 174 | ||
175 | glAlphaFunc(GL_GREATER, 0.01f); | 175 | gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); |
176 | } | 176 | } |
177 | 177 | ||
diff --git a/linden/indra/newview/lldrawpoolsky.cpp b/linden/indra/newview/lldrawpoolsky.cpp index e06bb6d..8c63b83 100644 --- a/linden/indra/newview/lldrawpoolsky.cpp +++ b/linden/indra/newview/lldrawpoolsky.cpp | |||
@@ -90,7 +90,7 @@ void LLDrawPoolSky::render(S32 pass) | |||
90 | { | 90 | { |
91 | // Ironically, we must support shader objects to be | 91 | // Ironically, we must support shader objects to be |
92 | // able to use this call. | 92 | // able to use this call. |
93 | glUseProgramObjectARB(0); | 93 | LLGLSLShader::bindNoShader(); |
94 | } | 94 | } |
95 | mShader = NULL; | 95 | mShader = NULL; |
96 | } | 96 | } |
diff --git a/linden/indra/newview/lldrawpoolterrain.cpp b/linden/indra/newview/lldrawpoolterrain.cpp index fdb27f9..2cd2fdb 100644 --- a/linden/indra/newview/lldrawpoolterrain.cpp +++ b/linden/indra/newview/lldrawpoolterrain.cpp | |||
@@ -52,7 +52,7 @@ | |||
52 | #include "llworld.h" | 52 | #include "llworld.h" |
53 | #include "pipeline.h" | 53 | #include "pipeline.h" |
54 | #include "llglslshader.h" | 54 | #include "llglslshader.h" |
55 | #include "llglimmediate.h" | 55 | #include "llrender.h" |
56 | 56 | ||
57 | const F32 DETAIL_SCALE = 1.f/16.f; | 57 | const F32 DETAIL_SCALE = 1.f/16.f; |
58 | int DebugDetailMap = 0; | 58 | int DebugDetailMap = 0; |
@@ -69,14 +69,16 @@ LLDrawPoolTerrain::LLDrawPoolTerrain(LLViewerImage *texturep) : | |||
69 | sDetailScale = 1.f/gSavedSettings.getF32("RenderTerrainScale"); | 69 | sDetailScale = 1.f/gSavedSettings.getF32("RenderTerrainScale"); |
70 | sDetailMode = gSavedSettings.getS32("RenderTerrainDetail"); | 70 | sDetailMode = gSavedSettings.getS32("RenderTerrainDetail"); |
71 | mAlphaRampImagep = gImageList.getImageFromFile("alpha_gradient.tga", | 71 | mAlphaRampImagep = gImageList.getImageFromFile("alpha_gradient.tga", |
72 | TRUE, TRUE, GL_ALPHA8, GL_ALPHA, | 72 | TRUE, TRUE, GL_ALPHA8, GL_ALPHA, |
73 | LLUUID("e97cf410-8e61-7005-ec06-629eba4cd1fb")); | 73 | LLUUID("e97cf410-8e61-7005-ec06-629eba4cd1fb")); |
74 | |||
74 | mAlphaRampImagep->bind(0); | 75 | mAlphaRampImagep->bind(0); |
75 | mAlphaRampImagep->setClamp(TRUE, TRUE); | 76 | mAlphaRampImagep->setClamp(TRUE, TRUE); |
76 | 77 | ||
77 | m2DAlphaRampImagep = gImageList.getImageFromFile("alpha_gradient_2d.j2c", | 78 | m2DAlphaRampImagep = gImageList.getImageFromFile("alpha_gradient_2d.j2c", |
78 | TRUE, TRUE, GL_ALPHA8, GL_ALPHA, | 79 | TRUE, TRUE, GL_ALPHA8, GL_ALPHA, |
79 | LLUUID("38b86f85-2575-52a9-a531-23108d8da837")); | 80 | LLUUID("38b86f85-2575-52a9-a531-23108d8da837")); |
81 | |||
80 | m2DAlphaRampImagep->bind(0); | 82 | m2DAlphaRampImagep->bind(0); |
81 | m2DAlphaRampImagep->setClamp(TRUE, TRUE); | 83 | m2DAlphaRampImagep->setClamp(TRUE, TRUE); |
82 | 84 | ||
@@ -239,7 +241,7 @@ void LLDrawPoolTerrain::renderFullShader() | |||
239 | // | 241 | // |
240 | S32 detail0 = sShader->enableTexture(LLShaderMgr::TERRAIN_DETAIL0); | 242 | S32 detail0 = sShader->enableTexture(LLShaderMgr::TERRAIN_DETAIL0); |
241 | LLViewerImage::bindTexture(detail_texture0p,detail0); | 243 | LLViewerImage::bindTexture(detail_texture0p,detail0); |
242 | glActiveTextureARB(GL_TEXTURE0_ARB); | 244 | gGL.getTexUnit(0)->activate(); |
243 | 245 | ||
244 | glEnable(GL_TEXTURE_GEN_S); | 246 | glEnable(GL_TEXTURE_GEN_S); |
245 | glEnable(GL_TEXTURE_GEN_T); | 247 | glEnable(GL_TEXTURE_GEN_T); |
@@ -259,7 +261,7 @@ void LLDrawPoolTerrain::renderFullShader() | |||
259 | LLViewerImage::bindTexture(detail_texture1p,detail1); | 261 | LLViewerImage::bindTexture(detail_texture1p,detail1); |
260 | 262 | ||
261 | /// ALPHA TEXTURE COORDS 0: | 263 | /// ALPHA TEXTURE COORDS 0: |
262 | glActiveTextureARB(GL_TEXTURE1_ARB); | 264 | gGL.getTexUnit(1)->activate(); |
263 | glMatrixMode(GL_TEXTURE); | 265 | glMatrixMode(GL_TEXTURE); |
264 | glLoadIdentity(); | 266 | glLoadIdentity(); |
265 | glMatrixMode(GL_MODELVIEW); | 267 | glMatrixMode(GL_MODELVIEW); |
@@ -271,7 +273,7 @@ void LLDrawPoolTerrain::renderFullShader() | |||
271 | glEnable(GL_TEXTURE_2D); | 273 | glEnable(GL_TEXTURE_2D); |
272 | 274 | ||
273 | /// ALPHA TEXTURE COORDS 1: | 275 | /// ALPHA TEXTURE COORDS 1: |
274 | glActiveTextureARB(GL_TEXTURE2_ARB); | 276 | gGL.getTexUnit(2)->activate(); |
275 | glMatrixMode(GL_TEXTURE); | 277 | glMatrixMode(GL_TEXTURE); |
276 | glLoadIdentity(); | 278 | glLoadIdentity(); |
277 | glTranslatef(-2.f, 0.f, 0.f); | 279 | glTranslatef(-2.f, 0.f, 0.f); |
@@ -284,7 +286,7 @@ void LLDrawPoolTerrain::renderFullShader() | |||
284 | LLViewerImage::bindTexture(detail_texture3p,detail3); | 286 | LLViewerImage::bindTexture(detail_texture3p,detail3); |
285 | 287 | ||
286 | /// ALPHA TEXTURE COORDS 2: | 288 | /// ALPHA TEXTURE COORDS 2: |
287 | glActiveTextureARB(GL_TEXTURE3_ARB); | 289 | gGL.getTexUnit(3)->activate(); |
288 | glMatrixMode(GL_TEXTURE); | 290 | glMatrixMode(GL_TEXTURE); |
289 | glLoadIdentity(); | 291 | glLoadIdentity(); |
290 | glTranslatef(-1.f, 0.f, 0.f); | 292 | glTranslatef(-1.f, 0.f, 0.f); |
@@ -307,7 +309,7 @@ void LLDrawPoolTerrain::renderFullShader() | |||
307 | sShader->disableTexture(LLShaderMgr::TERRAIN_DETAIL3); | 309 | sShader->disableTexture(LLShaderMgr::TERRAIN_DETAIL3); |
308 | 310 | ||
309 | LLImageGL::unbindTexture(alpha_ramp, GL_TEXTURE_2D); | 311 | LLImageGL::unbindTexture(alpha_ramp, GL_TEXTURE_2D); |
310 | glActiveTextureARB(GL_TEXTURE4_ARB); | 312 | gGL.getTexUnit(4)->activate(); |
311 | glDisable(GL_TEXTURE_2D); // Texture unit 4 | 313 | glDisable(GL_TEXTURE_2D); // Texture unit 4 |
312 | glDisable(GL_TEXTURE_GEN_S); | 314 | glDisable(GL_TEXTURE_GEN_S); |
313 | glDisable(GL_TEXTURE_GEN_T); | 315 | glDisable(GL_TEXTURE_GEN_T); |
@@ -316,7 +318,7 @@ void LLDrawPoolTerrain::renderFullShader() | |||
316 | glMatrixMode(GL_MODELVIEW); | 318 | glMatrixMode(GL_MODELVIEW); |
317 | 319 | ||
318 | LLImageGL::unbindTexture(detail3, GL_TEXTURE_2D); | 320 | LLImageGL::unbindTexture(detail3, GL_TEXTURE_2D); |
319 | glActiveTextureARB(GL_TEXTURE3_ARB); | 321 | gGL.getTexUnit(3)->activate(); |
320 | glDisable(GL_TEXTURE_2D); | 322 | glDisable(GL_TEXTURE_2D); |
321 | glDisable(GL_TEXTURE_GEN_S); | 323 | glDisable(GL_TEXTURE_GEN_S); |
322 | glDisable(GL_TEXTURE_GEN_T); | 324 | glDisable(GL_TEXTURE_GEN_T); |
@@ -325,7 +327,7 @@ void LLDrawPoolTerrain::renderFullShader() | |||
325 | glMatrixMode(GL_MODELVIEW); | 327 | glMatrixMode(GL_MODELVIEW); |
326 | 328 | ||
327 | LLImageGL::unbindTexture(detail2, GL_TEXTURE_2D); | 329 | LLImageGL::unbindTexture(detail2, GL_TEXTURE_2D); |
328 | glActiveTextureARB(GL_TEXTURE2_ARB); | 330 | gGL.getTexUnit(2)->activate(); |
329 | glDisable(GL_TEXTURE_2D); | 331 | glDisable(GL_TEXTURE_2D); |
330 | glDisable(GL_TEXTURE_GEN_S); | 332 | glDisable(GL_TEXTURE_GEN_S); |
331 | glDisable(GL_TEXTURE_GEN_T); | 333 | glDisable(GL_TEXTURE_GEN_T); |
@@ -334,7 +336,7 @@ void LLDrawPoolTerrain::renderFullShader() | |||
334 | glMatrixMode(GL_MODELVIEW); | 336 | glMatrixMode(GL_MODELVIEW); |
335 | 337 | ||
336 | LLImageGL::unbindTexture(detail1, GL_TEXTURE_2D); | 338 | LLImageGL::unbindTexture(detail1, GL_TEXTURE_2D); |
337 | glActiveTextureARB(GL_TEXTURE1_ARB); | 339 | gGL.getTexUnit(1)->activate(); |
338 | glDisable(GL_TEXTURE_2D); | 340 | glDisable(GL_TEXTURE_2D); |
339 | glDisable(GL_TEXTURE_GEN_S); | 341 | glDisable(GL_TEXTURE_GEN_S); |
340 | glDisable(GL_TEXTURE_GEN_T); | 342 | glDisable(GL_TEXTURE_GEN_T); |
@@ -346,7 +348,7 @@ void LLDrawPoolTerrain::renderFullShader() | |||
346 | // Restore Texture Unit 0 defaults | 348 | // Restore Texture Unit 0 defaults |
347 | 349 | ||
348 | LLImageGL::unbindTexture(detail0, GL_TEXTURE_2D); | 350 | LLImageGL::unbindTexture(detail0, GL_TEXTURE_2D); |
349 | glActiveTextureARB(GL_TEXTURE0_ARB); | 351 | gGL.getTexUnit(0)->activate(); |
350 | glEnable(GL_TEXTURE_2D); | 352 | glEnable(GL_TEXTURE_2D); |
351 | glDisable(GL_TEXTURE_GEN_S); | 353 | glDisable(GL_TEXTURE_GEN_S); |
352 | glDisable(GL_TEXTURE_GEN_T); | 354 | glDisable(GL_TEXTURE_GEN_T); |
@@ -357,7 +359,7 @@ void LLDrawPoolTerrain::renderFullShader() | |||
357 | 359 | ||
358 | void LLDrawPoolTerrain::renderFull4TU() | 360 | void LLDrawPoolTerrain::renderFull4TU() |
359 | { | 361 | { |
360 | glEnableClientState(GL_VERTEX_ARRAY); | 362 | glEnableClientState(GL_VERTEX_ARRAY); |
361 | glEnableClientState(GL_NORMAL_ARRAY); | 363 | glEnableClientState(GL_NORMAL_ARRAY); |
362 | 364 | ||
363 | // Hack! Get the region that this draw pool is rendering from! | 365 | // Hack! Get the region that this draw pool is rendering from! |
@@ -377,7 +379,7 @@ void LLDrawPoolTerrain::renderFull4TU() | |||
377 | tp0.setVec(sDetailScale, 0.0f, 0.0f, offset_x); | 379 | tp0.setVec(sDetailScale, 0.0f, 0.0f, offset_x); |
378 | tp1.setVec(0.0f, sDetailScale, 0.0f, offset_y); | 380 | tp1.setVec(0.0f, sDetailScale, 0.0f, offset_y); |
379 | 381 | ||
380 | gGL.blendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA); | 382 | gGL.blendFunc(LLRender::BF_ONE_MINUS_SOURCE_ALPHA, LLRender::BF_SOURCE_ALPHA); |
381 | 383 | ||
382 | //---------------------------------------------------------------------------- | 384 | //---------------------------------------------------------------------------- |
383 | // Pass 1/1 | 385 | // Pass 1/1 |
@@ -385,11 +387,10 @@ void LLDrawPoolTerrain::renderFull4TU() | |||
385 | // | 387 | // |
386 | // Stage 0: detail texture 0 | 388 | // Stage 0: detail texture 0 |
387 | // | 389 | // |
388 | glActiveTextureARB(GL_TEXTURE0_ARB); | 390 | gGL.getTexUnit(0)->activate(); |
389 | LLViewerImage::bindTexture(detail_texture0p,0); | 391 | LLViewerImage::bindTexture(detail_texture0p,0); |
390 | glClientActiveTextureARB(GL_TEXTURE0_ARB); | 392 | glClientActiveTextureARB(GL_TEXTURE0_ARB); |
391 | 393 | ||
392 | glDisableClientState(GL_TEXTURE_COORD_ARRAY); | ||
393 | glEnable(GL_TEXTURE_GEN_S); | 394 | glEnable(GL_TEXTURE_GEN_S); |
394 | glEnable(GL_TEXTURE_GEN_T); | 395 | glEnable(GL_TEXTURE_GEN_T); |
395 | glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); | 396 | glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); |
@@ -398,36 +399,27 @@ void LLDrawPoolTerrain::renderFull4TU() | |||
398 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0.mV); | 399 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0.mV); |
399 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1.mV); | 400 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1.mV); |
400 | 401 | ||
401 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 402 | gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_COLOR); |
402 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); | ||
403 | |||
404 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_TEXTURE); | ||
405 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
406 | 403 | ||
407 | // | 404 | // |
408 | // Stage 1: Generate alpha ramp for detail0/detail1 transition | 405 | // Stage 1: Generate alpha ramp for detail0/detail1 transition |
409 | // | 406 | // |
407 | |||
410 | LLViewerImage::bindTexture(m2DAlphaRampImagep,1); | 408 | LLViewerImage::bindTexture(m2DAlphaRampImagep,1); |
411 | glActiveTextureARB(GL_TEXTURE1_ARB); | 409 | gGL.getTexUnit(1)->activate(); |
412 | glEnable(GL_TEXTURE_2D); // Texture unit 1 | 410 | glEnable(GL_TEXTURE_2D); // Texture unit 1 |
413 | glClientActiveTextureARB(GL_TEXTURE1_ARB); | 411 | glClientActiveTextureARB(GL_TEXTURE1_ARB); |
414 | glEnableClientState(GL_TEXTURE_COORD_ARRAY); | 412 | glEnableClientState(GL_TEXTURE_COORD_ARRAY); |
415 | 413 | ||
416 | // Care about alpha only | 414 | // Care about alpha only |
417 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 415 | gGL.getTexUnit(1)->setTextureColorBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_PREV_COLOR); |
418 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); | 416 | gGL.getTexUnit(1)->setTextureAlphaBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_ALPHA); |
419 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_REPLACE); | ||
420 | |||
421 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS); | ||
422 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
423 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_TEXTURE); | ||
424 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA); | ||
425 | 417 | ||
426 | // | 418 | // |
427 | // Stage 2: Interpolate detail1 with existing based on ramp | 419 | // Stage 2: Interpolate detail1 with existing based on ramp |
428 | // | 420 | // |
429 | LLViewerImage::bindTexture(detail_texture1p,2); | 421 | LLViewerImage::bindTexture(detail_texture1p,2); |
430 | glActiveTextureARB(GL_TEXTURE2_ARB); | 422 | gGL.getTexUnit(2)->activate(); |
431 | glEnable(GL_TEXTURE_2D); // Texture unit 2 | 423 | glEnable(GL_TEXTURE_2D); // Texture unit 2 |
432 | glClientActiveTextureARB(GL_TEXTURE2_ARB); | 424 | glClientActiveTextureARB(GL_TEXTURE2_ARB); |
433 | 425 | ||
@@ -439,34 +431,22 @@ void LLDrawPoolTerrain::renderFull4TU() | |||
439 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0.mV); | 431 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0.mV); |
440 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1.mV); | 432 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1.mV); |
441 | 433 | ||
442 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 434 | gGL.getTexUnit(2)->setTextureColorBlend(LLTexUnit::TBO_LERP_PREV_ALPHA, LLTexUnit::TBS_PREV_COLOR, LLTexUnit::TBS_TEX_COLOR); |
443 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_INTERPOLATE); | ||
444 | |||
445 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB); | ||
446 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
447 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE); | ||
448 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR); | ||
449 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE2_RGB_ARB, GL_PREVIOUS_ARB); | ||
450 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB_ARB, GL_SRC_ALPHA); | ||
451 | 435 | ||
452 | // | 436 | // |
453 | // Stage 3: Modulate with primary (vertex) color for lighting | 437 | // Stage 3: Modulate with primary (vertex) color for lighting |
454 | // | 438 | // |
455 | LLViewerImage::bindTexture(detail_texture1p,3); // bind any texture | 439 | LLViewerImage::bindTexture(detail_texture1p,3); // bind any texture |
456 | glActiveTextureARB(GL_TEXTURE3_ARB); | 440 | gGL.getTexUnit(3)->activate(); |
457 | glEnable(GL_TEXTURE_2D); // Texture unit 3 | 441 | glEnable(GL_TEXTURE_2D); // Texture unit 3 |
458 | glClientActiveTextureARB(GL_TEXTURE3_ARB); | 442 | glClientActiveTextureARB(GL_TEXTURE3_ARB); |
459 | 443 | ||
460 | // Set alpha texture and do lighting modulation | 444 | // Set alpha texture and do lighting modulation |
461 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 445 | gGL.getTexUnit(3)->setTextureColorBlend(LLTexUnit::TBO_MULT, LLTexUnit::TBS_PREV_COLOR, LLTexUnit::TBS_VERT_COLOR); |
462 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE); | ||
463 | 446 | ||
464 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS); | 447 | gGL.getTexUnit(0)->activate(); |
465 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | 448 | glClientActiveTextureARB(GL_TEXTURE0_ARB); |
466 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_PRIMARY_COLOR_ARB); | ||
467 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR); | ||
468 | 449 | ||
469 | glActiveTextureARB(GL_TEXTURE0_ARB); | ||
470 | // GL_BLEND disabled by default | 450 | // GL_BLEND disabled by default |
471 | drawLoop(); | 451 | drawLoop(); |
472 | 452 | ||
@@ -475,7 +455,7 @@ void LLDrawPoolTerrain::renderFull4TU() | |||
475 | 455 | ||
476 | // Stage 0: Write detail3 into base | 456 | // Stage 0: Write detail3 into base |
477 | // | 457 | // |
478 | glActiveTextureARB(GL_TEXTURE0_ARB); | 458 | gGL.getTexUnit(0)->activate(); |
479 | LLViewerImage::bindTexture(detail_texture3p,0); | 459 | LLViewerImage::bindTexture(detail_texture3p,0); |
480 | glClientActiveTextureARB(GL_TEXTURE0_ARB); | 460 | glClientActiveTextureARB(GL_TEXTURE0_ARB); |
481 | 461 | ||
@@ -487,18 +467,13 @@ void LLDrawPoolTerrain::renderFull4TU() | |||
487 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0.mV); | 467 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0.mV); |
488 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1.mV); | 468 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1.mV); |
489 | 469 | ||
490 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 470 | gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_COLOR); |
491 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); | ||
492 | |||
493 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_TEXTURE); | ||
494 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
495 | |||
496 | 471 | ||
497 | // | 472 | // |
498 | // Stage 1: Generate alpha ramp for detail2/detail3 transition | 473 | // Stage 1: Generate alpha ramp for detail2/detail3 transition |
499 | // | 474 | // |
500 | LLViewerImage::bindTexture(m2DAlphaRampImagep,1); | 475 | LLViewerImage::bindTexture(m2DAlphaRampImagep,1); |
501 | glActiveTextureARB(GL_TEXTURE1_ARB); | 476 | gGL.getTexUnit(1)->activate(); |
502 | glEnable(GL_TEXTURE_2D); // Texture unit 1 | 477 | glEnable(GL_TEXTURE_2D); // Texture unit 1 |
503 | glClientActiveTextureARB(GL_TEXTURE1_ARB); | 478 | glClientActiveTextureARB(GL_TEXTURE1_ARB); |
504 | 479 | ||
@@ -510,25 +485,20 @@ void LLDrawPoolTerrain::renderFull4TU() | |||
510 | glTranslatef(-2.f, 0.f, 0.f); | 485 | glTranslatef(-2.f, 0.f, 0.f); |
511 | 486 | ||
512 | // Care about alpha only | 487 | // Care about alpha only |
513 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 488 | gGL.getTexUnit(1)->setTextureColorBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_PREV_COLOR); |
514 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); | 489 | gGL.getTexUnit(1)->setTextureAlphaBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_ALPHA); |
515 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_REPLACE); | ||
516 | |||
517 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS); | ||
518 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
519 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_TEXTURE); | ||
520 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA); | ||
521 | 490 | ||
522 | 491 | ||
523 | // | 492 | // |
524 | // Stage 2: Interpolate detail2 with existing based on ramp | 493 | // Stage 2: Interpolate detail2 with existing based on ramp |
525 | // | 494 | // |
526 | LLViewerImage::bindTexture(detail_texture2p,2); | 495 | LLViewerImage::bindTexture(detail_texture2p,2); |
527 | glActiveTextureARB(GL_TEXTURE2_ARB); | 496 | gGL.getTexUnit(2)->activate(); |
528 | glEnable(GL_TEXTURE_2D); // Texture unit 2 | 497 | glEnable(GL_TEXTURE_2D); // Texture unit 2 |
529 | glClientActiveTextureARB(GL_TEXTURE2_ARB); | ||
530 | 498 | ||
499 | glClientActiveTextureARB(GL_TEXTURE2_ARB); | ||
531 | glDisableClientState(GL_TEXTURE_COORD_ARRAY); | 500 | glDisableClientState(GL_TEXTURE_COORD_ARRAY); |
501 | |||
532 | glEnable(GL_TEXTURE_GEN_S); | 502 | glEnable(GL_TEXTURE_GEN_S); |
533 | glEnable(GL_TEXTURE_GEN_T); | 503 | glEnable(GL_TEXTURE_GEN_T); |
534 | glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); | 504 | glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); |
@@ -536,26 +506,16 @@ void LLDrawPoolTerrain::renderFull4TU() | |||
536 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0.mV); | 506 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0.mV); |
537 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1.mV); | 507 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1.mV); |
538 | 508 | ||
539 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 509 | gGL.getTexUnit(2)->setTextureColorBlend(LLTexUnit::TBO_LERP_PREV_ALPHA, LLTexUnit::TBS_TEX_COLOR, LLTexUnit::TBS_PREV_COLOR); |
540 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_INTERPOLATE); | ||
541 | |||
542 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB); | ||
543 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
544 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE); | ||
545 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR); | ||
546 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE2_RGB_ARB, GL_PREVIOUS_ARB); | ||
547 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB_ARB, GL_ONE_MINUS_SRC_ALPHA); | ||
548 | |||
549 | 510 | ||
550 | // | 511 | // |
551 | // Stage 3: Generate alpha ramp for detail1/detail2 transition | 512 | // Stage 3: Generate alpha ramp for detail1/detail2 transition |
552 | // | 513 | // |
553 | LLViewerImage::bindTexture(m2DAlphaRampImagep,3); | 514 | LLViewerImage::bindTexture(m2DAlphaRampImagep,3); |
554 | glActiveTextureARB(GL_TEXTURE3_ARB); | 515 | gGL.getTexUnit(3)->activate(); |
555 | |||
556 | glEnable(GL_TEXTURE_2D); // Texture unit 3 | 516 | glEnable(GL_TEXTURE_2D); // Texture unit 3 |
557 | glClientActiveTextureARB(GL_TEXTURE3_ARB); | ||
558 | 517 | ||
518 | glClientActiveTextureARB(GL_TEXTURE3_ARB); | ||
559 | glEnableClientState(GL_TEXTURE_COORD_ARRAY); | 519 | glEnableClientState(GL_TEXTURE_COORD_ARRAY); |
560 | 520 | ||
561 | // Set the texture matrix | 521 | // Set the texture matrix |
@@ -564,38 +524,34 @@ void LLDrawPoolTerrain::renderFull4TU() | |||
564 | glTranslatef(-1.f, 0.f, 0.f); | 524 | glTranslatef(-1.f, 0.f, 0.f); |
565 | 525 | ||
566 | // Set alpha texture and do lighting modulation | 526 | // Set alpha texture and do lighting modulation |
567 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 527 | gGL.getTexUnit(3)->setTextureColorBlend(LLTexUnit::TBO_MULT, LLTexUnit::TBS_PREV_COLOR, LLTexUnit::TBS_VERT_COLOR); |
568 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE); | 528 | gGL.getTexUnit(3)->setTextureAlphaBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_ALPHA); |
569 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_REPLACE); | 529 | |
570 | 530 | gGL.getTexUnit(0)->activate(); | |
571 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS); | 531 | glClientActiveTextureARB(GL_TEXTURE0_ARB); |
572 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
573 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_PRIMARY_COLOR_ARB); | ||
574 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR); | ||
575 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_TEXTURE); | ||
576 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA); | ||
577 | |||
578 | glActiveTextureARB(GL_TEXTURE0_ARB); | ||
579 | { | 532 | { |
580 | LLGLEnable blend(GL_BLEND); | 533 | LLGLEnable blend(GL_BLEND); |
581 | drawLoop(); | 534 | drawLoop(); |
582 | } | 535 | } |
583 | 536 | ||
537 | LLVertexBuffer::unbind(); | ||
584 | // Disable multitexture | 538 | // Disable multitexture |
585 | LLImageGL::unbindTexture(3, GL_TEXTURE_2D); | 539 | LLImageGL::unbindTexture(3, GL_TEXTURE_2D); |
586 | glActiveTextureARB(GL_TEXTURE3_ARB); | 540 | gGL.getTexUnit(3)->activate(); |
587 | glClientActiveTextureARB(GL_TEXTURE3_ARB); | 541 | glClientActiveTextureARB(GL_TEXTURE3_ARB); |
588 | glDisableClientState(GL_TEXTURE_COORD_ARRAY); | 542 | glDisableClientState(GL_TEXTURE_COORD_ARRAY); |
589 | glDisable(GL_TEXTURE_2D); // Texture unit 3 | 543 | glDisable(GL_TEXTURE_2D); // Texture unit 3 |
544 | |||
590 | glMatrixMode(GL_TEXTURE); | 545 | glMatrixMode(GL_TEXTURE); |
591 | glLoadIdentity(); | 546 | glLoadIdentity(); |
592 | glMatrixMode(GL_MODELVIEW); | 547 | glMatrixMode(GL_MODELVIEW); |
593 | 548 | ||
594 | LLImageGL::unbindTexture(2, GL_TEXTURE_2D); | 549 | LLImageGL::unbindTexture(2, GL_TEXTURE_2D); |
595 | glActiveTextureARB(GL_TEXTURE2_ARB); | 550 | gGL.getTexUnit(2)->activate(); |
596 | glClientActiveTextureARB(GL_TEXTURE2_ARB); | 551 | glClientActiveTextureARB(GL_TEXTURE2_ARB); |
597 | glDisableClientState(GL_TEXTURE_COORD_ARRAY); | 552 | glDisableClientState(GL_TEXTURE_COORD_ARRAY); |
598 | glDisable(GL_TEXTURE_2D); // Texture unit 2 | 553 | glDisable(GL_TEXTURE_2D); // Texture unit 2 |
554 | |||
599 | glDisable(GL_TEXTURE_GEN_S); | 555 | glDisable(GL_TEXTURE_GEN_S); |
600 | glDisable(GL_TEXTURE_GEN_T); | 556 | glDisable(GL_TEXTURE_GEN_T); |
601 | glMatrixMode(GL_TEXTURE); | 557 | glMatrixMode(GL_TEXTURE); |
@@ -603,33 +559,34 @@ void LLDrawPoolTerrain::renderFull4TU() | |||
603 | glMatrixMode(GL_MODELVIEW); | 559 | glMatrixMode(GL_MODELVIEW); |
604 | 560 | ||
605 | LLImageGL::unbindTexture(1, GL_TEXTURE_2D); | 561 | LLImageGL::unbindTexture(1, GL_TEXTURE_2D); |
606 | glActiveTextureARB(GL_TEXTURE1_ARB); | 562 | gGL.getTexUnit(1)->activate(); |
607 | glClientActiveTextureARB(GL_TEXTURE1_ARB); | 563 | glClientActiveTextureARB(GL_TEXTURE1_ARB); |
608 | glDisableClientState(GL_TEXTURE_COORD_ARRAY); | 564 | glDisableClientState(GL_TEXTURE_COORD_ARRAY); |
609 | glDisable(GL_TEXTURE_2D); // Texture unit 1 | 565 | glDisable(GL_TEXTURE_2D); // Texture unit 1 |
566 | |||
610 | glMatrixMode(GL_TEXTURE); | 567 | glMatrixMode(GL_TEXTURE); |
611 | glLoadIdentity(); | 568 | glLoadIdentity(); |
612 | glMatrixMode(GL_MODELVIEW); | 569 | glMatrixMode(GL_MODELVIEW); |
613 | 570 | ||
614 | // Restore blend state | 571 | // Restore blend state |
615 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 572 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
616 | 573 | ||
617 | //---------------------------------------------------------------------------- | 574 | //---------------------------------------------------------------------------- |
618 | // Restore Texture Unit 0 defaults | 575 | // Restore Texture Unit 0 defaults |
619 | 576 | ||
620 | glActiveTextureARB(GL_TEXTURE0_ARB); | 577 | gGL.getTexUnit(0)->activate(); |
621 | LLImageGL::unbindTexture(0, GL_TEXTURE_2D); | 578 | LLImageGL::unbindTexture(0, GL_TEXTURE_2D); |
622 | glClientActiveTextureARB(GL_TEXTURE0_ARB); | 579 | glClientActiveTextureARB(GL_TEXTURE0_ARB); |
623 | glActiveTextureARB(GL_TEXTURE0_ARB); | 580 | gGL.getTexUnit(0)->activate(); |
581 | glDisableClientState(GL_NORMAL_ARRAY); | ||
582 | |||
624 | glDisable(GL_TEXTURE_GEN_S); | 583 | glDisable(GL_TEXTURE_GEN_S); |
625 | glDisable(GL_TEXTURE_GEN_T); | 584 | glDisable(GL_TEXTURE_GEN_T); |
626 | glMatrixMode(GL_TEXTURE); | 585 | glMatrixMode(GL_TEXTURE); |
627 | glLoadIdentity(); | 586 | glLoadIdentity(); |
628 | glMatrixMode(GL_MODELVIEW); | 587 | glMatrixMode(GL_MODELVIEW); |
629 | 588 | ||
630 | // Restore non Texture Unit specific defaults | 589 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
631 | glDisableClientState(GL_NORMAL_ARRAY); | ||
632 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | ||
633 | } | 590 | } |
634 | 591 | ||
635 | void LLDrawPoolTerrain::renderFull2TU() | 592 | void LLDrawPoolTerrain::renderFull2TU() |
@@ -651,7 +608,7 @@ void LLDrawPoolTerrain::renderFull2TU() | |||
651 | tp0.setVec(sDetailScale, 0.0f, 0.0f, offset_x); | 608 | tp0.setVec(sDetailScale, 0.0f, 0.0f, offset_x); |
652 | tp1.setVec(0.0f, sDetailScale, 0.0f, offset_y); | 609 | tp1.setVec(0.0f, sDetailScale, 0.0f, offset_y); |
653 | 610 | ||
654 | gGL.blendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA); | 611 | gGL.blendFunc(LLRender::BF_ONE_MINUS_SOURCE_ALPHA, LLRender::BF_SOURCE_ALPHA); |
655 | 612 | ||
656 | //---------------------------------------------------------------------------- | 613 | //---------------------------------------------------------------------------- |
657 | // Pass 1/4 | 614 | // Pass 1/4 |
@@ -668,13 +625,7 @@ void LLDrawPoolTerrain::renderFull2TU() | |||
668 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0.mV); | 625 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0.mV); |
669 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1.mV); | 626 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1.mV); |
670 | 627 | ||
671 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 628 | gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_MULT, LLTexUnit::TBS_TEX_COLOR, LLTexUnit::TBS_VERT_COLOR); |
672 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE); | ||
673 | |||
674 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_TEXTURE); | ||
675 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
676 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_PRIMARY_COLOR_ARB); | ||
677 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR); | ||
678 | 629 | ||
679 | drawLoop(); | 630 | drawLoop(); |
680 | 631 | ||
@@ -690,22 +641,17 @@ void LLDrawPoolTerrain::renderFull2TU() | |||
690 | glDisable(GL_TEXTURE_GEN_T); | 641 | glDisable(GL_TEXTURE_GEN_T); |
691 | 642 | ||
692 | // Care about alpha only | 643 | // Care about alpha only |
693 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 644 | gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_PREV_COLOR); |
694 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); | 645 | gGL.getTexUnit(0)->setTextureAlphaBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_ALPHA); |
695 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_REPLACE); | ||
696 | |||
697 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS); | ||
698 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
699 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_TEXTURE); | ||
700 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA); | ||
701 | 646 | ||
702 | 647 | ||
703 | // | 648 | // |
704 | // Stage 1: Write detail1 | 649 | // Stage 1: Write detail1 |
705 | // | 650 | // |
706 | LLViewerImage::bindTexture(detail_texture1p,1); // Texture unit 1 | 651 | LLViewerImage::bindTexture(detail_texture1p,1); // Texture unit 1 |
707 | glActiveTextureARB(GL_TEXTURE1_ARB); | 652 | gGL.getTexUnit(1)->activate(); |
708 | glEnable(GL_TEXTURE_2D); // Texture unit 1 | 653 | glEnable(GL_TEXTURE_2D); // Texture unit 1 |
654 | |||
709 | glEnable(GL_TEXTURE_GEN_S); | 655 | glEnable(GL_TEXTURE_GEN_S); |
710 | glEnable(GL_TEXTURE_GEN_T); | 656 | glEnable(GL_TEXTURE_GEN_T); |
711 | glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); | 657 | glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); |
@@ -713,18 +659,10 @@ void LLDrawPoolTerrain::renderFull2TU() | |||
713 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0.mV); | 659 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0.mV); |
714 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1.mV); | 660 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1.mV); |
715 | 661 | ||
716 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 662 | gGL.getTexUnit(1)->setTextureColorBlend(LLTexUnit::TBO_MULT, LLTexUnit::TBS_TEX_COLOR, LLTexUnit::TBS_VERT_COLOR); |
717 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE); | 663 | gGL.getTexUnit(1)->setTextureAlphaBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_PREV_ALPHA); |
718 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_REPLACE); | ||
719 | 664 | ||
720 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_TEXTURE); | 665 | gGL.getTexUnit(0)->activate(); |
721 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
722 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_PRIMARY_COLOR_ARB); | ||
723 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR); | ||
724 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_PREVIOUS); | ||
725 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA); | ||
726 | |||
727 | glActiveTextureARB(GL_TEXTURE0_ARB); | ||
728 | { | 666 | { |
729 | LLGLEnable blend(GL_BLEND); | 667 | LLGLEnable blend(GL_BLEND); |
730 | drawLoop(); | 668 | drawLoop(); |
@@ -736,26 +674,21 @@ void LLDrawPoolTerrain::renderFull2TU() | |||
736 | // Stage 0: Generate alpha ramp for detail1/detail2 transition | 674 | // Stage 0: Generate alpha ramp for detail1/detail2 transition |
737 | // | 675 | // |
738 | LLViewerImage::bindTexture(m2DAlphaRampImagep,0); | 676 | LLViewerImage::bindTexture(m2DAlphaRampImagep,0); |
677 | |||
739 | // Set the texture matrix | 678 | // Set the texture matrix |
740 | glMatrixMode(GL_TEXTURE); | 679 | glMatrixMode(GL_TEXTURE); |
741 | glLoadIdentity(); | 680 | glLoadIdentity(); |
742 | glTranslatef(-1.f, 0.f, 0.f); | 681 | glTranslatef(-1.f, 0.f, 0.f); |
743 | 682 | ||
744 | // Care about alpha only | 683 | // Care about alpha only |
745 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 684 | gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_PREV_COLOR); |
746 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); | 685 | gGL.getTexUnit(0)->setTextureAlphaBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_ALPHA); |
747 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_REPLACE); | ||
748 | |||
749 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS); | ||
750 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
751 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_TEXTURE); | ||
752 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA); | ||
753 | 686 | ||
754 | // | 687 | // |
755 | // Stage 1: Write detail2 | 688 | // Stage 1: Write detail2 |
756 | // | 689 | // |
757 | |||
758 | LLViewerImage::bindTexture(detail_texture2p,1); | 690 | LLViewerImage::bindTexture(detail_texture2p,1); |
691 | gGL.getTexUnit(1)->activate(); | ||
759 | glEnable(GL_TEXTURE_2D); // Texture unit 1 | 692 | glEnable(GL_TEXTURE_2D); // Texture unit 1 |
760 | 693 | ||
761 | glEnable(GL_TEXTURE_GEN_S); | 694 | glEnable(GL_TEXTURE_GEN_S); |
@@ -765,16 +698,8 @@ void LLDrawPoolTerrain::renderFull2TU() | |||
765 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0.mV); | 698 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0.mV); |
766 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1.mV); | 699 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1.mV); |
767 | 700 | ||
768 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 701 | gGL.getTexUnit(1)->setTextureColorBlend(LLTexUnit::TBO_MULT, LLTexUnit::TBS_TEX_COLOR, LLTexUnit::TBS_VERT_COLOR); |
769 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE); | 702 | gGL.getTexUnit(1)->setTextureAlphaBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_PREV_ALPHA); |
770 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_REPLACE); | ||
771 | |||
772 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_TEXTURE); | ||
773 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
774 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_PRIMARY_COLOR_ARB); | ||
775 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR); | ||
776 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_PREVIOUS); | ||
777 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA); | ||
778 | 703 | ||
779 | { | 704 | { |
780 | LLGLEnable blend(GL_BLEND); | 705 | LLGLEnable blend(GL_BLEND); |
@@ -787,27 +712,22 @@ void LLDrawPoolTerrain::renderFull2TU() | |||
787 | // | 712 | // |
788 | // Stage 0: Generate alpha ramp for detail2/detail3 transition | 713 | // Stage 0: Generate alpha ramp for detail2/detail3 transition |
789 | // | 714 | // |
790 | LLViewerImage::bindTexture(m2DAlphaRampImagep,0); | 715 | gGL.getTexUnit(0)->activate(); |
716 | LLViewerImage::bindTexture(m2DAlphaRampImagep,0); | ||
791 | // Set the texture matrix | 717 | // Set the texture matrix |
792 | glMatrixMode(GL_TEXTURE); | 718 | glMatrixMode(GL_TEXTURE); |
793 | glLoadIdentity(); | 719 | glLoadIdentity(); |
794 | glTranslatef(-2.f, 0.f, 0.f); | 720 | glTranslatef(-2.f, 0.f, 0.f); |
795 | 721 | ||
796 | // Care about alpha only | 722 | // Care about alpha only |
797 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 723 | gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_PREV_COLOR); |
798 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); | 724 | gGL.getTexUnit(0)->setTextureAlphaBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_ALPHA); |
799 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_REPLACE); | ||
800 | |||
801 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS); | ||
802 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
803 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_TEXTURE); | ||
804 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA); | ||
805 | 725 | ||
806 | // Stage 1: Write detail3 | 726 | // Stage 1: Write detail3 |
807 | |||
808 | LLViewerImage::bindTexture(detail_texture3p,1); | 727 | LLViewerImage::bindTexture(detail_texture3p,1); |
809 | glActiveTextureARB(GL_TEXTURE1_ARB); | 728 | gGL.getTexUnit(1)->activate(); |
810 | glEnable(GL_TEXTURE_2D); // Texture unit 1 | 729 | glEnable(GL_TEXTURE_2D); // Texture unit 1 |
730 | |||
811 | glEnable(GL_TEXTURE_GEN_S); | 731 | glEnable(GL_TEXTURE_GEN_S); |
812 | glEnable(GL_TEXTURE_GEN_T); | 732 | glEnable(GL_TEXTURE_GEN_T); |
813 | glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); | 733 | glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); |
@@ -815,30 +735,24 @@ void LLDrawPoolTerrain::renderFull2TU() | |||
815 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0.mV); | 735 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0.mV); |
816 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1.mV); | 736 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1.mV); |
817 | 737 | ||
818 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 738 | gGL.getTexUnit(1)->setTextureColorBlend(LLTexUnit::TBO_MULT, LLTexUnit::TBS_TEX_COLOR, LLTexUnit::TBS_VERT_COLOR); |
819 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE); | 739 | gGL.getTexUnit(1)->setTextureAlphaBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_PREV_ALPHA); |
820 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_REPLACE); | ||
821 | 740 | ||
822 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_TEXTURE); | 741 | gGL.getTexUnit(0)->activate(); |
823 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
824 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_PRIMARY_COLOR_ARB); | ||
825 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR); | ||
826 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_PREVIOUS); | ||
827 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA); | ||
828 | |||
829 | glActiveTextureARB(GL_TEXTURE0_ARB); | ||
830 | { | 742 | { |
831 | LLGLEnable blend(GL_BLEND); | 743 | LLGLEnable blend(GL_BLEND); |
832 | drawLoop(); | 744 | drawLoop(); |
833 | } | 745 | } |
834 | 746 | ||
835 | // Restore blend state | 747 | // Restore blend state |
836 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 748 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
837 | 749 | ||
838 | // Disable multitexture | 750 | // Disable multitexture |
751 | |||
839 | LLImageGL::unbindTexture(1, GL_TEXTURE_2D); | 752 | LLImageGL::unbindTexture(1, GL_TEXTURE_2D); |
840 | glActiveTextureARB(GL_TEXTURE1_ARB); | 753 | gGL.getTexUnit(1)->activate(); |
841 | glDisable(GL_TEXTURE_2D); // Texture unit 1 | 754 | glDisable(GL_TEXTURE_2D); // Texture unit 1 |
755 | |||
842 | glDisable(GL_TEXTURE_GEN_S); | 756 | glDisable(GL_TEXTURE_GEN_S); |
843 | glDisable(GL_TEXTURE_GEN_T); | 757 | glDisable(GL_TEXTURE_GEN_T); |
844 | glMatrixMode(GL_TEXTURE); | 758 | glMatrixMode(GL_TEXTURE); |
@@ -848,18 +762,16 @@ void LLDrawPoolTerrain::renderFull2TU() | |||
848 | //---------------------------------------------------------------------------- | 762 | //---------------------------------------------------------------------------- |
849 | // Restore Texture Unit 0 defaults | 763 | // Restore Texture Unit 0 defaults |
850 | 764 | ||
851 | glActiveTextureARB(GL_TEXTURE0_ARB); | 765 | gGL.getTexUnit(0)->activate(); |
852 | LLImageGL::unbindTexture(0, GL_TEXTURE_2D); | 766 | LLImageGL::unbindTexture(0, GL_TEXTURE_2D); |
853 | 767 | ||
854 | glActiveTextureARB(GL_TEXTURE0_ARB); | 768 | gGL.getTexUnit(0)->activate(); |
855 | glDisable(GL_TEXTURE_GEN_S); | 769 | glDisable(GL_TEXTURE_GEN_S); |
856 | glDisable(GL_TEXTURE_GEN_T); | 770 | glDisable(GL_TEXTURE_GEN_T); |
857 | glMatrixMode(GL_TEXTURE); | 771 | glMatrixMode(GL_TEXTURE); |
858 | glLoadIdentity(); | 772 | glLoadIdentity(); |
859 | glMatrixMode(GL_MODELVIEW); | 773 | glMatrixMode(GL_MODELVIEW); |
860 | 774 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); | |
861 | // Restore non Texture Unit specific defaults | ||
862 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | ||
863 | } | 775 | } |
864 | 776 | ||
865 | 777 | ||
@@ -874,7 +786,7 @@ void LLDrawPoolTerrain::renderSimple() | |||
874 | mTexturep->addTextureStats(1024.f*1024.f); | 786 | mTexturep->addTextureStats(1024.f*1024.f); |
875 | mTexturep->bind(0); | 787 | mTexturep->bind(0); |
876 | 788 | ||
877 | glActiveTextureARB(GL_TEXTURE0_ARB); | 789 | gGL.getTexUnit(0)->activate(); |
878 | glEnable(GL_TEXTURE_2D); // Texture unit 2 | 790 | glEnable(GL_TEXTURE_2D); // Texture unit 2 |
879 | 791 | ||
880 | LLVector3 origin_agent = mDrawFace[0]->getDrawable()->getVObj()->getRegion()->getOriginAgent(); | 792 | LLVector3 origin_agent = mDrawFace[0]->getDrawable()->getVObj()->getRegion()->getOriginAgent(); |
@@ -889,13 +801,7 @@ void LLDrawPoolTerrain::renderSimple() | |||
889 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0.mV); | 801 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0.mV); |
890 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1.mV); | 802 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1.mV); |
891 | 803 | ||
892 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 804 | gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_MULT, LLTexUnit::TBS_TEX_COLOR, LLTexUnit::TBS_VERT_COLOR); |
893 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE); | ||
894 | |||
895 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_TEXTURE); | ||
896 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
897 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_PRIMARY_COLOR_ARB); | ||
898 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR); | ||
899 | 805 | ||
900 | drawLoop(); | 806 | drawLoop(); |
901 | 807 | ||
@@ -903,15 +809,13 @@ void LLDrawPoolTerrain::renderSimple() | |||
903 | // Restore Texture Unit 0 defaults | 809 | // Restore Texture Unit 0 defaults |
904 | 810 | ||
905 | LLImageGL::unbindTexture(0, GL_TEXTURE_2D); | 811 | LLImageGL::unbindTexture(0, GL_TEXTURE_2D); |
906 | glActiveTextureARB(GL_TEXTURE0_ARB); | 812 | gGL.getTexUnit(0)->activate(); |
907 | glDisable(GL_TEXTURE_GEN_S); | 813 | glDisable(GL_TEXTURE_GEN_S); |
908 | glDisable(GL_TEXTURE_GEN_T); | 814 | glDisable(GL_TEXTURE_GEN_T); |
909 | glMatrixMode(GL_TEXTURE); | 815 | glMatrixMode(GL_TEXTURE); |
910 | glLoadIdentity(); | 816 | glLoadIdentity(); |
911 | glMatrixMode(GL_MODELVIEW); | 817 | glMatrixMode(GL_MODELVIEW); |
912 | 818 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); | |
913 | // Restore non Texture Unit specific defaults | ||
914 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | ||
915 | } | 819 | } |
916 | 820 | ||
917 | //============================================================================ | 821 | //============================================================================ |
diff --git a/linden/indra/newview/lldrawpooltree.cpp b/linden/indra/newview/lldrawpooltree.cpp index fd0a83c..285b313 100644 --- a/linden/indra/newview/lldrawpooltree.cpp +++ b/linden/indra/newview/lldrawpooltree.cpp | |||
@@ -41,7 +41,7 @@ | |||
41 | #include "pipeline.h" | 41 | #include "pipeline.h" |
42 | #include "llviewercamera.h" | 42 | #include "llviewercamera.h" |
43 | #include "llglslshader.h" | 43 | #include "llglslshader.h" |
44 | #include "llglimmediate.h" | 44 | #include "llrender.h" |
45 | 45 | ||
46 | S32 LLDrawPoolTree::sDiffTex = 0; | 46 | S32 LLDrawPoolTree::sDiffTex = 0; |
47 | static LLGLSLShader* shader = NULL; | 47 | static LLGLSLShader* shader = NULL; |
@@ -67,7 +67,7 @@ void LLDrawPoolTree::prerender() | |||
67 | void LLDrawPoolTree::beginRenderPass(S32 pass) | 67 | void LLDrawPoolTree::beginRenderPass(S32 pass) |
68 | { | 68 | { |
69 | LLFastTimer t(LLFastTimer::FTM_RENDER_TREES); | 69 | LLFastTimer t(LLFastTimer::FTM_RENDER_TREES); |
70 | glAlphaFunc(GL_GREATER, 0.5f); | 70 | gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.5f); |
71 | 71 | ||
72 | if (LLPipeline::sUnderWaterRender) | 72 | if (LLPipeline::sUnderWaterRender) |
73 | { | 73 | { |
@@ -106,7 +106,7 @@ void LLDrawPoolTree::render(S32 pass) | |||
106 | void LLDrawPoolTree::endRenderPass(S32 pass) | 106 | void LLDrawPoolTree::endRenderPass(S32 pass) |
107 | { | 107 | { |
108 | LLFastTimer t(LLFastTimer::FTM_RENDER_TREES); | 108 | LLFastTimer t(LLFastTimer::FTM_RENDER_TREES); |
109 | glAlphaFunc(GL_GREATER, 0.01f); | 109 | gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); |
110 | 110 | ||
111 | if (gPipeline.canUseWindLightShadersOnObjects()) | 111 | if (gPipeline.canUseWindLightShadersOnObjects()) |
112 | { | 112 | { |
@@ -125,28 +125,18 @@ void LLDrawPoolTree::renderForSelect() | |||
125 | 125 | ||
126 | LLGLSObjectSelectAlpha gls_alpha; | 126 | LLGLSObjectSelectAlpha gls_alpha; |
127 | 127 | ||
128 | gGL.blendFunc(GL_ONE, GL_ZERO); | 128 | gGL.setSceneBlendType(LLRender::BT_REPLACE); |
129 | glAlphaFunc(GL_GREATER, 0.5f); | 129 | gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.5f); |
130 | 130 | ||
131 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 131 | gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_PREV_COLOR); |
132 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); | 132 | gGL.getTexUnit(0)->setTextureAlphaBlend(LLTexUnit::TBO_MULT, LLTexUnit::TBS_TEX_ALPHA, LLTexUnit::TBS_VERT_ALPHA); |
133 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_MODULATE); | ||
134 | |||
135 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS); | ||
136 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
137 | |||
138 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_TEXTURE); | ||
139 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA); | ||
140 | |||
141 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_ALPHA_ARB, GL_PRIMARY_COLOR_ARB); | ||
142 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_ALPHA_ARB, GL_SRC_ALPHA); | ||
143 | 133 | ||
144 | renderTree(TRUE); | 134 | renderTree(TRUE); |
145 | 135 | ||
146 | glAlphaFunc(GL_GREATER, 0.01f); | 136 | gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); |
147 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 137 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
148 | 138 | ||
149 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 139 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
150 | } | 140 | } |
151 | 141 | ||
152 | void LLDrawPoolTree::renderTree(BOOL selecting) | 142 | void LLDrawPoolTree::renderTree(BOOL selecting) |
diff --git a/linden/indra/newview/lldrawpoolwater.cpp b/linden/indra/newview/lldrawpoolwater.cpp index 231d0e1..3a98235 100644 --- a/linden/indra/newview/lldrawpoolwater.cpp +++ b/linden/indra/newview/lldrawpoolwater.cpp | |||
@@ -37,6 +37,7 @@ | |||
37 | #include "lldir.h" | 37 | #include "lldir.h" |
38 | #include "llerror.h" | 38 | #include "llerror.h" |
39 | #include "m3math.h" | 39 | #include "m3math.h" |
40 | #include "llrender.h" | ||
40 | 41 | ||
41 | #include "llagent.h" // for gAgent for getRegion for getWaterHeight | 42 | #include "llagent.h" // for gAgent for getRegion for getWaterHeight |
42 | #include "llcubemap.h" | 43 | #include "llcubemap.h" |
@@ -166,7 +167,7 @@ void LLDrawPoolWater::render(S32 pass) | |||
166 | // Set up second pass first | 167 | // Set up second pass first |
167 | mWaterImagep->addTextureStats(1024.f*1024.f); | 168 | mWaterImagep->addTextureStats(1024.f*1024.f); |
168 | mWaterImagep->bind(1); | 169 | mWaterImagep->bind(1); |
169 | glActiveTextureARB(GL_TEXTURE1_ARB); | 170 | gGL.getTexUnit(1)->activate(); |
170 | 171 | ||
171 | glEnable(GL_TEXTURE_2D); // Texture unit 1 | 172 | glEnable(GL_TEXTURE_2D); // Texture unit 1 |
172 | 173 | ||
@@ -198,18 +199,10 @@ void LLDrawPoolWater::render(S32 pass) | |||
198 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0); | 199 | glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0); |
199 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1); | 200 | glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1); |
200 | 201 | ||
201 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 202 | gGL.getTexUnit(1)->setTextureColorBlend(LLTexUnit::TBO_MULT, LLTexUnit::TBS_TEX_COLOR, LLTexUnit::TBS_PREV_COLOR); |
202 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE); | 203 | gGL.getTexUnit(1)->setTextureAlphaBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_PREV_ALPHA); |
203 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_REPLACE); | ||
204 | 204 | ||
205 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB); | 205 | gGL.getTexUnit(0)->activate(); |
206 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
207 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE); | ||
208 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR); | ||
209 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_PREVIOUS_ARB); | ||
210 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA); | ||
211 | |||
212 | glActiveTextureARB(GL_TEXTURE0_ARB); | ||
213 | 206 | ||
214 | glClearStencil(1); | 207 | glClearStencil(1); |
215 | glClear(GL_STENCIL_BUFFER_BIT); | 208 | glClear(GL_STENCIL_BUFFER_BIT); |
@@ -230,14 +223,14 @@ void LLDrawPoolWater::render(S32 pass) | |||
230 | } | 223 | } |
231 | 224 | ||
232 | // Now, disable texture coord generation on texture state 1 | 225 | // Now, disable texture coord generation on texture state 1 |
233 | glActiveTextureARB(GL_TEXTURE1_ARB); | 226 | gGL.getTexUnit(1)->activate(); |
234 | glDisable(GL_TEXTURE_2D); // Texture unit 1 | 227 | glDisable(GL_TEXTURE_2D); // Texture unit 1 |
235 | glDisable(GL_TEXTURE_GEN_S); //texture unit 1 | 228 | glDisable(GL_TEXTURE_GEN_S); //texture unit 1 |
236 | glDisable(GL_TEXTURE_GEN_T); //texture unit 1 | 229 | glDisable(GL_TEXTURE_GEN_T); //texture unit 1 |
237 | LLImageGL::unbindTexture(1, GL_TEXTURE_2D); | 230 | LLImageGL::unbindTexture(1, GL_TEXTURE_2D); |
238 | 231 | ||
239 | // Disable texture coordinate and color arrays | 232 | // Disable texture coordinate and color arrays |
240 | glActiveTextureARB(GL_TEXTURE0_ARB); | 233 | gGL.getTexUnit(0)->activate(); |
241 | LLImageGL::unbindTexture(0, GL_TEXTURE_2D); | 234 | LLImageGL::unbindTexture(0, GL_TEXTURE_2D); |
242 | 235 | ||
243 | stop_glerror(); | 236 | stop_glerror(); |
@@ -258,7 +251,7 @@ void LLDrawPoolWater::render(S32 pass) | |||
258 | glMatrixMode(GL_MODELVIEW); | 251 | glMatrixMode(GL_MODELVIEW); |
259 | LLOverrideFaceColor overrid(this, 1.f, 1.f, 1.f, 0.5f*up_dot); | 252 | LLOverrideFaceColor overrid(this, 1.f, 1.f, 1.f, 0.5f*up_dot); |
260 | 253 | ||
261 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 254 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
262 | 255 | ||
263 | for (std::vector<LLFace*>::iterator iter = mDrawFace.begin(); | 256 | for (std::vector<LLFace*>::iterator iter = mDrawFace.begin(); |
264 | iter != mDrawFace.end(); iter++) | 257 | iter != mDrawFace.end(); iter++) |
@@ -276,7 +269,7 @@ void LLDrawPoolWater::render(S32 pass) | |||
276 | } | 269 | } |
277 | } | 270 | } |
278 | 271 | ||
279 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 272 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
280 | 273 | ||
281 | if (gSky.mVOSkyp->getCubeMap()) | 274 | if (gSky.mVOSkyp->getCubeMap()) |
282 | { | 275 | { |
@@ -298,7 +291,7 @@ void LLDrawPoolWater::render(S32 pass) | |||
298 | renderReflection(refl_face); | 291 | renderReflection(refl_face); |
299 | } | 292 | } |
300 | 293 | ||
301 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 294 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
302 | } | 295 | } |
303 | 296 | ||
304 | void LLDrawPoolWater::renderReflection(LLFace* face) | 297 | void LLDrawPoolWater::renderReflection(LLFace* face) |
@@ -331,7 +324,7 @@ void LLDrawPoolWater::renderReflection(LLFace* face) | |||
331 | 324 | ||
332 | void LLDrawPoolWater::shade() | 325 | void LLDrawPoolWater::shade() |
333 | { | 326 | { |
334 | glColorMask(GL_TRUE,GL_TRUE,GL_TRUE,GL_TRUE); | 327 | gGL.setColorMask(true, true); |
335 | 328 | ||
336 | LLVOSky *voskyp = gSky.mVOSkyp; | 329 | LLVOSky *voskyp = gSky.mVOSkyp; |
337 | 330 | ||
@@ -396,9 +389,9 @@ void LLDrawPoolWater::shade() | |||
396 | 389 | ||
397 | if (reftex > -1) | 390 | if (reftex > -1) |
398 | { | 391 | { |
399 | glActiveTextureARB(GL_TEXTURE0_ARB+reftex); | 392 | gGL.getTexUnit(reftex)->activate(); |
400 | gPipeline.mWaterRef.bindTexture(); | 393 | gPipeline.mWaterRef.bindTexture(); |
401 | glActiveTextureARB(GL_TEXTURE0_ARB); | 394 | gGL.getTexUnit(0)->activate(); |
402 | } | 395 | } |
403 | 396 | ||
404 | //bind normal map | 397 | //bind normal map |
@@ -414,14 +407,8 @@ void LLDrawPoolWater::shade() | |||
414 | 407 | ||
415 | mWaterNormp->addTextureStats(1024.f*1024.f); | 408 | mWaterNormp->addTextureStats(1024.f*1024.f); |
416 | mWaterNormp->bind(bumpTex); | 409 | mWaterNormp->bind(bumpTex); |
417 | if (!gSavedSettings.getBOOL("RenderWaterMipNormal")) | 410 | mWaterNormp->setMipFilterNearest (mWaterNormp->getMipFilterNearest(), |
418 | { | 411 | !gSavedSettings.getBOOL("RenderWaterMipNormal")); |
419 | glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); | ||
420 | } | ||
421 | else | ||
422 | { | ||
423 | glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); | ||
424 | } | ||
425 | 412 | ||
426 | S32 screentex = shader->enableTexture(LLShaderMgr::WATER_SCREENTEX); | 413 | S32 screentex = shader->enableTexture(LLShaderMgr::WATER_SCREENTEX); |
427 | stop_glerror(); | 414 | stop_glerror(); |
@@ -548,9 +535,9 @@ void LLDrawPoolWater::shade() | |||
548 | shader->disableTexture(LLShaderMgr::WATER_SCREENDEPTH); | 535 | shader->disableTexture(LLShaderMgr::WATER_SCREENDEPTH); |
549 | shader->unbind(); | 536 | shader->unbind(); |
550 | 537 | ||
551 | glActiveTextureARB(GL_TEXTURE0_ARB); | 538 | gGL.getTexUnit(0)->activate(); |
552 | glEnable(GL_TEXTURE_2D); | 539 | glEnable(GL_TEXTURE_2D); |
553 | glColorMask(GL_TRUE,GL_TRUE,GL_TRUE,GL_FALSE); | 540 | gGL.setColorMask(true, false); |
554 | 541 | ||
555 | } | 542 | } |
556 | 543 | ||
diff --git a/linden/indra/newview/lldrawpoolwlsky.cpp b/linden/indra/newview/lldrawpoolwlsky.cpp index e10cd0a..01e1af0 100644 --- a/linden/indra/newview/lldrawpoolwlsky.cpp +++ b/linden/indra/newview/lldrawpoolwlsky.cpp | |||
@@ -44,7 +44,7 @@ | |||
44 | #include "llagent.h" | 44 | #include "llagent.h" |
45 | #include "llviewerregion.h" | 45 | #include "llviewerregion.h" |
46 | #include "llface.h" | 46 | #include "llface.h" |
47 | #include "llglimmediate.h" | 47 | #include "llrender.h" |
48 | 48 | ||
49 | LLPointer<LLImageGL> LLDrawPoolWLSky::sCloudNoiseTexture = NULL; | 49 | LLPointer<LLImageGL> LLDrawPoolWLSky::sCloudNoiseTexture = NULL; |
50 | 50 | ||
@@ -153,7 +153,7 @@ void LLDrawPoolWLSky::renderStars(void) const | |||
153 | { | 153 | { |
154 | LLGLSPipelineSkyBox gls_sky; | 154 | LLGLSPipelineSkyBox gls_sky; |
155 | LLGLEnable blend(GL_BLEND); | 155 | LLGLEnable blend(GL_BLEND); |
156 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 156 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
157 | 157 | ||
158 | // *NOTE: have to have bound the cloud noise texture already since register | 158 | // *NOTE: have to have bound the cloud noise texture already since register |
159 | // combiners blending below requires something to be bound | 159 | // combiners blending below requires something to be bound |
@@ -176,16 +176,8 @@ void LLDrawPoolWLSky::renderStars(void) const | |||
176 | 176 | ||
177 | // gl_FragColor.rgb = gl_Color.rgb; | 177 | // gl_FragColor.rgb = gl_Color.rgb; |
178 | // gl_FragColor.a = gl_Color.a * star_alpha.a; | 178 | // gl_FragColor.a = gl_Color.a * star_alpha.a; |
179 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 179 | gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_PREV_COLOR); |
180 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); | 180 | gGL.getTexUnit(0)->setTextureAlphaBlend(LLTexUnit::TBO_MULT_X2, LLTexUnit::TBS_PREV_ALPHA, LLTexUnit::TBS_CONST_ALPHA); |
181 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_MODULATE); | ||
182 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS); | ||
183 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
184 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_PREVIOUS); | ||
185 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA); | ||
186 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_ALPHA_ARB, GL_CONSTANT); | ||
187 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_ALPHA_ARB, GL_SRC_ALPHA); | ||
188 | glTexEnvf(GL_TEXTURE_ENV, GL_ALPHA_SCALE, 2.0f); | ||
189 | glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, star_alpha.mV); | 181 | glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, star_alpha.mV); |
190 | 182 | ||
191 | gSky.mVOWLSkyp->drawStars(); | 183 | gSky.mVOWLSkyp->drawStars(); |
@@ -193,8 +185,7 @@ void LLDrawPoolWLSky::renderStars(void) const | |||
193 | glPointSize(1.f); | 185 | glPointSize(1.f); |
194 | 186 | ||
195 | // and disable the combiner states | 187 | // and disable the combiner states |
196 | glTexEnvf(GL_TEXTURE_ENV, GL_ALPHA_SCALE, 1.0f); | 188 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
197 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | ||
198 | } | 189 | } |
199 | 190 | ||
200 | void LLDrawPoolWLSky::renderSkyClouds(F32 camHeightLocal) const | 191 | void LLDrawPoolWLSky::renderSkyClouds(F32 camHeightLocal) const |
@@ -208,7 +199,7 @@ void LLDrawPoolWLSky::renderSkyClouds(F32 camHeightLocal) const | |||
208 | 199 | ||
209 | LLGLEnable blend(GL_BLEND); | 200 | LLGLEnable blend(GL_BLEND); |
210 | LLGLSBlendFunc blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 201 | LLGLSBlendFunc blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); |
211 | glAlphaFunc(GL_GREATER, 0.01f); | 202 | gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); |
212 | 203 | ||
213 | sCloudNoiseTexture->bind(); | 204 | sCloudNoiseTexture->bind(); |
214 | shader->bind(); | 205 | shader->bind(); |
diff --git a/linden/indra/newview/lldynamictexture.cpp b/linden/indra/newview/lldynamictexture.cpp index ce7f1ec..f77187d 100644 --- a/linden/indra/newview/lldynamictexture.cpp +++ b/linden/indra/newview/lldynamictexture.cpp | |||
@@ -40,7 +40,7 @@ | |||
40 | #include "llviewerimage.h" | 40 | #include "llviewerimage.h" |
41 | #include "llvertexbuffer.h" | 41 | #include "llvertexbuffer.h" |
42 | #include "llviewerdisplay.h" | 42 | #include "llviewerdisplay.h" |
43 | #include "llglimmediate.h" | 43 | #include "llrender.h" |
44 | 44 | ||
45 | void render_ui_and_swap_if_needed(); | 45 | void render_ui_and_swap_if_needed(); |
46 | 46 | ||
diff --git a/linden/indra/newview/llface.cpp b/linden/indra/newview/llface.cpp index 4a5e532..3e0c5b2 100644 --- a/linden/indra/newview/llface.cpp +++ b/linden/indra/newview/llface.cpp | |||
@@ -42,7 +42,7 @@ | |||
42 | 42 | ||
43 | #include "lldrawpoolbump.h" | 43 | #include "lldrawpoolbump.h" |
44 | #include "llgl.h" | 44 | #include "llgl.h" |
45 | #include "llglimmediate.h" | 45 | #include "llrender.h" |
46 | #include "lllightconstants.h" | 46 | #include "lllightconstants.h" |
47 | #include "llsky.h" | 47 | #include "llsky.h" |
48 | #include "llviewercamera.h" | 48 | #include "llviewercamera.h" |
@@ -468,6 +468,7 @@ void LLFace::renderSelectedUV(const S32 offset, const S32 count) | |||
468 | if (pass == 0) | 468 | if (pass == 0) |
469 | { | 469 | { |
470 | LLViewerImage::bindTexture(red_blue_imagep); | 470 | LLViewerImage::bindTexture(red_blue_imagep); |
471 | red_blue_imagep->setMipFilterNearest (TRUE, TRUE); | ||
471 | } | 472 | } |
472 | else // pass == 1 | 473 | else // pass == 1 |
473 | { | 474 | { |
@@ -476,9 +477,8 @@ void LLFace::renderSelectedUV(const S32 offset, const S32 count) | |||
476 | glMatrixMode(GL_TEXTURE); | 477 | glMatrixMode(GL_TEXTURE); |
477 | glPushMatrix(); | 478 | glPushMatrix(); |
478 | glScalef(256.f, 256.f, 1.f); | 479 | glScalef(256.f, 256.f, 1.f); |
480 | green_imagep->setMipFilterNearest (TRUE, TRUE); | ||
479 | } | 481 | } |
480 | glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); | ||
481 | glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); | ||
482 | 482 | ||
483 | 483 | ||
484 | if (!isState(GLOBAL)) | 484 | if (!isState(GLOBAL)) |
diff --git a/linden/indra/newview/llface.h b/linden/indra/newview/llface.h index f04d221..533851c 100644 --- a/linden/indra/newview/llface.h +++ b/linden/indra/newview/llface.h | |||
@@ -34,6 +34,7 @@ | |||
34 | 34 | ||
35 | #include "llstrider.h" | 35 | #include "llstrider.h" |
36 | 36 | ||
37 | #include "llrender.h" | ||
37 | #include "v2math.h" | 38 | #include "v2math.h" |
38 | #include "v3math.h" | 39 | #include "v3math.h" |
39 | #include "v4math.h" | 40 | #include "v4math.h" |
diff --git a/linden/indra/newview/llfasttimerview.cpp b/linden/indra/newview/llfasttimerview.cpp index 047016f..d594dc5 100644 --- a/linden/indra/newview/llfasttimerview.cpp +++ b/linden/indra/newview/llfasttimerview.cpp | |||
@@ -37,7 +37,7 @@ | |||
37 | #include "llrect.h" | 37 | #include "llrect.h" |
38 | #include "llerror.h" | 38 | #include "llerror.h" |
39 | #include "llgl.h" | 39 | #include "llgl.h" |
40 | #include "llglimmediate.h" | 40 | #include "llrender.h" |
41 | #include "llmath.h" | 41 | #include "llmath.h" |
42 | #include "llfontgl.h" | 42 | #include "llfontgl.h" |
43 | 43 | ||
diff --git a/linden/indra/newview/llfeaturemanager.cpp b/linden/indra/newview/llfeaturemanager.cpp index 9f79c18..69e7bcc 100644 --- a/linden/indra/newview/llfeaturemanager.cpp +++ b/linden/indra/newview/llfeaturemanager.cpp | |||
@@ -95,7 +95,7 @@ void LLFeatureList::addFeature(const char *name, const BOOL available, const F32 | |||
95 | { | 95 | { |
96 | if (mFeatures.count(name)) | 96 | if (mFeatures.count(name)) |
97 | { | 97 | { |
98 | llwarns << "LLFeatureList::Attempting to add preexisting feature " << name << llendl; | 98 | LL_WARNS("RenderInit") << "LLFeatureList::Attempting to add preexisting feature " << name << LL_ENDL; |
99 | } | 99 | } |
100 | 100 | ||
101 | LLFeatureInfo fi(name, available, level); | 101 | LLFeatureInfo fi(name, available, level); |
@@ -109,7 +109,7 @@ BOOL LLFeatureList::isFeatureAvailable(const char *name) | |||
109 | return mFeatures[name].mAvailable; | 109 | return mFeatures[name].mAvailable; |
110 | } | 110 | } |
111 | 111 | ||
112 | llwarns << "Feature " << name << " not on feature list!" << llendl; | 112 | LL_WARNS("RenderInit") << "Feature " << name << " not on feature list!" << LL_ENDL; |
113 | 113 | ||
114 | // changing this to TRUE so you have to explicitly disable | 114 | // changing this to TRUE so you have to explicitly disable |
115 | // something for it to be disabled | 115 | // something for it to be disabled |
@@ -123,7 +123,7 @@ F32 LLFeatureList::getRecommendedValue(const char *name) | |||
123 | return mFeatures[name].mRecommendedLevel; | 123 | return mFeatures[name].mRecommendedLevel; |
124 | } | 124 | } |
125 | 125 | ||
126 | llwarns << "Feature " << name << " not on feature list or not available!" << llendl; | 126 | LL_WARNS("RenderInit") << "Feature " << name << " not on feature list or not available!" << LL_ENDL; |
127 | return 0; | 127 | return 0; |
128 | } | 128 | } |
129 | 129 | ||
@@ -146,46 +146,46 @@ BOOL LLFeatureList::maskList(LLFeatureList &mask) | |||
146 | // | 146 | // |
147 | if (!mFeatures.count(mask_fi.mName)) | 147 | if (!mFeatures.count(mask_fi.mName)) |
148 | { | 148 | { |
149 | llwarns << "Feature " << mask_fi.mName << " in mask not in top level!" << llendl; | 149 | LL_WARNS("RenderInit") << "Feature " << mask_fi.mName << " in mask not in top level!" << LL_ENDL; |
150 | continue; | 150 | continue; |
151 | } | 151 | } |
152 | 152 | ||
153 | LLFeatureInfo &cur_fi = mFeatures[mask_fi.mName]; | 153 | LLFeatureInfo &cur_fi = mFeatures[mask_fi.mName]; |
154 | if (mask_fi.mAvailable && !cur_fi.mAvailable) | 154 | if (mask_fi.mAvailable && !cur_fi.mAvailable) |
155 | { | 155 | { |
156 | llwarns << "Mask attempting to reenabling disabled feature, ignoring " << cur_fi.mName << llendl; | 156 | LL_WARNS("RenderInit") << "Mask attempting to reenabling disabled feature, ignoring " << cur_fi.mName << LL_ENDL; |
157 | continue; | 157 | continue; |
158 | } | 158 | } |
159 | cur_fi.mAvailable = mask_fi.mAvailable; | 159 | cur_fi.mAvailable = mask_fi.mAvailable; |
160 | cur_fi.mRecommendedLevel = llmin(cur_fi.mRecommendedLevel, mask_fi.mRecommendedLevel); | 160 | cur_fi.mRecommendedLevel = llmin(cur_fi.mRecommendedLevel, mask_fi.mRecommendedLevel); |
161 | #ifndef LL_RELEASE_FOR_DOWNLOAD | 161 | LL_DEBUGS("RenderInit") << "Feature mask " << mask.mName |
162 | llinfos << "Feature mask " << mask.mName | ||
163 | << " Feature " << mask_fi.mName | 162 | << " Feature " << mask_fi.mName |
164 | << " Mask: " << mask_fi.mRecommendedLevel | 163 | << " Mask: " << mask_fi.mRecommendedLevel |
165 | << " Now: " << cur_fi.mRecommendedLevel << llendl; | 164 | << " Now: " << cur_fi.mRecommendedLevel << LL_ENDL; |
166 | #endif | ||
167 | } | 165 | } |
168 | 166 | ||
169 | #if 0 && !LL_RELEASE_FOR_DOWNLOAD | 167 | LL_DEBUGS("RenderInit") << "After applying mask " << mask.mName << std::endl; |
170 | llinfos << "After applying mask " << mask.mName << llendl; | 168 | // Will conditionally call dump only if the above message will be logged, thanks |
171 | dump(); | 169 | // to it being wrapped by the LL_DEBUGS and LL_ENDL macros. |
172 | #endif | 170 | dump(); |
171 | LL_CONT << LL_ENDL; | ||
172 | |||
173 | return TRUE; | 173 | return TRUE; |
174 | } | 174 | } |
175 | 175 | ||
176 | void LLFeatureList::dump() | 176 | void LLFeatureList::dump() |
177 | { | 177 | { |
178 | llinfos << "Feature list: " << mName << llendl; | 178 | LL_DEBUGS("RenderInit") << "Feature list: " << mName << LL_ENDL; |
179 | llinfos << "--------------" << llendl; | 179 | LL_DEBUGS("RenderInit") << "--------------" << LL_ENDL; |
180 | 180 | ||
181 | LLFeatureInfo fi; | 181 | LLFeatureInfo fi; |
182 | feature_map_t::iterator feature_it; | 182 | feature_map_t::iterator feature_it; |
183 | for (feature_it = mFeatures.begin(); feature_it != mFeatures.end(); ++feature_it) | 183 | for (feature_it = mFeatures.begin(); feature_it != mFeatures.end(); ++feature_it) |
184 | { | 184 | { |
185 | fi = feature_it->second; | 185 | fi = feature_it->second; |
186 | llinfos << fi.mName << "\t\t" << fi.mAvailable << ":" << fi.mRecommendedLevel << llendl; | 186 | LL_DEBUGS("RenderInit") << fi.mName << "\t\t" << fi.mAvailable << ":" << fi.mRecommendedLevel << LL_ENDL; |
187 | } | 187 | } |
188 | llinfos << llendl; | 188 | LL_DEBUGS("RenderInit") << LL_ENDL; |
189 | } | 189 | } |
190 | 190 | ||
191 | LLFeatureList *LLFeatureManager::findMask(const char *name) | 191 | LLFeatureList *LLFeatureManager::findMask(const char *name) |
@@ -203,10 +203,10 @@ BOOL LLFeatureManager::maskFeatures(const char *name) | |||
203 | LLFeatureList *maskp = findMask(name); | 203 | LLFeatureList *maskp = findMask(name); |
204 | if (!maskp) | 204 | if (!maskp) |
205 | { | 205 | { |
206 | // llwarns << "Unknown feature mask " << name << llendl; | 206 | LL_DEBUGS("RenderInit") << "Unknown feature mask " << name << LL_ENDL; |
207 | return FALSE; | 207 | return FALSE; |
208 | } | 208 | } |
209 | llinfos << "Applying Feature Mask: " << name << llendl; | 209 | LL_DEBUGS("RenderInit") << "Applying Feature Mask: " << name << LL_ENDL; |
210 | return maskList(*maskp); | 210 | return maskList(*maskp); |
211 | } | 211 | } |
212 | 212 | ||
@@ -236,7 +236,7 @@ BOOL LLFeatureManager::loadFeatureTables() | |||
236 | 236 | ||
237 | if (!file) | 237 | if (!file) |
238 | { | 238 | { |
239 | llwarns << "Unable to open feature table!" << llendl; | 239 | LL_WARNS("RenderInit") << "Unable to open feature table!" << LL_ENDL; |
240 | return FALSE; | 240 | return FALSE; |
241 | } | 241 | } |
242 | 242 | ||
@@ -245,7 +245,7 @@ BOOL LLFeatureManager::loadFeatureTables() | |||
245 | file >> version; | 245 | file >> version; |
246 | if (strcmp(name, "version")) | 246 | if (strcmp(name, "version")) |
247 | { | 247 | { |
248 | llwarns << data_path << " does not appear to be a valid feature table!" << llendl; | 248 | LL_WARNS("RenderInit") << data_path << " does not appear to be a valid feature table!" << LL_ENDL; |
249 | return FALSE; | 249 | return FALSE; |
250 | } | 250 | } |
251 | 251 | ||
@@ -285,7 +285,7 @@ BOOL LLFeatureManager::loadFeatureTables() | |||
285 | file >> name; | 285 | file >> name; |
286 | if (mMaskList.count(name)) | 286 | if (mMaskList.count(name)) |
287 | { | 287 | { |
288 | llerrs << "Overriding mask " << name << ", this is invalid!" << llendl; | 288 | LL_ERRS("RenderInit") << "Overriding mask " << name << ", this is invalid!" << LL_ENDL; |
289 | } | 289 | } |
290 | 290 | ||
291 | flp = new LLFeatureList(name); | 291 | flp = new LLFeatureList(name); |
@@ -295,7 +295,7 @@ BOOL LLFeatureManager::loadFeatureTables() | |||
295 | { | 295 | { |
296 | if (!flp) | 296 | if (!flp) |
297 | { | 297 | { |
298 | llerrs << "Specified parameter before <list> keyword!" << llendl; | 298 | LL_ERRS("RenderInit") << "Specified parameter before <list> keyword!" << LL_ENDL; |
299 | } | 299 | } |
300 | S32 available; | 300 | S32 available; |
301 | F32 recommended; | 301 | F32 recommended; |
@@ -327,7 +327,7 @@ void LLFeatureManager::loadGPUClass() | |||
327 | 327 | ||
328 | if (!file) | 328 | if (!file) |
329 | { | 329 | { |
330 | llwarns << "Unable to open GPU table: " << data_path << "!" << llendl; | 330 | LL_WARNS("RenderInit") << "Unable to open GPU table: " << data_path << "!" << LL_ENDL; |
331 | return; | 331 | return; |
332 | } | 332 | } |
333 | 333 | ||
@@ -398,7 +398,7 @@ void LLFeatureManager::loadGPUClass() | |||
398 | { | 398 | { |
399 | // if we found it, stop! | 399 | // if we found it, stop! |
400 | file.close(); | 400 | file.close(); |
401 | llinfos << "GPU is " << label << llendl; | 401 | LL_INFOS("RenderInit") << "GPU is " << label << llendl; |
402 | mGPUString = label; | 402 | mGPUString = label; |
403 | mGPUClass = (EGPUClass) strtol(cls.c_str(), NULL, 10); | 403 | mGPUClass = (EGPUClass) strtol(cls.c_str(), NULL, 10); |
404 | mGPUSupported = (BOOL) strtol(supported.c_str(), NULL, 10); | 404 | mGPUSupported = (BOOL) strtol(supported.c_str(), NULL, 10); |
@@ -408,7 +408,7 @@ void LLFeatureManager::loadGPUClass() | |||
408 | } | 408 | } |
409 | file.close(); | 409 | file.close(); |
410 | 410 | ||
411 | llwarns << "Couldn't match GPU to a class: " << gGLManager.getRawGLString() << llendl; | 411 | LL_WARNS("RenderInit") << "Couldn't match GPU to a class: " << gGLManager.getRawGLString() << LL_ENDL; |
412 | } | 412 | } |
413 | 413 | ||
414 | void LLFeatureManager::cleanupFeatureTables() | 414 | void LLFeatureManager::cleanupFeatureTables() |
@@ -546,7 +546,7 @@ void LLFeatureManager::applyBaseMasks() | |||
546 | LLFeatureList* maskp = findMask("all"); | 546 | LLFeatureList* maskp = findMask("all"); |
547 | if(maskp == NULL) | 547 | if(maskp == NULL) |
548 | { | 548 | { |
549 | llwarns << "AHH! No \"all\" in feature table!" << llendl; | 549 | LL_WARNS("RenderInit") << "AHH! No \"all\" in feature table!" << LL_ENDL; |
550 | return; | 550 | return; |
551 | } | 551 | } |
552 | 552 | ||
@@ -563,12 +563,12 @@ void LLFeatureManager::applyBaseMasks() | |||
563 | "Class3" | 563 | "Class3" |
564 | }; | 564 | }; |
565 | 565 | ||
566 | llinfos << "Setting GPU Class to " << class_table[mGPUClass] << llendl; | 566 | LL_INFOS("RenderInit") << "Setting GPU Class to " << class_table[mGPUClass] << LL_ENDL; |
567 | maskFeatures(class_table[mGPUClass]); | 567 | maskFeatures(class_table[mGPUClass]); |
568 | } | 568 | } |
569 | else | 569 | else |
570 | { | 570 | { |
571 | llinfos << "Setting GPU Class to Unknown" << llendl; | 571 | LL_INFOS("RenderInit") << "Setting GPU Class to Unknown" << LL_ENDL; |
572 | maskFeatures("Unknown"); | 572 | maskFeatures("Unknown"); |
573 | } | 573 | } |
574 | 574 | ||
diff --git a/linden/indra/newview/llfeaturemanager.h b/linden/indra/newview/llfeaturemanager.h index b45046b..79ea958 100644 --- a/linden/indra/newview/llfeaturemanager.h +++ b/linden/indra/newview/llfeaturemanager.h | |||
@@ -76,7 +76,7 @@ public: | |||
76 | void setFeatureAvailable(const char *name, const BOOL available); | 76 | void setFeatureAvailable(const char *name, const BOOL available); |
77 | void setRecommendedLevel(const char *name, const F32 level); | 77 | void setRecommendedLevel(const char *name, const F32 level); |
78 | 78 | ||
79 | BOOL loadFeatureList(FILE *fp); | 79 | BOOL loadFeatureList(LLFILE *fp); |
80 | 80 | ||
81 | BOOL maskList(LLFeatureList &mask); | 81 | BOOL maskList(LLFeatureList &mask); |
82 | 82 | ||
diff --git a/linden/indra/newview/llfloateranimpreview.cpp b/linden/indra/newview/llfloateranimpreview.cpp index 890cfd2..82729e9 100644 --- a/linden/indra/newview/llfloateranimpreview.cpp +++ b/linden/indra/newview/llfloateranimpreview.cpp | |||
@@ -46,7 +46,7 @@ | |||
46 | #include "llcombobox.h" | 46 | #include "llcombobox.h" |
47 | #include "lldrawable.h" | 47 | #include "lldrawable.h" |
48 | #include "lldrawpoolavatar.h" | 48 | #include "lldrawpoolavatar.h" |
49 | #include "llglimmediate.h" | 49 | #include "llrender.h" |
50 | #include "llface.h" | 50 | #include "llface.h" |
51 | #include "llkeyframemotion.h" | 51 | #include "llkeyframemotion.h" |
52 | #include "lllineeditor.h" | 52 | #include "lllineeditor.h" |
@@ -1135,6 +1135,7 @@ BOOL LLPreviewAnimation::render() | |||
1135 | if (avatarp->mDrawable.notNull()) | 1135 | if (avatarp->mDrawable.notNull()) |
1136 | { | 1136 | { |
1137 | LLDrawPoolAvatar *avatarPoolp = (LLDrawPoolAvatar *)avatarp->mDrawable->getFace(0)->getPool(); | 1137 | LLDrawPoolAvatar *avatarPoolp = (LLDrawPoolAvatar *)avatarp->mDrawable->getFace(0)->getPool(); |
1138 | avatarp->dirtyMesh(); | ||
1138 | avatarPoolp->renderAvatars(avatarp); // renders only one avatar | 1139 | avatarPoolp->renderAvatars(avatarp); // renders only one avatar |
1139 | } | 1140 | } |
1140 | 1141 | ||
diff --git a/linden/indra/newview/llfloaterauction.cpp b/linden/indra/newview/llfloaterauction.cpp index 7affff6..4a40abb 100644 --- a/linden/indra/newview/llfloaterauction.cpp +++ b/linden/indra/newview/llfloaterauction.cpp | |||
@@ -53,7 +53,7 @@ | |||
53 | #include "llviewerdisplay.h" | 53 | #include "llviewerdisplay.h" |
54 | #include "llviewercontrol.h" | 54 | #include "llviewercontrol.h" |
55 | #include "llui.h" | 55 | #include "llui.h" |
56 | #include "llglimmediate.h" | 56 | #include "llrender.h" |
57 | 57 | ||
58 | ///---------------------------------------------------------------------------- | 58 | ///---------------------------------------------------------------------------- |
59 | /// Local function declarations, constants, enums, and typedefs | 59 | /// Local function declarations, constants, enums, and typedefs |
@@ -186,7 +186,10 @@ void LLFloaterAuction::onClickSnapshot(void* data) | |||
186 | self->mTransactionID.generate(); | 186 | self->mTransactionID.generate(); |
187 | self->mImageID = self->mTransactionID.makeAssetID(gAgent.getSecureSessionID()); | 187 | self->mImageID = self->mTransactionID.makeAssetID(gAgent.getSecureSessionID()); |
188 | 188 | ||
189 | gViewerWindow->playSnapshotAnimAndSound(); | 189 | if(!gSavedSettings.getBOOL("QuietSnapshotsToDisk")) |
190 | { | ||
191 | gViewerWindow->playSnapshotAnimAndSound(); | ||
192 | } | ||
190 | llinfos << "Writing TGA..." << llendl; | 193 | llinfos << "Writing TGA..." << llendl; |
191 | 194 | ||
192 | LLPointer<LLImageTGA> tga = new LLImageTGA; | 195 | LLPointer<LLImageTGA> tga = new LLImageTGA; |
diff --git a/linden/indra/newview/llfloaterbuyland.cpp b/linden/indra/newview/llfloaterbuyland.cpp index ee78eaa..b596339 100644 --- a/linden/indra/newview/llfloaterbuyland.cpp +++ b/linden/indra/newview/llfloaterbuyland.cpp | |||
@@ -62,7 +62,7 @@ | |||
62 | #include "llwindow.h" | 62 | #include "llwindow.h" |
63 | #include "llworld.h" | 63 | #include "llworld.h" |
64 | #include "llxmlrpctransaction.h" | 64 | #include "llxmlrpctransaction.h" |
65 | #include "llappviewer.h" | 65 | #include "llviewernetwork.h" |
66 | #include "roles_constants.h" | 66 | #include "roles_constants.h" |
67 | 67 | ||
68 | // NOTE: This is duplicated in lldatamoney.cpp ... | 68 | // NOTE: This is duplicated in lldatamoney.cpp ... |
@@ -841,7 +841,7 @@ void LLFloaterBuyLandUI::startTransaction(TransactionType type, | |||
841 | static std::string transaction_uri; | 841 | static std::string transaction_uri; |
842 | if (transaction_uri.empty()) | 842 | if (transaction_uri.empty()) |
843 | { | 843 | { |
844 | transaction_uri = LLAppViewer::instance()->getHelperURI() + "landtool.php"; | 844 | transaction_uri = LLViewerLogin::getInstance()->getHelperURI() + "landtool.php"; |
845 | } | 845 | } |
846 | 846 | ||
847 | const char* method; | 847 | const char* method; |
@@ -1363,3 +1363,4 @@ void LLFloaterBuyLandUI::onClickErrorWeb(void* data) | |||
1363 | } | 1363 | } |
1364 | 1364 | ||
1365 | 1365 | ||
1366 | |||
diff --git a/linden/indra/newview/llfloaterchat.cpp b/linden/indra/newview/llfloaterchat.cpp index 0394cd1..d05b231 100644 --- a/linden/indra/newview/llfloaterchat.cpp +++ b/linden/indra/newview/llfloaterchat.cpp | |||
@@ -72,6 +72,7 @@ | |||
72 | #include "lltexteditor.h" | 72 | #include "lltexteditor.h" |
73 | #include "llfloaterhtml.h" | 73 | #include "llfloaterhtml.h" |
74 | #include "llweb.h" | 74 | #include "llweb.h" |
75 | #include "llstylemap.h" | ||
75 | 76 | ||
76 | // Used for LCD display | 77 | // Used for LCD display |
77 | extern void AddNewIMToLCD(const LLString &newLine); | 78 | extern void AddNewIMToLCD(const LLString &newLine); |
@@ -188,14 +189,26 @@ void LLFloaterChat::updateConsoleVisibility() | |||
188 | || (getHost() && getHost()->isMinimized() )); // are we hosted in a minimized floater? | 189 | || (getHost() && getHost()->isMinimized() )); // are we hosted in a minimized floater? |
189 | } | 190 | } |
190 | 191 | ||
191 | void add_timestamped_line(LLViewerTextEditor* edit, const LLString& line, const LLColor4& color) | 192 | void add_timestamped_line(LLViewerTextEditor* edit, const LLChat &chat, const LLColor4& color) |
192 | { | 193 | { |
194 | LLString line = chat.mText; | ||
193 | bool prepend_newline = true; | 195 | bool prepend_newline = true; |
194 | if (gSavedSettings.getBOOL("ChatShowTimestamps")) | 196 | if (gSavedSettings.getBOOL("ChatShowTimestamps")) |
195 | { | 197 | { |
196 | edit->appendTime(prepend_newline); | 198 | edit->appendTime(prepend_newline); |
197 | prepend_newline = false; | 199 | prepend_newline = false; |
198 | } | 200 | } |
201 | |||
202 | // If the msg is not from an agent (not yourself though), | ||
203 | // extract out the sender name and replace it with the hotlinked name. | ||
204 | if (chat.mSourceType == CHAT_SOURCE_AGENT && | ||
205 | chat.mFromID != LLUUID::null && | ||
206 | (line.length() > chat.mFromName.length() && line.find(chat.mFromName,0) == 0)) | ||
207 | { | ||
208 | line = line.substr(chat.mFromName.length()); | ||
209 | const LLStyleSP &sourceStyle = LLStyleMap::instance().lookup(chat.mFromID); | ||
210 | edit->appendStyledText(chat.mFromName, false, false, &sourceStyle); | ||
211 | } | ||
199 | edit->appendColoredText(line, false, prepend_newline, color); | 212 | edit->appendColoredText(line, false, prepend_newline, color); |
200 | } | 213 | } |
201 | 214 | ||
@@ -243,14 +256,14 @@ void LLFloaterChat::addChatHistory(const LLChat& chat, bool log_to_file) | |||
243 | 256 | ||
244 | if (!chat.mMuted) | 257 | if (!chat.mMuted) |
245 | { | 258 | { |
246 | add_timestamped_line(history_editor, chat.mText, color); | 259 | add_timestamped_line(history_editor, chat, color); |
247 | add_timestamped_line(history_editor_with_mute, chat.mText, color); | 260 | add_timestamped_line(history_editor_with_mute, chat, color); |
248 | } | 261 | } |
249 | else | 262 | else |
250 | { | 263 | { |
251 | // desaturate muted chat | 264 | // desaturate muted chat |
252 | LLColor4 muted_color = lerp(color, LLColor4::grey, 0.5f); | 265 | LLColor4 muted_color = lerp(color, LLColor4::grey, 0.5f); |
253 | add_timestamped_line(history_editor_with_mute, chat.mText, color); | 266 | add_timestamped_line(history_editor_with_mute, chat, color); |
254 | } | 267 | } |
255 | 268 | ||
256 | // add objects as transient speakers that can be muted | 269 | // add objects as transient speakers that can be muted |
diff --git a/linden/indra/newview/llfloatercolorpicker.cpp b/linden/indra/newview/llfloatercolorpicker.cpp index e72cb1a..7bf9da3 100644 --- a/linden/indra/newview/llfloatercolorpicker.cpp +++ b/linden/indra/newview/llfloatercolorpicker.cpp | |||
@@ -39,7 +39,7 @@ | |||
39 | #include "llfontgl.h" | 39 | #include "llfontgl.h" |
40 | #include "llsys.h" | 40 | #include "llsys.h" |
41 | #include "llgl.h" | 41 | #include "llgl.h" |
42 | #include "llglimmediate.h" | 42 | #include "llrender.h" |
43 | #include "v3dmath.h" | 43 | #include "v3dmath.h" |
44 | #include "lldir.h" | 44 | #include "lldir.h" |
45 | #include "llui.h" | 45 | #include "llui.h" |
diff --git a/linden/indra/newview/llfloaterdirectory.cpp b/linden/indra/newview/llfloaterdirectory.cpp index 42a3bae..f1ee946 100644 --- a/linden/indra/newview/llfloaterdirectory.cpp +++ b/linden/indra/newview/llfloaterdirectory.cpp | |||
@@ -79,7 +79,6 @@ LLFloaterDirectory::LLFloaterDirectory(const std::string& name) | |||
79 | mFindAllPanel = NULL; | 79 | mFindAllPanel = NULL; |
80 | mClassifiedPanel = NULL; | 80 | mClassifiedPanel = NULL; |
81 | mEventsPanel = NULL; | 81 | mEventsPanel = NULL; |
82 | mPopularPanel = NULL; | ||
83 | mLandPanel = NULL; | 82 | mLandPanel = NULL; |
84 | 83 | ||
85 | mPanelAvatarp = NULL; | 84 | mPanelAvatarp = NULL; |
@@ -96,12 +95,11 @@ LLFloaterDirectory::LLFloaterDirectory(const std::string& name) | |||
96 | factory_map["find_all_panel"] = LLCallbackMap(createFindAll, this); | 95 | factory_map["find_all_panel"] = LLCallbackMap(createFindAll, this); |
97 | factory_map["classified_panel"] = LLCallbackMap(createClassified, this); | 96 | factory_map["classified_panel"] = LLCallbackMap(createClassified, this); |
98 | factory_map["events_panel"] = LLCallbackMap(createEvents, this); | 97 | factory_map["events_panel"] = LLCallbackMap(createEvents, this); |
99 | factory_map["popular_panel"] = LLCallbackMap(createPopular, this); | 98 | factory_map["showcase_panel"] = LLCallbackMap(createShowcase, this); |
100 | factory_map["places_panel"] = LLCallbackMap(createPlaces, this); | 99 | factory_map["places_panel"] = LLCallbackMap(createPlaces, this); |
101 | factory_map["land_sales_panel"] = LLCallbackMap(createLand, this); | 100 | factory_map["land_sales_panel"] = LLCallbackMap(createLand, this); |
102 | factory_map["people_panel"] = LLCallbackMap(createPeople, this); | 101 | factory_map["people_panel"] = LLCallbackMap(createPeople, this); |
103 | factory_map["groups_panel"] = LLCallbackMap(createGroups, this); | 102 | factory_map["groups_panel"] = LLCallbackMap(createGroups, this); |
104 | factory_map["find_all_old_panel"] = LLCallbackMap(createFindAllOld, this); | ||
105 | 103 | ||
106 | factory_map["classified_details_panel"] = LLCallbackMap(createClassifiedDetail, this); | 104 | factory_map["classified_details_panel"] = LLCallbackMap(createClassifiedDetail, this); |
107 | factory_map["event_details_panel"] = LLCallbackMap(createEventDetail, this); | 105 | factory_map["event_details_panel"] = LLCallbackMap(createEventDetail, this); |
@@ -120,15 +118,14 @@ LLFloaterDirectory::LLFloaterDirectory(const std::string& name) | |||
120 | mPanelAvatarp->selectTab(0); | 118 | mPanelAvatarp->selectTab(0); |
121 | } | 119 | } |
122 | 120 | ||
123 | childSetTabChangeCallback("Directory Tabs", "find_all_panel", onTabChangedFindAll, this); | 121 | childSetTabChangeCallback("Directory Tabs", "find_all_panel", onTabChanged, this); |
124 | childSetTabChangeCallback("Directory Tabs", "classified_panel", onTabChanged, this); | 122 | childSetTabChangeCallback("Directory Tabs", "classified_panel", onTabChanged, this); |
125 | childSetTabChangeCallback("Directory Tabs", "events_panel", onTabChanged, this); | 123 | childSetTabChangeCallback("Directory Tabs", "events_panel", onTabChanged, this); |
126 | childSetTabChangeCallback("Directory Tabs", "popular_panel", onTabChanged, this); | 124 | childSetTabChangeCallback("Directory Tabs", "showcase_panel", onTabChanged, this); |
127 | childSetTabChangeCallback("Directory Tabs", "places_panel", onTabChanged, this); | 125 | childSetTabChangeCallback("Directory Tabs", "places_panel", onTabChanged, this); |
128 | childSetTabChangeCallback("Directory Tabs", "land_sales_panel", onTabChanged, this); | 126 | childSetTabChangeCallback("Directory Tabs", "land_sales_panel", onTabChanged, this); |
129 | childSetTabChangeCallback("Directory Tabs", "people_panel", onTabChanged, this); | 127 | childSetTabChangeCallback("Directory Tabs", "people_panel", onTabChanged, this); |
130 | childSetTabChangeCallback("Directory Tabs", "groups_panel", onTabChanged, this); | 128 | childSetTabChangeCallback("Directory Tabs", "groups_panel", onTabChanged, this); |
131 | childSetTabChangeCallback("Directory Tabs", "find_all_old_panel", onTabChanged, this); | ||
132 | } | 129 | } |
133 | 130 | ||
134 | LLFloaterDirectory::~LLFloaterDirectory() | 131 | LLFloaterDirectory::~LLFloaterDirectory() |
@@ -175,11 +172,10 @@ void* LLFloaterDirectory::createEvents(void* userdata) | |||
175 | } | 172 | } |
176 | 173 | ||
177 | // static | 174 | // static |
178 | void* LLFloaterDirectory::createPopular(void* userdata) | 175 | void* LLFloaterDirectory::createShowcase(void* userdata) |
179 | { | 176 | { |
180 | LLFloaterDirectory *self = (LLFloaterDirectory*)userdata; | 177 | LLFloaterDirectory *self = (LLFloaterDirectory*)userdata; |
181 | self->mPopularPanel = new LLPanelDirPopular("popular_panel", self); | 178 | return new LLPanelDirPopular("showcase_panel", self); |
182 | return self->mPopularPanel; | ||
183 | } | 179 | } |
184 | 180 | ||
185 | // static | 181 | // static |
@@ -209,14 +205,7 @@ void* LLFloaterDirectory::createPeople(void* userdata) | |||
209 | void* LLFloaterDirectory::createGroups(void* userdata) | 205 | void* LLFloaterDirectory::createGroups(void* userdata) |
210 | { | 206 | { |
211 | LLFloaterDirectory *self = (LLFloaterDirectory*)userdata; | 207 | LLFloaterDirectory *self = (LLFloaterDirectory*)userdata; |
212 | return new LLPanelDirGroups("groups_panel", self); | 208 | return new LLPanelDirGroups("people_groups", self); |
213 | } | ||
214 | |||
215 | // static | ||
216 | void *LLFloaterDirectory::createFindAllOld(void* userdata) | ||
217 | { | ||
218 | LLFloaterDirectory *self = (LLFloaterDirectory*)userdata; | ||
219 | return new LLPanelDirFindAllOld("find_all_old_panel", self); | ||
220 | } | 209 | } |
221 | 210 | ||
222 | // static | 211 | // static |
@@ -339,17 +328,6 @@ void LLFloaterDirectory::showEvents(S32 event_id) | |||
339 | } | 328 | } |
340 | 329 | ||
341 | // static | 330 | // static |
342 | void LLFloaterDirectory::showPopular(const LLUUID& parcel_id) | ||
343 | { | ||
344 | showPanel("popular_panel"); | ||
345 | |||
346 | if (sInstance->mPopularPanel) | ||
347 | { | ||
348 | sInstance->mPopularPanel->selectByUUID(parcel_id); | ||
349 | } | ||
350 | } | ||
351 | |||
352 | // static | ||
353 | void LLFloaterDirectory::showLandForSale(const LLUUID& parcel_id) | 331 | void LLFloaterDirectory::showLandForSale(const LLUUID& parcel_id) |
354 | { | 332 | { |
355 | showPanel("land_sales_panel"); | 333 | showPanel("land_sales_panel"); |
@@ -498,17 +476,6 @@ void LLFloaterDirectory::onTabChanged(void* data, bool from_click) | |||
498 | } | 476 | } |
499 | } | 477 | } |
500 | 478 | ||
501 | // static | ||
502 | void LLFloaterDirectory::onTabChangedFindAll(void* data, bool from_click) | ||
503 | { | ||
504 | LLFloaterDirectory* self = (LLFloaterDirectory*)data; | ||
505 | if (!self) return; | ||
506 | |||
507 | self->hideAllDetailPanels(); | ||
508 | LLPanelDirFindAllInterface::focus(self->mFindAllPanel); | ||
509 | onTabChanged(data, from_click); | ||
510 | } | ||
511 | |||
512 | void LLFloaterDirectory::hideAllDetailPanels() | 479 | void LLFloaterDirectory::hideAllDetailPanels() |
513 | { | 480 | { |
514 | if (mPanelAvatarp) mPanelAvatarp->setVisible(FALSE); | 481 | if (mPanelAvatarp) mPanelAvatarp->setVisible(FALSE); |
diff --git a/linden/indra/newview/llfloaterdirectory.h b/linden/indra/newview/llfloaterdirectory.h index 7aa956a..6915aea 100644 --- a/linden/indra/newview/llfloaterdirectory.h +++ b/linden/indra/newview/llfloaterdirectory.h | |||
@@ -73,7 +73,6 @@ public: | |||
73 | static void showFindAll(const std::string& search_text); | 73 | static void showFindAll(const std::string& search_text); |
74 | static void showClassified(const LLUUID& classified_id); | 74 | static void showClassified(const LLUUID& classified_id); |
75 | static void showEvents(S32 event_id); | 75 | static void showEvents(S32 event_id); |
76 | static void showPopular(const LLUUID& parcel_id); | ||
77 | static void showLandForSale(const LLUUID& parcel_id); | 76 | static void showLandForSale(const LLUUID& parcel_id); |
78 | static void showGroups(); | 77 | static void showGroups(); |
79 | static void refreshGroup(const LLUUID& group_id); | 78 | static void refreshGroup(const LLUUID& group_id); |
@@ -82,7 +81,6 @@ public: | |||
82 | static void toggleEvents(void*); | 81 | static void toggleEvents(void*); |
83 | static void toggleFind(void*); | 82 | static void toggleFind(void*); |
84 | static void onTabChanged(void*, bool); | 83 | static void onTabChanged(void*, bool); |
85 | static void onTabChangedFindAll(void*, bool); | ||
86 | 84 | ||
87 | void hideAllDetailPanels(); | 85 | void hideAllDetailPanels(); |
88 | 86 | ||
@@ -97,18 +95,16 @@ private: | |||
97 | LLPanelDirFindAll* mFindAllPanel; | 95 | LLPanelDirFindAll* mFindAllPanel; |
98 | LLPanelDirClassified* mClassifiedPanel; | 96 | LLPanelDirClassified* mClassifiedPanel; |
99 | LLPanelDirEvents* mEventsPanel; | 97 | LLPanelDirEvents* mEventsPanel; |
100 | LLPanelDirPopular* mPopularPanel; | ||
101 | LLPanelDirLand* mLandPanel; | 98 | LLPanelDirLand* mLandPanel; |
102 | 99 | ||
103 | static void* createFindAll(void* userdata); | 100 | static void* createFindAll(void* userdata); |
104 | static void* createClassified(void* userdata); | 101 | static void* createClassified(void* userdata); |
105 | static void* createEvents(void* userdata); | 102 | static void* createEvents(void* userdata); |
106 | static void* createPopular(void* userdata); | 103 | static void* createShowcase(void* userdata); |
107 | static void* createPlaces(void* userdata); | 104 | static void* createPlaces(void* userdata); |
108 | static void* createLand(void* userdata); | 105 | static void* createLand(void* userdata); |
109 | static void* createPeople(void* userdata); | 106 | static void* createPeople(void* userdata); |
110 | static void* createGroups(void* userdata); | 107 | static void* createGroups(void* userdata); |
111 | static void* createFindAllOld(void* userdata); | ||
112 | 108 | ||
113 | static void* createClassifiedDetail(void* userdata); | 109 | static void* createClassifiedDetail(void* userdata); |
114 | static void* createAvatarDetail(void* userdata); | 110 | static void* createAvatarDetail(void* userdata); |
diff --git a/linden/indra/newview/llfloatergroupinfo.cpp b/linden/indra/newview/llfloatergroupinfo.cpp index 1c303b9..c657988 100644 --- a/linden/indra/newview/llfloatergroupinfo.cpp +++ b/linden/indra/newview/llfloatergroupinfo.cpp | |||
@@ -37,7 +37,7 @@ | |||
37 | 37 | ||
38 | #include "llagent.h" | 38 | #include "llagent.h" |
39 | #include "llcommandhandler.h" | 39 | #include "llcommandhandler.h" |
40 | #include "llcommandhandler.h" | 40 | #include "llfloaterchatterbox.h" |
41 | #include "llpanelgroup.h" | 41 | #include "llpanelgroup.h" |
42 | #include "llviewermessage.h" // for inventory_offer_callback | 42 | #include "llviewermessage.h" // for inventory_offer_callback |
43 | //#include "llviewerwindow.h" | 43 | //#include "llviewerwindow.h" |
@@ -59,11 +59,35 @@ public: | |||
59 | LLGroupHandler() : LLCommandHandler("group", false) { } | 59 | LLGroupHandler() : LLCommandHandler("group", false) { } |
60 | bool handle(const LLSD& tokens, const LLSD& queryMap) | 60 | bool handle(const LLSD& tokens, const LLSD& queryMap) |
61 | { | 61 | { |
62 | if (tokens.size() < 1) | ||
63 | { | ||
64 | return false; | ||
65 | } | ||
66 | |||
67 | if (tokens[0].asString() == "create") | ||
68 | { | ||
69 | LLFloaterGroupInfo::showCreateGroup(NULL); | ||
70 | return true; | ||
71 | } | ||
72 | |||
62 | if (tokens.size() < 2) | 73 | if (tokens.size() < 2) |
63 | { | 74 | { |
64 | return false; | 75 | return false; |
65 | } | 76 | } |
66 | 77 | ||
78 | if (tokens[0].asString() == "list") | ||
79 | { | ||
80 | if (tokens[1].asString() == "show") | ||
81 | { | ||
82 | // CP_TODO: get the value we pass in via the XUI name | ||
83 | // of the tab instead of using a literal like this | ||
84 | LLFloaterMyFriends::showInstance( 1 ); | ||
85 | |||
86 | return true; | ||
87 | } | ||
88 | return false; | ||
89 | } | ||
90 | |||
67 | LLUUID group_id; | 91 | LLUUID group_id; |
68 | if (!group_id.set(tokens[0], FALSE)) | 92 | if (!group_id.set(tokens[0], FALSE)) |
69 | { | 93 | { |
diff --git a/linden/indra/newview/llfloatergroups.cpp b/linden/indra/newview/llfloatergroups.cpp index 7f32b24..c9ccf1a 100644 --- a/linden/indra/newview/llfloatergroups.cpp +++ b/linden/indra/newview/llfloatergroups.cpp | |||
@@ -466,7 +466,7 @@ void init_group_list(LLScrollListCtrl* ctrl, const LLUUID& highlight_id, U64 pow | |||
466 | LLSD element; | 466 | LLSD element; |
467 | element["id"] = LLUUID::null; | 467 | element["id"] = LLUUID::null; |
468 | element["columns"][0]["column"] = "name"; | 468 | element["columns"][0]["column"] = "name"; |
469 | element["columns"][0]["value"] = "none"; | 469 | element["columns"][0]["value"] = "none"; // *TODO: Translate |
470 | element["columns"][0]["font"] = "SANSSERIF"; | 470 | element["columns"][0]["font"] = "SANSSERIF"; |
471 | element["columns"][0]["font-style"] = style; | 471 | element["columns"][0]["font-style"] = style; |
472 | 472 | ||
diff --git a/linden/indra/newview/llfloaterimagepreview.cpp b/linden/indra/newview/llfloaterimagepreview.cpp index a228587..ccd7737 100644 --- a/linden/indra/newview/llfloaterimagepreview.cpp +++ b/linden/indra/newview/llfloaterimagepreview.cpp | |||
@@ -43,7 +43,7 @@ | |||
43 | #include "llcombobox.h" | 43 | #include "llcombobox.h" |
44 | #include "lldrawable.h" | 44 | #include "lldrawable.h" |
45 | #include "lldrawpoolavatar.h" | 45 | #include "lldrawpoolavatar.h" |
46 | #include "llglimmediate.h" | 46 | #include "llrender.h" |
47 | #include "llface.h" | 47 | #include "llface.h" |
48 | #include "lltextbox.h" | 48 | #include "lltextbox.h" |
49 | #include "lltoolmgr.h" | 49 | #include "lltoolmgr.h" |
diff --git a/linden/indra/newview/llfloaterproperties.cpp b/linden/indra/newview/llfloaterproperties.cpp index 0d2cd5f..48232cb 100644 --- a/linden/indra/newview/llfloaterproperties.cpp +++ b/linden/indra/newview/llfloaterproperties.cpp | |||
@@ -65,11 +65,21 @@ | |||
65 | // helper class to watch the inventory. | 65 | // helper class to watch the inventory. |
66 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 66 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
67 | 67 | ||
68 | class LLPropertiesObserver : public LLInventoryObserver, public LLSingleton<LLPropertiesObserver> | 68 | // Ugh. This can't be a singleton because it needs to remove itself |
69 | // from the inventory observer list when destroyed, which could | ||
70 | // happen after gInventory has already been destroyed if a singleton. | ||
71 | // Instead, do our own ref counting and create / destroy it as needed | ||
72 | class LLPropertiesObserver : public LLInventoryObserver | ||
69 | { | 73 | { |
70 | public: | 74 | public: |
71 | LLPropertiesObserver() {} | 75 | LLPropertiesObserver() |
72 | virtual ~LLPropertiesObserver() {} | 76 | { |
77 | gInventory.addObserver(this); | ||
78 | } | ||
79 | virtual ~LLPropertiesObserver() | ||
80 | { | ||
81 | gInventory.removeObserver(this); | ||
82 | } | ||
73 | virtual void changed(U32 mask); | 83 | virtual void changed(U32 mask); |
74 | }; | 84 | }; |
75 | 85 | ||
@@ -88,7 +98,10 @@ void LLPropertiesObserver::changed(U32 mask) | |||
88 | /// Class LLFloaterProperties | 98 | /// Class LLFloaterProperties |
89 | ///---------------------------------------------------------------------------- | 99 | ///---------------------------------------------------------------------------- |
90 | 100 | ||
101 | // static | ||
91 | LLFloaterProperties::instance_map LLFloaterProperties::sInstances; | 102 | LLFloaterProperties::instance_map LLFloaterProperties::sInstances; |
103 | LLPropertiesObserver* LLFloaterProperties::sPropertiesObserver = NULL; | ||
104 | S32 LLFloaterProperties::sPropertiesObserverCount = 0; | ||
92 | 105 | ||
93 | // static | 106 | // static |
94 | LLFloaterProperties* LLFloaterProperties::find(const LLUUID& item_id, | 107 | LLFloaterProperties* LLFloaterProperties::find(const LLUUID& item_id, |
@@ -145,12 +158,12 @@ LLFloaterProperties::LLFloaterProperties(const std::string& name, const LLRect& | |||
145 | { | 158 | { |
146 | LLUICtrlFactory::getInstance()->buildFloater(this,"floater_inventory_item_properties.xml"); | 159 | LLUICtrlFactory::getInstance()->buildFloater(this,"floater_inventory_item_properties.xml"); |
147 | 160 | ||
148 | // hack to make sure these floaters are observing the inventory. | 161 | if (!sPropertiesObserver) |
149 | if(!gInventory.containsObserver(LLPropertiesObserver::getInstance())) | ||
150 | { | 162 | { |
151 | // Note: this is where gPropertiesObserver used to be constructed. | 163 | sPropertiesObserver = new LLPropertiesObserver; |
152 | gInventory.addObserver(LLPropertiesObserver::getInstance()); | ||
153 | } | 164 | } |
165 | sPropertiesObserverCount++; | ||
166 | |||
154 | // add the object to the static structure | 167 | // add the object to the static structure |
155 | LLUUID key = mItemID ^ mObjectID; | 168 | LLUUID key = mItemID ^ mObjectID; |
156 | sInstances.insert(instance_map::value_type(key, this)); | 169 | sInstances.insert(instance_map::value_type(key, this)); |
@@ -193,6 +206,12 @@ LLFloaterProperties::~LLFloaterProperties() | |||
193 | { | 206 | { |
194 | sInstances.erase(it); | 207 | sInstances.erase(it); |
195 | } | 208 | } |
209 | sPropertiesObserverCount--; | ||
210 | if (!sPropertiesObserverCount) | ||
211 | { | ||
212 | delete sPropertiesObserver; | ||
213 | sPropertiesObserver = NULL; | ||
214 | } | ||
196 | } | 215 | } |
197 | 216 | ||
198 | void LLFloaterProperties::refresh() | 217 | void LLFloaterProperties::refresh() |
@@ -422,7 +441,7 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item) | |||
422 | 441 | ||
423 | perm_string = "G"; | 442 | perm_string = "G"; |
424 | perm_string += overwrite_group ? "*: " : ": "; | 443 | perm_string += overwrite_group ? "*: " : ": "; |
425 | perm_string += perm_string += mask_to_string(group_mask); | 444 | perm_string += mask_to_string(group_mask); |
426 | childSetText("GroupMaskDebug",perm_string); | 445 | childSetText("GroupMaskDebug",perm_string); |
427 | childSetVisible("GroupMaskDebug",TRUE); | 446 | childSetVisible("GroupMaskDebug",TRUE); |
428 | 447 | ||
diff --git a/linden/indra/newview/llfloaterproperties.h b/linden/indra/newview/llfloaterproperties.h index d4461fd..a459616 100644 --- a/linden/indra/newview/llfloaterproperties.h +++ b/linden/indra/newview/llfloaterproperties.h | |||
@@ -47,6 +47,8 @@ class LLLineEditor; | |||
47 | class LLRadioGroup; | 47 | class LLRadioGroup; |
48 | class LLTextBox; | 48 | class LLTextBox; |
49 | 49 | ||
50 | class LLPropertiesObserver; | ||
51 | |||
50 | class LLFloaterProperties : public LLFloater | 52 | class LLFloaterProperties : public LLFloater |
51 | { | 53 | { |
52 | public: | 54 | public: |
@@ -94,6 +96,8 @@ protected: | |||
94 | 96 | ||
95 | typedef std::map<LLUUID, LLFloaterProperties*, lluuid_less> instance_map; | 97 | typedef std::map<LLUUID, LLFloaterProperties*, lluuid_less> instance_map; |
96 | static instance_map sInstances; | 98 | static instance_map sInstances; |
99 | static LLPropertiesObserver* sPropertiesObserver; | ||
100 | static S32 sPropertiesObserverCount; | ||
97 | }; | 101 | }; |
98 | 102 | ||
99 | class LLMultiProperties : public LLMultiFloater | 103 | class LLMultiProperties : public LLMultiFloater |
diff --git a/linden/indra/newview/llfloaterregioninfo.cpp b/linden/indra/newview/llfloaterregioninfo.cpp index 12834b3..7b3b8e2 100644 --- a/linden/indra/newview/llfloaterregioninfo.cpp +++ b/linden/indra/newview/llfloaterregioninfo.cpp | |||
@@ -80,6 +80,8 @@ | |||
80 | const S32 TERRAIN_TEXTURE_COUNT = 4; | 80 | const S32 TERRAIN_TEXTURE_COUNT = 4; |
81 | const S32 CORNER_COUNT = 4; | 81 | const S32 CORNER_COUNT = 4; |
82 | 82 | ||
83 | extern LLString gLastVersionChannel; | ||
84 | |||
83 | 85 | ||
84 | ///---------------------------------------------------------------------------- | 86 | ///---------------------------------------------------------------------------- |
85 | /// Local class declaration | 87 | /// Local class declaration |
@@ -317,6 +319,7 @@ void LLFloaterRegionInfo::processRegionInfo(LLMessageSystem* msg) | |||
317 | // GENERAL PANEL | 319 | // GENERAL PANEL |
318 | panel = tab->getChild<LLPanel>("General"); | 320 | panel = tab->getChild<LLPanel>("General"); |
319 | panel->childSetValue("region_text", LLSD(sim_name)); | 321 | panel->childSetValue("region_text", LLSD(sim_name)); |
322 | panel->childSetValue("version_channel_text", gLastVersionChannel); | ||
320 | 323 | ||
321 | panel->childSetValue("block_terraform_check", (region_flags & REGION_FLAGS_BLOCK_TERRAFORM) ? TRUE : FALSE ); | 324 | panel->childSetValue("block_terraform_check", (region_flags & REGION_FLAGS_BLOCK_TERRAFORM) ? TRUE : FALSE ); |
322 | panel->childSetValue("block_fly_check", (region_flags & REGION_FLAGS_BLOCK_FLY) ? TRUE : FALSE ); | 325 | panel->childSetValue("block_fly_check", (region_flags & REGION_FLAGS_BLOCK_FLY) ? TRUE : FALSE ); |
diff --git a/linden/indra/newview/llfloaterreporter.cpp b/linden/indra/newview/llfloaterreporter.cpp index 0c1b9ee..9c43f35 100644 --- a/linden/indra/newview/llfloaterreporter.cpp +++ b/linden/indra/newview/llfloaterreporter.cpp | |||
@@ -81,7 +81,7 @@ | |||
81 | #include "llselectmgr.h" | 81 | #include "llselectmgr.h" |
82 | #include "llviewerbuild.h" | 82 | #include "llviewerbuild.h" |
83 | #include "lluictrlfactory.h" | 83 | #include "lluictrlfactory.h" |
84 | #include "llappviewer.h" | 84 | #include "llviewernetwork.h" |
85 | 85 | ||
86 | #include "llassetuploadresponders.h" | 86 | #include "llassetuploadresponders.h" |
87 | 87 | ||
@@ -656,7 +656,7 @@ LLSD LLFloaterReporter::gatherReport() | |||
656 | mCopyrightWarningSeen = FALSE; | 656 | mCopyrightWarningSeen = FALSE; |
657 | 657 | ||
658 | std::ostringstream summary; | 658 | std::ostringstream summary; |
659 | if (!LLAppViewer::instance()->isInProductionGrid()) | 659 | if (!LLViewerLogin::getInstance()->isInProductionGrid()) |
660 | { | 660 | { |
661 | summary << "Preview "; | 661 | summary << "Preview "; |
662 | } | 662 | } |
diff --git a/linden/indra/newview/llfloaterreporter.h b/linden/indra/newview/llfloaterreporter.h index 9696b34..5e8f735 100644 --- a/linden/indra/newview/llfloaterreporter.h +++ b/linden/indra/newview/llfloaterreporter.h | |||
@@ -49,6 +49,8 @@ struct LLResourceData; | |||
49 | // these flags are used to label info requests to the server | 49 | // these flags are used to label info requests to the server |
50 | const U32 BUG_REPORT_REQUEST = 0x01 << 0; | 50 | const U32 BUG_REPORT_REQUEST = 0x01 << 0; |
51 | const U32 COMPLAINT_REPORT_REQUEST = 0x01 << 1; | 51 | const U32 COMPLAINT_REPORT_REQUEST = 0x01 << 1; |
52 | const U32 OBJECT_PAY_REQUEST = 0x01 << 2; | ||
53 | |||
52 | 54 | ||
53 | // ************************************************************ | 55 | // ************************************************************ |
54 | // THESE ENUMS ARE IN THE DATABASE!!! | 56 | // THESE ENUMS ARE IN THE DATABASE!!! |
diff --git a/linden/indra/newview/llfloatersnapshot.cpp b/linden/indra/newview/llfloatersnapshot.cpp index c36c54d..f3ad4a7 100644 --- a/linden/indra/newview/llfloatersnapshot.cpp +++ b/linden/indra/newview/llfloatersnapshot.cpp | |||
@@ -36,7 +36,7 @@ | |||
36 | #include "llfontgl.h" | 36 | #include "llfontgl.h" |
37 | #include "llsys.h" | 37 | #include "llsys.h" |
38 | #include "llgl.h" | 38 | #include "llgl.h" |
39 | #include "llglimmediate.h" | 39 | #include "llrender.h" |
40 | #include "v3dmath.h" | 40 | #include "v3dmath.h" |
41 | #include "llmath.h" | 41 | #include "llmath.h" |
42 | #include "lldir.h" | 42 | #include "lldir.h" |
@@ -183,6 +183,7 @@ protected: | |||
183 | LLQuaternion mCameraRot; | 183 | LLQuaternion mCameraRot; |
184 | BOOL mSnapshotActive; | 184 | BOOL mSnapshotActive; |
185 | LLViewerWindow::ESnapshotType mSnapshotBufferType; | 185 | LLViewerWindow::ESnapshotType mSnapshotBufferType; |
186 | bool mSnapshotSoundPlayed; | ||
186 | 187 | ||
187 | public: | 188 | public: |
188 | static std::set<LLSnapshotLivePreview*> sList; | 189 | static std::set<LLSnapshotLivePreview*> sList; |
@@ -208,7 +209,8 @@ LLSnapshotLivePreview::LLSnapshotLivePreview (const LLRect& rect) : | |||
208 | mCameraPos(LLViewerCamera::getInstance()->getOrigin()), | 209 | mCameraPos(LLViewerCamera::getInstance()->getOrigin()), |
209 | mCameraRot(LLViewerCamera::getInstance()->getQuaternion()), | 210 | mCameraRot(LLViewerCamera::getInstance()->getQuaternion()), |
210 | mSnapshotActive(FALSE), | 211 | mSnapshotActive(FALSE), |
211 | mSnapshotBufferType(LLViewerWindow::SNAPSHOT_TYPE_COLOR) | 212 | mSnapshotBufferType(LLViewerWindow::SNAPSHOT_TYPE_COLOR), |
213 | mSnapshotSoundPlayed(false) | ||
212 | { | 214 | { |
213 | mSnapshotDelayTimer.setTimerExpirySec(0.0f); | 215 | mSnapshotDelayTimer.setTimerExpirySec(0.0f); |
214 | mSnapshotDelayTimer.start(); | 216 | mSnapshotDelayTimer.start(); |
@@ -764,6 +766,19 @@ void LLSnapshotLivePreview::onIdle( void* snapshot_preview ) | |||
764 | { | 766 | { |
765 | previewp->mRawImageEncoded->resize(previewp->mRawImage->getWidth(), previewp->mRawImage->getHeight(), previewp->mRawImage->getComponents()); | 767 | previewp->mRawImageEncoded->resize(previewp->mRawImage->getWidth(), previewp->mRawImage->getHeight(), previewp->mRawImage->getComponents()); |
766 | 768 | ||
769 | if (!gSavedSettings.getBOOL("QuietSnapshotsToDisk")) | ||
770 | { | ||
771 | // Always play the sound once, on window open. | ||
772 | // Don't keep playing if automatic | ||
773 | // updates are enabled. It's too invasive. JC | ||
774 | if (!previewp->mSnapshotSoundPlayed | ||
775 | || !gSavedSettings.getBOOL("AutoSnapshot") ) | ||
776 | { | ||
777 | gViewerWindow->playSnapshotAnimAndSound(); | ||
778 | previewp->mSnapshotSoundPlayed = true; | ||
779 | } | ||
780 | } | ||
781 | |||
767 | if (previewp->getSnapshotType() == SNAPSHOT_POSTCARD) | 782 | if (previewp->getSnapshotType() == SNAPSHOT_POSTCARD) |
768 | { | 783 | { |
769 | // *FIX: just resize and reuse existing jpeg? | 784 | // *FIX: just resize and reuse existing jpeg? |
@@ -923,7 +938,9 @@ BOOL LLSnapshotLivePreview::saveLocal() | |||
923 | class LLFloaterSnapshot::Impl | 938 | class LLFloaterSnapshot::Impl |
924 | { | 939 | { |
925 | public: | 940 | public: |
926 | Impl() : mLastToolset(NULL) | 941 | Impl() |
942 | : mAvatarPauseHandles(), | ||
943 | mLastToolset(NULL) | ||
927 | { | 944 | { |
928 | } | 945 | } |
929 | ~Impl() | 946 | ~Impl() |
@@ -1054,7 +1071,13 @@ void LLFloaterSnapshot::Impl::updateLayout(LLFloaterSnapshot* floaterp) | |||
1054 | previewp->setSize(gViewerWindow->getWindowDisplayWidth(), gViewerWindow->getWindowDisplayHeight()); | 1071 | previewp->setSize(gViewerWindow->getWindowDisplayWidth(), gViewerWindow->getWindowDisplayHeight()); |
1055 | } | 1072 | } |
1056 | 1073 | ||
1057 | if (floaterp->childGetValue("freeze_frame_check").asBoolean()) | 1074 | bool use_freeze_frame = floaterp->childGetValue("freeze_frame_check").asBoolean(); |
1075 | // For now, auto-snapshot only works in freeze frame mode. | ||
1076 | // This can be changed in the future by taking the FreezeTime check | ||
1077 | // out of the onIdle() camera movement detection. JC | ||
1078 | floaterp->childSetEnabled("auto_snapshot_check", use_freeze_frame); | ||
1079 | |||
1080 | if (use_freeze_frame) | ||
1058 | { | 1081 | { |
1059 | // stop all mouse events at fullscreen preview layer | 1082 | // stop all mouse events at fullscreen preview layer |
1060 | floaterp->getParent()->setMouseOpaque(TRUE); | 1083 | floaterp->getParent()->setMouseOpaque(TRUE); |
@@ -1089,6 +1112,9 @@ void LLFloaterSnapshot::Impl::updateLayout(LLFloaterSnapshot* floaterp) | |||
1089 | } | 1112 | } |
1090 | else // turning off freeze frame mode | 1113 | else // turning off freeze frame mode |
1091 | { | 1114 | { |
1115 | // Force off auto-snapshot, see comment above about onIdle. JC | ||
1116 | gSavedSettings.setBOOL("AutoSnapshot", FALSE); | ||
1117 | |||
1092 | floaterp->getParent()->setMouseOpaque(FALSE); | 1118 | floaterp->getParent()->setMouseOpaque(FALSE); |
1093 | floaterp->reshape(floaterp->getRect().getWidth(), floaterp->getUIWinHeightLong() + delta_height); | 1119 | floaterp->reshape(floaterp->getRect().getWidth(), floaterp->getUIWinHeightLong() + delta_height); |
1094 | if (previewp) | 1120 | if (previewp) |
@@ -1287,12 +1313,6 @@ void LLFloaterSnapshot::Impl::onClickKeep(void* data) | |||
1287 | if (gSavedSettings.getBOOL("CloseSnapshotOnKeep")) | 1313 | if (gSavedSettings.getBOOL("CloseSnapshotOnKeep")) |
1288 | { | 1314 | { |
1289 | view->close(); | 1315 | view->close(); |
1290 | // only plays sound and anim when keeping a snapshot, and closing the snapshot UI, | ||
1291 | // and only if the save succeeded (i.e. was not canceled) | ||
1292 | if (succeeded) | ||
1293 | { | ||
1294 | gViewerWindow->playSnapshotAnimAndSound(); | ||
1295 | } | ||
1296 | } | 1316 | } |
1297 | else | 1317 | else |
1298 | { | 1318 | { |
@@ -1674,13 +1694,13 @@ void LLFloaterSnapshot::Impl::resetSnapshotSizeOnUI(LLFloaterSnapshot *view, S32 | |||
1674 | LLSpinCtrl *sctrl = view->getChild<LLSpinCtrl>("snapshot_width") ; | 1694 | LLSpinCtrl *sctrl = view->getChild<LLSpinCtrl>("snapshot_width") ; |
1675 | if(sctrl) | 1695 | if(sctrl) |
1676 | { | 1696 | { |
1677 | sctrl->setValue(width) ; | 1697 | sctrl->forceSetValue(width) ; |
1678 | } | 1698 | } |
1679 | 1699 | ||
1680 | sctrl = view->getChild<LLSpinCtrl>("snapshot_height") ; | 1700 | sctrl = view->getChild<LLSpinCtrl>("snapshot_height") ; |
1681 | if(sctrl) | 1701 | if(sctrl) |
1682 | { | 1702 | { |
1683 | sctrl->setValue(height) ; | 1703 | sctrl->forceSetValue(height) ; |
1684 | } | 1704 | } |
1685 | 1705 | ||
1686 | gSavedSettings.setS32("LastSnapshotWidth", width); | 1706 | gSavedSettings.setS32("LastSnapshotWidth", width); |
@@ -1707,8 +1727,30 @@ void LLFloaterSnapshot::Impl::onCommitCustomResolution(LLUICtrl *ctrl, void* dat | |||
1707 | 1727 | ||
1708 | if (w != curw || h != curh) | 1728 | if (w != curw || h != curh) |
1709 | { | 1729 | { |
1730 | BOOL update_ = FALSE ; | ||
1731 | //if to upload a snapshot, process spinner input in a special way. | ||
1732 | if(LLSnapshotLivePreview::SNAPSHOT_TEXTURE == gSavedSettings.getS32("LastSnapshotType")) | ||
1733 | { | ||
1734 | S32 spinner_increment = (S32)((LLSpinCtrl*)ctrl)->getIncrement() ; | ||
1735 | S32 dw = w - curw ; | ||
1736 | S32 dh = h - curh ; | ||
1737 | dw = (dw == spinner_increment) ? 1 : ((dw == -spinner_increment) ? -1 : 0) ; | ||
1738 | dh = (dh == spinner_increment) ? 1 : ((dh == -spinner_increment) ? -1 : 0) ; | ||
1739 | |||
1740 | if(dw) | ||
1741 | { | ||
1742 | w = (dw > 0) ? curw << dw : curw >> -dw ; | ||
1743 | update_ = TRUE ; | ||
1744 | } | ||
1745 | if(dh) | ||
1746 | { | ||
1747 | h = (dh > 0) ? curh << dh : curh >> -dh ; | ||
1748 | update_ = TRUE ; | ||
1749 | } | ||
1750 | } | ||
1751 | |||
1710 | previewp->setMaxImageSize((S32)((LLSpinCtrl *)ctrl)->getMaxValue()) ; | 1752 | previewp->setMaxImageSize((S32)((LLSpinCtrl *)ctrl)->getMaxValue()) ; |
1711 | if(checkImageSize(previewp, w, h, w != curw, previewp->getMaxImageSize())) | 1753 | if(checkImageSize(previewp, w, h, w != curw, previewp->getMaxImageSize()) || update_) |
1712 | { | 1754 | { |
1713 | resetSnapshotSizeOnUI(view, w, h) ; | 1755 | resetSnapshotSizeOnUI(view, w, h) ; |
1714 | } | 1756 | } |
diff --git a/linden/indra/newview/llfloatertools.cpp b/linden/indra/newview/llfloatertools.cpp index 97a8db3..97150e3 100644 --- a/linden/indra/newview/llfloatertools.cpp +++ b/linden/indra/newview/llfloatertools.cpp | |||
@@ -194,12 +194,16 @@ BOOL LLFloaterTools::postBuild() | |||
194 | mBtnLand = getChild<LLButton>("button land" ); | 194 | mBtnLand = getChild<LLButton>("button land" ); |
195 | childSetAction("button land",LLFloaterTools::setEditTool, (void*)LLToolSelectLand::getInstance()); | 195 | childSetAction("button land",LLFloaterTools::setEditTool, (void*)LLToolSelectLand::getInstance()); |
196 | mTextStatus = getChild<LLTextBox>("text status"); | 196 | mTextStatus = getChild<LLTextBox>("text status"); |
197 | mRadioZoom = getChild<LLCheckBoxCtrl>("radio zoom"); | 197 | |
198 | childSetCommitCallback("slider zoom",commit_slider_zoom,this); | 198 | childSetCommitCallback("slider zoom",commit_slider_zoom,this); |
199 | |||
200 | mRadioZoom = getChild<LLCheckBoxCtrl>("radio zoom"); | ||
201 | childSetCommitCallback("radio zoom",commit_radio_zoom,this); | ||
199 | mRadioOrbit = getChild<LLCheckBoxCtrl>("radio orbit"); | 202 | mRadioOrbit = getChild<LLCheckBoxCtrl>("radio orbit"); |
200 | childSetCommitCallback("radio orbit",commit_radio_orbit,this); | 203 | childSetCommitCallback("radio orbit",commit_radio_orbit,this); |
201 | mRadioPan = getChild<LLCheckBoxCtrl>("radio pan"); | 204 | mRadioPan = getChild<LLCheckBoxCtrl>("radio pan"); |
202 | childSetCommitCallback("radio pan",commit_radio_pan,this); | 205 | childSetCommitCallback("radio pan",commit_radio_pan,this); |
206 | |||
203 | mRadioMove = getChild<LLCheckBoxCtrl>("radio move"); | 207 | mRadioMove = getChild<LLCheckBoxCtrl>("radio move"); |
204 | childSetCommitCallback("radio move",click_popup_grab_drag,this); | 208 | childSetCommitCallback("radio move",click_popup_grab_drag,this); |
205 | mRadioLift = getChild<LLCheckBoxCtrl>("radio lift"); | 209 | mRadioLift = getChild<LLCheckBoxCtrl>("radio lift"); |
@@ -492,6 +496,7 @@ void LLFloaterTools::dirty() | |||
492 | // floater is closed. | 496 | // floater is closed. |
493 | void LLFloaterTools::resetToolState() | 497 | void LLFloaterTools::resetToolState() |
494 | { | 498 | { |
499 | gCameraBtnZoom = TRUE; | ||
495 | gCameraBtnOrbit = FALSE; | 500 | gCameraBtnOrbit = FALSE; |
496 | gCameraBtnPan = FALSE; | 501 | gCameraBtnPan = FALSE; |
497 | 502 | ||
@@ -524,7 +529,8 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask) | |||
524 | mRadioOrbit ->setVisible( focus_visible ); | 529 | mRadioOrbit ->setVisible( focus_visible ); |
525 | mRadioPan ->setVisible( focus_visible ); | 530 | mRadioPan ->setVisible( focus_visible ); |
526 | childSetVisible("slider zoom", focus_visible); | 531 | childSetVisible("slider zoom", focus_visible); |
527 | 532 | childSetEnabled("slider zoom", gCameraBtnZoom); | |
533 | |||
528 | mRadioZoom ->set( !gCameraBtnOrbit && | 534 | mRadioZoom ->set( !gCameraBtnOrbit && |
529 | !gCameraBtnPan && | 535 | !gCameraBtnPan && |
530 | !(mask == MASK_ORBIT) && | 536 | !(mask == MASK_ORBIT) && |
@@ -867,18 +873,21 @@ void click_popup_grab_spin(LLUICtrl*, void*) | |||
867 | 873 | ||
868 | void commit_radio_zoom(LLUICtrl *, void*) | 874 | void commit_radio_zoom(LLUICtrl *, void*) |
869 | { | 875 | { |
876 | gCameraBtnZoom = TRUE; | ||
870 | gCameraBtnOrbit = FALSE; | 877 | gCameraBtnOrbit = FALSE; |
871 | gCameraBtnPan = FALSE; | 878 | gCameraBtnPan = FALSE; |
872 | } | 879 | } |
873 | 880 | ||
874 | void commit_radio_orbit(LLUICtrl *, void*) | 881 | void commit_radio_orbit(LLUICtrl *, void*) |
875 | { | 882 | { |
883 | gCameraBtnZoom = FALSE; | ||
876 | gCameraBtnOrbit = TRUE; | 884 | gCameraBtnOrbit = TRUE; |
877 | gCameraBtnPan = FALSE; | 885 | gCameraBtnPan = FALSE; |
878 | } | 886 | } |
879 | 887 | ||
880 | void commit_radio_pan(LLUICtrl *, void*) | 888 | void commit_radio_pan(LLUICtrl *, void*) |
881 | { | 889 | { |
890 | gCameraBtnZoom = FALSE; | ||
882 | gCameraBtnOrbit = FALSE; | 891 | gCameraBtnOrbit = FALSE; |
883 | gCameraBtnPan = TRUE; | 892 | gCameraBtnPan = TRUE; |
884 | } | 893 | } |
diff --git a/linden/indra/newview/llfolderview.cpp b/linden/indra/newview/llfolderview.cpp index 49ca5e4..b543e31 100644 --- a/linden/indra/newview/llfolderview.cpp +++ b/linden/indra/newview/llfolderview.cpp | |||
@@ -40,7 +40,7 @@ | |||
40 | #include "llfocusmgr.h" | 40 | #include "llfocusmgr.h" |
41 | #include "llfontgl.h" | 41 | #include "llfontgl.h" |
42 | #include "llgl.h" | 42 | #include "llgl.h" |
43 | #include "llglimmediate.h" | 43 | #include "llrender.h" |
44 | #include "llinventory.h" | 44 | #include "llinventory.h" |
45 | 45 | ||
46 | #include "llcallbacklist.h" | 46 | #include "llcallbacklist.h" |
@@ -3144,6 +3144,10 @@ void LLFolderView::draw() | |||
3144 | { | 3144 | { |
3145 | closeAutoOpenedFolders(); | 3145 | closeAutoOpenedFolders(); |
3146 | } | 3146 | } |
3147 | if(gViewerWindow->hasKeyboardFocus(this) && !getVisible()) | ||
3148 | { | ||
3149 | gViewerWindow->setKeyboardFocus( NULL ); | ||
3150 | } | ||
3147 | 3151 | ||
3148 | // while dragging, update selection rendering to reflect single/multi drag status | 3152 | // while dragging, update selection rendering to reflect single/multi drag status |
3149 | if (LLToolDragAndDrop::getInstance()->hasMouseCapture()) | 3153 | if (LLToolDragAndDrop::getInstance()->hasMouseCapture()) |
diff --git a/linden/indra/newview/llframestats.cpp b/linden/indra/newview/llframestats.cpp index f67c3b8..c7519c9 100644 --- a/linden/indra/newview/llframestats.cpp +++ b/linden/indra/newview/llframestats.cpp | |||
@@ -184,7 +184,7 @@ void LLFrameStats::dump() | |||
184 | 184 | ||
185 | char filename[LL_MAX_PATH]; /* Flawfinder: ignore */ | 185 | char filename[LL_MAX_PATH]; /* Flawfinder: ignore */ |
186 | snprintf(filename, LL_MAX_PATH, "%s", gDirUtilp->getExpandedFilename(LL_PATH_LOGS, file_with_num).c_str()); /* Flawfinder: ignore */ | 186 | snprintf(filename, LL_MAX_PATH, "%s", gDirUtilp->getExpandedFilename(LL_PATH_LOGS, file_with_num).c_str()); /* Flawfinder: ignore */ |
187 | FILE *fp = LLFile::fopen(filename, "w"); /* Flawfinder: ignore */ | 187 | LLFILE *fp = LLFile::fopen(filename, "w"); /* Flawfinder: ignore */ |
188 | if (!fp) | 188 | if (!fp) |
189 | { | 189 | { |
190 | llinfos << "Couldn't open file for dumping frame stats!" << llendl; | 190 | llinfos << "Couldn't open file for dumping frame stats!" << llendl; |
diff --git a/linden/indra/newview/llgivemoney.cpp b/linden/indra/newview/llgivemoney.cpp index 41b1c1e..016acd5 100644 --- a/linden/indra/newview/llgivemoney.cpp +++ b/linden/indra/newview/llgivemoney.cpp | |||
@@ -40,6 +40,8 @@ | |||
40 | #include "llresmgr.h" | 40 | #include "llresmgr.h" |
41 | #include "lltextbox.h" | 41 | #include "lltextbox.h" |
42 | #include "lllineeditor.h" | 42 | #include "lllineeditor.h" |
43 | #include "llmutelist.h" | ||
44 | #include "llfloaterreporter.h" | ||
43 | #include "llviewerobject.h" | 45 | #include "llviewerobject.h" |
44 | #include "llviewerobjectlist.h" | 46 | #include "llviewerobjectlist.h" |
45 | #include "llviewerregion.h" | 47 | #include "llviewerregion.h" |
@@ -474,6 +476,17 @@ void LLFloaterPay::give(S32 amount) | |||
474 | if(dest_object->isAvatar()) tx_type = TRANS_GIFT; | 476 | if(dest_object->isAvatar()) tx_type = TRANS_GIFT; |
475 | mCallback(mTargetUUID, region, amount, FALSE, tx_type, object_name); | 477 | mCallback(mTargetUUID, region, amount, FALSE, tx_type, object_name); |
476 | mObjectSelection = NULL; | 478 | mObjectSelection = NULL; |
479 | |||
480 | // request the object owner in order to check if the owner needs to be unmuted | ||
481 | LLMessageSystem* msg = gMessageSystem; | ||
482 | msg->newMessageFast(_PREHASH_RequestObjectPropertiesFamily); | ||
483 | msg->nextBlockFast(_PREHASH_AgentData); | ||
484 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | ||
485 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | ||
486 | msg->nextBlockFast(_PREHASH_ObjectData); | ||
487 | msg->addU32Fast(_PREHASH_RequestFlags, OBJECT_PAY_REQUEST ); | ||
488 | msg->addUUIDFast(_PREHASH_ObjectID, mTargetUUID); | ||
489 | msg->sendReliable( region->getHost() ); | ||
477 | } | 490 | } |
478 | } | 491 | } |
479 | } | 492 | } |
@@ -481,6 +494,9 @@ void LLFloaterPay::give(S32 amount) | |||
481 | { | 494 | { |
482 | // just transfer the L$ | 495 | // just transfer the L$ |
483 | mCallback(mTargetUUID, gAgent.getRegion(), amount, mTargetIsGroup, TRANS_GIFT, LLString::null); | 496 | mCallback(mTargetUUID, gAgent.getRegion(), amount, mTargetIsGroup, TRANS_GIFT, LLString::null); |
497 | |||
498 | // check if the payee needs to be unmuted | ||
499 | LLMuteList::getInstance()->autoRemove(mTargetUUID, LLMuteList::AR_MONEY); | ||
484 | } | 500 | } |
485 | } | 501 | } |
486 | } | 502 | } |
diff --git a/linden/indra/newview/llglsandbox.cpp b/linden/indra/newview/llglsandbox.cpp index 4ea38aa..30c76c9 100644 --- a/linden/indra/newview/llglsandbox.cpp +++ b/linden/indra/newview/llglsandbox.cpp | |||
@@ -39,7 +39,7 @@ | |||
39 | #include "llviewercontrol.h" | 39 | #include "llviewercontrol.h" |
40 | 40 | ||
41 | #include "llgl.h" | 41 | #include "llgl.h" |
42 | #include "llglimmediate.h" | 42 | #include "llrender.h" |
43 | #include "llglheaders.h" | 43 | #include "llglheaders.h" |
44 | #include "llparcel.h" | 44 | #include "llparcel.h" |
45 | #include "llui.h" | 45 | #include "llui.h" |
diff --git a/linden/indra/newview/llglslshader.cpp b/linden/indra/newview/llglslshader.cpp index 5c8f156..afbafde 100644 --- a/linden/indra/newview/llglslshader.cpp +++ b/linden/indra/newview/llglslshader.cpp | |||
@@ -34,6 +34,7 @@ | |||
34 | #include "llfeaturemanager.h" | 34 | #include "llfeaturemanager.h" |
35 | #include "llglslshader.h" | 35 | #include "llglslshader.h" |
36 | 36 | ||
37 | #include "llfile.h" | ||
37 | #include "llviewerwindow.h" | 38 | #include "llviewerwindow.h" |
38 | #include "llviewercontrol.h" | 39 | #include "llviewercontrol.h" |
39 | #include "pipeline.h" | 40 | #include "pipeline.h" |
@@ -42,16 +43,16 @@ | |||
42 | #include "llwaterparammanager.h" | 43 | #include "llwaterparammanager.h" |
43 | #include "llsky.h" | 44 | #include "llsky.h" |
44 | #include "llvosky.h" | 45 | #include "llvosky.h" |
45 | #include "llglimmediate.h" | 46 | #include "llrender.h" |
46 | 47 | ||
47 | #if LL_DARWIN | 48 | #if LL_DARWIN |
48 | #include "OpenGL/OpenGL.h" | 49 | #include "OpenGL/OpenGL.h" |
49 | #endif | 50 | #endif |
50 | 51 | ||
51 | #ifdef LL_RELEASE_FOR_DOWNLOAD | 52 | #ifdef LL_RELEASE_FOR_DOWNLOAD |
52 | #define UNIFORM_ERRS llwarns | 53 | #define UNIFORM_ERRS LL_WARNS_ONCE("Shader") |
53 | #else | 54 | #else |
54 | #define UNIFORM_ERRS llerrs | 55 | #define UNIFORM_ERRS LL_ERRS("Shader") |
55 | #endif | 56 | #endif |
56 | 57 | ||
57 | // Lots of STL stuff in here, using namespace std to keep things more readable | 58 | // Lots of STL stuff in here, using namespace std to keep things more readable |
@@ -60,20 +61,6 @@ using std::pair; | |||
60 | using std::make_pair; | 61 | using std::make_pair; |
61 | using std::string; | 62 | using std::string; |
62 | 63 | ||
63 | /* | ||
64 | //utility shader objects (not shader programs) | ||
65 | GLhandleARB gSumLightsVertex; | ||
66 | GLhandleARB gLightVertex; | ||
67 | GLhandleARB gLightFuncVertex; | ||
68 | GLhandleARB gLightFragment; | ||
69 | GLhandleARB gWaterFogFragment; | ||
70 | |||
71 | //utility WindLight shader objects (not shader programs) | ||
72 | GLhandleARB gWindLightVertex; | ||
73 | GLhandleARB gWindLightFragment; | ||
74 | GLhandleARB gGammaFragment; | ||
75 | */ | ||
76 | |||
77 | LLVector4 gShinyOrigin; | 64 | LLVector4 gShinyOrigin; |
78 | 65 | ||
79 | //object shaders | 66 | //object shaders |
@@ -506,11 +493,11 @@ void LLShaderMgr::dumpObjectLog(GLhandleARB ret, BOOL warns) | |||
506 | LLString log = get_object_log(ret); | 493 | LLString log = get_object_log(ret); |
507 | if (warns) | 494 | if (warns) |
508 | { | 495 | { |
509 | llwarns << log << llendl; | 496 | LL_WARNS("ShaderLoading") << log << LL_ENDL; |
510 | } | 497 | } |
511 | else | 498 | else |
512 | { | 499 | { |
513 | llinfos << log << llendl; | 500 | LL_DEBUGS("ShaderLoading") << log << LL_ENDL; |
514 | } | 501 | } |
515 | } | 502 | } |
516 | 503 | ||
@@ -520,10 +507,10 @@ GLhandleARB LLShaderMgr::loadShaderFile(const LLString& filename, S32 & shader_l | |||
520 | error = glGetError(); | 507 | error = glGetError(); |
521 | if (error != GL_NO_ERROR) | 508 | if (error != GL_NO_ERROR) |
522 | { | 509 | { |
523 | llwarns << "GL ERROR entering loadShaderFile(): " << error << llendl; | 510 | LL_WARNS("ShaderLoading") << "GL ERROR entering loadShaderFile(): " << error << LL_ENDL; |
524 | } | 511 | } |
525 | 512 | ||
526 | llinfos << "Loading shader file: " << filename << " class " << shader_level << llendl; | 513 | LL_DEBUGS("ShaderLoading") << "Loading shader file: " << filename << " class " << shader_level << LL_ENDL; |
527 | 514 | ||
528 | if (filename.empty()) | 515 | if (filename.empty()) |
529 | { | 516 | { |
@@ -532,7 +519,7 @@ GLhandleARB LLShaderMgr::loadShaderFile(const LLString& filename, S32 & shader_l | |||
532 | 519 | ||
533 | 520 | ||
534 | //read in from file | 521 | //read in from file |
535 | FILE* file = NULL; | 522 | LLFILE* file = NULL; |
536 | 523 | ||
537 | S32 try_gpu_class = shader_level; | 524 | S32 try_gpu_class = shader_level; |
538 | S32 gpu_class; | 525 | S32 gpu_class; |
@@ -544,20 +531,18 @@ GLhandleARB LLShaderMgr::loadShaderFile(const LLString& filename, S32 & shader_l | |||
544 | fname << gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "shaders/class"); | 531 | fname << gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "shaders/class"); |
545 | fname << gpu_class << "/" << filename; | 532 | fname << gpu_class << "/" << filename; |
546 | 533 | ||
547 | llinfos << "Looking in " << fname.str().c_str() << llendl; | 534 | LL_DEBUGS("ShaderLoading") << "Looking in " << fname.str().c_str() << LL_ENDL; |
548 | file = fopen(fname.str().c_str(), "r"); /* Flawfinder: ignore */ | 535 | file = LLFile::fopen(fname.str().c_str(), "r"); /* Flawfinder: ignore */ |
549 | if (file) | 536 | if (file) |
550 | { | 537 | { |
551 | #if !LL_RELEASE_FOR_DOWNLOAD | 538 | LL_INFOS("ShaderLoading") << "Loading file: shaders/class" << gpu_class << "/" << filename << " (Want class " << gpu_class << ")" << LL_ENDL; |
552 | llinfos << "Found shader file: " << fname.str() << llendl; | ||
553 | #endif | ||
554 | break; // done | 539 | break; // done |
555 | } | 540 | } |
556 | } | 541 | } |
557 | 542 | ||
558 | if (file == NULL) | 543 | if (file == NULL) |
559 | { | 544 | { |
560 | llinfos << "GLSL Shader file not found: " << filename << llendl; | 545 | LL_WARNS("ShaderLoading") << "GLSL Shader file not found: " << filename << LL_ENDL; |
561 | return 0; | 546 | return 0; |
562 | } | 547 | } |
563 | 548 | ||
@@ -580,7 +565,7 @@ GLhandleARB LLShaderMgr::loadShaderFile(const LLString& filename, S32 & shader_l | |||
580 | error = glGetError(); | 565 | error = glGetError(); |
581 | if (error != GL_NO_ERROR) | 566 | if (error != GL_NO_ERROR) |
582 | { | 567 | { |
583 | llwarns << "GL ERROR in glCreateShaderObjectARB: " << error << llendl; | 568 | LL_WARNS("ShaderLoading") << "GL ERROR in glCreateShaderObjectARB: " << error << LL_ENDL; |
584 | } | 569 | } |
585 | else | 570 | else |
586 | { | 571 | { |
@@ -589,7 +574,7 @@ GLhandleARB LLShaderMgr::loadShaderFile(const LLString& filename, S32 & shader_l | |||
589 | error = glGetError(); | 574 | error = glGetError(); |
590 | if (error != GL_NO_ERROR) | 575 | if (error != GL_NO_ERROR) |
591 | { | 576 | { |
592 | llwarns << "GL ERROR in glShaderSourceARB: " << error << llendl; | 577 | LL_WARNS("ShaderLoading") << "GL ERROR in glShaderSourceARB: " << error << LL_ENDL; |
593 | } | 578 | } |
594 | else | 579 | else |
595 | { | 580 | { |
@@ -598,7 +583,7 @@ GLhandleARB LLShaderMgr::loadShaderFile(const LLString& filename, S32 & shader_l | |||
598 | error = glGetError(); | 583 | error = glGetError(); |
599 | if (error != GL_NO_ERROR) | 584 | if (error != GL_NO_ERROR) |
600 | { | 585 | { |
601 | llwarns << "GL ERROR in glCompileShaderARB: " << error << llendl; | 586 | LL_WARNS("ShaderLoading") << "GL ERROR in glCompileShaderARB: " << error << LL_ENDL; |
602 | } | 587 | } |
603 | } | 588 | } |
604 | } | 589 | } |
@@ -616,7 +601,7 @@ GLhandleARB LLShaderMgr::loadShaderFile(const LLString& filename, S32 & shader_l | |||
616 | if (error != GL_NO_ERROR || success == GL_FALSE) | 601 | if (error != GL_NO_ERROR || success == GL_FALSE) |
617 | { | 602 | { |
618 | //an error occured, print log | 603 | //an error occured, print log |
619 | llwarns << "GLSL Compilation Error: (" << error << ") in " << filename << llendl; | 604 | LL_WARNS("ShaderLoading") << "GLSL Compilation Error: (" << error << ") in " << filename << LL_ENDL; |
620 | dumpObjectLog(ret); | 605 | dumpObjectLog(ret); |
621 | ret = 0; | 606 | ret = 0; |
622 | } | 607 | } |
@@ -641,7 +626,7 @@ GLhandleARB LLShaderMgr::loadShaderFile(const LLString& filename, S32 & shader_l | |||
641 | shader_level--; | 626 | shader_level--; |
642 | return loadShaderFile(filename,shader_level,type); | 627 | return loadShaderFile(filename,shader_level,type); |
643 | } | 628 | } |
644 | llwarns << "Failed to load " << filename << llendl; | 629 | LL_WARNS("ShaderLoading") << "Failed to load " << filename << LL_ENDL; |
645 | } | 630 | } |
646 | return ret; | 631 | return ret; |
647 | } | 632 | } |
@@ -655,7 +640,7 @@ BOOL LLShaderMgr::linkProgramObject(GLhandleARB obj, BOOL suppress_errors) | |||
655 | if (!suppress_errors && success == GL_FALSE) | 640 | if (!suppress_errors && success == GL_FALSE) |
656 | { | 641 | { |
657 | //an error occured, print log | 642 | //an error occured, print log |
658 | llwarns << "GLSL Linker Error:" << llendl; | 643 | LL_WARNS("ShaderLoading") << "GLSL Linker Error:" << LL_ENDL; |
659 | } | 644 | } |
660 | 645 | ||
661 | // NOTE: Removing LL_DARWIN block as it doesn't seem to actually give the correct answer, | 646 | // NOTE: Removing LL_DARWIN block as it doesn't seem to actually give the correct answer, |
@@ -675,7 +660,7 @@ BOOL LLShaderMgr::linkProgramObject(GLhandleARB obj, BOOL suppress_errors) | |||
675 | CGLGetParameter (ctx, kCGLCPGPUFragmentProcessing, &fragmentGPUProcessing); | 660 | CGLGetParameter (ctx, kCGLCPGPUFragmentProcessing, &fragmentGPUProcessing); |
676 | if (!fragmentGPUProcessing || !vertexGPUProcessing) | 661 | if (!fragmentGPUProcessing || !vertexGPUProcessing) |
677 | { | 662 | { |
678 | llwarns << "GLSL Linker: Running in Software:" << llendl; | 663 | LL_WARNS("ShaderLoading") << "GLSL Linker: Running in Software:" << LL_ENDL; |
679 | success = GL_FALSE; | 664 | success = GL_FALSE; |
680 | suppress_errors = FALSE; | 665 | suppress_errors = FALSE; |
681 | } | 666 | } |
@@ -685,7 +670,7 @@ BOOL LLShaderMgr::linkProgramObject(GLhandleARB obj, BOOL suppress_errors) | |||
685 | LLString::toLower(log); | 670 | LLString::toLower(log); |
686 | if (log.find("software") != LLString::npos) | 671 | if (log.find("software") != LLString::npos) |
687 | { | 672 | { |
688 | llwarns << "GLSL Linker: Running in Software:" << llendl; | 673 | LL_WARNS("ShaderLoading") << "GLSL Linker: Running in Software:" << LL_ENDL; |
689 | success = GL_FALSE; | 674 | success = GL_FALSE; |
690 | suppress_errors = FALSE; | 675 | suppress_errors = FALSE; |
691 | } | 676 | } |
@@ -706,7 +691,7 @@ BOOL LLShaderMgr::validateProgramObject(GLhandleARB obj) | |||
706 | glGetObjectParameterivARB(obj, GL_OBJECT_VALIDATE_STATUS_ARB, &success); | 691 | glGetObjectParameterivARB(obj, GL_OBJECT_VALIDATE_STATUS_ARB, &success); |
707 | if (success == GL_FALSE) | 692 | if (success == GL_FALSE) |
708 | { | 693 | { |
709 | llwarns << "GLSL program not valid: " << llendl; | 694 | LL_WARNS("ShaderLoading") << "GLSL program not valid: " << LL_ENDL; |
710 | dumpObjectLog(obj); | 695 | dumpObjectLog(obj); |
711 | } | 696 | } |
712 | else | 697 | else |
@@ -757,7 +742,7 @@ void LLShaderMgr::setShaders() | |||
757 | gPipeline.setLightingDetail(-1); | 742 | gPipeline.setLightingDetail(-1); |
758 | 743 | ||
759 | // Shaders | 744 | // Shaders |
760 | llinfos << "\n~~~~~~~~~~~~~~~~~~\n Loading Shaders:\n~~~~~~~~~~~~~~~~~~" << llendl; | 745 | LL_INFOS("ShaderLoading") << "\n~~~~~~~~~~~~~~~~~~\n Loading Shaders:\n~~~~~~~~~~~~~~~~~~" << LL_ENDL; |
761 | for (S32 i = 0; i < SHADER_COUNT; i++) | 746 | for (S32 i = 0; i < SHADER_COUNT; i++) |
762 | { | 747 | { |
763 | sVertexShaderLevel[i] = 0; | 748 | sVertexShaderLevel[i] = 0; |
@@ -1625,7 +1610,7 @@ BOOL LLGLSLShader::createShader(vector<string> * attributes, | |||
1625 | for ( ; fileIter != mShaderFiles.end(); fileIter++ ) | 1610 | for ( ; fileIter != mShaderFiles.end(); fileIter++ ) |
1626 | { | 1611 | { |
1627 | GLhandleARB shaderhandle = LLShaderMgr::loadShaderFile((*fileIter).first, mShaderLevel, (*fileIter).second); | 1612 | GLhandleARB shaderhandle = LLShaderMgr::loadShaderFile((*fileIter).first, mShaderLevel, (*fileIter).second); |
1628 | lldebugs << "SHADER FILE: " << (*fileIter).first << " mShaderLevel=" << mShaderLevel << llendl; | 1613 | LL_DEBUGS("ShaderLoading") << "SHADER FILE: " << (*fileIter).first << " mShaderLevel=" << mShaderLevel << LL_ENDL; |
1629 | if (mShaderLevel > 0) | 1614 | if (mShaderLevel > 0) |
1630 | { | 1615 | { |
1631 | attachObject(shaderhandle); | 1616 | attachObject(shaderhandle); |
@@ -1647,12 +1632,12 @@ BOOL LLGLSLShader::createShader(vector<string> * attributes, | |||
1647 | } | 1632 | } |
1648 | if( !success ) | 1633 | if( !success ) |
1649 | { | 1634 | { |
1650 | llwarns << "Failed to link shader: " << mName << llendl; | 1635 | LL_WARNS("ShaderLoading") << "Failed to link shader: " << mName << LL_ENDL; |
1651 | 1636 | ||
1652 | // Try again using a lower shader level; | 1637 | // Try again using a lower shader level; |
1653 | if (mShaderLevel > 0) | 1638 | if (mShaderLevel > 0) |
1654 | { | 1639 | { |
1655 | llwarns << "Failed to link using shader level " << mShaderLevel << ". Trying again using shader level " << (mShaderLevel - 1) << "." << llendl; | 1640 | LL_WARNS("ShaderLoading") << "Failed to link using shader level " << mShaderLevel << " trying again using shader level " << (mShaderLevel - 1) << LL_ENDL; |
1656 | mShaderLevel--; | 1641 | mShaderLevel--; |
1657 | return createShader(attributes,uniforms); | 1642 | return createShader(attributes,uniforms); |
1658 | } | 1643 | } |
@@ -1671,7 +1656,7 @@ BOOL LLGLSLShader::attachObject(std::string object) | |||
1671 | } | 1656 | } |
1672 | else | 1657 | else |
1673 | { | 1658 | { |
1674 | llwarns << "Attempting to attach shader object that hasn't been compiled: " << object << llendl; | 1659 | LL_WARNS("ShaderLoading") << "Attempting to attach shader object that hasn't been compiled: " << object << LL_ENDL; |
1675 | return FALSE; | 1660 | return FALSE; |
1676 | } | 1661 | } |
1677 | } | 1662 | } |
@@ -1686,7 +1671,7 @@ void LLGLSLShader::attachObject(GLhandleARB object) | |||
1686 | } | 1671 | } |
1687 | else | 1672 | else |
1688 | { | 1673 | { |
1689 | llwarns << "Attempting to attach non existing shader object. " << llendl; | 1674 | LL_WARNS("ShaderLoading") << "Attempting to attach non existing shader object. " << LL_ENDL; |
1690 | } | 1675 | } |
1691 | } | 1676 | } |
1692 | 1677 | ||
@@ -1718,7 +1703,7 @@ BOOL LLGLSLShader::mapAttributes(const vector<string> * attributes) | |||
1718 | if (index != -1) | 1703 | if (index != -1) |
1719 | { | 1704 | { |
1720 | mAttribute[i] = index; | 1705 | mAttribute[i] = index; |
1721 | // llinfos << "Attribute " << name << " assigned to channel " << index << llendl; | 1706 | LL_DEBUGS("ShaderLoading") << "Attribute " << name << " assigned to channel " << index << LL_ENDL; |
1722 | } | 1707 | } |
1723 | } | 1708 | } |
1724 | if (attributes != NULL) | 1709 | if (attributes != NULL) |
@@ -1730,7 +1715,7 @@ BOOL LLGLSLShader::mapAttributes(const vector<string> * attributes) | |||
1730 | if (index != -1) | 1715 | if (index != -1) |
1731 | { | 1716 | { |
1732 | mAttribute[LLShaderMgr::sReservedAttribs.size() + i] = index; | 1717 | mAttribute[LLShaderMgr::sReservedAttribs.size() + i] = index; |
1733 | // llinfos << "Attribute " << name << " assigned to channel " << index << llendl; | 1718 | LL_DEBUGS("ShaderLoading") << "Attribute " << name << " assigned to channel " << index << LL_ENDL; |
1734 | } | 1719 | } |
1735 | } | 1720 | } |
1736 | } | 1721 | } |
@@ -1759,9 +1744,7 @@ void LLGLSLShader::mapUniform(GLint index, const vector<string> * uniforms) | |||
1759 | if (location != -1) | 1744 | if (location != -1) |
1760 | { | 1745 | { |
1761 | mUniformMap[name] = location; | 1746 | mUniformMap[name] = location; |
1762 | #if 0 // !LL_RELEASE_FOR_DOWNLOAD | 1747 | LL_DEBUGS("ShaderLoading") << "Uniform " << name << " is at location " << location << LL_ENDL; |
1763 | llinfos << "Uniform " << name << " is at location " << location << llendl; | ||
1764 | #endif | ||
1765 | 1748 | ||
1766 | //find the index of this uniform | 1749 | //find the index of this uniform |
1767 | for (S32 i = 0; i < (S32) LLShaderMgr::sReservedUniforms.size(); i++) | 1750 | for (S32 i = 0; i < (S32) LLShaderMgr::sReservedUniforms.size(); i++) |
@@ -1798,7 +1781,7 @@ GLint LLGLSLShader::mapUniformTextureChannel(GLint location, GLenum type) | |||
1798 | if (type >= GL_SAMPLER_1D_ARB && type <= GL_SAMPLER_2D_RECT_SHADOW_ARB) | 1781 | if (type >= GL_SAMPLER_1D_ARB && type <= GL_SAMPLER_2D_RECT_SHADOW_ARB) |
1799 | { //this here is a texture | 1782 | { //this here is a texture |
1800 | glUniform1iARB(location, mActiveTextureChannels); | 1783 | glUniform1iARB(location, mActiveTextureChannels); |
1801 | llinfos << "Assigned to texture channel " << mActiveTextureChannels << llendl; | 1784 | LL_DEBUGS("ShaderLoading") << "Assigned to texture channel " << mActiveTextureChannels << LL_ENDL; |
1802 | return mActiveTextureChannels++; | 1785 | return mActiveTextureChannels++; |
1803 | } | 1786 | } |
1804 | return -1; | 1787 | return -1; |
@@ -1866,17 +1849,22 @@ void LLGLSLShader::unbind() | |||
1866 | } | 1849 | } |
1867 | } | 1850 | } |
1868 | 1851 | ||
1852 | void LLGLSLShader::bindNoShader(void) | ||
1853 | { | ||
1854 | glUseProgramObjectARB(0); | ||
1855 | } | ||
1856 | |||
1869 | S32 LLGLSLShader::enableTexture(S32 uniform, S32 mode) | 1857 | S32 LLGLSLShader::enableTexture(S32 uniform, S32 mode) |
1870 | { | 1858 | { |
1871 | if (uniform < 0 || uniform >= (S32)mTexture.size()) | 1859 | if (uniform < 0 || uniform >= (S32)mTexture.size()) |
1872 | { | 1860 | { |
1873 | UNIFORM_ERRS << "LLGLSLShader::enableTexture: uniform out of range: " << uniform << llendl; | 1861 | UNIFORM_ERRS << "Uniform out of range: " << uniform << LL_ENDL; |
1874 | return -1; | 1862 | return -1; |
1875 | } | 1863 | } |
1876 | S32 index = mTexture[uniform]; | 1864 | S32 index = mTexture[uniform]; |
1877 | if (index != -1) | 1865 | if (index != -1) |
1878 | { | 1866 | { |
1879 | glActiveTextureARB(GL_TEXTURE0_ARB+index); | 1867 | gGL.getTexUnit(index)->activate(); |
1880 | glEnable(mode); | 1868 | glEnable(mode); |
1881 | } | 1869 | } |
1882 | return index; | 1870 | return index; |
@@ -1886,13 +1874,13 @@ S32 LLGLSLShader::disableTexture(S32 uniform, S32 mode) | |||
1886 | { | 1874 | { |
1887 | if (uniform < 0 || uniform >= (S32)mTexture.size()) | 1875 | if (uniform < 0 || uniform >= (S32)mTexture.size()) |
1888 | { | 1876 | { |
1889 | UNIFORM_ERRS << "LLGLSLShader::disableTexture: uniform out of range: " << uniform << llendl; | 1877 | UNIFORM_ERRS << "Uniform out of range: " << uniform << LL_ENDL; |
1890 | return -1; | 1878 | return -1; |
1891 | } | 1879 | } |
1892 | S32 index = mTexture[uniform]; | 1880 | S32 index = mTexture[uniform]; |
1893 | if (index != -1) | 1881 | if (index != -1) |
1894 | { | 1882 | { |
1895 | glActiveTextureARB(GL_TEXTURE0_ARB+index); | 1883 | gGL.getTexUnit(index)->activate(); |
1896 | glDisable(mode); | 1884 | glDisable(mode); |
1897 | } | 1885 | } |
1898 | return index; | 1886 | return index; |
@@ -1904,7 +1892,7 @@ void LLGLSLShader::uniform1f(U32 index, GLfloat x) | |||
1904 | { | 1892 | { |
1905 | if (mUniform.size() <= index) | 1893 | if (mUniform.size() <= index) |
1906 | { | 1894 | { |
1907 | UNIFORM_ERRS << "Uniform index out of bounds." << llendl; | 1895 | UNIFORM_ERRS << "Uniform index out of bounds." << LL_ENDL; |
1908 | return; | 1896 | return; |
1909 | } | 1897 | } |
1910 | 1898 | ||
@@ -1926,7 +1914,7 @@ void LLGLSLShader::uniform2f(U32 index, GLfloat x, GLfloat y) | |||
1926 | { | 1914 | { |
1927 | if (mUniform.size() <= index) | 1915 | if (mUniform.size() <= index) |
1928 | { | 1916 | { |
1929 | UNIFORM_ERRS << "Uniform index out of bounds." << llendl; | 1917 | UNIFORM_ERRS << "Uniform index out of bounds." << LL_ENDL; |
1930 | return; | 1918 | return; |
1931 | } | 1919 | } |
1932 | 1920 | ||
@@ -1949,7 +1937,7 @@ void LLGLSLShader::uniform3f(U32 index, GLfloat x, GLfloat y, GLfloat z) | |||
1949 | { | 1937 | { |
1950 | if (mUniform.size() <= index) | 1938 | if (mUniform.size() <= index) |
1951 | { | 1939 | { |
1952 | UNIFORM_ERRS << "Uniform index out of bounds." << llendl; | 1940 | UNIFORM_ERRS << "Uniform index out of bounds." << LL_ENDL; |
1953 | return; | 1941 | return; |
1954 | } | 1942 | } |
1955 | 1943 | ||
@@ -1972,7 +1960,7 @@ void LLGLSLShader::uniform4f(U32 index, GLfloat x, GLfloat y, GLfloat z, GLfloat | |||
1972 | { | 1960 | { |
1973 | if (mUniform.size() <= index) | 1961 | if (mUniform.size() <= index) |
1974 | { | 1962 | { |
1975 | UNIFORM_ERRS << "Uniform index out of bounds." << llendl; | 1963 | UNIFORM_ERRS << "Uniform index out of bounds." << LL_ENDL; |
1976 | return; | 1964 | return; |
1977 | } | 1965 | } |
1978 | 1966 | ||
@@ -1995,7 +1983,7 @@ void LLGLSLShader::uniform1fv(U32 index, U32 count, const GLfloat* v) | |||
1995 | { | 1983 | { |
1996 | if (mUniform.size() <= index) | 1984 | if (mUniform.size() <= index) |
1997 | { | 1985 | { |
1998 | UNIFORM_ERRS << "Uniform index out of bounds." << llendl; | 1986 | UNIFORM_ERRS << "Uniform index out of bounds." << LL_ENDL; |
1999 | return; | 1987 | return; |
2000 | } | 1988 | } |
2001 | 1989 | ||
@@ -2018,7 +2006,7 @@ void LLGLSLShader::uniform2fv(U32 index, U32 count, const GLfloat* v) | |||
2018 | { | 2006 | { |
2019 | if (mUniform.size() <= index) | 2007 | if (mUniform.size() <= index) |
2020 | { | 2008 | { |
2021 | UNIFORM_ERRS << "Uniform index out of bounds." << llendl; | 2009 | UNIFORM_ERRS << "Uniform index out of bounds." << LL_ENDL; |
2022 | return; | 2010 | return; |
2023 | } | 2011 | } |
2024 | 2012 | ||
@@ -2041,7 +2029,7 @@ void LLGLSLShader::uniform3fv(U32 index, U32 count, const GLfloat* v) | |||
2041 | { | 2029 | { |
2042 | if (mUniform.size() <= index) | 2030 | if (mUniform.size() <= index) |
2043 | { | 2031 | { |
2044 | UNIFORM_ERRS << "Uniform index out of bounds." << llendl; | 2032 | UNIFORM_ERRS << "Uniform index out of bounds." << LL_ENDL; |
2045 | return; | 2033 | return; |
2046 | } | 2034 | } |
2047 | 2035 | ||
@@ -2064,7 +2052,7 @@ void LLGLSLShader::uniform4fv(U32 index, U32 count, const GLfloat* v) | |||
2064 | { | 2052 | { |
2065 | if (mUniform.size() <= index) | 2053 | if (mUniform.size() <= index) |
2066 | { | 2054 | { |
2067 | UNIFORM_ERRS << "Uniform index out of bounds." << llendl; | 2055 | UNIFORM_ERRS << "Uniform index out of bounds." << LL_ENDL; |
2068 | return; | 2056 | return; |
2069 | } | 2057 | } |
2070 | 2058 | ||
@@ -2087,7 +2075,7 @@ void LLGLSLShader::uniformMatrix2fv(U32 index, U32 count, GLboolean transpose, c | |||
2087 | { | 2075 | { |
2088 | if (mUniform.size() <= index) | 2076 | if (mUniform.size() <= index) |
2089 | { | 2077 | { |
2090 | UNIFORM_ERRS << "Uniform index out of bounds." << llendl; | 2078 | UNIFORM_ERRS << "Uniform index out of bounds." << LL_ENDL; |
2091 | return; | 2079 | return; |
2092 | } | 2080 | } |
2093 | 2081 | ||
@@ -2104,7 +2092,7 @@ void LLGLSLShader::uniformMatrix3fv(U32 index, U32 count, GLboolean transpose, c | |||
2104 | { | 2092 | { |
2105 | if (mUniform.size() <= index) | 2093 | if (mUniform.size() <= index) |
2106 | { | 2094 | { |
2107 | UNIFORM_ERRS << "Uniform index out of bounds." << llendl; | 2095 | UNIFORM_ERRS << "Uniform index out of bounds." << LL_ENDL; |
2108 | return; | 2096 | return; |
2109 | } | 2097 | } |
2110 | 2098 | ||
@@ -2121,7 +2109,7 @@ void LLGLSLShader::uniformMatrix4fv(U32 index, U32 count, GLboolean transpose, c | |||
2121 | { | 2109 | { |
2122 | if (mUniform.size() <= index) | 2110 | if (mUniform.size() <= index) |
2123 | { | 2111 | { |
2124 | UNIFORM_ERRS << "Uniform index out of bounds." << llendl; | 2112 | UNIFORM_ERRS << "Uniform index out of bounds." << LL_ENDL; |
2125 | return; | 2113 | return; |
2126 | } | 2114 | } |
2127 | 2115 | ||
diff --git a/linden/indra/newview/llglslshader.h b/linden/indra/newview/llglslshader.h index f3f83da..e517b94 100644 --- a/linden/indra/newview/llglslshader.h +++ b/linden/indra/newview/llglslshader.h | |||
@@ -118,6 +118,9 @@ public: | |||
118 | void bind(); | 118 | void bind(); |
119 | void unbind(); | 119 | void unbind(); |
120 | 120 | ||
121 | // Unbinds any previously bound shader by explicitly binding no shader. | ||
122 | static void bindNoShader(void); | ||
123 | |||
121 | GLhandleARB mProgramObject; | 124 | GLhandleARB mProgramObject; |
122 | std::vector<GLint> mAttribute; //lookup table of attribute enum to attribute channel | 125 | std::vector<GLint> mAttribute; //lookup table of attribute enum to attribute channel |
123 | std::vector<GLint> mUniform; //lookup table of uniform enum to uniform location | 126 | std::vector<GLint> mUniform; //lookup table of uniform enum to uniform location |
diff --git a/linden/indra/newview/llgroupnotify.cpp b/linden/indra/newview/llgroupnotify.cpp index 5b6c3ca..d760e8b 100644 --- a/linden/indra/newview/llgroupnotify.cpp +++ b/linden/indra/newview/llgroupnotify.cpp | |||
@@ -217,8 +217,8 @@ LLGroupNotifyBox::LLGroupNotifyBox(const char* subject, | |||
217 | LLFontGL::sSansSerif, | 217 | LLFontGL::sSansSerif, |
218 | FALSE); | 218 | FALSE); |
219 | 219 | ||
220 | LLStyle headerstyle(true,LLColor4::black,"SansSerifBig"); | 220 | static const LLStyleSP headerstyle(new LLStyle(true,LLColor4::black,"SansSerifBig")); |
221 | LLStyle datestyle(true,LLColor4::black,"serif"); | 221 | static const LLStyleSP datestyle(new LLStyle(true,LLColor4::black,"serif")); |
222 | 222 | ||
223 | text->appendStyledText(subject,false,false,&headerstyle); | 223 | text->appendStyledText(subject,false,false,&headerstyle); |
224 | text->appendStyledText(time_buf,false,false,&datestyle); | 224 | text->appendStyledText(time_buf,false,false,&datestyle); |
diff --git a/linden/indra/newview/llhoverview.cpp b/linden/indra/newview/llhoverview.cpp index 6cc3873..082f413 100644 --- a/linden/indra/newview/llhoverview.cpp +++ b/linden/indra/newview/llhoverview.cpp | |||
@@ -38,7 +38,7 @@ | |||
38 | #include "llfontgl.h" | 38 | #include "llfontgl.h" |
39 | #include "message.h" | 39 | #include "message.h" |
40 | #include "llgl.h" | 40 | #include "llgl.h" |
41 | #include "llglimmediate.h" | 41 | #include "llrender.h" |
42 | #include "llfontgl.h" | 42 | #include "llfontgl.h" |
43 | #include "llparcel.h" | 43 | #include "llparcel.h" |
44 | #include "lldbstrings.h" | 44 | #include "lldbstrings.h" |
@@ -52,6 +52,7 @@ | |||
52 | #include "llpermissions.h" | 52 | #include "llpermissions.h" |
53 | #include "llresmgr.h" | 53 | #include "llresmgr.h" |
54 | #include "llselectmgr.h" | 54 | #include "llselectmgr.h" |
55 | #include "lltrans.h" | ||
55 | #include "lltoolmgr.h" | 56 | #include "lltoolmgr.h" |
56 | #include "lltoolpie.h" | 57 | #include "lltoolpie.h" |
57 | #include "lltoolselectland.h" | 58 | #include "lltoolselectland.h" |
@@ -254,7 +255,7 @@ void LLHoverView::updateText() | |||
254 | } | 255 | } |
255 | else | 256 | else |
256 | { | 257 | { |
257 | line.append("Person"); | 258 | line.append(LLTrans::getString("TooltipPerson")); |
258 | } | 259 | } |
259 | mText.push_back(line); | 260 | mText.push_back(line); |
260 | } | 261 | } |
@@ -275,7 +276,7 @@ void LLHoverView::updateText() | |||
275 | line.clear(); | 276 | line.clear(); |
276 | if (nodep->mName.empty()) | 277 | if (nodep->mName.empty()) |
277 | { | 278 | { |
278 | line.append("(no name)"); | 279 | line.append(LLTrans::getString("TooltipNoName")); |
279 | } | 280 | } |
280 | else | 281 | else |
281 | { | 282 | { |
@@ -291,7 +292,7 @@ void LLHoverView::updateText() | |||
291 | 292 | ||
292 | // Line: "Owner: James Linden" | 293 | // Line: "Owner: James Linden" |
293 | line.clear(); | 294 | line.clear(); |
294 | line.append("Owner: "); | 295 | line.append(LLTrans::getString("TooltipOwner") + " "); |
295 | 296 | ||
296 | if (nodep->mValid) | 297 | if (nodep->mValid) |
297 | { | 298 | { |
@@ -302,7 +303,7 @@ void LLHoverView::updateText() | |||
302 | owner = nodep->mPermissions->getOwner(); | 303 | owner = nodep->mPermissions->getOwner(); |
303 | if (LLUUID::null == owner) | 304 | if (LLUUID::null == owner) |
304 | { | 305 | { |
305 | line.append("Public"); | 306 | line.append(LLTrans::getString("TooltipPublic")); |
306 | } | 307 | } |
307 | else if(gCacheName->getFullName(owner, name)) | 308 | else if(gCacheName->getFullName(owner, name)) |
308 | { | 309 | { |
@@ -310,7 +311,7 @@ void LLHoverView::updateText() | |||
310 | } | 311 | } |
311 | else | 312 | else |
312 | { | 313 | { |
313 | line.append("Retrieving..."); | 314 | line.append(LLTrans::getString("RetrievingData")); |
314 | } | 315 | } |
315 | } | 316 | } |
316 | else | 317 | else |
@@ -320,17 +321,17 @@ void LLHoverView::updateText() | |||
320 | if (gCacheName->getGroupName(owner, name)) | 321 | if (gCacheName->getGroupName(owner, name)) |
321 | { | 322 | { |
322 | line.append(name); | 323 | line.append(name); |
323 | line.append("(Group)"); | 324 | line.append(LLTrans::getString("TooltipIsGroup")); |
324 | } | 325 | } |
325 | else | 326 | else |
326 | { | 327 | { |
327 | line.append("Retrieving..."); | 328 | line.append(LLTrans::getString("RetrievingData")); |
328 | } | 329 | } |
329 | } | 330 | } |
330 | } | 331 | } |
331 | else | 332 | else |
332 | { | 333 | { |
333 | line.append("Retrieving..."); | 334 | line.append(LLTrans::getString("RetrievingData")); |
334 | } | 335 | } |
335 | mText.push_back(line); | 336 | mText.push_back(line); |
336 | 337 | ||
@@ -350,47 +351,48 @@ void LLHoverView::updateText() | |||
350 | line.clear(); | 351 | line.clear(); |
351 | if (object->flagScripted()) | 352 | if (object->flagScripted()) |
352 | { | 353 | { |
353 | line.append("Script "); | 354 | |
355 | line.append(LLTrans::getString("TooltipFlagScript") + " "); | ||
354 | } | 356 | } |
355 | 357 | ||
356 | if (object->usePhysics()) | 358 | if (object->usePhysics()) |
357 | { | 359 | { |
358 | line.append("Physics "); | 360 | line.append(LLTrans::getString("TooltipFlagPhysics") + " "); |
359 | } | 361 | } |
360 | 362 | ||
361 | if (object->flagHandleTouch() || (parent && parent->flagHandleTouch()) ) | 363 | if (object->flagHandleTouch() || (parent && parent->flagHandleTouch()) ) |
362 | { | 364 | { |
363 | line.append("Touch "); | 365 | line.append(LLTrans::getString("TooltipFlagTouch") + " "); |
364 | suppressObjectHoverDisplay = FALSE; // Show tip | 366 | suppressObjectHoverDisplay = FALSE; // Show tip |
365 | } | 367 | } |
366 | 368 | ||
367 | if (object->flagTakesMoney() || (parent && parent->flagTakesMoney()) ) | 369 | if (object->flagTakesMoney() || (parent && parent->flagTakesMoney()) ) |
368 | { | 370 | { |
369 | line.append("L$ "); | 371 | line.append(LLTrans::getString("TooltipFlagL$") + " "); |
370 | suppressObjectHoverDisplay = FALSE; // Show tip | 372 | suppressObjectHoverDisplay = FALSE; // Show tip |
371 | } | 373 | } |
372 | 374 | ||
373 | if (object->flagAllowInventoryAdd()) | 375 | if (object->flagAllowInventoryAdd()) |
374 | { | 376 | { |
375 | line.append("Drop Inventory "); | 377 | line.append(LLTrans::getString("TooltipFlagDropInventory") + " "); |
376 | suppressObjectHoverDisplay = FALSE; // Show tip | 378 | suppressObjectHoverDisplay = FALSE; // Show tip |
377 | } | 379 | } |
378 | 380 | ||
379 | if (object->flagPhantom()) | 381 | if (object->flagPhantom()) |
380 | { | 382 | { |
381 | line.append("Phantom "); | 383 | line.append(LLTrans::getString("TooltipFlagPhantom") + " "); |
382 | } | 384 | } |
383 | 385 | ||
384 | if (object->flagTemporary()) | 386 | if (object->flagTemporary()) |
385 | { | 387 | { |
386 | line.append("Temporary "); | 388 | line.append(LLTrans::getString("TooltipFlagTemporary") + " "); |
387 | } | 389 | } |
388 | 390 | ||
389 | if (object->usePhysics() || | 391 | if (object->usePhysics() || |
390 | object->flagHandleTouch() || | 392 | object->flagHandleTouch() || |
391 | (parent && parent->flagHandleTouch()) ) | 393 | (parent && parent->flagHandleTouch()) ) |
392 | { | 394 | { |
393 | line.append("(Right-click for menu) "); | 395 | line.append(LLTrans::getString("TooltipFlagRightClickMenu") + " "); |
394 | } | 396 | } |
395 | mText.push_back(line); | 397 | mText.push_back(line); |
396 | } | 398 | } |
@@ -406,12 +408,14 @@ void LLHoverView::updateText() | |||
406 | nodep->mSaleInfo.getSaleType() != LLSaleInfo::FS_COPY); | 408 | nodep->mSaleInfo.getSaleType() != LLSaleInfo::FS_COPY); |
407 | if (for_copy) | 409 | if (for_copy) |
408 | { | 410 | { |
409 | line.append("Free to copy"); | 411 | line.append(LLTrans::getString("TooltipFreeToCopy")); |
410 | suppressObjectHoverDisplay = FALSE; // Show tip | 412 | suppressObjectHoverDisplay = FALSE; // Show tip |
411 | } | 413 | } |
412 | else if (for_sale) | 414 | else if (for_sale) |
413 | { | 415 | { |
414 | line.append(llformat("For Sale: L$%d", nodep->mSaleInfo.getSalePrice())); | 416 | LLString::format_map_t args; |
417 | args["[AMOUNT]"] = nodep->mSaleInfo.getSalePrice(); | ||
418 | line.append(LLTrans::getString("TooltipForSaleL$", args)); | ||
415 | suppressObjectHoverDisplay = FALSE; // Show tip | 419 | suppressObjectHoverDisplay = FALSE; // Show tip |
416 | } | 420 | } |
417 | else | 421 | else |
@@ -422,7 +426,9 @@ void LLHoverView::updateText() | |||
422 | } | 426 | } |
423 | else | 427 | else |
424 | { | 428 | { |
425 | line.append("For Sale: Retrieving..."); | 429 | LLString::format_map_t args; |
430 | args["[MESSAGE]"] = LLTrans::getString("RetrievingData"); | ||
431 | line.append(LLTrans::getString("TooltipForSaleMsg", args)); | ||
426 | } | 432 | } |
427 | mText.push_back(line); | 433 | mText.push_back(line); |
428 | } | 434 | } |
@@ -459,7 +465,7 @@ void LLHoverView::updateText() | |||
459 | 465 | ||
460 | // Line: "Land" | 466 | // Line: "Land" |
461 | line.clear(); | 467 | line.clear(); |
462 | line.append("Land: "); | 468 | line.append(LLTrans::getString("TooltipLand")); |
463 | if (hover_parcel) | 469 | if (hover_parcel) |
464 | { | 470 | { |
465 | line.append(hover_parcel->getName()); | 471 | line.append(hover_parcel->getName()); |
@@ -468,25 +474,25 @@ void LLHoverView::updateText() | |||
468 | 474 | ||
469 | // Line: "Owner: James Linden" | 475 | // Line: "Owner: James Linden" |
470 | line.clear(); | 476 | line.clear(); |
471 | line.append("Owner: "); | 477 | line.append(LLTrans::getString("TooltipOwner") + " "); |
472 | 478 | ||
473 | if ( hover_parcel ) | 479 | if ( hover_parcel ) |
474 | { | 480 | { |
475 | std::string name; | 481 | std::string name; |
476 | if (LLUUID::null == owner) | 482 | if (LLUUID::null == owner) |
477 | { | 483 | { |
478 | line.append("Public"); | 484 | line.append(LLTrans::getString("TooltipPublic")); |
479 | } | 485 | } |
480 | else if (hover_parcel->getIsGroupOwned()) | 486 | else if (hover_parcel->getIsGroupOwned()) |
481 | { | 487 | { |
482 | if (gCacheName->getGroupName(owner, name)) | 488 | if (gCacheName->getGroupName(owner, name)) |
483 | { | 489 | { |
484 | line.append(name); | 490 | line.append(name); |
485 | line.append("(Group)"); | 491 | line.append(LLTrans::getString("TooltipIsGroup")); |
486 | } | 492 | } |
487 | else | 493 | else |
488 | { | 494 | { |
489 | line.append("Retrieving..."); | 495 | line.append(LLTrans::getString("RetrievingData")); |
490 | } | 496 | } |
491 | } | 497 | } |
492 | else if(gCacheName->getFullName(owner, name)) | 498 | else if(gCacheName->getFullName(owner, name)) |
@@ -495,12 +501,12 @@ void LLHoverView::updateText() | |||
495 | } | 501 | } |
496 | else | 502 | else |
497 | { | 503 | { |
498 | line.append("Retrieving..."); | 504 | line.append(LLTrans::getString("RetrievingData")); |
499 | } | 505 | } |
500 | } | 506 | } |
501 | else | 507 | else |
502 | { | 508 | { |
503 | line.append("Retrieving..."); | 509 | line.append(LLTrans::getString("RetrievingData")); |
504 | } | 510 | } |
505 | mText.push_back(line); | 511 | mText.push_back(line); |
506 | 512 | ||
@@ -519,27 +525,26 @@ void LLHoverView::updateText() | |||
519 | { | 525 | { |
520 | if ( hover_parcel->getAllowGroupModify() ) | 526 | if ( hover_parcel->getAllowGroupModify() ) |
521 | { | 527 | { |
522 | line.append("Group Build"); | 528 | line.append(LLTrans::getString("TooltipFlagGroupBuild")); |
523 | } | 529 | } |
524 | else | 530 | else |
525 | { | 531 | { |
526 | line.append("No Build"); | 532 | line.append(LLTrans::getString("TooltipFlagNoBuild")); |
527 | } | 533 | } |
528 | |||
529 | words++; | 534 | words++; |
530 | } | 535 | } |
531 | 536 | ||
532 | if ( !hover_parcel->getAllowTerraform() ) | 537 | if ( !hover_parcel->getAllowTerraform() ) |
533 | { | 538 | { |
534 | if (words) line.append(", "); | 539 | if (words) line.append(", "); |
535 | line.append("No Edit"); | 540 | line.append(LLTrans::getString("TooltipFlagNoEdit")); |
536 | words++; | 541 | words++; |
537 | } | 542 | } |
538 | 543 | ||
539 | if ( hover_parcel->getAllowDamage() ) | 544 | if ( hover_parcel->getAllowDamage() ) |
540 | { | 545 | { |
541 | if (words) line.append(", "); | 546 | if (words) line.append(", "); |
542 | line.append("Not Safe"); | 547 | line.append(LLTrans::getString("TooltipFlagNotSafe")); |
543 | words++; | 548 | words++; |
544 | } | 549 | } |
545 | 550 | ||
@@ -547,7 +552,7 @@ void LLHoverView::updateText() | |||
547 | if ( !hover_parcel->getAllowFly() ) | 552 | if ( !hover_parcel->getAllowFly() ) |
548 | { | 553 | { |
549 | if (words) line.append(", "); | 554 | if (words) line.append(", "); |
550 | line.append("No Fly"); | 555 | line.append(LLTrans::getString("TooltipFlagNoFly")); |
551 | words++; | 556 | words++; |
552 | } | 557 | } |
553 | 558 | ||
@@ -556,11 +561,11 @@ void LLHoverView::updateText() | |||
556 | if (words) line.append(", "); | 561 | if (words) line.append(", "); |
557 | if ( hover_parcel->getAllowGroupScripts() ) | 562 | if ( hover_parcel->getAllowGroupScripts() ) |
558 | { | 563 | { |
559 | line.append("Group Scripts"); | 564 | line.append(LLTrans::getString("TooltipFlagGroupScripts")); |
560 | } | 565 | } |
561 | else | 566 | else |
562 | { | 567 | { |
563 | line.append("No Scripts"); | 568 | line.append(LLTrans::getString("TooltipFlagNoScripts")); |
564 | } | 569 | } |
565 | 570 | ||
566 | words++; | 571 | words++; |
@@ -583,7 +588,9 @@ void LLHoverView::updateText() | |||
583 | */ | 588 | */ |
584 | if (hover_parcel && hover_parcel->getParcelFlag(PF_FOR_SALE)) | 589 | if (hover_parcel && hover_parcel->getParcelFlag(PF_FOR_SALE)) |
585 | { | 590 | { |
586 | line = llformat("For Sale: L$%d", hover_parcel->getSalePrice() ); | 591 | LLString::format_map_t args; |
592 | args["[AMOUNT]"] = hover_parcel->getSalePrice(); | ||
593 | line = LLTrans::getString("TooltipForSaleL$", args); | ||
587 | mText.push_back(line); | 594 | mText.push_back(line); |
588 | } | 595 | } |
589 | } | 596 | } |
diff --git a/linden/indra/newview/llhudeffectlookat.cpp b/linden/indra/newview/llhudeffectlookat.cpp index 92e7fdf..88ad5d6 100644 --- a/linden/indra/newview/llhudeffectlookat.cpp +++ b/linden/indra/newview/llhudeffectlookat.cpp | |||
@@ -33,7 +33,7 @@ | |||
33 | 33 | ||
34 | #include "llhudeffectlookat.h" | 34 | #include "llhudeffectlookat.h" |
35 | 35 | ||
36 | #include "llglimmediate.h" | 36 | #include "llrender.h" |
37 | 37 | ||
38 | #include "message.h" | 38 | #include "message.h" |
39 | #include "llagent.h" | 39 | #include "llagent.h" |
diff --git a/linden/indra/newview/llhudeffectpointat.cpp b/linden/indra/newview/llhudeffectpointat.cpp index d42eeb5..8cd1023 100644 --- a/linden/indra/newview/llhudeffectpointat.cpp +++ b/linden/indra/newview/llhudeffectpointat.cpp | |||
@@ -34,7 +34,7 @@ | |||
34 | #include "llhudeffectpointat.h" | 34 | #include "llhudeffectpointat.h" |
35 | 35 | ||
36 | #include "llgl.h" | 36 | #include "llgl.h" |
37 | #include "llglimmediate.h" | 37 | #include "llrender.h" |
38 | 38 | ||
39 | #include "llagent.h" | 39 | #include "llagent.h" |
40 | #include "lldrawable.h" | 40 | #include "lldrawable.h" |
diff --git a/linden/indra/newview/llhudicon.cpp b/linden/indra/newview/llhudicon.cpp index 010e85f..85cc996 100644 --- a/linden/indra/newview/llhudicon.cpp +++ b/linden/indra/newview/llhudicon.cpp | |||
@@ -34,7 +34,7 @@ | |||
34 | #include "llhudicon.h" | 34 | #include "llhudicon.h" |
35 | 35 | ||
36 | #include "llgl.h" | 36 | #include "llgl.h" |
37 | #include "llglimmediate.h" | 37 | #include "llrender.h" |
38 | 38 | ||
39 | #include "llviewerobject.h" | 39 | #include "llviewerobject.h" |
40 | #include "lldrawable.h" | 40 | #include "lldrawable.h" |
diff --git a/linden/indra/newview/llhudtext.cpp b/linden/indra/newview/llhudtext.cpp index f8eddc7..26df22a 100644 --- a/linden/indra/newview/llhudtext.cpp +++ b/linden/indra/newview/llhudtext.cpp | |||
@@ -33,7 +33,7 @@ | |||
33 | 33 | ||
34 | #include "llhudtext.h" | 34 | #include "llhudtext.h" |
35 | 35 | ||
36 | #include "llglimmediate.h" | 36 | #include "llrender.h" |
37 | 37 | ||
38 | #include "llagent.h" | 38 | #include "llagent.h" |
39 | #include "llviewercontrol.h" | 39 | #include "llviewercontrol.h" |
@@ -308,7 +308,6 @@ void LLHUDText::renderText(BOOL for_select) | |||
308 | } | 308 | } |
309 | LLUI::popMatrix(); | 309 | LLUI::popMatrix(); |
310 | 310 | ||
311 | |||
312 | LLImageGL::unbindTexture(0); | 311 | LLImageGL::unbindTexture(0); |
313 | LLGLDepthTest gls_depth(mZCompare ? GL_TRUE : GL_FALSE, GL_FALSE); | 312 | LLGLDepthTest gls_depth(mZCompare ? GL_TRUE : GL_FALSE, GL_FALSE); |
314 | 313 | ||
@@ -375,7 +374,7 @@ void LLHUDText::renderText(BOOL for_select) | |||
375 | 374 | ||
376 | // Render label | 375 | // Render label |
377 | { | 376 | { |
378 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 377 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
379 | 378 | ||
380 | for(std::vector<LLHUDTextSegment>::iterator segment_iter = mLabelSegments.begin(); | 379 | for(std::vector<LLHUDTextSegment>::iterator segment_iter = mLabelSegments.begin(); |
381 | segment_iter != mLabelSegments.end(); ++segment_iter ) | 380 | segment_iter != mLabelSegments.end(); ++segment_iter ) |
diff --git a/linden/indra/newview/llimpanel.cpp b/linden/indra/newview/llimpanel.cpp index 3cb9dfb..2e3682d 100644 --- a/linden/indra/newview/llimpanel.cpp +++ b/linden/indra/newview/llimpanel.cpp | |||
@@ -48,16 +48,19 @@ | |||
48 | #include "llchat.h" | 48 | #include "llchat.h" |
49 | #include "llconsole.h" | 49 | #include "llconsole.h" |
50 | #include "llfloater.h" | 50 | #include "llfloater.h" |
51 | #include "llfloatergroupinfo.h" | ||
52 | #include "llimview.h" | ||
51 | #include "llinventory.h" | 53 | #include "llinventory.h" |
52 | #include "llinventorymodel.h" | 54 | #include "llinventorymodel.h" |
53 | #include "llinventoryview.h" | 55 | #include "llinventoryview.h" |
56 | #include "llfloateractivespeakers.h" | ||
54 | #include "llfloateravatarinfo.h" | 57 | #include "llfloateravatarinfo.h" |
55 | #include "llfloaterchat.h" | 58 | #include "llfloaterchat.h" |
56 | #include "llkeyboard.h" | 59 | #include "llkeyboard.h" |
57 | #include "lllineeditor.h" | 60 | #include "lllineeditor.h" |
61 | #include "llnotify.h" | ||
58 | #include "llresmgr.h" | 62 | #include "llresmgr.h" |
59 | #include "lltabcontainer.h" | 63 | #include "lltabcontainer.h" |
60 | #include "llimview.h" | ||
61 | #include "llviewertexteditor.h" | 64 | #include "llviewertexteditor.h" |
62 | #include "llviewermessage.h" | 65 | #include "llviewermessage.h" |
63 | #include "llviewerstats.h" | 66 | #include "llviewerstats.h" |
@@ -68,11 +71,8 @@ | |||
68 | #include "llfloaterhtml.h" | 71 | #include "llfloaterhtml.h" |
69 | #include "llweb.h" | 72 | #include "llweb.h" |
70 | #include "llhttpclient.h" | 73 | #include "llhttpclient.h" |
71 | #include "llfloateractivespeakers.h" // LLSpeakerMgr | ||
72 | #include "llfloatergroupinfo.h" | ||
73 | #include "llsdutil.h" | ||
74 | #include "llnotify.h" | ||
75 | #include "llmutelist.h" | 74 | #include "llmutelist.h" |
75 | #include "llstylemap.h" | ||
76 | 76 | ||
77 | // | 77 | // |
78 | // Constants | 78 | // Constants |
@@ -1454,24 +1454,20 @@ BOOL LLFloaterIMPanel::inviteToSession(const LLDynamicArray<LLUUID>& ids) | |||
1454 | return TRUE; | 1454 | return TRUE; |
1455 | } | 1455 | } |
1456 | 1456 | ||
1457 | void LLFloaterIMPanel::addHistoryLine(const LLUUID& source, const std::string &utf8msg, const LLColor4& color, bool log_to_file) | 1457 | void LLFloaterIMPanel::addHistoryLine(const std::string &utf8msg, const LLColor4& color, bool log_to_file, const LLUUID& source, const char *name) |
1458 | { | 1458 | { |
1459 | // start tab flashing when receiving im for background session from user | 1459 | // start tab flashing when receiving im for background session from user |
1460 | LLMultiFloater* hostp = getHost(); | 1460 | if (source != LLUUID::null) |
1461 | if( !isInVisibleChain() | ||
1462 | && hostp | ||
1463 | && source != gAgent.getID()) | ||
1464 | { | 1461 | { |
1465 | hostp->setFloaterFlashing(this, TRUE); | 1462 | LLMultiFloater* hostp = getHost(); |
1463 | if( !isInVisibleChain() | ||
1464 | && hostp | ||
1465 | && source != gAgent.getID()) | ||
1466 | { | ||
1467 | hostp->setFloaterFlashing(this, TRUE); | ||
1468 | } | ||
1466 | } | 1469 | } |
1467 | 1470 | ||
1468 | addHistoryLine(utf8msg, color, log_to_file); | ||
1469 | mSpeakers->speakerChatted(source); | ||
1470 | mSpeakers->setSpeakerTyping(source, FALSE); | ||
1471 | } | ||
1472 | |||
1473 | void LLFloaterIMPanel::addHistoryLine(const std::string &utf8msg, const LLColor4& color, bool log_to_file) | ||
1474 | { | ||
1475 | // Now we're adding the actual line of text, so erase the | 1471 | // Now we're adding the actual line of text, so erase the |
1476 | // "Foo is typing..." text segment, and the optional timestamp | 1472 | // "Foo is typing..." text segment, and the optional timestamp |
1477 | // if it was present. JC | 1473 | // if it was present. JC |
@@ -1485,6 +1481,22 @@ void LLFloaterIMPanel::addHistoryLine(const std::string &utf8msg, const LLColor4 | |||
1485 | timestring = mHistoryEditor->appendTime(prepend_newline); | 1481 | timestring = mHistoryEditor->appendTime(prepend_newline); |
1486 | prepend_newline = false; | 1482 | prepend_newline = false; |
1487 | } | 1483 | } |
1484 | |||
1485 | // 'name' is a sender name that we want to hotlink so that clicking on it opens a profile. | ||
1486 | if (name != NULL) // If name exists, then add it to the front of the message. | ||
1487 | { | ||
1488 | // Don't hotlink any messages from the system (e.g. "Second Life:"), so just add those in plain text. | ||
1489 | if (!strcmp(name,SYSTEM_FROM)) | ||
1490 | { | ||
1491 | mHistoryEditor->appendColoredText(name,false,false,color); | ||
1492 | } | ||
1493 | else | ||
1494 | { | ||
1495 | // Convert the name to a hotlink and add to message. | ||
1496 | const LLStyleSP &source_style = LLStyleMap::instance().lookup(source); | ||
1497 | mHistoryEditor->appendStyledText(name, false, false, &source_style); | ||
1498 | } | ||
1499 | } | ||
1488 | mHistoryEditor->appendColoredText(utf8msg, false, prepend_newline, color); | 1500 | mHistoryEditor->appendColoredText(utf8msg, false, prepend_newline, color); |
1489 | 1501 | ||
1490 | if (log_to_file | 1502 | if (log_to_file |
@@ -1492,9 +1504,9 @@ void LLFloaterIMPanel::addHistoryLine(const std::string &utf8msg, const LLColor4 | |||
1492 | { | 1504 | { |
1493 | LLString histstr; | 1505 | LLString histstr; |
1494 | if (gSavedPerAccountSettings.getBOOL("IMLogTimestamp")) | 1506 | if (gSavedPerAccountSettings.getBOOL("IMLogTimestamp")) |
1495 | histstr = LLLogChat::timestamp(gSavedPerAccountSettings.getBOOL("LogTimestampDate")) + utf8msg; | 1507 | histstr = LLLogChat::timestamp(gSavedPerAccountSettings.getBOOL("LogTimestampDate")) + LLString(name) + utf8msg; |
1496 | else | 1508 | else |
1497 | histstr = utf8msg; | 1509 | histstr = LLString(name) + utf8msg; |
1498 | 1510 | ||
1499 | LLLogChat::saveHistory(getTitle(),histstr); | 1511 | LLLogChat::saveHistory(getTitle(),histstr); |
1500 | } | 1512 | } |
@@ -1503,6 +1515,12 @@ void LLFloaterIMPanel::addHistoryLine(const std::string &utf8msg, const LLColor4 | |||
1503 | { | 1515 | { |
1504 | mNumUnreadMessages++; | 1516 | mNumUnreadMessages++; |
1505 | } | 1517 | } |
1518 | |||
1519 | if (source != LLUUID::null) | ||
1520 | { | ||
1521 | mSpeakers->speakerChatted(source); | ||
1522 | mSpeakers->setSpeakerTyping(source, FALSE); | ||
1523 | } | ||
1506 | } | 1524 | } |
1507 | 1525 | ||
1508 | 1526 | ||
@@ -1836,6 +1854,11 @@ void deliver_message(const std::string& utf8_text, | |||
1836 | (EInstantMessage)new_dialog, | 1854 | (EInstantMessage)new_dialog, |
1837 | im_session_id); | 1855 | im_session_id); |
1838 | gAgent.sendReliableMessage(); | 1856 | gAgent.sendReliableMessage(); |
1857 | |||
1858 | if (LLMuteList::getInstance()) | ||
1859 | { | ||
1860 | LLMuteList::getInstance()->autoRemove(other_participant_id, LLMuteList::AR_IM); | ||
1861 | } | ||
1839 | } | 1862 | } |
1840 | 1863 | ||
1841 | void LLFloaterIMPanel::sendMsg() | 1864 | void LLFloaterIMPanel::sendMsg() |
@@ -1888,7 +1911,7 @@ void LLFloaterIMPanel::sendMsg() | |||
1888 | 1911 | ||
1889 | BOOL other_was_typing = mOtherTyping; | 1912 | BOOL other_was_typing = mOtherTyping; |
1890 | 1913 | ||
1891 | addHistoryLine(gAgent.getID(), history_echo, gSavedSettings.getColor("IMChatColor")); | 1914 | addHistoryLine(history_echo, gSavedSettings.getColor("IMChatColor"), true, gAgent.getID()); |
1892 | 1915 | ||
1893 | if (other_was_typing) | 1916 | if (other_was_typing) |
1894 | { | 1917 | { |
@@ -2189,4 +2212,3 @@ void LLFloaterIMPanel::onConfirmForceCloseError(S32 option, void* data) | |||
2189 | } | 2212 | } |
2190 | 2213 | ||
2191 | 2214 | ||
2192 | |||
diff --git a/linden/indra/newview/llimpanel.h b/linden/indra/newview/llimpanel.h index 16d4042..2ed866b 100644 --- a/linden/indra/newview/llimpanel.h +++ b/linden/indra/newview/llimpanel.h | |||
@@ -38,6 +38,7 @@ | |||
38 | #include "lldarray.h" | 38 | #include "lldarray.h" |
39 | #include "llinstantmessage.h" | 39 | #include "llinstantmessage.h" |
40 | #include "llvoiceclient.h" | 40 | #include "llvoiceclient.h" |
41 | #include "llstyle.h" | ||
41 | 42 | ||
42 | class LLLineEditor; | 43 | class LLLineEditor; |
43 | class LLViewerTextEditor; | 44 | class LLViewerTextEditor; |
@@ -202,13 +203,12 @@ public: | |||
202 | // Return TRUE if successful, otherwise FALSE. | 203 | // Return TRUE if successful, otherwise FALSE. |
203 | BOOL inviteToSession(const LLDynamicArray<LLUUID>& agent_ids); | 204 | BOOL inviteToSession(const LLDynamicArray<LLUUID>& agent_ids); |
204 | 205 | ||
205 | void addHistoryLine(const LLUUID& source, | ||
206 | const std::string &utf8msg, | ||
207 | const LLColor4& color = LLColor4::white, | ||
208 | bool log_to_file = true); | ||
209 | void addHistoryLine(const std::string &utf8msg, | 206 | void addHistoryLine(const std::string &utf8msg, |
210 | const LLColor4& color = LLColor4::white, | 207 | const LLColor4& color = LLColor4::white, |
211 | bool log_to_file = true); | 208 | bool log_to_file = true, |
209 | const LLUUID& source = LLUUID::null, | ||
210 | const char *name = NULL); | ||
211 | |||
212 | void setInputFocus( BOOL b ); | 212 | void setInputFocus( BOOL b ); |
213 | 213 | ||
214 | void selectAll(); | 214 | void selectAll(); |
@@ -357,6 +357,9 @@ private: | |||
357 | LLFrameTimer mLastKeystrokeTimer; | 357 | LLFrameTimer mLastKeystrokeTimer; |
358 | 358 | ||
359 | void disableWhileSessionStarting(); | 359 | void disableWhileSessionStarting(); |
360 | |||
361 | typedef std::map<LLUUID, LLStyleSP> styleMap; | ||
362 | static styleMap mStyleMap; | ||
360 | }; | 363 | }; |
361 | 364 | ||
362 | 365 | ||
diff --git a/linden/indra/newview/llimview.cpp b/linden/indra/newview/llimview.cpp index e451388..797c2a4 100644 --- a/linden/indra/newview/llimview.cpp +++ b/linden/indra/newview/llimview.cpp | |||
@@ -83,6 +83,7 @@ LLIMMgr* gIMMgr = NULL; | |||
83 | // *FIXME: make these all either UIStrings or Strings | 83 | // *FIXME: make these all either UIStrings or Strings |
84 | static LLString sOnlyUserMessage; | 84 | static LLString sOnlyUserMessage; |
85 | static LLUIString sOfflineMessage; | 85 | static LLUIString sOfflineMessage; |
86 | static LLString sMutedMessage; | ||
86 | static LLUIString sInviteMessage; | 87 | static LLUIString sInviteMessage; |
87 | 88 | ||
88 | std::map<std::string,LLString> LLFloaterIM::sEventStringsMap; | 89 | std::map<std::string,LLString> LLFloaterIM::sEventStringsMap; |
@@ -161,6 +162,7 @@ BOOL LLFloaterIM::postBuild() | |||
161 | sOfflineMessage = getUIString("offline_message"); | 162 | sOfflineMessage = getUIString("offline_message"); |
162 | 163 | ||
163 | sInviteMessage = getUIString("invite_message"); | 164 | sInviteMessage = getUIString("invite_message"); |
165 | sMutedMessage = childGetText("muted_message"); | ||
164 | 166 | ||
165 | if ( sErrorStringsMap.find("generic") == sErrorStringsMap.end() ) | 167 | if ( sErrorStringsMap.find("generic") == sErrorStringsMap.end() ) |
166 | { | 168 | { |
@@ -400,10 +402,10 @@ void LLIMMgr::addMessage( | |||
400 | EInstantMessage dialog, | 402 | EInstantMessage dialog, |
401 | U32 parent_estate_id, | 403 | U32 parent_estate_id, |
402 | const LLUUID& region_id, | 404 | const LLUUID& region_id, |
403 | const LLVector3& position) | 405 | const LLVector3& position, |
406 | bool link_name) // If this is true, then we insert the name and link it to a profile | ||
404 | { | 407 | { |
405 | LLUUID other_participant_id = target_id; | 408 | LLUUID other_participant_id = target_id; |
406 | bool is_from_system = target_id.isNull() || !strcmp(from, SYSTEM_FROM); | ||
407 | 409 | ||
408 | // don't process muted IMs | 410 | // don't process muted IMs |
409 | if (LLMuteList::getInstance()->isMuted( | 411 | if (LLMuteList::getInstance()->isMuted( |
@@ -420,8 +422,6 @@ void LLIMMgr::addMessage( | |||
420 | other_participant_id = LLUUID::null; | 422 | other_participant_id = LLUUID::null; |
421 | } | 423 | } |
422 | 424 | ||
423 | |||
424 | |||
425 | LLFloaterIMPanel* floater; | 425 | LLFloaterIMPanel* floater; |
426 | LLUUID new_session_id = session_id; | 426 | LLUUID new_session_id = session_id; |
427 | if (new_session_id.isNull()) | 427 | if (new_session_id.isNull()) |
@@ -482,15 +482,17 @@ void LLIMMgr::addMessage( | |||
482 | } | 482 | } |
483 | 483 | ||
484 | // now add message to floater | 484 | // now add message to floater |
485 | if ( is_from_system ) // chat came from system | 485 | bool is_from_system = target_id.isNull() || !strcmp(from, SYSTEM_FROM); |
486 | const LLColor4& color = ( is_from_system ? | ||
487 | gSavedSettings.getColor4("SystemChatColor") : | ||
488 | gSavedSettings.getColor("IMChatColor")); | ||
489 | if ( !link_name ) | ||
486 | { | 490 | { |
487 | floater->addHistoryLine( | 491 | floater->addHistoryLine(msg,color); // No name to prepend, so just add the message normally |
488 | msg, | ||
489 | gSavedSettings.getColor4("SystemChatColor")); | ||
490 | } | 492 | } |
491 | else | 493 | else |
492 | { | 494 | { |
493 | floater->addHistoryLine(other_participant_id, msg, gSavedSettings.getColor("IMChatColor")); | 495 | floater->addHistoryLine(msg, color, true, other_participant_id, from); // Insert linked name to front of message |
494 | } | 496 | } |
495 | 497 | ||
496 | LLFloaterChatterBox* chat_floater = LLFloaterChatterBox::getInstance(LLSD()); | 498 | LLFloaterChatterBox* chat_floater = LLFloaterChatterBox::getInstance(LLSD()); |
@@ -615,6 +617,8 @@ LLUUID LLIMMgr::addSession( | |||
615 | 617 | ||
616 | noteOfflineUsers(floater, ids); | 618 | noteOfflineUsers(floater, ids); |
617 | LLFloaterChatterBox::showInstance(session_id); | 619 | LLFloaterChatterBox::showInstance(session_id); |
620 | noteMutedUsers(floater, ids); | ||
621 | LLFloaterChatterBox::getInstance(LLSD())->showFloater(floater); | ||
618 | } | 622 | } |
619 | else | 623 | else |
620 | { | 624 | { |
@@ -659,6 +663,7 @@ LLUUID LLIMMgr::addSession( | |||
659 | 663 | ||
660 | noteOfflineUsers(floater, ids); | 664 | noteOfflineUsers(floater, ids); |
661 | LLFloaterChatterBox::showInstance(session_id); | 665 | LLFloaterChatterBox::showInstance(session_id); |
666 | noteMutedUsers(floater, ids); | ||
662 | } | 667 | } |
663 | else | 668 | else |
664 | { | 669 | { |
@@ -1232,6 +1237,31 @@ void LLIMMgr::noteOfflineUsers( | |||
1232 | } | 1237 | } |
1233 | } | 1238 | } |
1234 | 1239 | ||
1240 | void LLIMMgr::noteMutedUsers(LLFloaterIMPanel* floater, | ||
1241 | const LLDynamicArray<LLUUID>& ids) | ||
1242 | { | ||
1243 | S32 count = ids.count(); | ||
1244 | if(count > 0) | ||
1245 | { | ||
1246 | const LLRelationship* info = NULL; | ||
1247 | LLAvatarTracker& at = LLAvatarTracker::instance(); | ||
1248 | for(S32 i = 0; i < count; ++i) | ||
1249 | { | ||
1250 | info = at.getBuddyInfo(ids.get(i)); | ||
1251 | char first[DB_FIRST_NAME_BUF_SIZE]; /*Flawfinder: ignore*/ | ||
1252 | char last[DB_LAST_NAME_BUF_SIZE]; /*Flawfinder: ignore*/ | ||
1253 | if(info && LLMuteList::getInstance() && LLMuteList::getInstance()->isMuted(ids.get(i)) | ||
1254 | && gCacheName->getName(ids.get(i), first, last)) | ||
1255 | { | ||
1256 | LLUIString muted = sMutedMessage; | ||
1257 | muted.setArg("[FIRST]", first); | ||
1258 | muted.setArg("[LAST]", last); | ||
1259 | floater->addHistoryLine(muted); | ||
1260 | } | ||
1261 | } | ||
1262 | } | ||
1263 | } | ||
1264 | |||
1235 | void LLIMMgr::processIMTypingStart(const LLIMInfo* im_info) | 1265 | void LLIMMgr::processIMTypingStart(const LLIMInfo* im_info) |
1236 | { | 1266 | { |
1237 | processIMTypingCore(im_info, TRUE); | 1267 | processIMTypingCore(im_info, TRUE); |
@@ -1520,8 +1550,7 @@ public: | |||
1520 | snprintf( | 1550 | snprintf( |
1521 | buffer, | 1551 | buffer, |
1522 | sizeof(buffer), | 1552 | sizeof(buffer), |
1523 | "%s%s%s%s", | 1553 | "%s%s%s", |
1524 | name.c_str(), | ||
1525 | separator_string, | 1554 | separator_string, |
1526 | saved, | 1555 | saved, |
1527 | (message.c_str() + message_offset)); /*Flawfinder: ignore*/ | 1556 | (message.c_str() + message_offset)); /*Flawfinder: ignore*/ |
@@ -1540,7 +1569,8 @@ public: | |||
1540 | IM_SESSION_INVITE, | 1569 | IM_SESSION_INVITE, |
1541 | message_params["parent_estate_id"].asInteger(), | 1570 | message_params["parent_estate_id"].asInteger(), |
1542 | message_params["region_id"].asUUID(), | 1571 | message_params["region_id"].asUUID(), |
1543 | ll_vector3_from_sd(message_params["position"])); | 1572 | ll_vector3_from_sd(message_params["position"]), |
1573 | true); | ||
1544 | 1574 | ||
1545 | snprintf( | 1575 | snprintf( |
1546 | buffer, | 1576 | buffer, |
@@ -1628,4 +1658,3 @@ LLHTTPRegistration<LLViewerChatterBoxInvitation> | |||
1628 | gHTTPRegistrationMessageChatterBoxInvitation( | 1658 | gHTTPRegistrationMessageChatterBoxInvitation( |
1629 | "/message/ChatterBoxInvitation"); | 1659 | "/message/ChatterBoxInvitation"); |
1630 | 1660 | ||
1631 | |||
diff --git a/linden/indra/newview/llimview.h b/linden/indra/newview/llimview.h index 44cb992..b2621e8 100644 --- a/linden/indra/newview/llimview.h +++ b/linden/indra/newview/llimview.h | |||
@@ -65,7 +65,8 @@ public: | |||
65 | EInstantMessage dialog = IM_NOTHING_SPECIAL, | 65 | EInstantMessage dialog = IM_NOTHING_SPECIAL, |
66 | U32 parent_estate_id = 0, | 66 | U32 parent_estate_id = 0, |
67 | const LLUUID& region_id = LLUUID::null, | 67 | const LLUUID& region_id = LLUUID::null, |
68 | const LLVector3& position = LLVector3::zero); | 68 | const LLVector3& position = LLVector3::zero, |
69 | bool link_name = false); | ||
69 | 70 | ||
70 | void addSystemMessage(const LLUUID& session_id, const LLString& message_name, const LLString::format_map_t& args); | 71 | void addSystemMessage(const LLUUID& session_id, const LLString& message_name, const LLString::format_map_t& args); |
71 | 72 | ||
@@ -192,6 +193,7 @@ private: | |||
192 | // reduce 'hello' messages to the linden employees unlucky enough | 193 | // reduce 'hello' messages to the linden employees unlucky enough |
193 | // to have their calling card in the default inventory. | 194 | // to have their calling card in the default inventory. |
194 | void noteOfflineUsers(LLFloaterIMPanel* panel, const LLDynamicArray<LLUUID>& ids); | 195 | void noteOfflineUsers(LLFloaterIMPanel* panel, const LLDynamicArray<LLUUID>& ids); |
196 | void noteMutedUsers(LLFloaterIMPanel* panel, const LLDynamicArray<LLUUID>& ids); | ||
195 | 197 | ||
196 | void processIMTypingCore(const LLIMInfo* im_info, BOOL typing); | 198 | void processIMTypingCore(const LLIMInfo* im_info, BOOL typing); |
197 | 199 | ||
diff --git a/linden/indra/newview/llinventorymodel.cpp b/linden/indra/newview/llinventorymodel.cpp index e76c427..91bdb8d 100644 --- a/linden/indra/newview/llinventorymodel.cpp +++ b/linden/indra/newview/llinventorymodel.cpp | |||
@@ -1810,7 +1810,7 @@ bool LLInventoryModel::loadSkeleton( | |||
1810 | const S32 NO_VERSION = LLViewerInventoryCategory::VERSION_UNKNOWN; | 1810 | const S32 NO_VERSION = LLViewerInventoryCategory::VERSION_UNKNOWN; |
1811 | std::string gzip_filename(inventory_filename); | 1811 | std::string gzip_filename(inventory_filename); |
1812 | gzip_filename.append(".gz"); | 1812 | gzip_filename.append(".gz"); |
1813 | FILE* fp = LLFile::fopen(gzip_filename.c_str(), "rb"); /*Flawfinder: ignore*/ | 1813 | LLFILE* fp = LLFile::fopen(gzip_filename.c_str(), "rb"); /*Flawfinder: ignore*/ |
1814 | bool remove_inventory_file = false; | 1814 | bool remove_inventory_file = false; |
1815 | if(fp) | 1815 | if(fp) |
1816 | { | 1816 | { |
@@ -2344,7 +2344,7 @@ bool LLInventoryModel::loadFromFile( | |||
2344 | return false; | 2344 | return false; |
2345 | } | 2345 | } |
2346 | llinfos << "LLInventoryModel::loadFromFile(" << filename << ")" << llendl; | 2346 | llinfos << "LLInventoryModel::loadFromFile(" << filename << ")" << llendl; |
2347 | FILE* file = LLFile::fopen(filename, "rb"); /*Flawfinder: ignore*/ | 2347 | LLFILE* file = LLFile::fopen(filename, "rb"); /*Flawfinder: ignore*/ |
2348 | if(!file) | 2348 | if(!file) |
2349 | { | 2349 | { |
2350 | llinfos << "unable to load inventory from: " << filename << llendl; | 2350 | llinfos << "unable to load inventory from: " << filename << llendl; |
@@ -2417,7 +2417,7 @@ bool LLInventoryModel::saveToFile( | |||
2417 | return false; | 2417 | return false; |
2418 | } | 2418 | } |
2419 | llinfos << "LLInventoryModel::saveToFile(" << filename << ")" << llendl; | 2419 | llinfos << "LLInventoryModel::saveToFile(" << filename << ")" << llendl; |
2420 | FILE* file = LLFile::fopen(filename, "wb"); /*Flawfinder: ignore*/ | 2420 | LLFILE* file = LLFile::fopen(filename, "wb"); /*Flawfinder: ignore*/ |
2421 | if(!file) | 2421 | if(!file) |
2422 | { | 2422 | { |
2423 | llwarns << "unable to save inventory to: " << filename << llendl; | 2423 | llwarns << "unable to save inventory to: " << filename << llendl; |
@@ -3692,7 +3692,7 @@ BOOL decompress_file(const char* src_filename, const char* dst_filename) | |||
3692 | BOOL rv = FALSE; | 3692 | BOOL rv = FALSE; |
3693 | gzFile src = NULL; | 3693 | gzFile src = NULL; |
3694 | U8* buffer = NULL; | 3694 | U8* buffer = NULL; |
3695 | FILE* dst = NULL; | 3695 | LLFILE* dst = NULL; |
3696 | S32 bytes = 0; | 3696 | S32 bytes = 0; |
3697 | const S32 DECOMPRESS_BUFFER_SIZE = 32000; | 3697 | const S32 DECOMPRESS_BUFFER_SIZE = 32000; |
3698 | 3698 | ||
diff --git a/linden/indra/newview/lljoystickbutton.cpp b/linden/indra/newview/lljoystickbutton.cpp index 1978b78..3957b0a 100644 --- a/linden/indra/newview/lljoystickbutton.cpp +++ b/linden/indra/newview/lljoystickbutton.cpp | |||
@@ -36,7 +36,7 @@ | |||
36 | // Library includes | 36 | // Library includes |
37 | #include "llcoord.h" | 37 | #include "llcoord.h" |
38 | #include "indra_constants.h" | 38 | #include "indra_constants.h" |
39 | #include "llglimmediate.h" | 39 | #include "llrender.h" |
40 | 40 | ||
41 | // Project includes | 41 | // Project includes |
42 | #include "llui.h" | 42 | #include "llui.h" |
diff --git a/linden/indra/newview/lllogchat.cpp b/linden/indra/newview/lllogchat.cpp index 7be9781..38c4869 100644 --- a/linden/indra/newview/lllogchat.cpp +++ b/linden/indra/newview/lllogchat.cpp | |||
@@ -76,7 +76,7 @@ void LLLogChat::saveHistory(LLString filename, LLString line) | |||
76 | return; | 76 | return; |
77 | } | 77 | } |
78 | 78 | ||
79 | FILE* fp = LLFile::fopen(LLLogChat::makeLogFileName(filename).c_str(), "a"); /*Flawfinder: ignore*/ | 79 | LLFILE* fp = LLFile::fopen(LLLogChat::makeLogFileName(filename).c_str(), "a"); /*Flawfinder: ignore*/ |
80 | if (!fp) | 80 | if (!fp) |
81 | { | 81 | { |
82 | llinfos << "Couldn't open chat history log!" << llendl; | 82 | llinfos << "Couldn't open chat history log!" << llendl; |
@@ -96,7 +96,7 @@ void LLLogChat::loadHistory(LLString filename , void (*callback)(ELogLineType,LL | |||
96 | llerrs << "Filename is Empty!" << llendl; | 96 | llerrs << "Filename is Empty!" << llendl; |
97 | } | 97 | } |
98 | 98 | ||
99 | FILE* fptr = LLFile::fopen(makeLogFileName(filename).c_str(), "r"); /*Flawfinder: ignore*/ | 99 | LLFILE* fptr = LLFile::fopen(makeLogFileName(filename).c_str(), "r"); /*Flawfinder: ignore*/ |
100 | if (!fptr) | 100 | if (!fptr) |
101 | { | 101 | { |
102 | //LLUIString message = LLFloaterChat::getInstance()->getUIString("IM_logging_string"); | 102 | //LLUIString message = LLFloaterChat::getInstance()->getUIString("IM_logging_string"); |
diff --git a/linden/indra/newview/llmanip.cpp b/linden/indra/newview/llmanip.cpp index e0621a3..5c19685 100644 --- a/linden/indra/newview/llmanip.cpp +++ b/linden/indra/newview/llmanip.cpp | |||
@@ -36,7 +36,7 @@ | |||
36 | #include "llmath.h" | 36 | #include "llmath.h" |
37 | #include "v3math.h" | 37 | #include "v3math.h" |
38 | #include "llgl.h" | 38 | #include "llgl.h" |
39 | #include "llglimmediate.h" | 39 | #include "llrender.h" |
40 | #include "llprimitive.h" | 40 | #include "llprimitive.h" |
41 | #include "llview.h" | 41 | #include "llview.h" |
42 | #include "llviewerimagelist.h" | 42 | #include "llviewerimagelist.h" |
diff --git a/linden/indra/newview/llmaniprotate.cpp b/linden/indra/newview/llmaniprotate.cpp index 43a22e5..b60e29a 100644 --- a/linden/indra/newview/llmaniprotate.cpp +++ b/linden/indra/newview/llmaniprotate.cpp | |||
@@ -36,7 +36,7 @@ | |||
36 | // library includes | 36 | // library includes |
37 | #include "llmath.h" | 37 | #include "llmath.h" |
38 | #include "llgl.h" | 38 | #include "llgl.h" |
39 | #include "llglimmediate.h" | 39 | #include "llrender.h" |
40 | #include "v4color.h" | 40 | #include "v4color.h" |
41 | #include "llprimitive.h" | 41 | #include "llprimitive.h" |
42 | #include "llview.h" | 42 | #include "llview.h" |
diff --git a/linden/indra/newview/llmanipscale.cpp b/linden/indra/newview/llmanipscale.cpp index bb26484..d5ab7a1 100644 --- a/linden/indra/newview/llmanipscale.cpp +++ b/linden/indra/newview/llmanipscale.cpp | |||
@@ -38,7 +38,7 @@ | |||
38 | #include "v3math.h" | 38 | #include "v3math.h" |
39 | #include "llquaternion.h" | 39 | #include "llquaternion.h" |
40 | #include "llgl.h" | 40 | #include "llgl.h" |
41 | #include "llglimmediate.h" | 41 | #include "llrender.h" |
42 | #include "v4color.h" | 42 | #include "v4color.h" |
43 | #include "llprimitive.h" | 43 | #include "llprimitive.h" |
44 | 44 | ||
diff --git a/linden/indra/newview/llmaniptranslate.cpp b/linden/indra/newview/llmaniptranslate.cpp index ac41068..7dbb470 100644 --- a/linden/indra/newview/llmaniptranslate.cpp +++ b/linden/indra/newview/llmaniptranslate.cpp | |||
@@ -38,7 +38,7 @@ | |||
38 | #include "llmaniptranslate.h" | 38 | #include "llmaniptranslate.h" |
39 | 39 | ||
40 | #include "llgl.h" | 40 | #include "llgl.h" |
41 | #include "llglimmediate.h" | 41 | #include "llrender.h" |
42 | 42 | ||
43 | #include "llagent.h" | 43 | #include "llagent.h" |
44 | #include "llbbox.h" | 44 | #include "llbbox.h" |
@@ -1535,10 +1535,10 @@ void LLManipTranslate::renderSnapGuides() | |||
1535 | LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE, GL_GREATER); | 1535 | LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE, GL_GREATER); |
1536 | glBindTexture(GL_TEXTURE_2D, sGridTex); | 1536 | glBindTexture(GL_TEXTURE_2D, sGridTex); |
1537 | gGL.flush(); | 1537 | gGL.flush(); |
1538 | gGL.blendFunc(GL_ZERO, GL_ONE_MINUS_SRC_ALPHA); | 1538 | gGL.blendFunc(LLRender::BF_ZERO, LLRender::BF_ONE_MINUS_SOURCE_ALPHA); |
1539 | renderGrid(u,v,tiles,0.9f, 0.9f, 0.9f,a*0.15f); | 1539 | renderGrid(u,v,tiles,0.9f, 0.9f, 0.9f,a*0.15f); |
1540 | gGL.flush(); | 1540 | gGL.flush(); |
1541 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 1541 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
1542 | } | 1542 | } |
1543 | 1543 | ||
1544 | { | 1544 | { |
@@ -1649,7 +1649,7 @@ void LLManipTranslate::highlightIntersection(LLVector3 normal, | |||
1649 | LLGLEnable stencil(GL_STENCIL_TEST); | 1649 | LLGLEnable stencil(GL_STENCIL_TEST); |
1650 | LLGLDepthTest depth (GL_TRUE, GL_FALSE, GL_ALWAYS); | 1650 | LLGLDepthTest depth (GL_TRUE, GL_FALSE, GL_ALWAYS); |
1651 | glStencilFunc(GL_ALWAYS, 0, stencil_mask); | 1651 | glStencilFunc(GL_ALWAYS, 0, stencil_mask); |
1652 | glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); | 1652 | gGL.setColorMask(false, false); |
1653 | LLImageGL::unbindTexture(0); | 1653 | LLImageGL::unbindTexture(0); |
1654 | glColor4f(1,1,1,1); | 1654 | glColor4f(1,1,1,1); |
1655 | 1655 | ||
@@ -1700,7 +1700,7 @@ void LLManipTranslate::highlightIntersection(LLVector3 normal, | |||
1700 | LLPipeline::toggleRenderType(LLPipeline::RENDER_TYPE_CLOUDS); | 1700 | LLPipeline::toggleRenderType(LLPipeline::RENDER_TYPE_CLOUDS); |
1701 | } | 1701 | } |
1702 | 1702 | ||
1703 | glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_FALSE); | 1703 | gGL.setColorMask(true, false); |
1704 | } | 1704 | } |
1705 | gGL.color4f(1,1,1,1); | 1705 | gGL.color4f(1,1,1,1); |
1706 | 1706 | ||
diff --git a/linden/indra/newview/llmemoryview.cpp b/linden/indra/newview/llmemoryview.cpp index a19328a..ca38a9c 100644 --- a/linden/indra/newview/llmemoryview.cpp +++ b/linden/indra/newview/llmemoryview.cpp | |||
@@ -58,7 +58,7 @@ mDelay(120) | |||
58 | 58 | ||
59 | #ifdef MEM_DUMP_DATA | 59 | #ifdef MEM_DUMP_DATA |
60 | // clear out file. | 60 | // clear out file. |
61 | FILE *dump = fopen("memusagedump.txt", "w"); | 61 | LLFILE *dump = LLFile::fopen("memusagedump.txt", "w"); |
62 | fclose(dump); | 62 | fclose(dump); |
63 | #endif | 63 | #endif |
64 | } | 64 | } |
@@ -262,7 +262,7 @@ void LLMemoryView::dumpData() | |||
262 | // reset timer | 262 | // reset timer |
263 | mDumpTimer.reset(); | 263 | mDumpTimer.reset(); |
264 | // append dump info to text file | 264 | // append dump info to text file |
265 | FILE *dump = fopen("memusagedump.txt", "a"); | 265 | LLFILE *dump = LLFile::fopen("memusagedump.txt", "a"); |
266 | 266 | ||
267 | if (dump) | 267 | if (dump) |
268 | { | 268 | { |
diff --git a/linden/indra/newview/llmutelist.cpp b/linden/indra/newview/llmutelist.cpp index c411ffe..75c7cce 100644 --- a/linden/indra/newview/llmutelist.cpp +++ b/linden/indra/newview/llmutelist.cpp | |||
@@ -62,6 +62,12 @@ | |||
62 | #include "llviewergenericmessage.h" // for gGenericDispatcher | 62 | #include "llviewergenericmessage.h" // for gGenericDispatcher |
63 | #include "llviewerwindow.h" | 63 | #include "llviewerwindow.h" |
64 | #include "llworld.h" //for particle system banning | 64 | #include "llworld.h" //for particle system banning |
65 | #include "llchat.h" | ||
66 | #include "llfloaterchat.h" | ||
67 | #include "llimpanel.h" | ||
68 | #include "llimview.h" | ||
69 | #include "llnotify.h" | ||
70 | #include "lluistring.h" | ||
65 | #include "llviewerobject.h" | 71 | #include "llviewerobject.h" |
66 | #include "llviewerobjectlist.h" | 72 | #include "llviewerobjectlist.h" |
67 | 73 | ||
@@ -437,6 +443,78 @@ void LLMuteList::updateRemove(const LLMute& mute) | |||
437 | gAgent.sendReliableMessage(); | 443 | gAgent.sendReliableMessage(); |
438 | } | 444 | } |
439 | 445 | ||
446 | void notify_automute_callback(const LLUUID& agent_id, const char* first_name, const char* last_name, BOOL is_group, void* user_data) | ||
447 | { | ||
448 | U32 temp_data = (U32)user_data; | ||
449 | LLMuteList::EAutoReason reason = (LLMuteList::EAutoReason)temp_data; | ||
450 | LLUIString auto_message; | ||
451 | |||
452 | switch (reason) | ||
453 | { | ||
454 | default: | ||
455 | case LLMuteList::AR_IM: | ||
456 | auto_message = LLNotifyBox::getTemplateMessage("AutoUnmuteByIM"); | ||
457 | break; | ||
458 | case LLMuteList::AR_INVENTORY: | ||
459 | auto_message = LLNotifyBox::getTemplateMessage("AutoUnmuteByInventory"); | ||
460 | break; | ||
461 | case LLMuteList::AR_MONEY: | ||
462 | auto_message = LLNotifyBox::getTemplateMessage("AutoUnmuteByMoney"); | ||
463 | break; | ||
464 | } | ||
465 | |||
466 | auto_message.setArg("[FIRST]", first_name); | ||
467 | auto_message.setArg("[LAST]", last_name); | ||
468 | |||
469 | if (reason == LLMuteList::AR_IM) | ||
470 | { | ||
471 | LLFloaterIMPanel *timp = gIMMgr->findFloaterBySession(agent_id); | ||
472 | if (timp) | ||
473 | { | ||
474 | timp->addHistoryLine(auto_message.getString()); | ||
475 | } | ||
476 | } | ||
477 | |||
478 | LLChat auto_chat(auto_message.getString()); | ||
479 | LLFloaterChat::addChat(auto_chat, FALSE, FALSE); | ||
480 | } | ||
481 | |||
482 | |||
483 | BOOL LLMuteList::autoRemove(const LLUUID& agent_id, const EAutoReason reason, const LLString& first_name, const LLString& last_name) | ||
484 | { | ||
485 | BOOL removed = FALSE; | ||
486 | |||
487 | if (isMuted(agent_id)) | ||
488 | { | ||
489 | LLMute automute(agent_id, "", LLMute::AGENT); | ||
490 | removed = TRUE; | ||
491 | remove(automute); | ||
492 | |||
493 | if (first_name.empty() && last_name.empty()) | ||
494 | { | ||
495 | char cache_first[DB_FIRST_NAME_BUF_SIZE]; /* Flawfinder: ignore */ | ||
496 | char cache_last[DB_LAST_NAME_BUF_SIZE]; /* Flawfinder: ignore */ | ||
497 | if (gCacheName->getName(agent_id, cache_first, cache_last)) | ||
498 | { | ||
499 | // name in cache, call callback directly | ||
500 | notify_automute_callback(agent_id, cache_first, cache_last, FALSE, (void *)reason); | ||
501 | } | ||
502 | else | ||
503 | { | ||
504 | // not in cache, lookup name from cache | ||
505 | gCacheName->get(agent_id, FALSE, notify_automute_callback, (void *)reason); | ||
506 | } | ||
507 | } | ||
508 | else | ||
509 | { | ||
510 | // call callback directly | ||
511 | notify_automute_callback(agent_id, first_name.c_str(), last_name.c_str(), FALSE, (void *)reason); | ||
512 | } | ||
513 | } | ||
514 | |||
515 | return removed; | ||
516 | } | ||
517 | |||
440 | 518 | ||
441 | std::vector<LLMute> LLMuteList::getMutes() const | 519 | std::vector<LLMute> LLMuteList::getMutes() const |
442 | { | 520 | { |
@@ -472,7 +550,7 @@ BOOL LLMuteList::loadFromFile(const LLString& filename) | |||
472 | return FALSE; | 550 | return FALSE; |
473 | } | 551 | } |
474 | 552 | ||
475 | FILE* fp = LLFile::fopen(filename.c_str(), "rb"); /*Flawfinder: ignore*/ | 553 | LLFILE* fp = LLFile::fopen(filename.c_str(), "rb"); /*Flawfinder: ignore*/ |
476 | if (!fp) | 554 | if (!fp) |
477 | { | 555 | { |
478 | llwarns << "Couldn't open mute list " << filename << llendl; | 556 | llwarns << "Couldn't open mute list " << filename << llendl; |
@@ -522,7 +600,7 @@ BOOL LLMuteList::saveToFile(const LLString& filename) | |||
522 | return FALSE; | 600 | return FALSE; |
523 | } | 601 | } |
524 | 602 | ||
525 | FILE* fp = LLFile::fopen(filename.c_str(), "wb"); /*Flawfinder: ignore*/ | 603 | LLFILE* fp = LLFile::fopen(filename.c_str(), "wb"); /*Flawfinder: ignore*/ |
526 | if (!fp) | 604 | if (!fp) |
527 | { | 605 | { |
528 | llwarns << "Couldn't open mute list " << filename << llendl; | 606 | llwarns << "Couldn't open mute list " << filename << llendl; |
diff --git a/linden/indra/newview/llmutelist.h b/linden/indra/newview/llmutelist.h index e1a87c8..0a8c6aa 100644 --- a/linden/indra/newview/llmutelist.h +++ b/linden/indra/newview/llmutelist.h | |||
@@ -82,6 +82,15 @@ public: | |||
82 | class LLMuteList : public LLSingleton<LLMuteList> | 82 | class LLMuteList : public LLSingleton<LLMuteList> |
83 | { | 83 | { |
84 | public: | 84 | public: |
85 | // reasons for auto-unmuting a resident | ||
86 | enum EAutoReason | ||
87 | { | ||
88 | AR_IM = 0, // agent IMed a muted resident | ||
89 | AR_MONEY = 1, // agent paid L$ to a muted resident | ||
90 | AR_INVENTORY = 2, // agent offered inventory to a muted resident | ||
91 | AR_COUNT // enum count | ||
92 | }; | ||
93 | |||
85 | LLMuteList(); | 94 | LLMuteList(); |
86 | ~LLMuteList(); | 95 | ~LLMuteList(); |
87 | 96 | ||
@@ -98,6 +107,7 @@ public: | |||
98 | 107 | ||
99 | // Remove both normal and legacy mutes, for any or all properties. | 108 | // Remove both normal and legacy mutes, for any or all properties. |
100 | BOOL remove(const LLMute& mute, U32 flags = 0); | 109 | BOOL remove(const LLMute& mute, U32 flags = 0); |
110 | BOOL autoRemove(const LLUUID& agent_id, const EAutoReason reason, const LLString& first_name = "", const LLString& last_name = ""); | ||
101 | 111 | ||
102 | // Name is required to test against legacy text-only mutes. | 112 | // Name is required to test against legacy text-only mutes. |
103 | BOOL isMuted(const LLUUID& id, const LLString& name = LLString::null, U32 flags = 0) const; | 113 | BOOL isMuted(const LLUUID& id, const LLString& name = LLString::null, U32 flags = 0) const; |
diff --git a/linden/indra/newview/llnetmap.cpp b/linden/indra/newview/llnetmap.cpp index b6e22d8..9629d06 100644 --- a/linden/indra/newview/llnetmap.cpp +++ b/linden/indra/newview/llnetmap.cpp | |||
@@ -38,7 +38,7 @@ | |||
38 | #include "llui.h" | 38 | #include "llui.h" |
39 | #include "llmath.h" // clampf() | 39 | #include "llmath.h" // clampf() |
40 | #include "llfocusmgr.h" | 40 | #include "llfocusmgr.h" |
41 | #include "llglimmediate.h" | 41 | #include "llrender.h" |
42 | 42 | ||
43 | #include "llagent.h" | 43 | #include "llagent.h" |
44 | #include "llcallingcard.h" | 44 | #include "llcallingcard.h" |
@@ -299,7 +299,7 @@ void LLNetMap::draw() | |||
299 | gGL.end(); | 299 | gGL.end(); |
300 | 300 | ||
301 | // Draw water | 301 | // Draw water |
302 | glAlphaFunc(GL_GREATER, ABOVE_WATERLINE_ALPHA / 255.f ); | 302 | gGL.setAlphaRejectSettings(LLRender::CF_GREATER, ABOVE_WATERLINE_ALPHA / 255.f); |
303 | { | 303 | { |
304 | if (regionp->getLand().getWaterTexture()) | 304 | if (regionp->getLand().getWaterTexture()) |
305 | { | 305 | { |
@@ -316,7 +316,7 @@ void LLNetMap::draw() | |||
316 | gGL.end(); | 316 | gGL.end(); |
317 | } | 317 | } |
318 | } | 318 | } |
319 | glAlphaFunc(GL_GREATER,0.01f); | 319 | gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); |
320 | } | 320 | } |
321 | 321 | ||
322 | 322 | ||
diff --git a/linden/indra/newview/llnotify.cpp b/linden/indra/newview/llnotify.cpp index 19695e8..17aff78 100644 --- a/linden/indra/newview/llnotify.cpp +++ b/linden/indra/newview/llnotify.cpp | |||
@@ -35,7 +35,7 @@ | |||
35 | 35 | ||
36 | #include "llchat.h" | 36 | #include "llchat.h" |
37 | #include "llfocusmgr.h" | 37 | #include "llfocusmgr.h" |
38 | #include "llglimmediate.h" | 38 | #include "llrender.h" |
39 | 39 | ||
40 | #include "llbutton.h" | 40 | #include "llbutton.h" |
41 | #include "llfocusmgr.h" | 41 | #include "llfocusmgr.h" |
diff --git a/linden/indra/newview/lloverlaybar.cpp b/linden/indra/newview/lloverlaybar.cpp index e5c1113..d430d17 100644 --- a/linden/indra/newview/lloverlaybar.cpp +++ b/linden/indra/newview/lloverlaybar.cpp | |||
@@ -37,7 +37,7 @@ | |||
37 | #include "lloverlaybar.h" | 37 | #include "lloverlaybar.h" |
38 | 38 | ||
39 | #include "audioengine.h" | 39 | #include "audioengine.h" |
40 | #include "llglimmediate.h" | 40 | #include "llrender.h" |
41 | #include "llagent.h" | 41 | #include "llagent.h" |
42 | #include "llbutton.h" | 42 | #include "llbutton.h" |
43 | #include "llchatbar.h" | 43 | #include "llchatbar.h" |
diff --git a/linden/indra/newview/llpanelclassified.cpp b/linden/indra/newview/llpanelclassified.cpp index 7908ccc..45ceeba 100644 --- a/linden/indra/newview/llpanelclassified.cpp +++ b/linden/indra/newview/llpanelclassified.cpp | |||
@@ -71,6 +71,9 @@ | |||
71 | #include "llappviewer.h" // abortQuit() | 71 | #include "llappviewer.h" // abortQuit() |
72 | 72 | ||
73 | const S32 MINIMUM_PRICE_FOR_LISTING = 50; // L$ | 73 | const S32 MINIMUM_PRICE_FOR_LISTING = 50; // L$ |
74 | const S32 MATURE_CONTENT = 1; | ||
75 | const S32 NON_MATURE_CONTENT = 2; | ||
76 | const S32 DECLINE_TO_STATE = 0; | ||
74 | 77 | ||
75 | //static | 78 | //static |
76 | std::list<LLPanelClassified*> LLPanelClassified::sAllPanels; | 79 | std::list<LLPanelClassified*> LLPanelClassified::sAllPanels; |
@@ -162,7 +165,7 @@ LLPanelClassified::LLPanelClassified(bool in_finder, bool from_search) | |||
162 | mDescEditor(NULL), | 165 | mDescEditor(NULL), |
163 | mLocationEditor(NULL), | 166 | mLocationEditor(NULL), |
164 | mCategoryCombo(NULL), | 167 | mCategoryCombo(NULL), |
165 | mMatureCheck(NULL), | 168 | mMatureCombo(NULL), |
166 | mAutoRenewCheck(NULL), | 169 | mAutoRenewCheck(NULL), |
167 | mUpdateBtn(NULL), | 170 | mUpdateBtn(NULL), |
168 | mTeleportBtn(NULL), | 171 | mTeleportBtn(NULL), |
@@ -276,13 +279,15 @@ BOOL LLPanelClassified::postBuild() | |||
276 | mCategoryCombo->setCommitCallback(onCommitAny); | 279 | mCategoryCombo->setCommitCallback(onCommitAny); |
277 | mCategoryCombo->setCallbackUserData(this); | 280 | mCategoryCombo->setCallbackUserData(this); |
278 | 281 | ||
279 | mMatureCheck = getChild<LLCheckBoxCtrl>( "classified_mature_check"); | 282 | mMatureCombo = getChild<LLComboBox>( "classified_mature_check"); |
280 | mMatureCheck->setCommitCallback(onCommitAny); | 283 | mMatureCombo->setCurrentByIndex(0); |
281 | mMatureCheck->setCallbackUserData(this); | 284 | mMatureCombo->setCommitCallback(onCommitAny); |
285 | mMatureCombo->setCallbackUserData(this); | ||
282 | if (gAgent.isTeen()) | 286 | if (gAgent.isTeen()) |
283 | { | 287 | { |
284 | // Teens don't get to set mature flag. JC | 288 | // Teens don't get to set mature flag. JC |
285 | mMatureCheck->setVisible(FALSE); | 289 | mMatureCombo->setVisible(FALSE); |
290 | mMatureCombo->setCurrentByIndex(NON_MATURE_CONTENT); | ||
286 | } | 291 | } |
287 | 292 | ||
288 | if (!mInFinder) | 293 | if (!mInFinder) |
@@ -532,7 +537,7 @@ void LLPanelClassified::sendClassifiedInfoUpdate() | |||
532 | msg->addU32Fast(_PREHASH_ParentEstate, 0); | 537 | msg->addU32Fast(_PREHASH_ParentEstate, 0); |
533 | msg->addUUIDFast(_PREHASH_SnapshotID, mSnapshotCtrl->getImageAssetID()); | 538 | msg->addUUIDFast(_PREHASH_SnapshotID, mSnapshotCtrl->getImageAssetID()); |
534 | msg->addVector3dFast(_PREHASH_PosGlobal, mPosGlobal); | 539 | msg->addVector3dFast(_PREHASH_PosGlobal, mPosGlobal); |
535 | BOOL mature = mMatureCheck->get(); | 540 | BOOL mature = mMatureCombo->getCurrentIndex() == MATURE_CONTENT; |
536 | BOOL auto_renew = FALSE; | 541 | BOOL auto_renew = FALSE; |
537 | if (mAutoRenewCheck) | 542 | if (mAutoRenewCheck) |
538 | { | 543 | { |
@@ -656,7 +661,14 @@ void LLPanelClassified::processClassifiedInfoReply(LLMessageSystem *msg, void ** | |||
656 | self->mLocationChanged = false; | 661 | self->mLocationChanged = false; |
657 | 662 | ||
658 | self->mCategoryCombo->setCurrentByIndex(category - 1); | 663 | self->mCategoryCombo->setCurrentByIndex(category - 1); |
659 | self->mMatureCheck->set(mature); | 664 | if(mature) |
665 | { | ||
666 | self->mMatureCombo->setCurrentByIndex(MATURE_CONTENT); | ||
667 | } | ||
668 | else | ||
669 | { | ||
670 | self->mMatureCombo->setCurrentByIndex(NON_MATURE_CONTENT); | ||
671 | } | ||
660 | if (self->mAutoRenewCheck) | 672 | if (self->mAutoRenewCheck) |
661 | { | 673 | { |
662 | self->mAutoRenewCheck->set(auto_renew); | 674 | self->mAutoRenewCheck->set(auto_renew); |
@@ -722,8 +734,8 @@ void LLPanelClassified::refresh() | |||
722 | mCategoryCombo->setEnabled(godlike); | 734 | mCategoryCombo->setEnabled(godlike); |
723 | mCategoryCombo->setVisible(godlike); | 735 | mCategoryCombo->setVisible(godlike); |
724 | 736 | ||
725 | mMatureCheck->setEnabled(godlike); | 737 | mMatureCombo->setEnabled(godlike); |
726 | mMatureCheck->setVisible(godlike); | 738 | mMatureCombo->setVisible(godlike); |
727 | 739 | ||
728 | // Jesse (who is the only one who uses this, as far as we can tell | 740 | // Jesse (who is the only one who uses this, as far as we can tell |
729 | // Says that he does not want a set location button - he has used it | 741 | // Says that he does not want a set location button - he has used it |
@@ -742,7 +754,7 @@ void LLPanelClassified::refresh() | |||
742 | //mPriceEditor->setEnabled(is_self); | 754 | //mPriceEditor->setEnabled(is_self); |
743 | mCategoryCombo->setEnabled(is_self); | 755 | mCategoryCombo->setEnabled(is_self); |
744 | 756 | ||
745 | mMatureCheck->setEnabled(is_self); | 757 | mMatureCombo->setEnabled(is_self); |
746 | 758 | ||
747 | if (mAutoRenewCheck) | 759 | if (mAutoRenewCheck) |
748 | { | 760 | { |
@@ -775,15 +787,60 @@ void LLPanelClassified::onClickUpdate(void* data) | |||
775 | return; | 787 | return; |
776 | }; | 788 | }; |
777 | 789 | ||
790 | // If user has not set mature, do not allow publish | ||
791 | if(self->mMatureCombo->getCurrentIndex() == DECLINE_TO_STATE) | ||
792 | { | ||
793 | LLString::format_map_t args; | ||
794 | gViewerWindow->alertXml("SetClassifiedMature", &callbackConfirmMature, self); | ||
795 | return; | ||
796 | } | ||
797 | |||
798 | // Mature content flag is set, proceed | ||
799 | self->gotMature(); | ||
800 | } | ||
801 | |||
802 | // static | ||
803 | void LLPanelClassified::callbackConfirmMature(S32 option, void* data) | ||
804 | { | ||
805 | LLPanelClassified* self = (LLPanelClassified*)data; | ||
806 | self->confirmMature(option); | ||
807 | } | ||
808 | |||
809 | // invoked from callbackConfirmMature | ||
810 | void LLPanelClassified::confirmMature(S32 option) | ||
811 | { | ||
812 | // 0 == Yes | ||
813 | // 1 == No | ||
814 | // 2 == Cancel | ||
815 | switch(option) | ||
816 | { | ||
817 | case 0: | ||
818 | mMatureCombo->setCurrentByIndex(MATURE_CONTENT); | ||
819 | break; | ||
820 | case 1: | ||
821 | mMatureCombo->setCurrentByIndex(NON_MATURE_CONTENT); | ||
822 | break; | ||
823 | default: | ||
824 | return; | ||
825 | } | ||
826 | |||
827 | // If we got here it means they set a valid value | ||
828 | gotMature(); | ||
829 | } | ||
830 | |||
831 | // Called after we have determined whether this classified has | ||
832 | // mature content or not. | ||
833 | void LLPanelClassified::gotMature() | ||
834 | { | ||
778 | // if already paid for, just do the update | 835 | // if already paid for, just do the update |
779 | if (self->mPaidFor) | 836 | if (mPaidFor) |
780 | { | 837 | { |
781 | callbackConfirmPublish(0, self); | 838 | callbackConfirmPublish(0, this); |
782 | } | 839 | } |
783 | else | 840 | else |
784 | { | 841 | { |
785 | // Ask the user how much they want to pay | 842 | // Ask the user how much they want to pay |
786 | LLFloaterPriceForListing::show( callbackGotPriceForListing, self ); | 843 | LLFloaterPriceForListing::show( callbackGotPriceForListing, this ); |
787 | } | 844 | } |
788 | } | 845 | } |
789 | 846 | ||
@@ -830,8 +887,8 @@ void LLPanelClassified::resetDirty() | |||
830 | mLocationChanged = false; | 887 | mLocationChanged = false; |
831 | if (mCategoryCombo) | 888 | if (mCategoryCombo) |
832 | mCategoryCombo->resetDirty(); | 889 | mCategoryCombo->resetDirty(); |
833 | if (mMatureCheck) | 890 | if (mMatureCombo) |
834 | mMatureCheck->resetDirty(); | 891 | mMatureCombo->resetDirty(); |
835 | if (mAutoRenewCheck) | 892 | if (mAutoRenewCheck) |
836 | mAutoRenewCheck->resetDirty(); | 893 | mAutoRenewCheck->resetDirty(); |
837 | } | 894 | } |
@@ -948,7 +1005,7 @@ BOOL LLPanelClassified::checkDirty() | |||
948 | if ( mLocationEditor ) mDirty |= mLocationEditor->isDirty(); | 1005 | if ( mLocationEditor ) mDirty |= mLocationEditor->isDirty(); |
949 | if ( mLocationChanged ) mDirty |= TRUE; | 1006 | if ( mLocationChanged ) mDirty |= TRUE; |
950 | if ( mCategoryCombo ) mDirty |= mCategoryCombo->isDirty(); | 1007 | if ( mCategoryCombo ) mDirty |= mCategoryCombo->isDirty(); |
951 | if ( mMatureCheck ) mDirty |= mMatureCheck->isDirty(); | 1008 | if ( mMatureCombo ) mDirty |= mMatureCombo->isDirty(); |
952 | if ( mAutoRenewCheck ) mDirty |= mAutoRenewCheck->isDirty(); | 1009 | if ( mAutoRenewCheck ) mDirty |= mAutoRenewCheck->isDirty(); |
953 | 1010 | ||
954 | return mDirty; | 1011 | return mDirty; |
diff --git a/linden/indra/newview/llpanelclassified.h b/linden/indra/newview/llpanelclassified.h index 78f8a90..e4c8f42 100644 --- a/linden/indra/newview/llpanelclassified.h +++ b/linden/indra/newview/llpanelclassified.h | |||
@@ -96,12 +96,17 @@ public: | |||
96 | void sendClassifiedInfoRequest(); | 96 | void sendClassifiedInfoRequest(); |
97 | void sendClassifiedInfoUpdate(); | 97 | void sendClassifiedInfoUpdate(); |
98 | void resetDirty(); | 98 | void resetDirty(); |
99 | void confirmPublish(S32 option); | ||
100 | 99 | ||
101 | static void processClassifiedInfoReply(LLMessageSystem* msg, void**); | 100 | static void processClassifiedInfoReply(LLMessageSystem* msg, void**); |
102 | 101 | ||
102 | // Confirmation dialogs flow in this order | ||
103 | static void callbackConfirmMature(S32 option, void* data); | ||
104 | void confirmMature(S32 option); | ||
105 | void gotMature(); | ||
103 | static void callbackGotPriceForListing(S32 option, LLString text, void* data); | 106 | static void callbackGotPriceForListing(S32 option, LLString text, void* data); |
104 | static void callbackConfirmPublish(S32 option, void* data); | 107 | static void callbackConfirmPublish(S32 option, void* data); |
108 | void confirmPublish(S32 option); | ||
109 | |||
105 | void sendClassifiedClickMessage(const char* type); | 110 | void sendClassifiedClickMessage(const char* type); |
106 | 111 | ||
107 | protected: | 112 | protected: |
@@ -154,7 +159,7 @@ protected: | |||
154 | LLTextEditor* mDescEditor; | 159 | LLTextEditor* mDescEditor; |
155 | LLLineEditor* mLocationEditor; | 160 | LLLineEditor* mLocationEditor; |
156 | LLComboBox* mCategoryCombo; | 161 | LLComboBox* mCategoryCombo; |
157 | LLCheckBoxCtrl* mMatureCheck; | 162 | LLComboBox* mMatureCombo; |
158 | LLCheckBoxCtrl* mAutoRenewCheck; | 163 | LLCheckBoxCtrl* mAutoRenewCheck; |
159 | 164 | ||
160 | LLButton* mUpdateBtn; | 165 | LLButton* mUpdateBtn; |
diff --git a/linden/indra/newview/llpaneldirbrowser.cpp b/linden/indra/newview/llpaneldirbrowser.cpp index 0d359d7..4d82023 100644 --- a/linden/indra/newview/llpaneldirbrowser.cpp +++ b/linden/indra/newview/llpaneldirbrowser.cpp | |||
@@ -600,84 +600,6 @@ void LLPanelDirBrowser::processDirPlacesReply(LLMessageSystem* msg, void**) | |||
600 | } | 600 | } |
601 | 601 | ||
602 | 602 | ||
603 | |||
604 | void LLPanelDirBrowser::processDirPopularReply(LLMessageSystem *msg, void**) | ||
605 | { | ||
606 | LLUUID agent_id; | ||
607 | LLUUID query_id; | ||
608 | LLUUID parcel_id; | ||
609 | char name[MAX_STRING]; /*Flawfinder: ignore*/ | ||
610 | F32 dwell; | ||
611 | |||
612 | msg->getUUID("AgentData", "AgentID", agent_id); | ||
613 | msg->getUUID("QueryData", "QueryID", query_id ); | ||
614 | |||
615 | LLPanelDirBrowser* self; | ||
616 | self = gDirBrowserInstances.getIfThere(query_id); | ||
617 | if (!self) | ||
618 | { | ||
619 | // data from an old query | ||
620 | return; | ||
621 | } | ||
622 | |||
623 | self->mHaveSearchResults = TRUE; | ||
624 | |||
625 | LLCtrlListInterface *list = self->childGetListInterface("results"); | ||
626 | if (!list) return; | ||
627 | |||
628 | if (!list->getCanSelect()) | ||
629 | { | ||
630 | list->operateOnAll(LLCtrlListInterface::OP_DELETE); | ||
631 | self->mResultsContents = LLSD(); | ||
632 | } | ||
633 | |||
634 | S32 i; | ||
635 | S32 count = msg->getNumberOfBlocks("QueryReplies"); | ||
636 | self->mResultsReceived += count; | ||
637 | for (i = 0; i < count; i++) | ||
638 | { | ||
639 | msg->getUUID( "QueryReplies", "ParcelID", parcel_id, i); | ||
640 | msg->getString( "QueryReplies", "Name", MAX_STRING, name, i); | ||
641 | msg->getF32( "QueryReplies", "Dwell", dwell, i); | ||
642 | |||
643 | if (parcel_id.isNull()) | ||
644 | { | ||
645 | continue; | ||
646 | } | ||
647 | |||
648 | LLSD content; | ||
649 | content["type"] = POPULAR_CODE; | ||
650 | content["name"] = name; | ||
651 | |||
652 | LLSD row; | ||
653 | row["id"] = parcel_id; | ||
654 | |||
655 | row["columns"][0]["column"] = "icon"; | ||
656 | row["columns"][0]["type"] = "icon"; | ||
657 | row["columns"][0]["value"] = "icon_popular.tga"; | ||
658 | |||
659 | row["columns"][1]["column"] = "name"; | ||
660 | row["columns"][1]["value"] = name; | ||
661 | row["columns"][1]["font"] = "SANSSERIF"; | ||
662 | |||
663 | LLString buffer = llformat("%.0f", dwell); | ||
664 | row["columns"][2]["column"] = "dwell"; | ||
665 | row["columns"][2]["value"] = buffer; | ||
666 | row["columns"][2]["font"] = "SANSSERIFSMALL"; | ||
667 | |||
668 | list->addElement(row); | ||
669 | self->mResultsContents[parcel_id.asString()] = content; | ||
670 | } | ||
671 | |||
672 | list->sortByColumn(self->mCurrentSortColumn, self->mCurrentSortAscending); | ||
673 | self->updateResultCount(); | ||
674 | |||
675 | // Poke the result received timer | ||
676 | self->mLastResultTimer.reset(); | ||
677 | self->mDidAutoSelect = FALSE; | ||
678 | } | ||
679 | |||
680 | |||
681 | void LLPanelDirBrowser::processDirEventsReply(LLMessageSystem* msg, void**) | 603 | void LLPanelDirBrowser::processDirEventsReply(LLMessageSystem* msg, void**) |
682 | { | 604 | { |
683 | LLUUID agent_id; | 605 | LLUUID agent_id; |
diff --git a/linden/indra/newview/llpaneldirbrowser.h b/linden/indra/newview/llpaneldirbrowser.h index 1f0e879..46d1369 100644 --- a/linden/indra/newview/llpaneldirbrowser.h +++ b/linden/indra/newview/llpaneldirbrowser.h | |||
@@ -116,7 +116,6 @@ public: | |||
116 | static void processDirEventsReply(LLMessageSystem* msg, void**); | 116 | static void processDirEventsReply(LLMessageSystem* msg, void**); |
117 | static void processDirGroupsReply(LLMessageSystem* msg, void**); | 117 | static void processDirGroupsReply(LLMessageSystem* msg, void**); |
118 | static void processDirClassifiedReply(LLMessageSystem* msg, void**); | 118 | static void processDirClassifiedReply(LLMessageSystem* msg, void**); |
119 | static void processDirPopularReply(LLMessageSystem* msg, void**); | ||
120 | static void processDirLandReply(LLMessageSystem *msg, void**); | 119 | static void processDirLandReply(LLMessageSystem *msg, void**); |
121 | 120 | ||
122 | std::string filterShortWords( const std::string source_string, int shortest_word_length, bool& was_filtered ); | 121 | std::string filterShortWords( const std::string source_string, int shortest_word_length, bool& was_filtered ); |
diff --git a/linden/indra/newview/llpaneldirfind.cpp b/linden/indra/newview/llpaneldirfind.cpp index dcda770..9bf71d9 100644 --- a/linden/indra/newview/llpaneldirfind.cpp +++ b/linden/indra/newview/llpaneldirfind.cpp | |||
@@ -68,48 +68,31 @@ | |||
68 | //--------------------------------------------------------------------------- | 68 | //--------------------------------------------------------------------------- |
69 | 69 | ||
70 | class LLPanelDirFindAll | 70 | class LLPanelDirFindAll |
71 | : public LLPanelDirBrowser, | 71 | : public LLPanelDirFind |
72 | public LLWebBrowserCtrlObserver | ||
73 | { | 72 | { |
74 | public: | 73 | public: |
75 | LLPanelDirFindAll(const std::string& name, LLFloaterDirectory* floater); | 74 | LLPanelDirFindAll(const std::string& name, LLFloaterDirectory* floater); |
76 | /*virtual*/ ~LLPanelDirFindAll(); | ||
77 | 75 | ||
78 | /*virtual*/ BOOL postBuild(); | 76 | /*Virtual*/ void search(const std::string& search_text); |
79 | /*virtual*/ void draw(); | ||
80 | |||
81 | void search(const std::string& search_text); | ||
82 | void focus(); | ||
83 | void navigateToDefaultPage(); | ||
84 | |||
85 | private: | ||
86 | static void onClickBack( void* data ); | ||
87 | static void onClickForward( void* data ); | ||
88 | static void onClickHome( void* data ); | ||
89 | static void onClickSearch( void* data ); | ||
90 | static void onCommitSearch(LLUICtrl*, void* data); | ||
91 | |||
92 | static std::string getSearchURLSuffix(bool mature); | ||
93 | |||
94 | /*virtual*/ void onNavigateBegin( const EventType& eventIn ); | ||
95 | /*virtual*/ void onNavigateComplete( const EventType& eventIn ); | ||
96 | // Used to update progress indicator | ||
97 | /*virtual*/ void onLocationChange( const EventType& eventIn ); | ||
98 | // Debugging info to console | ||
99 | |||
100 | private: | ||
101 | LLWebBrowserCtrl* mWebBrowser; | ||
102 | }; | 77 | }; |
103 | 78 | ||
104 | |||
105 | LLPanelDirFindAll::LLPanelDirFindAll(const std::string& name, LLFloaterDirectory* floater) | 79 | LLPanelDirFindAll::LLPanelDirFindAll(const std::string& name, LLFloaterDirectory* floater) |
106 | : LLPanelDirBrowser(name, floater) | 80 | : LLPanelDirFind(name, floater, "find_browser") |
107 | ,mWebBrowser(NULL) | 81 | { |
82 | } | ||
83 | |||
84 | //--------------------------------------------------------------------------- | ||
85 | // LLPanelDirFind - Base class for all browser-based search tabs | ||
86 | //--------------------------------------------------------------------------- | ||
87 | |||
88 | LLPanelDirFind::LLPanelDirFind(const std::string& name, LLFloaterDirectory* floater, const std::string& browser_name) | ||
89 | : LLPanelDirBrowser(name, floater), | ||
90 | mWebBrowser(NULL), | ||
91 | mBrowserName(browser_name) | ||
108 | { | 92 | { |
109 | mMinSearchChars = 3; | ||
110 | } | 93 | } |
111 | 94 | ||
112 | BOOL LLPanelDirFindAll::postBuild() | 95 | BOOL LLPanelDirFind::postBuild() |
113 | { | 96 | { |
114 | LLPanelDirBrowser::postBuild(); | 97 | LLPanelDirBrowser::postBuild(); |
115 | 98 | ||
@@ -121,11 +104,15 @@ BOOL LLPanelDirFindAll::postBuild() | |||
121 | 104 | ||
122 | if (gAgent.isTeen()) | 105 | if (gAgent.isTeen()) |
123 | { | 106 | { |
124 | childSetVisible("mature_check", false); | 107 | // Showcase tab does not have mature checkbox |
125 | childSetValue("mature_check", false); | 108 | if (hasChild("mature_check")) |
109 | { | ||
110 | childSetVisible("mature_check", false); | ||
111 | childSetValue("mature_check", false); | ||
112 | } | ||
126 | } | 113 | } |
127 | 114 | ||
128 | mWebBrowser = getChild<LLWebBrowserCtrl>("find_browser"); | 115 | mWebBrowser = getChild<LLWebBrowserCtrl>(mBrowserName); |
129 | if (mWebBrowser) | 116 | if (mWebBrowser) |
130 | { | 117 | { |
131 | // new pages appear in same window as the results page now | 118 | // new pages appear in same window as the results page now |
@@ -147,14 +134,14 @@ BOOL LLPanelDirFindAll::postBuild() | |||
147 | return TRUE; | 134 | return TRUE; |
148 | } | 135 | } |
149 | 136 | ||
150 | LLPanelDirFindAll::~LLPanelDirFindAll() | 137 | LLPanelDirFind::~LLPanelDirFind() |
151 | { | 138 | { |
152 | if (mWebBrowser) | 139 | if (mWebBrowser) |
153 | mWebBrowser->remObserver(this); | 140 | mWebBrowser->remObserver(this); |
154 | } | 141 | } |
155 | 142 | ||
156 | // virtual | 143 | // virtual |
157 | void LLPanelDirFindAll::draw() | 144 | void LLPanelDirFind::draw() |
158 | { | 145 | { |
159 | // enable/disable buttons depending on state | 146 | // enable/disable buttons depending on state |
160 | if ( mWebBrowser ) | 147 | if ( mWebBrowser ) |
@@ -169,46 +156,25 @@ void LLPanelDirFindAll::draw() | |||
169 | LLPanelDirBrowser::draw(); | 156 | LLPanelDirBrowser::draw(); |
170 | } | 157 | } |
171 | 158 | ||
159 | // When we show any browser-based view, we want to hide all | ||
160 | // the right-side XUI detail panels. | ||
161 | // virtual | ||
162 | void LLPanelDirFind::onVisibilityChange(BOOL new_visibility) | ||
163 | { | ||
164 | if (new_visibility) | ||
165 | { | ||
166 | mFloaterDirectory->hideAllDetailPanels(); | ||
167 | } | ||
168 | LLPanel::onVisibilityChange(new_visibility); | ||
169 | } | ||
170 | |||
172 | void LLPanelDirFindAll::search(const std::string& search_text) | 171 | void LLPanelDirFindAll::search(const std::string& search_text) |
173 | { | 172 | { |
174 | if (!search_text.empty()) | 173 | if (!search_text.empty()) |
175 | { | 174 | { |
176 | // Replace spaces with "+" for use by Google search appliance | ||
177 | // Yes, this actually works for double-spaces | ||
178 | // " foo bar" becomes "+foo++bar" and works fine. JC | ||
179 | std::string search_text_with_plus = search_text; | ||
180 | std::string::iterator it = search_text_with_plus.begin(); | ||
181 | for ( ; it != search_text_with_plus.end(); ++it ) | ||
182 | { | ||
183 | if ( std::isspace( *it ) ) | ||
184 | { | ||
185 | *it = '+'; | ||
186 | } | ||
187 | } | ||
188 | |||
189 | // Our own special set of allowed chars (RFC1738 http://www.ietf.org/rfc/rfc1738.txt) | ||
190 | // Note that "+" is one of them, so we can do "+" addition first. | ||
191 | const char* allowed = | ||
192 | "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" | ||
193 | "0123456789" | ||
194 | "-._~$+!*'()"; | ||
195 | std::string query = LLURI::escape(search_text_with_plus, allowed); | ||
196 | |||
197 | std::string url = gSavedSettings.getString("SearchURLQuery"); | ||
198 | std::string substring = "[QUERY]"; | ||
199 | url.replace(url.find(substring), substring.length(), query); | ||
200 | |||
201 | // replace the collection name with the one selected from the combo box | ||
202 | std::string selected_collection = childGetValue( "Category" ).asString(); | ||
203 | substring = "[COLLECTION]"; | ||
204 | url.replace(url.find(substring), substring.length(), selected_collection); | ||
205 | |||
206 | // Add common parameters (mature, teen, location) | ||
207 | bool mature = childGetValue( "mature_check" ).asBoolean(); | 175 | bool mature = childGetValue( "mature_check" ).asBoolean(); |
208 | url += getSearchURLSuffix(mature); | 176 | std::string selected_collection = childGetValue( "Category" ).asString(); |
209 | 177 | std::string url = buildSearchURL(search_text, selected_collection, mature); | |
210 | llinfos << "url " << url << llendl; | ||
211 | |||
212 | if (mWebBrowser) | 178 | if (mWebBrowser) |
213 | { | 179 | { |
214 | mWebBrowser->navigateTo(url); | 180 | mWebBrowser->navigateTo(url); |
@@ -223,14 +189,14 @@ void LLPanelDirFindAll::search(const std::string& search_text) | |||
223 | childSetText("search_editor", search_text); | 189 | childSetText("search_editor", search_text); |
224 | } | 190 | } |
225 | 191 | ||
226 | void LLPanelDirFindAll::focus() | 192 | void LLPanelDirFind::focus() |
227 | { | 193 | { |
228 | childSetFocus("search_editor"); | 194 | childSetFocus("search_editor"); |
229 | } | 195 | } |
230 | 196 | ||
231 | void LLPanelDirFindAll::navigateToDefaultPage() | 197 | void LLPanelDirFind::navigateToDefaultPage() |
232 | { | 198 | { |
233 | std::string start_url = gSavedSettings.getString("SearchURLDefault"); | 199 | std::string start_url = getString("default_search_page"); |
234 | bool mature = childGetValue( "mature_check" ).asBoolean(); | 200 | bool mature = childGetValue( "mature_check" ).asBoolean(); |
235 | start_url += getSearchURLSuffix( mature ); | 201 | start_url += getSearchURLSuffix( mature ); |
236 | 202 | ||
@@ -241,9 +207,49 @@ void LLPanelDirFindAll::navigateToDefaultPage() | |||
241 | mWebBrowser->navigateTo( start_url ); | 207 | mWebBrowser->navigateTo( start_url ); |
242 | } | 208 | } |
243 | } | 209 | } |
210 | // static | ||
211 | std::string LLPanelDirFind::buildSearchURL(const std::string& search_text, const std::string& collection, bool mature_in) | ||
212 | { | ||
213 | std::string url = gSavedSettings.getString("SearchURLDefault"); | ||
214 | if (!search_text.empty()) | ||
215 | { | ||
216 | // Replace spaces with "+" for use by Google search appliance | ||
217 | // Yes, this actually works for double-spaces | ||
218 | // " foo bar" becomes "+foo++bar" and works fine. JC | ||
219 | std::string search_text_with_plus = search_text; | ||
220 | std::string::iterator it = search_text_with_plus.begin(); | ||
221 | for ( ; it != search_text_with_plus.end(); ++it ) | ||
222 | { | ||
223 | if ( std::isspace( *it ) ) | ||
224 | { | ||
225 | *it = '+'; | ||
226 | } | ||
227 | } | ||
228 | |||
229 | // Our own special set of allowed chars (RFC1738 http://www.ietf.org/rfc/rfc1738.txt) | ||
230 | // Note that "+" is one of them, so we can do "+" addition first. | ||
231 | const char* allowed = | ||
232 | "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" | ||
233 | "0123456789" | ||
234 | "-._~$+!*'()"; | ||
235 | std::string query = LLURI::escape(search_text_with_plus, allowed); | ||
236 | |||
237 | url = gSavedSettings.getString("SearchURLQuery"); | ||
238 | std::string substring = "[QUERY]"; | ||
239 | url.replace(url.find(substring), substring.length(), query); | ||
240 | |||
241 | // replace the collection name with the one selected from the combo box | ||
242 | // std::string selected_collection = childGetValue( "Category" ).asString(); | ||
243 | substring = "[COLLECTION]"; | ||
244 | url.replace(url.find(substring), substring.length(), collection); | ||
244 | 245 | ||
246 | llinfos << "url " << url << llendl; | ||
247 | } | ||
248 | url += getSearchURLSuffix( mature_in ); | ||
249 | return url; | ||
250 | } | ||
245 | // static | 251 | // static |
246 | std::string LLPanelDirFindAll::getSearchURLSuffix(bool mature_in) | 252 | std::string LLPanelDirFind::getSearchURLSuffix(bool mature_in) |
247 | { | 253 | { |
248 | bool mature = mature_in; | 254 | bool mature = mature_in; |
249 | // Teens never get mature results. Explicitly override because | 255 | // Teens never get mature results. Explicitly override because |
@@ -314,9 +320,9 @@ std::string LLPanelDirFindAll::getSearchURLSuffix(bool mature_in) | |||
314 | 320 | ||
315 | 321 | ||
316 | // static | 322 | // static |
317 | void LLPanelDirFindAll::onClickBack( void* data ) | 323 | void LLPanelDirFind::onClickBack( void* data ) |
318 | { | 324 | { |
319 | LLPanelDirFindAll* self = ( LLPanelDirFindAll* )data; | 325 | LLPanelDirFind* self = ( LLPanelDirFind* )data; |
320 | if ( self->mWebBrowser ) | 326 | if ( self->mWebBrowser ) |
321 | { | 327 | { |
322 | self->mWebBrowser->navigateBack(); | 328 | self->mWebBrowser->navigateBack(); |
@@ -324,9 +330,9 @@ void LLPanelDirFindAll::onClickBack( void* data ) | |||
324 | } | 330 | } |
325 | 331 | ||
326 | // static | 332 | // static |
327 | void LLPanelDirFindAll::onClickForward( void* data ) | 333 | void LLPanelDirFind::onClickForward( void* data ) |
328 | { | 334 | { |
329 | LLPanelDirFindAll* self = ( LLPanelDirFindAll* )data; | 335 | LLPanelDirFind* self = ( LLPanelDirFind* )data; |
330 | if ( self->mWebBrowser ) | 336 | if ( self->mWebBrowser ) |
331 | { | 337 | { |
332 | self->mWebBrowser->navigateForward(); | 338 | self->mWebBrowser->navigateForward(); |
@@ -334,9 +340,9 @@ void LLPanelDirFindAll::onClickForward( void* data ) | |||
334 | } | 340 | } |
335 | 341 | ||
336 | // static | 342 | // static |
337 | void LLPanelDirFindAll::onClickHome( void* data ) | 343 | void LLPanelDirFind::onClickHome( void* data ) |
338 | { | 344 | { |
339 | LLPanelDirFindAll* self = ( LLPanelDirFindAll* )data; | 345 | LLPanelDirFind* self = ( LLPanelDirFind* )data; |
340 | if ( self->mWebBrowser ) | 346 | if ( self->mWebBrowser ) |
341 | { | 347 | { |
342 | self->mWebBrowser->navigateHome(); | 348 | self->mWebBrowser->navigateHome(); |
@@ -344,32 +350,32 @@ void LLPanelDirFindAll::onClickHome( void* data ) | |||
344 | } | 350 | } |
345 | 351 | ||
346 | // static | 352 | // static |
347 | void LLPanelDirFindAll::onCommitSearch(LLUICtrl*, void* data) | 353 | void LLPanelDirFind::onCommitSearch(LLUICtrl*, void* data) |
348 | { | 354 | { |
349 | onClickSearch(data); | 355 | onClickSearch(data); |
350 | } | 356 | } |
351 | 357 | ||
352 | // static | 358 | // static |
353 | void LLPanelDirFindAll::onClickSearch(void* data) | 359 | void LLPanelDirFind::onClickSearch(void* data) |
354 | { | 360 | { |
355 | LLPanelDirFindAll* self = ( LLPanelDirFindAll* )data; | 361 | LLPanelDirFind* self = ( LLPanelDirFind* )data; |
356 | LLString search_text = self->childGetText("search_editor"); | 362 | LLString search_text = self->childGetText("search_editor"); |
357 | self->search(search_text); | 363 | self->search(search_text); |
358 | 364 | ||
359 | LLFloaterDirectory::sNewSearchCount++; | 365 | LLFloaterDirectory::sNewSearchCount++; |
360 | } | 366 | } |
361 | 367 | ||
362 | void LLPanelDirFindAll::onNavigateBegin( const EventType& eventIn ) | 368 | void LLPanelDirFind::onNavigateBegin( const EventType& eventIn ) |
363 | { | 369 | { |
364 | childSetText("status_text", getString("loading_text")); | 370 | childSetText("status_text", getString("loading_text")); |
365 | } | 371 | } |
366 | 372 | ||
367 | void LLPanelDirFindAll::onNavigateComplete( const EventType& eventIn ) | 373 | void LLPanelDirFind::onNavigateComplete( const EventType& eventIn ) |
368 | { | 374 | { |
369 | childSetText("status_text", getString("done_text")); | 375 | childSetText("status_text", getString("done_text")); |
370 | } | 376 | } |
371 | 377 | ||
372 | void LLPanelDirFindAll::onLocationChange( const EventType& eventIn ) | 378 | void LLPanelDirFind::onLocationChange( const EventType& eventIn ) |
373 | { | 379 | { |
374 | llinfos << eventIn.getStringValue() << llendl; | 380 | llinfos << eventIn.getStringValue() << llendl; |
375 | } | 381 | } |
@@ -397,121 +403,3 @@ void LLPanelDirFindAllInterface::focus(LLPanelDirFindAll* panel) | |||
397 | panel->focus(); | 403 | panel->focus(); |
398 | } | 404 | } |
399 | 405 | ||
400 | //--------------------------------------------------------------------------- | ||
401 | // LLPanelDirFindAllOld - deprecated if new Google search works out. JC | ||
402 | //--------------------------------------------------------------------------- | ||
403 | |||
404 | LLPanelDirFindAllOld::LLPanelDirFindAllOld(const std::string& name, LLFloaterDirectory* floater) | ||
405 | : LLPanelDirBrowser(name, floater) | ||
406 | { | ||
407 | mMinSearchChars = 3; | ||
408 | } | ||
409 | |||
410 | BOOL LLPanelDirFindAllOld::postBuild() | ||
411 | { | ||
412 | LLPanelDirBrowser::postBuild(); | ||
413 | |||
414 | childSetKeystrokeCallback("name", &LLPanelDirBrowser::onKeystrokeName, this); | ||
415 | |||
416 | childSetAction("Search", onClickSearch, this); | ||
417 | childDisable("Search"); | ||
418 | setDefaultBtn( "Search" ); | ||
419 | |||
420 | return TRUE; | ||
421 | } | ||
422 | |||
423 | LLPanelDirFindAllOld::~LLPanelDirFindAllOld() | ||
424 | { | ||
425 | // Children all cleaned up by default view destructor. | ||
426 | } | ||
427 | |||
428 | // virtual | ||
429 | void LLPanelDirFindAllOld::draw() | ||
430 | { | ||
431 | // You only have a choice if you are mature | ||
432 | childSetVisible("incmature", !gAgent.isTeen()); | ||
433 | childSetValue("incmature", gSavedSettings.getBOOL("ShowMatureFindAll")); | ||
434 | |||
435 | LLPanelDirBrowser::draw(); | ||
436 | } | ||
437 | |||
438 | // static | ||
439 | void LLPanelDirFindAllOld::onCommitScope(LLUICtrl* ctrl, void* data) | ||
440 | { | ||
441 | LLPanelDirFindAllOld* self = (LLPanelDirFindAllOld*)data; | ||
442 | self->setFocus(TRUE); | ||
443 | } | ||
444 | |||
445 | // static | ||
446 | void LLPanelDirFindAllOld::onClickSearch(void *userdata) | ||
447 | { | ||
448 | LLPanelDirFindAllOld *self = (LLPanelDirFindAllOld *)userdata; | ||
449 | |||
450 | if (self->childGetValue("name").asString().length() < self->mMinSearchChars) | ||
451 | { | ||
452 | return; | ||
453 | }; | ||
454 | |||
455 | self->setupNewSearch(); | ||
456 | |||
457 | // Figure out scope | ||
458 | U32 scope = 0x0; | ||
459 | scope |= DFQ_PEOPLE; // people (not just online = 0x01 | 0x02) | ||
460 | // places handled below | ||
461 | scope |= DFQ_EVENTS; // events | ||
462 | scope |= DFQ_GROUPS; // groups | ||
463 | |||
464 | BOOL filter_mature = (!gSavedSettings.getBOOL("ShowMatureFindAll") || | ||
465 | gAgent.isTeen() || | ||
466 | !self->childGetValue("incmature").asBoolean() ); | ||
467 | |||
468 | if ( filter_mature ) | ||
469 | { | ||
470 | scope |= DFQ_PG_SIMS_ONLY; | ||
471 | scope |= DFQ_PG_EVENTS_ONLY; | ||
472 | scope |= DFQ_FILTER_MATURE; | ||
473 | scope |= DFQ_PG_PARCELS_ONLY; | ||
474 | } | ||
475 | |||
476 | // send the message | ||
477 | LLMessageSystem *msg = gMessageSystem; | ||
478 | S32 start_row = 0; | ||
479 | sendDirFindQuery(msg, self->mSearchID, self->childGetValue("name").asString(), scope, start_row); | ||
480 | |||
481 | // Also look up classified ads. JC 12/2005 | ||
482 | BOOL filter_auto_renew = FALSE; | ||
483 | U32 classified_flags = pack_classified_flags(filter_mature, filter_auto_renew); | ||
484 | msg->newMessage("DirClassifiedQuery"); | ||
485 | msg->nextBlock("AgentData"); | ||
486 | msg->addUUID("AgentID", gAgent.getID()); | ||
487 | msg->addUUID("SessionID", gAgent.getSessionID()); | ||
488 | msg->nextBlock("QueryData"); | ||
489 | msg->addUUID("QueryID", self->mSearchID); | ||
490 | msg->addString("QueryText", self->childGetValue("name").asString()); | ||
491 | msg->addU32("QueryFlags", classified_flags); | ||
492 | msg->addU32("Category", 0); // all categories | ||
493 | msg->addS32("QueryStart", 0); | ||
494 | gAgent.sendReliableMessage(); | ||
495 | |||
496 | // Need to use separate find places query because places are | ||
497 | // sent using the more compact DirPlacesReply message. | ||
498 | U32 query_flags = DFQ_DWELL_SORT; | ||
499 | if ( filter_mature ) | ||
500 | { | ||
501 | query_flags |= DFQ_PG_SIMS_ONLY; | ||
502 | query_flags |= DFQ_PG_PARCELS_ONLY; // FWIW, currently DFQ_PG_PARCELS_ONLY is only supported | ||
503 | query_flags |= DFQ_FILTER_MATURE; | ||
504 | } | ||
505 | msg->newMessage("DirPlacesQuery"); | ||
506 | msg->nextBlock("AgentData"); | ||
507 | msg->addUUID("AgentID", gAgent.getID() ); | ||
508 | msg->addUUID("SessionID", gAgent.getSessionID()); | ||
509 | msg->nextBlock("QueryData"); | ||
510 | msg->addUUID("QueryID", self->mSearchID ); | ||
511 | msg->addString("QueryText", self->childGetValue("name").asString()); | ||
512 | msg->addU32("QueryFlags", query_flags ); | ||
513 | msg->addS32("QueryStart", 0 ); // Always get the first 100 when using find ALL | ||
514 | msg->addS8("Category", LLParcel::C_ANY); | ||
515 | msg->addString("SimName", NULL); | ||
516 | gAgent.sendReliableMessage(); | ||
517 | } | ||
diff --git a/linden/indra/newview/llpaneldirfind.h b/linden/indra/newview/llpaneldirfind.h index fdf95d7..2359d62 100644 --- a/linden/indra/newview/llpaneldirfind.h +++ b/linden/indra/newview/llpaneldirfind.h | |||
@@ -33,34 +33,62 @@ | |||
33 | #define LL_LLPANELDIRFIND_H | 33 | #define LL_LLPANELDIRFIND_H |
34 | 34 | ||
35 | #include "llpaneldirbrowser.h" | 35 | #include "llpaneldirbrowser.h" |
36 | #include "llwebbrowserctrl.h" | ||
36 | 37 | ||
37 | class LLUICtrl; | 38 | class LLUICtrl; |
38 | class LLLineEditor; | 39 | class LLLineEditor; |
39 | class LLPanelDirFindAll; | 40 | class LLPanelDirFindAll; |
40 | class LLFloaterDirectory; | 41 | class LLFloaterDirectory; |
42 | class LLWebBrowserCtrlObserver; | ||
41 | 43 | ||
42 | class LLPanelDirFindAllInterface | 44 | // This class in an abstract base class for all new style search widgets. It contains a pointer to a web browser control |
45 | // | ||
46 | class LLPanelDirFind | ||
47 | : public LLPanelDirBrowser, | ||
48 | public LLWebBrowserCtrlObserver | ||
43 | { | 49 | { |
44 | public: | 50 | public: |
45 | static LLPanelDirFindAll* create(LLFloaterDirectory* floater); | 51 | LLPanelDirFind(const std::string& name, LLFloaterDirectory* floater, const std::string& browser_name); |
46 | static void search(LLPanelDirFindAll* panel, const std::string& search_text); | 52 | /*virtual*/ ~LLPanelDirFind(); |
47 | static void focus(LLPanelDirFindAll* panel); | ||
48 | }; | ||
49 | 53 | ||
54 | /*virtual*/ void draw(); | ||
55 | /*virtual*/ BOOL postBuild(); | ||
56 | /*virtual*/ void onVisibilityChange(BOOL new_visibility); | ||
50 | 57 | ||
51 | class LLPanelDirFindAllOld : public LLPanelDirBrowser | 58 | // Pure virtual. Must be implemented |
52 | { | 59 | virtual void search(const std::string& search_text) = 0; |
53 | public: | ||
54 | LLPanelDirFindAllOld(const std::string& name, LLFloaterDirectory* floater); | ||
55 | /*virtual*/ ~LLPanelDirFindAllOld(); | ||
56 | 60 | ||
57 | /*virtual*/ BOOL postBuild(); | 61 | virtual void navigateToDefaultPage(); |
62 | void focus(); | ||
58 | 63 | ||
59 | /*virtual*/ void draw(); | 64 | static std::string buildSearchURL(const std::string& search_text, const std::string& collection, bool mature_in); |
65 | static std::string getSearchURLSuffix(bool mature_in); | ||
60 | 66 | ||
61 | static void onClickSearch(void *userdata); | 67 | private: |
62 | static void onCommitScope(LLUICtrl* ctrl, void* data); | 68 | static void onClickBack( void* data ); |
63 | static void onKeystrokeName(LLLineEditor* line, void* data); | 69 | static void onClickForward( void* data ); |
70 | static void onClickHome( void* data ); | ||
71 | static void onClickSearch( void* data ); | ||
72 | static void onCommitSearch(LLUICtrl*, void* data); | ||
73 | |||
74 | /*virtual*/ void onNavigateBegin( const EventType& eventIn ); | ||
75 | /*virtual*/ void onNavigateComplete( const EventType& eventIn ); | ||
76 | |||
77 | // Used to update progress indicator | ||
78 | /*virtual*/ void onLocationChange( const EventType& eventIn ); | ||
79 | // Debugging info to console | ||
80 | |||
81 | protected: | ||
82 | LLWebBrowserCtrl* mWebBrowser; | ||
83 | std::string mBrowserName; | ||
84 | }; | ||
85 | |||
86 | class LLPanelDirFindAllInterface | ||
87 | { | ||
88 | public: | ||
89 | static LLPanelDirFindAll* create(LLFloaterDirectory* floater); | ||
90 | static void search(LLPanelDirFindAll* panel, const std::string& search_text); | ||
91 | static void focus(LLPanelDirFindAll* panel); | ||
64 | }; | 92 | }; |
65 | 93 | ||
66 | #endif | 94 | #endif |
diff --git a/linden/indra/newview/llpaneldirgroups.cpp b/linden/indra/newview/llpaneldirgroups.cpp index 0a0a14d..b765e99 100644 --- a/linden/indra/newview/llpaneldirgroups.cpp +++ b/linden/indra/newview/llpaneldirgroups.cpp | |||
@@ -33,101 +33,31 @@ | |||
33 | 33 | ||
34 | #include "llpaneldirgroups.h" | 34 | #include "llpaneldirgroups.h" |
35 | 35 | ||
36 | // linden library includes | 36 | #include "llwebbrowserctrl.h" |
37 | #include "llagent.h" | ||
38 | //#include "llfontgl.h" | ||
39 | #include "message.h" | ||
40 | #include "llqueryflags.h" | ||
41 | #include "llviewercontrol.h" | ||
42 | #include "llviewerwindow.h" | ||
43 | |||
44 | // viewer project includes | ||
45 | 37 | ||
46 | LLPanelDirGroups::LLPanelDirGroups(const std::string& name, LLFloaterDirectory* floater) | 38 | LLPanelDirGroups::LLPanelDirGroups(const std::string& name, LLFloaterDirectory* floater) |
47 | : LLPanelDirBrowser(name, floater) | 39 | : LLPanelDirFind(name, floater, "groups_browser") |
48 | { | ||
49 | mMinSearchChars = 3; | ||
50 | } | ||
51 | |||
52 | |||
53 | BOOL LLPanelDirGroups::postBuild() | ||
54 | { | 40 | { |
55 | LLPanelDirBrowser::postBuild(); | ||
56 | |||
57 | childSetKeystrokeCallback("name", &LLPanelDirBrowser::onKeystrokeName, this); | ||
58 | |||
59 | childSetAction("Search", &LLPanelDirBrowser::onClickSearchCore, this); | ||
60 | childDisable("Search"); | ||
61 | setDefaultBtn( "Search" ); | ||
62 | |||
63 | return TRUE; | ||
64 | } | 41 | } |
65 | 42 | ||
66 | LLPanelDirGroups::~LLPanelDirGroups() | ||
67 | { | ||
68 | // Children all cleaned up by default view destructor. | ||
69 | } | ||
70 | 43 | ||
71 | // virtual | 44 | void LLPanelDirGroups::search(const std::string& search_text) |
72 | void LLPanelDirGroups::draw() | ||
73 | { | 45 | { |
74 | // You only have a choice if you are mature | 46 | if (!search_text.empty()) |
75 | childSetVisible("incmature", !gAgent.isTeen()); | ||
76 | childSetValue("incmature", gSavedSettings.getBOOL("ShowMatureGroups")); | ||
77 | |||
78 | LLPanelDirBrowser::draw(); | ||
79 | } | ||
80 | |||
81 | |||
82 | // virtual | ||
83 | void LLPanelDirGroups::performQuery() | ||
84 | { | ||
85 | std::string group_name = childGetValue("name").asString(); | ||
86 | if (group_name.length() < mMinSearchChars) | ||
87 | { | 47 | { |
88 | return; | 48 | bool mature = childGetValue( "mature_check" ).asBoolean(); |
49 | std::string selected_collection = "Groups"; | ||
50 | std::string url = buildSearchURL(search_text, selected_collection, mature); | ||
51 | if (mWebBrowser) | ||
52 | { | ||
53 | mWebBrowser->navigateTo(url); | ||
54 | } | ||
89 | } | 55 | } |
90 | 56 | else | |
91 | // "hi " is three chars but not a long-enough search | ||
92 | std::string query_string = group_name; | ||
93 | LLString::trim( query_string ); | ||
94 | bool query_was_filtered = (query_string != group_name); | ||
95 | |||
96 | // possible we threw away all the short words in the query so check length | ||
97 | if ( query_string.length() < mMinSearchChars ) | ||
98 | { | ||
99 | gViewerWindow->alertXml("SeachFilteredOnShortWordsEmpty"); | ||
100 | return; | ||
101 | }; | ||
102 | |||
103 | // if we filtered something out, display a popup | ||
104 | if ( query_was_filtered ) | ||
105 | { | 57 | { |
106 | LLString::format_map_t args; | 58 | // empty search text |
107 | args["[FINALQUERY]"] = query_string; | 59 | navigateToDefaultPage(); |
108 | gViewerWindow->alertXml("SeachFilteredOnShortWords", args); | ||
109 | }; | ||
110 | |||
111 | setupNewSearch(); | ||
112 | |||
113 | // groups | ||
114 | U32 scope = DFQ_GROUPS; | ||
115 | |||
116 | // Check group mature filter. | ||
117 | if ( !gSavedSettings.getBOOL("ShowMatureGroups") | ||
118 | || gAgent.isTeen() ) | ||
119 | { | ||
120 | scope |= DFQ_FILTER_MATURE; | ||
121 | } | 60 | } |
122 | 61 | ||
123 | mCurrentSortColumn = "score"; | 62 | childSetText("search_editor", search_text); |
124 | mCurrentSortAscending = FALSE; | ||
125 | |||
126 | // send the message | ||
127 | sendDirFindQuery( | ||
128 | gMessageSystem, | ||
129 | mSearchID, | ||
130 | query_string, | ||
131 | scope, | ||
132 | mSearchStart); | ||
133 | } | 63 | } |
diff --git a/linden/indra/newview/llpaneldirgroups.h b/linden/indra/newview/llpaneldirgroups.h index 4d44143..03608e2 100644 --- a/linden/indra/newview/llpaneldirgroups.h +++ b/linden/indra/newview/llpaneldirgroups.h | |||
@@ -32,21 +32,14 @@ | |||
32 | #ifndef LLPANELDIRGROUPS_H | 32 | #ifndef LLPANELDIRGROUPS_H |
33 | #define LLPANELDIRGROUPS_H | 33 | #define LLPANELDIRGROUPS_H |
34 | 34 | ||
35 | #include "llpaneldirbrowser.h" | 35 | #include "llpaneldirfind.h" |
36 | 36 | ||
37 | class LLPanelDirGroups : public LLPanelDirBrowser | 37 | class LLPanelDirGroups : public LLPanelDirFind |
38 | { | 38 | { |
39 | public: | 39 | public: |
40 | LLPanelDirGroups(const std::string& name, LLFloaterDirectory* floater); | 40 | LLPanelDirGroups(const std::string& name, LLFloaterDirectory* floater); |
41 | virtual ~LLPanelDirGroups(); | ||
42 | 41 | ||
43 | /*virtual*/ void draw(); | 42 | /*virtual*/ void search(const std::string& search_text); |
44 | |||
45 | /*virtual*/ BOOL postBuild(); | ||
46 | |||
47 | /*virtual*/ void performQuery(); | ||
48 | |||
49 | static void onClickSearch(void *userdata); | ||
50 | }; | 43 | }; |
51 | 44 | ||
52 | #endif | 45 | #endif |
diff --git a/linden/indra/newview/llpaneldirplaces.cpp b/linden/indra/newview/llpaneldirplaces.cpp index 3e79ec0..3980fb4 100644 --- a/linden/indra/newview/llpaneldirplaces.cpp +++ b/linden/indra/newview/llpaneldirplaces.cpp | |||
@@ -33,161 +33,37 @@ | |||
33 | 33 | ||
34 | #include "llpaneldirplaces.h" | 34 | #include "llpaneldirplaces.h" |
35 | 35 | ||
36 | // linden library includes | 36 | #include "llwebbrowserctrl.h" |
37 | #include "llfontgl.h" | ||
38 | #include "message.h" | ||
39 | #include "lldir.h" | ||
40 | #include "llparcel.h" | ||
41 | #include "llregionflags.h" | ||
42 | #include "llqueryflags.h" | ||
43 | |||
44 | // viewer project includes | ||
45 | #include "llagent.h" | ||
46 | #include "llbutton.h" | ||
47 | #include "llcheckboxctrl.h" | ||
48 | #include "llcombobox.h" | ||
49 | #include "llfloaterdirectory.h" | ||
50 | #include "lllineeditor.h" | ||
51 | #include "llviewerwindow.h" | ||
52 | #include "llpaneldirbrowser.h" | ||
53 | #include "lltextbox.h" | ||
54 | #include "lluiconstants.h" | ||
55 | #include "llviewercontrol.h" | ||
56 | #include "llviewermessage.h" | ||
57 | #include "llworldmap.h" | ||
58 | 37 | ||
59 | LLPanelDirPlaces::LLPanelDirPlaces(const std::string& name, LLFloaterDirectory* floater) | 38 | LLPanelDirPlaces::LLPanelDirPlaces(const std::string& name, LLFloaterDirectory* floater) |
60 | : LLPanelDirBrowser(name, floater) | 39 | : LLPanelDirFind(name, floater, "places_browser") |
61 | { | ||
62 | mMinSearchChars = 3; | ||
63 | } | ||
64 | |||
65 | BOOL LLPanelDirPlaces::postBuild() | ||
66 | { | ||
67 | LLPanelDirBrowser::postBuild(); | ||
68 | |||
69 | childSetKeystrokeCallback("name", &LLPanelDirBrowser::onKeystrokeName, this); | ||
70 | |||
71 | childSetAction("Search", &LLPanelDirBrowser::onClickSearchCore, this); | ||
72 | childDisable("Search"); | ||
73 | |||
74 | mCurrentSortColumn = "dwell"; | ||
75 | mCurrentSortAscending = FALSE; | ||
76 | |||
77 | // Don't prepopulate the places list, as it hurts the database as of 2006-12-04. JC | ||
78 | // initialQuery(); | ||
79 | |||
80 | return TRUE; | ||
81 | } | ||
82 | |||
83 | LLPanelDirPlaces::~LLPanelDirPlaces() | ||
84 | { | 40 | { |
85 | // Children all cleaned up by default view destructor. | ||
86 | } | 41 | } |
87 | 42 | ||
88 | 43 | ||
89 | // virtual | 44 | void LLPanelDirPlaces::search(const std::string& search_text) |
90 | void LLPanelDirPlaces::draw() | ||
91 | { | ||
92 | // You only have a choice if you are mature | ||
93 | childSetVisible("incmature", !gAgent.isTeen()); | ||
94 | childSetValue("incmature", gSavedSettings.getBOOL("ShowMatureSims")); | ||
95 | |||
96 | LLPanelDirBrowser::draw(); | ||
97 | } | ||
98 | |||
99 | // virtual | ||
100 | void LLPanelDirPlaces::performQuery() | ||
101 | { | 45 | { |
102 | LLString place_name = childGetValue("name").asString(); | 46 | if (!search_text.empty()) |
103 | if (place_name.length() < mMinSearchChars) | ||
104 | { | 47 | { |
105 | return; | 48 | bool mature = childGetValue( "mature_check" ).asBoolean(); |
106 | } | 49 | std::string selected_collection = "Places"; |
107 | 50 | std::string url = buildSearchURL(search_text, selected_collection, mature); | |
108 | // "hi " is three chars but not a long-enough search | 51 | if (mWebBrowser) |
109 | std::string query_string = place_name; | 52 | { |
110 | LLString::trim( query_string ); | 53 | mWebBrowser->navigateTo(url); |
111 | bool query_was_filtered = (query_string != place_name); | 54 | } |
112 | |||
113 | // possible we threw away all the short words in the query so check length | ||
114 | if ( query_string.length() < mMinSearchChars ) | ||
115 | { | ||
116 | gViewerWindow->alertXml("SeachFilteredOnShortWordsEmpty"); | ||
117 | return; | ||
118 | }; | ||
119 | |||
120 | // if we filtered something out, display a popup | ||
121 | if ( query_was_filtered ) | ||
122 | { | ||
123 | LLString::format_map_t args; | ||
124 | args["[FINALQUERY]"] = query_string; | ||
125 | gViewerWindow->alertXml("SeachFilteredOnShortWords", args); | ||
126 | }; | ||
127 | |||
128 | LLString catstring = childGetValue("Category").asString(); | ||
129 | |||
130 | // Because LLParcel::C_ANY is -1, must do special check | ||
131 | S32 category = 0; | ||
132 | if (catstring == "any") | ||
133 | { | ||
134 | category = LLParcel::C_ANY; | ||
135 | } | 55 | } |
136 | else | 56 | else |
137 | { | 57 | { |
138 | category = LLParcel::getCategoryFromString(catstring.c_str()); | 58 | // empty search text |
59 | navigateToDefaultPage(); | ||
139 | } | 60 | } |
140 | 61 | ||
141 | BOOL pg_only = !gSavedSettings.getBOOL("ShowMatureSims") | 62 | childSetText("search_editor", search_text); |
142 | || gAgent.isTeen(); | ||
143 | |||
144 | queryCore(query_string, category, pg_only); | ||
145 | } | 63 | } |
146 | 64 | ||
147 | void LLPanelDirPlaces::initialQuery() | 65 | LLPanelDirPlaces::~LLPanelDirPlaces() |
148 | { | ||
149 | // All Linden locations in PG/Mature sims, any name. | ||
150 | const BOOL pg_only = FALSE; | ||
151 | queryCore("", LLParcel::C_LINDEN, pg_only); | ||
152 | } | ||
153 | |||
154 | void LLPanelDirPlaces::queryCore(const LLString& name, | ||
155 | S32 category, | ||
156 | BOOL pg_only) | ||
157 | { | 66 | { |
158 | setupNewSearch(); | 67 | // Children all cleaned up by default view destructor. |
159 | |||
160 | // send the message | ||
161 | U32 flags = 0x0; | ||
162 | |||
163 | if (pg_only) | ||
164 | { | ||
165 | flags |= DFQ_PG_PARCELS_ONLY; | ||
166 | } | ||
167 | |||
168 | // JC: Sorting by dwell severely impacts the performance of the query. | ||
169 | // Instead of sorting on the dataserver, we sort locally once the results | ||
170 | // are received. | ||
171 | // IW: Re-enabled dwell sort based on new 3-character minimum description | ||
172 | // Hopefully we'll move to next-gen Find before this becomes a big problem | ||
173 | |||
174 | flags |= DFQ_DWELL_SORT; | ||
175 | |||
176 | LLMessageSystem* msg = gMessageSystem; | ||
177 | |||
178 | msg->newMessage("DirPlacesQuery"); | ||
179 | msg->nextBlock("AgentData"); | ||
180 | msg->addUUID("AgentID", gAgent.getID()); | ||
181 | msg->addUUID("SessionID", gAgent.getSessionID()); | ||
182 | msg->nextBlock("QueryData"); | ||
183 | msg->addUUID("QueryID", getSearchID()); | ||
184 | msg->addString("QueryText", name); | ||
185 | msg->addU32("QueryFlags", flags); | ||
186 | msg->addS8("Category", (S8)category); | ||
187 | // No longer support queries by region name, too many regions | ||
188 | // for combobox, no easy way to do autocomplete. JC | ||
189 | msg->addString("SimName", ""); | ||
190 | msg->addS32Fast(_PREHASH_QueryStart,mSearchStart); | ||
191 | gAgent.sendReliableMessage(); | ||
192 | } | 68 | } |
193 | 69 | ||
diff --git a/linden/indra/newview/llpaneldirplaces.h b/linden/indra/newview/llpaneldirplaces.h index 7bc2b08..4785f94 100644 --- a/linden/indra/newview/llpaneldirplaces.h +++ b/linden/indra/newview/llpaneldirplaces.h | |||
@@ -32,31 +32,17 @@ | |||
32 | #ifndef LL_LLPANELDIRPLACES_H | 32 | #ifndef LL_LLPANELDIRPLACES_H |
33 | #define LL_LLPANELDIRPLACES_H | 33 | #define LL_LLPANELDIRPLACES_H |
34 | 34 | ||
35 | #include "llpaneldirbrowser.h" | 35 | #include "llpaneldirfind.h" |
36 | 36 | ||
37 | // UI class forward declarations | 37 | // UI class forward declarations |
38 | class LLLineEditor; | ||
39 | 38 | ||
40 | class LLPanelDirPlaces : public LLPanelDirBrowser | 39 | class LLPanelDirPlaces : public LLPanelDirFind |
41 | { | 40 | { |
42 | public: | 41 | public: |
43 | LLPanelDirPlaces(const std::string& name, LLFloaterDirectory* floater); | 42 | LLPanelDirPlaces(const std::string& name, LLFloaterDirectory* floater); |
44 | virtual ~LLPanelDirPlaces(); | 43 | virtual ~LLPanelDirPlaces(); |
45 | 44 | ||
46 | /*virtual*/ void draw(); | 45 | /*virtual*/ void search(const std::string& search_text); |
47 | 46 | ||
48 | virtual BOOL postBuild(); | ||
49 | |||
50 | static void onClickSearch(void *userdata); | ||
51 | static void onKeystrokeName(LLLineEditor* line, void* data); | ||
52 | |||
53 | void performQuery(); | ||
54 | |||
55 | // Initially fill in some data for the panel. | ||
56 | void initialQuery(); | ||
57 | |||
58 | private: | ||
59 | void queryCore(const LLString& name, S32 category, BOOL pg_only); | ||
60 | }; | 47 | }; |
61 | |||
62 | #endif | 48 | #endif |
diff --git a/linden/indra/newview/llpaneldirpopular.cpp b/linden/indra/newview/llpaneldirpopular.cpp index 5a94275..7cfc5b5 100644 --- a/linden/indra/newview/llpaneldirpopular.cpp +++ b/linden/indra/newview/llpaneldirpopular.cpp | |||
@@ -33,102 +33,15 @@ | |||
33 | 33 | ||
34 | #include "llpaneldirpopular.h" | 34 | #include "llpaneldirpopular.h" |
35 | 35 | ||
36 | // linden library includes | ||
37 | #include "llfontgl.h" | ||
38 | #include "message.h" | ||
39 | #include "llqueryflags.h" | ||
40 | |||
41 | // viewer project includes | ||
42 | #include "llagent.h" | ||
43 | #include "llcheckboxctrl.h" | ||
44 | #include "llviewercontrol.h" | ||
45 | #include "lluiconstants.h" | ||
46 | #include "lltextbox.h" | ||
47 | |||
48 | LLPanelDirPopular::LLPanelDirPopular(const std::string& name, LLFloaterDirectory* floater) | 36 | LLPanelDirPopular::LLPanelDirPopular(const std::string& name, LLFloaterDirectory* floater) |
49 | : LLPanelDirBrowser(name, floater), | 37 | : LLPanelDirFind(name, floater, "showcase_browser") |
50 | mRequested(false) | ||
51 | { | ||
52 | } | ||
53 | |||
54 | BOOL LLPanelDirPopular::postBuild() | ||
55 | { | ||
56 | LLPanelDirBrowser::postBuild(); | ||
57 | |||
58 | childSetCommitCallback("incpictures", onCommitAny, this); | ||
59 | childSetCommitCallback("incmature", onCommitAny, this); | ||
60 | |||
61 | mCurrentSortColumn = "dwell"; | ||
62 | mCurrentSortAscending = FALSE; | ||
63 | |||
64 | // Don't request popular until first drawn. JC | ||
65 | // requestPopular(); | ||
66 | |||
67 | return TRUE; | ||
68 | } | ||
69 | |||
70 | LLPanelDirPopular::~LLPanelDirPopular() | ||
71 | { | 38 | { |
72 | // Children all cleaned up by default view destructor. | 39 | // *NOTE: This is now the "Showcase" section |
73 | } | 40 | } |
74 | 41 | ||
75 | |||
76 | // virtual | 42 | // virtual |
77 | void LLPanelDirPopular::draw() | 43 | void LLPanelDirPopular::search(const std::string& search_text) |
78 | { | ||
79 | // You only have a choice if you are mature] | ||
80 | childSetVisible("incmature", !gAgent.isTeen()); | ||
81 | childSetValue("incmature", gSavedSettings.getBOOL("ShowMatureSims")); | ||
82 | |||
83 | LLPanelDirBrowser::draw(); | ||
84 | |||
85 | if (!mRequested) | ||
86 | { | ||
87 | requestPopular(); | ||
88 | mRequested = true; | ||
89 | } | ||
90 | } | ||
91 | |||
92 | |||
93 | void LLPanelDirPopular::requestPopular() | ||
94 | { | ||
95 | LLMessageSystem* msg = gMessageSystem; | ||
96 | BOOL pg_only = !childGetValue("incmature").asBoolean() || gAgent.isTeen(); | ||
97 | BOOL pictures_only = childGetValue("incpictures").asBoolean(); | ||
98 | |||
99 | U32 flags = 0x0; | ||
100 | if (pg_only) | ||
101 | { | ||
102 | flags |= DFQ_PG_SIMS_ONLY; | ||
103 | } | ||
104 | if (pictures_only) | ||
105 | { | ||
106 | flags |= DFQ_PICTURES_ONLY; | ||
107 | } | ||
108 | |||
109 | setupNewSearch(); | ||
110 | |||
111 | msg->newMessage("DirPopularQuery"); | ||
112 | msg->nextBlock("AgentData"); | ||
113 | msg->addUUID("AgentID", gAgent.getID()); | ||
114 | msg->addUUID("SessionID", gAgent.getSessionID()); | ||
115 | msg->nextBlock("QueryData"); | ||
116 | msg->addUUID("QueryID", getSearchID()); | ||
117 | msg->addU32("QueryFlags", flags); | ||
118 | gAgent.sendReliableMessage(); | ||
119 | } | ||
120 | |||
121 | |||
122 | // static | ||
123 | void LLPanelDirPopular::onClickSearch(void* data) | ||
124 | { | ||
125 | LLPanelDirPopular* self = (LLPanelDirPopular*)data; | ||
126 | self->requestPopular(); | ||
127 | } | ||
128 | |||
129 | // static | ||
130 | void LLPanelDirPopular::onCommitAny(LLUICtrl* ctrl, void* data) | ||
131 | { | 44 | { |
132 | LLPanelDirPopular* self = (LLPanelDirPopular*)data; | 45 | // no-op, initial page is loaded during construction and there |
133 | self->requestPopular(); | 46 | // is no search interface, just browse |
134 | } | 47 | } |
diff --git a/linden/indra/newview/llpaneldirpopular.h b/linden/indra/newview/llpaneldirpopular.h index c3f5de3..5f28ba0 100644 --- a/linden/indra/newview/llpaneldirpopular.h +++ b/linden/indra/newview/llpaneldirpopular.h | |||
@@ -32,29 +32,14 @@ | |||
32 | #ifndef LL_LLPANELDIRPOPULAR_H | 32 | #ifndef LL_LLPANELDIRPOPULAR_H |
33 | #define LL_LLPANELDIRPOPULAR_H | 33 | #define LL_LLPANELDIRPOPULAR_H |
34 | 34 | ||
35 | #include "llpaneldirbrowser.h" | 35 | #include "llpaneldirfind.h" |
36 | 36 | ||
37 | class LLUICtrl; | 37 | class LLPanelDirPopular : public LLPanelDirFind |
38 | |||
39 | class LLPanelDirPopular : public LLPanelDirBrowser | ||
40 | { | 38 | { |
41 | public: | 39 | public: |
42 | LLPanelDirPopular(const std::string& name, LLFloaterDirectory* floater); | 40 | LLPanelDirPopular(const std::string& name, LLFloaterDirectory* floater); |
43 | virtual ~LLPanelDirPopular(); | ||
44 | |||
45 | virtual void draw(); | ||
46 | |||
47 | virtual BOOL postBuild(); | ||
48 | 41 | ||
49 | void requestPopular(); | 42 | /*virtual*/ void search(const std::string& search_text); |
50 | |||
51 | protected: | ||
52 | static void onClickSearch(void* data); | ||
53 | static void onCommitAny(LLUICtrl* ctrl, void* data); | ||
54 | |||
55 | private: | ||
56 | bool mRequested; | ||
57 | }; | 43 | }; |
58 | 44 | ||
59 | |||
60 | #endif | 45 | #endif |
diff --git a/linden/indra/newview/llpaneldisplay.cpp b/linden/indra/newview/llpaneldisplay.cpp index e5072c5..cc70f79 100644 --- a/linden/indra/newview/llpaneldisplay.cpp +++ b/linden/indra/newview/llpaneldisplay.cpp | |||
@@ -82,6 +82,8 @@ | |||
82 | // parent | 82 | // parent |
83 | #include "llfloaterpreference.h" | 83 | #include "llfloaterpreference.h" |
84 | 84 | ||
85 | #include <boost/regex.hpp> | ||
86 | |||
85 | const F32 MAX_USER_FAR_CLIP = 512.f; | 87 | const F32 MAX_USER_FAR_CLIP = 512.f; |
86 | const F32 MIN_USER_FAR_CLIP = 64.f; | 88 | const F32 MIN_USER_FAR_CLIP = 64.f; |
87 | 89 | ||
@@ -164,6 +166,8 @@ BOOL LLPanelDisplay::postBuild() | |||
164 | } | 166 | } |
165 | } | 167 | } |
166 | 168 | ||
169 | initWindowSizeControls(); | ||
170 | |||
167 | if (gSavedSettings.getBOOL("FullScreenAutoDetectAspectRatio")) | 171 | if (gSavedSettings.getBOOL("FullScreenAutoDetectAspectRatio")) |
168 | { | 172 | { |
169 | mAspectRatio = gViewerWindow->getDisplayAspectRatio(); | 173 | mAspectRatio = gViewerWindow->getDisplayAspectRatio(); |
@@ -319,6 +323,36 @@ BOOL LLPanelDisplay::postBuild() | |||
319 | return TRUE; | 323 | return TRUE; |
320 | } | 324 | } |
321 | 325 | ||
326 | void LLPanelDisplay::initWindowSizeControls() | ||
327 | { | ||
328 | // Window size | ||
329 | mWindowSizeLabel = getChild<LLTextBox>("WindowSizeLabel"); | ||
330 | mCtrlWindowSize = getChild<LLComboBox>("windowsize combo"); | ||
331 | |||
332 | // Look to see if current window size matches existing window sizes, if so then | ||
333 | // just set the selection value... | ||
334 | const U32 height = gViewerWindow->getWindowDisplayHeight(); | ||
335 | const U32 width = gViewerWindow->getWindowDisplayWidth(); | ||
336 | for (S32 i=0; i < mCtrlWindowSize->getItemCount(); i++) | ||
337 | { | ||
338 | U32 height_test = 0; | ||
339 | U32 width_test = 0; | ||
340 | mCtrlWindowSize->setCurrentByIndex(i); | ||
341 | if (extractWindowSizeFromString(mCtrlWindowSize->getValue().asString().c_str(), width_test, height_test)) | ||
342 | { | ||
343 | if ((height_test == height) && (width_test == width)) | ||
344 | { | ||
345 | return; | ||
346 | } | ||
347 | } | ||
348 | } | ||
349 | // ...otherwise, add a new entry with the current window height/width. | ||
350 | LLUIString resolution_label = getUIString("resolution_format"); | ||
351 | resolution_label.setArg("[RES_X]", llformat("%d", width)); | ||
352 | resolution_label.setArg("[RES_Y]", llformat("%d", height)); | ||
353 | mCtrlWindowSize->add(resolution_label, ADD_TOP); | ||
354 | mCtrlWindowSize->setCurrentByIndex(0); | ||
355 | } | ||
322 | 356 | ||
323 | LLPanelDisplay::~LLPanelDisplay() | 357 | LLPanelDisplay::~LLPanelDisplay() |
324 | { | 358 | { |
@@ -327,6 +361,10 @@ LLPanelDisplay::~LLPanelDisplay() | |||
327 | { | 361 | { |
328 | mCtrlAspectRatio->setCurrentByIndex(i); | 362 | mCtrlAspectRatio->setCurrentByIndex(i); |
329 | } | 363 | } |
364 | for (S32 i = 0; i < mCtrlWindowSize->getItemCount(); i++) | ||
365 | { | ||
366 | mCtrlWindowSize->setCurrentByIndex(i); | ||
367 | } | ||
330 | } | 368 | } |
331 | 369 | ||
332 | void LLPanelDisplay::refresh() | 370 | void LLPanelDisplay::refresh() |
@@ -392,6 +430,7 @@ void LLPanelDisplay::refreshEnabledState() | |||
392 | mAspectRatioLabel1->setVisible(isFullScreen); | 430 | mAspectRatioLabel1->setVisible(isFullScreen); |
393 | mCtrlAutoDetectAspect->setVisible(isFullScreen); | 431 | mCtrlAutoDetectAspect->setVisible(isFullScreen); |
394 | mFullScreenInfo->setVisible(!isFullScreen); | 432 | mFullScreenInfo->setVisible(!isFullScreen); |
433 | mWindowSizeLabel->setVisible(!isFullScreen); | ||
395 | 434 | ||
396 | // disable graphics settings and exit if it's not set to custom | 435 | // disable graphics settings and exit if it's not set to custom |
397 | if(!gSavedSettings.getBOOL("RenderCustomSettings")) | 436 | if(!gSavedSettings.getBOOL("RenderCustomSettings")) |
@@ -656,6 +695,12 @@ void LLPanelDisplay::cancel() | |||
656 | void LLPanelDisplay::apply() | 695 | void LLPanelDisplay::apply() |
657 | { | 696 | { |
658 | applyResolution(); | 697 | applyResolution(); |
698 | |||
699 | // Only set window size if we're not in fullscreen mode | ||
700 | if (mCtrlWindowed->get()) | ||
701 | { | ||
702 | applyWindowSize(); | ||
703 | } | ||
659 | } | 704 | } |
660 | 705 | ||
661 | void LLPanelDisplay::onChangeQuality(LLUICtrl *ctrl, void *data) | 706 | void LLPanelDisplay::onChangeQuality(LLUICtrl *ctrl, void *data) |
@@ -712,7 +757,7 @@ void LLPanelDisplay::applyResolution() | |||
712 | if (mCtrlAspectRatio->getCurrentIndex() == -1) | 757 | if (mCtrlAspectRatio->getCurrentIndex() == -1) |
713 | { | 758 | { |
714 | strncpy(aspect_ratio_text, mCtrlAspectRatio->getSimple().c_str(), sizeof(aspect_ratio_text) -1); /*Flawfinder: ignore*/ | 759 | strncpy(aspect_ratio_text, mCtrlAspectRatio->getSimple().c_str(), sizeof(aspect_ratio_text) -1); /*Flawfinder: ignore*/ |
715 | aspect_ratio_text[sizeof(aspect_ratio_text) -1] = '\0'; | 760 | aspect_ratio_text[sizeof(aspect_ratio_text) -1] = '\0'; |
716 | char *element = strtok(aspect_ratio_text, ":/\\"); | 761 | char *element = strtok(aspect_ratio_text, ":/\\"); |
717 | if (!element) | 762 | if (!element) |
718 | { | 763 | { |
@@ -817,6 +862,36 @@ void LLPanelDisplay::applyResolution() | |||
817 | refresh(); | 862 | refresh(); |
818 | } | 863 | } |
819 | 864 | ||
865 | // Extract from strings of the form "<width> x <height>", e.g. "640 x 480". | ||
866 | bool LLPanelDisplay::extractWindowSizeFromString(const char *sInput, U32 &width, U32 &height) | ||
867 | { | ||
868 | using namespace boost; | ||
869 | cmatch what; | ||
870 | const regex expression("([0-9]+) x ([0-9]+)"); | ||
871 | if (regex_match(sInput, what, expression)) | ||
872 | { | ||
873 | width = atoi(what[1].first); | ||
874 | height = atoi(what[2].first); | ||
875 | return true; | ||
876 | } | ||
877 | |||
878 | width = height = 0; | ||
879 | return false; | ||
880 | } | ||
881 | |||
882 | void LLPanelDisplay::applyWindowSize() | ||
883 | { | ||
884 | if (mCtrlWindowSize->getVisible() && (mCtrlWindowSize->getCurrentIndex() != -1)) | ||
885 | { | ||
886 | U32 width = 0; | ||
887 | U32 height = 0; | ||
888 | if (extractWindowSizeFromString(mCtrlWindowSize->getValue().asString().c_str(), width,height)) | ||
889 | { | ||
890 | LLViewerWindow::movieSize(width, height); | ||
891 | } | ||
892 | } | ||
893 | } | ||
894 | |||
820 | //static | 895 | //static |
821 | void LLPanelDisplay::onCommitWindowedMode(LLUICtrl* ctrl, void *data) | 896 | void LLPanelDisplay::onCommitWindowedMode(LLUICtrl* ctrl, void *data) |
822 | { | 897 | { |
diff --git a/linden/indra/newview/llpaneldisplay.h b/linden/indra/newview/llpaneldisplay.h index cc39f93..e100a18 100644 --- a/linden/indra/newview/llpaneldisplay.h +++ b/linden/indra/newview/llpaneldisplay.h | |||
@@ -33,7 +33,7 @@ | |||
33 | #define LL_LLPANELDISPLAY_H | 33 | #define LL_LLPANELDISPLAY_H |
34 | 34 | ||
35 | #include "llpanel.h" | 35 | #include "llpanel.h" |
36 | 36 | #include "llwindow.h" | |
37 | #include "llcontrol.h" | 37 | #include "llcontrol.h" |
38 | 38 | ||
39 | class LLSlider; | 39 | class LLSlider; |
@@ -72,15 +72,21 @@ public: | |||
72 | void setHiddenGraphicsState(bool isHidden); | 72 | void setHiddenGraphicsState(bool isHidden); |
73 | void apply(); // Apply the changed values. | 73 | void apply(); // Apply the changed values. |
74 | void applyResolution(); | 74 | void applyResolution(); |
75 | void applyWindowSize(); | ||
75 | void cancel(); | 76 | void cancel(); |
76 | 77 | ||
77 | protected: | 78 | protected: |
79 | void initWindowSizeControls(); | ||
80 | bool extractWindowSizeFromString(const char *sInput, U32 &width, U32 &height); | ||
81 | |||
78 | // aspect ratio sliders and boxes | 82 | // aspect ratio sliders and boxes |
79 | LLComboBox *mCtrlFullScreen; // Fullscreen resolution | 83 | LLComboBox *mCtrlFullScreen; // Fullscreen resolution |
80 | LLCheckBoxCtrl *mCtrlWindowed; // windowed mode | ||
81 | LLCheckBoxCtrl *mCtrlAutoDetectAspect; // automatically detect aspect ratio | 84 | LLCheckBoxCtrl *mCtrlAutoDetectAspect; // automatically detect aspect ratio |
82 | LLComboBox *mCtrlAspectRatio; // user provided aspect ratio | 85 | LLComboBox *mCtrlAspectRatio; // user provided aspect ratio |
83 | 86 | ||
87 | LLCheckBoxCtrl *mCtrlWindowed; // windowed mode | ||
88 | LLComboBox *mCtrlWindowSize; // window size for windowed mode | ||
89 | |||
84 | /// performance radio group | 90 | /// performance radio group |
85 | LLSliderCtrl *mCtrlSliderQuality; | 91 | LLSliderCtrl *mCtrlSliderQuality; |
86 | LLCheckBoxCtrl *mCtrlCustomSettings; | 92 | LLCheckBoxCtrl *mCtrlCustomSettings; |
@@ -113,7 +119,8 @@ protected: | |||
113 | LLTextBox *mAspectRatioLabel1; | 119 | LLTextBox *mAspectRatioLabel1; |
114 | LLTextBox *mDisplayResLabel; | 120 | LLTextBox *mDisplayResLabel; |
115 | LLTextEditor *mFullScreenInfo; | 121 | LLTextEditor *mFullScreenInfo; |
116 | 122 | LLTextBox *mWindowSizeLabel; | |
123 | |||
117 | LLTextBox *mShaderText; | 124 | LLTextBox *mShaderText; |
118 | LLTextBox *mReflectionText; | 125 | LLTextBox *mReflectionText; |
119 | LLTextBox *mAvatarText; | 126 | LLTextBox *mAvatarText; |
diff --git a/linden/indra/newview/llpanelgroupgeneral.cpp b/linden/indra/newview/llpanelgroupgeneral.cpp index 1709ad2..a7eac37 100644 --- a/linden/indra/newview/llpanelgroupgeneral.cpp +++ b/linden/indra/newview/llpanelgroupgeneral.cpp | |||
@@ -54,6 +54,11 @@ | |||
54 | #include "lltexturectrl.h" | 54 | #include "lltexturectrl.h" |
55 | #include "llviewerwindow.h" | 55 | #include "llviewerwindow.h" |
56 | 56 | ||
57 | // consts | ||
58 | const S32 MATURE_CONTENT = 1; | ||
59 | const S32 NON_MATURE_CONTENT = 2; | ||
60 | const S32 DECLINE_TO_STATE = 0; | ||
61 | |||
57 | // static | 62 | // static |
58 | void* LLPanelGroupGeneral::createTab(void* data) | 63 | void* LLPanelGroupGeneral::createTab(void* data) |
59 | { | 64 | { |
@@ -76,7 +81,7 @@ LLPanelGroupGeneral::LLPanelGroupGeneral(const std::string& name, | |||
76 | mBtnJoinGroup(NULL), | 81 | mBtnJoinGroup(NULL), |
77 | mListVisibleMembers(NULL), | 82 | mListVisibleMembers(NULL), |
78 | mCtrlShowInGroupList(NULL), | 83 | mCtrlShowInGroupList(NULL), |
79 | mCtrlMature(NULL), | 84 | mComboMature(NULL), |
80 | mCtrlOpenEnrollment(NULL), | 85 | mCtrlOpenEnrollment(NULL), |
81 | mCtrlEnrollmentFee(NULL), | 86 | mCtrlEnrollmentFee(NULL), |
82 | mSpinEnrollmentFee(NULL), | 87 | mSpinEnrollmentFee(NULL), |
@@ -156,14 +161,19 @@ BOOL LLPanelGroupGeneral::postBuild() | |||
156 | mCtrlShowInGroupList->setCallbackUserData(this); | 161 | mCtrlShowInGroupList->setCallbackUserData(this); |
157 | } | 162 | } |
158 | 163 | ||
159 | mCtrlMature = getChild<LLCheckBoxCtrl>("mature", recurse); | 164 | mComboMature = getChild<LLComboBox>("group_mature_check", recurse); |
160 | if (mCtrlMature) | 165 | if(mComboMature) |
161 | { | 166 | { |
162 | mCtrlMature->setCommitCallback(onCommitAny); | 167 | mComboMature->setCurrentByIndex(0); |
163 | mCtrlMature->setCallbackUserData(this); | 168 | mComboMature->setCommitCallback(onCommitAny); |
164 | mCtrlMature->setVisible( !gAgent.isTeen() ); | 169 | mComboMature->setCallbackUserData(this); |
170 | if (gAgent.isTeen()) | ||
171 | { | ||
172 | // Teens don't get to set mature flag. JC | ||
173 | mComboMature->setVisible(FALSE); | ||
174 | mComboMature->setCurrentByIndex(NON_MATURE_CONTENT); | ||
175 | } | ||
165 | } | 176 | } |
166 | |||
167 | mCtrlOpenEnrollment = getChild<LLCheckBoxCtrl>("open_enrollement", recurse); | 177 | mCtrlOpenEnrollment = getChild<LLCheckBoxCtrl>("open_enrollement", recurse); |
168 | if (mCtrlOpenEnrollment) | 178 | if (mCtrlOpenEnrollment) |
169 | { | 179 | { |
@@ -231,7 +241,7 @@ BOOL LLPanelGroupGeneral::postBuild() | |||
231 | mEditCharter->setEnabled(TRUE); | 241 | mEditCharter->setEnabled(TRUE); |
232 | 242 | ||
233 | mCtrlShowInGroupList->setEnabled(TRUE); | 243 | mCtrlShowInGroupList->setEnabled(TRUE); |
234 | mCtrlMature->setEnabled(TRUE); | 244 | mComboMature->setEnabled(TRUE); |
235 | mCtrlOpenEnrollment->setEnabled(TRUE); | 245 | mCtrlOpenEnrollment->setEnabled(TRUE); |
236 | mCtrlEnrollmentFee->setEnabled(TRUE); | 246 | mCtrlEnrollmentFee->setEnabled(TRUE); |
237 | mSpinEnrollmentFee->setEnabled(TRUE); | 247 | mSpinEnrollmentFee->setEnabled(TRUE); |
@@ -429,6 +439,16 @@ bool LLPanelGroupGeneral::apply(LLString& mesg) | |||
429 | if (has_power_in_group || mGroupID.isNull()) | 439 | if (has_power_in_group || mGroupID.isNull()) |
430 | { | 440 | { |
431 | llinfos << "LLPanelGroupGeneral::apply" << llendl; | 441 | llinfos << "LLPanelGroupGeneral::apply" << llendl; |
442 | |||
443 | // Check to make sure mature has been set | ||
444 | if(mComboMature->getCurrentIndex() == DECLINE_TO_STATE) | ||
445 | { | ||
446 | LLString::format_map_t args; | ||
447 | gViewerWindow->alertXml("SetGroupMature", &callbackConfirmMatureApply, | ||
448 | new LLHandle<LLPanel>(getHandle())); | ||
449 | return false; | ||
450 | } | ||
451 | |||
432 | if (mGroupID.isNull()) | 452 | if (mGroupID.isNull()) |
433 | { | 453 | { |
434 | // Validate the group name length. | 454 | // Validate the group name length. |
@@ -446,13 +466,12 @@ bool LLPanelGroupGeneral::apply(LLString& mesg) | |||
446 | LLString::format_map_t args; | 466 | LLString::format_map_t args; |
447 | args["[MESSAGE]"] = mConfirmGroupCreateStr; | 467 | args["[MESSAGE]"] = mConfirmGroupCreateStr; |
448 | gViewerWindow->alertXml("GenericAlertYesCancel", args, | 468 | gViewerWindow->alertXml("GenericAlertYesCancel", args, |
449 | createGroupCallback,new LLHandle<LLPanel>(getHandle())); | 469 | createGroupCallback, new LLHandle<LLPanel>(getHandle()) ); |
450 | 470 | ||
451 | return false; | 471 | return false; |
452 | } | 472 | } |
453 | 473 | ||
454 | LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID); | 474 | LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID); |
455 | |||
456 | if (!gdatap) | 475 | if (!gdatap) |
457 | { | 476 | { |
458 | mesg = "No group data found for group "; | 477 | mesg = "No group data found for group "; |
@@ -468,11 +487,12 @@ bool LLPanelGroupGeneral::apply(LLString& mesg) | |||
468 | { | 487 | { |
469 | if (mEditCharter) gdatap->mCharter = mEditCharter->getText(); | 488 | if (mEditCharter) gdatap->mCharter = mEditCharter->getText(); |
470 | if (mInsignia) gdatap->mInsigniaID = mInsignia->getImageAssetID(); | 489 | if (mInsignia) gdatap->mInsigniaID = mInsignia->getImageAssetID(); |
471 | if (mCtrlMature) | 490 | if (mComboMature) |
472 | { | 491 | { |
473 | if (!gAgent.isTeen()) | 492 | if (!gAgent.isTeen()) |
474 | { | 493 | { |
475 | gdatap->mMaturePublish = mCtrlMature->get(); | 494 | gdatap->mMaturePublish = |
495 | mComboMature->getCurrentIndex() == MATURE_CONTENT; | ||
476 | } | 496 | } |
477 | else | 497 | else |
478 | { | 498 | { |
@@ -523,6 +543,42 @@ void LLPanelGroupGeneral::cancel() | |||
523 | notifyObservers(); | 543 | notifyObservers(); |
524 | } | 544 | } |
525 | 545 | ||
546 | |||
547 | // static | ||
548 | void LLPanelGroupGeneral::callbackConfirmMatureApply(S32 option, void* data) | ||
549 | { | ||
550 | LLHandle<LLPanel>* handlep = (LLHandle<LLPanel>*)data; | ||
551 | LLPanelGroupGeneral* self = dynamic_cast<LLPanelGroupGeneral*>(handlep->get()); | ||
552 | delete handlep; | ||
553 | if (self) | ||
554 | { | ||
555 | self->confirmMatureApply(option); | ||
556 | } | ||
557 | } | ||
558 | |||
559 | // invoked from callbackConfirmMature | ||
560 | void LLPanelGroupGeneral::confirmMatureApply(S32 option) | ||
561 | { | ||
562 | // 0 == Yes | ||
563 | // 1 == No | ||
564 | // 2 == Cancel | ||
565 | switch(option) | ||
566 | { | ||
567 | case 0: | ||
568 | mComboMature->setCurrentByIndex(MATURE_CONTENT); | ||
569 | break; | ||
570 | case 1: | ||
571 | mComboMature->setCurrentByIndex(NON_MATURE_CONTENT); | ||
572 | break; | ||
573 | default: | ||
574 | return; | ||
575 | } | ||
576 | |||
577 | // If we got here it means they set a valid value | ||
578 | LLString mesg = ""; | ||
579 | apply(mesg); | ||
580 | } | ||
581 | |||
526 | // static | 582 | // static |
527 | void LLPanelGroupGeneral::createGroupCallback(S32 option, void* userdata) | 583 | void LLPanelGroupGeneral::createGroupCallback(S32 option, void* userdata) |
528 | { | 584 | { |
@@ -547,7 +603,7 @@ void LLPanelGroupGeneral::createGroupCallback(S32 option, void* userdata) | |||
547 | enrollment_fee, | 603 | enrollment_fee, |
548 | self->mCtrlOpenEnrollment->get(), | 604 | self->mCtrlOpenEnrollment->get(), |
549 | false, | 605 | false, |
550 | self->mCtrlMature->get()); | 606 | self->mComboMature->getCurrentIndex() == MATURE_CONTENT); |
551 | 607 | ||
552 | } | 608 | } |
553 | break; | 609 | break; |
@@ -632,11 +688,18 @@ void LLPanelGroupGeneral::update(LLGroupChange gc) | |||
632 | mCtrlShowInGroupList->set(gdatap->mShowInList); | 688 | mCtrlShowInGroupList->set(gdatap->mShowInList); |
633 | mCtrlShowInGroupList->setEnabled(mAllowEdit && can_change_ident); | 689 | mCtrlShowInGroupList->setEnabled(mAllowEdit && can_change_ident); |
634 | } | 690 | } |
635 | if (mCtrlMature) | 691 | if (mComboMature) |
636 | { | 692 | { |
637 | mCtrlMature->set(gdatap->mMaturePublish); | 693 | if(gdatap->mMaturePublish) |
638 | mCtrlMature->setEnabled(mAllowEdit && can_change_ident); | 694 | { |
639 | mCtrlMature->setVisible( !gAgent.isTeen() ); | 695 | mComboMature->setCurrentByIndex(MATURE_CONTENT); |
696 | } | ||
697 | else | ||
698 | { | ||
699 | mComboMature->setCurrentByIndex(NON_MATURE_CONTENT); | ||
700 | } | ||
701 | mComboMature->setEnabled(mAllowEdit && can_change_ident); | ||
702 | mComboMature->setVisible( !gAgent.isTeen() ); | ||
640 | } | 703 | } |
641 | if (mCtrlOpenEnrollment) | 704 | if (mCtrlOpenEnrollment) |
642 | { | 705 | { |
@@ -820,7 +883,7 @@ void LLPanelGroupGeneral::updateChanged() | |||
820 | mInsignia, | 883 | mInsignia, |
821 | mEditCharter, | 884 | mEditCharter, |
822 | mCtrlShowInGroupList, | 885 | mCtrlShowInGroupList, |
823 | mCtrlMature, | 886 | mComboMature, |
824 | mCtrlOpenEnrollment, | 887 | mCtrlOpenEnrollment, |
825 | mCtrlEnrollmentFee, | 888 | mCtrlEnrollmentFee, |
826 | mSpinEnrollmentFee, | 889 | mSpinEnrollmentFee, |
diff --git a/linden/indra/newview/llpanelgroupgeneral.h b/linden/indra/newview/llpanelgroupgeneral.h index daf7bfa..169fcff 100644 --- a/linden/indra/newview/llpanelgroupgeneral.h +++ b/linden/indra/newview/llpanelgroupgeneral.h | |||
@@ -58,6 +58,7 @@ public: | |||
58 | virtual bool apply(LLString& mesg); | 58 | virtual bool apply(LLString& mesg); |
59 | virtual void cancel(); | 59 | virtual void cancel(); |
60 | static void createGroupCallback(S32 option, void* user_data); | 60 | static void createGroupCallback(S32 option, void* user_data); |
61 | static void callbackConfirmMatureApply(S32 option, void* data); | ||
61 | 62 | ||
62 | virtual void update(LLGroupChange gc); | 63 | virtual void update(LLGroupChange gc); |
63 | 64 | ||
@@ -80,6 +81,7 @@ private: | |||
80 | 81 | ||
81 | void updateMembers(); | 82 | void updateMembers(); |
82 | void updateChanged(); | 83 | void updateChanged(); |
84 | void confirmMatureApply(S32 option); | ||
83 | 85 | ||
84 | BOOL mPendingMemberUpdate; | 86 | BOOL mPendingMemberUpdate; |
85 | BOOL mChanged; | 87 | BOOL mChanged; |
@@ -101,7 +103,6 @@ private: | |||
101 | 103 | ||
102 | // Options (include any updates in updateChanged) | 104 | // Options (include any updates in updateChanged) |
103 | LLCheckBoxCtrl *mCtrlShowInGroupList; | 105 | LLCheckBoxCtrl *mCtrlShowInGroupList; |
104 | LLCheckBoxCtrl *mCtrlMature; | ||
105 | LLCheckBoxCtrl *mCtrlOpenEnrollment; | 106 | LLCheckBoxCtrl *mCtrlOpenEnrollment; |
106 | LLCheckBoxCtrl *mCtrlEnrollmentFee; | 107 | LLCheckBoxCtrl *mCtrlEnrollmentFee; |
107 | LLSpinCtrl *mSpinEnrollmentFee; | 108 | LLSpinCtrl *mSpinEnrollmentFee; |
@@ -109,6 +110,7 @@ private: | |||
109 | LLCheckBoxCtrl *mCtrlListGroup; | 110 | LLCheckBoxCtrl *mCtrlListGroup; |
110 | LLTextBox *mActiveTitleLabel; | 111 | LLTextBox *mActiveTitleLabel; |
111 | LLComboBox *mComboActiveTitle; | 112 | LLComboBox *mComboActiveTitle; |
113 | LLComboBox *mComboMature; | ||
112 | 114 | ||
113 | LLGroupMgrGroupData::member_list_t::iterator mMemberProgress; | 115 | LLGroupMgrGroupData::member_list_t::iterator mMemberProgress; |
114 | }; | 116 | }; |
diff --git a/linden/indra/newview/llpanellogin.cpp b/linden/indra/newview/llpanellogin.cpp index 9fcd73d..334e9f4 100644 --- a/linden/indra/newview/llpanellogin.cpp +++ b/linden/indra/newview/llpanellogin.cpp | |||
@@ -133,83 +133,77 @@ void LLLoginHandler::parse(const LLSD& queryMap) | |||
133 | mFirstName = queryMap["first_name"].asString(); | 133 | mFirstName = queryMap["first_name"].asString(); |
134 | mLastName = queryMap["last_name"].asString(); | 134 | mLastName = queryMap["last_name"].asString(); |
135 | 135 | ||
136 | EGridInfo grid_choice = GRID_INFO_NONE; | ||
136 | if (queryMap["grid"].asString() == "aditi") | 137 | if (queryMap["grid"].asString() == "aditi") |
137 | { | 138 | { |
138 | gGridChoice = GRID_INFO_ADITI; | 139 | grid_choice = GRID_INFO_ADITI; |
139 | } | 140 | } |
140 | else if (queryMap["grid"].asString() == "agni") | 141 | else if (queryMap["grid"].asString() == "agni") |
141 | { | 142 | { |
142 | gGridChoice = GRID_INFO_AGNI; | 143 | grid_choice = GRID_INFO_AGNI; |
143 | } | 144 | } |
144 | else if (queryMap["grid"].asString() == "siva") | 145 | else if (queryMap["grid"].asString() == "siva") |
145 | { | 146 | { |
146 | gGridChoice = GRID_INFO_SIVA; | 147 | grid_choice = GRID_INFO_SIVA; |
147 | } | 148 | } |
148 | else if (queryMap["grid"].asString() == "durga") | 149 | else if (queryMap["grid"].asString() == "durga") |
149 | { | 150 | { |
150 | gGridChoice = GRID_INFO_DURGA; | 151 | grid_choice = GRID_INFO_DURGA; |
151 | } | 152 | } |
152 | else if (queryMap["grid"].asString() == "shakti") | 153 | else if (queryMap["grid"].asString() == "shakti") |
153 | { | 154 | { |
154 | gGridChoice = GRID_INFO_SHAKTI; | 155 | grid_choice = GRID_INFO_SHAKTI; |
155 | } | 156 | } |
156 | else if (queryMap["grid"].asString() == "soma") | 157 | else if (queryMap["grid"].asString() == "soma") |
157 | { | 158 | { |
158 | gGridChoice = GRID_INFO_SOMA; | 159 | grid_choice = GRID_INFO_SOMA; |
159 | } | 160 | } |
160 | else if (queryMap["grid"].asString() == "ganga") | 161 | else if (queryMap["grid"].asString() == "ganga") |
161 | { | 162 | { |
162 | gGridChoice = GRID_INFO_GANGA; | 163 | grid_choice = GRID_INFO_GANGA; |
163 | } | 164 | } |
164 | else if (queryMap["grid"].asString() == "vaak") | 165 | else if (queryMap["grid"].asString() == "vaak") |
165 | { | 166 | { |
166 | gGridChoice = GRID_INFO_VAAK; | 167 | grid_choice = GRID_INFO_VAAK; |
167 | } | 168 | } |
168 | else if (queryMap["grid"].asString() == "uma") | 169 | else if (queryMap["grid"].asString() == "uma") |
169 | { | 170 | { |
170 | gGridChoice = GRID_INFO_UMA; | 171 | grid_choice = GRID_INFO_UMA; |
171 | } | 172 | } |
172 | else if (queryMap["grid"].asString() == "mohini") | 173 | else if (queryMap["grid"].asString() == "mohini") |
173 | { | 174 | { |
174 | gGridChoice = GRID_INFO_MOHINI; | 175 | grid_choice = GRID_INFO_MOHINI; |
175 | } | 176 | } |
176 | else if (queryMap["grid"].asString() == "yami") | 177 | else if (queryMap["grid"].asString() == "yami") |
177 | { | 178 | { |
178 | gGridChoice = GRID_INFO_YAMI; | 179 | grid_choice = GRID_INFO_YAMI; |
179 | } | 180 | } |
180 | else if (queryMap["grid"].asString() == "nandi") | 181 | else if (queryMap["grid"].asString() == "nandi") |
181 | { | 182 | { |
182 | gGridChoice = GRID_INFO_NANDI; | 183 | grid_choice = GRID_INFO_NANDI; |
183 | } | 184 | } |
184 | else if (queryMap["grid"].asString() == "mitra") | 185 | else if (queryMap["grid"].asString() == "mitra") |
185 | { | 186 | { |
186 | gGridChoice = GRID_INFO_MITRA; | 187 | grid_choice = GRID_INFO_MITRA; |
187 | } | 188 | } |
188 | else if (queryMap["grid"].asString() == "radha") | 189 | else if (queryMap["grid"].asString() == "radha") |
189 | { | 190 | { |
190 | gGridChoice = GRID_INFO_RADHA; | 191 | grid_choice = GRID_INFO_RADHA; |
191 | } | 192 | } |
192 | else if (queryMap["grid"].asString() == "ravi") | 193 | else if (queryMap["grid"].asString() == "ravi") |
193 | { | 194 | { |
194 | gGridChoice = GRID_INFO_RAVI; | 195 | grid_choice = GRID_INFO_RAVI; |
195 | } | 196 | } |
196 | else if (queryMap["grid"].asString() == "aruna") | 197 | else if (queryMap["grid"].asString() == "aruna") |
197 | { | 198 | { |
198 | gGridChoice = GRID_INFO_ARUNA; | 199 | grid_choice = GRID_INFO_ARUNA; |
199 | } | 200 | } |
200 | #if !LL_RELEASE_FOR_DOWNLOAD | 201 | |
201 | if (gGridChoice > GRID_INFO_NONE && gGridChoice < GRID_INFO_LOCAL) | 202 | if(grid_choice != GRID_INFO_NONE) |
202 | { | 203 | { |
203 | gSavedSettings.setS32("ServerChoice", gGridChoice); | 204 | LLViewerLogin::getInstance()->setGridChoice(grid_choice); |
204 | } | 205 | } |
205 | #endif | 206 | |
206 | |||
207 | if (LLAppViewer::instance()->getLoginURIs().size() == 0) | ||
208 | { | ||
209 | gGridName = gGridInfo[gGridChoice].mName; /* Flawfinder: ignore */ | ||
210 | LLAppViewer::instance()->resetURIs(); | ||
211 | } | ||
212 | |||
213 | LLString startLocation = queryMap["location"].asString(); | 207 | LLString startLocation = queryMap["location"].asString(); |
214 | 208 | ||
215 | if (startLocation == "specify") | 209 | if (startLocation == "specify") |
@@ -794,7 +788,7 @@ BOOL LLPanelLogin::getServer(LLString &server, S32 &domain_name) | |||
794 | 788 | ||
795 | if ((S32)GRID_INFO_OTHER == domain_name) | 789 | if ((S32)GRID_INFO_OTHER == domain_name) |
796 | { | 790 | { |
797 | server = gGridName; | 791 | server = LLViewerLogin::getInstance()->getGridLabel(); |
798 | } | 792 | } |
799 | } | 793 | } |
800 | else | 794 | else |
@@ -942,20 +936,9 @@ void LLPanelLogin::loadLoginPage() | |||
942 | LLString grid; | 936 | LLString grid; |
943 | S32 grid_index; | 937 | S32 grid_index; |
944 | getServer( grid, grid_index ); | 938 | getServer( grid, grid_index ); |
945 | if( grid_index != (S32)GRID_INFO_OTHER ) | ||
946 | { | ||
947 | grid = gGridInfo[grid_index].mLabel; | ||
948 | } | ||
949 | 939 | ||
950 | if(gGridChoice != (EGridInfo)grid_index) | 940 | gViewerWindow->setMenuBackgroundColor(false, !LLViewerLogin::getInstance()->isInProductionGrid()); |
951 | { | 941 | gLoginMenuBarView->setBackgroundColor(gMenuBarView->getBackgroundColor()); |
952 | LLAppViewer::instance()->resetURIs(); | ||
953 | gGridChoice = (EGridInfo)grid_index; | ||
954 | gSavedSettings.setString("GridChoice", gGridInfo[gGridChoice].mLabel); | ||
955 | gViewerWindow->setMenuBackgroundColor(false, | ||
956 | !LLAppViewer::instance()->isInProductionGrid()); | ||
957 | gLoginMenuBarView->setBackgroundColor(gMenuBarView->getBackgroundColor()); | ||
958 | } | ||
959 | 942 | ||
960 | char* curl_grid = curl_escape(grid.c_str(), 0); | 943 | char* curl_grid = curl_escape(grid.c_str(), 0); |
961 | oStr << "&grid=" << curl_grid; | 944 | oStr << "&grid=" << curl_grid; |
@@ -1087,15 +1070,6 @@ void LLPanelLogin::onClickConnect(void *) | |||
1087 | if (!first.empty() && !last.empty()) | 1070 | if (!first.empty() && !last.empty()) |
1088 | { | 1071 | { |
1089 | // has both first and last name typed | 1072 | // has both first and last name typed |
1090 | |||
1091 | // store off custom server entry, if currently selected | ||
1092 | LLComboBox* combo = sInstance->getChild<LLComboBox>("server_combo"); | ||
1093 | S32 selected_server = combo->getValue(); | ||
1094 | if (selected_server == GRID_INFO_NONE) | ||
1095 | { | ||
1096 | LLString custom_server = combo->getValue().asString(); | ||
1097 | gSavedSettings.setString("CustomServer", custom_server); | ||
1098 | } | ||
1099 | sInstance->mCallback(0, sInstance->mCallbackData); | 1073 | sInstance->mCallback(0, sInstance->mCallbackData); |
1100 | } | 1074 | } |
1101 | else | 1075 | else |
@@ -1180,6 +1154,26 @@ void LLPanelLogin::onPassKey(LLLineEditor* caller, void* user_data) | |||
1180 | // static | 1154 | // static |
1181 | void LLPanelLogin::onSelectServer(LLUICtrl*, void*) | 1155 | void LLPanelLogin::onSelectServer(LLUICtrl*, void*) |
1182 | { | 1156 | { |
1157 | // The user twiddled with the grid choice ui. | ||
1158 | // apply the selection to the grid setting. | ||
1159 | LLString grid; | ||
1160 | S32 grid_index; | ||
1161 | getServer( grid, grid_index ); | ||
1162 | |||
1163 | // This new seelction will override preset uris | ||
1164 | // from the command line. | ||
1165 | LLViewerLogin* vl = LLViewerLogin::getInstance(); | ||
1166 | vl->resetURIs(); | ||
1167 | if(grid_index != GRID_INFO_OTHER) | ||
1168 | { | ||
1169 | vl->setGridChoice((EGridInfo)grid_index); | ||
1170 | grid = vl->getGridLabel(); | ||
1171 | } | ||
1172 | else | ||
1173 | { | ||
1174 | vl->setGridChoice(grid); | ||
1175 | } | ||
1176 | |||
1183 | // grid changed so show new splash screen (possibly) | 1177 | // grid changed so show new splash screen (possibly) |
1184 | loadLoginPage(); | 1178 | loadLoginPage(); |
1185 | } | 1179 | } |
diff --git a/linden/indra/newview/llpanellogin.h b/linden/indra/newview/llpanellogin.h index 1100cd6..cdf567b 100644 --- a/linden/indra/newview/llpanellogin.h +++ b/linden/indra/newview/llpanellogin.h | |||
@@ -68,6 +68,7 @@ class LLPanelLogin: | |||
68 | public LLPanel, | 68 | public LLPanel, |
69 | public LLWebBrowserCtrlObserver | 69 | public LLWebBrowserCtrlObserver |
70 | { | 70 | { |
71 | LOG_CLASS(LLPanelLogin); | ||
71 | public: | 72 | public: |
72 | LLPanelLogin(const LLRect &rect, BOOL show_server, | 73 | LLPanelLogin(const LLRect &rect, BOOL show_server, |
73 | void (*callback)(S32 option, void* user_data), | 74 | void (*callback)(S32 option, void* user_data), |
diff --git a/linden/indra/newview/llpanelpermissions.cpp b/linden/indra/newview/llpanelpermissions.cpp index ea742ba..0d50f38 100644 --- a/linden/indra/newview/llpanelpermissions.cpp +++ b/linden/indra/newview/llpanelpermissions.cpp | |||
@@ -327,6 +327,7 @@ void LLPanelPermissions::refresh() | |||
327 | 327 | ||
328 | // update group text field | 328 | // update group text field |
329 | childSetEnabled("Group:",true); | 329 | childSetEnabled("Group:",true); |
330 | childSetText("Group Name",LLString::null); | ||
330 | LLUUID group_id; | 331 | LLUUID group_id; |
331 | BOOL groups_identical = LLSelectMgr::getInstance()->selectGetGroup(group_id); | 332 | BOOL groups_identical = LLSelectMgr::getInstance()->selectGetGroup(group_id); |
332 | if (groups_identical) | 333 | if (groups_identical) |
@@ -337,6 +338,16 @@ void LLPanelPermissions::refresh() | |||
337 | mLabelGroupName->setEnabled(TRUE); | 338 | mLabelGroupName->setEnabled(TRUE); |
338 | } | 339 | } |
339 | } | 340 | } |
341 | else | ||
342 | { | ||
343 | if(mLabelGroupName) | ||
344 | { | ||
345 | mLabelGroupName->setNameID(LLUUID::null, TRUE); | ||
346 | mLabelGroupName->refresh(LLUUID::null, "", "", TRUE); | ||
347 | mLabelGroupName->setEnabled(FALSE); | ||
348 | } | ||
349 | } | ||
350 | |||
340 | childSetEnabled("button set group",owners_identical && (mOwnerID == gAgent.getID())); | 351 | childSetEnabled("button set group",owners_identical && (mOwnerID == gAgent.getID())); |
341 | 352 | ||
342 | // figure out the contents of the name, description, & category | 353 | // figure out the contents of the name, description, & category |
@@ -854,7 +865,7 @@ void callback_deed_to_group(S32 option, void*) | |||
854 | { | 865 | { |
855 | LLUUID group_id; | 866 | LLUUID group_id; |
856 | BOOL groups_identical = LLSelectMgr::getInstance()->selectGetGroup(group_id); | 867 | BOOL groups_identical = LLSelectMgr::getInstance()->selectGetGroup(group_id); |
857 | if(groups_identical && (gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED))) | 868 | if(group_id.notNull() && groups_identical && (gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED))) |
858 | { | 869 | { |
859 | LLSelectMgr::getInstance()->sendOwner(LLUUID::null, group_id, FALSE); | 870 | LLSelectMgr::getInstance()->sendOwner(LLUUID::null, group_id, FALSE); |
860 | // LLViewerStats::getInstance()->incStat(LLViewerStats::ST_RELEASE_COUNT); | 871 | // LLViewerStats::getInstance()->incStat(LLViewerStats::ST_RELEASE_COUNT); |
diff --git a/linden/indra/newview/llpolymesh.cpp b/linden/indra/newview/llpolymesh.cpp index d74beeb..3884b31 100644 --- a/linden/indra/newview/llpolymesh.cpp +++ b/linden/indra/newview/llpolymesh.cpp | |||
@@ -271,7 +271,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const char *fileName ) | |||
271 | llerrs << "Filename is Empty!" << llendl; | 271 | llerrs << "Filename is Empty!" << llendl; |
272 | return FALSE; | 272 | return FALSE; |
273 | } | 273 | } |
274 | FILE* fp = LLFile::fopen(fileName, "rb"); /*Flawfinder: ignore*/ | 274 | LLFILE* fp = LLFile::fopen(fileName, "rb"); /*Flawfinder: ignore*/ |
275 | if (!fp) | 275 | if (!fp) |
276 | { | 276 | { |
277 | llerrs << "can't open: " << fileName << llendl; | 277 | llerrs << "can't open: " << fileName << llendl; |
diff --git a/linden/indra/newview/llpolymorph.cpp b/linden/indra/newview/llpolymorph.cpp index a83f5ab..11ca7af 100644 --- a/linden/indra/newview/llpolymorph.cpp +++ b/linden/indra/newview/llpolymorph.cpp | |||
@@ -83,7 +83,7 @@ LLPolyMorphData::~LLPolyMorphData() | |||
83 | //----------------------------------------------------------------------------- | 83 | //----------------------------------------------------------------------------- |
84 | // loadBinary() | 84 | // loadBinary() |
85 | //----------------------------------------------------------------------------- | 85 | //----------------------------------------------------------------------------- |
86 | BOOL LLPolyMorphData::loadBinary(FILE *fp, LLPolyMeshSharedData *mesh) | 86 | BOOL LLPolyMorphData::loadBinary(LLFILE *fp, LLPolyMeshSharedData *mesh) |
87 | { | 87 | { |
88 | S32 numVertices; | 88 | S32 numVertices; |
89 | S32 numRead; | 89 | S32 numRead; |
diff --git a/linden/indra/newview/llpolymorph.h b/linden/indra/newview/llpolymorph.h index 5f7a034..0ad5b18 100644 --- a/linden/indra/newview/llpolymorph.h +++ b/linden/indra/newview/llpolymorph.h | |||
@@ -51,7 +51,7 @@ public: | |||
51 | LLPolyMorphData(char *morph_name); | 51 | LLPolyMorphData(char *morph_name); |
52 | ~LLPolyMorphData(); | 52 | ~LLPolyMorphData(); |
53 | 53 | ||
54 | BOOL loadBinary(FILE* fp, LLPolyMeshSharedData *mesh); | 54 | BOOL loadBinary(LLFILE* fp, LLPolyMeshSharedData *mesh); |
55 | char* loadASCII(char* text, LLPolyMeshSharedData *mesh); | 55 | char* loadASCII(char* text, LLPolyMeshSharedData *mesh); |
56 | char* getName() { return mName; } | 56 | char* getName() { return mName; } |
57 | 57 | ||
diff --git a/linden/indra/newview/llpostprocess.cpp b/linden/indra/newview/llpostprocess.cpp index c72b8ae..7ee7100 100644 --- a/linden/indra/newview/llpostprocess.cpp +++ b/linden/indra/newview/llpostprocess.cpp | |||
@@ -35,7 +35,7 @@ | |||
35 | #include "llpostprocess.h" | 35 | #include "llpostprocess.h" |
36 | #include "llglslshader.h" | 36 | #include "llglslshader.h" |
37 | #include "llsdserialize.h" | 37 | #include "llsdserialize.h" |
38 | #include "llglimmediate.h" | 38 | #include "llrender.h" |
39 | 39 | ||
40 | 40 | ||
41 | LLPostProcess * gPostProcess = NULL; | 41 | LLPostProcess * gPostProcess = NULL; |
@@ -59,7 +59,7 @@ LLPostProcess::LLPostProcess(void) : | |||
59 | screenW(1), screenH(1) | 59 | screenW(1), screenH(1) |
60 | { | 60 | { |
61 | LLString pathName(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight", XML_FILENAME)); | 61 | LLString pathName(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight", XML_FILENAME)); |
62 | llinfos << "Loading PostProcess Effects settings from " << pathName << llendl; | 62 | LL_DEBUGS2("AppInit", "Shaders") << "Loading PostProcess Effects settings from " << pathName << LL_ENDL; |
63 | 63 | ||
64 | llifstream effectsXML(pathName.c_str()); | 64 | llifstream effectsXML(pathName.c_str()); |
65 | 65 | ||
@@ -215,7 +215,7 @@ void LLPostProcess::applyColorFilterShader(void) | |||
215 | { | 215 | { |
216 | gPostColorFilterProgram.bind(); | 216 | gPostColorFilterProgram.bind(); |
217 | 217 | ||
218 | glActiveTextureARB(GL_TEXTURE0_ARB); | 218 | gGL.getTexUnit(0)->activate(); |
219 | glEnable(GL_TEXTURE_RECTANGLE_ARB); | 219 | glEnable(GL_TEXTURE_RECTANGLE_ARB); |
220 | 220 | ||
221 | glBindTexture(GL_TEXTURE_RECTANGLE_ARB, sceneRenderTexture); | 221 | glBindTexture(GL_TEXTURE_RECTANGLE_ARB, sceneRenderTexture); |
@@ -234,7 +234,7 @@ void LLPostProcess::applyColorFilterShader(void) | |||
234 | glUniform3fARB(colorFilterUniforms["lumWeights"], LUMINANCE_R, LUMINANCE_G, LUMINANCE_B); | 234 | glUniform3fARB(colorFilterUniforms["lumWeights"], LUMINANCE_R, LUMINANCE_G, LUMINANCE_B); |
235 | 235 | ||
236 | LLGLEnable blend(GL_BLEND); | 236 | LLGLEnable blend(GL_BLEND); |
237 | gGL.blendFunc(GL_ONE,GL_ZERO); | 237 | gGL.setSceneBlendType(LLRender::BT_REPLACE); |
238 | LLGLDepthTest depth(GL_FALSE); | 238 | LLGLDepthTest depth(GL_FALSE); |
239 | 239 | ||
240 | /// Draw a screen space quad | 240 | /// Draw a screen space quad |
@@ -257,14 +257,14 @@ void LLPostProcess::applyNightVisionShader(void) | |||
257 | { | 257 | { |
258 | gPostNightVisionProgram.bind(); | 258 | gPostNightVisionProgram.bind(); |
259 | 259 | ||
260 | glActiveTextureARB(GL_TEXTURE0_ARB); | 260 | gGL.getTexUnit(0)->activate(); |
261 | glEnable(GL_TEXTURE_RECTANGLE_ARB); | 261 | glEnable(GL_TEXTURE_RECTANGLE_ARB); |
262 | 262 | ||
263 | getShaderUniforms(nightVisionUniforms, gPostNightVisionProgram.mProgramObject); | 263 | getShaderUniforms(nightVisionUniforms, gPostNightVisionProgram.mProgramObject); |
264 | glBindTexture(GL_TEXTURE_RECTANGLE_ARB, sceneRenderTexture); | 264 | glBindTexture(GL_TEXTURE_RECTANGLE_ARB, sceneRenderTexture); |
265 | glUniform1iARB(nightVisionUniforms["RenderTexture"], 0); | 265 | glUniform1iARB(nightVisionUniforms["RenderTexture"], 0); |
266 | 266 | ||
267 | glActiveTextureARB(GL_TEXTURE1_ARB); | 267 | gGL.getTexUnit(1)->activate(); |
268 | glEnable(GL_TEXTURE_2D); | 268 | glEnable(GL_TEXTURE_2D); |
269 | 269 | ||
270 | glBindTexture(GL_TEXTURE_2D, noiseTexture); | 270 | glBindTexture(GL_TEXTURE_2D, noiseTexture); |
@@ -280,13 +280,13 @@ void LLPostProcess::applyNightVisionShader(void) | |||
280 | glUniform3fARB(nightVisionUniforms["lumWeights"], LUMINANCE_R, LUMINANCE_G, LUMINANCE_B); | 280 | glUniform3fARB(nightVisionUniforms["lumWeights"], LUMINANCE_R, LUMINANCE_G, LUMINANCE_B); |
281 | 281 | ||
282 | LLGLEnable blend(GL_BLEND); | 282 | LLGLEnable blend(GL_BLEND); |
283 | gGL.blendFunc(GL_ONE,GL_ZERO); | 283 | gGL.setSceneBlendType(LLRender::BT_REPLACE); |
284 | LLGLDepthTest depth(GL_FALSE); | 284 | LLGLDepthTest depth(GL_FALSE); |
285 | 285 | ||
286 | /// Draw a screen space quad | 286 | /// Draw a screen space quad |
287 | drawOrthoQuad(screenW, screenH, QUAD_NOISE); | 287 | drawOrthoQuad(screenW, screenH, QUAD_NOISE); |
288 | gPostNightVisionProgram.unbind(); | 288 | gPostNightVisionProgram.unbind(); |
289 | glActiveTextureARB(GL_TEXTURE0_ARB); | 289 | gGL.getTexUnit(0)->activate(); |
290 | } | 290 | } |
291 | 291 | ||
292 | void LLPostProcess::createNightVisionShader(void) | 292 | void LLPostProcess::createNightVisionShader(void) |
@@ -352,7 +352,7 @@ void LLPostProcess::doEffects(void) | |||
352 | checkError(); | 352 | checkError(); |
353 | applyShaders(); | 353 | applyShaders(); |
354 | 354 | ||
355 | glUseProgramObjectARB(0); | 355 | LLGLSLShader::bindNoShader(); |
356 | checkError(); | 356 | checkError(); |
357 | 357 | ||
358 | /// Change to a perspective view | 358 | /// Change to a perspective view |
@@ -565,74 +565,3 @@ void LLPostProcess::checkShaderError(GLhandleARB shader) | |||
565 | } | 565 | } |
566 | checkError(); // Check for OpenGL errors | 566 | checkError(); // Check for OpenGL errors |
567 | } | 567 | } |
568 | |||
569 | void LLPostProcess::textureBlendReplace(void) | ||
570 | { | ||
571 | glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE ); | ||
572 | glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_REPLACE ); | ||
573 | glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE ); | ||
574 | glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR ); | ||
575 | } | ||
576 | |||
577 | void LLPostProcess::textureBlendAdd(void) | ||
578 | { | ||
579 | glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE ); | ||
580 | glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_ADD ); | ||
581 | glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PREVIOUS ); | ||
582 | glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR ); | ||
583 | glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_TEXTURE ); | ||
584 | glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR ); | ||
585 | } | ||
586 | |||
587 | void LLPostProcess::textureBlendAddSigned(void) | ||
588 | { | ||
589 | glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE ); | ||
590 | glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_ADD_SIGNED ); | ||
591 | glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PREVIOUS ); | ||
592 | glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR ); | ||
593 | glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_TEXTURE ); | ||
594 | glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR ); | ||
595 | } | ||
596 | |||
597 | void LLPostProcess::textureBlendSubtract(void) | ||
598 | { | ||
599 | glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE ); | ||
600 | glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_SUBTRACT ); | ||
601 | glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PREVIOUS ); | ||
602 | glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR ); | ||
603 | glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_TEXTURE ); | ||
604 | glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR ); | ||
605 | } | ||
606 | |||
607 | void LLPostProcess::textureBlendAlpha(void) | ||
608 | { | ||
609 | glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE ); | ||
610 | glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_INTERPOLATE ); | ||
611 | glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE); | ||
612 | glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR ); | ||
613 | glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_PREVIOUS ); | ||
614 | glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR ); | ||
615 | glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE2_RGB, GL_TEXTURE); | ||
616 | glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND2_RGB, GL_SRC_ALPHA ); | ||
617 | } | ||
618 | |||
619 | void LLPostProcess::textureBlendMultiply(void) | ||
620 | { | ||
621 | glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE ); | ||
622 | glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE ); | ||
623 | glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PREVIOUS ); | ||
624 | glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR ); | ||
625 | glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_TEXTURE ); | ||
626 | glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR ); | ||
627 | } | ||
628 | |||
629 | void LLPostProcess::textureBlendMultiplyX2(void) | ||
630 | { | ||
631 | glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE ); | ||
632 | glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE ); | ||
633 | glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PREVIOUS ); | ||
634 | glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR ); | ||
635 | glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_TEXTURE ); | ||
636 | glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR ); | ||
637 | glTexEnvi( GL_TEXTURE_ENV, GL_RGB_SCALE, 2 ); | ||
638 | } | ||
diff --git a/linden/indra/newview/llpostprocess.h b/linden/indra/newview/llpostprocess.h index 2e98fb3..738d0f0 100644 --- a/linden/indra/newview/llpostprocess.h +++ b/linden/indra/newview/llpostprocess.h | |||
@@ -260,13 +260,6 @@ private: | |||
260 | void viewOrthogonal(unsigned int width, unsigned int height); | 260 | void viewOrthogonal(unsigned int width, unsigned int height); |
261 | void changeOrthogonal(unsigned int width, unsigned int height); | 261 | void changeOrthogonal(unsigned int width, unsigned int height); |
262 | void viewPerspective(void); | 262 | void viewPerspective(void); |
263 | void textureBlendReplace(void); | ||
264 | void textureBlendAdd(void); | ||
265 | void textureBlendSubtract(void); | ||
266 | void textureBlendAddSigned(void); | ||
267 | void textureBlendAlpha(void); | ||
268 | void textureBlendMultiply(void); | ||
269 | void textureBlendMultiplyX2(void); | ||
270 | }; | 263 | }; |
271 | 264 | ||
272 | extern LLPostProcess * gPostProcess; | 265 | extern LLPostProcess * gPostProcess; |
diff --git a/linden/indra/newview/llpreviewgesture.cpp b/linden/indra/newview/llpreviewgesture.cpp index 4ca6009..c53eab7 100644 --- a/linden/indra/newview/llpreviewgesture.cpp +++ b/linden/indra/newview/llpreviewgesture.cpp | |||
@@ -67,9 +67,10 @@ | |||
67 | #include "llviewerstats.h" | 67 | #include "llviewerstats.h" |
68 | #include "llviewerwindow.h" // busycount | 68 | #include "llviewerwindow.h" // busycount |
69 | #include "llappviewer.h" // gVFS | 69 | #include "llappviewer.h" // gVFS |
70 | 70 | #include "llanimstatelabels.h" | |
71 | #include "llresmgr.h" | 71 | #include "llresmgr.h" |
72 | 72 | ||
73 | |||
73 | // *TODO: Translate? | 74 | // *TODO: Translate? |
74 | const char NONE_LABEL[] = "---"; | 75 | const char NONE_LABEL[] = "---"; |
75 | const char SHIFT_LABEL[] = "Shift"; | 76 | const char SHIFT_LABEL[] = "Shift"; |
@@ -592,7 +593,7 @@ void LLPreviewGesture::addAnimations() | |||
592 | for (i = 0; i < gUserAnimStatesCount; ++i) | 593 | for (i = 0; i < gUserAnimStatesCount; ++i) |
593 | { | 594 | { |
594 | // Use the user-readable name | 595 | // Use the user-readable name |
595 | const char* label = gUserAnimStates[i].mLabel; | 596 | std::string label = LLAnimStateLabels::getStateLabel( gUserAnimStates[i].mName ); |
596 | const LLUUID& id = gUserAnimStates[i].mID; | 597 | const LLUUID& id = gUserAnimStates[i].mID; |
597 | combo->add(label, id); | 598 | combo->add(label, id); |
598 | } | 599 | } |
diff --git a/linden/indra/newview/llpreviewscript.cpp b/linden/indra/newview/llpreviewscript.cpp index 6acd6bf..9ef711d 100644 --- a/linden/indra/newview/llpreviewscript.cpp +++ b/linden/indra/newview/llpreviewscript.cpp | |||
@@ -1262,7 +1262,7 @@ void LLPreviewLSL::saveIfNeeded() | |||
1262 | std::string filepath = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,asset_id.asString()); | 1262 | std::string filepath = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,asset_id.asString()); |
1263 | std::string filename = llformat("%s.lsl", filepath.c_str()); | 1263 | std::string filename = llformat("%s.lsl", filepath.c_str()); |
1264 | 1264 | ||
1265 | FILE* fp = LLFile::fopen(filename.c_str(), "wb"); | 1265 | LLFILE* fp = LLFile::fopen(filename.c_str(), "wb"); |
1266 | if(!fp) | 1266 | if(!fp) |
1267 | { | 1267 | { |
1268 | llwarns << "Unable to write to " << filename << llendl; | 1268 | llwarns << "Unable to write to " << filename << llendl; |
@@ -1336,7 +1336,7 @@ void LLPreviewLSL::uploadAssetLegacy(const std::string& filename, | |||
1336 | //system(command); | 1336 | //system(command); |
1337 | 1337 | ||
1338 | // load the error file into the error scrolllist | 1338 | // load the error file into the error scrolllist |
1339 | FILE* fp = LLFile::fopen(err_filename.c_str(), "r"); | 1339 | LLFILE* fp = LLFile::fopen(err_filename.c_str(), "r"); |
1340 | if(fp) | 1340 | if(fp) |
1341 | { | 1341 | { |
1342 | char buffer[MAX_STRING]; /*Flawfinder: ignore*/ | 1342 | char buffer[MAX_STRING]; /*Flawfinder: ignore*/ |
@@ -1851,7 +1851,7 @@ void LLLiveLSLEditor::loadScriptText(const char* filename) | |||
1851 | llerrs << "Filename is Empty!" << llendl; | 1851 | llerrs << "Filename is Empty!" << llendl; |
1852 | return; | 1852 | return; |
1853 | } | 1853 | } |
1854 | FILE* file = LLFile::fopen(filename, "rb"); /*Flawfinder: ignore*/ | 1854 | LLFILE* file = LLFile::fopen(filename, "rb"); /*Flawfinder: ignore*/ |
1855 | if(file) | 1855 | if(file) |
1856 | { | 1856 | { |
1857 | // read in the whole file | 1857 | // read in the whole file |
@@ -2063,7 +2063,7 @@ void LLLiveLSLEditor::saveIfNeeded() | |||
2063 | mItem->setTransactionID(tid); | 2063 | mItem->setTransactionID(tid); |
2064 | 2064 | ||
2065 | // write out the data, and store it in the asset database | 2065 | // write out the data, and store it in the asset database |
2066 | FILE* fp = LLFile::fopen(filename.c_str(), "wb"); | 2066 | LLFILE* fp = LLFile::fopen(filename.c_str(), "wb"); |
2067 | if(!fp) | 2067 | if(!fp) |
2068 | { | 2068 | { |
2069 | llwarns << "Unable to write to " << filename << llendl; | 2069 | llwarns << "Unable to write to " << filename << llendl; |
@@ -2136,7 +2136,7 @@ void LLLiveLSLEditor::uploadAssetLegacy(const std::string& filename, | |||
2136 | std::string dst_filename = llformat("%s.lso", filepath.c_str()); | 2136 | std::string dst_filename = llformat("%s.lso", filepath.c_str()); |
2137 | std::string err_filename = llformat("%s.out", filepath.c_str()); | 2137 | std::string err_filename = llformat("%s.out", filepath.c_str()); |
2138 | 2138 | ||
2139 | FILE *fp; | 2139 | LLFILE *fp; |
2140 | if(!lscript_compile(filename.c_str(), | 2140 | if(!lscript_compile(filename.c_str(), |
2141 | dst_filename.c_str(), | 2141 | dst_filename.c_str(), |
2142 | err_filename.c_str(), | 2142 | err_filename.c_str(), |
diff --git a/linden/indra/newview/llprogressview.cpp b/linden/indra/newview/llprogressview.cpp index b4f0704..d10cc8f 100644 --- a/linden/indra/newview/llprogressview.cpp +++ b/linden/indra/newview/llprogressview.cpp | |||
@@ -36,7 +36,7 @@ | |||
36 | #include "indra_constants.h" | 36 | #include "indra_constants.h" |
37 | #include "llmath.h" | 37 | #include "llmath.h" |
38 | #include "llgl.h" | 38 | #include "llgl.h" |
39 | #include "llglimmediate.h" | 39 | #include "llrender.h" |
40 | #include "llui.h" | 40 | #include "llui.h" |
41 | #include "llfontgl.h" | 41 | #include "llfontgl.h" |
42 | #include "llimagegl.h" | 42 | #include "llimagegl.h" |
diff --git a/linden/indra/newview/llselectmgr.cpp b/linden/indra/newview/llselectmgr.cpp index 7d26f06..4488a46 100644 --- a/linden/indra/newview/llselectmgr.cpp +++ b/linden/indra/newview/llselectmgr.cpp | |||
@@ -39,7 +39,7 @@ | |||
39 | #include "lldbstrings.h" | 39 | #include "lldbstrings.h" |
40 | #include "lleconomy.h" | 40 | #include "lleconomy.h" |
41 | #include "llgl.h" | 41 | #include "llgl.h" |
42 | #include "llglimmediate.h" | 42 | #include "llrender.h" |
43 | #include "llpermissions.h" | 43 | #include "llpermissions.h" |
44 | #include "llpermissionsflags.h" | 44 | #include "llpermissionsflags.h" |
45 | #include "llundo.h" | 45 | #include "llundo.h" |
@@ -62,6 +62,7 @@ | |||
62 | #include "llhudmanager.h" | 62 | #include "llhudmanager.h" |
63 | #include "llinventorymodel.h" | 63 | #include "llinventorymodel.h" |
64 | #include "llmenugl.h" | 64 | #include "llmenugl.h" |
65 | #include "llmutelist.h" | ||
65 | #include "llstatusbar.h" | 66 | #include "llstatusbar.h" |
66 | #include "llsurface.h" | 67 | #include "llsurface.h" |
67 | #include "lltool.h" | 68 | #include "lltool.h" |
@@ -1037,19 +1038,21 @@ void LLSelectMgr::getGrid(LLVector3& origin, LLQuaternion &rotation, LLVector3 & | |||
1037 | 1038 | ||
1038 | if (mGridMode == GRID_MODE_LOCAL && mSelectedObjects->getObjectCount()) | 1039 | if (mGridMode == GRID_MODE_LOCAL && mSelectedObjects->getObjectCount()) |
1039 | { | 1040 | { |
1040 | LLViewerObject* root = getSelectedParentObject(mSelectedObjects->getFirstObject()); | 1041 | //LLViewerObject* root = getSelectedParentObject(mSelectedObjects->getFirstObject()); |
1041 | LLBBox bbox = mSavedSelectionBBox; | 1042 | LLBBox bbox = mSavedSelectionBBox; |
1042 | mGridOrigin = mSavedSelectionBBox.getCenterAgent(); | 1043 | mGridOrigin = mSavedSelectionBBox.getCenterAgent(); |
1043 | mGridScale = mSavedSelectionBBox.getExtentLocal() * 0.5f; | 1044 | mGridScale = mSavedSelectionBBox.getExtentLocal() * 0.5f; |
1044 | 1045 | ||
1045 | if(mSelectedObjects->getObjectCount() < 2 || !root || root->mDrawable.isNull()) | 1046 | // DEV-12570 Just taking the saved selection box rotation prevents |
1047 | // wild rotations of linked sets while in local grid mode | ||
1048 | //if(mSelectedObjects->getObjectCount() < 2 || !root || root->mDrawable.isNull()) | ||
1046 | { | 1049 | { |
1047 | mGridRotation = mSavedSelectionBBox.getRotation(); | 1050 | mGridRotation = mSavedSelectionBBox.getRotation(); |
1048 | } | 1051 | } |
1049 | else //set to the root object | 1052 | /*else //set to the root object |
1050 | { | 1053 | { |
1051 | mGridRotation = root->getRenderRotation(); | 1054 | mGridRotation = root->getRenderRotation(); |
1052 | } | 1055 | }*/ |
1053 | } | 1056 | } |
1054 | else if (mGridMode == GRID_MODE_REF_OBJECT && first_grid_object && first_grid_object->mDrawable.notNull()) | 1057 | else if (mGridMode == GRID_MODE_REF_OBJECT && first_grid_object && first_grid_object->mDrawable.notNull()) |
1055 | { | 1058 | { |
@@ -2509,11 +2512,7 @@ BOOL LLSelectMgr::selectGetGroup(LLUUID& result_id) | |||
2509 | } | 2512 | } |
2510 | } | 2513 | } |
2511 | } | 2514 | } |
2512 | if (first_id.isNull()) | 2515 | |
2513 | { | ||
2514 | return FALSE; | ||
2515 | } | ||
2516 | |||
2517 | result_id = first_id; | 2516 | result_id = first_id; |
2518 | 2517 | ||
2519 | return identical; | 2518 | return identical; |
@@ -4443,6 +4442,11 @@ void LLSelectMgr::processObjectPropertiesFamily(LLMessageSystem* msg, void** use | |||
4443 | reporterp->setPickedObjectProperties(name, fullname, owner_id); | 4442 | reporterp->setPickedObjectProperties(name, fullname, owner_id); |
4444 | } | 4443 | } |
4445 | } | 4444 | } |
4445 | else if (request_flags & OBJECT_PAY_REQUEST) | ||
4446 | { | ||
4447 | // check if the owner of the paid object is muted | ||
4448 | LLMuteList::getInstance()->autoRemove(owner_id, LLMuteList::AR_MONEY); | ||
4449 | } | ||
4446 | 4450 | ||
4447 | // Now look through all of the hovered nodes | 4451 | // Now look through all of the hovered nodes |
4448 | struct f : public LLSelectedNodeFunctor | 4452 | struct f : public LLSelectedNodeFunctor |
@@ -4780,7 +4784,7 @@ void LLSelectMgr::updateSilhouettes() | |||
4780 | objectp->clearChanged(LLXform::MOVED | LLXform::SILHOUETTE); | 4784 | objectp->clearChanged(LLXform::MOVED | LLXform::SILHOUETTE); |
4781 | } | 4785 | } |
4782 | 4786 | ||
4783 | //glAlphaFunc(GL_GREATER, 0.01f); | 4787 | //gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); |
4784 | } | 4788 | } |
4785 | 4789 | ||
4786 | void LLSelectMgr::renderSilhouettes(BOOL for_hud) | 4790 | void LLSelectMgr::renderSilhouettes(BOOL for_hud) |
@@ -4792,7 +4796,7 @@ void LLSelectMgr::renderSilhouettes(BOOL for_hud) | |||
4792 | 4796 | ||
4793 | LLViewerImage::bindTexture(mSilhouetteImagep); | 4797 | LLViewerImage::bindTexture(mSilhouetteImagep); |
4794 | LLGLSPipelineSelection gls_select; | 4798 | LLGLSPipelineSelection gls_select; |
4795 | glAlphaFunc(GL_GREATER, 0.0f); | 4799 | gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.f); |
4796 | LLGLEnable blend(GL_BLEND); | 4800 | LLGLEnable blend(GL_BLEND); |
4797 | LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE); | 4801 | LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE); |
4798 | 4802 | ||
@@ -4898,7 +4902,7 @@ void LLSelectMgr::renderSilhouettes(BOOL for_hud) | |||
4898 | } | 4902 | } |
4899 | 4903 | ||
4900 | mSilhouetteImagep->unbindTexture(0, GL_TEXTURE_2D); | 4904 | mSilhouetteImagep->unbindTexture(0, GL_TEXTURE_2D); |
4901 | glAlphaFunc(GL_GREATER, 0.01f); | 4905 | gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); |
4902 | } | 4906 | } |
4903 | 4907 | ||
4904 | void LLSelectMgr::generateSilhouette(LLSelectNode* nodep, const LLVector3& view_point) | 4908 | void LLSelectMgr::generateSilhouette(LLSelectNode* nodep, const LLVector3& view_point) |
@@ -5263,7 +5267,7 @@ void LLSelectNode::renderOneSilhouette(const LLColor4 &color) | |||
5263 | if (LLSelectMgr::sRenderHiddenSelections) // && gFloaterTools && gFloaterTools->getVisible()) | 5267 | if (LLSelectMgr::sRenderHiddenSelections) // && gFloaterTools && gFloaterTools->getVisible()) |
5264 | { | 5268 | { |
5265 | gGL.flush(); | 5269 | gGL.flush(); |
5266 | gGL.blendFunc(GL_SRC_COLOR, GL_ONE); | 5270 | gGL.blendFunc(LLRender::BF_SOURCE_COLOR, LLRender::BF_ONE); |
5267 | LLGLEnable fog(GL_FOG); | 5271 | LLGLEnable fog(GL_FOG); |
5268 | glFogi(GL_FOG_MODE, GL_LINEAR); | 5272 | glFogi(GL_FOG_MODE, GL_LINEAR); |
5269 | float d = (LLViewerCamera::getInstance()->getPointOfInterest()-LLViewerCamera::getInstance()->getOrigin()).magVec(); | 5273 | float d = (LLViewerCamera::getInstance()->getPointOfInterest()-LLViewerCamera::getInstance()->getOrigin()).magVec(); |
@@ -5273,7 +5277,7 @@ void LLSelectNode::renderOneSilhouette(const LLColor4 &color) | |||
5273 | glFogfv(GL_FOG_COLOR, fogCol.mV); | 5277 | glFogfv(GL_FOG_COLOR, fogCol.mV); |
5274 | 5278 | ||
5275 | LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE, GL_GEQUAL); | 5279 | LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE, GL_GEQUAL); |
5276 | glAlphaFunc(GL_GREATER, 0.01f); | 5280 | gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); |
5277 | gGL.begin(LLVertexBuffer::LINES); | 5281 | gGL.begin(LLVertexBuffer::LINES); |
5278 | { | 5282 | { |
5279 | S32 i = 0; | 5283 | S32 i = 0; |
@@ -5294,7 +5298,7 @@ void LLSelectNode::renderOneSilhouette(const LLColor4 &color) | |||
5294 | } | 5298 | } |
5295 | 5299 | ||
5296 | gGL.flush(); | 5300 | gGL.flush(); |
5297 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 5301 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
5298 | gGL.begin(LLVertexBuffer::TRIANGLES); | 5302 | gGL.begin(LLVertexBuffer::TRIANGLES); |
5299 | { | 5303 | { |
5300 | S32 i = 0; | 5304 | S32 i = 0; |
diff --git a/linden/indra/newview/llspatialpartition.cpp b/linden/indra/newview/llspatialpartition.cpp index cb115ff..520501e 100644 --- a/linden/indra/newview/llspatialpartition.cpp +++ b/linden/indra/newview/llspatialpartition.cpp | |||
@@ -43,7 +43,7 @@ | |||
43 | #include "llviewerregion.h" | 43 | #include "llviewerregion.h" |
44 | #include "llcamera.h" | 44 | #include "llcamera.h" |
45 | #include "pipeline.h" | 45 | #include "pipeline.h" |
46 | #include "llglimmediate.h" | 46 | #include "llrender.h" |
47 | #include "lloctree.h" | 47 | #include "lloctree.h" |
48 | 48 | ||
49 | const F32 SG_OCCLUSION_FUDGE = 1.01f; | 49 | const F32 SG_OCCLUSION_FUDGE = 1.01f; |
@@ -2006,7 +2006,7 @@ void renderOctree(LLSpatialGroup* group) | |||
2006 | //render solid object bounding box, color | 2006 | //render solid object bounding box, color |
2007 | //coded by buffer usage and activity | 2007 | //coded by buffer usage and activity |
2008 | LLGLDepthTest depth(GL_TRUE, GL_FALSE); | 2008 | LLGLDepthTest depth(GL_TRUE, GL_FALSE); |
2009 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE); | 2009 | gGL.setSceneBlendType(LLRender::BT_ADD_WITH_ALPHA); |
2010 | LLVector4 col; | 2010 | LLVector4 col; |
2011 | if (group->mBuilt > 0.f) | 2011 | if (group->mBuilt > 0.f) |
2012 | { | 2012 | { |
@@ -2094,7 +2094,7 @@ void renderOctree(LLSpatialGroup* group) | |||
2094 | drawBox(group->mObjectBounds[0], group->mObjectBounds[1]*1.01f+LLVector3(0.001f, 0.001f, 0.001f)); | 2094 | drawBox(group->mObjectBounds[0], group->mObjectBounds[1]*1.01f+LLVector3(0.001f, 0.001f, 0.001f)); |
2095 | 2095 | ||
2096 | glDepthMask(GL_TRUE); | 2096 | glDepthMask(GL_TRUE); |
2097 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 2097 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
2098 | 2098 | ||
2099 | if (group->mBuilt <= 0.f) | 2099 | if (group->mBuilt <= 0.f) |
2100 | { | 2100 | { |
@@ -2122,7 +2122,7 @@ void renderOctree(LLSpatialGroup* group) | |||
2122 | void renderVisibility(LLSpatialGroup* group, LLCamera* camera) | 2122 | void renderVisibility(LLSpatialGroup* group, LLCamera* camera) |
2123 | { | 2123 | { |
2124 | LLGLEnable blend(GL_BLEND); | 2124 | LLGLEnable blend(GL_BLEND); |
2125 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 2125 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
2126 | LLGLEnable cull(GL_CULL_FACE); | 2126 | LLGLEnable cull(GL_CULL_FACE); |
2127 | glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); | 2127 | glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); |
2128 | 2128 | ||
@@ -2498,7 +2498,7 @@ void LLSpatialPartition::renderDebug() | |||
2498 | 2498 | ||
2499 | LLGLDisable cullface(GL_CULL_FACE); | 2499 | LLGLDisable cullface(GL_CULL_FACE); |
2500 | LLGLEnable blend(GL_BLEND); | 2500 | LLGLEnable blend(GL_BLEND); |
2501 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 2501 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
2502 | LLImageGL::unbindTexture(0); | 2502 | LLImageGL::unbindTexture(0); |
2503 | gPipeline.disableLights(); | 2503 | gPipeline.disableLights(); |
2504 | 2504 | ||
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp index 914b993..52f4d1a 100644 --- a/linden/indra/newview/llstartup.cpp +++ b/linden/indra/newview/llstartup.cpp | |||
@@ -127,6 +127,7 @@ | |||
127 | #include "llsky.h" | 127 | #include "llsky.h" |
128 | #include "llsrv.h" | 128 | #include "llsrv.h" |
129 | #include "llstatview.h" | 129 | #include "llstatview.h" |
130 | #include "lltrans.h" | ||
130 | #include "llsurface.h" | 131 | #include "llsurface.h" |
131 | #include "lltexturecache.h" | 132 | #include "lltexturecache.h" |
132 | #include "lltexturefetch.h" | 133 | #include "lltexturefetch.h" |
@@ -264,8 +265,8 @@ namespace | |||
264 | const char* message, const LLSD& body, | 265 | const char* message, const LLSD& body, |
265 | LLHTTPClient::ResponderPtr response) const | 266 | LLHTTPClient::ResponderPtr response) const |
266 | { | 267 | { |
267 | llwarns << " attemped to send " << message << " to " << host | 268 | LL_WARNS("AppInit") << " attemped to send " << message << " to " << host |
268 | << " with null sender" << llendl; | 269 | << " with null sender" << LL_ENDL; |
269 | } | 270 | } |
270 | }; | 271 | }; |
271 | } | 272 | } |
@@ -427,17 +428,17 @@ BOOL idle_startup() | |||
427 | 428 | ||
428 | if (ll_init_ares() == NULL) | 429 | if (ll_init_ares() == NULL) |
429 | { | 430 | { |
430 | llerrs << "Could not start address resolution system" << llendl; | 431 | LL_ERRS("AppInit") << "Could not start address resolution system" << LL_ENDL; |
431 | } | 432 | } |
432 | 433 | ||
433 | // | 434 | // |
434 | // Initialize messaging system | 435 | // Initialize messaging system |
435 | // | 436 | // |
436 | llinfos << "Initializing messaging system..." << llendl; | 437 | LL_DEBUGS("AppInit") << "Initializing messaging system..." << LL_ENDL; |
437 | 438 | ||
438 | std::string message_template_path = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"message_template.msg"); | 439 | std::string message_template_path = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"message_template.msg"); |
439 | 440 | ||
440 | FILE* found_template = NULL; | 441 | LLFILE* found_template = NULL; |
441 | found_template = LLFile::fopen(message_template_path.c_str(), "r"); /* Flawfinder: ignore */ | 442 | found_template = LLFile::fopen(message_template_path.c_str(), "r"); /* Flawfinder: ignore */ |
442 | if (found_template) | 443 | if (found_template) |
443 | { | 444 | { |
@@ -495,7 +496,7 @@ BOOL idle_startup() | |||
495 | 496 | ||
496 | if (gSavedSettings.getBOOL("LogMessages")) | 497 | if (gSavedSettings.getBOOL("LogMessages")) |
497 | { | 498 | { |
498 | llinfos << "Message logging activated!" << llendl; | 499 | LL_DEBUGS("AppInit") << "Message logging activated!" << LL_ENDL; |
499 | msg->startLogging(); | 500 | msg->startLogging(); |
500 | } | 501 | } |
501 | 502 | ||
@@ -520,13 +521,13 @@ BOOL idle_startup() | |||
520 | F32 outBandwidth = gSavedSettings.getF32("OutBandwidth"); | 521 | F32 outBandwidth = gSavedSettings.getF32("OutBandwidth"); |
521 | if (inBandwidth != 0.f) | 522 | if (inBandwidth != 0.f) |
522 | { | 523 | { |
523 | llinfos << "Setting packetring incoming bandwidth to " << inBandwidth << llendl; | 524 | LL_DEBUGS("AppInit") << "Setting packetring incoming bandwidth to " << inBandwidth << LL_ENDL; |
524 | msg->mPacketRing.setUseInThrottle(TRUE); | 525 | msg->mPacketRing.setUseInThrottle(TRUE); |
525 | msg->mPacketRing.setInBandwidth(inBandwidth); | 526 | msg->mPacketRing.setInBandwidth(inBandwidth); |
526 | } | 527 | } |
527 | if (outBandwidth != 0.f) | 528 | if (outBandwidth != 0.f) |
528 | { | 529 | { |
529 | llinfos << "Setting packetring outgoing bandwidth to " << outBandwidth << llendl; | 530 | LL_DEBUGS("AppInit") << "Setting packetring outgoing bandwidth to " << outBandwidth << LL_ENDL; |
530 | msg->mPacketRing.setUseOutThrottle(TRUE); | 531 | msg->mPacketRing.setUseOutThrottle(TRUE); |
531 | msg->mPacketRing.setOutBandwidth(outBandwidth); | 532 | msg->mPacketRing.setOutBandwidth(outBandwidth); |
532 | } | 533 | } |
@@ -557,7 +558,7 @@ BOOL idle_startup() | |||
557 | BOOL init = gAudiop->init(kAUDIO_NUM_SOURCES, window_handle); | 558 | BOOL init = gAudiop->init(kAUDIO_NUM_SOURCES, window_handle); |
558 | if(!init) | 559 | if(!init) |
559 | { | 560 | { |
560 | llwarns << "Unable to initialize audio engine" << llendl; | 561 | LL_WARNS("AppInit") << "Unable to initialize audio engine" << LL_ENDL; |
561 | } | 562 | } |
562 | gAudiop->setMuted(TRUE); | 563 | gAudiop->setMuted(TRUE); |
563 | } | 564 | } |
@@ -565,7 +566,7 @@ BOOL idle_startup() | |||
565 | 566 | ||
566 | if (LLTimer::knownBadTimer()) | 567 | if (LLTimer::knownBadTimer()) |
567 | { | 568 | { |
568 | llwarns << "Unreliable timers detected (may be bad PCI chipset)!!" << llendl; | 569 | LL_WARNS("AppInit") << "Unreliable timers detected (may be bad PCI chipset)!!" << LL_ENDL; |
569 | } | 570 | } |
570 | 571 | ||
571 | // | 572 | // |
@@ -638,7 +639,7 @@ BOOL idle_startup() | |||
638 | //--------------------------------------------------------------------- | 639 | //--------------------------------------------------------------------- |
639 | if (STATE_MEDIA_INIT == LLStartUp::getStartupState()) | 640 | if (STATE_MEDIA_INIT == LLStartUp::getStartupState()) |
640 | { | 641 | { |
641 | llinfos << "Initializing Multimedia...." << llendl; | 642 | LL_DEBUGS("AppInit") << "Initializing Multimedia...." << LL_ENDL; |
642 | set_startup_status(0.03f, "Initializing Multimedia...", gAgent.mMOTD.c_str()); | 643 | set_startup_status(0.03f, "Initializing Multimedia...", gAgent.mMOTD.c_str()); |
643 | display_startup(); | 644 | display_startup(); |
644 | LLViewerMedia::initClass(); | 645 | LLViewerMedia::initClass(); |
@@ -656,7 +657,7 @@ BOOL idle_startup() | |||
656 | if (STATE_LOGIN_SHOW == LLStartUp::getStartupState()) | 657 | if (STATE_LOGIN_SHOW == LLStartUp::getStartupState()) |
657 | { | 658 | { |
658 | 659 | ||
659 | llinfos << "Initializing Window" << llendl; | 660 | LL_DEBUGS("AppInit") << "Initializing Window" << LL_ENDL; |
660 | 661 | ||
661 | gViewerWindow->getWindow()->setCursor(UI_CURSOR_ARROW); | 662 | gViewerWindow->getWindow()->setCursor(UI_CURSOR_ARROW); |
662 | // Push our window frontmost | 663 | // Push our window frontmost |
@@ -667,11 +668,13 @@ BOOL idle_startup() | |||
667 | if (show_connect_box) | 668 | if (show_connect_box) |
668 | { | 669 | { |
669 | // Load all the name information out of the login view | 670 | // Load all the name information out of the login view |
670 | LLPanelLogin::getFields(firstname, lastname, password, remember_password); | 671 | // NOTE: Hits "Attempted getFields with no login view shown" warning, since we don't |
672 | // show the login view until login_show() is called below. | ||
673 | // LLPanelLogin::getFields(firstname, lastname, password, remember_password); | ||
671 | 674 | ||
672 | if (gNoRender) | 675 | if (gNoRender) |
673 | { | 676 | { |
674 | llerrs << "Need to autologin or use command line with norender!" << llendl; | 677 | LL_ERRS("AppInit") << "Need to autologin or use command line with norender!" << LL_ENDL; |
675 | } | 678 | } |
676 | // Make sure the process dialog doesn't hide things | 679 | // Make sure the process dialog doesn't hide things |
677 | gViewerWindow->setShowProgress(FALSE); | 680 | gViewerWindow->setShowProgress(FALSE); |
@@ -764,7 +767,7 @@ BOOL idle_startup() | |||
764 | } | 767 | } |
765 | gSavedSettings.setBOOL("RememberPassword", remember_password); | 768 | gSavedSettings.setBOOL("RememberPassword", remember_password); |
766 | 769 | ||
767 | llinfos << "Attempting login as: " << firstname << " " << lastname << llendl; | 770 | LL_INFOS("AppInit") << "Attempting login as: " << firstname << " " << lastname << LL_ENDL; |
768 | gDebugInfo["LoginName"] = firstname + " " + lastname; | 771 | gDebugInfo["LoginName"] = firstname + " " + lastname; |
769 | } | 772 | } |
770 | 773 | ||
@@ -812,22 +815,28 @@ BOOL idle_startup() | |||
812 | LLString server_label; | 815 | LLString server_label; |
813 | S32 domain_name_index; | 816 | S32 domain_name_index; |
814 | BOOL user_picked_server = LLPanelLogin::getServer( server_label, domain_name_index ); | 817 | BOOL user_picked_server = LLPanelLogin::getServer( server_label, domain_name_index ); |
815 | gGridChoice = (EGridInfo) domain_name_index; | 818 | if((EGridInfo)domain_name_index == GRID_INFO_OTHER) |
816 | gSavedSettings.setS32("ServerChoice", gGridChoice); | ||
817 | if (gGridChoice == GRID_INFO_OTHER) | ||
818 | { | 819 | { |
819 | gGridName = server_label;/* Flawfinder: ignore */ | 820 | // Since the grid chosen was an 'other', set the choice by string. |
821 | LLViewerLogin::getInstance()->setGridChoice(server_label); | ||
822 | } | ||
823 | else | ||
824 | { | ||
825 | // Set the choice according to index. | ||
826 | LLViewerLogin::getInstance()->setGridChoice((EGridInfo)domain_name_index); | ||
820 | } | 827 | } |
821 | 828 | ||
822 | if ( user_picked_server ) | 829 | if ( user_picked_server ) |
823 | { // User picked a grid from the popup, so clear the stored urls and they will be re-generated from gGridChoice | 830 | { // User picked a grid from the popup, so clear the |
831 | // stored uris and they will be re-generated from the GridChoice | ||
824 | sAuthUris.clear(); | 832 | sAuthUris.clear(); |
825 | LLAppViewer::instance()->resetURIs(); | 833 | LLViewerLogin::getInstance()->resetURIs(); |
826 | } | 834 | } |
827 | 835 | ||
828 | LLString location; | 836 | LLString location; |
829 | LLPanelLogin::getLocation( location ); | 837 | LLPanelLogin::getLocation( location ); |
830 | LLURLSimString::setString( location ); | 838 | LLURLSimString::setString( location ); |
839 | |||
831 | // END TODO | 840 | // END TODO |
832 | LLPanelLogin::close(); | 841 | LLPanelLogin::close(); |
833 | } | 842 | } |
@@ -884,7 +893,7 @@ BOOL idle_startup() | |||
884 | 893 | ||
885 | // Poke the VFS, which could potentially block for a while if | 894 | // Poke the VFS, which could potentially block for a while if |
886 | // Windows XP is acting up | 895 | // Windows XP is acting up |
887 | set_startup_status(0.07f, "Verifying cache files (can take 60-90 seconds)...", NULL); | 896 | set_startup_status(0.07f, LLTrans::getString("LoginVerifyingCache").c_str(), NULL); |
888 | display_startup(); | 897 | display_startup(); |
889 | 898 | ||
890 | gVFS->pokeFiles(); | 899 | gVFS->pokeFiles(); |
@@ -907,10 +916,9 @@ BOOL idle_startup() | |||
907 | if(STATE_LOGIN_AUTH_INIT == LLStartUp::getStartupState()) | 916 | if(STATE_LOGIN_AUTH_INIT == LLStartUp::getStartupState()) |
908 | { | 917 | { |
909 | //#define LL_MINIMIAL_REQUESTED_OPTIONS | 918 | //#define LL_MINIMIAL_REQUESTED_OPTIONS |
910 | gDebugInfo["GridName"] = gGridInfo[gGridChoice].mLabel; | 919 | gDebugInfo["GridName"] = LLViewerLogin::getInstance()->getGridLabel(); |
911 | 920 | ||
912 | // *Note: this is where gUserAuth used to be created. | 921 | // *Note: this is where gUserAuth used to be created. |
913 | |||
914 | requested_options.clear(); | 922 | requested_options.clear(); |
915 | requested_options.push_back("inventory-root"); | 923 | requested_options.push_back("inventory-root"); |
916 | requested_options.push_back("inventory-skeleton"); | 924 | requested_options.push_back("inventory-skeleton"); |
@@ -942,7 +950,8 @@ BOOL idle_startup() | |||
942 | gSavedSettings.setBOOL("UseDebugMenus", TRUE); | 950 | gSavedSettings.setBOOL("UseDebugMenus", TRUE); |
943 | requested_options.push_back("god-connect"); | 951 | requested_options.push_back("god-connect"); |
944 | } | 952 | } |
945 | const std::vector<std::string>& uris = LLAppViewer::instance()->getLoginURIs(); | 953 | std::vector<std::string> uris; |
954 | LLViewerLogin::getInstance()->getLoginURIs(uris); | ||
946 | std::vector<std::string>::const_iterator iter, end; | 955 | std::vector<std::string>::const_iterator iter, end; |
947 | for (iter = uris.begin(), end = uris.end(); iter != end; ++iter) | 956 | for (iter = uris.begin(), end = uris.end(); iter != end; ++iter) |
948 | { | 957 | { |
@@ -953,15 +962,16 @@ BOOL idle_startup() | |||
953 | } | 962 | } |
954 | sAuthUriNum = 0; | 963 | sAuthUriNum = 0; |
955 | auth_method = "login_to_simulator"; | 964 | auth_method = "login_to_simulator"; |
956 | auth_desc = "Logging in. "; | 965 | |
957 | auth_desc += LLAppViewer::instance()->getSecondLifeTitle(); | 966 | LLString::format_map_t args; |
958 | auth_desc += " may appear frozen. Please wait."; | 967 | args["[APP_NAME]"] = LLAppViewer::instance()->getSecondLifeTitle(); |
968 | auth_desc = LLTrans::getString("LoginInProgress", args).c_str(); | ||
959 | LLStartUp::setStartupState( STATE_LOGIN_AUTHENTICATE ); | 969 | LLStartUp::setStartupState( STATE_LOGIN_AUTHENTICATE ); |
960 | } | 970 | } |
961 | 971 | ||
962 | if (STATE_LOGIN_AUTHENTICATE == LLStartUp::getStartupState()) | 972 | if (STATE_LOGIN_AUTHENTICATE == LLStartUp::getStartupState()) |
963 | { | 973 | { |
964 | lldebugs << "STATE_LOGIN_AUTHENTICATE" << llendl; | 974 | LL_DEBUGS("AppInit") << "STATE_LOGIN_AUTHENTICATE" << LL_ENDL; |
965 | set_startup_status(progress, auth_desc.c_str(), auth_message.c_str()); | 975 | set_startup_status(progress, auth_desc.c_str(), auth_message.c_str()); |
966 | progress += 0.02f; | 976 | progress += 0.02f; |
967 | display_startup(); | 977 | display_startup(); |
@@ -1021,7 +1031,7 @@ BOOL idle_startup() | |||
1021 | 1031 | ||
1022 | if(STATE_LOGIN_NO_DATA_YET == LLStartUp::getStartupState()) | 1032 | if(STATE_LOGIN_NO_DATA_YET == LLStartUp::getStartupState()) |
1023 | { | 1033 | { |
1024 | //lldebugs << "STATE_LOGIN_NO_DATA_YET" << llendl; | 1034 | LL_DEBUGS("AppInit") << "STATE_LOGIN_NO_DATA_YET" << LL_ENDL; |
1025 | // If we get here we have gotten past the potential stall | 1035 | // If we get here we have gotten past the potential stall |
1026 | // in curl, so take "may appear frozen" out of progress bar. JC | 1036 | // in curl, so take "may appear frozen" out of progress bar. JC |
1027 | auth_desc = "Logging in..."; | 1037 | auth_desc = "Logging in..."; |
@@ -1035,7 +1045,7 @@ BOOL idle_startup() | |||
1035 | LLUserAuth::UserAuthcode error = LLUserAuth::getInstance()->authResponse(); | 1045 | LLUserAuth::UserAuthcode error = LLUserAuth::getInstance()->authResponse(); |
1036 | if(LLUserAuth::E_NO_RESPONSE_YET == error) | 1046 | if(LLUserAuth::E_NO_RESPONSE_YET == error) |
1037 | { | 1047 | { |
1038 | //llinfos << "waiting..." << llendl; | 1048 | LL_DEBUGS("AppInit") << "waiting..." << LL_ENDL; |
1039 | return do_normal_idle; | 1049 | return do_normal_idle; |
1040 | } | 1050 | } |
1041 | LLStartUp::setStartupState( STATE_LOGIN_DOWNLOADING ); | 1051 | LLStartUp::setStartupState( STATE_LOGIN_DOWNLOADING ); |
@@ -1046,7 +1056,7 @@ BOOL idle_startup() | |||
1046 | 1056 | ||
1047 | if(STATE_LOGIN_DOWNLOADING == LLStartUp::getStartupState()) | 1057 | if(STATE_LOGIN_DOWNLOADING == LLStartUp::getStartupState()) |
1048 | { | 1058 | { |
1049 | lldebugs << "STATE_LOGIN_DOWNLOADING" << llendl; | 1059 | LL_DEBUGS("AppInit") << "STATE_LOGIN_DOWNLOADING" << LL_ENDL; |
1050 | // Process messages to keep from dropping circuit. | 1060 | // Process messages to keep from dropping circuit. |
1051 | LLMessageSystem* msg = gMessageSystem; | 1061 | LLMessageSystem* msg = gMessageSystem; |
1052 | while (msg->checkAllMessages(gFrameCount, gServicePump)) | 1062 | while (msg->checkAllMessages(gFrameCount, gServicePump)) |
@@ -1056,18 +1066,18 @@ BOOL idle_startup() | |||
1056 | LLUserAuth::UserAuthcode error = LLUserAuth::getInstance()->authResponse(); | 1066 | LLUserAuth::UserAuthcode error = LLUserAuth::getInstance()->authResponse(); |
1057 | if(LLUserAuth::E_DOWNLOADING == error) | 1067 | if(LLUserAuth::E_DOWNLOADING == error) |
1058 | { | 1068 | { |
1059 | //llinfos << "downloading..." << llendl; | 1069 | LL_DEBUGS("AppInit") << "downloading..." << LL_ENDL; |
1060 | return do_normal_idle; | 1070 | return do_normal_idle; |
1061 | } | 1071 | } |
1062 | LLStartUp::setStartupState( STATE_LOGIN_PROCESS_RESPONSE ); | 1072 | LLStartUp::setStartupState( STATE_LOGIN_PROCESS_RESPONSE ); |
1063 | progress += 0.01f; | 1073 | progress += 0.01f; |
1064 | set_startup_status(progress, "Processing Response...", auth_message.c_str()); | 1074 | set_startup_status(progress, LLTrans::getString("LoginProcessingResponse").c_str(), auth_message.c_str()); |
1065 | return do_normal_idle; | 1075 | return do_normal_idle; |
1066 | } | 1076 | } |
1067 | 1077 | ||
1068 | if(STATE_LOGIN_PROCESS_RESPONSE == LLStartUp::getStartupState()) | 1078 | if(STATE_LOGIN_PROCESS_RESPONSE == LLStartUp::getStartupState()) |
1069 | { | 1079 | { |
1070 | lldebugs << "STATE_LOGIN_PROCESS_RESPONSE" << llendl; | 1080 | LL_DEBUGS("AppInit") << "STATE_LOGIN_PROCESS_RESPONSE" << LL_ENDL; |
1071 | std::ostringstream emsg; | 1081 | std::ostringstream emsg; |
1072 | BOOL quit = FALSE; | 1082 | BOOL quit = FALSE; |
1073 | const char* login_response = NULL; | 1083 | const char* login_response = NULL; |
@@ -1089,18 +1099,18 @@ BOOL idle_startup() | |||
1089 | } | 1099 | } |
1090 | else if(login_response && (0 == strcmp(login_response, "indeterminate"))) | 1100 | else if(login_response && (0 == strcmp(login_response, "indeterminate"))) |
1091 | { | 1101 | { |
1092 | llinfos << "Indeterminate login..." << llendl; | 1102 | LL_INFOS("AppInit") << "Indeterminate login..." << LL_ENDL; |
1093 | sAuthUris = LLSRV::rewriteURI(LLUserAuth::getInstance()->getResponse("next_url")); | 1103 | sAuthUris = LLSRV::rewriteURI(LLUserAuth::getInstance()->getResponse("next_url")); |
1094 | sAuthUriNum = 0; | 1104 | sAuthUriNum = 0; |
1095 | auth_method = LLUserAuth::getInstance()->getResponse("next_method"); | 1105 | auth_method = LLUserAuth::getInstance()->getResponse("next_method"); |
1096 | auth_message = LLUserAuth::getInstance()->getResponse("message"); | 1106 | auth_message = LLUserAuth::getInstance()->getResponse("message"); |
1097 | if(auth_method.substr(0, 5) == "login") | 1107 | if(auth_method.substr(0, 5) == "login") |
1098 | { | 1108 | { |
1099 | auth_desc.assign("Authenticating..."); | 1109 | auth_desc.assign(LLTrans::getString("LoginAuthenticating").c_str()); |
1100 | } | 1110 | } |
1101 | else | 1111 | else |
1102 | { | 1112 | { |
1103 | auth_desc.assign("Performing account maintenance..."); | 1113 | auth_desc.assign(LLTrans::getString("LoginMaintenance").c_str()); |
1104 | } | 1114 | } |
1105 | // ignoring the duration & options array for now. | 1115 | // ignoring the duration & options array for now. |
1106 | // Go back to authenticate. | 1116 | // Go back to authenticate. |
@@ -1136,7 +1146,7 @@ BOOL idle_startup() | |||
1136 | { | 1146 | { |
1137 | if (show_connect_box) | 1147 | if (show_connect_box) |
1138 | { | 1148 | { |
1139 | llinfos << "Need tos agreement" << llendl; | 1149 | LL_DEBUGS("AppInit") << "Need tos agreement" << LL_ENDL; |
1140 | LLStartUp::setStartupState( STATE_UPDATE_CHECK ); | 1150 | LLStartUp::setStartupState( STATE_UPDATE_CHECK ); |
1141 | LLFloaterTOS* tos_dialog = LLFloaterTOS::show(LLFloaterTOS::TOS_TOS, | 1151 | LLFloaterTOS* tos_dialog = LLFloaterTOS::show(LLFloaterTOS::TOS_TOS, |
1142 | message_response); | 1152 | message_response); |
@@ -1153,7 +1163,7 @@ BOOL idle_startup() | |||
1153 | { | 1163 | { |
1154 | if (show_connect_box) | 1164 | if (show_connect_box) |
1155 | { | 1165 | { |
1156 | llinfos << "Need critical message" << llendl; | 1166 | LL_DEBUGS("AppInit") << "Need critical message" << LL_ENDL; |
1157 | LLStartUp::setStartupState( STATE_UPDATE_CHECK ); | 1167 | LLStartUp::setStartupState( STATE_UPDATE_CHECK ); |
1158 | LLFloaterTOS* tos_dialog = LLFloaterTOS::show(LLFloaterTOS::TOS_CRITICAL_MESSAGE, | 1168 | LLFloaterTOS* tos_dialog = LLFloaterTOS::show(LLFloaterTOS::TOS_CRITICAL_MESSAGE, |
1159 | message_response); | 1169 | message_response); |
@@ -1188,7 +1198,7 @@ BOOL idle_startup() | |||
1188 | } | 1198 | } |
1189 | if(reason_response && (0 == strcmp(reason_response, "optional"))) | 1199 | if(reason_response && (0 == strcmp(reason_response, "optional"))) |
1190 | { | 1200 | { |
1191 | llinfos << "Login got optional update" << llendl; | 1201 | LL_DEBUGS("AppInit") << "Login got optional update" << LL_ENDL; |
1192 | auth_message = LLUserAuth::getInstance()->getResponse("message"); | 1202 | auth_message = LLUserAuth::getInstance()->getResponse("message"); |
1193 | if (show_connect_box) | 1203 | if (show_connect_box) |
1194 | { | 1204 | { |
@@ -1213,9 +1223,9 @@ BOOL idle_startup() | |||
1213 | } else { | 1223 | } else { |
1214 | sAuthUriNum++; | 1224 | sAuthUriNum++; |
1215 | std::ostringstream s; | 1225 | std::ostringstream s; |
1216 | s << "Previous login attempt failed. Logging in, attempt " | 1226 | LLString::format_map_t args; |
1217 | << (sAuthUriNum + 1) << ". "; | 1227 | args["[NUMBER]"] = sAuthUriNum + 1; |
1218 | auth_desc = s.str(); | 1228 | auth_desc = LLTrans::getString("LoginAttempt", args).c_str(); |
1219 | LLStartUp::setStartupState( STATE_LOGIN_AUTHENTICATE ); | 1229 | LLStartUp::setStartupState( STATE_LOGIN_AUTHENTICATE ); |
1220 | return do_normal_idle; | 1230 | return do_normal_idle; |
1221 | } | 1231 | } |
@@ -1451,8 +1461,8 @@ BOOL idle_startup() | |||
1451 | { | 1461 | { |
1452 | if (gNoRender) | 1462 | if (gNoRender) |
1453 | { | 1463 | { |
1454 | llinfos << "Bad login - missing return values" << llendl; | 1464 | LL_WARNS("AppInit") << "Bad login - missing return values" << LL_ENDL; |
1455 | llinfos << emsg << llendl; | 1465 | LL_WARNS("AppInit") << emsg << LL_ENDL; |
1456 | exit(0); | 1466 | exit(0); |
1457 | } | 1467 | } |
1458 | // Bounce back to the login screen. | 1468 | // Bounce back to the login screen. |
@@ -1471,8 +1481,8 @@ BOOL idle_startup() | |||
1471 | { | 1481 | { |
1472 | if (gNoRender) | 1482 | if (gNoRender) |
1473 | { | 1483 | { |
1474 | llinfos << "Failed to login!" << llendl; | 1484 | LL_WARNS("AppInit") << "Failed to login!" << LL_ENDL; |
1475 | llinfos << emsg << llendl; | 1485 | LL_WARNS("AppInit") << emsg << LL_ENDL; |
1476 | exit(0); | 1486 | exit(0); |
1477 | } | 1487 | } |
1478 | // Bounce back to the login screen. | 1488 | // Bounce back to the login screen. |
@@ -1493,7 +1503,7 @@ BOOL idle_startup() | |||
1493 | //--------------------------------------------------------------------- | 1503 | //--------------------------------------------------------------------- |
1494 | if (STATE_WORLD_INIT == LLStartUp::getStartupState()) | 1504 | if (STATE_WORLD_INIT == LLStartUp::getStartupState()) |
1495 | { | 1505 | { |
1496 | set_startup_status(0.40f, "Initializing World...", gAgent.mMOTD.c_str()); | 1506 | set_startup_status(0.40f, LLTrans::getString("LoginInitializingWorld").c_str(), gAgent.mMOTD.c_str()); |
1497 | display_startup(); | 1507 | display_startup(); |
1498 | // We should have an agent id by this point. | 1508 | // We should have an agent id by this point. |
1499 | llassert(!(gAgentID == LLUUID::null)); | 1509 | llassert(!(gAgentID == LLUUID::null)); |
@@ -1541,11 +1551,11 @@ BOOL idle_startup() | |||
1541 | LLWorld::getInstance()->addRegion(first_sim_handle, first_sim); | 1551 | LLWorld::getInstance()->addRegion(first_sim_handle, first_sim); |
1542 | 1552 | ||
1543 | LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromHandle(first_sim_handle); | 1553 | LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromHandle(first_sim_handle); |
1544 | llinfos << "Adding initial simulator " << regionp->getOriginGlobal() << llendl; | 1554 | LL_INFOS("AppInit") << "Adding initial simulator " << regionp->getOriginGlobal() << LL_ENDL; |
1545 | 1555 | ||
1546 | LLStartUp::setStartupState( STATE_SEED_GRANTED_WAIT ); | 1556 | LLStartUp::setStartupState( STATE_SEED_GRANTED_WAIT ); |
1547 | regionp->setSeedCapability(first_sim_seed_cap); | 1557 | regionp->setSeedCapability(first_sim_seed_cap); |
1548 | llinfos << "Waiting for seed grant ...." << llendl; | 1558 | LL_DEBUGS("AppInit") << "Waiting for seed grant ...." << LL_ENDL; |
1549 | 1559 | ||
1550 | // Set agent's initial region to be the one we just created. | 1560 | // Set agent's initial region to be the one we just created. |
1551 | gAgent.setRegion(regionp); | 1561 | gAgent.setRegion(regionp); |
@@ -1613,7 +1623,7 @@ BOOL idle_startup() | |||
1613 | // | 1623 | // |
1614 | // Set message handlers | 1624 | // Set message handlers |
1615 | // | 1625 | // |
1616 | llinfos << "Initializing communications..." << llendl; | 1626 | LL_INFOS("AppInit") << "Initializing communications..." << LL_ENDL; |
1617 | 1627 | ||
1618 | // register callbacks for messages. . . do this after initial handshake to make sure that we don't catch any unwanted | 1628 | // register callbacks for messages. . . do this after initial handshake to make sure that we don't catch any unwanted |
1619 | register_viewer_callbacks(gMessageSystem); | 1629 | register_viewer_callbacks(gMessageSystem); |
@@ -1662,7 +1672,7 @@ BOOL idle_startup() | |||
1662 | 1672 | ||
1663 | // Sets up the parameters for the first simulator | 1673 | // Sets up the parameters for the first simulator |
1664 | 1674 | ||
1665 | llinfos << "Initializing camera..." << llendl; | 1675 | LL_DEBUGS("AppInit") << "Initializing camera..." << LL_ENDL; |
1666 | gFrameTime = totalTime(); | 1676 | gFrameTime = totalTime(); |
1667 | F32 last_time = gFrameTimeSeconds; | 1677 | F32 last_time = gFrameTimeSeconds; |
1668 | gFrameTimeSeconds = (S64)(gFrameTime - gStartTime)/SEC_TO_MICROSEC; | 1678 | gFrameTimeSeconds = (S64)(gFrameTime - gStartTime)/SEC_TO_MICROSEC; |
@@ -1697,19 +1707,19 @@ BOOL idle_startup() | |||
1697 | // Initialize global class data needed for surfaces (i.e. textures) | 1707 | // Initialize global class data needed for surfaces (i.e. textures) |
1698 | if (!gNoRender) | 1708 | if (!gNoRender) |
1699 | { | 1709 | { |
1700 | llinfos << "Initializing sky..." << llendl; | 1710 | LL_DEBUGS("AppInit") << "Initializing sky..." << LL_ENDL; |
1701 | // Initialize all of the viewer object classes for the first time (doing things like texture fetches. | 1711 | // Initialize all of the viewer object classes for the first time (doing things like texture fetches. |
1702 | gSky.init(initial_sun_direction); | 1712 | gSky.init(initial_sun_direction); |
1703 | } | 1713 | } |
1704 | 1714 | ||
1705 | llinfos << "Decoding images..." << llendl; | 1715 | LL_DEBUGS("AppInit") << "Decoding images..." << LL_ENDL; |
1706 | // For all images pre-loaded into viewer cache, decode them. | 1716 | // For all images pre-loaded into viewer cache, decode them. |
1707 | // Need to do this AFTER we init the sky | 1717 | // Need to do this AFTER we init the sky |
1708 | const S32 DECODE_TIME_SEC = 2; | 1718 | const S32 DECODE_TIME_SEC = 2; |
1709 | for (int i = 0; i < DECODE_TIME_SEC; i++) | 1719 | for (int i = 0; i < DECODE_TIME_SEC; i++) |
1710 | { | 1720 | { |
1711 | F32 frac = (F32)i / (F32)DECODE_TIME_SEC; | 1721 | F32 frac = (F32)i / (F32)DECODE_TIME_SEC; |
1712 | set_startup_status(0.45f + frac*0.1f, "Decoding images...", gAgent.mMOTD.c_str()); | 1722 | set_startup_status(0.45f + frac*0.1f, LLTrans::getString("LoginDecodingImages").c_str(), gAgent.mMOTD.c_str()); |
1713 | display_startup(); | 1723 | display_startup(); |
1714 | gImageList.decodeAllImages(1.f); | 1724 | gImageList.decodeAllImages(1.f); |
1715 | } | 1725 | } |
@@ -1720,14 +1730,14 @@ BOOL idle_startup() | |||
1720 | LLMessageSystem* msg = gMessageSystem; | 1730 | LLMessageSystem* msg = gMessageSystem; |
1721 | if (!msg->mOurCircuitCode) | 1731 | if (!msg->mOurCircuitCode) |
1722 | { | 1732 | { |
1723 | llwarns << "Attempting to connect to simulator with a zero circuit code!" << llendl; | 1733 | LL_WARNS("AppInit") << "Attempting to connect to simulator with a zero circuit code!" << LL_ENDL; |
1724 | } | 1734 | } |
1725 | 1735 | ||
1726 | gUseCircuitCallbackCalled = FALSE; | 1736 | gUseCircuitCallbackCalled = FALSE; |
1727 | 1737 | ||
1728 | msg->enableCircuit(first_sim, TRUE); | 1738 | msg->enableCircuit(first_sim, TRUE); |
1729 | // now, use the circuit info to tell simulator about us! | 1739 | // now, use the circuit info to tell simulator about us! |
1730 | llinfos << "viewer: UserLoginLocationReply() Enabling " << first_sim << " with code " << msg->mOurCircuitCode << llendl; | 1740 | LL_INFOS("AppInit") << "viewer: UserLoginLocationReply() Enabling " << first_sim << " with code " << msg->mOurCircuitCode << LL_ENDL; |
1731 | msg->newMessageFast(_PREHASH_UseCircuitCode); | 1741 | msg->newMessageFast(_PREHASH_UseCircuitCode); |
1732 | msg->nextBlockFast(_PREHASH_CircuitCode); | 1742 | msg->nextBlockFast(_PREHASH_CircuitCode); |
1733 | msg->addU32Fast(_PREHASH_Code, msg->mOurCircuitCode); | 1743 | msg->addU32Fast(_PREHASH_Code, msg->mOurCircuitCode); |
@@ -1753,8 +1763,8 @@ BOOL idle_startup() | |||
1753 | //--------------------------------------------------------------------- | 1763 | //--------------------------------------------------------------------- |
1754 | if(STATE_WORLD_WAIT == LLStartUp::getStartupState()) | 1764 | if(STATE_WORLD_WAIT == LLStartUp::getStartupState()) |
1755 | { | 1765 | { |
1756 | //llinfos << "Waiting for simulator ack...." << llendl; | 1766 | LL_DEBUGS("AppInit") << "Waiting for simulator ack...." << LL_ENDL; |
1757 | set_startup_status(0.59f, "Waiting for region handshake...", gAgent.mMOTD.c_str()); | 1767 | set_startup_status(0.59f, LLTrans::getString("LoginWaitingForRegionHandshake").c_str(), gAgent.mMOTD.c_str()); |
1758 | if(gGotUseCircuitCodeAck) | 1768 | if(gGotUseCircuitCodeAck) |
1759 | { | 1769 | { |
1760 | LLStartUp::setStartupState( STATE_AGENT_SEND ); | 1770 | LLStartUp::setStartupState( STATE_AGENT_SEND ); |
@@ -1772,8 +1782,8 @@ BOOL idle_startup() | |||
1772 | //--------------------------------------------------------------------- | 1782 | //--------------------------------------------------------------------- |
1773 | if (STATE_AGENT_SEND == LLStartUp::getStartupState()) | 1783 | if (STATE_AGENT_SEND == LLStartUp::getStartupState()) |
1774 | { | 1784 | { |
1775 | llinfos << "Connecting to region..." << llendl; | 1785 | LL_DEBUGS("AppInit") << "Connecting to region..." << LL_ENDL; |
1776 | set_startup_status(0.60f, "Connecting to region...", gAgent.mMOTD.c_str()); | 1786 | set_startup_status(0.60f, LLTrans::getString("LoginConnectingToRegion").c_str(), gAgent.mMOTD.c_str()); |
1777 | // register with the message system so it knows we're | 1787 | // register with the message system so it knows we're |
1778 | // expecting this message | 1788 | // expecting this message |
1779 | LLMessageSystem* msg = gMessageSystem; | 1789 | LLMessageSystem* msg = gMessageSystem; |
@@ -1824,8 +1834,8 @@ BOOL idle_startup() | |||
1824 | } | 1834 | } |
1825 | else | 1835 | else |
1826 | { | 1836 | { |
1827 | //llinfos << "Awaiting AvatarInitComplete, got " | 1837 | LL_DEBUGS("AppInit") << "Awaiting AvatarInitComplete, got " |
1828 | //<< msg->getMessageName() << llendl; | 1838 | << msg->getMessageName() << LL_ENDL; |
1829 | } | 1839 | } |
1830 | } | 1840 | } |
1831 | msg->processAcks(); | 1841 | msg->processAcks(); |
@@ -1877,7 +1887,7 @@ BOOL idle_startup() | |||
1877 | { | 1887 | { |
1878 | if(!gInventory.loadSkeleton(options, gInventoryLibraryOwner)) | 1888 | if(!gInventory.loadSkeleton(options, gInventoryLibraryOwner)) |
1879 | { | 1889 | { |
1880 | llwarns << "Problem loading inventory-skel-lib" << llendl; | 1890 | LL_WARNS("AppInit") << "Problem loading inventory-skel-lib" << LL_ENDL; |
1881 | } | 1891 | } |
1882 | } | 1892 | } |
1883 | options.clear(); | 1893 | options.clear(); |
@@ -1885,8 +1895,7 @@ BOOL idle_startup() | |||
1885 | { | 1895 | { |
1886 | if(!gInventory.loadSkeleton(options, gAgent.getID())) | 1896 | if(!gInventory.loadSkeleton(options, gAgent.getID())) |
1887 | { | 1897 | { |
1888 | llwarns << "Problem loading inventory-skel-targets" | 1898 | LL_WARNS("AppInit") << "Problem loading inventory-skel-targets" << LL_ENDL; |
1889 | << llendl; | ||
1890 | } | 1899 | } |
1891 | } | 1900 | } |
1892 | 1901 | ||
@@ -2038,17 +2047,17 @@ BOOL idle_startup() | |||
2038 | if (rate_bps > FASTER_RATE_BPS | 2047 | if (rate_bps > FASTER_RATE_BPS |
2039 | && rate_bps > max_bandwidth) | 2048 | && rate_bps > max_bandwidth) |
2040 | { | 2049 | { |
2041 | llinfos << "Fast network connection, increasing max bandwidth to " | 2050 | LL_DEBUGS("AppInit") << "Fast network connection, increasing max bandwidth to " |
2042 | << FASTER_RATE_BPS/1024.f | 2051 | << FASTER_RATE_BPS/1024.f |
2043 | << " kbps" << llendl; | 2052 | << " kbps" << LL_ENDL; |
2044 | gViewerThrottle.setMaxBandwidth(FASTER_RATE_BPS / 1024.f); | 2053 | gViewerThrottle.setMaxBandwidth(FASTER_RATE_BPS / 1024.f); |
2045 | } | 2054 | } |
2046 | else if (rate_bps > FAST_RATE_BPS | 2055 | else if (rate_bps > FAST_RATE_BPS |
2047 | && rate_bps > max_bandwidth) | 2056 | && rate_bps > max_bandwidth) |
2048 | { | 2057 | { |
2049 | llinfos << "Fast network connection, increasing max bandwidth to " | 2058 | LL_DEBUGS("AppInit") << "Fast network connection, increasing max bandwidth to " |
2050 | << FAST_RATE_BPS/1024.f | 2059 | << FAST_RATE_BPS/1024.f |
2051 | << " kbps" << llendl; | 2060 | << " kbps" << LL_ENDL; |
2052 | gViewerThrottle.setMaxBandwidth(FAST_RATE_BPS / 1024.f); | 2061 | gViewerThrottle.setMaxBandwidth(FAST_RATE_BPS / 1024.f); |
2053 | } | 2062 | } |
2054 | } | 2063 | } |
@@ -2080,8 +2089,8 @@ BOOL idle_startup() | |||
2080 | LLUserAuth::options_t gesture_options; | 2089 | LLUserAuth::options_t gesture_options; |
2081 | if (LLUserAuth::getInstance()->getOptions("gestures", gesture_options)) | 2090 | if (LLUserAuth::getInstance()->getOptions("gestures", gesture_options)) |
2082 | { | 2091 | { |
2083 | llinfos << "Gesture Manager loading " << gesture_options.size() | 2092 | LL_DEBUGS("AppInit") << "Gesture Manager loading " << gesture_options.size() |
2084 | << llendl; | 2093 | << LL_ENDL; |
2085 | std::vector<LLUUID> item_ids; | 2094 | std::vector<LLUUID> item_ids; |
2086 | LLUserAuth::options_t::iterator resp_it; | 2095 | LLUserAuth::options_t::iterator resp_it; |
2087 | for (resp_it = gesture_options.begin(); | 2096 | for (resp_it = gesture_options.begin(); |
@@ -2134,7 +2143,7 @@ BOOL idle_startup() | |||
2134 | msg->setHandlerFuncFast(_PREHASH_AttachedSound, process_attached_sound); | 2143 | msg->setHandlerFuncFast(_PREHASH_AttachedSound, process_attached_sound); |
2135 | msg->setHandlerFuncFast(_PREHASH_AttachedSoundGainChange, process_attached_sound_gain_change); | 2144 | msg->setHandlerFuncFast(_PREHASH_AttachedSoundGainChange, process_attached_sound_gain_change); |
2136 | 2145 | ||
2137 | llinfos << "Initialization complete" << llendl; | 2146 | LL_DEBUGS("AppInit") << "Initialization complete" << LL_ENDL; |
2138 | 2147 | ||
2139 | gRenderStartTime.reset(); | 2148 | gRenderStartTime.reset(); |
2140 | gForegroundTime.reset(); | 2149 | gForegroundTime.reset(); |
@@ -2249,7 +2258,7 @@ BOOL idle_startup() | |||
2249 | { | 2258 | { |
2250 | update_texture_fetch(); | 2259 | update_texture_fetch(); |
2251 | set_startup_status(0.f + 0.25f * wearables_time / MAX_WEARABLES_TIME, | 2260 | set_startup_status(0.f + 0.25f * wearables_time / MAX_WEARABLES_TIME, |
2252 | "Downloading clothing...", | 2261 | LLTrans::getString("LoginDownloadingClothing").c_str(), |
2253 | gAgent.mMOTD.c_str()); | 2262 | gAgent.mMOTD.c_str()); |
2254 | } | 2263 | } |
2255 | return do_normal_idle; | 2264 | return do_normal_idle; |
@@ -2271,7 +2280,7 @@ BOOL idle_startup() | |||
2271 | gViewerWindow->showCursor(); | 2280 | gViewerWindow->showCursor(); |
2272 | gViewerWindow->getWindow()->resetBusyCount(); | 2281 | gViewerWindow->getWindow()->resetBusyCount(); |
2273 | gViewerWindow->getWindow()->setCursor(UI_CURSOR_ARROW); | 2282 | gViewerWindow->getWindow()->setCursor(UI_CURSOR_ARROW); |
2274 | //llinfos << "Done releasing bitmap" << llendl; | 2283 | LL_DEBUGS("AppInit") << "Done releasing bitmap" << LL_ENDL; |
2275 | gViewerWindow->setShowProgress(FALSE); | 2284 | gViewerWindow->setShowProgress(FALSE); |
2276 | gViewerWindow->setProgressCancelButtonVisible(FALSE, ""); | 2285 | gViewerWindow->setProgressCancelButtonVisible(FALSE, ""); |
2277 | 2286 | ||
@@ -2293,7 +2302,7 @@ BOOL idle_startup() | |||
2293 | if (gSavedSettings.getBOOL("StatsAutoRun")) | 2302 | if (gSavedSettings.getBOOL("StatsAutoRun")) |
2294 | { | 2303 | { |
2295 | LLUUID id; | 2304 | LLUUID id; |
2296 | llinfos << "Starting automatic playback" << llendl; | 2305 | LL_DEBUGS("AppInit") << "Starting automatic playback" << LL_ENDL; |
2297 | gAgentPilot.startPlayback(); | 2306 | gAgentPilot.startPlayback(); |
2298 | } | 2307 | } |
2299 | 2308 | ||
@@ -2309,9 +2318,9 @@ BOOL idle_startup() | |||
2309 | // Unmute audio if desired and setup volumes. | 2318 | // Unmute audio if desired and setup volumes. |
2310 | // This is a not-uncommon crash site, so surround it with | 2319 | // This is a not-uncommon crash site, so surround it with |
2311 | // llinfos output to aid diagnosis. | 2320 | // llinfos output to aid diagnosis. |
2312 | llinfos << "Doing first audio_update_volume..." << llendl; | 2321 | LL_INFOS("AppInit") << "Doing first audio_update_volume..." << LL_ENDL; |
2313 | audio_update_volume(); | 2322 | audio_update_volume(); |
2314 | llinfos << "Done first audio_update_volume." << llendl; | 2323 | LL_INFOS("AppInit") << "Done first audio_update_volume." << LL_ENDL; |
2315 | 2324 | ||
2316 | // reset keyboard focus to sane state of pointing at world | 2325 | // reset keyboard focus to sane state of pointing at world |
2317 | gFocusMgr.setKeyboardFocus(NULL); | 2326 | gFocusMgr.setKeyboardFocus(NULL); |
@@ -2320,10 +2329,12 @@ BOOL idle_startup() | |||
2320 | gDebugView->mFastTimerView->setVisible(TRUE); | 2329 | gDebugView->mFastTimerView->setVisible(TRUE); |
2321 | #endif | 2330 | #endif |
2322 | 2331 | ||
2332 | LLAppViewer::instance()->startMainloopTimeout(); | ||
2333 | |||
2323 | return do_normal_idle; | 2334 | return do_normal_idle; |
2324 | } | 2335 | } |
2325 | 2336 | ||
2326 | llwarns << "Reached end of idle_startup for state " << LLStartUp::getStartupState() << llendl; | 2337 | LL_WARNS("AppInit") << "Reached end of idle_startup for state " << LLStartUp::getStartupState() << LL_ENDL; |
2327 | return do_normal_idle; | 2338 | return do_normal_idle; |
2328 | } | 2339 | } |
2329 | 2340 | ||
@@ -2333,7 +2344,7 @@ BOOL idle_startup() | |||
2333 | 2344 | ||
2334 | void login_show() | 2345 | void login_show() |
2335 | { | 2346 | { |
2336 | llinfos << "Initializing Login Screen" << llendl; | 2347 | LL_INFOS("AppInit") << "Initializing Login Screen" << LL_ENDL; |
2337 | 2348 | ||
2338 | #ifdef LL_RELEASE_FOR_DOWNLOAD | 2349 | #ifdef LL_RELEASE_FOR_DOWNLOAD |
2339 | BOOL bUseDebugLogin = gSavedSettings.getBOOL("UseDebugLogin"); | 2350 | BOOL bUseDebugLogin = gSavedSettings.getBOOL("UseDebugLogin"); |
@@ -2347,35 +2358,15 @@ void login_show() | |||
2347 | 2358 | ||
2348 | // UI textures have been previously loaded in doPreloadImages() | 2359 | // UI textures have been previously loaded in doPreloadImages() |
2349 | 2360 | ||
2350 | llinfos << "Setting Servers" << llendl; | 2361 | LL_DEBUGS("AppInit") << "Setting Servers" << LL_ENDL; |
2351 | 2362 | ||
2352 | if( GRID_INFO_OTHER == gGridChoice ) | 2363 | LLPanelLogin::addServer(LLViewerLogin::getInstance()->getGridLabel().c_str(), LLViewerLogin::getInstance()->getGridChoice()); |
2353 | { | 2364 | |
2354 | LLPanelLogin::addServer( gGridName.c_str(), GRID_INFO_OTHER ); | 2365 | LLViewerLogin* vl = LLViewerLogin::getInstance(); |
2355 | } | 2366 | for(int grid_index = GRID_INFO_ADITI; grid_index < GRID_INFO_OTHER; ++grid_index) |
2356 | else | ||
2357 | { | 2367 | { |
2358 | LLPanelLogin::addServer( gGridInfo[gGridChoice].mLabel, gGridChoice ); | 2368 | LLPanelLogin::addServer(vl->getKnownGridLabel((EGridInfo)grid_index).c_str(), grid_index); |
2359 | } | 2369 | } |
2360 | |||
2361 | // Arg! We hate loops! | ||
2362 | LLPanelLogin::addServer( gGridInfo[GRID_INFO_ADITI].mLabel, GRID_INFO_ADITI ); | ||
2363 | LLPanelLogin::addServer( gGridInfo[GRID_INFO_AGNI].mLabel, GRID_INFO_AGNI ); | ||
2364 | LLPanelLogin::addServer( gGridInfo[GRID_INFO_ARUNA].mLabel, GRID_INFO_ARUNA ); | ||
2365 | LLPanelLogin::addServer( gGridInfo[GRID_INFO_DURGA].mLabel, GRID_INFO_DURGA ); | ||
2366 | LLPanelLogin::addServer( gGridInfo[GRID_INFO_GANGA].mLabel, GRID_INFO_GANGA ); | ||
2367 | LLPanelLogin::addServer( gGridInfo[GRID_INFO_MITRA].mLabel, GRID_INFO_MITRA ); | ||
2368 | LLPanelLogin::addServer( gGridInfo[GRID_INFO_MOHINI].mLabel, GRID_INFO_MOHINI ); | ||
2369 | LLPanelLogin::addServer( gGridInfo[GRID_INFO_NANDI].mLabel, GRID_INFO_NANDI ); | ||
2370 | LLPanelLogin::addServer( gGridInfo[GRID_INFO_RADHA].mLabel, GRID_INFO_RADHA ); | ||
2371 | LLPanelLogin::addServer( gGridInfo[GRID_INFO_RAVI].mLabel, GRID_INFO_RAVI ); | ||
2372 | LLPanelLogin::addServer( gGridInfo[GRID_INFO_SIVA].mLabel, GRID_INFO_SIVA ); | ||
2373 | LLPanelLogin::addServer( gGridInfo[GRID_INFO_SHAKTI].mLabel, GRID_INFO_SHAKTI ); | ||
2374 | LLPanelLogin::addServer( gGridInfo[GRID_INFO_SOMA].mLabel, GRID_INFO_SOMA ); | ||
2375 | LLPanelLogin::addServer( gGridInfo[GRID_INFO_UMA].mLabel, GRID_INFO_UMA ); | ||
2376 | LLPanelLogin::addServer( gGridInfo[GRID_INFO_VAAK].mLabel, GRID_INFO_VAAK ); | ||
2377 | LLPanelLogin::addServer( gGridInfo[GRID_INFO_YAMI].mLabel, GRID_INFO_YAMI ); | ||
2378 | LLPanelLogin::addServer( gGridInfo[GRID_INFO_LOCAL].mLabel, GRID_INFO_LOCAL ); | ||
2379 | } | 2370 | } |
2380 | 2371 | ||
2381 | // Callback for when login screen is closed. Option 0 = connect, option 1 = quit. | 2372 | // Callback for when login screen is closed. Option 0 = connect, option 1 = quit. |
@@ -2416,7 +2407,7 @@ void login_callback(S32 option, void *userdata) | |||
2416 | } | 2407 | } |
2417 | else | 2408 | else |
2418 | { | 2409 | { |
2419 | llwarns << "Unknown login button clicked" << llendl; | 2410 | LL_WARNS("AppInit") << "Unknown login button clicked" << LL_ENDL; |
2420 | } | 2411 | } |
2421 | } | 2412 | } |
2422 | 2413 | ||
@@ -2437,7 +2428,7 @@ LLString load_password_from_disk() | |||
2437 | 2428 | ||
2438 | std::string filepath = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, | 2429 | std::string filepath = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, |
2439 | "password.dat"); | 2430 | "password.dat"); |
2440 | FILE* fp = LLFile::fopen(filepath.c_str(), "rb"); /* Flawfinder: ignore */ | 2431 | LLFILE* fp = LLFile::fopen(filepath.c_str(), "rb"); /* Flawfinder: ignore */ |
2441 | if (!fp) | 2432 | if (!fp) |
2442 | { | 2433 | { |
2443 | return hashed_password; | 2434 | return hashed_password; |
@@ -2484,7 +2475,7 @@ void save_password_to_disk(const char* hashed_password) | |||
2484 | } | 2475 | } |
2485 | else | 2476 | else |
2486 | { | 2477 | { |
2487 | FILE* fp = LLFile::fopen(filepath.c_str(), "wb"); /* Flawfinder: ignore */ | 2478 | LLFILE* fp = LLFile::fopen(filepath.c_str(), "wb"); /* Flawfinder: ignore */ |
2488 | if (!fp) | 2479 | if (!fp) |
2489 | { | 2480 | { |
2490 | return; | 2481 | return; |
@@ -2501,7 +2492,7 @@ void save_password_to_disk(const char* hashed_password) | |||
2501 | 2492 | ||
2502 | if (fwrite(buffer, HASHED_LENGTH, 1, fp) != 1) | 2493 | if (fwrite(buffer, HASHED_LENGTH, 1, fp) != 1) |
2503 | { | 2494 | { |
2504 | llwarns << "Short write" << llendl; | 2495 | LL_WARNS("AppInit") << "Short write" << LL_ENDL; |
2505 | } | 2496 | } |
2506 | 2497 | ||
2507 | fclose(fp); | 2498 | fclose(fp); |
@@ -2551,7 +2542,7 @@ void first_run_dialog_callback(S32 option, void* userdata) | |||
2551 | { | 2542 | { |
2552 | if (0 == option) | 2543 | if (0 == option) |
2553 | { | 2544 | { |
2554 | llinfos << "First run dialog cancelling" << llendl; | 2545 | LL_DEBUGS("AppInit") << "First run dialog cancelling" << LL_ENDL; |
2555 | LLWeb::loadURL( CREATE_ACCOUNT_URL ); | 2546 | LLWeb::loadURL( CREATE_ACCOUNT_URL ); |
2556 | } | 2547 | } |
2557 | 2548 | ||
@@ -2584,7 +2575,7 @@ void login_alert_status(S32 option, void* user_data) | |||
2584 | LLStartUp::setStartupState( STATE_LOGIN_CLEANUP ); | 2575 | LLStartUp::setStartupState( STATE_LOGIN_CLEANUP ); |
2585 | break; | 2576 | break; |
2586 | default: | 2577 | default: |
2587 | llwarns << "Missing case in login_alert_status switch" << llendl; | 2578 | LL_WARNS("AppInit") << "Missing case in login_alert_status switch" << LL_ENDL; |
2588 | } | 2579 | } |
2589 | 2580 | ||
2590 | LLPanelLogin::giveFocus(); | 2581 | LLPanelLogin::giveFocus(); |
@@ -2692,7 +2683,7 @@ void update_dialog_callback(S32 option, void *userdata) | |||
2692 | #endif | 2683 | #endif |
2693 | // *TODO change userserver to be grid on both viewer and sim, since | 2684 | // *TODO change userserver to be grid on both viewer and sim, since |
2694 | // userserver no longer exists. | 2685 | // userserver no longer exists. |
2695 | query_map["userserver"] = gGridName; | 2686 | query_map["userserver"] = LLViewerLogin::getInstance()->getGridLabel(); |
2696 | query_map["channel"] = gSavedSettings.getString("VersionChannelName"); | 2687 | query_map["channel"] = gSavedSettings.getString("VersionChannelName"); |
2697 | // *TODO constantize this guy | 2688 | // *TODO constantize this guy |
2698 | LLURI update_url = LLURI::buildHTTP("secondlife.com", 80, "update.php", query_map); | 2689 | LLURI update_url = LLURI::buildHTTP("secondlife.com", 80, "update.php", query_map); |
@@ -2702,7 +2693,7 @@ void update_dialog_callback(S32 option, void *userdata) | |||
2702 | if (update_exe_path.empty()) | 2693 | if (update_exe_path.empty()) |
2703 | { | 2694 | { |
2704 | // We're hosed, bail | 2695 | // We're hosed, bail |
2705 | llwarns << "LLDir::getTempFilename() failed" << llendl; | 2696 | LL_WARNS("AppInit") << "LLDir::getTempFilename() failed" << LL_ENDL; |
2706 | LLAppViewer::instance()->forceQuit(); | 2697 | LLAppViewer::instance()->forceQuit(); |
2707 | return; | 2698 | return; |
2708 | } | 2699 | } |
@@ -2713,14 +2704,14 @@ void update_dialog_callback(S32 option, void *userdata) | |||
2713 | updater_source += gDirUtilp->getDirDelimiter(); | 2704 | updater_source += gDirUtilp->getDirDelimiter(); |
2714 | updater_source += "updater.exe"; | 2705 | updater_source += "updater.exe"; |
2715 | 2706 | ||
2716 | llinfos << "Calling CopyFile source: " << updater_source.c_str() | 2707 | LL_DEBUGS("AppInit") << "Calling CopyFile source: " << updater_source.c_str() |
2717 | << " dest: " << update_exe_path | 2708 | << " dest: " << update_exe_path |
2718 | << llendl; | 2709 | << LL_ENDL; |
2719 | 2710 | ||
2720 | 2711 | ||
2721 | if (!CopyFileA(updater_source.c_str(), update_exe_path.c_str(), FALSE)) | 2712 | if (!CopyFileA(updater_source.c_str(), update_exe_path.c_str(), FALSE)) |
2722 | { | 2713 | { |
2723 | llinfos << "Unable to copy the updater!" << llendl; | 2714 | LL_WARNS("AppInit") << "Unable to copy the updater!" << LL_ENDL; |
2724 | LLAppViewer::instance()->forceQuit(); | 2715 | LLAppViewer::instance()->forceQuit(); |
2725 | return; | 2716 | return; |
2726 | } | 2717 | } |
@@ -2758,14 +2749,14 @@ void update_dialog_callback(S32 option, void *userdata) | |||
2758 | params << " -program \"" << program_name << "\""; | 2749 | params << " -program \"" << program_name << "\""; |
2759 | } | 2750 | } |
2760 | 2751 | ||
2761 | llinfos << "Calling updater: " << update_exe_path << " " << params.str() << llendl; | 2752 | LL_DEBUGS("AppInit") << "Calling updater: " << update_exe_path << " " << params.str() << LL_ENDL; |
2762 | 2753 | ||
2763 | //Explicitly remove the marker file, otherwise we pass the lock onto the child process and things get weird. | 2754 | //Explicitly remove the marker file, otherwise we pass the lock onto the child process and things get weird. |
2764 | LLAppViewer::instance()->removeMarkerFile(); // In case updater fails | 2755 | LLAppViewer::instance()->removeMarkerFile(); // In case updater fails |
2765 | 2756 | ||
2766 | // Use spawn() to run asynchronously | 2757 | // Use spawn() to run asynchronously |
2767 | int retval = _spawnl(_P_NOWAIT, update_exe_path.c_str(), update_exe_path.c_str(), params.str().c_str(), NULL); | 2758 | int retval = _spawnl(_P_NOWAIT, update_exe_path.c_str(), update_exe_path.c_str(), params.str().c_str(), NULL); |
2768 | llinfos << "Spawn returned " << retval << llendl; | 2759 | LL_DEBUGS("AppInit") << "Spawn returned " << retval << LL_ENDL; |
2769 | 2760 | ||
2770 | #elif LL_DARWIN | 2761 | #elif LL_DARWIN |
2771 | // if a sim name was passed in via command line parameter (typically through a SLURL) | 2762 | // if a sim name was passed in via command line parameter (typically through a SLURL) |
@@ -2783,11 +2774,8 @@ void update_dialog_callback(S32 option, void *userdata) | |||
2783 | update_exe_path += LLAppViewer::instance()->getSecondLifeTitle(); | 2774 | update_exe_path += LLAppViewer::instance()->getSecondLifeTitle(); |
2784 | update_exe_path += "\" &"; | 2775 | update_exe_path += "\" &"; |
2785 | 2776 | ||
2786 | llinfos << "Calling updater: " << update_exe_path << llendl; | 2777 | LL_DEBUGS("AppInit") << "Calling updater: " << update_exe_path << LL_ENDL; |
2787 | 2778 | ||
2788 | // *REMOVE:Mani The following call is handled through ~LLAppViewer. | ||
2789 | // remove_marker_file(); // In case updater fails | ||
2790 | |||
2791 | // Run the auto-updater. | 2779 | // Run the auto-updater. |
2792 | system(update_exe_path.c_str()); /* Flawfinder: ignore */ | 2780 | system(update_exe_path.c_str()); /* Flawfinder: ignore */ |
2793 | 2781 | ||
@@ -2795,10 +2783,6 @@ void update_dialog_callback(S32 option, void *userdata) | |||
2795 | OSMessageBox("Automatic updating is not yet implemented for Linux.\n" | 2783 | OSMessageBox("Automatic updating is not yet implemented for Linux.\n" |
2796 | "Please download the latest version from www.secondlife.com.", | 2784 | "Please download the latest version from www.secondlife.com.", |
2797 | NULL, OSMB_OK); | 2785 | NULL, OSMB_OK); |
2798 | |||
2799 | // *REMOVE:Mani The following call is handled through ~LLAppViewer. | ||
2800 | // remove_marker_file(); | ||
2801 | |||
2802 | #endif | 2786 | #endif |
2803 | LLAppViewer::instance()->forceQuit(); | 2787 | LLAppViewer::instance()->forceQuit(); |
2804 | } | 2788 | } |
@@ -2813,7 +2797,7 @@ void use_circuit_callback(void**, S32 result) | |||
2813 | if (result) | 2797 | if (result) |
2814 | { | 2798 | { |
2815 | // Make sure user knows something bad happened. JC | 2799 | // Make sure user knows something bad happened. JC |
2816 | llinfos << "Backing up to login screen!" << llendl; | 2800 | LL_WARNS("AppInit") << "Backing up to login screen!" << LL_ENDL; |
2817 | gViewerWindow->alertXml("LoginPacketNeverReceived", | 2801 | gViewerWindow->alertXml("LoginPacketNeverReceived", |
2818 | login_alert_status, NULL); | 2802 | login_alert_status, NULL); |
2819 | reset_login(); | 2803 | reset_login(); |
@@ -2981,7 +2965,7 @@ void register_viewer_callbacks(LLMessageSystem* msg) | |||
2981 | //msg->setHandlerFunc("DirPicksReply", LLPanelDirBrowser::processDirPicksReply); | 2965 | //msg->setHandlerFunc("DirPicksReply", LLPanelDirBrowser::processDirPicksReply); |
2982 | msg->setHandlerFunc("DirClassifiedReply", LLPanelDirBrowser::processDirClassifiedReply); | 2966 | msg->setHandlerFunc("DirClassifiedReply", LLPanelDirBrowser::processDirClassifiedReply); |
2983 | msg->setHandlerFunc("DirLandReply", LLPanelDirBrowser::processDirLandReply); | 2967 | msg->setHandlerFunc("DirLandReply", LLPanelDirBrowser::processDirLandReply); |
2984 | msg->setHandlerFunc("DirPopularReply",LLPanelDirBrowser::processDirPopularReply); | 2968 | //msg->setHandlerFunc("DirPopularReply",LLPanelDirBrowser::processDirPopularReply); |
2985 | 2969 | ||
2986 | msg->setHandlerFunc("AvatarPickerReply", LLFloaterAvatarPicker::processAvatarPickerReply); | 2970 | msg->setHandlerFunc("AvatarPickerReply", LLFloaterAvatarPicker::processAvatarPickerReply); |
2987 | 2971 | ||
@@ -3660,10 +3644,10 @@ void init_start_screen(S32 location_id) | |||
3660 | if (gStartImageGL.notNull()) | 3644 | if (gStartImageGL.notNull()) |
3661 | { | 3645 | { |
3662 | gStartImageGL = NULL; | 3646 | gStartImageGL = NULL; |
3663 | llinfos << "re-initializing start screen" << llendl; | 3647 | LL_INFOS("AppInit") << "re-initializing start screen" << LL_ENDL; |
3664 | } | 3648 | } |
3665 | 3649 | ||
3666 | llinfos << "Loading startup bitmap..." << llendl; | 3650 | LL_DEBUGS("AppInit") << "Loading startup bitmap..." << LL_ENDL; |
3667 | 3651 | ||
3668 | LLString temp_str = gDirUtilp->getLindenUserDir() + gDirUtilp->getDirDelimiter(); | 3652 | LLString temp_str = gDirUtilp->getLindenUserDir() + gDirUtilp->getDirDelimiter(); |
3669 | 3653 | ||
@@ -3682,12 +3666,12 @@ void init_start_screen(S32 location_id) | |||
3682 | // driver bug | 3666 | // driver bug |
3683 | if(!gSavedSettings.getBOOL("UseStartScreen")) | 3667 | if(!gSavedSettings.getBOOL("UseStartScreen")) |
3684 | { | 3668 | { |
3685 | llinfos << "Bitmap load disabled" << llendl; | 3669 | LL_INFOS("AppInit") << "Bitmap load disabled" << LL_ENDL; |
3686 | return; | 3670 | return; |
3687 | } | 3671 | } |
3688 | else if(!start_image_bmp->load(temp_str) ) | 3672 | else if(!start_image_bmp->load(temp_str) ) |
3689 | { | 3673 | { |
3690 | llinfos << "Bitmap load failed" << llendl; | 3674 | LL_WARNS("AppInit") << "Bitmap load failed" << LL_ENDL; |
3691 | return; | 3675 | return; |
3692 | } | 3676 | } |
3693 | 3677 | ||
@@ -3698,7 +3682,7 @@ void init_start_screen(S32 location_id) | |||
3698 | LLPointer<LLImageRaw> raw = new LLImageRaw; | 3682 | LLPointer<LLImageRaw> raw = new LLImageRaw; |
3699 | if (!start_image_bmp->decode(raw, 0.0f)) | 3683 | if (!start_image_bmp->decode(raw, 0.0f)) |
3700 | { | 3684 | { |
3701 | llinfos << "Bitmap decode failed" << llendl; | 3685 | LL_WARNS("AppInit") << "Bitmap decode failed" << LL_ENDL; |
3702 | gStartImageGL = NULL; | 3686 | gStartImageGL = NULL; |
3703 | return; | 3687 | return; |
3704 | } | 3688 | } |
@@ -3711,7 +3695,7 @@ void init_start_screen(S32 location_id) | |||
3711 | // frees the bitmap | 3695 | // frees the bitmap |
3712 | void release_start_screen() | 3696 | void release_start_screen() |
3713 | { | 3697 | { |
3714 | //llinfos << "Releasing bitmap..." << llendl; | 3698 | LL_DEBUGS("AppInit") << "Releasing bitmap..." << LL_ENDL; |
3715 | gStartImageGL = NULL; | 3699 | gStartImageGL = NULL; |
3716 | } | 3700 | } |
3717 | 3701 | ||
@@ -3719,7 +3703,7 @@ void release_start_screen() | |||
3719 | // static | 3703 | // static |
3720 | void LLStartUp::setStartupState( S32 state ) | 3704 | void LLStartUp::setStartupState( S32 state ) |
3721 | { | 3705 | { |
3722 | llinfos << "Startup state changing from " << gStartupState << " to " << state << llendl; | 3706 | LL_INFOS("AppInit") << "Startup state changing from " << gStartupState << " to " << state << LL_ENDL; |
3723 | gStartupState = state; | 3707 | gStartupState = state; |
3724 | } | 3708 | } |
3725 | 3709 | ||
diff --git a/linden/indra/newview/llstatgraph.cpp b/linden/indra/newview/llstatgraph.cpp index c9969a2..9f219e2 100644 --- a/linden/indra/newview/llstatgraph.cpp +++ b/linden/indra/newview/llstatgraph.cpp | |||
@@ -32,7 +32,7 @@ | |||
32 | #include "llviewerprecompiledheaders.h" | 32 | #include "llviewerprecompiledheaders.h" |
33 | 33 | ||
34 | #include "llstatgraph.h" | 34 | #include "llstatgraph.h" |
35 | #include "llglimmediate.h" | 35 | #include "llrender.h" |
36 | 36 | ||
37 | #include "llmath.h" | 37 | #include "llmath.h" |
38 | #include "llui.h" | 38 | #include "llui.h" |
diff --git a/linden/indra/newview/llstatusbar.cpp b/linden/indra/newview/llstatusbar.cpp index c11d46d..42acdcc 100644 --- a/linden/indra/newview/llstatusbar.cpp +++ b/linden/indra/newview/llstatusbar.cpp | |||
@@ -429,26 +429,18 @@ void LLStatusBar::refresh() | |||
429 | childSetVisible("restrictpush", FALSE); | 429 | childSetVisible("restrictpush", FALSE); |
430 | } | 430 | } |
431 | 431 | ||
432 | BOOL voice_enabled = gVoiceClient->voiceEnabled(); | ||
433 | BOOL have_voice = parcel && parcel->getVoiceEnabled(); | 432 | BOOL have_voice = parcel && parcel->getVoiceEnabled(); |
434 | if (!voice_enabled) | 433 | if (have_voice) |
435 | { | 434 | { |
436 | childSetVisible("status_no_voice", FALSE); | 435 | childSetVisible("status_no_voice", FALSE); |
437 | } | 436 | } |
438 | else | 437 | else |
439 | { | 438 | { |
440 | if (have_voice) | 439 | childSetVisible("status_no_voice", TRUE); |
441 | { | 440 | childGetRect( "status_no_voice", buttonRect ); |
442 | childSetVisible("status_no_voice", FALSE); | 441 | r.setOriginAndSize( x, y, buttonRect.getWidth(), buttonRect.getHeight()); |
443 | } | 442 | childSetRect( "status_no_voice", r ); |
444 | else if (!have_voice) | 443 | x += buttonRect.getWidth(); |
445 | { | ||
446 | childSetVisible("status_no_voice", TRUE); | ||
447 | childGetRect( "status_no_voice", buttonRect ); | ||
448 | r.setOriginAndSize( x, y, buttonRect.getWidth(), buttonRect.getHeight()); | ||
449 | childSetRect( "status_no_voice", r ); | ||
450 | x += buttonRect.getWidth(); | ||
451 | } | ||
452 | } | 444 | } |
453 | 445 | ||
454 | BOOL canBuyLand = parcel | 446 | BOOL canBuyLand = parcel |
diff --git a/linden/indra/newview/llstylemap.cpp b/linden/indra/newview/llstylemap.cpp new file mode 100644 index 0000000..a8c8bf7 --- /dev/null +++ b/linden/indra/newview/llstylemap.cpp | |||
@@ -0,0 +1,75 @@ | |||
1 | /** | ||
2 | * @file llstylemap.cpp | ||
3 | * @brief LLStyleMap class implementation | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2002-2008, 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 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 | */ | ||
31 | |||
32 | #include "llviewerprecompiledheaders.h" | ||
33 | |||
34 | #include "llstylemap.h" | ||
35 | #include "llstring.h" | ||
36 | #include "llui.h" | ||
37 | #include "llviewercontrol.h" | ||
38 | #include "llagent.h" | ||
39 | |||
40 | LLStyleMap::LLStyleMap() | ||
41 | { | ||
42 | } | ||
43 | |||
44 | LLStyleMap::~LLStyleMap() | ||
45 | { | ||
46 | } | ||
47 | |||
48 | LLStyleMap &LLStyleMap::instance() | ||
49 | { | ||
50 | static LLStyleMap mStyleMap; | ||
51 | return mStyleMap; | ||
52 | } | ||
53 | |||
54 | // This is similar to the [] accessor except that if the entry doesn't already exist, | ||
55 | // then this will create the entry. | ||
56 | const LLStyleSP &LLStyleMap::lookup(const LLUUID &source) | ||
57 | { | ||
58 | // Find this style in the map or add it if not. This map holds links to residents' profiles. | ||
59 | if (find(source) == end()) | ||
60 | { | ||
61 | LLStyleSP style(new LLStyle); | ||
62 | style->setVisible(true); | ||
63 | style->setFontName(LLString::null); | ||
64 | if (source != gAgent.getID() && source != LLUUID::null) | ||
65 | { | ||
66 | style->setColor(gSavedSettings.getColor4("HTMLLinkColor")); | ||
67 | LLString link = llformat("secondlife:///app/agent/%s/about",source.asString().c_str()); | ||
68 | style->setLinkHREF(link); | ||
69 | } | ||
70 | else | ||
71 | style->setColor(LLColor4::white); | ||
72 | (*this)[source] = style; | ||
73 | } | ||
74 | return (*this)[source]; | ||
75 | } | ||
diff --git a/linden/indra/llwindow/llwindowsolaris.cpp b/linden/indra/newview/llstylemap.h index 54a77ae..2e9339c 100644 --- a/linden/indra/llwindow/llwindowsolaris.cpp +++ b/linden/indra/newview/llstylemap.h | |||
@@ -1,10 +1,10 @@ | |||
1 | /** | 1 | /** |
2 | * @file fmodwrapper.cpp | 2 | * @file LLStyleMap.h |
3 | * @brief dummy source file for building a shared library to wrap libfmod.a | 3 | * @brief LLStyleMap class definition |
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2005&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2005-2008, Linden Research, Inc. | 7 | * Copyright (c) 2002-2008, 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 |
@@ -29,33 +29,26 @@ | |||
29 | * $/LicenseInfo$ | 29 | * $/LicenseInfo$ |
30 | */ | 30 | */ |
31 | 31 | ||
32 | #if LL_SOLARIS | ||
33 | 32 | ||
34 | #include "linden_common.h" | 33 | #ifndef LL_LLSTYLE_MAP_H |
35 | #include "indra_constants.h" | 34 | #define LL_LLSTYLE_MAP_H |
36 | 35 | ||
37 | #include "llwindowsolaris.h" | 36 | #include "llstyle.h" |
38 | #include "llgl.h" | 37 | #include "lluuid.h" |
39 | #include "llglheaders.h" | ||
40 | |||
41 | // | ||
42 | // LLWindowSolaris | ||
43 | // | ||
44 | LLWindowSolaris::LLWindowSolaris(char *title, char *name, S32 x, S32 y, S32 width, S32 height, | ||
45 | U32 flags, BOOL fullscreen, BOOL clearBg, | ||
46 | BOOL disable_vsync, BOOL use_gl, BOOL ignore_pixel_depth) | ||
47 | : LLWindow(fullscreen, flags) | ||
48 | { | ||
49 | llerrs << "Solaris window not yet supported" << llendl; | ||
50 | } | ||
51 | 38 | ||
39 | // Lightweight class for holding and managing mappings between UUIDs and links. | ||
40 | // Used (for example) to create clickable name links off of IM chat. | ||
52 | 41 | ||
53 | LLWindowSolaris::~LLWindowSolaris() | 42 | typedef std::map<LLUUID, LLStyleSP> style_map_t; |
54 | { | ||
55 | } | ||
56 | 43 | ||
57 | void LLWindowSolaris::swapBuffers() | 44 | class LLStyleMap : public style_map_t |
58 | { | 45 | { |
59 | } | 46 | public: |
60 | 47 | LLStyleMap(); | |
61 | #endif // LL_SOLARIS | 48 | ~LLStyleMap(); |
49 | // Just like the [] accessor but it will add the entry in if it doesn't exist. | ||
50 | const LLStyleSP &lookup(const LLUUID &source); | ||
51 | static LLStyleMap &instance(); | ||
52 | }; | ||
53 | |||
54 | #endif // LL_LLSTYLE_MAP_H | ||
diff --git a/linden/indra/newview/llsurfacepatch.cpp b/linden/indra/newview/llsurfacepatch.cpp index 5b03c98..42aea9e 100644 --- a/linden/indra/newview/llsurfacepatch.cpp +++ b/linden/indra/newview/llsurfacepatch.cpp | |||
@@ -206,10 +206,11 @@ LLVector2 LLSurfacePatch::getTexCoords(const U32 x, const U32 y) const | |||
206 | void LLSurfacePatch::eval(const U32 x, const U32 y, const U32 stride, LLVector3 *vertex, LLVector3 *normal, | 206 | void LLSurfacePatch::eval(const U32 x, const U32 y, const U32 stride, LLVector3 *vertex, LLVector3 *normal, |
207 | LLVector2 *tex0, LLVector2 *tex1) | 207 | LLVector2 *tex0, LLVector2 *tex1) |
208 | { | 208 | { |
209 | if (!mSurfacep || !mSurfacep->getRegion()) | 209 | if (!mSurfacep || !mSurfacep->getRegion() || !mSurfacep->getGridsPerEdge()) |
210 | { | 210 | { |
211 | return; // failsafe | 211 | return; // failsafe |
212 | } | 212 | } |
213 | llassert_always(vertex && normal && tex0 && tex1); | ||
213 | 214 | ||
214 | U32 surface_stride = mSurfacep->getGridsPerEdge(); | 215 | U32 surface_stride = mSurfacep->getGridsPerEdge(); |
215 | U32 point_offset = x + y*surface_stride; | 216 | U32 point_offset = x + y*surface_stride; |
diff --git a/linden/indra/newview/lltexlayer.cpp b/linden/indra/newview/lltexlayer.cpp index 66d9a33..0e4c9c2 100644 --- a/linden/indra/newview/lltexlayer.cpp +++ b/linden/indra/newview/lltexlayer.cpp | |||
@@ -52,7 +52,7 @@ | |||
52 | #include "llxmltree.h" | 52 | #include "llxmltree.h" |
53 | #include "pipeline.h" | 53 | #include "pipeline.h" |
54 | #include "v4coloru.h" | 54 | #include "v4coloru.h" |
55 | #include "llglimmediate.h" | 55 | #include "llrender.h" |
56 | 56 | ||
57 | //#include "../tools/imdebug/imdebug.h" | 57 | //#include "../tools/imdebug/imdebug.h" |
58 | 58 | ||
@@ -239,6 +239,9 @@ BOOL LLTexLayerSetBuffer::render() | |||
239 | { | 239 | { |
240 | U8* baked_bump_data = NULL; | 240 | U8* baked_bump_data = NULL; |
241 | 241 | ||
242 | // Default color mask for tex layer render | ||
243 | gGL.setColorMask(true, true); | ||
244 | |||
242 | // do we need to upload, and do we have sufficient data to create an uploadable composite? | 245 | // do we need to upload, and do we have sufficient data to create an uploadable composite? |
243 | // When do we upload the texture if gAgent.mNumPendingQueries is non-zero? | 246 | // When do we upload the texture if gAgent.mNumPendingQueries is non-zero? |
244 | BOOL upload_now = (gAgent.mNumPendingQueries == 0 && mNeedsUpload && mTexLayerSet->isLocalTextureDataFinal()); | 247 | BOOL upload_now = (gAgent.mNumPendingQueries == 0 && mNeedsUpload && mTexLayerSet->isLocalTextureDataFinal()); |
@@ -292,8 +295,8 @@ BOOL LLTexLayerSetBuffer::render() | |||
292 | } | 295 | } |
293 | 296 | ||
294 | // reset GL state | 297 | // reset GL state |
295 | glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE ); | 298 | gGL.setColorMask(true, true); |
296 | gGL.blendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); | 299 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
297 | 300 | ||
298 | // we have valid texture data now | 301 | // we have valid texture data now |
299 | mInitialized = TRUE; | 302 | mInitialized = TRUE; |
@@ -756,6 +759,7 @@ BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height ) | |||
756 | 759 | ||
757 | LLGLSUIDefault gls_ui; | 760 | LLGLSUIDefault gls_ui; |
758 | LLGLDepthTest gls_depth(GL_FALSE, GL_FALSE); | 761 | LLGLDepthTest gls_depth(GL_FALSE, GL_FALSE); |
762 | gGL.setColorMask(true, true); | ||
759 | 763 | ||
760 | // composite color layers | 764 | // composite color layers |
761 | for( layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ ) | 765 | for( layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ ) |
@@ -774,8 +778,8 @@ BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height ) | |||
774 | { | 778 | { |
775 | LLGLSNoAlphaTest gls_no_alpha_test; | 779 | LLGLSNoAlphaTest gls_no_alpha_test; |
776 | gGL.flush(); | 780 | gGL.flush(); |
777 | glColorMask( GL_FALSE, GL_FALSE, GL_FALSE, GL_TRUE ); | 781 | gGL.setColorMask(false, true); |
778 | gGL.blendFunc( GL_ONE, GL_ZERO ); | 782 | gGL.setSceneBlendType(LLRender::BT_REPLACE); |
779 | 783 | ||
780 | { | 784 | { |
781 | LLImageGL* image_gl = gTexStaticImageList.getImageGL( getInfo()->mStaticAlphaFileName, TRUE ); | 785 | LLImageGL* image_gl = gTexStaticImageList.getImageGL( getInfo()->mStaticAlphaFileName, TRUE ); |
@@ -793,8 +797,8 @@ BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height ) | |||
793 | LLImageGL::unbindTexture(0, GL_TEXTURE_2D); | 797 | LLImageGL::unbindTexture(0, GL_TEXTURE_2D); |
794 | 798 | ||
795 | gGL.flush(); | 799 | gGL.flush(); |
796 | glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE ); | 800 | gGL.setColorMask(true, true); |
797 | gGL.blendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); | 801 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
798 | } | 802 | } |
799 | else | 803 | else |
800 | if( getInfo()->mClearAlpha ) | 804 | if( getInfo()->mClearAlpha ) |
@@ -803,12 +807,12 @@ BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height ) | |||
803 | LLGLSNoTextureNoAlphaTest gls_no_alpha; | 807 | LLGLSNoTextureNoAlphaTest gls_no_alpha; |
804 | gGL.color4f( 0.f, 0.f, 0.f, 1.f ); | 808 | gGL.color4f( 0.f, 0.f, 0.f, 1.f ); |
805 | gGL.flush(); | 809 | gGL.flush(); |
806 | glColorMask( GL_FALSE, GL_FALSE, GL_FALSE, GL_TRUE ); | 810 | gGL.setColorMask(false, true); |
807 | 811 | ||
808 | gl_rect_2d_simple( width, height ); | 812 | gl_rect_2d_simple( width, height ); |
809 | 813 | ||
810 | gGL.flush(); | 814 | gGL.flush(); |
811 | glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE ); | 815 | gGL.setColorMask(true, true); |
812 | } | 816 | } |
813 | stop_glerror(); | 817 | stop_glerror(); |
814 | 818 | ||
@@ -836,11 +840,11 @@ BOOL LLTexLayerSet::renderBump( S32 x, S32 y, S32 width, S32 height ) | |||
836 | // Set the alpha channel to one (clean up after previous blending) | 840 | // Set the alpha channel to one (clean up after previous blending) |
837 | LLGLSNoTextureNoAlphaTest gls_no_texture_no_alpha; | 841 | LLGLSNoTextureNoAlphaTest gls_no_texture_no_alpha; |
838 | gGL.color4f( 0.f, 0.f, 0.f, 1.f ); | 842 | gGL.color4f( 0.f, 0.f, 0.f, 1.f ); |
839 | glColorMask( GL_FALSE, GL_FALSE, GL_FALSE, GL_TRUE ); | 843 | gGL.setColorMask(false, true); |
840 | 844 | ||
841 | gl_rect_2d_simple( width, height ); | 845 | gl_rect_2d_simple( width, height ); |
842 | 846 | ||
843 | glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE ); | 847 | gGL.setColorMask(true, true); |
844 | stop_glerror(); | 848 | stop_glerror(); |
845 | 849 | ||
846 | return success; | 850 | return success; |
@@ -1330,7 +1334,7 @@ BOOL LLTexLayer::render( S32 x, S32 y, S32 width, S32 height ) | |||
1330 | renderAlphaMasks( x, y, width, height, &net_color ); | 1334 | renderAlphaMasks( x, y, width, height, &net_color ); |
1331 | alpha_mask_specified = TRUE; | 1335 | alpha_mask_specified = TRUE; |
1332 | gGL.flush(); | 1336 | gGL.flush(); |
1333 | gGL.blendFunc( GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA ); | 1337 | gGL.blendFunc(LLRender::BF_DEST_ALPHA, LLRender::BF_ONE_MINUS_DEST_ALPHA); |
1334 | } | 1338 | } |
1335 | 1339 | ||
1336 | gGL.color4fv( net_color.mV); | 1340 | gGL.color4fv( net_color.mV); |
@@ -1338,7 +1342,7 @@ BOOL LLTexLayer::render( S32 x, S32 y, S32 width, S32 height ) | |||
1338 | if( getInfo()->mWriteAllChannels ) | 1342 | if( getInfo()->mWriteAllChannels ) |
1339 | { | 1343 | { |
1340 | gGL.flush(); | 1344 | gGL.flush(); |
1341 | gGL.blendFunc( GL_ONE, GL_ZERO ); | 1345 | gGL.setSceneBlendType(LLRender::BT_REPLACE); |
1342 | } | 1346 | } |
1343 | 1347 | ||
1344 | if( (getInfo()->mLocalTexture != -1) && !getInfo()->mUseLocalTextureAlphaOnly ) | 1348 | if( (getInfo()->mLocalTexture != -1) && !getInfo()->mUseLocalTextureAlphaOnly ) |
@@ -1401,7 +1405,7 @@ BOOL LLTexLayer::render( S32 x, S32 y, S32 width, S32 height ) | |||
1401 | { | 1405 | { |
1402 | // Restore standard blend func value | 1406 | // Restore standard blend func value |
1403 | gGL.flush(); | 1407 | gGL.flush(); |
1404 | gGL.blendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); | 1408 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
1405 | stop_glerror(); | 1409 | stop_glerror(); |
1406 | } | 1410 | } |
1407 | 1411 | ||
@@ -1506,7 +1510,7 @@ BOOL LLTexLayer::renderAlphaMasks( S32 x, S32 y, S32 width, S32 height, LLColor4 | |||
1506 | 1510 | ||
1507 | llassert( !mParamAlphaList.empty() ); | 1511 | llassert( !mParamAlphaList.empty() ); |
1508 | 1512 | ||
1509 | glColorMask( GL_FALSE, GL_FALSE, GL_FALSE, GL_TRUE ); | 1513 | gGL.setColorMask(false, true); |
1510 | 1514 | ||
1511 | alpha_list_t::iterator iter = mParamAlphaList.begin(); | 1515 | alpha_list_t::iterator iter = mParamAlphaList.begin(); |
1512 | LLTexLayerParamAlpha* first_param = *iter; | 1516 | LLTexLayerParamAlpha* first_param = *iter; |
@@ -1518,7 +1522,7 @@ BOOL LLTexLayer::renderAlphaMasks( S32 x, S32 y, S32 width, S32 height, LLColor4 | |||
1518 | 1522 | ||
1519 | // Clear the alpha | 1523 | // Clear the alpha |
1520 | gGL.flush(); | 1524 | gGL.flush(); |
1521 | gGL.blendFunc( GL_ONE, GL_ZERO ); | 1525 | gGL.setSceneBlendType(LLRender::BT_REPLACE); |
1522 | 1526 | ||
1523 | gGL.color4f( 0.f, 0.f, 0.f, 0.f ); | 1527 | gGL.color4f( 0.f, 0.f, 0.f, 0.f ); |
1524 | gl_rect_2d_simple( width, height ); | 1528 | gl_rect_2d_simple( width, height ); |
@@ -1536,7 +1540,7 @@ BOOL LLTexLayer::renderAlphaMasks( S32 x, S32 y, S32 width, S32 height, LLColor4 | |||
1536 | 1540 | ||
1537 | // Approximates a min() function | 1541 | // Approximates a min() function |
1538 | gGL.flush(); | 1542 | gGL.flush(); |
1539 | gGL.blendFunc( GL_DST_ALPHA, GL_ZERO ); | 1543 | gGL.blendFunc(LLRender::BF_DEST_ALPHA, LLRender::BF_ZERO); |
1540 | 1544 | ||
1541 | // Accumulate the alpha component of the texture | 1545 | // Accumulate the alpha component of the texture |
1542 | if( getInfo()->mLocalTexture != -1 ) | 1546 | if( getInfo()->mLocalTexture != -1 ) |
@@ -1601,7 +1605,7 @@ BOOL LLTexLayer::renderAlphaMasks( S32 x, S32 y, S32 width, S32 height, LLColor4 | |||
1601 | 1605 | ||
1602 | LLGLSUIDefault gls_ui; | 1606 | LLGLSUIDefault gls_ui; |
1603 | 1607 | ||
1604 | glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE ); | 1608 | gGL.setColorMask(true, true); |
1605 | 1609 | ||
1606 | if (!mMorphMasksValid && !mMaskedMorphs.empty()) | 1610 | if (!mMorphMasksValid && !mMaskedMorphs.empty()) |
1607 | { | 1611 | { |
@@ -1963,11 +1967,11 @@ BOOL LLTexLayerParamAlpha::render( S32 x, S32 y, S32 width, S32 height ) | |||
1963 | gGL.flush(); | 1967 | gGL.flush(); |
1964 | if( getInfo()->mMultiplyBlend ) | 1968 | if( getInfo()->mMultiplyBlend ) |
1965 | { | 1969 | { |
1966 | gGL.blendFunc( GL_DST_ALPHA, GL_ZERO ); // Multiplication: approximates a min() function | 1970 | gGL.blendFunc(LLRender::BF_DEST_ALPHA, LLRender::BF_ZERO); // Multiplication: approximates a min() function |
1967 | } | 1971 | } |
1968 | else | 1972 | else |
1969 | { | 1973 | { |
1970 | gGL.blendFunc( GL_ONE, GL_ONE ); // Addition: approximates a max() function | 1974 | gGL.setSceneBlendType(LLRender::BT_ADD); // Addition: approximates a max() function |
1971 | } | 1975 | } |
1972 | 1976 | ||
1973 | if( !getInfo()->mStaticImageFileName.empty() && !mStaticImageInvalid) | 1977 | if( !getInfo()->mStaticImageFileName.empty() && !mStaticImageInvalid) |
diff --git a/linden/indra/newview/lltexturecache.cpp b/linden/indra/newview/lltexturecache.cpp index c31fbba..ab85b32 100644 --- a/linden/indra/newview/lltexturecache.cpp +++ b/linden/indra/newview/lltexturecache.cpp | |||
@@ -1023,8 +1023,8 @@ S64 LLTextureCache::initCache(ELLPath location, S64 max_size, BOOL read_only) | |||
1023 | sCacheMaxTexturesSize = max_size; | 1023 | sCacheMaxTexturesSize = max_size; |
1024 | max_size -= sCacheMaxTexturesSize; | 1024 | max_size -= sCacheMaxTexturesSize; |
1025 | 1025 | ||
1026 | llinfos << "TEXTURE CACHE: Headers: " << sCacheMaxEntries | 1026 | LL_INFOS("TextureCache") << "Headers: " << sCacheMaxEntries |
1027 | << " Textures size: " << sCacheMaxTexturesSize/(1024*1024) << " MB" << llendl; | 1027 | << " Textures size: " << sCacheMaxTexturesSize/(1024*1024) << " MB" << LL_ENDL; |
1028 | 1028 | ||
1029 | setDirNames(location); | 1029 | setDirNames(location); |
1030 | 1030 | ||
@@ -1161,7 +1161,7 @@ void LLTextureCache::purgeTextures(bool validate) | |||
1161 | S32 num_entries = filesize / sizeof(Entry); | 1161 | S32 num_entries = filesize / sizeof(Entry); |
1162 | if (num_entries * (S32)sizeof(Entry) != filesize) | 1162 | if (num_entries * (S32)sizeof(Entry) != filesize) |
1163 | { | 1163 | { |
1164 | llwarns << "Bad cache file: " << mTexturesDirEntriesFileName << " Purging." << llendl; | 1164 | LL_WARNS("TextureCache") << "Bad cache file: " << mTexturesDirEntriesFileName << " Purging." << LL_ENDL; |
1165 | purgeAllTextures(false); | 1165 | purgeAllTextures(false); |
1166 | return; | 1166 | return; |
1167 | } | 1167 | } |
@@ -1175,19 +1175,19 @@ void LLTextureCache::purgeTextures(bool validate) | |||
1175 | (U8*)entries, 0, num_entries*sizeof(Entry)); | 1175 | (U8*)entries, 0, num_entries*sizeof(Entry)); |
1176 | if (bytes_read != filesize) | 1176 | if (bytes_read != filesize) |
1177 | { | 1177 | { |
1178 | llwarns << "Bad cache file (2): " << mTexturesDirEntriesFileName << " Purging." << llendl; | 1178 | LL_WARNS("TextureCache") << "Bad cache file (2): " << mTexturesDirEntriesFileName << " Purging." << LL_ENDL; |
1179 | purgeAllTextures(false); | 1179 | purgeAllTextures(false); |
1180 | return; | 1180 | return; |
1181 | } | 1181 | } |
1182 | 1182 | ||
1183 | llinfos << "TEXTURE CACHE: Reading Entries..." << llendl; | 1183 | LL_DEBUGS("TextureCache") << "TEXTURE CACHE: Reading Entries..." << LL_ENDL; |
1184 | 1184 | ||
1185 | std::map<LLUUID, S32> entry_idx_map; | 1185 | std::map<LLUUID, S32> entry_idx_map; |
1186 | S64 total_size = 0; | 1186 | S64 total_size = 0; |
1187 | for (S32 idx=0; idx<num_entries; idx++) | 1187 | for (S32 idx=0; idx<num_entries; idx++) |
1188 | { | 1188 | { |
1189 | const LLUUID& id = entries[idx].mID; | 1189 | const LLUUID& id = entries[idx].mID; |
1190 | // llinfos << "Entry: " << id << " Size: " << entries[i].mSize << " Time: " << entries[i].mTime << llendl; | 1190 | LL_DEBUGS("TextureCache") << "Entry: " << id << " Size: " << entries[idx].mSize << " Time: " << entries[idx].mTime << LL_ENDL; |
1191 | std::map<LLUUID, S32>::iterator iter = entry_idx_map.find(id); | 1191 | std::map<LLUUID, S32>::iterator iter = entry_idx_map.find(id); |
1192 | if (iter != entry_idx_map.end()) | 1192 | if (iter != entry_idx_map.end()) |
1193 | { | 1193 | { |
@@ -1206,7 +1206,7 @@ void LLTextureCache::purgeTextures(bool validate) | |||
1206 | validate_idx = gSavedSettings.getU32("CacheValidateCounter"); | 1206 | validate_idx = gSavedSettings.getU32("CacheValidateCounter"); |
1207 | U32 next_idx = (++validate_idx) % 256; | 1207 | U32 next_idx = (++validate_idx) % 256; |
1208 | gSavedSettings.setU32("CacheValidateCounter", next_idx); | 1208 | gSavedSettings.setU32("CacheValidateCounter", next_idx); |
1209 | llinfos << "TEXTURE CACHE: Validating: " << validate_idx << llendl; | 1209 | LL_DEBUGS("TextureCache") << "TEXTURE CACHE: Validating: " << validate_idx << LL_ENDL; |
1210 | } | 1210 | } |
1211 | 1211 | ||
1212 | S64 min_cache_size = (sCacheMaxTexturesSize * 9) / 10; | 1212 | S64 min_cache_size = (sCacheMaxTexturesSize * 9) / 10; |
@@ -1230,12 +1230,12 @@ void LLTextureCache::purgeTextures(bool validate) | |||
1230 | S32 uuididx = entries[idx].mID.mData[0]; | 1230 | S32 uuididx = entries[idx].mID.mData[0]; |
1231 | if (uuididx == validate_idx) | 1231 | if (uuididx == validate_idx) |
1232 | { | 1232 | { |
1233 | // llinfos << "Validating: " << filename << "Size: " << entries[idx].mSize << llendl; | 1233 | LL_DEBUGS("TextureCache") << "Validating: " << filename << "Size: " << entries[idx].mSize << LL_ENDL; |
1234 | S32 bodysize = ll_apr_file_size(filename, NULL); | 1234 | S32 bodysize = ll_apr_file_size(filename, NULL); |
1235 | if (bodysize != entries[idx].mSize) | 1235 | if (bodysize != entries[idx].mSize) |
1236 | { | 1236 | { |
1237 | llwarns << "TEXTURE CACHE BODY HAS BAD SIZE: " << bodysize << " != " << entries[idx].mSize | 1237 | LL_WARNS("TextureCache") << "TEXTURE CACHE BODY HAS BAD SIZE: " << bodysize << " != " << entries[idx].mSize |
1238 | << filename << llendl; | 1238 | << filename << LL_ENDL; |
1239 | purge_entry = true; | 1239 | purge_entry = true; |
1240 | } | 1240 | } |
1241 | } | 1241 | } |
@@ -1243,7 +1243,7 @@ void LLTextureCache::purgeTextures(bool validate) | |||
1243 | if (purge_entry) | 1243 | if (purge_entry) |
1244 | { | 1244 | { |
1245 | purge_count++; | 1245 | purge_count++; |
1246 | // llinfos << "PURGING: " << filename << llendl; | 1246 | LL_DEBUGS("TextureCache") << "PURGING: " << filename << LL_ENDL; |
1247 | ll_apr_file_remove(filename, NULL); | 1247 | ll_apr_file_remove(filename, NULL); |
1248 | total_size -= entries[idx].mSize; | 1248 | total_size -= entries[idx].mSize; |
1249 | entries[idx].mSize = 0; | 1249 | entries[idx].mSize = 0; |
@@ -1259,7 +1259,7 @@ void LLTextureCache::purgeTextures(bool validate) | |||
1259 | } | 1259 | } |
1260 | num_entries = next_idx; | 1260 | num_entries = next_idx; |
1261 | 1261 | ||
1262 | llinfos << "TEXTURE CACHE: Writing Entries: " << num_entries << llendl; | 1262 | LL_DEBUGS("TextureCache") << "TEXTURE CACHE: Writing Entries: " << num_entries << LL_ENDL; |
1263 | 1263 | ||
1264 | ll_apr_file_remove(mTexturesDirEntriesFileName, NULL); | 1264 | ll_apr_file_remove(mTexturesDirEntriesFileName, NULL); |
1265 | ll_apr_file_write_ex(mTexturesDirEntriesFileName, NULL, | 1265 | ll_apr_file_write_ex(mTexturesDirEntriesFileName, NULL, |
@@ -1276,7 +1276,7 @@ void LLTextureCache::purgeTextures(bool validate) | |||
1276 | 1276 | ||
1277 | delete[] entries; | 1277 | delete[] entries; |
1278 | 1278 | ||
1279 | llinfos << "TEXTURE CACHE:" | 1279 | LL_INFOS("TextureCache") << "TEXTURE CACHE:" |
1280 | << " PURGED: " << purge_count | 1280 | << " PURGED: " << purge_count |
1281 | << " ENTRIES: " << num_entries | 1281 | << " ENTRIES: " << num_entries |
1282 | << " CACHE SIZE: " << total_size / 1024*1024 << " MB" | 1282 | << " CACHE SIZE: " << total_size / 1024*1024 << " MB" |
diff --git a/linden/indra/newview/lltexturectrl.cpp b/linden/indra/newview/lltexturectrl.cpp index 2be75c7..9a02c5a 100644 --- a/linden/indra/newview/lltexturectrl.cpp +++ b/linden/indra/newview/lltexturectrl.cpp | |||
@@ -34,7 +34,7 @@ | |||
34 | 34 | ||
35 | #include "lltexturectrl.h" | 35 | #include "lltexturectrl.h" |
36 | 36 | ||
37 | #include "llglimmediate.h" | 37 | #include "llrender.h" |
38 | #include "llagent.h" | 38 | #include "llagent.h" |
39 | #include "llviewerimagelist.h" | 39 | #include "llviewerimagelist.h" |
40 | #include "llcheckboxctrl.h" | 40 | #include "llcheckboxctrl.h" |
diff --git a/linden/indra/newview/lltexturefetch.cpp b/linden/indra/newview/lltexturefetch.cpp index 9399ed3..2e4283b 100644 --- a/linden/indra/newview/lltexturefetch.cpp +++ b/linden/indra/newview/lltexturefetch.cpp | |||
@@ -1341,13 +1341,13 @@ bool LLTextureFetch::createRequest(const LLString& filename, const LLUUID& id, c | |||
1341 | } | 1341 | } |
1342 | 1342 | ||
1343 | S32 desired_size; | 1343 | S32 desired_size; |
1344 | if ((desired_discard == 0) && worker && worker->mFileSize) | 1344 | if (desired_discard == 0) |
1345 | { | 1345 | { |
1346 | // if we want the entire image, and we know its size, then get it all | 1346 | // if we want the entire image, and we know its size, then get it all |
1347 | // (calcDataSizeJ2C() below makes assumptions about how the image | 1347 | // (calcDataSizeJ2C() below makes assumptions about how the image |
1348 | // was compressed - this code ensures that when we request the entire image, | 1348 | // was compressed - this code ensures that when we request the entire image, |
1349 | // we really do get it.) | 1349 | // we really do get it.) |
1350 | desired_size = worker->mFileSize; | 1350 | desired_size = MAX_IMAGE_DATA_SIZE; |
1351 | } | 1351 | } |
1352 | else if (w*h*c > 0) | 1352 | else if (w*h*c > 0) |
1353 | { | 1353 | { |
@@ -1358,17 +1358,11 @@ bool LLTextureFetch::createRequest(const LLString& filename, const LLUUID& id, c | |||
1358 | } | 1358 | } |
1359 | else | 1359 | else |
1360 | { | 1360 | { |
1361 | if (desired_discard == 0) | 1361 | desired_size = FIRST_PACKET_SIZE; |
1362 | { | 1362 | desired_discard = MAX_DISCARD_LEVEL; |
1363 | // If we want all of the image, request the maximum possible data | ||
1364 | desired_size = MAX_IMAGE_DATA_SIZE; | ||
1365 | } | ||
1366 | else | ||
1367 | { | ||
1368 | desired_size = FIRST_PACKET_SIZE; | ||
1369 | desired_discard = MAX_DISCARD_LEVEL; | ||
1370 | } | ||
1371 | } | 1363 | } |
1364 | |||
1365 | |||
1372 | if (worker) | 1366 | if (worker) |
1373 | { | 1367 | { |
1374 | if (worker->wasAborted()) | 1368 | if (worker->wasAborted()) |
diff --git a/linden/indra/newview/lltextureview.cpp b/linden/indra/newview/lltextureview.cpp index db2853e..a2b3d47 100644 --- a/linden/indra/newview/lltextureview.cpp +++ b/linden/indra/newview/lltextureview.cpp | |||
@@ -40,7 +40,7 @@ | |||
40 | #include "lllfsthread.h" | 40 | #include "lllfsthread.h" |
41 | #include "llui.h" | 41 | #include "llui.h" |
42 | #include "llimageworker.h" | 42 | #include "llimageworker.h" |
43 | #include "llglimmediate.h" | 43 | #include "llrender.h" |
44 | 44 | ||
45 | #include "llhoverview.h" | 45 | #include "llhoverview.h" |
46 | #include "llselectmgr.h" | 46 | #include "llselectmgr.h" |
diff --git a/linden/indra/newview/lltoolbar.cpp b/linden/indra/newview/lltoolbar.cpp index 8d103ce..6612538 100644 --- a/linden/indra/newview/lltoolbar.cpp +++ b/linden/indra/newview/lltoolbar.cpp | |||
@@ -288,10 +288,15 @@ void LLToolBar::refresh() | |||
288 | 288 | ||
289 | // Clothing button updated inside LLFloaterClothing | 289 | // Clothing button updated inside LLFloaterClothing |
290 | 290 | ||
291 | childSetEnabled("fly_btn", gAgent.canFly() || gAgent.getFlying() ); | 291 | BOOL sitting = FALSE; |
292 | if (gAgent.getAvatarObject()) | ||
293 | { | ||
294 | sitting = gAgent.getAvatarObject()->mIsSitting; | ||
295 | } | ||
292 | 296 | ||
293 | childSetEnabled("build_btn", LLViewerParcelMgr::getInstance()->agentCanBuild() ); | 297 | childSetEnabled("fly_btn", (gAgent.canFly() || gAgent.getFlying()) && !sitting ); |
294 | 298 | ||
299 | childSetEnabled("build_btn", LLViewerParcelMgr::getInstance()->agentCanBuild() ); | ||
295 | 300 | ||
296 | // Check to see if we're in build mode | 301 | // Check to see if we're in build mode |
297 | BOOL build_mode = LLToolMgr::getInstance()->inEdit(); | 302 | BOOL build_mode = LLToolMgr::getInstance()->inEdit(); |
diff --git a/linden/indra/newview/lltoolbrush.cpp b/linden/indra/newview/lltoolbrush.cpp index 319a5fd..9958d50 100644 --- a/linden/indra/newview/lltoolbrush.cpp +++ b/linden/indra/newview/lltoolbrush.cpp | |||
@@ -35,7 +35,7 @@ | |||
35 | #include "lltoolselectland.h" | 35 | #include "lltoolselectland.h" |
36 | 36 | ||
37 | #include "llgl.h" | 37 | #include "llgl.h" |
38 | #include "llglimmediate.h" | 38 | #include "llrender.h" |
39 | 39 | ||
40 | #include "message.h" | 40 | #include "message.h" |
41 | 41 | ||
diff --git a/linden/indra/newview/lltooldraganddrop.cpp b/linden/indra/newview/lltooldraganddrop.cpp index 67a2153..c492c7b 100644 --- a/linden/indra/newview/lltooldraganddrop.cpp +++ b/linden/indra/newview/lltooldraganddrop.cpp | |||
@@ -47,6 +47,7 @@ | |||
47 | #include "llhudmanager.h" | 47 | #include "llhudmanager.h" |
48 | #include "llinventorymodel.h" | 48 | #include "llinventorymodel.h" |
49 | #include "llinventoryview.h" | 49 | #include "llinventoryview.h" |
50 | #include "llmutelist.h" | ||
50 | #include "llnotify.h" | 51 | #include "llnotify.h" |
51 | #include "llpreviewnotecard.h" | 52 | #include "llpreviewnotecard.h" |
52 | #include "llselectmgr.h" | 53 | #include "llselectmgr.h" |
@@ -1693,6 +1694,8 @@ void LLToolDragAndDrop::commitGiveInventoryItem(const LLUUID& to_agent, | |||
1693 | effectp->setDuration(LL_HUD_DUR_SHORT); | 1694 | effectp->setDuration(LL_HUD_DUR_SHORT); |
1694 | effectp->setColor(LLColor4U(gAgent.getEffectColor())); | 1695 | effectp->setColor(LLColor4U(gAgent.getEffectColor())); |
1695 | gFloaterTools->dirty(); | 1696 | gFloaterTools->dirty(); |
1697 | |||
1698 | LLMuteList::getInstance()->autoRemove(to_agent, LLMuteList::AR_INVENTORY); | ||
1696 | } | 1699 | } |
1697 | 1700 | ||
1698 | void LLToolDragAndDrop::giveInventoryCategory(const LLUUID& to_agent, | 1701 | void LLToolDragAndDrop::giveInventoryCategory(const LLUUID& to_agent, |
@@ -1895,6 +1898,8 @@ void LLToolDragAndDrop::commitGiveInventoryCategory(const LLUUID& to_agent, | |||
1895 | effectp->setDuration(LL_HUD_DUR_SHORT); | 1898 | effectp->setDuration(LL_HUD_DUR_SHORT); |
1896 | effectp->setColor(LLColor4U(gAgent.getEffectColor())); | 1899 | effectp->setColor(LLColor4U(gAgent.getEffectColor())); |
1897 | gFloaterTools->dirty(); | 1900 | gFloaterTools->dirty(); |
1901 | |||
1902 | LLMuteList::getInstance()->autoRemove(to_agent, LLMuteList::AR_INVENTORY); | ||
1898 | } | 1903 | } |
1899 | } | 1904 | } |
1900 | 1905 | ||
diff --git a/linden/indra/newview/lltoolfocus.cpp b/linden/indra/newview/lltoolfocus.cpp index c526e6e..e5a3ed5 100644 --- a/linden/indra/newview/lltoolfocus.cpp +++ b/linden/indra/newview/lltoolfocus.cpp | |||
@@ -57,6 +57,7 @@ | |||
57 | #include "llmorphview.h" | 57 | #include "llmorphview.h" |
58 | 58 | ||
59 | // Globals | 59 | // Globals |
60 | BOOL gCameraBtnZoom = TRUE; | ||
60 | BOOL gCameraBtnOrbit = FALSE; | 61 | BOOL gCameraBtnOrbit = FALSE; |
61 | BOOL gCameraBtnPan = FALSE; | 62 | BOOL gCameraBtnPan = FALSE; |
62 | 63 | ||
@@ -403,7 +404,7 @@ BOOL LLToolCamera::handleHover(S32 x, S32 y, MASK mask) | |||
403 | } | 404 | } |
404 | lldebugst(LLERR_USER_INPUT) << "hover handled by LLToolPan" << llendl; | 405 | lldebugst(LLERR_USER_INPUT) << "hover handled by LLToolPan" << llendl; |
405 | } | 406 | } |
406 | else | 407 | else if (gCameraBtnZoom) |
407 | { | 408 | { |
408 | // Zoom tool | 409 | // Zoom tool |
409 | if (hasMouseCapture()) | 410 | if (hasMouseCapture()) |
diff --git a/linden/indra/newview/lltoolfocus.h b/linden/indra/newview/lltoolfocus.h index 3f5b04c..e50ea5e 100644 --- a/linden/indra/newview/lltoolfocus.h +++ b/linden/indra/newview/lltoolfocus.h | |||
@@ -77,5 +77,6 @@ protected: | |||
77 | 77 | ||
78 | extern BOOL gCameraBtnOrbit; | 78 | extern BOOL gCameraBtnOrbit; |
79 | extern BOOL gCameraBtnPan; | 79 | extern BOOL gCameraBtnPan; |
80 | extern BOOL gCameraBtnZoom; | ||
80 | 81 | ||
81 | #endif | 82 | #endif |
diff --git a/linden/indra/newview/lltoolmorph.cpp b/linden/indra/newview/lltoolmorph.cpp index a18321a..2fbf4ae 100644 --- a/linden/indra/newview/lltoolmorph.cpp +++ b/linden/indra/newview/lltoolmorph.cpp | |||
@@ -33,7 +33,7 @@ | |||
33 | 33 | ||
34 | // File includes | 34 | // File includes |
35 | #include "lltoolmorph.h" | 35 | #include "lltoolmorph.h" |
36 | #include "llglimmediate.h" | 36 | #include "llrender.h" |
37 | 37 | ||
38 | // Library includes | 38 | // Library includes |
39 | #include "audioengine.h" | 39 | #include "audioengine.h" |
diff --git a/linden/indra/newview/lltoolselectrect.cpp b/linden/indra/newview/lltoolselectrect.cpp index 11cdf4b..ceb0659 100644 --- a/linden/indra/newview/lltoolselectrect.cpp +++ b/linden/indra/newview/lltoolselectrect.cpp | |||
@@ -36,7 +36,7 @@ | |||
36 | 36 | ||
37 | // Library includes | 37 | // Library includes |
38 | #include "llgl.h" | 38 | #include "llgl.h" |
39 | #include "llglimmediate.h" | 39 | #include "llrender.h" |
40 | #include "lldarray.h" | 40 | #include "lldarray.h" |
41 | 41 | ||
42 | // Viewer includes | 42 | // Viewer includes |
diff --git a/linden/indra/newview/lltracker.cpp b/linden/indra/newview/lltracker.cpp index 9e4bb09..b5854c8 100644 --- a/linden/indra/newview/lltracker.cpp +++ b/linden/indra/newview/lltracker.cpp | |||
@@ -36,7 +36,7 @@ | |||
36 | #include "lldarray.h" | 36 | #include "lldarray.h" |
37 | #include "llfontgl.h" | 37 | #include "llfontgl.h" |
38 | #include "llgl.h" | 38 | #include "llgl.h" |
39 | #include "llglimmediate.h" | 39 | #include "llrender.h" |
40 | #include "llinventory.h" | 40 | #include "llinventory.h" |
41 | #include "llmemory.h" | 41 | #include "llmemory.h" |
42 | #include "llstring.h" | 42 | #include "llstring.h" |
diff --git a/linden/indra/newview/lltrans.cpp b/linden/indra/newview/lltrans.cpp new file mode 100644 index 0000000..a848250 --- /dev/null +++ b/linden/indra/newview/lltrans.cpp | |||
@@ -0,0 +1,103 @@ | |||
1 | /** | ||
2 | * @file lltrans.cpp | ||
3 | * @brief LLTrans implementation | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2000&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2000-2008, 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 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 | */ | ||
31 | |||
32 | |||
33 | #include "llviewerprecompiledheaders.h" | ||
34 | #include "lltrans.h" | ||
35 | #include "llxmlnode.h" | ||
36 | #include "lluictrlfactory.h" | ||
37 | #include "llalertdialog.h" | ||
38 | |||
39 | #include <map> | ||
40 | |||
41 | LLTrans::template_map_t LLTrans::sStringTemplates; | ||
42 | |||
43 | //static | ||
44 | bool LLTrans::parseStrings(const LLString& xml_filename) | ||
45 | { | ||
46 | LLXMLNodePtr root; | ||
47 | BOOL success = LLUICtrlFactory::getLayeredXMLNode(xml_filename, root); | ||
48 | |||
49 | if (!success || root.isNull() || !root->hasName( "strings" )) | ||
50 | { | ||
51 | llerrs << "Problem reading strings: " << xml_filename << llendl; | ||
52 | return false; | ||
53 | } | ||
54 | |||
55 | for (LLXMLNode* string = root->getFirstChild(); | ||
56 | string != NULL; string = string->getNextSibling()) | ||
57 | { | ||
58 | if (!string->hasName("string")) | ||
59 | { | ||
60 | continue; | ||
61 | } | ||
62 | |||
63 | LLString string_name; | ||
64 | |||
65 | if (! string->getAttributeString("name", string_name)) | ||
66 | { | ||
67 | llwarns << "Unable to parse string with no name" << llendl; | ||
68 | continue; | ||
69 | } | ||
70 | |||
71 | LLTransTemplate xml_template(string_name, string->getTextContents()); | ||
72 | sStringTemplates[xml_template.mName] = xml_template; | ||
73 | } | ||
74 | |||
75 | return true; | ||
76 | } | ||
77 | |||
78 | //static | ||
79 | LLString LLTrans::getString(const LLString &xml_desc, const LLString::format_map_t& args) | ||
80 | { | ||
81 | template_map_t::iterator iter = sStringTemplates.find(xml_desc); | ||
82 | |||
83 | if (iter != sStringTemplates.end()) | ||
84 | { | ||
85 | LLString text = iter->second.mText; | ||
86 | LLString::format(text, args); | ||
87 | |||
88 | return text; | ||
89 | } | ||
90 | else | ||
91 | { | ||
92 | LLString::format_map_t args; | ||
93 | args["[STRING_NAME]"] = xml_desc; | ||
94 | llwarns << "Missing String: [" << xml_desc << "]" << llendl; | ||
95 | LLAlertDialog* dialogp = LLAlertDialog::showXml("MissingString", args); | ||
96 | if (dialogp == NULL) | ||
97 | { | ||
98 | llerrs << "Bad or missing alerts.xml!" << llendl; | ||
99 | } | ||
100 | return ""; | ||
101 | } | ||
102 | } | ||
103 | |||
diff --git a/linden/indra/newview/lltrans.h b/linden/indra/newview/lltrans.h new file mode 100644 index 0000000..eb159f2 --- /dev/null +++ b/linden/indra/newview/lltrans.h | |||
@@ -0,0 +1,92 @@ | |||
1 | /** | ||
2 | * @file lltrans.h | ||
3 | * @brief LLTrans definition | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2000&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2000-2008, 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 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 | */ | ||
31 | |||
32 | #ifndef LL_TRANS_H | ||
33 | #define LL_TRANS_H | ||
34 | |||
35 | #include <map> | ||
36 | |||
37 | /** | ||
38 | * @brief String template loaded from strings.xml | ||
39 | */ | ||
40 | class LLTransTemplate | ||
41 | { | ||
42 | public: | ||
43 | LLTransTemplate(const LLString& name = "", const LLString& text = "") : mName(name), mText(text) {} | ||
44 | |||
45 | LLString mName; | ||
46 | LLString mText; | ||
47 | }; | ||
48 | |||
49 | /** | ||
50 | * @brief Localized strings class | ||
51 | * This class is used to retrieve translations of strings used to build larger ones, as well as | ||
52 | * strings with a general usage that don't belong to any specific floater. For example, | ||
53 | * "Owner:", "Retrieving..." used in the place of a not yet known name, etc. | ||
54 | */ | ||
55 | class LLTrans | ||
56 | { | ||
57 | public: | ||
58 | LLTrans(); | ||
59 | |||
60 | /** | ||
61 | * @brief Parses the xml file that holds the strings. Used once on startup | ||
62 | * @param xml_filename Filename to parse | ||
63 | * @returns true if the file was parsed successfully, true if something went wrong | ||
64 | */ | ||
65 | static bool parseStrings(const LLString& xml_filename); | ||
66 | |||
67 | /** | ||
68 | * @brief Returns a translated string | ||
69 | * @param xml_desc String's description | ||
70 | * @param args A list of substrings to replace in the string | ||
71 | * @returns Translated string | ||
72 | */ | ||
73 | static LLString getString(const LLString &xml_desc, const LLString::format_map_t& args); | ||
74 | |||
75 | /** | ||
76 | * @brief Returns a translated string | ||
77 | * @param xml_desc String's description | ||
78 | * @returns Translated string | ||
79 | */ | ||
80 | static LLString getString(const LLString &xml_desc) | ||
81 | { | ||
82 | LLString::format_map_t empty; | ||
83 | return getString(xml_desc, empty); | ||
84 | } | ||
85 | |||
86 | |||
87 | private: | ||
88 | typedef std::map<LLString, LLTransTemplate > template_map_t; | ||
89 | static template_map_t sStringTemplates; | ||
90 | }; | ||
91 | |||
92 | #endif | ||
diff --git a/linden/indra/newview/lluserauth.cpp b/linden/indra/newview/lluserauth.cpp index 9e040d2..6c8801a 100644 --- a/linden/indra/newview/lluserauth.cpp +++ b/linden/indra/newview/lluserauth.cpp | |||
@@ -103,14 +103,15 @@ void LLUserAuth::authenticate( | |||
103 | const std::string& hashed_mac, | 103 | const std::string& hashed_mac, |
104 | const std::string& hashed_volume_serial) | 104 | const std::string& hashed_volume_serial) |
105 | { | 105 | { |
106 | llinfos << "Authenticating: " << firstname << " " << lastname << ", " | 106 | LL_INFOS2("AppInit", "Authentication") << "Authenticating: " << firstname << " " << lastname << ", " |
107 | << /*dpasswd.c_str() <<*/ llendl; | 107 | << /*dpasswd.c_str() <<*/ LL_ENDL; |
108 | std::ostringstream option_str; | 108 | std::ostringstream option_str; |
109 | option_str << "Options: "; | 109 | option_str << "Options: "; |
110 | std::ostream_iterator<const char*> appender(option_str, ", "); | 110 | std::ostream_iterator<const char*> appender(option_str, ", "); |
111 | std::copy(requested_options.begin(), requested_options.end(), appender); | 111 | std::copy(requested_options.begin(), requested_options.end(), appender); |
112 | option_str << "END"; | 112 | option_str << "END"; |
113 | llinfos << option_str.str().c_str() << llendl; | 113 | |
114 | LL_INFOS2("AppInit", "Authentication") << option_str.str().c_str() << LL_ENDL; | ||
114 | 115 | ||
115 | mAuthResponse = E_NO_RESPONSE_YET; | 116 | mAuthResponse = E_NO_RESPONSE_YET; |
116 | //mDownloadTimer.reset(); | 117 | //mDownloadTimer.reset(); |
@@ -163,7 +164,7 @@ void LLUserAuth::authenticate( | |||
163 | 164 | ||
164 | XMLRPC_RequestFree(request, 1); | 165 | XMLRPC_RequestFree(request, 1); |
165 | 166 | ||
166 | llinfos << "LLUserAuth::authenticate: uri=" << auth_uri << llendl; | 167 | LL_INFOS2("AppInit", "Authentication") << "LLUserAuth::authenticate: uri=" << auth_uri << LL_ENDL; |
167 | } | 168 | } |
168 | 169 | ||
169 | 170 | ||
@@ -188,14 +189,15 @@ void LLUserAuth::authenticate( | |||
188 | { | 189 | { |
189 | std::string dpasswd("$1$"); | 190 | std::string dpasswd("$1$"); |
190 | dpasswd.append(passwd); | 191 | dpasswd.append(passwd); |
191 | llinfos << "Authenticating: " << firstname << " " << lastname << ", " | 192 | LL_INFOS2("AppInit", "Authentication") << "Authenticating: " << firstname << " " << lastname << ", " |
192 | << /*dpasswd.c_str() <<*/ llendl; | 193 | << /*dpasswd.c_str() <<*/ LL_ENDL; |
193 | std::ostringstream option_str; | 194 | std::ostringstream option_str; |
194 | option_str << "Options: "; | 195 | option_str << "Options: "; |
195 | std::ostream_iterator<const char*> appender(option_str, ", "); | 196 | std::ostream_iterator<const char*> appender(option_str, ", "); |
196 | std::copy(requested_options.begin(), requested_options.end(), appender); | 197 | std::copy(requested_options.begin(), requested_options.end(), appender); |
197 | option_str << "END"; | 198 | option_str << "END"; |
198 | llinfos << option_str.str().c_str() << llendl; | 199 | |
200 | LL_INFOS2("AppInit", "Authentication") << option_str.str().c_str() << LL_ENDL; | ||
199 | 201 | ||
200 | mAuthResponse = E_NO_RESPONSE_YET; | 202 | mAuthResponse = E_NO_RESPONSE_YET; |
201 | //mDownloadTimer.reset(); | 203 | //mDownloadTimer.reset(); |
@@ -248,7 +250,7 @@ void LLUserAuth::authenticate( | |||
248 | 250 | ||
249 | XMLRPC_RequestFree(request, 1); | 251 | XMLRPC_RequestFree(request, 1); |
250 | 252 | ||
251 | llinfos << "LLUserAuth::authenticate: uri=" << auth_uri << llendl; | 253 | LL_INFOS2("AppInit", "Authentication") << "LLUserAuth::authenticate: uri=" << auth_uri << LL_ENDL; |
252 | } | 254 | } |
253 | 255 | ||
254 | 256 | ||
@@ -300,7 +302,7 @@ LLUserAuth::UserAuthcode LLUserAuth::authResponse() | |||
300 | break; | 302 | break; |
301 | } | 303 | } |
302 | 304 | ||
303 | llinfos << "Processed response: " << result << llendl; | 305 | LL_INFOS2("AppInit", "Authentication") << "Processed response: " << result << LL_ENDL; |
304 | 306 | ||
305 | delete mTransaction; | 307 | delete mTransaction; |
306 | mTransaction = NULL; | 308 | mTransaction = NULL; |
diff --git a/linden/indra/newview/llviewerassetstorage.cpp b/linden/indra/newview/llviewerassetstorage.cpp index d9d497a..ac4003b 100644 --- a/linden/indra/newview/llviewerassetstorage.cpp +++ b/linden/indra/newview/llviewerassetstorage.cpp | |||
@@ -202,7 +202,7 @@ if(!filename) | |||
202 | llinfos << "ASSET_ID: " << asset_id << llendl; | 202 | llinfos << "ASSET_ID: " << asset_id << llendl; |
203 | 203 | ||
204 | S32 size = 0; | 204 | S32 size = 0; |
205 | FILE* fp = LLFile::fopen(filename, "rb"); | 205 | LLFILE* fp = LLFile::fopen(filename, "rb"); |
206 | if (fp) | 206 | if (fp) |
207 | { | 207 | { |
208 | fseek(fp, 0, SEEK_END); | 208 | fseek(fp, 0, SEEK_END); |
diff --git a/linden/indra/newview/llviewercontrol.cpp b/linden/indra/newview/llviewercontrol.cpp index 203f9c7..146d738 100644 --- a/linden/indra/newview/llviewercontrol.cpp +++ b/linden/indra/newview/llviewercontrol.cpp | |||
@@ -69,7 +69,7 @@ | |||
69 | #include "llappviewer.h" | 69 | #include "llappviewer.h" |
70 | #include "llvosurfacepatch.h" | 70 | #include "llvosurfacepatch.h" |
71 | #include "llvowlsky.h" | 71 | #include "llvowlsky.h" |
72 | #include "llglimmediate.h" | 72 | #include "llrender.h" |
73 | 73 | ||
74 | #ifdef TOGGLE_HACKED_GODLIKE_VIEWER | 74 | #ifdef TOGGLE_HACKED_GODLIKE_VIEWER |
75 | BOOL gHackGodmode = FALSE; | 75 | BOOL gHackGodmode = FALSE; |
@@ -86,6 +86,7 @@ LLString gLastRunVersion; | |||
86 | LLString gCurrentVersion; | 86 | LLString gCurrentVersion; |
87 | 87 | ||
88 | extern BOOL gResizeScreenTexture; | 88 | extern BOOL gResizeScreenTexture; |
89 | extern BOOL gDebugGL; | ||
89 | 90 | ||
90 | //////////////////////////////////////////////////////////////////////////// | 91 | //////////////////////////////////////////////////////////////////////////// |
91 | // Listeners | 92 | // Listeners |
@@ -357,9 +358,15 @@ static bool handleRenderUseImpostorsChanged(const LLSD& newvalue) | |||
357 | return true; | 358 | return true; |
358 | } | 359 | } |
359 | 360 | ||
360 | static bool handleRenderUseCleverUIChanged(const LLSD& newvalue) | 361 | static bool handleRenderDebugGLChanged(const LLSD& newvalue) |
361 | { | 362 | { |
362 | gGL.setClever(newvalue.asBoolean()); | 363 | gDebugGL = newvalue.asBoolean(); |
364 | return true; | ||
365 | } | ||
366 | |||
367 | static bool handleRenderDebugPipelineChanged(const LLSD& newvalue) | ||
368 | { | ||
369 | gDebugPipeline = newvalue.asBoolean(); | ||
363 | return true; | 370 | return true; |
364 | } | 371 | } |
365 | 372 | ||
@@ -426,6 +433,7 @@ bool handleVoiceClientPrefsChanged(const LLSD& newvalue) | |||
426 | gVoiceClient->setCaptureDevice(inputDevice); | 433 | gVoiceClient->setCaptureDevice(inputDevice); |
427 | std::string outputDevice = gSavedSettings.getString("VoiceOutputAudioDevice"); | 434 | std::string outputDevice = gSavedSettings.getString("VoiceOutputAudioDevice"); |
428 | gVoiceClient->setRenderDevice(outputDevice); | 435 | gVoiceClient->setRenderDevice(outputDevice); |
436 | gVoiceClient->setLipSyncEnabled(gSavedSettings.getBOOL("LipSyncEnabled")); | ||
429 | } | 437 | } |
430 | return true; | 438 | return true; |
431 | } | 439 | } |
@@ -463,7 +471,8 @@ void settings_setup_listeners() | |||
463 | gSavedSettings.getControl("RenderMaxVBOSize")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _1)); | 471 | gSavedSettings.getControl("RenderMaxVBOSize")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _1)); |
464 | gSavedSettings.getControl("RenderUseFBO")->getSignal()->connect(boost::bind(&handleRenderUseFBOChanged, _1)); | 472 | gSavedSettings.getControl("RenderUseFBO")->getSignal()->connect(boost::bind(&handleRenderUseFBOChanged, _1)); |
465 | gSavedSettings.getControl("RenderUseImpostors")->getSignal()->connect(boost::bind(&handleRenderUseImpostorsChanged, _1)); | 473 | gSavedSettings.getControl("RenderUseImpostors")->getSignal()->connect(boost::bind(&handleRenderUseImpostorsChanged, _1)); |
466 | gSavedSettings.getControl("RenderUseCleverUI")->getSignal()->connect(boost::bind(&handleRenderUseCleverUIChanged, _1)); | 474 | gSavedSettings.getControl("RenderDebugGL")->getSignal()->connect(boost::bind(&handleRenderDebugGLChanged, _1)); |
475 | gSavedSettings.getControl("RenderDebugPipeline")->getSignal()->connect(boost::bind(&handleRenderDebugPipelineChanged, _1)); | ||
467 | gSavedSettings.getControl("RenderResolutionDivisor")->getSignal()->connect(boost::bind(&handleRenderResolutionDivisorChanged, _1)); | 476 | gSavedSettings.getControl("RenderResolutionDivisor")->getSignal()->connect(boost::bind(&handleRenderResolutionDivisorChanged, _1)); |
468 | gSavedSettings.getControl("RenderDeferred")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _1)); | 477 | gSavedSettings.getControl("RenderDeferred")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _1)); |
469 | gSavedSettings.getControl("AvatarCompositeLimit")->getSignal()->connect(boost::bind(&handleCompositeLimitChanged, _1)); | 478 | gSavedSettings.getControl("AvatarCompositeLimit")->getSignal()->connect(boost::bind(&handleCompositeLimitChanged, _1)); |
@@ -555,5 +564,6 @@ void settings_setup_listeners() | |||
555 | gSavedSettings.getControl("VivoxDebugServerName")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1)); | 564 | gSavedSettings.getControl("VivoxDebugServerName")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1)); |
556 | gSavedSettings.getControl("VoiceInputAudioDevice")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1)); | 565 | gSavedSettings.getControl("VoiceInputAudioDevice")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1)); |
557 | gSavedSettings.getControl("VoiceOutputAudioDevice")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1)); | 566 | gSavedSettings.getControl("VoiceOutputAudioDevice")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1)); |
567 | gSavedSettings.getControl("LipSyncEnabled")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1)); | ||
558 | } | 568 | } |
559 | 569 | ||
diff --git a/linden/indra/newview/llviewerdisplay.cpp b/linden/indra/newview/llviewerdisplay.cpp index cdffe33..47c9c32 100644 --- a/linden/indra/newview/llviewerdisplay.cpp +++ b/linden/indra/newview/llviewerdisplay.cpp | |||
@@ -34,7 +34,7 @@ | |||
34 | #include "llviewerdisplay.h" | 34 | #include "llviewerdisplay.h" |
35 | 35 | ||
36 | #include "llgl.h" | 36 | #include "llgl.h" |
37 | #include "llglimmediate.h" | 37 | #include "llrender.h" |
38 | #include "llglheaders.h" | 38 | #include "llglheaders.h" |
39 | #include "llagent.h" | 39 | #include "llagent.h" |
40 | #include "llviewercontrol.h" | 40 | #include "llviewercontrol.h" |
@@ -99,6 +99,9 @@ BOOL gDisplaySwapBuffers = FALSE; | |||
99 | BOOL gResizeScreenTexture = FALSE; | 99 | BOOL gResizeScreenTexture = FALSE; |
100 | BOOL gSnapshot = FALSE; | 100 | BOOL gSnapshot = FALSE; |
101 | 101 | ||
102 | U32 gRecentFrameCount = 0; // number of 'recent' frames | ||
103 | LLFrameTimer gRecentTime; | ||
104 | |||
102 | // Rendering stuff | 105 | // Rendering stuff |
103 | void pre_show_depth_buffer(); | 106 | void pre_show_depth_buffer(); |
104 | void post_show_depth_buffer(); | 107 | void post_show_depth_buffer(); |
@@ -125,27 +128,24 @@ void display_startup() | |||
125 | 128 | ||
126 | // Required for HTML update in login screen | 129 | // Required for HTML update in login screen |
127 | static S32 frame_count = 0; | 130 | static S32 frame_count = 0; |
128 | #ifndef LL_RELEASE_FOR_DOWNLOAD | 131 | |
129 | LLGLState::checkStates(); | 132 | LLGLState::checkStates(); |
130 | LLGLState::checkTextureChannels(); | 133 | LLGLState::checkTextureChannels(); |
131 | #endif | ||
132 | 134 | ||
133 | if (frame_count++ > 1) // make sure we have rendered a frame first | 135 | if (frame_count++ > 1) // make sure we have rendered a frame first |
134 | { | 136 | { |
135 | LLDynamicTexture::updateAllInstances(); | 137 | LLDynamicTexture::updateAllInstances(); |
136 | } | 138 | } |
137 | 139 | ||
138 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
139 | LLGLState::checkStates(); | 140 | LLGLState::checkStates(); |
140 | LLGLState::checkTextureChannels(); | 141 | LLGLState::checkTextureChannels(); |
141 | #endif | ||
142 | 142 | ||
143 | glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); | 143 | glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); |
144 | LLGLSUIDefault gls_ui; | 144 | LLGLSUIDefault gls_ui; |
145 | gPipeline.disableLights(); | 145 | gPipeline.disableLights(); |
146 | 146 | ||
147 | gViewerWindow->setup2DRender(); | 147 | gViewerWindow->setup2DRender(); |
148 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 148 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
149 | 149 | ||
150 | gGL.color4f(1,1,1,1); | 150 | gGL.color4f(1,1,1,1); |
151 | gViewerWindow->draw(); | 151 | gViewerWindow->draw(); |
@@ -153,10 +153,8 @@ void display_startup() | |||
153 | 153 | ||
154 | LLVertexBuffer::unbind(); | 154 | LLVertexBuffer::unbind(); |
155 | 155 | ||
156 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
157 | LLGLState::checkStates(); | 156 | LLGLState::checkStates(); |
158 | LLGLState::checkTextureChannels(); | 157 | LLGLState::checkTextureChannels(); |
159 | #endif | ||
160 | 158 | ||
161 | gViewerWindow->mWindow->swapBuffers(); | 159 | gViewerWindow->mWindow->swapBuffers(); |
162 | glClear(GL_DEPTH_BUFFER_BIT); | 160 | glClear(GL_DEPTH_BUFFER_BIT); |
@@ -186,6 +184,18 @@ void display_update_camera() | |||
186 | LLWorld::getInstance()->setLandFarClip(final_far); | 184 | LLWorld::getInstance()->setLandFarClip(final_far); |
187 | } | 185 | } |
188 | 186 | ||
187 | // Write some stats to llinfos | ||
188 | void display_stats() | ||
189 | { | ||
190 | F32 log_freq = gSavedSettings.getF32("FPSLogFrequency"); | ||
191 | if (log_freq > 0.f && gRecentTime.getElapsedTimeF32() >= log_freq) | ||
192 | { | ||
193 | F32 fps = gRecentFrameCount / log_freq; | ||
194 | llinfos << llformat("FPS: %.02f", fps) << llendl; | ||
195 | gRecentFrameCount = 0; | ||
196 | gRecentTime.reset(); | ||
197 | } | ||
198 | } | ||
189 | 199 | ||
190 | // Paint the display! | 200 | // Paint the display! |
191 | void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) | 201 | void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) |
@@ -204,10 +214,8 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) | |||
204 | 214 | ||
205 | LLVertexBuffer::unbind(); | 215 | LLVertexBuffer::unbind(); |
206 | 216 | ||
207 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
208 | LLGLState::checkStates(); | 217 | LLGLState::checkStates(); |
209 | LLGLState::checkTextureChannels(); | 218 | LLGLState::checkTextureChannels(); |
210 | #endif | ||
211 | 219 | ||
212 | gPipeline.disableLights(); | 220 | gPipeline.disableLights(); |
213 | 221 | ||
@@ -232,10 +240,8 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) | |||
232 | gViewerWindow->performPick(); | 240 | gViewerWindow->performPick(); |
233 | 241 | ||
234 | 242 | ||
235 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
236 | LLGLState::checkStates(); | 243 | LLGLState::checkStates(); |
237 | LLGLState::checkTextureChannels(); | 244 | LLGLState::checkTextureChannels(); |
238 | #endif | ||
239 | 245 | ||
240 | ////////////////////////////////////////////////////////// | 246 | ////////////////////////////////////////////////////////// |
241 | // | 247 | // |
@@ -286,6 +292,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) | |||
286 | 292 | ||
287 | gPipeline.mBackfaceCull = TRUE; | 293 | gPipeline.mBackfaceCull = TRUE; |
288 | gFrameCount++; | 294 | gFrameCount++; |
295 | gRecentFrameCount++; | ||
289 | if (gFocusMgr.getAppHasFocus()) | 296 | if (gFocusMgr.getAppHasFocus()) |
290 | { | 297 | { |
291 | gForegroundFrameCount++; | 298 | gForegroundFrameCount++; |
@@ -474,7 +481,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) | |||
474 | LLFastTimer t(LLFastTimer::FTM_UPDATE_TEXTURES); | 481 | LLFastTimer t(LLFastTimer::FTM_UPDATE_TEXTURES); |
475 | if (LLDynamicTexture::updateAllInstances()) | 482 | if (LLDynamicTexture::updateAllInstances()) |
476 | { | 483 | { |
477 | glColorMask(GL_TRUE,GL_TRUE,GL_TRUE,GL_TRUE); | 484 | gGL.setColorMask(true, true); |
478 | glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); | 485 | glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); |
479 | } | 486 | } |
480 | } | 487 | } |
@@ -559,7 +566,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) | |||
559 | gPipeline.resizeScreenTexture(); | 566 | gPipeline.resizeScreenTexture(); |
560 | } | 567 | } |
561 | 568 | ||
562 | glColorMask(GL_TRUE,GL_TRUE,GL_TRUE,GL_TRUE); | 569 | gGL.setColorMask(true, true); |
563 | glClearColor(0,0,0,0); | 570 | glClearColor(0,0,0,0); |
564 | 571 | ||
565 | if (!for_snapshot) | 572 | if (!for_snapshot) |
@@ -690,20 +697,20 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) | |||
690 | 697 | ||
691 | if (to_texture) | 698 | if (to_texture) |
692 | { | 699 | { |
693 | glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); | 700 | gGL.setColorMask(true, true); |
694 | gPipeline.mScreen.bindTarget(); | 701 | gPipeline.mScreen.bindTarget(); |
695 | glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); | 702 | glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); |
696 | glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_FALSE); | 703 | gGL.setColorMask(true, false); |
697 | } | 704 | } |
698 | 705 | ||
699 | if (!(LLAppViewer::instance()->logoutRequestSent() && LLAppViewer::instance()->hasSavedFinalSnapshot()) | 706 | if (!(LLAppViewer::instance()->logoutRequestSent() && LLAppViewer::instance()->hasSavedFinalSnapshot()) |
700 | && !gRestoreGL) | 707 | && !gRestoreGL) |
701 | { | 708 | { |
702 | glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_FALSE); | 709 | gGL.setColorMask(true, false); |
703 | LLPipeline::sUnderWaterRender = LLViewerCamera::getInstance()->cameraUnderWater() ? TRUE : FALSE; | 710 | LLPipeline::sUnderWaterRender = LLViewerCamera::getInstance()->cameraUnderWater() ? TRUE : FALSE; |
704 | gPipeline.renderGeom(*LLViewerCamera::getInstance(), TRUE); | 711 | gPipeline.renderGeom(*LLViewerCamera::getInstance(), TRUE); |
705 | LLPipeline::sUnderWaterRender = FALSE; | 712 | LLPipeline::sUnderWaterRender = FALSE; |
706 | glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); | 713 | gGL.setColorMask(true, true); |
707 | 714 | ||
708 | //store this frame's modelview matrix for use | 715 | //store this frame's modelview matrix for use |
709 | //when rendering next frame's occlusion queries | 716 | //when rendering next frame's occlusion queries |
@@ -741,6 +748,8 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) | |||
741 | send_agent_resume(); | 748 | send_agent_resume(); |
742 | LLPipeline::sRenderFrameTest = FALSE; | 749 | LLPipeline::sRenderFrameTest = FALSE; |
743 | } | 750 | } |
751 | |||
752 | display_stats(); | ||
744 | } | 753 | } |
745 | 754 | ||
746 | void render_hud_attachments() | 755 | void render_hud_attachments() |
@@ -880,9 +889,7 @@ BOOL setup_hud_matrices(BOOL for_select) | |||
880 | 889 | ||
881 | void render_ui_and_swap() | 890 | void render_ui_and_swap() |
882 | { | 891 | { |
883 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
884 | LLGLState::checkStates(); | 892 | LLGLState::checkStates(); |
885 | #endif | ||
886 | 893 | ||
887 | glPushMatrix(); | 894 | glPushMatrix(); |
888 | glLoadMatrixd(gGLLastModelView); | 895 | glLoadMatrixd(gGLLastModelView); |
@@ -918,15 +925,11 @@ void render_ui_and_swap() | |||
918 | if (!gDisconnected) | 925 | if (!gDisconnected) |
919 | { | 926 | { |
920 | render_ui_3d(); | 927 | render_ui_3d(); |
921 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
922 | LLGLState::checkStates(); | 928 | LLGLState::checkStates(); |
923 | #endif | ||
924 | } | 929 | } |
925 | 930 | ||
926 | render_ui_2d(); | 931 | render_ui_2d(); |
927 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
928 | LLGLState::checkStates(); | 932 | LLGLState::checkStates(); |
929 | #endif | ||
930 | } | 933 | } |
931 | gGL.flush(); | 934 | gGL.flush(); |
932 | 935 | ||
@@ -1088,7 +1091,7 @@ void render_ui_2d() | |||
1088 | } | 1091 | } |
1089 | 1092 | ||
1090 | stop_glerror(); | 1093 | stop_glerror(); |
1091 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 1094 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
1092 | 1095 | ||
1093 | // render outline for HUD | 1096 | // render outline for HUD |
1094 | if (gAgent.getAvatarObject() && gAgent.getAvatarObject()->mHUDCurZoom < 0.98f) | 1097 | if (gAgent.getAvatarObject() && gAgent.getAvatarObject()->mHUDCurZoom < 0.98f) |
@@ -1115,7 +1118,6 @@ void render_ui_2d() | |||
1115 | LLFontGL::sCurOrigin.set(0, 0); | 1118 | LLFontGL::sCurOrigin.set(0, 0); |
1116 | } | 1119 | } |
1117 | 1120 | ||
1118 | |||
1119 | void render_disconnected_background() | 1121 | void render_disconnected_background() |
1120 | { | 1122 | { |
1121 | gGL.color4f(1,1,1,1); | 1123 | gGL.color4f(1,1,1,1); |
diff --git a/linden/indra/newview/llviewerimagelist.cpp b/linden/indra/newview/llviewerimagelist.cpp index 88759af..a824b29 100644 --- a/linden/indra/newview/llviewerimagelist.cpp +++ b/linden/indra/newview/llviewerimagelist.cpp | |||
@@ -114,7 +114,7 @@ void LLViewerImageList::init() | |||
114 | 114 | ||
115 | void LLViewerImageList::doPreloadImages() | 115 | void LLViewerImageList::doPreloadImages() |
116 | { | 116 | { |
117 | llinfos << "Preloading images..." << llendl; | 117 | LL_DEBUGS("ViewerImages") << "Preloading images..." << LL_ENDL; |
118 | 118 | ||
119 | // Set the "missing asset" image | 119 | // Set the "missing asset" image |
120 | LLViewerImage::sMissingAssetImagep = getImageFromFile("missing_asset.tga"); | 120 | LLViewerImage::sMissingAssetImagep = getImageFromFile("missing_asset.tga"); |
@@ -772,10 +772,10 @@ void LLViewerImageList::decodeAllImages(F32 max_time) | |||
772 | max_time = llmax(max_time, .001f); | 772 | max_time = llmax(max_time, .001f); |
773 | F32 create_time = updateImagesCreateTextures(max_time); | 773 | F32 create_time = updateImagesCreateTextures(max_time); |
774 | 774 | ||
775 | llinfos << "decodeAllImages() took " << timer.getElapsedTimeF32() << " seconds. " | 775 | LL_DEBUGS("ViewerImages") << "decodeAllImages() took " << timer.getElapsedTimeF32() << " seconds. " |
776 | << " fetch_pending " << fetch_pending | 776 | << " fetch_pending " << fetch_pending |
777 | << " create_time " << create_time | 777 | << " create_time " << create_time |
778 | << llendl; | 778 | << LL_ENDL; |
779 | } | 779 | } |
780 | 780 | ||
781 | 781 | ||
diff --git a/linden/indra/newview/llviewerinventory.cpp b/linden/indra/newview/llviewerinventory.cpp index db005c7..d7c1778 100644 --- a/linden/indra/newview/llviewerinventory.cpp +++ b/linden/indra/newview/llviewerinventory.cpp | |||
@@ -254,7 +254,7 @@ void LLViewerInventoryItem::packMessage(LLMessageSystem* msg) const | |||
254 | msg->addU32Fast(_PREHASH_CRC, crc); | 254 | msg->addU32Fast(_PREHASH_CRC, crc); |
255 | } | 255 | } |
256 | // virtual | 256 | // virtual |
257 | BOOL LLViewerInventoryItem::importFile(FILE* fp) | 257 | BOOL LLViewerInventoryItem::importFile(LLFILE* fp) |
258 | { | 258 | { |
259 | BOOL rv = LLInventoryItem::importFile(fp); | 259 | BOOL rv = LLInventoryItem::importFile(fp); |
260 | mIsComplete = TRUE; | 260 | mIsComplete = TRUE; |
@@ -269,7 +269,7 @@ BOOL LLViewerInventoryItem::importLegacyStream(std::istream& input_stream) | |||
269 | return rv; | 269 | return rv; |
270 | } | 270 | } |
271 | 271 | ||
272 | bool LLViewerInventoryItem::importFileLocal(FILE* fp) | 272 | bool LLViewerInventoryItem::importFileLocal(LLFILE* fp) |
273 | { | 273 | { |
274 | // TODO: convert all functions that return BOOL to return bool | 274 | // TODO: convert all functions that return BOOL to return bool |
275 | bool rv = (LLInventoryItem::importFile(fp) ? true : false); | 275 | bool rv = (LLInventoryItem::importFile(fp) ? true : false); |
@@ -277,7 +277,7 @@ bool LLViewerInventoryItem::importFileLocal(FILE* fp) | |||
277 | return rv; | 277 | return rv; |
278 | } | 278 | } |
279 | 279 | ||
280 | bool LLViewerInventoryItem::exportFileLocal(FILE* fp) const | 280 | bool LLViewerInventoryItem::exportFileLocal(LLFILE* fp) const |
281 | { | 281 | { |
282 | char uuid_str[UUID_STR_LENGTH]; /* Flawfinder: ignore */ | 282 | char uuid_str[UUID_STR_LENGTH]; /* Flawfinder: ignore */ |
283 | fprintf(fp, "\tinv_item\t0\n\t{\n"); | 283 | fprintf(fp, "\tinv_item\t0\n\t{\n"); |
@@ -469,7 +469,7 @@ bool LLViewerInventoryCategory::fetchDescendents() | |||
469 | return false; | 469 | return false; |
470 | } | 470 | } |
471 | 471 | ||
472 | bool LLViewerInventoryCategory::importFileLocal(FILE* fp) | 472 | bool LLViewerInventoryCategory::importFileLocal(LLFILE* fp) |
473 | { | 473 | { |
474 | // *NOTE: This buffer size is hard coded into scanf() below. | 474 | // *NOTE: This buffer size is hard coded into scanf() below. |
475 | char buffer[MAX_STRING]; /* Flawfinder: ignore */ | 475 | char buffer[MAX_STRING]; /* Flawfinder: ignore */ |
@@ -538,7 +538,7 @@ bool LLViewerInventoryCategory::importFileLocal(FILE* fp) | |||
538 | return true; | 538 | return true; |
539 | } | 539 | } |
540 | 540 | ||
541 | bool LLViewerInventoryCategory::exportFileLocal(FILE* fp) const | 541 | bool LLViewerInventoryCategory::exportFileLocal(LLFILE* fp) const |
542 | { | 542 | { |
543 | char uuid_str[UUID_STR_LENGTH]; /* Flawfinder: ignore */ | 543 | char uuid_str[UUID_STR_LENGTH]; /* Flawfinder: ignore */ |
544 | fprintf(fp, "\tinv_category\t0\n\t{\n"); | 544 | fprintf(fp, "\tinv_category\t0\n\t{\n"); |
diff --git a/linden/indra/newview/llviewerinventory.h b/linden/indra/newview/llviewerinventory.h index 05dc19a..e80a042 100644 --- a/linden/indra/newview/llviewerinventory.h +++ b/linden/indra/newview/llviewerinventory.h | |||
@@ -100,13 +100,13 @@ public: | |||
100 | //virtual void packMessage(LLMessageSystem* msg) const; | 100 | //virtual void packMessage(LLMessageSystem* msg) const; |
101 | virtual BOOL unpackMessage(LLMessageSystem* msg, const char* block, S32 block_num = 0); | 101 | virtual BOOL unpackMessage(LLMessageSystem* msg, const char* block, S32 block_num = 0); |
102 | virtual BOOL unpackMessage(LLSD item); | 102 | virtual BOOL unpackMessage(LLSD item); |
103 | virtual BOOL importFile(FILE* fp); | 103 | virtual BOOL importFile(LLFILE* fp); |
104 | virtual BOOL importLegacyStream(std::istream& input_stream); | 104 | virtual BOOL importLegacyStream(std::istream& input_stream); |
105 | 105 | ||
106 | // file handling on the viewer. These are not meant for anything | 106 | // file handling on the viewer. These are not meant for anything |
107 | // other than cacheing. | 107 | // other than cacheing. |
108 | bool exportFileLocal(FILE* fp) const; | 108 | bool exportFileLocal(LLFILE* fp) const; |
109 | bool importFileLocal(FILE* fp); | 109 | bool importFileLocal(LLFILE* fp); |
110 | 110 | ||
111 | // new methods | 111 | // new methods |
112 | BOOL isComplete() const { return mIsComplete; } | 112 | BOOL isComplete() const { return mIsComplete; } |
@@ -182,8 +182,8 @@ public: | |||
182 | 182 | ||
183 | // file handling on the viewer. These are not meant for anything | 183 | // file handling on the viewer. These are not meant for anything |
184 | // other than cacheing. | 184 | // other than cacheing. |
185 | bool exportFileLocal(FILE* fp) const; | 185 | bool exportFileLocal(LLFILE* fp) const; |
186 | bool importFileLocal(FILE* fp); | 186 | bool importFileLocal(LLFILE* fp); |
187 | 187 | ||
188 | protected: | 188 | protected: |
189 | LLUUID mOwnerID; | 189 | LLUUID mOwnerID; |
diff --git a/linden/indra/newview/llviewerjoint.cpp b/linden/indra/newview/llviewerjoint.cpp index 71f9211..1be6e66 100644 --- a/linden/indra/newview/llviewerjoint.cpp +++ b/linden/indra/newview/llviewerjoint.cpp | |||
@@ -37,7 +37,7 @@ | |||
37 | #include "llviewerjoint.h" | 37 | #include "llviewerjoint.h" |
38 | 38 | ||
39 | #include "llgl.h" | 39 | #include "llgl.h" |
40 | #include "llglimmediate.h" | 40 | #include "llrender.h" |
41 | #include "llmath.h" | 41 | #include "llmath.h" |
42 | #include "llglheaders.h" | 42 | #include "llglheaders.h" |
43 | #include "llrendersphere.h" | 43 | #include "llrendersphere.h" |
@@ -272,12 +272,12 @@ U32 LLViewerJoint::render( F32 pixelArea, BOOL first_pass ) | |||
272 | triangle_count += drawShape( pixelArea, first_pass); | 272 | triangle_count += drawShape( pixelArea, first_pass); |
273 | } | 273 | } |
274 | // second pass writes to z buffer only | 274 | // second pass writes to z buffer only |
275 | glColorMask(FALSE, FALSE, FALSE, FALSE); | 275 | gGL.setColorMask(false, false); |
276 | { | 276 | { |
277 | triangle_count += drawShape( pixelArea, FALSE ); | 277 | triangle_count += drawShape( pixelArea, FALSE ); |
278 | } | 278 | } |
279 | // third past respects z buffer and writes color | 279 | // third past respects z buffer and writes color |
280 | glColorMask(TRUE, TRUE, TRUE, FALSE); | 280 | gGL.setColorMask(true, false); |
281 | { | 281 | { |
282 | LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE); | 282 | LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE); |
283 | triangle_count += drawShape( pixelArea, FALSE ); | 283 | triangle_count += drawShape( pixelArea, FALSE ); |
diff --git a/linden/indra/newview/llviewerjointattachment.cpp b/linden/indra/newview/llviewerjointattachment.cpp index bbab71b..f5a5d8a 100644 --- a/linden/indra/newview/llviewerjointattachment.cpp +++ b/linden/indra/newview/llviewerjointattachment.cpp | |||
@@ -38,7 +38,7 @@ | |||
38 | #include "llviewercontrol.h" | 38 | #include "llviewercontrol.h" |
39 | #include "lldrawable.h" | 39 | #include "lldrawable.h" |
40 | #include "llgl.h" | 40 | #include "llgl.h" |
41 | #include "llglimmediate.h" | 41 | #include "llrender.h" |
42 | #include "llvoavatar.h" | 42 | #include "llvoavatar.h" |
43 | #include "llvolume.h" | 43 | #include "llvolume.h" |
44 | #include "pipeline.h" | 44 | #include "pipeline.h" |
diff --git a/linden/indra/newview/llviewerjointmesh.cpp b/linden/indra/newview/llviewerjointmesh.cpp index 4a0f0b8..0dcf4ab 100644 --- a/linden/indra/newview/llviewerjointmesh.cpp +++ b/linden/indra/newview/llviewerjointmesh.cpp | |||
@@ -36,6 +36,7 @@ | |||
36 | 36 | ||
37 | #include "imageids.h" | 37 | #include "imageids.h" |
38 | #include "llfasttimer.h" | 38 | #include "llfasttimer.h" |
39 | #include "llrender.h" | ||
39 | 40 | ||
40 | #include "llagent.h" | 41 | #include "llagent.h" |
41 | #include "llapr.h" | 42 | #include "llapr.h" |
@@ -545,17 +546,7 @@ U32 LLViewerJointMesh::drawShape( F32 pixelArea, BOOL first_pass) | |||
545 | else | 546 | else |
546 | { | 547 | { |
547 | glColor4f(0.7f, 0.6f, 0.3f, 1.f); | 548 | glColor4f(0.7f, 0.6f, 0.3f, 1.f); |
548 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 549 | gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_LERP_TEX_ALPHA, LLTexUnit::TBS_TEX_COLOR, LLTexUnit::TBS_PREV_COLOR); |
549 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_INTERPOLATE_ARB); | ||
550 | |||
551 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB); | ||
552 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
553 | |||
554 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE); | ||
555 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR); | ||
556 | |||
557 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE2_RGB_ARB, GL_TEXTURE); | ||
558 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB_ARB, GL_ONE_MINUS_SRC_ALPHA); | ||
559 | } | 550 | } |
560 | } | 551 | } |
561 | else if( mLayerSet ) | 552 | else if( mLayerSet ) |
@@ -573,12 +564,10 @@ U32 LLViewerJointMesh::drawShape( F32 pixelArea, BOOL first_pass) | |||
573 | else | 564 | else |
574 | if ( mTexture.notNull() ) | 565 | if ( mTexture.notNull() ) |
575 | { | 566 | { |
576 | mTexture->bind(); | 567 | if (!mTexture->getClampS() || !mTexture->getClampT()) |
577 | if (!mTexture->getClampS()) { | 568 | { |
578 | glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); | 569 | mTexture->bind(); |
579 | } | 570 | mTexture->overrideClamp (TRUE, TRUE); |
580 | if (!mTexture->getClampT()) { | ||
581 | glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); | ||
582 | } | 571 | } |
583 | } | 572 | } |
584 | else | 573 | else |
@@ -590,15 +579,8 @@ U32 LLViewerJointMesh::drawShape( F32 pixelArea, BOOL first_pass) | |||
590 | { | 579 | { |
591 | if (isTransparent()) | 580 | if (isTransparent()) |
592 | { | 581 | { |
593 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 582 | gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_PREV_COLOR); |
594 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); | 583 | gGL.getTexUnit(0)->setTextureAlphaBlend(LLTexUnit::TBO_MULT, LLTexUnit::TBS_TEX_ALPHA, LLTexUnit::TBS_CONST_ALPHA); |
595 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_MODULATE); | ||
596 | |||
597 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB); | ||
598 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
599 | |||
600 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_TEXTURE); // GL_TEXTURE_ENV_COLOR is set in renderPass1 | ||
601 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA); | ||
602 | } | 584 | } |
603 | else | 585 | else |
604 | { | 586 | { |
@@ -639,16 +621,13 @@ U32 LLViewerJointMesh::drawShape( F32 pixelArea, BOOL first_pass) | |||
639 | 621 | ||
640 | if (mTestImageName) | 622 | if (mTestImageName) |
641 | { | 623 | { |
642 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 624 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
643 | } | 625 | } |
644 | 626 | ||
645 | if (mTexture.notNull()) { | 627 | if (mTexture.notNull()) |
646 | if (!mTexture->getClampS()) { | 628 | { |
647 | glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); | 629 | mTexture->bind(); |
648 | } | 630 | mTexture->restoreClamp(); |
649 | if (!mTexture->getClampT()) { | ||
650 | glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); | ||
651 | } | ||
652 | } | 631 | } |
653 | 632 | ||
654 | return triangle_count; | 633 | return triangle_count; |
@@ -870,9 +849,9 @@ void LLViewerJointMesh::updateVectorize() | |||
870 | case 1: vp = "SSE"; break; | 849 | case 1: vp = "SSE"; break; |
871 | default: vp = "COMPILER DEFAULT"; break; | 850 | default: vp = "COMPILER DEFAULT"; break; |
872 | } | 851 | } |
873 | llinfos << "Vectorization : " << ( vectorizeEnable ? "ENABLED" : "DISABLED" ) << llendl ; | 852 | LL_INFOS("AppInit") << "Vectorization : " << ( vectorizeEnable ? "ENABLED" : "DISABLED" ) << LL_ENDL ; |
874 | llinfos << "Vector Processor : " << vp << llendl ; | 853 | LL_INFOS("AppInit") << "Vector Processor : " << vp << LL_ENDL ; |
875 | llinfos << "Vectorized Skinning : " << ( vectorizeSkin ? "ENABLED" : "DISABLED" ) << llendl ; | 854 | LL_INFOS("AppInit") << "Vectorized Skinning : " << ( vectorizeSkin ? "ENABLED" : "DISABLED" ) << LL_ENDL ; |
876 | if(vectorizeEnable && vectorizeSkin) | 855 | if(vectorizeEnable && vectorizeSkin) |
877 | { | 856 | { |
878 | switch(sVectorizeProcessor) | 857 | switch(sVectorizeProcessor) |
diff --git a/linden/indra/newview/llviewerjoystick.cpp b/linden/indra/newview/llviewerjoystick.cpp index e9690f8..cf9d8a1 100644 --- a/linden/indra/newview/llviewerjoystick.cpp +++ b/linden/indra/newview/llviewerjoystick.cpp | |||
@@ -228,8 +228,38 @@ void LLViewerJoystick::init(bool autoenable) | |||
228 | mDriverState = JDS_UNINITIALIZED; | 228 | mDriverState = JDS_UNINITIALIZED; |
229 | } | 229 | } |
230 | } | 230 | } |
231 | |||
232 | // Autoenable the joystick for recognized devices if nothing was connected previously | ||
233 | if (!autoenable) | ||
234 | { | ||
235 | autoenable = gSavedSettings.getString("JoystickInitialized").empty() ? true : false; | ||
236 | } | ||
231 | updateEnabled(autoenable); | 237 | updateEnabled(autoenable); |
232 | 238 | ||
239 | if (mDriverState == JDS_INITIALIZED) | ||
240 | { | ||
241 | // A Joystick device is plugged in | ||
242 | if (isLikeSpaceNavigator()) | ||
243 | { | ||
244 | // It's a space navigator, we have defaults for it. | ||
245 | if (gSavedSettings.getString("JoystickInitialized") != "SpaceNavigator") | ||
246 | { | ||
247 | // Only set the defaults if we haven't already (in case they were overridden) | ||
248 | setSNDefaults(); | ||
249 | gSavedSettings.setString("JoystickInitialized", "SpaceNavigator"); | ||
250 | } | ||
251 | } | ||
252 | else | ||
253 | { | ||
254 | // It's not a Space Navigator | ||
255 | gSavedSettings.setString("JoystickInitialized", "UnknownDevice"); | ||
256 | } | ||
257 | } | ||
258 | else | ||
259 | { | ||
260 | // No device connected, don't change any settings | ||
261 | } | ||
262 | |||
233 | llinfos << "ndof: mDriverState=" << mDriverState << "; mNdofDev=" | 263 | llinfos << "ndof: mDriverState=" << mDriverState << "; mNdofDev=" |
234 | << mNdofDev << "; libinit=" << libinit << llendl; | 264 | << mNdofDev << "; libinit=" << libinit << llendl; |
235 | #endif | 265 | #endif |
diff --git a/linden/indra/newview/llviewerkeyboard.cpp b/linden/indra/newview/llviewerkeyboard.cpp index 0d927ae..c732ae5 100644 --- a/linden/indra/newview/llviewerkeyboard.cpp +++ b/linden/indra/newview/llviewerkeyboard.cpp | |||
@@ -738,7 +738,7 @@ BOOL LLViewerKeyboard::bindKey(const S32 mode, const KEY key, const MASK mask, c | |||
738 | 738 | ||
739 | S32 LLViewerKeyboard::loadBindings(const char *filename) | 739 | S32 LLViewerKeyboard::loadBindings(const char *filename) |
740 | { | 740 | { |
741 | FILE *fp; | 741 | LLFILE *fp; |
742 | const S32 BUFFER_SIZE = 2048; | 742 | const S32 BUFFER_SIZE = 2048; |
743 | char buffer[BUFFER_SIZE]; /* Flawfinder: ignore */ | 743 | char buffer[BUFFER_SIZE]; /* Flawfinder: ignore */ |
744 | // *NOTE: This buffer size is hard coded into scanf() below. | 744 | // *NOTE: This buffer size is hard coded into scanf() below. |
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp index 2459133..00226dd 100644 --- a/linden/indra/newview/llviewermenu.cpp +++ b/linden/indra/newview/llviewermenu.cpp | |||
@@ -401,8 +401,8 @@ void handle_duplicate_in_place(void*); | |||
401 | void handle_repeat_duplicate(void*); | 401 | void handle_repeat_duplicate(void*); |
402 | 402 | ||
403 | void handle_export(void*); | 403 | void handle_export(void*); |
404 | void handle_deed_object_to_group(void*); | 404 | // void handle_deed_object_to_group(void*); |
405 | BOOL enable_deed_object_to_group(void*); | 405 | // BOOL enable_deed_object_to_group(void*); |
406 | void handle_object_owner_self(void*); | 406 | void handle_object_owner_self(void*); |
407 | void handle_object_owner_permissive(void*); | 407 | void handle_object_owner_permissive(void*); |
408 | void handle_object_lock(void*); | 408 | void handle_object_lock(void*); |
@@ -515,7 +515,7 @@ public: | |||
515 | 515 | ||
516 | virtual void changed(U32 mask) | 516 | virtual void changed(U32 mask) |
517 | { | 517 | { |
518 | // JAMESDEBUG disabled for now - slows down client or causes crashes | 518 | // JC - Disabled for now - slows down client or causes crashes |
519 | // in inventory code. | 519 | // in inventory code. |
520 | // | 520 | // |
521 | // Also, this may not be faster than just rebuilding the menu each time. | 521 | // Also, this may not be faster than just rebuilding the menu each time. |
@@ -700,7 +700,7 @@ void init_menus() | |||
700 | gPopupMenuView->setBackgroundColor( color ); | 700 | gPopupMenuView->setBackgroundColor( color ); |
701 | 701 | ||
702 | // If we are not in production, use a different color to make it apparent. | 702 | // If we are not in production, use a different color to make it apparent. |
703 | if (LLAppViewer::instance()->isInProductionGrid()) | 703 | if (LLViewerLogin::getInstance()->isInProductionGrid()) |
704 | { | 704 | { |
705 | color = gColors.getColor( "MenuBarBgColor" ); | 705 | color = gColors.getColor( "MenuBarBgColor" ); |
706 | } | 706 | } |
@@ -722,7 +722,7 @@ void init_menus() | |||
722 | gViewerWindow->getRootView()->addChild(gMenuHolder); | 722 | gViewerWindow->getRootView()->addChild(gMenuHolder); |
723 | 723 | ||
724 | gViewerWindow->setMenuBackgroundColor(false, | 724 | gViewerWindow->setMenuBackgroundColor(false, |
725 | LLAppViewer::instance()->isInProductionGrid()); | 725 | LLViewerLogin::getInstance()->isInProductionGrid()); |
726 | 726 | ||
727 | // *TODO:Get the cost info from the server | 727 | // *TODO:Get the cost info from the server |
728 | const LLString upload_cost("10"); | 728 | const LLString upload_cost("10"); |
@@ -739,7 +739,7 @@ void init_menus() | |||
739 | // TomY TODO convert these two | 739 | // TomY TODO convert these two |
740 | LLMenuGL*menu; | 740 | LLMenuGL*menu; |
741 | 741 | ||
742 | // JAMESDEBUG - Maybe we don't want a global landmark menu | 742 | // JC - Maybe we don't want a global landmark menu |
743 | /* | 743 | /* |
744 | menu = new LLMenuGL(LANDMARK_MENU_NAME); | 744 | menu = new LLMenuGL(LANDMARK_MENU_NAME); |
745 | // Defer init_landmark_menu() until inventory observer reports that we actually | 745 | // Defer init_landmark_menu() until inventory observer reports that we actually |
@@ -969,7 +969,7 @@ void init_client_menu(LLMenuGL* menu) | |||
969 | 969 | ||
970 | 970 | ||
971 | #ifdef TOGGLE_HACKED_GODLIKE_VIEWER | 971 | #ifdef TOGGLE_HACKED_GODLIKE_VIEWER |
972 | if (!LLAppViewer::instance()->isInProductionGrid()) | 972 | if (!LLViewerLogin::getInstance()->isInProductionGrid()) |
973 | { | 973 | { |
974 | menu->append(new LLMenuItemCheckGL("Hacked Godmode", | 974 | menu->append(new LLMenuItemCheckGL("Hacked Godmode", |
975 | &handle_toggle_hacked_godmode, | 975 | &handle_toggle_hacked_godmode, |
@@ -1064,7 +1064,7 @@ void init_client_menu(LLMenuGL* menu) | |||
1064 | 1064 | ||
1065 | menu->appendSeparator(); | 1065 | menu->appendSeparator(); |
1066 | 1066 | ||
1067 | menu->append(new LLMenuItemCallGL("Compress Image...", | 1067 | menu->append(new LLMenuItemCallGL("Compress Images...", |
1068 | &handle_compress_image, NULL, NULL)); | 1068 | &handle_compress_image, NULL, NULL)); |
1069 | 1069 | ||
1070 | menu->append(new LLMenuItemCheckGL("Limit Select Distance", | 1070 | menu->append(new LLMenuItemCheckGL("Limit Select Distance", |
@@ -1096,7 +1096,9 @@ void init_client_menu(LLMenuGL* menu) | |||
1096 | { | 1096 | { |
1097 | LLMenuGL* sub = NULL; | 1097 | LLMenuGL* sub = NULL; |
1098 | sub = new LLMenuGL("Debugging"); | 1098 | sub = new LLMenuGL("Debugging"); |
1099 | #if LL_WINDOWS | ||
1099 | sub->append(new LLMenuItemCallGL("Force Breakpoint", &force_error_breakpoint, NULL, NULL, 'B', MASK_CONTROL | MASK_ALT)); | 1100 | sub->append(new LLMenuItemCallGL("Force Breakpoint", &force_error_breakpoint, NULL, NULL, 'B', MASK_CONTROL | MASK_ALT)); |
1101 | #endif | ||
1100 | sub->append(new LLMenuItemCallGL("Force LLError And Crash", &force_error_llerror)); | 1102 | sub->append(new LLMenuItemCallGL("Force LLError And Crash", &force_error_llerror)); |
1101 | sub->append(new LLMenuItemCallGL("Force Bad Memory Access", &force_error_bad_memory_access)); | 1103 | sub->append(new LLMenuItemCallGL("Force Bad Memory Access", &force_error_bad_memory_access)); |
1102 | sub->append(new LLMenuItemCallGL("Force Infinite Loop", &force_error_infinite_loop)); | 1104 | sub->append(new LLMenuItemCallGL("Force Infinite Loop", &force_error_infinite_loop)); |
@@ -1189,7 +1191,7 @@ void init_debug_ui_menu(LLMenuGL* menu) | |||
1189 | menu->append(new LLMenuItemCallGL( "Dump Focus Holder", &handle_dump_focus, NULL, NULL, 'F', MASK_ALT | MASK_CONTROL)); | 1191 | menu->append(new LLMenuItemCallGL( "Dump Focus Holder", &handle_dump_focus, NULL, NULL, 'F', MASK_ALT | MASK_CONTROL)); |
1190 | menu->append(new LLMenuItemCallGL( "Print Selected Object Info", &print_object_info, NULL, NULL, 'P', MASK_CONTROL|MASK_SHIFT )); | 1192 | menu->append(new LLMenuItemCallGL( "Print Selected Object Info", &print_object_info, NULL, NULL, 'P', MASK_CONTROL|MASK_SHIFT )); |
1191 | menu->append(new LLMenuItemCallGL( "Print Agent Info", &print_agent_nvpairs, NULL, NULL, 'P', MASK_SHIFT )); | 1193 | menu->append(new LLMenuItemCallGL( "Print Agent Info", &print_agent_nvpairs, NULL, NULL, 'P', MASK_SHIFT )); |
1192 | menu->append(new LLMenuItemCallGL( "Texture Memory Stats", &output_statistics, NULL, NULL, 'M', MASK_SHIFT | MASK_ALT | MASK_CONTROL)); | 1194 | menu->append(new LLMenuItemCallGL( "Memory Stats", &output_statistics, NULL, NULL, 'M', MASK_SHIFT | MASK_ALT | MASK_CONTROL)); |
1193 | menu->append(new LLMenuItemCheckGL("Double-Click Auto-Pilot", | 1195 | menu->append(new LLMenuItemCheckGL("Double-Click Auto-Pilot", |
1194 | menu_toggle_control, NULL, menu_check_control, | 1196 | menu_toggle_control, NULL, menu_check_control, |
1195 | (void*)"DoubleClickAutoPilot")); | 1197 | (void*)"DoubleClickAutoPilot")); |
@@ -1429,6 +1431,12 @@ void init_debug_rendering_menu(LLMenuGL* menu) | |||
1429 | item = new LLMenuItemCheckGL("Object-Object Occlusion", menu_toggle_control, NULL, menu_check_control, (void*)"UseOcclusion", 'O', MASK_CONTROL|MASK_SHIFT); | 1431 | item = new LLMenuItemCheckGL("Object-Object Occlusion", menu_toggle_control, NULL, menu_check_control, (void*)"UseOcclusion", 'O', MASK_CONTROL|MASK_SHIFT); |
1430 | item->setEnabled(gGLManager.mHasOcclusionQuery && LLFeatureManager::getInstance()->isFeatureAvailable("UseOcclusion")); | 1432 | item->setEnabled(gGLManager.mHasOcclusionQuery && LLFeatureManager::getInstance()->isFeatureAvailable("UseOcclusion")); |
1431 | menu->append(item); | 1433 | menu->append(item); |
1434 | |||
1435 | item = new LLMenuItemCheckGL("Debug GL", menu_toggle_control, NULL, menu_check_control, (void*)"RenderDebugGL"); | ||
1436 | menu->append(item); | ||
1437 | |||
1438 | item = new LLMenuItemCheckGL("Debug Pipeline", menu_toggle_control, NULL, menu_check_control, (void*)"RenderDebugPipeline"); | ||
1439 | menu->append(item); | ||
1432 | 1440 | ||
1433 | item = new LLMenuItemCheckGL("Fast Alpha", menu_toggle_control, NULL, menu_check_control, (void*)"RenderFastAlpha"); | 1441 | item = new LLMenuItemCheckGL("Fast Alpha", menu_toggle_control, NULL, menu_check_control, (void*)"RenderFastAlpha"); |
1434 | menu->append(item); | 1442 | menu->append(item); |
@@ -1490,6 +1498,7 @@ void init_debug_avatar_menu(LLMenuGL* menu) | |||
1490 | 1498 | ||
1491 | menu->appendMenu(sub_menu); | 1499 | menu->appendMenu(sub_menu); |
1492 | 1500 | ||
1501 | menu->append(new LLMenuItemCheckGL("Enable Lip Sync (Beta)", menu_toggle_control, NULL, menu_check_control, (void*)"LipSyncEnabled")); | ||
1493 | menu->append(new LLMenuItemToggleGL("Tap-Tap-Hold To Run", &gAllowTapTapHoldRun)); | 1502 | menu->append(new LLMenuItemToggleGL("Tap-Tap-Hold To Run", &gAllowTapTapHoldRun)); |
1494 | menu->append(new LLMenuItemCallGL("Force Params to Default", &LLAgent::clearVisualParams, NULL)); | 1503 | menu->append(new LLMenuItemCallGL("Force Params to Default", &LLAgent::clearVisualParams, NULL)); |
1495 | menu->append(new LLMenuItemCallGL("Reload Vertex Shader", &reload_vertex_shader, NULL)); | 1504 | menu->append(new LLMenuItemCallGL("Reload Vertex Shader", &reload_vertex_shader, NULL)); |
@@ -1501,7 +1510,8 @@ void init_debug_avatar_menu(LLMenuGL* menu) | |||
1501 | menu->append(new LLMenuItemToggleGL("Disable LOD", &LLViewerJoint::sDisableLOD)); | 1510 | menu->append(new LLMenuItemToggleGL("Disable LOD", &LLViewerJoint::sDisableLOD)); |
1502 | menu->append(new LLMenuItemToggleGL("Debug Character Vis", &LLVOAvatar::sDebugInvisible)); | 1511 | menu->append(new LLMenuItemToggleGL("Debug Character Vis", &LLVOAvatar::sDebugInvisible)); |
1503 | //menu->append(new LLMenuItemToggleGL("Show Attachment Points", &LLVOAvatar::sShowAttachmentPoints)); | 1512 | //menu->append(new LLMenuItemToggleGL("Show Attachment Points", &LLVOAvatar::sShowAttachmentPoints)); |
1504 | menu->append(new LLMenuItemToggleGL("Show Collision Plane", &LLVOAvatar::sShowFootPlane)); | 1513 | //diabling collision plane due to DEV-14477 -brad |
1514 | //menu->append(new LLMenuItemToggleGL("Show Collision Plane", &LLVOAvatar::sShowFootPlane)); | ||
1505 | menu->append(new LLMenuItemToggleGL("Show Collision Skeleton", &LLVOAvatar::sShowCollisionVolumes)); | 1515 | menu->append(new LLMenuItemToggleGL("Show Collision Skeleton", &LLVOAvatar::sShowCollisionVolumes)); |
1506 | menu->append(new LLMenuItemToggleGL( "Display Agent Target", &LLAgent::sDebugDisplayTarget)); | 1516 | menu->append(new LLMenuItemToggleGL( "Display Agent Target", &LLAgent::sDebugDisplayTarget)); |
1507 | menu->append(new LLMenuItemToggleGL( "Debug Rotation", &gDebugAvatarRotation)); | 1517 | menu->append(new LLMenuItemToggleGL( "Debug Rotation", &gDebugAvatarRotation)); |
@@ -2753,7 +2763,7 @@ void set_god_level(U8 god_level) | |||
2753 | if(gViewerWindow) | 2763 | if(gViewerWindow) |
2754 | { | 2764 | { |
2755 | gViewerWindow->setMenuBackgroundColor(god_level > GOD_NOT, | 2765 | gViewerWindow->setMenuBackgroundColor(god_level > GOD_NOT, |
2756 | LLAppViewer::instance()->isInProductionGrid()); | 2766 | LLViewerLogin::getInstance()->isInProductionGrid()); |
2757 | } | 2767 | } |
2758 | 2768 | ||
2759 | LLString::format_map_t args; | 2769 | LLString::format_map_t args; |
@@ -3163,6 +3173,21 @@ class LLWorldFly : public view_listener_t | |||
3163 | } | 3173 | } |
3164 | }; | 3174 | }; |
3165 | 3175 | ||
3176 | class LLWorldEnableFly : public view_listener_t | ||
3177 | { | ||
3178 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
3179 | { | ||
3180 | BOOL sitting = FALSE; | ||
3181 | if (gAgent.getAvatarObject()) | ||
3182 | { | ||
3183 | sitting = gAgent.getAvatarObject()->mIsSitting; | ||
3184 | } | ||
3185 | gMenuHolder->findControl(userdata["control"].asString())->setValue(!sitting); | ||
3186 | return true; | ||
3187 | } | ||
3188 | }; | ||
3189 | |||
3190 | |||
3166 | void handle_agent_stop_moving(void*) | 3191 | void handle_agent_stop_moving(void*) |
3167 | { | 3192 | { |
3168 | // stop agent | 3193 | // stop agent |
@@ -3476,6 +3501,7 @@ void handle_repeat_duplicate(void*) | |||
3476 | LLSelectMgr::getInstance()->repeatDuplicate(); | 3501 | LLSelectMgr::getInstance()->repeatDuplicate(); |
3477 | } | 3502 | } |
3478 | 3503 | ||
3504 | /* dead code 30-apr-2008 | ||
3479 | void handle_deed_object_to_group(void*) | 3505 | void handle_deed_object_to_group(void*) |
3480 | { | 3506 | { |
3481 | LLUUID group_id; | 3507 | LLUUID group_id; |
@@ -3501,6 +3527,8 @@ BOOL enable_deed_object_to_group(void*) | |||
3501 | return FALSE; | 3527 | return FALSE; |
3502 | } | 3528 | } |
3503 | 3529 | ||
3530 | */ | ||
3531 | |||
3504 | 3532 | ||
3505 | /* | 3533 | /* |
3506 | * No longer able to support viewer side manipulations in this way | 3534 | * No longer able to support viewer side manipulations in this way |
@@ -4072,7 +4100,7 @@ BOOL enable_take() | |||
4072 | return TRUE; | 4100 | return TRUE; |
4073 | #else | 4101 | #else |
4074 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER | 4102 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER |
4075 | if (!LLAppViewer::instance()->isInProductionGrid() | 4103 | if (!LLViewerLogin::getInstance()->isInProductionGrid() |
4076 | && gAgent.isGodlike()) | 4104 | && gAgent.isGodlike()) |
4077 | { | 4105 | { |
4078 | return TRUE; | 4106 | return TRUE; |
@@ -4629,7 +4657,7 @@ class LLObjectEnableDelete : public view_listener_t | |||
4629 | TRUE; | 4657 | TRUE; |
4630 | #else | 4658 | #else |
4631 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER | 4659 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER |
4632 | (!LLAppViewer::instance()->isInProductionGrid() | 4660 | (!LLViewerLogin::getInstance()->isInProductionGrid() |
4633 | && gAgent.isGodlike()) || | 4661 | && gAgent.isGodlike()) || |
4634 | # endif | 4662 | # endif |
4635 | LLSelectMgr::getInstance()->canDoDelete(); | 4663 | LLSelectMgr::getInstance()->canDoDelete(); |
@@ -6487,7 +6515,7 @@ class LLToolsEnableTakeCopy : public view_listener_t | |||
6487 | all_valid = true; | 6515 | all_valid = true; |
6488 | #ifndef HACKED_GODLIKE_VIEWER | 6516 | #ifndef HACKED_GODLIKE_VIEWER |
6489 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER | 6517 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER |
6490 | if (LLAppViewer::instance()->isInProductionGrid() | 6518 | if (LLViewerLogin::getInstance()->isInProductionGrid() |
6491 | || !gAgent.isGodlike()) | 6519 | || !gAgent.isGodlike()) |
6492 | # endif | 6520 | # endif |
6493 | { | 6521 | { |
@@ -6591,7 +6619,7 @@ BOOL enable_save_into_inventory(void*) | |||
6591 | return TRUE; | 6619 | return TRUE; |
6592 | #else | 6620 | #else |
6593 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER | 6621 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER |
6594 | if (!LLAppViewer::instance()->isInProductionGrid() | 6622 | if (!LLViewerLogin::getInstance()->isInProductionGrid() |
6595 | && gAgent.isGodlike()) | 6623 | && gAgent.isGodlike()) |
6596 | { | 6624 | { |
6597 | return TRUE; | 6625 | return TRUE; |
@@ -7766,6 +7794,7 @@ void initialize_menus() | |||
7766 | addMenu(new LLWorldChat(), "World.Chat"); | 7794 | addMenu(new LLWorldChat(), "World.Chat"); |
7767 | addMenu(new LLWorldAlwaysRun(), "World.AlwaysRun"); | 7795 | addMenu(new LLWorldAlwaysRun(), "World.AlwaysRun"); |
7768 | addMenu(new LLWorldFly(), "World.Fly"); | 7796 | addMenu(new LLWorldFly(), "World.Fly"); |
7797 | addMenu(new LLWorldEnableFly(), "World.EnableFly"); | ||
7769 | addMenu(new LLWorldCreateLandmark(), "World.CreateLandmark"); | 7798 | addMenu(new LLWorldCreateLandmark(), "World.CreateLandmark"); |
7770 | addMenu(new LLWorldSetHomeLocation(), "World.SetHomeLocation"); | 7799 | addMenu(new LLWorldSetHomeLocation(), "World.SetHomeLocation"); |
7771 | addMenu(new LLWorldTeleportHome(), "World.TeleportHome"); | 7800 | addMenu(new LLWorldTeleportHome(), "World.TeleportHome"); |
diff --git a/linden/indra/newview/llviewermenufile.cpp b/linden/indra/newview/llviewermenufile.cpp index ab77b53..b8a4f65 100644 --- a/linden/indra/newview/llviewermenufile.cpp +++ b/linden/indra/newview/llviewermenufile.cpp | |||
@@ -414,18 +414,6 @@ class LLFileTakeSnapshotToDisk : public view_listener_t | |||
414 | } | 414 | } |
415 | }; | 415 | }; |
416 | 416 | ||
417 | class LLFileSetWindowSize : public view_listener_t | ||
418 | { | ||
419 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
420 | { | ||
421 | LLString size = userdata.asString(); | ||
422 | S32 width, height; | ||
423 | sscanf(size.c_str(), "%d,%d", &width, &height); | ||
424 | LLViewerWindow::movieSize(width, height); | ||
425 | return true; | ||
426 | } | ||
427 | }; | ||
428 | |||
429 | class LLFileQuit : public view_listener_t | 417 | class LLFileQuit : public view_listener_t |
430 | { | 418 | { |
431 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | 419 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) |
@@ -448,25 +436,31 @@ void handle_upload(void* data) | |||
448 | void handle_compress_image(void*) | 436 | void handle_compress_image(void*) |
449 | { | 437 | { |
450 | LLFilePicker& picker = LLFilePicker::instance(); | 438 | LLFilePicker& picker = LLFilePicker::instance(); |
451 | if (picker.getOpenFile(LLFilePicker::FFLOAD_IMAGE)) | 439 | if (picker.getMultipleOpenFiles(LLFilePicker::FFLOAD_IMAGE)) |
452 | { | 440 | { |
453 | std::string infile(picker.getFirstFile()); | 441 | const char* input_file = picker.getFirstFile(); |
454 | std::string outfile = infile + ".j2c"; | 442 | while (input_file) |
443 | { | ||
444 | std::string infile(input_file); | ||
445 | std::string outfile = infile + ".j2c"; | ||
455 | 446 | ||
456 | llinfos << "Input: " << infile << llendl; | 447 | llinfos << "Input: " << infile << llendl; |
457 | llinfos << "Output: " << outfile << llendl; | 448 | llinfos << "Output: " << outfile << llendl; |
458 | 449 | ||
459 | BOOL success; | 450 | BOOL success; |
460 | 451 | ||
461 | success = LLViewerImageList::createUploadFile(infile, outfile, IMG_CODEC_TGA); | 452 | success = LLViewerImageList::createUploadFile(infile, outfile, IMG_CODEC_TGA); |
462 | 453 | ||
463 | if (success) | 454 | if (success) |
464 | { | 455 | { |
465 | llinfos << "Compression complete" << llendl; | 456 | llinfos << "Compression complete" << llendl; |
466 | } | 457 | } |
467 | else | 458 | else |
468 | { | 459 | { |
469 | llinfos << "Compression failed: " << LLImageBase::getLastError() << llendl; | 460 | llinfos << "Compression failed: " << LLImageBase::getLastError() << llendl; |
461 | } | ||
462 | |||
463 | input_file = picker.getNextFile(); | ||
470 | } | 464 | } |
471 | } | 465 | } |
472 | } | 466 | } |
@@ -603,7 +597,7 @@ void upload_new_resource(const LLString& src_filename, std::string name, | |||
603 | { | 597 | { |
604 | // This is a generic .lin resource file | 598 | // This is a generic .lin resource file |
605 | asset_type = LLAssetType::AT_OBJECT; | 599 | asset_type = LLAssetType::AT_OBJECT; |
606 | FILE* in = LLFile::fopen(src_filename.c_str(), "rb"); /* Flawfinder: ignore */ | 600 | LLFILE* in = LLFile::fopen(src_filename.c_str(), "rb"); /* Flawfinder: ignore */ |
607 | if (in) | 601 | if (in) |
608 | { | 602 | { |
609 | // read in the file header | 603 | // read in the file header |
@@ -688,7 +682,7 @@ void upload_new_resource(const LLString& src_filename, std::string name, | |||
688 | } | 682 | } |
689 | 683 | ||
690 | // copy the file's data segment into another file for uploading | 684 | // copy the file's data segment into another file for uploading |
691 | FILE* out = LLFile::fopen(filename.c_str(), "wb"); /* Flawfinder: ignore */ | 685 | LLFILE* out = LLFile::fopen(filename.c_str(), "wb"); /* Flawfinder: ignore */ |
692 | if (out) | 686 | if (out) |
693 | { | 687 | { |
694 | while((read = fread(buf, 1, 16384, in))) /* Flawfinder: ignore */ | 688 | while((read = fread(buf, 1, 16384, in))) /* Flawfinder: ignore */ |
@@ -1024,7 +1018,6 @@ void init_menu_file() | |||
1024 | (new LLFileSaveTexture())->registerListener(gMenuHolder, "File.SaveTexture"); | 1018 | (new LLFileSaveTexture())->registerListener(gMenuHolder, "File.SaveTexture"); |
1025 | (new LLFileTakeSnapshot())->registerListener(gMenuHolder, "File.TakeSnapshot"); | 1019 | (new LLFileTakeSnapshot())->registerListener(gMenuHolder, "File.TakeSnapshot"); |
1026 | (new LLFileTakeSnapshotToDisk())->registerListener(gMenuHolder, "File.TakeSnapshotToDisk"); | 1020 | (new LLFileTakeSnapshotToDisk())->registerListener(gMenuHolder, "File.TakeSnapshotToDisk"); |
1027 | (new LLFileSetWindowSize())->registerListener(gMenuHolder, "File.SetWindowSize"); | ||
1028 | (new LLFileQuit())->registerListener(gMenuHolder, "File.Quit"); | 1021 | (new LLFileQuit())->registerListener(gMenuHolder, "File.Quit"); |
1029 | 1022 | ||
1030 | (new LLFileEnableUpload())->registerListener(gMenuHolder, "File.EnableUpload"); | 1023 | (new LLFileEnableUpload())->registerListener(gMenuHolder, "File.EnableUpload"); |
diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp index a9adbcd..7cc833a 100644 --- a/linden/indra/newview/llviewermessage.cpp +++ b/linden/indra/newview/llviewermessage.cpp | |||
@@ -202,7 +202,7 @@ void give_money(const LLUUID& uuid, LLViewerRegion* region, S32 amount, BOOL is_ | |||
202 | { | 202 | { |
203 | if(0 == amount) return; | 203 | if(0 == amount) return; |
204 | amount = abs(amount); | 204 | amount = abs(amount); |
205 | llinfos << "give_money(" << uuid << "," << amount << ")"<< llendl; | 205 | LL_INFOS("Messaging") << "give_money(" << uuid << "," << amount << ")"<< LL_ENDL; |
206 | if(can_afford_transaction(amount)) | 206 | if(can_afford_transaction(amount)) |
207 | { | 207 | { |
208 | // gStatusBar->debitBalance(amount); | 208 | // gStatusBar->debitBalance(amount); |
@@ -242,7 +242,7 @@ void send_complete_agent_movement(const LLHost& sim_host) | |||
242 | void process_logout_reply(LLMessageSystem* msg, void**) | 242 | void process_logout_reply(LLMessageSystem* msg, void**) |
243 | { | 243 | { |
244 | // The server has told us it's ok to quit. | 244 | // The server has told us it's ok to quit. |
245 | llinfos << "process_logout_reply" << llendl; | 245 | LL_DEBUGS("Messaging") << "process_logout_reply" << LL_ENDL; |
246 | 246 | ||
247 | LLUUID agent_id; | 247 | LLUUID agent_id; |
248 | msg->getUUID("AgentData", "AgentID", agent_id); | 248 | msg->getUUID("AgentData", "AgentID", agent_id); |
@@ -250,7 +250,7 @@ void process_logout_reply(LLMessageSystem* msg, void**) | |||
250 | msg->getUUID("AgentData", "SessionID", session_id); | 250 | msg->getUUID("AgentData", "SessionID", session_id); |
251 | if((agent_id != gAgent.getID()) || (session_id != gAgent.getSessionID())) | 251 | if((agent_id != gAgent.getID()) || (session_id != gAgent.getSessionID())) |
252 | { | 252 | { |
253 | llwarns << "Bogus Logout Reply" << llendl; | 253 | LL_WARNS("Messaging") << "Bogus Logout Reply" << LL_ENDL; |
254 | } | 254 | } |
255 | 255 | ||
256 | LLInventoryModel::update_map_t parents; | 256 | LLInventoryModel::update_map_t parents; |
@@ -268,7 +268,7 @@ void process_logout_reply(LLMessageSystem* msg, void**) | |||
268 | 268 | ||
269 | // We do not need to track the asset ids, just account for an | 269 | // We do not need to track the asset ids, just account for an |
270 | // updated inventory version. | 270 | // updated inventory version. |
271 | llinfos << "process_logout_reply itemID=" << item_id << llendl; | 271 | LL_INFOS("Messaging") << "process_logout_reply itemID=" << item_id << LL_ENDL; |
272 | LLInventoryItem* item = gInventory.getItem( item_id ); | 272 | LLInventoryItem* item = gInventory.getItem( item_id ); |
273 | if( item ) | 273 | if( item ) |
274 | { | 274 | { |
@@ -277,7 +277,7 @@ void process_logout_reply(LLMessageSystem* msg, void**) | |||
277 | } | 277 | } |
278 | else | 278 | else |
279 | { | 279 | { |
280 | llinfos << "process_logout_reply item not found: " << item_id << llendl; | 280 | LL_INFOS("Messaging") << "process_logout_reply item not found: " << item_id << LL_ENDL; |
281 | } | 281 | } |
282 | } | 282 | } |
283 | LLAppViewer::instance()->forceQuit(); | 283 | LLAppViewer::instance()->forceQuit(); |
@@ -300,15 +300,15 @@ void process_layer_data(LLMessageSystem *mesgsys, void **user_data) | |||
300 | size = mesgsys->getSizeFast(_PREHASH_LayerData, _PREHASH_Data); | 300 | size = mesgsys->getSizeFast(_PREHASH_LayerData, _PREHASH_Data); |
301 | if (0 == size) | 301 | if (0 == size) |
302 | { | 302 | { |
303 | llwarns << "Layer data has zero size." << llendl; | 303 | LL_WARNS("Messaging") << "Layer data has zero size." << LL_ENDL; |
304 | return; | 304 | return; |
305 | } | 305 | } |
306 | if (size < 0) | 306 | if (size < 0) |
307 | { | 307 | { |
308 | // getSizeFast() is probably trying to tell us about an error | 308 | // getSizeFast() is probably trying to tell us about an error |
309 | llwarns << "getSizeFast() returned negative result: " | 309 | LL_WARNS("Messaging") << "getSizeFast() returned negative result: " |
310 | << size | 310 | << size |
311 | << llendl; | 311 | << LL_ENDL; |
312 | return; | 312 | return; |
313 | } | 313 | } |
314 | U8 *datap = new U8[size]; | 314 | U8 *datap = new U8[size]; |
@@ -345,7 +345,7 @@ void export_complete() | |||
345 | gExporterRequestID.setNull(); | 345 | gExporterRequestID.setNull(); |
346 | gExportDirectory = ""; | 346 | gExportDirectory = ""; |
347 | 347 | ||
348 | FILE* fXML = LLFile::fopen(gExportedFile.c_str(), "rb"); /* Flawfinder: ignore */ | 348 | LLFILE* fXML = LLFile::fopen(gExportedFile.c_str(), "rb"); /* Flawfinder: ignore */ |
349 | fseek(fXML, 0, SEEK_END); | 349 | fseek(fXML, 0, SEEK_END); |
350 | long length = ftell(fXML); | 350 | long length = ftell(fXML); |
351 | fseek(fXML, 0, SEEK_SET); | 351 | fseek(fXML, 0, SEEK_SET); |
@@ -353,7 +353,7 @@ void export_complete() | |||
353 | size_t nread = fread(buffer, 1, length, fXML); | 353 | size_t nread = fread(buffer, 1, length, fXML); |
354 | if (nread < (size_t) length) | 354 | if (nread < (size_t) length) |
355 | { | 355 | { |
356 | llwarns << "Short read" << llendl; | 356 | LL_WARNS("Messaging") << "Short read" << LL_ENDL; |
357 | } | 357 | } |
358 | buffer[nread] = '\0'; | 358 | buffer[nread] = '\0'; |
359 | fclose(fXML); | 359 | fclose(fXML); |
@@ -375,12 +375,12 @@ void export_complete() | |||
375 | 375 | ||
376 | LLUUID image_uuid(image_uuid_str); | 376 | LLUUID image_uuid(image_uuid_str); |
377 | 377 | ||
378 | llinfos << "Found UUID: " << image_uuid << llendl; | 378 | LL_INFOS("Messaging") << "Found UUID: " << image_uuid << LL_ENDL; |
379 | 379 | ||
380 | std::map<LLUUID, LLString>::iterator itor = gImageChecksums.find(image_uuid); | 380 | std::map<LLUUID, LLString>::iterator itor = gImageChecksums.find(image_uuid); |
381 | if (itor != gImageChecksums.end()) | 381 | if (itor != gImageChecksums.end()) |
382 | { | 382 | { |
383 | llinfos << "Replacing with checksum: " << itor->second << llendl; | 383 | LL_INFOS("Messaging") << "Replacing with checksum: " << itor->second << LL_ENDL; |
384 | if (itor->second.c_str() != NULL) | 384 | if (itor->second.c_str() != NULL) |
385 | { | 385 | { |
386 | memcpy(&pos_check[10], itor->second.c_str(), 32); /* Flawfinder: ignore */ | 386 | memcpy(&pos_check[10], itor->second.c_str(), 32); /* Flawfinder: ignore */ |
@@ -390,10 +390,10 @@ void export_complete() | |||
390 | } | 390 | } |
391 | } | 391 | } |
392 | 392 | ||
393 | FILE* fXMLOut = LLFile::fopen(gExportedFile.c_str(), "wb"); /* Flawfinder: ignore */ | 393 | LLFILE* fXMLOut = LLFile::fopen(gExportedFile.c_str(), "wb"); /* Flawfinder: ignore */ |
394 | if (fwrite(buffer, 1, length, fXMLOut) != length) | 394 | if (fwrite(buffer, 1, length, fXMLOut) != length) |
395 | { | 395 | { |
396 | llwarns << "Short write" << llendl; | 396 | LL_WARNS("Messaging") << "Short write" << LL_ENDL; |
397 | } | 397 | } |
398 | fclose(fXMLOut); | 398 | fclose(fXMLOut); |
399 | 399 | ||
@@ -407,14 +407,14 @@ void exported_item_complete(const LLTSCode status, void *user_data) | |||
407 | 407 | ||
408 | if (status < LLTS_OK) | 408 | if (status < LLTS_OK) |
409 | { | 409 | { |
410 | llinfos << "Export failed!" << llendl; | 410 | LL_WARNS("Messaging") << "Export failed!" << LL_ENDL; |
411 | } | 411 | } |
412 | else | 412 | else |
413 | { | 413 | { |
414 | ++current_object_count; | 414 | ++current_object_count; |
415 | if (current_image_count == exported_image_count && current_object_count == exported_object_count) | 415 | if (current_image_count == exported_image_count && current_object_count == exported_object_count) |
416 | { | 416 | { |
417 | llinfos << "*** Export complete ***" << llendl; | 417 | LL_INFOS("Messaging") << "*** Export complete ***" << LL_ENDL; |
418 | 418 | ||
419 | export_complete(); | 419 | export_complete(); |
420 | } | 420 | } |
@@ -442,11 +442,11 @@ void exported_j2c_complete(const LLTSCode status, void *user_data) | |||
442 | 442 | ||
443 | if (status < LLTS_OK) | 443 | if (status < LLTS_OK) |
444 | { | 444 | { |
445 | llinfos << "Image download failed!" << llendl; | 445 | LL_WARNS("Messaging") << "Image download failed!" << LL_ENDL; |
446 | } | 446 | } |
447 | else | 447 | else |
448 | { | 448 | { |
449 | FILE* fIn = LLFile::fopen(filename.c_str(), "rb"); /* Flawfinder: ignore */ | 449 | LLFILE* fIn = LLFile::fopen(filename.c_str(), "rb"); /* Flawfinder: ignore */ |
450 | if (fIn) | 450 | if (fIn) |
451 | { | 451 | { |
452 | LLPointer<LLImageJ2C> ImageUtility = new LLImageJ2C; | 452 | LLPointer<LLImageJ2C> ImageUtility = new LLImageJ2C; |
@@ -458,7 +458,7 @@ void exported_j2c_complete(const LLTSCode status, void *user_data) | |||
458 | U8 *buffer = ImageUtility->allocateData(length); | 458 | U8 *buffer = ImageUtility->allocateData(length); |
459 | if (fread(buffer, 1, length, fIn) != length) | 459 | if (fread(buffer, 1, length, fIn) != length) |
460 | { | 460 | { |
461 | llwarns << "Short read" << llendl; | 461 | LL_WARNS("Messaging") << "Short read" << LL_ENDL; |
462 | } | 462 | } |
463 | fclose(fIn); | 463 | fclose(fIn); |
464 | LLFile::remove(filename.c_str()); | 464 | LLFile::remove(filename.c_str()); |
@@ -481,14 +481,14 @@ void exported_j2c_complete(const LLTSCode status, void *user_data) | |||
481 | delete [] file_path; | 481 | delete [] file_path; |
482 | //S32 name_len = output_file.length(); | 482 | //S32 name_len = output_file.length(); |
483 | //strcpy(&output_file[name_len-3], "tga"); | 483 | //strcpy(&output_file[name_len-3], "tga"); |
484 | FILE* fOut = LLFile::fopen(output_file.c_str(), "wb"); /* Flawfinder: ignore */ | 484 | LLFILE* fOut = LLFile::fopen(output_file.c_str(), "wb"); /* Flawfinder: ignore */ |
485 | char md5_hash_string[33]; /* Flawfinder: ignore */ | 485 | char md5_hash_string[33]; /* Flawfinder: ignore */ |
486 | strcpy(md5_hash_string, "00000000000000000000000000000000"); /* Flawfinder: ignore */ | 486 | strcpy(md5_hash_string, "00000000000000000000000000000000"); /* Flawfinder: ignore */ |
487 | if (fOut) | 487 | if (fOut) |
488 | { | 488 | { |
489 | if (fwrite(data, 1, data_size, fOut) != data_size) | 489 | if (fwrite(data, 1, data_size, fOut) != data_size) |
490 | { | 490 | { |
491 | llwarns << "Short write" << llendl; | 491 | LL_WARNS("Messaging") << "Short write" << LL_ENDL; |
492 | } | 492 | } |
493 | fseek(fOut, 0, SEEK_SET); | 493 | fseek(fOut, 0, SEEK_SET); |
494 | fclose(fOut); | 494 | fclose(fOut); |
@@ -504,7 +504,7 @@ void exported_j2c_complete(const LLTSCode status, void *user_data) | |||
504 | ++current_image_count; | 504 | ++current_image_count; |
505 | if (current_image_count == exported_image_count && current_object_count == exported_object_count) | 505 | if (current_image_count == exported_image_count && current_object_count == exported_object_count) |
506 | { | 506 | { |
507 | llinfos << "*** Export textures complete ***" << llendl; | 507 | LL_INFOS("Messaging") << "*** Export textures complete ***" << LL_ENDL; |
508 | export_complete(); | 508 | export_complete(); |
509 | } | 509 | } |
510 | else | 510 | else |
@@ -533,7 +533,7 @@ void process_places_reply(LLMessageSystem* msg, void** data) | |||
533 | } | 533 | } |
534 | else | 534 | else |
535 | { | 535 | { |
536 | llwarns << "Got invalid PlacesReply message" << llendl; | 536 | LL_WARNS("Messaging") << "Got invalid PlacesReply message" << LL_ENDL; |
537 | } | 537 | } |
538 | } | 538 | } |
539 | 539 | ||
@@ -705,7 +705,7 @@ public: | |||
705 | virtual ~LLDiscardAgentOffer() {} | 705 | virtual ~LLDiscardAgentOffer() {} |
706 | virtual void done() | 706 | virtual void done() |
707 | { | 707 | { |
708 | lldebugs << "LLDiscardAgentOffer::done()" << llendl; | 708 | LL_DEBUGS("Messaging") << "LLDiscardAgentOffer::done()" << LL_ENDL; |
709 | LLUUID trash_id; | 709 | LLUUID trash_id; |
710 | trash_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_TRASH); | 710 | trash_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_TRASH); |
711 | bool notify = false; | 711 | bool notify = false; |
@@ -729,9 +729,9 @@ public: | |||
729 | } | 729 | } |
730 | else | 730 | else |
731 | { | 731 | { |
732 | llwarns << "DiscardAgentOffer unable to find: " | 732 | LL_WARNS("Messaging") << "DiscardAgentOffer unable to find: " |
733 | << (trash_id.isNull() ? "trash " : "") | 733 | << (trash_id.isNull() ? "trash " : "") |
734 | << (mObjectID.isNull() ? "object" : "") << llendl; | 734 | << (mObjectID.isNull() ? "object" : "") << LL_ENDL; |
735 | } | 735 | } |
736 | gInventory.removeObserver(this); | 736 | gInventory.removeObserver(this); |
737 | if(notify) | 737 | if(notify) |
@@ -766,14 +766,14 @@ bool check_offer_throttle(const std::string& from_name, bool check_only) | |||
766 | 766 | ||
767 | if(gThrottleTimer.checkExpirationAndReset(OFFER_THROTTLE_TIME)) | 767 | if(gThrottleTimer.checkExpirationAndReset(OFFER_THROTTLE_TIME)) |
768 | { | 768 | { |
769 | //llinfos << "Throttle Expired" << llendl; | 769 | LL_DEBUGS("Messaging") << "Throttle Expired" << LL_ENDL; |
770 | throttle_count=1; | 770 | throttle_count=1; |
771 | throttle_logged=false; | 771 | throttle_logged=false; |
772 | return true; | 772 | return true; |
773 | } | 773 | } |
774 | else //has not expired | 774 | else //has not expired |
775 | { | 775 | { |
776 | //llinfos << "Throttle Not Expired, Count: " << throttle_count << llendl; | 776 | LL_DEBUGS("Messaging") << "Throttle Not Expired, Count: " << throttle_count << LL_ENDL; |
777 | // When downloading the initial inventory we get a lot of new items | 777 | // When downloading the initial inventory we get a lot of new items |
778 | // coming in and can't tell that from spam. JC | 778 | // coming in and can't tell that from spam. JC |
779 | if (LLStartUp::getStartupState() >= STATE_STARTED | 779 | if (LLStartUp::getStartupState() >= STATE_STARTED |
@@ -821,7 +821,7 @@ void open_offer(const std::vector<LLUUID>& items, const std::string& from_name) | |||
821 | item = gInventory.getItem(*it); | 821 | item = gInventory.getItem(*it); |
822 | if(!item) | 822 | if(!item) |
823 | { | 823 | { |
824 | llwarns << "Unable to show inventory item: " << *it << llendl; | 824 | LL_WARNS("Messaging") << "Unable to show inventory item: " << *it << LL_ENDL; |
825 | continue; | 825 | continue; |
826 | } | 826 | } |
827 | if(gInventory.isObjectDescendentOf(*it, trash_id)) | 827 | if(gInventory.isObjectDescendentOf(*it, trash_id)) |
@@ -880,7 +880,7 @@ void open_offer(const std::vector<LLUUID>& items, const std::string& from_name) | |||
880 | //don't dick with highlight while the user is working | 880 | //don't dick with highlight while the user is working |
881 | //if(inventory_has_focus && !user_is_away) | 881 | //if(inventory_has_focus && !user_is_away) |
882 | // break; | 882 | // break; |
883 | //llinfos << "Highlighting" << item->getUUID() << llendl; | 883 | LL_DEBUGS("Messaging") << "Highlighting" << item->getUUID() << LL_ENDL; |
884 | //highlight item | 884 | //highlight item |
885 | 885 | ||
886 | LLUICtrl* focus_ctrl = gFocusMgr.getKeyboardFocus(); | 886 | LLUICtrl* focus_ctrl = gFocusMgr.getKeyboardFocus(); |
@@ -1041,8 +1041,8 @@ void inventory_offer_callback(S32 button, void* user_data) | |||
1041 | } | 1041 | } |
1042 | 1042 | ||
1043 | // we will want to open this item when it comes back. | 1043 | // we will want to open this item when it comes back. |
1044 | lldebugs << "Initializing an opener for tid: " << info->mTransactionID | 1044 | LL_DEBUGS("Messaging") << "Initializing an opener for tid: " << info->mTransactionID |
1045 | << llendl; | 1045 | << LL_ENDL; |
1046 | switch (info->mIM) | 1046 | switch (info->mIM) |
1047 | { | 1047 | { |
1048 | case IM_INVENTORY_OFFERED: | 1048 | case IM_INVENTORY_OFFERED: |
@@ -1075,7 +1075,7 @@ void inventory_offer_callback(S32 button, void* user_data) | |||
1075 | } | 1075 | } |
1076 | break; | 1076 | break; |
1077 | default: | 1077 | default: |
1078 | llwarns << "inventory_offer_callback: unknown offer type" << llendl; | 1078 | LL_WARNS("Messaging") << "inventory_offer_callback: unknown offer type" << LL_ENDL; |
1079 | break; | 1079 | break; |
1080 | } // end switch (info->mIM) | 1080 | } // end switch (info->mIM) |
1081 | break; | 1081 | break; |
@@ -1187,11 +1187,11 @@ void inventory_offer_handler(LLOfferInfo* info, BOOL from_task) | |||
1187 | } | 1187 | } |
1188 | else | 1188 | else |
1189 | { | 1189 | { |
1190 | llwarns << "LLAssetType::lookupHumanReadable() returned NULL - probably bad asset type: " << info->mType << llendl; | 1190 | LL_WARNS("Messaging") << "LLAssetType::lookupHumanReadable() returned NULL - probably bad asset type: " << info->mType << LL_ENDL; |
1191 | args["[OBJECTTYPE]"] = ""; | 1191 | args["[OBJECTTYPE]"] = ""; |
1192 | 1192 | ||
1193 | // This seems safest, rather than propagating bogosity | 1193 | // This seems safest, rather than propagating bogosity |
1194 | llwarns << "Forcing an inventory-decline for probably-bad asset type." << llendl; | 1194 | LL_WARNS("Messaging") << "Forcing an inventory-decline for probably-bad asset type." << LL_ENDL; |
1195 | inventory_offer_callback(IOR_DECLINE, info); | 1195 | inventory_offer_callback(IOR_DECLINE, info); |
1196 | return; | 1196 | return; |
1197 | } | 1197 | } |
@@ -1278,10 +1278,6 @@ void lure_callback(S32 option, void* user_data) | |||
1278 | case 0: | 1278 | case 0: |
1279 | { | 1279 | { |
1280 | // accept | 1280 | // accept |
1281 | send_simple_im(info->mFromID, | ||
1282 | "", | ||
1283 | IM_LURE_ACCEPTED, | ||
1284 | info->mLureID); | ||
1285 | gAgent.teleportViaLure(info->mLureID, info->mGodlike); | 1281 | gAgent.teleportViaLure(info->mLureID, info->mGodlike); |
1286 | } | 1282 | } |
1287 | break; | 1283 | break; |
@@ -1426,9 +1422,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1426 | 1422 | ||
1427 | // now store incoming IM in chat history | 1423 | // now store incoming IM in chat history |
1428 | 1424 | ||
1429 | snprintf(buffer, sizeof(buffer), "%s%s%s", name, separator_string, (message+message_offset)); /* Flawfinder: ignore */ | 1425 | snprintf(buffer, sizeof(buffer), "%s%s", separator_string, (message+message_offset)); /* Flawfinder: ignore */ |
1430 | 1426 | ||
1431 | llinfos << "process_improved_im: session_id( " << session_id << " ), from_id( " << from_id << " )" << llendl; | 1427 | LL_INFOS("Messaging") << "process_improved_im: session_id( " << session_id << " ), from_id( " << from_id << " )" << LL_ENDL; |
1432 | 1428 | ||
1433 | // add to IM panel, but do not bother the user | 1429 | // add to IM panel, but do not bother the user |
1434 | gIMMgr->addMessage( | 1430 | gIMMgr->addMessage( |
@@ -1440,7 +1436,8 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1440 | dialog, | 1436 | dialog, |
1441 | parent_estate_id, | 1437 | parent_estate_id, |
1442 | region_id, | 1438 | region_id, |
1443 | position); | 1439 | position, |
1440 | true); | ||
1444 | 1441 | ||
1445 | // pretend this is chat generated by self, so it does not show up on screen | 1442 | // pretend this is chat generated by self, so it does not show up on screen |
1446 | snprintf(buffer, sizeof(buffer), "IM: %s%s%s", name, separator_string, (message+message_offset)); /* Flawfinder: ignore */ | 1443 | snprintf(buffer, sizeof(buffer), "IM: %s%s%s", name, separator_string, (message+message_offset)); /* Flawfinder: ignore */ |
@@ -1481,9 +1478,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1481 | snprintf(saved, MAX_STRING, "(Saved %s) ", /* Flawfinder: ignore */ | 1478 | snprintf(saved, MAX_STRING, "(Saved %s) ", /* Flawfinder: ignore */ |
1482 | formatted_time(timestamp, time_buf)); | 1479 | formatted_time(timestamp, time_buf)); |
1483 | } | 1480 | } |
1484 | snprintf(buffer, sizeof(buffer), "%s%s%s%s", name, separator_string, saved,(message+message_offset)); /* Flawfinder: ignore */ | 1481 | snprintf(buffer, sizeof(buffer), "%s%s%s", separator_string, saved,(message+message_offset)); /* Flawfinder: ignore */ |
1485 | 1482 | ||
1486 | llinfos << "process_improved_im: session_id( " << session_id << " ), from_id( " << from_id << " )" << llendl; | 1483 | LL_INFOS("Messaging") << "process_improved_im: session_id( " << session_id << " ), from_id( " << from_id << " )" << LL_ENDL; |
1487 | 1484 | ||
1488 | if (!is_muted || is_linden) | 1485 | if (!is_muted || is_linden) |
1489 | { | 1486 | { |
@@ -1496,7 +1493,8 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1496 | dialog, | 1493 | dialog, |
1497 | parent_estate_id, | 1494 | parent_estate_id, |
1498 | region_id, | 1495 | region_id, |
1499 | position); | 1496 | position, |
1497 | true); | ||
1500 | snprintf(buffer, sizeof(buffer), "IM: %s%s%s%s", name, separator_string, saved, (message+message_offset)); /* Flawfinder: ignore */ | 1498 | snprintf(buffer, sizeof(buffer), "IM: %s%s%s%s", name, separator_string, saved, (message+message_offset)); /* Flawfinder: ignore */ |
1501 | 1499 | ||
1502 | chat.mText = buffer; | 1500 | chat.mText = buffer; |
@@ -1540,7 +1538,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1540 | case IM_GROUP_NOTICE: | 1538 | case IM_GROUP_NOTICE: |
1541 | case IM_GROUP_NOTICE_REQUESTED: | 1539 | case IM_GROUP_NOTICE_REQUESTED: |
1542 | { | 1540 | { |
1543 | llinfos << "Received IM_GROUP_NOTICE message." << llendl; | 1541 | LL_INFOS("Messaging") << "Received IM_GROUP_NOTICE message." << LL_ENDL; |
1544 | // Read the binary bucket for more information. | 1542 | // Read the binary bucket for more information. |
1545 | struct notice_bucket_header_t | 1543 | struct notice_bucket_header_t |
1546 | { | 1544 | { |
@@ -1559,7 +1557,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1559 | if ( (binary_bucket_size < (S32)((sizeof(notice_bucket_header_t) + sizeof(U8)))) | 1557 | if ( (binary_bucket_size < (S32)((sizeof(notice_bucket_header_t) + sizeof(U8)))) |
1560 | || (binary_bucket[binary_bucket_size - 1] != '\0') ) | 1558 | || (binary_bucket[binary_bucket_size - 1] != '\0') ) |
1561 | { | 1559 | { |
1562 | llwarns << "Malformed group notice binary bucket" << llendl; | 1560 | LL_WARNS("Messaging") << "Malformed group notice binary bucket" << LL_ENDL; |
1563 | break; | 1561 | break; |
1564 | } | 1562 | } |
1565 | 1563 | ||
@@ -1625,7 +1623,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1625 | } | 1623 | } |
1626 | else | 1624 | else |
1627 | { | 1625 | { |
1628 | llinfos << "Received IM_GROUP_INVITATION message." << llendl; | 1626 | LL_INFOS("Messaging") << "Received IM_GROUP_INVITATION message." << LL_ENDL; |
1629 | // Read the binary bucket for more information. | 1627 | // Read the binary bucket for more information. |
1630 | struct invite_bucket_t | 1628 | struct invite_bucket_t |
1631 | { | 1629 | { |
@@ -1636,7 +1634,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1636 | // Make sure the binary bucket is the correct size. | 1634 | // Make sure the binary bucket is the correct size. |
1637 | if (binary_bucket_size != sizeof(invite_bucket_t)) | 1635 | if (binary_bucket_size != sizeof(invite_bucket_t)) |
1638 | { | 1636 | { |
1639 | llwarns << "Malformed group invite binary bucket" << llendl; | 1637 | LL_WARNS("Messaging") << "Malformed group invite binary bucket" << LL_ENDL; |
1640 | break; | 1638 | break; |
1641 | } | 1639 | } |
1642 | 1640 | ||
@@ -1675,7 +1673,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1675 | 1673 | ||
1676 | if (sizeof(offer_agent_bucket_t) != binary_bucket_size) | 1674 | if (sizeof(offer_agent_bucket_t) != binary_bucket_size) |
1677 | { | 1675 | { |
1678 | llwarns << "Malformed inventory offer from agent" << llendl; | 1676 | LL_WARNS("Messaging") << "Malformed inventory offer from agent" << LL_ENDL; |
1679 | break; | 1677 | break; |
1680 | } | 1678 | } |
1681 | bucketp = (struct offer_agent_bucket_t*) &binary_bucket[0]; | 1679 | bucketp = (struct offer_agent_bucket_t*) &binary_bucket[0]; |
@@ -1686,7 +1684,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1686 | { | 1684 | { |
1687 | if (sizeof(S8) != binary_bucket_size) | 1685 | if (sizeof(S8) != binary_bucket_size) |
1688 | { | 1686 | { |
1689 | llwarns << "Malformed inventory offer from object" << llendl; | 1687 | LL_WARNS("Messaging") << "Malformed inventory offer from object" << LL_ENDL; |
1690 | break; | 1688 | break; |
1691 | } | 1689 | } |
1692 | info->mType = (LLAssetType::EType) binary_bucket[0]; | 1690 | info->mType = (LLAssetType::EType) binary_bucket[0]; |
@@ -1747,7 +1745,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1747 | 1745 | ||
1748 | case IM_GROUP_ELECTION_DEPRECATED: | 1746 | case IM_GROUP_ELECTION_DEPRECATED: |
1749 | { | 1747 | { |
1750 | llwarns << "Received IM: IM_GROUP_ELECTION_DEPRECATED" << llendl; | 1748 | LL_WARNS("Messaging") << "Received IM: IM_GROUP_ELECTION_DEPRECATED" << LL_ENDL; |
1751 | } | 1749 | } |
1752 | break; | 1750 | break; |
1753 | 1751 | ||
@@ -1776,7 +1774,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1776 | "(Saved %s) ", | 1774 | "(Saved %s) ", |
1777 | formatted_time(timestamp, time_buf)); | 1775 | formatted_time(timestamp, time_buf)); |
1778 | } | 1776 | } |
1779 | snprintf(buffer, sizeof(buffer), "%s%s%s%s", name, separator_string, saved, (message+message_offset)); /* Flawfinder: ignore */ | 1777 | snprintf(buffer, sizeof(buffer), "%s%s%s", separator_string, saved, (message+message_offset)); /* Flawfinder: ignore */ |
1780 | BOOL is_this_agent = FALSE; | 1778 | BOOL is_this_agent = FALSE; |
1781 | if(from_id == gAgentID) | 1779 | if(from_id == gAgentID) |
1782 | { | 1780 | { |
@@ -1791,7 +1789,8 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1791 | IM_SESSION_INVITE, | 1789 | IM_SESSION_INVITE, |
1792 | parent_estate_id, | 1790 | parent_estate_id, |
1793 | region_id, | 1791 | region_id, |
1794 | position); | 1792 | position, |
1793 | true); | ||
1795 | 1794 | ||
1796 | snprintf(buffer, sizeof(buffer), "IM: %s%s%s%s", name, separator_string, saved, (message+message_offset)); /* Flawfinder: ignore */ | 1795 | snprintf(buffer, sizeof(buffer), "IM: %s%s%s%s", name, separator_string, saved, (message+message_offset)); /* Flawfinder: ignore */ |
1797 | chat.mText = buffer; | 1796 | chat.mText = buffer; |
@@ -1826,7 +1825,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1826 | case IM_BUSY_AUTO_RESPONSE: | 1825 | case IM_BUSY_AUTO_RESPONSE: |
1827 | if (is_muted) | 1826 | if (is_muted) |
1828 | { | 1827 | { |
1829 | lldebugs << "Ignoring busy response from " << from_id << llendl; | 1828 | LL_DEBUGS("Messaging") << "Ignoring busy response from " << from_id << LL_ENDL; |
1830 | return; | 1829 | return; |
1831 | } | 1830 | } |
1832 | else | 1831 | else |
@@ -1874,16 +1873,16 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1874 | // URLs sent by scripts (i.e. llLoadURL) | 1873 | // URLs sent by scripts (i.e. llLoadURL) |
1875 | if (binary_bucket_size <= 0) | 1874 | if (binary_bucket_size <= 0) |
1876 | { | 1875 | { |
1877 | llwarns << "bad binary_bucket_size: " | 1876 | LL_WARNS("Messaging") << "bad binary_bucket_size: " |
1878 | << binary_bucket_size | 1877 | << binary_bucket_size |
1879 | << " - aborting function." << llendl; | 1878 | << " - aborting function." << LL_ENDL; |
1880 | return; | 1879 | return; |
1881 | } | 1880 | } |
1882 | 1881 | ||
1883 | char* url = new char[binary_bucket_size]; | 1882 | char* url = new char[binary_bucket_size]; |
1884 | if (url == NULL) | 1883 | if (url == NULL) |
1885 | { | 1884 | { |
1886 | llerrs << "Memory Allocation failed" << llendl; | 1885 | LL_ERRS("Messaging") << "Memory Allocation failed" << LL_ENDL; |
1887 | return; | 1886 | return; |
1888 | } | 1887 | } |
1889 | 1888 | ||
@@ -1944,8 +1943,8 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1944 | break; | 1943 | break; |
1945 | 1944 | ||
1946 | default: | 1945 | default: |
1947 | llwarns << "Instant message calling for unknown dialog " | 1946 | LL_WARNS("Messaging") << "Instant message calling for unknown dialog " |
1948 | << (S32)dialog << llendl; | 1947 | << (S32)dialog << LL_ENDL; |
1949 | break; | 1948 | break; |
1950 | } | 1949 | } |
1951 | 1950 | ||
@@ -1960,6 +1959,8 @@ void busy_message (LLMessageSystem* msg, LLUUID from_id) | |||
1960 | { | 1959 | { |
1961 | if (gAgent.getBusy()) | 1960 | if (gAgent.getBusy()) |
1962 | { | 1961 | { |
1962 | std::string my_name; | ||
1963 | gAgent.buildFullname(my_name); | ||
1963 | LLString response = gSavedPerAccountSettings.getText("BusyModeResponse"); | 1964 | LLString response = gSavedPerAccountSettings.getText("BusyModeResponse"); |
1964 | pack_instant_message( | 1965 | pack_instant_message( |
1965 | gMessageSystem, | 1966 | gMessageSystem, |
@@ -1967,10 +1968,10 @@ void busy_message (LLMessageSystem* msg, LLUUID from_id) | |||
1967 | FALSE, | 1968 | FALSE, |
1968 | gAgent.getSessionID(), | 1969 | gAgent.getSessionID(), |
1969 | from_id, | 1970 | from_id, |
1970 | SYSTEM_FROM, | 1971 | my_name.c_str(), |
1971 | response.c_str(), | 1972 | response.c_str(), |
1972 | IM_ONLINE, | 1973 | IM_ONLINE, |
1973 | IM_CONSOLE_AND_CHAT_HISTORY); | 1974 | IM_BUSY_AUTO_RESPONSE); |
1974 | gAgent.sendReliableMessage(); | 1975 | gAgent.sendReliableMessage(); |
1975 | } | 1976 | } |
1976 | } | 1977 | } |
@@ -2071,7 +2072,7 @@ void callingcard_offer_callback(S32 option, void* user_data) | |||
2071 | void process_offer_callingcard(LLMessageSystem* msg, void**) | 2072 | void process_offer_callingcard(LLMessageSystem* msg, void**) |
2072 | { | 2073 | { |
2073 | // someone has offered to form a friendship | 2074 | // someone has offered to form a friendship |
2074 | lldebugs << "callingcard offer" << llendl; | 2075 | LL_DEBUGS("Messaging") << "callingcard offer" << LL_ENDL; |
2075 | 2076 | ||
2076 | LLUUID source_id; | 2077 | LLUUID source_id; |
2077 | msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, source_id); | 2078 | msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, source_id); |
@@ -2116,7 +2117,7 @@ void process_offer_callingcard(LLMessageSystem* msg, void**) | |||
2116 | } | 2117 | } |
2117 | else | 2118 | else |
2118 | { | 2119 | { |
2119 | llwarns << "Calling card offer from an unknown source." << llendl; | 2120 | LL_WARNS("Messaging") << "Calling card offer from an unknown source." << LL_ENDL; |
2120 | } | 2121 | } |
2121 | 2122 | ||
2122 | delete offerdata; // !=NULL if we didn't give ownership away | 2123 | delete offerdata; // !=NULL if we didn't give ownership away |
@@ -2309,10 +2310,10 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data) | |||
2309 | break; | 2310 | break; |
2310 | case CHAT_TYPE_START: | 2311 | case CHAT_TYPE_START: |
2311 | case CHAT_TYPE_STOP: | 2312 | case CHAT_TYPE_STOP: |
2312 | llwarns << "Got chat type start/stop in main chat processing." << llendl; | 2313 | LL_WARNS("Messaging") << "Got chat type start/stop in main chat processing." << LL_ENDL; |
2313 | break; | 2314 | break; |
2314 | default: | 2315 | default: |
2315 | llwarns << "Unknown type " << chat.mChatType << " in chat!" << llendl; | 2316 | LL_WARNS("Messaging") << "Unknown type " << chat.mChatType << " in chat!" << LL_ENDL; |
2316 | verb = " say, "; | 2317 | verb = " say, "; |
2317 | break; | 2318 | break; |
2318 | } | 2319 | } |
@@ -2405,7 +2406,7 @@ void process_teleport_progress(LLMessageSystem* msg, void**) | |||
2405 | if((gAgent.getID() != agent_id) | 2406 | if((gAgent.getID() != agent_id) |
2406 | || (gAgent.getTeleportState() == LLAgent::TELEPORT_NONE)) | 2407 | || (gAgent.getTeleportState() == LLAgent::TELEPORT_NONE)) |
2407 | { | 2408 | { |
2408 | llwarns << "Unexpected teleport progress message." << llendl; | 2409 | LL_WARNS("Messaging") << "Unexpected teleport progress message." << LL_ENDL; |
2409 | return; | 2410 | return; |
2410 | } | 2411 | } |
2411 | U32 teleport_flags = 0x0; | 2412 | U32 teleport_flags = 0x0; |
@@ -2420,7 +2421,7 @@ void process_teleport_progress(LLMessageSystem* msg, void**) | |||
2420 | } | 2421 | } |
2421 | char buffer[MAX_STRING]; /* Flawfinder: ignore */ | 2422 | char buffer[MAX_STRING]; /* Flawfinder: ignore */ |
2422 | msg->getString("Info", "Message", MAX_STRING, buffer); | 2423 | msg->getString("Info", "Message", MAX_STRING, buffer); |
2423 | lldebugs << "teleport progress: " << buffer << llendl; | 2424 | LL_DEBUGS("Messaging") << "teleport progress: " << buffer << LL_ENDL; |
2424 | 2425 | ||
2425 | //Sorta hacky...default to using simulator raw messages | 2426 | //Sorta hacky...default to using simulator raw messages |
2426 | //if we don't find the coresponding mapping in our progress mappings | 2427 | //if we don't find the coresponding mapping in our progress mappings |
@@ -2544,12 +2545,12 @@ BOOL LLPostTeleportNotifiers::tick() | |||
2544 | // We're going to pretend to be a new agent | 2545 | // We're going to pretend to be a new agent |
2545 | void process_teleport_finish(LLMessageSystem* msg, void**) | 2546 | void process_teleport_finish(LLMessageSystem* msg, void**) |
2546 | { | 2547 | { |
2547 | //llinfos << "Got teleport location message" << llendl; | 2548 | LL_DEBUGS("Messaging") << "Got teleport location message" << LL_ENDL; |
2548 | LLUUID agent_id; | 2549 | LLUUID agent_id; |
2549 | msg->getUUIDFast(_PREHASH_Info, _PREHASH_AgentID, agent_id); | 2550 | msg->getUUIDFast(_PREHASH_Info, _PREHASH_AgentID, agent_id); |
2550 | if (agent_id != gAgent.getID()) | 2551 | if (agent_id != gAgent.getID()) |
2551 | { | 2552 | { |
2552 | llwarns << "Got teleport notification for wrong agent!" << llendl; | 2553 | LL_WARNS("Messaging") << "Got teleport notification for wrong agent!" << LL_ENDL; |
2553 | return; | 2554 | return; |
2554 | } | 2555 | } |
2555 | 2556 | ||
@@ -2617,8 +2618,8 @@ void process_teleport_finish(LLMessageSystem* msg, void**) | |||
2617 | */ | 2618 | */ |
2618 | 2619 | ||
2619 | // now, use the circuit info to tell simulator about us! | 2620 | // now, use the circuit info to tell simulator about us! |
2620 | llinfos << "process_teleport_finish() Enabling " | 2621 | LL_INFOS("Messaging") << "process_teleport_finish() Enabling " |
2621 | << sim_host << " with code " << msg->mOurCircuitCode << llendl; | 2622 | << sim_host << " with code " << msg->mOurCircuitCode << LL_ENDL; |
2622 | msg->newMessageFast(_PREHASH_UseCircuitCode); | 2623 | msg->newMessageFast(_PREHASH_UseCircuitCode); |
2623 | msg->nextBlockFast(_PREHASH_CircuitCode); | 2624 | msg->nextBlockFast(_PREHASH_CircuitCode); |
2624 | msg->addU32Fast(_PREHASH_Code, msg->getOurCircuitCode()); | 2625 | msg->addU32Fast(_PREHASH_Code, msg->getOurCircuitCode()); |
@@ -2679,12 +2680,12 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**) | |||
2679 | msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_SessionID, session_id); | 2680 | msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_SessionID, session_id); |
2680 | if((gAgent.getID() != agent_id) || (gAgent.getSessionID() != session_id)) | 2681 | if((gAgent.getID() != agent_id) || (gAgent.getSessionID() != session_id)) |
2681 | { | 2682 | { |
2682 | llwarns << "Incorrect id in process_agent_movement_complete()" | 2683 | LL_WARNS("Messaging") << "Incorrect id in process_agent_movement_complete()" |
2683 | << llendl; | 2684 | << LL_ENDL; |
2684 | return; | 2685 | return; |
2685 | } | 2686 | } |
2686 | 2687 | ||
2687 | llinfos << "process_agent_movement_complete()" << llendl; | 2688 | LL_DEBUGS("Messaging") << "process_agent_movement_complete()" << LL_ENDL; |
2688 | 2689 | ||
2689 | // *TODO: check timestamp to make sure the movement compleation | 2690 | // *TODO: check timestamp to make sure the movement compleation |
2690 | // makes sense. | 2691 | // makes sense. |
@@ -2703,7 +2704,7 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**) | |||
2703 | { | 2704 | { |
2704 | // Could happen if you were immediately god-teleported away on login, | 2705 | // Could happen if you were immediately god-teleported away on login, |
2705 | // maybe other cases. Continue, but warn. JC | 2706 | // maybe other cases. Continue, but warn. JC |
2706 | llwarns << "agent_movement_complete() with NULL avatarp." << llendl; | 2707 | LL_WARNS("Messaging") << "agent_movement_complete() with NULL avatarp." << LL_ENDL; |
2707 | } | 2708 | } |
2708 | 2709 | ||
2709 | F32 x, y; | 2710 | F32 x, y; |
@@ -2713,19 +2714,19 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**) | |||
2713 | { | 2714 | { |
2714 | if (gAgent.getRegion()) | 2715 | if (gAgent.getRegion()) |
2715 | { | 2716 | { |
2716 | llwarns << "current region " << gAgent.getRegion()->getOriginGlobal() << llendl; | 2717 | LL_WARNS("Messaging") << "current region " << gAgent.getRegion()->getOriginGlobal() << LL_ENDL; |
2717 | } | 2718 | } |
2718 | 2719 | ||
2719 | llwarns << "Agent being sent to invalid home region: " | 2720 | LL_WARNS("Messaging") << "Agent being sent to invalid home region: " |
2720 | << x << ":" << y | 2721 | << x << ":" << y |
2721 | << " current pos " << gAgent.getPositionGlobal() | 2722 | << " current pos " << gAgent.getPositionGlobal() |
2722 | << llendl; | 2723 | << LL_ENDL; |
2723 | LLAppViewer::instance()->forceDisconnect("You were sent to an invalid region."); | 2724 | LLAppViewer::instance()->forceDisconnect("You were sent to an invalid region."); |
2724 | return; | 2725 | return; |
2725 | 2726 | ||
2726 | } | 2727 | } |
2727 | 2728 | ||
2728 | llinfos << "Changing home region to " << x << ":" << y << llendl; | 2729 | LL_INFOS("Messaging") << "Changing home region to " << x << ":" << y << LL_ENDL; |
2729 | 2730 | ||
2730 | // set our upstream host the new simulator and shuffle things as | 2731 | // set our upstream host the new simulator and shuffle things as |
2731 | // appropriate. | 2732 | // appropriate. |
@@ -2845,11 +2846,11 @@ void process_crossed_region(LLMessageSystem* msg, void**) | |||
2845 | msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_SessionID, session_id); | 2846 | msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_SessionID, session_id); |
2846 | if((gAgent.getID() != agent_id) || (gAgent.getSessionID() != session_id)) | 2847 | if((gAgent.getID() != agent_id) || (gAgent.getSessionID() != session_id)) |
2847 | { | 2848 | { |
2848 | llwarns << "Incorrect id in process_crossed_region()" | 2849 | LL_WARNS("Messaging") << "Incorrect id in process_crossed_region()" |
2849 | << llendl; | 2850 | << LL_ENDL; |
2850 | return; | 2851 | return; |
2851 | } | 2852 | } |
2852 | llinfos << "process_crossed_region()" << llendl; | 2853 | LL_INFOS("Messaging") << "process_crossed_region()" << LL_ENDL; |
2853 | 2854 | ||
2854 | U32 sim_ip; | 2855 | U32 sim_ip; |
2855 | msg->getIPAddrFast(_PREHASH_RegionData, _PREHASH_SimIP, sim_ip); | 2856 | msg->getIPAddrFast(_PREHASH_RegionData, _PREHASH_SimIP, sim_ip); |
@@ -2977,24 +2978,24 @@ void send_agent_update(BOOL force_send, BOOL send_reliable) | |||
2977 | /* | 2978 | /* |
2978 | if (head_rot_chg < THRESHOLD_HEAD_ROT_QDOT) | 2979 | if (head_rot_chg < THRESHOLD_HEAD_ROT_QDOT) |
2979 | { | 2980 | { |
2980 | //llinfos << "head rot " << head_rotation << llendl; | 2981 | //LL_INFOS("Messaging") << "head rot " << head_rotation << LL_ENDL; |
2981 | llinfos << "head_rot_chg = " << head_rot_chg << llendl; | 2982 | LL_INFOS("Messaging") << "head_rot_chg = " << head_rot_chg << LL_ENDL; |
2982 | } | 2983 | } |
2983 | if (cam_rot_chg.magVec() > ROTATION_THRESHOLD) | 2984 | if (cam_rot_chg.magVec() > ROTATION_THRESHOLD) |
2984 | { | 2985 | { |
2985 | llinfos << "cam rot " << cam_rot_chg.magVec() << llendl; | 2986 | LL_INFOS("Messaging") << "cam rot " << cam_rot_chg.magVec() << LL_ENDL; |
2986 | } | 2987 | } |
2987 | if (cam_center_chg.magVec() > TRANSLATE_THRESHOLD) | 2988 | if (cam_center_chg.magVec() > TRANSLATE_THRESHOLD) |
2988 | { | 2989 | { |
2989 | llinfos << "cam center " << cam_center_chg.magVec() << llendl; | 2990 | LL_INFOS("Messaging") << "cam center " << cam_center_chg.magVec() << LL_ENDL; |
2990 | } | 2991 | } |
2991 | // if (drag_delta_chg.magVec() > TRANSLATE_THRESHOLD) | 2992 | // if (drag_delta_chg.magVec() > TRANSLATE_THRESHOLD) |
2992 | // { | 2993 | // { |
2993 | // llinfos << "drag delta " << drag_delta_chg.magVec() << llendl; | 2994 | // LL_INFOS("Messaging") << "drag delta " << drag_delta_chg.magVec() << LL_ENDL; |
2994 | // } | 2995 | // } |
2995 | if (control_flag_change) | 2996 | if (control_flag_change) |
2996 | { | 2997 | { |
2997 | llinfos << "dcf = " << control_flag_change << llendl; | 2998 | LL_INFOS("Messaging") << "dcf = " << control_flag_change << LL_ENDL; |
2998 | } | 2999 | } |
2999 | */ | 3000 | */ |
3000 | 3001 | ||
@@ -3043,7 +3044,7 @@ void send_agent_update(BOOL force_send, BOOL send_reliable) | |||
3043 | 3044 | ||
3044 | // if (camera_pos_agent.mV[VY] > 255.f) | 3045 | // if (camera_pos_agent.mV[VY] > 255.f) |
3045 | // { | 3046 | // { |
3046 | // llinfos << "Sending camera center " << camera_pos_agent << llendl; | 3047 | // LL_INFOS("Messaging") << "Sending camera center " << camera_pos_agent << LL_ENDL; |
3047 | // } | 3048 | // } |
3048 | 3049 | ||
3049 | msg->addVector3Fast(_PREHASH_CameraCenter, camera_pos_agent); | 3050 | msg->addVector3Fast(_PREHASH_CameraCenter, camera_pos_agent); |
@@ -3058,12 +3059,12 @@ void send_agent_update(BOOL force_send, BOOL send_reliable) | |||
3058 | { | 3059 | { |
3059 | if (control_flags & AGENT_CONTROL_LBUTTON_DOWN) | 3060 | if (control_flags & AGENT_CONTROL_LBUTTON_DOWN) |
3060 | { | 3061 | { |
3061 | llinfos << "AgentUpdate left button down" << llendl; | 3062 | LL_INFOS("Messaging") << "AgentUpdate left button down" << LL_ENDL; |
3062 | } | 3063 | } |
3063 | 3064 | ||
3064 | if (control_flags & AGENT_CONTROL_LBUTTON_UP) | 3065 | if (control_flags & AGENT_CONTROL_LBUTTON_UP) |
3065 | { | 3066 | { |
3066 | llinfos << "AgentUpdate left button up" << llendl; | 3067 | LL_INFOS("Messaging") << "AgentUpdate left button up" << LL_ENDL; |
3067 | } | 3068 | } |
3068 | } | 3069 | } |
3069 | 3070 | ||
@@ -3078,7 +3079,7 @@ void send_agent_update(BOOL force_send, BOOL send_reliable) | |||
3078 | gAgent.sendReliableMessage(); | 3079 | gAgent.sendReliableMessage(); |
3079 | } | 3080 | } |
3080 | 3081 | ||
3081 | //llinfos << "agent " << avatar_pos_agent << " cam " << camera_pos_agent << llendl; | 3082 | // LL_DEBUGS("Messaging") << "agent " << avatar_pos_agent << " cam " << camera_pos_agent << LL_ENDL; |
3082 | 3083 | ||
3083 | // Copy the old data | 3084 | // Copy the old data |
3084 | last_head_rot = head_rotation; | 3085 | last_head_rot = head_rotation; |
@@ -3191,13 +3192,13 @@ void process_kill_object(LLMessageSystem *mesgsys, void **user_data) | |||
3191 | gMessageSystem->getSenderPort()); | 3192 | gMessageSystem->getSenderPort()); |
3192 | if (id == LLUUID::null) | 3193 | if (id == LLUUID::null) |
3193 | { | 3194 | { |
3194 | //llinfos << "Unknown kill for local " << local_id << llendl; | 3195 | LL_DEBUGS("Messaging") << "Unknown kill for local " << local_id << LL_ENDL; |
3195 | gObjectList.mNumUnknownKills++; | 3196 | gObjectList.mNumUnknownKills++; |
3196 | continue; | 3197 | continue; |
3197 | } | 3198 | } |
3198 | else | 3199 | else |
3199 | { | 3200 | { |
3200 | //llinfos << "Kill message for local " << local_id << llendl; | 3201 | LL_DEBUGS("Messaging") << "Kill message for local " << local_id << LL_ENDL; |
3201 | } | 3202 | } |
3202 | 3203 | ||
3203 | LLSelectMgr::getInstance()->removeObjectFromSelections(id); | 3204 | LLSelectMgr::getInstance()->removeObjectFromSelections(id); |
@@ -3227,7 +3228,7 @@ void process_kill_object(LLMessageSystem *mesgsys, void **user_data) | |||
3227 | } | 3228 | } |
3228 | else | 3229 | else |
3229 | { | 3230 | { |
3230 | llwarns << "Object in UUID lookup, but not on object list in kill!" << llendl; | 3231 | LL_WARNS("Messaging") << "Object in UUID lookup, but not on object list in kill!" << LL_ENDL; |
3231 | gObjectList.mNumUnknownKills++; | 3232 | gObjectList.mNumUnknownKills++; |
3232 | } | 3233 | } |
3233 | } | 3234 | } |
@@ -3256,8 +3257,8 @@ void process_time_synch(LLMessageSystem *mesgsys, void **user_data) | |||
3256 | 3257 | ||
3257 | LLWorld::getInstance()->setSpaceTimeUSec(space_time_usec); | 3258 | LLWorld::getInstance()->setSpaceTimeUSec(space_time_usec); |
3258 | 3259 | ||
3259 | //lldebugs << "time_synch() - " << sun_direction << ", " << sun_ang_velocity | 3260 | //LL_DEBUGS("Messaging") << "time_synch() - " << sun_direction << ", " << sun_ang_velocity |
3260 | // << ", " << phase << llendl; | 3261 | // << ", " << phase << LL_ENDL; |
3261 | 3262 | ||
3262 | gSky.setSunPhase(phase); | 3263 | gSky.setSunPhase(phase); |
3263 | gSky.setSunTargetDirection(sun_direction, sun_ang_velocity); | 3264 | gSky.setSunTargetDirection(sun_direction, sun_ang_velocity); |
@@ -3509,7 +3510,8 @@ void process_sim_stats(LLMessageSystem *msg, void **user_data) | |||
3509 | LLViewerStats::getInstance()->mPhysicsMemoryAllocated.addValue(stat_value); | 3510 | LLViewerStats::getInstance()->mPhysicsMemoryAllocated.addValue(stat_value); |
3510 | break; | 3511 | break; |
3511 | default: | 3512 | default: |
3512 | // llwarns << "Unknown stat id" << stat_id << llendl; | 3513 | // Used to be a commented out warning. |
3514 | LL_DEBUGS("Messaging") << "Unknown stat id" << stat_id << LL_ENDL; | ||
3513 | break; | 3515 | break; |
3514 | } | 3516 | } |
3515 | } | 3517 | } |
@@ -3576,7 +3578,7 @@ void process_avatar_animation(LLMessageSystem *mesgsys, void **user_data) | |||
3576 | if (!avatarp) | 3578 | if (!avatarp) |
3577 | { | 3579 | { |
3578 | // no agent by this ID...error? | 3580 | // no agent by this ID...error? |
3579 | llwarns << "Received animation state for unknown avatar" << uuid << llendl; | 3581 | LL_WARNS("Messaging") << "Received animation state for unknown avatar" << uuid << LL_ENDL; |
3580 | return; | 3582 | return; |
3581 | } | 3583 | } |
3582 | 3584 | ||
@@ -3594,7 +3596,7 @@ void process_avatar_animation(LLMessageSystem *mesgsys, void **user_data) | |||
3594 | mesgsys->getUUIDFast(_PREHASH_AnimationList, _PREHASH_AnimID, animation_id, i); | 3596 | mesgsys->getUUIDFast(_PREHASH_AnimationList, _PREHASH_AnimID, animation_id, i); |
3595 | mesgsys->getS32Fast(_PREHASH_AnimationList, _PREHASH_AnimSequenceID, anim_sequence_id, i); | 3597 | mesgsys->getS32Fast(_PREHASH_AnimationList, _PREHASH_AnimSequenceID, anim_sequence_id, i); |
3596 | 3598 | ||
3597 | //llinfos << "Anim sequence ID: " << anim_sequence_id << llendl; | 3599 | LL_DEBUGS("Messaging") << "Anim sequence ID: " << anim_sequence_id << LL_ENDL; |
3598 | 3600 | ||
3599 | avatarp->mSignaledAnimations[animation_id] = anim_sequence_id; | 3601 | avatarp->mSignaledAnimations[animation_id] = anim_sequence_id; |
3600 | 3602 | ||
@@ -3654,7 +3656,7 @@ void process_avatar_appearance(LLMessageSystem *mesgsys, void **user_data) | |||
3654 | } | 3656 | } |
3655 | else | 3657 | else |
3656 | { | 3658 | { |
3657 | llwarns << "avatar_appearance sent for unknown avatar " << uuid << llendl; | 3659 | LL_WARNS("Messaging") << "avatar_appearance sent for unknown avatar " << uuid << LL_ENDL; |
3658 | } | 3660 | } |
3659 | } | 3661 | } |
3660 | 3662 | ||
@@ -3720,7 +3722,7 @@ void process_avatar_sit_response(LLMessageSystem *mesgsys, void **user_data) | |||
3720 | } | 3722 | } |
3721 | else | 3723 | else |
3722 | { | 3724 | { |
3723 | llwarns << "Received sit approval for unknown object " << sitObjectID << llendl; | 3725 | LL_WARNS("Messaging") << "Received sit approval for unknown object " << sitObjectID << LL_ENDL; |
3724 | } | 3726 | } |
3725 | } | 3727 | } |
3726 | 3728 | ||
@@ -3870,13 +3872,13 @@ void process_name_value(LLMessageSystem *mesgsys, void **user_data) | |||
3870 | for (i = 0; i < num_blocks; i++) | 3872 | for (i = 0; i < num_blocks; i++) |
3871 | { | 3873 | { |
3872 | mesgsys->getStringFast(_PREHASH_NameValueData, _PREHASH_NVPair, NAME_VALUE_BUF_SIZE, temp_str, i); | 3874 | mesgsys->getStringFast(_PREHASH_NameValueData, _PREHASH_NVPair, NAME_VALUE_BUF_SIZE, temp_str, i); |
3873 | llinfos << "Added to object Name Value: " << temp_str << llendl; | 3875 | LL_INFOS("Messaging") << "Added to object Name Value: " << temp_str << LL_ENDL; |
3874 | object->addNVPair(temp_str); | 3876 | object->addNVPair(temp_str); |
3875 | } | 3877 | } |
3876 | } | 3878 | } |
3877 | else | 3879 | else |
3878 | { | 3880 | { |
3879 | llinfos << "Can't find object " << id << " to add name value pair" << llendl; | 3881 | LL_INFOS("Messaging") << "Can't find object " << id << " to add name value pair" << LL_ENDL; |
3880 | } | 3882 | } |
3881 | } | 3883 | } |
3882 | 3884 | ||
@@ -3896,13 +3898,13 @@ void process_remove_name_value(LLMessageSystem *mesgsys, void **user_data) | |||
3896 | for (i = 0; i < num_blocks; i++) | 3898 | for (i = 0; i < num_blocks; i++) |
3897 | { | 3899 | { |
3898 | mesgsys->getStringFast(_PREHASH_NameValueData, _PREHASH_NVPair, NAME_VALUE_BUF_SIZE, temp_str, i); | 3900 | mesgsys->getStringFast(_PREHASH_NameValueData, _PREHASH_NVPair, NAME_VALUE_BUF_SIZE, temp_str, i); |
3899 | llinfos << "Removed from object Name Value: " << temp_str << llendl; | 3901 | LL_INFOS("Messaging") << "Removed from object Name Value: " << temp_str << LL_ENDL; |
3900 | object->removeNVPair(temp_str); | 3902 | object->removeNVPair(temp_str); |
3901 | } | 3903 | } |
3902 | } | 3904 | } |
3903 | else | 3905 | else |
3904 | { | 3906 | { |
3905 | llinfos << "Can't find object " << id << " to remove name value pair" << llendl; | 3907 | LL_INFOS("Messaging") << "Can't find object " << id << " to remove name value pair" << LL_ENDL; |
3906 | } | 3908 | } |
3907 | } | 3909 | } |
3908 | 3910 | ||
@@ -3982,8 +3984,8 @@ void process_money_balance_reply( LLMessageSystem* msg, void** ) | |||
3982 | msg->getS32("MoneyData", "SquareMetersCredit", credit); | 3984 | msg->getS32("MoneyData", "SquareMetersCredit", credit); |
3983 | msg->getS32("MoneyData", "SquareMetersCommitted", committed); | 3985 | msg->getS32("MoneyData", "SquareMetersCommitted", committed); |
3984 | msg->getStringFast(_PREHASH_MoneyData, _PREHASH_Description, STD_STRING_BUF_SIZE, desc); | 3986 | msg->getStringFast(_PREHASH_MoneyData, _PREHASH_Description, STD_STRING_BUF_SIZE, desc); |
3985 | llinfos << "L$, credit, committed: " << balance << " " << credit << " " | 3987 | LL_INFOS("Messaging") << "L$, credit, committed: " << balance << " " << credit << " " |
3986 | << committed << llendl; | 3988 | << committed << LL_ENDL; |
3987 | 3989 | ||
3988 | if (gStatusBar) | 3990 | if (gStatusBar) |
3989 | { | 3991 | { |
@@ -4027,10 +4029,10 @@ void process_money_balance_reply( LLMessageSystem* msg, void** ) | |||
4027 | const S32 POP_FRONT_SIZE = 12; | 4029 | const S32 POP_FRONT_SIZE = 12; |
4028 | if(recent.size() > MAX_LOOKBACK) | 4030 | if(recent.size() > MAX_LOOKBACK) |
4029 | { | 4031 | { |
4030 | lldebugs << "Removing oldest transaction records" << llendl; | 4032 | LL_DEBUGS("Messaging") << "Removing oldest transaction records" << LL_ENDL; |
4031 | recent.erase(recent.begin(), recent.begin() + POP_FRONT_SIZE); | 4033 | recent.erase(recent.begin(), recent.begin() + POP_FRONT_SIZE); |
4032 | } | 4034 | } |
4033 | //lldebugs << "Pushing back transaction " << tid << llendl; | 4035 | //LL_DEBUGS("Messaging") << "Pushing back transaction " << tid << LL_ENDL; |
4034 | recent.push_back(tid); | 4036 | recent.push_back(tid); |
4035 | } | 4037 | } |
4036 | } | 4038 | } |
@@ -4475,9 +4477,9 @@ void process_script_question(LLMessageSystem *msg, void **user_data) | |||
4475 | switch (question_throttle.noteAction(throttle_owner_name)) | 4477 | switch (question_throttle.noteAction(throttle_owner_name)) |
4476 | { | 4478 | { |
4477 | case LLStringThrottle::THROTTLE_NEWLY_BLOCKED: | 4479 | case LLStringThrottle::THROTTLE_NEWLY_BLOCKED: |
4478 | llinfos << "process_script_question throttled" | 4480 | LL_INFOS("Messaging") << "process_script_question throttled" |
4479 | << " owner_name:" << owner_name | 4481 | << " owner_name:" << owner_name |
4480 | << llendl; | 4482 | << LL_ENDL; |
4481 | // Fall through | 4483 | // Fall through |
4482 | 4484 | ||
4483 | case LLStringThrottle::THROTTLE_BLOCKED: | 4485 | case LLStringThrottle::THROTTLE_BLOCKED: |
@@ -4539,7 +4541,7 @@ void process_script_question(LLMessageSystem *msg, void **user_data) | |||
4539 | 4541 | ||
4540 | void process_derez_container(LLMessageSystem *msg, void**) | 4542 | void process_derez_container(LLMessageSystem *msg, void**) |
4541 | { | 4543 | { |
4542 | llwarns << "call to deprecated process_derez_container" << llendl; | 4544 | LL_WARNS("Messaging") << "call to deprecated process_derez_container" << LL_ENDL; |
4543 | } | 4545 | } |
4544 | 4546 | ||
4545 | void container_inventory_arrived(LLViewerObject* object, | 4547 | void container_inventory_arrived(LLViewerObject* object, |
@@ -4547,7 +4549,7 @@ void container_inventory_arrived(LLViewerObject* object, | |||
4547 | S32 serial_num, | 4549 | S32 serial_num, |
4548 | void* data) | 4550 | void* data) |
4549 | { | 4551 | { |
4550 | llinfos << "container_inventory_arrived()" << llendl; | 4552 | LL_DEBUGS("Messaging") << "container_inventory_arrived()" << LL_ENDL; |
4551 | if( gAgent.cameraMouselook() ) | 4553 | if( gAgent.cameraMouselook() ) |
4552 | { | 4554 | { |
4553 | gAgent.changeCameraToDefault(); | 4555 | gAgent.changeCameraToDefault(); |
@@ -4693,7 +4695,7 @@ void process_teleport_local(LLMessageSystem *msg,void**) | |||
4693 | msg->getUUIDFast(_PREHASH_Info, _PREHASH_AgentID, agent_id); | 4695 | msg->getUUIDFast(_PREHASH_Info, _PREHASH_AgentID, agent_id); |
4694 | if (agent_id != gAgent.getID()) | 4696 | if (agent_id != gAgent.getID()) |
4695 | { | 4697 | { |
4696 | llwarns << "Got teleport notification for wrong agent!" << llendl; | 4698 | LL_WARNS("Messaging") << "Got teleport notification for wrong agent!" << LL_ENDL; |
4697 | return; | 4699 | return; |
4698 | } | 4700 | } |
4699 | 4701 | ||
@@ -4923,8 +4925,8 @@ void process_user_info_reply(LLMessageSystem* msg, void**) | |||
4923 | msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, agent_id); | 4925 | msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, agent_id); |
4924 | if(agent_id != gAgent.getID()) | 4926 | if(agent_id != gAgent.getID()) |
4925 | { | 4927 | { |
4926 | llwarns << "process_user_info_reply - " | 4928 | LL_WARNS("Messaging") << "process_user_info_reply - " |
4927 | << "wrong agent id." << llendl; | 4929 | << "wrong agent id." << LL_ENDL; |
4928 | } | 4930 | } |
4929 | 4931 | ||
4930 | BOOL im_via_email; | 4932 | BOOL im_via_email; |
@@ -5132,7 +5134,7 @@ void process_load_url(LLMessageSystem* msg, void**) | |||
5132 | if (LLMuteList::getInstance()->isMuted(infop->mObjectID, infop->mObjectName) || | 5134 | if (LLMuteList::getInstance()->isMuted(infop->mObjectID, infop->mObjectName) || |
5133 | LLMuteList::getInstance()->isMuted(infop->mOwnerID)) | 5135 | LLMuteList::getInstance()->isMuted(infop->mOwnerID)) |
5134 | { | 5136 | { |
5135 | llinfos<<"Ignoring load_url from muted object/owner."<<llendl; | 5137 | LL_INFOS("Messaging")<<"Ignoring load_url from muted object/owner."<<LL_ENDL; |
5136 | delete infop; | 5138 | delete infop; |
5137 | infop = NULL; | 5139 | infop = NULL; |
5138 | return; | 5140 | return; |
@@ -5161,7 +5163,7 @@ void process_initiate_download(LLMessageSystem* msg, void**) | |||
5161 | msg->getUUID("AgentData", "AgentID", agent_id); | 5163 | msg->getUUID("AgentData", "AgentID", agent_id); |
5162 | if (agent_id != gAgent.getID()) | 5164 | if (agent_id != gAgent.getID()) |
5163 | { | 5165 | { |
5164 | llwarns << "Initiate download for wrong agent" << llendl; | 5166 | LL_WARNS("Messaging") << "Initiate download for wrong agent" << LL_ENDL; |
5165 | return; | 5167 | return; |
5166 | } | 5168 | } |
5167 | 5169 | ||
@@ -5192,10 +5194,12 @@ void process_script_teleport_request(LLMessageSystem* msg, void**) | |||
5192 | msg->getVector3("Data", "SimPosition", pos); | 5194 | msg->getVector3("Data", "SimPosition", pos); |
5193 | msg->getVector3("Data", "LookAt", look_at); | 5195 | msg->getVector3("Data", "LookAt", look_at); |
5194 | 5196 | ||
5195 | // gFloaterWorldMap->trackURL(sim_name, (S32)pos.mV[VX], (S32)pos.mV[VY], (S32)pos.mV[VZ]); | 5197 | gFloaterWorldMap->trackURL(sim_name, (S32)pos.mV[VX], (S32)pos.mV[VY], (S32)pos.mV[VZ]); |
5196 | // LLFloaterWorldMap::show(NULL, TRUE); | 5198 | LLFloaterWorldMap::show(NULL, TRUE); |
5197 | 5199 | ||
5198 | LLURLDispatcher::dispatch(LLURLDispatcher::buildSLURL(sim_name, (S32)pos.mV[VX], (S32)pos.mV[VY], (S32)pos.mV[VZ]), FALSE); | 5200 | // remove above two lines and replace with below line |
5201 | // to re-enable parcel browser for llMapDestination() | ||
5202 | // LLURLDispatcher::dispatch(LLURLDispatcher::buildSLURL(sim_name, (S32)pos.mV[VX], (S32)pos.mV[VY], (S32)pos.mV[VZ]), FALSE); | ||
5199 | 5203 | ||
5200 | } | 5204 | } |
5201 | 5205 | ||
@@ -5287,7 +5291,7 @@ void onCovenantLoadComplete(LLVFS *vfs, | |||
5287 | LLAssetType::EType type, | 5291 | LLAssetType::EType type, |
5288 | void* user_data, S32 status, LLExtStat ext_status) | 5292 | void* user_data, S32 status, LLExtStat ext_status) |
5289 | { | 5293 | { |
5290 | llinfos << "onCovenantLoadComplete()" << llendl; | 5294 | LL_DEBUGS("Messaging") << "onCovenantLoadComplete()" << LL_ENDL; |
5291 | std::string covenant_text; | 5295 | std::string covenant_text; |
5292 | if(0 == status) | 5296 | if(0 == status) |
5293 | { | 5297 | { |
@@ -5298,7 +5302,7 @@ void onCovenantLoadComplete(LLVFS *vfs, | |||
5298 | char* buffer = new char[file_length+1]; | 5302 | char* buffer = new char[file_length+1]; |
5299 | if (buffer == NULL) | 5303 | if (buffer == NULL) |
5300 | { | 5304 | { |
5301 | llerrs << "Memory Allocation failed" << llendl; | 5305 | LL_ERRS("Messaging") << "Memory Allocation failed" << LL_ENDL; |
5302 | return; | 5306 | return; |
5303 | } | 5307 | } |
5304 | 5308 | ||
@@ -5315,7 +5319,7 @@ void onCovenantLoadComplete(LLVFS *vfs, | |||
5315 | file_length+1); | 5319 | file_length+1); |
5316 | if( !editor->importBuffer( buffer ) ) | 5320 | if( !editor->importBuffer( buffer ) ) |
5317 | { | 5321 | { |
5318 | llwarns << "Problem importing estate covenant." << llendl; | 5322 | LL_WARNS("Messaging") << "Problem importing estate covenant." << LL_ENDL; |
5319 | covenant_text = "Problem importing estate covenant."; | 5323 | covenant_text = "Problem importing estate covenant."; |
5320 | } | 5324 | } |
5321 | else | 5325 | else |
@@ -5328,7 +5332,7 @@ void onCovenantLoadComplete(LLVFS *vfs, | |||
5328 | } | 5332 | } |
5329 | else | 5333 | else |
5330 | { | 5334 | { |
5331 | llwarns << "Problem importing estate covenant: Covenant file format error." << llendl; | 5335 | LL_WARNS("Messaging") << "Problem importing estate covenant: Covenant file format error." << LL_ENDL; |
5332 | covenant_text = "Problem importing estate covenant: Covenant file format error."; | 5336 | covenant_text = "Problem importing estate covenant: Covenant file format error."; |
5333 | } | 5337 | } |
5334 | } | 5338 | } |
@@ -5350,7 +5354,7 @@ void onCovenantLoadComplete(LLVFS *vfs, | |||
5350 | covenant_text = "Unable to load estate covenant at this time."; | 5354 | covenant_text = "Unable to load estate covenant at this time."; |
5351 | } | 5355 | } |
5352 | 5356 | ||
5353 | llwarns << "Problem loading notecard: " << status << llendl; | 5357 | LL_WARNS("Messaging") << "Problem loading notecard: " << status << LL_ENDL; |
5354 | } | 5358 | } |
5355 | LLPanelEstateCovenant::updateCovenantText(covenant_text, asset_uuid); | 5359 | LLPanelEstateCovenant::updateCovenantText(covenant_text, asset_uuid); |
5356 | LLPanelLandCovenant::updateCovenantText(covenant_text); | 5360 | LLPanelLandCovenant::updateCovenantText(covenant_text); |
@@ -5368,7 +5372,7 @@ void process_feature_disabled_message(LLMessageSystem* msg, void**) | |||
5368 | msg->getUUIDFast(_PREHASH_FailureInfo,_PREHASH_AgentID,agentID); | 5372 | msg->getUUIDFast(_PREHASH_FailureInfo,_PREHASH_AgentID,agentID); |
5369 | msg->getUUIDFast(_PREHASH_FailureInfo,_PREHASH_TransactionID,transactionID); | 5373 | msg->getUUIDFast(_PREHASH_FailureInfo,_PREHASH_TransactionID,transactionID); |
5370 | 5374 | ||
5371 | llwarns << "Blacklisted Feature Response:" << &messageText[0] << llendl; | 5375 | LL_WARNS("Messaging") << "Blacklisted Feature Response:" << &messageText[0] << LL_ENDL; |
5372 | } | 5376 | } |
5373 | 5377 | ||
5374 | // ------------------------------------------------------------ | 5378 | // ------------------------------------------------------------ |
diff --git a/linden/indra/newview/llviewernetwork.cpp b/linden/indra/newview/llviewernetwork.cpp index d6e92c2..3224c00 100644 --- a/linden/indra/newview/llviewernetwork.cpp +++ b/linden/indra/newview/llviewernetwork.cpp | |||
@@ -33,8 +33,17 @@ | |||
33 | #include "llviewerprecompiledheaders.h" | 33 | #include "llviewerprecompiledheaders.h" |
34 | 34 | ||
35 | #include "llviewernetwork.h" | 35 | #include "llviewernetwork.h" |
36 | #include "llviewercontrol.h" | ||
36 | 37 | ||
37 | LLGridData gGridInfo[GRID_INFO_COUNT] = | 38 | struct LLGridData |
39 | { | ||
40 | const char* mLabel; | ||
41 | const char* mName; | ||
42 | const char* mLoginURI; | ||
43 | const char* mHelperURI; | ||
44 | }; | ||
45 | |||
46 | static LLGridData gGridInfo[GRID_INFO_COUNT] = | ||
38 | { | 47 | { |
39 | { "None", "", "", ""}, | 48 | { "None", "", "", ""}, |
40 | { "Aditi", | 49 | { "Aditi", |
@@ -111,8 +120,177 @@ LLGridData gGridInfo[GRID_INFO_COUNT] = | |||
111 | "" } | 120 | "" } |
112 | }; | 121 | }; |
113 | 122 | ||
114 | // Use this to figure out which domain name and login URI to use. | 123 | #if LL_RELEASE_FOR_DOWNLOAD |
124 | // Default userserver for production builds is agni | ||
125 | const EGridInfo DEFAULT_GRID_CHOICE = GRID_INFO_AGNI; | ||
126 | #else | ||
127 | // Default userserver for development builds is none | ||
128 | const EGridInfo DEFAULT_GRID_CHOICE = GRID_INFO_NONE; | ||
129 | #endif | ||
115 | 130 | ||
116 | EGridInfo gGridChoice = GRID_INFO_NONE; | ||
117 | LLString gGridName; /* Flawfinder: ignore */ | ||
118 | unsigned char gMACAddress[MAC_ADDRESS_BYTES]; /* Flawfinder: ignore */ | 131 | unsigned char gMACAddress[MAC_ADDRESS_BYTES]; /* Flawfinder: ignore */ |
132 | |||
133 | LLViewerLogin::LLViewerLogin() : | ||
134 | mGridChoice(DEFAULT_GRID_CHOICE) | ||
135 | { | ||
136 | } | ||
137 | |||
138 | void LLViewerLogin::setGridChoice(EGridInfo grid) | ||
139 | { | ||
140 | if(grid < 0 || grid >= GRID_INFO_COUNT) | ||
141 | { | ||
142 | llerrs << "Invalid grid index specified." << llendl; | ||
143 | } | ||
144 | |||
145 | if(mGridChoice != grid) | ||
146 | { | ||
147 | mGridChoice = grid; | ||
148 | if(GRID_INFO_LOCAL == mGridChoice) | ||
149 | { | ||
150 | mGridName = LOOPBACK_ADDRESS_STRING; | ||
151 | } | ||
152 | else if(GRID_INFO_OTHER == mGridChoice) | ||
153 | { | ||
154 | // *FIX:Mani - could this possibly be valid? | ||
155 | mGridName = "other"; | ||
156 | } | ||
157 | else | ||
158 | { | ||
159 | mGridName = gGridInfo[mGridChoice].mLabel; | ||
160 | } | ||
161 | |||
162 | gSavedSettings.setS32("ServerChoice", mGridChoice); | ||
163 | gSavedSettings.setString("CustomServer", ""); | ||
164 | } | ||
165 | } | ||
166 | |||
167 | void LLViewerLogin::setGridChoice(const std::string& grid_name) | ||
168 | { | ||
169 | // Set the grid choice based on a string. | ||
170 | // The string can be: | ||
171 | // - a grid label from the gGridInfo table | ||
172 | // - an ip address | ||
173 | if(!grid_name.empty()) | ||
174 | { | ||
175 | // find the grid choice from the user setting. | ||
176 | int grid_index = GRID_INFO_NONE; | ||
177 | for(;grid_index < GRID_INFO_OTHER; ++grid_index) | ||
178 | { | ||
179 | if(0 == LLString::compareInsensitive(gGridInfo[grid_index].mLabel, grid_name.c_str())) | ||
180 | { | ||
181 | // Founding a matching label in the list... | ||
182 | setGridChoice((EGridInfo)grid_index); | ||
183 | break; | ||
184 | } | ||
185 | } | ||
186 | |||
187 | if(GRID_INFO_OTHER == grid_index) | ||
188 | { | ||
189 | // *FIX:MEP Can and should we validate that this is an IP address? | ||
190 | mGridChoice = GRID_INFO_OTHER; | ||
191 | mGridName = grid_name; | ||
192 | gSavedSettings.setS32("ServerChoice", mGridChoice); | ||
193 | gSavedSettings.setString("CustomServer", mGridName); | ||
194 | } | ||
195 | } | ||
196 | } | ||
197 | |||
198 | void LLViewerLogin::resetURIs() | ||
199 | { | ||
200 | // Clear URIs when picking a new server | ||
201 | gSavedSettings.setValue("CmdLineLoginURI", LLSD::emptyArray()); | ||
202 | gSavedSettings.setString("CmdLineHelperURI", ""); | ||
203 | } | ||
204 | |||
205 | EGridInfo LLViewerLogin::getGridChoice() const | ||
206 | { | ||
207 | return mGridChoice; | ||
208 | } | ||
209 | |||
210 | std::string LLViewerLogin::getGridLabel() const | ||
211 | { | ||
212 | if(mGridChoice == GRID_INFO_NONE) | ||
213 | { | ||
214 | return "None"; | ||
215 | } | ||
216 | else if(mGridChoice < GRID_INFO_OTHER) | ||
217 | { | ||
218 | return gGridInfo[mGridChoice].mLabel; | ||
219 | } | ||
220 | |||
221 | return mGridName; | ||
222 | } | ||
223 | |||
224 | std::string LLViewerLogin::getKnownGridLabel(EGridInfo grid_index) const | ||
225 | { | ||
226 | if(grid_index > GRID_INFO_NONE && grid_index < GRID_INFO_OTHER) | ||
227 | { | ||
228 | return gGridInfo[grid_index].mLabel; | ||
229 | } | ||
230 | return gGridInfo[GRID_INFO_NONE].mLabel; | ||
231 | } | ||
232 | |||
233 | void LLViewerLogin::getLoginURIs(std::vector<std::string>& uris) const | ||
234 | { | ||
235 | // return the login uri set on the command line. | ||
236 | LLControlVariable* c = gSavedSettings.getControl("CmdLineLoginURI"); | ||
237 | if(c) | ||
238 | { | ||
239 | LLSD v = c->getValue(); | ||
240 | if(v.isArray()) | ||
241 | { | ||
242 | for(LLSD::array_const_iterator itr = v.beginArray(); | ||
243 | itr != v.endArray(); ++itr) | ||
244 | { | ||
245 | std::string uri = itr->asString(); | ||
246 | if(!uri.empty()) | ||
247 | { | ||
248 | uris.push_back(uri); | ||
249 | } | ||
250 | } | ||
251 | } | ||
252 | else | ||
253 | { | ||
254 | std::string uri = v.asString(); | ||
255 | if(!uri.empty()) | ||
256 | { | ||
257 | uris.push_back(uri); | ||
258 | } | ||
259 | } | ||
260 | } | ||
261 | |||
262 | // If there was no command line uri... | ||
263 | if(uris.empty()) | ||
264 | { | ||
265 | // If its a known grid choice, get the uri from the table, | ||
266 | // else try the grid name. | ||
267 | if(mGridChoice > GRID_INFO_NONE && mGridChoice < GRID_INFO_OTHER) | ||
268 | { | ||
269 | uris.push_back(gGridInfo[mGridChoice].mLoginURI); | ||
270 | } | ||
271 | else | ||
272 | { | ||
273 | uris.push_back(mGridName); | ||
274 | } | ||
275 | } | ||
276 | } | ||
277 | |||
278 | std::string LLViewerLogin::getHelperURI() const | ||
279 | { | ||
280 | return gSavedSettings.getString("CmdLineHelperURI"); | ||
281 | } | ||
282 | |||
283 | bool LLViewerLogin::isInProductionGrid() | ||
284 | { | ||
285 | // *NOTE:Mani This used to compare GRID_INFO_AGNI to gGridChoice, | ||
286 | // but it seems that loginURI trumps that. | ||
287 | std::vector<std::string> uris; | ||
288 | getLoginURIs(uris); | ||
289 | LLString::toLower(uris[0]); | ||
290 | if((uris[0].find("agni") != std::string::npos)) | ||
291 | { | ||
292 | return true; | ||
293 | } | ||
294 | |||
295 | return false; | ||
296 | } | ||
diff --git a/linden/indra/newview/llviewernetwork.h b/linden/indra/newview/llviewernetwork.h index 176ce43..966034f 100644 --- a/linden/indra/newview/llviewernetwork.h +++ b/linden/indra/newview/llviewernetwork.h | |||
@@ -59,18 +59,44 @@ enum EGridInfo | |||
59 | GRID_INFO_COUNT | 59 | GRID_INFO_COUNT |
60 | }; | 60 | }; |
61 | 61 | ||
62 | 62 | /** | |
63 | struct LLGridData | 63 | * @brief A class to manage the viewer's login state. |
64 | * | ||
65 | **/ | ||
66 | class LLViewerLogin : public LLSingleton<LLViewerLogin> | ||
64 | { | 67 | { |
65 | const char* mLabel; | 68 | public: |
66 | const char* mName; | 69 | LLViewerLogin(); |
67 | const char* mLoginURI; | 70 | |
68 | const char* mHelperURI; | 71 | void setGridChoice(EGridInfo grid); |
69 | }; | 72 | void setGridChoice(const std::string& grid_name); |
73 | void resetURIs(); | ||
74 | |||
75 | /** | ||
76 | * @brief Get the enumeration of the grid choice. | ||
77 | * Should only return values > 0 && < GRID_INFO_COUNT | ||
78 | **/ | ||
79 | EGridInfo getGridChoice() const; | ||
70 | 80 | ||
71 | extern EGridInfo gGridChoice; | 81 | /** |
72 | extern LLGridData gGridInfo[]; | 82 | * @brief Get a readable label for the grid choice. |
73 | extern LLString gGridName; /* Flawfinder: ignore */ | 83 | * Returns the readable name for the grid choice. |
84 | * If the grid is 'other', returns something | ||
85 | * the string used to specifiy the grid. | ||
86 | **/ | ||
87 | std::string getGridLabel() const; | ||
88 | |||
89 | std::string getKnownGridLabel(EGridInfo grid_index) const; | ||
90 | |||
91 | void getLoginURIs(std::vector<std::string>& uris) const; | ||
92 | std::string getHelperURI() const; | ||
93 | |||
94 | bool isInProductionGrid(); | ||
95 | |||
96 | private: | ||
97 | EGridInfo mGridChoice; | ||
98 | std::string mGridName; | ||
99 | }; | ||
74 | 100 | ||
75 | const S32 MAC_ADDRESS_BYTES = 6; | 101 | const S32 MAC_ADDRESS_BYTES = 6; |
76 | extern unsigned char gMACAddress[MAC_ADDRESS_BYTES]; /* Flawfinder: ignore */ | 102 | extern unsigned char gMACAddress[MAC_ADDRESS_BYTES]; /* Flawfinder: ignore */ |
diff --git a/linden/indra/newview/llviewerobject.cpp b/linden/indra/newview/llviewerobject.cpp index b0bd5ce..54114e4 100644 --- a/linden/indra/newview/llviewerobject.cpp +++ b/linden/indra/newview/llviewerobject.cpp | |||
@@ -94,7 +94,7 @@ | |||
94 | #include "llworld.h" | 94 | #include "llworld.h" |
95 | #include "llui.h" | 95 | #include "llui.h" |
96 | #include "pipeline.h" | 96 | #include "pipeline.h" |
97 | #include "llappviewer.h" | 97 | #include "llviewernetwork.h" |
98 | #include "llvowlsky.h" | 98 | #include "llvowlsky.h" |
99 | 99 | ||
100 | //#define DEBUG_UPDATE_TYPE | 100 | //#define DEBUG_UPDATE_TYPE |
@@ -4073,6 +4073,37 @@ BOOL LLViewerObject::isParticleSource() const | |||
4073 | return !mPartSourcep.isNull() && !mPartSourcep->isDead(); | 4073 | return !mPartSourcep.isNull() && !mPartSourcep->isDead(); |
4074 | } | 4074 | } |
4075 | 4075 | ||
4076 | void LLViewerObject::setParticleSource(const LLPartSysData& particle_parameters, const LLUUID& owner_id) | ||
4077 | { | ||
4078 | if (mPartSourcep) | ||
4079 | { | ||
4080 | deleteParticleSource(); | ||
4081 | } | ||
4082 | |||
4083 | LLPointer<LLViewerPartSourceScript> pss = LLViewerPartSourceScript::createPSS(this, particle_parameters); | ||
4084 | mPartSourcep = pss; | ||
4085 | |||
4086 | if (mPartSourcep) | ||
4087 | { | ||
4088 | mPartSourcep->setOwnerUUID(owner_id); | ||
4089 | |||
4090 | if (mPartSourcep->getImage()->getID() != mPartSourcep->mPartSysData.mPartImageID) | ||
4091 | { | ||
4092 | LLViewerImage* image; | ||
4093 | if (mPartSourcep->mPartSysData.mPartImageID == LLUUID::null) | ||
4094 | { | ||
4095 | image = gImageList.getImageFromFile("pixiesmall.tga"); | ||
4096 | } | ||
4097 | else | ||
4098 | { | ||
4099 | image = gImageList.getImage(mPartSourcep->mPartSysData.mPartImageID); | ||
4100 | } | ||
4101 | mPartSourcep->setImage(image); | ||
4102 | } | ||
4103 | } | ||
4104 | LLViewerPartSim::getInstance()->addPartSource(pss); | ||
4105 | } | ||
4106 | |||
4076 | void LLViewerObject::unpackParticleSource(const S32 block_num, const LLUUID& owner_id) | 4107 | void LLViewerObject::unpackParticleSource(const S32 block_num, const LLUUID& owner_id) |
4077 | { | 4108 | { |
4078 | if (!mPartSourcep.isNull() && mPartSourcep->isDead()) | 4109 | if (!mPartSourcep.isNull() && mPartSourcep->isDead()) |
@@ -4539,7 +4570,7 @@ BOOL LLViewerObject::permYouOwner() const | |||
4539 | return TRUE; | 4570 | return TRUE; |
4540 | #else | 4571 | #else |
4541 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER | 4572 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER |
4542 | if (!LLAppViewer::instance()->isInProductionGrid() | 4573 | if (!LLViewerLogin::getInstance()->isInProductionGrid() |
4543 | && (gAgent.getGodLevel() >= GOD_MAINTENANCE)) | 4574 | && (gAgent.getGodLevel() >= GOD_MAINTENANCE)) |
4544 | { | 4575 | { |
4545 | return TRUE; | 4576 | return TRUE; |
@@ -4576,7 +4607,7 @@ BOOL LLViewerObject::permOwnerModify() const | |||
4576 | return TRUE; | 4607 | return TRUE; |
4577 | #else | 4608 | #else |
4578 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER | 4609 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER |
4579 | if (!LLAppViewer::instance()->isInProductionGrid() | 4610 | if (!LLViewerLogin::getInstance()->isInProductionGrid() |
4580 | && (gAgent.getGodLevel() >= GOD_MAINTENANCE)) | 4611 | && (gAgent.getGodLevel() >= GOD_MAINTENANCE)) |
4581 | { | 4612 | { |
4582 | return TRUE; | 4613 | return TRUE; |
@@ -4600,7 +4631,7 @@ BOOL LLViewerObject::permModify() const | |||
4600 | return TRUE; | 4631 | return TRUE; |
4601 | #else | 4632 | #else |
4602 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER | 4633 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER |
4603 | if (!LLAppViewer::instance()->isInProductionGrid() | 4634 | if (!LLViewerLogin::getInstance()->isInProductionGrid() |
4604 | && (gAgent.getGodLevel() >= GOD_MAINTENANCE)) | 4635 | && (gAgent.getGodLevel() >= GOD_MAINTENANCE)) |
4605 | { | 4636 | { |
4606 | return TRUE; | 4637 | return TRUE; |
@@ -4624,7 +4655,7 @@ BOOL LLViewerObject::permCopy() const | |||
4624 | return TRUE; | 4655 | return TRUE; |
4625 | #else | 4656 | #else |
4626 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER | 4657 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER |
4627 | if (!LLAppViewer::instance()->isInProductionGrid() | 4658 | if (!LLViewerLogin::getInstance()->isInProductionGrid() |
4628 | && (gAgent.getGodLevel() >= GOD_MAINTENANCE)) | 4659 | && (gAgent.getGodLevel() >= GOD_MAINTENANCE)) |
4629 | { | 4660 | { |
4630 | return TRUE; | 4661 | return TRUE; |
@@ -4648,7 +4679,7 @@ BOOL LLViewerObject::permMove() const | |||
4648 | return TRUE; | 4679 | return TRUE; |
4649 | #else | 4680 | #else |
4650 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER | 4681 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER |
4651 | if (!LLAppViewer::instance()->isInProductionGrid() | 4682 | if (!LLViewerLogin::getInstance()->isInProductionGrid() |
4652 | && (gAgent.getGodLevel() >= GOD_MAINTENANCE)) | 4683 | && (gAgent.getGodLevel() >= GOD_MAINTENANCE)) |
4653 | { | 4684 | { |
4654 | return TRUE; | 4685 | return TRUE; |
@@ -4672,7 +4703,7 @@ BOOL LLViewerObject::permTransfer() const | |||
4672 | return TRUE; | 4703 | return TRUE; |
4673 | #else | 4704 | #else |
4674 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER | 4705 | # ifdef TOGGLE_HACKED_GODLIKE_VIEWER |
4675 | if (!LLAppViewer::instance()->isInProductionGrid() | 4706 | if (!LLViewerLogin::getInstance()->isInProductionGrid() |
4676 | && (gAgent.getGodLevel() >= GOD_MAINTENANCE)) | 4707 | && (gAgent.getGodLevel() >= GOD_MAINTENANCE)) |
4677 | { | 4708 | { |
4678 | return TRUE; | 4709 | return TRUE; |
diff --git a/linden/indra/newview/llviewerobject.h b/linden/indra/newview/llviewerobject.h index 316e8db..88e2a15 100644 --- a/linden/indra/newview/llviewerobject.h +++ b/linden/indra/newview/llviewerobject.h | |||
@@ -558,6 +558,7 @@ protected: | |||
558 | void unpackParticleSource(const S32 block_num, const LLUUID& owner_id); | 558 | void unpackParticleSource(const S32 block_num, const LLUUID& owner_id); |
559 | void unpackParticleSource(LLDataPacker &dp, const LLUUID& owner_id); | 559 | void unpackParticleSource(LLDataPacker &dp, const LLUUID& owner_id); |
560 | void deleteParticleSource(); | 560 | void deleteParticleSource(); |
561 | void setParticleSource(const LLPartSysData& particle_parameters, const LLUUID& owner_id); | ||
561 | 562 | ||
562 | private: | 563 | private: |
563 | void setNameValueList(const std::string& list); // clears nv pairs and then individually adds \n separated NV pairs from \0 terminated string | 564 | void setNameValueList(const std::string& list); // clears nv pairs and then individually adds \n separated NV pairs from \0 terminated string |
diff --git a/linden/indra/newview/llviewerobjectlist.cpp b/linden/indra/newview/llviewerobjectlist.cpp index 03567b0..bd8ed97 100644 --- a/linden/indra/newview/llviewerobjectlist.cpp +++ b/linden/indra/newview/llviewerobjectlist.cpp | |||
@@ -36,7 +36,7 @@ | |||
36 | #include "message.h" | 36 | #include "message.h" |
37 | #include "timing.h" | 37 | #include "timing.h" |
38 | #include "llfasttimer.h" | 38 | #include "llfasttimer.h" |
39 | #include "llglimmediate.h" | 39 | #include "llrender.h" |
40 | 40 | ||
41 | #include "llviewercontrol.h" | 41 | #include "llviewercontrol.h" |
42 | #include "llface.h" | 42 | #include "llface.h" |
@@ -1212,6 +1212,7 @@ U32 LLViewerObjectList::renderObjectsForSelect(LLCamera &camera, BOOL pick_parce | |||
1212 | // render pickable ui elements, like names, etc. | 1212 | // render pickable ui elements, like names, etc. |
1213 | LLHUDObject::renderAllForSelect(); | 1213 | LLHUDObject::renderAllForSelect(); |
1214 | gGL.flush(); | 1214 | gGL.flush(); |
1215 | LLVertexBuffer::unbind(); | ||
1215 | 1216 | ||
1216 | gRenderForSelect = FALSE; | 1217 | gRenderForSelect = FALSE; |
1217 | 1218 | ||
diff --git a/linden/indra/newview/llviewerparcelmedia.cpp b/linden/indra/newview/llviewerparcelmedia.cpp index 187a553..c29f277 100644 --- a/linden/indra/newview/llviewerparcelmedia.cpp +++ b/linden/indra/newview/llviewerparcelmedia.cpp | |||
@@ -100,9 +100,17 @@ void LLViewerParcelMedia::update(LLParcel* parcel) | |||
100 | // we have a player | 100 | // we have a player |
101 | if (parcel) | 101 | if (parcel) |
102 | { | 102 | { |
103 | if(!gAgent.getRegion()) | ||
104 | { | ||
105 | sMediaRegionID = LLUUID() ; | ||
106 | stop() ; | ||
107 | return ; | ||
108 | } | ||
109 | |||
103 | // we're in a parcel | 110 | // we're in a parcel |
104 | bool new_parcel = false; | 111 | bool new_parcel = false; |
105 | S32 parcelid = parcel->getLocalID(); | 112 | S32 parcelid = parcel->getLocalID(); |
113 | |||
106 | LLUUID regionid = gAgent.getRegion()->getRegionID(); | 114 | LLUUID regionid = gAgent.getRegion()->getRegionID(); |
107 | if (parcelid != sMediaParcelLocalID || regionid != sMediaRegionID) | 115 | if (parcelid != sMediaParcelLocalID || regionid != sMediaRegionID) |
108 | { | 116 | { |
diff --git a/linden/indra/newview/llviewerparceloverlay.cpp b/linden/indra/newview/llviewerparceloverlay.cpp index 7d0b2b4..b50ddb6 100644 --- a/linden/indra/newview/llviewerparceloverlay.cpp +++ b/linden/indra/newview/llviewerparceloverlay.cpp | |||
@@ -36,7 +36,7 @@ | |||
36 | // indra includes | 36 | // indra includes |
37 | #include "llparcel.h" | 37 | #include "llparcel.h" |
38 | #include "llgl.h" | 38 | #include "llgl.h" |
39 | #include "llglimmediate.h" | 39 | #include "llrender.h" |
40 | #include "v4color.h" | 40 | #include "v4color.h" |
41 | #include "v2math.h" | 41 | #include "v2math.h" |
42 | 42 | ||
@@ -48,6 +48,8 @@ | |||
48 | #include "llagent.h" | 48 | #include "llagent.h" |
49 | #include "llviewercamera.h" | 49 | #include "llviewercamera.h" |
50 | #include "llviewerimagelist.h" | 50 | #include "llviewerimagelist.h" |
51 | #include "llselectmgr.h" | ||
52 | #include "llfloatertools.h" | ||
51 | #include "llglheaders.h" | 53 | #include "llglheaders.h" |
52 | 54 | ||
53 | const U8 OVERLAY_IMG_COMPONENTS = 4; | 55 | const U8 OVERLAY_IMG_COMPONENTS = 4; |
@@ -69,7 +71,7 @@ LLViewerParcelOverlay::LLViewerParcelOverlay(LLViewerRegion* region, F32 region_ | |||
69 | mTexture = new LLImageGL(FALSE); | 71 | mTexture = new LLImageGL(FALSE); |
70 | mImageRaw = new LLImageRaw(mParcelGridsPerEdge, mParcelGridsPerEdge, OVERLAY_IMG_COMPONENTS); | 72 | mImageRaw = new LLImageRaw(mParcelGridsPerEdge, mParcelGridsPerEdge, OVERLAY_IMG_COMPONENTS); |
71 | mTexture->createGLTexture(0, mImageRaw); | 73 | mTexture->createGLTexture(0, mImageRaw); |
72 | glActiveTextureARB(GL_TEXTURE0_ARB); | 74 | gGL.getTexUnit(0)->activate(); |
73 | mTexture->bind(0); | 75 | mTexture->bind(0); |
74 | mTexture->setClamp(TRUE, TRUE); | 76 | mTexture->setClamp(TRUE, TRUE); |
75 | mTexture->setMipFilterNearest(TRUE); | 77 | mTexture->setMipFilterNearest(TRUE); |
@@ -839,31 +841,34 @@ S32 LLViewerParcelOverlay::renderPropertyLines () | |||
839 | 841 | ||
840 | gGL.end(); | 842 | gGL.end(); |
841 | 843 | ||
842 | LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_GREATER); | 844 | if (LLSelectMgr::sRenderHiddenSelections && gFloaterTools && gFloaterTools->getVisible()) |
843 | 845 | { | |
844 | colorp = mColorArray + BYTES_PER_COLOR * i; | 846 | LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_GREATER); |
845 | vertexp = mVertexArray + FLOATS_PER_VERTEX * i; | 847 | |
848 | colorp = mColorArray + BYTES_PER_COLOR * i; | ||
849 | vertexp = mVertexArray + FLOATS_PER_VERTEX * i; | ||
846 | 850 | ||
847 | gGL.begin(LLVertexBuffer::TRIANGLE_STRIP); | 851 | gGL.begin(LLVertexBuffer::TRIANGLE_STRIP); |
848 | 852 | ||
849 | for (j = 0; j < vertex_per_edge; j++) | 853 | for (j = 0; j < vertex_per_edge; j++) |
850 | { | 854 | { |
851 | U8 color[4]; | 855 | U8 color[4]; |
852 | color[0] = colorp[0]; | 856 | color[0] = colorp[0]; |
853 | color[1] = colorp[1]; | 857 | color[1] = colorp[1]; |
854 | color[2] = colorp[2]; | 858 | color[2] = colorp[2]; |
855 | color[3] = colorp[3]/4; | 859 | color[3] = colorp[3]/4; |
856 | 860 | ||
857 | gGL.color4ubv(color); | 861 | gGL.color4ubv(color); |
858 | gGL.vertex3fv(vertexp); | 862 | gGL.vertex3fv(vertexp); |
859 | 863 | ||
860 | colorp += BYTES_PER_COLOR; | 864 | colorp += BYTES_PER_COLOR; |
861 | vertexp += FLOATS_PER_VERTEX; | 865 | vertexp += FLOATS_PER_VERTEX; |
862 | } | 866 | } |
863 | 867 | ||
864 | drawn += vertex_per_edge; | 868 | drawn += vertex_per_edge; |
865 | 869 | ||
866 | gGL.end(); | 870 | gGL.end(); |
871 | } | ||
867 | 872 | ||
868 | } | 873 | } |
869 | 874 | ||
diff --git a/linden/indra/newview/llviewerpartsource.cpp b/linden/indra/newview/llviewerpartsource.cpp index 040d108..6c0596a 100644 --- a/linden/indra/newview/llviewerpartsource.cpp +++ b/linden/indra/newview/llviewerpartsource.cpp | |||
@@ -466,6 +466,25 @@ LLPointer<LLViewerPartSourceScript> LLViewerPartSourceScript::unpackPSS(LLViewer | |||
466 | } | 466 | } |
467 | } | 467 | } |
468 | 468 | ||
469 | |||
470 | /* static */ | ||
471 | LLPointer<LLViewerPartSourceScript> LLViewerPartSourceScript::createPSS(LLViewerObject *source_objp, const LLPartSysData& particle_parameters) | ||
472 | { | ||
473 | LLMemType mt(LLMemType::MTYPE_PARTICLES); | ||
474 | |||
475 | LLPointer<LLViewerPartSourceScript> new_pssp = new LLViewerPartSourceScript(source_objp); | ||
476 | |||
477 | new_pssp->mPartSysData = particle_parameters; | ||
478 | |||
479 | if (new_pssp->mPartSysData.mTargetUUID.notNull()) | ||
480 | { | ||
481 | LLViewerObject *target_objp = gObjectList.findObject(new_pssp->mPartSysData.mTargetUUID); | ||
482 | new_pssp->setTargetObject(target_objp); | ||
483 | } | ||
484 | return new_pssp; | ||
485 | } | ||
486 | |||
487 | |||
469 | void LLViewerPartSourceScript::setImage(LLViewerImage *imagep) | 488 | void LLViewerPartSourceScript::setImage(LLViewerImage *imagep) |
470 | { | 489 | { |
471 | LLMemType mt(LLMemType::MTYPE_PARTICLES); | 490 | LLMemType mt(LLMemType::MTYPE_PARTICLES); |
diff --git a/linden/indra/newview/llviewerpartsource.h b/linden/indra/newview/llviewerpartsource.h index cda81a0..8b6fb2c 100644 --- a/linden/indra/newview/llviewerpartsource.h +++ b/linden/indra/newview/llviewerpartsource.h | |||
@@ -119,6 +119,7 @@ public: | |||
119 | // Returns a new particle source to attach to an object... | 119 | // Returns a new particle source to attach to an object... |
120 | static LLPointer<LLViewerPartSourceScript> unpackPSS(LLViewerObject *source_objp, LLPointer<LLViewerPartSourceScript> pssp, const S32 block_num); | 120 | static LLPointer<LLViewerPartSourceScript> unpackPSS(LLViewerObject *source_objp, LLPointer<LLViewerPartSourceScript> pssp, const S32 block_num); |
121 | static LLPointer<LLViewerPartSourceScript> unpackPSS(LLViewerObject *source_objp, LLPointer<LLViewerPartSourceScript> pssp, LLDataPacker &dp); | 121 | static LLPointer<LLViewerPartSourceScript> unpackPSS(LLViewerObject *source_objp, LLPointer<LLViewerPartSourceScript> pssp, LLDataPacker &dp); |
122 | static LLPointer<LLViewerPartSourceScript> createPSS(LLViewerObject *source_objp, const LLPartSysData& particle_parameters); | ||
122 | 123 | ||
123 | LLViewerImage *getImage() const { return mImagep; } | 124 | LLViewerImage *getImage() const { return mImagep; } |
124 | void setImage(LLViewerImage *imagep); | 125 | void setImage(LLViewerImage *imagep); |
diff --git a/linden/indra/newview/llviewerregion.cpp b/linden/indra/newview/llviewerregion.cpp index e8ed85f..e1590cc 100644 --- a/linden/indra/newview/llviewerregion.cpp +++ b/linden/indra/newview/llviewerregion.cpp | |||
@@ -214,7 +214,7 @@ void LLViewerRegion::loadCache() | |||
214 | U32(mHandle>>32)/REGION_WIDTH_UNITS, | 214 | U32(mHandle>>32)/REGION_WIDTH_UNITS, |
215 | U32(mHandle)/REGION_WIDTH_UNITS ); | 215 | U32(mHandle)/REGION_WIDTH_UNITS ); |
216 | 216 | ||
217 | FILE* fp = LLFile::fopen(filename, "rb"); /* Flawfinder: ignore */ | 217 | LLFILE* fp = LLFile::fopen(filename, "rb"); /* Flawfinder: ignore */ |
218 | if (!fp) | 218 | if (!fp) |
219 | { | 219 | { |
220 | // might not have a file, which is normal | 220 | // might not have a file, which is normal |
@@ -303,7 +303,7 @@ void LLViewerRegion::saveCache() | |||
303 | U32(mHandle>>32)/REGION_WIDTH_UNITS, | 303 | U32(mHandle>>32)/REGION_WIDTH_UNITS, |
304 | U32(mHandle)/REGION_WIDTH_UNITS ); | 304 | U32(mHandle)/REGION_WIDTH_UNITS ); |
305 | 305 | ||
306 | FILE* fp = LLFile::fopen(filename, "wb"); /* Flawfinder: ignore */ | 306 | LLFILE* fp = LLFile::fopen(filename, "wb"); /* Flawfinder: ignore */ |
307 | if (!fp) | 307 | if (!fp) |
308 | { | 308 | { |
309 | llwarns << "Unable to write cache file " << filename << llendl; | 309 | llwarns << "Unable to write cache file " << filename << llendl; |
@@ -1307,6 +1307,7 @@ void LLViewerRegion::unpackRegionHandshake() | |||
1307 | 1307 | ||
1308 | class BaseCapabilitiesComplete : public LLHTTPClient::Responder | 1308 | class BaseCapabilitiesComplete : public LLHTTPClient::Responder |
1309 | { | 1309 | { |
1310 | LOG_CLASS(BaseCapabilitiesComplete); | ||
1310 | public: | 1311 | public: |
1311 | BaseCapabilitiesComplete(LLViewerRegion* region) | 1312 | BaseCapabilitiesComplete(LLViewerRegion* region) |
1312 | : mRegion(region) | 1313 | : mRegion(region) |
@@ -1314,8 +1315,7 @@ public: | |||
1314 | 1315 | ||
1315 | void error(U32 statusNum, const std::string& reason) | 1316 | void error(U32 statusNum, const std::string& reason) |
1316 | { | 1317 | { |
1317 | llinfos << "BaseCapabilitiesComplete::error " | 1318 | LL_WARNS2("AppInit", "Capabilities") << statusNum << ": " << reason << LL_ENDL; |
1318 | << statusNum << ": " << reason << llendl; | ||
1319 | 1319 | ||
1320 | if (STATE_SEED_GRANTED_WAIT == LLStartUp::getStartupState()) | 1320 | if (STATE_SEED_GRANTED_WAIT == LLStartUp::getStartupState()) |
1321 | { | 1321 | { |
@@ -1329,8 +1329,8 @@ public: | |||
1329 | for(iter = content.beginMap(); iter != content.endMap(); ++iter) | 1329 | for(iter = content.beginMap(); iter != content.endMap(); ++iter) |
1330 | { | 1330 | { |
1331 | mRegion->setCapability(iter->first, iter->second); | 1331 | mRegion->setCapability(iter->first, iter->second); |
1332 | llinfos << "BaseCapabilitiesComplete::result got capability for " | 1332 | LL_DEBUGS2("AppInit", "Capabilities") << "got capability for " |
1333 | << iter->first << llendl; | 1333 | << iter->first << LL_ENDL; |
1334 | 1334 | ||
1335 | /* HACK we're waiting for the ServerReleaseNotes */ | 1335 | /* HACK we're waiting for the ServerReleaseNotes */ |
1336 | if ((iter->first == "ServerReleaseNotes") && (LLFloaterReleaseMsg::sDisplayMessage)) | 1336 | if ((iter->first == "ServerReleaseNotes") && (LLFloaterReleaseMsg::sDisplayMessage)) |
diff --git a/linden/indra/newview/llviewerstats.cpp b/linden/indra/newview/llviewerstats.cpp index 9f10bbf..52b6748 100644 --- a/linden/indra/newview/llviewerstats.cpp +++ b/linden/indra/newview/llviewerstats.cpp | |||
@@ -53,6 +53,7 @@ | |||
53 | #include "llfasttimerview.h" | 53 | #include "llfasttimerview.h" |
54 | #include "llviewerregion.h" | 54 | #include "llviewerregion.h" |
55 | #include "llfloaterhtml.h" | 55 | #include "llfloaterhtml.h" |
56 | #include "llviewerwindow.h" // *TODO: remove, only used for width/height | ||
56 | #include "llworld.h" | 57 | #include "llworld.h" |
57 | #include "llfeaturemanager.h" | 58 | #include "llfeaturemanager.h" |
58 | #if LL_WINDOWS && LL_LCD_COMPILE | 59 | #if LL_WINDOWS && LL_LCD_COMPILE |
@@ -748,7 +749,12 @@ void send_stats() | |||
748 | // If the current revision is recent, ping the previous author before overriding | 749 | // If the current revision is recent, ping the previous author before overriding |
749 | LLSD &misc = body["stats"]["misc"]; | 750 | LLSD &misc = body["stats"]["misc"]; |
750 | 751 | ||
751 | // misc["string_1"] = | 752 | // Screen size so the UI team can figure out how big the widgets |
753 | // appear and use a "typical" size for end user tests. | ||
754 | |||
755 | S32 window_width = gViewerWindow->getWindowDisplayWidth(); | ||
756 | S32 window_height = gViewerWindow->getWindowDisplayHeight(); | ||
757 | misc["string_1"] = llformat("%.dx%d", window_width, window_height); | ||
752 | // misc["string_2"] = | 758 | // misc["string_2"] = |
753 | misc["int_1"] = LLFloaterDirectory::sOldSearchCount; // Steve: 1.18.6 | 759 | misc["int_1"] = LLFloaterDirectory::sOldSearchCount; // Steve: 1.18.6 |
754 | misc["int_2"] = LLFloaterDirectory::sNewSearchCount; // Steve: 1.18.6 | 760 | misc["int_2"] = LLFloaterDirectory::sNewSearchCount; // Steve: 1.18.6 |
diff --git a/linden/indra/newview/llviewertexteditor.cpp b/linden/indra/newview/llviewertexteditor.cpp index 60ec187..e1c56a6 100644 --- a/linden/indra/newview/llviewertexteditor.cpp +++ b/linden/indra/newview/llviewertexteditor.cpp | |||
@@ -631,7 +631,7 @@ BOOL LLViewerTextEditor::handleToolTip(S32 x, S32 y, LLString& msg, LLRect* stic | |||
631 | if( cur_segment ) | 631 | if( cur_segment ) |
632 | { | 632 | { |
633 | BOOL has_tool_tip = FALSE; | 633 | BOOL has_tool_tip = FALSE; |
634 | if( cur_segment->getStyle().getIsEmbeddedItem() ) | 634 | if( cur_segment->getStyle()->getIsEmbeddedItem() ) |
635 | { | 635 | { |
636 | LLWString wtip; | 636 | LLWString wtip; |
637 | has_tool_tip = getEmbeddedItemToolTipAtPos(cur_segment->getStart(), wtip); | 637 | has_tool_tip = getEmbeddedItemToolTipAtPos(cur_segment->getStart(), wtip); |
@@ -851,14 +851,14 @@ BOOL LLViewerTextEditor::handleHover(S32 x, S32 y, MASK mask) | |||
851 | const LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y ); | 851 | const LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y ); |
852 | if( cur_segment ) | 852 | if( cur_segment ) |
853 | { | 853 | { |
854 | if(cur_segment->getStyle().isLink()) | 854 | if(cur_segment->getStyle()->isLink()) |
855 | { | 855 | { |
856 | lldebugst(LLERR_USER_INPUT) << "hover handled by " << getName() << " (over link, inactive)" << llendl; | 856 | lldebugst(LLERR_USER_INPUT) << "hover handled by " << getName() << " (over link, inactive)" << llendl; |
857 | getWindow()->setCursor(UI_CURSOR_HAND); | 857 | getWindow()->setCursor(UI_CURSOR_HAND); |
858 | handled = TRUE; | 858 | handled = TRUE; |
859 | } | 859 | } |
860 | else | 860 | else |
861 | if(cur_segment->getStyle().getIsEmbeddedItem()) | 861 | if(cur_segment->getStyle()->getIsEmbeddedItem()) |
862 | { | 862 | { |
863 | lldebugst(LLERR_USER_INPUT) << "hover handled by " << getName() << " (over embedded item, inactive)" << llendl; | 863 | lldebugst(LLERR_USER_INPUT) << "hover handled by " << getName() << " (over embedded item, inactive)" << llendl; |
864 | getWindow()->setCursor(UI_CURSOR_HAND); | 864 | getWindow()->setCursor(UI_CURSOR_HAND); |
@@ -970,10 +970,10 @@ BOOL LLViewerTextEditor::handleRightMouseDown(S32 x, S32 y, MASK mask) | |||
970 | // const LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y ); | 970 | // const LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y ); |
971 | // if( cur_segment ) | 971 | // if( cur_segment ) |
972 | // { | 972 | // { |
973 | // if(cur_segment->getStyle().isLink()) | 973 | // if(cur_segment->getStyle()->isLink()) |
974 | // { | 974 | // { |
975 | // handled = TRUE; | 975 | // handled = TRUE; |
976 | // mHTML = cur_segment->getStyle().getLinkHREF(); | 976 | // mHTML = cur_segment->getStyle()->getLinkHREF(); |
977 | // } | 977 | // } |
978 | // } | 978 | // } |
979 | // } | 979 | // } |
@@ -1008,7 +1008,7 @@ BOOL LLViewerTextEditor::handleDoubleClick(S32 x, S32 y, MASK mask) | |||
1008 | if( allowsEmbeddedItems() ) | 1008 | if( allowsEmbeddedItems() ) |
1009 | { | 1009 | { |
1010 | const LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y ); | 1010 | const LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y ); |
1011 | if( cur_segment && cur_segment->getStyle().getIsEmbeddedItem() ) | 1011 | if( cur_segment && cur_segment->getStyle()->getIsEmbeddedItem() ) |
1012 | { | 1012 | { |
1013 | if( openEmbeddedItemAtPos( cur_segment->getStart() ) ) | 1013 | if( openEmbeddedItemAtPos( cur_segment->getStart() ) ) |
1014 | { | 1014 | { |
@@ -1598,7 +1598,7 @@ LLView* LLViewerTextEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlF | |||
1598 | text_editor->initFromXML(node, parent); | 1598 | text_editor->initFromXML(node, parent); |
1599 | 1599 | ||
1600 | // add text after all parameters have been set | 1600 | // add text after all parameters have been set |
1601 | text_editor->appendStyledText(text, FALSE, FALSE, NULL); | 1601 | text_editor->appendStyledText(text, FALSE, FALSE); |
1602 | 1602 | ||
1603 | return text_editor; | 1603 | return text_editor; |
1604 | } | 1604 | } |
diff --git a/linden/indra/newview/llviewerthrottle.cpp b/linden/indra/newview/llviewerthrottle.cpp index ceff856..54188cd 100644 --- a/linden/indra/newview/llviewerthrottle.cpp +++ b/linden/indra/newview/llviewerthrottle.cpp | |||
@@ -182,9 +182,9 @@ void LLViewerThrottleGroup::dump() | |||
182 | S32 i; | 182 | S32 i; |
183 | for (i = 0; i < TC_EOF; i++) | 183 | for (i = 0; i < TC_EOF; i++) |
184 | { | 184 | { |
185 | llinfos << LLViewerThrottle::sNames[i] << ": " << mThrottles[i] << llendl; | 185 | LL_DEBUGS("Throttle") << LLViewerThrottle::sNames[i] << ": " << mThrottles[i] << LL_ENDL; |
186 | } | 186 | } |
187 | llinfos << "Total: " << mThrottleTotal << llendl; | 187 | LL_DEBUGS("Throttle") << "Total: " << mThrottleTotal << LL_ENDL; |
188 | } | 188 | } |
189 | 189 | ||
190 | class LLBPSListener : public LLSimpleListener | 190 | class LLBPSListener : public LLSimpleListener |
diff --git a/linden/indra/newview/llviewerwindow.cpp b/linden/indra/newview/llviewerwindow.cpp index 4c76b8b..9f091dc 100644 --- a/linden/indra/newview/llviewerwindow.cpp +++ b/linden/indra/newview/llviewerwindow.cpp | |||
@@ -43,7 +43,7 @@ | |||
43 | #include "llviewquery.h" | 43 | #include "llviewquery.h" |
44 | #include "llxmltree.h" | 44 | #include "llxmltree.h" |
45 | //#include "llviewercamera.h" | 45 | //#include "llviewercamera.h" |
46 | #include "llglimmediate.h" | 46 | #include "llrender.h" |
47 | 47 | ||
48 | #include "llvoiceclient.h" // for push-to-talk button handling | 48 | #include "llvoiceclient.h" // for push-to-talk button handling |
49 | 49 | ||
@@ -182,6 +182,7 @@ | |||
182 | #include "llviewerdisplay.h" | 182 | #include "llviewerdisplay.h" |
183 | #include "llspatialpartition.h" | 183 | #include "llspatialpartition.h" |
184 | #include "llviewerjoystick.h" | 184 | #include "llviewerjoystick.h" |
185 | #include "llviewernetwork.h" | ||
185 | 186 | ||
186 | #if LL_WINDOWS | 187 | #if LL_WINDOWS |
187 | #include "llwindebug.h" | 188 | #include "llwindebug.h" |
@@ -1529,9 +1530,9 @@ LLViewerWindow::LLViewerWindow( | |||
1529 | ignore_pixel_depth, | 1530 | ignore_pixel_depth, |
1530 | gSavedSettings.getU32("RenderFSAASamples")); | 1531 | gSavedSettings.getU32("RenderFSAASamples")); |
1531 | #if LL_WINDOWS | 1532 | #if LL_WINDOWS |
1532 | if (!LLWinDebug::setupExceptionHandler()) | 1533 | if (!LLWinDebug::checkExceptionHandler()) |
1533 | { | 1534 | { |
1534 | llwarns << " Someone took over my exception handler (post createWindow)!" << llendl; | 1535 | LL_WARNS("Window") << " Someone took over my exception handler (post createWindow)!" << LL_ENDL; |
1535 | } | 1536 | } |
1536 | #endif | 1537 | #endif |
1537 | 1538 | ||
@@ -1542,8 +1543,8 @@ LLViewerWindow::LLViewerWindow( | |||
1542 | llwarns << "Unable to create window, be sure screen is set at 32-bit color and your graphics driver is configured correctly. See README-linux.txt or README-solaris.txt for further information." | 1543 | llwarns << "Unable to create window, be sure screen is set at 32-bit color and your graphics driver is configured correctly. See README-linux.txt or README-solaris.txt for further information." |
1543 | << llendl; | 1544 | << llendl; |
1544 | #else | 1545 | #else |
1545 | llwarns << "Unable to create window, be sure screen is set at 32-bit color in Control Panels->Display->Settings" | 1546 | LL_WARNS("Window") << "Unable to create window, be sure screen is set at 32-bit color in Control Panels->Display->Settings" |
1546 | << llendl; | 1547 | << LL_ENDL; |
1547 | #endif | 1548 | #endif |
1548 | LLAppViewer::instance()->forceExit(1); | 1549 | LLAppViewer::instance()->forceExit(1); |
1549 | } | 1550 | } |
@@ -1569,7 +1570,7 @@ LLViewerWindow::LLViewerWindow( | |||
1569 | // We want to set this stuff up BEFORE we initialize the pipeline, so we can turn off | 1570 | // We want to set this stuff up BEFORE we initialize the pipeline, so we can turn off |
1570 | // stuff like AGP if we think that it'll crash the viewer. | 1571 | // stuff like AGP if we think that it'll crash the viewer. |
1571 | // | 1572 | // |
1572 | llinfos << "Loading feature tables." << llendl; | 1573 | LL_DEBUGS("Window") << "Loading feature tables." << LL_ENDL; |
1573 | 1574 | ||
1574 | LLFeatureManager::getInstance()->init(); | 1575 | LLFeatureManager::getInstance()->init(); |
1575 | 1576 | ||
@@ -1638,7 +1639,7 @@ LLViewerWindow::LLViewerWindow( | |||
1638 | 1639 | ||
1639 | void LLViewerWindow::initGLDefaults() | 1640 | void LLViewerWindow::initGLDefaults() |
1640 | { | 1641 | { |
1641 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 1642 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
1642 | glColorMaterial( GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE ); | 1643 | glColorMaterial( GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE ); |
1643 | 1644 | ||
1644 | F32 ambient[4] = {0.f,0.f,0.f,0.f }; | 1645 | F32 ambient[4] = {0.f,0.f,0.f,0.f }; |
@@ -1656,7 +1657,7 @@ void LLViewerWindow::initGLDefaults() | |||
1656 | 1657 | ||
1657 | glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambient); | 1658 | glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambient); |
1658 | 1659 | ||
1659 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 1660 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
1660 | 1661 | ||
1661 | glCullFace(GL_BACK); | 1662 | glCullFace(GL_BACK); |
1662 | 1663 | ||
@@ -2198,7 +2199,7 @@ void LLViewerWindow::setNormalControlsVisible( BOOL visible ) | |||
2198 | 2199 | ||
2199 | // ...and set the menu color appropriately. | 2200 | // ...and set the menu color appropriately. |
2200 | setMenuBackgroundColor(gAgent.getGodLevel() > GOD_NOT, | 2201 | setMenuBackgroundColor(gAgent.getGodLevel() > GOD_NOT, |
2201 | LLAppViewer::instance()->isInProductionGrid()); | 2202 | LLViewerLogin::getInstance()->isInProductionGrid()); |
2202 | } | 2203 | } |
2203 | 2204 | ||
2204 | if ( gStatusBar ) | 2205 | if ( gStatusBar ) |
@@ -2213,15 +2214,15 @@ void LLViewerWindow::setMenuBackgroundColor(bool god_mode, bool dev_grid) | |||
2213 | LLString::format_map_t args; | 2214 | LLString::format_map_t args; |
2214 | LLColor4 new_bg_color; | 2215 | LLColor4 new_bg_color; |
2215 | 2216 | ||
2216 | if(god_mode && LLAppViewer::instance()->isInProductionGrid()) | 2217 | if(god_mode && LLViewerLogin::getInstance()->isInProductionGrid()) |
2217 | { | 2218 | { |
2218 | new_bg_color = gColors.getColor( "MenuBarGodBgColor" ); | 2219 | new_bg_color = gColors.getColor( "MenuBarGodBgColor" ); |
2219 | } | 2220 | } |
2220 | else if(god_mode && !LLAppViewer::instance()->isInProductionGrid()) | 2221 | else if(god_mode && !LLViewerLogin::getInstance()->isInProductionGrid()) |
2221 | { | 2222 | { |
2222 | new_bg_color = gColors.getColor( "MenuNonProductionGodBgColor" ); | 2223 | new_bg_color = gColors.getColor( "MenuNonProductionGodBgColor" ); |
2223 | } | 2224 | } |
2224 | else if(!god_mode && !LLAppViewer::instance()->isInProductionGrid()) | 2225 | else if(!god_mode && !LLViewerLogin::getInstance()->isInProductionGrid()) |
2225 | { | 2226 | { |
2226 | new_bg_color = gColors.getColor( "MenuNonProductionBgColor" ); | 2227 | new_bg_color = gColors.getColor( "MenuNonProductionBgColor" ); |
2227 | } | 2228 | } |
@@ -3538,7 +3539,7 @@ void LLViewerWindow::hitUIElementAsync(S32 x, S32 y_from_bot, MASK mask, void (* | |||
3538 | const LLVector2& display_scale = getDisplayScale(); | 3539 | const LLVector2& display_scale = getDisplayScale(); |
3539 | glScalef(display_scale.mV[VX], display_scale.mV[VY], 1.f); | 3540 | glScalef(display_scale.mV[VX], display_scale.mV[VY], 1.f); |
3540 | 3541 | ||
3541 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 3542 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
3542 | 3543 | ||
3543 | // make viewport big enough to handle antialiased frame buffers | 3544 | // make viewport big enough to handle antialiased frame buffers |
3544 | glViewport(x - (PICK_HALF_WIDTH + 2), y_from_bot - (PICK_HALF_WIDTH + 2), PICK_DIAMETER + 4, PICK_DIAMETER + 4); | 3545 | glViewport(x - (PICK_HALF_WIDTH + 2), y_from_bot - (PICK_HALF_WIDTH + 2), PICK_DIAMETER + 4, PICK_DIAMETER + 4); |
@@ -4185,8 +4186,9 @@ void LLViewerWindow::movieSize(S32 new_width, S32 new_height) | |||
4185 | if ( (size.mX != new_width + BORDERWIDTH) | 4186 | if ( (size.mX != new_width + BORDERWIDTH) |
4186 | ||(size.mY != new_height + BORDERHEIGHT)) | 4187 | ||(size.mY != new_height + BORDERHEIGHT)) |
4187 | { | 4188 | { |
4188 | S32 x = gViewerWindow->getWindowWidth(); | 4189 | // use actual display dimensions, not virtual UI dimensions |
4189 | S32 y = gViewerWindow->getWindowHeight(); | 4190 | S32 x = gViewerWindow->getWindowDisplayWidth(); |
4191 | S32 y = gViewerWindow->getWindowDisplayHeight(); | ||
4190 | BORDERWIDTH = size.mX - x; | 4192 | BORDERWIDTH = size.mX - x; |
4191 | BORDERHEIGHT = size.mY- y; | 4193 | BORDERHEIGHT = size.mY- y; |
4192 | LLCoordScreen new_size(new_width + BORDERWIDTH, | 4194 | LLCoordScreen new_size(new_width + BORDERWIDTH, |
@@ -4938,7 +4940,7 @@ void LLViewerWindow::restoreGL(const LLString& progress_message) | |||
4938 | } | 4940 | } |
4939 | llinfos << "...Restoring GL done" << llendl; | 4941 | llinfos << "...Restoring GL done" << llendl; |
4940 | #if LL_WINDOWS | 4942 | #if LL_WINDOWS |
4941 | if (SetUnhandledExceptionFilter(LLWinDebug::handleException) != LLWinDebug::handleException) | 4943 | if(!LLWinDebug::checkExceptionHandler()) |
4942 | { | 4944 | { |
4943 | llwarns << " Someone took over my exception handler (post restoreGL)!" << llendl; | 4945 | llwarns << " Someone took over my exception handler (post restoreGL)!" << llendl; |
4944 | } | 4946 | } |
@@ -4951,21 +4953,21 @@ void LLViewerWindow::initFonts(F32 zoom_factor) | |||
4951 | { | 4953 | { |
4952 | LLFontGL::destroyGL(); | 4954 | LLFontGL::destroyGL(); |
4953 | LLFontGL::initDefaultFonts( gSavedSettings.getF32("FontScreenDPI"), | 4955 | LLFontGL::initDefaultFonts( gSavedSettings.getF32("FontScreenDPI"), |
4954 | mDisplayScale.mV[VX] * zoom_factor, | 4956 | mDisplayScale.mV[VX] * zoom_factor, |
4955 | mDisplayScale.mV[VY] * zoom_factor, | 4957 | mDisplayScale.mV[VY] * zoom_factor, |
4956 | gSavedSettings.getString("FontMonospace"), | 4958 | gSavedSettings.getString("FontMonospace"), |
4957 | gSavedSettings.getF32("FontSizeMonospace"), | 4959 | gSavedSettings.getF32("FontSizeMonospace"), |
4958 | gSavedSettings.getString("FontSansSerif"), | 4960 | gSavedSettings.getString("FontSansSerif"), |
4959 | gSavedSettings.getString("FontSansSerifFallback"), | 4961 | gSavedSettings.getString("FontSansSerifFallback"), |
4960 | gSavedSettings.getF32("FontSansSerifFallbackScale"), | 4962 | gSavedSettings.getF32("FontSansSerifFallbackScale"), |
4961 | gSavedSettings.getF32("FontSizeSmall"), | 4963 | gSavedSettings.getF32("FontSizeSmall"), |
4962 | gSavedSettings.getF32("FontSizeMedium"), | 4964 | gSavedSettings.getF32("FontSizeMedium"), |
4963 | gSavedSettings.getF32("FontSizeLarge"), | 4965 | gSavedSettings.getF32("FontSizeLarge"), |
4964 | gSavedSettings.getF32("FontSizeHuge"), | 4966 | gSavedSettings.getF32("FontSizeHuge"), |
4965 | gSavedSettings.getString("FontSansSerifBold"), | 4967 | gSavedSettings.getString("FontSansSerifBold"), |
4966 | gSavedSettings.getF32("FontSizeMedium"), | 4968 | gSavedSettings.getF32("FontSizeMedium"), |
4967 | gDirUtilp->getAppRODataDir() | 4969 | gDirUtilp->getAppRODataDir() |
4968 | ); | 4970 | ); |
4969 | } | 4971 | } |
4970 | void LLViewerWindow::toggleFullscreen(BOOL show_progress) | 4972 | void LLViewerWindow::toggleFullscreen(BOOL show_progress) |
4971 | { | 4973 | { |
@@ -5018,20 +5020,16 @@ BOOL LLViewerWindow::checkSettings() | |||
5018 | return FALSE; | 5020 | return FALSE; |
5019 | } | 5021 | } |
5020 | 5022 | ||
5021 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
5022 | LLGLState::checkStates(); | 5023 | LLGLState::checkStates(); |
5023 | LLGLState::checkTextureChannels(); | 5024 | LLGLState::checkTextureChannels(); |
5024 | #endif | ||
5025 | changeDisplaySettings(TRUE, | 5025 | changeDisplaySettings(TRUE, |
5026 | LLCoordScreen(gSavedSettings.getS32("FullScreenWidth"), | 5026 | LLCoordScreen(gSavedSettings.getS32("FullScreenWidth"), |
5027 | gSavedSettings.getS32("FullScreenHeight")), | 5027 | gSavedSettings.getS32("FullScreenHeight")), |
5028 | gSavedSettings.getBOOL("DisableVerticalSync"), | 5028 | gSavedSettings.getBOOL("DisableVerticalSync"), |
5029 | mShowFullscreenProgress); | 5029 | mShowFullscreenProgress); |
5030 | 5030 | ||
5031 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
5032 | LLGLState::checkStates(); | 5031 | LLGLState::checkStates(); |
5033 | LLGLState::checkTextureChannels(); | 5032 | LLGLState::checkTextureChannels(); |
5034 | #endif | ||
5035 | return TRUE; | 5033 | return TRUE; |
5036 | } | 5034 | } |
5037 | return FALSE; | 5035 | return FALSE; |
diff --git a/linden/indra/newview/llviewerwindow.h b/linden/indra/newview/llviewerwindow.h index a9f941c..da5fa4e 100644 --- a/linden/indra/newview/llviewerwindow.h +++ b/linden/indra/newview/llviewerwindow.h | |||
@@ -114,12 +114,18 @@ public: | |||
114 | // ACCESSORS | 114 | // ACCESSORS |
115 | // | 115 | // |
116 | LLView* getRootView() const { return mRootView; } | 116 | LLView* getRootView() const { return mRootView; } |
117 | |||
118 | // Window in raw pixels as seen on screen. | ||
117 | const LLRect& getWindowRect() const { return mWindowRect; }; | 119 | const LLRect& getWindowRect() const { return mWindowRect; }; |
120 | S32 getWindowDisplayHeight() const; | ||
121 | S32 getWindowDisplayWidth() const; | ||
122 | |||
123 | // Window in scaled pixels (via UI scale), use this for | ||
124 | // UI elements checking size. | ||
118 | const LLRect& getVirtualWindowRect() const { return mVirtualWindowRect; }; | 125 | const LLRect& getVirtualWindowRect() const { return mVirtualWindowRect; }; |
119 | S32 getWindowHeight() const; | 126 | S32 getWindowHeight() const; |
120 | S32 getWindowWidth() const; | 127 | S32 getWindowWidth() const; |
121 | S32 getWindowDisplayHeight() const; | 128 | |
122 | S32 getWindowDisplayWidth() const; | ||
123 | LLWindow* getWindow() const { return mWindow; } | 129 | LLWindow* getWindow() const { return mWindow; } |
124 | void* getPlatformWindow() const { return mWindow->getPlatformWindow(); } | 130 | void* getPlatformWindow() const { return mWindow->getPlatformWindow(); } |
125 | void focusClient() const { return mWindow->focusClient(); }; | 131 | void focusClient() const { return mWindow->focusClient(); }; |
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp index 7de2f9c..6b5f066 100644 --- a/linden/indra/newview/llvoavatar.cpp +++ b/linden/indra/newview/llvoavatar.cpp | |||
@@ -37,7 +37,7 @@ | |||
37 | 37 | ||
38 | #include "llvoavatar.h" | 38 | #include "llvoavatar.h" |
39 | 39 | ||
40 | #include "llglimmediate.h" | 40 | #include "llrender.h" |
41 | #include "audioengine.h" | 41 | #include "audioengine.h" |
42 | #include "imageids.h" | 42 | #include "imageids.h" |
43 | #include "indra_constants.h" | 43 | #include "indra_constants.h" |
@@ -95,7 +95,6 @@ | |||
95 | #include "llstatusbar.h" | 95 | #include "llstatusbar.h" |
96 | #include "lltargetingmotion.h" | 96 | #include "lltargetingmotion.h" |
97 | #include "lltexlayer.h" | 97 | #include "lltexlayer.h" |
98 | #include "lltoolbar.h" | ||
99 | #include "lltoolgrab.h" // for needsRenderBeam | 98 | #include "lltoolgrab.h" // for needsRenderBeam |
100 | #include "lltoolmgr.h" // for needsRenderBeam | 99 | #include "lltoolmgr.h" // for needsRenderBeam |
101 | #include "lltoolmorph.h" | 100 | #include "lltoolmorph.h" |
@@ -117,20 +116,14 @@ | |||
117 | #include "llspatialpartition.h" | 116 | #include "llspatialpartition.h" |
118 | #include "llglslshader.h" | 117 | #include "llglslshader.h" |
119 | #include "llappviewer.h" | 118 | #include "llappviewer.h" |
120 | #include "lscript_byteformat.h" | 119 | #include "llsky.h" |
120 | #include "llanimstatelabels.h" | ||
121 | 121 | ||
122 | //#include "vtune/vtuneapi.h" | 122 | //#include "vtune/vtuneapi.h" |
123 | 123 | ||
124 | //Ventrella | 124 | #include "llgesturemgr.h" //needed to trigger the voice gesticulations |
125 | #include "llgesturemgr.h" //needed to trigger the voice gestculations | ||
126 | #include "llvoicevisualizer.h" | 125 | #include "llvoicevisualizer.h" |
127 | #include "llvoiceclient.h" | 126 | #include "llvoiceclient.h" |
128 | //end Ventrella | ||
129 | |||
130 | // Direct imports, evil | ||
131 | extern LLSky gSky; | ||
132 | extern void set_avatar_character(void* charNameArg); | ||
133 | extern BOOL gRenderForSelect; | ||
134 | 127 | ||
135 | LLXmlTree LLVOAvatar::sXMLTree; | 128 | LLXmlTree LLVOAvatar::sXMLTree; |
136 | LLXmlTree LLVOAvatar::sSkeletonXMLTree; | 129 | LLXmlTree LLVOAvatar::sSkeletonXMLTree; |
@@ -686,7 +679,8 @@ LLVOAvatar::LLVOAvatar( | |||
686 | mTexHairColor( NULL ), | 679 | mTexHairColor( NULL ), |
687 | mTexEyeColor( NULL ), | 680 | mTexEyeColor( NULL ), |
688 | mNeedsSkin(FALSE), | 681 | mNeedsSkin(FALSE), |
689 | mUpdatePeriod(1) | 682 | mUpdatePeriod(1), |
683 | mFullyLoadedInitialized(FALSE) | ||
690 | { | 684 | { |
691 | LLMemType mt(LLMemType::MTYPE_AVATAR); | 685 | LLMemType mt(LLMemType::MTYPE_AVATAR); |
692 | 686 | ||
@@ -766,6 +760,10 @@ LLVOAvatar::LLVOAvatar( | |||
766 | mStepOnLand = TRUE; | 760 | mStepOnLand = TRUE; |
767 | mStepMaterial = 0; | 761 | mStepMaterial = 0; |
768 | 762 | ||
763 | mLipSyncActive = false; | ||
764 | mOohMorph = NULL; | ||
765 | mAahMorph = NULL; | ||
766 | |||
769 | //------------------------------------------------------------------------- | 767 | //------------------------------------------------------------------------- |
770 | // initialize joint, mesh and shape members | 768 | // initialize joint, mesh and shape members |
771 | //------------------------------------------------------------------------- | 769 | //------------------------------------------------------------------------- |
@@ -950,10 +948,8 @@ LLVOAvatar::LLVOAvatar( | |||
950 | 948 | ||
951 | //VTPause(); // VTune | 949 | //VTPause(); // VTune |
952 | 950 | ||
953 | //Ventrella | ||
954 | mVoiceVisualizer->setVoiceEnabled( gVoiceClient->getVoiceEnabled( mID ) ); | 951 | mVoiceVisualizer->setVoiceEnabled( gVoiceClient->getVoiceEnabled( mID ) ); |
955 | mCurrentGesticulationLevel = 0; | 952 | mCurrentGesticulationLevel = 0; |
956 | //END Ventrella | ||
957 | } | 953 | } |
958 | 954 | ||
959 | //------------------------------------------------------------------------ | 955 | //------------------------------------------------------------------------ |
@@ -1887,6 +1883,26 @@ void LLVOAvatar::buildCharacter() | |||
1887 | updateHeadOffset(); | 1883 | updateHeadOffset(); |
1888 | 1884 | ||
1889 | //------------------------------------------------------------------------- | 1885 | //------------------------------------------------------------------------- |
1886 | // initialize lip sync morph pointers | ||
1887 | //------------------------------------------------------------------------- | ||
1888 | mOohMorph = getVisualParam( "Lipsync_Ooh" ); | ||
1889 | mAahMorph = getVisualParam( "Lipsync_Aah" ); | ||
1890 | |||
1891 | // If we don't have the Ooh morph, use the Kiss morph | ||
1892 | if (!mOohMorph) | ||
1893 | { | ||
1894 | llwarns << "Missing 'Ooh' morph for lipsync, using fallback." << llendl; | ||
1895 | mOohMorph = getVisualParam( "Express_Kiss" ); | ||
1896 | } | ||
1897 | |||
1898 | // If we don't have the Aah morph, use the Open Mouth morph | ||
1899 | if (!mAahMorph) | ||
1900 | { | ||
1901 | llwarns << "Missing 'Aah' morph for lipsync, using fallback." << llendl; | ||
1902 | mAahMorph = getVisualParam( "Express_Open_Mouth" ); | ||
1903 | } | ||
1904 | |||
1905 | //------------------------------------------------------------------------- | ||
1890 | // start default motions | 1906 | // start default motions |
1891 | //------------------------------------------------------------------------- | 1907 | //------------------------------------------------------------------------- |
1892 | startMotion( ANIM_AGENT_HEAD_ROT ); | 1908 | startMotion( ANIM_AGENT_HEAD_ROT ); |
@@ -2449,88 +2465,93 @@ BOOL LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) | |||
2449 | // animate the character | 2465 | // animate the character |
2450 | // store off last frame's root position to be consistent with camera position | 2466 | // store off last frame's root position to be consistent with camera position |
2451 | LLVector3 root_pos_last = mRoot.getWorldPosition(); | 2467 | LLVector3 root_pos_last = mRoot.getWorldPosition(); |
2452 | |||
2453 | BOOL detailed_update = updateCharacter(agent); | 2468 | BOOL detailed_update = updateCharacter(agent); |
2469 | bool voiceEnabled = gVoiceClient->getVoiceEnabled( mID ) && gVoiceClient->inProximalChannel(); | ||
2454 | 2470 | ||
2455 | { | 2471 | // disable voice visualizer when in mouselook |
2456 | //Ventrella | 2472 | mVoiceVisualizer->setVoiceEnabled( voiceEnabled && !(mIsSelf && gAgent.cameraMouselook()) ); |
2457 | bool voiceEnabled = gVoiceClient->getVoiceEnabled( mID ) && gVoiceClient->inProximalChannel(); | 2473 | if ( voiceEnabled ) |
2458 | // disable voice visualizer when in mouselook | 2474 | { |
2459 | mVoiceVisualizer->setVoiceEnabled( voiceEnabled && !(mIsSelf && gAgent.cameraMouselook()) ); | 2475 | //---------------------------------------------------------------- |
2460 | if ( voiceEnabled ) | 2476 | // Only do gesture triggering for your own avatar, and only when you're in a proximal channel. |
2461 | { | 2477 | //---------------------------------------------------------------- |
2462 | //---------------------------------------------------------------- | 2478 | if( mIsSelf ) |
2463 | // Only do gesture triggering for your own avatar, and only when you're in a proximal channel. | 2479 | { |
2464 | //---------------------------------------------------------------- | 2480 | //---------------------------------------------------------------------------------------- |
2465 | if( mIsSelf ) | 2481 | // The following takes the voice signal and uses that to trigger gesticulations. |
2482 | //---------------------------------------------------------------------------------------- | ||
2483 | int lastGesticulationLevel = mCurrentGesticulationLevel; | ||
2484 | mCurrentGesticulationLevel = mVoiceVisualizer->getCurrentGesticulationLevel(); | ||
2485 | |||
2486 | //--------------------------------------------------------------------------------------------------- | ||
2487 | // If "current gesticulation level" changes, we catch this, and trigger the new gesture | ||
2488 | //--------------------------------------------------------------------------------------------------- | ||
2489 | if ( lastGesticulationLevel != mCurrentGesticulationLevel ) | ||
2466 | { | 2490 | { |
2467 | //---------------------------------------------------------------------------------------- | 2491 | if ( mCurrentGesticulationLevel != VOICE_GESTICULATION_LEVEL_OFF ) |
2468 | // The following takes the voice signal and uses that to trigger gesticulations. | ||
2469 | //---------------------------------------------------------------------------------------- | ||
2470 | int lastGesticulationLevel = mCurrentGesticulationLevel; | ||
2471 | mCurrentGesticulationLevel = mVoiceVisualizer->getCurrentGesticulationLevel(); | ||
2472 | |||
2473 | //--------------------------------------------------------------------------------------------------- | ||
2474 | // If "current gesticulation level" changes, we catch this, and trigger the new gesture | ||
2475 | //--------------------------------------------------------------------------------------------------- | ||
2476 | if ( lastGesticulationLevel != mCurrentGesticulationLevel ) | ||
2477 | { | ||
2478 | if ( mCurrentGesticulationLevel != VOICE_GESTICULATION_LEVEL_OFF ) | ||
2479 | { | ||
2480 | LLString gestureString = "unInitialized"; | ||
2481 | if ( mCurrentGesticulationLevel == 0 ) { gestureString = "/voicelevel1"; } | ||
2482 | else if ( mCurrentGesticulationLevel == 1 ) { gestureString = "/voicelevel2"; } | ||
2483 | else if ( mCurrentGesticulationLevel == 2 ) { gestureString = "/voicelevel3"; } | ||
2484 | else { llinfos << "oops - CurrentGesticulationLevel can be only 0, 1, or 2" << llendl; } | ||
2485 | |||
2486 | // this is the call that Karl S. created for triggering gestures from within the code. | ||
2487 | gGestureManager.triggerAndReviseString( gestureString ); | ||
2488 | } | ||
2489 | } | ||
2490 | |||
2491 | } //if( mIsSelf ) | ||
2492 | |||
2493 | //----------------------------------------------------------------------------------------------------------------- | ||
2494 | // If the avatar is speaking, then the voice amplitude signal is passed to the voice visualizer. | ||
2495 | // Also, here we trigger voice visualizer start and stop speaking, so it can animate the voice symbol. | ||
2496 | // | ||
2497 | // Notice the calls to "gAwayTimer.reset()". This resets the timer that determines how long the avatar has been | ||
2498 | // "away", so that the avatar doesn't lapse into away-mode (and slump over) while the user is still talking. | ||
2499 | //----------------------------------------------------------------------------------------------------------------- | ||
2500 | if ( gVoiceClient->getIsSpeaking( mID ) ) | ||
2501 | { | ||
2502 | if ( ! mVoiceVisualizer->getCurrentlySpeaking() ) | ||
2503 | { | 2492 | { |
2504 | mVoiceVisualizer->setStartSpeaking(); | 2493 | LLString gestureString = "unInitialized"; |
2494 | if ( mCurrentGesticulationLevel == 0 ) { gestureString = "/voicelevel1"; } | ||
2495 | else if ( mCurrentGesticulationLevel == 1 ) { gestureString = "/voicelevel2"; } | ||
2496 | else if ( mCurrentGesticulationLevel == 2 ) { gestureString = "/voicelevel3"; } | ||
2497 | else { llinfos << "oops - CurrentGesticulationLevel can be only 0, 1, or 2" << llendl; } | ||
2505 | 2498 | ||
2506 | //printf( "gAwayTimer.reset();\n" ); | 2499 | // this is the call that Karl S. created for triggering gestures from within the code. |
2507 | } | 2500 | gGestureManager.triggerAndReviseString( gestureString ); |
2508 | |||
2509 | mVoiceVisualizer->setSpeakingAmplitude( gVoiceClient->getCurrentPower( mID ) ); | ||
2510 | |||
2511 | if( mIsSelf ) | ||
2512 | { | ||
2513 | gAgent.clearAFK(); | ||
2514 | } | 2501 | } |
2515 | } | 2502 | } |
2516 | else | 2503 | |
2504 | } //if( mIsSelf ) | ||
2505 | |||
2506 | //----------------------------------------------------------------------------------------------------------------- | ||
2507 | // If the avatar is speaking, then the voice amplitude signal is passed to the voice visualizer. | ||
2508 | // Also, here we trigger voice visualizer start and stop speaking, so it can animate the voice symbol. | ||
2509 | // | ||
2510 | // Notice the calls to "gAwayTimer.reset()". This resets the timer that determines how long the avatar has been | ||
2511 | // "away", so that the avatar doesn't lapse into away-mode (and slump over) while the user is still talking. | ||
2512 | //----------------------------------------------------------------------------------------------------------------- | ||
2513 | if ( gVoiceClient->getIsSpeaking( mID ) ) | ||
2514 | { | ||
2515 | if ( ! mVoiceVisualizer->getCurrentlySpeaking() ) | ||
2516 | { | ||
2517 | mVoiceVisualizer->setStartSpeaking(); | ||
2518 | |||
2519 | //printf( "gAwayTimer.reset();\n" ); | ||
2520 | } | ||
2521 | |||
2522 | mVoiceVisualizer->setSpeakingAmplitude( gVoiceClient->getCurrentPower( mID ) ); | ||
2523 | |||
2524 | if( mIsSelf ) | ||
2525 | { | ||
2526 | gAgent.clearAFK(); | ||
2527 | } | ||
2528 | } | ||
2529 | else | ||
2530 | { | ||
2531 | if ( mVoiceVisualizer->getCurrentlySpeaking() ) | ||
2517 | { | 2532 | { |
2518 | if ( mVoiceVisualizer->getCurrentlySpeaking() ) | 2533 | mVoiceVisualizer->setStopSpeaking(); |
2534 | |||
2535 | if ( mLipSyncActive ) | ||
2519 | { | 2536 | { |
2520 | mVoiceVisualizer->setStopSpeaking(); | 2537 | if( mOohMorph ) mOohMorph->setWeight(mOohMorph->getMinWeight(), FALSE); |
2538 | if( mAahMorph ) mAahMorph->setWeight(mAahMorph->getMinWeight(), FALSE); | ||
2539 | |||
2540 | mLipSyncActive = false; | ||
2541 | LLCharacter::updateVisualParams(); | ||
2542 | dirtyMesh(); | ||
2521 | } | 2543 | } |
2522 | } | 2544 | } |
2523 | 2545 | } | |
2524 | //-------------------------------------------------------------------------------------------- | 2546 | |
2525 | // here we get the approximate head position and set as sound source for the voice symbol | 2547 | //-------------------------------------------------------------------------------------------- |
2526 | // (the following version uses a tweak of "mHeadOffset" which handle sitting vs. standing) | 2548 | // here we get the approximate head position and set as sound source for the voice symbol |
2527 | //-------------------------------------------------------------------------------------------- | 2549 | // (the following version uses a tweak of "mHeadOffset" which handle sitting vs. standing) |
2528 | LLVector3 headOffset = LLVector3( 0.0f, 0.0f, mHeadOffset.mV[2] ); | 2550 | //-------------------------------------------------------------------------------------------- |
2529 | mVoiceVisualizer->setVoiceSourceWorldPosition( mRoot.getWorldPosition() + headOffset ); | 2551 | LLVector3 headOffset = LLVector3( 0.0f, 0.0f, mHeadOffset.mV[2] ); |
2530 | 2552 | mVoiceVisualizer->setVoiceSourceWorldPosition( mRoot.getWorldPosition() + headOffset ); | |
2531 | }//if ( voiceEnabled ) | 2553 | |
2532 | } | 2554 | }//if ( voiceEnabled ) |
2533 | //End Ventrella | ||
2534 | 2555 | ||
2535 | if (LLVOAvatar::sJointDebug) | 2556 | if (LLVOAvatar::sJointDebug) |
2536 | { | 2557 | { |
@@ -2704,6 +2725,76 @@ BOOL LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) | |||
2704 | dirtyMesh(); | 2725 | dirtyMesh(); |
2705 | } | 2726 | } |
2706 | 2727 | ||
2728 | // Use the Lipsync_Ooh and Lipsync_Aah morphs for lip sync | ||
2729 | if ( voiceEnabled && (gVoiceClient->lipSyncEnabled()) && gVoiceClient->getIsSpeaking( mID ) ) | ||
2730 | { | ||
2731 | F32 ooh_morph_amount = 0.0f; | ||
2732 | F32 aah_morph_amount = 0.0f; | ||
2733 | |||
2734 | mVoiceVisualizer->lipSyncOohAah( ooh_morph_amount, aah_morph_amount ); | ||
2735 | |||
2736 | if( mOohMorph ) | ||
2737 | { | ||
2738 | F32 ooh_weight = mOohMorph->getMinWeight() | ||
2739 | + ooh_morph_amount * (mOohMorph->getMaxWeight() - mOohMorph->getMinWeight()); | ||
2740 | |||
2741 | mOohMorph->setWeight( ooh_weight, FALSE ); | ||
2742 | } | ||
2743 | |||
2744 | if( mAahMorph ) | ||
2745 | { | ||
2746 | F32 aah_weight = mAahMorph->getMinWeight() | ||
2747 | + aah_morph_amount * (mAahMorph->getMaxWeight() - mAahMorph->getMinWeight()); | ||
2748 | |||
2749 | mAahMorph->setWeight( aah_weight, FALSE ); | ||
2750 | } | ||
2751 | |||
2752 | mLipSyncActive = true; | ||
2753 | LLCharacter::updateVisualParams(); | ||
2754 | dirtyMesh(); | ||
2755 | } | ||
2756 | |||
2757 | // update visibility when avatar is partially loaded | ||
2758 | if (updateIsFullyLoaded()) // changed? | ||
2759 | { | ||
2760 | if (isFullyLoaded()) | ||
2761 | { | ||
2762 | deleteParticleSource(); | ||
2763 | } | ||
2764 | else | ||
2765 | { | ||
2766 | LLPartSysData particle_parameters; | ||
2767 | |||
2768 | // fancy particle cloud designed by Brent | ||
2769 | particle_parameters.mPartData.mMaxAge = 4.f; | ||
2770 | particle_parameters.mPartData.mStartScale.mV[VX] = 0.8f; | ||
2771 | particle_parameters.mPartData.mStartScale.mV[VX] = 0.8f; | ||
2772 | particle_parameters.mPartData.mStartScale.mV[VY] = 1.0f; | ||
2773 | particle_parameters.mPartData.mEndScale.mV[VX] = 0.02f; | ||
2774 | particle_parameters.mPartData.mEndScale.mV[VY] = 0.02f; | ||
2775 | particle_parameters.mPartData.mStartColor = LLColor4(1, 1, 1, 0.5f); | ||
2776 | particle_parameters.mPartData.mEndColor = LLColor4(1, 1, 1, 0.0f); | ||
2777 | particle_parameters.mPartData.mStartScale.mV[VX] = 0.8f; | ||
2778 | LLViewerImage* cloud = gImageList.getImageFromFile("cloud-particle.j2c"); | ||
2779 | particle_parameters.mPartImageID = cloud->getID(); | ||
2780 | particle_parameters.mMaxAge = 0.f; | ||
2781 | particle_parameters.mPattern = LLPartSysData::LL_PART_SRC_PATTERN_ANGLE_CONE; | ||
2782 | particle_parameters.mInnerAngle = 3.14159f; | ||
2783 | particle_parameters.mOuterAngle = 0.f; | ||
2784 | particle_parameters.mBurstRate = 0.02f; | ||
2785 | particle_parameters.mBurstRadius = 0.0f; | ||
2786 | particle_parameters.mBurstPartCount = 1; | ||
2787 | particle_parameters.mBurstSpeedMin = 0.1f; | ||
2788 | particle_parameters.mBurstSpeedMax = 1.f; | ||
2789 | particle_parameters.mPartData.mFlags = ( LLPartData::LL_PART_INTERP_COLOR_MASK | LLPartData::LL_PART_INTERP_SCALE_MASK | | ||
2790 | LLPartData::LL_PART_EMISSIVE_MASK | // LLPartData::LL_PART_FOLLOW_SRC_MASK | | ||
2791 | LLPartData::LL_PART_TARGET_POS_MASK ); | ||
2792 | |||
2793 | setParticleSource(particle_parameters, getID()); | ||
2794 | } | ||
2795 | } | ||
2796 | |||
2797 | |||
2707 | // update wind effect | 2798 | // update wind effect |
2708 | if ((LLShaderMgr::getVertexShaderLevel(LLShaderMgr::SHADER_AVATAR) >= LLDrawPoolAvatar::SHADER_LEVEL_CLOTH)) | 2799 | if ((LLShaderMgr::getVertexShaderLevel(LLShaderMgr::SHADER_AVATAR) >= LLDrawPoolAvatar::SHADER_LEVEL_CLOTH)) |
2709 | { | 2800 | { |
@@ -3883,7 +3974,7 @@ U32 LLVOAvatar::renderSkinned(EAvatarRenderPass pass) | |||
3883 | if (mDirtyMesh || mDrawable->isState(LLDrawable::REBUILD_GEOMETRY)) | 3974 | if (mDirtyMesh || mDrawable->isState(LLDrawable::REBUILD_GEOMETRY)) |
3884 | { //LOD changed or new mesh created, allocate new vertex buffer if needed | 3975 | { //LOD changed or new mesh created, allocate new vertex buffer if needed |
3885 | updateMeshData(); | 3976 | updateMeshData(); |
3886 | mDirtyMesh = FALSE; | 3977 | mDirtyMesh = FALSE; |
3887 | mNeedsSkin = TRUE; | 3978 | mNeedsSkin = TRUE; |
3888 | mDrawable->clearState(LLDrawable::REBUILD_GEOMETRY); | 3979 | mDrawable->clearState(LLDrawable::REBUILD_GEOMETRY); |
3889 | } | 3980 | } |
@@ -3957,7 +4048,10 @@ U32 LLVOAvatar::renderSkinned(EAvatarRenderPass pass) | |||
3957 | } | 4048 | } |
3958 | 4049 | ||
3959 | // render collision normal | 4050 | // render collision normal |
3960 | if (sShowFootPlane && mDrawable.notNull()) | 4051 | // *NOTE: this is disabled (there is no UI for enabling sShowFootPlane) due |
4052 | // to DEV-14477. the code is left here to aid in tracking down the cause | ||
4053 | // of the crash in the future. -brad | ||
4054 | if (!gRenderForSelect && sShowFootPlane && mDrawable.notNull()) | ||
3961 | { | 4055 | { |
3962 | LLVector3 slaved_pos = mDrawable->getPositionAgent(); | 4056 | LLVector3 slaved_pos = mDrawable->getPositionAgent(); |
3963 | LLVector3 foot_plane_normal(mFootPlane.mV[VX], mFootPlane.mV[VY], mFootPlane.mV[VZ]); | 4057 | LLVector3 foot_plane_normal(mFootPlane.mV[VX], mFootPlane.mV[VY], mFootPlane.mV[VZ]); |
@@ -3985,7 +4079,9 @@ U32 LLVOAvatar::renderSkinned(EAvatarRenderPass pass) | |||
3985 | gGL.vertex3f(collide_point.mV[VX], collide_point.mV[VY], collide_point.mV[VZ]); | 4079 | gGL.vertex3f(collide_point.mV[VX], collide_point.mV[VY], collide_point.mV[VZ]); |
3986 | gGL.vertex3f(collide_point.mV[VX] + mFootPlane.mV[VX], collide_point.mV[VY] + mFootPlane.mV[VY], collide_point.mV[VZ] + mFootPlane.mV[VZ]); | 4080 | gGL.vertex3f(collide_point.mV[VX] + mFootPlane.mV[VX], collide_point.mV[VY] + mFootPlane.mV[VY], collide_point.mV[VZ] + mFootPlane.mV[VZ]); |
3987 | 4081 | ||
3988 | }gGL.end(); | 4082 | } |
4083 | gGL.end(); | ||
4084 | gGL.flush(); | ||
3989 | } | 4085 | } |
3990 | //-------------------------------------------------------------------- | 4086 | //-------------------------------------------------------------------- |
3991 | // render all geomety attached to the skeleton | 4087 | // render all geomety attached to the skeleton |
@@ -4027,23 +4123,23 @@ U32 LLVOAvatar::renderTransparent() | |||
4027 | BOOL first_pass = FALSE; | 4123 | BOOL first_pass = FALSE; |
4028 | if( isWearingWearableType( WT_SKIRT ) ) | 4124 | if( isWearingWearableType( WT_SKIRT ) ) |
4029 | { | 4125 | { |
4030 | glAlphaFunc(GL_GREATER,0.25f); | 4126 | gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.25f); |
4031 | num_indices += mSkirtLOD.render(mAdjustedPixelArea, FALSE); | 4127 | num_indices += mSkirtLOD.render(mAdjustedPixelArea, FALSE); |
4032 | first_pass = FALSE; | 4128 | first_pass = FALSE; |
4033 | glAlphaFunc(GL_GREATER,0.01f); | 4129 | gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); |
4034 | } | 4130 | } |
4035 | 4131 | ||
4036 | if (!mIsSelf || gAgent.needsRenderHead()) | 4132 | if (!mIsSelf || gAgent.needsRenderHead()) |
4037 | { | 4133 | { |
4038 | if (LLPipeline::sImpostorRender) | 4134 | if (LLPipeline::sImpostorRender) |
4039 | { | 4135 | { |
4040 | glAlphaFunc(GL_GREATER, 0.5f); | 4136 | gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.5f); |
4041 | } | 4137 | } |
4042 | num_indices += mEyeLashLOD.render(mAdjustedPixelArea, first_pass); | 4138 | num_indices += mEyeLashLOD.render(mAdjustedPixelArea, first_pass); |
4043 | num_indices += mHairLOD.render(mAdjustedPixelArea, FALSE); | 4139 | num_indices += mHairLOD.render(mAdjustedPixelArea, FALSE); |
4044 | if (LLPipeline::sImpostorRender) | 4140 | if (LLPipeline::sImpostorRender) |
4045 | { | 4141 | { |
4046 | glAlphaFunc(GL_GREATER, 0.01f); | 4142 | gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); |
4047 | } | 4143 | } |
4048 | } | 4144 | } |
4049 | 4145 | ||
@@ -4136,7 +4232,7 @@ U32 LLVOAvatar::renderImpostor(LLColor4U color) | |||
4136 | up *= mImpostorDim.mV[1]; | 4232 | up *= mImpostorDim.mV[1]; |
4137 | 4233 | ||
4138 | LLGLEnable test(GL_ALPHA_TEST); | 4234 | LLGLEnable test(GL_ALPHA_TEST); |
4139 | glAlphaFunc(GL_GREATER, 0.f); | 4235 | gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.f); |
4140 | 4236 | ||
4141 | gGL.color4f(1,1,1,1); | 4237 | gGL.color4f(1,1,1,1); |
4142 | gGL.color4ubv(color.mV); | 4238 | gGL.color4ubv(color.mV); |
@@ -6637,6 +6733,89 @@ BOOL LLVOAvatar::isVisible() | |||
6637 | } | 6733 | } |
6638 | 6734 | ||
6639 | 6735 | ||
6736 | // call periodically to keep isFullyLoaded up to date. | ||
6737 | // returns true if the value has changed. | ||
6738 | BOOL LLVOAvatar::updateIsFullyLoaded() | ||
6739 | { | ||
6740 | // a "heuristic" to determine if we have enough avatar data to render | ||
6741 | // (to avoid rendering a "Ruth" - DEV-3168) | ||
6742 | |||
6743 | BOOL loading = FALSE; | ||
6744 | |||
6745 | // do we have a shape? | ||
6746 | if (visualParamWeightsAreDefault()) | ||
6747 | { | ||
6748 | loading = TRUE; | ||
6749 | } | ||
6750 | |||
6751 | // are our texture settings still default? | ||
6752 | if ((getTEImage( TEX_HAIR )->getID() == IMG_DEFAULT)) | ||
6753 | { | ||
6754 | loading = TRUE; | ||
6755 | } | ||
6756 | |||
6757 | // special case to keep nudity off orientation island - | ||
6758 | // this is fragilely dependent on the compositing system, | ||
6759 | // which gets available textures in the following order: | ||
6760 | // | ||
6761 | // 1) use the baked texture | ||
6762 | // 2) use the layerset | ||
6763 | // 3) use the previously baked texture | ||
6764 | // | ||
6765 | // on orientation island case (3) can show naked skin. | ||
6766 | // so we test for that here: | ||
6767 | // | ||
6768 | // if we were previously unloaded, and we don't have enough | ||
6769 | // texture info for our shirt/pants, stay unloaded: | ||
6770 | if (!mPreviousFullyLoaded) | ||
6771 | { | ||
6772 | if ((!isLocalTextureDataAvailable(mLowerBodyLayerSet)) && | ||
6773 | (getTEImage(TEX_LOWER_BAKED)->getID() == IMG_DEFAULT_AVATAR)) | ||
6774 | { | ||
6775 | loading = TRUE; | ||
6776 | } | ||
6777 | |||
6778 | if ((!isLocalTextureDataAvailable(mUpperBodyLayerSet)) && | ||
6779 | (getTEImage(TEX_UPPER_BAKED)->getID() == IMG_DEFAULT_AVATAR)) | ||
6780 | { | ||
6781 | loading = TRUE; | ||
6782 | } | ||
6783 | } | ||
6784 | |||
6785 | |||
6786 | // we wait a little bit before giving the all clear, | ||
6787 | // to let textures settle down | ||
6788 | const F32 PAUSE = 1.f; | ||
6789 | if (loading) | ||
6790 | mFullyLoadedTimer.reset(); | ||
6791 | |||
6792 | mFullyLoaded = (mFullyLoadedTimer.getElapsedTimeF32() > PAUSE); | ||
6793 | |||
6794 | |||
6795 | // did our loading state "change" from last call? | ||
6796 | const S32 UPDATE_RATE = 30; | ||
6797 | BOOL changed = | ||
6798 | ((mFullyLoaded != mPreviousFullyLoaded) || // if the value is different from the previous call | ||
6799 | (!mFullyLoadedInitialized) || // if we've never been called before | ||
6800 | (mFullyLoadedFrameCounter % UPDATE_RATE == 0)); // every now and then issue a change | ||
6801 | |||
6802 | mPreviousFullyLoaded = mFullyLoaded; | ||
6803 | mFullyLoadedInitialized = TRUE; | ||
6804 | mFullyLoadedFrameCounter++; | ||
6805 | |||
6806 | return changed; | ||
6807 | } | ||
6808 | |||
6809 | |||
6810 | BOOL LLVOAvatar::isFullyLoaded() | ||
6811 | { | ||
6812 | if (gSavedSettings.getBOOL("RenderUnloadedAvatar")) | ||
6813 | return TRUE; | ||
6814 | else | ||
6815 | return mFullyLoaded; | ||
6816 | } | ||
6817 | |||
6818 | |||
6640 | //----------------------------------------------------------------------------- | 6819 | //----------------------------------------------------------------------------- |
6641 | // findMotion() | 6820 | // findMotion() |
6642 | //----------------------------------------------------------------------------- | 6821 | //----------------------------------------------------------------------------- |
@@ -8289,12 +8468,12 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys ) | |||
8289 | } | 8468 | } |
8290 | 8469 | ||
8291 | // static | 8470 | // static |
8292 | void LLVOAvatar::getAnimLabels( LLDynamicArray<const char*>* labels ) | 8471 | void LLVOAvatar::getAnimLabels( LLDynamicArray<std::string>* labels ) |
8293 | { | 8472 | { |
8294 | S32 i; | 8473 | S32 i; |
8295 | for( i = 0; i < gUserAnimStatesCount; i++ ) | 8474 | for( i = 0; i < gUserAnimStatesCount; i++ ) |
8296 | { | 8475 | { |
8297 | labels->put( gUserAnimStates[i].mLabel ); | 8476 | labels->put( LLAnimStateLabels::getStateLabel( gUserAnimStates[i].mName ) ); |
8298 | } | 8477 | } |
8299 | 8478 | ||
8300 | // Special case to trigger away (AFK) state | 8479 | // Special case to trigger away (AFK) state |
@@ -8302,13 +8481,13 @@ void LLVOAvatar::getAnimLabels( LLDynamicArray<const char*>* labels ) | |||
8302 | } | 8481 | } |
8303 | 8482 | ||
8304 | // static | 8483 | // static |
8305 | void LLVOAvatar::getAnimNames( LLDynamicArray<const char*>* names ) | 8484 | void LLVOAvatar::getAnimNames( LLDynamicArray<std::string>* names ) |
8306 | { | 8485 | { |
8307 | S32 i; | 8486 | S32 i; |
8308 | 8487 | ||
8309 | for( i = 0; i < gUserAnimStatesCount; i++ ) | 8488 | for( i = 0; i < gUserAnimStatesCount; i++ ) |
8310 | { | 8489 | { |
8311 | names->put( gUserAnimStates[i].mName ); | 8490 | names->put( std::string(gUserAnimStates[i].mName) ); |
8312 | } | 8491 | } |
8313 | 8492 | ||
8314 | // Special case to trigger away (AFK) state | 8493 | // Special case to trigger away (AFK) state |
@@ -9507,7 +9686,7 @@ BOOL LLVOAvatar::updateLOD() | |||
9507 | if (mDirtyMesh || mDrawable->isState(LLDrawable::REBUILD_GEOMETRY)) | 9686 | if (mDirtyMesh || mDrawable->isState(LLDrawable::REBUILD_GEOMETRY)) |
9508 | { //LOD changed or new mesh created, allocate new vertex buffer if needed | 9687 | { //LOD changed or new mesh created, allocate new vertex buffer if needed |
9509 | updateMeshData(); | 9688 | updateMeshData(); |
9510 | mDirtyMesh = FALSE; | 9689 | mDirtyMesh = FALSE; |
9511 | mNeedsSkin = TRUE; | 9690 | mNeedsSkin = TRUE; |
9512 | mDrawable->clearState(LLDrawable::REBUILD_GEOMETRY); | 9691 | mDrawable->clearState(LLDrawable::REBUILD_GEOMETRY); |
9513 | } | 9692 | } |
diff --git a/linden/indra/newview/llvoavatar.h b/linden/indra/newview/llvoavatar.h index bc68cf4..1df8275 100644 --- a/linden/indra/newview/llvoavatar.h +++ b/linden/indra/newview/llvoavatar.h | |||
@@ -413,8 +413,8 @@ public: | |||
413 | //-------------------------------------------------------------------- | 413 | //-------------------------------------------------------------------- |
414 | BOOL allocateCollisionVolumes( U32 num ); | 414 | BOOL allocateCollisionVolumes( U32 num ); |
415 | void resetHUDAttachments(); | 415 | void resetHUDAttachments(); |
416 | static void getAnimLabels( LLDynamicArray<const char*>* labels ); | 416 | static void getAnimLabels( LLDynamicArray<std::string>* labels ); |
417 | static void getAnimNames( LLDynamicArray<const char*>* names ); | 417 | static void getAnimNames( LLDynamicArray<std::string>* names ); |
418 | 418 | ||
419 | static void onCustomizeStart(); | 419 | static void onCustomizeStart(); |
420 | static void onCustomizeEnd(); | 420 | static void onCustomizeEnd(); |
@@ -832,6 +832,17 @@ public: | |||
832 | BOOL mAppearanceAnimating; | 832 | BOOL mAppearanceAnimating; |
833 | 833 | ||
834 | //-------------------------------------------------------------------- | 834 | //-------------------------------------------------------------------- |
835 | // we're morphing for lip sync | ||
836 | //-------------------------------------------------------------------- | ||
837 | bool mLipSyncActive; | ||
838 | |||
839 | //-------------------------------------------------------------------- | ||
840 | // cached pointers morphs for lip sync | ||
841 | //-------------------------------------------------------------------- | ||
842 | LLVisualParam *mOohMorph; | ||
843 | LLVisualParam *mAahMorph; | ||
844 | |||
845 | //-------------------------------------------------------------------- | ||
835 | // static members | 846 | // static members |
836 | //-------------------------------------------------------------------- | 847 | //-------------------------------------------------------------------- |
837 | static S32 sMaxVisible; | 848 | static S32 sMaxVisible; |
@@ -957,7 +968,21 @@ protected: | |||
957 | 968 | ||
958 | static LLVOAvatarSkeletonInfo* sSkeletonInfo; | 969 | static LLVOAvatarSkeletonInfo* sSkeletonInfo; |
959 | static LLVOAvatarInfo* sAvatarInfo; | 970 | static LLVOAvatarInfo* sAvatarInfo; |
971 | |||
960 | 972 | ||
973 | //-------------------------------------------------------------------- | ||
974 | // Handling partially loaded avatars (Ruth) | ||
975 | //-------------------------------------------------------------------- | ||
976 | public: | ||
977 | BOOL isFullyLoaded(); | ||
978 | BOOL updateIsFullyLoaded(); | ||
979 | private: | ||
980 | BOOL mFullyLoaded; | ||
981 | BOOL mPreviousFullyLoaded; | ||
982 | BOOL mFullyLoadedInitialized; | ||
983 | S32 mFullyLoadedFrameCounter; | ||
984 | LLFrameTimer mFullyLoadedTimer; | ||
985 | |||
961 | protected: | 986 | protected: |
962 | 987 | ||
963 | BOOL loadSkeletonNode(); | 988 | BOOL loadSkeletonNode(); |
diff --git a/linden/indra/newview/llvocache.cpp b/linden/indra/newview/llvocache.cpp index 39ee63f..45b7782 100644 --- a/linden/indra/newview/llvocache.cpp +++ b/linden/indra/newview/llvocache.cpp | |||
@@ -63,7 +63,7 @@ LLVOCacheEntry::LLVOCacheEntry() | |||
63 | } | 63 | } |
64 | 64 | ||
65 | 65 | ||
66 | static inline void checkedRead(FILE *fp, void *data, size_t nbytes) | 66 | static inline void checkedRead(LLFILE *fp, void *data, size_t nbytes) |
67 | { | 67 | { |
68 | if (fread(data, 1, nbytes, fp) != nbytes) | 68 | if (fread(data, 1, nbytes, fp) != nbytes) |
69 | { | 69 | { |
@@ -72,7 +72,7 @@ static inline void checkedRead(FILE *fp, void *data, size_t nbytes) | |||
72 | } | 72 | } |
73 | } | 73 | } |
74 | 74 | ||
75 | LLVOCacheEntry::LLVOCacheEntry(FILE *fp) | 75 | LLVOCacheEntry::LLVOCacheEntry(LLFILE *fp) |
76 | { | 76 | { |
77 | S32 size; | 77 | S32 size; |
78 | checkedRead(fp, &mLocalID, sizeof(U32)); | 78 | checkedRead(fp, &mLocalID, sizeof(U32)); |
@@ -153,7 +153,7 @@ void LLVOCacheEntry::dump() const | |||
153 | << llendl; | 153 | << llendl; |
154 | } | 154 | } |
155 | 155 | ||
156 | static inline void checkedWrite(FILE *fp, const void *data, size_t nbytes) | 156 | static inline void checkedWrite(LLFILE *fp, const void *data, size_t nbytes) |
157 | { | 157 | { |
158 | if (fwrite(data, 1, nbytes, fp) != nbytes) | 158 | if (fwrite(data, 1, nbytes, fp) != nbytes) |
159 | { | 159 | { |
@@ -161,7 +161,7 @@ static inline void checkedWrite(FILE *fp, const void *data, size_t nbytes) | |||
161 | } | 161 | } |
162 | } | 162 | } |
163 | 163 | ||
164 | void LLVOCacheEntry::writeToFile(FILE *fp) const | 164 | void LLVOCacheEntry::writeToFile(LLFILE *fp) const |
165 | { | 165 | { |
166 | checkedWrite(fp, &mLocalID, sizeof(U32)); | 166 | checkedWrite(fp, &mLocalID, sizeof(U32)); |
167 | checkedWrite(fp, &mCRC, sizeof(U32)); | 167 | checkedWrite(fp, &mCRC, sizeof(U32)); |
diff --git a/linden/indra/newview/llvocache.h b/linden/indra/newview/llvocache.h index c994d4b..2432f22 100644 --- a/linden/indra/newview/llvocache.h +++ b/linden/indra/newview/llvocache.h | |||
@@ -45,7 +45,7 @@ class LLVOCacheEntry : public LLDLinked<LLVOCacheEntry> | |||
45 | { | 45 | { |
46 | public: | 46 | public: |
47 | LLVOCacheEntry(U32 local_id, U32 crc, LLDataPackerBinaryBuffer &dp); | 47 | LLVOCacheEntry(U32 local_id, U32 crc, LLDataPackerBinaryBuffer &dp); |
48 | LLVOCacheEntry(FILE *fp); | 48 | LLVOCacheEntry(LLFILE *fp); |
49 | LLVOCacheEntry(); | 49 | LLVOCacheEntry(); |
50 | ~LLVOCacheEntry(); | 50 | ~LLVOCacheEntry(); |
51 | 51 | ||
@@ -55,7 +55,7 @@ public: | |||
55 | S32 getCRCChangeCount() const { return mCRCChangeCount; } | 55 | S32 getCRCChangeCount() const { return mCRCChangeCount; } |
56 | 56 | ||
57 | void dump() const; | 57 | void dump() const; |
58 | void writeToFile(FILE *fp) const; | 58 | void writeToFile(LLFILE *fp) const; |
59 | void assignCRC(U32 crc, LLDataPackerBinaryBuffer &dp); | 59 | void assignCRC(U32 crc, LLDataPackerBinaryBuffer &dp); |
60 | LLDataPackerBinaryBuffer *getDP(U32 crc); | 60 | LLDataPackerBinaryBuffer *getDP(U32 crc); |
61 | void recordHit(); | 61 | void recordHit(); |
diff --git a/linden/indra/newview/llvograss.h b/linden/indra/newview/llvograss.h index f5b0c5d..679f5dc 100644 --- a/linden/indra/newview/llvograss.h +++ b/linden/indra/newview/llvograss.h | |||
@@ -56,8 +56,8 @@ public: | |||
56 | U32 block_num, | 56 | U32 block_num, |
57 | const EObjectUpdateType update_type, | 57 | const EObjectUpdateType update_type, |
58 | LLDataPacker *dp); | 58 | LLDataPacker *dp); |
59 | static void import(FILE *file, LLMessageSystem *mesgsys, const LLVector3 &pos); | 59 | static void import(LLFILE *file, LLMessageSystem *mesgsys, const LLVector3 &pos); |
60 | /*virtual*/ void exportFile(FILE *file, const LLVector3 &position); | 60 | /*virtual*/ void exportFile(LLFILE *file, const LLVector3 &position); |
61 | 61 | ||
62 | void updateDrawable(BOOL force_damped); | 62 | void updateDrawable(BOOL force_damped); |
63 | 63 | ||
diff --git a/linden/indra/newview/llvoiceclient.cpp b/linden/indra/newview/llvoiceclient.cpp index 738eeac..7f63aca 100644 --- a/linden/indra/newview/llvoiceclient.cpp +++ b/linden/indra/newview/llvoiceclient.cpp | |||
@@ -268,7 +268,7 @@ LLIOPipe::EStatus LLVivoxProtocolParser::process_impl( | |||
268 | } | 268 | } |
269 | else | 269 | else |
270 | { | 270 | { |
271 | llinfos << "parsing: " << mInput.substr(start, delim - start) << llendl; | 271 | LL_INFOS("Voice") << "parsing: " << mInput.substr(start, delim - start) << LL_ENDL; |
272 | } | 272 | } |
273 | } | 273 | } |
274 | 274 | ||
@@ -287,12 +287,12 @@ LLIOPipe::EStatus LLVivoxProtocolParser::process_impl( | |||
287 | if(start != 0) | 287 | if(start != 0) |
288 | mInput = mInput.substr(start); | 288 | mInput = mInput.substr(start); |
289 | 289 | ||
290 | // llinfos << "at end, mInput is: " << mInput << llendl; | 290 | LL_DEBUGS("Voice") << "at end, mInput is: " << mInput << LL_ENDL; |
291 | 291 | ||
292 | if(!gVoiceClient->mConnected) | 292 | if(!gVoiceClient->mConnected) |
293 | { | 293 | { |
294 | // If voice has been disabled, we just want to close the socket. This does so. | 294 | // If voice has been disabled, we just want to close the socket. This does so. |
295 | llinfos << "returning STATUS_STOP" << llendl; | 295 | LL_INFOS("Voice") << "returning STATUS_STOP" << LL_ENDL; |
296 | return STATUS_STOP; | 296 | return STATUS_STOP; |
297 | } | 297 | } |
298 | 298 | ||
@@ -366,17 +366,17 @@ void LLVivoxProtocolParser::StartTag(const char *tag, const char **attr) | |||
366 | } | 366 | } |
367 | } | 367 | } |
368 | } | 368 | } |
369 | //llinfos << tag << " (" << responseDepth << ")" << llendl; | 369 | LL_DEBUGS("Voice") << tag << " (" << responseDepth << ")" << LL_ENDL; |
370 | } | 370 | } |
371 | else | 371 | else |
372 | { | 372 | { |
373 | if (ignoringTags) | 373 | if (ignoringTags) |
374 | { | 374 | { |
375 | //llinfos << "ignoring tag " << tag << " (depth = " << responseDepth << ")" << llendl; | 375 | LL_DEBUGS("Voice") << "ignoring tag " << tag << " (depth = " << responseDepth << ")" << LL_ENDL; |
376 | } | 376 | } |
377 | else | 377 | else |
378 | { | 378 | { |
379 | //llinfos << tag << " (" << responseDepth << ")" << llendl; | 379 | LL_DEBUGS("Voice") << tag << " (" << responseDepth << ")" << LL_ENDL; |
380 | 380 | ||
381 | // Ignore the InputXml stuff so we don't get confused | 381 | // Ignore the InputXml stuff so we don't get confused |
382 | if (strcmp("InputXml", tag) == 0) | 382 | if (strcmp("InputXml", tag) == 0) |
@@ -385,7 +385,7 @@ void LLVivoxProtocolParser::StartTag(const char *tag, const char **attr) | |||
385 | ignoreDepth = responseDepth; | 385 | ignoreDepth = responseDepth; |
386 | accumulateText = false; | 386 | accumulateText = false; |
387 | 387 | ||
388 | //llinfos << "starting ignore, ignoreDepth is " << ignoreDepth << llendl; | 388 | LL_DEBUGS("Voice") << "starting ignore, ignoreDepth is " << ignoreDepth << LL_ENDL; |
389 | } | 389 | } |
390 | else if (strcmp("CaptureDevices", tag) == 0) | 390 | else if (strcmp("CaptureDevices", tag) == 0) |
391 | { | 391 | { |
@@ -413,18 +413,18 @@ void LLVivoxProtocolParser::EndTag(const char *tag) | |||
413 | { | 413 | { |
414 | if (ignoreDepth == responseDepth) | 414 | if (ignoreDepth == responseDepth) |
415 | { | 415 | { |
416 | //llinfos << "end of ignore" << llendl; | 416 | LL_DEBUGS("Voice") << "end of ignore" << LL_ENDL; |
417 | ignoringTags = false; | 417 | ignoringTags = false; |
418 | } | 418 | } |
419 | else | 419 | else |
420 | { | 420 | { |
421 | //llinfos << "ignoring tag " << tag << " (depth = " << responseDepth << ")" << llendl; | 421 | LL_DEBUGS("Voice") << "ignoring tag " << tag << " (depth = " << responseDepth << ")" << LL_ENDL; |
422 | } | 422 | } |
423 | } | 423 | } |
424 | 424 | ||
425 | if (!ignoringTags) | 425 | if (!ignoringTags) |
426 | { | 426 | { |
427 | //llinfos << "processing tag " << tag << " (depth = " << responseDepth << ")" << llendl; | 427 | LL_DEBUGS("Voice") << "processing tag " << tag << " (depth = " << responseDepth << ")" << LL_ENDL; |
428 | 428 | ||
429 | // Closing a tag. Finalize the text we've accumulated and reset | 429 | // Closing a tag. Finalize the text we've accumulated and reset |
430 | if (strcmp("ReturnCode", tag) == 0) | 430 | if (strcmp("ReturnCode", tag) == 0) |
@@ -531,7 +531,7 @@ void LLVivoxProtocolParser::CharData(const char *buffer, int length) | |||
531 | 531 | ||
532 | void LLVivoxProtocolParser::processResponse(std::string tag) | 532 | void LLVivoxProtocolParser::processResponse(std::string tag) |
533 | { | 533 | { |
534 | //llinfos << tag << llendl; | 534 | LL_DEBUGS("Voice") << tag << LL_ENDL; |
535 | 535 | ||
536 | if (isEvent) | 536 | if (isEvent) |
537 | { | 537 | { |
@@ -700,9 +700,9 @@ private: | |||
700 | 700 | ||
701 | void LLVoiceClientCapResponder::error(U32 status, const std::string& reason) | 701 | void LLVoiceClientCapResponder::error(U32 status, const std::string& reason) |
702 | { | 702 | { |
703 | llwarns << "LLVoiceClientCapResponder::error(" | 703 | LL_WARNS("Voice") << "LLVoiceClientCapResponder::error(" |
704 | << status << ": " << reason << ")" | 704 | << status << ": " << reason << ")" |
705 | << llendl; | 705 | << LL_ENDL; |
706 | } | 706 | } |
707 | 707 | ||
708 | void LLVoiceClientCapResponder::result(const LLSD& content) | 708 | void LLVoiceClientCapResponder::result(const LLSD& content) |
@@ -710,8 +710,8 @@ void LLVoiceClientCapResponder::result(const LLSD& content) | |||
710 | LLSD::map_const_iterator iter; | 710 | LLSD::map_const_iterator iter; |
711 | for(iter = content.beginMap(); iter != content.endMap(); ++iter) | 711 | for(iter = content.beginMap(); iter != content.endMap(); ++iter) |
712 | { | 712 | { |
713 | llinfos << "LLVoiceClientCapResponder::result got " | 713 | LL_DEBUGS("Voice") << "LLVoiceClientCapResponder::result got " |
714 | << iter->first << llendl; | 714 | << iter->first << LL_ENDL; |
715 | } | 715 | } |
716 | 716 | ||
717 | if ( content.has("voice_credentials") ) | 717 | if ( content.has("voice_credentials") ) |
@@ -833,6 +833,7 @@ LLVoiceClient::LLVoiceClient() | |||
833 | setCaptureDevice(captureDevice); | 833 | setCaptureDevice(captureDevice); |
834 | std::string renderDevice = gSavedSettings.getString("VoiceOutputAudioDevice"); | 834 | std::string renderDevice = gSavedSettings.getString("VoiceOutputAudioDevice"); |
835 | setRenderDevice(renderDevice); | 835 | setRenderDevice(renderDevice); |
836 | mLipSyncEnabled = gSavedSettings.getBOOL("LipSyncEnabled"); | ||
836 | 837 | ||
837 | mTuningMode = false; | 838 | mTuningMode = false; |
838 | mTuningEnergy = 0.0f; | 839 | mTuningEnergy = 0.0f; |
@@ -917,7 +918,7 @@ bool LLVoiceClient::writeString(const std::string &str) | |||
917 | apr_size_t size = (apr_size_t)str.size(); | 918 | apr_size_t size = (apr_size_t)str.size(); |
918 | apr_size_t written = size; | 919 | apr_size_t written = size; |
919 | 920 | ||
920 | // llinfos << "sending: " << str << llendl; | 921 | LL_DEBUGS("Voice") << "sending: " << str << LL_ENDL; |
921 | 922 | ||
922 | // MBW -- XXX -- check return code - sockets will fail (broken, etc.) | 923 | // MBW -- XXX -- check return code - sockets will fail (broken, etc.) |
923 | err = apr_socket_send( | 924 | err = apr_socket_send( |
@@ -940,7 +941,7 @@ bool LLVoiceClient::writeString(const std::string &str) | |||
940 | { | 941 | { |
941 | // Assume any socket error means something bad. For now, just close the socket. | 942 | // Assume any socket error means something bad. For now, just close the socket. |
942 | char buf[MAX_STRING]; | 943 | char buf[MAX_STRING]; |
943 | llwarns << "apr error " << err << " ("<< apr_strerror(err, buf, MAX_STRING) << ") sending data to vivox daemon." << llendl; | 944 | LL_WARNS("Voice") << "apr error " << err << " ("<< apr_strerror(err, buf, MAX_STRING) << ") sending data to vivox daemon." << LL_ENDL; |
944 | daemonDied(); | 945 | daemonDied(); |
945 | } | 946 | } |
946 | } | 947 | } |
@@ -964,7 +965,7 @@ void LLVoiceClient::connectorCreate() | |||
964 | 965 | ||
965 | if(savedLogLevel != "-1") | 966 | if(savedLogLevel != "-1") |
966 | { | 967 | { |
967 | llinfos << "creating connector with logging enabled" << llendl; | 968 | LL_DEBUGS("Voice") << "creating connector with logging enabled" << LL_ENDL; |
968 | loglevel = "10"; | 969 | loglevel = "10"; |
969 | logpath = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, ""); | 970 | logpath = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, ""); |
970 | } | 971 | } |
@@ -1013,15 +1014,9 @@ void LLVoiceClient::userAuthorized(const std::string& firstName, const std::stri | |||
1013 | mAccountDisplayName += " "; | 1014 | mAccountDisplayName += " "; |
1014 | mAccountDisplayName += lastName; | 1015 | mAccountDisplayName += lastName; |
1015 | 1016 | ||
1016 | llinfos << "name \"" << mAccountDisplayName << "\" , ID " << agentID << llendl; | 1017 | LL_INFOS("Voice") << "name \"" << mAccountDisplayName << "\" , ID " << agentID << LL_ENDL; |
1017 | 1018 | ||
1018 | std::string gridname = gGridName; | 1019 | sConnectingToAgni = LLViewerLogin::getInstance()->isInProductionGrid(); |
1019 | LLString::toLower(gridname); | ||
1020 | if((gGridChoice == GRID_INFO_AGNI) || | ||
1021 | ((gGridChoice == GRID_INFO_OTHER) && (gridname.find("agni") != std::string::npos))) | ||
1022 | { | ||
1023 | sConnectingToAgni = true; | ||
1024 | } | ||
1025 | 1020 | ||
1026 | // MBW -- XXX -- Enable this when the bhd.vivox.com server gets a real ssl cert. | 1021 | // MBW -- XXX -- Enable this when the bhd.vivox.com server gets a real ssl cert. |
1027 | if(sConnectingToAgni) | 1022 | if(sConnectingToAgni) |
@@ -1064,13 +1059,13 @@ void LLVoiceClient::login( | |||
1064 | if((getState() >= stateLoggingIn) && (getState() < stateLoggedOut)) | 1059 | if((getState() >= stateLoggingIn) && (getState() < stateLoggedOut)) |
1065 | { | 1060 | { |
1066 | // Already logged in. This is an internal error. | 1061 | // Already logged in. This is an internal error. |
1067 | llerrs << "called from wrong state." << llendl; | 1062 | LL_ERRS("Voice") << "Can't login again. Called from wrong state." << LL_ENDL; |
1068 | } | 1063 | } |
1069 | else if ( accountName != mAccountName ) | 1064 | else if ( accountName != mAccountName ) |
1070 | { | 1065 | { |
1071 | //TODO: error? | 1066 | //TODO: error? |
1072 | llinfos << "Wrong account name! " << accountName | 1067 | LL_WARNS("Voice") << "Wrong account name! " << accountName |
1073 | << " instead of " << mAccountName << llendl; | 1068 | << " instead of " << mAccountName << LL_ENDL; |
1074 | } | 1069 | } |
1075 | else | 1070 | else |
1076 | { | 1071 | { |
@@ -1166,7 +1161,7 @@ const char *LLVoiceClientStatusObserver::status2string(LLVoiceClientStatusObserv | |||
1166 | 1161 | ||
1167 | void LLVoiceClient::setState(state inState) | 1162 | void LLVoiceClient::setState(state inState) |
1168 | { | 1163 | { |
1169 | llinfos << "entering state " << state2string(inState) << llendl; | 1164 | LL_DEBUGS("Voice") << "entering state " << state2string(inState) << LL_ENDL; |
1170 | 1165 | ||
1171 | mState = inState; | 1166 | mState = inState; |
1172 | } | 1167 | } |
@@ -1187,7 +1182,7 @@ void LLVoiceClient::stateMachine() | |||
1187 | if(!mConnected) | 1182 | if(!mConnected) |
1188 | { | 1183 | { |
1189 | // if voice was turned off after the daemon was launched but before we could connect to it, we may need to issue a kill. | 1184 | // if voice was turned off after the daemon was launched but before we could connect to it, we may need to issue a kill. |
1190 | llinfos << "Disabling voice before connection to daemon, terminating." << llendl; | 1185 | LL_INFOS("Voice") << "Disabling voice before connection to daemon, terminating." << LL_ENDL; |
1191 | killGateway(); | 1186 | killGateway(); |
1192 | } | 1187 | } |
1193 | 1188 | ||
@@ -1212,7 +1207,7 @@ void LLVoiceClient::stateMachine() | |||
1212 | std::string regionName = region->getName(); | 1207 | std::string regionName = region->getName(); |
1213 | std::string capURI = region->getCapability("ParcelVoiceInfoRequest"); | 1208 | std::string capURI = region->getCapability("ParcelVoiceInfoRequest"); |
1214 | 1209 | ||
1215 | // llinfos << "Region name = \"" << regionName <<"\", " << "parcel local ID = " << parcelLocalID << llendl; | 1210 | LL_DEBUGS("Voice") << "Region name = \"" << regionName <<"\", " << "parcel local ID = " << parcelLocalID << LL_ENDL; |
1216 | 1211 | ||
1217 | // The region name starts out empty and gets filled in later. | 1212 | // The region name starts out empty and gets filled in later. |
1218 | // Also, the cap gets filled in a short time after the region cross, but a little too late for our purposes. | 1213 | // Also, the cap gets filled in a short time after the region cross, but a little too late for our purposes. |
@@ -1276,7 +1271,7 @@ void LLVoiceClient::stateMachine() | |||
1276 | args += " -ll "; | 1271 | args += " -ll "; |
1277 | args += loglevel; | 1272 | args += loglevel; |
1278 | 1273 | ||
1279 | // llinfos << "Args for SLVoice: " << args << llendl; | 1274 | LL_DEBUGS("Voice") << "Args for SLVoice: " << args << LL_ENDL; |
1280 | 1275 | ||
1281 | #if LL_WINDOWS | 1276 | #if LL_WINDOWS |
1282 | PROCESS_INFORMATION pinfo; | 1277 | PROCESS_INFORMATION pinfo; |
@@ -1348,7 +1343,7 @@ void LLVoiceClient::stateMachine() | |||
1348 | } | 1343 | } |
1349 | else | 1344 | else |
1350 | { | 1345 | { |
1351 | llinfos << exe_path << "not found." << llendl | 1346 | LL_INFOS("Voice") << exe_path << "not found." << LL_ENDL |
1352 | } | 1347 | } |
1353 | } | 1348 | } |
1354 | else | 1349 | else |
@@ -1375,7 +1370,7 @@ void LLVoiceClient::stateMachine() | |||
1375 | break; | 1370 | break; |
1376 | 1371 | ||
1377 | case stateDaemonLaunched: | 1372 | case stateDaemonLaunched: |
1378 | // llinfos << "Connecting to vivox daemon" << llendl; | 1373 | LL_DEBUGS("Voice") << "Connecting to vivox daemon" << LL_ENDL; |
1379 | if(mUpdateTimer.hasExpired()) | 1374 | if(mUpdateTimer.hasExpired()) |
1380 | { | 1375 | { |
1381 | mUpdateTimer.setTimerExpirySec(CONNECT_THROTTLE_SECONDS); | 1376 | mUpdateTimer.setTimerExpirySec(CONNECT_THROTTLE_SECONDS); |
@@ -1532,7 +1527,7 @@ void LLVoiceClient::stateMachine() | |||
1532 | 1527 | ||
1533 | if(mTuningMicVolumeDirty) | 1528 | if(mTuningMicVolumeDirty) |
1534 | { | 1529 | { |
1535 | llinfos << "setting tuning mic level to " << mTuningMicVolume << llendl; | 1530 | LL_INFOS("Voice") << "setting tuning mic level to " << mTuningMicVolume << LL_ENDL; |
1536 | stream | 1531 | stream |
1537 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Aux.SetMicLevel.1\">" | 1532 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Aux.SetMicLevel.1\">" |
1538 | << "<Level>" << mTuningMicVolume << "</Level>" | 1533 | << "<Level>" << mTuningMicVolume << "</Level>" |
@@ -1583,12 +1578,12 @@ void LLVoiceClient::stateMachine() | |||
1583 | 1578 | ||
1584 | if(mLoginRetryCount > MAX_LOGIN_RETRIES) | 1579 | if(mLoginRetryCount > MAX_LOGIN_RETRIES) |
1585 | { | 1580 | { |
1586 | llinfos << "too many login retries, giving up." << llendl; | 1581 | LL_WARNS("Voice") << "too many login retries, giving up." << LL_ENDL; |
1587 | setState(stateLoginFailed); | 1582 | setState(stateLoginFailed); |
1588 | } | 1583 | } |
1589 | else | 1584 | else |
1590 | { | 1585 | { |
1591 | llinfos << "will retry login in " << LOGIN_RETRY_SECONDS << " seconds." << llendl; | 1586 | LL_INFOS("Voice") << "will retry login in " << LOGIN_RETRY_SECONDS << " seconds." << LL_ENDL; |
1592 | mUpdateTimer.start(); | 1587 | mUpdateTimer.start(); |
1593 | mUpdateTimer.setTimerExpirySec(LOGIN_RETRY_SECONDS); | 1588 | mUpdateTimer.setTimerExpirySec(LOGIN_RETRY_SECONDS); |
1594 | setState(stateLoginRetryWait); | 1589 | setState(stateLoginRetryWait); |
@@ -1848,7 +1843,7 @@ void LLVoiceClient::stateMachine() | |||
1848 | 1843 | ||
1849 | case stateJoinSessionFailed: | 1844 | case stateJoinSessionFailed: |
1850 | // Transition to error state. Send out any notifications here. | 1845 | // Transition to error state. Send out any notifications here. |
1851 | llwarns << "stateJoinSessionFailed: (" << mVivoxErrorStatusCode << "): " << mVivoxErrorStatusString << llendl; | 1846 | LL_WARNS("Voice") << "stateJoinSessionFailed: (" << mVivoxErrorStatusCode << "): " << mVivoxErrorStatusString << LL_ENDL; |
1852 | notifyStatusObservers(LLVoiceClientStatusObserver::ERROR_UNKNOWN); | 1847 | notifyStatusObservers(LLVoiceClientStatusObserver::ERROR_UNKNOWN); |
1853 | setState(stateJoinSessionFailedWaiting); | 1848 | setState(stateJoinSessionFailedWaiting); |
1854 | break; | 1849 | break; |
@@ -1868,8 +1863,7 @@ void LLVoiceClient::stateMachine() | |||
1868 | 1863 | ||
1869 | case stateMicTuningNoLogin: | 1864 | case stateMicTuningNoLogin: |
1870 | // *TODO: Implement me. | 1865 | // *TODO: Implement me. |
1871 | llwarns << "stateMicTuningNoLogin not handled" | 1866 | LL_WARNS("Voice") << "stateMicTuningNoLogin not handled" << LL_ENDL; |
1872 | << llendl; | ||
1873 | break; | 1867 | break; |
1874 | } | 1868 | } |
1875 | 1869 | ||
@@ -1938,7 +1932,7 @@ void LLVoiceClient::channelGetListSendMessage() | |||
1938 | 1932 | ||
1939 | void LLVoiceClient::sessionCreateSendMessage() | 1933 | void LLVoiceClient::sessionCreateSendMessage() |
1940 | { | 1934 | { |
1941 | llinfos << "requesting join: " << mNextSessionURI << llendl; | 1935 | LL_DEBUGS("Voice") << "requesting join: " << mNextSessionURI << LL_ENDL; |
1942 | 1936 | ||
1943 | mSessionURI = mNextSessionURI; | 1937 | mSessionURI = mNextSessionURI; |
1944 | mNonSpatialChannel = !mNextSessionSpatial; | 1938 | mNonSpatialChannel = !mNextSessionSpatial; |
@@ -1978,7 +1972,7 @@ void LLVoiceClient::sessionCreateSendMessage() | |||
1978 | 1972 | ||
1979 | void LLVoiceClient::sessionConnectSendMessage() | 1973 | void LLVoiceClient::sessionConnectSendMessage() |
1980 | { | 1974 | { |
1981 | llinfos << "connecting to session handle: " << mNextSessionHandle << llendl; | 1975 | LL_DEBUGS("Voice") << "connecting to session handle: " << mNextSessionHandle << LL_ENDL; |
1982 | 1976 | ||
1983 | mSessionHandle = mNextSessionHandle; | 1977 | mSessionHandle = mNextSessionHandle; |
1984 | mSessionURI = mNextP2PSessionURI; | 1978 | mSessionURI = mNextP2PSessionURI; |
@@ -2007,7 +2001,7 @@ void LLVoiceClient::sessionTerminate() | |||
2007 | 2001 | ||
2008 | void LLVoiceClient::sessionTerminateSendMessage() | 2002 | void LLVoiceClient::sessionTerminateSendMessage() |
2009 | { | 2003 | { |
2010 | llinfos << "leaving session: " << mSessionURI << llendl; | 2004 | LL_DEBUGS("Voice") << "leaving session: " << mSessionURI << LL_ENDL; |
2011 | 2005 | ||
2012 | switch(getState()) | 2006 | switch(getState()) |
2013 | { | 2007 | { |
@@ -2026,7 +2020,7 @@ void LLVoiceClient::sessionTerminateSendMessage() | |||
2026 | } | 2020 | } |
2027 | else | 2021 | else |
2028 | { | 2022 | { |
2029 | llwarns << "called with no session handle" << llendl; | 2023 | LL_WARNS("Voice") << "called with no session handle" << LL_ENDL; |
2030 | setState(stateSessionTerminated); | 2024 | setState(stateSessionTerminated); |
2031 | } | 2025 | } |
2032 | break; | 2026 | break; |
@@ -2036,14 +2030,14 @@ void LLVoiceClient::sessionTerminateSendMessage() | |||
2036 | break; | 2030 | break; |
2037 | 2031 | ||
2038 | default: | 2032 | default: |
2039 | llwarns << "called from unknown state" << llendl; | 2033 | LL_WARNS("Voice") << "called from unknown state" << LL_ENDL; |
2040 | break; | 2034 | break; |
2041 | } | 2035 | } |
2042 | } | 2036 | } |
2043 | 2037 | ||
2044 | void LLVoiceClient::sessionTerminateByHandle(std::string &sessionHandle) | 2038 | void LLVoiceClient::sessionTerminateByHandle(std::string &sessionHandle) |
2045 | { | 2039 | { |
2046 | llinfos << "Sending Session.Terminate with handle " << sessionHandle << llendl; | 2040 | LL_DEBUGS("Voice") << "Sending Session.Terminate with handle " << sessionHandle << LL_ENDL; |
2047 | 2041 | ||
2048 | std::ostringstream stream; | 2042 | std::ostringstream stream; |
2049 | stream | 2043 | stream |
@@ -2078,14 +2072,14 @@ void LLVoiceClient::getRenderDevicesSendMessage() | |||
2078 | void LLVoiceClient::clearCaptureDevices() | 2072 | void LLVoiceClient::clearCaptureDevices() |
2079 | { | 2073 | { |
2080 | // MBW -- XXX -- do something here | 2074 | // MBW -- XXX -- do something here |
2081 | llinfos << "called" << llendl; | 2075 | LL_DEBUGS("Voice") << "called" << LL_ENDL; |
2082 | mCaptureDevices.clear(); | 2076 | mCaptureDevices.clear(); |
2083 | } | 2077 | } |
2084 | 2078 | ||
2085 | void LLVoiceClient::addCaptureDevice(const std::string& name) | 2079 | void LLVoiceClient::addCaptureDevice(const std::string& name) |
2086 | { | 2080 | { |
2087 | // MBW -- XXX -- do something here | 2081 | // MBW -- XXX -- do something here |
2088 | llinfos << name << llendl; | 2082 | LL_DEBUGS("Voice") << name << LL_ENDL; |
2089 | 2083 | ||
2090 | mCaptureDevices.push_back(name); | 2084 | mCaptureDevices.push_back(name); |
2091 | } | 2085 | } |
@@ -2118,14 +2112,14 @@ void LLVoiceClient::setCaptureDevice(const std::string& name) | |||
2118 | void LLVoiceClient::clearRenderDevices() | 2112 | void LLVoiceClient::clearRenderDevices() |
2119 | { | 2113 | { |
2120 | // MBW -- XXX -- do something here | 2114 | // MBW -- XXX -- do something here |
2121 | llinfos << "called" << llendl; | 2115 | LL_DEBUGS("Voice") << "called" << LL_ENDL; |
2122 | mRenderDevices.clear(); | 2116 | mRenderDevices.clear(); |
2123 | } | 2117 | } |
2124 | 2118 | ||
2125 | void LLVoiceClient::addRenderDevice(const std::string& name) | 2119 | void LLVoiceClient::addRenderDevice(const std::string& name) |
2126 | { | 2120 | { |
2127 | // MBW -- XXX -- do something here | 2121 | // MBW -- XXX -- do something here |
2128 | llinfos << name << llendl; | 2122 | LL_DEBUGS("Voice") << name << LL_ENDL; |
2129 | mRenderDevices.push_back(name); | 2123 | mRenderDevices.push_back(name); |
2130 | } | 2124 | } |
2131 | 2125 | ||
@@ -2209,7 +2203,7 @@ void LLVoiceClient::tuningRenderStopSendMessage() | |||
2209 | 2203 | ||
2210 | void LLVoiceClient::tuningCaptureStartSendMessage(int duration) | 2204 | void LLVoiceClient::tuningCaptureStartSendMessage(int duration) |
2211 | { | 2205 | { |
2212 | llinfos << "sending CaptureAudioStart" << llendl; | 2206 | LL_DEBUGS("Voice") << "sending CaptureAudioStart" << LL_ENDL; |
2213 | 2207 | ||
2214 | std::ostringstream stream; | 2208 | std::ostringstream stream; |
2215 | stream | 2209 | stream |
@@ -2222,7 +2216,7 @@ void LLVoiceClient::tuningCaptureStartSendMessage(int duration) | |||
2222 | 2216 | ||
2223 | void LLVoiceClient::tuningCaptureStopSendMessage() | 2217 | void LLVoiceClient::tuningCaptureStopSendMessage() |
2224 | { | 2218 | { |
2225 | llinfos << "sending CaptureAudioStop" << llendl; | 2219 | LL_DEBUGS("Voice") << "sending CaptureAudioStop" << LL_ENDL; |
2226 | 2220 | ||
2227 | std::ostringstream stream; | 2221 | std::ostringstream stream; |
2228 | stream | 2222 | stream |
@@ -2295,7 +2289,7 @@ void LLVoiceClient::refreshDeviceLists(bool clearCurrentList) | |||
2295 | void LLVoiceClient::daemonDied() | 2289 | void LLVoiceClient::daemonDied() |
2296 | { | 2290 | { |
2297 | // The daemon died, so the connection is gone. Reset everything and start over. | 2291 | // The daemon died, so the connection is gone. Reset everything and start over. |
2298 | llwarns << "Connection to vivox daemon lost. Resetting state."<< llendl; | 2292 | LL_WARNS("Voice") << "Connection to vivox daemon lost. Resetting state."<< LL_ENDL; |
2299 | 2293 | ||
2300 | closeSocket(); | 2294 | closeSocket(); |
2301 | removeAllParticipants(); | 2295 | removeAllParticipants(); |
@@ -2331,7 +2325,7 @@ void LLVoiceClient::sendPositionalUpdate(void) | |||
2331 | u = mAvatarRot.getUpRow(); | 2325 | u = mAvatarRot.getUpRow(); |
2332 | a = mAvatarRot.getFwdRow(); | 2326 | a = mAvatarRot.getFwdRow(); |
2333 | 2327 | ||
2334 | // llinfos << "Sending speaker position " << mSpeakerPosition << llendl; | 2328 | LL_DEBUGS("Voice") << "Sending speaker position " << mAvatarPosition << LL_ENDL; |
2335 | 2329 | ||
2336 | stream | 2330 | stream |
2337 | << "<Position>" | 2331 | << "<Position>" |
@@ -2394,7 +2388,7 @@ void LLVoiceClient::sendPositionalUpdate(void) | |||
2394 | u = earRot.getUpRow(); | 2388 | u = earRot.getUpRow(); |
2395 | a = earRot.getFwdRow(); | 2389 | a = earRot.getFwdRow(); |
2396 | 2390 | ||
2397 | // llinfos << "Sending listener position " << mListenerPosition << llendl; | 2391 | LL_DEBUGS("Voice") << "Sending listener position " << earPosition << LL_ENDL; |
2398 | 2392 | ||
2399 | stream | 2393 | stream |
2400 | << "<Position>" | 2394 | << "<Position>" |
@@ -2434,7 +2428,7 @@ void LLVoiceClient::sendPositionalUpdate(void) | |||
2434 | // NOTE that the state of "PTT" is the inverse of "local mute". | 2428 | // NOTE that the state of "PTT" is the inverse of "local mute". |
2435 | // (i.e. when PTT is true, we send a mute command with "false", and vice versa) | 2429 | // (i.e. when PTT is true, we send a mute command with "false", and vice versa) |
2436 | 2430 | ||
2437 | // llinfos << "Sending MuteLocalMic command with parameter " << (mPTT?"false":"true") << llendl; | 2431 | LL_DEBUGS("Voice") << "Sending MuteLocalMic command with parameter " << (mPTT?"false":"true") << LL_ENDL; |
2438 | 2432 | ||
2439 | stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Connector.MuteLocalMic.1\">" | 2433 | stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Connector.MuteLocalMic.1\">" |
2440 | << "<ConnectorHandle>" << mConnectorHandle << "</ConnectorHandle>" | 2434 | << "<ConnectorHandle>" << mConnectorHandle << "</ConnectorHandle>" |
@@ -2455,7 +2449,7 @@ void LLVoiceClient::sendPositionalUpdate(void) | |||
2455 | { | 2449 | { |
2456 | int volume = p->mOnMuteList?0:p->mUserVolume; | 2450 | int volume = p->mOnMuteList?0:p->mUserVolume; |
2457 | 2451 | ||
2458 | llinfos << "Setting volume for avatar " << p->mAvatarID << " to " << volume << llendl; | 2452 | LL_INFOS("Voice") << "Setting volume for avatar " << p->mAvatarID << " to " << volume << LL_ENDL; |
2459 | 2453 | ||
2460 | // Send a mute/unumte command for the user (actually "volume for me"). | 2454 | // Send a mute/unumte command for the user (actually "volume for me"). |
2461 | stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.SetParticipantVolumeForMe.1\">" | 2455 | stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.SetParticipantVolumeForMe.1\">" |
@@ -2472,7 +2466,7 @@ void LLVoiceClient::sendPositionalUpdate(void) | |||
2472 | if(mSpeakerMuteDirty) | 2466 | if(mSpeakerMuteDirty) |
2473 | { | 2467 | { |
2474 | const char *muteval = ((mSpeakerVolume == -100)?"true":"false"); | 2468 | const char *muteval = ((mSpeakerVolume == -100)?"true":"false"); |
2475 | llinfos << "Setting speaker mute to " << muteval << llendl; | 2469 | LL_INFOS("Voice") << "Setting speaker mute to " << muteval << LL_ENDL; |
2476 | 2470 | ||
2477 | stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Connector.MuteLocalSpeaker.1\">" | 2471 | stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Connector.MuteLocalSpeaker.1\">" |
2478 | << "<ConnectorHandle>" << mConnectorHandle << "</ConnectorHandle>" | 2472 | << "<ConnectorHandle>" << mConnectorHandle << "</ConnectorHandle>" |
@@ -2482,7 +2476,7 @@ void LLVoiceClient::sendPositionalUpdate(void) | |||
2482 | 2476 | ||
2483 | if(mSpeakerVolumeDirty) | 2477 | if(mSpeakerVolumeDirty) |
2484 | { | 2478 | { |
2485 | llinfos << "Setting speaker volume to " << mSpeakerVolume << llendl; | 2479 | LL_INFOS("Voice") << "Setting speaker volume to " << mSpeakerVolume << LL_ENDL; |
2486 | 2480 | ||
2487 | stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Connector.SetLocalSpeakerVolume.1\">" | 2481 | stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Connector.SetLocalSpeakerVolume.1\">" |
2488 | << "<ConnectorHandle>" << mConnectorHandle << "</ConnectorHandle>" | 2482 | << "<ConnectorHandle>" << mConnectorHandle << "</ConnectorHandle>" |
@@ -2492,7 +2486,7 @@ void LLVoiceClient::sendPositionalUpdate(void) | |||
2492 | 2486 | ||
2493 | if(mMicVolumeDirty) | 2487 | if(mMicVolumeDirty) |
2494 | { | 2488 | { |
2495 | llinfos << "Setting mic volume to " << mMicVolume << llendl; | 2489 | LL_INFOS("Voice") << "Setting mic volume to " << mMicVolume << LL_ENDL; |
2496 | 2490 | ||
2497 | stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Connector.SetLocalMicVolume.1\">" | 2491 | stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Connector.SetLocalMicVolume.1\">" |
2498 | << "<ConnectorHandle>" << mConnectorHandle << "</ConnectorHandle>" | 2492 | << "<ConnectorHandle>" << mConnectorHandle << "</ConnectorHandle>" |
@@ -2529,7 +2523,7 @@ void LLVoiceClient::sendPositionalUpdate(void) | |||
2529 | 2523 | ||
2530 | void LLVoiceClient::buildSetCaptureDevice(std::ostringstream &stream) | 2524 | void LLVoiceClient::buildSetCaptureDevice(std::ostringstream &stream) |
2531 | { | 2525 | { |
2532 | llinfos << "Setting input device = \"" << mCaptureDevice << "\"" << llendl; | 2526 | LL_DEBUGS("Voice") << "Setting input device = \"" << mCaptureDevice << "\"" << LL_ENDL; |
2533 | 2527 | ||
2534 | stream | 2528 | stream |
2535 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Aux.SetCaptureDevice.1\">" | 2529 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Aux.SetCaptureDevice.1\">" |
@@ -2540,7 +2534,7 @@ void LLVoiceClient::buildSetCaptureDevice(std::ostringstream &stream) | |||
2540 | 2534 | ||
2541 | void LLVoiceClient::buildSetRenderDevice(std::ostringstream &stream) | 2535 | void LLVoiceClient::buildSetRenderDevice(std::ostringstream &stream) |
2542 | { | 2536 | { |
2543 | llinfos << "Setting output device = \"" << mRenderDevice << "\"" << llendl; | 2537 | LL_DEBUGS("Voice") << "Setting output device = \"" << mRenderDevice << "\"" << LL_ENDL; |
2544 | 2538 | ||
2545 | stream | 2539 | stream |
2546 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Aux.SetRenderDevice.1\">" | 2540 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Aux.SetRenderDevice.1\">" |
@@ -2556,7 +2550,7 @@ void LLVoiceClient::connectorCreateResponse(int statusCode, std::string &statusS | |||
2556 | { | 2550 | { |
2557 | if(statusCode != 0) | 2551 | if(statusCode != 0) |
2558 | { | 2552 | { |
2559 | llwarns << "Connector.Create response failure: " << statusString << llendl; | 2553 | LL_WARNS("Voice") << "Connector.Create response failure: " << statusString << LL_ENDL; |
2560 | setState(stateConnectorFailed); | 2554 | setState(stateConnectorFailed); |
2561 | } | 2555 | } |
2562 | else | 2556 | else |
@@ -2572,19 +2566,19 @@ void LLVoiceClient::connectorCreateResponse(int statusCode, std::string &statusS | |||
2572 | 2566 | ||
2573 | void LLVoiceClient::loginResponse(int statusCode, std::string &statusString, std::string &accountHandle) | 2567 | void LLVoiceClient::loginResponse(int statusCode, std::string &statusString, std::string &accountHandle) |
2574 | { | 2568 | { |
2575 | llinfos << "Account.Login response (" << statusCode << "): " << statusString << llendl; | 2569 | LL_DEBUGS("Voice") << "Account.Login response (" << statusCode << "): " << statusString << LL_ENDL; |
2576 | 2570 | ||
2577 | // Status code of 20200 means "bad password". We may want to special-case that at some point. | 2571 | // Status code of 20200 means "bad password". We may want to special-case that at some point. |
2578 | 2572 | ||
2579 | if ( statusCode == 401 ) | 2573 | if ( statusCode == 401 ) |
2580 | { | 2574 | { |
2581 | // Login failure which is probably caused by the delay after a user's password being updated. | 2575 | // Login failure which is probably caused by the delay after a user's password being updated. |
2582 | llinfos << "Account.Login response failure (" << statusCode << "): " << statusString << llendl; | 2576 | LL_INFOS("Voice") << "Account.Login response failure (" << statusCode << "): " << statusString << LL_ENDL; |
2583 | setState(stateLoginRetry); | 2577 | setState(stateLoginRetry); |
2584 | } | 2578 | } |
2585 | else if(statusCode != 0) | 2579 | else if(statusCode != 0) |
2586 | { | 2580 | { |
2587 | llwarns << "Account.Login response failure (" << statusCode << "): " << statusString << llendl; | 2581 | LL_WARNS("Voice") << "Account.Login response failure (" << statusCode << "): " << statusString << LL_ENDL; |
2588 | setState(stateLoginFailed); | 2582 | setState(stateLoginFailed); |
2589 | } | 2583 | } |
2590 | else | 2584 | else |
@@ -2603,7 +2597,7 @@ void LLVoiceClient::channelGetListResponse(int statusCode, std::string &statusSt | |||
2603 | { | 2597 | { |
2604 | if(statusCode != 0) | 2598 | if(statusCode != 0) |
2605 | { | 2599 | { |
2606 | llwarns << "Account.ChannelGetList response failure: " << statusString << llendl; | 2600 | LL_WARNS("Voice") << "Account.ChannelGetList response failure: " << statusString << LL_ENDL; |
2607 | switchChannel(); | 2601 | switchChannel(); |
2608 | } | 2602 | } |
2609 | else | 2603 | else |
@@ -2613,12 +2607,12 @@ void LLVoiceClient::channelGetListResponse(int statusCode, std::string &statusSt | |||
2613 | if(uri.empty()) | 2607 | if(uri.empty()) |
2614 | { | 2608 | { |
2615 | // Lookup failed, can't join a channel for this area. | 2609 | // Lookup failed, can't join a channel for this area. |
2616 | llinfos << "failed to map channel name: " << mChannelName << llendl; | 2610 | LL_INFOS("Voice") << "failed to map channel name: " << mChannelName << LL_ENDL; |
2617 | } | 2611 | } |
2618 | else | 2612 | else |
2619 | { | 2613 | { |
2620 | // We have a sip URL for this area. | 2614 | // We have a sip URL for this area. |
2621 | llinfos << "mapped channel " << mChannelName << " to URI "<< uri << llendl; | 2615 | LL_INFOS("Voice") << "mapped channel " << mChannelName << " to URI "<< uri << LL_ENDL; |
2622 | } | 2616 | } |
2623 | 2617 | ||
2624 | // switchChannel with an empty uri string will do the right thing (leave channel and not rejoin) | 2618 | // switchChannel with an empty uri string will do the right thing (leave channel and not rejoin) |
@@ -2630,13 +2624,13 @@ void LLVoiceClient::sessionCreateResponse(int statusCode, std::string &statusStr | |||
2630 | { | 2624 | { |
2631 | if(statusCode != 0) | 2625 | if(statusCode != 0) |
2632 | { | 2626 | { |
2633 | llwarns << "Session.Create response failure (" << statusCode << "): " << statusString << llendl; | 2627 | LL_WARNS("Voice") << "Session.Create response failure (" << statusCode << "): " << statusString << LL_ENDL; |
2634 | // if(statusCode == 1015) | 2628 | // if(statusCode == 1015) |
2635 | // { | 2629 | // { |
2636 | // if(getState() == stateJoiningSession) | 2630 | // if(getState() == stateJoiningSession) |
2637 | // { | 2631 | // { |
2638 | // // this happened during a real join. Going to sessionTerminated should cause a retry in appropriate cases. | 2632 | // // this happened during a real join. Going to sessionTerminated should cause a retry in appropriate cases. |
2639 | // llwarns << "session handle \"" << sessionHandle << "\", mSessionStateEventHandle \"" << mSessionStateEventHandle << "\""<< llendl; | 2633 | // LL_WARNS("Voice") << "session handle \"" << sessionHandle << "\", mSessionStateEventHandle \"" << mSessionStateEventHandle << "\""<< LL_ENDL; |
2640 | // if(!sessionHandle.empty()) | 2634 | // if(!sessionHandle.empty()) |
2641 | // { | 2635 | // { |
2642 | // // This session is bad. Terminate it. | 2636 | // // This session is bad. Terminate it. |
@@ -2658,7 +2652,7 @@ void LLVoiceClient::sessionCreateResponse(int statusCode, std::string &statusStr | |||
2658 | // else | 2652 | // else |
2659 | // { | 2653 | // { |
2660 | // // We didn't think we were in the middle of a join. Don't change state. | 2654 | // // We didn't think we were in the middle of a join. Don't change state. |
2661 | // llwarns << "Not in stateJoiningSession, ignoring" << llendl; | 2655 | // LL_WARNS("Voice") << "Not in stateJoiningSession, ignoring" << LL_ENDL; |
2662 | // } | 2656 | // } |
2663 | // } | 2657 | // } |
2664 | // else | 2658 | // else |
@@ -2670,7 +2664,7 @@ void LLVoiceClient::sessionCreateResponse(int statusCode, std::string &statusStr | |||
2670 | } | 2664 | } |
2671 | else | 2665 | else |
2672 | { | 2666 | { |
2673 | llinfos << "Session.Create response received (success), session handle is " << sessionHandle << llendl; | 2667 | LL_DEBUGS("Voice") << "Session.Create response received (success), session handle is " << sessionHandle << LL_ENDL; |
2674 | if(getState() == stateJoiningSession) | 2668 | if(getState() == stateJoiningSession) |
2675 | { | 2669 | { |
2676 | // This is also grabbed in the SessionStateChangeEvent handler, but it might be useful to have it early... | 2670 | // This is also grabbed in the SessionStateChangeEvent handler, but it might be useful to have it early... |
@@ -2688,10 +2682,10 @@ void LLVoiceClient::sessionConnectResponse(int statusCode, std::string &statusSt | |||
2688 | { | 2682 | { |
2689 | if(statusCode != 0) | 2683 | if(statusCode != 0) |
2690 | { | 2684 | { |
2691 | llwarns << "Session.Connect response failure (" << statusCode << "): " << statusString << llendl; | 2685 | LL_WARNS("Voice") << "Session.Connect response failure (" << statusCode << "): " << statusString << LL_ENDL; |
2692 | // if(statusCode == 1015) | 2686 | // if(statusCode == 1015) |
2693 | // { | 2687 | // { |
2694 | // llwarns << "terminating existing session" << llendl; | 2688 | // LL_WARNS("Voice") << "terminating existing session" << LL_ENDL; |
2695 | // sessionTerminate(); | 2689 | // sessionTerminate(); |
2696 | // } | 2690 | // } |
2697 | // else | 2691 | // else |
@@ -2703,7 +2697,7 @@ void LLVoiceClient::sessionConnectResponse(int statusCode, std::string &statusSt | |||
2703 | } | 2697 | } |
2704 | else | 2698 | else |
2705 | { | 2699 | { |
2706 | llinfos << "Session.Connect response received (success)" << llendl; | 2700 | LL_DEBUGS("Voice") << "Session.Connect response received (success)" << LL_ENDL; |
2707 | } | 2701 | } |
2708 | } | 2702 | } |
2709 | 2703 | ||
@@ -2711,7 +2705,7 @@ void LLVoiceClient::sessionTerminateResponse(int statusCode, std::string &status | |||
2711 | { | 2705 | { |
2712 | if(statusCode != 0) | 2706 | if(statusCode != 0) |
2713 | { | 2707 | { |
2714 | llwarns << "Session.Terminate response failure: (" << statusCode << "): " << statusString << llendl; | 2708 | LL_WARNS("Voice") << "Session.Terminate response failure: (" << statusCode << "): " << statusString << LL_ENDL; |
2715 | if(getState() == stateLeavingSession) | 2709 | if(getState() == stateLeavingSession) |
2716 | { | 2710 | { |
2717 | // This is probably "(404): Server reporting Failure. Not a member of this conference." | 2711 | // This is probably "(404): Server reporting Failure. Not a member of this conference." |
@@ -2726,7 +2720,7 @@ void LLVoiceClient::logoutResponse(int statusCode, std::string &statusString) | |||
2726 | { | 2720 | { |
2727 | if(statusCode != 0) | 2721 | if(statusCode != 0) |
2728 | { | 2722 | { |
2729 | llwarns << "Account.Logout response failure: " << statusString << llendl; | 2723 | LL_WARNS("Voice") << "Account.Logout response failure: " << statusString << LL_ENDL; |
2730 | // MBW -- XXX -- Should this ever fail? do we care if it does? | 2724 | // MBW -- XXX -- Should this ever fail? do we care if it does? |
2731 | } | 2725 | } |
2732 | 2726 | ||
@@ -2740,7 +2734,7 @@ void LLVoiceClient::connectorShutdownResponse(int statusCode, std::string &statu | |||
2740 | { | 2734 | { |
2741 | if(statusCode != 0) | 2735 | if(statusCode != 0) |
2742 | { | 2736 | { |
2743 | llwarns << "Connector.InitiateShutdown response failure: " << statusString << llendl; | 2737 | LL_WARNS("Voice") << "Connector.InitiateShutdown response failure: " << statusString << LL_ENDL; |
2744 | // MBW -- XXX -- Should this ever fail? do we care if it does? | 2738 | // MBW -- XXX -- Should this ever fail? do we care if it does? |
2745 | } | 2739 | } |
2746 | 2740 | ||
@@ -2764,7 +2758,7 @@ void LLVoiceClient::sessionStateChangeEvent( | |||
2764 | switch(state) | 2758 | switch(state) |
2765 | { | 2759 | { |
2766 | case 4: // I see this when joining the session | 2760 | case 4: // I see this when joining the session |
2767 | llinfos << "joined session " << uriString << ", name " << nameString << " handle " << mNextSessionHandle << llendl; | 2761 | LL_INFOS("Voice") << "joined session " << uriString << ", name " << nameString << " handle " << mNextSessionHandle << LL_ENDL; |
2768 | 2762 | ||
2769 | // Session create succeeded, move forward. | 2763 | // Session create succeeded, move forward. |
2770 | mSessionStateEventHandle = sessionHandle; | 2764 | mSessionStateEventHandle = sessionHandle; |
@@ -2777,23 +2771,23 @@ void LLVoiceClient::sessionStateChangeEvent( | |||
2777 | setState(stateSessionJoined); | 2771 | setState(stateSessionJoined); |
2778 | //RN: the uriString being returned by vivox here is actually your account uri, not the channel | 2772 | //RN: the uriString being returned by vivox here is actually your account uri, not the channel |
2779 | // you are attempting to join, so ignore it | 2773 | // you are attempting to join, so ignore it |
2780 | //llinfos << "received URI " << uriString << "(previously " << mSessionURI << ")" << llendl; | 2774 | //LL_DEBUGS("Voice") << "received URI " << uriString << "(previously " << mSessionURI << ")" << LL_ENDL; |
2781 | //mSessionURI = uriString; | 2775 | //mSessionURI = uriString; |
2782 | } | 2776 | } |
2783 | } | 2777 | } |
2784 | else if(sessionHandle == mNextSessionHandle) | 2778 | else if(sessionHandle == mNextSessionHandle) |
2785 | { | 2779 | { |
2786 | // llinfos << "received URI " << uriString << ", name " << nameString << " for next session (handle " << mNextSessionHandle << ")" << llendl; | 2780 | // LL_DEBUGS("Voice") << "received URI " << uriString << ", name " << nameString << " for next session (handle " << mNextSessionHandle << ")" << LL_ENDL; |
2787 | } | 2781 | } |
2788 | else | 2782 | else |
2789 | { | 2783 | { |
2790 | llwarns << "joining unknown session handle " << sessionHandle << ", URI " << uriString << ", name " << nameString << llendl; | 2784 | LL_WARNS("Voice") << "joining unknown session handle " << sessionHandle << ", URI " << uriString << ", name " << nameString << LL_ENDL; |
2791 | // MBW -- XXX -- Should we send a Session.Terminate here? | 2785 | // MBW -- XXX -- Should we send a Session.Terminate here? |
2792 | } | 2786 | } |
2793 | 2787 | ||
2794 | break; | 2788 | break; |
2795 | case 5: // I see this when leaving the session | 2789 | case 5: // I see this when leaving the session |
2796 | llinfos << "left session " << uriString << ", name " << nameString << " handle " << mNextSessionHandle << llendl; | 2790 | LL_INFOS("Voice") << "left session " << uriString << ", name " << nameString << " handle " << mNextSessionHandle << LL_ENDL; |
2797 | 2791 | ||
2798 | // Set the session handle to the empty string. If we get back to stateJoiningSession, we'll want to wait for the new session handle. | 2792 | // Set the session handle to the empty string. If we get back to stateJoiningSession, we'll want to wait for the new session handle. |
2799 | if(sessionHandle == mSessionHandle) | 2793 | if(sessionHandle == mSessionHandle) |
@@ -2821,17 +2815,17 @@ void LLVoiceClient::sessionStateChangeEvent( | |||
2821 | case stateJoinSessionFailed: | 2815 | case stateJoinSessionFailed: |
2822 | case stateJoinSessionFailedWaiting: | 2816 | case stateJoinSessionFailedWaiting: |
2823 | // normal transition | 2817 | // normal transition |
2824 | llinfos << "left session " << sessionHandle << "in state " << state2string(getState()) << llendl; | 2818 | LL_INFOS("Voice") << "left session " << sessionHandle << "in state " << state2string(getState()) << LL_ENDL; |
2825 | setState(stateSessionTerminated); | 2819 | setState(stateSessionTerminated); |
2826 | break; | 2820 | break; |
2827 | 2821 | ||
2828 | case stateSessionTerminated: | 2822 | case stateSessionTerminated: |
2829 | // this will happen sometimes -- there are cases where we send the terminate and then go straight to this state. | 2823 | // this will happen sometimes -- there are cases where we send the terminate and then go straight to this state. |
2830 | llwarns << "left session " << sessionHandle << "in state " << state2string(getState()) << llendl; | 2824 | LL_WARNS("Voice") << "left session " << sessionHandle << "in state " << state2string(getState()) << LL_ENDL; |
2831 | break; | 2825 | break; |
2832 | 2826 | ||
2833 | default: | 2827 | default: |
2834 | llwarns << "unexpected SessionStateChangeEvent (left session) in state " << state2string(getState()) << llendl; | 2828 | LL_WARNS("Voice") << "unexpected SessionStateChangeEvent (left session) in state " << state2string(getState()) << LL_ENDL; |
2835 | setState(stateSessionTerminated); | 2829 | setState(stateSessionTerminated); |
2836 | break; | 2830 | break; |
2837 | } | 2831 | } |
@@ -2842,14 +2836,14 @@ void LLVoiceClient::sessionStateChangeEvent( | |||
2842 | } | 2836 | } |
2843 | else | 2837 | else |
2844 | { | 2838 | { |
2845 | llinfos << "leaving unknown session handle " << sessionHandle << ", URI " << uriString << ", name " << nameString << llendl; | 2839 | LL_INFOS("Voice") << "leaving unknown session handle " << sessionHandle << ", URI " << uriString << ", name " << nameString << LL_ENDL; |
2846 | } | 2840 | } |
2847 | 2841 | ||
2848 | mSessionStateEventHandle.clear(); | 2842 | mSessionStateEventHandle.clear(); |
2849 | mSessionStateEventURI.clear(); | 2843 | mSessionStateEventURI.clear(); |
2850 | break; | 2844 | break; |
2851 | default: | 2845 | default: |
2852 | llwarns << "unknown state: " << state << llendl; | 2846 | LL_WARNS("Voice") << "unknown state: " << state << LL_ENDL; |
2853 | break; | 2847 | break; |
2854 | } | 2848 | } |
2855 | } | 2849 | } |
@@ -2860,7 +2854,7 @@ void LLVoiceClient::loginStateChangeEvent( | |||
2860 | std::string &statusString, | 2854 | std::string &statusString, |
2861 | int state) | 2855 | int state) |
2862 | { | 2856 | { |
2863 | llinfos << "state is " << state << llendl; | 2857 | LL_DEBUGS("Voice") << "state is " << state << LL_ENDL; |
2864 | /* | 2858 | /* |
2865 | According to Mike S., status codes for this event are: | 2859 | According to Mike S., status codes for this event are: |
2866 | login_state_logged_out=0, | 2860 | login_state_logged_out=0, |
@@ -2881,7 +2875,8 @@ void LLVoiceClient::loginStateChangeEvent( | |||
2881 | break; | 2875 | break; |
2882 | 2876 | ||
2883 | default: | 2877 | default: |
2884 | // llwarns << "unknown state: " << state << llendl; | 2878 | //Used to be a commented out warning |
2879 | LL_DEBUGS("Voice") << "unknown state: " << state << LL_ENDL; | ||
2885 | break; | 2880 | break; |
2886 | } | 2881 | } |
2887 | } | 2882 | } |
@@ -2893,13 +2888,13 @@ void LLVoiceClient::sessionNewEvent( | |||
2893 | std::string &nameString, | 2888 | std::string &nameString, |
2894 | std::string &uriString) | 2889 | std::string &uriString) |
2895 | { | 2890 | { |
2896 | // llinfos << "state is " << state << llendl; | 2891 | LL_DEBUGS("Voice") << "state is " << state << LL_ENDL; |
2897 | 2892 | ||
2898 | switch(state) | 2893 | switch(state) |
2899 | { | 2894 | { |
2900 | case 0: | 2895 | case 0: |
2901 | { | 2896 | { |
2902 | llinfos << "session handle = " << eventSessionHandle << ", name = " << nameString << ", uri = " << uriString << llendl; | 2897 | LL_DEBUGS("Voice") << "session handle = " << eventSessionHandle << ", name = " << nameString << ", uri = " << uriString << LL_ENDL; |
2903 | 2898 | ||
2904 | LLUUID caller_id; | 2899 | LLUUID caller_id; |
2905 | if(IDFromName(nameString, caller_id)) | 2900 | if(IDFromName(nameString, caller_id)) |
@@ -2917,13 +2912,13 @@ void LLVoiceClient::sessionNewEvent( | |||
2917 | } | 2912 | } |
2918 | else | 2913 | else |
2919 | { | 2914 | { |
2920 | llwarns << "Could not generate caller id from uri " << uriString << llendl; | 2915 | LL_WARNS("Voice") << "Could not generate caller id from uri " << uriString << LL_ENDL; |
2921 | } | 2916 | } |
2922 | } | 2917 | } |
2923 | break; | 2918 | break; |
2924 | 2919 | ||
2925 | default: | 2920 | default: |
2926 | llwarns << "unknown state: " << state << llendl; | 2921 | LL_WARNS("Voice") << "unknown state: " << state << LL_ENDL; |
2927 | break; | 2922 | break; |
2928 | } | 2923 | } |
2929 | } | 2924 | } |
@@ -2938,7 +2933,7 @@ void LLVoiceClient::participantStateChangeEvent( | |||
2938 | int participantType) | 2933 | int participantType) |
2939 | { | 2934 | { |
2940 | participantState *participant = NULL; | 2935 | participantState *participant = NULL; |
2941 | llinfos << "state is " << state << llendl; | 2936 | LL_DEBUGS("Voice") << "state is " << state << LL_ENDL; |
2942 | 2937 | ||
2943 | switch(state) | 2938 | switch(state) |
2944 | { | 2939 | { |
@@ -2947,8 +2942,8 @@ void LLVoiceClient::participantStateChangeEvent( | |||
2947 | if(participant) | 2942 | if(participant) |
2948 | { | 2943 | { |
2949 | participant->mName = nameString; | 2944 | participant->mName = nameString; |
2950 | llinfos << "added participant \"" << participant->mName | 2945 | LL_DEBUGS("Voice") << "added participant \"" << participant->mName |
2951 | << "\" (" << participant->mAvatarID << ")"<< llendl; | 2946 | << "\" (" << participant->mAvatarID << ")"<< LL_ENDL; |
2952 | } | 2947 | } |
2953 | break; | 2948 | break; |
2954 | case 9: // I see this when a participant leaves | 2949 | case 9: // I see this when a participant leaves |
@@ -2959,7 +2954,7 @@ void LLVoiceClient::participantStateChangeEvent( | |||
2959 | } | 2954 | } |
2960 | break; | 2955 | break; |
2961 | default: | 2956 | default: |
2962 | // llwarns << "unknown state: " << state << llendl; | 2957 | LL_DEBUGS("Voice") << "unknown state: " << state << LL_ENDL; |
2963 | break; | 2958 | break; |
2964 | } | 2959 | } |
2965 | } | 2960 | } |
@@ -2989,13 +2984,13 @@ void LLVoiceClient::participantPropertiesEvent( | |||
2989 | } | 2984 | } |
2990 | else | 2985 | else |
2991 | { | 2986 | { |
2992 | llwarns << "unknown participant: " << uriString << llendl; | 2987 | LL_WARNS("Voice") << "unknown participant: " << uriString << LL_ENDL; |
2993 | } | 2988 | } |
2994 | } | 2989 | } |
2995 | 2990 | ||
2996 | void LLVoiceClient::auxAudioPropertiesEvent(F32 energy) | 2991 | void LLVoiceClient::auxAudioPropertiesEvent(F32 energy) |
2997 | { | 2992 | { |
2998 | // llinfos << "got energy " << energy << llendl; | 2993 | LL_DEBUGS("Voice") << "got energy " << energy << LL_ENDL; |
2999 | mTuningEnergy = energy; | 2994 | mTuningEnergy = energy; |
3000 | } | 2995 | } |
3001 | 2996 | ||
@@ -3053,7 +3048,7 @@ LLVoiceClient::participantState *LLVoiceClient::addParticipant(const std::string | |||
3053 | } | 3048 | } |
3054 | } | 3049 | } |
3055 | 3050 | ||
3056 | llinfos << "participant \"" << result->mURI << "\" added." << llendl; | 3051 | LL_DEBUGS("Voice") << "participant \"" << result->mURI << "\" added." << LL_ENDL; |
3057 | } | 3052 | } |
3058 | 3053 | ||
3059 | return result; | 3054 | return result; |
@@ -3079,7 +3074,7 @@ void LLVoiceClient::removeParticipant(LLVoiceClient::participantState *participa | |||
3079 | { | 3074 | { |
3080 | participantMap::iterator iter = mParticipantMap.find(participant->mURI); | 3075 | participantMap::iterator iter = mParticipantMap.find(participant->mURI); |
3081 | 3076 | ||
3082 | llinfos << "participant \"" << participant->mURI << "\" (" << participant->mAvatarID << ") removed." << llendl; | 3077 | LL_DEBUGS("Voice") << "participant \"" << participant->mURI << "\" (" << participant->mAvatarID << ") removed." << LL_ENDL; |
3083 | 3078 | ||
3084 | mParticipantMap.erase(iter); | 3079 | mParticipantMap.erase(iter); |
3085 | delete participant; | 3080 | delete participant; |
@@ -3089,7 +3084,7 @@ void LLVoiceClient::removeParticipant(LLVoiceClient::participantState *participa | |||
3089 | 3084 | ||
3090 | void LLVoiceClient::removeAllParticipants() | 3085 | void LLVoiceClient::removeAllParticipants() |
3091 | { | 3086 | { |
3092 | llinfos << "called" << llendl; | 3087 | LL_DEBUGS("Voice") << "called" << LL_ENDL; |
3093 | 3088 | ||
3094 | while(!mParticipantMap.empty()) | 3089 | while(!mParticipantMap.empty()) |
3095 | { | 3090 | { |
@@ -3172,7 +3167,7 @@ void LLVoiceClient::clearChannelMap(void) | |||
3172 | 3167 | ||
3173 | void LLVoiceClient::addChannelMapEntry(std::string &name, std::string &uri) | 3168 | void LLVoiceClient::addChannelMapEntry(std::string &name, std::string &uri) |
3174 | { | 3169 | { |
3175 | // llinfos << "Adding channel name mapping: " << name << " -> " << uri << llendl; | 3170 | LL_DEBUGS("Voice") << "Adding channel name mapping: " << name << " -> " << uri << LL_ENDL; |
3176 | mChannelMap.insert(channelMap::value_type(name, uri)); | 3171 | mChannelMap.insert(channelMap::value_type(name, uri)); |
3177 | } | 3172 | } |
3178 | 3173 | ||
@@ -3195,7 +3190,7 @@ void LLVoiceClient::parcelChanged() | |||
3195 | if(getState() >= stateLoggedIn) | 3190 | if(getState() >= stateLoggedIn) |
3196 | { | 3191 | { |
3197 | // If the user is logged in, start a channel lookup. | 3192 | // If the user is logged in, start a channel lookup. |
3198 | llinfos << "sending ParcelVoiceInfoRequest (" << mCurrentRegionName << ", " << mCurrentParcelLocalID << ")" << llendl; | 3193 | LL_DEBUGS("Voice") << "sending ParcelVoiceInfoRequest (" << mCurrentRegionName << ", " << mCurrentParcelLocalID << ")" << LL_ENDL; |
3199 | 3194 | ||
3200 | std::string url = gAgent.getRegion()->getCapability("ParcelVoiceInfoRequest"); | 3195 | std::string url = gAgent.getRegion()->getCapability("ParcelVoiceInfoRequest"); |
3201 | LLSD data; | 3196 | LLSD data; |
@@ -3207,7 +3202,7 @@ void LLVoiceClient::parcelChanged() | |||
3207 | else | 3202 | else |
3208 | { | 3203 | { |
3209 | // The transition to stateLoggedIn needs to kick this off again. | 3204 | // The transition to stateLoggedIn needs to kick this off again. |
3210 | llinfos << "not logged in yet, deferring" << llendl; | 3205 | LL_INFOS("Voice") << "not logged in yet, deferring" << LL_ENDL; |
3211 | } | 3206 | } |
3212 | } | 3207 | } |
3213 | 3208 | ||
@@ -3219,7 +3214,7 @@ void LLVoiceClient::switchChannel( | |||
3219 | { | 3214 | { |
3220 | bool needsSwitch = false; | 3215 | bool needsSwitch = false; |
3221 | 3216 | ||
3222 | llinfos << "called in state " << state2string(getState()) << " with uri \"" << uri << "\"" << llendl; | 3217 | LL_DEBUGS("Voice") << "called in state " << state2string(getState()) << " with uri \"" << uri << "\"" << LL_ENDL; |
3223 | 3218 | ||
3224 | switch(getState()) | 3219 | switch(getState()) |
3225 | { | 3220 | { |
@@ -3258,12 +3253,12 @@ void LLVoiceClient::switchChannel( | |||
3258 | if(uri.empty()) | 3253 | if(uri.empty()) |
3259 | { | 3254 | { |
3260 | // Leave any channel we may be in | 3255 | // Leave any channel we may be in |
3261 | llinfos << "leaving channel" << llendl; | 3256 | LL_DEBUGS("Voice") << "leaving channel" << LL_ENDL; |
3262 | notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_VOICE_DISABLED); | 3257 | notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_VOICE_DISABLED); |
3263 | } | 3258 | } |
3264 | else | 3259 | else |
3265 | { | 3260 | { |
3266 | llinfos << "switching to channel " << uri << llendl; | 3261 | LL_DEBUGS("Voice") << "switching to channel " << uri << LL_ENDL; |
3267 | } | 3262 | } |
3268 | 3263 | ||
3269 | if(getState() <= stateNoChannel) | 3264 | if(getState() <= stateNoChannel) |
@@ -3312,12 +3307,12 @@ void LLVoiceClient::setSpatialChannel( | |||
3312 | mSpatialSessionURI = uri; | 3307 | mSpatialSessionURI = uri; |
3313 | mAreaVoiceDisabled = mSpatialSessionURI.empty(); | 3308 | mAreaVoiceDisabled = mSpatialSessionURI.empty(); |
3314 | 3309 | ||
3315 | llinfos << "got spatial channel uri: \"" << uri << "\"" << llendl; | 3310 | LL_DEBUGS("Voice") << "got spatial channel uri: \"" << uri << "\"" << LL_ENDL; |
3316 | 3311 | ||
3317 | if(mNonSpatialChannel || !mNextSessionSpatial) | 3312 | if(mNonSpatialChannel || !mNextSessionSpatial) |
3318 | { | 3313 | { |
3319 | // User is in a non-spatial chat or joining a non-spatial chat. Don't switch channels. | 3314 | // User is in a non-spatial chat or joining a non-spatial chat. Don't switch channels. |
3320 | llinfos << "in non-spatial chat, not switching channels" << llendl; | 3315 | LL_INFOS("Voice") << "in non-spatial chat, not switching channels" << LL_ENDL; |
3321 | } | 3316 | } |
3322 | else | 3317 | else |
3323 | { | 3318 | { |
@@ -3559,7 +3554,7 @@ void LLVoiceClient::leaveChannel(void) | |||
3559 | { | 3554 | { |
3560 | if(getState() == stateRunning) | 3555 | if(getState() == stateRunning) |
3561 | { | 3556 | { |
3562 | // llinfos << "leaving channel for teleport/logout" << llendl; | 3557 | LL_DEBUGS("Voice") << "leaving channel for teleport/logout" << LL_ENDL; |
3563 | mChannelName.clear(); | 3558 | mChannelName.clear(); |
3564 | sessionTerminate(); | 3559 | sessionTerminate(); |
3565 | } | 3560 | } |
@@ -3607,6 +3602,24 @@ bool LLVoiceClient::voiceEnabled() | |||
3607 | return gSavedSettings.getBOOL("EnableVoiceChat") && !gSavedSettings.getBOOL("CmdLineDisableVoice"); | 3602 | return gSavedSettings.getBOOL("EnableVoiceChat") && !gSavedSettings.getBOOL("CmdLineDisableVoice"); |
3608 | } | 3603 | } |
3609 | 3604 | ||
3605 | void LLVoiceClient::setLipSyncEnabled(BOOL enabled) | ||
3606 | { | ||
3607 | mLipSyncEnabled = enabled; | ||
3608 | } | ||
3609 | |||
3610 | BOOL LLVoiceClient::lipSyncEnabled() | ||
3611 | { | ||
3612 | |||
3613 | if ( mVoiceEnabled && stateDisabled != getState() ) | ||
3614 | { | ||
3615 | return mLipSyncEnabled; | ||
3616 | } | ||
3617 | else | ||
3618 | { | ||
3619 | return FALSE; | ||
3620 | } | ||
3621 | } | ||
3622 | |||
3610 | void LLVoiceClient::setUsePTT(bool usePTT) | 3623 | void LLVoiceClient::setUsePTT(bool usePTT) |
3611 | { | 3624 | { |
3612 | if(usePTT && !mUsePTT) | 3625 | if(usePTT && !mUsePTT) |
@@ -3650,7 +3663,7 @@ void LLVoiceClient::setEarLocation(S32 loc) | |||
3650 | { | 3663 | { |
3651 | if(mEarLocation != loc) | 3664 | if(mEarLocation != loc) |
3652 | { | 3665 | { |
3653 | llinfos << "Setting mEarLocation to " << loc << llendl; | 3666 | LL_DEBUGS("Voice") << "Setting mEarLocation to " << loc << LL_ENDL; |
3654 | 3667 | ||
3655 | mEarLocation = loc; | 3668 | mEarLocation = loc; |
3656 | mSpatialCoordsDirty = true; | 3669 | mSpatialCoordsDirty = true; |
@@ -3659,7 +3672,7 @@ void LLVoiceClient::setEarLocation(S32 loc) | |||
3659 | 3672 | ||
3660 | void LLVoiceClient::setVoiceVolume(F32 volume) | 3673 | void LLVoiceClient::setVoiceVolume(F32 volume) |
3661 | { | 3674 | { |
3662 | // llinfos << "volume is " << volume << llendl; | 3675 | LL_DEBUGS("Voice") << "volume is " << volume << LL_ENDL; |
3663 | 3676 | ||
3664 | // incoming volume has the range [0.0 ... 1.0], with 0.5 as the default. | 3677 | // incoming volume has the range [0.0 ... 1.0], with 0.5 as the default. |
3665 | // Map it as follows: 0.0 -> -100, 0.5 -> 24, 1.0 -> 50 | 3678 | // Map it as follows: 0.0 -> -100, 0.5 -> 24, 1.0 -> 50 |
@@ -3708,7 +3721,7 @@ void LLVoiceClient::setVivoxDebugServerName(std::string &serverName) | |||
3708 | 3721 | ||
3709 | void LLVoiceClient::keyDown(KEY key, MASK mask) | 3722 | void LLVoiceClient::keyDown(KEY key, MASK mask) |
3710 | { | 3723 | { |
3711 | // llinfos << "key is " << LLKeyboard::stringFromKey(key) << llendl; | 3724 | LL_DEBUGS("Voice") << "key is " << LLKeyboard::stringFromKey(key) << LL_ENDL; |
3712 | 3725 | ||
3713 | if (gKeyboard->getKeyRepeated(key)) | 3726 | if (gKeyboard->getKeyRepeated(key)) |
3714 | { | 3727 | { |
@@ -4002,7 +4015,7 @@ void LLVoiceClient::notifyStatusObservers(LLVoiceClientStatusObserver::EStatusTy | |||
4002 | mVivoxErrorStatusCode = 0; | 4015 | mVivoxErrorStatusCode = 0; |
4003 | } | 4016 | } |
4004 | 4017 | ||
4005 | llinfos << " " << LLVoiceClientStatusObserver::status2string(status) << ", session URI " << mSessionURI << llendl; | 4018 | LL_DEBUGS("Voice") << " " << LLVoiceClientStatusObserver::status2string(status) << ", session URI " << mSessionURI << LL_ENDL; |
4006 | 4019 | ||
4007 | for (status_observer_set_t::iterator it = mStatusObservers.begin(); | 4020 | for (status_observer_set_t::iterator it = mStatusObservers.begin(); |
4008 | it != mStatusObservers.end(); | 4021 | it != mStatusObservers.end(); |
diff --git a/linden/indra/newview/llvoiceclient.h b/linden/indra/newview/llvoiceclient.h index d12bfa8..d1609a8 100644 --- a/linden/indra/newview/llvoiceclient.h +++ b/linden/indra/newview/llvoiceclient.h | |||
@@ -210,6 +210,8 @@ class LLVoiceClient: public LLSingleton<LLVoiceClient> | |||
210 | void setMicGain(F32 volume); | 210 | void setMicGain(F32 volume); |
211 | void setUserVolume(const LLUUID& id, F32 volume); // set's volume for specified agent, from 0-1 (where .5 is nominal) | 211 | void setUserVolume(const LLUUID& id, F32 volume); // set's volume for specified agent, from 0-1 (where .5 is nominal) |
212 | void setVivoxDebugServerName(std::string &serverName); | 212 | void setVivoxDebugServerName(std::string &serverName); |
213 | void setLipSyncEnabled(BOOL enabled); | ||
214 | BOOL lipSyncEnabled(); | ||
213 | 215 | ||
214 | // PTT key triggering | 216 | // PTT key triggering |
215 | void keyDown(KEY key, MASK mask); | 217 | void keyDown(KEY key, MASK mask); |
@@ -516,6 +518,8 @@ class LLVoiceClient: public LLSingleton<LLVoiceClient> | |||
516 | 518 | ||
517 | LLTimer mUpdateTimer; | 519 | LLTimer mUpdateTimer; |
518 | 520 | ||
521 | BOOL mLipSyncEnabled; | ||
522 | |||
519 | typedef std::set<LLVoiceClientParticipantObserver*> observer_set_t; | 523 | typedef std::set<LLVoiceClientParticipantObserver*> observer_set_t; |
520 | observer_set_t mObservers; | 524 | observer_set_t mObservers; |
521 | 525 | ||
diff --git a/linden/indra/newview/llvoicevisualizer.cpp b/linden/indra/newview/llvoicevisualizer.cpp index 6b2a3e6..ba16feb 100644 --- a/linden/indra/newview/llvoicevisualizer.cpp +++ b/linden/indra/newview/llvoicevisualizer.cpp | |||
@@ -45,7 +45,7 @@ | |||
45 | #include "llviewerimage.h" | 45 | #include "llviewerimage.h" |
46 | #include "llviewerimagelist.h" | 46 | #include "llviewerimagelist.h" |
47 | #include "llvoiceclient.h" | 47 | #include "llvoiceclient.h" |
48 | #include "llglimmediate.h" | 48 | #include "llrender.h" |
49 | 49 | ||
50 | //brent's wave image | 50 | //brent's wave image |
51 | //29de489d-0491-fb00-7dab-f9e686d31e83 | 51 | //29de489d-0491-fb00-7dab-f9e686d31e83 |
@@ -79,6 +79,35 @@ const F32 DEFAULT_MAXIMUM_GESTICULATION_AMPLITUDE = 1.0f; | |||
79 | const F32 ONE_HALF = 1.0f; // to clarify intent and reduce magic numbers in the code. | 79 | const F32 ONE_HALF = 1.0f; // to clarify intent and reduce magic numbers in the code. |
80 | const LLVector3 WORLD_UPWARD_DIRECTION = LLVector3( 0.0f, 0.0f, 1.0f ); // Z is up in SL | 80 | const LLVector3 WORLD_UPWARD_DIRECTION = LLVector3( 0.0f, 0.0f, 1.0f ); // Z is up in SL |
81 | 81 | ||
82 | |||
83 | //------------------------------------------------------------------ | ||
84 | // handles parameter updates | ||
85 | //------------------------------------------------------------------ | ||
86 | static bool handleVoiceVisualizerPrefsChanged(const LLSD& newvalue) | ||
87 | { | ||
88 | // Note: Ignore the specific event value, we look up the ones we want | ||
89 | LLVoiceVisualizer::setPreferences(); | ||
90 | return true; | ||
91 | } | ||
92 | |||
93 | //------------------------------------------------------------------ | ||
94 | // Initialize the statics | ||
95 | //------------------------------------------------------------------ | ||
96 | bool LLVoiceVisualizer::sPrefsInitialized = false; | ||
97 | BOOL LLVoiceVisualizer::sLipSyncEnabled = FALSE; | ||
98 | F32* LLVoiceVisualizer::sOoh = NULL; | ||
99 | F32* LLVoiceVisualizer::sAah = NULL; | ||
100 | U32 LLVoiceVisualizer::sOohs = 0; | ||
101 | U32 LLVoiceVisualizer::sAahs = 0; | ||
102 | F32 LLVoiceVisualizer::sOohAahRate = 0.0f; | ||
103 | F32* LLVoiceVisualizer::sOohPowerTransfer = NULL; | ||
104 | U32 LLVoiceVisualizer::sOohPowerTransfers = 0; | ||
105 | F32 LLVoiceVisualizer::sOohPowerTransfersf = 0.0f; | ||
106 | F32* LLVoiceVisualizer::sAahPowerTransfer = NULL; | ||
107 | U32 LLVoiceVisualizer::sAahPowerTransfers = 0; | ||
108 | F32 LLVoiceVisualizer::sAahPowerTransfersf = 0.0f; | ||
109 | |||
110 | |||
82 | //----------------------------------------------- | 111 | //----------------------------------------------- |
83 | // constructor | 112 | // constructor |
84 | //----------------------------------------------- | 113 | //----------------------------------------------- |
@@ -87,6 +116,7 @@ LLVoiceVisualizer::LLVoiceVisualizer( const U8 type ) | |||
87 | { | 116 | { |
88 | mCurrentTime = mTimer.getTotalSeconds(); | 117 | mCurrentTime = mTimer.getTotalSeconds(); |
89 | mPreviousTime = mCurrentTime; | 118 | mPreviousTime = mCurrentTime; |
119 | mStartTime = mCurrentTime; | ||
90 | mVoiceSourceWorldPosition = LLVector3( 0.0f, 0.0f, 0.0f ); | 120 | mVoiceSourceWorldPosition = LLVector3( 0.0f, 0.0f, 0.0f ); |
91 | mSpeakingAmplitude = 0.0f; | 121 | mSpeakingAmplitude = 0.0f; |
92 | mCurrentlySpeaking = false; | 122 | mCurrentlySpeaking = false; |
@@ -105,7 +135,7 @@ LLVoiceVisualizer::LLVoiceVisualizer( const U8 type ) | |||
105 | "29de489d-0491-fb00-7dab-f9e686d31e83.j2c", | 135 | "29de489d-0491-fb00-7dab-f9e686d31e83.j2c", |
106 | "29de489d-0491-fb00-7dab-f9e686d31e83.j2c", | 136 | "29de489d-0491-fb00-7dab-f9e686d31e83.j2c", |
107 | "29de489d-0491-fb00-7dab-f9e686d31e83.j2c", | 137 | "29de489d-0491-fb00-7dab-f9e686d31e83.j2c", |
108 | "29de489d-0491-fb00-7dab-f9e686d31e83.j2c", | 138 | "29de489d-0491-fb00-7dab-f9e686d31e83.j2c", |
109 | "29de489d-0491-fb00-7dab-f9e686d31e83.j2c" | 139 | "29de489d-0491-fb00-7dab-f9e686d31e83.j2c" |
110 | }; | 140 | }; |
111 | 141 | ||
@@ -117,7 +147,23 @@ LLVoiceVisualizer::LLVoiceVisualizer( const U8 type ) | |||
117 | mSoundSymbol.mWaveOpacity [i] = 1.0f; | 147 | mSoundSymbol.mWaveOpacity [i] = 1.0f; |
118 | mSoundSymbol.mWaveExpansion [i] = 1.0f; | 148 | mSoundSymbol.mWaveExpansion [i] = 1.0f; |
119 | } | 149 | } |
120 | 150 | ||
151 | // The first instance loads the initial state from prefs. | ||
152 | if (!sPrefsInitialized) | ||
153 | { | ||
154 | setPreferences(); | ||
155 | |||
156 | // Set up our listener to get updates on all prefs values we care about. | ||
157 | gSavedSettings.getControl("LipSyncEnabled")->getSignal()->connect(boost::bind(&handleVoiceVisualizerPrefsChanged, _1)); | ||
158 | gSavedSettings.getControl("LipSyncOohAahRate")->getSignal()->connect(boost::bind(&handleVoiceVisualizerPrefsChanged, _1)); | ||
159 | gSavedSettings.getControl("LipSyncOoh")->getSignal()->connect(boost::bind(&handleVoiceVisualizerPrefsChanged, _1)); | ||
160 | gSavedSettings.getControl("LipSyncAah")->getSignal()->connect(boost::bind(&handleVoiceVisualizerPrefsChanged, _1)); | ||
161 | gSavedSettings.getControl("LipSyncOohPowerTransfer")->getSignal()->connect(boost::bind(&handleVoiceVisualizerPrefsChanged, _1)); | ||
162 | gSavedSettings.getControl("LipSyncAahPowerTransfer")->getSignal()->connect(boost::bind(&handleVoiceVisualizerPrefsChanged, _1)); | ||
163 | |||
164 | sPrefsInitialized = true; | ||
165 | } | ||
166 | |||
121 | }//--------------------------------------------------- | 167 | }//--------------------------------------------------- |
122 | 168 | ||
123 | //--------------------------------------------------- | 169 | //--------------------------------------------------- |
@@ -144,6 +190,7 @@ void LLVoiceVisualizer::setVoiceEnabled( bool v ) | |||
144 | //--------------------------------------------------- | 190 | //--------------------------------------------------- |
145 | void LLVoiceVisualizer::setStartSpeaking() | 191 | void LLVoiceVisualizer::setStartSpeaking() |
146 | { | 192 | { |
193 | mStartTime = mTimer.getTotalSeconds(); | ||
147 | mCurrentlySpeaking = true; | 194 | mCurrentlySpeaking = true; |
148 | mSoundSymbol.mActive = true; | 195 | mSoundSymbol.mActive = true; |
149 | 196 | ||
@@ -176,6 +223,130 @@ void LLVoiceVisualizer::setSpeakingAmplitude( F32 a ) | |||
176 | 223 | ||
177 | 224 | ||
178 | //--------------------------------------------------- | 225 | //--------------------------------------------------- |
226 | void LLVoiceVisualizer::setPreferences( ) | ||
227 | { | ||
228 | sLipSyncEnabled = gSavedSettings.getBOOL("LipSyncEnabled"); | ||
229 | sOohAahRate = gSavedSettings.getF32("LipSyncOohAahRate"); | ||
230 | |||
231 | std::string oohString = gSavedSettings.getString("LipSyncOoh"); | ||
232 | lipStringToF32s (oohString, sOoh, sOohs); | ||
233 | |||
234 | std::string aahString = gSavedSettings.getString("LipSyncAah"); | ||
235 | lipStringToF32s (aahString, sAah, sAahs); | ||
236 | |||
237 | std::string oohPowerString = gSavedSettings.getString("LipSyncOohPowerTransfer"); | ||
238 | lipStringToF32s (oohPowerString, sOohPowerTransfer, sOohPowerTransfers); | ||
239 | sOohPowerTransfersf = (F32) sOohPowerTransfers; | ||
240 | |||
241 | std::string aahPowerString = gSavedSettings.getString("LipSyncAahPowerTransfer"); | ||
242 | lipStringToF32s (aahPowerString, sAahPowerTransfer, sAahPowerTransfers); | ||
243 | sAahPowerTransfersf = (F32) sAahPowerTransfers; | ||
244 | |||
245 | }//--------------------------------------------------- | ||
246 | |||
247 | |||
248 | //--------------------------------------------------- | ||
249 | // convert a string of digits to an array of floats. | ||
250 | // the result for each digit is the value of the | ||
251 | // digit multiplied by 0.11 | ||
252 | //--------------------------------------------------- | ||
253 | void LLVoiceVisualizer::lipStringToF32s ( std::string& in_string, F32*& out_F32s, U32& count_F32s ) | ||
254 | { | ||
255 | delete[] out_F32s; // get rid of the current array | ||
256 | |||
257 | count_F32s = in_string.length(); | ||
258 | if (count_F32s == 0) | ||
259 | { | ||
260 | // we don't like zero length arrays | ||
261 | |||
262 | count_F32s = 1; | ||
263 | out_F32s = new F32[1]; | ||
264 | out_F32s[0] = 0.0f; | ||
265 | } | ||
266 | else | ||
267 | { | ||
268 | out_F32s = new F32[count_F32s]; | ||
269 | |||
270 | for (U32 i=0; i<count_F32s; i++) | ||
271 | { | ||
272 | // we convert the characters 0 to 9 to their numeric value | ||
273 | // anything else we take the low order four bits with a ceiling of 9 | ||
274 | |||
275 | U8 digit = in_string[i]; | ||
276 | U8 four_bits = digit % 16; | ||
277 | if (four_bits > 9) | ||
278 | { | ||
279 | four_bits = 9; | ||
280 | } | ||
281 | out_F32s[i] = 0.11f * (F32) four_bits; | ||
282 | } | ||
283 | } | ||
284 | |||
285 | }//--------------------------------------------------- | ||
286 | |||
287 | |||
288 | //-------------------------------------------------------------------------- | ||
289 | // find the amount to blend the ooh and aah mouth morphs | ||
290 | //-------------------------------------------------------------------------- | ||
291 | void LLVoiceVisualizer::lipSyncOohAah( F32& ooh, F32& aah ) | ||
292 | { | ||
293 | if( ( sLipSyncEnabled == TRUE ) && mCurrentlySpeaking ) | ||
294 | { | ||
295 | U32 transfer_index = (U32) (sOohPowerTransfersf * mSpeakingAmplitude); | ||
296 | if (transfer_index < 0) | ||
297 | { | ||
298 | transfer_index = 0; | ||
299 | } | ||
300 | if (transfer_index >= sOohPowerTransfers) | ||
301 | { | ||
302 | transfer_index = sOohPowerTransfers - 1; | ||
303 | } | ||
304 | F32 transfer_ooh = sOohPowerTransfer[transfer_index]; | ||
305 | |||
306 | transfer_index = (U32) (sAahPowerTransfersf * mSpeakingAmplitude); | ||
307 | if (transfer_index < 0) | ||
308 | { | ||
309 | transfer_index = 0; | ||
310 | } | ||
311 | if (transfer_index >= sAahPowerTransfers) | ||
312 | { | ||
313 | transfer_index = sAahPowerTransfers - 1; | ||
314 | } | ||
315 | F32 transfer_aah = sAahPowerTransfer[transfer_index]; | ||
316 | |||
317 | F64 current_time = mTimer.getTotalSeconds(); | ||
318 | F64 elapsed_time = current_time - mStartTime; | ||
319 | U32 elapsed_frames = (U32) (elapsed_time * sOohAahRate); | ||
320 | U32 elapsed_oohs = elapsed_frames % sOohs; | ||
321 | U32 elapsed_aahs = elapsed_frames % sAahs; | ||
322 | |||
323 | ooh = transfer_ooh * sOoh[elapsed_oohs]; | ||
324 | aah = transfer_aah * sAah[elapsed_aahs]; | ||
325 | |||
326 | /* | ||
327 | llinfos << " elapsed frames " << elapsed_frames | ||
328 | << " ooh " << ooh | ||
329 | << " aah " << aah | ||
330 | << " transfer ooh" << transfer_ooh | ||
331 | << " transfer aah" << transfer_aah | ||
332 | << " start time " << mStartTime | ||
333 | << " current time " << current_time | ||
334 | << " elapsed time " << elapsed_time | ||
335 | << " elapsed oohs " << elapsed_oohs | ||
336 | << " elapsed aahs " << elapsed_aahs | ||
337 | << llendl; | ||
338 | */ | ||
339 | } | ||
340 | else | ||
341 | { | ||
342 | ooh = 0.0f; | ||
343 | aah = 0.0f; | ||
344 | } | ||
345 | |||
346 | }//--------------------------------------------------- | ||
347 | |||
348 | |||
349 | //--------------------------------------------------- | ||
179 | // this method is inherited from HUD Effect | 350 | // this method is inherited from HUD Effect |
180 | //--------------------------------------------------- | 351 | //--------------------------------------------------- |
181 | void LLVoiceVisualizer::render() | 352 | void LLVoiceVisualizer::render() |
diff --git a/linden/indra/newview/llvoicevisualizer.h b/linden/indra/newview/llvoicevisualizer.h index 8b1636f..76eb282 100644 --- a/linden/indra/newview/llvoicevisualizer.h +++ b/linden/indra/newview/llvoicevisualizer.h | |||
@@ -90,7 +90,9 @@ class LLVoiceVisualizer : public LLHUDEffect | |||
90 | void setStopSpeaking(); // tell me when the av stops speaking | 90 | void setStopSpeaking(); // tell me when the av stops speaking |
91 | bool getCurrentlySpeaking(); // the get for the above set | 91 | bool getCurrentlySpeaking(); // the get for the above set |
92 | VoiceGesticulationLevel getCurrentGesticulationLevel(); // based on voice amplitude, I'll give you the current "energy level" of avatar speech | 92 | VoiceGesticulationLevel getCurrentGesticulationLevel(); // based on voice amplitude, I'll give you the current "energy level" of avatar speech |
93 | 93 | static void setPreferences( ); | |
94 | static void lipStringToF32s ( std::string& in_string, F32*& out_F32s, U32& count_F32s ); // convert a string of digits to an array of floats | ||
95 | void lipSyncOohAah( F32& ooh, F32& aah ); | ||
94 | void render(); // inherited from HUD Effect | 96 | void render(); // inherited from HUD Effect |
95 | void packData(LLMessageSystem *mesgsys); // inherited from HUD Effect | 97 | void packData(LLMessageSystem *mesgsys); // inherited from HUD Effect |
96 | void unpackData(LLMessageSystem *mesgsys, S32 blocknum); // inherited from HUD Effect | 98 | void unpackData(LLMessageSystem *mesgsys, S32 blocknum); // inherited from HUD Effect |
@@ -124,6 +126,7 @@ class LLVoiceVisualizer : public LLHUDEffect | |||
124 | }; | 126 | }; |
125 | 127 | ||
126 | LLFrameTimer mTimer; // so I can ask the current time in seconds | 128 | LLFrameTimer mTimer; // so I can ask the current time in seconds |
129 | F64 mStartTime; // time in seconds when speaking started | ||
127 | F64 mCurrentTime; // current time in seconds, captured every step | 130 | F64 mCurrentTime; // current time in seconds, captured every step |
128 | F64 mPreviousTime; // copy of "current time" from last frame | 131 | F64 mPreviousTime; // copy of "current time" from last frame |
129 | SoundSymbol mSoundSymbol; // the sound symbol that appears over the avatar's head | 132 | SoundSymbol mSoundSymbol; // the sound symbol that appears over the avatar's head |
@@ -134,6 +137,24 @@ class LLVoiceVisualizer : public LLHUDEffect | |||
134 | F32 mMaxGesticulationAmplitude; // this is the upper-limit of the envelope of detectable gesticulation leves | 137 | F32 mMaxGesticulationAmplitude; // this is the upper-limit of the envelope of detectable gesticulation leves |
135 | F32 mMinGesticulationAmplitude; // this is the lower-limit of the envelope of detectable gesticulation leves | 138 | F32 mMinGesticulationAmplitude; // this is the lower-limit of the envelope of detectable gesticulation leves |
136 | 139 | ||
140 | //--------------------------------------------------- | ||
141 | // private static members | ||
142 | //--------------------------------------------------- | ||
143 | |||
144 | static BOOL sLipSyncEnabled; // 0 disabled, 1 babble loop | ||
145 | static bool sPrefsInitialized; // the first instance will initialize the static members | ||
146 | static F32* sOoh; // the babble loop of amplitudes for the ooh morph | ||
147 | static F32* sAah; // the babble loop of amplitudes for the ooh morph | ||
148 | static U32 sOohs; // the number of entries in the ooh loop | ||
149 | static U32 sAahs; // the number of entries in the aah loop | ||
150 | static F32 sOohAahRate; // frames per second for the babble loop | ||
151 | static F32* sOohPowerTransfer; // the power transfer characteristics for the ooh amplitude | ||
152 | static U32 sOohPowerTransfers; // the number of entries in the ooh transfer characteristics | ||
153 | static F32 sOohPowerTransfersf; // the number of entries in the ooh transfer characteristics as a float | ||
154 | static F32* sAahPowerTransfer; // the power transfer characteristics for the aah amplitude | ||
155 | static U32 sAahPowerTransfers; // the number of entries in the aah transfer characteristics | ||
156 | static F32 sAahPowerTransfersf; // the number of entries in the aah transfer characteristics as a float | ||
157 | |||
137 | };//----------------------------------------------------------------- | 158 | };//----------------------------------------------------------------- |
138 | // end of LLVoiceVisualizer class | 159 | // end of LLVoiceVisualizer class |
139 | //------------------------------------------------------------------ | 160 | //------------------------------------------------------------------ |
diff --git a/linden/indra/newview/llvosky.cpp b/linden/indra/newview/llvosky.cpp index 8e60010..eae322e 100644 --- a/linden/indra/newview/llvosky.cpp +++ b/linden/indra/newview/llvosky.cpp | |||
@@ -194,11 +194,13 @@ inline void color_gamma_correct(LLColor3 &col) | |||
194 | 194 | ||
195 | S32 LLSkyTex::sComponents = 4; | 195 | S32 LLSkyTex::sComponents = 4; |
196 | S32 LLSkyTex::sResolution = 64; | 196 | S32 LLSkyTex::sResolution = 64; |
197 | F32 LLSkyTex::sInterpVal = 0.f; | 197 | F32 LLSkyTex::sInterpVal = 0.f; |
198 | S32 LLSkyTex::sCurrent = 0; | 198 | S32 LLSkyTex::sCurrent = 0; |
199 | 199 | ||
200 | 200 | ||
201 | LLSkyTex::LLSkyTex() | 201 | LLSkyTex::LLSkyTex() : |
202 | mSkyData(NULL), | ||
203 | mSkyDirs(NULL) | ||
202 | { | 204 | { |
203 | } | 205 | } |
204 | 206 | ||
diff --git a/linden/indra/newview/llvosky.h b/linden/indra/newview/llvosky.h index 70aa3af..124b690 100644 --- a/linden/indra/newview/llvosky.h +++ b/linden/indra/newview/llvosky.h | |||
@@ -207,7 +207,7 @@ protected: | |||
207 | F32 mDiskRadius; | 207 | F32 mDiskRadius; |
208 | BOOL mDraw; // FALSE - do not draw. | 208 | BOOL mDraw; // FALSE - do not draw. |
209 | F32 mHorizonVisibility; // number [0, 1] due to how horizon | 209 | F32 mHorizonVisibility; // number [0, 1] due to how horizon |
210 | F32 mVisibility; // same but due to other objects being in frong. | 210 | F32 mVisibility; // same but due to other objects being in throng. |
211 | BOOL mVisible; | 211 | BOOL mVisible; |
212 | static F32 sInterpVal; | 212 | static F32 sInterpVal; |
213 | LLVector3 mQuadCorner[4]; | 213 | LLVector3 mQuadCorner[4]; |
@@ -217,10 +217,12 @@ protected: | |||
217 | 217 | ||
218 | public: | 218 | public: |
219 | LLHeavenBody(const F32 rad) : | 219 | LLHeavenBody(const F32 rad) : |
220 | mDirectionCached(LLVector3(0,0,0)), mDirection(LLVector3(0,0,0)), | 220 | mDirectionCached(LLVector3(0,0,0)), |
221 | mDiskRadius(rad), mDraw(FALSE), | 221 | mDirection(LLVector3(0,0,0)), |
222 | mHorizonVisibility(1), mVisibility(1) | 222 | mIntensity(0.f), |
223 | 223 | mDiskRadius(rad), mDraw(FALSE), | |
224 | mHorizonVisibility(1.f), mVisibility(1.f), | ||
225 | mVisible(FALSE) | ||
224 | { | 226 | { |
225 | mColor.setToBlack(); | 227 | mColor.setToBlack(); |
226 | mColorCached.setToBlack(); | 228 | mColorCached.setToBlack(); |
@@ -261,7 +263,6 @@ public: | |||
261 | BOOL isVisible() const { return mVisible; } | 263 | BOOL isVisible() const { return mVisible; } |
262 | void setVisible(const BOOL v) { mVisible = v; } | 264 | void setVisible(const BOOL v) { mVisible = v; } |
263 | 265 | ||
264 | |||
265 | const F32& getIntensity() const { return mIntensity; } | 266 | const F32& getIntensity() const { return mIntensity; } |
266 | void setIntensity(const F32 c) { mIntensity = c; } | 267 | void setIntensity(const F32 c) { mIntensity = c; } |
267 | 268 | ||
@@ -311,19 +312,19 @@ LL_FORCE_INLINE LLColor3 calc_air_sca_sea_level() | |||
311 | 312 | ||
312 | const LLColor3 gAirScaSeaLevel = calc_air_sca_sea_level(); | 313 | const LLColor3 gAirScaSeaLevel = calc_air_sca_sea_level(); |
313 | const F32 AIR_SCA_INTENS = color_intens(gAirScaSeaLevel); | 314 | const F32 AIR_SCA_INTENS = color_intens(gAirScaSeaLevel); |
314 | const F32 AIR_SCA_AVG = AIR_SCA_INTENS / 3; | 315 | const F32 AIR_SCA_AVG = AIR_SCA_INTENS / 3.f; |
315 | 316 | ||
316 | class LLHaze | 317 | class LLHaze |
317 | { | 318 | { |
318 | public: | 319 | public: |
319 | LLHaze() : mG(0), mFalloff(1) {mSigSca.setToBlack();} | 320 | LLHaze() : mG(0), mFalloff(1), mAbsCoef(0.f) {mSigSca.setToBlack();} |
320 | LLHaze(const F32 g, const LLColor3& sca, const F32 fo = 2) : | 321 | LLHaze(const F32 g, const LLColor3& sca, const F32 fo = 2.f) : |
321 | mG(g), mSigSca(0.25f/F_PI * sca), mFalloff(fo), mAbsCoef(0) | 322 | mG(g), mSigSca(0.25f/F_PI * sca), mFalloff(fo), mAbsCoef(0.f) |
322 | { | 323 | { |
323 | mAbsCoef = color_intens(mSigSca) / AIR_SCA_INTENS; | 324 | mAbsCoef = color_intens(mSigSca) / AIR_SCA_INTENS; |
324 | } | 325 | } |
325 | 326 | ||
326 | LLHaze(const F32 g, const F32 sca, const F32 fo = 2) : mG(g), | 327 | LLHaze(const F32 g, const F32 sca, const F32 fo = 2.f) : mG(g), |
327 | mSigSca(0.25f/F_PI * LLColor3(sca, sca, sca)), mFalloff(fo) | 328 | mSigSca(0.25f/F_PI * LLColor3(sca, sca, sca)), mFalloff(fo) |
328 | { | 329 | { |
329 | mAbsCoef = 0.01f * sca / AIR_SCA_AVG; | 330 | mAbsCoef = 0.01f * sca / AIR_SCA_AVG; |
diff --git a/linden/indra/newview/llvosurfacepatch.cpp b/linden/indra/newview/llvosurfacepatch.cpp index c0474f2..310a745 100644 --- a/linden/indra/newview/llvosurfacepatch.cpp +++ b/linden/indra/newview/llvosurfacepatch.cpp | |||
@@ -960,12 +960,12 @@ void LLTerrainPartition::getGeometry(LLSpatialGroup* group) | |||
960 | LLStrider<LLColor4U> colors; | 960 | LLStrider<LLColor4U> colors; |
961 | LLStrider<U16> indices; | 961 | LLStrider<U16> indices; |
962 | 962 | ||
963 | buffer->getVertexStrider(vertices); | 963 | llassert_always(buffer->getVertexStrider(vertices)); |
964 | buffer->getNormalStrider(normals); | 964 | llassert_always(buffer->getNormalStrider(normals)); |
965 | buffer->getTexCoordStrider(texcoords); | 965 | llassert_always(buffer->getTexCoordStrider(texcoords)); |
966 | buffer->getTexCoord2Strider(texcoords2); | 966 | llassert_always(buffer->getTexCoord2Strider(texcoords2)); |
967 | buffer->getColorStrider(colors); | 967 | llassert_always(buffer->getColorStrider(colors)); |
968 | buffer->getIndexStrider(indices); | 968 | llassert_always(buffer->getIndexStrider(indices)); |
969 | 969 | ||
970 | U32 indices_index = 0; | 970 | U32 indices_index = 0; |
971 | U32 index_offset = 0; | 971 | U32 index_offset = 0; |
diff --git a/linden/indra/newview/llwatchdog.cpp b/linden/indra/newview/llwatchdog.cpp new file mode 100644 index 0000000..1dd984e --- /dev/null +++ b/linden/indra/newview/llwatchdog.cpp | |||
@@ -0,0 +1,222 @@ | |||
1 | /** | ||
2 | * @file llthreadwatchdog.cpp | ||
3 | * @brief The LLThreadWatchdog class definitions | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2007&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2007-2008, 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 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 | */ | ||
31 | |||
32 | |||
33 | #include "llviewerprecompiledheaders.h" | ||
34 | #include "llwatchdog.h" | ||
35 | |||
36 | // This class runs the watchdog timing thread. | ||
37 | class LLWatchdogTimerThread : public LLThread | ||
38 | { | ||
39 | public: | ||
40 | LLWatchdogTimerThread() : | ||
41 | LLThread("Watchdog"), | ||
42 | mSleepMsecs(0), | ||
43 | mStopping(false) | ||
44 | { | ||
45 | } | ||
46 | |||
47 | ~LLWatchdogTimerThread() {} | ||
48 | |||
49 | void setSleepTime(long ms) { mSleepMsecs = ms; } | ||
50 | void stop() | ||
51 | { | ||
52 | mStopping = true; | ||
53 | ms_sleep(1); | ||
54 | } | ||
55 | |||
56 | /* virtual */ void run() | ||
57 | { | ||
58 | while(!mStopping) | ||
59 | { | ||
60 | LLWatchdog::getInstance()->run(); | ||
61 | ms_sleep(mSleepMsecs); | ||
62 | } | ||
63 | } | ||
64 | |||
65 | private: | ||
66 | long mSleepMsecs; | ||
67 | bool mStopping; | ||
68 | }; | ||
69 | |||
70 | // LLWatchdogEntry | ||
71 | LLWatchdogEntry::LLWatchdogEntry() | ||
72 | { | ||
73 | } | ||
74 | |||
75 | LLWatchdogEntry::~LLWatchdogEntry() | ||
76 | { | ||
77 | } | ||
78 | |||
79 | void LLWatchdogEntry::start() | ||
80 | { | ||
81 | LLWatchdog::getInstance()->add(this); | ||
82 | } | ||
83 | |||
84 | void LLWatchdogEntry::stop() | ||
85 | { | ||
86 | LLWatchdog::getInstance()->remove(this); | ||
87 | } | ||
88 | |||
89 | // LLWatchdogTimeout | ||
90 | LLWatchdogTimeout::LLWatchdogTimeout() : | ||
91 | mTimeout(0.0f) | ||
92 | { | ||
93 | } | ||
94 | |||
95 | LLWatchdogTimeout::~LLWatchdogTimeout() | ||
96 | { | ||
97 | } | ||
98 | |||
99 | bool LLWatchdogTimeout::isAlive() const | ||
100 | { | ||
101 | return (mTimer.getStarted() && !mTimer.hasExpired()); | ||
102 | } | ||
103 | |||
104 | void LLWatchdogTimeout::setTimeout(F32 d) | ||
105 | { | ||
106 | mTimeout = d; | ||
107 | } | ||
108 | |||
109 | void LLWatchdogTimeout::start() | ||
110 | { | ||
111 | // Order of operation is very impmortant here. | ||
112 | // After LLWatchdogEntry::start() is called | ||
113 | // LLWatchdogTimeout::isAlive() will be called asynchronously. | ||
114 | mTimer.start(); | ||
115 | mTimer.setTimerExpirySec(mTimeout); | ||
116 | LLWatchdogEntry::start(); | ||
117 | } | ||
118 | void LLWatchdogTimeout::stop() | ||
119 | { | ||
120 | LLWatchdogEntry::stop(); | ||
121 | mTimer.stop(); | ||
122 | } | ||
123 | |||
124 | void LLWatchdogTimeout::ping() | ||
125 | { | ||
126 | mTimer.setTimerExpirySec(mTimeout); | ||
127 | } | ||
128 | |||
129 | // LlWatchdog | ||
130 | LLWatchdog::LLWatchdog() : | ||
131 | mSuspectsAccessMutex(NULL), | ||
132 | mTimer(NULL) | ||
133 | { | ||
134 | } | ||
135 | |||
136 | LLWatchdog::~LLWatchdog() | ||
137 | { | ||
138 | } | ||
139 | |||
140 | void LLWatchdog::add(LLWatchdogEntry* e) | ||
141 | { | ||
142 | lockThread(); | ||
143 | mSuspects.insert(e); | ||
144 | unlockThread(); | ||
145 | } | ||
146 | |||
147 | void LLWatchdog::remove(LLWatchdogEntry* e) | ||
148 | { | ||
149 | lockThread(); | ||
150 | mSuspects.erase(e); | ||
151 | unlockThread(); | ||
152 | } | ||
153 | |||
154 | void LLWatchdog::init() | ||
155 | { | ||
156 | if(!mSuspectsAccessMutex && !mTimer) | ||
157 | { | ||
158 | mSuspectsAccessMutex = new LLMutex(NULL); | ||
159 | mTimer = new LLWatchdogTimerThread(); | ||
160 | mTimer->setSleepTime(1000); | ||
161 | mTimer->start(); | ||
162 | } | ||
163 | } | ||
164 | |||
165 | void LLWatchdog::cleanup() | ||
166 | { | ||
167 | if(mTimer) | ||
168 | { | ||
169 | mTimer->stop(); | ||
170 | delete mTimer; | ||
171 | } | ||
172 | |||
173 | if(mSuspectsAccessMutex) | ||
174 | { | ||
175 | delete mSuspectsAccessMutex; | ||
176 | } | ||
177 | } | ||
178 | |||
179 | void LLWatchdog::run() | ||
180 | { | ||
181 | lockThread(); | ||
182 | |||
183 | SuspectsRegistry::iterator result = | ||
184 | std::find_if(mSuspects.begin(), | ||
185 | mSuspects.end(), | ||
186 | std::not1(std::mem_fun(&LLWatchdogEntry::isAlive)) | ||
187 | ); | ||
188 | |||
189 | if(result != mSuspects.end()) | ||
190 | { | ||
191 | // error!!! | ||
192 | if(mTimer) | ||
193 | { | ||
194 | mTimer->stop(); | ||
195 | } | ||
196 | |||
197 | llinfos << "Watchdog detected error:" << llendl; | ||
198 | #ifdef LL_WINDOWS | ||
199 | RaiseException(0,0,0,0); | ||
200 | #else | ||
201 | raise(SIGQUIT); | ||
202 | #endif | ||
203 | } | ||
204 | |||
205 | unlockThread(); | ||
206 | } | ||
207 | |||
208 | void LLWatchdog::lockThread() | ||
209 | { | ||
210 | if(mSuspectsAccessMutex != NULL) | ||
211 | { | ||
212 | mSuspectsAccessMutex->lock(); | ||
213 | } | ||
214 | } | ||
215 | |||
216 | void LLWatchdog::unlockThread() | ||
217 | { | ||
218 | if(mSuspectsAccessMutex != NULL) | ||
219 | { | ||
220 | mSuspectsAccessMutex->unlock(); | ||
221 | } | ||
222 | } | ||
diff --git a/linden/indra/newview/llwatchdog.h b/linden/indra/newview/llwatchdog.h new file mode 100644 index 0000000..96388bb --- /dev/null +++ b/linden/indra/newview/llwatchdog.h | |||
@@ -0,0 +1,98 @@ | |||
1 | /** | ||
2 | * @file llthreadwatchdog.h | ||
3 | * @brief The LLThreadWatchdog class declaration | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2007&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2007-2008, 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 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 | */ | ||
31 | |||
32 | #ifndef LL_LLTHREADWATCHDOG_H | ||
33 | #define LL_LLTHREADWATCHDOG_H | ||
34 | |||
35 | #ifndef LL_TIMER_H | ||
36 | #include "lltimer.h" | ||
37 | #endif | ||
38 | |||
39 | // LLWatchdogEntry is the interface used by the tasks that | ||
40 | // need to be watched. | ||
41 | class LLWatchdogEntry | ||
42 | { | ||
43 | public: | ||
44 | LLWatchdogEntry(); | ||
45 | virtual ~LLWatchdogEntry(); | ||
46 | |||
47 | // isAlive is accessed by the watchdog thread. | ||
48 | // This may mean that resources used by | ||
49 | // isAlive and other method may need synchronization. | ||
50 | virtual bool isAlive() const = 0; | ||
51 | virtual void start(); | ||
52 | virtual void stop(); | ||
53 | }; | ||
54 | |||
55 | class LLWatchdogTimeout : public LLWatchdogEntry | ||
56 | { | ||
57 | public: | ||
58 | LLWatchdogTimeout(); | ||
59 | virtual ~LLWatchdogTimeout(); | ||
60 | |||
61 | /* virtual */ bool isAlive() const; | ||
62 | /* virtual */ void start(); | ||
63 | /* virtual */ void stop(); | ||
64 | |||
65 | void setTimeout(F32 d); | ||
66 | void ping(); | ||
67 | |||
68 | private: | ||
69 | LLTimer mTimer; | ||
70 | F32 mTimeout; | ||
71 | }; | ||
72 | |||
73 | class LLWatchdogTimerThread; // Defined in the cpp | ||
74 | class LLWatchdog : public LLSingleton<LLWatchdog> | ||
75 | { | ||
76 | public: | ||
77 | LLWatchdog(); | ||
78 | ~LLWatchdog(); | ||
79 | |||
80 | // Add an entry to the watchdog. | ||
81 | void add(LLWatchdogEntry* e); | ||
82 | void remove(LLWatchdogEntry* e); | ||
83 | |||
84 | void init(); | ||
85 | void run(); | ||
86 | void cleanup(); | ||
87 | |||
88 | private: | ||
89 | void lockThread(); | ||
90 | void unlockThread(); | ||
91 | |||
92 | typedef std::set<LLWatchdogEntry*> SuspectsRegistry; | ||
93 | SuspectsRegistry mSuspects; | ||
94 | LLMutex* mSuspectsAccessMutex; | ||
95 | LLWatchdogTimerThread* mTimer; | ||
96 | }; | ||
97 | |||
98 | #endif // LL_LLTHREADWATCHDOG_H | ||
diff --git a/linden/indra/newview/llwaterparammanager.cpp b/linden/indra/newview/llwaterparammanager.cpp index f121d46..fb09fd8 100644 --- a/linden/indra/newview/llwaterparammanager.cpp +++ b/linden/indra/newview/llwaterparammanager.cpp | |||
@@ -75,7 +75,8 @@ LLWaterParamManager::LLWaterParamManager() : | |||
75 | mBlurMultiplier(0.1f, "blurMultiplier"), | 75 | mBlurMultiplier(0.1f, "blurMultiplier"), |
76 | mWave1Dir(.5f, .5f, "wave1Dir"), | 76 | mWave1Dir(.5f, .5f, "wave1Dir"), |
77 | mWave2Dir(.5f, .5f, "wave2Dir"), | 77 | mWave2Dir(.5f, .5f, "wave2Dir"), |
78 | mDensitySliderValue(1.0f) | 78 | mDensitySliderValue(1.0f), |
79 | mWaterFogKS(1.0f) | ||
79 | { | 80 | { |
80 | } | 81 | } |
81 | 82 | ||
@@ -86,7 +87,7 @@ LLWaterParamManager::~LLWaterParamManager() | |||
86 | void LLWaterParamManager::loadAllPresets(const LLString& file_name) | 87 | void LLWaterParamManager::loadAllPresets(const LLString& file_name) |
87 | { | 88 | { |
88 | LLString path_name(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/water", "")); | 89 | LLString path_name(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/water", "")); |
89 | llinfos << "Loading water settings from " << path_name << llendl; | 90 | LL_INFOS2("AppInit", "Shaders") << "Loading water settings from " << path_name << LL_ENDL; |
90 | 91 | ||
91 | //mParamList.clear(); | 92 | //mParamList.clear(); |
92 | 93 | ||
@@ -96,7 +97,7 @@ void LLWaterParamManager::loadAllPresets(const LLString& file_name) | |||
96 | std::string name; | 97 | std::string name; |
97 | found = gDirUtilp->getNextFileInDir(path_name, "*.xml", name, false); | 98 | found = gDirUtilp->getNextFileInDir(path_name, "*.xml", name, false); |
98 | 99 | ||
99 | llinfos << "name: " << name << llendl; | 100 | LL_DEBUGS2("AppInit", "Shaders") << "name: " << name << LL_ENDL; |
100 | 101 | ||
101 | // if we have one | 102 | // if we have one |
102 | if(found) | 103 | if(found) |
@@ -111,7 +112,7 @@ void LLWaterParamManager::loadAllPresets(const LLString& file_name) | |||
111 | std::string water_name = unescaped_name.substr(0, unescaped_name.size() - 4); | 112 | std::string water_name = unescaped_name.substr(0, unescaped_name.size() - 4); |
112 | 113 | ||
113 | LLString cur_path(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/water", name)); | 114 | LLString cur_path(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/water", name)); |
114 | llinfos << "Loading water from " << cur_path << llendl; | 115 | LL_DEBUGS2("AppInit", "Shaders") << "Loading water from " << cur_path << LL_ENDL; |
115 | 116 | ||
116 | std::ifstream water_xml(cur_path.c_str()); | 117 | std::ifstream water_xml(cur_path.c_str()); |
117 | if (water_xml) | 118 | if (water_xml) |
@@ -255,8 +256,8 @@ void LLWaterParamManager::update(LLViewerCamera * cam) | |||
255 | if(gPipeline.canUseVertexShaders()) | 256 | if(gPipeline.canUseVertexShaders()) |
256 | { | 257 | { |
257 | //transform water plane to eye space | 258 | //transform water plane to eye space |
258 | glh::vec3f norm(0, 0, 1); | 259 | glh::vec3f norm(0.f, 0.f, 1.f); |
259 | glh::vec3f p(0, 0, gAgent.getRegion()->getWaterHeight()+0.1f); | 260 | glh::vec3f p(0.f, 0.f, gAgent.getRegion()->getWaterHeight()+0.1f); |
260 | 261 | ||
261 | F32 modelView[16]; | 262 | F32 modelView[16]; |
262 | for (U32 i = 0; i < 16; i++) | 263 | for (U32 i = 0; i < 16; i++) |
@@ -406,7 +407,7 @@ F32 LLWaterParamManager::getFogDensity(void) | |||
406 | F32 fogDensity = mCurParams.getFloat("waterFogDensity", err); | 407 | F32 fogDensity = mCurParams.getFloat("waterFogDensity", err); |
407 | 408 | ||
408 | // modify if we're underwater | 409 | // modify if we're underwater |
409 | const F32 water_height = gAgent.getRegion()->getWaterHeight(); | 410 | const F32 water_height = gAgent.getRegion() ? gAgent.getRegion()->getWaterHeight() : 0.f; |
410 | F32 camera_height = gAgent.getCameraPositionAgent().mV[2]; | 411 | F32 camera_height = gAgent.getCameraPositionAgent().mV[2]; |
411 | if(camera_height <= water_height) | 412 | if(camera_height <= water_height) |
412 | { | 413 | { |
diff --git a/linden/indra/newview/llwaterparammanager.h b/linden/indra/newview/llwaterparammanager.h index ad40c12..6c9ce3e 100644 --- a/linden/indra/newview/llwaterparammanager.h +++ b/linden/indra/newview/llwaterparammanager.h | |||
@@ -315,18 +315,16 @@ public: | |||
315 | F32 mDensitySliderValue; | 315 | F32 mDensitySliderValue; |
316 | 316 | ||
317 | private: | 317 | private: |
318 | // our parameter manager singleton instance | ||
319 | static LLWaterParamManager * sInstance; | ||
320 | |||
321 | private: | ||
322 | |||
323 | LLVector4 mWaterPlane; | 318 | LLVector4 mWaterPlane; |
324 | F32 mWaterFogKS; | 319 | F32 mWaterFogKS; |
320 | |||
321 | // our parameter manager singleton instance | ||
322 | static LLWaterParamManager * sInstance; | ||
325 | }; | 323 | }; |
326 | 324 | ||
327 | inline void LLWaterParamManager::setDensitySliderValue(F32 val) | 325 | inline void LLWaterParamManager::setDensitySliderValue(F32 val) |
328 | { | 326 | { |
329 | val /= 10; | 327 | val /= 10.0f; |
330 | val = 1.0f - val; | 328 | val = 1.0f - val; |
331 | val *= val * val; | 329 | val *= val * val; |
332 | // val *= val; | 330 | // val *= val; |
diff --git a/linden/indra/newview/llwearable.cpp b/linden/indra/newview/llwearable.cpp index 9365eeb..6e8123a 100644 --- a/linden/indra/newview/llwearable.cpp +++ b/linden/indra/newview/llwearable.cpp | |||
@@ -185,7 +185,7 @@ const char* terse_F32_to_string( F32 f, char s[MAX_STRING] ) /* Flawfinder: ign | |||
185 | return r; | 185 | return r; |
186 | } | 186 | } |
187 | 187 | ||
188 | BOOL LLWearable::exportFile( FILE* file ) | 188 | BOOL LLWearable::exportFile( LLFILE* file ) |
189 | { | 189 | { |
190 | // header and version | 190 | // header and version |
191 | if( fprintf( file, "LLWearable version %d\n", mDefinitionVersion ) < 0 ) | 191 | if( fprintf( file, "LLWearable version %d\n", mDefinitionVersion ) < 0 ) |
@@ -266,7 +266,7 @@ BOOL LLWearable::exportFile( FILE* file ) | |||
266 | 266 | ||
267 | 267 | ||
268 | 268 | ||
269 | BOOL LLWearable::importFile( FILE* file ) | 269 | BOOL LLWearable::importFile( LLFILE* file ) |
270 | { | 270 | { |
271 | // *NOTE: changing the type or size of this buffer will require | 271 | // *NOTE: changing the type or size of this buffer will require |
272 | // changes in the fscanf() code below. You would be better off | 272 | // changes in the fscanf() code below. You would be better off |
@@ -852,7 +852,7 @@ void LLWearable::saveNewAsset() | |||
852 | mAssetID.toString(new_asset_id_string); | 852 | mAssetID.toString(new_asset_id_string); |
853 | char filename[LL_MAX_PATH]; /* Flawfinder: ignore */ | 853 | char filename[LL_MAX_PATH]; /* Flawfinder: ignore */ |
854 | snprintf(filename, LL_MAX_PATH, "%s.wbl", gDirUtilp->getExpandedFilename(LL_PATH_CACHE,new_asset_id_string).c_str()); /* Flawfinder: ignore */ | 854 | snprintf(filename, LL_MAX_PATH, "%s.wbl", gDirUtilp->getExpandedFilename(LL_PATH_CACHE,new_asset_id_string).c_str()); /* Flawfinder: ignore */ |
855 | FILE* fp = LLFile::fopen(filename, "wb"); /* Flawfinder: ignore */ | 855 | LLFILE* fp = LLFile::fopen(filename, "wb"); /* Flawfinder: ignore */ |
856 | BOOL successful_save = FALSE; | 856 | BOOL successful_save = FALSE; |
857 | if(fp && exportFile(fp)) | 857 | if(fp && exportFile(fp)) |
858 | { | 858 | { |
diff --git a/linden/indra/newview/llwearable.h b/linden/indra/newview/llwearable.h index aa4b3dd..63243eb 100644 --- a/linden/indra/newview/llwearable.h +++ b/linden/indra/newview/llwearable.h | |||
@@ -78,8 +78,8 @@ public: | |||
78 | void removeFromAvatar( BOOL set_by_user ) { LLWearable::removeFromAvatar( mType, set_by_user ); } | 78 | void removeFromAvatar( BOOL set_by_user ) { LLWearable::removeFromAvatar( mType, set_by_user ); } |
79 | static void removeFromAvatar( EWearableType type, BOOL set_by_user ); | 79 | static void removeFromAvatar( EWearableType type, BOOL set_by_user ); |
80 | 80 | ||
81 | BOOL exportFile(FILE* file); | 81 | BOOL exportFile(LLFILE* file); |
82 | BOOL importFile(FILE* file); | 82 | BOOL importFile(LLFILE* file); |
83 | 83 | ||
84 | EWearableType getType() const { return mType; } | 84 | EWearableType getType() const { return mType; } |
85 | void setType( EWearableType type ) { mType = type; } | 85 | void setType( EWearableType type ) { mType = type; } |
diff --git a/linden/indra/newview/llwearablelist.cpp b/linden/indra/newview/llwearablelist.cpp index 01a2459..cabf20a 100644 --- a/linden/indra/newview/llwearablelist.cpp +++ b/linden/indra/newview/llwearablelist.cpp | |||
@@ -110,7 +110,7 @@ void LLWearableList::processGetAssetReply( const char* filename, const LLAssetID | |||
110 | if( status >= 0 ) | 110 | if( status >= 0 ) |
111 | { | 111 | { |
112 | // read the file | 112 | // read the file |
113 | FILE* fp = LLFile::fopen(filename, "rb"); /*Flawfinder: ignore*/ | 113 | LLFILE* fp = LLFile::fopen(filename, "rb"); /*Flawfinder: ignore*/ |
114 | if( !fp ) | 114 | if( !fp ) |
115 | { | 115 | { |
116 | llinfos << "Bad Wearable Asset: unable to open file: '" << filename << "'" << llendl; | 116 | llinfos << "Bad Wearable Asset: unable to open file: '" << filename << "'" << llendl; |
diff --git a/linden/indra/newview/llwebbrowserctrl.cpp b/linden/indra/newview/llwebbrowserctrl.cpp index 710b7e1..1d187cb 100644 --- a/linden/indra/newview/llwebbrowserctrl.cpp +++ b/linden/indra/newview/llwebbrowserctrl.cpp | |||
@@ -43,8 +43,9 @@ | |||
43 | #include "llviewborder.h" | 43 | #include "llviewborder.h" |
44 | #include "llviewercontrol.h" | 44 | #include "llviewercontrol.h" |
45 | #include "llviewerwindow.h" | 45 | #include "llviewerwindow.h" |
46 | #include "llnotify.h" | ||
46 | #include "llweb.h" | 47 | #include "llweb.h" |
47 | #include "llglimmediate.h" | 48 | #include "llrender.h" |
48 | 49 | ||
49 | // linden library includes | 50 | // linden library includes |
50 | #include "llfocusmgr.h" | 51 | #include "llfocusmgr.h" |
@@ -587,7 +588,7 @@ void LLWebBrowserCtrl::draw() | |||
587 | F32 max_v = ( F32 )mWebBrowserImage->getBrowserHeight() / ( F32 )mWebBrowserImage->getHeight(); | 588 | F32 max_v = ( F32 )mWebBrowserImage->getBrowserHeight() / ( F32 )mWebBrowserImage->getHeight(); |
588 | 589 | ||
589 | // draw the browser | 590 | // draw the browser |
590 | gGL.blendFunc( GL_ONE, GL_ZERO ); | 591 | gGL.setSceneBlendType(LLRender::BT_REPLACE); |
591 | gGL.begin( LLVertexBuffer::QUADS ); | 592 | gGL.begin( LLVertexBuffer::QUADS ); |
592 | { | 593 | { |
593 | // render using web browser reported width and height, instead of trying to invert GL scale | 594 | // render using web browser reported width and height, instead of trying to invert GL scale |
@@ -604,7 +605,7 @@ void LLWebBrowserCtrl::draw() | |||
604 | gGL.vertex2i( mWebBrowserImage->getBrowserWidth(), 0 ); | 605 | gGL.vertex2i( mWebBrowserImage->getBrowserWidth(), 0 ); |
605 | } | 606 | } |
606 | gGL.end(); | 607 | gGL.end(); |
607 | gGL.blendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); | 608 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
608 | } | 609 | } |
609 | gGL.popMatrix(); | 610 | gGL.popMatrix(); |
610 | 611 | ||
@@ -762,6 +763,8 @@ void LLWebBrowserCtrl::onClickLinkNoFollow( const EventType& eventIn ) | |||
762 | && !mOpenAppSLURLs) | 763 | && !mOpenAppSLURLs) |
763 | { | 764 | { |
764 | // block handling of this secondlife:///app/ URL | 765 | // block handling of this secondlife:///app/ URL |
766 | LLNotifyBox::showXml("UnableToOpenCommandURL"); | ||
767 | |||
765 | return; | 768 | return; |
766 | } | 769 | } |
767 | 770 | ||
diff --git a/linden/indra/newview/llwebbrowserctrl.h b/linden/indra/newview/llwebbrowserctrl.h index e1b5357..95757f1 100644 --- a/linden/indra/newview/llwebbrowserctrl.h +++ b/linden/indra/newview/llwebbrowserctrl.h | |||
@@ -47,11 +47,13 @@ class LLWebBrowserCtrlEvent | |||
47 | }; | 47 | }; |
48 | 48 | ||
49 | LLWebBrowserCtrlEvent( std::string stringValIn ) : | 49 | LLWebBrowserCtrlEvent( std::string stringValIn ) : |
50 | mIntVal(-1), | ||
50 | mStringVal( stringValIn ) | 51 | mStringVal( stringValIn ) |
51 | { | 52 | { |
52 | }; | 53 | }; |
53 | 54 | ||
54 | LLWebBrowserCtrlEvent( std::string stringValIn, std::string stringValExIn ) : | 55 | LLWebBrowserCtrlEvent( std::string stringValIn, std::string stringValExIn ) : |
56 | mIntVal(-1), | ||
55 | mStringVal( stringValIn ), | 57 | mStringVal( stringValIn ), |
56 | mStringValEx( stringValExIn ) | 58 | mStringValEx( stringValExIn ) |
57 | { | 59 | { |
diff --git a/linden/indra/newview/llwindebug.cpp b/linden/indra/newview/llwindebug.cpp index 1b52a14..aba637c 100644 --- a/linden/indra/newview/llwindebug.cpp +++ b/linden/indra/newview/llwindebug.cpp | |||
@@ -35,7 +35,6 @@ | |||
35 | 35 | ||
36 | #include <tchar.h> | 36 | #include <tchar.h> |
37 | #include <tlhelp32.h> | 37 | #include <tlhelp32.h> |
38 | #include "llappviewer.h" | ||
39 | #include "llwindebug.h" | 38 | #include "llwindebug.h" |
40 | #include "llviewercontrol.h" | 39 | #include "llviewercontrol.h" |
41 | #include "lldir.h" | 40 | #include "lldir.h" |
@@ -106,6 +105,8 @@ MINIDUMPWRITEDUMP f_mdwp = NULL; | |||
106 | 105 | ||
107 | #undef UNICODE | 106 | #undef UNICODE |
108 | 107 | ||
108 | static LPTOP_LEVEL_EXCEPTION_FILTER gFilterFunc = NULL; | ||
109 | |||
109 | HMODULE hDbgHelp; | 110 | HMODULE hDbgHelp; |
110 | 111 | ||
111 | // Tool Help functions. | 112 | // Tool Help functions. |
@@ -554,14 +555,13 @@ void LLMemoryReserve::release() | |||
554 | static LLMemoryReserve gEmergencyMemoryReserve; | 555 | static LLMemoryReserve gEmergencyMemoryReserve; |
555 | 556 | ||
556 | // static | 557 | // static |
557 | BOOL LLWinDebug::setupExceptionHandler() | 558 | void LLWinDebug::initExceptionHandler(LPTOP_LEVEL_EXCEPTION_FILTER filter_func) |
558 | { | 559 | { |
559 | 560 | ||
560 | static BOOL s_first_run = TRUE; | 561 | static bool s_first_run = true; |
561 | // Load the dbghelp dll now, instead of waiting for the crash. | 562 | // Load the dbghelp dll now, instead of waiting for the crash. |
562 | // Less potential for stack mangling | 563 | // Less potential for stack mangling |
563 | 564 | ||
564 | BOOL ok = TRUE; | ||
565 | if (s_first_run) | 565 | if (s_first_run) |
566 | { | 566 | { |
567 | // First, try loading from the directory that the app resides in. | 567 | // First, try loading from the directory that the app resides in. |
@@ -576,15 +576,7 @@ BOOL LLWinDebug::setupExceptionHandler() | |||
576 | 576 | ||
577 | if (!hDll) | 577 | if (!hDll) |
578 | { | 578 | { |
579 | llwarns << "Couldn't find dbghelp.dll!" << llendl; | 579 | LL_WARNS("AppInit") << "Couldn't find dbghelp.dll!" << LL_ENDL; |
580 | |||
581 | std::string msg = "Couldn't find dbghelp.dll at "; | ||
582 | msg += local_dll_name; | ||
583 | msg += "!\n"; | ||
584 | |||
585 | //write_debug(msg.c_str()); | ||
586 | |||
587 | ok = FALSE; | ||
588 | } | 580 | } |
589 | else | 581 | else |
590 | { | 582 | { |
@@ -592,18 +584,15 @@ BOOL LLWinDebug::setupExceptionHandler() | |||
592 | 584 | ||
593 | if (!f_mdwp) | 585 | if (!f_mdwp) |
594 | { | 586 | { |
595 | //write_debug("No MiniDumpWriteDump!\n"); | ||
596 | FreeLibrary(hDll); | 587 | FreeLibrary(hDll); |
597 | hDll = NULL; | 588 | hDll = NULL; |
598 | ok = FALSE; | ||
599 | } | 589 | } |
600 | } | 590 | } |
601 | 591 | ||
602 | gEmergencyMemoryReserve.reserve(); | 592 | gEmergencyMemoryReserve.reserve(); |
603 | } | ||
604 | 593 | ||
605 | LPTOP_LEVEL_EXCEPTION_FILTER prev_filter; | 594 | s_first_run = false; |
606 | prev_filter = SetUnhandledExceptionFilter(LLWinDebug::handleException); | 595 | } |
607 | 596 | ||
608 | // Try to get Tool Help library functions. | 597 | // Try to get Tool Help library functions. |
609 | HMODULE hKernel32; | 598 | HMODULE hKernel32; |
@@ -612,26 +601,44 @@ BOOL LLWinDebug::setupExceptionHandler() | |||
612 | Module32First_ = (MODULE32_FIRST)GetProcAddress(hKernel32, "Module32FirstW"); | 601 | Module32First_ = (MODULE32_FIRST)GetProcAddress(hKernel32, "Module32FirstW"); |
613 | Module32Next_ = (MODULE32_NEST)GetProcAddress(hKernel32, "Module32NextW"); | 602 | Module32Next_ = (MODULE32_NEST)GetProcAddress(hKernel32, "Module32NextW"); |
614 | 603 | ||
615 | if (s_first_run) | 604 | LPTOP_LEVEL_EXCEPTION_FILTER prev_filter; |
605 | prev_filter = SetUnhandledExceptionFilter(filter_func); | ||
606 | |||
607 | if(prev_filter != gFilterFunc) | ||
616 | { | 608 | { |
617 | // We're fine, this is the first run. | 609 | LL_WARNS("AppInit") |
618 | s_first_run = FALSE; | 610 | << "Replacing unknown exception (" << (void *)prev_filter << ") with (" << (void *)filter_func << ") !" << LL_ENDL; |
619 | return ok; | ||
620 | } | 611 | } |
621 | if (!prev_filter) | 612 | |
613 | gFilterFunc = filter_func; | ||
614 | } | ||
615 | |||
616 | bool LLWinDebug::checkExceptionHandler() | ||
617 | { | ||
618 | bool ok = true; | ||
619 | LPTOP_LEVEL_EXCEPTION_FILTER prev_filter; | ||
620 | prev_filter = SetUnhandledExceptionFilter(gFilterFunc); | ||
621 | |||
622 | if (prev_filter != gFilterFunc) | ||
622 | { | 623 | { |
623 | llwarns << "Our exception handler (" << (void *)LLWinDebug::handleException << ") replaced with NULL!" << llendl; | 624 | LL_WARNS("AppInit") << "Our exception handler (" << (void *)gFilterFunc << ") replaced with " << prev_filter << "!" << LL_ENDL; |
624 | ok = FALSE; | 625 | ok = false; |
625 | } | 626 | } |
626 | if (prev_filter != LLWinDebug::handleException) | 627 | |
628 | if (prev_filter == NULL) | ||
627 | { | 629 | { |
628 | llwarns << "Our exception handler (" << (void *)LLWinDebug::handleException << ") replaced with " << prev_filter << "!" << llendl; | ||
629 | ok = FALSE; | 630 | ok = FALSE; |
631 | if (gFilterFunc == NULL) | ||
632 | { | ||
633 | LL_WARNS("AppInit") << "Exception handler uninitialized." << LL_ENDL; | ||
634 | } | ||
635 | else | ||
636 | { | ||
637 | LL_WARNS("AppInit") << "Our exception handler (" << (void *)gFilterFunc << ") replaced with NULL!" << LL_ENDL; | ||
638 | } | ||
630 | } | 639 | } |
631 | 640 | ||
632 | return ok; | 641 | return ok; |
633 | // Internal builds don't mess with exception handling. | ||
634 | //return TRUE; | ||
635 | } | 642 | } |
636 | 643 | ||
637 | void LLWinDebug::writeDumpToFile(MINIDUMP_TYPE type, MINIDUMP_EXCEPTION_INFORMATION *ExInfop, const char *filename) | 644 | void LLWinDebug::writeDumpToFile(MINIDUMP_TYPE type, MINIDUMP_EXCEPTION_INFORMATION *ExInfop, const char *filename) |
@@ -644,7 +651,7 @@ void LLWinDebug::writeDumpToFile(MINIDUMP_TYPE type, MINIDUMP_EXCEPTION_INFORMAT | |||
644 | else | 651 | else |
645 | { | 652 | { |
646 | std::string dump_path = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, | 653 | std::string dump_path = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, |
647 | filename); | 654 | filename); |
648 | 655 | ||
649 | HANDLE hFile = CreateFileA(dump_path.c_str(), | 656 | HANDLE hFile = CreateFileA(dump_path.c_str(), |
650 | GENERIC_WRITE, | 657 | GENERIC_WRITE, |
@@ -672,20 +679,26 @@ void LLWinDebug::writeDumpToFile(MINIDUMP_TYPE type, MINIDUMP_EXCEPTION_INFORMAT | |||
672 | } | 679 | } |
673 | 680 | ||
674 | // static | 681 | // static |
675 | LONG LLWinDebug::handleException(struct _EXCEPTION_POINTERS *exception_infop) | 682 | void LLWinDebug::generateCrashStacks(struct _EXCEPTION_POINTERS *exception_infop) |
676 | { | 683 | { |
677 | // *NOTE:Mani - This method is no longer the initial exception handler. | 684 | // *NOTE:Mani - This method is no longer the exception handler. |
678 | // It is called from viewer_windows_exception_handler() and other places. | 685 | // Its called from viewer_windows_exception_handler() and other places. |
679 | 686 | ||
680 | // | 687 | // |
681 | // Let go of a bunch of reserved memory to give library calls etc | 688 | // Let go of a bunch of reserved memory to give library calls etc |
682 | // a chance to execute normally in the case that we ran out of | 689 | // a chance to execute normally in the case that we ran out of |
683 | // memory. | 690 | // memory. |
684 | // | 691 | // |
685 | gEmergencyMemoryReserve.release(); | 692 | LLSD info; |
693 | std::string dump_path = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, | ||
694 | "SecondLifeException"); | ||
695 | std::string log_path = dump_path + ".log"; | ||
686 | 696 | ||
687 | if (exception_infop) | 697 | if (exception_infop) |
688 | { | 698 | { |
699 | // Since there is exception info... Release the hounds. | ||
700 | gEmergencyMemoryReserve.release(); | ||
701 | |||
689 | if(gSavedSettings.getControl("SaveMinidump") != NULL && gSavedSettings.getBOOL("SaveMinidump")) | 702 | if(gSavedSettings.getControl("SaveMinidump") != NULL && gSavedSettings.getBOOL("SaveMinidump")) |
690 | { | 703 | { |
691 | _MINIDUMP_EXCEPTION_INFORMATION ExInfo; | 704 | _MINIDUMP_EXCEPTION_INFORMATION ExInfo; |
@@ -698,67 +711,34 @@ LONG LLWinDebug::handleException(struct _EXCEPTION_POINTERS *exception_infop) | |||
698 | writeDumpToFile((MINIDUMP_TYPE)(MiniDumpWithDataSegs | MiniDumpWithIndirectlyReferencedMemory), &ExInfo, "SecondLifePlus.dmp"); | 711 | writeDumpToFile((MINIDUMP_TYPE)(MiniDumpWithDataSegs | MiniDumpWithIndirectlyReferencedMemory), &ExInfo, "SecondLifePlus.dmp"); |
699 | } | 712 | } |
700 | 713 | ||
701 | |||
702 | std::string dump_path = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, | ||
703 | "SecondLifeException"); | ||
704 | |||
705 | std::string log_path = dump_path + ".log"; | ||
706 | |||
707 | LLSD info; | ||
708 | info = Get_Exception_Info(exception_infop); | 714 | info = Get_Exception_Info(exception_infop); |
715 | } | ||
709 | 716 | ||
717 | LLSD threads; | ||
718 | std::vector<DWORD> thread_ids; | ||
719 | GetProcessThreadIDs(GetCurrentProcessId(), thread_ids); | ||
710 | 720 | ||
711 | LLSD threads; | 721 | for(std::vector<DWORD>::iterator th_itr = thread_ids.begin(); |
712 | std::vector<DWORD> thread_ids; | 722 | th_itr != thread_ids.end(); |
713 | GetProcessThreadIDs(GetCurrentProcessId(), thread_ids); | 723 | ++th_itr) |
714 | 724 | { | |
715 | for(std::vector<DWORD>::iterator th_itr = thread_ids.begin(); | 725 | LLSD thread_info; |
716 | th_itr != thread_ids.end(); | 726 | if(*th_itr != GetCurrentThreadId()) |
717 | ++th_itr) | ||
718 | { | 727 | { |
719 | LLSD thread_info; | 728 | GetThreadCallStack(*th_itr, thread_info); |
720 | if(*th_itr != GetCurrentThreadId()) | ||
721 | { | ||
722 | GetThreadCallStack(*th_itr, thread_info); | ||
723 | } | ||
724 | |||
725 | if(thread_info) | ||
726 | { | ||
727 | |||
728 | threads[llformat("ID %d", *th_itr)] = thread_info; | ||
729 | } | ||
730 | } | 729 | } |
731 | 730 | ||
731 | if(thread_info) | ||
732 | { | ||
733 | threads[llformat("ID %d", *th_itr)] = thread_info; | ||
734 | } | ||
735 | } | ||
732 | 736 | ||
733 | info["Threads"] = threads; | 737 | info["Threads"] = threads; |
734 | |||
735 | if (info) | ||
736 | { | ||
737 | std::ofstream out_file(log_path.c_str()); | ||
738 | LLSDSerialize::toPrettyXML(info, out_file); | ||
739 | out_file.close(); | ||
740 | } | ||
741 | } | ||
742 | else | ||
743 | { | ||
744 | // We're calling this due to a network error, not due to an actual exception. | ||
745 | // It doesn't realy matter what we return. | ||
746 | return EXCEPTION_CONTINUE_SEARCH; | ||
747 | } | ||
748 | |||
749 | //handle viewer crash must be called here since | ||
750 | //we don't return handling of the application | ||
751 | //back to the process. | ||
752 | LLAppViewer::handleViewerCrash(); | ||
753 | 738 | ||
754 | // | 739 | std::ofstream out_file(log_path.c_str()); |
755 | // At this point, we always want to exit the app. There's no graceful | 740 | LLSDSerialize::toPrettyXML(info, out_file); |
756 | // recovery for an unhandled exception. | 741 | out_file.close(); |
757 | // | ||
758 | // Just kill the process. | ||
759 | LONG retval = EXCEPTION_EXECUTE_HANDLER; | ||
760 | |||
761 | return retval; | ||
762 | } | 742 | } |
763 | 743 | ||
764 | #endif | 744 | #endif |
diff --git a/linden/indra/newview/llwindebug.h b/linden/indra/newview/llwindebug.h index b11cdf6..cf15fae 100644 --- a/linden/indra/newview/llwindebug.h +++ b/linden/indra/newview/llwindebug.h | |||
@@ -38,10 +38,36 @@ | |||
38 | class LLWinDebug | 38 | class LLWinDebug |
39 | { | 39 | { |
40 | public: | 40 | public: |
41 | static BOOL setupExceptionHandler(); | ||
42 | 41 | ||
43 | static LONG WINAPI handleException(struct _EXCEPTION_POINTERS *pExceptionInfo); | 42 | |
43 | /** | ||
44 | * @brief initialize the llwindebug exception filter callback | ||
45 | * | ||
46 | * Hand a windows unhandled exception filter to LLWinDebug | ||
47 | * This method should only be called to change the | ||
48 | * exception filter used by llwindebug. | ||
49 | * | ||
50 | * Setting filter_func to NULL will clear any custom filters. | ||
51 | **/ | ||
52 | static void initExceptionHandler(LPTOP_LEVEL_EXCEPTION_FILTER filter_func); | ||
53 | |||
54 | /** | ||
55 | * @brief check the status of the exception filter. | ||
56 | * | ||
57 | * Resets unhandled exception filter to the filter specified | ||
58 | * w/ initExceptionFilter). | ||
59 | * Returns false if the exception filter was modified. | ||
60 | * | ||
61 | * *NOTE:Mani In the past mozlib has been accused of | ||
62 | * overriding the exception filter. If the mozlib filter | ||
63 | * is required, perhaps we can chain calls from our | ||
64 | * filter to mozlib's. | ||
65 | **/ | ||
66 | static bool checkExceptionHandler(); | ||
67 | |||
68 | static void generateCrashStacks(struct _EXCEPTION_POINTERS *pExceptionInfo = NULL); | ||
44 | static void writeDumpToFile(MINIDUMP_TYPE type, MINIDUMP_EXCEPTION_INFORMATION *ExInfop, const char *filename); | 69 | static void writeDumpToFile(MINIDUMP_TYPE type, MINIDUMP_EXCEPTION_INFORMATION *ExInfop, const char *filename); |
70 | private: | ||
45 | }; | 71 | }; |
46 | 72 | ||
47 | #endif // LL_LLWINDEBUG_H | 73 | #endif // LL_LLWINDEBUG_H |
diff --git a/linden/indra/newview/llwlparammanager.cpp b/linden/indra/newview/llwlparammanager.cpp index 9f59947..9f23b37 100644 --- a/linden/indra/newview/llwlparammanager.cpp +++ b/linden/indra/newview/llwlparammanager.cpp | |||
@@ -111,7 +111,7 @@ void LLWLParamManager::loadPresets(const LLString& file_name) | |||
111 | if(file_name != "") | 111 | if(file_name != "") |
112 | { | 112 | { |
113 | LLString path_name(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight", file_name)); | 113 | LLString path_name(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight", file_name)); |
114 | llinfos << "Loading WindLight settings from " << path_name << llendl; | 114 | LL_INFOS2("AppInit", "Shaders") << "Loading WindLight settings from " << path_name << LL_ENDL; |
115 | 115 | ||
116 | llifstream presetsXML(path_name.c_str()); | 116 | llifstream presetsXML(path_name.c_str()); |
117 | 117 | ||
@@ -137,7 +137,7 @@ void LLWLParamManager::loadPresets(const LLString& file_name) | |||
137 | else | 137 | else |
138 | { | 138 | { |
139 | LLString path_name(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/skies", "")); | 139 | LLString path_name(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/skies", "")); |
140 | llinfos << "Loading WindLight settings from " << path_name << llendl; | 140 | LL_INFOS2("AppInit", "Shaders") << "Loading WindLight settings from " << path_name << LL_ENDL; |
141 | 141 | ||
142 | //mParamList.clear(); | 142 | //mParamList.clear(); |
143 | 143 | ||
@@ -147,7 +147,7 @@ void LLWLParamManager::loadPresets(const LLString& file_name) | |||
147 | std::string name; | 147 | std::string name; |
148 | found = gDirUtilp->getNextFileInDir(path_name, "*.xml", name, false); | 148 | found = gDirUtilp->getNextFileInDir(path_name, "*.xml", name, false); |
149 | 149 | ||
150 | llinfos << "name: " << name << llendl; | 150 | LL_DEBUGS2("AppInit", "Shaders") << "name: " << name << LL_ENDL; |
151 | 151 | ||
152 | // if we have one | 152 | // if we have one |
153 | if(found) | 153 | if(found) |
@@ -162,7 +162,7 @@ void LLWLParamManager::loadPresets(const LLString& file_name) | |||
162 | std::string sky_name = unescaped_name.substr(0, unescaped_name.size() - 4); | 162 | std::string sky_name = unescaped_name.substr(0, unescaped_name.size() - 4); |
163 | 163 | ||
164 | LLString cur_path(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/skies", name)); | 164 | LLString cur_path(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/skies", name)); |
165 | llinfos << "Loading sky from " << cur_path << llendl; | 165 | LL_DEBUGS2("AppInit", "Shaders") << "Loading sky from " << cur_path << LL_ENDL; |
166 | 166 | ||
167 | std::ifstream sky_xml(cur_path.c_str()); | 167 | std::ifstream sky_xml(cur_path.c_str()); |
168 | if (sky_xml) | 168 | if (sky_xml) |
@@ -299,7 +299,7 @@ void LLWLParamManager::propagateParameters(void) | |||
299 | LLVector4 sunDir; | 299 | LLVector4 sunDir; |
300 | LLVector4 moonDir; | 300 | LLVector4 moonDir; |
301 | 301 | ||
302 | // set the sun direction from mSunAngle and mEastAngle | 302 | // set the sun direction from SunAngle and EastAngle |
303 | F32 sinTheta = sin(mCurParams.getEastAngle()); | 303 | F32 sinTheta = sin(mCurParams.getEastAngle()); |
304 | F32 cosTheta = cos(mCurParams.getEastAngle()); | 304 | F32 cosTheta = cos(mCurParams.getEastAngle()); |
305 | 305 | ||
diff --git a/linden/indra/newview/llwlparammanager.h b/linden/indra/newview/llwlparammanager.h index bfb84e9..72b888d 100644 --- a/linden/indra/newview/llwlparammanager.h +++ b/linden/indra/newview/llwlparammanager.h | |||
@@ -199,8 +199,6 @@ public: | |||
199 | public: | 199 | public: |
200 | 200 | ||
201 | // helper variables | 201 | // helper variables |
202 | F32 mSunAngle; | ||
203 | F32 mEastAngle; | ||
204 | LLWLAnimator mAnimator; | 202 | LLWLAnimator mAnimator; |
205 | 203 | ||
206 | /// actual direction of the sun | 204 | /// actual direction of the sun |
@@ -217,9 +215,6 @@ public: | |||
217 | // list of params and how they're cycled for days | 215 | // list of params and how they're cycled for days |
218 | LLWLDayCycle mDay; | 216 | LLWLDayCycle mDay; |
219 | 217 | ||
220 | // length of the day in seconds | ||
221 | F32 mLengthOfDay; | ||
222 | |||
223 | LLWLParamSet mCurParams; | 218 | LLWLParamSet mCurParams; |
224 | 219 | ||
225 | /// Sun Delta Terrain tweak variables. | 220 | /// Sun Delta Terrain tweak variables. |
diff --git a/linden/indra/newview/llwlparamset.h b/linden/indra/newview/llwlparamset.h index 6fa0bff..ed3453d 100644 --- a/linden/indra/newview/llwlparamset.h +++ b/linden/indra/newview/llwlparamset.h | |||
@@ -132,18 +132,10 @@ public: | |||
132 | /// get the star brightness value; | 132 | /// get the star brightness value; |
133 | F32 getStarBrightness(); | 133 | F32 getStarBrightness(); |
134 | 134 | ||
135 | /// set the star's brightness | ||
136 | /// \param val brightness value | ||
137 | void setSunAngle(F32 val); | 135 | void setSunAngle(F32 val); |
138 | |||
139 | /// get the star brightness value; | ||
140 | F32 getSunAngle(); | 136 | F32 getSunAngle(); |
141 | 137 | ||
142 | /// set the star's brightness | ||
143 | /// \param val brightness value | ||
144 | void setEastAngle(F32 val); | 138 | void setEastAngle(F32 val); |
145 | |||
146 | /// get the star brightness value; | ||
147 | F32 getEastAngle(); | 139 | F32 getEastAngle(); |
148 | 140 | ||
149 | 141 | ||
diff --git a/linden/indra/newview/llworld.cpp b/linden/indra/newview/llworld.cpp index 8c95260..27d7513 100644 --- a/linden/indra/newview/llworld.cpp +++ b/linden/indra/newview/llworld.cpp | |||
@@ -83,22 +83,25 @@ const F32 LLWorld::mWidthInMeters = mWidth * mScale; | |||
83 | // | 83 | // |
84 | 84 | ||
85 | // allocate the stack | 85 | // allocate the stack |
86 | LLWorld::LLWorld() | 86 | LLWorld::LLWorld() : |
87 | mLandFarClip(DEFAULT_FAR_PLANE), | ||
88 | mLastPacketsIn(0), | ||
89 | mLastPacketsOut(0), | ||
90 | mLastPacketsLost(0), | ||
91 | mMinRegionX(0), | ||
92 | mMaxRegionX(0), | ||
93 | mMinRegionY(0), | ||
94 | mMaxRegionY(0), | ||
95 | mSpaceTimeUSec(0) | ||
87 | { | 96 | { |
88 | mSpaceTimeUSec = 0; | 97 | for (S32 i = 0; i < 8; i++) |
89 | mLastPacketsIn = 0; | ||
90 | mLastPacketsOut = 0; | ||
91 | mLastPacketsLost = 0; | ||
92 | mLandFarClip = DEFAULT_FAR_PLANE; | ||
93 | |||
94 | if (gNoRender) | ||
95 | { | 98 | { |
96 | return; | 99 | mEdgeWaterObjects[i] = NULL; |
97 | } | 100 | } |
98 | 101 | ||
99 | for (S32 i = 0; i < 8; i++) | 102 | if (gNoRender) |
100 | { | 103 | { |
101 | mEdgeWaterObjects[i] = NULL; | 104 | return; |
102 | } | 105 | } |
103 | 106 | ||
104 | LLPointer<LLImageRaw> raw = new LLImageRaw(1,1,4); | 107 | LLPointer<LLImageRaw> raw = new LLImageRaw(1,1,4); |
@@ -1112,6 +1115,10 @@ void process_region_handshake(LLMessageSystem* msg, void** user_data) | |||
1112 | 1115 | ||
1113 | void send_agent_pause() | 1116 | void send_agent_pause() |
1114 | { | 1117 | { |
1118 | // *NOTE:Mani Pausing the mainloop timeout. Otherwise a long modal event may cause | ||
1119 | // the thread monitor to timeout. | ||
1120 | LLAppViewer::instance()->stopMainloopTimeout(); | ||
1121 | |||
1115 | // Note: used to check for LLWorld initialization before it became a singleton. | 1122 | // Note: used to check for LLWorld initialization before it became a singleton. |
1116 | // Rather than just remove this check I'm changing it to assure that the message | 1123 | // Rather than just remove this check I'm changing it to assure that the message |
1117 | // system has been initialized. -MG | 1124 | // system has been initialized. -MG |
@@ -1167,6 +1174,8 @@ void send_agent_resume() | |||
1167 | 1174 | ||
1168 | // Reset the FPS counter to avoid an invalid fps | 1175 | // Reset the FPS counter to avoid an invalid fps |
1169 | LLViewerStats::getInstance()->mFPSStat.start(); | 1176 | LLViewerStats::getInstance()->mFPSStat.start(); |
1177 | |||
1178 | LLAppViewer::instance()->startMainloopTimeout(); | ||
1170 | } | 1179 | } |
1171 | 1180 | ||
1172 | 1181 | ||
diff --git a/linden/indra/newview/llworldmap.cpp b/linden/indra/newview/llworldmap.cpp index 28ae94a..231f5dc 100644 --- a/linden/indra/newview/llworldmap.cpp +++ b/linden/indra/newview/llworldmap.cpp | |||
@@ -160,6 +160,11 @@ void LLWorldMap::reset() | |||
160 | 160 | ||
161 | mNeighborMapWidth = 0; | 161 | mNeighborMapWidth = 0; |
162 | mNeighborMapHeight = 0; | 162 | mNeighborMapHeight = 0; |
163 | |||
164 | for (S32 i=0; i<MAP_SIM_IMAGE_TYPES; i++) | ||
165 | { | ||
166 | mMapLayers[i].clear(); | ||
167 | } | ||
163 | } | 168 | } |
164 | 169 | ||
165 | void LLWorldMap::eraseItems() | 170 | void LLWorldMap::eraseItems() |
@@ -172,7 +177,6 @@ void LLWorldMap::eraseItems() | |||
172 | mInfohubs.clear(); | 177 | mInfohubs.clear(); |
173 | mPGEvents.clear(); | 178 | mPGEvents.clear(); |
174 | mMatureEvents.clear(); | 179 | mMatureEvents.clear(); |
175 | mPopular.clear(); | ||
176 | mLandForSale.clear(); | 180 | mLandForSale.clear(); |
177 | mClassifieds.clear(); | 181 | mClassifieds.clear(); |
178 | } | 182 | } |
@@ -299,12 +303,6 @@ void LLWorldMap::setCurrentLayer(S32 layer, bool request_layer) | |||
299 | sendItemRequest(MAP_ITEM_MATURE_EVENT); | 303 | sendItemRequest(MAP_ITEM_MATURE_EVENT); |
300 | } | 304 | } |
301 | 305 | ||
302 | if (mPopular.size() == 0) | ||
303 | { | ||
304 | // Request for popular | ||
305 | sendItemRequest(MAP_ITEM_POPULAR); | ||
306 | } | ||
307 | |||
308 | if (mLandForSale.size() == 0) | 306 | if (mLandForSale.size() == 0) |
309 | { | 307 | { |
310 | // Request for Land For Sale | 308 | // Request for Land For Sale |
@@ -763,12 +761,6 @@ void LLWorldMap::processMapItemReply(LLMessageSystem* msg, void**) | |||
763 | } | 761 | } |
764 | break; | 762 | break; |
765 | } | 763 | } |
766 | case MAP_ITEM_POPULAR: // popular | ||
767 | { | ||
768 | new_item.mPosGlobal.mdV[VZ] = (F64)extra2; | ||
769 | LLWorldMap::getInstance()->mPopular.push_back(new_item); | ||
770 | break; | ||
771 | } | ||
772 | case MAP_ITEM_LAND_FOR_SALE: // land for sale | 764 | case MAP_ITEM_LAND_FOR_SALE: // land for sale |
773 | { | 765 | { |
774 | new_item.mToolTip = llformat("%d sq. m. L$%d", new_item.mExtra, new_item.mExtra2); | 766 | new_item.mToolTip = llformat("%d sq. m. L$%d", new_item.mExtra, new_item.mExtra2); |
diff --git a/linden/indra/newview/llworldmap.h b/linden/indra/newview/llworldmap.h index 041dfc0..3f3a8e9 100644 --- a/linden/indra/newview/llworldmap.h +++ b/linden/indra/newview/llworldmap.h | |||
@@ -191,7 +191,6 @@ public: | |||
191 | item_info_list_t mInfohubs; | 191 | item_info_list_t mInfohubs; |
192 | item_info_list_t mPGEvents; | 192 | item_info_list_t mPGEvents; |
193 | item_info_list_t mMatureEvents; | 193 | item_info_list_t mMatureEvents; |
194 | item_info_list_t mPopular; | ||
195 | item_info_list_t mLandForSale; | 194 | item_info_list_t mLandForSale; |
196 | item_info_list_t mClassifieds; | 195 | item_info_list_t mClassifieds; |
197 | 196 | ||
diff --git a/linden/indra/newview/llworldmapview.cpp b/linden/indra/newview/llworldmapview.cpp index 1cc4921..a9e1061 100644 --- a/linden/indra/newview/llworldmapview.cpp +++ b/linden/indra/newview/llworldmapview.cpp | |||
@@ -38,7 +38,7 @@ | |||
38 | #include "llmath.h" // clampf() | 38 | #include "llmath.h" // clampf() |
39 | #include "llregionhandle.h" | 39 | #include "llregionhandle.h" |
40 | #include "lleventflags.h" | 40 | #include "lleventflags.h" |
41 | #include "llglimmediate.h" | 41 | #include "llrender.h" |
42 | 42 | ||
43 | #include "llagent.h" | 43 | #include "llagent.h" |
44 | #include "llcallingcard.h" | 44 | #include "llcallingcard.h" |
@@ -85,7 +85,6 @@ LLUIImagePtr LLWorldMapView::sTrackCircleImage = NULL; | |||
85 | LLUIImagePtr LLWorldMapView::sTrackArrowImage = NULL; | 85 | LLUIImagePtr LLWorldMapView::sTrackArrowImage = NULL; |
86 | 86 | ||
87 | LLUIImagePtr LLWorldMapView::sClassifiedsImage = NULL; | 87 | LLUIImagePtr LLWorldMapView::sClassifiedsImage = NULL; |
88 | LLUIImagePtr LLWorldMapView::sPopularImage = NULL; | ||
89 | LLUIImagePtr LLWorldMapView::sForSaleImage = NULL; | 88 | LLUIImagePtr LLWorldMapView::sForSaleImage = NULL; |
90 | 89 | ||
91 | F32 LLWorldMapView::sThresholdA = 48.f; | 90 | F32 LLWorldMapView::sThresholdA = 48.f; |
@@ -111,22 +110,21 @@ F32 CONE_SIZE = 0.6f; | |||
111 | 110 | ||
112 | void LLWorldMapView::initClass() | 111 | void LLWorldMapView::initClass() |
113 | { | 112 | { |
114 | LLUUID image_id; | ||
115 | |||
116 | sAvatarYouSmallImage = LLUI::getUIImage("map_avatar_you_8.tga"); | 113 | sAvatarYouSmallImage = LLUI::getUIImage("map_avatar_you_8.tga"); |
117 | sAvatarSmallImage = LLUI::getUIImage("map_avatar_8.tga"); | 114 | sAvatarSmallImage = LLUI::getUIImage("map_avatar_8.tga"); |
118 | sAvatarLargeImage = LLUI::getUIImage("map_avatar_16.tga"); | 115 | sAvatarLargeImage = LLUI::getUIImage("map_avatar_16.tga"); |
119 | sAvatarAboveImage = LLUI::getUIImage("map_avatar_above_8.tga"); | 116 | sAvatarAboveImage = LLUI::getUIImage("map_avatar_above_8.tga"); |
120 | sAvatarBelowImage = LLUI::getUIImage("map_avatar_below_8.tga"); | 117 | sAvatarBelowImage = LLUI::getUIImage("map_avatar_below_8.tga"); |
118 | |||
121 | sHomeImage = LLUI::getUIImage("map_home.tga"); | 119 | sHomeImage = LLUI::getUIImage("map_home.tga"); |
122 | sTelehubImage = LLUI::getUIImage("map_telehub.tga"); | 120 | sTelehubImage = LLUI::getUIImage("map_telehub.tga"); |
123 | sInfohubImage = LLUI::getUIImage("map_infohub.tga"); | 121 | sInfohubImage = LLUI::getUIImage("map_infohub.tga"); |
124 | sEventImage = LLUI::getUIImage("map_event.tga"); | 122 | sEventImage = LLUI::getUIImage("map_event.tga"); |
125 | sEventMatureImage = LLUI::getUIImage("map_event_mature.tga"); | 123 | sEventMatureImage = LLUI::getUIImage("map_event_mature.tga"); |
124 | |||
126 | sTrackCircleImage = LLUI::getUIImage("map_track_16.tga"); | 125 | sTrackCircleImage = LLUI::getUIImage("map_track_16.tga"); |
127 | sTrackArrowImage = LLUI::getUIImage("direction_arrow.tga"); | 126 | sTrackArrowImage = LLUI::getUIImage("direction_arrow.tga"); |
128 | sClassifiedsImage = LLUI::getUIImage("icon_top_pick.tga"); | 127 | sClassifiedsImage = LLUI::getUIImage("icon_top_pick.tga"); |
129 | sPopularImage = LLUI::getUIImage("icon_popular.tga"); | ||
130 | sForSaleImage = LLUI::getUIImage("icon_for_sale.tga"); | 128 | sForSaleImage = LLUI::getUIImage("icon_for_sale.tga"); |
131 | } | 129 | } |
132 | 130 | ||
@@ -138,15 +136,16 @@ void LLWorldMapView::cleanupClass() | |||
138 | sAvatarLargeImage = NULL; | 136 | sAvatarLargeImage = NULL; |
139 | sAvatarAboveImage = NULL; | 137 | sAvatarAboveImage = NULL; |
140 | sAvatarBelowImage = NULL; | 138 | sAvatarBelowImage = NULL; |
139 | |||
141 | sTelehubImage = NULL; | 140 | sTelehubImage = NULL; |
142 | sInfohubImage = NULL; | 141 | sInfohubImage = NULL; |
143 | sHomeImage = NULL; | 142 | sHomeImage = NULL; |
144 | sEventImage = NULL; | 143 | sEventImage = NULL; |
145 | sEventMatureImage = NULL; | 144 | sEventMatureImage = NULL; |
145 | |||
146 | sTrackCircleImage = NULL; | 146 | sTrackCircleImage = NULL; |
147 | sTrackArrowImage = NULL; | 147 | sTrackArrowImage = NULL; |
148 | sClassifiedsImage = NULL; | 148 | sClassifiedsImage = NULL; |
149 | sPopularImage = NULL; | ||
150 | sForSaleImage = NULL; | 149 | sForSaleImage = NULL; |
151 | } | 150 | } |
152 | 151 | ||
@@ -303,17 +302,17 @@ void LLWorldMapView::draw() | |||
303 | 302 | ||
304 | // Clear the background alpha to 0 | 303 | // Clear the background alpha to 0 |
305 | gGL.flush(); | 304 | gGL.flush(); |
306 | glColorMask(FALSE, FALSE, FALSE, TRUE); | 305 | gGL.setColorMask(false, true); |
307 | glAlphaFunc(GL_GEQUAL, 0.00f); | 306 | gGL.setAlphaRejectSettings(LLRender::CF_GREATER_EQUAL, 0.f); |
308 | gGL.blendFunc(GL_ONE, GL_ZERO); | 307 | gGL.setSceneBlendType(LLRender::BT_REPLACE); |
309 | gGL.color4f(0.0f, 0.0f, 0.0f, 0.0f); | 308 | gGL.color4f(0.0f, 0.0f, 0.0f, 0.0f); |
310 | gl_rect_2d(0, height, width, 0); | 309 | gl_rect_2d(0, height, width, 0); |
311 | } | 310 | } |
312 | 311 | ||
313 | gGL.flush(); | 312 | gGL.flush(); |
314 | glAlphaFunc(GL_GEQUAL, 0.01f); | 313 | gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); |
315 | glColorMask(TRUE, TRUE, TRUE, TRUE); | 314 | gGL.setColorMask(true, true); |
316 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 315 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
317 | 316 | ||
318 | F32 layer_alpha = 1.f; | 317 | F32 layer_alpha = 1.f; |
319 | 318 | ||
@@ -378,7 +377,7 @@ void LLWorldMapView::draw() | |||
378 | // Draw map image into RGB | 377 | // Draw map image into RGB |
379 | //gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 378 | //gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); |
380 | gGL.flush(); | 379 | gGL.flush(); |
381 | glColorMask(TRUE, TRUE, TRUE, FALSE); | 380 | gGL.setColorMask(true, false); |
382 | gGL.color4f(1.f, 1.f, 1.f, layer_alpha); | 381 | gGL.color4f(1.f, 1.f, 1.f, layer_alpha); |
383 | 382 | ||
384 | gGL.begin(LLVertexBuffer::QUADS); | 383 | gGL.begin(LLVertexBuffer::QUADS); |
@@ -394,7 +393,7 @@ void LLWorldMapView::draw() | |||
394 | 393 | ||
395 | // draw an alpha of 1 where the sims are visible | 394 | // draw an alpha of 1 where the sims are visible |
396 | gGL.flush(); | 395 | gGL.flush(); |
397 | glColorMask(FALSE, FALSE, FALSE, TRUE); | 396 | gGL.setColorMask(false, true); |
398 | gGL.color4f(1.f, 1.f, 1.f, 1.f); | 397 | gGL.color4f(1.f, 1.f, 1.f, 1.f); |
399 | 398 | ||
400 | gGL.begin(LLVertexBuffer::QUADS); | 399 | gGL.begin(LLVertexBuffer::QUADS); |
@@ -410,8 +409,8 @@ void LLWorldMapView::draw() | |||
410 | } | 409 | } |
411 | 410 | ||
412 | gGL.flush(); | 411 | gGL.flush(); |
413 | glAlphaFunc(GL_GEQUAL, 0.01f); | 412 | gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); |
414 | glColorMask(TRUE, TRUE, TRUE, TRUE); | 413 | gGL.setColorMask(true, true); |
415 | 414 | ||
416 | #if 1 | 415 | #if 1 |
417 | F32 sim_alpha = 1.f; | 416 | F32 sim_alpha = 1.f; |
@@ -534,7 +533,7 @@ void LLWorldMapView::draw() | |||
534 | LLGLSUIDefault gls_ui; | 533 | LLGLSUIDefault gls_ui; |
535 | LLViewerImage::bindTexture(simimage); | 534 | LLViewerImage::bindTexture(simimage); |
536 | 535 | ||
537 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 536 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
538 | F32 alpha = sim_alpha * info->mAlpha; | 537 | F32 alpha = sim_alpha * info->mAlpha; |
539 | gGL.color4f(1.f, 1.0f, 1.0f, alpha); | 538 | gGL.color4f(1.f, 1.0f, 1.0f, alpha); |
540 | 539 | ||
@@ -569,8 +568,8 @@ void LLWorldMapView::draw() | |||
569 | { | 568 | { |
570 | // draw an alpha of 1 where the sims are visible (except NULL sims) | 569 | // draw an alpha of 1 where the sims are visible (except NULL sims) |
571 | gGL.flush(); | 570 | gGL.flush(); |
572 | gGL.blendFunc(GL_ONE, GL_ZERO); | 571 | gGL.setSceneBlendType(LLRender::BT_REPLACE); |
573 | glColorMask(FALSE, FALSE, FALSE, TRUE); | 572 | gGL.setColorMask(false, true); |
574 | gGL.color4f(1.f, 1.f, 1.f, 1.f); | 573 | gGL.color4f(1.f, 1.f, 1.f, 1.f); |
575 | 574 | ||
576 | LLGLSNoTexture gls_no_texture; | 575 | LLGLSNoTexture gls_no_texture; |
@@ -582,14 +581,14 @@ void LLWorldMapView::draw() | |||
582 | gGL.end(); | 581 | gGL.end(); |
583 | 582 | ||
584 | gGL.flush(); | 583 | gGL.flush(); |
585 | glColorMask(TRUE, TRUE, TRUE, TRUE); | 584 | gGL.setColorMask(true, true); |
586 | } | 585 | } |
587 | } | 586 | } |
588 | 587 | ||
589 | if (info->mAccess == SIM_ACCESS_DOWN) | 588 | if (info->mAccess == SIM_ACCESS_DOWN) |
590 | { | 589 | { |
591 | // Draw a transparent red square over down sims | 590 | // Draw a transparent red square over down sims |
592 | gGL.blendFunc(GL_DST_ALPHA, GL_SRC_ALPHA); | 591 | gGL.blendFunc(LLRender::BF_DEST_ALPHA, LLRender::BF_SOURCE_ALPHA); |
593 | gGL.color4f(0.2f, 0.0f, 0.0f, 0.4f); | 592 | gGL.color4f(0.2f, 0.0f, 0.0f, 0.4f); |
594 | 593 | ||
595 | LLGLSNoTexture gls_no_texture; | 594 | LLGLSNoTexture gls_no_texture; |
@@ -606,7 +605,7 @@ void LLWorldMapView::draw() | |||
606 | && info->mAccess > SIM_ACCESS_PG | 605 | && info->mAccess > SIM_ACCESS_PG |
607 | && gAgent.isTeen()) | 606 | && gAgent.isTeen()) |
608 | { | 607 | { |
609 | gGL.blendFunc(GL_DST_ALPHA, GL_ZERO); | 608 | gGL.blendFunc(LLRender::BF_DEST_ALPHA, LLRender::BF_ZERO); |
610 | 609 | ||
611 | LLGLSNoTexture gls_no_texture; | 610 | LLGLSNoTexture gls_no_texture; |
612 | gGL.color3f(1.f, 0.f, 0.f); | 611 | gGL.color3f(1.f, 0.f, 0.f); |
@@ -667,14 +666,14 @@ void LLWorldMapView::draw() | |||
667 | LLGLSUIDefault gls_ui; | 666 | LLGLSUIDefault gls_ui; |
668 | { | 667 | { |
669 | LLGLSNoTexture gls_no_texture; | 668 | LLGLSNoTexture gls_no_texture; |
670 | glAlphaFunc(GL_GEQUAL, 0.0f); | 669 | gGL.setAlphaRejectSettings(LLRender::CF_GREATER_EQUAL, 0.f); |
671 | gGL.blendFunc(GL_ONE_MINUS_DST_ALPHA, GL_DST_ALPHA); | 670 | gGL.blendFunc(LLRender::BF_ONE_MINUS_DEST_ALPHA, LLRender::BF_DEST_ALPHA); |
672 | gGL.color4fv( mBackgroundColor.mV ); | 671 | gGL.color4fv( mBackgroundColor.mV ); |
673 | gl_rect_2d(0, height, width, 0); | 672 | gl_rect_2d(0, height, width, 0); |
674 | } | 673 | } |
675 | 674 | ||
676 | glAlphaFunc(GL_GEQUAL, 0.01f); | 675 | gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); |
677 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 676 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
678 | 677 | ||
679 | // Infohubs | 678 | // Infohubs |
680 | if (gSavedSettings.getBOOL("MapShowInfohubs")) //(gMapScale >= sThresholdB) | 679 | if (gSavedSettings.getBOOL("MapShowInfohubs")) //(gMapScale >= sThresholdB) |
@@ -705,11 +704,6 @@ void LLWorldMapView::draw() | |||
705 | drawGenericItems(LLWorldMap::getInstance()->mClassifieds, sClassifiedsImage); | 704 | drawGenericItems(LLWorldMap::getInstance()->mClassifieds, sClassifiedsImage); |
706 | } | 705 | } |
707 | 706 | ||
708 | if (gSavedSettings.getBOOL("MapShowPopular")) | ||
709 | { | ||
710 | drawGenericItems(LLWorldMap::getInstance()->mPopular, sPopularImage); | ||
711 | } | ||
712 | |||
713 | if (gSavedSettings.getBOOL("MapShowEvents")) | 707 | if (gSavedSettings.getBOOL("MapShowEvents")) |
714 | { | 708 | { |
715 | drawEvents(); | 709 | drawEvents(); |
@@ -1533,10 +1527,6 @@ void LLWorldMapView::handleClick(S32 x, S32 y, MASK mask, | |||
1533 | { | 1527 | { |
1534 | (*it).mSelected = FALSE; | 1528 | (*it).mSelected = FALSE; |
1535 | } | 1529 | } |
1536 | for (it = LLWorldMap::getInstance()->mPopular.begin(); it != LLWorldMap::getInstance()->mPopular.end(); ++it) | ||
1537 | { | ||
1538 | (*it).mSelected = FALSE; | ||
1539 | } | ||
1540 | for (it = LLWorldMap::getInstance()->mLandForSale.begin(); it != LLWorldMap::getInstance()->mLandForSale.end(); ++it) | 1530 | for (it = LLWorldMap::getInstance()->mLandForSale.begin(); it != LLWorldMap::getInstance()->mLandForSale.end(); ++it) |
1541 | { | 1531 | { |
1542 | (*it).mSelected = FALSE; | 1532 | (*it).mSelected = FALSE; |
@@ -1578,21 +1568,6 @@ void LLWorldMapView::handleClick(S32 x, S32 y, MASK mask, | |||
1578 | } | 1568 | } |
1579 | } | 1569 | } |
1580 | 1570 | ||
1581 | if (gSavedSettings.getBOOL("MapShowPopular")) | ||
1582 | { | ||
1583 | for (it = LLWorldMap::getInstance()->mPopular.begin(); it != LLWorldMap::getInstance()->mPopular.end(); ++it) | ||
1584 | { | ||
1585 | LLItemInfo& popular = *it; | ||
1586 | |||
1587 | if (checkItemHit(x, y, popular, id, true)) | ||
1588 | { | ||
1589 | *hit_type = MAP_ITEM_POPULAR; | ||
1590 | mItemPicked = TRUE; | ||
1591 | return; | ||
1592 | } | ||
1593 | } | ||
1594 | } | ||
1595 | |||
1596 | if (gSavedSettings.getBOOL("MapShowLandForSale")) | 1571 | if (gSavedSettings.getBOOL("MapShowLandForSale")) |
1597 | { | 1572 | { |
1598 | for (it = LLWorldMap::getInstance()->mLandForSale.begin(); it != LLWorldMap::getInstance()->mLandForSale.end(); ++it) | 1573 | for (it = LLWorldMap::getInstance()->mLandForSale.begin(); it != LLWorldMap::getInstance()->mLandForSale.end(); ++it) |
@@ -1796,12 +1771,6 @@ BOOL LLWorldMapView::handleDoubleClick( S32 x, S32 y, MASK mask ) | |||
1796 | LLFloaterDirectory::showEvents(event_id); | 1771 | LLFloaterDirectory::showEvents(event_id); |
1797 | break; | 1772 | break; |
1798 | } | 1773 | } |
1799 | case MAP_ITEM_POPULAR: | ||
1800 | { | ||
1801 | gFloaterWorldMap->close(); | ||
1802 | LLFloaterDirectory::showPopular(id); | ||
1803 | break; | ||
1804 | } | ||
1805 | case MAP_ITEM_LAND_FOR_SALE: | 1774 | case MAP_ITEM_LAND_FOR_SALE: |
1806 | { | 1775 | { |
1807 | gFloaterWorldMap->close(); | 1776 | gFloaterWorldMap->close(); |
diff --git a/linden/indra/newview/llworldmapview.h b/linden/indra/newview/llworldmapview.h index 18626b5..079cd47 100644 --- a/linden/indra/newview/llworldmapview.h +++ b/linden/indra/newview/llworldmapview.h | |||
@@ -149,7 +149,6 @@ public: | |||
149 | static LLUIImagePtr sTrackCircleImage; | 149 | static LLUIImagePtr sTrackCircleImage; |
150 | static LLUIImagePtr sTrackArrowImage; | 150 | static LLUIImagePtr sTrackArrowImage; |
151 | static LLUIImagePtr sClassifiedsImage; | 151 | static LLUIImagePtr sClassifiedsImage; |
152 | static LLUIImagePtr sPopularImage; | ||
153 | static LLUIImagePtr sForSaleImage; | 152 | static LLUIImagePtr sForSaleImage; |
154 | 153 | ||
155 | static F32 sThresholdA; | 154 | static F32 sThresholdA; |
diff --git a/linden/indra/newview/llxmlrpctransaction.cpp b/linden/indra/newview/llxmlrpctransaction.cpp index 7179104..9b49eb9 100644 --- a/linden/indra/newview/llxmlrpctransaction.cpp +++ b/linden/indra/newview/llxmlrpctransaction.cpp | |||
@@ -569,10 +569,10 @@ F64 LLXMLRPCTransaction::transferRate() | |||
569 | 569 | ||
570 | double rate_bits_per_sec = impl.mTransferInfo.mSpeedDownload * 8.0; | 570 | double rate_bits_per_sec = impl.mTransferInfo.mSpeedDownload * 8.0; |
571 | 571 | ||
572 | llinfos << "Buffer size: " << impl.mResponseText.size() << " B" << llendl; | 572 | LL_INFOS("AppInit") << "Buffer size: " << impl.mResponseText.size() << " B" << LL_ENDL; |
573 | llinfos << "Transfer size: " << impl.mTransferInfo.mSizeDownload << " B" << llendl; | 573 | LL_DEBUGS("AppInit") << "Transfer size: " << impl.mTransferInfo.mSizeDownload << " B" << LL_ENDL; |
574 | llinfos << "Transfer time: " << impl.mTransferInfo.mTotalTime << " s" << llendl; | 574 | LL_DEBUGS("AppInit") << "Transfer time: " << impl.mTransferInfo.mTotalTime << " s" << LL_ENDL; |
575 | llinfos << "Transfer rate: " << rate_bits_per_sec / 1000.0 << " Kb/s" << llendl; | 575 | LL_INFOS("AppInit") << "Transfer rate: " << rate_bits_per_sec / 1000.0 << " Kb/s" << LL_ENDL; |
576 | 576 | ||
577 | return rate_bits_per_sec; | 577 | return rate_bits_per_sec; |
578 | } | 578 | } |
diff --git a/linden/indra/newview/macview.xcodeproj/project.pbxproj b/linden/indra/newview/macview.xcodeproj/project.pbxproj index 33a709c..c817b27 100644 --- a/linden/indra/newview/macview.xcodeproj/project.pbxproj +++ b/linden/indra/newview/macview.xcodeproj/project.pbxproj | |||
@@ -23,6 +23,7 @@ | |||
23 | /* Begin PBXBuildFile section */ | 23 | /* Begin PBXBuildFile section */ |
24 | 0633E5D209E341F500712406 /* llfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0633E5D009E341F500712406 /* llfile.cpp */; }; | 24 | 0633E5D209E341F500712406 /* llfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0633E5D009E341F500712406 /* llfile.cpp */; }; |
25 | 0633E5D509E3421500712406 /* llstreamtools.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0633E5D309E3421500712406 /* llstreamtools.cpp */; }; | 25 | 0633E5D509E3421500712406 /* llstreamtools.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0633E5D309E3421500712406 /* llstreamtools.cpp */; }; |
26 | 07167BBC0DCA8059003FE31D /* llrender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07167BBA0DCA8059003FE31D /* llrender.cpp */; }; | ||
26 | 1A02016F0B7A85DE00D5C589 /* llbase64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A02016D0B7A85DE00D5C589 /* llbase64.cpp */; }; | 27 | 1A02016F0B7A85DE00D5C589 /* llbase64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A02016D0B7A85DE00D5C589 /* llbase64.cpp */; }; |
27 | 1A0201850B7A861200D5C589 /* llblowfishcipher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A02017E0B7A861200D5C589 /* llblowfishcipher.cpp */; }; | 28 | 1A0201850B7A861200D5C589 /* llblowfishcipher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A02017E0B7A861200D5C589 /* llblowfishcipher.cpp */; }; |
28 | 1A0201860B7A861200D5C589 /* llnullcipher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A0201810B7A861200D5C589 /* llnullcipher.cpp */; }; | 29 | 1A0201860B7A861200D5C589 /* llnullcipher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A0201810B7A861200D5C589 /* llnullcipher.cpp */; }; |
@@ -60,6 +61,9 @@ | |||
60 | 1AD394130CAB001B004BA76A /* llcommandhandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AD394120CAB001B004BA76A /* llcommandhandler.cpp */; }; | 61 | 1AD394130CAB001B004BA76A /* llcommandhandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AD394120CAB001B004BA76A /* llcommandhandler.cpp */; }; |
61 | 1AD61F6B0AC09B1900507FB9 /* llimview.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AD61F6A0AC09B1900507FB9 /* llimview.cpp */; }; | 62 | 1AD61F6B0AC09B1900507FB9 /* llimview.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AD61F6A0AC09B1900507FB9 /* llimview.cpp */; }; |
62 | 1ADE58940D7CCF6000183F7F /* llfloaterhud.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1ADE58920D7CCF6000183F7F /* llfloaterhud.cpp */; }; | 63 | 1ADE58940D7CCF6000183F7F /* llfloaterhud.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1ADE58920D7CCF6000183F7F /* llfloaterhud.cpp */; }; |
64 | 1AE0820F0DA708E900575141 /* llanimstatelabels.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AE082090DA708E900575141 /* llanimstatelabels.cpp */; }; | ||
65 | 1AE082100DA708E900575141 /* llstylemap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AE0820B0DA708E900575141 /* llstylemap.cpp */; }; | ||
66 | 1AE082110DA708E900575141 /* lltrans.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AE0820D0DA708E900575141 /* lltrans.cpp */; }; | ||
63 | 1AE5D7120844FBD300278605 /* llwebbrowserctrl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AE5D7100844FBD300278605 /* llwebbrowserctrl.cpp */; }; | 67 | 1AE5D7120844FBD300278605 /* llwebbrowserctrl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AE5D7100844FBD300278605 /* llwebbrowserctrl.cpp */; }; |
64 | 1AEF0A580B2DFE67003F107C /* llctrlselectioninterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AEF0A560B2DFE67003F107C /* llctrlselectioninterface.cpp */; }; | 68 | 1AEF0A580B2DFE67003F107C /* llctrlselectioninterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AEF0A560B2DFE67003F107C /* llctrlselectioninterface.cpp */; }; |
65 | 1AEF0A5B0B2DFE72003F107C /* llrootview.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AEF0A5A0B2DFE72003F107C /* llrootview.cpp */; }; | 69 | 1AEF0A5B0B2DFE72003F107C /* llrootview.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AEF0A5A0B2DFE72003F107C /* llrootview.cpp */; }; |
@@ -557,7 +561,6 @@ | |||
557 | A241CB7D07B3DE0D001A39E3 /* llviewerprecompiledheaders.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A241CB7B07B3DE0D001A39E3 /* llviewerprecompiledheaders.cpp */; }; | 561 | A241CB7D07B3DE0D001A39E3 /* llviewerprecompiledheaders.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A241CB7B07B3DE0D001A39E3 /* llviewerprecompiledheaders.cpp */; }; |
558 | A241CB9207B3E383001A39E3 /* llmessagethrottle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A241CB8E07B3E383001A39E3 /* llmessagethrottle.cpp */; }; | 562 | A241CB9207B3E383001A39E3 /* llmessagethrottle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A241CB8E07B3E383001A39E3 /* llmessagethrottle.cpp */; }; |
559 | A241CB9507B3E3A7001A39E3 /* llperlin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A241CB9407B3E3A7001A39E3 /* llperlin.cpp */; }; | 563 | A241CB9507B3E3A7001A39E3 /* llperlin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A241CB9407B3E3A7001A39E3 /* llperlin.cpp */; }; |
560 | A243B29A0C6769AC004DFF19 /* llglimmediate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A243B2980C6769AC004DFF19 /* llglimmediate.cpp */; }; | ||
561 | A26560520C9F53CC004042A0 /* llfloaterhardwaresettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A26560500C9F53CC004042A0 /* llfloaterhardwaresettings.cpp */; }; | 564 | A26560520C9F53CC004042A0 /* llfloaterhardwaresettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A26560500C9F53CC004042A0 /* llfloaterhardwaresettings.cpp */; }; |
562 | A2A8C5480C649EE20001FEB2 /* llmultislider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A2A8C5440C649EE20001FEB2 /* llmultislider.cpp */; }; | 565 | A2A8C5480C649EE20001FEB2 /* llmultislider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A2A8C5440C649EE20001FEB2 /* llmultislider.cpp */; }; |
563 | A2A8C5490C649EE20001FEB2 /* llmultisliderctrl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A2A8C5460C649EE20001FEB2 /* llmultisliderctrl.cpp */; }; | 566 | A2A8C5490C649EE20001FEB2 /* llmultisliderctrl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A2A8C5460C649EE20001FEB2 /* llmultisliderctrl.cpp */; }; |
@@ -836,6 +839,8 @@ | |||
836 | FDE8766409BEA3C700AF6316 /* libvorbisenc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FDE8765609BEA39600AF6316 /* libvorbisenc.a */; }; | 839 | FDE8766409BEA3C700AF6316 /* libvorbisenc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FDE8765609BEA39600AF6316 /* libvorbisenc.a */; }; |
837 | FDE8766509BEA3C700AF6316 /* libvorbisfile.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FDE8765709BEA39600AF6316 /* libvorbisfile.a */; }; | 840 | FDE8766509BEA3C700AF6316 /* libvorbisfile.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FDE8765709BEA39600AF6316 /* libvorbisfile.a */; }; |
838 | FDE8766609BEA3C800AF6316 /* libxmlrpc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FDE8765809BEA39700AF6316 /* libxmlrpc.a */; }; | 841 | FDE8766609BEA3C800AF6316 /* libxmlrpc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FDE8765809BEA39700AF6316 /* libxmlrpc.a */; }; |
842 | FE065EA40D8B0EE60089E9F1 /* llwatchdog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE065EA10D8B0EE60089E9F1 /* llwatchdog.cpp */; }; | ||
843 | FE065EA50D8B0EE60089E9F1 /* llwindebug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE065EA30D8B0EE60089E9F1 /* llwindebug.cpp */; }; | ||
839 | FE0AEE2D0D2D96D20097256A /* libllmozlib2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = FE0AEE2C0D2D96D20097256A /* libllmozlib2.dylib */; }; | 844 | FE0AEE2D0D2D96D20097256A /* libllmozlib2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = FE0AEE2C0D2D96D20097256A /* libllmozlib2.dylib */; }; |
840 | FE0AEE4D0D2D9C6E0097256A /* llparcelselection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE0AEE4A0D2D9C6E0097256A /* llparcelselection.cpp */; }; | 845 | FE0AEE4D0D2D9C6E0097256A /* llparcelselection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE0AEE4A0D2D9C6E0097256A /* llparcelselection.cpp */; }; |
841 | FE42C3140D231D1A00D9F143 /* llcommandlineparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE42C3120D231D1A00D9F143 /* llcommandlineparser.cpp */; }; | 846 | FE42C3140D231D1A00D9F143 /* llcommandlineparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE42C3120D231D1A00D9F143 /* llcommandlineparser.cpp */; }; |
@@ -988,6 +993,8 @@ | |||
988 | 0633E5D109E341F500712406 /* llfile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llfile.h; sourceTree = "<group>"; }; | 993 | 0633E5D109E341F500712406 /* llfile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llfile.h; sourceTree = "<group>"; }; |
989 | 0633E5D309E3421500712406 /* llstreamtools.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llstreamtools.cpp; sourceTree = "<group>"; }; | 994 | 0633E5D309E3421500712406 /* llstreamtools.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llstreamtools.cpp; sourceTree = "<group>"; }; |
990 | 0633E5D409E3421500712406 /* llstreamtools.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llstreamtools.h; sourceTree = "<group>"; }; | 995 | 0633E5D409E3421500712406 /* llstreamtools.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llstreamtools.h; sourceTree = "<group>"; }; |
996 | 07167BBA0DCA8059003FE31D /* llrender.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = llrender.cpp; sourceTree = "<group>"; }; | ||
997 | 07167BBB0DCA8059003FE31D /* llrender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = llrender.h; sourceTree = "<group>"; }; | ||
991 | 0867D6ABFE840B52C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; }; | 998 | 0867D6ABFE840B52C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; }; |
992 | 1A02016D0B7A85DE00D5C589 /* llbase64.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llbase64.cpp; sourceTree = "<group>"; }; | 999 | 1A02016D0B7A85DE00D5C589 /* llbase64.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llbase64.cpp; sourceTree = "<group>"; }; |
993 | 1A02016E0B7A85DE00D5C589 /* llbase64.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llbase64.h; sourceTree = "<group>"; }; | 1000 | 1A02016E0B7A85DE00D5C589 /* llbase64.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llbase64.h; sourceTree = "<group>"; }; |
@@ -1075,6 +1082,12 @@ | |||
1075 | 1AD61F6C0AC09B2600507FB9 /* llimview.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llimview.h; sourceTree = "<group>"; }; | 1082 | 1AD61F6C0AC09B2600507FB9 /* llimview.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llimview.h; sourceTree = "<group>"; }; |
1076 | 1ADE58920D7CCF6000183F7F /* llfloaterhud.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = llfloaterhud.cpp; sourceTree = "<group>"; }; | 1083 | 1ADE58920D7CCF6000183F7F /* llfloaterhud.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = llfloaterhud.cpp; sourceTree = "<group>"; }; |
1077 | 1ADE58930D7CCF6000183F7F /* llfloaterhud.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = llfloaterhud.h; sourceTree = "<group>"; }; | 1084 | 1ADE58930D7CCF6000183F7F /* llfloaterhud.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = llfloaterhud.h; sourceTree = "<group>"; }; |
1085 | 1AE082090DA708E900575141 /* llanimstatelabels.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = llanimstatelabels.cpp; sourceTree = "<group>"; }; | ||
1086 | 1AE0820A0DA708E900575141 /* llanimstatelabels.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = llanimstatelabels.h; sourceTree = "<group>"; }; | ||
1087 | 1AE0820B0DA708E900575141 /* llstylemap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = llstylemap.cpp; sourceTree = "<group>"; }; | ||
1088 | 1AE0820C0DA708E900575141 /* llstylemap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = llstylemap.h; sourceTree = "<group>"; }; | ||
1089 | 1AE0820D0DA708E900575141 /* lltrans.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lltrans.cpp; sourceTree = "<group>"; }; | ||
1090 | 1AE0820E0DA708E900575141 /* lltrans.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lltrans.h; sourceTree = "<group>"; }; | ||
1078 | 1AE5D70F0844FBD200278605 /* llwebbrowserctrl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llwebbrowserctrl.h; sourceTree = "<group>"; }; | 1091 | 1AE5D70F0844FBD200278605 /* llwebbrowserctrl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llwebbrowserctrl.h; sourceTree = "<group>"; }; |
1079 | 1AE5D7100844FBD300278605 /* llwebbrowserctrl.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llwebbrowserctrl.cpp; sourceTree = "<group>"; }; | 1092 | 1AE5D7100844FBD300278605 /* llwebbrowserctrl.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llwebbrowserctrl.cpp; sourceTree = "<group>"; }; |
1080 | 1AEF0A560B2DFE67003F107C /* llctrlselectioninterface.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llctrlselectioninterface.cpp; sourceTree = "<group>"; }; | 1093 | 1AEF0A560B2DFE67003F107C /* llctrlselectioninterface.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llctrlselectioninterface.cpp; sourceTree = "<group>"; }; |
@@ -2113,8 +2126,6 @@ | |||
2113 | A241CB8E07B3E383001A39E3 /* llmessagethrottle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llmessagethrottle.cpp; sourceTree = "<group>"; }; | 2126 | A241CB8E07B3E383001A39E3 /* llmessagethrottle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llmessagethrottle.cpp; sourceTree = "<group>"; }; |
2114 | A241CB8F07B3E383001A39E3 /* llmessagethrottle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llmessagethrottle.h; sourceTree = "<group>"; }; | 2127 | A241CB8F07B3E383001A39E3 /* llmessagethrottle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llmessagethrottle.h; sourceTree = "<group>"; }; |
2115 | A241CB9407B3E3A7001A39E3 /* llperlin.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llperlin.cpp; sourceTree = "<group>"; }; | 2128 | A241CB9407B3E3A7001A39E3 /* llperlin.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llperlin.cpp; sourceTree = "<group>"; }; |
2116 | A243B2980C6769AC004DFF19 /* llglimmediate.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llglimmediate.cpp; sourceTree = "<group>"; }; | ||
2117 | A243B2990C6769AC004DFF19 /* llglimmediate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llglimmediate.h; sourceTree = "<group>"; }; | ||
2118 | A26560500C9F53CC004042A0 /* llfloaterhardwaresettings.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llfloaterhardwaresettings.cpp; sourceTree = "<group>"; }; | 2129 | A26560500C9F53CC004042A0 /* llfloaterhardwaresettings.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llfloaterhardwaresettings.cpp; sourceTree = "<group>"; }; |
2119 | A26560510C9F53CC004042A0 /* llfloaterhardwaresettings.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llfloaterhardwaresettings.h; sourceTree = "<group>"; }; | 2130 | A26560510C9F53CC004042A0 /* llfloaterhardwaresettings.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llfloaterhardwaresettings.h; sourceTree = "<group>"; }; |
2120 | A29852A10BC6BC630005FA09 /* llhtmlhelp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llhtmlhelp.h; sourceTree = "<group>"; }; | 2131 | A29852A10BC6BC630005FA09 /* llhtmlhelp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llhtmlhelp.h; sourceTree = "<group>"; }; |
@@ -2396,6 +2407,9 @@ | |||
2396 | FDE8765609BEA39600AF6316 /* libvorbisenc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libvorbisenc.a; sourceTree = BUILT_PRODUCTS_DIR; }; | 2407 | FDE8765609BEA39600AF6316 /* libvorbisenc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libvorbisenc.a; sourceTree = BUILT_PRODUCTS_DIR; }; |
2397 | FDE8765709BEA39600AF6316 /* libvorbisfile.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libvorbisfile.a; sourceTree = BUILT_PRODUCTS_DIR; }; | 2408 | FDE8765709BEA39600AF6316 /* libvorbisfile.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libvorbisfile.a; sourceTree = BUILT_PRODUCTS_DIR; }; |
2398 | FDE8765809BEA39700AF6316 /* libxmlrpc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libxmlrpc.a; sourceTree = BUILT_PRODUCTS_DIR; }; | 2409 | FDE8765809BEA39700AF6316 /* libxmlrpc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libxmlrpc.a; sourceTree = BUILT_PRODUCTS_DIR; }; |
2410 | FE065EA10D8B0EE60089E9F1 /* llwatchdog.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = llwatchdog.cpp; sourceTree = "<group>"; }; | ||
2411 | FE065EA30D8B0EE60089E9F1 /* llwindebug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = llwindebug.cpp; sourceTree = "<group>"; }; | ||
2412 | FE065EA60D8B0F170089E9F1 /* llwatchdog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = llwatchdog.h; sourceTree = "<group>"; }; | ||
2399 | FE0AEE2C0D2D96D20097256A /* libllmozlib2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libllmozlib2.dylib; path = "../../libraries/universal-darwin/lib_debug/libllmozlib2.dylib"; sourceTree = SOURCE_ROOT; }; | 2413 | FE0AEE2C0D2D96D20097256A /* libllmozlib2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libllmozlib2.dylib; path = "../../libraries/universal-darwin/lib_debug/libllmozlib2.dylib"; sourceTree = SOURCE_ROOT; }; |
2400 | FE0AEE480D2D9C6E0097256A /* lllcd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lllcd.cpp; sourceTree = SOURCE_ROOT; }; | 2414 | FE0AEE480D2D9C6E0097256A /* lllcd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lllcd.cpp; sourceTree = SOURCE_ROOT; }; |
2401 | FE0AEE490D2D9C6E0097256A /* lllcd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lllcd.h; sourceTree = SOURCE_ROOT; }; | 2415 | FE0AEE490D2D9C6E0097256A /* lllcd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lllcd.h; sourceTree = SOURCE_ROOT; }; |
@@ -2654,10 +2668,19 @@ | |||
2654 | children = ( | 2668 | children = ( |
2655 | AA38F8F00D8A3687003B39F9 /* llfloaterjoystick.cpp */, | 2669 | AA38F8F00D8A3687003B39F9 /* llfloaterjoystick.cpp */, |
2656 | AA38F8F10D8A3687003B39F9 /* llfloaterjoystick.h */, | 2670 | AA38F8F10D8A3687003B39F9 /* llfloaterjoystick.h */, |
2671 | 1AE082090DA708E900575141 /* llanimstatelabels.cpp */, | ||
2672 | 1AE0820A0DA708E900575141 /* llanimstatelabels.h */, | ||
2673 | 1AE0820B0DA708E900575141 /* llstylemap.cpp */, | ||
2674 | 1AE0820C0DA708E900575141 /* llstylemap.h */, | ||
2675 | 1AE0820D0DA708E900575141 /* lltrans.cpp */, | ||
2676 | 1AE0820E0DA708E900575141 /* lltrans.h */, | ||
2657 | 1ADE58920D7CCF6000183F7F /* llfloaterhud.cpp */, | 2677 | 1ADE58920D7CCF6000183F7F /* llfloaterhud.cpp */, |
2658 | 1ADE58930D7CCF6000183F7F /* llfloaterhud.h */, | 2678 | 1ADE58930D7CCF6000183F7F /* llfloaterhud.h */, |
2659 | D1BB623B0D91BBEB00001516 /* llfloatervoicedevicesettings.cpp */, | 2679 | D1BB623B0D91BBEB00001516 /* llfloatervoicedevicesettings.cpp */, |
2660 | D1BB623C0D91BBEC00001516 /* llfloatervoicedevicesettings.h */, | 2680 | D1BB623C0D91BBEC00001516 /* llfloatervoicedevicesettings.h */, |
2681 | FE065EA60D8B0F170089E9F1 /* llwatchdog.h */, | ||
2682 | FE065EA10D8B0EE60089E9F1 /* llwatchdog.cpp */, | ||
2683 | FE065EA30D8B0EE60089E9F1 /* llwindebug.cpp */, | ||
2661 | FE0AEE480D2D9C6E0097256A /* lllcd.cpp */, | 2684 | FE0AEE480D2D9C6E0097256A /* lllcd.cpp */, |
2662 | FE0AEE490D2D9C6E0097256A /* lllcd.h */, | 2685 | FE0AEE490D2D9C6E0097256A /* lllcd.h */, |
2663 | FE0AEE4A0D2D9C6E0097256A /* llparcelselection.cpp */, | 2686 | FE0AEE4A0D2D9C6E0097256A /* llparcelselection.cpp */, |
@@ -4235,8 +4258,8 @@ | |||
4235 | D628314D0B4F3FA100F8830F /* llrender */ = { | 4258 | D628314D0B4F3FA100F8830F /* llrender */ = { |
4236 | isa = PBXGroup; | 4259 | isa = PBXGroup; |
4237 | children = ( | 4260 | children = ( |
4238 | A243B2980C6769AC004DFF19 /* llglimmediate.cpp */, | 4261 | 07167BBA0DCA8059003FE31D /* llrender.cpp */, |
4239 | A243B2990C6769AC004DFF19 /* llglimmediate.h */, | 4262 | 07167BBB0DCA8059003FE31D /* llrender.h */, |
4240 | A30273550B3A13D800704420 /* llvertexbuffer.cpp */, | 4263 | A30273550B3A13D800704420 /* llvertexbuffer.cpp */, |
4241 | A30273560B3A13D800704420 /* llvertexbuffer.h */, | 4264 | A30273560B3A13D800704420 /* llvertexbuffer.h */, |
4242 | D628315B0B4F3FA100F8830F /* llfont.cpp */, | 4265 | D628315B0B4F3FA100F8830F /* llfont.cpp */, |
@@ -5018,7 +5041,7 @@ | |||
5018 | A2A8C5680C649F490001FEB2 /* llwldaycycle.cpp in Sources */, | 5041 | A2A8C5680C649F490001FEB2 /* llwldaycycle.cpp in Sources */, |
5019 | A2A8C5690C649F490001FEB2 /* llwlparammanager.cpp in Sources */, | 5042 | A2A8C5690C649F490001FEB2 /* llwlparammanager.cpp in Sources */, |
5020 | A2A8C56A0C649F490001FEB2 /* llwlparamset.cpp in Sources */, | 5043 | A2A8C56A0C649F490001FEB2 /* llwlparamset.cpp in Sources */, |
5021 | A243B29A0C6769AC004DFF19 /* llglimmediate.cpp in Sources */, | 5044 | 07167BBC0DCA8059003FE31D /* llrender.cpp in Sources */, |
5022 | 1CBB67D80C7CCCB2007DAAAE /* llfloaterwater.cpp in Sources */, | 5045 | 1CBB67D80C7CCCB2007DAAAE /* llfloaterwater.cpp in Sources */, |
5023 | 1CBB67D90C7CCCB2007DAAAE /* llwaterparammanager.cpp in Sources */, | 5046 | 1CBB67D90C7CCCB2007DAAAE /* llwaterparammanager.cpp in Sources */, |
5024 | 1CBB67DA0C7CCCB2007DAAAE /* llwaterparamset.cpp in Sources */, | 5047 | 1CBB67DA0C7CCCB2007DAAAE /* llwaterparamset.cpp in Sources */, |
@@ -5027,10 +5050,15 @@ | |||
5027 | A26560520C9F53CC004042A0 /* llfloaterhardwaresettings.cpp in Sources */, | 5050 | A26560520C9F53CC004042A0 /* llfloaterhardwaresettings.cpp in Sources */, |
5028 | D1CA83CE0D62634400C61743 /* llfloaterstats.cpp in Sources */, | 5051 | D1CA83CE0D62634400C61743 /* llfloaterstats.cpp in Sources */, |
5029 | 1ADE58940D7CCF6000183F7F /* llfloaterhud.cpp in Sources */, | 5052 | 1ADE58940D7CCF6000183F7F /* llfloaterhud.cpp in Sources */, |
5053 | FE065EA40D8B0EE60089E9F1 /* llwatchdog.cpp in Sources */, | ||
5054 | FE065EA50D8B0EE60089E9F1 /* llwindebug.cpp in Sources */, | ||
5030 | CB0873B60D62226B009600F8 /* lldelayedgestureerror.cpp in Sources */, | 5055 | CB0873B60D62226B009600F8 /* lldelayedgestureerror.cpp in Sources */, |
5031 | 1A531BFC0D81056E00DEB305 /* llfloatercamera.cpp in Sources */, | 5056 | 1A531BFC0D81056E00DEB305 /* llfloatercamera.cpp in Sources */, |
5032 | D1BB623D0D91BBEC00001516 /* llfloatervoicedevicesettings.cpp in Sources */, | 5057 | D1BB623D0D91BBEC00001516 /* llfloatervoicedevicesettings.cpp in Sources */, |
5033 | AA38F8F20D8A3687003B39F9 /* llfloaterjoystick.cpp in Sources */, | 5058 | AA38F8F20D8A3687003B39F9 /* llfloaterjoystick.cpp in Sources */, |
5059 | 1AE0820F0DA708E900575141 /* llanimstatelabels.cpp in Sources */, | ||
5060 | 1AE082100DA708E900575141 /* llstylemap.cpp in Sources */, | ||
5061 | 1AE082110DA708E900575141 /* lltrans.cpp in Sources */, | ||
5034 | ); | 5062 | ); |
5035 | runOnlyForDeploymentPostprocessing = 0; | 5063 | runOnlyForDeploymentPostprocessing = 0; |
5036 | }; | 5064 | }; |
diff --git a/linden/indra/newview/newview.vcproj b/linden/indra/newview/newview.vcproj index 3fe72e6..a378434 100644 --- a/linden/indra/newview/newview.vcproj +++ b/linden/indra/newview/newview.vcproj | |||
@@ -295,6 +295,9 @@ | |||
295 | RelativePath=".\llagentpilot.cpp"> | 295 | RelativePath=".\llagentpilot.cpp"> |
296 | </File> | 296 | </File> |
297 | <File | 297 | <File |
298 | RelativePath=".\llanimstatelabels.cpp"> | ||
299 | </File> | ||
300 | <File | ||
298 | RelativePath=".\llappviewer.cpp"> | 301 | RelativePath=".\llappviewer.cpp"> |
299 | </File> | 302 | </File> |
300 | <File | 303 | <File |
@@ -1057,6 +1060,9 @@ | |||
1057 | RelativePath=".\llstatview.cpp"> | 1060 | RelativePath=".\llstatview.cpp"> |
1058 | </File> | 1061 | </File> |
1059 | <File | 1062 | <File |
1063 | RelativePath=".\llstylemap.cpp"> | ||
1064 | </File> | ||
1065 | <File | ||
1060 | RelativePath=".\llsurface.cpp"> | 1066 | RelativePath=".\llsurface.cpp"> |
1061 | </File> | 1067 | </File> |
1062 | <File | 1068 | <File |
@@ -1141,6 +1147,9 @@ | |||
1141 | RelativePath=".\lltracker.cpp"> | 1147 | RelativePath=".\lltracker.cpp"> |
1142 | </File> | 1148 | </File> |
1143 | <File | 1149 | <File |
1150 | RelativePath=".\lltrans.cpp"> | ||
1151 | </File> | ||
1152 | <File | ||
1144 | RelativePath=".\lluploaddialog.cpp"> | 1153 | RelativePath=".\lluploaddialog.cpp"> |
1145 | </File> | 1154 | </File> |
1146 | <File | 1155 | <File |
@@ -1404,6 +1413,9 @@ | |||
1404 | RelativePath=".\llvowlsky.cpp"> | 1413 | RelativePath=".\llvowlsky.cpp"> |
1405 | </File> | 1414 | </File> |
1406 | <File | 1415 | <File |
1416 | RelativePath=".\llwatchdog.cpp"> | ||
1417 | </File> | ||
1418 | <File | ||
1407 | RelativePath=".\llwaterparammanager.cpp"> | 1419 | RelativePath=".\llwaterparammanager.cpp"> |
1408 | </File> | 1420 | </File> |
1409 | <File | 1421 | <File |
@@ -1478,6 +1490,9 @@ | |||
1478 | RelativePath=".\llagentpilot.h"> | 1490 | RelativePath=".\llagentpilot.h"> |
1479 | </File> | 1491 | </File> |
1480 | <File | 1492 | <File |
1493 | RelativePath=".\llanimstatelabels.h"> | ||
1494 | </File> | ||
1495 | <File | ||
1481 | RelativePath=".\llappearance.h"> | 1496 | RelativePath=".\llappearance.h"> |
1482 | </File> | 1497 | </File> |
1483 | <File | 1498 | <File |
@@ -1646,6 +1661,9 @@ | |||
1646 | RelativePath=".\llfilist.h"> | 1661 | RelativePath=".\llfilist.h"> |
1647 | </File> | 1662 | </File> |
1648 | <File | 1663 | <File |
1664 | RelativePath="..\llcommon\llfindlocale.h"> | ||
1665 | </File> | ||
1666 | <File | ||
1649 | RelativePath=".\llfirstuse.h"> | 1667 | RelativePath=".\llfirstuse.h"> |
1650 | </File> | 1668 | </File> |
1651 | <File | 1669 | <File |
@@ -2252,6 +2270,9 @@ | |||
2252 | RelativePath=".\llstatview.h"> | 2270 | RelativePath=".\llstatview.h"> |
2253 | </File> | 2271 | </File> |
2254 | <File | 2272 | <File |
2273 | RelativePath=".\llstylemap.h"> | ||
2274 | </File> | ||
2275 | <File | ||
2255 | RelativePath=".\llsurface.h"> | 2276 | RelativePath=".\llsurface.h"> |
2256 | </File> | 2277 | </File> |
2257 | <File | 2278 | <File |
@@ -2342,6 +2363,9 @@ | |||
2342 | RelativePath=".\lltracker.h"> | 2363 | RelativePath=".\lltracker.h"> |
2343 | </File> | 2364 | </File> |
2344 | <File | 2365 | <File |
2366 | RelativePath=".\lltrans.h"> | ||
2367 | </File> | ||
2368 | <File | ||
2345 | RelativePath=".\lluploaddialog.h"> | 2369 | RelativePath=".\lluploaddialog.h"> |
2346 | </File> | 2370 | </File> |
2347 | <File | 2371 | <File |
@@ -2540,6 +2564,9 @@ | |||
2540 | RelativePath=".\llvowlsky.h"> | 2564 | RelativePath=".\llvowlsky.h"> |
2541 | </File> | 2565 | </File> |
2542 | <File | 2566 | <File |
2567 | RelativePath=".\llwatchdog.h"> | ||
2568 | </File> | ||
2569 | <File | ||
2543 | RelativePath=".\llwearable.h"> | 2570 | RelativePath=".\llwearable.h"> |
2544 | </File> | 2571 | </File> |
2545 | <File | 2572 | <File |
diff --git a/linden/indra/newview/newview_vc8.vcproj b/linden/indra/newview/newview_vc8.vcproj index 24a3459..9d9a9d2 100644 --- a/linden/indra/newview/newview_vc8.vcproj +++ b/linden/indra/newview/newview_vc8.vcproj | |||
@@ -69,7 +69,7 @@ | |||
69 | /> | 69 | /> |
70 | <Tool | 70 | <Tool |
71 | Name="VCLinkerTool" | 71 | Name="VCLinkerTool" |
72 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-sgd-1_34_1.lib libboost_signals-vc80-mt-sgd-1_34_1.lib libboost_program_options-vc80-mt-sgd-1_34_1.lib libcurld.lib libeay32.lib libexpatMT.lib OpenJPEGd.lib llmozlib2d-vc80.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib EZ_LCD_Wrapper_vc8.lib lgLcd.lib libndofdev.lib" | 72 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-sgd-1_34_1.lib libboost_signals-vc80-mt-sgd-1_34_1.lib libboost_program_options-vc80-mt-sgd-1_34_1.lib libcurld.lib libeay32.lib libexpatMT.lib OpenJPEGd.lib llmozlib2d-vc80.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib EZ_LCD_Wrapper_vc8.lib lgLcd.lib libndofdev.lib" |
73 | OutputFile="$(ConfigurationName)/debugview.exe" | 73 | OutputFile="$(ConfigurationName)/debugview.exe" |
74 | LinkIncremental="2" | 74 | LinkIncremental="2" |
75 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_debug"" | 75 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_debug"" |
@@ -166,7 +166,7 @@ | |||
166 | /> | 166 | /> |
167 | <Tool | 167 | <Tool |
168 | Name="VCLinkerTool" | 168 | Name="VCLinkerTool" |
169 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s-1_34_1.lib libboost_signals-vc80-mt-s-1_34_1.lib libboost_program_options-vc80-mt-s-1_34_1.lib libcurl.lib libeay32.lib libexpatMT.lib OpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib2-vc80.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib EZ_LCD_Wrapper_vc8.lib lgLcd.lib libndofdev.lib" | 169 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s-1_34_1.lib libboost_signals-vc80-mt-s-1_34_1.lib libboost_program_options-vc80-mt-s-1_34_1.lib libcurl.lib libeay32.lib libexpatMT.lib OpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib2-vc80.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib EZ_LCD_Wrapper_vc8.lib lgLcd.lib libndofdev.lib" |
170 | OutputFile="$(ConfigurationName)/newview.exe" | 170 | OutputFile="$(ConfigurationName)/newview.exe" |
171 | LinkIncremental="2" | 171 | LinkIncremental="2" |
172 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_release"" | 172 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_release"" |
@@ -263,7 +263,7 @@ | |||
263 | <Tool | 263 | <Tool |
264 | Name="VCLinkerTool" | 264 | Name="VCLinkerTool" |
265 | LinkLibraryDependencies="false" | 265 | LinkLibraryDependencies="false" |
266 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s-1_34_1.lib libboost_signals-vc80-mt-s-1_34_1.lib libcurl.lib libeay32.lib libexpatMT.lib OpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib2-vc80.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_compile.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib EZ_LCD_Wrapper_vc8.lib lgLcd.lib libndofdev.lib" | 266 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s-1_34_1.lib libboost_signals-vc80-mt-s-1_34_1.lib libcurl.lib libeay32.lib libexpatMT.lib OpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib2-vc80.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_compile.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib EZ_LCD_Wrapper_vc8.lib lgLcd.lib libndofdev.lib" |
267 | OutputFile="$(ConfigurationName)/SecondLife.exe" | 267 | OutputFile="$(ConfigurationName)/SecondLife.exe" |
268 | LinkIncremental="0" | 268 | LinkIncremental="0" |
269 | AdditionalLibraryDirectories=""../lib_release/i686-win32";"../../libraries/i686-win32/lib_release"" | 269 | AdditionalLibraryDirectories=""../lib_release/i686-win32";"../../libraries/i686-win32/lib_release"" |
@@ -357,7 +357,7 @@ | |||
357 | /> | 357 | /> |
358 | <Tool | 358 | <Tool |
359 | Name="VCLinkerTool" | 359 | Name="VCLinkerTool" |
360 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s-1_34_1.lib libboost_signals-vc80-mt-s-1_34_1.lib libboost_program_options-vc80-mt-s-1_34_1.lib libcurl.lib libeay32.lib libexpatMT.lib OpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib2-vc80.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib lgLcd.lib EZ_LCD_Wrapper_vc8.lib libndofdev.lib" | 360 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s-1_34_1.lib libboost_signals-vc80-mt-s-1_34_1.lib libboost_program_options-vc80-mt-s-1_34_1.lib libcurl.lib libeay32.lib libexpatMT.lib OpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib2-vc80.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib lgLcd.lib EZ_LCD_Wrapper_vc8.lib libndofdev.lib" |
361 | OutputFile="$(ConfigurationName)/newview_noopt.exe" | 361 | OutputFile="$(ConfigurationName)/newview_noopt.exe" |
362 | LinkIncremental="2" | 362 | LinkIncremental="2" |
363 | AdditionalLibraryDirectories=""../lib_releasenoopt/i686-win32";"../../libraries/i686-win32/lib_release"" | 363 | AdditionalLibraryDirectories=""../lib_releasenoopt/i686-win32";"../../libraries/i686-win32/lib_release"" |
@@ -421,6 +421,10 @@ | |||
421 | > | 421 | > |
422 | </File> | 422 | </File> |
423 | <File | 423 | <File |
424 | RelativePath=".\llanimstatelabels.cpp" | ||
425 | > | ||
426 | </File> | ||
427 | <File | ||
424 | RelativePath=".\llappviewer.cpp" | 428 | RelativePath=".\llappviewer.cpp" |
425 | > | 429 | > |
426 | </File> | 430 | </File> |
@@ -1437,6 +1441,10 @@ | |||
1437 | > | 1441 | > |
1438 | </File> | 1442 | </File> |
1439 | <File | 1443 | <File |
1444 | RelativePath=".\llstylemap.cpp" | ||
1445 | > | ||
1446 | </File> | ||
1447 | <File | ||
1440 | RelativePath=".\llsurface.cpp" | 1448 | RelativePath=".\llsurface.cpp" |
1441 | > | 1449 | > |
1442 | </File> | 1450 | </File> |
@@ -1549,6 +1557,10 @@ | |||
1549 | > | 1557 | > |
1550 | </File> | 1558 | </File> |
1551 | <File | 1559 | <File |
1560 | RelativePath=".\lltrans.cpp" | ||
1561 | > | ||
1562 | </File> | ||
1563 | <File | ||
1552 | RelativePath=".\lluploaddialog.cpp" | 1564 | RelativePath=".\lluploaddialog.cpp" |
1553 | > | 1565 | > |
1554 | </File> | 1566 | </File> |
@@ -1905,6 +1917,10 @@ | |||
1905 | > | 1917 | > |
1906 | </File> | 1918 | </File> |
1907 | <File | 1919 | <File |
1920 | RelativePath=".\llwatchdog.cpp" | ||
1921 | > | ||
1922 | </File> | ||
1923 | <File | ||
1908 | RelativePath=".\llwaterparammanager.cpp" | 1924 | RelativePath=".\llwaterparammanager.cpp" |
1909 | > | 1925 | > |
1910 | </File> | 1926 | </File> |
@@ -1995,6 +2011,10 @@ | |||
1995 | > | 2011 | > |
1996 | </File> | 2012 | </File> |
1997 | <File | 2013 | <File |
2014 | RelativePath=".\llanimstatelabels.h" | ||
2015 | > | ||
2016 | </File> | ||
2017 | <File | ||
1998 | RelativePath=".\llappearance.h" | 2018 | RelativePath=".\llappearance.h" |
1999 | > | 2019 | > |
2000 | </File> | 2020 | </File> |
@@ -2679,6 +2699,10 @@ | |||
2679 | > | 2699 | > |
2680 | </File> | 2700 | </File> |
2681 | <File | 2701 | <File |
2702 | RelativePath=".\llmimetypes.h" | ||
2703 | > | ||
2704 | </File> | ||
2705 | <File | ||
2682 | RelativePath=".\llmorphview.h" | 2706 | RelativePath=".\llmorphview.h" |
2683 | > | 2707 | > |
2684 | </File> | 2708 | </File> |
@@ -3031,6 +3055,10 @@ | |||
3031 | > | 3055 | > |
3032 | </File> | 3056 | </File> |
3033 | <File | 3057 | <File |
3058 | RelativePath=".\llstylemap.h" | ||
3059 | > | ||
3060 | </File> | ||
3061 | <File | ||
3034 | RelativePath=".\llsurface.h" | 3062 | RelativePath=".\llsurface.h" |
3035 | > | 3063 | > |
3036 | </File> | 3064 | </File> |
@@ -3151,6 +3179,10 @@ | |||
3151 | > | 3179 | > |
3152 | </File> | 3180 | </File> |
3153 | <File | 3181 | <File |
3182 | RelativePath=".\lltrans.h" | ||
3183 | > | ||
3184 | </File> | ||
3185 | <File | ||
3154 | RelativePath=".\lluiconstants.h" | 3186 | RelativePath=".\lluiconstants.h" |
3155 | > | 3187 | > |
3156 | </File> | 3188 | </File> |
@@ -3423,6 +3455,10 @@ | |||
3423 | > | 3455 | > |
3424 | </File> | 3456 | </File> |
3425 | <File | 3457 | <File |
3458 | RelativePath=".\llwatchdog.h" | ||
3459 | > | ||
3460 | </File> | ||
3461 | <File | ||
3426 | RelativePath=".\llwaterparammanager.h" | 3462 | RelativePath=".\llwaterparammanager.h" |
3427 | > | 3463 | > |
3428 | </File> | 3464 | </File> |
diff --git a/linden/indra/newview/newview_vc9.vcproj b/linden/indra/newview/newview_vc9.vcproj index 40851cb..6b693b5 100644 --- a/linden/indra/newview/newview_vc9.vcproj +++ b/linden/indra/newview/newview_vc9.vcproj | |||
@@ -406,6 +406,10 @@ | |||
406 | > | 406 | > |
407 | </File> | 407 | </File> |
408 | <File | 408 | <File |
409 | RelativePath=".\llanimstatelabels.cpp" | ||
410 | > | ||
411 | </File> | ||
412 | <File | ||
409 | RelativePath=".\llappviewer.cpp" | 413 | RelativePath=".\llappviewer.cpp" |
410 | > | 414 | > |
411 | </File> | 415 | </File> |
@@ -1422,6 +1426,10 @@ | |||
1422 | > | 1426 | > |
1423 | </File> | 1427 | </File> |
1424 | <File | 1428 | <File |
1429 | RelativePath=".\llstylemap.cpp" | ||
1430 | > | ||
1431 | </File> | ||
1432 | <File | ||
1425 | RelativePath=".\llsurface.cpp" | 1433 | RelativePath=".\llsurface.cpp" |
1426 | > | 1434 | > |
1427 | </File> | 1435 | </File> |
@@ -1534,6 +1542,10 @@ | |||
1534 | > | 1542 | > |
1535 | </File> | 1543 | </File> |
1536 | <File | 1544 | <File |
1545 | RelativePath=".\lltrans.cpp" | ||
1546 | > | ||
1547 | </File> | ||
1548 | <File | ||
1537 | RelativePath=".\lluploaddialog.cpp" | 1549 | RelativePath=".\lluploaddialog.cpp" |
1538 | > | 1550 | > |
1539 | </File> | 1551 | </File> |
@@ -1890,6 +1902,10 @@ | |||
1890 | > | 1902 | > |
1891 | </File> | 1903 | </File> |
1892 | <File | 1904 | <File |
1905 | RelativePath=".\llwatchdog.cpp" | ||
1906 | > | ||
1907 | </File> | ||
1908 | <File | ||
1893 | RelativePath=".\llwaterparammanager.cpp" | 1909 | RelativePath=".\llwaterparammanager.cpp" |
1894 | > | 1910 | > |
1895 | </File> | 1911 | </File> |
@@ -1980,6 +1996,10 @@ | |||
1980 | > | 1996 | > |
1981 | </File> | 1997 | </File> |
1982 | <File | 1998 | <File |
1999 | RelativePath=".\llanimstatelabels.h" | ||
2000 | > | ||
2001 | </File> | ||
2002 | <File | ||
1983 | RelativePath=".\llappearance.h" | 2003 | RelativePath=".\llappearance.h" |
1984 | > | 2004 | > |
1985 | </File> | 2005 | </File> |
@@ -2664,6 +2684,10 @@ | |||
2664 | > | 2684 | > |
2665 | </File> | 2685 | </File> |
2666 | <File | 2686 | <File |
2687 | RelativePath=".\llmimetypes.h" | ||
2688 | > | ||
2689 | </File> | ||
2690 | <File | ||
2667 | RelativePath=".\llmorphview.h" | 2691 | RelativePath=".\llmorphview.h" |
2668 | > | 2692 | > |
2669 | </File> | 2693 | </File> |
@@ -3016,6 +3040,10 @@ | |||
3016 | > | 3040 | > |
3017 | </File> | 3041 | </File> |
3018 | <File | 3042 | <File |
3043 | RelativePath=".\llstylemap.h" | ||
3044 | > | ||
3045 | </File> | ||
3046 | <File | ||
3019 | RelativePath=".\llsurface.h" | 3047 | RelativePath=".\llsurface.h" |
3020 | > | 3048 | > |
3021 | </File> | 3049 | </File> |
@@ -3136,6 +3164,10 @@ | |||
3136 | > | 3164 | > |
3137 | </File> | 3165 | </File> |
3138 | <File | 3166 | <File |
3167 | RelativePath=".\lltrans.h" | ||
3168 | > | ||
3169 | </File> | ||
3170 | <File | ||
3139 | RelativePath=".\lluiconstants.h" | 3171 | RelativePath=".\lluiconstants.h" |
3140 | > | 3172 | > |
3141 | </File> | 3173 | </File> |
@@ -3408,6 +3440,10 @@ | |||
3408 | > | 3440 | > |
3409 | </File> | 3441 | </File> |
3410 | <File | 3442 | <File |
3443 | RelativePath=".\llwatchdog.h" | ||
3444 | > | ||
3445 | </File> | ||
3446 | <File | ||
3411 | RelativePath=".\llwaterparammanager.h" | 3447 | RelativePath=".\llwaterparammanager.h" |
3412 | > | 3448 | > |
3413 | </File> | 3449 | </File> |
diff --git a/linden/indra/newview/pipeline.cpp b/linden/indra/newview/pipeline.cpp index 5ec3310..20fd5a7 100644 --- a/linden/indra/newview/pipeline.cpp +++ b/linden/indra/newview/pipeline.cpp | |||
@@ -50,7 +50,7 @@ | |||
50 | #include "v3color.h" | 50 | #include "v3color.h" |
51 | #include "llui.h" | 51 | #include "llui.h" |
52 | #include "llglheaders.h" | 52 | #include "llglheaders.h" |
53 | #include "llglimmediate.h" | 53 | #include "llrender.h" |
54 | 54 | ||
55 | // newview includes | 55 | // newview includes |
56 | #include "llagent.h" | 56 | #include "llagent.h" |
@@ -125,6 +125,7 @@ extern S32 gBoxFrame; | |||
125 | extern BOOL gRenderLightGlows; | 125 | extern BOOL gRenderLightGlows; |
126 | extern BOOL gHideSelectedObjects; | 126 | extern BOOL gHideSelectedObjects; |
127 | extern BOOL gDisplaySwapBuffers; | 127 | extern BOOL gDisplaySwapBuffers; |
128 | extern BOOL gDebugGL; | ||
128 | 129 | ||
129 | // hack counter for rendering a fixed number of frames after toggling | 130 | // hack counter for rendering a fixed number of frames after toggling |
130 | // fullscreen to work around DEV-5361 | 131 | // fullscreen to work around DEV-5361 |
@@ -134,6 +135,7 @@ BOOL gAvatarBacklight = FALSE; | |||
134 | 135 | ||
135 | BOOL gRenderForSelect = FALSE; | 136 | BOOL gRenderForSelect = FALSE; |
136 | 137 | ||
138 | BOOL gDebugPipeline = FALSE; | ||
137 | LLPipeline gPipeline; | 139 | LLPipeline gPipeline; |
138 | const LLMatrix4* gGLLastMatrix = NULL; | 140 | const LLMatrix4* gGLLastMatrix = NULL; |
139 | 141 | ||
@@ -504,11 +506,7 @@ void LLPipeline::createGLBuffers() | |||
504 | res = 128; | 506 | res = 128; |
505 | mCubeBuffer = new LLCubeMap(); | 507 | mCubeBuffer = new LLCubeMap(); |
506 | mCubeBuffer->initGL(); | 508 | mCubeBuffer->initGL(); |
507 | glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, mCubeBuffer->getGLName()); | 509 | mCubeBuffer->setReflection(); |
508 | glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR); | ||
509 | glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR); | ||
510 | glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); | ||
511 | glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); | ||
512 | 510 | ||
513 | for (U32 i = 0; i < 6; i++) | 511 | for (U32 i = 0; i < 6; i++) |
514 | { | 512 | { |
@@ -1178,7 +1176,7 @@ void LLPipeline::updateCull(LLCamera& camera, LLCullResult& result, S32 water_cl | |||
1178 | LLGLDisable test(GL_ALPHA_TEST); | 1176 | LLGLDisable test(GL_ALPHA_TEST); |
1179 | LLViewerImage::unbindTexture(0, GL_TEXTURE_2D); | 1177 | LLViewerImage::unbindTexture(0, GL_TEXTURE_2D); |
1180 | 1178 | ||
1181 | glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); | 1179 | gGL.setColorMask(false, false); |
1182 | LLGLDepthTest depth(GL_TRUE, GL_FALSE); | 1180 | LLGLDepthTest depth(GL_TRUE, GL_FALSE); |
1183 | 1181 | ||
1184 | for (LLWorld::region_list_t::iterator iter = LLWorld::getInstance()->getRegionList().begin(); | 1182 | for (LLWorld::region_list_t::iterator iter = LLWorld::getInstance()->getRegionList().begin(); |
@@ -1236,7 +1234,7 @@ void LLPipeline::updateCull(LLCamera& camera, LLCullResult& result, S32 water_cl | |||
1236 | sCull->pushDrawable(gSky.mVOGroundp->mDrawable); | 1234 | sCull->pushDrawable(gSky.mVOGroundp->mDrawable); |
1237 | } | 1235 | } |
1238 | 1236 | ||
1239 | glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_FALSE); | 1237 | gGL.setColorMask(true, false); |
1240 | glPopMatrix(); | 1238 | glPopMatrix(); |
1241 | 1239 | ||
1242 | if (to_texture) | 1240 | if (to_texture) |
@@ -1313,11 +1311,11 @@ void LLPipeline::doOcclusion(LLCamera& camera) | |||
1313 | LLVertexBuffer::unbind(); | 1311 | LLVertexBuffer::unbind(); |
1314 | if (hasRenderDebugMask(LLPipeline::RENDER_DEBUG_OCCLUSION)) | 1312 | if (hasRenderDebugMask(LLPipeline::RENDER_DEBUG_OCCLUSION)) |
1315 | { | 1313 | { |
1316 | glColorMask(GL_TRUE, GL_FALSE, GL_FALSE, GL_FALSE); | 1314 | gGL.setColorMask(true, false, false, false); |
1317 | } | 1315 | } |
1318 | else | 1316 | else |
1319 | { | 1317 | { |
1320 | glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); | 1318 | gGL.setColorMask(false, false); |
1321 | } | 1319 | } |
1322 | LLGLDisable blend(GL_BLEND); | 1320 | LLGLDisable blend(GL_BLEND); |
1323 | LLGLDisable test(GL_ALPHA_TEST); | 1321 | LLGLDisable test(GL_ALPHA_TEST); |
@@ -1334,7 +1332,7 @@ void LLPipeline::doOcclusion(LLCamera& camera) | |||
1334 | } | 1332 | } |
1335 | } | 1333 | } |
1336 | 1334 | ||
1337 | glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_FALSE); | 1335 | gGL.setColorMask(true, false); |
1338 | glFlush(); | 1336 | glFlush(); |
1339 | } | 1337 | } |
1340 | 1338 | ||
@@ -2262,11 +2260,9 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate) | |||
2262 | LLVertexBuffer::unbind(); | 2260 | LLVertexBuffer::unbind(); |
2263 | 2261 | ||
2264 | // Do verification of GL state | 2262 | // Do verification of GL state |
2265 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
2266 | LLGLState::checkStates(); | 2263 | LLGLState::checkStates(); |
2267 | LLGLState::checkTextureChannels(); | 2264 | LLGLState::checkTextureChannels(); |
2268 | LLGLState::checkClientArrays(); | 2265 | LLGLState::checkClientArrays(); |
2269 | #endif | ||
2270 | if (mRenderDebugMask & RENDER_DEBUG_VERIFY) | 2266 | if (mRenderDebugMask & RENDER_DEBUG_VERIFY) |
2271 | { | 2267 | { |
2272 | if (!verify()) | 2268 | if (!verify()) |
@@ -2384,19 +2380,18 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate) | |||
2384 | } | 2380 | } |
2385 | poolp->endRenderPass(i); | 2381 | poolp->endRenderPass(i); |
2386 | LLVertexBuffer::unbind(); | 2382 | LLVertexBuffer::unbind(); |
2387 | #ifndef LL_RELEASE_FOR_DOWNLOAD | 2383 | if (gDebugGL || gDebugPipeline) |
2388 | # if LL_DEBUG_GL | ||
2389 | GLint depth; | ||
2390 | glGetIntegerv(GL_MODELVIEW_STACK_DEPTH, &depth); | ||
2391 | if (depth > 3) | ||
2392 | { | 2384 | { |
2393 | llerrs << "GL matrix stack corrupted!" << llendl; | 2385 | GLint depth; |
2386 | glGetIntegerv(GL_MODELVIEW_STACK_DEPTH, &depth); | ||
2387 | if (depth > 3) | ||
2388 | { | ||
2389 | llerrs << "GL matrix stack corrupted!" << llendl; | ||
2390 | } | ||
2391 | LLGLState::checkStates(); | ||
2392 | LLGLState::checkTextureChannels(); | ||
2393 | LLGLState::checkClientArrays(); | ||
2394 | } | 2394 | } |
2395 | LLGLState::checkStates(); | ||
2396 | LLGLState::checkTextureChannels(); | ||
2397 | LLGLState::checkClientArrays(); | ||
2398 | # endif | ||
2399 | #endif | ||
2400 | } | 2395 | } |
2401 | } | 2396 | } |
2402 | else | 2397 | else |
@@ -2417,11 +2412,9 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate) | |||
2417 | } | 2412 | } |
2418 | 2413 | ||
2419 | LLVertexBuffer::unbind(); | 2414 | LLVertexBuffer::unbind(); |
2420 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
2421 | LLGLState::checkStates(); | 2415 | LLGLState::checkStates(); |
2422 | LLGLState::checkTextureChannels(); | 2416 | LLGLState::checkTextureChannels(); |
2423 | LLGLState::checkClientArrays(); | 2417 | LLGLState::checkClientArrays(); |
2424 | #endif | ||
2425 | 2418 | ||
2426 | gGLLastMatrix = NULL; | 2419 | gGLLastMatrix = NULL; |
2427 | glLoadMatrixd(gGLModelView); | 2420 | glLoadMatrixd(gGLModelView); |
@@ -2436,12 +2429,10 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate) | |||
2436 | 2429 | ||
2437 | stop_glerror(); | 2430 | stop_glerror(); |
2438 | 2431 | ||
2439 | #ifndef LL_RELEASE_FOR_DOWNLOAD | 2432 | LLGLState::checkStates(); |
2440 | LLGLState::checkStates(); | 2433 | LLGLState::checkTextureChannels(); |
2441 | LLGLState::checkTextureChannels(); | 2434 | LLGLState::checkClientArrays(); |
2442 | LLGLState::checkClientArrays(); | 2435 | |
2443 | #endif | ||
2444 | |||
2445 | if (!sReflectionRender) | 2436 | if (!sReflectionRender) |
2446 | { | 2437 | { |
2447 | renderHighlights(); | 2438 | renderHighlights(); |
@@ -2475,11 +2466,9 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate) | |||
2475 | 2466 | ||
2476 | LLVertexBuffer::unbind(); | 2467 | LLVertexBuffer::unbind(); |
2477 | 2468 | ||
2478 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
2479 | LLGLState::checkStates(); | 2469 | LLGLState::checkStates(); |
2480 | LLGLState::checkTextureChannels(); | 2470 | LLGLState::checkTextureChannels(); |
2481 | LLGLState::checkClientArrays(); | 2471 | LLGLState::checkClientArrays(); |
2482 | #endif | ||
2483 | } | 2472 | } |
2484 | 2473 | ||
2485 | void LLPipeline::renderGeomDeferred() | 2474 | void LLPipeline::renderGeomDeferred() |
@@ -2514,7 +2503,7 @@ void LLPipeline::renderDebug() | |||
2514 | 2503 | ||
2515 | gGLLastMatrix = NULL; | 2504 | gGLLastMatrix = NULL; |
2516 | glLoadMatrixd(gGLModelView); | 2505 | glLoadMatrixd(gGLModelView); |
2517 | glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_FALSE); | 2506 | gGL.setColorMask(true, false); |
2518 | 2507 | ||
2519 | // Debug stuff. | 2508 | // Debug stuff. |
2520 | for (LLWorld::region_list_t::iterator iter = LLWorld::getInstance()->getRegionList().begin(); | 2509 | for (LLWorld::region_list_t::iterator iter = LLWorld::getInstance()->getRegionList().begin(); |
@@ -2585,7 +2574,7 @@ void LLPipeline::renderForSelect(std::set<LLViewerObject*>& objects) | |||
2585 | { | 2574 | { |
2586 | assertInitialized(); | 2575 | assertInitialized(); |
2587 | 2576 | ||
2588 | glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_FALSE); | 2577 | gGL.setColorMask(true, false); |
2589 | gPipeline.resetDrawOrders(); | 2578 | gPipeline.resetDrawOrders(); |
2590 | 2579 | ||
2591 | for (std::set<LLViewerObject*>::iterator iter = objects.begin(); iter != objects.end(); ++iter) | 2580 | for (std::set<LLViewerObject*>::iterator iter = objects.begin(); iter != objects.end(); ++iter) |
@@ -2607,12 +2596,11 @@ void LLPipeline::renderForSelect(std::set<LLViewerObject*>& objects) | |||
2607 | LLVertexBuffer::unbind(); | 2596 | LLVertexBuffer::unbind(); |
2608 | 2597 | ||
2609 | //for each drawpool | 2598 | //for each drawpool |
2610 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
2611 | LLGLState::checkStates(); | 2599 | LLGLState::checkStates(); |
2612 | LLGLState::checkTextureChannels(); | 2600 | LLGLState::checkTextureChannels(); |
2613 | LLGLState::checkClientArrays(); | 2601 | LLGLState::checkClientArrays(); |
2614 | U32 last_type = 0; | 2602 | U32 last_type = 0; |
2615 | #endif | 2603 | |
2616 | for (pool_set_t::iterator iter = mPools.begin(); iter != mPools.end(); ++iter) | 2604 | for (pool_set_t::iterator iter = mPools.begin(); iter != mPools.end(); ++iter) |
2617 | { | 2605 | { |
2618 | LLDrawPool *poolp = *iter; | 2606 | LLDrawPool *poolp = *iter; |
@@ -2624,7 +2612,6 @@ void LLPipeline::renderForSelect(std::set<LLViewerObject*>& objects) | |||
2624 | gGLLastMatrix = NULL; | 2612 | gGLLastMatrix = NULL; |
2625 | glLoadMatrixd(gGLModelView); | 2613 | glLoadMatrixd(gGLModelView); |
2626 | 2614 | ||
2627 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
2628 | if (poolp->getType() != last_type) | 2615 | if (poolp->getType() != last_type) |
2629 | { | 2616 | { |
2630 | last_type = poolp->getType(); | 2617 | last_type = poolp->getType(); |
@@ -2632,32 +2619,21 @@ void LLPipeline::renderForSelect(std::set<LLViewerObject*>& objects) | |||
2632 | LLGLState::checkTextureChannels(); | 2619 | LLGLState::checkTextureChannels(); |
2633 | LLGLState::checkClientArrays(); | 2620 | LLGLState::checkClientArrays(); |
2634 | } | 2621 | } |
2635 | #endif | ||
2636 | } | 2622 | } |
2637 | } | 2623 | } |
2638 | 2624 | ||
2639 | LLGLEnable alpha_test(GL_ALPHA_TEST); | 2625 | LLGLEnable alpha_test(GL_ALPHA_TEST); |
2640 | if (gPickTransparent) | 2626 | if (gPickTransparent) |
2641 | { | 2627 | { |
2642 | glAlphaFunc(GL_GEQUAL, 0.0f); | 2628 | gGL.setAlphaRejectSettings(LLRender::CF_GREATER_EQUAL, 0.f); |
2643 | } | 2629 | } |
2644 | else | 2630 | else |
2645 | { | 2631 | { |
2646 | glAlphaFunc(GL_GREATER, 0.2f); | 2632 | gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.2f); |
2647 | } | 2633 | } |
2648 | 2634 | ||
2649 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 2635 | gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_VERT_COLOR); |
2650 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); | 2636 | gGL.getTexUnit(0)->setTextureAlphaBlend(LLTexUnit::TBO_MULT, LLTexUnit::TBS_TEX_ALPHA, LLTexUnit::TBS_VERT_ALPHA); |
2651 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_MODULATE); | ||
2652 | |||
2653 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PRIMARY_COLOR); | ||
2654 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
2655 | |||
2656 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_TEXTURE); | ||
2657 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA); | ||
2658 | |||
2659 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_ALPHA_ARB, GL_PRIMARY_COLOR_ARB); | ||
2660 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_ALPHA_ARB, GL_SRC_ALPHA); | ||
2661 | 2637 | ||
2662 | U32 prim_mask = LLVertexBuffer::MAP_VERTEX | | 2638 | U32 prim_mask = LLVertexBuffer::MAP_VERTEX | |
2663 | LLVertexBuffer::MAP_TEXCOORD; | 2639 | LLVertexBuffer::MAP_TEXCOORD; |
@@ -2758,12 +2734,11 @@ void LLPipeline::renderForSelect(std::set<LLViewerObject*>& objects) | |||
2758 | glViewport(gGLViewport[0], gGLViewport[1], gGLViewport[2], gGLViewport[3]); | 2734 | glViewport(gGLViewport[0], gGLViewport[1], gGLViewport[2], gGLViewport[3]); |
2759 | } | 2735 | } |
2760 | 2736 | ||
2761 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 2737 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
2762 | 2738 | ||
2763 | LLVertexBuffer::unbind(); | 2739 | LLVertexBuffer::unbind(); |
2764 | LLVertexBuffer::unbind(); | ||
2765 | 2740 | ||
2766 | glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); | 2741 | gGL.setColorMask(true, true); |
2767 | } | 2742 | } |
2768 | 2743 | ||
2769 | void LLPipeline::renderFaceForUVSelect(LLFace* facep) | 2744 | void LLPipeline::renderFaceForUVSelect(LLFace* facep) |
@@ -4118,11 +4093,9 @@ void apply_cube_face_rotation(U32 face) | |||
4118 | } | 4093 | } |
4119 | void LLPipeline::generateReflectionMap(LLCubeMap* cube_map, LLCamera& cube_cam) | 4094 | void LLPipeline::generateReflectionMap(LLCubeMap* cube_map, LLCamera& cube_cam) |
4120 | { | 4095 | { |
4121 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
4122 | LLGLState::checkStates(); | 4096 | LLGLState::checkStates(); |
4123 | LLGLState::checkTextureChannels(); | 4097 | LLGLState::checkTextureChannels(); |
4124 | LLGLState::checkClientArrays(); | 4098 | LLGLState::checkClientArrays(); |
4125 | #endif | ||
4126 | 4099 | ||
4127 | assertInitialized(); | 4100 | assertInitialized(); |
4128 | 4101 | ||
@@ -4140,10 +4113,7 @@ void LLPipeline::generateReflectionMap(LLCubeMap* cube_map, LLCamera& cube_cam) | |||
4140 | glGetTexLevelParameteriv(GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB, 0, GL_TEXTURE_WIDTH, &width); | 4113 | glGetTexLevelParameteriv(GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB, 0, GL_TEXTURE_WIDTH, &width); |
4141 | if (width != res) | 4114 | if (width != res) |
4142 | { | 4115 | { |
4143 | glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR); | 4116 | cube_map->setReflection(); |
4144 | glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR); | ||
4145 | glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); | ||
4146 | glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); | ||
4147 | 4117 | ||
4148 | for (U32 i = 0; i < 6; i++) | 4118 | for (U32 i = 0; i < 6; i++) |
4149 | { | 4119 | { |
@@ -4224,9 +4194,9 @@ void LLPipeline::generateReflectionMap(LLCubeMap* cube_map, LLCamera& cube_cam) | |||
4224 | gPipeline.stateSort(cube_cam, result); | 4194 | gPipeline.stateSort(cube_cam, result); |
4225 | 4195 | ||
4226 | glClearColor(0,0,0,0); | 4196 | glClearColor(0,0,0,0); |
4227 | glColorMask(GL_TRUE,GL_TRUE,GL_TRUE,GL_TRUE); | 4197 | gGL.setColorMask(true, true); |
4228 | glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); | 4198 | glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); |
4229 | glColorMask(GL_TRUE,GL_TRUE,GL_TRUE,GL_FALSE); | 4199 | gGL.setColorMask(true, false); |
4230 | stop_glerror(); | 4200 | stop_glerror(); |
4231 | gPipeline.renderGeom(cube_cam); | 4201 | gPipeline.renderGeom(cube_cam); |
4232 | } | 4202 | } |
@@ -4254,12 +4224,9 @@ void LLPipeline::generateReflectionMap(LLCubeMap* cube_map, LLCamera& cube_cam) | |||
4254 | LLPipeline::sSkipUpdate = FALSE; | 4224 | LLPipeline::sSkipUpdate = FALSE; |
4255 | LLPipeline::sReflectionRender = FALSE; | 4225 | LLPipeline::sReflectionRender = FALSE; |
4256 | 4226 | ||
4257 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
4258 | LLGLState::checkStates(); | 4227 | LLGLState::checkStates(); |
4259 | LLGLState::checkTextureChannels(); | 4228 | LLGLState::checkTextureChannels(); |
4260 | LLGLState::checkClientArrays(); | 4229 | LLGLState::checkClientArrays(); |
4261 | #endif | ||
4262 | |||
4263 | } | 4230 | } |
4264 | 4231 | ||
4265 | //send cube map vertices and texture coordinates | 4232 | //send cube map vertices and texture coordinates |
@@ -4336,18 +4303,16 @@ void validate_framebuffer_object() | |||
4336 | 4303 | ||
4337 | void LLPipeline::blurReflectionMap(LLCubeMap* cube_in, LLCubeMap* cube_out) | 4304 | void LLPipeline::blurReflectionMap(LLCubeMap* cube_in, LLCubeMap* cube_out) |
4338 | { | 4305 | { |
4339 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
4340 | LLGLState::checkStates(); | 4306 | LLGLState::checkStates(); |
4341 | LLGLState::checkTextureChannels(); | 4307 | LLGLState::checkTextureChannels(); |
4342 | LLGLState::checkClientArrays(); | 4308 | LLGLState::checkClientArrays(); |
4343 | #endif | ||
4344 | 4309 | ||
4345 | assertInitialized(); | 4310 | assertInitialized(); |
4346 | 4311 | ||
4347 | U32 res = (U32) gSavedSettings.getS32("RenderReflectionRes"); | 4312 | U32 res = (U32) gSavedSettings.getS32("RenderReflectionRes"); |
4348 | enableLightsFullbright(LLColor4::white); | 4313 | enableLightsFullbright(LLColor4::white); |
4349 | LLGLDepthTest depth(GL_FALSE); | 4314 | LLGLDepthTest depth(GL_FALSE); |
4350 | glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); | 4315 | gGL.setColorMask(true, true); |
4351 | glMatrixMode(GL_PROJECTION); | 4316 | glMatrixMode(GL_PROJECTION); |
4352 | glPushMatrix(); | 4317 | glPushMatrix(); |
4353 | glLoadIdentity(); | 4318 | glLoadIdentity(); |
@@ -4361,10 +4326,7 @@ void LLPipeline::blurReflectionMap(LLCubeMap* cube_in, LLCubeMap* cube_out) | |||
4361 | glGetTexLevelParameteriv(GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB, 0, GL_TEXTURE_WIDTH, &width); | 4326 | glGetTexLevelParameteriv(GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB, 0, GL_TEXTURE_WIDTH, &width); |
4362 | if (width != res) | 4327 | if (width != res) |
4363 | { | 4328 | { |
4364 | glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR); | 4329 | cube_out->setReflection(); |
4365 | glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR); | ||
4366 | glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); | ||
4367 | glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); | ||
4368 | 4330 | ||
4369 | for (U32 i = 0; i < 6; i++) | 4331 | for (U32 i = 0; i < 6; i++) |
4370 | { | 4332 | { |
@@ -4391,7 +4353,7 @@ void LLPipeline::blurReflectionMap(LLCubeMap* cube_in, LLCubeMap* cube_out) | |||
4391 | 4353 | ||
4392 | stop_glerror(); | 4354 | stop_glerror(); |
4393 | glViewport(0,0,res, res); | 4355 | glViewport(0,0,res, res); |
4394 | gGL.blendFunc(GL_ONE, GL_ONE); | 4356 | gGL.setSceneBlendType(LLRender::BT_ADD); |
4395 | cube_in->enableTexture(0); | 4357 | cube_in->enableTexture(0); |
4396 | //3-axis blur | 4358 | //3-axis blur |
4397 | for (U32 j = 0; j < 3; j++) | 4359 | for (U32 j = 0; j < 3; j++) |
@@ -4421,7 +4383,7 @@ void LLPipeline::blurReflectionMap(LLCubeMap* cube_in, LLCubeMap* cube_out) | |||
4421 | gl_cube_face[i], | 4383 | gl_cube_face[i], |
4422 | j < 2 ? mBlurCubeTexture[j] : cube_out->getGLName(), 0); | 4384 | j < 2 ? mBlurCubeTexture[j] : cube_out->getGLName(), 0); |
4423 | validate_framebuffer_object(); | 4385 | validate_framebuffer_object(); |
4424 | glColorMask(GL_TRUE,GL_TRUE,GL_TRUE,GL_TRUE); | 4386 | gGL.setColorMask(true, true); |
4425 | glClear(GL_COLOR_BUFFER_BIT); | 4387 | glClear(GL_COLOR_BUFFER_BIT); |
4426 | glLoadIdentity(); | 4388 | glLoadIdentity(); |
4427 | apply_cube_face_rotation(i); | 4389 | apply_cube_face_rotation(i); |
@@ -4441,7 +4403,7 @@ void LLPipeline::blurReflectionMap(LLCubeMap* cube_in, LLCubeMap* cube_out) | |||
4441 | glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, 0); | 4403 | glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, 0); |
4442 | 4404 | ||
4443 | glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); | 4405 | glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); |
4444 | glColorMask(GL_TRUE,GL_TRUE,GL_TRUE,GL_FALSE); | 4406 | gGL.setColorMask(true, false); |
4445 | glMatrixMode(GL_PROJECTION); | 4407 | glMatrixMode(GL_PROJECTION); |
4446 | glPopMatrix(); | 4408 | glPopMatrix(); |
4447 | glMatrixMode(GL_MODELVIEW); | 4409 | glMatrixMode(GL_MODELVIEW); |
@@ -4449,13 +4411,11 @@ void LLPipeline::blurReflectionMap(LLCubeMap* cube_in, LLCubeMap* cube_out) | |||
4449 | 4411 | ||
4450 | cube_in->disableTexture(); | 4412 | cube_in->disableTexture(); |
4451 | gViewerWindow->setupViewport(); | 4413 | gViewerWindow->setupViewport(); |
4452 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 4414 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
4453 | 4415 | ||
4454 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
4455 | LLGLState::checkStates(); | 4416 | LLGLState::checkStates(); |
4456 | LLGLState::checkTextureChannels(); | 4417 | LLGLState::checkTextureChannels(); |
4457 | LLGLState::checkClientArrays(); | 4418 | LLGLState::checkClientArrays(); |
4458 | #endif | ||
4459 | } | 4419 | } |
4460 | 4420 | ||
4461 | void LLPipeline::bindScreenToTexture() | 4421 | void LLPipeline::bindScreenToTexture() |
@@ -4471,10 +4431,8 @@ void LLPipeline::renderBloom(BOOL for_snapshot) | |||
4471 | return; | 4431 | return; |
4472 | } | 4432 | } |
4473 | 4433 | ||
4474 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
4475 | LLGLState::checkStates(); | 4434 | LLGLState::checkStates(); |
4476 | LLGLState::checkTextureChannels(); | 4435 | LLGLState::checkTextureChannels(); |
4477 | #endif | ||
4478 | 4436 | ||
4479 | assertInitialized(); | 4437 | assertInitialized(); |
4480 | 4438 | ||
@@ -4494,7 +4452,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot) | |||
4494 | tc2 /= (F32) res_mod; | 4452 | tc2 /= (F32) res_mod; |
4495 | } | 4453 | } |
4496 | 4454 | ||
4497 | glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); | 4455 | gGL.setColorMask(true, true); |
4498 | 4456 | ||
4499 | LLFastTimer ftm(LLFastTimer::FTM_RENDER_BLOOM); | 4457 | LLFastTimer ftm(LLFastTimer::FTM_RENDER_BLOOM); |
4500 | gGL.color4f(1,1,1,1); | 4458 | gGL.color4f(1,1,1,1); |
@@ -4513,7 +4471,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot) | |||
4513 | 4471 | ||
4514 | LLGLDisable test(GL_ALPHA_TEST); | 4472 | LLGLDisable test(GL_ALPHA_TEST); |
4515 | 4473 | ||
4516 | glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); | 4474 | gGL.setColorMask(true, true); |
4517 | glClearColor(0,0,0,0); | 4475 | glClearColor(0,0,0,0); |
4518 | 4476 | ||
4519 | if (for_snapshot) | 4477 | if (for_snapshot) |
@@ -4525,7 +4483,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot) | |||
4525 | //glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); | 4483 | //glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); |
4526 | //LLGLDisable blend(GL_BLEND); | 4484 | //LLGLDisable blend(GL_BLEND); |
4527 | LLGLEnable blend(GL_BLEND); | 4485 | LLGLEnable blend(GL_BLEND); |
4528 | gGL.blendFunc(GL_ONE, GL_ONE); | 4486 | gGL.setSceneBlendType(LLRender::BT_ADD); |
4529 | tc2.setVec(1,1); | 4487 | tc2.setVec(1,1); |
4530 | gGL.begin(LLVertexBuffer::TRIANGLE_STRIP); | 4488 | gGL.begin(LLVertexBuffer::TRIANGLE_STRIP); |
4531 | gGL.color4f(1,1,1,1); | 4489 | gGL.color4f(1,1,1,1); |
@@ -4543,7 +4501,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot) | |||
4543 | gGL.end(); | 4501 | gGL.end(); |
4544 | 4502 | ||
4545 | gGL.flush(); | 4503 | gGL.flush(); |
4546 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 4504 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
4547 | } | 4505 | } |
4548 | 4506 | ||
4549 | gGL.flush(); | 4507 | gGL.flush(); |
@@ -4575,8 +4533,8 @@ void LLPipeline::renderBloom(BOOL for_snapshot) | |||
4575 | gGlowExtractProgram.uniform1f("warmthAmount", warmthAmount); | 4533 | gGlowExtractProgram.uniform1f("warmthAmount", warmthAmount); |
4576 | LLGLEnable blend_on(GL_BLEND); | 4534 | LLGLEnable blend_on(GL_BLEND); |
4577 | LLGLEnable test(GL_ALPHA_TEST); | 4535 | LLGLEnable test(GL_ALPHA_TEST); |
4578 | glAlphaFunc(GL_GREATER, 0.f); | 4536 | gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); |
4579 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE); | 4537 | gGL.setSceneBlendType(LLRender::BT_ADD_WITH_ALPHA); |
4580 | LLViewerImage::unbindTexture(0, GL_TEXTURE_2D); | 4538 | LLViewerImage::unbindTexture(0, GL_TEXTURE_2D); |
4581 | 4539 | ||
4582 | glDisable(GL_TEXTURE_2D); | 4540 | glDisable(GL_TEXTURE_2D); |
@@ -4785,26 +4743,17 @@ void LLPipeline::renderBloom(BOOL for_snapshot) | |||
4785 | 4743 | ||
4786 | LLGLDisable blend(GL_BLEND); | 4744 | LLGLDisable blend(GL_BLEND); |
4787 | 4745 | ||
4788 | |||
4789 | //tex unit 0 | 4746 | //tex unit 0 |
4790 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 4747 | gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_COLOR); |
4791 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); | ||
4792 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_TEXTURE); | ||
4793 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
4794 | 4748 | ||
4795 | mGlow[1].bindTexture(); | 4749 | mGlow[1].bindTexture(); |
4796 | glEnableClientState(GL_TEXTURE_COORD_ARRAY); | 4750 | glEnableClientState(GL_TEXTURE_COORD_ARRAY); |
4797 | glTexCoordPointer(2, GL_FLOAT, 0, uv0); | 4751 | glTexCoordPointer(2, GL_FLOAT, 0, uv0); |
4798 | glActiveTextureARB(GL_TEXTURE1_ARB); | 4752 | gGL.getTexUnit(1)->activate(); |
4799 | glEnable(GL_TEXTURE_RECTANGLE_ARB); | 4753 | glEnable(GL_TEXTURE_RECTANGLE_ARB); |
4800 | 4754 | ||
4801 | //tex unit 1 | 4755 | //tex unit 1 |
4802 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB); | 4756 | gGL.getTexUnit(1)->setTextureColorBlend(LLTexUnit::TBO_ADD, LLTexUnit::TBS_TEX_COLOR, LLTexUnit::TBS_PREV_COLOR); |
4803 | glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_ADD); | ||
4804 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB); | ||
4805 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR); | ||
4806 | glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE); | ||
4807 | glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR); | ||
4808 | 4757 | ||
4809 | glClientActiveTextureARB(GL_TEXTURE1_ARB); | 4758 | glClientActiveTextureARB(GL_TEXTURE1_ARB); |
4810 | glEnableClientState(GL_TEXTURE_COORD_ARRAY); | 4759 | glEnableClientState(GL_TEXTURE_COORD_ARRAY); |
@@ -4819,23 +4768,23 @@ void LLPipeline::renderBloom(BOOL for_snapshot) | |||
4819 | 4768 | ||
4820 | glDisable(GL_TEXTURE_RECTANGLE_ARB); | 4769 | glDisable(GL_TEXTURE_RECTANGLE_ARB); |
4821 | glDisableClientState(GL_TEXTURE_COORD_ARRAY); | 4770 | glDisableClientState(GL_TEXTURE_COORD_ARRAY); |
4822 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 4771 | gGL.getTexUnit(1)->setTextureBlendType(LLTexUnit::TB_MULT); |
4823 | glClientActiveTextureARB(GL_TEXTURE0_ARB); | 4772 | glClientActiveTextureARB(GL_TEXTURE0_ARB); |
4824 | glActiveTextureARB(GL_TEXTURE0_ARB); | 4773 | gGL.getTexUnit(0)->activate(); |
4825 | glDisableClientState(GL_TEXTURE_COORD_ARRAY); | 4774 | glDisableClientState(GL_TEXTURE_COORD_ARRAY); |
4826 | glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | 4775 | gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); |
4827 | } | 4776 | } |
4828 | 4777 | ||
4829 | glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 4778 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
4830 | glMatrixMode(GL_PROJECTION); | 4779 | glMatrixMode(GL_PROJECTION); |
4831 | glPopMatrix(); | 4780 | glPopMatrix(); |
4832 | glMatrixMode(GL_MODELVIEW); | 4781 | glMatrixMode(GL_MODELVIEW); |
4833 | glPopMatrix(); | 4782 | glPopMatrix(); |
4834 | 4783 | ||
4835 | #ifndef LL_RELEASE_FOR_DOWNLOAD | 4784 | LLVertexBuffer::unbind(); |
4785 | |||
4836 | LLGLState::checkStates(); | 4786 | LLGLState::checkStates(); |
4837 | LLGLState::checkTextureChannels(); | 4787 | LLGLState::checkTextureChannels(); |
4838 | #endif | ||
4839 | 4788 | ||
4840 | } | 4789 | } |
4841 | 4790 | ||
@@ -4867,11 +4816,9 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in) | |||
4867 | { | 4816 | { |
4868 | LLVertexBuffer::unbind(); | 4817 | LLVertexBuffer::unbind(); |
4869 | 4818 | ||
4870 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
4871 | LLGLState::checkStates(); | 4819 | LLGLState::checkStates(); |
4872 | LLGLState::checkTextureChannels(); | 4820 | LLGLState::checkTextureChannels(); |
4873 | LLGLState::checkClientArrays(); | 4821 | LLGLState::checkClientArrays(); |
4874 | #endif | ||
4875 | 4822 | ||
4876 | LLCamera camera = camera_in; | 4823 | LLCamera camera = camera_in; |
4877 | camera.setFar(camera.getFar()*0.87654321f); | 4824 | camera.setFar(camera.getFar()*0.87654321f); |
@@ -4916,11 +4863,11 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in) | |||
4916 | { //generate planar reflection map | 4863 | { //generate planar reflection map |
4917 | LLViewerImage::unbindTexture(0, GL_TEXTURE_2D); | 4864 | LLViewerImage::unbindTexture(0, GL_TEXTURE_2D); |
4918 | glClearColor(0,0,0,0); | 4865 | glClearColor(0,0,0,0); |
4919 | glColorMask(GL_TRUE,GL_TRUE,GL_TRUE,GL_TRUE); | 4866 | gGL.setColorMask(true, true); |
4920 | mWaterRef.bindTarget(); | 4867 | mWaterRef.bindTarget(); |
4921 | mWaterRef.getViewport(gGLViewport); | 4868 | mWaterRef.getViewport(gGLViewport); |
4922 | mWaterRef.clear(); | 4869 | mWaterRef.clear(); |
4923 | glColorMask(GL_TRUE,GL_TRUE,GL_TRUE,GL_FALSE); | 4870 | gGL.setColorMask(true, false); |
4924 | 4871 | ||
4925 | stop_glerror(); | 4872 | stop_glerror(); |
4926 | 4873 | ||
@@ -5022,11 +4969,11 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in) | |||
5022 | LLViewerImage::unbindTexture(0, GL_TEXTURE_2D); | 4969 | LLViewerImage::unbindTexture(0, GL_TEXTURE_2D); |
5023 | LLColor4& col = LLDrawPoolWater::sWaterFogColor; | 4970 | LLColor4& col = LLDrawPoolWater::sWaterFogColor; |
5024 | glClearColor(col.mV[0], col.mV[1], col.mV[2], 0.f); | 4971 | glClearColor(col.mV[0], col.mV[1], col.mV[2], 0.f); |
5025 | glColorMask(GL_TRUE,GL_TRUE,GL_TRUE,GL_TRUE); | 4972 | gGL.setColorMask(true, true); |
5026 | mWaterDis.bindTarget(); | 4973 | mWaterDis.bindTarget(); |
5027 | mWaterDis.getViewport(gGLViewport); | 4974 | mWaterDis.getViewport(gGLViewport); |
5028 | mWaterDis.clear(); | 4975 | mWaterDis.clear(); |
5029 | glColorMask(GL_TRUE,GL_TRUE,GL_TRUE,GL_FALSE); | 4976 | gGL.setColorMask(true, false); |
5030 | 4977 | ||
5031 | if (!LLPipeline::sUnderWaterRender || LLDrawPoolWater::sNeedsReflectionUpdate) | 4978 | if (!LLPipeline::sUnderWaterRender || LLDrawPoolWater::sNeedsReflectionUpdate) |
5032 | { | 4979 | { |
@@ -5060,11 +5007,9 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in) | |||
5060 | LLViewerCamera::getInstance()->setUserClipPlane(LLPlane(-pnorm, -pd)); | 5007 | LLViewerCamera::getInstance()->setUserClipPlane(LLPlane(-pnorm, -pd)); |
5061 | LLPipeline::sUseOcclusion = occlusion; | 5008 | LLPipeline::sUseOcclusion = occlusion; |
5062 | 5009 | ||
5063 | #ifndef LL_RELEASE_FOR_DOWNLOAD | ||
5064 | LLGLState::checkStates(); | 5010 | LLGLState::checkStates(); |
5065 | LLGLState::checkTextureChannels(); | 5011 | LLGLState::checkTextureChannels(); |
5066 | LLGLState::checkClientArrays(); | 5012 | LLGLState::checkClientArrays(); |
5067 | #endif | ||
5068 | } | 5013 | } |
5069 | } | 5014 | } |
5070 | 5015 | ||
@@ -5203,7 +5148,7 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar) | |||
5203 | glh_set_current_modelview(mat); | 5148 | glh_set_current_modelview(mat); |
5204 | 5149 | ||
5205 | glClearColor(0.0f,0.0f,0.0f,0.0f); | 5150 | glClearColor(0.0f,0.0f,0.0f,0.0f); |
5206 | glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); | 5151 | gGL.setColorMask(true, true); |
5207 | glStencilMask(0xFFFFFFFF); | 5152 | glStencilMask(0xFFFFFFFF); |
5208 | glClearStencil(0); | 5153 | glClearStencil(0); |
5209 | 5154 | ||
@@ -5250,14 +5195,14 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar) | |||
5250 | 5195 | ||
5251 | if (muted) | 5196 | if (muted) |
5252 | { | 5197 | { |
5253 | glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); | 5198 | gGL.setColorMask(true, true); |
5254 | } | 5199 | } |
5255 | else | 5200 | else |
5256 | { | 5201 | { |
5257 | glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_TRUE); | 5202 | gGL.setColorMask(false, true); |
5258 | } | 5203 | } |
5259 | 5204 | ||
5260 | gGL.blendFunc(GL_ONE, GL_ONE); | 5205 | gGL.setSceneBlendType(LLRender::BT_ADD); |
5261 | LLImageGL::unbindTexture(0, GL_TEXTURE_2D); | 5206 | LLImageGL::unbindTexture(0, GL_TEXTURE_2D); |
5262 | 5207 | ||
5263 | LLGLDepthTest depth(GL_FALSE, GL_FALSE); | 5208 | LLGLDepthTest depth(GL_FALSE, GL_FALSE); |
@@ -5273,7 +5218,7 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar) | |||
5273 | gGL.flush(); | 5218 | gGL.flush(); |
5274 | 5219 | ||
5275 | 5220 | ||
5276 | gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 5221 | gGL.setSceneBlendType(LLRender::BT_ALPHA); |
5277 | } | 5222 | } |
5278 | 5223 | ||
5279 | 5224 | ||
diff --git a/linden/indra/newview/pipeline.h b/linden/indra/newview/pipeline.h index 9896a4a..bd857c2 100644 --- a/linden/indra/newview/pipeline.h +++ b/linden/indra/newview/pipeline.h | |||
@@ -550,6 +550,7 @@ void render_bbox(const LLVector3 &min, const LLVector3 &max); | |||
550 | 550 | ||
551 | extern LLPipeline gPipeline; | 551 | extern LLPipeline gPipeline; |
552 | extern BOOL gRenderForSelect; | 552 | extern BOOL gRenderForSelect; |
553 | extern BOOL gDebugPipeline; | ||
553 | extern const LLMatrix4* gGLLastMatrix; | 554 | extern const LLMatrix4* gGLLastMatrix; |
554 | 555 | ||
555 | #endif | 556 | #endif |
diff --git a/linden/indra/newview/releasenotes.txt b/linden/indra/newview/releasenotes.txt index b6b38d8..12cd9fb 100644 --- a/linden/indra/newview/releasenotes.txt +++ b/linden/indra/newview/releasenotes.txt | |||
@@ -1,3 +1,119 @@ | |||
1 | Release Notes for Second Life 1.20(7) May 16th, 2008 | ||
2 | ===================================== | ||
3 | |||
4 | New features and changes: | ||
5 | * Pasting multiline clipboard content into Chat will show a Paragraph symbol at newlines | ||
6 | * Moved "Set Window Size" options from File menu into Preferences > Graphics | ||
7 | * New users are rendered as a cloud, rather than naked, before they choose a gender | ||
8 | * Directly interacting with a muted resident will unmute them, with a note logged in the Chat history (VWR-1735) | ||
9 | * Fly button is now shown as disabled when you are sitting | ||
10 | * Group Info > Notices tab explains the storage limits of 200 notices and 14 days | ||
11 | * Added OpenGL monitoring via Advanced menu > Rendering > Debug GL option to turn on extra rendering error checking and help reproduce crashes | ||
12 | * Added beta support for basic voice lipsync for voice visualization (VWR-4794) - via Advanced menu > Character | ||
13 | * Changed resident names to be interactive in Chat/IM: | ||
14 | ** Clicking on resident names in Local Chat will open their Profile page | ||
15 | ** Clicking on resident names in a Group IM will open an individual IM | ||
16 | |||
17 | * Added four texture constants for referencing in llSetLinkTexture in scripts: | ||
18 | ** TEXTURE_BLANK, TEXTURE_DEFAULT, TEXTURE_PLYWOOD and TEXTURE_TRANSPARENT | ||
19 | ** Note: Scripts using these constants will run in all Second Life viewers, however previous versions of the viewer will not be able to edit and recompile scripts using the new TEXTURE_BLANK constant; older versions trying to compile such a script will report "(XX,YY) : ERROR : Name not defined within scope." | ||
20 | |||
21 | * Thread monitoring to catch freezes | ||
22 | ** A new thread monitor will detect when the viewer application frozen for a period greater than 10 seconds and possibly force a crash with detailed logs | ||
23 | |||
24 | * Improved internationalization support: | ||
25 | ** Make 'System Default' language option work on Linux and Windows. | ||
26 | ** Make unicode system font support good on Linux | ||
27 | |||
28 | * Improvements to Search | ||
29 | ** Search > Popular Places is replaced by a Search > Showcase tab that points to the website Showcase | ||
30 | ** Search > Places and Search > Groups use web-based search | ||
31 | ** Classified ads have a drop-down menu to indicate Mature or Not Mature content | ||
32 | |||
33 | Changes: | ||
34 | * VWR-4794: Basic voice lipsync for voice visualization | ||
35 | * VWR-4204: Clicking on names in Chat/Group IM history should open Profile page or IM | ||
36 | * VWR-463: Blank is a pre-defined texture in client, but not in LSL | ||
37 | * Updated library version for openssl | ||
38 | * New users are shown as a cloud rather than naked until they choose a gender. | ||
39 | * Move "Set Window Size" options from File menu into Preferences > Graphics | ||
40 | * Make clothing-still-downloading dialog into an ignorable alert dialog | ||
41 | * Internationalize additional hard-coded viewer strings to a strings.xml file | ||
42 | * Search > Popular Places is replaced by a Search > Showcase tab that points to the website Showcase | ||
43 | * Convert Search > Places tab to use HTML search | ||
44 | * Convert Search > Group tab to use HTML search | ||
45 | * Search: Require Mature/Not Mature in Classifieds | ||
46 | * Make strict GL debugging toggleable on-the-fly via Advanced menu > Rendering > Debug GL option - turns on extra rendering error checking and help reproduce crashes | ||
47 | |||
48 | Fixes: | ||
49 | * Fixed: VWR-104: Unused class LLVertexProgramGL should be removed | ||
50 | * Fixed: VWR-2778: System skirt textures turn invisible on wearing | ||
51 | * Fixed: VWR-2272: Fly button doesn't work while sitting | ||
52 | * Fixed: VWR-2404: Lossless texture compression on small textures is not lossless | ||
53 | * Fixed: VWR-5807: Wild rotations of linkset while using the editor in Local Ruler Mode via CTRL key | ||
54 | * Fixed: VWR-6056: Animation viewer does not play animations on upload. | ||
55 | * Fixed: VWR-6399: llMapDestination should still show teleport map -- Teleport / Map screen changes in 1.20 RC0 need to be undone | ||
56 | * Fixed: VWR-4860: WindLight: Planar texturing renders incorrectly in 1.19.0 (79674) | ||
57 | * Fixed: VWR-5963: LLImageGL::setClamp may affect random texture (making repeating textures on objects non-repeating) | ||
58 | * Fixed: VWR-7061: Trivial UI grammar error in the title of the "Script Warning/Error" window | ||
59 | * Fixed: VWR-6186: Second Life is leaking Objective-C objects at startup | ||
60 | * Fixed: VWR-3598: Non-group owned objects appear to belong to the group of the last selected object, no matter the owner/group. | ||
61 | * Fixed: SVC-1241: Dead code in lscript_execute.cpp | ||
62 | * Fixed: VWR-4057: Multi-line chat display bug - first character in line missing | ||
63 | * Fixed: VWR-3857: Script (LSL) editor shows non Latin 1 characters as square boxes | ||
64 | * Fixed: VWR-2275: Linux 1.18.3 Won't Link | ||
65 | * Fixed: VWR-3813: gtk_check_version() API changed to return const gchar * - causes gcc ERROR | ||
66 | * Fixed: llrender.cpp export | ||
67 | * Fixed: Create secondlife:///app/ URL to open my groups panel | ||
68 | * Fixed: Create secondlife:///app/ URL to open create groups dialog | ||
69 | * Fixed: Display a message if LLWebBrowserCtrl blocks a secondlife:///app/* url | ||
70 | * Fixed: Abstract common glTexParameter calls | ||
71 | * Fixed: Orientation Island HUD select language texture is wrong for English in 1.20 | ||
72 | * Fixed: Double-clicking border of communicate window makes window unrecoverable | ||
73 | * Fixed: Command line parser bug parsing "--multiple true" at beginning of a command line. | ||
74 | * Fixed: --loginuri is not being handled correctly | ||
75 | * Fixed: Grid selection drop-down on login screen does not take priority over -loginuri when selection is first opened | ||
76 | * Fixed: crash in LLMediaImplQuickTime::load | ||
77 | * Fixed: crash on LLViewerParcelMedia::update | ||
78 | * Fixed: Pop-up menu width should try to accomodate the longest menu item (within reason) | ||
79 | * Fixed: VWR-1735: Directly interacting with a muted resident should unmute them | ||
80 | * Fixed: VWR-2142: Parcel voice icon doesn't reflect disabled status if voice isn't used | ||
81 | * Fixed: VWR-5853: Double-Clicking on vertical edge of Inventory/Gesture window destroys the floating window. | ||
82 | * Fixed: VWR-2448: Snapshot Preview tool should respect 'Quiet Snapshots to Disk' | ||
83 | * Fixed: Can't change values with debug settings floater | ||
84 | * Fixed: Focus > Zoom button can't be re-selected | ||
85 | * Fixed: Debug Permissions displays overlap | ||
86 | * Fixed: Objects with no group tagging show group tags of previously clicked items | ||
87 | * Fixed: stop bundling libexpat with the linux viewer | ||
88 | * Partial Fix: Pasting multiline clipboard content into chat loses newlines | ||
89 | |||
90 | Localization Fixes: | ||
91 | * Fixed: VWR-7168: A typo in base (en-us) version of mime_types.xml | ||
92 | * Fixed: VWR-7153: An typo in en-us version of alerts.xml file makes an <ignore> text of unlocalizable | ||
93 | * Fixed: VWR-7087: Japanese "About Second Life..." file includes an invalid UTF-8 character | ||
94 | |||
95 | Release Notes for Second Life 1.20(6) May 7th, 2008 | ||
96 | ===================================== | ||
97 | Changes: | ||
98 | * Changed the reference in Group Information window > Notices tab to 14 days instead of 30 | ||
99 | * Removed menu option Advanced > Character > Show Collision Plane | ||
100 | |||
101 | Fixes: | ||
102 | * Fixed: VWR-6389: Runtime Library error after quitting Second Life | ||
103 | * Fixed: VWR-4580: Property lines are visible through avatar, objects and through ground | ||
104 | * Fixed: VWR-6896: Crash when selecting Advanced > Rendering > Info Displays > Lights (and other Info Displays) | ||
105 | * Fixed: VWR-7042: Incorrect tooltip for "Use built-in web browser" option | ||
106 | * Fixed: the spinners are broken in the snapshot UI when upload a snapshot | ||
107 | * Fixed: Create tool's last 11 shapes are not the proper height ("sphere" looks like an "egg") | ||
108 | * Fixed: Typographical error in Transfer permissions alert dialog | ||
109 | * Fixed: Crash selecting Edit > Land Owners with Basic Shaders disabled | ||
110 | * Fixed: crash on LLFloaterWorldMap::buildLandmarkIDLists | ||
111 | * Fixed: 3dConnexion device does not default to enabled with 1.20 RC 5 | ||
112 | * Fixed: Settings in the Joystick Configuration window reset to defaults on each launch when a SpaceNavigator is connected | ||
113 | |||
114 | Localization Fixes: | ||
115 | * Fixed: XML resizing to repair truncated text in 1.20 localizations | ||
116 | |||
1 | Release Notes for Second Life 1.20(5) May 1st, 2008 | 117 | Release Notes for Second Life 1.20(5) May 1st, 2008 |
2 | ===================================== | 118 | ===================================== |
3 | Changes: | 119 | Changes: |
@@ -219,3 +335,140 @@ Source changes: | |||
219 | * Fixed: g++ 4 viewer compile issues | 335 | * Fixed: g++ 4 viewer compile issues |
220 | * Dead code removal createLegacyWearableFromAvatar | 336 | * Dead code removal createLegacyWearableFromAvatar |
221 | 337 | ||
338 | |||
339 | Release Notes for Second Life 1.19.0(4) February 28th, 2008 | ||
340 | ===================================== | ||
341 | New features and changes: | ||
342 | * Voice | ||
343 | ** Voice Chat is now enabled by default to allow Residents to hear other Residents. | ||
344 | ** A microphone is required to speak to other Residents. | ||
345 | ** Push-to-Talk is the default mode for transmitting voice. | ||
346 | ** These settings can be modified via the Voice Chat tab of the Preferences dialog. | ||
347 | |||
348 | * Age Verification: | ||
349 | ** The user interface for parcel and estate access has been clarified and improved. | ||
350 | ** Added the ability to restrict access to parcels and estates to age verified adults. | ||
351 | ** Removed the ability to *ban* access to Residents who have provided payment info or who have used payment info. We continue to support the ability to *allow* access to only those who have provided payment info. | ||
352 | |||
353 | * Crash Reporter | ||
354 | ** The crash reporting mechanism has been improved. Following a crash, more useful information will be sent and reports should now take less than 10 seconds. | ||
355 | |||
356 | * VWR-210: Voice Support on Linux (EXPERIMENTAL) - see README-linux-voice.txt | ||
357 | |||
358 | * Other changes: | ||
359 | ** Change alert message that pops up when you set Busy | ||
360 | ** Add "Teleporting from SLURL to SLURL" to the chat history to provide quick and dirty "back" links | ||
361 | ** Print the name of the missing gesture in the error message | ||
362 | ** Remove "New Account..." and "Preferences" buttons from login screen for 1.19.0 | ||
363 | |||
364 | Fixes: | ||
365 | * SVC-930: Prims set for sale - prices are incorrectly set when multiple prims taken to inventory and rezzed | ||
366 | * SVC-1125: New Search: Beacons aren't shown when teleporting to regions with "Allow Direct Teleport" disabled | ||
367 | * VWR-1125: Clicking Title Bar While Mouselook'd Repositions SL Window | ||
368 | * VWR-1137: Inventory names out of sync after renaming via Properties window | ||
369 | * VWR-1145: Unable To Connect help not available | ||
370 | * VWR-1162: Land for sale includes L$1 parcels that are not actually for sale | ||
371 | * VWR-1350: Color settings do not appear to be applied to LSL default text | ||
372 | * VWR-1475: OpenJPEG always uploads single layer lossless images | ||
373 | * VWR-1590: Keyboard changes inventory selection after right-click | ||
374 | * VWR-1627: Classified metrics are reset to 0 when the ad is updated | ||
375 | * VWR-1651: Add ability to open a partners profile whilst viewing an avatar's profile | ||
376 | * VWR-1774: Some avatar positions result in no Z-axis arrow when editing attachments | ||
377 | * VWR-1873: Typos in en-us locale file | ||
378 | * VWR-1919: Remove texture UUID information from UI unless full-perm | ||
379 | * VWR-2030: Avatar only turns half-way in Appearance Mode | ||
380 | * VWR-2142: Parcel voice icon doesn't reflect disabled status if voice isn't used | ||
381 | * VWR-2256: Mac updater directory permission issues | ||
382 | * VWR-2367: Wrong handling of maximum length of Group Notice message | ||
383 | * VWR-2404: lossless texture compression on small textures not lossless | ||
384 | * VWR-2410: noise dot appear in chat window when clien running long with chatting. | ||
385 | * VWR-2411: Possible crash in pipeline.cpp | ||
386 | * VWR-2412: Possible crash drawpoolwater | ||
387 | * VWR-2421: ATI Radeon HD 2900 XT + Second Life = "Couldn't match GPU to a class","Setting GPU Class to Class0" | ||
388 | * VWR-2483: the macviewer.xcodeprj file doesn't create stripped binaries on Deployment or Universal | ||
389 | * VWR-250: Preedit (composition) strings are shown poorly when typing Japanese text on Windows | ||
390 | * VWR-2550: Scuplty vertex coordinates are size/256 meters too small on the positive faces | ||
391 | * VWR-2614: gActiveChannelSpeakerMgr not deleted at end of program in viewer.cpp | ||
392 | * VWR-2617: Adds LLSD support to flex/light/sculpt params for primitives | ||
393 | * VWR-2652: Changes needed to compile viewer against lastest libopenjpeg2000 | ||
394 | * VWR-2684: Minor leak in floaters using layoutstacks | ||
395 | * VWR-2722: Muting an object with pie menu only mutes the prim you select, not entire linkset | ||
396 | * VWR-2847: Wrong hover text in Japanese UI | ||
397 | * VWR-2854: Some sculpted prims render as balls on close zoom, which look fine in older clients | ||
398 | * VWR-2867: Eyes rotate unnaturally around their X axis. Clockwise/Counter-Clockwise | ||
399 | * VWR-289: URLs for video media streaming need to be URL-encoded or stream doesn't work | ||
400 | * VWR-2959: Windows (Visual Studio) solution file refers to a non-existing project "build_all" | ||
401 | * VWR-3088: Unchecking "Automatic Appearance Camera Movement" no longer has any effect | ||
402 | * VWR-3206: OpenJPEG svn478 causes slviewer to crash | ||
403 | * VWR-3428: Checking a users profile while editing a linked set causes viewer crash | ||
404 | * VWR-3458: Mouse cursor background is opaque white instead of transparent on big endian systems | ||
405 | * VWR-3558: llLoadURL cannot be muted | ||
406 | * VWR-356: Move delete to the bottom of context menus, separated by spacer | ||
407 | * VWR-3748: Builds fail on 1.18.6 RC if not using MOZLIB due to missing #if LL_LIBXUL_ENABLED in 3 places in indra/newview/llpanellogin.cpp | ||
408 | * VWR-3948: Underlayers no longer removable by pie menu in Windlight, release candidates | ||
409 | * VWR-412: Object editing arrows hidden but clickable on objects you can't edit. | ||
410 | * dialogs have extra vertical space | ||
411 | * Photo Album: name in Properties cut off some Japanese characters | ||
412 | * New gestures do not appear active in inventory | ||
413 | * Make parcel name in menu "look" active | ||
414 | * "Wear" pie option shows up for many objects even if resident does not own and cannot wear them. | ||
415 | * Textures on no-transfer objects can be transferred | ||
416 | * Deleted gestures still work | ||
417 | * Inventory description out of sync after renaming via Properties window | ||
418 | * Show private estate tiles when World Map is zoomed out | ||
419 | * Properties description not updated when preview description updated | ||
420 | * Buying object contents broken | ||
421 | * Improve window opening behavior, ensuring it is mostly on screen | ||
422 | * No-modify objects can be modified through Open pane | ||
423 | * Inventory names out of sync after renaming via Properties | ||
424 | * Japanese IME mode should be set and postiion of any input windows fixed for non-Japanese fields | ||
425 | * ctrl-shift-w doesn't work if no windows have focus | ||
426 | * Avatar falling in place - Alliez Mysterio | ||
427 | * Linux crash reporter does not run on next execution after forcing an infinite loop and forcefully exiting | ||
428 | * hitting enter should immediately set the value of a field | ||
429 | * Inventory Folder Loading state not clearly indicated | ||
430 | * Add warning dialog to the Land Sale process to warn against selling land to Anyone | ||
431 | * Legacy flossexception link needs to be fixed in source | ||
432 | * make link from client log in window to "Forgot Password" page | ||
433 | * Remove button under estate managers list enables after estate manager clicks in the list | ||
434 | * Changing search field should cancel current selection | ||
435 | * Estate tab within Tools / Region Estate has wrong settings for enable of Restrict Access upon initialization | ||
436 | * llEscapeURL and llUnescapeURL caps output to 255 characters | ||
437 | * XUI LoadFromXML function doesn't work | ||
438 | * Sanitize floater sizing behavior when SL window is made very small | ||
439 | * Animation won't stop if avatar teleports while animated | ||
440 | * Can't paste name of object into View > Mute List > Mute object by name | ||
441 | * pressing ctrl-F10 then Escape causes keyboard to be unresponsive | ||
442 | * Make SL viewer updater show a progress bar so that people know how long to wait | ||
443 | * Can't double-click on groups in profile after changing your active title | ||
444 | * Getting multiple copies of texture dragged onto prim | ||
445 | * blue dialog's 'next' widget steals focus | ||
446 | * Audio should be encoded for upload at a 'good enough' quality rather than a user-selected bitrate | ||
447 | * multiple preview windows open for a single texture/snapshot saved inside a note card | ||
448 | * Enhance Viewer to support new Age Verification feature | ||
449 | * Rename crash setting to cause crash logger to come up for all residents | ||
450 | * Change crash logger "Remember this choice" function to default to on | ||
451 | * Rework Ban tab of floater_about_land | ||
452 | * Windows IME positioning fixed | ||
453 | * Viewer crashes in assert when playing Sword Strike animation | ||
454 | * Unable to set 'Group Access' for land that is also 'Public Access' (Was VWR-3667) | ||
455 | * Disable QuickTime when the installed version is less than version with RTSP exploit | ||
456 | * Korean viewer crashes on startup | ||
457 | * Move fullscreen message from login screen to viewer prefs | ||
458 | * linux client doesn't recognise that a viewer is already running (slurl crapout) | ||
459 | * Search results window displays "s..." and "n..." instead of "searching..." and "none found" | ||
460 | * QuickTime disabled message can not be ignored | ||
461 | * Crash on login page when using Logitech LCD Keyboard | ||
462 | * SEC-17 Ability to Access Sculpted Prim Textures from Database without owning actual sculpt texture, allowing for people to "steal" sculpts. | ||
463 | * info window does not pop up when transitioning from a Havok1 to Havok4 region | ||
464 | * Repoint Report Bug... Viewer link to Pjira | ||
465 | * Upload Animation window: Button missing in Stopped window state | ||
466 | |||
467 | Source changes: | ||
468 | * Upgrade Win32 libvorbis to v1.2 | ||
469 | * VWR-2881: Bundled Mesa libs are not GPL compatible | ||
470 | * upgrade in-tree Linux GL headers to Mesa 7.x | ||
471 | * upgrade in-tree Win32 GL headers to version without SGI Free B license | ||
472 | * Rebuild and/or update libraries to use statically linked libs. | ||
473 | * Remove llfloaterhtmlhelp.cpp / h and floater_html_help.xml | ||
474 | |||
diff --git a/linden/indra/newview/res/newViewRes.rc b/linden/indra/newview/res/newViewRes.rc index 6254613..099d5dc 100644 --- a/linden/indra/newview/res/newViewRes.rc +++ b/linden/indra/newview/res/newViewRes.rc | |||
@@ -231,8 +231,8 @@ TOOLMEDIAOPEN CURSOR "toolmediaopen.cur" | |||
231 | // | 231 | // |
232 | 232 | ||
233 | VS_VERSION_INFO VERSIONINFO | 233 | VS_VERSION_INFO VERSIONINFO |
234 | FILEVERSION 1,19,1,4 | 234 | FILEVERSION 1,20,6,86975 |
235 | PRODUCTVERSION 1,19,1,4 | 235 | PRODUCTVERSION 1,20,6,86975 |
236 | FILEFLAGSMASK 0x3fL | 236 | FILEFLAGSMASK 0x3fL |
237 | #ifdef _DEBUG | 237 | #ifdef _DEBUG |
238 | FILEFLAGS 0x1L | 238 | FILEFLAGS 0x1L |
@@ -249,12 +249,12 @@ BEGIN | |||
249 | BEGIN | 249 | BEGIN |
250 | VALUE "CompanyName", "Linden Lab" | 250 | VALUE "CompanyName", "Linden Lab" |
251 | VALUE "FileDescription", "Second Life" | 251 | VALUE "FileDescription", "Second Life" |
252 | VALUE "FileVersion", "1.19.1.4" | 252 | VALUE "FileVersion", "1.20.6.86975" |
253 | VALUE "InternalName", "Second Life" | 253 | VALUE "InternalName", "Second Life" |
254 | VALUE "LegalCopyright", "Copyright 2001-2008, Linden Research, Inc." | 254 | VALUE "LegalCopyright", "Copyright 2001-2008, Linden Research, Inc." |
255 | VALUE "OriginalFilename", "SecondLife.exe" | 255 | VALUE "OriginalFilename", "SecondLife.exe" |
256 | VALUE "ProductName", "Second Life" | 256 | VALUE "ProductName", "Second Life" |
257 | VALUE "ProductVersion", "1.19.1.4" | 257 | VALUE "ProductVersion", "1.20.6.86975" |
258 | END | 258 | END |
259 | END | 259 | END |
260 | BLOCK "VarFileInfo" | 260 | BLOCK "VarFileInfo" |
diff --git a/linden/indra/newview/skins/textures/textures.xml b/linden/indra/newview/skins/textures/textures.xml index 6e7553f..4dbbdf0 100644 --- a/linden/indra/newview/skins/textures/textures.xml +++ b/linden/indra/newview/skins/textures/textures.xml | |||
@@ -106,6 +106,7 @@ | |||
106 | <button_anim_stop_selected.tga/> | 106 | <button_anim_stop_selected.tga/> |
107 | <crosshairs.tga/> | 107 | <crosshairs.tga/> |
108 | <direction_arrow.tga/> | 108 | <direction_arrow.tga/> |
109 | <cloud-particle.j2c use_mips="true"/> | ||
109 | <foot_shadow.j2c use_mips="true"/> | 110 | <foot_shadow.j2c use_mips="true"/> |
110 | 111 | ||
111 | <icon_auction.tga/> | 112 | <icon_auction.tga/> |
@@ -121,7 +122,6 @@ | |||
121 | <icon_groupnoticeinventory.tga/> | 122 | <icon_groupnoticeinventory.tga/> |
122 | <icon_lock.tga/> | 123 | <icon_lock.tga/> |
123 | <icon_place.tga/> | 124 | <icon_place.tga/> |
124 | <icon_popular.tga/> | ||
125 | <icon_top_pick.tga/> | 125 | <icon_top_pick.tga/> |
126 | 126 | ||
127 | <inv_folder_animation.tga/> | 127 | <inv_folder_animation.tga/> |
@@ -179,7 +179,7 @@ | |||
179 | <map_telehub.tga/> | 179 | <map_telehub.tga/> |
180 | <map_track_16.tga/> | 180 | <map_track_16.tga/> |
181 | <media_icon.tga file_name="icn_label_media.tga" /> | 181 | <media_icon.tga file_name="icn_label_media.tga" /> |
182 | <music_icon.tga file_name="icn_lable_music.tga" /> | 182 | <music_icon.tga file_name="icn_label_music.tga" /> |
183 | <noentrylines.j2c use_mips="true"/> | 183 | <noentrylines.j2c use_mips="true"/> |
184 | <noentrypasslines.j2c use_mips="true"/> | 184 | <noentrypasslines.j2c use_mips="true"/> |
185 | <notify_tip_icon.tga/> | 185 | <notify_tip_icon.tga/> |
diff --git a/linden/indra/newview/skins/xui/de/floater_html.xml b/linden/indra/newview/skins/xui/de/floater_html.xml index f5c69ce..7e97d4f 100644 --- a/linden/indra/newview/skins/xui/de/floater_html.xml +++ b/linden/indra/newview/skins/xui/de/floater_html.xml | |||
@@ -5,4 +5,7 @@ | |||
5 | <button label="Zuhause" name="home_btn" /> | 5 | <button label="Zuhause" name="home_btn" /> |
6 | <button label="Weiterleiten" name="forward_btn" /> | 6 | <button label="Weiterleiten" name="forward_btn" /> |
7 | <button label="Los" name="go_btn" /> | 7 | <button label="Los" name="go_btn" /> |
8 | <string name="home_page_url"> | ||
9 | http://de.secondlife.com | ||
10 | </string> | ||
8 | </floater> | 11 | </floater> |
diff --git a/linden/indra/newview/skins/xui/de/mime_types.xml b/linden/indra/newview/skins/xui/de/mime_types.xml index d5153d0..03fd660 100644 --- a/linden/indra/newview/skins/xui/de/mime_types.xml +++ b/linden/indra/newview/skins/xui/de/mime_types.xml | |||
@@ -78,7 +78,7 @@ | |||
78 | </label> | 78 | </label> |
79 | </mimetype> | 79 | </mimetype> |
80 | <mimetype name="image/*"> | 80 | <mimetype name="image/*"> |
81 | <label label="image2_label"> | 81 | <label name="image2_label"> |
82 | Bild | 82 | Bild |
83 | </label> | 83 | </label> |
84 | </mimetype> | 84 | </mimetype> |
diff --git a/linden/indra/newview/skins/xui/de/panel_group_invite.xml b/linden/indra/newview/skins/xui/de/panel_group_invite.xml index e762567..0ad1aeb 100644 --- a/linden/indra/newview/skins/xui/de/panel_group_invite.xml +++ b/linden/indra/newview/skins/xui/de/panel_group_invite.xml | |||
@@ -1,10 +1,5 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <panel label="Mitglied einladen" name="invite_panel"> | 2 | <panel label="Mitglied einladen" name="invite_panel"> |
3 | <text> | ||
4 | Sie können mehrere Einwohner zu Ihrer | ||
5 | Gruppe einladen. Klicken Sie auf | ||
6 | 'Personenauswahl öffnen'. | ||
7 | </text> | ||
8 | <text name="help_text"> | 3 | <text name="help_text"> |
9 | Sie können mehrere Einwohner zu Ihrer | 4 | Sie können mehrere Einwohner zu Ihrer |
10 | Gruppe einladen. Klicken Sie auf | 5 | Gruppe einladen. Klicken Sie auf |
diff --git a/linden/indra/newview/skins/xui/de/panel_group_notices.xml b/linden/indra/newview/skins/xui/de/panel_group_notices.xml index 0488851..9a819eb 100644 --- a/linden/indra/newview/skins/xui/de/panel_group_notices.xml +++ b/linden/indra/newview/skins/xui/de/panel_group_notices.xml | |||
@@ -16,7 +16,7 @@ gesendet. Mitteilungen können unter | |||
16 | Gruppenmitteilungsarchiv | 16 | Gruppenmitteilungsarchiv |
17 | </text> | 17 | </text> |
18 | <text name="lbl2"> | 18 | <text name="lbl2"> |
19 | Mitteilungen werden 30 Tage lang aufbewahrt. Klicken | 19 | Mitteilungen werden 14 Tage lang aufbewahrt. Klicken |
20 | Sie auf eine Mitteilung, um sie anzuzeigen. Klicken Sie | 20 | Sie auf eine Mitteilung, um sie anzuzeigen. Klicken Sie |
21 | auf 'Aktualisieren', um neue Mitteilungen zu suchen. | 21 | auf 'Aktualisieren', um neue Mitteilungen zu suchen. |
22 | </text> | 22 | </text> |
diff --git a/linden/indra/newview/skins/xui/de/panel_preferences_graphics1.xml b/linden/indra/newview/skins/xui/de/panel_preferences_graphics1.xml index ff48982..c251a50 100644 --- a/linden/indra/newview/skins/xui/de/panel_preferences_graphics1.xml +++ b/linden/indra/newview/skins/xui/de/panel_preferences_graphics1.xml | |||
@@ -17,6 +17,8 @@ | |||
17 | <text_editor name="FullScreenInfo" width="480"> | 17 | <text_editor name="FullScreenInfo" width="480"> |
18 | Wenn deaktiviert, schaltet die Anzeige bei Anmeldung auf Vollbild um. | 18 | Wenn deaktiviert, schaltet die Anzeige bei Anmeldung auf Vollbild um. |
19 | </text_editor> | 19 | </text_editor> |
20 | <combo_box name="windowsize combo" left="115"> | ||
21 | </combo_box> | ||
20 | <text name="DisplayResLabel" width="100"> | 22 | <text name="DisplayResLabel" width="100"> |
21 | Anzeigeauflösung: | 23 | Anzeigeauflösung: |
22 | </text> | 24 | </text> |
diff --git a/linden/indra/newview/skins/xui/de/panel_preferences_web.xml b/linden/indra/newview/skins/xui/de/panel_preferences_web.xml index b746097..af493e6 100644 --- a/linden/indra/newview/skins/xui/de/panel_preferences_web.xml +++ b/linden/indra/newview/skins/xui/de/panel_preferences_web.xml | |||
@@ -1,8 +1,7 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <panel label="Web" name="web"> | 2 | <panel label="Web" name="web"> |
3 | <radio_group name="use_external_browser" | 3 | <radio_group name="use_external_browser"> |
4 | tool_tip="Externen Browser für Hilfe, Weblinks usw. verwenden. Im Vollbildmodus nicht empfohlen."> | 4 | <radio_item name="external" tool_tip="Externen Browser für Hilfe, Weblinks usw. verwenden. Im Vollbildmodus nicht empfohlen."> |
5 | <radio_item name="external"> | ||
6 | Externen Browser verwenden (Firefox, Safari, Internet Explorer) | 5 | Externen Browser verwenden (Firefox, Safari, Internet Explorer) |
7 | </radio_item> | 6 | </radio_item> |
8 | <radio_item name="internal"> | 7 | <radio_item name="internal"> |
diff --git a/linden/indra/newview/skins/xui/en-us/alerts.xml b/linden/indra/newview/skins/xui/en-us/alerts.xml index 39d1728..e3d0dbf 100644 --- a/linden/indra/newview/skins/xui/en-us/alerts.xml +++ b/linden/indra/newview/skins/xui/en-us/alerts.xml | |||
@@ -1032,7 +1032,7 @@ If you continue to have problems, please visit: http://www.secondlife.com/suppor | |||
1032 | MINSPECS | 1032 | MINSPECS |
1033 | Do you wish to visit [_URL] for more information? | 1033 | Do you wish to visit [_URL] for more information? |
1034 | </message> | 1034 | </message> |
1035 | <ignore message="ignore"> | 1035 | <ignore name="ignore"> |
1036 | Ignore unsupported hardware | 1036 | Ignore unsupported hardware |
1037 | </ignore> | 1037 | </ignore> |
1038 | <option name="Yes"> | 1038 | <option name="Yes"> |
@@ -1319,8 +1319,7 @@ really want to offer this item? | |||
1319 | </alert> | 1319 | </alert> |
1320 | <alert modal="true" name="NoItems"> | 1320 | <alert modal="true" name="NoItems"> |
1321 | <message name="message"> | 1321 | <message name="message"> |
1322 | You do not have permission to transfer | 1322 | You do not have permission to transfer the selected items. |
1323 | the selected items. | ||
1324 | </message> | 1323 | </message> |
1325 | </alert> | 1324 | </alert> |
1326 | <alert modal="true" name="CannotCopyCountItems"> | 1325 | <alert modal="true" name="CannotCopyCountItems"> |
@@ -2465,10 +2464,12 @@ You have been moved into a nearby region. | |||
2465 | </alert> | 2464 | </alert> |
2466 | <alert modal="true" name="ClothingLoading"> | 2465 | <alert modal="true" name="ClothingLoading"> |
2467 | <message name="message"> | 2466 | <message name="message"> |
2468 | Your clothing is still downloading. | 2467 | Your clothing is still downloading. |
2469 | You can use the world normally, and other users | 2468 | You can use [SECOND_LIFE] normally and other users will see you correctly. |
2470 | will see you correctly. | ||
2471 | </message> | 2469 | </message> |
2470 | <ignore name="ignore"> | ||
2471 | When clothing is taking a long time to download | ||
2472 | </ignore> | ||
2472 | </alert> | 2473 | </alert> |
2473 | <alert modal="true" name="FirstRun"> | 2474 | <alert modal="true" name="FirstRun"> |
2474 | <message name="message"> | 2475 | <message name="message"> |
@@ -3547,6 +3548,34 @@ Publish this classified now for L$[AMOUNT]? | |||
3547 | Cancel | 3548 | Cancel |
3548 | </option> | 3549 | </option> |
3549 | </alert> | 3550 | </alert> |
3551 | <alert name="SetClassifiedMature"> | ||
3552 | <message name="message"> | ||
3553 | Does this classified contain Mature content? | ||
3554 | </message> | ||
3555 | <option name="Mature"> | ||
3556 | Yes | ||
3557 | </option> | ||
3558 | <option name="Not Mature"> | ||
3559 | No | ||
3560 | </option> | ||
3561 | <option name="Cancel"> | ||
3562 | Cancel | ||
3563 | </option> | ||
3564 | </alert> | ||
3565 | <alert name="SetGroupMature"> | ||
3566 | <message name="message"> | ||
3567 | Does this group contain Mature content? | ||
3568 | </message> | ||
3569 | <option name="Mature"> | ||
3570 | Yes | ||
3571 | </option> | ||
3572 | <option name="Not Mature"> | ||
3573 | No | ||
3574 | </option> | ||
3575 | <option name="Cancel"> | ||
3576 | Cancel | ||
3577 | </option> | ||
3578 | </alert> | ||
3550 | <alert name="ConfirmRestart" title="Confirm restart"> | 3579 | <alert name="ConfirmRestart" title="Confirm restart"> |
3551 | <message name="message"> | 3580 | <message name="message"> |
3552 | Do you really want to restart this region in 2 minutes? | 3581 | Do you really want to restart this region in 2 minutes? |
@@ -4951,5 +4980,10 @@ Would you like to visit the Second Life website to set this up? | |||
4951 | https://secondlife.com/account/ | 4980 | https://secondlife.com/account/ |
4952 | </url> | 4981 | </url> |
4953 | </alert> | 4982 | </alert> |
4983 | <alert modal="true" name="MissingString"> | ||
4984 | <message name="message"> | ||
4985 | The string [STRING_NAME] is missing from strings.xml | ||
4986 | </message> | ||
4987 | </alert> | ||
4954 | </alerts> | 4988 | </alerts> |
4955 | 4989 | ||
diff --git a/linden/indra/newview/skins/xui/en-us/floater_directory.xml b/linden/indra/newview/skins/xui/en-us/floater_directory.xml index 7714d67..43f255c 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_directory.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_directory.xml | |||
@@ -65,7 +65,8 @@ | |||
65 | <string name="redirect_404_url"> | 65 | <string name="redirect_404_url"> |
66 | http://secondlife.com/app/search/notfound.html | 66 | http://secondlife.com/app/search/notfound.html |
67 | </string> | 67 | </string> |
68 | </panel> | 68 | <string name="default_search_page">"http://secondlife.com/app/search/index.php?"</string> |
69 | </panel> | ||
69 | <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533" | 70 | <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533" |
70 | label="Classifieds" left="1" left_delta="68" mouse_opaque="false" | 71 | label="Classifieds" left="1" left_delta="68" mouse_opaque="false" |
71 | name="classified_panel" width="778"> | 72 | name="classified_panel" width="778"> |
@@ -272,50 +273,37 @@ | |||
272 | mouse_opaque="true" name="< Prev" right="258" width="80" /> | 273 | mouse_opaque="true" name="< Prev" right="258" width="80" /> |
273 | </panel> | 274 | </panel> |
274 | <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533" | 275 | <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533" |
275 | label="Popular Places" left="1" mouse_opaque="false" name="popular_panel" | 276 | label="Showcase" left="1" mouse_opaque="false" name="showcase_panel" |
276 | width="778"> | 277 | width="778"> |
277 | <string name="searching_text"> | 278 | <string name="searching_text">Searching...</string> |
278 | Searching... | 279 | <string name="not_found_text">None Found.</string> |
279 | </string> | 280 | <button bottom="-30" follows="top|left" font="SansSerifSmall" height="20" |
280 | <string name="not_found_text"> | 281 | label="Back" |
281 | None Found. | 282 | left="10" |
282 | </string> | 283 | name="back_btn" width="70" /> |
283 | <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center" | 284 | <button bottom_delta="0" follows="top|left" font="SansSerifSmall" height="20" |
284 | height="20" label="Next >" label_selected="Next >" | 285 | label="Forward" left_delta="75" |
285 | mouse_opaque="true" name="Next >" right="344" width="80" /> | 286 | name="forward_btn" width="70" /> |
286 | <button bottom_delta="0" follows="left|bottom" font="SansSerif" halign="center" | 287 | <!-- No mature content checkbox, showcase is all PG --> |
287 | height="20" label="< Prev" label_selected="< Prev" | 288 | <web_browser name="showcase_browser" |
288 | mouse_opaque="true" name="< Prev" right="258" width="80" /> | 289 | bottom="25" |
289 | <check_box bottom="-22" control_name="FindPlacesPictures" follows="left|top" | 290 | follows="top|left|bottom|right" |
290 | font="SansSerifSmall" height="16" initial_value="true" | 291 | font="SansSerifSmall" |
291 | label="Only show places with pictures" left="24" mouse_opaque="true" | 292 | left="10" |
292 | name="incpictures" width="200" /> | 293 | right="-10" |
293 | <check_box bottom_delta="-16" control_name="ShowMatureSims" follows="left|top" | 294 | top="-40" /> |
294 | font="SansSerifSmall" height="16" initial_value="false" | 295 | <text bottom="5" |
295 | label="Include parcels with Restricted Content" left="24" | 296 | follows="bottom|left" |
296 | mouse_opaque="true" name="incmature" width="204" /> | 297 | halign="left" |
297 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 298 | left="10" |
298 | bottom="-38" drop_shadow_visible="true" follows="right|top" | 299 | width="150" |
299 | font="SansSerifSmall" h_pad="0" halign="left" height="32" left_delta="326" | 300 | name="status_text" |
300 | mouse_opaque="true" | 301 | height="16" /> |
301 | name="These are the most popular places in the world, as measured by traffic, the amount of time people spend there." | 302 | <string name="loading_text">Loading...</string> |
302 | v_pad="0" width="406"> | 303 | <string name="done_text">Done</string> |
303 | These are the most popular places in the world, as measured by traffic, | 304 | <string name="redirect_404_url">http://secondlife.com/app/search/notfound.html</string> |
304 | the amount of time people spend there. | 305 | <string name="default_search_page">"http://secondlife.com/app/showcase/index.php?"</string> |
305 | </text> | 306 | </panel> |
306 | <scroll_list background_visible="true" bottom="-513" column_padding="0" draw_border="true" draw_heading="true" | ||
307 | follows="left|top|right|bottom" height="464" left="4" mouse_opaque="true" | ||
308 | multi_select="false" name="results" search_column="2" width="339"> | ||
309 | <column label="" name="icon" width="24" /> | ||
310 | <column label="" name="type" width="-1" /> | ||
311 | <column dynamicwidth="true" label="Name" name="name" /> | ||
312 | <column label="Traffic" name="dwell" width="70" /> | ||
313 | </scroll_list> | ||
314 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
315 | bottom_delta="-20" drop_shadow_visible="true" follows="left|bottom" | ||
316 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4" | ||
317 | mouse_opaque="true" name="result_text" v_pad="0" width="328" /> | ||
318 | </panel> | ||
319 | <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533" | 307 | <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533" |
320 | label="Land Sales" left="1" mouse_opaque="false" name="land_sales_panel" | 308 | label="Land Sales" left="1" mouse_opaque="false" name="land_sales_panel" |
321 | width="778"> | 309 | width="778"> |
@@ -397,93 +385,72 @@ To buy direct, visit the land and click on the place name in the title bar. | |||
397 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4" | 385 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4" |
398 | mouse_opaque="true" name="result_text" v_pad="0" width="328" /> | 386 | mouse_opaque="true" name="result_text" v_pad="0" width="328" /> |
399 | </panel> | 387 | </panel> |
400 | <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533" | 388 | <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533" |
401 | label="Places" left="1" mouse_opaque="false" name="places_panel" | 389 | label="Places" left="1" mouse_opaque="false" |
390 | name="places_panel" | ||
402 | width="778"> | 391 | width="778"> |
403 | <string name="searching_text"> | 392 | <string name="searching_text">Searching...</string> |
404 | Searching... | 393 | <string name="not_found_text">None Found.</string> |
405 | </string> | 394 | <button bottom="-30" follows="top|left" font="SansSerifSmall" height="20" |
406 | <string name="not_found_text"> | 395 | label="Back" |
407 | None Found. | 396 | left="10" |
408 | </string> | 397 | name="back_btn" width="70" /> |
409 | <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center" | 398 | <button bottom_delta="0" follows="top|left" font="SansSerifSmall" height="20" |
410 | height="20" label="Next >" label_selected="Next >" | 399 | label="Forward" left_delta="75" |
411 | mouse_opaque="true" name="Next >" right="344" width="80" /> | 400 | name="forward_btn" width="70" /> |
412 | <button bottom_delta="0" follows="left|bottom" font="SansSerif" halign="center" | 401 | <line_editor bevel_style="in" |
413 | height="20" label="< Prev" label_selected="< Prev" | 402 | border_style="line" |
414 | mouse_opaque="true" name="< Prev" right="258" width="80" /> | 403 | border_thickness="1" |
415 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 404 | bottom_delta="0" |
416 | bottom="-24" drop_shadow_visible="true" follows="left|top" font="SansSerif" | 405 | enabled="true" |
417 | h_pad="0" halign="left" height="16" left="4" mouse_opaque="true" | 406 | follows="top|left|right" |
418 | name="find" v_pad="0" width="50"> | 407 | font="SansSerif" |
419 | Find: | 408 | handle_edit_keys_directly="false" |
420 | </text> | 409 | commit_on_focus_lost="false" |
421 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-24" | 410 | height="20" |
422 | follows="left|top" font="SansSerif" height="18" left_delta="38" | 411 | hidden="false" |
423 | max_length="63" mouse_opaque="true" name="name" width="128" /> | 412 | label="Search" |
424 | <check_box bottom_delta="-18" control_name="ShowMatureSims" follows="left|top" | 413 | left_delta="80" |
414 | width="180" | ||
415 | max_length="254" | ||
416 | mouse_opaque="true" | ||
417 | name="search_editor" | ||
418 | select_all_on_focus_received="false" | ||
419 | select_on_focus="false" | ||
420 | tab_group="1" | ||
421 | tool_tip="Search Second Life" /> | ||
422 | <button follows="top|right" font="SansSerif" height="20" | ||
423 | label="Search" | ||
424 | left_delta="185" | ||
425 | bottom_delta="0" | ||
426 | name="search_btn" width="70" /> | ||
427 | <check_box bottom_delta="0" | ||
428 | control_name="ShowMatureFindAll" follows="right|top" | ||
425 | font="SansSerifSmall" height="16" initial_value="false" | 429 | font="SansSerifSmall" height="16" initial_value="false" |
426 | label="Include parcels with Mature content" left_delta="0" | 430 | label="Include Mature content" |
427 | mouse_opaque="true" name="incmature" width="204" /> | 431 | left_delta="133" |
428 | <combo_box allow_text_entry="false" bottom="-24" follows="left|top" height="18" left="182" | 432 | name="mature_check" |
429 | max_chars="20" mouse_opaque="true" name="Category" width="128"> | 433 | width="156" /> |
430 | <combo_item name="AnyCategory" value="any"> | 434 | <web_browser name="places_browser" |
431 | Any Category | 435 | bottom="25" |
432 | </combo_item> | 436 | follows="top|left|bottom|right" |
433 | <combo_item name="LindenLocation" value="linden"> | 437 | font="SansSerifSmall" |
434 | Linden Location | 438 | left="10" |
435 | </combo_item> | 439 | right="-10" |
436 | <combo_item name="Adult" value="adult"> | 440 | top="-40" /> |
437 | Adult | 441 | <text bottom="5" |
438 | </combo_item> | 442 | follows="bottom|left" |
439 | <combo_item name="Arts&Culture" value="arts"> | 443 | halign="left" |
440 | Arts & Culture | 444 | left="10" |
441 | </combo_item> | 445 | width="150" |
442 | <combo_item name="Business" value="store"> | 446 | name="status_text" |
443 | Business | 447 | height="16" /> |
444 | </combo_item> | 448 | <string name="loading_text">Loading...</string> |
445 | <combo_item name="Educational" value="educational"> | 449 | <string name="done_text">Done</string> |
446 | Educational | 450 | <string name="redirect_404_url">http://secondlife.com/app/search/notfound.html</string> |
447 | </combo_item> | 451 | <string name="default_search_page">"http://secondlife.com/app/search/index_places.php?"</string> |
448 | <combo_item name="Gaming" value="game"> | 452 | </panel> |
449 | Gaming | 453 | <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533" |
450 | </combo_item> | ||
451 | <combo_item name="Hangout" value="gather"> | ||
452 | Hangout | ||
453 | </combo_item> | ||
454 | <combo_item name="NewcomerFriendly" value="newcomer"> | ||
455 | Newcomer Friendly | ||
456 | </combo_item> | ||
457 | <combo_item name="Parks&Nature" value="park"> | ||
458 | Parks & Nature | ||
459 | </combo_item> | ||
460 | <combo_item name="Residential" value="home"> | ||
461 | Residential | ||
462 | </combo_item> | ||
463 | <combo_item name="Shopping" value="shopping"> | ||
464 | Shopping | ||
465 | </combo_item> | ||
466 | <combo_item name="Other" value="other"> | ||
467 | Other | ||
468 | </combo_item> | ||
469 | </combo_box> | ||
470 | <button bottom="-26" follows="left|top" font="SansSerif" halign="center" height="20" | ||
471 | label="Search" label_selected="Search" left_delta="136" mouse_opaque="true" | ||
472 | name="Search" width="70" /> | ||
473 | <scroll_list background_visible="true" bottom="-513" column_padding="0" draw_border="true" | ||
474 | draw_heading="true" follows="left|top|right|bottom" height="464" left="4" mouse_opaque="true" | ||
475 | multi_select="false" name="results" search_column="2" width="339"> | ||
476 | <column label="" name="icon" width="24" /> | ||
477 | <column label="" name="type" width="-1" /> | ||
478 | <column dynamicwidth="true" label="Name" name="name" /> | ||
479 | <column label="Traffic" name="dwell" width="75" /> | ||
480 | </scroll_list> | ||
481 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
482 | bottom_delta="-20" drop_shadow_visible="true" follows="left|bottom" | ||
483 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4" | ||
484 | mouse_opaque="true" name="result_text" v_pad="0" width="328" /> | ||
485 | </panel> | ||
486 | <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533" | ||
487 | label="People" left="1" mouse_opaque="false" name="people_panel" | 454 | label="People" left="1" mouse_opaque="false" name="people_panel" |
488 | width="778"> | 455 | width="778"> |
489 | <string name="searching_text"> | 456 | <string name="searching_text"> |
@@ -495,128 +462,99 @@ To buy direct, visit the land and click on the place name in the title bar. | |||
495 | <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center" | 462 | <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center" |
496 | height="20" label="Next >" label_selected="Next >" | 463 | height="20" label="Next >" label_selected="Next >" |
497 | mouse_opaque="true" name="Next >" right="330" width="80" /> | 464 | mouse_opaque="true" name="Next >" right="330" width="80" /> |
498 | <button bottom_delta="0" follows="left|bottom" font="SansSerif" halign="center" | 465 | <button bottom_delta="0" follows="left|bottom" font="SansSerif" halign="center" |
499 | height="20" label="< Prev" label_selected="< Prev" | 466 | height="20" label="< Prev" label_selected="< Prev" |
500 | mouse_opaque="true" name="< Prev" right="244" width="80" /> | 467 | mouse_opaque="true" name="< Prev" right="244" width="80" /> |
501 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 468 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
502 | bottom="-24" drop_shadow_visible="true" follows="left|top" font="SansSerif" | 469 | bottom="-24" drop_shadow_visible="true" follows="left|top" font="SansSerif" |
503 | h_pad="0" halign="left" height="16" left="4" mouse_opaque="true" | 470 | h_pad="0" halign="left" height="16" left="4" mouse_opaque="true" |
504 | name="find" v_pad="0" width="50"> | 471 | name="find" v_pad="0" width="50"> |
505 | Find: | 472 | Find: |
506 | </text> | 473 | </text> |
507 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-24" | 474 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-24" |
508 | follows="left|top" font="SansSerif" height="18" left_delta="38" | 475 | follows="left|top" font="SansSerif" height="18" left_delta="38" |
509 | max_length="63" mouse_opaque="true" name="name" width="200" /> | 476 | max_length="63" mouse_opaque="true" name="name" width="200" /> |
510 | <button bottom="-26" follows="left|top" font="SansSerif" halign="center" height="20" | 477 | <button bottom="-26" follows="left|top" font="SansSerif" halign="center" height="20" |
511 | label="Search" label_selected="Search" left_delta="210" mouse_opaque="true" | 478 | label="Search" label_selected="Search" left_delta="210" mouse_opaque="true" |
512 | name="Search" width="70" /> | 479 | name="Search" width="70" /> |
513 | <scroll_list background_visible="true" bottom="-513" column_padding="0" draw_border="true" draw_heading="true" | 480 | <scroll_list background_visible="false" bottom="-513" column_padding="0" draw_border="true" |
481 | draw_heading="true" | ||
514 | follows="left|top|right|bottom" height="464" left="4" mouse_opaque="true" | 482 | follows="left|top|right|bottom" height="464" left="4" mouse_opaque="true" |
515 | multi_select="false" name="results" search_column="2" width="326"> | 483 | multi_select="false" name="results" search_column="2" width="326"> |
516 | <column label="" name="icon" width="24" /> | 484 | <column label="" name="icon" width="24" /> |
517 | <column label="" name="type" width="-1" /> | 485 | <column label="" name="type" width="-1" /> |
518 | <column label="Name" name="name" width="274" /> | 486 | <column label="Name" name="name" width="274" /> |
519 | </scroll_list> | 487 | </scroll_list> |
520 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 488 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
521 | bottom_delta="-20" drop_shadow_visible="true" follows="left|bottom" | 489 | bottom_delta="-20" drop_shadow_visible="true" follows="left|bottom" |
522 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4" | 490 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4" |
523 | mouse_opaque="true" name="result_text" v_pad="0" width="328" /> | 491 | mouse_opaque="true" name="result_text" v_pad="0" width="328" /> |
524 | </panel> | 492 | </panel> |
525 | <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533" | 493 | <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533" |
526 | label="Groups" left="1" mouse_opaque="false" name="groups_panel" | 494 | label="Groups" left="1" mouse_opaque="false" |
495 | name="groups_panel" | ||
527 | width="778"> | 496 | width="778"> |
528 | <string name="searching_text"> | 497 | <string name="searching_text">Searching...</string> |
529 | Searching... | 498 | <string name="not_found_text">None Found.</string> |
530 | </string> | 499 | <button bottom="-30" follows="top|left" font="SansSerifSmall" height="20" |
531 | <string name="not_found_text"> | 500 | label="Back" |
532 | None Found. | 501 | left="10" |
533 | </string> | 502 | name="back_btn" width="70" /> |
534 | <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center" | 503 | <button bottom_delta="0" follows="top|left" font="SansSerifSmall" height="20" |
535 | height="20" label="Next >" label_selected="Next >" | 504 | label="Forward" left_delta="75" |
536 | mouse_opaque="true" name="Next >" right="344" width="80" /> | 505 | name="forward_btn" width="70" /> |
537 | <button bottom_delta="0" follows="left|bottom" font="SansSerif" halign="center" | 506 | <line_editor bevel_style="in" |
538 | height="20" label="< Prev" label_selected="< Prev" | 507 | border_style="line" |
539 | mouse_opaque="true" name="< Prev" right="258" width="80" /> | 508 | border_thickness="1" |
540 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 509 | bottom_delta="0" |
541 | bottom="-24" drop_shadow_visible="true" follows="left|top" font="SansSerif" | 510 | enabled="true" |
542 | h_pad="0" halign="left" height="16" left="4" mouse_opaque="true" | 511 | follows="top|left|right" |
543 | name="find" v_pad="0" width="50"> | 512 | font="SansSerif" |
544 | Find: | 513 | handle_edit_keys_directly="false" |
545 | </text> | 514 | commit_on_focus_lost="false" |
546 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-24" | 515 | height="20" |
547 | follows="left|top" font="SansSerif" height="18" left_delta="38" | 516 | hidden="false" |
548 | max_length="63" mouse_opaque="true" name="name" width="200" /> | 517 | label="Search" |
549 | <button bottom="-26" follows="left|top" font="SansSerif" halign="center" height="20" | 518 | left_delta="80" |
550 | label="Search" label_selected="Search" left_delta="210" mouse_opaque="true" | 519 | width="180" |
551 | name="Search" width="70" /> | 520 | max_length="254" |
552 | <check_box bottom_delta="-16" control_name="ShowMatureGroups" follows="left|top" | 521 | mouse_opaque="true" |
522 | name="search_editor" | ||
523 | select_all_on_focus_received="false" | ||
524 | select_on_focus="false" | ||
525 | tab_group="1" | ||
526 | tool_tip="Search Second Life" /> | ||
527 | <button follows="top|right" font="SansSerif" height="20" | ||
528 | label="Search" | ||
529 | left_delta="185" | ||
530 | bottom_delta="0" | ||
531 | name="search_btn" width="70" /> | ||
532 | <check_box bottom_delta="0" | ||
533 | control_name="ShowMatureFindAll" follows="right|top" | ||
553 | font="SansSerifSmall" height="16" initial_value="false" | 534 | font="SansSerifSmall" height="16" initial_value="false" |
554 | label="Include Mature groups" left="42" mouse_opaque="true" | 535 | label="Include Mature content" |
555 | name="incmature" width="204" /> | 536 | left_delta="133" |
556 | <scroll_list background_visible="true" bottom="-513" column_padding="0" draw_border="true" draw_heading="true" | 537 | name="mature_check" |
557 | follows="left|top|right|bottom" height="464" left="4" mouse_opaque="true" | 538 | width="156" /> |
558 | multi_select="false" name="results" search_column="2" width="339"> | 539 | <web_browser name="groups_browser" |
559 | <column label="" name="icon" sort="score" sort_ascending="false" width="24" /> | 540 | bottom="25" |
560 | <column label="" name="type" width="-1" /> | 541 | follows="top|left|bottom|right" |
561 | <column dynamicwidth="true" label="Name" name="name" /> | 542 | font="SansSerifSmall" |
562 | <column halign="left" label="Members" name="members" sort_ascending="false" width="100" /> | 543 | left="10" |
563 | <column label="" name="score" width="-1" /> | 544 | right="-10" |
564 | </scroll_list> | 545 | top="-40" /> |
565 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 546 | <text bottom="5" |
566 | bottom_delta="-20" drop_shadow_visible="true" follows="left|bottom" | 547 | follows="bottom|left" |
567 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4" | 548 | halign="left" |
568 | mouse_opaque="true" name="result_text" v_pad="0" width="328" /> | 549 | left="10" |
569 | </panel> | 550 | width="150" |
570 | <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533" | 551 | name="status_text" |
571 | label="All (old)" left="1" mouse_opaque="false" name="find_all_old_panel" | 552 | height="16" /> |
572 | width="778"> | 553 | <string name="loading_text">Loading...</string> |
573 | <string name="searching_text"> | 554 | <string name="done_text">Done</string> |
574 | Searching... | 555 | <string name="redirect_404_url">http://secondlife.com/app/search/notfound.html</string> |
575 | </string> | 556 | <string name="default_search_page">"http://secondlife.com/app/search/index_groups.php?"</string> |
576 | <string name="not_found_text"> | 557 | </panel> |
577 | None Found. | ||
578 | </string> | ||
579 | <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center" | ||
580 | height="20" label="< Prev" label_selected="< Prev" left="80" | ||
581 | mouse_opaque="true" name="< Prev" width="60" /> | ||
582 | <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center" | ||
583 | height="20" label="Next >" label_selected="Next >" | ||
584 | mouse_opaque="true" name="Next >" width="60" /> | ||
585 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
586 | bottom="-24" drop_shadow_visible="true" follows="left|top" font="SansSerif" | ||
587 | h_pad="0" halign="left" height="16" left="4" mouse_opaque="true" | ||
588 | name="find" v_pad="0" width="50"> | ||
589 | Find: | ||
590 | </text> | ||
591 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-24" | ||
592 | follows="left|top" font="SansSerif" height="18" left_delta="38" | ||
593 | max_length="63" mouse_opaque="true" name="name" width="128" /> | ||
594 | <button bottom="-26" follows="left|top" font="SansSerif" halign="center" height="20" | ||
595 | label="Search" label_selected="Search" left_delta="136" mouse_opaque="true" | ||
596 | name="Search" width="70" /> | ||
597 | <check_box bottom="-22" control_name="ShowMatureFindAll" follows="left|top" | ||
598 | font="SansSerifSmall" height="16" initial_value="false" | ||
599 | label="Include Mature content" left_delta="78" mouse_opaque="true" | ||
600 | name="incmature" width="156" /> | ||
601 | <scroll_list background_visible="true" bottom="-513" column_padding="0" draw_border="true" draw_heading="false" | ||
602 | follows="left|top|right|bottom" height="464" left="4" mouse_opaque="true" | ||
603 | multi_select="false" name="results" search_column="1" width="339"> | ||
604 | <column label="" name="icon" width="24" /> | ||
605 | <column label="Name" name="name" width="235" /> | ||
606 | <column label="Price" name="price" width="90" /> | ||
607 | <column label="Time (PT)" name="date" width="90" /> | ||
608 | <column label="Time" name="time" width="-1" /> | ||
609 | <column label="Traffic" name="dwell" width="90" /> | ||
610 | <column label="Area" name="area" width="90" /> | ||
611 | <column label="L$/sq.m" name="per_meter" width="90" /> | ||
612 | <column label="Online" name="online" width="90" /> | ||
613 | <column label="Members" name="members" width="90" /> | ||
614 | </scroll_list> | ||
615 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
616 | bottom_delta="-20" drop_shadow_visible="true" follows="left|bottom" | ||
617 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4" | ||
618 | mouse_opaque="true" name="result_text" v_pad="0" width="328" /> | ||
619 | </panel> | ||
620 | </tab_container> | 558 | </tab_container> |
621 | <panel bottom="-560" follows="right|top" height="470" left="340" | 559 | <panel bottom="-560" follows="right|top" height="470" left="340" |
622 | name="classified_details_panel" width="440" /> | 560 | name="classified_details_panel" width="440" /> |
diff --git a/linden/indra/newview/skins/xui/en-us/floater_im.xml b/linden/indra/newview/skins/xui/en-us/floater_im.xml index caf54e3..11c839c 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_im.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_im.xml | |||
@@ -16,6 +16,10 @@ | |||
16 | <string name="invite_message"> | 16 | <string name="invite_message"> |
17 | Click the [BUTTON NAME] button to accept/connect to this voice chat. | 17 | Click the [BUTTON NAME] button to accept/connect to this voice chat. |
18 | </string> | 18 | </string> |
19 | <string name="muted_message"> | ||
20 | [FIRST] [LAST] is muted. | ||
21 | </string> | ||
22 | |||
19 | <string name="generic_request_error"> | 23 | <string name="generic_request_error"> |
20 | Error making request, please try again later. | 24 | Error making request, please try again later. |
21 | </string> | 25 | </string> |
diff --git a/linden/indra/newview/skins/xui/en-us/floater_joystick.xml b/linden/indra/newview/skins/xui/en-us/floater_joystick.xml index 18f39dd..126bc7b 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_joystick.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_joystick.xml | |||
@@ -67,7 +67,7 @@ | |||
67 | <text bottom="-294" left="20" width="94" halign="right" name="YDeadZone">Y Dead Zone</text> | 67 | <text bottom="-294" left="20" width="94" halign="right" name="YDeadZone">Y Dead Zone</text> |
68 | <spinner bottom="-294" left="125" width="56" label_width="0" control_name="AvatarAxisDeadZone2" name="AvatarAxisDeadZone2" decimal_digits="2" increment="0.01" min_val="0" max_val="1"/> | 68 | <spinner bottom="-294" left="125" width="56" label_width="0" control_name="AvatarAxisDeadZone2" name="AvatarAxisDeadZone2" decimal_digits="2" increment="0.01" min_val="0" max_val="1"/> |
69 | <spinner bottom="-294" left="195" width="56" label_width="0" control_name="BuildAxisDeadZone2" name="BuildAxisDeadZone2" decimal_digits="2" increment="0.01" min_val="0" max_val="1"/> | 69 | <spinner bottom="-294" left="195" width="56" label_width="0" control_name="BuildAxisDeadZone2" name="BuildAxisDeadZone2" decimal_digits="2" increment="0.01" min_val="0" max_val="1"/> |
70 | <spinner bottom="-294" left="265" width="56" label_width="0" control_name="FlycamAxisDeadZone2" ame="FlycamAxisDeadZone2" decimal_digits="2" increment="0.01" min_val="0" max_val="1"/> | 70 | <spinner bottom="-294" left="265" width="56" label_width="0" control_name="FlycamAxisDeadZone2" name="FlycamAxisDeadZone2" decimal_digits="2" increment="0.01" min_val="0" max_val="1"/> |
71 | 71 | ||
72 | <text bottom="-314" left="20" width="94" halign="right" name="ZDeadZone">Z Dead Zone</text> | 72 | <text bottom="-314" left="20" width="94" halign="right" name="ZDeadZone">Z Dead Zone</text> |
73 | <spinner bottom="-314" left="125" width="56" label_width="0" control_name="AvatarAxisDeadZone0" name="AvatarAxisDeadZone0" decimal_digits="2" increment="0.01" min_val="0" max_val="1"/> | 73 | <spinner bottom="-314" left="125" width="56" label_width="0" control_name="AvatarAxisDeadZone0" name="AvatarAxisDeadZone0" decimal_digits="2" increment="0.01" min_val="0" max_val="1"/> |
diff --git a/linden/indra/newview/skins/xui/en-us/floater_script_debug.xml b/linden/indra/newview/skins/xui/en-us/floater_script_debug.xml index f9d555d..2abd503 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_script_debug.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_script_debug.xml | |||
@@ -2,7 +2,7 @@ | |||
2 | <multi_floater bottom="-463" can_close="true" can_drag_on_left="false" can_minimize="true" | 2 | <multi_floater bottom="-463" can_close="true" can_drag_on_left="false" can_minimize="true" |
3 | can_resize="true" height="233" left="337" min_height="100" min_width="100" | 3 | can_resize="true" height="233" left="337" min_height="100" min_width="100" |
4 | mouse_opaque="true" name="script debug floater" | 4 | mouse_opaque="true" name="script debug floater" |
5 | rect_control="FloaterScriptDebugRect" title="Script Errors/Warning" | 5 | rect_control="FloaterScriptDebugRect" title="Script Warning/Error" |
6 | width="450"> | 6 | width="450"> |
7 | <tab_container border="false" bottom="-233" follows="left|top|right|bottom" height="217" | 7 | <tab_container border="false" bottom="-233" follows="left|top|right|bottom" height="217" |
8 | left="1" mouse_opaque="false" name="Preview Tabs" tab_position="bottom" | 8 | left="1" mouse_opaque="false" name="Preview Tabs" tab_position="bottom" |
diff --git a/linden/indra/newview/skins/xui/en-us/floater_snapshot.xml b/linden/indra/newview/skins/xui/en-us/floater_snapshot.xml index 3966ac6..1346f7c 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_snapshot.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_snapshot.xml | |||
@@ -18,13 +18,13 @@ | |||
18 | Save snapshot to hard drive | 18 | Save snapshot to hard drive |
19 | </radio_item> | 19 | </radio_item> |
20 | </radio_group> | 20 | </radio_group> |
21 | <text bottom="-240" follows="left|top" height="25" left="10" name="file_size_label" | 21 | <text bottom="-236" follows="left|top" height="25" left="10" name="file_size_label" |
22 | width="195"> | 22 | width="195"> |
23 | File size: [SIZE] KB | 23 | File size: [SIZE] KB |
24 | </text> | 24 | </text> |
25 | <button bottom="-250" follows="left|top" height="20" label="Refresh Snapshot" left="10" | 25 | <button bottom="-246" follows="left|top" height="20" label="Refresh Snapshot" left="10" |
26 | name="new_snapshot_btn" width="195" /> | 26 | name="new_snapshot_btn" width="195" /> |
27 | <button bottom_delta="-20" follows="left|top" height="20" label="Send" left="10" | 27 | <button bottom_delta="-22" follows="left|top" height="20" label="Send" left="10" |
28 | name="send_btn" width="105" /> | 28 | name="send_btn" width="105" /> |
29 | <button bottom_delta="0" follows="left|top" height="20" label="Upload (L$10)" left="10" | 29 | <button bottom_delta="0" follows="left|top" height="20" label="Upload (L$10)" left="10" |
30 | name="upload_btn" width="105" /> | 30 | name="upload_btn" width="105" /> |
@@ -142,7 +142,7 @@ | |||
142 | name="keep_open_check" /> | 142 | name="keep_open_check" /> |
143 | <check_box bottom_delta="-20" follows="left|top" label="Freeze frame (fullscreen preview)" | 143 | <check_box bottom_delta="-20" follows="left|top" label="Freeze frame (fullscreen preview)" |
144 | left="10" name="freeze_frame_check" /> | 144 | left="10" name="freeze_frame_check" /> |
145 | <check_box bottom_delta="-20" follows="left|top" label="Auto-snapshot" left="10" | 145 | <check_box bottom_delta="-20" follows="left|top" label="Auto-snapshot" left="20" |
146 | name="auto_snapshot_check" /> | 146 | name="auto_snapshot_check" /> |
147 | <string name="unknown"> | 147 | <string name="unknown"> |
148 | unknown | 148 | unknown |
diff --git a/linden/indra/newview/skins/xui/en-us/floater_world_map.xml b/linden/indra/newview/skins/xui/en-us/floater_world_map.xml index 4e26986..0ebab6f 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_world_map.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_world_map.xml | |||
@@ -98,51 +98,39 @@ | |||
98 | font="SansSerifSmall" height="16" initial_value="false" label="" | 98 | font="SansSerifSmall" height="16" initial_value="false" label="" |
99 | left_delta="70" mouse_opaque="true" name="telehubchk" width="55" /> | 99 | left_delta="70" mouse_opaque="true" name="telehubchk" width="55" /> |
100 | <icon bottom="-76" color="1, 1, 1, 1" follows="top|right" height="16" | 100 | <icon bottom="-76" color="1, 1, 1, 1" follows="top|right" height="16" |
101 | image_name="icon_popular.tga" left="1123" mouse_opaque="true" | ||
102 | name="popular" width="16" /> | ||
103 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
104 | bottom="-76" drop_shadow_visible="true" follows="top|right" | ||
105 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="20" | ||
106 | mouse_opaque="true" name="popular_label" v_pad="0" width="145"> | ||
107 | Popular | ||
108 | </text> | ||
109 | <check_box bottom="-76" control_name="MapShowPopular" follows="top|right" | ||
110 | font="SansSerifSmall" height="16" initial_value="false" label="" | ||
111 | left_delta="80" mouse_opaque="true" name="popular_chk" width="55" /> | ||
112 | <icon bottom="-96" color="1, 1, 1, 1" follows="top|right" height="16" | ||
113 | image_name="icon_for_sale.tga" left="1123" mouse_opaque="true" | 101 | image_name="icon_for_sale.tga" left="1123" mouse_opaque="true" |
114 | name="landforsale" width="16" /> | 102 | name="landforsale" width="16" /> |
115 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 103 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
116 | bottom="-96" drop_shadow_visible="true" follows="top|right" | 104 | bottom="-76" drop_shadow_visible="true" follows="top|right" |
117 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="20" | 105 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="20" |
118 | mouse_opaque="true" name="land_for_sale_label2" v_pad="0" width="145"> | 106 | mouse_opaque="true" name="land_for_sale_label2" v_pad="0" width="145"> |
119 | Land For Sale | 107 | Land For Sale |
120 | </text> | 108 | </text> |
121 | <check_box bottom="-96" control_name="MapShowLandForSale" follows="top|right" | 109 | <check_box bottom="-76" control_name="MapShowLandForSale" follows="top|right" |
122 | font="SansSerifSmall" height="16" initial_value="false" label="" | 110 | font="SansSerifSmall" height="16" initial_value="false" label="" |
123 | left_delta="80" mouse_opaque="true" name="land_for_sale_chk" width="55" /> | 111 | left_delta="80" mouse_opaque="true" name="land_for_sale_chk" width="55" /> |
124 | <icon bottom="-116" color="1, 1, 1, 1" follows="top|right" height="16" | 112 | <icon bottom="-96" color="1, 1, 1, 1" follows="top|right" height="16" |
125 | image_name="map_event.tga" left="1123" mouse_opaque="true" name="event" | 113 | image_name="map_event.tga" left="1123" mouse_opaque="true" name="event" |
126 | width="16" /> | 114 | width="16" /> |
127 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 115 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
128 | bottom="-116" drop_shadow_visible="true" follows="top|right" | 116 | bottom="-96" drop_shadow_visible="true" follows="top|right" |
129 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="20" | 117 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="20" |
130 | mouse_opaque="true" name="events_label" v_pad="0" width="145"> | 118 | mouse_opaque="true" name="events_label" v_pad="0" width="145"> |
131 | Events | 119 | Events |
132 | </text> | 120 | </text> |
133 | <check_box bottom="-116" control_name="MapShowEvents" follows="top|right" | 121 | <check_box bottom="-96" control_name="MapShowEvents" follows="top|right" |
134 | font="SansSerifSmall" height="16" initial_value="false" label="" | 122 | font="SansSerifSmall" height="16" initial_value="false" label="" |
135 | left_delta="80" mouse_opaque="true" name="event_chk" width="55" /> | 123 | left_delta="80" mouse_opaque="true" name="event_chk" width="55" /> |
136 | <icon bottom="-136" color="1, 1, 1, 1" follows="top|right" height="16" | 124 | <icon bottom="-116" color="1, 1, 1, 1" follows="top|right" height="16" |
137 | image_name="map_event_mature.tga" left="1123" mouse_opaque="true" | 125 | image_name="map_event_mature.tga" left="1123" mouse_opaque="true" |
138 | name="events_mature_icon" width="16" /> | 126 | name="events_mature_icon" width="16" /> |
139 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 127 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
140 | bottom="-136" drop_shadow_visible="true" follows="top|right" | 128 | bottom="-116" drop_shadow_visible="true" follows="top|right" |
141 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="20" | 129 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="20" |
142 | mouse_opaque="true" name="events_mature_label" v_pad="0" width="145"> | 130 | mouse_opaque="true" name="events_mature_label" v_pad="0" width="145"> |
143 | Events (M) | 131 | Events (M) |
144 | </text> | 132 | </text> |
145 | <check_box bottom="-136" control_name="ShowMatureEvents" follows="top|right" | 133 | <check_box bottom="-116" control_name="ShowMatureEvents" follows="top|right" |
146 | font="SansSerifSmall" height="16" initial_value="true" label="" | 134 | font="SansSerifSmall" height="16" initial_value="true" label="" |
147 | left_delta="80" mouse_opaque="true" name="event_mature_chk" width="55" /> | 135 | left_delta="80" mouse_opaque="true" name="event_mature_chk" width="55" /> |
148 | <icon bottom="-181" color="0.5, 0, 0, 1" follows="top|right" height="16" | 136 | <icon bottom="-181" color="0.5, 0, 0, 1" follows="top|right" height="16" |
diff --git a/linden/indra/newview/skins/xui/en-us/menu_viewer.xml b/linden/indra/newview/skins/xui/en-us/menu_viewer.xml index cdba314..054f867 100644 --- a/linden/indra/newview/skins/xui/en-us/menu_viewer.xml +++ b/linden/indra/newview/skins/xui/en-us/menu_viewer.xml | |||
@@ -62,34 +62,6 @@ | |||
62 | </menu_item_call> | 62 | </menu_item_call> |
63 | <menu_item_separator bottom="-194" enabled="true" height="8" label="-----------" left="0" | 63 | <menu_item_separator bottom="-194" enabled="true" height="8" label="-----------" left="0" |
64 | mouse_opaque="true" name="separator4" width="243" /> | 64 | mouse_opaque="true" name="separator4" width="243" /> |
65 | <menu bottom="-554" create_jump_keys="true" drop_shadow="true" enabled="true" | ||
66 | height="117" label="Set Window Size" left="0" mouse_opaque="false" | ||
67 | name="Set Window Size" opaque="true" tear_off="true" width="125"> | ||
68 | <menu_item_call bottom="-29" enabled="true" height="19" label="320x240" left="0" | ||
69 | mouse_opaque="true" name="320x240" width="125"> | ||
70 | <on_click function="File.SetWindowSize" userdata="320,240" /> | ||
71 | </menu_item_call> | ||
72 | <menu_item_call bottom="-48" enabled="true" height="19" label="640x480" left="0" | ||
73 | mouse_opaque="true" name="640x480" width="125"> | ||
74 | <on_click function="File.SetWindowSize" userdata="640,480" /> | ||
75 | </menu_item_call> | ||
76 | <menu_item_call bottom="-67" enabled="true" height="19" label="800x600" left="0" | ||
77 | mouse_opaque="true" name="800x600" width="125"> | ||
78 | <on_click function="File.SetWindowSize" userdata="800,600" /> | ||
79 | </menu_item_call> | ||
80 | <menu_item_separator bottom="-75" enabled="true" height="8" label="-----------" left="0" | ||
81 | mouse_opaque="true" name="separator" width="125" /> | ||
82 | <menu_item_call bottom="-94" enabled="true" height="19" label="720x480 (NTSC)" left="0" | ||
83 | mouse_opaque="true" name="720x480 (NTSC)" width="125"> | ||
84 | <on_click function="File.SetWindowSize" userdata="720,480" /> | ||
85 | </menu_item_call> | ||
86 | <menu_item_call bottom="-113" enabled="true" height="19" label="768x576 (PAL)" left="0" | ||
87 | mouse_opaque="true" name="768x576 (PAL)" width="125"> | ||
88 | <on_click function="File.SetWindowSize" userdata="768,576" /> | ||
89 | </menu_item_call> | ||
90 | </menu> | ||
91 | <menu_item_separator bottom="-240" enabled="true" height="8" label="-----------" left="0" | ||
92 | mouse_opaque="true" name="separator5" width="243" /> | ||
93 | <menu_item_call bottom="-259" enabled="true" height="19" label="Quit" left="0" | 65 | <menu_item_call bottom="-259" enabled="true" height="19" label="Quit" left="0" |
94 | mouse_opaque="true" name="Quit" shortcut="control|Q" width="243"> | 66 | mouse_opaque="true" name="Quit" shortcut="control|Q" width="243"> |
95 | <on_click function="File.Quit" userdata="" /> | 67 | <on_click function="File.Quit" userdata="" /> |
@@ -509,6 +481,7 @@ | |||
509 | <menu_item_check bottom="-86" enabled="true" height="19" label="Fly" left="0" | 481 | <menu_item_check bottom="-86" enabled="true" height="19" label="Fly" left="0" |
510 | mouse_opaque="true" name="Fly" shortcut="Home" width="185"> | 482 | mouse_opaque="true" name="Fly" shortcut="Home" width="185"> |
511 | <on_click function="World.Fly" userdata="" /> | 483 | <on_click function="World.Fly" userdata="" /> |
484 | <on_enable function="World.EnableFly" /> | ||
512 | <on_check control="FlyBtnState" /> | 485 | <on_check control="FlyBtnState" /> |
513 | </menu_item_check> | 486 | </menu_item_check> |
514 | <menu_item_separator bottom="-94" enabled="true" height="8" label="-----------" left="0" | 487 | <menu_item_separator bottom="-94" enabled="true" height="8" label="-----------" left="0" |
diff --git a/linden/indra/newview/skins/xui/en-us/mime_types.xml b/linden/indra/newview/skins/xui/en-us/mime_types.xml index 2a77a8b..e2e6fb2 100644 --- a/linden/indra/newview/skins/xui/en-us/mime_types.xml +++ b/linden/indra/newview/skins/xui/en-us/mime_types.xml | |||
@@ -166,7 +166,7 @@ | |||
166 | </widgettype> | 166 | </widgettype> |
167 | </mimetype> | 167 | </mimetype> |
168 | <mimetype name="image/*"> | 168 | <mimetype name="image/*"> |
169 | <label label="image2_label"> | 169 | <label name="image2_label"> |
170 | Image | 170 | Image |
171 | </label> | 171 | </label> |
172 | <widgettype> | 172 | <widgettype> |
diff --git a/linden/indra/newview/skins/xui/en-us/notify.xml b/linden/indra/newview/skins/xui/en-us/notify.xml index f0ba148..02aa57c 100644 --- a/linden/indra/newview/skins/xui/en-us/notify.xml +++ b/linden/indra/newview/skins/xui/en-us/notify.xml | |||
@@ -914,6 +914,21 @@ Click Accept to join the call or Decline to decline the invitation. Click Mute t | |||
914 | Mute | 914 | Mute |
915 | </option> | 915 | </option> |
916 | </notify> | 916 | </notify> |
917 | <notify name="AutoUnmuteByIM" tip="false"> | ||
918 | <message name="message"> | ||
919 | [FIRST] [LAST] was sent an instant message and has been automatically unmuted. | ||
920 | </message> | ||
921 | </notify> | ||
922 | <notify name="AutoUnmuteByMoney" tip="false"> | ||
923 | <message name="message"> | ||
924 | [FIRST] [LAST] was given money and has been automatically unmuted. | ||
925 | </message> | ||
926 | </notify> | ||
927 | <notify name="AutoUnmuteByInventory" tip="false"> | ||
928 | <message name="message"> | ||
929 | [FIRST] [LAST] was offered inventory and has been automatically unmuted. | ||
930 | </message> | ||
931 | </notify> | ||
917 | <notify name="VoiceInviteGroup" tip="false" unique="true"> | 932 | <notify name="VoiceInviteGroup" tip="false" unique="true"> |
918 | <message name="message"> | 933 | <message name="message"> |
919 | [NAME] has joined a Voice Chat call with the group [GROUP]. | 934 | [NAME] has joined a Voice Chat call with the group [GROUP]. |
@@ -1029,4 +1044,9 @@ Click Accept to join the chat or Decline to decline the invitation. Click Mute t | |||
1029 | The region you have entered is running a different simulator version. Click this message for details. | 1044 | The region you have entered is running a different simulator version. Click this message for details. |
1030 | </message> | 1045 | </message> |
1031 | </notify> | 1046 | </notify> |
1047 | <notify caution="true" name="UnableToOpenCommandURL" tip="true"> | ||
1048 | <message name="message"> | ||
1049 | The URL you clicked cannot be opened from this web browser. | ||
1050 | </message> | ||
1051 | </notify> | ||
1032 | </notifications> | 1052 | </notifications> |
diff --git a/linden/indra/newview/skins/xui/en-us/panel_avatar_classified.xml b/linden/indra/newview/skins/xui/en-us/panel_avatar_classified.xml index 001d6d6..d378cb9 100644 --- a/linden/indra/newview/skins/xui/en-us/panel_avatar_classified.xml +++ b/linden/indra/newview/skins/xui/en-us/panel_avatar_classified.xml | |||
@@ -22,8 +22,18 @@ | |||
22 | name="classified_map_btn" width="80" /> | 22 | name="classified_map_btn" width="80" /> |
23 | <combo_box bottom_delta="-27" follows="left|top" height="18" label="" left="10" | 23 | <combo_box bottom_delta="-27" follows="left|top" height="18" label="" left="10" |
24 | name="classified_category_combo" right="150" /> | 24 | name="classified_category_combo" right="150" /> |
25 | <check_box bottom_delta="-1" follows="left|top" height="20" label="Mature" left="160" | 25 | <combo_box allow_text_entry="false" bottom_delta="-1" follows="left|top" height="20" |
26 | name="classified_mature_check" width="80" /> | 26 | label="" left="160" name="classified_mature_check" width="130" > |
27 | <combo_item name="select_mature" value="Select"> | ||
28 | - Select Mature - | ||
29 | </combo_item> | ||
30 | <combo_item name="mature" value="Mature"> | ||
31 | Mature Content | ||
32 | </combo_item> | ||
33 | <combo_item name="not_mature" value="Not Mature"> | ||
34 | Not Mature Content | ||
35 | </combo_item> | ||
36 | </combo_box> | ||
27 | <text bottom_delta="-25" follows="left|top" | 37 | <text bottom_delta="-25" follows="left|top" |
28 | font="SansSerifSmall" height="18" left="10" name="classified_info_text" | 38 | font="SansSerifSmall" height="18" left="10" name="classified_info_text" |
29 | tool_tip="The more you choose to pay for your ad, the higher in the list it appears." | 39 | tool_tip="The more you choose to pay for your ad, the higher in the list it appears." |
diff --git a/linden/indra/newview/skins/xui/en-us/panel_classified.xml b/linden/indra/newview/skins/xui/en-us/panel_classified.xml index bc7a4d1..063a110 100644 --- a/linden/indra/newview/skins/xui/en-us/panel_classified.xml +++ b/linden/indra/newview/skins/xui/en-us/panel_classified.xml | |||
@@ -22,10 +22,21 @@ | |||
22 | name="classified_map_btn" width="100" /> | 22 | name="classified_map_btn" width="100" /> |
23 | <button bottom_delta="0" follows="left|top" height="20" label="Profile" left="230" | 23 | <button bottom_delta="0" follows="left|top" height="20" label="Profile" left="230" |
24 | name="classified_profile_btn" width="100" /> | 24 | name="classified_profile_btn" width="100" /> |
25 | <check_box bottom="422" follows="left|top" height="20" label="Mature" left="30" | 25 | <combo_box allow_text_entry="false" bottom="422" follows="left|top" height="20" left="30" |
26 | name="classified_mature_check" width="80" /> | 26 | max_chars="20" mouse_opaque="true" name="classified_mature_check" width="130"> |
27 | <combo_box bottom="445" follows="left|top" height="18" label="" | 27 | <combo_item name="select_mature" value="Select"> |
28 | left="20" name="classified_category_combo" right="150" /> | 28 | - Select Mature - |
29 | </combo_item> | ||
30 | <combo_item name="mature" value="Mature"> | ||
31 | Mature Content | ||
32 | </combo_item> | ||
33 | <combo_item name="not_mature" value="Not Mature"> | ||
34 | Not Mature Content | ||
35 | </combo_item> | ||
36 | </combo_box> | ||
37 | <combo_box bg_readonly_color="grey" bottom="445" follows="left|top" height="18" label="" | ||
38 | left="20" name="classified_category_combo" right="150" | ||
39 | text_readonly_color="white" /> | ||
29 | <button bottom="400" follows="left|top" height="20" label="Update" left="30" | 40 | <button bottom="400" follows="left|top" height="20" label="Update" left="30" |
30 | name="classified_update_btn" width="70" /> | 41 | name="classified_update_btn" width="70" /> |
31 | <string name="ad_placed_paid"> | 42 | <string name="ad_placed_paid"> |
diff --git a/linden/indra/newview/skins/xui/en-us/panel_group_general.xml b/linden/indra/newview/skins/xui/en-us/panel_group_general.xml index 7332cdf..8103363 100644 --- a/linden/indra/newview/skins/xui/en-us/panel_group_general.xml +++ b/linden/indra/newview/skins/xui/en-us/panel_group_general.xml | |||
@@ -83,11 +83,6 @@ Hover your mouse over the options for more help. | |||
83 | initial_value="true" label="Show in search" left="4" mouse_opaque="true" | 83 | initial_value="true" label="Show in search" left="4" mouse_opaque="true" |
84 | name="show_in_group_list" radio_style="false" | 84 | name="show_in_group_list" radio_style="false" |
85 | tool_tip="Let people see this group in search results." width="95" /> | 85 | tool_tip="Let people see this group in search results." width="95" /> |
86 | <check_box bottom_delta="-18" follows="left|top" font="SansSerifSmall" height="16" | ||
87 | initial_value="false" label="Mature group" left_delta="0" | ||
88 | mouse_opaque="true" name="mature" radio_style="false" | ||
89 | tool_tip="Sets whether your group information is considered mature." | ||
90 | visible="true" width="95" /> | ||
91 | <check_box bottom_delta="-18" follows="right|top" font="SansSerifSmall" height="16" | 86 | <check_box bottom_delta="-18" follows="right|top" font="SansSerifSmall" height="16" |
92 | initial_value="false" label="Open enrollment" left="4" mouse_opaque="true" | 87 | initial_value="false" label="Open enrollment" left="4" mouse_opaque="true" |
93 | name="open_enrollement" radio_style="false" | 88 | name="open_enrollement" radio_style="false" |
@@ -106,6 +101,21 @@ Hover your mouse over the options for more help. | |||
106 | mouse_opaque="true" name="spin_enrollment_fee" right_delta="170" | 101 | mouse_opaque="true" name="spin_enrollment_fee" right_delta="170" |
107 | tool_tip="New members must pay this fee to join the group when Enrollment Fee is checked." | 102 | tool_tip="New members must pay this fee to join the group when Enrollment Fee is checked." |
108 | v_pad="0" width="65" /> | 103 | v_pad="0" width="65" /> |
104 | <combo_box allow_text_entry="false" bottom_delta="-30" follows="left|top" height="20" left="6" | ||
105 | max_chars="20" mouse_opaque="true" name="group_mature_check" | ||
106 | tool_tip="Sets whether your group information is considered mature." | ||
107 | width="130"> | ||
108 | <combo_item name="select_mature" value="Select"> | ||
109 | - Select Mature - | ||
110 | </combo_item> | ||
111 | <combo_item name="mature" value="Mature"> | ||
112 | Mature Content | ||
113 | </combo_item> | ||
114 | <combo_item name="not_mature" value="Not Mature"> | ||
115 | Not Mature Content | ||
116 | </combo_item> | ||
117 | </combo_box> | ||
118 | |||
109 | <panel background_opaque="false" border="false" bottom="-31" height="32" left="225" | 119 | <panel background_opaque="false" border="false" bottom="-31" height="32" left="225" |
110 | name="title_container" width="160"> | 120 | name="title_container" width="160"> |
111 | <text bottom="17" font="SansSerifSmall" left="0" name="active_title_label"> | 121 | <text bottom="17" font="SansSerifSmall" left="0" name="active_title_label"> |
diff --git a/linden/indra/newview/skins/xui/en-us/panel_group_notices.xml b/linden/indra/newview/skins/xui/en-us/panel_group_notices.xml index 7f0c0f7..0e5e84d 100644 --- a/linden/indra/newview/skins/xui/en-us/panel_group_notices.xml +++ b/linden/indra/newview/skins/xui/en-us/panel_group_notices.xml | |||
@@ -24,8 +24,9 @@ the General tab. | |||
24 | bottom_delta="-20" drop_shadow_visible="true" font="SansSerifSmall" | 24 | bottom_delta="-20" drop_shadow_visible="true" font="SansSerifSmall" |
25 | h_pad="0" halign="left" height="16" left_delta="0" mouse_opaque="true" | 25 | h_pad="0" halign="left" height="16" left_delta="0" mouse_opaque="true" |
26 | name="lbl2" v_pad="0" width="436"> | 26 | name="lbl2" v_pad="0" width="436"> |
27 | Notices are kept for 30 days. Click the notice below you wish to view. | 27 | Notices are kept for 14 days. Click the notice below you wish to view. |
28 | Click the 'Refresh' button to check if new notices have been received. | 28 | Click the 'Refresh' button to check if new notices have been received. |
29 | Notice lists are limited to 200 notices per group on a daily basis. | ||
29 | </text> | 30 | </text> |
30 | <scroll_list background_visible="true" bottom_delta="-137" column_padding="0" | 31 | <scroll_list background_visible="true" bottom_delta="-137" column_padding="0" |
31 | draw_border="true" draw_heading="true" enabled="true" | 32 | draw_border="true" draw_heading="true" enabled="true" |
diff --git a/linden/indra/newview/skins/xui/en-us/panel_preferences_graphics1.xml b/linden/indra/newview/skins/xui/en-us/panel_preferences_graphics1.xml index fbcb773..527309e 100644 --- a/linden/indra/newview/skins/xui/en-us/panel_preferences_graphics1.xml +++ b/linden/indra/newview/skins/xui/en-us/panel_preferences_graphics1.xml | |||
@@ -16,22 +16,48 @@ | |||
16 | If unchecked, viewer will display full-screen when logged in. | 16 | If unchecked, viewer will display full-screen when logged in. |
17 | </text_editor> | 17 | </text_editor> |
18 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 18 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
19 | bottom="-39" drop_shadow_visible="true" enabled="true" follows="left|top" | 19 | bottom="-62" drop_shadow_visible="true" enabled="true" follows="left|top" |
20 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | ||
21 | mouse_opaque="true" name="WindowSizeLabel" v_pad="0" width="128"> | ||
22 | Window Size: | ||
23 | </text> | ||
24 | <combo_box allow_text_entry="false" bottom="-67" enabled="true" follows="left|top" | ||
25 | height="18" left="185" max_chars="20" mouse_opaque="true" | ||
26 | name="windowsize combo" width="150"> | ||
27 | <combo_item type="string" length="1" enabled="true" name="640x480" value="640 x 480"> | ||
28 | 640x480 | ||
29 | </combo_item> | ||
30 | <combo_item type="string" length="1" enabled="true" name="800x600" value="800 x 600"> | ||
31 | 800x600 | ||
32 | </combo_item> | ||
33 | <combo_item type="string" length="1" enabled="true" name="720x480" value="720 x 480"> | ||
34 | 720x480 (NTSC) | ||
35 | </combo_item> | ||
36 | <combo_item type="string" length="1" enabled="true" name="768x576" value="768 x 576"> | ||
37 | 768x576 (PAL) | ||
38 | </combo_item> | ||
39 | <combo_item type="string" length="1" enabled="true" name="1024x768" value="1024 x 768"> | ||
40 | 1024x768 | ||
41 | </combo_item> | ||
42 | |||
43 | </combo_box> | ||
44 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
45 | bottom="-62" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
20 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | 46 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" |
21 | mouse_opaque="true" name="DisplayResLabel" v_pad="0" width="128"> | 47 | mouse_opaque="true" name="DisplayResLabel" v_pad="0" width="128"> |
22 | Display Resolution: | 48 | Display Resolution: |
23 | </text> | 49 | </text> |
24 | <combo_box allow_text_entry="false" bottom="-44" enabled="true" follows="left|top" | 50 | <combo_box allow_text_entry="false" bottom="-67" enabled="true" follows="left|top" |
25 | height="18" left="185" max_chars="20" mouse_opaque="true" | 51 | height="18" left="185" max_chars="20" mouse_opaque="true" |
26 | name="fullscreen combo" width="150" /> | 52 | name="fullscreen combo" width="150" /> |
27 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 53 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
28 | bottom="-62" drop_shadow_visible="true" enabled="true" follows="left|top" | 54 | bottom="-39" drop_shadow_visible="true" enabled="true" follows="left|top" |
29 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | 55 | font="SansSerifSmall" h_pad="0" halign="left" height="12" |
30 | left="10" mouse_opaque="true" name="AspectRatioLabel1" | 56 | left="10" mouse_opaque="true" name="AspectRatioLabel1" |
31 | tool_tip="width / height" v_pad="0" width="160"> | 57 | tool_tip="width / height" v_pad="0" width="160"> |
32 | Aspect Ratio: | 58 | Aspect Ratio: |
33 | </text> | 59 | </text> |
34 | <combo_box allow_text_entry="true" bottom="-66" enabled="true" follows="left|top" | 60 | <combo_box allow_text_entry="true" bottom="-43" enabled="true" follows="left|top" |
35 | height="16" left="185" max_chars="100" mouse_opaque="true" | 61 | height="16" left="185" max_chars="100" mouse_opaque="true" |
36 | name="aspect_ratio" tool_tip="width / height" width="150"> | 62 | name="aspect_ratio" tool_tip="width / height" width="150"> |
37 | <combo_item type="string" length="1" enabled="true" name="4:3(StandardCRT)" value="1.333333"> | 63 | <combo_item type="string" length="1" enabled="true" name="4:3(StandardCRT)" value="1.333333"> |
@@ -47,7 +73,7 @@ | |||
47 | 16:9 (Widescreen) | 73 | 16:9 (Widescreen) |
48 | </combo_item> | 74 | </combo_item> |
49 | </combo_box> | 75 | </combo_box> |
50 | <check_box bottom="-67" control_name="FullScreenAutoDetectAspectRatio" enabled="true" | 76 | <check_box bottom="-44" control_name="FullScreenAutoDetectAspectRatio" enabled="true" |
51 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 77 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
52 | label="Auto-detect ratio" left="358" mouse_opaque="true" | 78 | label="Auto-detect ratio" left="358" mouse_opaque="true" |
53 | name="aspect_auto_detect" radio_style="false" width="256" /> | 79 | name="aspect_auto_detect" radio_style="false" width="256" /> |
diff --git a/linden/indra/newview/skins/xui/en-us/panel_preferences_web.xml b/linden/indra/newview/skins/xui/en-us/panel_preferences_web.xml index a32ca56..4d84e32 100644 --- a/linden/indra/newview/skins/xui/en-us/panel_preferences_web.xml +++ b/linden/indra/newview/skins/xui/en-us/panel_preferences_web.xml | |||
@@ -3,13 +3,13 @@ | |||
3 | height="408" label="Web" left="102" mouse_opaque="true" name="web" | 3 | height="408" label="Web" left="102" mouse_opaque="true" name="web" |
4 | width="517"> | 4 | width="517"> |
5 | <radio_group bottom="-45" draw_border="false" follows="top|left" height="40" left="12" | 5 | <radio_group bottom="-45" draw_border="false" follows="top|left" height="40" left="12" |
6 | name="use_external_browser" | 6 | name="use_external_browser" width="480"> |
7 | tool_tip="Use outside web browser for help, web links, etc. Not recommended if running full screen." | 7 | <radio_item bottom="-20" height="20" left="0" name="external" width="480" |
8 | width="480"> | 8 | tool_tip="Use the default system web browser for help, web links, etc. Not recommended if running full screen."> |
9 | <radio_item bottom="-20" height="20" left="0" name="external" width="480"> | ||
10 | Use external web browser (Firefox, Safari, Internet Explorer) | 9 | Use external web browser (Firefox, Safari, Internet Explorer) |
11 | </radio_item> | 10 | </radio_item> |
12 | <radio_item bottom="-40" height="20" left="0" name="internal" width="480"> | 11 | <radio_item bottom="-40" height="20" left="0" name="internal" width="480" |
12 | tool_tip="Use the built-in web browser for help, web links, etc. This browser opens as a new window inside Second Life."> | ||
13 | Use built-in web browser | 13 | Use built-in web browser |
14 | </radio_item> | 14 | </radio_item> |
15 | </radio_group> | 15 | </radio_group> |
diff --git a/linden/indra/newview/skins/xui/en-us/panel_region_general.xml b/linden/indra/newview/skins/xui/en-us/panel_region_general.xml index fa12fca..af3cecf 100644 --- a/linden/indra/newview/skins/xui/en-us/panel_region_general.xml +++ b/linden/indra/newview/skins/xui/en-us/panel_region_general.xml | |||
@@ -9,6 +9,14 @@ | |||
9 | name="region_text" width="400"> | 9 | name="region_text" width="400"> |
10 | unknown | 10 | unknown |
11 | </text> | 11 | </text> |
12 | <text bottom="-50" follows="left|top" font="SansSerif" height="20" left="10" | ||
13 | name="version_channel_text_lbl" width="100"> | ||
14 | Version: | ||
15 | </text> | ||
16 | <text bottom_delta="0" follows="left|top" font="SansSerif" height="20" left="60" | ||
17 | name="version_channel_text" width="200"> | ||
18 | unknown | ||
19 | </text> | ||
12 | <check_box bottom_delta="-20" follows="left|top" height="20" label="Block Terraform" | 20 | <check_box bottom_delta="-20" follows="left|top" height="20" label="Block Terraform" |
13 | left="10" name="block_terraform_check" width="80" /> | 21 | left="10" name="block_terraform_check" width="80" /> |
14 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?" | 22 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?" |
@@ -74,6 +82,6 @@ | |||
74 | label="Teleport Home All Users..." left="10" name="kick_all_btn" width="250" /> | 82 | label="Teleport Home All Users..." left="10" name="kick_all_btn" width="250" /> |
75 | <button bottom_delta="-40" follows="left|top" height="20" | 83 | <button bottom_delta="-40" follows="left|top" height="20" |
76 | label="Send Message To Region..." left="10" name="im_btn" width="200" /> | 84 | label="Send Message To Region..." left="10" name="im_btn" width="200" /> |
77 | <button bottom="-50" follows="left|top" height="20" label="Manage Telehub..." | 85 | <button bottom="-70" follows="left|top" height="20" label="Manage Telehub..." |
78 | left="250" name="manage_telehub_btn" width="150" /> | 86 | left="250" name="manage_telehub_btn" width="150" /> |
79 | </panel> | 87 | </panel> |
diff --git a/linden/indra/newview/skins/xui/en-us/strings.xml b/linden/indra/newview/skins/xui/en-us/strings.xml new file mode 100644 index 0000000..9952d56 --- /dev/null +++ b/linden/indra/newview/skins/xui/en-us/strings.xml | |||
@@ -0,0 +1,166 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <!-- This file contains strings that used to be hardcoded in the source. | ||
3 | It is only for those strings which don't belong in a floater. | ||
4 | For example, the strings used in avatar chat bubbles, and strings | ||
5 | that are returned from one component and may appear in many places--> | ||
6 | <strings> | ||
7 | |||
8 | <!-- Login --> | ||
9 | <string name="LoginInProgress">Logging in. [APP_NAME] may appear frozen. Please wait.</string> | ||
10 | <string name="LoginAuthenticating">Authenticating</string> | ||
11 | <string name="LoginMaintenance">Performing account maintenance...</string> | ||
12 | <string name="LoginAttempt">Previous login attempt failed. Logging in, attempt [NUMBER]</string> | ||
13 | <string name="LoginPrecaching">Loading world...</string> | ||
14 | <string name="LoginInitializingBrowser">Initializing embedded web browser...</string> | ||
15 | <string name="LoginVerifyingCache">Verifying cache files (can take 60-90 seconds)...</string> | ||
16 | <string name="LoginProcessingResponse">Processing Response...</string> | ||
17 | <string name="LoginInitializingWorld">Initializing World...</string> | ||
18 | <string name="LoginDecodingImages">Decoding images...</string> | ||
19 | <string name="LoginInitializingQuicktime">Initializing QuickTime...</string> | ||
20 | <string name="LoginQuicktimeNotFound">QuickTime not found - unable to initialize.</string> | ||
21 | <string name="LoginQuicktimeOK">QuickTime initialized successfully.</string> | ||
22 | <string name="LoginWaitingForRegionHandshake">Waiting for region handshake...</string> | ||
23 | <string name="LoginConnectingToRegion">Connecting to region...</string> | ||
24 | <string name="LoginDownloadingClothing">Downloading clothing...</string> | ||
25 | |||
26 | |||
27 | |||
28 | <!-- Tooltip, llhoverview.cpp. Note: spaces at the end are intentional --> | ||
29 | <string name="TooltipPerson">Person</string><!-- Object under mouse pointer is an avatar --> | ||
30 | <string name="TooltipNoName">(no name)</string> <!-- No name on an object --> | ||
31 | <string name="TooltipOwner">Owner:</string> <!-- Owner name follows --> | ||
32 | <string name="TooltipPublic">Public</string> <!-- Public permissions on an object --> | ||
33 | <string name="TooltipIsGroup">(Group)</string> <!-- The name before this text is that of a group --> | ||
34 | <string name="TooltipFlagScript">Script</string> | ||
35 | <string name="TooltipFlagPhysics">Physics</string> | ||
36 | <string name="TooltipFlagTouch">Touch</string> | ||
37 | <string name="TooltipFlagL$">L$</string> | ||
38 | <string name="TooltipFlagDropInventory">Drop Inventory</string> | ||
39 | <string name="TooltipFlagPhantom">Phantom</string> | ||
40 | <string name="TooltipFlagTemporary">Temporary</string> | ||
41 | <string name="TooltipFlagRightClickMenu">(Right-click for menu)</string> | ||
42 | <string name="TooltipFreeToCopy">Free to copy</string> | ||
43 | <string name="TooltipForSaleL$">For Sale: L$[AMOUNT]</string> <!-- L$ version --> | ||
44 | <string name="TooltipForSaleMsg">For Sale: [MESSAGE]</string> <!-- Message (RetrievingData) --> | ||
45 | <string name="TooltipFlagGroupBuild">Group Build</string> | ||
46 | <string name="TooltipFlagNoBuild">No Build</string> | ||
47 | <string name="TooltipFlagNoEdit">Group Build</string> | ||
48 | <string name="TooltipFlagNotSafe">Not Safe</string><!-- damage area --> | ||
49 | <string name="TooltipFlagNoFly">No Fly</string> | ||
50 | <string name="TooltipFlagGroupScripts">Group Scripts</string> | ||
51 | <string name="TooltipFlagNoScripts">No Scripts</string> | ||
52 | |||
53 | <string name="TooltipLand">Land:</string> | ||
54 | |||
55 | |||
56 | <!-- Indicates that an avatar's name or other similar datum is being retrieved. General usage. --> | ||
57 | <string name="RetrievingData">Retrieving...</string> | ||
58 | |||
59 | <!-- Indicates something is being loaded. Maybe should be merged with RetrievingData --> | ||
60 | <string name="LoadingData">Loading...</string> | ||
61 | |||
62 | |||
63 | <!-- namecache --> | ||
64 | <!-- Avatar name: text shown for LLUUID::null --> | ||
65 | <string name="AvatarNameNobody">(nobody)</string> | ||
66 | |||
67 | <!-- Avatar name: text shown while fetching name --> | ||
68 | <string name="AvatarNameWaiting">(waiting)</string> | ||
69 | |||
70 | <!-- Avatar name: text shown as an alternative to AvatarNameFetching, easter egg. --> | ||
71 | <string name="AvatarNameHippos">(hippos)</string> | ||
72 | |||
73 | <!-- Group name: text shown for LLUUID::null --> | ||
74 | <string name="GroupNameNone">(none)</string> | ||
75 | |||
76 | <!-- Asset errors. Used in llassetstorage.cpp, translation from error code to error message. --> | ||
77 | <string name="AssetErrorNone">No error</string> | ||
78 | <string name="AssetErrorRequestFailed">Asset request: failed</string> | ||
79 | <string name="AssetErrorNonexistentFile">Asset request: non-existent file</string> | ||
80 | <string name="AssetErrorNotInDatabase">Asset request: asset not found in database</string> | ||
81 | <string name="AssetErrorEOF">End of file</string> | ||
82 | <string name="AssetErrorCannotOpenFile">Cannot open file</string> | ||
83 | <string name="AssetErrorFileNotFound">File not found</string> | ||
84 | <string name="AssetErrorTCPTimeout">File transfer timeout</string> | ||
85 | <string name="AssetErrorCircuitGone">Circuit gone</string> | ||
86 | <string name="AssetErrorUnknownStatus">Unknown status</string> | ||
87 | |||
88 | <!-- llvoavatar. Displayed in the avatar's chat bubble --> | ||
89 | <string name="AvatarEditingApparance">(Editing Appearance)</string> | ||
90 | <string name="AvatarAway">Away</string> | ||
91 | <string name="AvatarBusy">Busy</string> | ||
92 | <string name="AvatarMuted">Muted</string> | ||
93 | |||
94 | <!-- animations --> | ||
95 | <string name="anim_express_afraid">Afraid</string> | ||
96 | <string name="anim_express_anger">Angry</string> | ||
97 | <string name="anim_away">Away</string> | ||
98 | <string name="anim_backflip">Backflip</string> | ||
99 | <string name="anim_express_laugh">Belly Laugh</string> | ||
100 | <string name="anim_express_toothsmile">BigSmile</string> | ||
101 | <string name="anim_blowkiss">Blow Kiss</string> | ||
102 | <string name="anim_express_bored">Bored</string> | ||
103 | <string name="anim_bow">Bow</string> | ||
104 | <string name="anim_clap">Clap</string> | ||
105 | <string name="anim_courtbow">Court Bow</string> | ||
106 | <string name="anim_express_cry">Cry</string> | ||
107 | <string name="anim_dance1">Dance 1</string> | ||
108 | <string name="anim_dance2">Dance 2</string> | ||
109 | <string name="anim_dance3">Dance 3</string> | ||
110 | <string name="anim_dance4">Dance 4</string> | ||
111 | <string name="anim_dance5">Dance 5</string> | ||
112 | <string name="anim_dance6">Dance 6</string> | ||
113 | <string name="anim_dance7">Dance 7</string> | ||
114 | <string name="anim_dance8">Dance 8</string> | ||
115 | <string name="anim_express_disdain">Disdain</string> | ||
116 | <string name="anim_drink">Drink</string> | ||
117 | <string name="anim_express_embarrased">Embarrassed</string> | ||
118 | <string name="anim_angry_fingerwag">Finger Wag</string> | ||
119 | <string name="anim_fist_pump">Fist Pump</string> | ||
120 | <string name="anim_yoga_float">Floating Yoga</string> | ||
121 | <string name="anim_express_frown">Frown</string> | ||
122 | <string name="anim_impatient">Impatient</string> | ||
123 | <string name="anim_jumpforjoy">Jump For Joy</string> | ||
124 | <string name="anim_kissmybutt">Kiss My Butt</string> | ||
125 | <string name="anim_express_kiss">Kiss</string> | ||
126 | <string name="anim_laugh_short">Laugh</string> | ||
127 | <string name="anim_musclebeach">Muscle Beach</string> | ||
128 | <string name="anim_no_unhappy">No (Unhappy)</string> | ||
129 | <string name="anim_no_head">No</string> | ||
130 | <string name="anim_nyanya">Nya-nya-nya</string> | ||
131 | <string name="anim_punch_onetwo">One-Two Punch</string> | ||
132 | <string name="anim_express_open_mouth">Open Mouth</string> | ||
133 | <string name="anim_peace">Peace</string> | ||
134 | <string name="anim_point_you">Point at Other</string> | ||
135 | <string name="anim_point_me">Point at Self</string> | ||
136 | <string name="anim_punch_l">Punch Left</string> | ||
137 | <string name="anim_punch_r">Punch Right</string> | ||
138 | <string name="anim_rps_countdown">RPS count</string> | ||
139 | <string name="anim_rps_paper">RPS paper</string> | ||
140 | <string name="anim_rps_rock">RPS rock</string> | ||
141 | <string name="anim_rps_scissors">RPS scissors</string> | ||
142 | <string name="anim_express_repulsed">Repulsed</string> | ||
143 | <string name="anim_kick_roundhouse_r">Roundhouse Kick</string> | ||
144 | <string name="anim_express_sad">Sad</string> | ||
145 | <string name="anim_salute">Salute</string> | ||
146 | <string name="anim_shout">Shout</string> | ||
147 | <string name="anim_express_shrug">Shrug</string> | ||
148 | <string name="anim_express_smile">Smile</string> | ||
149 | <string name="anim_smoke_idle">Smoke Idle</string> | ||
150 | <string name="anim_smoke_inhale">Smoke Inhale</string> | ||
151 | <string name="anim_smoke_throw_down">Smoke Throw Down</string> | ||
152 | <string name="anim_express_surprise">Surprise</string> | ||
153 | <string name="anim_sword_strike_r">Sword Strike</string> | ||
154 | <string name="anim_angry_tantrum">Tantrum</string> | ||
155 | <string name="anim_express_tongue_out">TongueOut</string> | ||
156 | <string name="anim_hello">Wave</string> | ||
157 | <string name="anim_whisper">Whisper</string> | ||
158 | <string name="anim_whistle">Whistle</string> | ||
159 | <string name="anim_express_wink">Wink</string> | ||
160 | <string name="anim_wink_hollywood">Wink (Hollywood)</string> | ||
161 | <string name="anim_express_worry">Worry</string> | ||
162 | <string name="anim_yes_happy">Yes (Happy)</string> | ||
163 | <string name="anim_yes_head">Yes</string> | ||
164 | |||
165 | </strings> | ||
166 | |||
diff --git a/linden/indra/newview/skins/xui/es/panel_group_notices.xml b/linden/indra/newview/skins/xui/es/panel_group_notices.xml index 86b8d2c..62d884d 100644 --- a/linden/indra/newview/skins/xui/es/panel_group_notices.xml +++ b/linden/indra/newview/skins/xui/es/panel_group_notices.xml | |||
@@ -16,7 +16,7 @@ pestaña General. | |||
16 | Archivo de avisos de grupo | 16 | Archivo de avisos de grupo |
17 | </text> | 17 | </text> |
18 | <text name="lbl2"> | 18 | <text name="lbl2"> |
19 | Avisos son mantenidos por 30 días. Haga clic en el aviso abajo se desea verlo. | 19 | Avisos son mantenidos por 14 días. Haga clic en el aviso abajo se desea verlo. |
20 | Haga clic en el botón 'Actualizar lista' si nuevos avisos fueron recibidos. | 20 | Haga clic en el botón 'Actualizar lista' si nuevos avisos fueron recibidos. |
21 | </text> | 21 | </text> |
22 | <scroll_list name="notice_list"> | 22 | <scroll_list name="notice_list"> |
diff --git a/linden/indra/newview/skins/xui/fr/panel_group_notices.xml b/linden/indra/newview/skins/xui/fr/panel_group_notices.xml index 6643107..a266155 100644 --- a/linden/indra/newview/skins/xui/fr/panel_group_notices.xml +++ b/linden/indra/newview/skins/xui/fr/panel_group_notices.xml | |||
@@ -16,7 +16,7 @@ l'onglet Général. | |||
16 | Archive des Notifications du Groupe | 16 | Archive des Notifications du Groupe |
17 | </text> | 17 | </text> |
18 | <text name="lbl2"> | 18 | <text name="lbl2"> |
19 | Les Notifications sont conservées pendant 30 jours. Cliquez sur la notification que vous souhaitez afficher. | 19 | Les Notifications sont conservées pendant 14 jours. Cliquez sur la notification que vous souhaitez afficher. |
20 | Cliquez sur 'Actualiser' pour afficher les nouvelles notifications. | 20 | Cliquez sur 'Actualiser' pour afficher les nouvelles notifications. |
21 | </text> | 21 | </text> |
22 | <scroll_list name="notice_list"> | 22 | <scroll_list name="notice_list"> |
diff --git a/linden/indra/newview/skins/xui/ja/floater_about.xml b/linden/indra/newview/skins/xui/ja/floater_about.xml index 0567010..75983b5 100644 --- a/linden/indra/newview/skins/xui/ja/floater_about.xml +++ b/linden/indra/newview/skins/xui/ja/floater_about.xml | |||
@@ -26,7 +26,7 @@ zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler. | |||
26 | Voice chat Audio coding:Polycom(R) Siren14(TM) (ITU-T Rec.G.722.1 Annex C) | 26 | Voice chat Audio coding:Polycom(R) Siren14(TM) (ITU-T Rec.G.722.1 Annex C) |
27 | 27 | ||
28 | 28 | ||
29 | Happiness is a warm puppy. (しあわせはcあったかい子犬)-- チャールズ・M・シュルツ | 29 | Happiness is a warm puppy. (しあわせはあったかい子犬)-- チャールズ・M・シュルツ |
30 | </text_editor> | 30 | </text_editor> |
31 | <text name="you_are_at"> | 31 | <text name="you_are_at"> |
32 | [POSITION]中 | 32 | [POSITION]中 |
diff --git a/linden/indra/newview/skins/xui/ja/floater_html.xml b/linden/indra/newview/skins/xui/ja/floater_html.xml index 1cb5384..6e1e7a0 100644 --- a/linden/indra/newview/skins/xui/ja/floater_html.xml +++ b/linden/indra/newview/skins/xui/ja/floater_html.xml | |||
@@ -5,4 +5,7 @@ | |||
5 | <button label="ホーム" name="home_btn" /> | 5 | <button label="ホーム" name="home_btn" /> |
6 | <button label="進む" name="forward_btn" /> | 6 | <button label="進む" name="forward_btn" /> |
7 | <button label="移動" name="go_btn" /> | 7 | <button label="移動" name="go_btn" /> |
8 | <string name="home_page_url"> | ||
9 | http://jp.secondlife.com | ||
10 | </string> | ||
8 | </floater> | 11 | </floater> |
diff --git a/linden/indra/newview/skins/xui/ja/floater_joystick.xml b/linden/indra/newview/skins/xui/ja/floater_joystick.xml index 517b9dd..baef61c 100644 --- a/linden/indra/newview/skins/xui/ja/floater_joystick.xml +++ b/linden/indra/newview/skins/xui/ja/floater_joystick.xml | |||
@@ -3,65 +3,116 @@ | |||
3 | <spinner label="X軸マッピング" name="JoystickAxis1" /> | 3 | <spinner label="X軸マッピング" name="JoystickAxis1" /> |
4 | <spinner label="Y軸マッピング" name="JoystickAxis2" /> | 4 | <spinner label="Y軸マッピング" name="JoystickAxis2" /> |
5 | <spinner label="Z軸マッピング" name="JoystickAxis0" /> | 5 | <spinner label="Z軸マッピング" name="JoystickAxis0" /> |
6 | <spinner label="ピッチ・マッピング" name="JoystickAxis4" /> | 6 | <spinner label="ピッチ・マッピング" name="JoystickAxis4" label_width="110" left="10" width="150"/> |
7 | <spinner label="ヨー・マッピング" name="JoystickAxis5" /> | 7 | <spinner label="ヨー・マッピング" name="JoystickAxis5" /> |
8 | <spinner label="ロール・マッピング" name="JoystickAxis3" /> | 8 | <spinner label="ロール・マッピング" name="JoystickAxis3" label_width="110" left="350" width="150"/> |
9 | <spinner label="ズーム・マッピング" name="JoystickAxis6" /> | 9 | <spinner label="ズーム・マッピング" name="JoystickAxis6" label_width="110" left="10" width="150"/> |
10 | <check_box label="直接ズーム" name="ZoomDirect" /> | 10 | <check_box label="直接ズーム" name="ZoomDirect" /> |
11 | <check_box label="3Dカーソル" name="Cursor3D" /> | 11 | <check_box label="3Dカーソル" name="Cursor3D" /> |
12 | <check_box label="自動レベル" name="AutoLeveling" /> | 12 | <check_box label="自動レベル" name="AutoLeveling" /> |
13 | <text name="Control Modes:"> | 13 | <text name="Control Modes:"> |
14 | 制御モード: | 14 | 制御モード: |
15 | </text> | 15 | </text> |
16 | <check_box name="JoystickAvatarEnabled">アバター</check_box> | 16 | <check_box left="131" name="JoystickAvatarEnabled">アバター</check_box> |
17 | <check_box name="JoystickBuildEnabled">造る</check_box> | 17 | <check_box left="201" name="JoystickBuildEnabled">造る</check_box> |
18 | <check_box name="JoystickFlycamEnabled">フライ・カメラ</check_box> | 18 | <check_box left="271" name="JoystickFlycamEnabled">フライ・カメラ</check_box> |
19 | <text name="XScale"> | 19 | <text name="XScale" left="5" width="120"> |
20 | Xスケール | 20 | Xスケール |
21 | </text> | 21 | </text> |
22 | <text name="YScale"> | 22 | <spinner left="135" width="50" name="AvatarAxisScale1" /> |
23 | <spinner left="205" width="50" name="BuildAxisScale1" /> | ||
24 | <spinner left="275" width="50" name="FlycamAxisScale1" /> | ||
25 | |||
26 | <text name="YScale" left="5" width="120"> | ||
23 | Yスケール | 27 | Yスケール |
24 | </text> | 28 | </text> |
25 | <text name="ZScale"> | 29 | <spinner left="135" width="50" name="AvatarAxisScale2" /> |
30 | <spinner left="205" width="50" name="BuildAxisScale2" /> | ||
31 | <spinner left="275" width="50" name="FlycamAxisScale2" /> | ||
32 | |||
33 | <text name="ZScale" left="5" width="120"> | ||
26 | Zスケール | 34 | Zスケール |
27 | </text> | 35 | </text> |
28 | <text name="PitchScale"> | 36 | <spinner left="135" width="50" name="AvatarAxisScale0" /> |
37 | <spinner left="205" width="50" name="BuildAxisScale0" /> | ||
38 | <spinner left="275" width="50" name="FlycamAxisScale0" /> | ||
39 | |||
40 | <text name="PitchScale" left="5" width="120"> | ||
29 | ピッチ・スケール | 41 | ピッチ・スケール |
30 | </text> | 42 | </text> |
31 | <text name="YawScale"> | 43 | <spinner left="135" width="50" name="AvatarAxisScale4" /> |
44 | <spinner left="205" width="50" name="BuildAxisScale4" /> | ||
45 | <spinner left="275" width="50" name="FlycamAxisScale4" /> | ||
46 | |||
47 | <text name="YawScale" left="5" width="120"> | ||
32 | ヨー・スケール | 48 | ヨー・スケール |
33 | </text> | 49 | </text> |
34 | <text name="RollScale"> | 50 | <spinner left="135" width="50" name="AvatarAxisScale5" /> |
51 | <spinner left="205" width="50" name="BuildAxisScale5" /> | ||
52 | <spinner left="275" width="50" name="FlycamAxisScale5" /> | ||
53 | |||
54 | <text name="RollScale" left="5" width="120"> | ||
35 | ロール・スケール | 55 | ロール・スケール |
36 | </text> | 56 | </text> |
37 | <text name="XDeadZone"> | 57 | <spinner left="205" width="50" name="BuildAxisScale3" /> |
58 | <spinner left="275" width="50" name="FlycamAxisScale3" /> | ||
59 | |||
60 | <text name="XDeadZone" left="5" width="120"> | ||
38 | Xデッド・ゾーン | 61 | Xデッド・ゾーン |
39 | </text> | 62 | </text> |
40 | <text name="YDeadZone"> | 63 | <spinner left="135" width="50" name="AvatarAxisDeadZone1" /> |
64 | <spinner left="205" width="50" name="BuildAxisDeadZone1" /> | ||
65 | <spinner left="275" width="50" name="FlycamAxisDeadZone1"/> | ||
66 | |||
67 | <text name="YDeadZone" left="5" width="120"> | ||
41 | Yデッド・ゾーン | 68 | Yデッド・ゾーン |
42 | </text> | 69 | </text> |
43 | <text name="ZDeadZone"> | 70 | <spinner left="135" width="50" name="AvatarAxisDeadZone2"/> |
71 | <spinner left="205" width="50" name="BuildAxisDeadZone2"/> | ||
72 | <spinner left="275" width="50" name="FlycamAxisDeadZone2" /> | ||
73 | |||
74 | <text name="ZDeadZone" left="5" width="120"> | ||
44 | Zデッド・ゾーン | 75 | Zデッド・ゾーン |
45 | </text> | 76 | </text> |
46 | <text name="PitchDeadZone"> | 77 | <spinner left="135" width="50" name="AvatarAxisDeadZone0" /> |
78 | <spinner left="205" width="50" name="BuildAxisDeadZone0" /> | ||
79 | <spinner left="275" width="50" name="FlycamAxisDeadZone0" /> | ||
80 | |||
81 | <text name="PitchDeadZone" left="0" width="135"> | ||
47 | ピッチ・デッド・ゾーン | 82 | ピッチ・デッド・ゾーン |
48 | </text> | 83 | </text> |
49 | <text name="YawDeadZone"> | 84 | <spinner left="135" width="50" name="AvatarAxisDeadZone4"/> |
85 | <spinner left="205" width="50" name="BuildAxisDeadZone4"/> | ||
86 | <spinner left="275" width="50" name="FlycamAxisDeadZone4"/> | ||
87 | |||
88 | <text name="YawDeadZone" left="5" width="120"> | ||
50 | ヨー・デッド・ゾーン | 89 | ヨー・デッド・ゾーン |
51 | </text> | 90 | </text> |
52 | <text name="RollDeadZone"> | 91 | <spinner left="135" width="50" name="AvatarAxisDeadZone5" /> |
92 | <spinner left="205" width="50" name="BuildAxisDeadZone5" /> | ||
93 | <spinner left="275" width="50" name="FlycamAxisDeadZone5" /> | ||
94 | |||
95 | <text name="RollDeadZone" left="0" width="135"> | ||
53 | ロール・デッド・ゾーン | 96 | ロール・デッド・ゾーン |
54 | </text> | 97 | </text> |
98 | <spinner left="205" width="50" name="BuildAxisDeadZone3" /> | ||
99 | <spinner left="275" width="50" name="FlycamAxisDeadZone3" /> | ||
100 | |||
55 | <text name="Feathering"> | 101 | <text name="Feathering"> |
56 | 羽毛 | 102 | 羽毛 |
57 | </text> | 103 | </text> |
58 | <text name="ZoomScale2"> | 104 | <slider left="126" width="67" name="AvatarFeathering" /> |
105 | <slider left="196" width="67" name="BuildFeathering" /> | ||
106 | <slider left="266" width="67" name="FlycamFeathering" /> | ||
107 | <text name="ZoomScale2" left="0" width="140"> | ||
59 | ズーム・スケール | 108 | ズーム・スケール |
60 | </text> | 109 | </text> |
61 | <text name="ZoomDeadZone"> | 110 | <spinner left="275" width="50" name="FlycamAxisScale6" /> |
111 | <text name="ZoomDeadZone" left="0" width="140"> | ||
62 | ズーム・デッド・ゾーン | 112 | ズーム・デッド・ゾーン |
63 | </text> | 113 | </text> |
64 | <button label="SpaceNavigatorのデフォルト設定" name="SpaceNavigatorDefaults" /> | 114 | <spinner left="275" width="50" name="FlycamAxisDeadZone6" /> |
115 | <button label="SpaceNavigatorのデフォルト設定" name="SpaceNavigatorDefaults" width="210" left="330"/> | ||
65 | <!-- Reverted the translation of the Joystick Monitor axes due to monospace font that cannot support UTF8 (see VWR-6608) | 116 | <!-- Reverted the translation of the Joystick Monitor axes due to monospace font that cannot support UTF8 (see VWR-6608) |
66 | <string name="JoystickMonitor"> | 117 | <string name="JoystickMonitor"> |
67 | ジョイスティック・モニター | 118 | ジョイスティック・モニター |
diff --git a/linden/indra/newview/skins/xui/ja/mime_types.xml b/linden/indra/newview/skins/xui/ja/mime_types.xml index a7019ad..9bebc7c 100644 --- a/linden/indra/newview/skins/xui/ja/mime_types.xml +++ b/linden/indra/newview/skins/xui/ja/mime_types.xml | |||
@@ -78,7 +78,7 @@ | |||
78 | </label> | 78 | </label> |
79 | </mimetype> | 79 | </mimetype> |
80 | <mimetype name="image/*"> | 80 | <mimetype name="image/*"> |
81 | <label label="image2_label"> | 81 | <label name="image2_label"> |
82 | 画像 | 82 | 画像 |
83 | </label> | 83 | </label> |
84 | </mimetype> | 84 | </mimetype> |
diff --git a/linden/indra/newview/skins/xui/ja/panel_group_notices.xml b/linden/indra/newview/skins/xui/ja/panel_group_notices.xml index 46eb096..f63c368 100644 --- a/linden/indra/newview/skins/xui/ja/panel_group_notices.xml +++ b/linden/indra/newview/skins/xui/ja/panel_group_notices.xml | |||
@@ -15,7 +15,7 @@ | |||
15 | グループ通知アーカイブ | 15 | グループ通知アーカイブ |
16 | </text> | 16 | </text> |
17 | <text name="lbl2"> | 17 | <text name="lbl2"> |
18 | 通知は、30日間保存されます。 閲覧したい通知をクリックしてください。 | 18 | 通知は、14日間保存されます。 閲覧したい通知をクリックしてください。 |
19 | 新着の通知をチェックするには、[更新]ボタンをクリックします。 | 19 | 新着の通知をチェックするには、[更新]ボタンをクリックします。 |
20 | </text> | 20 | </text> |
21 | <scroll_list name="notice_list"> | 21 | <scroll_list name="notice_list"> |
diff --git a/linden/indra/newview/skins/xui/ja/panel_preferences_graphics1.xml b/linden/indra/newview/skins/xui/ja/panel_preferences_graphics1.xml index d3d3734..19e443a 100644 --- a/linden/indra/newview/skins/xui/ja/panel_preferences_graphics1.xml +++ b/linden/indra/newview/skins/xui/ja/panel_preferences_graphics1.xml | |||
@@ -14,14 +14,14 @@ | |||
14 | <text type="string" length="1" name="(width / height)"> | 14 | <text type="string" length="1" name="(width / height)"> |
15 | (幅/高さ) | 15 | (幅/高さ) |
16 | </text> | 16 | </text> |
17 | <text_editor name="FullScreenInfo" width="480" bottom="-63" height="40"> | 17 | <text_editor name="FullScreenInfo" width="480" bottom="-56" height="40"> |
18 | チェックされていない場合は、ログインするとビューワがフルスクリーンで表示されます。 | 18 | チェックされていない場合は、ログインするとビューワがフルスクリーンで表示されます。 |
19 | </text_editor> | 19 | </text_editor> |
20 | <text name="DisplayResLabel"> | 20 | <text name="DisplayResLabel"> |
21 | 表示解像度: | 21 | 表示解像度: |
22 | </text> | 22 | </text> |
23 | <text name="AspectRatioLabel1" tool_tip="(幅/高さ)"> | 23 | <text name="AspectRatioLabel1" tool_tip="(幅/高さ)"> |
24 | 縦横比: | 24 | 縦横比: |
25 | </text> | 25 | </text> |
26 | <combo_box name="aspect_ratio" tool_tip="(幅/高さ)"> | 26 | <combo_box name="aspect_ratio" tool_tip="(幅/高さ)"> |
27 | <combo_item type="string" length="1" name="4:3(StandardCRT)"> | 27 | <combo_item type="string" length="1" name="4:3(StandardCRT)"> |
@@ -104,7 +104,7 @@ | |||
104 | </radio_item> | 104 | </radio_item> |
105 | </radio_group> | 105 | </radio_group> |
106 | <text name="AvatarRenderingText"> | 106 | <text name="AvatarRenderingText"> |
107 | アバター表示: | 107 | アバター表示: |
108 | </text> | 108 | </text> |
109 | <check_box label="アバターの精度を下げる" name="AvatarImpostors" /> | 109 | <check_box label="アバターの精度を下げる" name="AvatarImpostors" /> |
110 | <check_box label="ハードウェア・スキニング" name="AvatarVertexProgram" /> | 110 | <check_box label="ハードウェア・スキニング" name="AvatarVertexProgram" /> |
@@ -117,14 +117,14 @@ | |||
117 | </text> | 117 | </text> |
118 | <slider label="描画距離:" name="DrawDistance" /> | 118 | <slider label="描画距離:" name="DrawDistance" /> |
119 | <slider label="最大パーティクル数:" name="MaxParticleCount" /> | 119 | <slider label="最大パーティクル数:" name="MaxParticleCount" /> |
120 | <slider label="ポストプロセス品質:" name="RenderPostProcess" /> | 120 | <slider label="ポストプロセス品質:" name="RenderPostProcess" /> |
121 | <text name="MeshDetailText"> | 121 | <text name="MeshDetailText"> |
122 | メッシュ詳細: | 122 | メッシュ詳細: |
123 | </text> | 123 | </text> |
124 | <slider label=" オブジェクト:" name="ObjectMeshDetail" /> | 124 | <slider label=" オブジェクト:" name="ObjectMeshDetail" /> |
125 | <slider label=" フレキシプリム:" name="FlexibleMeshDetail" /> | 125 | <slider label=" フレキシプリム:" name="FlexibleMeshDetail" /> |
126 | <slider label=" 樹木:" name="TreeMeshDetail" /> | 126 | <slider label=" 樹木:" name="TreeMeshDetail" /> |
127 | <slider label=" アバター:" name="AvatarMeshDetail" /> | 127 | <slider label=" アバター:" name="AvatarMeshDetail" /> |
128 | <slider label=" 地形:" name="TerrainMeshDetail" /> | 128 | <slider label=" 地形:" name="TerrainMeshDetail" /> |
129 | <slider label=" 空:" name="SkyMeshDetail" /> | 129 | <slider label=" 空:" name="SkyMeshDetail" /> |
130 | <text name="PostProcessText"> | 130 | <text name="PostProcessText"> |
diff --git a/linden/indra/newview/skins/xui/ja/panel_preferences_web.xml b/linden/indra/newview/skins/xui/ja/panel_preferences_web.xml index 48cfc23..0ed6c57 100644 --- a/linden/indra/newview/skins/xui/ja/panel_preferences_web.xml +++ b/linden/indra/newview/skins/xui/ja/panel_preferences_web.xml | |||
@@ -1,8 +1,7 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <panel label="ウェブ" name="web"> | 2 | <panel label="ウェブ" name="web"> |
3 | <radio_group name="use_external_browser" | 3 | <radio_group name="use_external_browser"> |
4 | tool_tip="ヘルプ、Webリンクなどのために、外部Webブラウザを使用します。フル画面で実行している場合には推奨できません。"> | 4 | <radio_item name="external" tool_tip="ヘルプ、Webリンクなどのために、外部Webブラウザを使用します。フル画面で実行している場合には推奨できません。"> |
5 | <radio_item name="external"> | ||
6 | 外部のウェブ・ブラウザー (Firefox, Safari, Internet Explorer) を使用 | 5 | 外部のウェブ・ブラウザー (Firefox, Safari, Internet Explorer) を使用 |
7 | </radio_item> | 6 | </radio_item> |
8 | <radio_item name="internal"> | 7 | <radio_item name="internal"> |
diff --git a/linden/indra/newview/skins/xui/ja/panel_speaker_controls.xml b/linden/indra/newview/skins/xui/ja/panel_speaker_controls.xml index 671888e..b82aace 100644 --- a/linden/indra/newview/skins/xui/ja/panel_speaker_controls.xml +++ b/linden/indra/newview/skins/xui/ja/panel_speaker_controls.xml | |||
@@ -14,7 +14,7 @@ | |||
14 | </combo_item> | 14 | </combo_item> |
15 | </combo_box> | 15 | </combo_box> |
16 | </layout_panel> | 16 | </layout_panel> |
17 | <layout_panel name="moderate_chat_panel"> | 17 | <layout_panel name="moderate_chat_panel" font="SansSerifSmall"> |
18 | <scroll_list name="speakers_list"> | 18 | <scroll_list name="speakers_list"> |
19 | <column label="名前" name="speaker_name" /> | 19 | <column label="名前" name="speaker_name" /> |
20 | </scroll_list> | 20 | </scroll_list> |
@@ -24,7 +24,7 @@ | |||
24 | </text> | 24 | </text> |
25 | <button name="mute_btn" | 25 | <button name="mute_btn" |
26 | tool_tip="この住人のボイスをミュート(消声)します。" /> | 26 | tool_tip="この住人のボイスをミュート(消声)します。" /> |
27 | <check_box label="テキストをミュート(消字)" name="mute_text_btn" /> | 27 | <check_box label="テキストをミュート" name="mute_text_btn" /> |
28 | </panel> | 28 | </panel> |
29 | </layout_panel> | 29 | </layout_panel> |
30 | <layout_panel name="moderator_controls"> | 30 | <layout_panel name="moderator_controls"> |
diff --git a/linden/indra/newview/skins/xui/ko/floater_chat_history.xml b/linden/indra/newview/skins/xui/ko/floater_chat_history.xml index d821296..3c634d8 100644 --- a/linden/indra/newview/skins/xui/ko/floater_chat_history.xml +++ b/linden/indra/newview/skins/xui/ko/floater_chat_history.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="chat floater" title="채팅 기록"> | 2 | <floater name="chat floater" title="로 팅"> |
3 | <button label="채팅" name="Chat" /> | 3 | <button label="채팅" name="Chat" /> |
4 | <button label="차단" name="Mute resident" /> | 4 | <button label="차단" name="Mute resident" /> |
5 | <check_box label="음소거된 텍스트 표시하기" name="show mutes" /> | 5 | <check_box label="음소거된 텍스트 표시하기" name="show mutes" /> |
diff --git a/linden/indra/newview/skins/xui/ko/floater_html.xml b/linden/indra/newview/skins/xui/ko/floater_html.xml index 7974995..c99763e 100644 --- a/linden/indra/newview/skins/xui/ko/floater_html.xml +++ b/linden/indra/newview/skins/xui/ko/floater_html.xml | |||
@@ -5,4 +5,7 @@ | |||
5 | <button label="홈" name="home_btn" /> | 5 | <button label="홈" name="home_btn" /> |
6 | <button label="앞으로" name="forward_btn" /> | 6 | <button label="앞으로" name="forward_btn" /> |
7 | <button label="이동" name="go_btn" /> | 7 | <button label="이동" name="go_btn" /> |
8 | <string name="home_page_url"> | ||
9 | http://kr.secondlife.com | ||
10 | </string> | ||
8 | </floater> | 11 | </floater> |
diff --git a/linden/indra/newview/skins/xui/ko/floater_joystick.xml b/linden/indra/newview/skins/xui/ko/floater_joystick.xml index e965738..dd0fe30 100644 --- a/linden/indra/newview/skins/xui/ko/floater_joystick.xml +++ b/linden/indra/newview/skins/xui/ko/floater_joystick.xml | |||
@@ -58,7 +58,7 @@ | |||
58 | <text name="ZoomScale2"> | 58 | <text name="ZoomScale2"> |
59 | 확대/축소 크기 | 59 | 확대/축소 크기 |
60 | </text> | 60 | </text> |
61 | <text name="ZoomDeadZone"> | 61 | <text name="ZoomDeadZone" width="140" left="0" > |
62 | 확대/축소 사각지대 | 62 | 확대/축소 사각지대 |
63 | </text> | 63 | </text> |
64 | <button label="SpaceNavigator 기본값" name="SpaceNavigatorDefaults" /> | 64 | <button label="SpaceNavigator 기본값" name="SpaceNavigatorDefaults" /> |
diff --git a/linden/indra/newview/skins/xui/ko/menu_viewer.xml b/linden/indra/newview/skins/xui/ko/menu_viewer.xml index c59eefd..3abedaa 100644 --- a/linden/indra/newview/skins/xui/ko/menu_viewer.xml +++ b/linden/indra/newview/skins/xui/ko/menu_viewer.xml | |||
@@ -75,7 +75,7 @@ | |||
75 | <menu_item_call label="말한 사람 보기" name="Look at Last Chatter" /> | 75 | <menu_item_call label="말한 사람 보기" name="Look at Last Chatter" /> |
76 | <menu_item_separator label="-----------" name="separator" /> | 76 | <menu_item_separator label="-----------" name="separator" /> |
77 | <menu_item_check label="툴바" name="Toolbar" /> | 77 | <menu_item_check label="툴바" name="Toolbar" /> |
78 | <menu_item_check label="채팅 기록" name="Chat History" /> | 78 | <menu_item_check label="로 팅" name="Chat History" /> |
79 | <menu_item_check label="통신" name="Instant Message" /> | 79 | <menu_item_check label="통신" name="Instant Message" /> |
80 | <menu_item_call label="인벤토리" name="Inventory" /> | 80 | <menu_item_call label="인벤토리" name="Inventory" /> |
81 | <menu_item_check label="액티브 스피커" name="Active Speakers" /> | 81 | <menu_item_check label="액티브 스피커" name="Active Speakers" /> |
diff --git a/linden/indra/newview/skins/xui/ko/mime_types.xml b/linden/indra/newview/skins/xui/ko/mime_types.xml index 33d7e14..9d2348c 100644 --- a/linden/indra/newview/skins/xui/ko/mime_types.xml +++ b/linden/indra/newview/skins/xui/ko/mime_types.xml | |||
@@ -78,7 +78,7 @@ | |||
78 | </label> | 78 | </label> |
79 | </mimetype> | 79 | </mimetype> |
80 | <mimetype name="image/*"> | 80 | <mimetype name="image/*"> |
81 | <label label="image2_label"> | 81 | <label name="image2_label"> |
82 | 이미지 | 82 | 이미지 |
83 | </label> | 83 | </label> |
84 | </mimetype> | 84 | </mimetype> |
diff --git a/linden/indra/newview/skins/xui/ko/panel_chat_bar.xml b/linden/indra/newview/skins/xui/ko/panel_chat_bar.xml index d10958f..febfe23 100644 --- a/linden/indra/newview/skins/xui/ko/panel_chat_bar.xml +++ b/linden/indra/newview/skins/xui/ko/panel_chat_bar.xml | |||
@@ -1,6 +1,6 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <panel name="chat_bar"> | 2 | <panel name="chat_bar"> |
3 | <button label="로컬 채팅" label_selected="기록" name="History" | 3 | <button label="로컬 채팅" name="History" |
4 | tool_tip="대화 내용을 보려면 여기를 클릭하십시오." /> | 4 | tool_tip="대화 내용을 보려면 여기를 클릭하십시오." /> |
5 | <line_editor label="채팅하려면 여기를 클릭하십시오." name="Chat Editor" | 5 | <line_editor label="채팅하려면 여기를 클릭하십시오." name="Chat Editor" |
6 | tool_tip="Enter를 눌러 말하고, Ctrl-Enter를 눌러 외칩니다." /> | 6 | tool_tip="Enter를 눌러 말하고, Ctrl-Enter를 눌러 외칩니다." /> |
diff --git a/linden/indra/newview/skins/xui/ko/panel_group_invite.xml b/linden/indra/newview/skins/xui/ko/panel_group_invite.xml index ea97438..338649f 100644 --- a/linden/indra/newview/skins/xui/ko/panel_group_invite.xml +++ b/linden/indra/newview/skins/xui/ko/panel_group_invite.xml | |||
@@ -1,10 +1,5 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <panel label="회원 초대" name="invite_panel"> | 2 | <panel label="회원 초대" name="invite_panel"> |
3 | <text> | ||
4 | 여러 주민을 선택하여 | ||
5 | 그룹에 초대할 수 있습니다. '주민 | ||
6 | 선택기 열기'를 클릭하여 시작합니다. | ||
7 | </text> | ||
8 | <text name="help_text"> | 3 | <text name="help_text"> |
9 | 여러 주민을 선택하여 | 4 | 여러 주민을 선택하여 |
10 | 그룹에 초대할 수 있습니다. '주민 | 5 | 그룹에 초대할 수 있습니다. '주민 |
diff --git a/linden/indra/newview/skins/xui/ko/panel_group_notices.xml b/linden/indra/newview/skins/xui/ko/panel_group_notices.xml index 7edb35b..c49fe9b 100644 --- a/linden/indra/newview/skins/xui/ko/panel_group_notices.xml +++ b/linden/indra/newview/skins/xui/ko/panel_group_notices.xml | |||
@@ -16,7 +16,7 @@ | |||
16 | 그룹 공지 | 16 | 그룹 공지 |
17 | </text> | 17 | </text> |
18 | <text name="lbl2"> | 18 | <text name="lbl2"> |
19 | 공지는 30일 동안 보관됩니다. 보려는 공지를 다음에서 클릭하십시오. | 19 | 공지는 14일 동안 보관됩니다. 보려는 공지를 다음에서 클릭하십시오. |
20 | 새로운 공지를 수령한 경우 '새로고침' 버튼을 클릭하십시오. | 20 | 새로운 공지를 수령한 경우 '새로고침' 버튼을 클릭하십시오. |
21 | </text> | 21 | </text> |
22 | <scroll_list name="notice_list"> | 22 | <scroll_list name="notice_list"> |
diff --git a/linden/indra/newview/skins/xui/ko/panel_preferences_web.xml b/linden/indra/newview/skins/xui/ko/panel_preferences_web.xml index 8452e3b..6018ecf 100644 --- a/linden/indra/newview/skins/xui/ko/panel_preferences_web.xml +++ b/linden/indra/newview/skins/xui/ko/panel_preferences_web.xml | |||
@@ -1,8 +1,7 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <panel label="웹" name="web"> | 2 | <panel label="웹" name="web"> |
3 | <radio_group name="use_external_browser" | 3 | <radio_group name="use_external_browser"> |
4 | tool_tip="도움말, 웹링크 등은 외부 웹브라우저를 사용하십시오. 전체 화면 모드에서는 권장하지 않습니다."> | 4 | <radio_item name="external" tool_tip="도움말, 웹링크 등은 외부 웹브라우저를 사용하십시오. 전체 화면 모드에서는 권장하지 않습니다."> |
5 | <radio_item name="external"> | ||
6 | 외부 웹 브라우저 사용(Firefox, Safari, Internet Explorer) | 5 | 외부 웹 브라우저 사용(Firefox, Safari, Internet Explorer) |
7 | </radio_item> | 6 | </radio_item> |
8 | <radio_item name="internal"> | 7 | <radio_item name="internal"> |
diff --git a/linden/indra/newview/skins/xui/pt/panel_group_notices.xml b/linden/indra/newview/skins/xui/pt/panel_group_notices.xml index f611485..f5698a7 100644 --- a/linden/indra/newview/skins/xui/pt/panel_group_notices.xml +++ b/linden/indra/newview/skins/xui/pt/panel_group_notices.xml | |||
@@ -11,7 +11,7 @@ | |||
11 | Arquivo de notícias do grupo | 11 | Arquivo de notícias do grupo |
12 | </text> | 12 | </text> |
13 | <text name="lbl2"> | 13 | <text name="lbl2"> |
14 | As notícias são mantidas por 30 dias. Clicar na notícia que você desejar ver. | 14 | As notícias são mantidas por 14 dias. Clicar na notícia que você desejar ver. |
15 | </text> | 15 | </text> |
16 | <scroll_list name="notice_list"> | 16 | <scroll_list name="notice_list"> |
17 | <column label="" name="icon" /> | 17 | <column label="" name="icon" /> |
diff --git a/linden/indra/newview/skins/xui/zh/panel_group_notices.xml b/linden/indra/newview/skins/xui/zh/panel_group_notices.xml index b0d5ab3..e6629cb 100644 --- a/linden/indra/newview/skins/xui/zh/panel_group_notices.xml +++ b/linden/indra/newview/skins/xui/zh/panel_group_notices.xml | |||
@@ -11,7 +11,7 @@ | |||
11 | 社团通知归档 | 11 | 社团通知归档 |
12 | </text> | 12 | </text> |
13 | <text name="lbl2"> | 13 | <text name="lbl2"> |
14 | 通知只会被保留30日。点击下面你想查看的通知。如果新的通知已被接受到,请点击“刷新名单”按钮。 | 14 | 通知只会被保留14日。点击下面你想查看的通知。如果新的通知已被接受到,请点击“刷新名单”按钮。 |
15 | </text> | 15 | </text> |
16 | <scroll_list name="notice_list"> | 16 | <scroll_list name="notice_list"> |
17 | <column label="" name="icon" /> | 17 | <column label="" name="icon" /> |
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py index d07ebf0..9751936 100755 --- a/linden/indra/newview/viewer_manifest.py +++ b/linden/indra/newview/viewer_manifest.py | |||
@@ -445,18 +445,20 @@ class LinuxManifest(ViewerManifest): | |||
445 | self.path("wrapper.sh","secondlife") | 445 | self.path("wrapper.sh","secondlife") |
446 | self.path("handle_secondlifeprotocol.sh") | 446 | self.path("handle_secondlifeprotocol.sh") |
447 | self.path("register_secondlifeprotocol.sh") | 447 | self.path("register_secondlifeprotocol.sh") |
448 | self.path("unicode.ttf","unicode.ttf") | ||
449 | self.end_prefix("linux_tools") | 448 | self.end_prefix("linux_tools") |
450 | 449 | ||
451 | # Create an appropriate gridargs.dat for this package, denoting required grid. | 450 | # Create an appropriate gridargs.dat for this package, denoting required grid. |
452 | self.put_in_file(self.flags_list(), 'gridargs.dat') | 451 | self.put_in_file(self.flags_list(), 'gridargs.dat') |
453 | 452 | ||
453 | |||
454 | def package_finish(self): | ||
454 | # stripping all the libs removes a few megabytes from the end-user package | 455 | # stripping all the libs removes a few megabytes from the end-user package |
455 | for s,d in self.file_list: | 456 | for s,d in self.file_list: |
456 | if re.search("lib/lib.+\.so.*", d): | 457 | if re.search("lib/lib.+\.so.*", d): |
457 | self.run_command('strip -S %s' % d) | 458 | self.run_command('strip -S %s' % d) |
459 | if re.search("app_settings/mozilla-runtime-.*/lib.+\.so.*", d): | ||
460 | self.run_command('strip %s' % d) | ||
458 | 461 | ||
459 | def package_finish(self): | ||
460 | if(self.args.has_key('installer_name')): | 462 | if(self.args.has_key('installer_name')): |
461 | installer_name = self.args['installer_name'] | 463 | installer_name = self.args['installer_name'] |
462 | else: | 464 | else: |
@@ -506,7 +508,6 @@ class Linux_i686Manifest(LinuxManifest): | |||
506 | self.path("libdb-4.2.so") | 508 | self.path("libdb-4.2.so") |
507 | self.path("libcrypto.so.0.9.7") | 509 | self.path("libcrypto.so.0.9.7") |
508 | self.path("libssl.so.0.9.7") | 510 | self.path("libssl.so.0.9.7") |
509 | self.path("libexpat.so.1") | ||
510 | # self.path("libstdc++.so.6") | 511 | # self.path("libstdc++.so.6") |
511 | self.path("libuuid.so", "libuuid.so.1") | 512 | self.path("libuuid.so", "libuuid.so.1") |
512 | self.path("libSDL-1.2.so.0") | 513 | self.path("libSDL-1.2.so.0") |