diff options
25 files changed, 198 insertions, 91 deletions
diff --git a/linden/doc/contributions.txt b/linden/doc/contributions.txt index 1ce46e5..723a603 100644 --- a/linden/doc/contributions.txt +++ b/linden/doc/contributions.txt | |||
@@ -191,6 +191,7 @@ Strife Onizuka | |||
191 | VWR-74 | 191 | VWR-74 |
192 | VWR-85 | 192 | VWR-85 |
193 | VWR-148 | 193 | VWR-148 |
194 | VWR-2265 | ||
194 | tenebrous pau | 195 | tenebrous pau |
195 | VWR-247 | 196 | VWR-247 |
196 | TBBle Kurosawa | 197 | TBBle Kurosawa |
diff --git a/linden/indra/SConstruct b/linden/indra/SConstruct index 6105759..9298f7a 100644 --- a/linden/indra/SConstruct +++ b/linden/indra/SConstruct | |||
@@ -90,8 +90,8 @@ opts.AddOptions( | |||
90 | BoolOption('GSTREAMER', 'Enabled GStreamer support', True), | 90 | BoolOption('GSTREAMER', 'Enabled GStreamer support', True), |
91 | BoolOption('COLORGCC', 'Enabled colorgcc', True), | 91 | BoolOption('COLORGCC', 'Enabled colorgcc', True), |
92 | EnumOption('GRID', 'Client package\'s default grid', 'default', | 92 | EnumOption('GRID', 'Client package\'s default grid', 'default', |
93 | allowed_values=('default', 'aditi', 'agni', 'dmz', 'durga', 'firstlook', 'ganga', 'shakti', 'siva', 'soma', 'uma', 'vaak')), | 93 | allowed_values=('default', 'aditi', 'agni', 'dmz', 'durga', 'ganga', 'shakti', 'siva', 'soma', 'uma', 'vaak')), |
94 | EnumOption('CHANNEL', 'Client package default channel', 'default', | 94 | EnumOption('CHANNEL', 'Client package\'s default channel', 'default', |
95 | allowed_values=('default', 'Release', 'Release Candidate', 'WindLight')), | 95 | allowed_values=('default', 'Release', 'Release Candidate', 'WindLight')), |
96 | BoolOption('ELFIO', 'Enabled enhanced backtraces with libELFIO symbol extraction support', True), | 96 | BoolOption('ELFIO', 'Enabled enhanced backtraces with libELFIO symbol extraction support', True), |
97 | BoolOption('STANDALONE', 'Build using system packages (implies OPENSOURCE)', False), | 97 | BoolOption('STANDALONE', 'Build using system packages (implies OPENSOURCE)', False), |
@@ -685,15 +685,14 @@ for build_target in targets: | |||
685 | if grid not in ['default', 'agni']: | 685 | if grid not in ['default', 'agni']: |
686 | product_name += "_" + grid.upper() | 686 | product_name += "_" + grid.upper() |
687 | if channel not in ['default', 'Release']: | 687 | if channel not in ['default', 'Release']: |
688 | product_name += "_" + "".join(channel.upper().split()) | 688 | product_name += "_" + "".join((channel.upper()).split()) |
689 | |||
690 | package_name = product_name + '.tar.bz2' | 689 | package_name = product_name + '.tar.bz2' |
691 | complete_channel = 'Second Life ' + channel | 690 | complete_channel = 'Second Life ' + channel |
692 | cmd = 'rm -rf newview/%(pn)s* && newview/viewer_manifest.py --grid=%(grid)s --channel=\'%(ch)s\' --installer_name=%(pn)s --arch=%(arch)s' % { | 691 | cmd = 'rm -rf newview/%(pn)s* && newview/viewer_manifest.py --grid=%(grid)s --channel=\'%(ch)s\' --installer_name=%(pn)s --arch=%(arch)s' % { |
693 | 'pn': product_name, | 692 | 'pn': product_name, |
694 | 'grid':grid, | 693 | 'grid':grid, |
695 | 'arch':arch, | 694 | 'ch':complete_channel, |
696 | 'ch':complete_channel} | 695 | 'arch':arch} |
697 | env.Command('newview/' + package_name, 'newview/viewer_manifest.py', cmd) | 696 | env.Command('newview/' + package_name, 'newview/viewer_manifest.py', cmd) |
698 | Depends('newview/' + package_name, output_bin + '-stripped') | 697 | Depends('newview/' + package_name, output_bin + '-stripped') |
699 | Depends('newview/' + package_name, output_crashlogger_bin + '-stripped') | 698 | Depends('newview/' + package_name, output_crashlogger_bin + '-stripped') |
diff --git a/linden/indra/llcommon/llcommon_vc8.vcproj b/linden/indra/llcommon/llcommon_vc8.vcproj index 15371f5..28f45ca 100644 --- a/linden/indra/llcommon/llcommon_vc8.vcproj +++ b/linden/indra/llcommon/llcommon_vc8.vcproj | |||
@@ -241,6 +241,10 @@ | |||
241 | > | 241 | > |
242 | </File> | 242 | </File> |
243 | <File | 243 | <File |
244 | RelativePath=".\llbase32.cpp" | ||
245 | > | ||
246 | </File> | ||
247 | <File | ||
244 | RelativePath=".\llbase64.cpp" | 248 | RelativePath=".\llbase64.cpp" |
245 | > | 249 | > |
246 | </File> | 250 | </File> |
@@ -305,6 +309,10 @@ | |||
305 | > | 309 | > |
306 | </File> | 310 | </File> |
307 | <File | 311 | <File |
312 | RelativePath=".\llmetrics.cpp" | ||
313 | > | ||
314 | </File> | ||
315 | <File | ||
308 | RelativePath=".\llmortician.cpp" | 316 | RelativePath=".\llmortician.cpp" |
309 | > | 317 | > |
310 | </File> | 318 | </File> |
@@ -451,6 +459,10 @@ | |||
451 | > | 459 | > |
452 | </File> | 460 | </File> |
453 | <File | 461 | <File |
462 | RelativePath=".\llbase32.h" | ||
463 | > | ||
464 | </File> | ||
465 | <File | ||
454 | RelativePath=".\llbase64.h" | 466 | RelativePath=".\llbase64.h" |
455 | > | 467 | > |
456 | </File> | 468 | </File> |
@@ -523,6 +535,10 @@ | |||
523 | > | 535 | > |
524 | </File> | 536 | </File> |
525 | <File | 537 | <File |
538 | RelativePath=".\llextendedstatus.h" | ||
539 | > | ||
540 | </File> | ||
541 | <File | ||
526 | RelativePath=".\llfasttimer.h" | 542 | RelativePath=".\llfasttimer.h" |
527 | > | 543 | > |
528 | </File> | 544 | </File> |
@@ -587,15 +603,19 @@ | |||
587 | > | 603 | > |
588 | </File> | 604 | </File> |
589 | <File | 605 | <File |
590 | RelativePath=".\llmortician.h" | 606 | RelativePath=".\llmemtype.h" |
591 | > | 607 | > |
592 | </File> | 608 | </File> |
593 | <File | 609 | <File |
594 | RelativePath=".\llnametable.h" | 610 | RelativePath=".\llmetrics.h" |
595 | > | 611 | > |
596 | </File> | 612 | </File> |
597 | <File | 613 | <File |
598 | RelativePath=".\llpagemem.h" | 614 | RelativePath=".\llmortician.h" |
615 | > | ||
616 | </File> | ||
617 | <File | ||
618 | RelativePath=".\llnametable.h" | ||
599 | > | 619 | > |
600 | </File> | 620 | </File> |
601 | <File | 621 | <File |
@@ -703,7 +723,11 @@ | |||
703 | > | 723 | > |
704 | </File> | 724 | </File> |
705 | <File | 725 | <File |
706 | RelativePath=".\llversion.h" | 726 | RelativePath=".\llversionserver.h" |
727 | > | ||
728 | </File> | ||
729 | <File | ||
730 | RelativePath=".\llversionviewer.h" | ||
707 | > | 731 | > |
708 | </File> | 732 | </File> |
709 | <File | 733 | <File |
diff --git a/linden/indra/llcommon/lllslconstants.h b/linden/indra/llcommon/lllslconstants.h index 151c7a2..372c54e 100644 --- a/linden/indra/llcommon/lllslconstants.h +++ b/linden/indra/llcommon/lllslconstants.h | |||
@@ -167,7 +167,7 @@ const S32 STRING_TRIM_TAIL = 0x02; | |||
167 | const S32 STRING_TRIM = STRING_TRIM_HEAD | STRING_TRIM_TAIL; | 167 | const S32 STRING_TRIM = STRING_TRIM_HEAD | STRING_TRIM_TAIL; |
168 | 168 | ||
169 | // llGetObjectDetails | 169 | // llGetObjectDetails |
170 | const S32 OBJECT_UNKOWN_DETAIL = -1; | 170 | const S32 OBJECT_UNKNOWN_DETAIL = -1; |
171 | const S32 OBJECT_NAME = 1; | 171 | const S32 OBJECT_NAME = 1; |
172 | const S32 OBJECT_DESC = 2; | 172 | const S32 OBJECT_DESC = 2; |
173 | const S32 OBJECT_POS = 3; | 173 | const S32 OBJECT_POS = 3; |
diff --git a/linden/indra/llcommon/llversionviewer.h b/linden/indra/llcommon/llversionviewer.h index 8c001e0..894744b 100644 --- a/linden/indra/llcommon/llversionviewer.h +++ b/linden/indra/llcommon/llversionviewer.h | |||
@@ -32,7 +32,7 @@ | |||
32 | const S32 LL_VERSION_MAJOR = 1; | 32 | const S32 LL_VERSION_MAJOR = 1; |
33 | const S32 LL_VERSION_MINOR = 18; | 33 | const S32 LL_VERSION_MINOR = 18; |
34 | const S32 LL_VERSION_PATCH = 3; | 34 | const S32 LL_VERSION_PATCH = 3; |
35 | const S32 LL_VERSION_BUILD = 2; | 35 | const S32 LL_VERSION_BUILD = 3; |
36 | 36 | ||
37 | const char * const LL_CHANNEL = "Second Life Release"; | 37 | const char * const LL_CHANNEL = "Second Life Release"; |
38 | 38 | ||
diff --git a/linden/indra/llmath/llmath.vcproj b/linden/indra/llmath/llmath.vcproj index bdc8ded..f2d1279 100644 --- a/linden/indra/llmath/llmath.vcproj +++ b/linden/indra/llmath/llmath.vcproj | |||
@@ -320,9 +320,6 @@ | |||
320 | RelativePath=".\v4math.h"> | 320 | RelativePath=".\v4math.h"> |
321 | </File> | 321 | </File> |
322 | <File | 322 | <File |
323 | RelativePath=".\vmath.h"> | ||
324 | </File> | ||
325 | <File | ||
326 | RelativePath=".\xform.h"> | 323 | RelativePath=".\xform.h"> |
327 | </File> | 324 | </File> |
328 | </Filter> | 325 | </Filter> |
diff --git a/linden/indra/llmath/llvolume.cpp b/linden/indra/llmath/llvolume.cpp index 1a25b3d..7f2a663 100644 --- a/linden/indra/llmath/llvolume.cpp +++ b/linden/indra/llmath/llvolume.cpp | |||
@@ -78,6 +78,11 @@ const F32 TAPER_MAX = 1.f; | |||
78 | const F32 SKEW_MIN = -0.95f; | 78 | const F32 SKEW_MIN = -0.95f; |
79 | const F32 SKEW_MAX = 0.95f; | 79 | const F32 SKEW_MAX = 0.95f; |
80 | 80 | ||
81 | const S32 SCULPT_REZ_1 = 6; // changed from 4 to 6 - 6 looks round whereas 4 looks square | ||
82 | const S32 SCULPT_REZ_2 = 8; | ||
83 | const S32 SCULPT_REZ_3 = 16; | ||
84 | const S32 SCULPT_REZ_4 = 32; | ||
85 | |||
81 | BOOL check_same_clock_dir( const LLVector3& pt1, const LLVector3& pt2, const LLVector3& pt3, const LLVector3& norm) | 86 | BOOL check_same_clock_dir( const LLVector3& pt1, const LLVector3& pt2, const LLVector3& pt3, const LLVector3& norm) |
82 | { | 87 | { |
83 | LLVector3 test = (pt2-pt1)%(pt3-pt2); | 88 | LLVector3 test = (pt2-pt1)%(pt3-pt2); |
@@ -455,25 +460,27 @@ LLProfile::Face* LLProfile::addHole(BOOL flat, F32 sides, F32 offset, F32 box_ho | |||
455 | } | 460 | } |
456 | 461 | ||
457 | 462 | ||
458 | F32 next_power_of_two(F32 value) | 463 | S32 sculpt_sides(F32 detail) |
459 | { | ||
460 | S32 power = (S32)llceil((F32)log((double)value)/(F32)log(2.0)); | ||
461 | return pow(2.0f, power); | ||
462 | } | ||
463 | |||
464 | F32 nearest_power_of_two(F32 value) | ||
465 | { | 464 | { |
466 | // nearest in the linear sense means closest w/r/t a "halfway" point. | ||
467 | // in the exponential sense, the "halfway" point isn't 1/2, it's 1/sqrt(2). | ||
468 | 465 | ||
469 | // our windows build hates the math.h defines, so do it here. -qarl | 466 | // detail is usually one of: 1, 1.5, 2.5, 4.0. |
470 | F32 const INVSQRT2 = 0.7071067812f; | ||
471 | 467 | ||
472 | F32 answer = next_power_of_two(value * INVSQRT2); | 468 | if (detail <= 1.0) |
473 | 469 | { | |
474 | // llwarns << value << " -> " << answer << llendl; | 470 | return SCULPT_REZ_1; |
475 | 471 | } | |
476 | return answer; | 472 | if (detail <= 2.0) |
473 | { | ||
474 | return SCULPT_REZ_2; | ||
475 | } | ||
476 | if (detail <= 3.0) | ||
477 | { | ||
478 | return SCULPT_REZ_3; | ||
479 | } | ||
480 | else | ||
481 | { | ||
482 | return SCULPT_REZ_4; | ||
483 | } | ||
477 | } | 484 | } |
478 | 485 | ||
479 | 486 | ||
@@ -619,7 +626,7 @@ BOOL LLProfile::generate(BOOL path_open,F32 detail, S32 split, BOOL is_sculpted) | |||
619 | S32 sides = (S32)circle_detail; | 626 | S32 sides = (S32)circle_detail; |
620 | 627 | ||
621 | if (is_sculpted) | 628 | if (is_sculpted) |
622 | sides = (S32)nearest_power_of_two((F32)sides - 1); | 629 | sides = sculpt_sides(detail); |
623 | 630 | ||
624 | genNGon(sides); | 631 | genNGon(sides); |
625 | 632 | ||
@@ -1166,7 +1173,7 @@ BOOL LLPath::generate(F32 detail, S32 split, BOOL is_sculpted) | |||
1166 | S32 sides = (S32)llfloor(llfloor((MIN_DETAIL_FACES * detail + twist_mag * 3.5f * (detail-0.5f))) * mParams.getRevolutions()); | 1173 | S32 sides = (S32)llfloor(llfloor((MIN_DETAIL_FACES * detail + twist_mag * 3.5f * (detail-0.5f))) * mParams.getRevolutions()); |
1167 | 1174 | ||
1168 | if (is_sculpted) | 1175 | if (is_sculpted) |
1169 | sides = (S32)nearest_power_of_two((F32)sides - 1); | 1176 | sides = sculpt_sides(detail); |
1170 | 1177 | ||
1171 | genNGon(sides); | 1178 | genNGon(sides); |
1172 | } | 1179 | } |
diff --git a/linden/indra/llmessage/llmessage.vcproj b/linden/indra/llmessage/llmessage.vcproj index bb404f0..dcc1202 100644 --- a/linden/indra/llmessage/llmessage.vcproj +++ b/linden/indra/llmessage/llmessage.vcproj | |||
@@ -482,9 +482,15 @@ | |||
482 | RelativePath=".\llmail.h"> | 482 | RelativePath=".\llmail.h"> |
483 | </File> | 483 | </File> |
484 | <File | 484 | <File |
485 | RelativePath=".\llmessagebuilder.h"> | ||
486 | </File> | ||
487 | <File | ||
485 | RelativePath=".\llmessageconfig.h"> | 488 | RelativePath=".\llmessageconfig.h"> |
486 | </File> | 489 | </File> |
487 | <File | 490 | <File |
491 | RelativePath=".\llmessagereader.h"> | ||
492 | </File> | ||
493 | <File | ||
488 | RelativePath=".\llmessagetemplate.h"> | 494 | RelativePath=".\llmessagetemplate.h"> |
489 | </File> | 495 | </File> |
490 | <File | 496 | <File |
diff --git a/linden/indra/llrender/llrender_vc8.vcproj b/linden/indra/llrender/llrender_vc8.vcproj index 4688988..4f6d276 100644 --- a/linden/indra/llrender/llrender_vc8.vcproj +++ b/linden/indra/llrender/llrender_vc8.vcproj | |||
@@ -258,6 +258,22 @@ | |||
258 | > | 258 | > |
259 | </File> | 259 | </File> |
260 | <File | 260 | <File |
261 | RelativePath=".\llagpmempool.h" | ||
262 | > | ||
263 | </File> | ||
264 | <File | ||
265 | RelativePath=".\llagpmempoolarb.h" | ||
266 | > | ||
267 | </File> | ||
268 | <File | ||
269 | RelativePath=".\llagpmempoolati.h" | ||
270 | > | ||
271 | </File> | ||
272 | <File | ||
273 | RelativePath=".\llagpmempoolnv.h" | ||
274 | > | ||
275 | </File> | ||
276 | <File | ||
261 | RelativePath=".\llfont.h" | 277 | RelativePath=".\llfont.h" |
262 | > | 278 | > |
263 | </File> | 279 | </File> |
diff --git a/linden/indra/llui/llspinctrl.cpp b/linden/indra/llui/llspinctrl.cpp index 668ddfa..f587c80 100644 --- a/linden/indra/llui/llspinctrl.cpp +++ b/linden/indra/llui/llspinctrl.cpp | |||
@@ -547,3 +547,8 @@ LLView* LLSpinCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory * | |||
547 | 547 | ||
548 | return spinner; | 548 | return spinner; |
549 | } | 549 | } |
550 | |||
551 | BOOL LLSpinCtrl::isDirty() const | ||
552 | { | ||
553 | return( mValue != mInitialValue ); | ||
554 | } | ||
diff --git a/linden/indra/llui/llspinctrl.h b/linden/indra/llui/llspinctrl.h index dcc305e..c854ff0 100644 --- a/linden/indra/llui/llspinctrl.h +++ b/linden/indra/llui/llspinctrl.h | |||
@@ -76,7 +76,7 @@ public: | |||
76 | virtual void setValue(const LLSD& value ); | 76 | virtual void setValue(const LLSD& value ); |
77 | virtual LLSD getValue() const; | 77 | virtual LLSD getValue() const; |
78 | F32 get() { return (F32)getValue().asReal(); } | 78 | F32 get() { return (F32)getValue().asReal(); } |
79 | void set(F32 value) { setValue(value); } | 79 | void set(F32 value) { setValue(value); mInitialValue = value; } |
80 | 80 | ||
81 | virtual void setMinValue(LLSD min_value) { setMinValue((F32)min_value.asReal()); } | 81 | virtual void setMinValue(LLSD min_value) { setMinValue((F32)min_value.asReal()); } |
82 | virtual void setMaxValue(LLSD max_value) { setMaxValue((F32)max_value.asReal()); } | 82 | virtual void setMaxValue(LLSD max_value) { setMaxValue((F32)max_value.asReal()); } |
@@ -86,6 +86,8 @@ public: | |||
86 | virtual void setEnabled( BOOL b ); | 86 | virtual void setEnabled( BOOL b ); |
87 | virtual void setFocus( BOOL b ); | 87 | virtual void setFocus( BOOL b ); |
88 | virtual void clear(); | 88 | virtual void clear(); |
89 | virtual BOOL isDirty() const; | ||
90 | |||
89 | virtual void setPrecision(S32 precision); | 91 | virtual void setPrecision(S32 precision); |
90 | virtual void setMinValue(F32 min) { mMinValue = min; } | 92 | virtual void setMinValue(F32 min) { mMinValue = min; } |
91 | virtual void setMaxValue(F32 max) { mMaxValue = max; } | 93 | virtual void setMaxValue(F32 max) { mMaxValue = max; } |
diff --git a/linden/indra/llui/llui_vc8.vcproj b/linden/indra/llui/llui_vc8.vcproj index a78c71c..096a755 100644 --- a/linden/indra/llui/llui_vc8.vcproj +++ b/linden/indra/llui/llui_vc8.vcproj | |||
@@ -440,6 +440,10 @@ | |||
440 | > | 440 | > |
441 | </File> | 441 | </File> |
442 | <File | 442 | <File |
443 | RelativePath=".\llhtmlhelp.h" | ||
444 | > | ||
445 | </File> | ||
446 | <File | ||
443 | RelativePath=".\lliconctrl.h" | 447 | RelativePath=".\lliconctrl.h" |
444 | > | 448 | > |
445 | </File> | 449 | </File> |
diff --git a/linden/indra/lscript/lscript_compile/indra.l b/linden/indra/lscript/lscript_compile/indra.l index afd7e1a..de5ba11 100644 --- a/linden/indra/lscript/lscript_compile/indra.l +++ b/linden/indra/lscript/lscript_compile/indra.l | |||
@@ -227,7 +227,7 @@ extern "C" { int yyerror(const char *fmt, ...); } | |||
227 | "CHANGED_REGION" { count(); yylval.ival = 0x100; return(INTEGER_CONSTANT); } | 227 | "CHANGED_REGION" { count(); yylval.ival = 0x100; return(INTEGER_CONSTANT); } |
228 | "CHANGED_TELEPORT" { count(); yylval.ival = 0x200; return(INTEGER_CONSTANT); } | 228 | "CHANGED_TELEPORT" { count(); yylval.ival = 0x200; return(INTEGER_CONSTANT); } |
229 | 229 | ||
230 | "OBJECT_UNKOWN_DETAIL" { count(); yylval.ival = OBJECT_UNKOWN_DETAIL; return(INTEGER_CONSTANT); } | 230 | "OBJECT_UNKNOWN_DETAIL" { count(); yylval.ival = OBJECT_UNKNOWN_DETAIL; return(INTEGER_CONSTANT); } |
231 | "OBJECT_NAME" { count(); yylval.ival = OBJECT_NAME; return(INTEGER_CONSTANT); } | 231 | "OBJECT_NAME" { count(); yylval.ival = OBJECT_NAME; return(INTEGER_CONSTANT); } |
232 | "OBJECT_DESC" { count(); yylval.ival = OBJECT_DESC; return(INTEGER_CONSTANT); } | 232 | "OBJECT_DESC" { count(); yylval.ival = OBJECT_DESC; return(INTEGER_CONSTANT); } |
233 | "OBJECT_POS" { count(); yylval.ival = OBJECT_POS; return(INTEGER_CONSTANT); } | 233 | "OBJECT_POS" { count(); yylval.ival = OBJECT_POS; return(INTEGER_CONSTANT); } |
diff --git a/linden/indra/lscript/lscript_library/lscript_library.cpp b/linden/indra/lscript/lscript_library/lscript_library.cpp index 86fdd18..3f939c4 100644 --- a/linden/indra/lscript/lscript_library/lscript_library.cpp +++ b/linden/indra/lscript/lscript_library/lscript_library.cpp | |||
@@ -426,7 +426,7 @@ void LLScriptLibrary::init() | |||
426 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llStringTrim", "s", "si", "string llStringTrim(string src, integer trim_type)\nTrim leading and/or trailing spaces from a string.\nUses trim_type of STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL.")); | 426 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llStringTrim", "s", "si", "string llStringTrim(string src, integer trim_type)\nTrim leading and/or trailing spaces from a string.\nUses trim_type of STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL.")); |
427 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llRegionSay", NULL, "is", "llRegionSay(integer channel, string msg)\nbroadcasts msg to entire region on channel (not 0.)")); | 427 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llRegionSay", NULL, "is", "llRegionSay(integer channel, string msg)\nbroadcasts msg to entire region on channel (not 0.)")); |
428 | 428 | ||
429 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llGetObjectDetails", "l", "kl", "list llGetObjectDetails(key id, list params)\nGets the object details specified in params for the object with key id.\nDetails are OBJECT_DETAILS_NAME, _DESCRIPTION, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR.")); | 429 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llGetObjectDetails", "l", "kl", "list llGetObjectDetails(key id, list params)\nGets the object details specified in params for the object with key id.\nDetails are OBJECT_NAME, _DESC, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR.")); |
430 | 430 | ||
431 | // energy, sleep, dummy_func, name, return type, parameters, help text, gods-only | 431 | // energy, sleep, dummy_func, name, return type, parameters, help text, gods-only |
432 | 432 | ||
diff --git a/linden/indra/newview/English.lproj/InfoPlist.strings b/linden/indra/newview/English.lproj/InfoPlist.strings index e622664..0b95b39 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.18.3.2"; | 4 | CFBundleShortVersionString = "Second Life version 1.18.3.3"; |
5 | CFBundleGetInfoString = "Second Life version 1.18.3.2, Copyright 2004-2007 Linden Research, Inc."; | 5 | CFBundleGetInfoString = "Second Life version 1.18.3.3, Copyright 2004-2007 Linden Research, Inc."; |
diff --git a/linden/indra/newview/Info-SecondLife.plist b/linden/indra/newview/Info-SecondLife.plist index f4ac5c6..e1e04be 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.18.3.2</string> | 35 | <string>1.18.3.3</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/keywords.ini b/linden/indra/newview/app_settings/keywords.ini index 4496ee7..5a68c5b 100644 --- a/linden/indra/newview/app_settings/keywords.ini +++ b/linden/indra/newview/app_settings/keywords.ini | |||
@@ -149,7 +149,7 @@ PSYS_SRC_PATTERN_ANGLE | |||
149 | PSYS_SRC_PATTERN_ANGLE_CONE | 149 | PSYS_SRC_PATTERN_ANGLE_CONE |
150 | PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY | 150 | PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY |
151 | 151 | ||
152 | OBJECT_UNKOWN_DETAIL Returned by llGetObjectDetails when passed an invalid object parameter type. | 152 | OBJECT_UNKNOWN_DETAIL Returned by llGetObjectDetails when passed an invalid object parameter type. |
153 | OBJECT_NAME Used with llGetObjectDetails to get an object's name. | 153 | OBJECT_NAME Used with llGetObjectDetails to get an object's name. |
154 | OBJECT_DESC Used with llGetObjectDetails to get an object's description. | 154 | OBJECT_DESC Used with llGetObjectDetails to get an object's description. |
155 | OBJECT_POS Used with llGetObjectDetails to get an object's position. | 155 | OBJECT_POS Used with llGetObjectDetails to get an object's position. |
diff --git a/linden/indra/newview/linux_tools/wrapper.sh b/linden/indra/newview/linux_tools/wrapper.sh index 9adc4d3..fd15f21 100755 --- a/linden/indra/newview/linux_tools/wrapper.sh +++ b/linden/indra/newview/linux_tools/wrapper.sh | |||
@@ -38,6 +38,7 @@ export LL_GL_BASICEXT=x | |||
38 | ## you're building your own viewer, bear in mind that the executable | 38 | ## you're building your own viewer, bear in mind that the executable |
39 | ## in the bin directory will be stripped: you should replace it with | 39 | ## in the bin directory will be stripped: you should replace it with |
40 | ## an unstripped binary before you run. | 40 | ## an unstripped binary before you run. |
41 | #export LL_WRAPPER='gdb --args' | ||
41 | #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' | 42 | #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' |
42 | 43 | ||
43 | ## - Avoids an often-buggy X feature that doesn't really benefit us anyway. | 44 | ## - Avoids an often-buggy X feature that doesn't really benefit us anyway. |
diff --git a/linden/indra/newview/llpanelgroupgeneral.cpp b/linden/indra/newview/llpanelgroupgeneral.cpp index 8d30f09..1db306d 100644 --- a/linden/indra/newview/llpanelgroupgeneral.cpp +++ b/linden/indra/newview/llpanelgroupgeneral.cpp | |||
@@ -187,6 +187,7 @@ BOOL LLPanelGroupGeneral::postBuild() | |||
187 | { | 187 | { |
188 | mSpinEnrollmentFee->setCommitCallback(onCommitAny); | 188 | mSpinEnrollmentFee->setCommitCallback(onCommitAny); |
189 | mSpinEnrollmentFee->setCallbackUserData(this); | 189 | mSpinEnrollmentFee->setCallbackUserData(this); |
190 | mSpinEnrollmentFee->setPrecision(0); | ||
190 | } | 191 | } |
191 | 192 | ||
192 | BOOL accept_notices = FALSE; | 193 | BOOL accept_notices = FALSE; |
@@ -484,6 +485,8 @@ bool LLPanelGroupGeneral::apply(LLString& mesg) | |||
484 | else | 485 | else |
485 | { | 486 | { |
486 | gdatap->mMaturePublish = FALSE; | 487 | gdatap->mMaturePublish = FALSE; |
488 | // Set to the used value, and reset initial value used for isdirty check | ||
489 | mSpinEnrollmentFee->set( (F32)gdatap->mMembershipFee ); | ||
487 | } | 490 | } |
488 | } | 491 | } |
489 | if (mCtrlShowInGroupList) gdatap->mShowInList = mCtrlShowInGroupList->get(); | 492 | if (mCtrlShowInGroupList) gdatap->mShowInList = mCtrlShowInGroupList->get(); |
@@ -509,6 +512,8 @@ bool LLPanelGroupGeneral::apply(LLString& mesg) | |||
509 | mChanged = FALSE; | 512 | mChanged = FALSE; |
510 | notifyObservers(); | 513 | notifyObservers(); |
511 | 514 | ||
515 | notifyObservers(); | ||
516 | |||
512 | return true; | 517 | return true; |
513 | } | 518 | } |
514 | 519 | ||
@@ -811,21 +816,35 @@ void LLPanelGroupGeneral::updateMembers() | |||
811 | } | 816 | } |
812 | } | 817 | } |
813 | 818 | ||
814 | |||
815 | void LLPanelGroupGeneral::updateChanged() | 819 | void LLPanelGroupGeneral::updateChanged() |
816 | { | 820 | { |
821 | // List all the controls we want to check for changes... | ||
822 | LLUICtrl *check_list[] = | ||
823 | { | ||
824 | mGroupNameEditor, | ||
825 | mGroupName, | ||
826 | mFounderName, | ||
827 | mInsignia, | ||
828 | mEditCharter, | ||
829 | mCtrlShowInGroupList, | ||
830 | mCtrlPublishOnWeb, // To fix after merge: Erase this line, and uncomment the mCtrlListGroup line. -- Soft | ||
831 | mCtrlMature, | ||
832 | mCtrlOpenEnrollment, | ||
833 | mCtrlEnrollmentFee, | ||
834 | mSpinEnrollmentFee, | ||
835 | mCtrlReceiveNotices, | ||
836 | // mCtrlListGroup, // To fix after merge: See above comment -- Soft | ||
837 | mComboActiveTitle | ||
838 | }; | ||
839 | |||
817 | mChanged = FALSE; | 840 | mChanged = FALSE; |
818 | if ( mGroupNameEditor ) | ||
819 | mChanged = mGroupNameEditor->isDirty(); | ||
820 | if ( mGroupName ) | ||
821 | mChanged |= mGroupName->isDirty(); | ||
822 | if ( mFounderName ) | ||
823 | mChanged |= mFounderName->isDirty(); | ||
824 | if ( mInsignia ) | ||
825 | mChanged |= mInsignia->isDirty(); | ||
826 | if ( mEditCharter ) | ||
827 | mChanged |= mEditCharter->isDirty(); | ||
828 | // if ( mCtrlReceiveNotices ) // "Receive group notices" is different, see onReceiveNotices() | ||
829 | // mChanged |= mCtrlReceiveNotices->isDirty(); | ||
830 | } | ||
831 | 841 | ||
842 | for( int i= 0; i< sizeof(check_list)/sizeof(*check_list); i++ ) | ||
843 | { | ||
844 | if( check_list[i] && check_list[i]->isDirty() ) | ||
845 | { | ||
846 | mChanged = TRUE; | ||
847 | break; | ||
848 | } | ||
849 | } | ||
850 | } | ||
diff --git a/linden/indra/newview/llpanelgroupgeneral.h b/linden/indra/newview/llpanelgroupgeneral.h index a8615b2..07b8752 100644 --- a/linden/indra/newview/llpanelgroupgeneral.h +++ b/linden/indra/newview/llpanelgroupgeneral.h | |||
@@ -83,7 +83,7 @@ private: | |||
83 | std::string mConfirmGroupCreateStr; | 83 | std::string mConfirmGroupCreateStr; |
84 | LLUUID mDefaultIconID; | 84 | LLUUID mDefaultIconID; |
85 | 85 | ||
86 | // Group information | 86 | // Group information (include any updates in updateChanged) |
87 | LLLineEditor *mGroupNameEditor; | 87 | LLLineEditor *mGroupNameEditor; |
88 | LLTextBox *mGroupName; | 88 | LLTextBox *mGroupName; |
89 | LLNameBox *mFounderName; | 89 | LLNameBox *mFounderName; |
@@ -94,7 +94,7 @@ private: | |||
94 | 94 | ||
95 | LLNameListCtrl *mListVisibleMembers; | 95 | LLNameListCtrl *mListVisibleMembers; |
96 | 96 | ||
97 | // Options | 97 | // Options (include any updates in updateChanged) |
98 | LLCheckBoxCtrl *mCtrlShowInGroupList; | 98 | LLCheckBoxCtrl *mCtrlShowInGroupList; |
99 | LLCheckBoxCtrl *mCtrlPublishOnWeb; | 99 | LLCheckBoxCtrl *mCtrlPublishOnWeb; |
100 | LLCheckBoxCtrl *mCtrlMature; | 100 | LLCheckBoxCtrl *mCtrlMature; |
diff --git a/linden/indra/newview/lltracker.cpp b/linden/indra/newview/lltracker.cpp index feb4207..4125bb6 100644 --- a/linden/indra/newview/lltracker.cpp +++ b/linden/indra/newview/lltracker.cpp | |||
@@ -107,6 +107,15 @@ void LLTracker::stopTracking(void* userdata) | |||
107 | // static virtual | 107 | // static virtual |
108 | void LLTracker::drawHUDArrow() | 108 | void LLTracker::drawHUDArrow() |
109 | { | 109 | { |
110 | /* tracking autopilot destination has been disabled | ||
111 | -- 2004.01.09, Leviathan | ||
112 | // Draw dot for autopilot target | ||
113 | if (gAgent.getAutoPilot()) | ||
114 | { | ||
115 | instance()->drawMarker( gAgent.getAutoPilotTargetGlobal(), gTrackColor ); | ||
116 | return; | ||
117 | } | ||
118 | */ | ||
110 | switch (getTrackingStatus()) | 119 | switch (getTrackingStatus()) |
111 | { | 120 | { |
112 | case TRACKING_AVATAR: | 121 | case TRACKING_AVATAR: |
@@ -470,6 +479,7 @@ void LLTracker::renderBeacon(LLVector3d pos_global, | |||
470 | if (dist > 0.99f * gCamera->getFar()) | 479 | if (dist > 0.99f * gCamera->getFar()) |
471 | { | 480 | { |
472 | color_frac = 0.4f; | 481 | color_frac = 0.4f; |
482 | // pos_global = gAgent.getCameraPositionGlobal() + 0.99f*(gCamera->getFar()/dist)*to_vec; | ||
473 | } | 483 | } |
474 | else | 484 | else |
475 | { | 485 | { |
@@ -494,6 +504,7 @@ void LLTracker::renderBeacon(LLVector3d pos_global, | |||
494 | 504 | ||
495 | draw_shockwave(1024.f, gRenderStartTime.getElapsedTimeF32(), 32, fogged_color); | 505 | draw_shockwave(1024.f, gRenderStartTime.getElapsedTimeF32(), 32, fogged_color); |
496 | 506 | ||
507 | //glScalef(1.f, 1.f, 1000.f); | ||
497 | glColor4fv(fogged_color.mV); | 508 | glColor4fv(fogged_color.mV); |
498 | const U32 BEACON_VERTS = 256; | 509 | const U32 BEACON_VERTS = 256; |
499 | const F32 step = 1024.0f/BEACON_VERTS; | 510 | const F32 step = 1024.0f/BEACON_VERTS; |
@@ -543,30 +554,24 @@ void LLTracker::renderBeacon(LLVector3d pos_global, | |||
543 | glEnd(); | 554 | glEnd(); |
544 | } | 555 | } |
545 | 556 | ||
557 | //gCylinder.render(1000); | ||
546 | glPopMatrix(); | 558 | glPopMatrix(); |
547 | 559 | ||
548 | if (!gCamera || to_vec.magVec() > gCamera->getFar()) | 560 | char text[1024]; /* Flawfinder: ignore */ |
549 | { | 561 | snprintf(text, sizeof(text), "%.0f m", to_vec.magVec()); /* Flawfinder: ignore */ |
550 | hud_textp->clearString(); | ||
551 | } | ||
552 | else | ||
553 | { | ||
554 | char text[1024]; /* Flawfinder: ignore */ | ||
555 | snprintf(text, sizeof(text), "%.0f m", to_vec.magVec()); /* Flawfinder: ignore */ | ||
556 | 562 | ||
557 | LLWString wstr; | 563 | LLWString wstr; |
558 | wstr += utf8str_to_wstring(label); | 564 | wstr += utf8str_to_wstring(label); |
559 | wstr += '\n'; | 565 | wstr += '\n'; |
560 | wstr += utf8str_to_wstring(text); | 566 | wstr += utf8str_to_wstring(text); |
561 | 567 | ||
562 | hud_textp->setFont(LLFontGL::sSansSerif); | 568 | hud_textp->setFont(LLFontGL::sSansSerif); |
563 | hud_textp->setZCompare(FALSE); | 569 | hud_textp->setZCompare(FALSE); |
564 | hud_textp->setColor(LLColor4(1.f, 1.f, 1.f, llmax(0.2f, llmin(1.f,(dist-FADE_DIST)/FADE_DIST)))); | 570 | hud_textp->setColor(LLColor4(1.f, 1.f, 1.f, llmax(0.2f, llmin(1.f,(dist-FADE_DIST)/FADE_DIST)))); |
565 | 571 | ||
566 | hud_textp->setString(wstr); | 572 | hud_textp->setString(wstr); |
567 | hud_textp->setVertAlignment(LLHUDText::ALIGN_VERT_CENTER); | 573 | hud_textp->setVertAlignment(LLHUDText::ALIGN_VERT_CENTER); |
568 | hud_textp->setPositionAgent(pos_agent); | 574 | hud_textp->setPositionAgent(pos_agent); |
569 | } | ||
570 | } | 575 | } |
571 | 576 | ||
572 | 577 | ||
@@ -638,14 +643,6 @@ void LLTracker::drawMarker(const LLVector3d& pos_global, const LLColor4& color) | |||
638 | return; | 643 | return; |
639 | } | 644 | } |
640 | 645 | ||
641 | LLVector3d to_vec = pos_global - gAgent.getCameraPositionGlobal(); | ||
642 | to_vec.mdV[2] = 0; | ||
643 | |||
644 | if (to_vec.magVec() > gCamera->getFar()) | ||
645 | { //only draw arrow if lateral distance to object is less than view distance. | ||
646 | return; | ||
647 | } | ||
648 | |||
649 | // get position | 646 | // get position |
650 | LLVector3 pos_local = gAgent.getPosAgentFromGlobal(pos_global); | 647 | LLVector3 pos_local = gAgent.getPosAgentFromGlobal(pos_global); |
651 | 648 | ||
diff --git a/linden/indra/newview/newview.vcproj b/linden/indra/newview/newview.vcproj index 1ae7f8b..726f77a 100644 --- a/linden/indra/newview/newview.vcproj +++ b/linden/indra/newview/newview.vcproj | |||
@@ -1868,6 +1868,9 @@ | |||
1868 | RelativePath=".\llpanelaudioprefs.h"> | 1868 | RelativePath=".\llpanelaudioprefs.h"> |
1869 | </File> | 1869 | </File> |
1870 | <File | 1870 | <File |
1871 | RelativePath=".\llpanelaudiovolume.h"> | ||
1872 | </File> | ||
1873 | <File | ||
1871 | RelativePath=".\llpanelavatar.h"> | 1874 | RelativePath=".\llpanelavatar.h"> |
1872 | </File> | 1875 | </File> |
1873 | <File | 1876 | <File |
diff --git a/linden/indra/newview/newview_vc8.vcproj b/linden/indra/newview/newview_vc8.vcproj index ba05819..635bb34 100644 --- a/linden/indra/newview/newview_vc8.vcproj +++ b/linden/indra/newview/newview_vc8.vcproj | |||
@@ -800,6 +800,10 @@ | |||
800 | > | 800 | > |
801 | </File> | 801 | </File> |
802 | <File | 802 | <File |
803 | RelativePath=".\llfloaterreleasemsg.cpp" | ||
804 | > | ||
805 | </File> | ||
806 | <File | ||
803 | RelativePath=".\llfloaterreporter.cpp" | 807 | RelativePath=".\llfloaterreporter.cpp" |
804 | > | 808 | > |
805 | </File> | 809 | </File> |
@@ -1870,6 +1874,10 @@ | |||
1870 | > | 1874 | > |
1871 | </File> | 1875 | </File> |
1872 | <File | 1876 | <File |
1877 | RelativePath=".\llassetuploadresponders.h" | ||
1878 | > | ||
1879 | </File> | ||
1880 | <File | ||
1873 | RelativePath=".\llappearance.h" | 1881 | RelativePath=".\llappearance.h" |
1874 | > | 1882 | > |
1875 | </File> | 1883 | </File> |
@@ -2750,6 +2758,10 @@ | |||
2750 | > | 2758 | > |
2751 | </File> | 2759 | </File> |
2752 | <File | 2760 | <File |
2761 | RelativePath=".\llresourcedata.h" | ||
2762 | > | ||
2763 | </File> | ||
2764 | <File | ||
2753 | RelativePath=".\llrig.h" | 2765 | RelativePath=".\llrig.h" |
2754 | > | 2766 | > |
2755 | </File> | 2767 | </File> |
diff --git a/linden/indra/newview/releasenotes.txt b/linden/indra/newview/releasenotes.txt index f4d6a8a..a9ea3f3 100644 --- a/linden/indra/newview/releasenotes.txt +++ b/linden/indra/newview/releasenotes.txt | |||
@@ -1,10 +1,24 @@ | |||
1 | Release Notes for Second Life 1.18.3(3) September 12, 2007 | ||
2 | ===================================== | ||
3 | Changes: | ||
4 | * Reverted map beacon behavior (per VWR-2270) | ||
5 | |||
6 | LSL changes: | ||
7 | * VWR-2265: Mis-spelled LSL constant OBJECT_UNKOWN_DETAIL renamed to OBJECT_UNKNOWN_DETAIL | ||
8 | ** Scripts written with the old, mis-spelled constant will not recompile unless corrected | ||
9 | |||
10 | Bug fixes: | ||
11 | * Enrollment fees are no longer displayed with decimals | ||
12 | * VWR-2275: Linux 1.18.3 Won't Link | ||
13 | * VWR-2283: Some changes to groups cannot be saved | ||
14 | * VWR-2324: llkdu.dll needs updating in RC viewer | ||
15 | * VWR-2291: LOD defaults are now too aggressive in RC 1.18.3 | ||
16 | * VWR-2307: secondlife startup shell script needs a comment about gdb now | ||
17 | |||
18 | |||
1 | Release Notes for Second Life 1.18.3(2) August 27, 2007 | 19 | Release Notes for Second Life 1.18.3(2) August 27, 2007 |
2 | ===================================== | 20 | ===================================== |
3 | Changes: | 21 | Changes: |
4 | * Altered beacon behavior | ||
5 | ** The beacon shaft is always drawn | ||
6 | ** The arrow is drawn if the lateral distance to the location being tracked is less than your view distance | ||
7 | ** The text appears if the total distance to the location being tracked is less than your view distance | ||
8 | * Changed Bug Reporting links to http:// instead of https:// | 22 | * Changed Bug Reporting links to http:// instead of https:// |
9 | * Build mode no longer automatically turns on beacons | 23 | * Build mode no longer automatically turns on beacons |
10 | * Removed 'Ping User' in statistics window (was returning 0, as userserver no longer exists) | 24 | * Removed 'Ping User' in statistics window (was returning 0, as userserver no longer exists) |
diff --git a/linden/indra/newview/res/newViewRes.rc b/linden/indra/newview/res/newViewRes.rc index 78267b8..04ed824 100644 --- a/linden/indra/newview/res/newViewRes.rc +++ b/linden/indra/newview/res/newViewRes.rc | |||
@@ -227,8 +227,8 @@ TOOLPIPETTE CURSOR "toolpipette.cur" | |||
227 | // | 227 | // |
228 | 228 | ||
229 | VS_VERSION_INFO VERSIONINFO | 229 | VS_VERSION_INFO VERSIONINFO |
230 | FILEVERSION 1,18,3,2 | 230 | FILEVERSION 1,18,3,3 |
231 | PRODUCTVERSION 1,18,3,2 | 231 | PRODUCTVERSION 1,18,3,3 |
232 | FILEFLAGSMASK 0x3fL | 232 | FILEFLAGSMASK 0x3fL |
233 | #ifdef _DEBUG | 233 | #ifdef _DEBUG |
234 | FILEFLAGS 0x1L | 234 | FILEFLAGS 0x1L |
@@ -245,12 +245,12 @@ BEGIN | |||
245 | BEGIN | 245 | BEGIN |
246 | VALUE "CompanyName", "Linden Lab" | 246 | VALUE "CompanyName", "Linden Lab" |
247 | VALUE "FileDescription", "Second Life" | 247 | VALUE "FileDescription", "Second Life" |
248 | VALUE "FileVersion", "1.18.3.2" | 248 | VALUE "FileVersion", "1.18.3.3" |
249 | VALUE "InternalName", "Second Life" | 249 | VALUE "InternalName", "Second Life" |
250 | VALUE "LegalCopyright", "Copyright © 2001-2007, Linden Research, Inc." | 250 | VALUE "LegalCopyright", "Copyright © 2001-2007, Linden Research, Inc." |
251 | VALUE "OriginalFilename", "SecondLife.exe" | 251 | VALUE "OriginalFilename", "SecondLife.exe" |
252 | VALUE "ProductName", "Second Life" | 252 | VALUE "ProductName", "Second Life" |
253 | VALUE "ProductVersion", "1.18.3.2" | 253 | VALUE "ProductVersion", "1.18.3.3" |
254 | END | 254 | END |
255 | END | 255 | END |
256 | BLOCK "VarFileInfo" | 256 | BLOCK "VarFileInfo" |