aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--linden/doc/contributions.txt1
-rw-r--r--linden/indra/SConstruct11
-rw-r--r--linden/indra/llcommon/llcommon_vc8.vcproj32
-rw-r--r--linden/indra/llcommon/lllslconstants.h2
-rw-r--r--linden/indra/llcommon/llversionviewer.h2
-rw-r--r--linden/indra/llmath/llmath.vcproj3
-rw-r--r--linden/indra/llmath/llvolume.cpp43
-rw-r--r--linden/indra/llmessage/llmessage.vcproj6
-rw-r--r--linden/indra/llrender/llrender_vc8.vcproj16
-rw-r--r--linden/indra/llui/llspinctrl.cpp5
-rw-r--r--linden/indra/llui/llspinctrl.h4
-rw-r--r--linden/indra/llui/llui_vc8.vcproj4
-rw-r--r--linden/indra/lscript/lscript_compile/indra.l2
-rw-r--r--linden/indra/lscript/lscript_library/lscript_library.cpp2
-rw-r--r--linden/indra/newview/English.lproj/InfoPlist.strings4
-rw-r--r--linden/indra/newview/Info-SecondLife.plist2
-rw-r--r--linden/indra/newview/app_settings/keywords.ini2
-rwxr-xr-xlinden/indra/newview/linux_tools/wrapper.sh1
-rw-r--r--linden/indra/newview/llpanelgroupgeneral.cpp47
-rw-r--r--linden/indra/newview/llpanelgroupgeneral.h4
-rw-r--r--linden/indra/newview/lltracker.cpp51
-rw-r--r--linden/indra/newview/newview.vcproj3
-rw-r--r--linden/indra/newview/newview_vc8.vcproj12
-rw-r--r--linden/indra/newview/releasenotes.txt22
-rw-r--r--linden/indra/newview/res/newViewRes.rc8
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
194tenebrous pau 195tenebrous pau
195 VWR-247 196 VWR-247
196TBBle Kurosawa 197TBBle 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;
167const S32 STRING_TRIM = STRING_TRIM_HEAD | STRING_TRIM_TAIL; 167const S32 STRING_TRIM = STRING_TRIM_HEAD | STRING_TRIM_TAIL;
168 168
169// llGetObjectDetails 169// llGetObjectDetails
170const S32 OBJECT_UNKOWN_DETAIL = -1; 170const S32 OBJECT_UNKNOWN_DETAIL = -1;
171const S32 OBJECT_NAME = 1; 171const S32 OBJECT_NAME = 1;
172const S32 OBJECT_DESC = 2; 172const S32 OBJECT_DESC = 2;
173const S32 OBJECT_POS = 3; 173const 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 @@
32const S32 LL_VERSION_MAJOR = 1; 32const S32 LL_VERSION_MAJOR = 1;
33const S32 LL_VERSION_MINOR = 18; 33const S32 LL_VERSION_MINOR = 18;
34const S32 LL_VERSION_PATCH = 3; 34const S32 LL_VERSION_PATCH = 3;
35const S32 LL_VERSION_BUILD = 2; 35const S32 LL_VERSION_BUILD = 3;
36 36
37const char * const LL_CHANNEL = "Second Life Release"; 37const 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;
78const F32 SKEW_MIN = -0.95f; 78const F32 SKEW_MIN = -0.95f;
79const F32 SKEW_MAX = 0.95f; 79const F32 SKEW_MAX = 0.95f;
80 80
81const S32 SCULPT_REZ_1 = 6; // changed from 4 to 6 - 6 looks round whereas 4 looks square
82const S32 SCULPT_REZ_2 = 8;
83const S32 SCULPT_REZ_3 = 16;
84const S32 SCULPT_REZ_4 = 32;
85
81BOOL check_same_clock_dir( const LLVector3& pt1, const LLVector3& pt2, const LLVector3& pt3, const LLVector3& norm) 86BOOL 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
458F32 next_power_of_two(F32 value) 463S32 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
464F32 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
551BOOL 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
3CFBundleName = "Second Life"; 3CFBundleName = "Second Life";
4CFBundleShortVersionString = "Second Life version 1.18.3.2"; 4CFBundleShortVersionString = "Second Life version 1.18.3.3";
5CFBundleGetInfoString = "Second Life version 1.18.3.2, Copyright 2004-2007 Linden Research, Inc."; 5CFBundleGetInfoString = "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
149PSYS_SRC_PATTERN_ANGLE_CONE 149PSYS_SRC_PATTERN_ANGLE_CONE
150PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY 150PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
151 151
152OBJECT_UNKOWN_DETAIL Returned by llGetObjectDetails when passed an invalid object parameter type. 152OBJECT_UNKNOWN_DETAIL Returned by llGetObjectDetails when passed an invalid object parameter type.
153OBJECT_NAME Used with llGetObjectDetails to get an object's name. 153OBJECT_NAME Used with llGetObjectDetails to get an object's name.
154OBJECT_DESC Used with llGetObjectDetails to get an object's description. 154OBJECT_DESC Used with llGetObjectDetails to get an object's description.
155OBJECT_POS Used with llGetObjectDetails to get an object's position. 155OBJECT_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
815void LLPanelGroupGeneral::updateChanged() 819void 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
108void LLTracker::drawHUDArrow() 108void 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 @@
1Release Notes for Second Life 1.18.3(3) September 12, 2007
2=====================================
3Changes:
4* Reverted map beacon behavior (per VWR-2270)
5
6LSL 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
10Bug 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
1Release Notes for Second Life 1.18.3(2) August 27, 2007 19Release Notes for Second Life 1.18.3(2) August 27, 2007
2===================================== 20=====================================
3Changes: 21Changes:
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
229VS_VERSION_INFO VERSIONINFO 229VS_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"