From a8a62201ba762e98dff92cf49033e577fc34d8d4 Mon Sep 17 00:00:00 2001
From: Jacek Antonelli
Date: Fri, 15 Aug 2008 23:45:27 -0500
Subject: Second Life viewer sources 1.19.0.0
---
linden/indra/SConstruct | 37 +-
linden/indra/indra_complete/indra_complete_vc8.sln | 170 +-
linden/indra/indra_complete/indra_complete_vc9.sln | 570 +++
linden/indra/lib/python/indra/base/lluuid.py | 7 +-
linden/indra/lib/python/indra/base/metrics.py | 42 +
linden/indra/lib/python/indra/ipc/mysql_pool.py | 2 +-
linden/indra/lib/python/indra/ipc/saranwrap.py | 28 +-
linden/indra/lib/python/indra/util/llmanifest.py | 1 +
linden/indra/lib/python/indra/util/named_query.py | 387 +-
.../linux_crash_logger/linux_crash_logger.cpp | 4 +-
.../linux_crash_logger/llcrashloggerlinux.cpp | 4 +-
.../indra/linux_crash_logger/llcrashloggerlinux.h | 4 +-
linden/indra/llaudio/audioengine.cpp | 4 +-
linden/indra/llaudio/audioengine.h | 4 +-
linden/indra/llaudio/audioengine_fmod.cpp | 4 +-
linden/indra/llaudio/audioengine_fmod.h | 4 +-
linden/indra/llaudio/listener.cpp | 4 +-
linden/indra/llaudio/listener.h | 4 +-
linden/indra/llaudio/listener_ds3d.h | 4 +-
linden/indra/llaudio/listener_fmod.cpp | 4 +-
linden/indra/llaudio/listener_fmod.h | 4 +-
linden/indra/llaudio/listener_openal.h | 4 +-
linden/indra/llaudio/llaudio_vc9.vcproj | 324 ++
linden/indra/llaudio/llaudiodecodemgr.cpp | 4 +-
linden/indra/llaudio/llaudiodecodemgr.h | 4 +-
linden/indra/llaudio/vorbisdecode.cpp | 4 +-
linden/indra/llaudio/vorbisdecode.h | 4 +-
linden/indra/llaudio/vorbisencode.cpp | 24 +-
linden/indra/llaudio/vorbisencode.h | 5 +-
linden/indra/llcharacter/llanimationstates.cpp | 4 +-
linden/indra/llcharacter/llanimationstates.h | 4 +-
linden/indra/llcharacter/llbvhloader.cpp | 4 +-
linden/indra/llcharacter/llbvhloader.h | 4 +-
linden/indra/llcharacter/llcharacter.cpp | 4 +-
linden/indra/llcharacter/llcharacter.h | 4 +-
linden/indra/llcharacter/llcharacter_vc9.vcproj | 420 ++
linden/indra/llcharacter/lleditingmotion.cpp | 88 +-
linden/indra/llcharacter/lleditingmotion.h | 14 +-
linden/indra/llcharacter/llgesture.cpp | 4 +-
linden/indra/llcharacter/llgesture.h | 4 +-
linden/indra/llcharacter/llhandmotion.cpp | 4 +-
linden/indra/llcharacter/llhandmotion.h | 6 +-
linden/indra/llcharacter/llheadrotmotion.cpp | 73 +-
linden/indra/llcharacter/llheadrotmotion.h | 14 +-
linden/indra/llcharacter/lljoint.cpp | 4 +-
linden/indra/llcharacter/lljoint.h | 8 +-
linden/indra/llcharacter/lljointsolverrp3.cpp | 4 +-
linden/indra/llcharacter/lljointsolverrp3.h | 4 +-
linden/indra/llcharacter/lljointstate.h | 40 +-
linden/indra/llcharacter/llkeyframefallmotion.cpp | 19 +-
linden/indra/llcharacter/llkeyframefallmotion.h | 6 +-
linden/indra/llcharacter/llkeyframemotion.cpp | 241 +-
linden/indra/llcharacter/llkeyframemotion.h | 18 +-
linden/indra/llcharacter/llkeyframemotionparam.cpp | 5 +-
linden/indra/llcharacter/llkeyframemotionparam.h | 5 +-
linden/indra/llcharacter/llkeyframestandmotion.cpp | 4 +-
linden/indra/llcharacter/llkeyframestandmotion.h | 18 +-
linden/indra/llcharacter/llkeyframewalkmotion.cpp | 47 +-
linden/indra/llcharacter/llkeyframewalkmotion.h | 10 +-
linden/indra/llcharacter/llmotion.cpp | 6 +-
linden/indra/llcharacter/llmotion.h | 6 +-
linden/indra/llcharacter/llmotioncontroller.cpp | 4 +-
linden/indra/llcharacter/llmotioncontroller.h | 4 +-
linden/indra/llcharacter/llmultigesture.cpp | 4 +-
linden/indra/llcharacter/llmultigesture.h | 4 +-
linden/indra/llcharacter/llpose.cpp | 20 +-
linden/indra/llcharacter/llpose.h | 22 +-
linden/indra/llcharacter/llstatemachine.cpp | 4 +-
linden/indra/llcharacter/llstatemachine.h | 4 +-
linden/indra/llcharacter/lltargetingmotion.cpp | 18 +-
linden/indra/llcharacter/lltargetingmotion.h | 6 +-
linden/indra/llcharacter/llvisualparam.cpp | 4 +-
linden/indra/llcharacter/llvisualparam.h | 4 +-
linden/indra/llcommon/bitpack.h | 4 +-
linden/indra/llcommon/ctype_workaround.h | 4 +-
linden/indra/llcommon/doublelinkedlist.h | 4 +-
linden/indra/llcommon/files.lst | 1 +
linden/indra/llcommon/imageids.h | 4 +-
linden/indra/llcommon/indra_constants.h | 4 +-
linden/indra/llcommon/linden_common.h | 4 +-
linden/indra/llcommon/linked_lists.h | 4 +-
linden/indra/llcommon/llagentconstants.h | 4 +-
linden/indra/llcommon/llapp.cpp | 4 +-
linden/indra/llcommon/llapp.h | 4 +-
linden/indra/llcommon/llapr.cpp | 4 +-
linden/indra/llcommon/llapr.h | 4 +-
linden/indra/llcommon/llares.cpp | 4 +-
linden/indra/llcommon/llares.h | 4 +-
linden/indra/llcommon/llassettype.cpp | 4 +-
linden/indra/llcommon/llassettype.h | 4 +-
linden/indra/llcommon/llassoclist.h | 4 +-
linden/indra/llcommon/llavatarconstants.h | 4 +-
linden/indra/llcommon/llbase32.cpp | 4 +-
linden/indra/llcommon/llbase32.h | 4 +-
linden/indra/llcommon/llbase64.cpp | 4 +-
linden/indra/llcommon/llbase64.h | 4 +-
linden/indra/llcommon/llboost.h | 4 +-
linden/indra/llcommon/llchat.h | 4 +-
linden/indra/llcommon/llclickaction.h | 4 +-
linden/indra/llcommon/llcommon.cpp | 4 +-
linden/indra/llcommon/llcommon.h | 4 +-
linden/indra/llcommon/llcommon.vcproj | 6 +
linden/indra/llcommon/llcommon_vc8.vcproj | 8 +
linden/indra/llcommon/llcommon_vc9.vcproj | 808 ++++
linden/indra/llcommon/llcriticaldamp.cpp | 4 +-
linden/indra/llcommon/llcriticaldamp.h | 4 +-
linden/indra/llcommon/lldarray.h | 4 +-
linden/indra/llcommon/lldarrayptr.h | 4 +-
linden/indra/llcommon/lldate.cpp | 4 +-
linden/indra/llcommon/lldate.h | 4 +-
linden/indra/llcommon/lldefs.h | 22 +-
linden/indra/llcommon/lldepthstack.h | 4 +-
linden/indra/llcommon/lldlinked.h | 4 +-
linden/indra/llcommon/lldqueueptr.h | 4 +-
linden/indra/llcommon/llendianswizzle.h | 4 +-
linden/indra/llcommon/llenum.h | 4 +-
linden/indra/llcommon/llerror.cpp | 4 +-
linden/indra/llcommon/llerror.h | 4 +-
linden/indra/llcommon/llerrorcontrol.h | 4 +-
linden/indra/llcommon/llerrorlegacy.h | 4 +-
linden/indra/llcommon/llerrorthread.cpp | 4 +-
linden/indra/llcommon/llerrorthread.h | 4 +-
linden/indra/llcommon/llevent.cpp | 4 +-
linden/indra/llcommon/llevent.h | 6 +-
linden/indra/llcommon/lleventemitter.h | 4 +-
linden/indra/llcommon/llextendedstatus.h | 4 +-
linden/indra/llcommon/llfasttimer.cpp | 4 +-
linden/indra/llcommon/llfasttimer.h | 4 +-
linden/indra/llcommon/llfile.cpp | 4 +-
linden/indra/llcommon/llfile.h | 4 +-
linden/indra/llcommon/llfixedbuffer.cpp | 4 +-
linden/indra/llcommon/llfixedbuffer.h | 4 +-
linden/indra/llcommon/llformat.cpp | 4 +-
linden/indra/llcommon/llformat.h | 4 +-
linden/indra/llcommon/llframetimer.cpp | 4 +-
linden/indra/llcommon/llframetimer.h | 4 +-
linden/indra/llcommon/llhash.h | 4 +-
linden/indra/llcommon/llindexedqueue.h | 4 +-
linden/indra/llcommon/llkeythrottle.h | 36 +-
linden/indra/llcommon/lllinkedqueue.h | 4 +-
linden/indra/llcommon/llliveappconfig.cpp | 4 +-
linden/indra/llcommon/llliveappconfig.h | 4 +-
linden/indra/llcommon/lllivefile.cpp | 4 +-
linden/indra/llcommon/lllivefile.h | 4 +-
linden/indra/llcommon/lllocalidhashmap.h | 4 +-
linden/indra/llcommon/lllog.cpp | 115 +
linden/indra/llcommon/lllog.h | 57 +
linden/indra/llcommon/lllslconstants.h | 4 +-
linden/indra/llcommon/llmap.h | 4 +-
linden/indra/llcommon/llmemory.cpp | 4 +-
linden/indra/llcommon/llmemory.h | 4 +-
linden/indra/llcommon/llmemorystream.cpp | 4 +-
linden/indra/llcommon/llmemorystream.h | 4 +-
linden/indra/llcommon/llmemtype.h | 4 +-
linden/indra/llcommon/llmetrics.cpp | 4 +-
linden/indra/llcommon/llmetrics.h | 4 +-
linden/indra/llcommon/llmortician.cpp | 16 +-
linden/indra/llcommon/llmortician.h | 6 +-
linden/indra/llcommon/llnametable.h | 4 +-
linden/indra/llcommon/llpreprocessor.h | 4 +-
linden/indra/llcommon/llpriqueuemap.h | 4 +-
linden/indra/llcommon/llprocessor.cpp | 4 +-
linden/indra/llcommon/llprocessor.h | 4 +-
linden/indra/llcommon/llptrskiplist.h | 4 +-
linden/indra/llcommon/llptrskipmap.h | 4 +-
linden/indra/llcommon/llqueuedthread.cpp | 4 +-
linden/indra/llcommon/llqueuedthread.h | 4 +-
linden/indra/llcommon/llrun.cpp | 4 +-
linden/indra/llcommon/llrun.h | 4 +-
linden/indra/llcommon/llsd.cpp | 43 +-
linden/indra/llcommon/llsd.h | 14 +-
linden/indra/llcommon/llsdserialize.cpp | 4 +-
linden/indra/llcommon/llsdserialize.h | 4 +-
linden/indra/llcommon/llsdserialize_xml.cpp | 4 +-
linden/indra/llcommon/llsdserialize_xml.h | 4 +-
linden/indra/llcommon/llsdutil.cpp | 124 +-
linden/indra/llcommon/llsdutil.h | 14 +-
linden/indra/llcommon/llsecondlifeurls.cpp | 7 +-
linden/indra/llcommon/llsecondlifeurls.h | 7 +-
linden/indra/llcommon/llsimplehash.h | 4 +-
linden/indra/llcommon/llskiplist.h | 4 +-
linden/indra/llcommon/llskipmap.h | 4 +-
linden/indra/llcommon/llstack.h | 4 +-
linden/indra/llcommon/llstat.cpp | 4 +-
linden/indra/llcommon/llstat.h | 4 +-
linden/indra/llcommon/llstatenums.h | 4 +-
linden/indra/llcommon/llstl.h | 4 +-
linden/indra/llcommon/llstreamtools.cpp | 4 +-
linden/indra/llcommon/llstreamtools.h | 4 +-
linden/indra/llcommon/llstrider.h | 4 +-
linden/indra/llcommon/llstring.cpp | 82 +-
linden/indra/llcommon/llstring.h | 54 +-
linden/indra/llcommon/llstringtable.cpp | 4 +-
linden/indra/llcommon/llstringtable.h | 4 +-
linden/indra/llcommon/llsys.cpp | 4 +-
linden/indra/llcommon/llsys.h | 4 +-
linden/indra/llcommon/llthread.cpp | 4 +-
linden/indra/llcommon/llthread.h | 4 +-
linden/indra/llcommon/lltimer.cpp | 4 +-
linden/indra/llcommon/lltimer.h | 4 +-
linden/indra/llcommon/lluri.cpp | 87 +-
linden/indra/llcommon/lluri.h | 50 +-
linden/indra/llcommon/lluuidhashmap.h | 4 +-
linden/indra/llcommon/llversionserver.h | 6 +-
linden/indra/llcommon/llversionviewer.h | 10 +-
linden/indra/llcommon/llworkerthread.cpp | 4 +-
linden/indra/llcommon/llworkerthread.h | 4 +-
linden/indra/llcommon/metaclass.cpp | 4 +-
linden/indra/llcommon/metaclass.h | 4 +-
linden/indra/llcommon/metaclasst.h | 4 +-
linden/indra/llcommon/metaproperty.cpp | 4 +-
linden/indra/llcommon/metaproperty.h | 4 +-
linden/indra/llcommon/metapropertyt.h | 4 +-
linden/indra/llcommon/processor.h | 4 +-
linden/indra/llcommon/reflective.cpp | 4 +-
linden/indra/llcommon/reflective.h | 4 +-
linden/indra/llcommon/reflectivet.h | 4 +-
linden/indra/llcommon/roles_constants.h | 26 +-
linden/indra/llcommon/stdenums.h | 4 +-
linden/indra/llcommon/stdtypes.h | 4 +-
linden/indra/llcommon/string_table.h | 4 +-
linden/indra/llcommon/timer.h | 4 +-
linden/indra/llcommon/timing.cpp | 4 +-
linden/indra/llcommon/timing.h | 4 +-
linden/indra/llcommon/u64.cpp | 8 +-
linden/indra/llcommon/u64.h | 34 +-
linden/indra/llcrashlogger/llcrashlogger.cpp | 602 +--
linden/indra/llcrashlogger/llcrashlogger.h | 124 +-
linden/indra/llimage/llimage.cpp | 4 +-
linden/indra/llimage/llimage.h | 4 +-
linden/indra/llimage/llimage_vc9.vcproj | 326 ++
linden/indra/llimage/llimagebmp.cpp | 4 +-
linden/indra/llimage/llimagebmp.h | 4 +-
linden/indra/llimage/llimagedxt.cpp | 4 +-
linden/indra/llimage/llimagedxt.h | 4 +-
linden/indra/llimage/llimagej2c.cpp | 4 +-
linden/indra/llimage/llimagej2c.h | 4 +-
linden/indra/llimage/llimagejpeg.cpp | 4 +-
linden/indra/llimage/llimagejpeg.h | 4 +-
linden/indra/llimage/llimagepng.cpp | 4 +-
linden/indra/llimage/llimagepng.h | 4 +-
linden/indra/llimage/llimagetga.cpp | 4 +-
linden/indra/llimage/llimagetga.h | 4 +-
linden/indra/llimage/llimageworker.cpp | 4 +-
linden/indra/llimage/llimageworker.h | 4 +-
linden/indra/llimage/llmapimagetype.h | 4 +-
linden/indra/llimage/llpngwrapper.cpp | 4 +-
linden/indra/llimage/llpngwrapper.h | 4 +-
linden/indra/llimagej2coj/llimagej2coj.cpp | 57 +-
linden/indra/llimagej2coj/llimagej2coj.h | 4 +-
linden/indra/llinventory/llcategory.cpp | 4 +-
linden/indra/llinventory/llcategory.h | 4 +-
linden/indra/llinventory/lleconomy.cpp | 4 +-
linden/indra/llinventory/lleconomy.h | 4 +-
linden/indra/llinventory/llinventory.cpp | 4 +-
linden/indra/llinventory/llinventory.h | 4 +-
linden/indra/llinventory/llinventory_vc9.vcproj | 348 ++
linden/indra/llinventory/llinventorytype.cpp | 4 +-
linden/indra/llinventory/llinventorytype.h | 4 +-
linden/indra/llinventory/lllandmark.cpp | 4 +-
linden/indra/llinventory/lllandmark.h | 4 +-
linden/indra/llinventory/llnotecard.cpp | 4 +-
linden/indra/llinventory/llnotecard.h | 4 +-
linden/indra/llinventory/llparcel.cpp | 4 +-
linden/indra/llinventory/llparcel.h | 4 +-
linden/indra/llinventory/llparcelflags.h | 4 +-
linden/indra/llinventory/llpermissions.cpp | 4 +-
linden/indra/llinventory/llpermissions.h | 4 +-
linden/indra/llinventory/llpermissionsflags.h | 4 +-
linden/indra/llinventory/llsaleinfo.cpp | 4 +-
linden/indra/llinventory/llsaleinfo.h | 4 +-
linden/indra/llinventory/lltransactionflags.cpp | 4 +-
linden/indra/llinventory/lltransactionflags.h | 4 +-
linden/indra/llinventory/lltransactiontypes.h | 4 +-
linden/indra/llinventory/lluserrelations.cpp | 9 +-
linden/indra/llinventory/lluserrelations.h | 19 +-
linden/indra/llmath/camera.h | 4 +-
linden/indra/llmath/coordframe.h | 4 +-
linden/indra/llmath/llbboxlocal.cpp | 4 +-
linden/indra/llmath/llbboxlocal.h | 4 +-
linden/indra/llmath/llcamera.cpp | 4 +-
linden/indra/llmath/llcamera.h | 4 +-
linden/indra/llmath/llcoord.h | 4 +-
linden/indra/llmath/llcoordframe.cpp | 4 +-
linden/indra/llmath/llcoordframe.h | 4 +-
linden/indra/llmath/llcrc.cpp | 4 +-
linden/indra/llmath/llcrc.h | 4 +-
linden/indra/llmath/llinterp.h | 4 +-
linden/indra/llmath/llmath.h | 4 +-
linden/indra/llmath/llmath_vc9.vcproj | 473 +++
linden/indra/llmath/llmd5.cpp | 4 +-
linden/indra/llmath/llmd5.h | 4 +-
linden/indra/llmath/lloctree.h | 4 +-
linden/indra/llmath/llperlin.cpp | 4 +-
linden/indra/llmath/llperlin.h | 4 +-
linden/indra/llmath/llplane.h | 4 +-
linden/indra/llmath/llquantize.h | 4 +-
linden/indra/llmath/llquaternion.cpp | 4 +-
linden/indra/llmath/llquaternion.h | 4 +-
linden/indra/llmath/llrand.cpp | 4 +-
linden/indra/llmath/llrand.h | 4 +-
linden/indra/llmath/llrect.cpp | 4 +-
linden/indra/llmath/llrect.h | 11 +-
linden/indra/llmath/lltreenode.h | 4 +-
linden/indra/llmath/lluuid.cpp | 4 +-
linden/indra/llmath/lluuid.h | 4 +-
linden/indra/llmath/llv4math.h | 4 +-
linden/indra/llmath/llv4matrix3.h | 4 +-
linden/indra/llmath/llv4matrix4.h | 4 +-
linden/indra/llmath/llv4vector3.h | 4 +-
linden/indra/llmath/llvolume.cpp | 12 +-
linden/indra/llmath/llvolume.h | 4 +-
linden/indra/llmath/llvolumemgr.cpp | 4 +-
linden/indra/llmath/llvolumemgr.h | 4 +-
linden/indra/llmath/m3math.cpp | 4 +-
linden/indra/llmath/m3math.h | 4 +-
linden/indra/llmath/m4math.cpp | 4 +-
linden/indra/llmath/m4math.h | 4 +-
linden/indra/llmath/raytrace.cpp | 4 +-
linden/indra/llmath/raytrace.h | 4 +-
linden/indra/llmath/v2math.cpp | 4 +-
linden/indra/llmath/v2math.h | 4 +-
linden/indra/llmath/v3color.cpp | 4 +-
linden/indra/llmath/v3color.h | 5 +-
linden/indra/llmath/v3dmath.cpp | 4 +-
linden/indra/llmath/v3dmath.h | 4 +-
linden/indra/llmath/v3math.cpp | 4 +-
linden/indra/llmath/v3math.h | 4 +-
linden/indra/llmath/v4color.cpp | 4 +-
linden/indra/llmath/v4color.h | 5 +-
linden/indra/llmath/v4coloru.cpp | 4 +-
linden/indra/llmath/v4coloru.h | 4 +-
linden/indra/llmath/v4math.cpp | 4 +-
linden/indra/llmath/v4math.h | 4 +-
linden/indra/llmath/xform.cpp | 4 +-
linden/indra/llmath/xform.h | 4 +-
linden/indra/llmedia/llmedia_vc9.vcproj | 300 ++
linden/indra/llmedia/llmediabase.cpp | 4 +-
linden/indra/llmedia/llmediabase.h | 4 +-
linden/indra/llmedia/llmediaemitter.h | 4 +-
linden/indra/llmedia/llmediaemitterevents.h | 4 +-
linden/indra/llmedia/llmediaengine.cpp | 4 +-
linden/indra/llmedia/llmediaengine.h | 9 +-
linden/indra/llmedia/llmediaimplgstreamer.cpp | 4 +-
linden/indra/llmedia/llmediaimplgstreamer.h | 4 +-
linden/indra/llmedia/llmediaimplgstreamer_syms.cpp | 4 +-
linden/indra/llmedia/llmediaimplgstreamer_syms.h | 4 +-
.../indra/llmedia/llmediaimplgstreamervidplug.cpp | 4 +-
linden/indra/llmedia/llmediaimplgstreamervidplug.h | 4 +-
linden/indra/llmedia/llmediaimplquicktime.cpp | 4 +-
linden/indra/llmedia/llmediaimplquicktime.h | 4 +-
linden/indra/llmedia/llmediamoviebase.cpp | 4 +-
linden/indra/llmedia/llmediamoviebase.h | 4 +-
linden/indra/llmedia/llmediaobservers.h | 4 +-
linden/indra/llmessage/files.lst | 1 -
linden/indra/llmessage/llassetstorage.cpp | 4 +-
linden/indra/llmessage/llassetstorage.h | 4 +-
linden/indra/llmessage/llblowfishcipher.cpp | 4 +-
linden/indra/llmessage/llblowfishcipher.h | 4 +-
linden/indra/llmessage/llbuffer.cpp | 4 +-
linden/indra/llmessage/llbuffer.h | 4 +-
linden/indra/llmessage/llbufferstream.cpp | 4 +-
linden/indra/llmessage/llbufferstream.h | 4 +-
linden/indra/llmessage/llcachename.cpp | 4 +-
linden/indra/llmessage/llcachename.h | 4 +-
linden/indra/llmessage/llcallbacklisth.h | 4 +-
linden/indra/llmessage/llchainio.cpp | 4 +-
linden/indra/llmessage/llchainio.h | 4 +-
linden/indra/llmessage/llcipher.h | 4 +-
linden/indra/llmessage/llcircuit.cpp | 4 +-
linden/indra/llmessage/llcircuit.h | 4 +-
linden/indra/llmessage/llclassifiedflags.cpp | 4 +-
linden/indra/llmessage/llclassifiedflags.h | 4 +-
linden/indra/llmessage/llcurl.cpp | 4 +-
linden/indra/llmessage/llcurl.h | 4 +-
linden/indra/llmessage/lldatapacker.cpp | 4 +-
linden/indra/llmessage/lldatapacker.h | 4 +-
linden/indra/llmessage/lldbstrings.h | 4 +-
linden/indra/llmessage/lldispatcher.cpp | 4 +-
linden/indra/llmessage/lldispatcher.h | 4 +-
linden/indra/llmessage/lleventflags.h | 4 +-
linden/indra/llmessage/llfiltersd2xmlrpc.cpp | 4 +-
linden/indra/llmessage/llfiltersd2xmlrpc.h | 4 +-
linden/indra/llmessage/llfollowcamparams.h | 4 +-
linden/indra/llmessage/llhost.cpp | 4 +-
linden/indra/llmessage/llhost.h | 4 +-
linden/indra/llmessage/llhttpassetstorage.cpp | 4 +-
linden/indra/llmessage/llhttpassetstorage.h | 4 +-
linden/indra/llmessage/llhttpclient.cpp | 4 +-
linden/indra/llmessage/llhttpclient.h | 4 +-
linden/indra/llmessage/llhttpnode.cpp | 4 +-
linden/indra/llmessage/llhttpnode.h | 4 +-
linden/indra/llmessage/llhttpsender.cpp | 4 +-
linden/indra/llmessage/llhttpsender.h | 4 +-
linden/indra/llmessage/llinstantmessage.cpp | 4 +-
linden/indra/llmessage/llinstantmessage.h | 4 +-
linden/indra/llmessage/llinvite.h | 4 +-
linden/indra/llmessage/lliobuffer.cpp | 4 +-
linden/indra/llmessage/lliobuffer.h | 4 +-
linden/indra/llmessage/lliohttpserver.cpp | 8 +-
linden/indra/llmessage/lliohttpserver.h | 4 +-
linden/indra/llmessage/lliopipe.cpp | 5 +-
linden/indra/llmessage/lliopipe.h | 13 +-
linden/indra/llmessage/lliosocket.cpp | 42 +-
linden/indra/llmessage/lliosocket.h | 4 +-
linden/indra/llmessage/llioutil.cpp | 4 +-
linden/indra/llmessage/llioutil.h | 4 +-
linden/indra/llmessage/llloginflags.h | 4 +-
linden/indra/llmessage/lllogtextmessage.cpp | 122 -
linden/indra/llmessage/lllogtextmessage.h | 99 -
linden/indra/llmessage/llmail.cpp | 4 +-
linden/indra/llmessage/llmail.h | 4 +-
linden/indra/llmessage/llmessage.vcproj | 6 -
linden/indra/llmessage/llmessage_vc8.vcproj | 8 -
linden/indra/llmessage/llmessage_vc9.vcproj | 926 ++++
linden/indra/llmessage/llmessagebuilder.cpp | 4 +-
linden/indra/llmessage/llmessagebuilder.h | 4 +-
linden/indra/llmessage/llmessageconfig.cpp | 4 +-
linden/indra/llmessage/llmessageconfig.h | 4 +-
linden/indra/llmessage/llmessagereader.cpp | 4 +-
linden/indra/llmessage/llmessagereader.h | 4 +-
linden/indra/llmessage/llmessagetemplate.cpp | 4 +-
linden/indra/llmessage/llmessagetemplate.h | 4 +-
linden/indra/llmessage/llmessagetemplateparser.cpp | 4 +-
linden/indra/llmessage/llmessagetemplateparser.h | 4 +-
linden/indra/llmessage/llmessagethrottle.cpp | 35 +-
linden/indra/llmessage/llmessagethrottle.h | 8 +-
linden/indra/llmessage/llmime.cpp | 4 +-
linden/indra/llmessage/llmime.h | 4 +-
linden/indra/llmessage/llmsgvariabletype.h | 4 +-
linden/indra/llmessage/llnamevalue.cpp | 4 +-
linden/indra/llmessage/llnamevalue.h | 4 +-
linden/indra/llmessage/llnullcipher.cpp | 4 +-
linden/indra/llmessage/llnullcipher.h | 4 +-
linden/indra/llmessage/llpacketack.cpp | 4 +-
linden/indra/llmessage/llpacketack.h | 4 +-
linden/indra/llmessage/llpacketbuffer.cpp | 4 +-
linden/indra/llmessage/llpacketbuffer.h | 4 +-
linden/indra/llmessage/llpacketring.cpp | 4 +-
linden/indra/llmessage/llpacketring.h | 4 +-
linden/indra/llmessage/llpartdata.cpp | 4 +-
linden/indra/llmessage/llpartdata.h | 4 +-
linden/indra/llmessage/llpumpio.cpp | 222 +-
linden/indra/llmessage/llpumpio.h | 18 +-
linden/indra/llmessage/llqueryflags.h | 4 +-
linden/indra/llmessage/llregionflags.h | 4 +-
linden/indra/llmessage/llregionhandle.h | 4 +-
linden/indra/llmessage/llsdappservices.cpp | 4 +-
linden/indra/llmessage/llsdappservices.h | 4 +-
linden/indra/llmessage/llsdhttpserver.cpp | 4 +-
linden/indra/llmessage/llsdhttpserver.h | 4 +-
linden/indra/llmessage/llsdmessagebuilder.cpp | 4 +-
linden/indra/llmessage/llsdmessagebuilder.h | 4 +-
linden/indra/llmessage/llsdmessagereader.cpp | 4 +-
linden/indra/llmessage/llsdmessagereader.h | 4 +-
linden/indra/llmessage/llsdrpcclient.cpp | 4 +-
linden/indra/llmessage/llsdrpcclient.h | 4 +-
linden/indra/llmessage/llsdrpcserver.cpp | 4 +-
linden/indra/llmessage/llsdrpcserver.h | 4 +-
linden/indra/llmessage/llservice.cpp | 4 +-
linden/indra/llmessage/llservice.h | 4 +-
linden/indra/llmessage/llservicebuilder.cpp | 103 +-
linden/indra/llmessage/llservicebuilder.h | 4 +-
linden/indra/llmessage/lltaskname.h | 4 +-
linden/indra/llmessage/llteleportflags.h | 4 +-
.../indra/llmessage/lltemplatemessagebuilder.cpp | 4 +-
linden/indra/llmessage/lltemplatemessagebuilder.h | 4 +-
linden/indra/llmessage/lltemplatemessagereader.cpp | 4 +-
linden/indra/llmessage/lltemplatemessagereader.h | 4 +-
linden/indra/llmessage/llthrottle.cpp | 4 +-
linden/indra/llmessage/llthrottle.h | 4 +-
linden/indra/llmessage/lltransfermanager.cpp | 85 +-
linden/indra/llmessage/lltransfermanager.h | 4 +-
linden/indra/llmessage/lltransfersourceasset.cpp | 4 +-
linden/indra/llmessage/lltransfersourceasset.h | 4 +-
linden/indra/llmessage/lltransfersourcefile.cpp | 4 +-
linden/indra/llmessage/lltransfersourcefile.h | 4 +-
linden/indra/llmessage/lltransfertargetfile.cpp | 4 +-
linden/indra/llmessage/lltransfertargetfile.h | 4 +-
linden/indra/llmessage/lltransfertargetvfile.cpp | 4 +-
linden/indra/llmessage/lltransfertargetvfile.h | 4 +-
linden/indra/llmessage/llurlrequest.cpp | 5 +-
linden/indra/llmessage/llurlrequest.h | 6 +-
linden/indra/llmessage/lluseroperation.cpp | 4 +-
linden/indra/llmessage/lluseroperation.h | 4 +-
linden/indra/llmessage/llvehicleparams.h | 4 +-
linden/indra/llmessage/llxfer.cpp | 4 +-
linden/indra/llmessage/llxfer.h | 4 +-
linden/indra/llmessage/llxfer_file.cpp | 4 +-
linden/indra/llmessage/llxfer_file.h | 4 +-
linden/indra/llmessage/llxfer_mem.cpp | 4 +-
linden/indra/llmessage/llxfer_mem.h | 4 +-
linden/indra/llmessage/llxfer_vfile.cpp | 4 +-
linden/indra/llmessage/llxfer_vfile.h | 4 +-
linden/indra/llmessage/llxfermanager.cpp | 4 +-
linden/indra/llmessage/llxfermanager.h | 4 +-
linden/indra/llmessage/llxorcipher.cpp | 4 +-
linden/indra/llmessage/llxorcipher.h | 4 +-
linden/indra/llmessage/machine.h | 4 +-
linden/indra/llmessage/mean_collision_data.h | 4 +-
linden/indra/llmessage/message.cpp | 65 +-
linden/indra/llmessage/message.h | 11 +-
linden/indra/llmessage/message_prehash.cpp | 4 +-
linden/indra/llmessage/message_prehash.h | 4 +-
linden/indra/llmessage/message_string_table.cpp | 4 +-
linden/indra/llmessage/net.cpp | 4 +-
linden/indra/llmessage/net.h | 4 +-
linden/indra/llmessage/network.cpp | 4 +-
linden/indra/llmessage/network.h | 4 +-
linden/indra/llmessage/partsyspacket.cpp | 4 +-
linden/indra/llmessage/partsyspacket.h | 4 +-
linden/indra/llmessage/patch_code.cpp | 4 +-
linden/indra/llmessage/patch_code.h | 4 +-
linden/indra/llmessage/patch_dct.cpp | 4 +-
linden/indra/llmessage/patch_dct.h | 4 +-
linden/indra/llmessage/patch_idct.cpp | 4 +-
linden/indra/llmessage/sound_ids.h | 4 +-
linden/indra/llprimitive/legacy_object_types.h | 4 +-
linden/indra/llprimitive/llmaterialtable.cpp | 4 +-
linden/indra/llprimitive/llmaterialtable.h | 4 +-
linden/indra/llprimitive/llprimitive.cpp | 130 +-
linden/indra/llprimitive/llprimitive.h | 16 +-
linden/indra/llprimitive/llprimitive_vc9.vcproj | 320 ++
linden/indra/llprimitive/lltextureanim.cpp | 4 +-
linden/indra/llprimitive/lltextureanim.h | 4 +-
linden/indra/llprimitive/lltextureentry.cpp | 4 +-
linden/indra/llprimitive/lltextureentry.h | 4 +-
linden/indra/llprimitive/lltree_common.h | 4 +-
linden/indra/llprimitive/lltreeparams.cpp | 4 +-
linden/indra/llprimitive/lltreeparams.h | 4 +-
linden/indra/llprimitive/llvolumemessage.cpp | 4 +-
linden/indra/llprimitive/llvolumemessage.h | 4 +-
linden/indra/llprimitive/llvolumexml.cpp | 4 +-
linden/indra/llprimitive/llvolumexml.h | 4 +-
linden/indra/llprimitive/material_codes.h | 4 +-
linden/indra/llprimitive/object_flags.h | 4 +-
linden/indra/llrender/llfont.cpp | 8 +-
linden/indra/llrender/llfont.h | 4 +-
linden/indra/llrender/llfontgl.cpp | 4 +-
linden/indra/llrender/llfontgl.h | 4 +-
linden/indra/llrender/llgldbg.cpp | 4 +-
linden/indra/llrender/llgldbg.h | 4 +-
linden/indra/llrender/llimagegl.cpp | 4 +-
linden/indra/llrender/llimagegl.h | 14 +-
linden/indra/llrender/llrender_vc9.vcproj | 314 ++
linden/indra/llrender/llvertexbuffer.cpp | 4 +-
linden/indra/llrender/llvertexbuffer.h | 4 +-
linden/indra/llrender/llvertexprogramgl.cpp | 4 +-
linden/indra/llrender/llvertexprogramgl.h | 4 +-
linden/indra/llui/llalertdialog.cpp | 47 +-
linden/indra/llui/llalertdialog.h | 9 +-
linden/indra/llui/llbutton.cpp | 281 +-
linden/indra/llui/llbutton.h | 72 +-
linden/indra/llui/llcallbackmap.h | 4 +-
linden/indra/llui/llcheckboxctrl.cpp | 23 +-
linden/indra/llui/llcheckboxctrl.h | 4 +-
linden/indra/llui/llclipboard.cpp | 4 +-
linden/indra/llui/llclipboard.h | 4 +-
linden/indra/llui/llcombobox.cpp | 514 ++-
linden/indra/llui/llcombobox.h | 61 +-
linden/indra/llui/llctrlselectioninterface.cpp | 4 +-
linden/indra/llui/llctrlselectioninterface.h | 6 +-
linden/indra/llui/lldraghandle.cpp | 4 +-
linden/indra/llui/lldraghandle.h | 5 +-
linden/indra/llui/lleditmenuhandler.cpp | 4 +-
linden/indra/llui/lleditmenuhandler.h | 4 +-
linden/indra/llui/llfloater.cpp | 39 +-
linden/indra/llui/llfloater.h | 4 +-
linden/indra/llui/llfocusmgr.cpp | 45 +-
linden/indra/llui/llfocusmgr.h | 13 +-
linden/indra/llui/llhtmlhelp.h | 5 +-
linden/indra/llui/lliconctrl.cpp | 20 +-
linden/indra/llui/lliconctrl.h | 6 +-
linden/indra/llui/llkeywords.cpp | 18 +-
linden/indra/llui/llkeywords.h | 8 +-
linden/indra/llui/lllineeditor.cpp | 363 +-
linden/indra/llui/lllineeditor.h | 42 +-
linden/indra/llui/llmemberlistener.h | 4 +-
linden/indra/llui/llmenugl.cpp | 11 +-
linden/indra/llui/llmenugl.h | 4 +-
linden/indra/llui/llmodaldialog.cpp | 16 +-
linden/indra/llui/llmodaldialog.h | 6 +-
linden/indra/llui/llpanel.cpp | 236 +-
linden/indra/llui/llpanel.h | 13 +-
linden/indra/llui/llradiogroup.cpp | 6 +-
linden/indra/llui/llradiogroup.h | 6 +-
linden/indra/llui/llresizebar.cpp | 4 +-
linden/indra/llui/llresizebar.h | 4 +-
linden/indra/llui/llresizehandle.cpp | 6 +-
linden/indra/llui/llresizehandle.h | 4 +-
linden/indra/llui/llresmgr.cpp | 4 +-
linden/indra/llui/llresmgr.h | 4 +-
linden/indra/llui/llrootview.cpp | 4 +-
linden/indra/llui/llrootview.h | 4 +-
linden/indra/llui/llscrollbar.cpp | 48 +-
linden/indra/llui/llscrollbar.h | 7 +-
linden/indra/llui/llscrollcontainer.cpp | 42 +-
linden/indra/llui/llscrollcontainer.h | 4 +-
linden/indra/llui/llscrollingpanellist.cpp | 4 +-
linden/indra/llui/llscrollingpanellist.h | 4 +-
linden/indra/llui/llscrolllistctrl.cpp | 1048 +++--
linden/indra/llui/llscrolllistctrl.h | 197 +-
linden/indra/llui/llslider.cpp | 149 +-
linden/indra/llui/llslider.h | 11 +-
linden/indra/llui/llsliderctrl.cpp | 8 +-
linden/indra/llui/llsliderctrl.h | 6 +-
linden/indra/llui/llspinctrl.cpp | 10 +-
linden/indra/llui/llspinctrl.h | 6 +-
linden/indra/llui/llstyle.cpp | 6 +-
linden/indra/llui/llstyle.h | 4 +-
linden/indra/llui/lltabcontainer.cpp | 43 +-
linden/indra/llui/lltabcontainer.h | 7 +-
linden/indra/llui/lltabcontainervertical.cpp | 14 +-
linden/indra/llui/lltabcontainervertical.h | 4 +-
linden/indra/llui/lltextbox.cpp | 14 +-
linden/indra/llui/lltextbox.h | 6 +-
linden/indra/llui/lltexteditor.cpp | 539 ++-
linden/indra/llui/lltexteditor.h | 57 +-
linden/indra/llui/llui.cpp | 461 +-
linden/indra/llui/llui.h | 90 +-
linden/indra/llui/llui_vc9.vcproj | 596 +++
linden/indra/llui/lluiconstants.h | 4 +-
linden/indra/llui/lluictrl.cpp | 203 +-
linden/indra/llui/lluictrl.h | 59 +-
linden/indra/llui/lluictrlfactory.cpp | 18 +-
linden/indra/llui/lluictrlfactory.h | 4 +-
linden/indra/llui/lluistring.cpp | 4 +-
linden/indra/llui/lluistring.h | 4 +-
linden/indra/llui/lluixmltags.h | 5 +-
linden/indra/llui/llundo.cpp | 4 +-
linden/indra/llui/llundo.h | 4 +-
linden/indra/llui/llview.cpp | 440 +-
linden/indra/llui/llview.h | 36 +-
linden/indra/llui/llviewborder.cpp | 6 +-
linden/indra/llui/llviewborder.h | 4 +-
linden/indra/llui/llviewquery.cpp | 65 +-
linden/indra/llui/llviewquery.h | 36 +-
linden/indra/llvfs/lldir.cpp | 4 +-
linden/indra/llvfs/lldir.h | 4 +-
linden/indra/llvfs/lldir_linux.cpp | 4 +-
linden/indra/llvfs/lldir_linux.h | 4 +-
linden/indra/llvfs/lldir_mac.cpp | 4 +-
linden/indra/llvfs/lldir_mac.h | 4 +-
linden/indra/llvfs/lldir_solaris.cpp | 4 +-
linden/indra/llvfs/lldir_solaris.h | 4 +-
linden/indra/llvfs/lldir_win32.cpp | 4 +-
linden/indra/llvfs/lldir_win32.h | 4 +-
linden/indra/llvfs/lllfsthread.cpp | 4 +-
linden/indra/llvfs/lllfsthread.h | 4 +-
linden/indra/llvfs/llvfile.cpp | 4 +-
linden/indra/llvfs/llvfile.h | 4 +-
linden/indra/llvfs/llvfs.cpp | 4 +-
linden/indra/llvfs/llvfs.h | 4 +-
linden/indra/llvfs/llvfs_vc9.vcproj | 296 ++
linden/indra/llvfs/llvfsthread.cpp | 4 +-
linden/indra/llvfs/llvfsthread.h | 4 +-
linden/indra/llwindow/lldxhardware.cpp | 4 +-
linden/indra/llwindow/lldxhardware.h | 4 +-
linden/indra/llwindow/llgl.cpp | 4 +-
linden/indra/llwindow/llgl.h | 4 +-
linden/indra/llwindow/llglheaders.h | 4 +-
linden/indra/llwindow/llglstates.h | 4 +-
linden/indra/llwindow/llglstubs.h | 4 +-
linden/indra/llwindow/llgltypes.h | 4 +-
linden/indra/llwindow/llkeyboard.cpp | 4 +-
linden/indra/llwindow/llkeyboard.h | 4 +-
linden/indra/llwindow/llkeyboardmacosx.cpp | 4 +-
linden/indra/llwindow/llkeyboardmacosx.h | 4 +-
linden/indra/llwindow/llkeyboardsdl.cpp | 4 +-
linden/indra/llwindow/llkeyboardsdl.h | 4 +-
linden/indra/llwindow/llkeyboardwin32.cpp | 4 +-
linden/indra/llwindow/llkeyboardwin32.h | 4 +-
linden/indra/llwindow/lllogitechlcd.cpp | 9 +-
linden/indra/llwindow/lllogitechlcd.h | 6 +-
linden/indra/llwindow/llmousehandler.h | 4 +-
linden/indra/llwindow/llpreeditor.h | 106 +
linden/indra/llwindow/llwindow.cpp | 4 +-
linden/indra/llwindow/llwindow.h | 13 +-
linden/indra/llwindow/llwindow.vcproj | 3 +
linden/indra/llwindow/llwindow_vc9.vcproj | 398 ++
linden/indra/llwindow/llwindowheadless.cpp | 4 +-
linden/indra/llwindow/llwindowheadless.h | 4 +-
linden/indra/llwindow/llwindowlinux.cpp | 4 +-
linden/indra/llwindow/llwindowlinux.h | 4 +-
linden/indra/llwindow/llwindowmacosx-objc.h | 4 +-
linden/indra/llwindow/llwindowmacosx-objc.mm | 4 +-
linden/indra/llwindow/llwindowmacosx.cpp | 428 +-
linden/indra/llwindow/llwindowmacosx.h | 12 +-
linden/indra/llwindow/llwindowmesaheadless.cpp | 4 +-
linden/indra/llwindow/llwindowmesaheadless.h | 4 +-
linden/indra/llwindow/llwindowsdl.cpp | 29 +-
linden/indra/llwindow/llwindowsdl.h | 6 +-
linden/indra/llwindow/llwindowsolaris.cpp | 4 +-
linden/indra/llwindow/llwindowsolaris.h | 4 +-
linden/indra/llwindow/llwindowwin32.cpp | 663 ++-
linden/indra/llwindow/llwindowwin32.h | 20 +-
linden/indra/llxml/llcontrol.cpp | 4 +-
linden/indra/llxml/llcontrol.h | 4 +-
linden/indra/llxml/llxml_vc9.vcproj | 280 ++
linden/indra/llxml/llxmlnode.cpp | 4 +-
linden/indra/llxml/llxmlnode.h | 4 +-
linden/indra/llxml/llxmlparser.cpp | 4 +-
linden/indra/llxml/llxmlparser.h | 4 +-
linden/indra/llxml/llxmltree.cpp | 4 +-
linden/indra/llxml/llxmltree.h | 4 +-
linden/indra/lscript/lscript_alloc.h | 4 +-
linden/indra/lscript/lscript_byteconvert.h | 4 +-
linden/indra/lscript/lscript_byteformat.h | 4 +-
.../lscript/lscript_compile/lscript_alloc.cpp | 4 +-
.../lscript/lscript_compile/lscript_bytecode.cpp | 4 +-
.../lscript/lscript_compile/lscript_bytecode.h | 4 +-
.../lscript_compile/lscript_compile_fb.vcproj | 13 +-
.../lscript_compile/lscript_compile_fb_vc8.vcproj | 10 +-
.../lscript_compile/lscript_compile_fb_vc9.vcproj | 132 +
.../lscript_compile/lscript_compile_vc8.vcproj | 2 +-
.../lscript_compile/lscript_compile_vc9.vcproj | 332 ++
.../lscript/lscript_compile/lscript_error.cpp | 4 +-
.../indra/lscript/lscript_compile/lscript_error.h | 4 +-
.../indra/lscript/lscript_compile/lscript_heap.cpp | 4 +-
.../indra/lscript/lscript_compile/lscript_heap.h | 4 +-
.../lscript/lscript_compile/lscript_resource.cpp | 4 +-
.../lscript/lscript_compile/lscript_resource.h | 4 +-
.../lscript/lscript_compile/lscript_scope.cpp | 4 +-
.../indra/lscript/lscript_compile/lscript_scope.h | 4 +-
.../indra/lscript/lscript_compile/lscript_tree.cpp | 4 +-
.../indra/lscript/lscript_compile/lscript_tree.h | 4 +-
.../lscript/lscript_compile/lscript_typecheck.cpp | 4 +-
.../lscript/lscript_compile/lscript_typecheck.h | 4 +-
linden/indra/lscript/lscript_execute.h | 4 +-
.../lscript/lscript_execute/lscript_execute.cpp | 4 +-
.../lscript_execute/lscript_execute_vc9.vcproj | 280 ++
.../lscript_execute/lscript_heapruntime.cpp | 4 +-
.../lscript/lscript_execute/lscript_heapruntime.h | 4 +-
.../lscript/lscript_execute/lscript_readlso.cpp | 4 +-
.../lscript/lscript_execute/lscript_readlso.h | 4 +-
linden/indra/lscript/lscript_export.h | 4 +-
linden/indra/lscript/lscript_http.h | 4 +-
linden/indra/lscript/lscript_library.h | 4 +-
.../lscript/lscript_library/lscript_alloc.cpp | 4 +-
.../lscript/lscript_library/lscript_export.cpp | 4 +-
.../lscript/lscript_library/lscript_library.cpp | 4 +-
.../lscript_library/lscript_library_vc9.vcproj | 272 ++
linden/indra/lscript/lscript_rt_interface.h | 4 +-
linden/indra/mac_crash_logger/llcrashloggermac.cpp | 4 +-
linden/indra/mac_crash_logger/llcrashloggermac.h | 4 +-
linden/indra/mac_crash_logger/mac_crash_logger.cpp | 4 +-
linden/indra/mac_updater/FSCopyObject.h | 4 +-
linden/indra/mac_updater/GenLinkedList.h | 4 +-
linden/indra/mac_updater/MoreFilesX.h | 4 +-
linden/indra/mac_updater/mac_updater.cpp | 25 +-
.../indra/newview/English.lproj/InfoPlist.strings | 4 +-
linden/indra/newview/Info-SecondLife.plist | 2 +-
linden/indra/newview/VertexCache.h | 4 +-
linden/indra/newview/VorbisFramework.h | 4 +-
linden/indra/newview/app_settings/colors_base.ini | 157 -
linden/indra/newview/app_settings/colors_base.xml | 16 +-
linden/indra/newview/audiosettings.h | 4 +-
linden/indra/newview/fakevoicesoundsignal.cpp | 4 +-
linden/indra/newview/fakevoicesoundsignal.h | 4 +-
linden/indra/newview/files.lst | 1 -
linden/indra/newview/fmodwrapper.cpp | 4 +-
linden/indra/newview/gpu_table.txt | 4 +
linden/indra/newview/head.cpp | 4 +-
linden/indra/newview/head.h | 4 +-
linden/indra/newview/linux_tools/client-readme.txt | 32 +-
linden/indra/newview/linux_tools/wrapper.sh | 5 +-
linden/indra/newview/llagent.cpp | 191 +-
linden/indra/newview/llagent.h | 16 +-
linden/indra/newview/llagentdata.cpp | 4 +-
linden/indra/newview/llagentdata.h | 4 +-
linden/indra/newview/llagentpilot.cpp | 4 +-
linden/indra/newview/llagentpilot.h | 4 +-
linden/indra/newview/llanimalcontrols.cpp | 4 +-
linden/indra/newview/llanimalcontrols.h | 4 +-
linden/indra/newview/llappearance.h | 4 +-
linden/indra/newview/llappviewer.cpp | 88 +-
linden/indra/newview/llappviewer.h | 4 +-
linden/indra/newview/llappviewerlinux.cpp | 4 +-
linden/indra/newview/llappviewerlinux.h | 4 +-
linden/indra/newview/llappviewermacosx.cpp | 7 +-
linden/indra/newview/llappviewermacosx.h | 4 +-
linden/indra/newview/llappviewerwin32.cpp | 4 +-
linden/indra/newview/llappviewerwin32.h | 4 +-
linden/indra/newview/llassetuploadresponders.cpp | 7 +-
linden/indra/newview/llassetuploadresponders.h | 4 +-
linden/indra/newview/llaudiosourcevo.cpp | 4 +-
linden/indra/newview/llaudiosourcevo.h | 4 +-
linden/indra/newview/llbbox.cpp | 4 +-
linden/indra/newview/llbbox.h | 4 +-
linden/indra/newview/llbox.cpp | 4 +-
linden/indra/newview/llbox.h | 4 +-
linden/indra/newview/llcallbacklist.cpp | 4 +-
linden/indra/newview/llcallbacklist.h | 4 +-
linden/indra/newview/llcallingcard.cpp | 4 +-
linden/indra/newview/llcallingcard.h | 4 +-
linden/indra/newview/llcameraview.cpp | 4 +-
linden/indra/newview/llcameraview.h | 4 +-
linden/indra/newview/llcape.cpp | 4 +-
linden/indra/newview/llcape.h | 4 +-
linden/indra/newview/llcaphttpsender.cpp | 4 +-
linden/indra/newview/llcaphttpsender.h | 4 +-
linden/indra/newview/llchatbar.cpp | 172 +-
linden/indra/newview/llchatbar.h | 20 +-
linden/indra/newview/llclassifiedinfo.cpp | 4 +-
linden/indra/newview/llclassifiedinfo.h | 4 +-
.../indra/newview/llclassifiedstatsresponder.cpp | 33 +-
linden/indra/newview/llclassifiedstatsresponder.h | 32 +-
linden/indra/newview/llcloud.cpp | 4 +-
linden/indra/newview/llcloud.h | 4 +-
linden/indra/newview/llcolorscheme.cpp | 4 +-
linden/indra/newview/llcolorscheme.h | 4 +-
linden/indra/newview/llcolorswatch.cpp | 4 +-
linden/indra/newview/llcolorswatch.h | 4 +-
linden/indra/newview/llcommandhandler.cpp | 49 +-
linden/indra/newview/llcommandhandler.h | 16 +-
linden/indra/newview/llcompass.cpp | 4 +-
linden/indra/newview/llcompass.h | 4 +-
linden/indra/newview/llcompilequeue.cpp | 16 +-
linden/indra/newview/llcompilequeue.h | 4 +-
linden/indra/newview/llconfirmationmanager.cpp | 4 +-
linden/indra/newview/llconfirmationmanager.h | 4 +-
linden/indra/newview/llconsole.cpp | 4 +-
linden/indra/newview/llconsole.h | 4 +-
linden/indra/newview/llcontainerview.cpp | 4 +-
linden/indra/newview/llcontainerview.h | 4 +-
linden/indra/newview/llcontroldef.cpp | 29 +-
linden/indra/newview/llcubemap.cpp | 4 +-
linden/indra/newview/llcubemap.h | 4 +-
linden/indra/newview/llcurrencyuimanager.cpp | 4 +-
linden/indra/newview/llcurrencyuimanager.h | 4 +-
linden/indra/newview/llcylinder.cpp | 4 +-
linden/indra/newview/llcylinder.h | 4 +-
linden/indra/newview/lldebugmessagebox.cpp | 4 +-
linden/indra/newview/lldebugmessagebox.h | 4 +-
linden/indra/newview/lldebugview.cpp | 4 +-
linden/indra/newview/lldebugview.h | 4 +-
linden/indra/newview/lldirpicker.cpp | 4 +-
linden/indra/newview/lldirpicker.h | 4 +-
linden/indra/newview/lldrawable.cpp | 17 +-
linden/indra/newview/lldrawable.h | 4 +-
linden/indra/newview/lldrawpool.cpp | 4 +-
linden/indra/newview/lldrawpool.h | 4 +-
linden/indra/newview/lldrawpoolalpha.cpp | 4 +-
linden/indra/newview/lldrawpoolalpha.h | 4 +-
linden/indra/newview/lldrawpoolavatar.cpp | 4 +-
linden/indra/newview/lldrawpoolavatar.h | 4 +-
linden/indra/newview/lldrawpoolbump.cpp | 4 +-
linden/indra/newview/lldrawpoolbump.h | 4 +-
linden/indra/newview/lldrawpoolclouds.cpp | 4 +-
linden/indra/newview/lldrawpoolclouds.h | 4 +-
linden/indra/newview/lldrawpoolground.cpp | 4 +-
linden/indra/newview/lldrawpoolground.h | 4 +-
linden/indra/newview/lldrawpoolsimple.cpp | 4 +-
linden/indra/newview/lldrawpoolsimple.h | 4 +-
linden/indra/newview/lldrawpoolsky.cpp | 4 +-
linden/indra/newview/lldrawpoolsky.h | 4 +-
linden/indra/newview/lldrawpoolstars.cpp | 4 +-
linden/indra/newview/lldrawpoolstars.h | 4 +-
linden/indra/newview/lldrawpoolterrain.cpp | 4 +-
linden/indra/newview/lldrawpoolterrain.h | 4 +-
linden/indra/newview/lldrawpooltree.cpp | 4 +-
linden/indra/newview/lldrawpooltree.h | 4 +-
linden/indra/newview/lldrawpoolwater.cpp | 14 +-
linden/indra/newview/lldrawpoolwater.h | 4 +-
linden/indra/newview/lldriverparam.cpp | 4 +-
linden/indra/newview/lldriverparam.h | 4 +-
linden/indra/newview/lldynamictexture.cpp | 4 +-
linden/indra/newview/lldynamictexture.h | 4 +-
linden/indra/newview/llemote.cpp | 4 +-
linden/indra/newview/llemote.h | 4 +-
linden/indra/newview/lleventinfo.cpp | 4 +-
linden/indra/newview/lleventinfo.h | 4 +-
linden/indra/newview/lleventnotifier.cpp | 4 +-
linden/indra/newview/lleventnotifier.h | 4 +-
linden/indra/newview/lleventpoll.cpp | 4 +-
linden/indra/newview/lleventpoll.h | 4 +-
linden/indra/newview/llface.cpp | 4 +-
linden/indra/newview/llface.h | 4 +-
linden/indra/newview/llface.inl | 4 +-
linden/indra/newview/llfasttimerview.cpp | 4 +-
linden/indra/newview/llfasttimerview.h | 4 +-
linden/indra/newview/llfeaturemanager.cpp | 10 +-
linden/indra/newview/llfeaturemanager.h | 4 +-
linden/indra/newview/llfilepicker.cpp | 4 +-
linden/indra/newview/llfilepicker.h | 4 +-
linden/indra/newview/llfirstuse.cpp | 4 +-
linden/indra/newview/llfirstuse.h | 4 +-
linden/indra/newview/llflexibleobject.cpp | 4 +-
linden/indra/newview/llflexibleobject.h | 4 +-
linden/indra/newview/llfloaterabout.cpp | 4 +-
linden/indra/newview/llfloaterabout.h | 4 +-
linden/indra/newview/llfloateractivespeakers.cpp | 563 ++-
linden/indra/newview/llfloateractivespeakers.h | 53 +-
linden/indra/newview/llfloateranimpreview.cpp | 6 +-
linden/indra/newview/llfloateranimpreview.h | 4 +-
linden/indra/newview/llfloaterauction.cpp | 4 +-
linden/indra/newview/llfloaterauction.h | 4 +-
linden/indra/newview/llfloateravatarinfo.cpp | 36 +-
linden/indra/newview/llfloateravatarinfo.h | 8 +-
linden/indra/newview/llfloateravatarpicker.cpp | 21 +-
linden/indra/newview/llfloateravatarpicker.h | 4 +-
linden/indra/newview/llfloateravatartextures.cpp | 4 +-
linden/indra/newview/llfloateravatartextures.h | 4 +-
linden/indra/newview/llfloaterbuildoptions.cpp | 4 +-
linden/indra/newview/llfloaterbuildoptions.h | 4 +-
linden/indra/newview/llfloaterbump.cpp | 4 +-
linden/indra/newview/llfloaterbump.h | 4 +-
linden/indra/newview/llfloaterbuy.cpp | 4 +-
linden/indra/newview/llfloaterbuy.h | 4 +-
linden/indra/newview/llfloaterbuycontents.cpp | 4 +-
linden/indra/newview/llfloaterbuycontents.h | 4 +-
linden/indra/newview/llfloaterbuycurrency.cpp | 4 +-
linden/indra/newview/llfloaterbuycurrency.h | 4 +-
linden/indra/newview/llfloaterbuyland.cpp | 4 +-
linden/indra/newview/llfloaterbuyland.h | 4 +-
linden/indra/newview/llfloaterchat.cpp | 34 +-
linden/indra/newview/llfloaterchat.h | 5 +-
linden/indra/newview/llfloaterchatterbox.cpp | 107 +-
linden/indra/newview/llfloaterchatterbox.h | 8 +-
linden/indra/newview/llfloaterclassified.cpp | 55 +-
linden/indra/newview/llfloaterclassified.h | 34 +-
linden/indra/newview/llfloaterclothing.cpp | 14 +-
linden/indra/newview/llfloaterclothing.h | 4 +-
linden/indra/newview/llfloatercolorpicker.cpp | 4 +-
linden/indra/newview/llfloatercolorpicker.h | 4 +-
linden/indra/newview/llfloatercustomize.cpp | 4 +-
linden/indra/newview/llfloatercustomize.h | 4 +-
linden/indra/newview/llfloaterdirectory.cpp | 10 +-
linden/indra/newview/llfloaterdirectory.h | 4 +-
linden/indra/newview/llfloatereditui.cpp | 4 +-
linden/indra/newview/llfloatereditui.h | 4 +-
linden/indra/newview/llfloaterevent.cpp | 35 +-
linden/indra/newview/llfloaterevent.h | 35 +-
linden/indra/newview/llfloaterfriends.cpp | 447 +-
linden/indra/newview/llfloaterfriends.h | 28 +-
linden/indra/newview/llfloatergesture.cpp | 4 +-
linden/indra/newview/llfloatergesture.h | 4 +-
linden/indra/newview/llfloatergodtools.cpp | 4 +-
linden/indra/newview/llfloatergodtools.h | 4 +-
linden/indra/newview/llfloatergroupinfo.cpp | 7 +-
linden/indra/newview/llfloatergroupinfo.h | 4 +-
linden/indra/newview/llfloatergroupinvite.cpp | 4 +-
linden/indra/newview/llfloatergroupinvite.h | 4 +-
linden/indra/newview/llfloatergroups.cpp | 4 +-
linden/indra/newview/llfloatergroups.h | 4 +-
linden/indra/newview/llfloaterhtml.cpp | 66 +-
linden/indra/newview/llfloaterhtml.h | 22 +-
linden/indra/newview/llfloaterhtmlhelp.cpp | 328 --
linden/indra/newview/llfloaterhtmlhelp.h | 53 -
linden/indra/newview/llfloaterimagepreview.cpp | 4 +-
linden/indra/newview/llfloaterimagepreview.h | 4 +-
linden/indra/newview/llfloaterimport.cpp | 10 +-
linden/indra/newview/llfloaterimport.h | 4 +-
linden/indra/newview/llfloaterinspect.cpp | 5 +-
linden/indra/newview/llfloaterinspect.h | 4 +-
linden/indra/newview/llfloaterlagmeter.cpp | 4 +-
linden/indra/newview/llfloaterlagmeter.h | 4 +-
linden/indra/newview/llfloaterland.cpp | 196 +-
linden/indra/newview/llfloaterland.h | 19 +-
linden/indra/newview/llfloaterlandholdings.cpp | 6 +-
linden/indra/newview/llfloaterlandholdings.h | 4 +-
linden/indra/newview/llfloaterlandmark.cpp | 29 +-
linden/indra/newview/llfloaterlandmark.h | 33 +-
linden/indra/newview/llfloatermap.cpp | 4 +-
linden/indra/newview/llfloatermap.h | 4 +-
linden/indra/newview/llfloatermute.cpp | 177 +-
linden/indra/newview/llfloatermute.h | 16 +-
linden/indra/newview/llfloaternamedesc.cpp | 19 +-
linden/indra/newview/llfloaternamedesc.h | 4 +-
linden/indra/newview/llfloaternewim.cpp | 6 +-
linden/indra/newview/llfloaternewim.h | 4 +-
linden/indra/newview/llfloateropenobject.cpp | 4 +-
linden/indra/newview/llfloateropenobject.h | 4 +-
linden/indra/newview/llfloaterparcel.cpp | 29 +-
linden/indra/newview/llfloaterparcel.h | 37 +-
linden/indra/newview/llfloaterpermissionsmgr.cpp | 4 +-
linden/indra/newview/llfloaterpermissionsmgr.h | 4 +-
linden/indra/newview/llfloaterpostcard.cpp | 9 +-
linden/indra/newview/llfloaterpostcard.h | 6 +-
linden/indra/newview/llfloaterpreference.cpp | 13 +-
linden/indra/newview/llfloaterpreference.h | 4 +-
linden/indra/newview/llfloaterproperties.cpp | 4 +-
linden/indra/newview/llfloaterproperties.h | 4 +-
linden/indra/newview/llfloaterregioninfo.cpp | 95 +-
linden/indra/newview/llfloaterregioninfo.h | 22 +-
linden/indra/newview/llfloaterreleasemsg.cpp | 34 +-
linden/indra/newview/llfloaterreleasemsg.h | 7 +-
linden/indra/newview/llfloaterreporter.cpp | 14 +-
linden/indra/newview/llfloaterreporter.h | 4 +-
linden/indra/newview/llfloatersaveavatar.cpp | 4 +-
linden/indra/newview/llfloatersaveavatar.h | 4 +-
linden/indra/newview/llfloaterscriptdebug.cpp | 8 +-
linden/indra/newview/llfloaterscriptdebug.h | 4 +-
linden/indra/newview/llfloatersellland.cpp | 13 +-
linden/indra/newview/llfloatersellland.h | 4 +-
linden/indra/newview/llfloatersnapshot.cpp | 6 +-
linden/indra/newview/llfloatersnapshot.h | 4 +-
linden/indra/newview/llfloatertelehub.cpp | 6 +-
linden/indra/newview/llfloatertelehub.h | 4 +-
linden/indra/newview/llfloatertest.cpp | 8 +-
linden/indra/newview/llfloatertest.h | 4 +-
linden/indra/newview/llfloatertools.cpp | 7 +-
linden/indra/newview/llfloatertools.h | 4 +-
linden/indra/newview/llfloatertopobjects.cpp | 12 +-
linden/indra/newview/llfloatertopobjects.h | 4 +-
linden/indra/newview/llfloatertos.cpp | 4 +-
linden/indra/newview/llfloatertos.h | 4 +-
linden/indra/newview/llfloaterurldisplay.cpp | 43 +-
linden/indra/newview/llfloaterurldisplay.h | 4 +-
linden/indra/newview/llfloatervoicewizard.cpp | 45 +-
linden/indra/newview/llfloatervoicewizard.h | 7 +-
linden/indra/newview/llfloaterworldmap.cpp | 106 +-
linden/indra/newview/llfloaterworldmap.h | 26 +-
linden/indra/newview/llfolderview.cpp | 32 +-
linden/indra/newview/llfolderview.h | 6 +-
linden/indra/newview/llfollowcam.cpp | 4 +-
linden/indra/newview/llfollowcam.h | 4 +-
linden/indra/newview/llframestats.cpp | 4 +-
linden/indra/newview/llframestats.h | 4 +-
linden/indra/newview/llframestatview.cpp | 4 +-
linden/indra/newview/llframestatview.h | 4 +-
linden/indra/newview/llgenepool.cpp | 4 +-
linden/indra/newview/llgenepool.h | 4 +-
linden/indra/newview/llgesturemgr.cpp | 14 +-
linden/indra/newview/llgesturemgr.h | 4 +-
linden/indra/newview/llgivemoney.cpp | 4 +-
linden/indra/newview/llgivemoney.h | 4 +-
linden/indra/newview/llglsandbox.cpp | 4 +-
linden/indra/newview/llglslshader.cpp | 4 +-
linden/indra/newview/llglslshader.h | 4 +-
linden/indra/newview/llgroupmgr.cpp | 10 +-
linden/indra/newview/llgroupmgr.h | 4 +-
linden/indra/newview/llgroupnotify.cpp | 6 +-
linden/indra/newview/llgroupnotify.h | 4 +-
linden/indra/newview/llhippo.cpp | 4 +-
linden/indra/newview/llhippo.h | 4 +-
linden/indra/newview/llhoverview.cpp | 4 +-
linden/indra/newview/llhoverview.h | 4 +-
linden/indra/newview/llhudconnector.cpp | 4 +-
linden/indra/newview/llhudconnector.h | 4 +-
linden/indra/newview/llhudeffect.cpp | 4 +-
linden/indra/newview/llhudeffect.h | 4 +-
linden/indra/newview/llhudeffectbeam.cpp | 4 +-
linden/indra/newview/llhudeffectbeam.h | 4 +-
linden/indra/newview/llhudeffectlookat.cpp | 4 +-
linden/indra/newview/llhudeffectlookat.h | 4 +-
linden/indra/newview/llhudeffectpointat.cpp | 4 +-
linden/indra/newview/llhudeffectpointat.h | 4 +-
linden/indra/newview/llhudeffecttrail.cpp | 4 +-
linden/indra/newview/llhudeffecttrail.h | 4 +-
linden/indra/newview/llhudicon.cpp | 4 +-
linden/indra/newview/llhudicon.h | 4 +-
linden/indra/newview/llhudmanager.cpp | 4 +-
linden/indra/newview/llhudmanager.h | 4 +-
linden/indra/newview/llhudobject.cpp | 4 +-
linden/indra/newview/llhudobject.h | 4 +-
linden/indra/newview/llhudrender.cpp | 4 +-
linden/indra/newview/llhudrender.h | 4 +-
linden/indra/newview/llhudtext.cpp | 4 +-
linden/indra/newview/llhudtext.h | 4 +-
linden/indra/newview/llhudview.cpp | 8 +-
linden/indra/newview/llhudview.h | 10 +-
linden/indra/newview/llimpanel.cpp | 530 ++-
linden/indra/newview/llimpanel.h | 58 +-
linden/indra/newview/llimview.cpp | 503 ++-
linden/indra/newview/llimview.h | 36 +-
linden/indra/newview/llinventoryactions.cpp | 15 +-
linden/indra/newview/llinventorybridge.cpp | 67 +-
linden/indra/newview/llinventorybridge.h | 4 +-
linden/indra/newview/llinventoryclipboard.cpp | 4 +-
linden/indra/newview/llinventoryclipboard.h | 4 +-
linden/indra/newview/llinventorymodel.cpp | 6 +-
linden/indra/newview/llinventorymodel.h | 4 +-
linden/indra/newview/llinventoryview.cpp | 19 +-
linden/indra/newview/llinventoryview.h | 4 +-
linden/indra/newview/lljoystickbutton.cpp | 16 +-
linden/indra/newview/lljoystickbutton.h | 4 +-
linden/indra/newview/lllandmarklist.cpp | 4 +-
linden/indra/newview/lllandmarklist.h | 4 +-
linden/indra/newview/lllcd.cpp | 4 +-
linden/indra/newview/lllcd.h | 4 +-
linden/indra/newview/lllightconstants.h | 4 +-
linden/indra/newview/lllocalanimationobject.cpp | 4 +-
linden/indra/newview/lllocalanimationobject.h | 4 +-
linden/indra/newview/lllogchat.cpp | 4 +-
linden/indra/newview/lllogchat.h | 4 +-
linden/indra/newview/llmanip.cpp | 4 +-
linden/indra/newview/llmanip.h | 4 +-
linden/indra/newview/llmaniprotate.cpp | 4 +-
linden/indra/newview/llmaniprotate.h | 4 +-
linden/indra/newview/llmanipscale.cpp | 4 +-
linden/indra/newview/llmanipscale.h | 4 +-
linden/indra/newview/llmaniptranslate.cpp | 19 +-
linden/indra/newview/llmaniptranslate.h | 4 +-
linden/indra/newview/llmapresponders.cpp | 4 +-
linden/indra/newview/llmapresponders.h | 4 +-
linden/indra/newview/llmediaremotectrl.cpp | 112 +-
linden/indra/newview/llmediaremotectrl.h | 23 +-
linden/indra/newview/llmemoryview.cpp | 4 +-
linden/indra/newview/llmemoryview.h | 4 +-
linden/indra/newview/llmenucommands.cpp | 4 +-
linden/indra/newview/llmenucommands.h | 4 +-
linden/indra/newview/llmorphview.cpp | 4 +-
linden/indra/newview/llmorphview.h | 4 +-
linden/indra/newview/llmoveview.cpp | 4 +-
linden/indra/newview/llmoveview.h | 4 +-
linden/indra/newview/llmutelist.cpp | 75 +-
linden/indra/newview/llmutelist.h | 10 +-
linden/indra/newview/llnamebox.cpp | 4 +-
linden/indra/newview/llnamebox.h | 4 +-
linden/indra/newview/llnameeditor.cpp | 6 +-
linden/indra/newview/llnameeditor.h | 6 +-
linden/indra/newview/llnamelistctrl.cpp | 30 +-
linden/indra/newview/llnamelistctrl.h | 4 +-
linden/indra/newview/llnetmap.cpp | 4 +-
linden/indra/newview/llnetmap.h | 4 +-
linden/indra/newview/llnotify.cpp | 33 +-
linden/indra/newview/llnotify.h | 4 +-
linden/indra/newview/lloverlaybar.cpp | 506 +--
linden/indra/newview/lloverlaybar.h | 25 +-
linden/indra/newview/llpanelLCD.cpp | 4 +-
linden/indra/newview/llpanelLCD.h | 4 +-
linden/indra/newview/llpanelaudioprefs.cpp | 8 +-
linden/indra/newview/llpanelaudioprefs.h | 4 +-
linden/indra/newview/llpanelaudiovolume.cpp | 85 +-
linden/indra/newview/llpanelaudiovolume.h | 18 +-
linden/indra/newview/llpanelavatar.cpp | 27 +-
linden/indra/newview/llpanelavatar.h | 5 +-
linden/indra/newview/llpanelclassified.cpp | 40 +-
linden/indra/newview/llpanelclassified.h | 6 +-
linden/indra/newview/llpanelcontents.cpp | 4 +-
linden/indra/newview/llpanelcontents.h | 4 +-
linden/indra/newview/llpaneldebug.cpp | 4 +-
linden/indra/newview/llpaneldebug.h | 4 +-
linden/indra/newview/llpaneldirbrowser.cpp | 16 +-
linden/indra/newview/llpaneldirbrowser.h | 4 +-
linden/indra/newview/llpaneldirclassified.cpp | 4 +-
linden/indra/newview/llpaneldirclassified.h | 4 +-
linden/indra/newview/llpaneldirevents.cpp | 4 +-
linden/indra/newview/llpaneldirevents.h | 4 +-
linden/indra/newview/llpaneldirfind.cpp | 7 +-
linden/indra/newview/llpaneldirfind.h | 4 +-
linden/indra/newview/llpaneldirgroups.cpp | 4 +-
linden/indra/newview/llpaneldirgroups.h | 4 +-
linden/indra/newview/llpaneldirland.cpp | 4 +-
linden/indra/newview/llpaneldirland.h | 4 +-
linden/indra/newview/llpaneldirpeople.cpp | 4 +-
linden/indra/newview/llpaneldirpeople.h | 4 +-
linden/indra/newview/llpaneldirplaces.cpp | 4 +-
linden/indra/newview/llpaneldirplaces.h | 4 +-
linden/indra/newview/llpaneldirpopular.cpp | 4 +-
linden/indra/newview/llpaneldirpopular.h | 4 +-
linden/indra/newview/llpaneldisplay.cpp | 4 +-
linden/indra/newview/llpaneldisplay.h | 4 +-
linden/indra/newview/llpanelevent.cpp | 4 +-
linden/indra/newview/llpanelevent.h | 4 +-
linden/indra/newview/llpanelface.cpp | 6 +-
linden/indra/newview/llpanelface.h | 4 +-
linden/indra/newview/llpanelgeneral.cpp | 6 +-
linden/indra/newview/llpanelgeneral.h | 4 +-
linden/indra/newview/llpanelgroup.cpp | 4 +-
linden/indra/newview/llpanelgroup.h | 4 +-
linden/indra/newview/llpanelgroupgeneral.cpp | 16 +-
linden/indra/newview/llpanelgroupgeneral.h | 5 +-
linden/indra/newview/llpanelgroupinvite.cpp | 4 +-
linden/indra/newview/llpanelgroupinvite.h | 4 +-
linden/indra/newview/llpanelgrouplandmoney.cpp | 8 +-
linden/indra/newview/llpanelgrouplandmoney.h | 4 +-
linden/indra/newview/llpanelgroupnotices.cpp | 6 +-
linden/indra/newview/llpanelgroupnotices.h | 4 +-
linden/indra/newview/llpanelgrouproles.cpp | 25 +-
linden/indra/newview/llpanelgrouproles.h | 5 +-
linden/indra/newview/llpanelgroupvoting.cpp | 226 +-
linden/indra/newview/llpanelgroupvoting.h | 12 +-
linden/indra/newview/llpanelinput.cpp | 4 +-
linden/indra/newview/llpanelinput.h | 4 +-
linden/indra/newview/llpanelinventory.cpp | 4 +-
linden/indra/newview/llpanelinventory.h | 4 +-
linden/indra/newview/llpanelland.cpp | 4 +-
linden/indra/newview/llpanelland.h | 4 +-
linden/indra/newview/llpanellandobjects.cpp | 4 +-
linden/indra/newview/llpanellandobjects.h | 4 +-
linden/indra/newview/llpanellandoptions.cpp | 4 +-
linden/indra/newview/llpanellandoptions.h | 4 +-
linden/indra/newview/llpanellogin.cpp | 481 ++-
linden/indra/newview/llpanellogin.h | 32 +-
linden/indra/newview/llpanelmorph.cpp | 4 +-
linden/indra/newview/llpanelmorph.h | 4 +-
linden/indra/newview/llpanelmsgs.cpp | 4 +-
linden/indra/newview/llpanelmsgs.h | 4 +-
linden/indra/newview/llpanelnetwork.cpp | 4 +-
linden/indra/newview/llpanelnetwork.h | 4 +-
linden/indra/newview/llpanelobject.cpp | 12 +-
linden/indra/newview/llpanelobject.h | 4 +-
linden/indra/newview/llpanelpermissions.cpp | 4 +-
linden/indra/newview/llpanelpermissions.h | 4 +-
linden/indra/newview/llpanelpick.cpp | 4 +-
linden/indra/newview/llpanelpick.h | 4 +-
linden/indra/newview/llpanelplace.cpp | 4 +-
linden/indra/newview/llpanelplace.h | 4 +-
linden/indra/newview/llpanelvolume.cpp | 6 +-
linden/indra/newview/llpanelvolume.h | 4 +-
linden/indra/newview/llpanelweb.cpp | 4 +-
linden/indra/newview/llpanelweb.h | 4 +-
linden/indra/newview/llpatchvertexarray.cpp | 4 +-
linden/indra/newview/llpatchvertexarray.h | 4 +-
linden/indra/newview/llpolymesh.cpp | 20 +-
linden/indra/newview/llpolymesh.h | 13 +-
linden/indra/newview/llpolymorph.cpp | 4 +-
linden/indra/newview/llpolymorph.h | 4 +-
linden/indra/newview/llprefschat.cpp | 4 +-
linden/indra/newview/llprefschat.h | 4 +-
linden/indra/newview/llprefsim.cpp | 4 +-
linden/indra/newview/llprefsim.h | 4 +-
linden/indra/newview/llprefsvoice.cpp | 16 +-
linden/indra/newview/llprefsvoice.h | 4 +-
linden/indra/newview/llpreview.cpp | 43 +-
linden/indra/newview/llpreview.h | 17 +-
linden/indra/newview/llpreviewanim.cpp | 4 +-
linden/indra/newview/llpreviewanim.h | 7 +-
linden/indra/newview/llpreviewgesture.cpp | 15 +-
linden/indra/newview/llpreviewgesture.h | 6 +-
linden/indra/newview/llpreviewlandmark.cpp | 7 +-
linden/indra/newview/llpreviewlandmark.h | 6 +-
linden/indra/newview/llpreviewnotecard.cpp | 10 +-
linden/indra/newview/llpreviewnotecard.h | 9 +-
linden/indra/newview/llpreviewscript.cpp | 18 +-
linden/indra/newview/llpreviewscript.h | 8 +-
linden/indra/newview/llpreviewsound.cpp | 6 +-
linden/indra/newview/llpreviewsound.h | 7 +-
linden/indra/newview/llpreviewtexture.cpp | 6 +-
linden/indra/newview/llpreviewtexture.h | 6 +-
linden/indra/newview/llprogressview.cpp | 4 +-
linden/indra/newview/llprogressview.h | 4 +-
linden/indra/newview/llregionposition.cpp | 4 +-
linden/indra/newview/llregionposition.h | 4 +-
linden/indra/newview/llremoteparcelrequest.cpp | 34 +-
linden/indra/newview/llremoteparcelrequest.h | 32 +-
linden/indra/newview/llresourcedata.h | 4 +-
linden/indra/newview/llroam.cpp | 4 +-
linden/indra/newview/llroam.h | 4 +-
linden/indra/newview/llsavedsettingsglue.cpp | 4 +-
linden/indra/newview/llsavedsettingsglue.h | 4 +-
linden/indra/newview/llselectmgr.cpp | 22 +-
linden/indra/newview/llselectmgr.h | 4 +-
linden/indra/newview/llsky.cpp | 4 +-
linden/indra/newview/llsky.h | 4 +-
linden/indra/newview/llspatialpartition.cpp | 4 +-
linden/indra/newview/llspatialpartition.h | 4 +-
linden/indra/newview/llsphere.cpp | 4 +-
linden/indra/newview/llsphere.h | 4 +-
linden/indra/newview/llsprite.cpp | 4 +-
linden/indra/newview/llsprite.h | 4 +-
linden/indra/newview/llsrv.cpp | 4 +-
linden/indra/newview/llsrv.h | 4 +-
linden/indra/newview/llstartup.cpp | 232 +-
linden/indra/newview/llstartup.h | 4 +-
linden/indra/newview/llstatbar.cpp | 4 +-
linden/indra/newview/llstatbar.h | 4 +-
linden/indra/newview/llstatgraph.cpp | 4 +-
linden/indra/newview/llstatgraph.h | 4 +-
linden/indra/newview/llstatusbar.cpp | 94 +-
linden/indra/newview/llstatusbar.h | 4 +-
linden/indra/newview/llstatview.cpp | 4 +-
linden/indra/newview/llstatview.h | 4 +-
linden/indra/newview/llsurface.cpp | 4 +-
linden/indra/newview/llsurface.h | 4 +-
linden/indra/newview/llsurfacepatch.cpp | 4 +-
linden/indra/newview/llsurfacepatch.h | 4 +-
linden/indra/newview/lltable.h | 4 +-
linden/indra/newview/lltexlayer.cpp | 4 +-
linden/indra/newview/lltexlayer.h | 4 +-
linden/indra/newview/lltexturecache.cpp | 4 +-
linden/indra/newview/lltexturecache.h | 4 +-
linden/indra/newview/lltexturectrl.cpp | 4 +-
linden/indra/newview/lltexturectrl.h | 4 +-
linden/indra/newview/lltexturefetch.cpp | 4 +-
linden/indra/newview/lltexturefetch.h | 4 +-
linden/indra/newview/lltextureview.cpp | 5 +-
linden/indra/newview/lltextureview.h | 4 +-
linden/indra/newview/lltool.cpp | 4 +-
linden/indra/newview/lltool.h | 4 +-
linden/indra/newview/lltoolbar.cpp | 186 +-
linden/indra/newview/lltoolbar.h | 13 +-
linden/indra/newview/lltoolbrush.cpp | 4 +-
linden/indra/newview/lltoolbrush.h | 4 +-
linden/indra/newview/lltoolcomp.cpp | 4 +-
linden/indra/newview/lltoolcomp.h | 4 +-
linden/indra/newview/lltooldraganddrop.cpp | 28 +-
linden/indra/newview/lltooldraganddrop.h | 4 +-
linden/indra/newview/lltoolface.cpp | 4 +-
linden/indra/newview/lltoolface.h | 4 +-
linden/indra/newview/lltoolfocus.cpp | 4 +-
linden/indra/newview/lltoolfocus.h | 4 +-
linden/indra/newview/lltoolgrab.cpp | 4 +-
linden/indra/newview/lltoolgrab.h | 4 +-
linden/indra/newview/lltoolgun.cpp | 4 +-
linden/indra/newview/lltoolgun.h | 4 +-
linden/indra/newview/lltoolindividual.cpp | 4 +-
linden/indra/newview/lltoolindividual.h | 4 +-
linden/indra/newview/lltoolmgr.cpp | 4 +-
linden/indra/newview/lltoolmgr.h | 4 +-
linden/indra/newview/lltoolmorph.cpp | 4 +-
linden/indra/newview/lltoolmorph.h | 4 +-
linden/indra/newview/lltoolobjpicker.cpp | 4 +-
linden/indra/newview/lltoolobjpicker.h | 4 +-
linden/indra/newview/lltoolpie.cpp | 4 +-
linden/indra/newview/lltoolpie.h | 4 +-
linden/indra/newview/lltoolpipette.cpp | 4 +-
linden/indra/newview/lltoolpipette.h | 4 +-
linden/indra/newview/lltoolplacer.cpp | 6 +-
linden/indra/newview/lltoolplacer.h | 4 +-
linden/indra/newview/lltoolselect.cpp | 4 +-
linden/indra/newview/lltoolselect.h | 4 +-
linden/indra/newview/lltoolselectland.cpp | 4 +-
linden/indra/newview/lltoolselectland.h | 4 +-
linden/indra/newview/lltoolselectrect.cpp | 4 +-
linden/indra/newview/lltoolselectrect.h | 4 +-
linden/indra/newview/lltoolview.cpp | 4 +-
linden/indra/newview/lltoolview.h | 4 +-
linden/indra/newview/lltracker.cpp | 8 +-
linden/indra/newview/lltracker.h | 7 +-
linden/indra/newview/lluiconstants.h | 4 +-
linden/indra/newview/lluploaddialog.cpp | 4 +-
linden/indra/newview/lluploaddialog.h | 4 +-
linden/indra/newview/llurl.cpp | 4 +-
linden/indra/newview/llurl.h | 4 +-
linden/indra/newview/llurldispatcher.cpp | 68 +-
linden/indra/newview/llurldispatcher.h | 13 +-
linden/indra/newview/llurlsimstring.cpp | 4 +-
linden/indra/newview/llurlsimstring.h | 4 +-
linden/indra/newview/llurlwhitelist.cpp | 4 +-
linden/indra/newview/llurlwhitelist.h | 4 +-
linden/indra/newview/lluserauth.cpp | 92 +-
linden/indra/newview/lluserauth.h | 22 +-
linden/indra/newview/llvectorperfoptions.cpp | 30 +-
linden/indra/newview/llvectorperfoptions.h | 28 +-
linden/indra/newview/llvelocitybar.cpp | 4 +-
linden/indra/newview/llvelocitybar.h | 4 +-
linden/indra/newview/llviewchildren.cpp | 4 +-
linden/indra/newview/llviewchildren.h | 4 +-
linden/indra/newview/llviewerassetstorage.cpp | 4 +-
linden/indra/newview/llviewerassetstorage.h | 4 +-
linden/indra/newview/llvieweraudio.cpp | 44 +-
linden/indra/newview/llvieweraudio.h | 28 +-
linden/indra/newview/llviewerbuild.h | 4 +-
linden/indra/newview/llviewercamera.cpp | 8 +-
linden/indra/newview/llviewercamera.h | 4 +-
linden/indra/newview/llviewercontrol.cpp | 4 +-
linden/indra/newview/llviewercontrol.h | 4 +-
linden/indra/newview/llviewerdisplay.cpp | 4 +-
linden/indra/newview/llviewerdisplay.h | 4 +-
linden/indra/newview/llviewergenericmessage.cpp | 4 +-
linden/indra/newview/llviewergenericmessage.h | 4 +-
linden/indra/newview/llviewergesture.cpp | 4 +-
linden/indra/newview/llviewergesture.h | 4 +-
linden/indra/newview/llviewerimage.cpp | 4 +-
linden/indra/newview/llviewerimage.h | 4 +-
linden/indra/newview/llviewerimagelist.cpp | 902 ++--
linden/indra/newview/llviewerimagelist.h | 13 +-
linden/indra/newview/llviewerinventory.cpp | 35 +-
linden/indra/newview/llviewerinventory.h | 10 +-
linden/indra/newview/llviewerjoint.cpp | 4 +-
linden/indra/newview/llviewerjoint.h | 4 +-
linden/indra/newview/llviewerjointattachment.cpp | 4 +-
linden/indra/newview/llviewerjointattachment.h | 4 +-
linden/indra/newview/llviewerjointmesh.cpp | 4 +-
linden/indra/newview/llviewerjointmesh.h | 4 +-
linden/indra/newview/llviewerjointmesh_sse.cpp | 4 +-
linden/indra/newview/llviewerjointmesh_sse2.cpp | 4 +-
linden/indra/newview/llviewerjointmesh_vec.cpp | 4 +-
linden/indra/newview/llviewerjointshape.cpp | 4 +-
linden/indra/newview/llviewerjointshape.h | 4 +-
linden/indra/newview/llviewerjoystick.cpp | 4 +-
linden/indra/newview/llviewerjoystick.h | 4 +-
linden/indra/newview/llviewerkeyboard.cpp | 4 +-
linden/indra/newview/llviewerkeyboard.h | 4 +-
linden/indra/newview/llviewerlayer.cpp | 4 +-
linden/indra/newview/llviewerlayer.h | 4 +-
linden/indra/newview/llviewermenu.cpp | 59 +-
linden/indra/newview/llviewermenu.h | 4 +-
linden/indra/newview/llviewermenufile.cpp | 14 +-
linden/indra/newview/llviewermenufile.h | 4 +-
linden/indra/newview/llviewermessage.cpp | 125 +-
linden/indra/newview/llviewermessage.h | 6 +-
linden/indra/newview/llviewernetwork.cpp | 72 +-
linden/indra/newview/llviewernetwork.h | 21 +-
linden/indra/newview/llviewerobject.cpp | 26 +-
linden/indra/newview/llviewerobject.h | 5 +-
linden/indra/newview/llviewerobjectlist.cpp | 4 +-
linden/indra/newview/llviewerobjectlist.h | 4 +-
linden/indra/newview/llviewerparcelmgr.cpp | 62 +-
linden/indra/newview/llviewerparcelmgr.h | 6 +-
linden/indra/newview/llviewerparceloverlay.cpp | 4 +-
linden/indra/newview/llviewerparceloverlay.h | 4 +-
linden/indra/newview/llviewerpartsim.cpp | 4 +-
linden/indra/newview/llviewerpartsim.h | 4 +-
linden/indra/newview/llviewerpartsource.cpp | 4 +-
linden/indra/newview/llviewerpartsource.h | 4 +-
.../indra/newview/llviewerprecompiledheaders.cpp | 4 +-
linden/indra/newview/llviewerprecompiledheaders.h | 5 +-
linden/indra/newview/llviewerregion.cpp | 20 +-
linden/indra/newview/llviewerregion.h | 6 +-
linden/indra/newview/llviewerstats.cpp | 16 +-
linden/indra/newview/llviewerstats.h | 6 +-
linden/indra/newview/llviewertexteditor.cpp | 96 +-
linden/indra/newview/llviewertexteditor.h | 4 +-
linden/indra/newview/llviewertextureanim.cpp | 4 +-
linden/indra/newview/llviewertextureanim.h | 4 +-
linden/indra/newview/llviewerthrottle.cpp | 4 +-
linden/indra/newview/llviewerthrottle.h | 4 +-
linden/indra/newview/llvieweruictrlfactory.cpp | 4 +-
linden/indra/newview/llvieweruictrlfactory.h | 4 +-
linden/indra/newview/llviewervisualparam.cpp | 4 +-
linden/indra/newview/llviewervisualparam.h | 4 +-
linden/indra/newview/llviewerwindow.cpp | 271 +-
linden/indra/newview/llviewerwindow.h | 15 +-
linden/indra/newview/llvlcomposition.cpp | 4 +-
linden/indra/newview/llvlcomposition.h | 4 +-
linden/indra/newview/llvlmanager.cpp | 4 +-
linden/indra/newview/llvlmanager.h | 4 +-
linden/indra/newview/llvoavatar.cpp | 58 +-
linden/indra/newview/llvoavatar.h | 4 +-
linden/indra/newview/llvocache.cpp | 4 +-
linden/indra/newview/llvocache.h | 4 +-
linden/indra/newview/llvoclouds.cpp | 4 +-
linden/indra/newview/llvoclouds.h | 4 +-
linden/indra/newview/llvograss.cpp | 4 +-
linden/indra/newview/llvograss.h | 4 +-
linden/indra/newview/llvoground.cpp | 4 +-
linden/indra/newview/llvoground.h | 4 +-
linden/indra/newview/llvoiceclient.cpp | 202 +-
linden/indra/newview/llvoiceclient.h | 14 +-
linden/indra/newview/llvoiceremotectrl.cpp | 146 +-
linden/indra/newview/llvoiceremotectrl.h | 8 +-
linden/indra/newview/llvoicevisualizer.cpp | 6 +-
linden/indra/newview/llvoicevisualizer.h | 4 +-
linden/indra/newview/llvoinventorylistener.cpp | 4 +-
linden/indra/newview/llvoinventorylistener.h | 4 +-
linden/indra/newview/llvopartgroup.cpp | 4 +-
linden/indra/newview/llvopartgroup.h | 4 +-
linden/indra/newview/llvosky.cpp | 4 +-
linden/indra/newview/llvosky.h | 4 +-
linden/indra/newview/llvostars.cpp | 4 +-
linden/indra/newview/llvostars.h | 4 +-
linden/indra/newview/llvosurfacepatch.cpp | 4 +-
linden/indra/newview/llvosurfacepatch.h | 4 +-
linden/indra/newview/llvotextbubble.cpp | 4 +-
linden/indra/newview/llvotextbubble.h | 4 +-
linden/indra/newview/llvotree.cpp | 4 +-
linden/indra/newview/llvotree.h | 4 +-
linden/indra/newview/llvotreenew.h | 4 +-
linden/indra/newview/llvovolume.cpp | 4 +-
linden/indra/newview/llvovolume.h | 4 +-
linden/indra/newview/llvowater.cpp | 4 +-
linden/indra/newview/llvowater.h | 4 +-
linden/indra/newview/llwearable.cpp | 4 +-
linden/indra/newview/llwearable.h | 4 +-
linden/indra/newview/llwearablelist.cpp | 4 +-
linden/indra/newview/llwearablelist.h | 4 +-
linden/indra/newview/llweb.cpp | 4 +-
linden/indra/newview/llweb.h | 4 +-
linden/indra/newview/llwebbrowserctrl.cpp | 40 +-
linden/indra/newview/llwebbrowserctrl.h | 18 +-
linden/indra/newview/llwind.cpp | 4 +-
linden/indra/newview/llwind.h | 4 +-
linden/indra/newview/llwindebug.cpp | 4 +-
linden/indra/newview/llwindebug.h | 4 +-
linden/indra/newview/llworld.cpp | 9 +-
linden/indra/newview/llworld.h | 4 +-
linden/indra/newview/llworldmap.cpp | 4 +-
linden/indra/newview/llworldmap.h | 4 +-
linden/indra/newview/llworldmapview.cpp | 21 +-
linden/indra/newview/llworldmapview.h | 11 +-
linden/indra/newview/llxmlrpctransaction.cpp | 4 +-
linden/indra/newview/llxmlrpctransaction.h | 4 +-
linden/indra/newview/macmain.h | 4 +-
linden/indra/newview/macutil_Prefix.h | 4 +-
.../newview/macview.xcodeproj/project.pbxproj | 39 +-
linden/indra/newview/macview_Prefix.h | 6 +-
linden/indra/newview/moviemaker.cpp | 4 +-
linden/indra/newview/moviemaker.h | 4 +-
linden/indra/newview/newview.vcproj | 44 +-
linden/indra/newview/newview_vc8.vcproj | 174 +-
linden/indra/newview/newview_vc9.vcproj | 4400 ++++++++++++++++++++
linden/indra/newview/noise.cpp | 4 +-
linden/indra/newview/noise.h | 4 +-
linden/indra/newview/pipeline.cpp | 9 +-
linden/indra/newview/pipeline.h | 4 +-
linden/indra/newview/randgauss.h | 4 +-
linden/indra/newview/releasenotes.txt | 211 +-
linden/indra/newview/res/newViewRes.rc | 8 +-
linden/indra/newview/res/resource.h | 30 +
linden/indra/newview/skins/textures/textures.xml | 51 +-
linden/indra/newview/skins/xui/de/alerts.xml | 112 +-
.../newview/skins/xui/de/floater_about_land.xml | 10 +-
.../skins/xui/de/floater_active_speakers.xml | 5 +-
.../newview/skins/xui/de/floater_chat_history.xml | 6 +
.../newview/skins/xui/de/floater_directory.xml | 54 +
linden/indra/newview/skins/xui/de/floater_html.xml | 2 +-
.../newview/skins/xui/de/floater_html_help.xml | 10 -
linden/indra/newview/skins/xui/de/floater_im.xml | 18 +
.../skins/xui/de/floater_instant_message.xml | 10 +-
.../xui/de/floater_instant_message_ad_hoc.xml | 3 +
.../skins/xui/de/floater_instant_message_group.xml | 29 +-
.../newview/skins/xui/de/floater_mute_object.xml | 12 +
.../skins/xui/de/floater_preview_gesture.xml | 6 +
.../newview/skins/xui/de/floater_region_info.xml | 2 +
linden/indra/newview/skins/xui/de/menu_login.xml | 1 +
.../newview/skins/xui/de/need_to_translate.xml | 553 +--
.../indra/newview/skins/xui/de/need_to_update.xml | 3424 +--------------
linden/indra/newview/skins/xui/de/notify.xml | 41 +-
linden/indra/newview/skins/xui/de/panel_avatar.xml | 7 +-
.../indra/newview/skins/xui/de/panel_chat_bar.xml | 4 +-
.../indra/newview/skins/xui/de/panel_friends.xml | 8 +-
.../newview/skins/xui/de/panel_group_voting.xml | 12 +-
linden/indra/newview/skins/xui/de/panel_login.xml | 46 +-
.../newview/skins/xui/de/panel_media_controls.xml | 8 +
.../skins/xui/de/panel_media_remote_expanded.xml | 4 +
.../newview/skins/xui/de/panel_overlaybar.xml | 25 +-
.../skins/xui/de/panel_preferences_general.xml | 4 +-
.../skins/xui/de/panel_preferences_graphics1.xml | 3 +
.../skins/xui/de/panel_preferences_voice.xml | 6 +-
.../newview/skins/xui/de/panel_preferences_web.xml | 9 +
.../skins/xui/de/panel_speaker_controls.xml | 30 +
.../newview/skins/xui/de/panel_status_bar.xml | 6 +-
.../indra/newview/skins/xui/de/panel_toolbar.xml | 8 +-
.../newview/skins/xui/de/panel_voice_controls.xml | 10 +
.../newview/skins/xui/de/panel_voice_enable.xml | 2 +-
.../skins/xui/de/panel_voice_remote_expanded.xml | 4 +
linden/indra/newview/skins/xui/en-us/alerts.xml | 110 +-
.../newview/skins/xui/en-us/floater_about_land.xml | 24 +-
.../skins/xui/en-us/floater_active_speakers.xml | 23 +-
.../skins/xui/en-us/floater_audio_volume.xml | 6 +-
.../skins/xui/en-us/floater_chat_history.xml | 69 +-
.../skins/xui/en-us/floater_device_settings.xml | 2 +-
.../newview/skins/xui/en-us/floater_directory.xml | 36 +-
.../newview/skins/xui/en-us/floater_groups.xml | 10 +-
.../indra/newview/skins/xui/en-us/floater_html.xml | 12 +-
.../newview/skins/xui/en-us/floater_html_help.xml | 25 -
.../indra/newview/skins/xui/en-us/floater_im.xml | 25 +-
.../skins/xui/en-us/floater_instant_message.xml | 130 +-
.../xui/en-us/floater_instant_message_ad_hoc.xml | 81 +-
.../xui/en-us/floater_instant_message_group.xml | 236 +-
.../en-us/floater_inventory_item_properties.xml | 2 +-
.../indra/newview/skins/xui/en-us/floater_mute.xml | 2 +-
.../skins/xui/en-us/floater_mute_object.xml | 18 +
.../newview/skins/xui/en-us/floater_my_friends.xml | 16 +-
.../skins/xui/en-us/floater_preview_url.xml | 4 +-
.../skins/xui/en-us/floater_region_info.xml | 5 +
.../skins/xui/en-us/floater_report_abuse.xml | 4 +-
.../skins/xui/en-us/floater_sound_preview.xml | 25 -
.../newview/skins/xui/en-us/floater_world_map.xml | 2 +-
.../newview/skins/xui/en-us/menu_inventory.xml | 9 +-
.../indra/newview/skins/xui/en-us/menu_viewer.xml | 2 +-
linden/indra/newview/skins/xui/en-us/notify.xml | 51 +-
.../indra/newview/skins/xui/en-us/panel_audio.xml | 95 +-
.../newview/skins/xui/en-us/panel_audio_device.xml | 9 +-
.../indra/newview/skins/xui/en-us/panel_avatar.xml | 5 +-
.../indra/newview/skins/xui/en-us/panel_bars.xml | 11 +
.../indra/newview/skins/xui/en-us/panel_bg_tab.xml | 12 +
.../newview/skins/xui/en-us/panel_chat_bar.xml | 43 +-
.../newview/skins/xui/en-us/panel_friends.xml | 44 +-
.../newview/skins/xui/en-us/panel_group_roles.xml | 10 +-
.../newview/skins/xui/en-us/panel_group_voting.xml | 6 +
.../indra/newview/skins/xui/en-us/panel_groups.xml | 10 +-
.../indra/newview/skins/xui/en-us/panel_login.xml | 91 +-
.../skins/xui/en-us/panel_master_volume.xml | 22 +-
.../skins/xui/en-us/panel_media_controls.xml | 23 +
.../newview/skins/xui/en-us/panel_media_remote.xml | 34 +-
.../xui/en-us/panel_media_remote_expanded.xml | 8 +
.../newview/skins/xui/en-us/panel_overlaybar.xml | 93 +-
.../skins/xui/en-us/panel_preferences_audio.xml | 27 -
.../skins/xui/en-us/panel_preferences_voice.xml | 95 +-
.../skins/xui/en-us/panel_preferences_web.xml | 2 +-
.../skins/xui/en-us/panel_speaker_controls.xml | 67 +
.../newview/skins/xui/en-us/panel_status_bar.xml | 77 +-
.../newview/skins/xui/en-us/panel_toolbar.xml | 17 +-
.../skins/xui/en-us/panel_voice_controls.xml | 18 +
.../newview/skins/xui/en-us/panel_voice_enable.xml | 4 +-
.../newview/skins/xui/en-us/panel_voice_remote.xml | 16 +-
.../xui/en-us/panel_voice_remote_expanded.xml | 18 +
.../newview/skins/xui/es/floater_html_help.xml | 10 -
.../indra/newview/skins/xui/es/panel_chat_bar.xml | 2 +-
linden/indra/newview/skins/xui/es/panel_login.xml | 36 +-
.../indra/newview/skins/xui/es/panel_toolbar.xml | 2 +-
.../newview/skins/xui/fr/floater_html_help.xml | 10 -
.../indra/newview/skins/xui/fr/panel_chat_bar.xml | 2 +-
linden/indra/newview/skins/xui/fr/panel_login.xml | 38 +-
.../indra/newview/skins/xui/fr/panel_toolbar.xml | 2 +-
linden/indra/newview/skins/xui/ja/alerts.xml | 136 +-
.../newview/skins/xui/ja/floater_about_land.xml | 11 +-
.../skins/xui/ja/floater_active_speakers.xml | 3 +-
.../newview/skins/xui/ja/floater_chat_history.xml | 6 +
.../newview/skins/xui/ja/floater_directory.xml | 54 +
linden/indra/newview/skins/xui/ja/floater_html.xml | 2 +-
.../newview/skins/xui/ja/floater_html_help.xml | 10 -
linden/indra/newview/skins/xui/ja/floater_im.xml | 18 +
.../skins/xui/ja/floater_instant_message.xml | 13 +-
.../xui/ja/floater_instant_message_ad_hoc.xml | 3 +
.../skins/xui/ja/floater_instant_message_group.xml | 31 +-
.../newview/skins/xui/ja/floater_mute_object.xml | 12 +
.../skins/xui/ja/floater_preview_gesture.xml | 6 +
.../newview/skins/xui/ja/floater_region_info.xml | 2 +
linden/indra/newview/skins/xui/ja/menu_login.xml | 1 +
linden/indra/newview/skins/xui/ja/need_to_long.xml | 94 -
.../newview/skins/xui/ja/need_to_translate.xml | 561 +--
.../indra/newview/skins/xui/ja/need_to_update.xml | 3330 +--------------
linden/indra/newview/skins/xui/ja/notify.xml | 43 +-
linden/indra/newview/skins/xui/ja/panel_avatar.xml | 7 +-
.../indra/newview/skins/xui/ja/panel_chat_bar.xml | 4 +-
.../indra/newview/skins/xui/ja/panel_friends.xml | 11 +-
.../newview/skins/xui/ja/panel_group_voting.xml | 8 +-
linden/indra/newview/skins/xui/ja/panel_login.xml | 46 +-
.../newview/skins/xui/ja/panel_media_controls.xml | 10 +
.../skins/xui/ja/panel_media_remote_expanded.xml | 4 +
.../newview/skins/xui/ja/panel_overlaybar.xml | 19 +
.../skins/xui/ja/panel_preferences_general.xml | 4 +-
.../skins/xui/ja/panel_preferences_graphics1.xml | 3 +
.../newview/skins/xui/ja/panel_preferences_im.xml | 2 +-
.../skins/xui/ja/panel_preferences_voice.xml | 7 +-
.../newview/skins/xui/ja/panel_preferences_web.xml | 11 +
.../skins/xui/ja/panel_speaker_controls.xml | 31 +
.../newview/skins/xui/ja/panel_status_bar.xml | 7 +-
.../indra/newview/skins/xui/ja/panel_toolbar.xml | 9 +-
.../newview/skins/xui/ja/panel_voice_controls.xml | 10 +
.../newview/skins/xui/ja/panel_voice_enable.xml | 2 +-
.../newview/skins/xui/ja/panel_voice_options.xml | 2 +-
.../skins/xui/ja/panel_voice_remote_expanded.xml | 4 +
linden/indra/newview/skins/xui/ko/alerts.xml | 147 +-
.../newview/skins/xui/ko/floater_about_land.xml | 10 +-
.../skins/xui/ko/floater_active_speakers.xml | 2 +-
.../newview/skins/xui/ko/floater_chat_history.xml | 6 +
.../newview/skins/xui/ko/floater_directory.xml | 54 +
linden/indra/newview/skins/xui/ko/floater_html.xml | 2 +-
.../newview/skins/xui/ko/floater_html_help.xml | 10 -
linden/indra/newview/skins/xui/ko/floater_im.xml | 18 +
.../skins/xui/ko/floater_instant_message.xml | 12 +-
.../xui/ko/floater_instant_message_ad_hoc.xml | 3 +
.../skins/xui/ko/floater_instant_message_group.xml | 29 +-
.../newview/skins/xui/ko/floater_mute_object.xml | 12 +
.../skins/xui/ko/floater_preview_gesture.xml | 6 +
.../newview/skins/xui/ko/floater_region_info.xml | 2 +
linden/indra/newview/skins/xui/ko/menu_login.xml | 1 +
linden/indra/newview/skins/xui/ko/need_to_long.xml | 57 +-
.../newview/skins/xui/ko/need_to_translate.xml | 561 +--
.../indra/newview/skins/xui/ko/need_to_update.xml | 3413 +--------------
linden/indra/newview/skins/xui/ko/notify.xml | 43 +-
linden/indra/newview/skins/xui/ko/panel_avatar.xml | 7 +-
.../indra/newview/skins/xui/ko/panel_chat_bar.xml | 4 +-
.../indra/newview/skins/xui/ko/panel_friends.xml | 27 +-
.../newview/skins/xui/ko/panel_group_voting.xml | 6 +
linden/indra/newview/skins/xui/ko/panel_login.xml | 45 +-
.../newview/skins/xui/ko/panel_media_controls.xml | 8 +
.../skins/xui/ko/panel_media_remote_expanded.xml | 4 +
.../newview/skins/xui/ko/panel_overlaybar.xml | 19 +
.../skins/xui/ko/panel_preferences_general.xml | 9 +-
.../skins/xui/ko/panel_preferences_graphics1.xml | 3 +
.../skins/xui/ko/panel_preferences_voice.xml | 6 +-
.../newview/skins/xui/ko/panel_preferences_web.xml | 9 +
.../skins/xui/ko/panel_speaker_controls.xml | 30 +
.../newview/skins/xui/ko/panel_status_bar.xml | 7 +-
.../indra/newview/skins/xui/ko/panel_toolbar.xml | 8 +-
.../newview/skins/xui/ko/panel_voice_controls.xml | 10 +
.../newview/skins/xui/ko/panel_voice_enable.xml | 2 +-
.../newview/skins/xui/ko/panel_voice_options.xml | 3 +-
.../skins/xui/ko/panel_voice_remote_expanded.xml | 4 +
.../newview/skins/xui/pt/floater_html_help.xml | 10 -
.../indra/newview/skins/xui/pt/panel_chat_bar.xml | 2 +-
linden/indra/newview/skins/xui/pt/panel_login.xml | 27 +-
.../indra/newview/skins/xui/pt/panel_toolbar.xml | 2 +-
.../newview/skins/xui/zh/floater_html_help.xml | 10 -
.../indra/newview/skins/xui/zh/panel_chat_bar.xml | 2 +-
linden/indra/newview/skins/xui/zh/panel_login.xml | 36 +-
.../indra/newview/skins/xui/zh/panel_toolbar.xml | 2 +-
linden/indra/newview/viewer_manifest.py | 15 +-
linden/indra/test/common.cpp | 4 +-
linden/indra/test/inventory.cpp | 4 +-
linden/indra/test/io.cpp | 68 +-
linden/indra/test/llapp_tut.cpp | 4 +-
linden/indra/test/llbase64_tut.cpp | 4 +-
linden/indra/test/llbitpack_tut.cpp | 4 +-
linden/indra/test/llblowfish_tut.cpp | 4 +-
linden/indra/test/llbuffer_tut.cpp | 4 +-
linden/indra/test/lldatapacker_tut.cpp | 4 +-
linden/indra/test/lldate_tut.cpp | 4 +-
linden/indra/test/llerror_tut.cpp | 4 +-
linden/indra/test/llhost_tut.cpp | 4 +-
linden/indra/test/llhttpclient_tut.cpp | 4 +-
linden/indra/test/llhttpdate_tut.cpp | 4 +-
linden/indra/test/llhttpnode_tut.cpp | 4 +-
linden/indra/test/llinventoryparcel_tut.cpp | 4 +-
linden/indra/test/lliohttpserver_tut.cpp | 4 +-
linden/indra/test/lljoint_tut.cpp | 4 +-
linden/indra/test/llmessageconfig_tut.cpp | 4 +-
linden/indra/test/llmessagetemplateparser_tut.cpp | 4 +-
linden/indra/test/llmime_tut.cpp | 4 +-
linden/indra/test/llnamevalue_tut.cpp | 4 +-
linden/indra/test/llpartdata_tut.cpp | 4 +-
linden/indra/test/llpermissions_tut.cpp | 4 +-
linden/indra/test/llpipeutil.cpp | 26 +-
linden/indra/test/llpipeutil.h | 24 +-
linden/indra/test/llquaternion_tut.cpp | 4 +-
linden/indra/test/llrandom_tut.cpp | 4 +-
linden/indra/test/llsaleinfo_tut.cpp | 4 +-
linden/indra/test/llsd_new_tut.cpp | 4 +-
linden/indra/test/llsdmessagebuilder_tut.cpp | 4 +-
linden/indra/test/llsdmessagereader_tut.cpp | 4 +-
linden/indra/test/llsdserialize_tut.cpp | 4 +-
linden/indra/test/llsdtraits.h | 4 +-
linden/indra/test/llsdutil_tut.cpp | 4 +-
linden/indra/test/llservicebuilder_tut.cpp | 65 +-
linden/indra/test/llstreamtools_tut.cpp | 4 +-
linden/indra/test/llstring_tut.cpp | 4 +-
linden/indra/test/lltemplatemessagebuilder_tut.cpp | 4 +-
linden/indra/test/lltiming_tut.cpp | 4 +-
linden/indra/test/lltut.cpp | 4 +-
linden/indra/test/lltut.h | 4 +-
linden/indra/test/lluri_tut.cpp | 83 +-
linden/indra/test/lluserrelations_tut.cpp | 4 +-
linden/indra/test/lluuidhashmap_tut.cpp | 4 +-
linden/indra/test/llxfer_tut.cpp | 4 +-
linden/indra/test/llxorcipher_tut.cpp | 4 +-
linden/indra/test/m3math_tut.cpp | 4 +-
linden/indra/test/math.cpp | 4 +-
linden/indra/test/message_tut.cpp | 4 +-
linden/indra/test/reflection_tut.cpp | 4 +-
linden/indra/test/test.cpp | 13 +-
linden/indra/test/test.vcproj | 2 +-
linden/indra/test/test_llmanifest.py | 4 +-
linden/indra/test/test_vc9.vcproj | 453 ++
linden/indra/test/v2math_tut.cpp | 4 +-
linden/indra/test/v3color_tut.cpp | 4 +-
linden/indra/test/v3dmath_tut.cpp | 4 +-
linden/indra/test/v3math_tut.cpp | 4 +-
linden/indra/test/v4color_tut.cpp | 4 +-
linden/indra/test/v4coloru_tut.cpp | 4 +-
linden/indra/test/v4math_tut.cpp | 4 +-
linden/indra/test/xform_tut.cpp | 4 +-
linden/indra/win_crash_logger/StdAfx.cpp | 4 +-
linden/indra/win_crash_logger/StdAfx.h | 4 +-
.../win_crash_logger/llcrashloggerwindows.cpp | 4 +-
.../indra/win_crash_logger/llcrashloggerwindows.h | 4 +-
linden/indra/win_crash_logger/resource.h | 4 +-
linden/indra/win_crash_logger/win_crash_logger.cpp | 4 +-
linden/indra/win_crash_logger/win_crash_logger.h | 4 +-
.../indra/win_crash_logger/win_crash_logger.vcproj | 6 +-
.../win_crash_logger/win_crash_logger_vc8.vcproj | 2 +-
.../win_crash_logger/win_crash_logger_vc9.vcproj | 334 ++
linden/indra/win_updater/updater.cpp | 14 +-
linden/indra/win_updater/win_updater_vc9.vcproj | 293 ++
1751 files changed, 33858 insertions(+), 22227 deletions(-)
create mode 100644 linden/indra/indra_complete/indra_complete_vc9.sln
create mode 100644 linden/indra/lib/python/indra/base/metrics.py
create mode 100644 linden/indra/llaudio/llaudio_vc9.vcproj
create mode 100644 linden/indra/llcharacter/llcharacter_vc9.vcproj
create mode 100644 linden/indra/llcommon/llcommon_vc9.vcproj
create mode 100644 linden/indra/llcommon/lllog.cpp
create mode 100644 linden/indra/llcommon/lllog.h
create mode 100644 linden/indra/llimage/llimage_vc9.vcproj
create mode 100644 linden/indra/llinventory/llinventory_vc9.vcproj
create mode 100644 linden/indra/llmath/llmath_vc9.vcproj
create mode 100644 linden/indra/llmedia/llmedia_vc9.vcproj
delete mode 100644 linden/indra/llmessage/lllogtextmessage.cpp
delete mode 100644 linden/indra/llmessage/lllogtextmessage.h
create mode 100644 linden/indra/llmessage/llmessage_vc9.vcproj
create mode 100644 linden/indra/llprimitive/llprimitive_vc9.vcproj
create mode 100644 linden/indra/llrender/llrender_vc9.vcproj
create mode 100644 linden/indra/llui/llui_vc9.vcproj
create mode 100644 linden/indra/llvfs/llvfs_vc9.vcproj
create mode 100644 linden/indra/llwindow/llpreeditor.h
create mode 100644 linden/indra/llwindow/llwindow_vc9.vcproj
create mode 100644 linden/indra/llxml/llxml_vc9.vcproj
create mode 100644 linden/indra/lscript/lscript_compile/lscript_compile_fb_vc9.vcproj
create mode 100644 linden/indra/lscript/lscript_compile/lscript_compile_vc9.vcproj
create mode 100644 linden/indra/lscript/lscript_execute/lscript_execute_vc9.vcproj
create mode 100644 linden/indra/lscript/lscript_library/lscript_library_vc9.vcproj
delete mode 100644 linden/indra/newview/app_settings/colors_base.ini
delete mode 100644 linden/indra/newview/llfloaterhtmlhelp.cpp
delete mode 100644 linden/indra/newview/llfloaterhtmlhelp.h
create mode 100644 linden/indra/newview/newview_vc9.vcproj
delete mode 100644 linden/indra/newview/skins/xui/de/floater_html_help.xml
create mode 100644 linden/indra/newview/skins/xui/de/floater_mute_object.xml
create mode 100644 linden/indra/newview/skins/xui/de/floater_region_info.xml
create mode 100644 linden/indra/newview/skins/xui/de/panel_media_controls.xml
create mode 100644 linden/indra/newview/skins/xui/de/panel_media_remote_expanded.xml
create mode 100644 linden/indra/newview/skins/xui/de/panel_speaker_controls.xml
create mode 100644 linden/indra/newview/skins/xui/de/panel_voice_controls.xml
create mode 100644 linden/indra/newview/skins/xui/de/panel_voice_remote_expanded.xml
delete mode 100644 linden/indra/newview/skins/xui/en-us/floater_html_help.xml
create mode 100644 linden/indra/newview/skins/xui/en-us/floater_mute_object.xml
create mode 100644 linden/indra/newview/skins/xui/en-us/floater_region_info.xml
create mode 100644 linden/indra/newview/skins/xui/en-us/panel_bars.xml
create mode 100644 linden/indra/newview/skins/xui/en-us/panel_bg_tab.xml
create mode 100644 linden/indra/newview/skins/xui/en-us/panel_media_controls.xml
create mode 100644 linden/indra/newview/skins/xui/en-us/panel_media_remote_expanded.xml
create mode 100644 linden/indra/newview/skins/xui/en-us/panel_speaker_controls.xml
create mode 100644 linden/indra/newview/skins/xui/en-us/panel_voice_controls.xml
create mode 100644 linden/indra/newview/skins/xui/en-us/panel_voice_remote_expanded.xml
delete mode 100644 linden/indra/newview/skins/xui/es/floater_html_help.xml
delete mode 100644 linden/indra/newview/skins/xui/fr/floater_html_help.xml
delete mode 100644 linden/indra/newview/skins/xui/ja/floater_html_help.xml
create mode 100644 linden/indra/newview/skins/xui/ja/floater_mute_object.xml
create mode 100644 linden/indra/newview/skins/xui/ja/floater_region_info.xml
create mode 100644 linden/indra/newview/skins/xui/ja/panel_media_controls.xml
create mode 100644 linden/indra/newview/skins/xui/ja/panel_media_remote_expanded.xml
create mode 100644 linden/indra/newview/skins/xui/ja/panel_speaker_controls.xml
create mode 100644 linden/indra/newview/skins/xui/ja/panel_voice_controls.xml
create mode 100644 linden/indra/newview/skins/xui/ja/panel_voice_remote_expanded.xml
delete mode 100644 linden/indra/newview/skins/xui/ko/floater_html_help.xml
create mode 100644 linden/indra/newview/skins/xui/ko/floater_mute_object.xml
create mode 100644 linden/indra/newview/skins/xui/ko/floater_region_info.xml
create mode 100644 linden/indra/newview/skins/xui/ko/panel_media_controls.xml
create mode 100644 linden/indra/newview/skins/xui/ko/panel_media_remote_expanded.xml
create mode 100644 linden/indra/newview/skins/xui/ko/panel_speaker_controls.xml
create mode 100644 linden/indra/newview/skins/xui/ko/panel_voice_controls.xml
create mode 100644 linden/indra/newview/skins/xui/ko/panel_voice_remote_expanded.xml
delete mode 100644 linden/indra/newview/skins/xui/pt/floater_html_help.xml
delete mode 100644 linden/indra/newview/skins/xui/zh/floater_html_help.xml
create mode 100644 linden/indra/test/test_vc9.vcproj
create mode 100644 linden/indra/win_crash_logger/win_crash_logger_vc9.vcproj
create mode 100644 linden/indra/win_updater/win_updater_vc9.vcproj
(limited to 'linden/indra')
diff --git a/linden/indra/SConstruct b/linden/indra/SConstruct
index d07b17d..d06b5b6 100644
--- a/linden/indra/SConstruct
+++ b/linden/indra/SConstruct
@@ -91,11 +91,12 @@ opts.AddOptions(
BoolOption('GSTREAMER', 'Enabled GStreamer support', True),
BoolOption('COLORGCC', 'Enabled colorgcc', True),
EnumOption('GRID', 'Client package\'s default grid', 'default',
- allowed_values=('default', 'aditi', 'agni', 'dmz', 'durga', 'ganga', 'shakti', 'siva', 'soma', 'uma', 'vaak', 'yami')),
+ allowed_values=('default', 'aditi', 'agni', 'durga', 'ganga', 'shakti', 'siva', 'soma', 'uma', 'vaak', 'yami')),
EnumOption('CHANNEL', 'Client package\'s default channel', 'Release',
allowed_values=('Release', 'Release Candidate', 'WindLight')),
BoolOption('ELFIO', 'Enabled enhanced backtraces with libELFIO symbol extraction support', True),
BoolOption('STANDALONE', 'Build using system packages (implies OPENSOURCE)', False),
+ BoolOption('RUNTESTS', 'Run tests at end of compilation', True),
BoolOption('OPENSOURCE', 'Build using only non-proprietary dependencies', True) # OPENSOURCE: do not edit this line
)
optenv = Environment(options = opts)
@@ -111,6 +112,7 @@ enable_colorgcc = optenv['COLORGCC']
grid = optenv['GRID']
channel = optenv['CHANNEL']
standalone = optenv['STANDALONE']
+runtests = optenv['RUNTESTS']
opensource = standalone or optenv['OPENSOURCE']
enable_fmod = not opensource and optenv['FMOD']
elfio = optenv['ELFIO']
@@ -811,21 +813,24 @@ for build_target in targets:
internal_libs + external_libs)
# Run tests
- test_results_file = 'test/test_results' + file_suffix + '.txt'
- env.Command(test_results_file,
- test_executable,
- "$SOURCE 2>&1") # tee masks segfaults
- Depends(test_results_file, test_executable)
- Default(test_results_file)
-
- test_script = 'test/test.py'
- script_test_results = 'test/script_test_result' + file_suffix + '.txt'
- env.Command(script_test_results,
- test_script,
- "$SOURCE 2>&1") # tee masks segfaults
-
- Depends(script_test_results, test_results_file)
- Default(script_test_results)
+ if runtests:
+ test_results_file = 'test/test_results' + file_suffix + '.txt'
+ env.Command(test_results_file,
+ test_executable,
+ "$SOURCE 2>&1") # tee masks segfaults
+ Depends(test_results_file, test_executable)
+ Default(test_results_file)
+
+ test_script = 'test/test.py'
+ script_test_results = 'test/script_test_result' + file_suffix + '.txt'
+ env.Command(script_test_results,
+ test_script,
+ "$SOURCE 2>&1") # tee masks segfaults
+
+ Depends(script_test_results, test_results_file)
+ Default(script_test_results)
+ else:
+ print '============= SKIPPING TESTS ============='
#########
# DONE #
diff --git a/linden/indra/indra_complete/indra_complete_vc8.sln b/linden/indra/indra_complete/indra_complete_vc8.sln
index f677d2c..372ea06 100644
--- a/linden/indra/indra_complete/indra_complete_vc8.sln
+++ b/linden/indra/indra_complete/indra_complete_vc8.sln
@@ -26,27 +26,27 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llinventory", "..\llinvento
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "newview", "..\newview\newview_vc8.vcproj", "{E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}"
ProjectSection(ProjectDependencies) = postProject
- {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
- {648685F3-8760-4CC5-BB2B-CAF9DECC25A4} = {648685F3-8760-4CC5-BB2B-CAF9DECC25A4}
- {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E} = {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}
- {4C8D64D5-649F-481E-96BE-EF1E82A77ACB} = {4C8D64D5-649F-481E-96BE-EF1E82A77ACB}
- {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
- {BFA102B0-C891-4E13-B1CF-C2F28073DA8E} = {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}
- {A5470DA6-0C3A-4602-B930-43DB25511A59} = {A5470DA6-0C3A-4602-B930-43DB25511A59}
- {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
- {44CE6D82-7320-4609-8FC3-5965C19F4808} = {44CE6D82-7320-4609-8FC3-5965C19F4808}
- {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5} = {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}
- {328D1968-924F-4863-AAE8-5F9A95BA68E5} = {328D1968-924F-4863-AAE8-5F9A95BA68E5}
- {DE55D666-6A3D-476C-937F-109269B83681} = {DE55D666-6A3D-476C-937F-109269B83681}
- {076DD042-2E58-42EA-9401-53210B65C1FC} = {076DD042-2E58-42EA-9401-53210B65C1FC}
- {F882263E-4F2A-43D9-A45A-FA4C8EC66552} = {F882263E-4F2A-43D9-A45A-FA4C8EC66552}
- {FCC4483C-5B84-4944-B91F-4589A219BC0B} = {FCC4483C-5B84-4944-B91F-4589A219BC0B}
- {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
- {93B2BA29-FBE9-4376-92C1-6108DCFE09D3} = {93B2BA29-FBE9-4376-92C1-6108DCFE09D3}
- {B5B53617-416F-404A-BF10-22EBCCA0E4FB} = {B5B53617-416F-404A-BF10-22EBCCA0E4FB}
- {2ADE3C14-94C4-40BF-B033-70F3C954EE90} = {2ADE3C14-94C4-40BF-B033-70F3C954EE90}
{9D0C7E02-6506-4EE7-BC5C-75671D28D594} = {9D0C7E02-6506-4EE7-BC5C-75671D28D594}
+ {2ADE3C14-94C4-40BF-B033-70F3C954EE90} = {2ADE3C14-94C4-40BF-B033-70F3C954EE90}
+ {B5B53617-416F-404A-BF10-22EBCCA0E4FB} = {B5B53617-416F-404A-BF10-22EBCCA0E4FB}
+ {93B2BA29-FBE9-4376-92C1-6108DCFE09D3} = {93B2BA29-FBE9-4376-92C1-6108DCFE09D3}
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
{E928F33B-E090-4FA8-818B-6B5D8B0F1F4B} = {E928F33B-E090-4FA8-818B-6B5D8B0F1F4B}
+ {FCC4483C-5B84-4944-B91F-4589A219BC0B} = {FCC4483C-5B84-4944-B91F-4589A219BC0B}
+ {F882263E-4F2A-43D9-A45A-FA4C8EC66552} = {F882263E-4F2A-43D9-A45A-FA4C8EC66552}
+ {076DD042-2E58-42EA-9401-53210B65C1FC} = {076DD042-2E58-42EA-9401-53210B65C1FC}
+ {DE55D666-6A3D-476C-937F-109269B83681} = {DE55D666-6A3D-476C-937F-109269B83681}
+ {328D1968-924F-4863-AAE8-5F9A95BA68E5} = {328D1968-924F-4863-AAE8-5F9A95BA68E5}
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5} = {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}
+ {44CE6D82-7320-4609-8FC3-5965C19F4808} = {44CE6D82-7320-4609-8FC3-5965C19F4808}
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
+ {A5470DA6-0C3A-4602-B930-43DB25511A59} = {A5470DA6-0C3A-4602-B930-43DB25511A59}
+ {BFA102B0-C891-4E13-B1CF-C2F28073DA8E} = {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
+ {4C8D64D5-649F-481E-96BE-EF1E82A77ACB} = {4C8D64D5-649F-481E-96BE-EF1E82A77ACB}
+ {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E} = {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}
+ {648685F3-8760-4CC5-BB2B-CAF9DECC25A4} = {648685F3-8760-4CC5-BB2B-CAF9DECC25A4}
+ {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
EndProjectSection
EndProject
EndProject
@@ -69,41 +69,41 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lscript_compile", "..\lscri
EndProjectSection
EndProject
ProjectSection(ProjectDependencies) = postProject
- {023011F7-3ADB-49D3-9EC5-6D392F6D15FE} = {023011F7-3ADB-49D3-9EC5-6D392F6D15FE}
- {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
- {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E} = {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}
- {B4B838C7-2C72-428E-BBFD-25764E659A8B} = {B4B838C7-2C72-428E-BBFD-25764E659A8B}
- {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
- {BFA102B0-C891-4E13-B1CF-C2F28073DA8E} = {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}
- {A5470DA6-0C3A-4602-B930-43DB25511A59} = {A5470DA6-0C3A-4602-B930-43DB25511A59}
- {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
- {44CE6D82-7320-4609-8FC3-5965C19F4808} = {44CE6D82-7320-4609-8FC3-5965C19F4808}
- {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5} = {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}
- {328D1968-924F-4863-AAE8-5F9A95BA68E5} = {328D1968-924F-4863-AAE8-5F9A95BA68E5}
- {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4} = {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}
- {F882263E-4F2A-43D9-A45A-FA4C8EC66552} = {F882263E-4F2A-43D9-A45A-FA4C8EC66552}
- {FCC4483C-5B84-4944-B91F-4589A219BC0B} = {FCC4483C-5B84-4944-B91F-4589A219BC0B}
{7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ {FCC4483C-5B84-4944-B91F-4589A219BC0B} = {FCC4483C-5B84-4944-B91F-4589A219BC0B}
+ {F882263E-4F2A-43D9-A45A-FA4C8EC66552} = {F882263E-4F2A-43D9-A45A-FA4C8EC66552}
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4} = {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}
+ {328D1968-924F-4863-AAE8-5F9A95BA68E5} = {328D1968-924F-4863-AAE8-5F9A95BA68E5}
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5} = {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}
+ {44CE6D82-7320-4609-8FC3-5965C19F4808} = {44CE6D82-7320-4609-8FC3-5965C19F4808}
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
+ {A5470DA6-0C3A-4602-B930-43DB25511A59} = {A5470DA6-0C3A-4602-B930-43DB25511A59}
+ {BFA102B0-C891-4E13-B1CF-C2F28073DA8E} = {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
+ {B4B838C7-2C72-428E-BBFD-25764E659A8B} = {B4B838C7-2C72-428E-BBFD-25764E659A8B}
+ {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E} = {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}
+ {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
+ {023011F7-3ADB-49D3-9EC5-6D392F6D15FE} = {023011F7-3ADB-49D3-9EC5-6D392F6D15FE}
EndProjectSection
EndProject
ProjectSection(ProjectDependencies) = postProject
- {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
- {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
- {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
- {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4} = {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}
{7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4} = {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
+ {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
EndProjectSection
EndProject
ProjectSection(ProjectDependencies) = postProject
- {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
- {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E} = {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}
- {B4B838C7-2C72-428E-BBFD-25764E659A8B} = {B4B838C7-2C72-428E-BBFD-25764E659A8B}
- {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
- {A5470DA6-0C3A-4602-B930-43DB25511A59} = {A5470DA6-0C3A-4602-B930-43DB25511A59}
- {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
- {328D1968-924F-4863-AAE8-5F9A95BA68E5} = {328D1968-924F-4863-AAE8-5F9A95BA68E5}
- {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4} = {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}
{7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4} = {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}
+ {328D1968-924F-4863-AAE8-5F9A95BA68E5} = {328D1968-924F-4863-AAE8-5F9A95BA68E5}
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
+ {A5470DA6-0C3A-4602-B930-43DB25511A59} = {A5470DA6-0C3A-4602-B930-43DB25511A59}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
+ {B4B838C7-2C72-428E-BBFD-25764E659A8B} = {B4B838C7-2C72-428E-BBFD-25764E659A8B}
+ {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E} = {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}
+ {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
EndProjectSection
EndProject
ProjectSection(ProjectDependencies) = postProject
@@ -116,11 +116,11 @@ EndProject
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "win_crash_logger", "..\win_crash_logger\win_crash_logger_vc8.vcproj", "{648685F3-8760-4CC5-BB2B-CAF9DECC25A4}"
ProjectSection(ProjectDependencies) = postProject
- {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
- {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
- {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
- {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
{B5B53617-416F-404A-BF10-22EBCCA0E4FB} = {B5B53617-416F-404A-BF10-22EBCCA0E4FB}
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
+ {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "win_updater", "..\win_updater\win_updater_vc8.vcproj", "{E928F33B-E090-4FA8-818B-6B5D8B0F1F4B}"
@@ -130,16 +130,16 @@ EndProject
EndProjectSection
EndProject
ProjectSection(ProjectDependencies) = postProject
- {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
- {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
- {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
- {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5} = {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}
- {DE55D666-6A3D-476C-937F-109269B83681} = {DE55D666-6A3D-476C-937F-109269B83681}
- {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
- {93B2BA29-FBE9-4376-92C1-6108DCFE09D3} = {93B2BA29-FBE9-4376-92C1-6108DCFE09D3}
- {AF2D801E-EEE7-4B52-A025-F8E648ADC34B} = {AF2D801E-EEE7-4B52-A025-F8E648ADC34B}
- {B5B53617-416F-404A-BF10-22EBCCA0E4FB} = {B5B53617-416F-404A-BF10-22EBCCA0E4FB}
{2ADE3C14-94C4-40BF-B033-70F3C954EE90} = {2ADE3C14-94C4-40BF-B033-70F3C954EE90}
+ {B5B53617-416F-404A-BF10-22EBCCA0E4FB} = {B5B53617-416F-404A-BF10-22EBCCA0E4FB}
+ {AF2D801E-EEE7-4B52-A025-F8E648ADC34B} = {AF2D801E-EEE7-4B52-A025-F8E648ADC34B}
+ {93B2BA29-FBE9-4376-92C1-6108DCFE09D3} = {93B2BA29-FBE9-4376-92C1-6108DCFE09D3}
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ {DE55D666-6A3D-476C-937F-109269B83681} = {DE55D666-6A3D-476C-937F-109269B83681}
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5} = {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
+ {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llmedia", "..\llmedia\llmedia_vc8.vcproj", "{9D0C7E02-6506-4EE7-BC5C-75671D28D594}"
@@ -147,46 +147,46 @@ EndProject
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "..\test\test_vc8.vcproj", "{BBAA6588-CA96-4A87-A988-B02270B8D02B}"
ProjectSection(ProjectDependencies) = postProject
- {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
- {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
- {777F38BE-2DFE-4051-9AAD-2832ABC474CC} = {777F38BE-2DFE-4051-9AAD-2832ABC474CC}
- {BFA102B0-C891-4E13-B1CF-C2F28073DA8E} = {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}
- {A5470DA6-0C3A-4602-B930-43DB25511A59} = {A5470DA6-0C3A-4602-B930-43DB25511A59}
- {EC2A989E-3F8F-4B8B-9AE6-7C7EA37C84BC} = {EC2A989E-3F8F-4B8B-9AE6-7C7EA37C84BC}
- {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
- {44CE6D82-7320-4609-8FC3-5965C19F4808} = {44CE6D82-7320-4609-8FC3-5965C19F4808}
- {328D1968-924F-4863-AAE8-5F9A95BA68E5} = {328D1968-924F-4863-AAE8-5F9A95BA68E5}
- {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4} = {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}
- {F882263E-4F2A-43D9-A45A-FA4C8EC66552} = {F882263E-4F2A-43D9-A45A-FA4C8EC66552}
- {FCC4483C-5B84-4944-B91F-4589A219BC0B} = {FCC4483C-5B84-4944-B91F-4589A219BC0B}
{7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ {FCC4483C-5B84-4944-B91F-4589A219BC0B} = {FCC4483C-5B84-4944-B91F-4589A219BC0B}
+ {F882263E-4F2A-43D9-A45A-FA4C8EC66552} = {F882263E-4F2A-43D9-A45A-FA4C8EC66552}
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4} = {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}
+ {328D1968-924F-4863-AAE8-5F9A95BA68E5} = {328D1968-924F-4863-AAE8-5F9A95BA68E5}
+ {44CE6D82-7320-4609-8FC3-5965C19F4808} = {44CE6D82-7320-4609-8FC3-5965C19F4808}
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
+ {EC2A989E-3F8F-4B8B-9AE6-7C7EA37C84BC} = {EC2A989E-3F8F-4B8B-9AE6-7C7EA37C84BC}
+ {A5470DA6-0C3A-4602-B930-43DB25511A59} = {A5470DA6-0C3A-4602-B930-43DB25511A59}
+ {BFA102B0-C891-4E13-B1CF-C2F28073DA8E} = {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}
+ {777F38BE-2DFE-4051-9AAD-2832ABC474CC} = {777F38BE-2DFE-4051-9AAD-2832ABC474CC}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
+ {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
EndProjectSection
EndProject
ProjectSection(ProjectDependencies) = postProject
- {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
- {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
- {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
- {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4} = {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}
- {FCC4483C-5B84-4944-B91F-4589A219BC0B} = {FCC4483C-5B84-4944-B91F-4589A219BC0B}
- {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
- {AF2D801E-EEE7-4B52-A025-F8E648ADC34B} = {AF2D801E-EEE7-4B52-A025-F8E648ADC34B}
- {B5B53617-416F-404A-BF10-22EBCCA0E4FB} = {B5B53617-416F-404A-BF10-22EBCCA0E4FB}
{2ADE3C14-94C4-40BF-B033-70F3C954EE90} = {2ADE3C14-94C4-40BF-B033-70F3C954EE90}
+ {B5B53617-416F-404A-BF10-22EBCCA0E4FB} = {B5B53617-416F-404A-BF10-22EBCCA0E4FB}
+ {AF2D801E-EEE7-4B52-A025-F8E648ADC34B} = {AF2D801E-EEE7-4B52-A025-F8E648ADC34B}
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ {FCC4483C-5B84-4944-B91F-4589A219BC0B} = {FCC4483C-5B84-4944-B91F-4589A219BC0B}
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4} = {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
+ {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
EndProjectSection
EndProject
EndProject
EndProject
ProjectSection(ProjectDependencies) = postProject
- {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
- {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
- {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5} = {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}
{7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5} = {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
+ {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
EndProjectSection
EndProject
ProjectSection(ProjectDependencies) = postProject
- {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
- {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5} = {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}
{7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5} = {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llimagej2coj", "..\llimagej2coj\llimagej2coj_vc8.vcproj", "{4C8D64D5-649F-481E-96BE-EF1E82A77ACB}"
@@ -322,8 +322,8 @@ Global
{328D1968-924F-4863-AAE8-5F9A95BA68E5}.ReleaseForDownload|Win32.Build.0 = Release|Win32
{328D1968-924F-4863-AAE8-5F9A95BA68E5}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
{328D1968-924F-4863-AAE8-5F9A95BA68E5}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
- {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.Debug|Win32.ActiveCfg = ReleaseNoOpt|Win32
- {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.Debug|Win32.Build.0 = ReleaseNoOpt|Win32
+ {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.Debug|Win32.Build.0 = Debug|Win32
{E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
{E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
{E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.Release|Win32.ActiveCfg = Release|Win32
diff --git a/linden/indra/indra_complete/indra_complete_vc9.sln b/linden/indra/indra_complete/indra_complete_vc9.sln
new file mode 100644
index 0000000..8424eb3
--- /dev/null
+++ b/linden/indra/indra_complete/indra_complete_vc9.sln
@@ -0,0 +1,570 @@
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C++ Express 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llcommon", "..\llcommon\llcommon_vc9.vcproj", "{7BCB4B2C-8378-4186-88EA-5742B5ABE17F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llmath", "..\llmath\llmath_vc9.vcproj", "{E87FD9BE-BE42-4EA3-BF4D-D992223046D9}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llmessage", "..\llmessage\llmessage_vc9.vcproj", "{E5D94794-5671-4BD6-A16D-26EC18F3DB34}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvfs", "..\llvfs\llvfs_vc9.vcproj", "{D37774F4-253D-4760-BF64-372A943224A1}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llxml", "..\llxml\llxml_vc9.vcproj", "{A5470DA6-0C3A-4602-B930-43DB25511A59}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llui", "..\llui\llui_vc9.vcproj", "{DE55D666-6A3D-476C-937F-109269B83681}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llimage", "..\llimage\llimage_vc9.vcproj", "{681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llprimitive", "..\llprimitive\llprimitive_vc9.vcproj", "{FCC4483C-5B84-4944-B91F-4589A219BC0B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llcharacter", "..\llcharacter\llcharacter_vc9.vcproj", "{5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llaudio", "..\llaudio\llaudio_vc9.vcproj", "{93B2BA29-FBE9-4376-92C1-6108DCFE09D3}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llrender", "..\llrender\llrender_vc9.vcproj", "{2ADE3C14-94C4-40BF-B033-70F3C954EE90}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llinventory", "..\llinventory\llinventory_vc9.vcproj", "{328D1968-924F-4863-AAE8-5F9A95BA68E5}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "newview", "..\newview\newview_vc9.vcproj", "{E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}"
+ ProjectSection(ProjectDependencies) = postProject
+ {9D0C7E02-6506-4EE7-BC5C-75671D28D594} = {9D0C7E02-6506-4EE7-BC5C-75671D28D594}
+ {2ADE3C14-94C4-40BF-B033-70F3C954EE90} = {2ADE3C14-94C4-40BF-B033-70F3C954EE90}
+ {B5B53617-416F-404A-BF10-22EBCCA0E4FB} = {B5B53617-416F-404A-BF10-22EBCCA0E4FB}
+ {93B2BA29-FBE9-4376-92C1-6108DCFE09D3} = {93B2BA29-FBE9-4376-92C1-6108DCFE09D3}
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ {E928F33B-E090-4FA8-818B-6B5D8B0F1F4B} = {E928F33B-E090-4FA8-818B-6B5D8B0F1F4B}
+ {FCC4483C-5B84-4944-B91F-4589A219BC0B} = {FCC4483C-5B84-4944-B91F-4589A219BC0B}
+ {F882263E-4F2A-43D9-A45A-FA4C8EC66552} = {F882263E-4F2A-43D9-A45A-FA4C8EC66552}
+ {076DD042-2E58-42EA-9401-53210B65C1FC} = {076DD042-2E58-42EA-9401-53210B65C1FC}
+ {DE55D666-6A3D-476C-937F-109269B83681} = {DE55D666-6A3D-476C-937F-109269B83681}
+ {328D1968-924F-4863-AAE8-5F9A95BA68E5} = {328D1968-924F-4863-AAE8-5F9A95BA68E5}
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5} = {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}
+ {44CE6D82-7320-4609-8FC3-5965C19F4808} = {44CE6D82-7320-4609-8FC3-5965C19F4808}
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
+ {A5470DA6-0C3A-4602-B930-43DB25511A59} = {A5470DA6-0C3A-4602-B930-43DB25511A59}
+ {BFA102B0-C891-4E13-B1CF-C2F28073DA8E} = {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
+ {4C8D64D5-649F-481E-96BE-EF1E82A77ACB} = {4C8D64D5-649F-481E-96BE-EF1E82A77ACB}
+ {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E} = {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}
+ {648685F3-8760-4CC5-BB2B-CAF9DECC25A4} = {648685F3-8760-4CC5-BB2B-CAF9DECC25A4}
+ {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
+ EndProjectSection
+EndProject
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llwindow", "..\llwindow\llwindow_vc9.vcproj", "{B5B53617-416F-404A-BF10-22EBCCA0E4FB}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A5470DA6-0C3A-4602-B930-43DB25511A59} = {A5470DA6-0C3A-4602-B930-43DB25511A59}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lscript_library", "..\lscript\lscript_library\lscript_library_vc9.vcproj", "{BFA102B0-C891-4E13-B1CF-C2F28073DA8E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lscript_execute", "..\lscript\lscript_execute\lscript_execute_vc9.vcproj", "{F882263E-4F2A-43D9-A45A-FA4C8EC66552}"
+ ProjectSection(ProjectDependencies) = postProject
+ {BFA102B0-C891-4E13-B1CF-C2F28073DA8E} = {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lscript_compile", "..\lscript\lscript_compile\lscript_compile_vc9.vcproj", "{44CE6D82-7320-4609-8FC3-5965C19F4808}"
+ ProjectSection(ProjectDependencies) = postProject
+ {B771CF1B-E253-47BD-8B0A-6B0440CC9228} = {B771CF1B-E253-47BD-8B0A-6B0440CC9228}
+ {BFA102B0-C891-4E13-B1CF-C2F28073DA8E} = {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}
+ EndProjectSection
+EndProject
+ ProjectSection(ProjectDependencies) = postProject
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ {FCC4483C-5B84-4944-B91F-4589A219BC0B} = {FCC4483C-5B84-4944-B91F-4589A219BC0B}
+ {F882263E-4F2A-43D9-A45A-FA4C8EC66552} = {F882263E-4F2A-43D9-A45A-FA4C8EC66552}
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4} = {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}
+ {328D1968-924F-4863-AAE8-5F9A95BA68E5} = {328D1968-924F-4863-AAE8-5F9A95BA68E5}
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5} = {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}
+ {44CE6D82-7320-4609-8FC3-5965C19F4808} = {44CE6D82-7320-4609-8FC3-5965C19F4808}
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
+ {A5470DA6-0C3A-4602-B930-43DB25511A59} = {A5470DA6-0C3A-4602-B930-43DB25511A59}
+ {BFA102B0-C891-4E13-B1CF-C2F28073DA8E} = {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
+ {B4B838C7-2C72-428E-BBFD-25764E659A8B} = {B4B838C7-2C72-428E-BBFD-25764E659A8B}
+ {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E} = {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}
+ {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
+ {023011F7-3ADB-49D3-9EC5-6D392F6D15FE} = {023011F7-3ADB-49D3-9EC5-6D392F6D15FE}
+ EndProjectSection
+EndProject
+ ProjectSection(ProjectDependencies) = postProject
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4} = {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
+ {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
+ EndProjectSection
+EndProject
+ ProjectSection(ProjectDependencies) = postProject
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4} = {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}
+ {328D1968-924F-4863-AAE8-5F9A95BA68E5} = {328D1968-924F-4863-AAE8-5F9A95BA68E5}
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
+ {A5470DA6-0C3A-4602-B930-43DB25511A59} = {A5470DA6-0C3A-4602-B930-43DB25511A59}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
+ {B4B838C7-2C72-428E-BBFD-25764E659A8B} = {B4B838C7-2C72-428E-BBFD-25764E659A8B}
+ {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E} = {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}
+ {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
+ EndProjectSection
+EndProject
+ ProjectSection(ProjectDependencies) = postProject
+ {44CE6D82-7320-4609-8FC3-5965C19F4808} = {44CE6D82-7320-4609-8FC3-5965C19F4808}
+ EndProjectSection
+EndProject
+ ProjectSection(ProjectDependencies) = postProject
+ {F882263E-4F2A-43D9-A45A-FA4C8EC66552} = {F882263E-4F2A-43D9-A45A-FA4C8EC66552}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "win_crash_logger", "..\win_crash_logger\win_crash_logger_vc9.vcproj", "{648685F3-8760-4CC5-BB2B-CAF9DECC25A4}"
+ ProjectSection(ProjectDependencies) = postProject
+ {B5B53617-416F-404A-BF10-22EBCCA0E4FB} = {B5B53617-416F-404A-BF10-22EBCCA0E4FB}
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
+ {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "win_updater", "..\win_updater\win_updater_vc9.vcproj", "{E928F33B-E090-4FA8-818B-6B5D8B0F1F4B}"
+EndProject
+ ProjectSection(ProjectDependencies) = postProject
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ EndProjectSection
+EndProject
+ ProjectSection(ProjectDependencies) = postProject
+ {2ADE3C14-94C4-40BF-B033-70F3C954EE90} = {2ADE3C14-94C4-40BF-B033-70F3C954EE90}
+ {B5B53617-416F-404A-BF10-22EBCCA0E4FB} = {B5B53617-416F-404A-BF10-22EBCCA0E4FB}
+ {AF2D801E-EEE7-4B52-A025-F8E648ADC34B} = {AF2D801E-EEE7-4B52-A025-F8E648ADC34B}
+ {93B2BA29-FBE9-4376-92C1-6108DCFE09D3} = {93B2BA29-FBE9-4376-92C1-6108DCFE09D3}
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ {DE55D666-6A3D-476C-937F-109269B83681} = {DE55D666-6A3D-476C-937F-109269B83681}
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5} = {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
+ {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llmedia", "..\llmedia\llmedia_vc9.vcproj", "{9D0C7E02-6506-4EE7-BC5C-75671D28D594}"
+EndProject
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "..\test\test_vc9.vcproj", "{BBAA6588-CA96-4A87-A988-B02270B8D02B}"
+ ProjectSection(ProjectDependencies) = postProject
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ {FCC4483C-5B84-4944-B91F-4589A219BC0B} = {FCC4483C-5B84-4944-B91F-4589A219BC0B}
+ {F882263E-4F2A-43D9-A45A-FA4C8EC66552} = {F882263E-4F2A-43D9-A45A-FA4C8EC66552}
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4} = {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}
+ {328D1968-924F-4863-AAE8-5F9A95BA68E5} = {328D1968-924F-4863-AAE8-5F9A95BA68E5}
+ {44CE6D82-7320-4609-8FC3-5965C19F4808} = {44CE6D82-7320-4609-8FC3-5965C19F4808}
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
+ {EC2A989E-3F8F-4B8B-9AE6-7C7EA37C84BC} = {EC2A989E-3F8F-4B8B-9AE6-7C7EA37C84BC}
+ {A5470DA6-0C3A-4602-B930-43DB25511A59} = {A5470DA6-0C3A-4602-B930-43DB25511A59}
+ {BFA102B0-C891-4E13-B1CF-C2F28073DA8E} = {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}
+ {777F38BE-2DFE-4051-9AAD-2832ABC474CC} = {777F38BE-2DFE-4051-9AAD-2832ABC474CC}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
+ {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
+ EndProjectSection
+EndProject
+ ProjectSection(ProjectDependencies) = postProject
+ {2ADE3C14-94C4-40BF-B033-70F3C954EE90} = {2ADE3C14-94C4-40BF-B033-70F3C954EE90}
+ {B5B53617-416F-404A-BF10-22EBCCA0E4FB} = {B5B53617-416F-404A-BF10-22EBCCA0E4FB}
+ {AF2D801E-EEE7-4B52-A025-F8E648ADC34B} = {AF2D801E-EEE7-4B52-A025-F8E648ADC34B}
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ {FCC4483C-5B84-4944-B91F-4589A219BC0B} = {FCC4483C-5B84-4944-B91F-4589A219BC0B}
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4} = {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
+ {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
+ EndProjectSection
+EndProject
+EndProject
+EndProject
+ ProjectSection(ProjectDependencies) = postProject
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5} = {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
+ {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1}
+ EndProjectSection
+EndProject
+ ProjectSection(ProjectDependencies) = postProject
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5} = {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llimagej2coj", "..\llimagej2coj\llimagej2coj_vc9.vcproj", "{4C8D64D5-649F-481E-96BE-EF1E82A77ACB}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lscript_compile_fb_vc9", "..\lscript\lscript_compile\lscript_compile_fb_vc9.vcproj", "{B771CF1B-E253-47BD-8B0A-6B0440CC9228}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ DebugMesaHeadless|Win32 = DebugMesaHeadless|Win32
+ Release|Win32 = Release|Win32
+ ReleaseForDownload|Win32 = ReleaseForDownload|Win32
+ ReleaseNoOpt|Win32 = ReleaseNoOpt|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}.Debug|Win32.Build.0 = Debug|Win32
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}.Release|Win32.ActiveCfg = Release|Win32
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}.Release|Win32.Build.0 = Release|Win32
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}.Debug|Win32.Build.0 = Debug|Win32
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}.Release|Win32.ActiveCfg = Release|Win32
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}.Release|Win32.Build.0 = Release|Win32
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {E87FD9BE-BE42-4EA3-BF4D-D992223046D9}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34}.Debug|Win32.Build.0 = Debug|Win32
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34}.Release|Win32.ActiveCfg = Release|Win32
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34}.Release|Win32.Build.0 = Release|Win32
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {E5D94794-5671-4BD6-A16D-26EC18F3DB34}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {D37774F4-253D-4760-BF64-372A943224A1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D37774F4-253D-4760-BF64-372A943224A1}.Debug|Win32.Build.0 = Debug|Win32
+ {D37774F4-253D-4760-BF64-372A943224A1}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {D37774F4-253D-4760-BF64-372A943224A1}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {D37774F4-253D-4760-BF64-372A943224A1}.Release|Win32.ActiveCfg = Release|Win32
+ {D37774F4-253D-4760-BF64-372A943224A1}.Release|Win32.Build.0 = Release|Win32
+ {D37774F4-253D-4760-BF64-372A943224A1}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {D37774F4-253D-4760-BF64-372A943224A1}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {D37774F4-253D-4760-BF64-372A943224A1}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {D37774F4-253D-4760-BF64-372A943224A1}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {A5470DA6-0C3A-4602-B930-43DB25511A59}.Debug|Win32.ActiveCfg = Debug|Win32
+ {A5470DA6-0C3A-4602-B930-43DB25511A59}.Debug|Win32.Build.0 = Debug|Win32
+ {A5470DA6-0C3A-4602-B930-43DB25511A59}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {A5470DA6-0C3A-4602-B930-43DB25511A59}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {A5470DA6-0C3A-4602-B930-43DB25511A59}.Release|Win32.ActiveCfg = Release|Win32
+ {A5470DA6-0C3A-4602-B930-43DB25511A59}.Release|Win32.Build.0 = Release|Win32
+ {A5470DA6-0C3A-4602-B930-43DB25511A59}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {A5470DA6-0C3A-4602-B930-43DB25511A59}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {A5470DA6-0C3A-4602-B930-43DB25511A59}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {A5470DA6-0C3A-4602-B930-43DB25511A59}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {DE55D666-6A3D-476C-937F-109269B83681}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DE55D666-6A3D-476C-937F-109269B83681}.Debug|Win32.Build.0 = Debug|Win32
+ {DE55D666-6A3D-476C-937F-109269B83681}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {DE55D666-6A3D-476C-937F-109269B83681}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {DE55D666-6A3D-476C-937F-109269B83681}.Release|Win32.ActiveCfg = Release|Win32
+ {DE55D666-6A3D-476C-937F-109269B83681}.Release|Win32.Build.0 = Release|Win32
+ {DE55D666-6A3D-476C-937F-109269B83681}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {DE55D666-6A3D-476C-937F-109269B83681}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {DE55D666-6A3D-476C-937F-109269B83681}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {DE55D666-6A3D-476C-937F-109269B83681}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}.Debug|Win32.ActiveCfg = Debug|Win32
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}.Debug|Win32.Build.0 = Debug|Win32
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}.Release|Win32.ActiveCfg = Release|Win32
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}.Release|Win32.Build.0 = Release|Win32
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {FCC4483C-5B84-4944-B91F-4589A219BC0B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {FCC4483C-5B84-4944-B91F-4589A219BC0B}.Debug|Win32.Build.0 = Debug|Win32
+ {FCC4483C-5B84-4944-B91F-4589A219BC0B}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {FCC4483C-5B84-4944-B91F-4589A219BC0B}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {FCC4483C-5B84-4944-B91F-4589A219BC0B}.Release|Win32.ActiveCfg = Release|Win32
+ {FCC4483C-5B84-4944-B91F-4589A219BC0B}.Release|Win32.Build.0 = Release|Win32
+ {FCC4483C-5B84-4944-B91F-4589A219BC0B}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {FCC4483C-5B84-4944-B91F-4589A219BC0B}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {FCC4483C-5B84-4944-B91F-4589A219BC0B}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {FCC4483C-5B84-4944-B91F-4589A219BC0B}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}.Debug|Win32.Build.0 = Debug|Win32
+ {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}.Release|Win32.ActiveCfg = Release|Win32
+ {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}.Release|Win32.Build.0 = Release|Win32
+ {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {93B2BA29-FBE9-4376-92C1-6108DCFE09D3}.Debug|Win32.ActiveCfg = Debug|Win32
+ {93B2BA29-FBE9-4376-92C1-6108DCFE09D3}.Debug|Win32.Build.0 = Debug|Win32
+ {93B2BA29-FBE9-4376-92C1-6108DCFE09D3}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {93B2BA29-FBE9-4376-92C1-6108DCFE09D3}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {93B2BA29-FBE9-4376-92C1-6108DCFE09D3}.Release|Win32.ActiveCfg = Release|Win32
+ {93B2BA29-FBE9-4376-92C1-6108DCFE09D3}.Release|Win32.Build.0 = Release|Win32
+ {93B2BA29-FBE9-4376-92C1-6108DCFE09D3}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {93B2BA29-FBE9-4376-92C1-6108DCFE09D3}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {93B2BA29-FBE9-4376-92C1-6108DCFE09D3}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {93B2BA29-FBE9-4376-92C1-6108DCFE09D3}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {2ADE3C14-94C4-40BF-B033-70F3C954EE90}.Debug|Win32.ActiveCfg = Debug|Win32
+ {2ADE3C14-94C4-40BF-B033-70F3C954EE90}.Debug|Win32.Build.0 = Debug|Win32
+ {2ADE3C14-94C4-40BF-B033-70F3C954EE90}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {2ADE3C14-94C4-40BF-B033-70F3C954EE90}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {2ADE3C14-94C4-40BF-B033-70F3C954EE90}.Release|Win32.ActiveCfg = Release|Win32
+ {2ADE3C14-94C4-40BF-B033-70F3C954EE90}.Release|Win32.Build.0 = Release|Win32
+ {2ADE3C14-94C4-40BF-B033-70F3C954EE90}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {2ADE3C14-94C4-40BF-B033-70F3C954EE90}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {2ADE3C14-94C4-40BF-B033-70F3C954EE90}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {2ADE3C14-94C4-40BF-B033-70F3C954EE90}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {328D1968-924F-4863-AAE8-5F9A95BA68E5}.Debug|Win32.ActiveCfg = Debug|Win32
+ {328D1968-924F-4863-AAE8-5F9A95BA68E5}.Debug|Win32.Build.0 = Debug|Win32
+ {328D1968-924F-4863-AAE8-5F9A95BA68E5}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {328D1968-924F-4863-AAE8-5F9A95BA68E5}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {328D1968-924F-4863-AAE8-5F9A95BA68E5}.Release|Win32.ActiveCfg = Release|Win32
+ {328D1968-924F-4863-AAE8-5F9A95BA68E5}.Release|Win32.Build.0 = Release|Win32
+ {328D1968-924F-4863-AAE8-5F9A95BA68E5}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {328D1968-924F-4863-AAE8-5F9A95BA68E5}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {328D1968-924F-4863-AAE8-5F9A95BA68E5}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {328D1968-924F-4863-AAE8-5F9A95BA68E5}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.Debug|Win32.Build.0 = Debug|Win32
+ {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.Release|Win32.ActiveCfg = Release|Win32
+ {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.Release|Win32.Build.0 = Release|Win32
+ {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.ReleaseForDownload|Win32.ActiveCfg = ReleaseForDownload|Win32
+ {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.ReleaseForDownload|Win32.Build.0 = ReleaseForDownload|Win32
+ {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {B4B838C7-2C72-428E-BBFD-25764E659A8B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {B4B838C7-2C72-428E-BBFD-25764E659A8B}.Debug|Win32.Build.0 = Debug|Win32
+ {B4B838C7-2C72-428E-BBFD-25764E659A8B}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {B4B838C7-2C72-428E-BBFD-25764E659A8B}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {B4B838C7-2C72-428E-BBFD-25764E659A8B}.Release|Win32.ActiveCfg = Release|Win32
+ {B4B838C7-2C72-428E-BBFD-25764E659A8B}.Release|Win32.Build.0 = Release|Win32
+ {B4B838C7-2C72-428E-BBFD-25764E659A8B}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {B4B838C7-2C72-428E-BBFD-25764E659A8B}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {B4B838C7-2C72-428E-BBFD-25764E659A8B}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {B4B838C7-2C72-428E-BBFD-25764E659A8B}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {B5B53617-416F-404A-BF10-22EBCCA0E4FB}.Debug|Win32.ActiveCfg = Debug|Win32
+ {B5B53617-416F-404A-BF10-22EBCCA0E4FB}.Debug|Win32.Build.0 = Debug|Win32
+ {B5B53617-416F-404A-BF10-22EBCCA0E4FB}.DebugMesaHeadless|Win32.ActiveCfg = DebugMesaHeadless|Win32
+ {B5B53617-416F-404A-BF10-22EBCCA0E4FB}.DebugMesaHeadless|Win32.Build.0 = DebugMesaHeadless|Win32
+ {B5B53617-416F-404A-BF10-22EBCCA0E4FB}.Release|Win32.ActiveCfg = Release|Win32
+ {B5B53617-416F-404A-BF10-22EBCCA0E4FB}.Release|Win32.Build.0 = Release|Win32
+ {B5B53617-416F-404A-BF10-22EBCCA0E4FB}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {B5B53617-416F-404A-BF10-22EBCCA0E4FB}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {B5B53617-416F-404A-BF10-22EBCCA0E4FB}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {B5B53617-416F-404A-BF10-22EBCCA0E4FB}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}.Debug|Win32.Build.0 = Debug|Win32
+ {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}.Release|Win32.ActiveCfg = Release|Win32
+ {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}.Release|Win32.Build.0 = Release|Win32
+ {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {BFA102B0-C891-4E13-B1CF-C2F28073DA8E}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {F882263E-4F2A-43D9-A45A-FA4C8EC66552}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F882263E-4F2A-43D9-A45A-FA4C8EC66552}.Debug|Win32.Build.0 = Debug|Win32
+ {F882263E-4F2A-43D9-A45A-FA4C8EC66552}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {F882263E-4F2A-43D9-A45A-FA4C8EC66552}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {F882263E-4F2A-43D9-A45A-FA4C8EC66552}.Release|Win32.ActiveCfg = Release|Win32
+ {F882263E-4F2A-43D9-A45A-FA4C8EC66552}.Release|Win32.Build.0 = Release|Win32
+ {F882263E-4F2A-43D9-A45A-FA4C8EC66552}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {F882263E-4F2A-43D9-A45A-FA4C8EC66552}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {F882263E-4F2A-43D9-A45A-FA4C8EC66552}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {F882263E-4F2A-43D9-A45A-FA4C8EC66552}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {44CE6D82-7320-4609-8FC3-5965C19F4808}.Debug|Win32.ActiveCfg = Debug|Win32
+ {44CE6D82-7320-4609-8FC3-5965C19F4808}.Debug|Win32.Build.0 = Debug|Win32
+ {44CE6D82-7320-4609-8FC3-5965C19F4808}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {44CE6D82-7320-4609-8FC3-5965C19F4808}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {44CE6D82-7320-4609-8FC3-5965C19F4808}.Release|Win32.ActiveCfg = Release|Win32
+ {44CE6D82-7320-4609-8FC3-5965C19F4808}.Release|Win32.Build.0 = Release|Win32
+ {44CE6D82-7320-4609-8FC3-5965C19F4808}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {44CE6D82-7320-4609-8FC3-5965C19F4808}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {44CE6D82-7320-4609-8FC3-5965C19F4808}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {44CE6D82-7320-4609-8FC3-5965C19F4808}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {D0FDC1C3-A589-40F2-ABCA-A84FF3835624}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D0FDC1C3-A589-40F2-ABCA-A84FF3835624}.Debug|Win32.Build.0 = Debug|Win32
+ {D0FDC1C3-A589-40F2-ABCA-A84FF3835624}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {D0FDC1C3-A589-40F2-ABCA-A84FF3835624}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {D0FDC1C3-A589-40F2-ABCA-A84FF3835624}.Release|Win32.ActiveCfg = Release|Win32
+ {D0FDC1C3-A589-40F2-ABCA-A84FF3835624}.Release|Win32.Build.0 = Release|Win32
+ {D0FDC1C3-A589-40F2-ABCA-A84FF3835624}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {D0FDC1C3-A589-40F2-ABCA-A84FF3835624}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {D0FDC1C3-A589-40F2-ABCA-A84FF3835624}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {D0FDC1C3-A589-40F2-ABCA-A84FF3835624}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {C6CA76F5-DCB4-4789-BBA7-43D11EE7C8E2}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C6CA76F5-DCB4-4789-BBA7-43D11EE7C8E2}.Debug|Win32.Build.0 = Debug|Win32
+ {C6CA76F5-DCB4-4789-BBA7-43D11EE7C8E2}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {C6CA76F5-DCB4-4789-BBA7-43D11EE7C8E2}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {C6CA76F5-DCB4-4789-BBA7-43D11EE7C8E2}.Release|Win32.ActiveCfg = Release|Win32
+ {C6CA76F5-DCB4-4789-BBA7-43D11EE7C8E2}.Release|Win32.Build.0 = Release|Win32
+ {C6CA76F5-DCB4-4789-BBA7-43D11EE7C8E2}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {C6CA76F5-DCB4-4789-BBA7-43D11EE7C8E2}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {C6CA76F5-DCB4-4789-BBA7-43D11EE7C8E2}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {C6CA76F5-DCB4-4789-BBA7-43D11EE7C8E2}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {A5504A1E-8BA4-45D2-8144-1B6937E37E98}.Debug|Win32.ActiveCfg = Debug|Win32
+ {A5504A1E-8BA4-45D2-8144-1B6937E37E98}.Debug|Win32.Build.0 = Debug|Win32
+ {A5504A1E-8BA4-45D2-8144-1B6937E37E98}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {A5504A1E-8BA4-45D2-8144-1B6937E37E98}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {A5504A1E-8BA4-45D2-8144-1B6937E37E98}.Release|Win32.ActiveCfg = Release|Win32
+ {A5504A1E-8BA4-45D2-8144-1B6937E37E98}.Release|Win32.Build.0 = Release|Win32
+ {A5504A1E-8BA4-45D2-8144-1B6937E37E98}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {A5504A1E-8BA4-45D2-8144-1B6937E37E98}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {A5504A1E-8BA4-45D2-8144-1B6937E37E98}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {A5504A1E-8BA4-45D2-8144-1B6937E37E98}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {777F38BE-2DFE-4051-9AAD-2832ABC474CC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {777F38BE-2DFE-4051-9AAD-2832ABC474CC}.Debug|Win32.Build.0 = Debug|Win32
+ {777F38BE-2DFE-4051-9AAD-2832ABC474CC}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {777F38BE-2DFE-4051-9AAD-2832ABC474CC}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {777F38BE-2DFE-4051-9AAD-2832ABC474CC}.Release|Win32.ActiveCfg = Release|Win32
+ {777F38BE-2DFE-4051-9AAD-2832ABC474CC}.Release|Win32.Build.0 = Release|Win32
+ {777F38BE-2DFE-4051-9AAD-2832ABC474CC}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {777F38BE-2DFE-4051-9AAD-2832ABC474CC}.ReleaseNoOpt|Win32.ActiveCfg = Release|Win32
+ {777F38BE-2DFE-4051-9AAD-2832ABC474CC}.ReleaseNoOpt|Win32.Build.0 = Release|Win32
+ {EC2A989E-3F8F-4B8B-9AE6-7C7EA37C84BC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EC2A989E-3F8F-4B8B-9AE6-7C7EA37C84BC}.Debug|Win32.Build.0 = Debug|Win32
+ {EC2A989E-3F8F-4B8B-9AE6-7C7EA37C84BC}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {EC2A989E-3F8F-4B8B-9AE6-7C7EA37C84BC}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {EC2A989E-3F8F-4B8B-9AE6-7C7EA37C84BC}.Release|Win32.ActiveCfg = Release|Win32
+ {EC2A989E-3F8F-4B8B-9AE6-7C7EA37C84BC}.Release|Win32.Build.0 = Release|Win32
+ {EC2A989E-3F8F-4B8B-9AE6-7C7EA37C84BC}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {EC2A989E-3F8F-4B8B-9AE6-7C7EA37C84BC}.ReleaseNoOpt|Win32.ActiveCfg = Release|Win32
+ {EC2A989E-3F8F-4B8B-9AE6-7C7EA37C84BC}.ReleaseNoOpt|Win32.Build.0 = Release|Win32
+ {648685F3-8760-4CC5-BB2B-CAF9DECC25A4}.Debug|Win32.ActiveCfg = Debug|Win32
+ {648685F3-8760-4CC5-BB2B-CAF9DECC25A4}.Debug|Win32.Build.0 = Debug|Win32
+ {648685F3-8760-4CC5-BB2B-CAF9DECC25A4}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {648685F3-8760-4CC5-BB2B-CAF9DECC25A4}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {648685F3-8760-4CC5-BB2B-CAF9DECC25A4}.Release|Win32.ActiveCfg = Release|Win32
+ {648685F3-8760-4CC5-BB2B-CAF9DECC25A4}.Release|Win32.Build.0 = Release|Win32
+ {648685F3-8760-4CC5-BB2B-CAF9DECC25A4}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {648685F3-8760-4CC5-BB2B-CAF9DECC25A4}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {648685F3-8760-4CC5-BB2B-CAF9DECC25A4}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {E928F33B-E090-4FA8-818B-6B5D8B0F1F4B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E928F33B-E090-4FA8-818B-6B5D8B0F1F4B}.Debug|Win32.Build.0 = Debug|Win32
+ {E928F33B-E090-4FA8-818B-6B5D8B0F1F4B}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {E928F33B-E090-4FA8-818B-6B5D8B0F1F4B}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {E928F33B-E090-4FA8-818B-6B5D8B0F1F4B}.Release|Win32.ActiveCfg = Release|Win32
+ {E928F33B-E090-4FA8-818B-6B5D8B0F1F4B}.Release|Win32.Build.0 = Release|Win32
+ {E928F33B-E090-4FA8-818B-6B5D8B0F1F4B}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {E928F33B-E090-4FA8-818B-6B5D8B0F1F4B}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {E928F33B-E090-4FA8-818B-6B5D8B0F1F4B}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {E928F33B-E090-4FA8-818B-6B5D8B0F1F4B}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {F56CA265-93E9-4068-8A67-8B104C876D70}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F56CA265-93E9-4068-8A67-8B104C876D70}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {F56CA265-93E9-4068-8A67-8B104C876D70}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {F56CA265-93E9-4068-8A67-8B104C876D70}.Release|Win32.ActiveCfg = Release|Win32
+ {F56CA265-93E9-4068-8A67-8B104C876D70}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {F56CA265-93E9-4068-8A67-8B104C876D70}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {BF69CC7B-5C5B-40C3-93CB-92AD6A5FBC45}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BF69CC7B-5C5B-40C3-93CB-92AD6A5FBC45}.Debug|Win32.Build.0 = Debug|Win32
+ {BF69CC7B-5C5B-40C3-93CB-92AD6A5FBC45}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {BF69CC7B-5C5B-40C3-93CB-92AD6A5FBC45}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {BF69CC7B-5C5B-40C3-93CB-92AD6A5FBC45}.Release|Win32.ActiveCfg = Release|Win32
+ {BF69CC7B-5C5B-40C3-93CB-92AD6A5FBC45}.Release|Win32.Build.0 = Release|Win32
+ {BF69CC7B-5C5B-40C3-93CB-92AD6A5FBC45}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {BF69CC7B-5C5B-40C3-93CB-92AD6A5FBC45}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {BF69CC7B-5C5B-40C3-93CB-92AD6A5FBC45}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {9D0C7E02-6506-4EE7-BC5C-75671D28D594}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9D0C7E02-6506-4EE7-BC5C-75671D28D594}.Debug|Win32.Build.0 = Debug|Win32
+ {9D0C7E02-6506-4EE7-BC5C-75671D28D594}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {9D0C7E02-6506-4EE7-BC5C-75671D28D594}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {9D0C7E02-6506-4EE7-BC5C-75671D28D594}.Release|Win32.ActiveCfg = Release|Win32
+ {9D0C7E02-6506-4EE7-BC5C-75671D28D594}.Release|Win32.Build.0 = Release|Win32
+ {9D0C7E02-6506-4EE7-BC5C-75671D28D594}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {9D0C7E02-6506-4EE7-BC5C-75671D28D594}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {9D0C7E02-6506-4EE7-BC5C-75671D28D594}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {9D0C7E02-6506-4EE7-BC5C-75671D28D594}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}.Debug|Win32.ActiveCfg = Debug|Win32
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}.Debug|Win32.Build.0 = Debug|Win32
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}.Release|Win32.ActiveCfg = Release|Win32
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}.Release|Win32.Build.0 = Release|Win32
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {BBAA6588-CA96-4A87-A988-B02270B8D02B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BBAA6588-CA96-4A87-A988-B02270B8D02B}.Debug|Win32.Build.0 = Debug|Win32
+ {BBAA6588-CA96-4A87-A988-B02270B8D02B}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {BBAA6588-CA96-4A87-A988-B02270B8D02B}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {BBAA6588-CA96-4A87-A988-B02270B8D02B}.Release|Win32.ActiveCfg = Release|Win32
+ {BBAA6588-CA96-4A87-A988-B02270B8D02B}.Release|Win32.Build.0 = Release|Win32
+ {BBAA6588-CA96-4A87-A988-B02270B8D02B}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {BBAA6588-CA96-4A87-A988-B02270B8D02B}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {BBAA6588-CA96-4A87-A988-B02270B8D02B}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {E9F5BD55-F8E8-4C61-B9B5-CCE7C1048241}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E9F5BD55-F8E8-4C61-B9B5-CCE7C1048241}.Debug|Win32.Build.0 = Debug|Win32
+ {E9F5BD55-F8E8-4C61-B9B5-CCE7C1048241}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {E9F5BD55-F8E8-4C61-B9B5-CCE7C1048241}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {E9F5BD55-F8E8-4C61-B9B5-CCE7C1048241}.Release|Win32.ActiveCfg = Release|Win32
+ {E9F5BD55-F8E8-4C61-B9B5-CCE7C1048241}.Release|Win32.Build.0 = Release|Win32
+ {E9F5BD55-F8E8-4C61-B9B5-CCE7C1048241}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {E9F5BD55-F8E8-4C61-B9B5-CCE7C1048241}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {E9F5BD55-F8E8-4C61-B9B5-CCE7C1048241}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {E9F5BD55-F8E8-4C61-B9B5-CCE7C1048241}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {023011F7-3ADB-49D3-9EC5-6D392F6D15FE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {023011F7-3ADB-49D3-9EC5-6D392F6D15FE}.Debug|Win32.Build.0 = Debug|Win32
+ {023011F7-3ADB-49D3-9EC5-6D392F6D15FE}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {023011F7-3ADB-49D3-9EC5-6D392F6D15FE}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {023011F7-3ADB-49D3-9EC5-6D392F6D15FE}.Release|Win32.ActiveCfg = Release|Win32
+ {023011F7-3ADB-49D3-9EC5-6D392F6D15FE}.Release|Win32.Build.0 = Release|Win32
+ {023011F7-3ADB-49D3-9EC5-6D392F6D15FE}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {023011F7-3ADB-49D3-9EC5-6D392F6D15FE}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {023011F7-3ADB-49D3-9EC5-6D392F6D15FE}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {023011F7-3ADB-49D3-9EC5-6D392F6D15FE}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {6AEE004D-BFE8-4082-B4D3-E51163B01EEB}.Debug|Win32.ActiveCfg = Debug|Win32
+ {6AEE004D-BFE8-4082-B4D3-E51163B01EEB}.Debug|Win32.Build.0 = Debug|Win32
+ {6AEE004D-BFE8-4082-B4D3-E51163B01EEB}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {6AEE004D-BFE8-4082-B4D3-E51163B01EEB}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {6AEE004D-BFE8-4082-B4D3-E51163B01EEB}.Release|Win32.ActiveCfg = Release|Win32
+ {6AEE004D-BFE8-4082-B4D3-E51163B01EEB}.Release|Win32.Build.0 = Release|Win32
+ {6AEE004D-BFE8-4082-B4D3-E51163B01EEB}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {6AEE004D-BFE8-4082-B4D3-E51163B01EEB}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {6AEE004D-BFE8-4082-B4D3-E51163B01EEB}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {6AEE004D-BFE8-4082-B4D3-E51163B01EEB}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {076DD042-2E58-42EA-9401-53210B65C1FC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {076DD042-2E58-42EA-9401-53210B65C1FC}.Debug|Win32.Build.0 = Debug|Win32
+ {076DD042-2E58-42EA-9401-53210B65C1FC}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {076DD042-2E58-42EA-9401-53210B65C1FC}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {076DD042-2E58-42EA-9401-53210B65C1FC}.Release|Win32.ActiveCfg = Release|Win32
+ {076DD042-2E58-42EA-9401-53210B65C1FC}.Release|Win32.Build.0 = Release|Win32
+ {076DD042-2E58-42EA-9401-53210B65C1FC}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {076DD042-2E58-42EA-9401-53210B65C1FC}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {076DD042-2E58-42EA-9401-53210B65C1FC}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {076DD042-2E58-42EA-9401-53210B65C1FC}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {AF2D801E-EEE7-4B52-A025-F8E648ADC34B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {AF2D801E-EEE7-4B52-A025-F8E648ADC34B}.Debug|Win32.Build.0 = Debug|Win32
+ {AF2D801E-EEE7-4B52-A025-F8E648ADC34B}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {AF2D801E-EEE7-4B52-A025-F8E648ADC34B}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {AF2D801E-EEE7-4B52-A025-F8E648ADC34B}.Release|Win32.ActiveCfg = Release|Win32
+ {AF2D801E-EEE7-4B52-A025-F8E648ADC34B}.Release|Win32.Build.0 = Release|Win32
+ {AF2D801E-EEE7-4B52-A025-F8E648ADC34B}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {AF2D801E-EEE7-4B52-A025-F8E648ADC34B}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {AF2D801E-EEE7-4B52-A025-F8E648ADC34B}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {AF2D801E-EEE7-4B52-A025-F8E648ADC34B}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {4C8D64D5-649F-481E-96BE-EF1E82A77ACB}.Debug|Win32.ActiveCfg = Debug|Win32
+ {4C8D64D5-649F-481E-96BE-EF1E82A77ACB}.Debug|Win32.Build.0 = Debug|Win32
+ {4C8D64D5-649F-481E-96BE-EF1E82A77ACB}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {4C8D64D5-649F-481E-96BE-EF1E82A77ACB}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {4C8D64D5-649F-481E-96BE-EF1E82A77ACB}.Release|Win32.ActiveCfg = Release|Win32
+ {4C8D64D5-649F-481E-96BE-EF1E82A77ACB}.Release|Win32.Build.0 = Release|Win32
+ {4C8D64D5-649F-481E-96BE-EF1E82A77ACB}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {4C8D64D5-649F-481E-96BE-EF1E82A77ACB}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {4C8D64D5-649F-481E-96BE-EF1E82A77ACB}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
+ {4C8D64D5-649F-481E-96BE-EF1E82A77ACB}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
+ {B771CF1B-E253-47BD-8B0A-6B0440CC9228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {B771CF1B-E253-47BD-8B0A-6B0440CC9228}.Debug|Win32.Build.0 = Debug|Win32
+ {B771CF1B-E253-47BD-8B0A-6B0440CC9228}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
+ {B771CF1B-E253-47BD-8B0A-6B0440CC9228}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32
+ {B771CF1B-E253-47BD-8B0A-6B0440CC9228}.Release|Win32.ActiveCfg = Release|Win32
+ {B771CF1B-E253-47BD-8B0A-6B0440CC9228}.Release|Win32.Build.0 = Release|Win32
+ {B771CF1B-E253-47BD-8B0A-6B0440CC9228}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
+ {B771CF1B-E253-47BD-8B0A-6B0440CC9228}.ReleaseForDownload|Win32.Build.0 = Release|Win32
+ {B771CF1B-E253-47BD-8B0A-6B0440CC9228}.ReleaseNoOpt|Win32.ActiveCfg = Release|Win32
+ {B771CF1B-E253-47BD-8B0A-6B0440CC9228}.ReleaseNoOpt|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/linden/indra/lib/python/indra/base/lluuid.py b/linden/indra/lib/python/indra/base/lluuid.py
index e9916a1..f173310 100644
--- a/linden/indra/lib/python/indra/base/lluuid.py
+++ b/linden/indra/lib/python/indra/base/lluuid.py
@@ -212,6 +212,10 @@ class UUID(object):
_int2binstr(v3,4) + \
_int2binstr(v4,4)
+
+# module-level null constant
+NULL = UUID()
+
def printTranslatedMemory(four_hex_uints):
"""
We expect to get the string as four hex units. eg:
@@ -276,7 +280,8 @@ try:
from mulib import stacked
stacked.NoProducer() # just to exercise stacked
except:
- print "Couldn't import mulib.stacked, not registering UUID converter"
+ #print "Couldn't import mulib.stacked, not registering UUID converter"
+ pass
else:
def convertUUID(uuid, req):
req.write(str(uuid))
diff --git a/linden/indra/lib/python/indra/base/metrics.py b/linden/indra/lib/python/indra/base/metrics.py
new file mode 100644
index 0000000..e640c45
--- /dev/null
+++ b/linden/indra/lib/python/indra/base/metrics.py
@@ -0,0 +1,42 @@
+"""\
+@file metrics.py
+@author Phoenix
+@date 2007-11-27
+@brief simple interface for logging metrics
+
+$LicenseInfo:firstyear=2007&license=mit$
+
+Copyright (c) 2007-2008, Linden Research, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+$/LicenseInfo$
+"""
+
+import sys
+from indra.base import llsd
+
+def log(location, stats, file=None):
+ "Write a standard llmetrics log"
+ metrics = {'location':location, 'stats':stats}
+ if file is None:
+ # do this check here in case sys.stdout changes at some
+ # point. as a default parameter, it will never be
+ # re-evaluated.
+ file = sys.stdout
+ print >>file, "LLMETRICS:", llsd.format_notation(metrics)
diff --git a/linden/indra/lib/python/indra/ipc/mysql_pool.py b/linden/indra/lib/python/indra/ipc/mysql_pool.py
index bdc7eff..0a06cdd 100644
--- a/linden/indra/lib/python/indra/ipc/mysql_pool.py
+++ b/linden/indra/lib/python/indra/ipc/mysql_pool.py
@@ -97,7 +97,7 @@ class ConnectionPool(Pool):
except (AttributeError, DeadProcess), e:
conn = self.create()
# TODO figure out if we're still connected to the database
- if conn:
+ if conn is not None:
Pool.put(self, conn)
else:
self.current_size -= 1
diff --git a/linden/indra/lib/python/indra/ipc/saranwrap.py b/linden/indra/lib/python/indra/ipc/saranwrap.py
index 5a2cf72..e0205bf 100644
--- a/linden/indra/lib/python/indra/ipc/saranwrap.py
+++ b/linden/indra/lib/python/indra/ipc/saranwrap.py
@@ -110,6 +110,12 @@ _g_debug_mode = False
if _g_debug_mode:
import traceback
+def pythonpath_sync():
+ """
+@brief apply the current sys.path to the environment variable PYTHONPATH, so that child processes have the same paths as the caller does.
+"""
+ pypath = os.pathsep.join(sys.path)
+ os.environ['PYTHONPATH'] = pypath
def wrap(obj, dead_callback = None):
"""
@@ -119,6 +125,7 @@ def wrap(obj, dead_callback = None):
if type(obj).__name__ == 'module':
return wrap_module(obj.__name__, dead_callback)
+ pythonpath_sync()
p = Process('python', [__file__, '--child'], dead_callback)
prox = Proxy(p, p)
prox.obj = obj
@@ -129,6 +136,7 @@ def wrap_module(fqname, dead_callback = None):
@brief wrap a module in another process through a saranwrap proxy
@param fqname The fully qualified name of the module.
@param dead_callback A callable to invoke if the process exits."""
+ pythonpath_sync()
global _g_debug_mode
if _g_debug_mode:
p = Process('python', [__file__, '--module', fqname, '--logfile', '/tmp/saranwrap.log'], dead_callback)
@@ -277,12 +285,13 @@ not supported, so you have to know what has been exported.
my_in = self.__local_dict['_in']
my_out = self.__local_dict['_out']
my_id = self.__local_dict['_id']
+
_dead_list = self.__local_dict['_dead_list']
- for dead_object in _dead_list:
- request = Request('del', {'id':dead_object})
- _write_request(request, my_out)
- response = _read_response(my_id, attribute, my_in, my_out, _dead_list)
- _dead_list.clear()
+ for dead_object in _dead_list.copy():
+ request = Request('del', {'id':dead_object})
+ _write_request(request, my_out)
+ response = _read_response(my_id, attribute, my_in, my_out, _dead_list)
+ _dead_list.remove(dead_object)
# Pass all public attributes across to find out if it is
# callable or a simple attribute.
@@ -327,7 +336,7 @@ not need to deal with this class directly."""
def __del__(self):
my_id = self.__local_dict['_id']
- #_prnt"ObjectProxy::__del__ %s" % my_id
+ _prnt("ObjectProxy::__del__ %s" % my_id)
self.__local_dict['_dead_list'].add(my_id)
def __getitem__(self, key):
@@ -369,6 +378,11 @@ not need to deal with this class directly."""
# tack anything on to the return value here because str values are used as data.
return self.__str__()
+ def __len__(self):
+ # see description for __repr__, len(obj) is the same. Unfortunately, __len__ is also
+ # used when determining whether an object is boolean or not, e.g. if proxied_object:
+ return self.__len__()
+
def proxied_type(self):
if type(self) is not ObjectProxy:
return type(self)
@@ -554,7 +568,7 @@ when the id is None."""
@param value The value to test.
@return Returns true if value is a simple serializeable set of data.
"""
- return type(value) in (str,int,float,long,bool,type(None))
+ return type(value) in (str,unicode,int,float,long,bool,type(None))
def respond(self, body):
_log("responding with: %s" % body)
diff --git a/linden/indra/lib/python/indra/util/llmanifest.py b/linden/indra/lib/python/indra/util/llmanifest.py
index 2e6f410..e5a732d 100644
--- a/linden/indra/lib/python/indra/util/llmanifest.py
+++ b/linden/indra/lib/python/indra/util/llmanifest.py
@@ -28,6 +28,7 @@ $/LicenseInfo$
"""
import commands
+import errno
import filecmp
import fnmatch
import getopt
diff --git a/linden/indra/lib/python/indra/util/named_query.py b/linden/indra/lib/python/indra/util/named_query.py
index 1e1701c..c462d9f 100644
--- a/linden/indra/lib/python/indra/util/named_query.py
+++ b/linden/indra/lib/python/indra/util/named_query.py
@@ -28,20 +28,33 @@ THE SOFTWARE.
$/LicenseInfo$
"""
+import errno
import MySQLdb
+import MySQLdb.cursors
import os
import os.path
+import re
import time
+#import sys # *TODO: remove. only used in testing.
+#import pprint # *TODO: remove. only used in testing.
+
+try:
+ set = set
+except NameError:
+ from sets import Set as set
+
from indra.base import llsd
from indra.base import config
-from indra.ipc import russ
_g_named_manager = None
-# this function is entirely intended for testing purposes,
-# because it's tricky to control the config from inside a test
def _init_g_named_manager(sql_dir = None):
+ """Initializes a global NamedManager object to point at a
+ specified named queries hierarchy.
+
+ This function is intended entirely for testing purposes,
+ because it's tricky to control the config from inside a test."""
if sql_dir is None:
sql_dir = config.get('named-query-base-dir')
global _g_named_manager
@@ -49,14 +62,14 @@ def _init_g_named_manager(sql_dir = None):
os.path.abspath(os.path.realpath(sql_dir)))
def get(name):
- "@brief get the named query object to be used to perform queries"
+ "Get the named query object to be used to perform queries"
if _g_named_manager is None:
_init_g_named_manager()
return _g_named_manager.get(name)
-def sql(name, params):
+def sql(connection, name, params):
# use module-global NamedQuery object to perform default substitution
- return get(name).sql(params)
+ return get(name).sql(connection, params)
def run(connection, name, params, expect_rows = None):
"""\
@@ -72,66 +85,243 @@ Note that this function will fetch ALL rows.
return get(name).run(connection, params, expect_rows)
class ExpectationFailed(Exception):
+ """ Exception that is raised when an expectation for an sql query
+ is not met."""
def __init__(self, message):
+ Exception.__init__(self, message)
self.message = message
class NamedQuery(object):
def __init__(self, name, filename):
- self._stat_interval = 5000 # 5 seconds
+ """ Construct a NamedQuery object. The name argument is an
+ arbitrary name as a handle for the query, and the filename is
+ a path to a file containing an llsd named query document."""
+ self._stat_interval_seconds = 5 # 5 seconds
self._name = name
self._location = filename
+ self._alternative = dict()
+ self._last_mod_time = 0
+ self._last_check_time = 0
+ self.deleted = False
self.load_contents()
def name(self):
+ """ The name of the query. """
return self._name
def get_modtime(self):
- return os.path.getmtime(self._location)
+ """ Returns the mtime (last modified time) of the named query
+ file, if such exists."""
+ if self._location:
+ return os.path.getmtime(self._location)
+ return 0
def load_contents(self):
- self._contents = llsd.parse(open(self._location).read())
+ """ Loads and parses the named query file into self. Does
+ nothing if self.location is nonexistant."""
+ if self._location:
+ self._reference_contents(llsd.parse(open(self._location).read()))
+ # Check for alternative implementations
+ try:
+ for name, alt in self._contents['alternative'].items():
+ nq = NamedQuery(name, None)
+ nq._reference_contents(alt)
+ self._alternative[name] = nq
+ except KeyError, e:
+ pass
+ self._last_mod_time = self.get_modtime()
+ self._last_check_time = time.time()
+
+ def _reference_contents(self, contents):
+ "Helper method which builds internal structure from parsed contents"
+ self._contents = contents
self._ttl = int(self._contents.get('ttl', 0))
self._return_as_map = bool(self._contents.get('return_as_map', False))
self._legacy_dbname = self._contents.get('legacy_dbname', None)
- self._legacy_query = self._contents.get('legacy_query', None)
- self._options = self._contents.get('options', {})
- self._base_query = self._contents['base_query']
- self._last_mod_time = self.get_modtime()
- self._last_check_time = time.time()
+ # reset these before doing the sql conversion because we will
+ # read them there. reset these while loading so we pick up
+ # changes.
+ self._around = set()
+ self._append = set()
+ self._integer = set()
+ self._options = self._contents.get('dynamic_where', {})
+ for key in self._options:
+ if isinstance(self._options[key], basestring):
+ self._options[key] = self._convert_sql(self._options[key])
+ elif isinstance(self._options[key], list):
+ lines = []
+ for line in self._options[key]:
+ lines.append(self._convert_sql(line))
+ self._options[key] = lines
+ else:
+ moreopt = {}
+ for kk in self._options[key]:
+ moreopt[kk] = self._convert_sql(self._options[key][kk])
+ self._options[key] = moreopt
+ self._base_query = self._convert_sql(self._contents['base_query'])
+ self._query_suffix = self._convert_sql(
+ self._contents.get('query_suffix', ''))
+
+ def _convert_sql(self, sql):
+ """convert the parsed sql into a useful internal structure.
+
+ This function has to turn the named query format into a pyformat
+ style. It also has to look for %:name% and :name% and
+ ready them for use in LIKE statements"""
+ if sql:
+ #print >>sys.stderr, "sql:",sql
+ expr = re.compile("(%?):([a-zA-Z][a-zA-Z0-9_-]*)%")
+ sql = expr.sub(self._prepare_like, sql)
+ expr = re.compile("#:([a-zA-Z][a-zA-Z0-9_-]*)")
+ sql = expr.sub(self._prepare_integer, sql)
+ expr = re.compile(":([a-zA-Z][a-zA-Z0-9_-]*)")
+ sql = expr.sub("%(\\1)s", sql)
+ return sql
+
+ def _prepare_like(self, match):
+ """This function changes LIKE statement replace behavior
+
+ It works by turning %:name% to %(_name_around)s and :name% to
+ %(_name_append)s. Since a leading '_' is not a valid keyname
+ input (enforced via unit tests), it will never clash with
+ existing keys. Then, when building the statement, the query
+ runner will generate corrected strings."""
+ if match.group(1) == '%':
+ # there is a leading % so this is treated as prefix/suffix
+ self._around.add(match.group(2))
+ return "%(" + self._build_around_key(match.group(2)) + ")s"
+ else:
+ # there is no leading %, so this is suffix only
+ self._append.add(match.group(2))
+ return "%(" + self._build_append_key(match.group(2)) + ")s"
+
+ def _build_around_key(self, key):
+ return "_" + key + "_around"
+
+ def _build_append_key(self, key):
+ return "_" + key + "_append"
+
+ def _prepare_integer(self, match):
+ """This function adjusts the sql for #:name replacements
+
+ It works by turning #:name to %(_name_as_integer)s. Since a
+ leading '_' is not a valid keyname input (enforced via unit
+ tests), it will never clash with existing keys. Then, when
+ building the statement, the query runner will generate
+ corrected strings."""
+ self._integer.add(match.group(1))
+ return "%(" + self._build_integer_key(match.group(1)) + ")s"
+
+ def _build_integer_key(self, key):
+ return "_" + key + "_as_integer"
+
+ def _strip_wildcards_to_list(self, value):
+ """Take string, and strip out the LIKE special characters.
+
+ Technically, this is database dependant, but postgresql and
+ mysql use the same wildcards, and I am not aware of a general
+ way to handle this. I think you need a sql statement of the
+ form:
+
+ LIKE_STRING( [ANY,ONE,str]... )
+
+ which would treat ANY as their any string, and ONE as their
+ single glyph, and str as something that needs database
+ specific encoding to not allow any % or _ to affect the query.
+
+ As it stands, I believe it's impossible to write a named query
+ style interface which uses like to search the entire space of
+ text available. Imagine the query:
+
+ % of brain used by average linden
+
+ In order to search for %, it must be escaped, so once you have
+ escaped the string to not do wildcard searches, and be escaped
+ for the database, and then prepended the wildcard you come
+ back with one of:
+
+ 1) %\% of brain used by average linden
+ 2) %%% of brain used by average linden
+
+ Then, when passed to the database to be escaped to be database
+ safe, you get back:
+
+ 1) %\\% of brain used by average linden
+ : which means search for any character sequence, followed by a
+ backslash, followed by any sequence, followed by ' of
+ brain...'
+ 2) %%% of brain used by average linden
+ : which (I believe) means search for a % followed by any
+ character sequence followed by 'of brain...'
+
+ Neither of which is what we want!
+
+ So, we need a vendor (or extention) for LIKE_STRING. Anyone
+ want to write it?"""
+ utf8_value = unicode(value, "utf-8")
+ esc_list = []
+ remove_chars = set(u"%_")
+ for glyph in utf8_value:
+ if glyph in remove_chars:
+ continue
+ esc_list.append(glyph.encode("utf-8"))
+ return esc_list
+
+ def delete(self):
+ """ Makes this query unusable by deleting all the members and
+ setting the deleted member. This is desired when the on-disk
+ query has been deleted but the in-memory copy remains."""
+ # blow away all members except _name, _location, and deleted
+ name, location = self._name, self._location
+ for key in self.__dict__.keys():
+ del self.__dict__[key]
+ self.deleted = True
+ self._name, self._location = name, location
def ttl(self):
+ """ Estimated time to live of this query. Used for web
+ services to set the Expires header."""
return self._ttl
def legacy_dbname(self):
return self._legacy_dbname
- def legacy_query(self):
- return self._legacy_query
-
def return_as_map(self):
+ """ Returns true if this query is configured to return its
+ results as a single map (as opposed to a list of maps, the
+ normal behavior)."""
+
return self._return_as_map
- def run(self, connection, params, expect_rows = None, use_dictcursor = True):
- """\
-@brief given a connection, run a named query with the params
+ def for_schema(self, db_name):
+ "Look trough the alternates and return the correct query"
+ try:
+ return self._alternative[db_name]
+ except KeyError, e:
+ pass
+ return self
-Note that this function will fetch ALL rows. We do this because it
-opens and closes the cursor to generate the values, and this isn't a generator so the
-cursor has no life beyond the method call.
-@param cursor The connection to use (this generates its own cursor for the query)
-@param name The name of the query to run
-@param params The parameters passed into the query
-@param expect_rows The number of rows expected. Set to 1 if return_as_map is true. Raises ExpectationFailed if the number of returned rows doesn't exactly match. Kind of a hack.
-@param use_dictcursor Set to false to use a normal cursor and manually convert the rows to dicts.
-@return Returns the result set as a list of dicts, or, if the named query has return_as_map set to true, returns a single dict.
+ def run(self, connection, params, expect_rows = None, use_dictcursor = True):
+ """given a connection, run a named query with the params
+
+ Note that this function will fetch ALL rows. We do this because it
+ opens and closes the cursor to generate the values, and this
+ isn't a generator so the cursor has no life beyond the method call.
+
+ @param cursor The connection to use (this generates its own cursor for the query)
+ @param name The name of the query to run
+ @param params The parameters passed into the query
+ @param expect_rows The number of rows expected. Set to 1 if return_as_map is true. Raises ExpectationFailed if the number of returned rows doesn't exactly match. Kind of a hack.
+ @param use_dictcursor Set to false to use a normal cursor and manually convert the rows to dicts.
+ @return Returns the result set as a list of dicts, or, if the named query has return_as_map set to true, returns a single dict.
"""
if use_dictcursor:
cursor = connection.cursor(MySQLdb.cursors.DictCursor)
else:
cursor = connection.cursor()
- statement = self.sql(params)
+ statement = self.sql(connection, params)
#print "SQL:", statement
rows = cursor.execute(statement)
@@ -169,47 +359,152 @@ cursor has no life beyond the method call.
return result_set[0]
return result_set
- def sql(self, params):
+ def sql(self, connection, params):
+ """ Generates an SQL statement from the named query document
+ and a dictionary of parameters.
+
+ """
self.refresh()
# build the query from the options available and the params
base_query = []
base_query.append(self._base_query)
+ #print >>sys.stderr, "base_query:",base_query
for opt, extra_where in self._options.items():
- if opt in params and (params[opt] == 0 or params[opt]):
- if type(extra_where) in (dict, list, tuple):
+ if type(extra_where) in (dict, list, tuple):
+ if opt in params:
base_query.append(extra_where[params[opt]])
- else:
+ else:
+ if opt in params and params[opt]:
base_query.append(extra_where)
-
+ if self._query_suffix:
+ base_query.append(self._query_suffix)
+ #print >>sys.stderr, "base_query:",base_query
full_query = '\n'.join(base_query)
-
- # do substitution
- sql = russ.format(full_query, params)
+
+ # Go through the query and rewrite all of the ones with the
+ # @:name syntax.
+ rewrite = _RewriteQueryForArray(params)
+ expr = re.compile("@%\(([a-zA-Z][a-zA-Z0-9_-]*)\)s")
+ full_query = expr.sub(rewrite.operate, full_query)
+ params.update(rewrite.new_params)
+
+ # build out the params for like. We only have to do this
+ # parameters which were detected to have ued the where syntax
+ # during load.
+ #
+ # * treat the incoming string as utf-8
+ # * strip wildcards
+ # * append or prepend % as appropriate
+ new_params = {}
+ for key in params:
+ if key in self._around:
+ new_value = ['%']
+ new_value.extend(self._strip_wildcards_to_list(params[key]))
+ new_value.append('%')
+ new_params[self._build_around_key(key)] = ''.join(new_value)
+ if key in self._append:
+ new_value = self._strip_wildcards_to_list(params[key])
+ new_value.append('%')
+ new_params[self._build_append_key(key)] = ''.join(new_value)
+ if key in self._integer:
+ new_params[self._build_integer_key(key)] = int(params[key])
+ params.update(new_params)
+
+ # do substitution using the mysql (non-standard) 'literal'
+ # function to do the escaping.
+ sql = full_query % connection.literal(params)
return sql
def refresh(self):
- # only stat the file every so often
+ """ Refresh self from the file on the filesystem.
+
+ This is optimized to be callable as frequently as you wish,
+ without adding too much load. It does so by only stat-ing the
+ file every N seconds, where N defaults to 5 and is
+ configurable through the member _stat_interval_seconds. If the stat
+ reveals that the file has changed, refresh will re-parse the
+ contents of the file and use them to update the named query
+ instance. If the stat reveals that the file has been deleted,
+ refresh will call self.delete to make the in-memory
+ representation unusable."""
now = time.time()
- if(now - self._last_check_time > self._stat_interval):
+ if(now - self._last_check_time > self._stat_interval_seconds):
self._last_check_time = now
- modtime = self.get_modtime()
- if(modtime > self._last_mod_time):
- self.load_contents()
+ try:
+ modtime = self.get_modtime()
+ if(modtime > self._last_mod_time):
+ self.load_contents()
+ except OSError, e:
+ if e.errno == errno.ENOENT: # file not found
+ self.delete() # clean up self
+ raise # pass the exception along to the caller so they know that this query disappeared
class NamedQueryManager(object):
+ """ Manages the lifespan of NamedQuery objects, drawing from a
+ directory hierarchy of named query documents.
+
+ In practice this amounts to a memory cache of NamedQuery objects."""
+
def __init__(self, named_queries_dir):
+ """ Initializes a manager to look for named queries in a
+ directory."""
self._dir = os.path.abspath(os.path.realpath(named_queries_dir))
self._cached_queries = {}
- def sql(self, name, params):
+ def sql(self, connection, name, params):
nq = self.get(name)
- return nq.sql(params)
+ return nq.sql(connection, params)
def get(self, name):
- # new up/refresh a NamedQuery based on the name
+ """ Returns a NamedQuery instance based on the name, either
+ from memory cache, or by parsing from disk.
+
+ The name is simply a relative path to the directory associated
+ with the manager object. Before returning the instance, the
+ NamedQuery object is cached in memory, so that subsequent
+ accesses don't have to read from disk or do any parsing. This
+ means that NamedQuery objects returned by this method are
+ shared across all users of the manager object.
+ NamedQuery.refresh is used to bring the NamedQuery objects in
+ sync with the actual files on disk."""
nq = self._cached_queries.get(name)
if nq is None:
nq = NamedQuery(name, os.path.join(self._dir, name))
self._cached_queries[name] = nq
+ else:
+ try:
+ nq.refresh()
+ except OSError, e:
+ if e.errno == errno.ENOENT: # file not found
+ del self._cached_queries[name]
+ raise # pass exception along to caller so they know that the query disappeared
+
return nq
+
+class _RewriteQueryForArray(object):
+ "Helper class for rewriting queries with the @:name syntax"
+ def __init__(self, params):
+ self.params = params
+ self.new_params = dict()
+
+ def operate(self, match):
+ "Given a match, return the string that should be in use"
+ key = match.group(1)
+ value = self.params[key]
+ if type(value) in (list,tuple):
+ rv = []
+ for idx in range(len(value)):
+ new_key = "_" + key + "_" + str(idx)
+ self.new_params[new_key] = value[idx]
+ rv.append("%(" + new_key + ")s")
+ return ','.join(rv)
+ else:
+ # not something that can be expanded, so just drop the
+ # leading @ in the front of the match. This will mean that
+ # the single value we have, be it a string, int, whatever
+ # (other than dict) will correctly show up, eg:
+ #
+ # where foo in (@:foobar) -- foobar is a string, so we get
+ # where foo in (:foobar)
+ return match.group(0)[1:]
diff --git a/linden/indra/linux_crash_logger/linux_crash_logger.cpp b/linden/indra/linux_crash_logger/linux_crash_logger.cpp
index eaa818e..22c38c6 100644
--- a/linden/indra/linux_crash_logger/linux_crash_logger.cpp
+++ b/linden/indra/linux_crash_logger/linux_crash_logger.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/linux_crash_logger/llcrashloggerlinux.cpp b/linden/indra/linux_crash_logger/llcrashloggerlinux.cpp
index 735105f..e96264e 100644
--- a/linden/indra/linux_crash_logger/llcrashloggerlinux.cpp
+++ b/linden/indra/linux_crash_logger/llcrashloggerlinux.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/linux_crash_logger/llcrashloggerlinux.h b/linden/indra/linux_crash_logger/llcrashloggerlinux.h
index da6f302..f34c934 100644
--- a/linden/indra/linux_crash_logger/llcrashloggerlinux.h
+++ b/linden/indra/linux_crash_logger/llcrashloggerlinux.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llaudio/audioengine.cpp b/linden/indra/llaudio/audioengine.cpp
index 91dde29..3e1fdf8 100644
--- a/linden/indra/llaudio/audioengine.cpp
+++ b/linden/indra/llaudio/audioengine.cpp
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llaudio/audioengine.h b/linden/indra/llaudio/audioengine.h
index 2fc1158..ac84b77 100644
--- a/linden/indra/llaudio/audioengine.h
+++ b/linden/indra/llaudio/audioengine.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llaudio/audioengine_fmod.cpp b/linden/indra/llaudio/audioengine_fmod.cpp
index af7e7b1..0fb5146 100644
--- a/linden/indra/llaudio/audioengine_fmod.cpp
+++ b/linden/indra/llaudio/audioengine_fmod.cpp
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llaudio/audioengine_fmod.h b/linden/indra/llaudio/audioengine_fmod.h
index 6e86421..3ee4334 100644
--- a/linden/indra/llaudio/audioengine_fmod.h
+++ b/linden/indra/llaudio/audioengine_fmod.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llaudio/listener.cpp b/linden/indra/llaudio/listener.cpp
index 2f01569..849b143 100644
--- a/linden/indra/llaudio/listener.cpp
+++ b/linden/indra/llaudio/listener.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llaudio/listener.h b/linden/indra/llaudio/listener.h
index e5fc07e..07664f7 100644
--- a/linden/indra/llaudio/listener.h
+++ b/linden/indra/llaudio/listener.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llaudio/listener_ds3d.h b/linden/indra/llaudio/listener_ds3d.h
index 2bcacf3..33367a5 100644
--- a/linden/indra/llaudio/listener_ds3d.h
+++ b/linden/indra/llaudio/listener_ds3d.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llaudio/listener_fmod.cpp b/linden/indra/llaudio/listener_fmod.cpp
index f9bfb1f..e80a775 100644
--- a/linden/indra/llaudio/listener_fmod.cpp
+++ b/linden/indra/llaudio/listener_fmod.cpp
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llaudio/listener_fmod.h b/linden/indra/llaudio/listener_fmod.h
index 98e7f9b..71604bd 100644
--- a/linden/indra/llaudio/listener_fmod.h
+++ b/linden/indra/llaudio/listener_fmod.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llaudio/listener_openal.h b/linden/indra/llaudio/listener_openal.h
index 93ed2d7..cc4bb9e 100644
--- a/linden/indra/llaudio/listener_openal.h
+++ b/linden/indra/llaudio/listener_openal.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llaudio/llaudio_vc9.vcproj b/linden/indra/llaudio/llaudio_vc9.vcproj
new file mode 100644
index 0000000..a1a8d91
--- /dev/null
+++ b/linden/indra/llaudio/llaudio_vc9.vcproj
@@ -0,0 +1,324 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/linden/indra/llaudio/llaudiodecodemgr.cpp b/linden/indra/llaudio/llaudiodecodemgr.cpp
index 8a67d46..af7ab92 100644
--- a/linden/indra/llaudio/llaudiodecodemgr.cpp
+++ b/linden/indra/llaudio/llaudiodecodemgr.cpp
@@ -11,12 +11,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llaudio/llaudiodecodemgr.h b/linden/indra/llaudio/llaudiodecodemgr.h
index 1fc42d8..ccd5ded 100644
--- a/linden/indra/llaudio/llaudiodecodemgr.h
+++ b/linden/indra/llaudio/llaudiodecodemgr.h
@@ -11,12 +11,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llaudio/vorbisdecode.cpp b/linden/indra/llaudio/vorbisdecode.cpp
index 6f243a4..23e02aa 100644
--- a/linden/indra/llaudio/vorbisdecode.cpp
+++ b/linden/indra/llaudio/vorbisdecode.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llaudio/vorbisdecode.h b/linden/indra/llaudio/vorbisdecode.h
index e3e498f..a9e1cfb 100644
--- a/linden/indra/llaudio/vorbisdecode.h
+++ b/linden/indra/llaudio/vorbisdecode.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llaudio/vorbisencode.cpp b/linden/indra/llaudio/vorbisencode.cpp
index 4e85685..805e666 100644
--- a/linden/indra/llaudio/vorbisencode.cpp
+++ b/linden/indra/llaudio/vorbisencode.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -195,11 +195,6 @@ S32 check_for_invalid_wav_formats(const char *in_fname, char *error_msg)
S32 encode_vorbis_file(const char *in_fname, const char *out_fname)
{
- return(encode_vorbis_file_at(in_fname,out_fname, 128000));
-}
-
-S32 encode_vorbis_file_at(const char *in_fname, const char *out_fname, S32 bitrate)
-{
#define READ_BUFFER 1024
unsigned char readbuffer[READ_BUFFER*4+44]; /* out of the data segment, not the stack */ /*Flawfinder: ignore*/
@@ -294,20 +289,21 @@ S32 encode_vorbis_file_at(const char *in_fname, const char *out_fname, S32 bitra
vorbis_info_init(&vi);
// always encode to mono
-// vorbis_encode_init(&vi, /* num_channels */ 1 ,sample_rate, -1, bitrate, -1);
-// if (vorbis_encode_init(&vi, /* num_channels */ 1 ,sample_rate, -1, bitrate, -1))
-// F32 quality = 0;
+ // SL-52913 & SL-53779 determined this quality level to be our 'good
+ // enough' general-purpose quality level with a nice low bitrate.
+ // Equivalent to oggenc -q0.5
+ F32 quality = 0.05f;
// quality = (bitrate==128000 ? 0.4f : 0.1);
- if (vorbis_encode_init(&vi, /* num_channels */ 1 ,sample_rate, -1, bitrate, -1))
-// if (vorbis_encode_init_vbr(&vi, /* num_channels */ 1 ,sample_rate, quality))
+// if (vorbis_encode_init(&vi, /* num_channels */ 1 ,sample_rate, -1, bitrate, -1))
+ if (vorbis_encode_init_vbr(&vi, /* num_channels */ 1 ,sample_rate, quality))
// if (vorbis_encode_setup_managed(&vi,1,sample_rate,-1,bitrate,-1) ||
// vorbis_encode_ctl(&vi,OV_ECTL_RATEMANAGE_AVG,NULL) ||
// vorbis_encode_setup_init(&vi))
{
-// llwarns << "unable to initialize vorbis codec at quality " << quality << llendl;
- llwarns << "unable to initialize vorbis codec at bitrate " << bitrate << llendl;
+ llwarns << "unable to initialize vorbis codec at quality " << quality << llendl;
+ // llwarns << "unable to initialize vorbis codec at bitrate " << bitrate << llendl;
return(LLVORBISENC_DEST_OPEN_ERR);
}
diff --git a/linden/indra/llaudio/vorbisencode.h b/linden/indra/llaudio/vorbisencode.h
index 489879e..2dae529 100644
--- a/linden/indra/llaudio/vorbisencode.h
+++ b/linden/indra/llaudio/vorbisencode.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -47,7 +47,6 @@ const S32 LLVORBISENC_CLIP_TOO_LONG = 10; // source file is too l
S32 check_for_invalid_wav_formats(const char *in_fname, char *error_msg);
S32 encode_vorbis_file(const char *in_fname, const char *out_fname);
-S32 encode_vorbis_file_at(const char *in_fname, const char *out_fname, S32 bitrate);
#endif
diff --git a/linden/indra/llcharacter/llanimationstates.cpp b/linden/indra/llcharacter/llanimationstates.cpp
index 05c0ca3..81e15c7 100644
--- a/linden/indra/llcharacter/llanimationstates.cpp
+++ b/linden/indra/llcharacter/llanimationstates.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/llanimationstates.h b/linden/indra/llcharacter/llanimationstates.h
index e23f3b5..b2ed27a 100644
--- a/linden/indra/llcharacter/llanimationstates.h
+++ b/linden/indra/llcharacter/llanimationstates.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/llbvhloader.cpp b/linden/indra/llcharacter/llbvhloader.cpp
index 26dc4e1..e6e49f8 100644
--- a/linden/indra/llcharacter/llbvhloader.cpp
+++ b/linden/indra/llcharacter/llbvhloader.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/llbvhloader.h b/linden/indra/llcharacter/llbvhloader.h
index c9a49f7..3935ebe 100644
--- a/linden/indra/llcharacter/llbvhloader.h
+++ b/linden/indra/llcharacter/llbvhloader.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/llcharacter.cpp b/linden/indra/llcharacter/llcharacter.cpp
index 5718a20..af4c5aa 100644
--- a/linden/indra/llcharacter/llcharacter.cpp
+++ b/linden/indra/llcharacter/llcharacter.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/llcharacter.h b/linden/indra/llcharacter/llcharacter.h
index a0de93d..6699796 100644
--- a/linden/indra/llcharacter/llcharacter.h
+++ b/linden/indra/llcharacter/llcharacter.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/llcharacter_vc9.vcproj b/linden/indra/llcharacter/llcharacter_vc9.vcproj
new file mode 100644
index 0000000..13e3b14
--- /dev/null
+++ b/linden/indra/llcharacter/llcharacter_vc9.vcproj
@@ -0,0 +1,420 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/linden/indra/llcharacter/lleditingmotion.cpp b/linden/indra/llcharacter/lleditingmotion.cpp
index c2519c2..c693e6d 100644
--- a/linden/indra/llcharacter/lleditingmotion.cpp
+++ b/linden/indra/llcharacter/lleditingmotion.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -64,6 +64,12 @@ LLEditingMotion::LLEditingMotion( const LLUUID &id) : LLMotion(id)
mElbowJoint.addChild( &mWristJoint );
mName = "editing";
+
+ mParentState = new LLJointState;
+ mShoulderState = new LLJointState;
+ mElbowState = new LLJointState;
+ mWristState = new LLJointState;
+ mTorsoState = new LLJointState;
}
@@ -93,13 +99,13 @@ LLMotion::LLMotionInitStatus LLEditingMotion::onInitialize(LLCharacter *characte
}
// get the shoulder, elbow, wrist joints from the character
- mParentState.setJoint( mCharacter->getJoint("mShoulderLeft")->getParent() );
- mShoulderState.setJoint( mCharacter->getJoint("mShoulderLeft") );
- mElbowState.setJoint( mCharacter->getJoint("mElbowLeft") );
- mWristState.setJoint( mCharacter->getJoint("mWristLeft") );
- mTorsoState.setJoint( mCharacter->getJoint("mTorso"));
+ mParentState->setJoint( mCharacter->getJoint("mShoulderLeft")->getParent() );
+ mShoulderState->setJoint( mCharacter->getJoint("mShoulderLeft") );
+ mElbowState->setJoint( mCharacter->getJoint("mElbowLeft") );
+ mWristState->setJoint( mCharacter->getJoint("mWristLeft") );
+ mTorsoState->setJoint( mCharacter->getJoint("mTorso"));
- if ( ! mParentState.getJoint() )
+ if ( ! mParentState->getJoint() )
{
llinfos << getName() << ": Can't get parent joint." << llendl;
return STATUS_FAILURE;
@@ -108,25 +114,25 @@ LLMotion::LLMotionInitStatus LLEditingMotion::onInitialize(LLCharacter *characte
mWristOffset = LLVector3(0.0f, 0.2f, 0.0f);
// add joint states to the pose
- mShoulderState.setUsage(LLJointState::ROT);
- mElbowState.setUsage(LLJointState::ROT);
- mTorsoState.setUsage(LLJointState::ROT);
- mWristState.setUsage(LLJointState::ROT);
- addJointState( &mShoulderState );
- addJointState( &mElbowState );
- addJointState( &mTorsoState );
- addJointState( &mWristState );
+ mShoulderState->setUsage(LLJointState::ROT);
+ mElbowState->setUsage(LLJointState::ROT);
+ mTorsoState->setUsage(LLJointState::ROT);
+ mWristState->setUsage(LLJointState::ROT);
+ addJointState( mShoulderState );
+ addJointState( mElbowState );
+ addJointState( mTorsoState );
+ addJointState( mWristState );
// propagate joint positions to kinematic chain
- mParentJoint.setPosition( mParentState.getJoint()->getWorldPosition() );
- mShoulderJoint.setPosition( mShoulderState.getJoint()->getPosition() );
- mElbowJoint.setPosition( mElbowState.getJoint()->getPosition() );
- mWristJoint.setPosition( mWristState.getJoint()->getPosition() + mWristOffset );
+ mParentJoint.setPosition( mParentState->getJoint()->getWorldPosition() );
+ mShoulderJoint.setPosition( mShoulderState->getJoint()->getPosition() );
+ mElbowJoint.setPosition( mElbowState->getJoint()->getPosition() );
+ mWristJoint.setPosition( mWristState->getJoint()->getPosition() + mWristOffset );
// propagate current joint rotations to kinematic chain
- mParentJoint.setRotation( mParentState.getJoint()->getWorldRotation() );
- mShoulderJoint.setRotation( mShoulderState.getJoint()->getRotation() );
- mElbowJoint.setRotation( mElbowState.getJoint()->getRotation() );
+ mParentJoint.setRotation( mParentState->getJoint()->getWorldRotation() );
+ mShoulderJoint.setRotation( mShoulderState->getJoint()->getRotation() );
+ mElbowJoint.setRotation( mElbowState->getJoint()->getRotation() );
// connect the ikSolver to the chain
mIKSolver.setPoleVector( LLVector3( -1.0f, 1.0f, 0.0f ) );
@@ -144,15 +150,15 @@ LLMotion::LLMotionInitStatus LLEditingMotion::onInitialize(LLCharacter *characte
BOOL LLEditingMotion::onActivate()
{
// propagate joint positions to kinematic chain
- mParentJoint.setPosition( mParentState.getJoint()->getWorldPosition() );
- mShoulderJoint.setPosition( mShoulderState.getJoint()->getPosition() );
- mElbowJoint.setPosition( mElbowState.getJoint()->getPosition() );
- mWristJoint.setPosition( mWristState.getJoint()->getPosition() + mWristOffset );
+ mParentJoint.setPosition( mParentState->getJoint()->getWorldPosition() );
+ mShoulderJoint.setPosition( mShoulderState->getJoint()->getPosition() );
+ mElbowJoint.setPosition( mElbowState->getJoint()->getPosition() );
+ mWristJoint.setPosition( mWristState->getJoint()->getPosition() + mWristOffset );
// propagate current joint rotations to kinematic chain
- mParentJoint.setRotation( mParentState.getJoint()->getWorldRotation() );
- mShoulderJoint.setRotation( mShoulderState.getJoint()->getRotation() );
- mElbowJoint.setRotation( mElbowState.getJoint()->getRotation() );
+ mParentJoint.setRotation( mParentState->getJoint()->getWorldRotation() );
+ mShoulderJoint.setRotation( mShoulderState->getJoint()->getRotation() );
+ mElbowJoint.setRotation( mElbowState->getJoint()->getRotation() );
return TRUE;
}
@@ -182,15 +188,15 @@ BOOL LLEditingMotion::onUpdate(F32 time, U8* joint_mask)
focus_pt += mCharacter->getCharacterPosition();
// propagate joint positions to kinematic chain
- mParentJoint.setPosition( mParentState.getJoint()->getWorldPosition() );
- mShoulderJoint.setPosition( mShoulderState.getJoint()->getPosition() );
- mElbowJoint.setPosition( mElbowState.getJoint()->getPosition() );
- mWristJoint.setPosition( mWristState.getJoint()->getPosition() + mWristOffset );
+ mParentJoint.setPosition( mParentState->getJoint()->getWorldPosition() );
+ mShoulderJoint.setPosition( mShoulderState->getJoint()->getPosition() );
+ mElbowJoint.setPosition( mElbowState->getJoint()->getPosition() );
+ mWristJoint.setPosition( mWristState->getJoint()->getPosition() + mWristOffset );
// propagate current joint rotations to kinematic chain
- mParentJoint.setRotation( mParentState.getJoint()->getWorldRotation() );
- mShoulderJoint.setRotation( mShoulderState.getJoint()->getRotation() );
- mElbowJoint.setRotation( mElbowState.getJoint()->getRotation() );
+ mParentJoint.setRotation( mParentState->getJoint()->getWorldRotation() );
+ mShoulderJoint.setRotation( mShoulderState->getJoint()->getRotation() );
+ mElbowJoint.setRotation( mElbowState->getJoint()->getRotation() );
// update target position from character
LLVector3 target = focus_pt - mParentJoint.getPosition();
@@ -199,7 +205,7 @@ BOOL LLEditingMotion::onUpdate(F32 time, U8* joint_mask)
LLVector3 edit_plane_normal(1.f / F_SQRT2, 1.f / F_SQRT2, 0.f);
edit_plane_normal.normVec();
- edit_plane_normal.rotVec(mTorsoState.getJoint()->getWorldRotation());
+ edit_plane_normal.rotVec(mTorsoState->getJoint()->getWorldRotation());
F32 dot = edit_plane_normal * target;
@@ -236,9 +242,9 @@ BOOL LLEditingMotion::onUpdate(F32 time, U8* joint_mask)
// now put blended values back into joints
llassert(shoulderRot.isFinite());
llassert(elbowRot.isFinite());
- mShoulderState.setRotation(shoulderRot);
- mElbowState.setRotation(elbowRot);
- mWristState.setRotation(LLQuaternion::DEFAULT);
+ mShoulderState->setRotation(shoulderRot);
+ mElbowState->setRotation(elbowRot);
+ mWristState->setRotation(LLQuaternion::DEFAULT);
}
mCharacter->setAnimationData("Hand Pose", &sHandPose);
diff --git a/linden/indra/llcharacter/lleditingmotion.h b/linden/indra/llcharacter/lleditingmotion.h
index 06828fa..3d46343 100644
--- a/linden/indra/llcharacter/lleditingmotion.h
+++ b/linden/indra/llcharacter/lleditingmotion.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -116,11 +116,11 @@ public:
LLCharacter *mCharacter;
LLVector3 mWristOffset;
- LLJointState mParentState;
- LLJointState mShoulderState;
- LLJointState mElbowState;
- LLJointState mWristState;
- LLJointState mTorsoState;
+ LLPointer mParentState;
+ LLPointer mShoulderState;
+ LLPointer mElbowState;
+ LLPointer mWristState;
+ LLPointer mTorsoState;
LLJoint mParentJoint;
LLJoint mShoulderJoint;
diff --git a/linden/indra/llcharacter/llgesture.cpp b/linden/indra/llcharacter/llgesture.cpp
index b3d3127..c124ad0 100644
--- a/linden/indra/llcharacter/llgesture.cpp
+++ b/linden/indra/llcharacter/llgesture.cpp
@@ -11,12 +11,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/llgesture.h b/linden/indra/llcharacter/llgesture.h
index f245a1c..0e4b781 100644
--- a/linden/indra/llcharacter/llgesture.h
+++ b/linden/indra/llcharacter/llgesture.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/llhandmotion.cpp b/linden/indra/llcharacter/llhandmotion.cpp
index bdaf0f3..3902518 100644
--- a/linden/indra/llcharacter/llhandmotion.cpp
+++ b/linden/indra/llcharacter/llhandmotion.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/llhandmotion.h b/linden/indra/llcharacter/llhandmotion.h
index 3729659..548e4de 100644
--- a/linden/indra/llcharacter/llhandmotion.h
+++ b/linden/indra/llcharacter/llhandmotion.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -124,6 +124,8 @@ public:
// called when a motion is deactivated
virtual void onDeactivate();
+ virtual BOOL canDeprecate() { return FALSE; }
+
static LLString getHandPoseName(eHandPose pose);
static eHandPose getHandPose(LLString posename);
diff --git a/linden/indra/llcharacter/llheadrotmotion.cpp b/linden/indra/llcharacter/llheadrotmotion.cpp
index e8afb82..f01dfcc 100644
--- a/linden/indra/llcharacter/llheadrotmotion.cpp
+++ b/linden/indra/llcharacter/llheadrotmotion.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -82,6 +82,10 @@ LLHeadRotMotion::LLHeadRotMotion(const LLUUID &id) :
mHeadJoint(NULL)
{
mName = "head_rot";
+
+ mTorsoState = new LLJointState;
+ mNeckState = new LLJointState;
+ mHeadState = new LLJointState;
}
@@ -130,34 +134,34 @@ LLMotion::LLMotionInitStatus LLHeadRotMotion::onInitialize(LLCharacter *characte
return STATUS_FAILURE;
}
- mTorsoState.setJoint( character->getJoint("mTorso") );
- if ( ! mTorsoState.getJoint() )
+ mTorsoState->setJoint( character->getJoint("mTorso") );
+ if ( ! mTorsoState->getJoint() )
{
llinfos << getName() << ": Can't get torso joint." << llendl;
return STATUS_FAILURE;
}
- mNeckState.setJoint( character->getJoint("mNeck") );
- if ( ! mNeckState.getJoint() )
+ mNeckState->setJoint( character->getJoint("mNeck") );
+ if ( ! mNeckState->getJoint() )
{
llinfos << getName() << ": Can't get neck joint." << llendl;
return STATUS_FAILURE;
}
- mHeadState.setJoint( character->getJoint("mHead") );
- if ( ! mHeadState.getJoint() )
+ mHeadState->setJoint( character->getJoint("mHead") );
+ if ( ! mHeadState->getJoint() )
{
llinfos << getName() << ": Can't get head joint." << llendl;
return STATUS_FAILURE;
}
- mTorsoState.setUsage(LLJointState::ROT);
- mNeckState.setUsage(LLJointState::ROT);
- mHeadState.setUsage(LLJointState::ROT);
+ mTorsoState->setUsage(LLJointState::ROT);
+ mNeckState->setUsage(LLJointState::ROT);
+ mHeadState->setUsage(LLJointState::ROT);
- addJointState( &mTorsoState );
- addJointState( &mNeckState );
- addJointState( &mHeadState );
+ addJointState( mTorsoState );
+ addJointState( mNeckState );
+ addJointState( mHeadState );
mLastHeadRot.loadIdentity();
@@ -240,16 +244,16 @@ BOOL LLHeadRotMotion::onUpdate(F32 time, U8* joint_mask)
// Set torso target rotation such that it lags behind the head rotation
// by a fixed amount.
LLQuaternion torso_rot_local = nlerp(TORSO_LAG, LLQuaternion::DEFAULT, head_rot_local );
- mTorsoState.setRotation( nlerp(torso_slerp_amt, mTorsoState.getRotation(), torso_rot_local) );
+ mTorsoState->setRotation( nlerp(torso_slerp_amt, mTorsoState->getRotation(), torso_rot_local) );
head_rot_local = nlerp(head_slerp_amt, mLastHeadRot, head_rot_local);
mLastHeadRot = head_rot_local;
// Set the head rotation.
- LLQuaternion torsoRotLocal = mNeckState.getJoint()->getParent()->getWorldRotation() * currentInvRootRotWorld;
+ LLQuaternion torsoRotLocal = mNeckState->getJoint()->getParent()->getWorldRotation() * currentInvRootRotWorld;
head_rot_local = head_rot_local * ~torsoRotLocal;
- mNeckState.setRotation( nlerp(NECK_LAG, LLQuaternion::DEFAULT, head_rot_local) );
- mHeadState.setRotation( nlerp(1.f - NECK_LAG, LLQuaternion::DEFAULT, head_rot_local));
+ mNeckState->setRotation( nlerp(NECK_LAG, LLQuaternion::DEFAULT, head_rot_local) );
+ mHeadState->setRotation( nlerp(1.f - NECK_LAG, LLQuaternion::DEFAULT, head_rot_local));
return TRUE;
}
@@ -284,6 +288,9 @@ LLEyeMotion::LLEyeMotion(const LLUUID &id) : LLMotion(id)
mHeadJoint = NULL;
mName = "eye_rot";
+
+ mLeftEyeState = new LLJointState;
+ mRightEyeState = new LLJointState;
}
@@ -309,25 +316,25 @@ LLMotion::LLMotionInitStatus LLEyeMotion::onInitialize(LLCharacter *character)
return STATUS_FAILURE;
}
- mLeftEyeState.setJoint( character->getJoint("mEyeLeft") );
- if ( ! mLeftEyeState.getJoint() )
+ mLeftEyeState->setJoint( character->getJoint("mEyeLeft") );
+ if ( ! mLeftEyeState->getJoint() )
{
llinfos << getName() << ": Can't get left eyeball joint." << llendl;
return STATUS_FAILURE;
}
- mRightEyeState.setJoint( character->getJoint("mEyeRight") );
- if ( ! mRightEyeState.getJoint() )
+ mRightEyeState->setJoint( character->getJoint("mEyeRight") );
+ if ( ! mRightEyeState->getJoint() )
{
llinfos << getName() << ": Can't get Right eyeball joint." << llendl;
return STATUS_FAILURE;
}
- mLeftEyeState.setUsage(LLJointState::ROT);
- mRightEyeState.setUsage(LLJointState::ROT);
+ mLeftEyeState->setUsage(LLJointState::ROT);
+ mRightEyeState->setUsage(LLJointState::ROT);
- addJointState( &mLeftEyeState );
- addJointState( &mRightEyeState );
+ addJointState( mLeftEyeState );
+ addJointState( mRightEyeState );
return STATUS_SUCCESS;
}
@@ -443,11 +450,15 @@ BOOL LLEyeMotion::onUpdate(F32 time, U8* joint_mask)
target_eye_rot = LLQuaternion(eye_look_at, left, up);
// convert target rotation to head-local coordinates
target_eye_rot *= ~mHeadJoint->getWorldRotation();
+ // eliminate any Euler roll - we're lucky that roll is applied last.
+ F32 roll, pitch, yaw;
+ target_eye_rot.getEulerAngles(&roll, &pitch, &yaw);
+ target_eye_rot.setQuat(0.0f, pitch, yaw);
// constrain target orientation to be in front of avatar's face
target_eye_rot.constrain(EYE_ROT_LIMIT_ANGLE);
// calculate vergence
- F32 interocular_dist = (mLeftEyeState.getJoint()->getWorldPosition() - mRightEyeState.getJoint()->getWorldPosition()).magVec();
+ F32 interocular_dist = (mLeftEyeState->getJoint()->getWorldPosition() - mRightEyeState->getJoint()->getWorldPosition()).magVec();
vergence = -atan2((interocular_dist / 2.f), lookAtDistance);
llclamp(vergence, -F_PI_BY_TWO, 0.f);
}
@@ -495,8 +506,8 @@ BOOL LLEyeMotion::onUpdate(F32 time, U8* joint_mask)
vergence_quat.transQuat();
right_eye_rot = vergence_quat * eye_jitter_rot * right_eye_rot;
- mLeftEyeState.setRotation( left_eye_rot );
- mRightEyeState.setRotation( right_eye_rot );
+ mLeftEyeState->setRotation( left_eye_rot );
+ mRightEyeState->setRotation( right_eye_rot );
return TRUE;
}
@@ -507,13 +518,13 @@ BOOL LLEyeMotion::onUpdate(F32 time, U8* joint_mask)
//-----------------------------------------------------------------------------
void LLEyeMotion::onDeactivate()
{
- LLJoint* joint = mLeftEyeState.getJoint();
+ LLJoint* joint = mLeftEyeState->getJoint();
if (joint)
{
joint->setRotation(LLQuaternion::DEFAULT);
}
- joint = mRightEyeState.getJoint();
+ joint = mRightEyeState->getJoint();
if (joint)
{
joint->setRotation(LLQuaternion::DEFAULT);
diff --git a/linden/indra/llcharacter/llheadrotmotion.h b/linden/indra/llcharacter/llheadrotmotion.h
index bc9c8ea..d13cdb4 100644
--- a/linden/indra/llcharacter/llheadrotmotion.h
+++ b/linden/indra/llcharacter/llheadrotmotion.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -117,9 +117,9 @@ public:
LLJoint *mRootJoint;
LLJoint *mPelvisJoint;
- LLJointState mTorsoState;
- LLJointState mNeckState;
- LLJointState mHeadState;
+ LLPointer mTorsoState;
+ LLPointer mNeckState;
+ LLPointer mHeadState;
LLQuaternion mLastHeadRot;
};
@@ -196,8 +196,8 @@ public:
LLCharacter *mCharacter;
LLJoint *mHeadJoint;
- LLJointState mLeftEyeState;
- LLJointState mRightEyeState;
+ LLPointer mLeftEyeState;
+ LLPointer mRightEyeState;
LLFrameTimer mEyeJitterTimer;
F32 mEyeJitterTime;
diff --git a/linden/indra/llcharacter/lljoint.cpp b/linden/indra/llcharacter/lljoint.cpp
index 052d5e2..b7a51f1 100644
--- a/linden/indra/llcharacter/lljoint.cpp
+++ b/linden/indra/llcharacter/lljoint.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/lljoint.h b/linden/indra/llcharacter/lljoint.h
index c05412d..6492fe2 100644
--- a/linden/indra/llcharacter/lljoint.h
+++ b/linden/indra/llcharacter/lljoint.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -115,7 +115,7 @@ public:
void touch(U32 flags = ALL_DIRTY);
// get/set name
- const std::string &getName() { return mName; }
+ const std::string& getName() const { return mName; }
void setName( const std::string &name ) { mName = name; }
// getParent
@@ -175,7 +175,7 @@ public:
virtual BOOL isAnimatable() { return TRUE; }
- S32 getJointNum() { return mJointNum; }
+ S32 getJointNum() const { return mJointNum; }
void setJointNum(S32 joint_num) { mJointNum = joint_num; }
};
#endif // LL_LLJOINT_H
diff --git a/linden/indra/llcharacter/lljointsolverrp3.cpp b/linden/indra/llcharacter/lljointsolverrp3.cpp
index c6ae76e..0356912 100644
--- a/linden/indra/llcharacter/lljointsolverrp3.cpp
+++ b/linden/indra/llcharacter/lljointsolverrp3.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/lljointsolverrp3.h b/linden/indra/llcharacter/lljointsolverrp3.h
index 370360f..511351a 100644
--- a/linden/indra/llcharacter/lljointsolverrp3.h
+++ b/linden/indra/llcharacter/lljointsolverrp3.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/lljointstate.h b/linden/indra/llcharacter/lljointstate.h
index ef74150..15dfd6d 100644
--- a/linden/indra/llcharacter/lljointstate.h
+++ b/linden/indra/llcharacter/lljointstate.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -36,11 +36,12 @@
// Header Files
//-----------------------------------------------------------------------------
#include "lljoint.h"
+#include "llmemory.h"
//-----------------------------------------------------------------------------
// class LLJointState
//-----------------------------------------------------------------------------
-class LLJointState
+class LLJointState : public LLRefCount
{
public:
enum BlendPhase
@@ -85,13 +86,9 @@ public:
mPriority = LLJoint::USE_MOTION_PRIORITY;
}
- // Destructor
- virtual ~LLJointState()
- {
- }
-
// joint that this state is applied to
- LLJoint *getJoint() { return mJoint; }
+ LLJoint* getJoint() { return mJoint; }
+ const LLJoint* getJoint() const { return mJoint; }
BOOL setJoint( LLJoint *joint ) { mJoint = joint; return mJoint != NULL; }
// transform type (bitwise flags can be combined)
@@ -103,26 +100,33 @@ public:
ROT = 2,
SCALE = 4,
};
- U32 getUsage() { return mUsage; }
- void setUsage( U32 usage ) { mUsage = usage; }
- F32 getWeight() { return mWeight; }
+ U32 getUsage() const { return mUsage; }
+ void setUsage( U32 usage ) { mUsage = usage; }
+ F32 getWeight() const { return mWeight; }
void setWeight( F32 weight ) { mWeight = weight; }
// get/set position
- const LLVector3& getPosition() { return mPosition; }
+ const LLVector3& getPosition() const { return mPosition; }
void setPosition( const LLVector3& pos ) { llassert(mUsage & POS); mPosition = pos; }
// get/set rotation
- const LLQuaternion& getRotation() { return mRotation; }
+ const LLQuaternion& getRotation() const { return mRotation; }
void setRotation( const LLQuaternion& rot ) { llassert(mUsage & ROT); mRotation = rot; }
// get/set scale
- const LLVector3& getScale() { return mScale; }
- void setScale( const LLVector3& scale ) { llassert(mUsage & SCALE); mScale = scale; }
+ const LLVector3& getScale() const { return mScale; }
+ void setScale( const LLVector3& scale ) { llassert(mUsage & SCALE); mScale = scale; }
// get/set priority
- LLJoint::JointPriority getPriority() { return mPriority; }
- void setPriority( const LLJoint::JointPriority priority ) { mPriority = priority; }
+ LLJoint::JointPriority getPriority() const { return mPriority; }
+ void setPriority( LLJoint::JointPriority priority ) { mPriority = priority; }
+
+protected:
+ // Destructor
+ virtual ~LLJointState()
+ {
+ }
+
};
#endif // LL_LLJOINTSTATE_H
diff --git a/linden/indra/llcharacter/llkeyframefallmotion.cpp b/linden/indra/llcharacter/llkeyframefallmotion.cpp
index d3113fa..4a1f525 100644
--- a/linden/indra/llcharacter/llkeyframefallmotion.cpp
+++ b/linden/indra/llcharacter/llkeyframefallmotion.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -75,13 +75,13 @@ LLMotion::LLMotionInitStatus LLKeyframeFallMotion::onInitialize(LLCharacter *cha
// load keyframe data, setup pose and joint states
LLMotion::LLMotionInitStatus result = LLKeyframeMotion::onInitialize(character);
- for (U32 jm=0; jmmNumJointMotions; jm++)
+ for (U32 jm=0; jmgetNumJointMotions(); jm++)
{
- if (!mJointStates[jm].getJoint())
+ if (!mJointStates[jm]->getJoint())
continue;
- if (mJointStates[jm].getJoint()->getName() == std::string("mPelvis"))
+ if (mJointStates[jm]->getJoint()->getName() == std::string("mPelvis"))
{
- mPelvisStatep = &mJointStates[jm];
+ mPelvisState = mJointStates[jm];
}
}
@@ -124,8 +124,11 @@ BOOL LLKeyframeFallMotion::onUpdate(F32 activeTime, U8* joint_mask)
BOOL result = LLKeyframeMotion::onUpdate(activeTime, joint_mask);
F32 slerp_amt = clamp_rescale(activeTime / getDuration(), 0.5f, 0.75f, 0.f, 1.f);
- mPelvisStatep->setRotation(mPelvisStatep->getRotation() * slerp(slerp_amt, mRotationToGroundNormal, LLQuaternion()));
-
+ if (mPelvisState.notNull())
+ {
+ mPelvisState->setRotation(mPelvisState->getRotation() * slerp(slerp_amt, mRotationToGroundNormal, LLQuaternion()));
+ }
+
return result;
}
diff --git a/linden/indra/llcharacter/llkeyframefallmotion.h b/linden/indra/llcharacter/llkeyframefallmotion.h
index 9f6ed6b..b35925f 100644
--- a/linden/indra/llcharacter/llkeyframefallmotion.h
+++ b/linden/indra/llcharacter/llkeyframefallmotion.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -75,7 +75,7 @@ protected:
//-------------------------------------------------------------------------
LLCharacter* mCharacter;
F32 mVelocityZ;
- LLJointState* mPelvisStatep;
+ LLPointer mPelvisState;
LLQuaternion mRotationToGroundNormal;
};
diff --git a/linden/indra/llcharacter/llkeyframemotion.cpp b/linden/indra/llcharacter/llkeyframemotion.cpp
index 9979750..4288b8d 100644
--- a/linden/indra/llcharacter/llkeyframemotion.cpp
+++ b/linden/indra/llcharacter/llkeyframemotion.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -71,24 +71,22 @@ static F32 MAX_CONSTRAINTS = 10;
// JointMotionList
//-----------------------------------------------------------------------------
LLKeyframeMotion::JointMotionList::JointMotionList()
- : mNumJointMotions(0),
- mJointMotionArray(NULL)
{
}
LLKeyframeMotion::JointMotionList::~JointMotionList()
{
for_each(mConstraints.begin(), mConstraints.end(), DeletePointer());
- delete [] mJointMotionArray;
+ for_each(mJointMotionArray.begin(), mJointMotionArray.end(), DeletePointer());
}
U32 LLKeyframeMotion::JointMotionList::dumpDiagInfo()
{
S32 total_size = sizeof(JointMotionList);
- for (U32 i = 0; i < mNumJointMotions; i++)
+ for (U32 i = 0; i < getNumJointMotions(); i++)
{
- LLKeyframeMotion::JointMotion* joint_motion_p = &mJointMotionArray[i];
+ LLKeyframeMotion::JointMotion* joint_motion_p = mJointMotionArray[i];
llinfos << "\tJoint " << joint_motion_p->mJointName << llendl;
if (joint_motion_p->mUsage & LLJointState::SCALE)
@@ -385,10 +383,10 @@ void LLKeyframeMotion::JointMotion::update(LLJointState* joint_state, F32 time,
{
// this value being 0 is the cause of https://jira.lindenlab.com/browse/SL-22678 but I haven't
// managed to get a stack to see how it got here. Testing for 0 here will stop the crash.
- if ( joint_state == 0 )
+ if ( joint_state == NULL )
{
return;
- };
+ }
U32 usage = joint_state->getUsage();
@@ -431,7 +429,6 @@ void LLKeyframeMotion::JointMotion::update(LLJointState* joint_state, F32 time,
LLKeyframeMotion::LLKeyframeMotion(const LLUUID &id)
: LLMotion(id),
mJointMotionList(NULL),
- mJointStates(NULL),
mPelvisp(NULL),
mLastSkeletonSerialNum(0),
mLastUpdateTime(0.f),
@@ -448,10 +445,6 @@ LLKeyframeMotion::LLKeyframeMotion(const LLUUID &id)
//-----------------------------------------------------------------------------
LLKeyframeMotion::~LLKeyframeMotion()
{
- if (mJointStates)
- {
- delete [] mJointStates;
- }
for_each(mConstraints.begin(), mConstraints.end(), DeletePointer());
}
@@ -464,6 +457,26 @@ LLMotion *LLKeyframeMotion::create(const LLUUID &id)
}
//-----------------------------------------------------------------------------
+// getJointState()
+//-----------------------------------------------------------------------------
+LLPointer& LLKeyframeMotion::getJointState(U32 index)
+{
+ llassert_always (index < (S32)mJointStates.size());
+ return mJointStates[index];
+}
+
+//-----------------------------------------------------------------------------
+// getJoin()
+//-----------------------------------------------------------------------------
+LLJoint* LLKeyframeMotion::getJoint(U32 index)
+{
+ llassert_always (index < (S32)mJointStates.size());
+ LLJoint* joint = mJointStates[index]->getJoint();
+ llassert_always (joint);
+ return joint;
+}
+
+//-----------------------------------------------------------------------------
// LLKeyframeMotion::onInitialize(LLCharacter *character)
//-----------------------------------------------------------------------------
LLMotion::LLMotionInitStatus LLKeyframeMotion::onInitialize(LLCharacter *character)
@@ -506,17 +519,25 @@ LLMotion::LLMotionInitStatus LLKeyframeMotion::onInitialize(LLCharacter *charact
// motion already existed in cache, so grab it
mJointMotionList = joint_motion_list;
+ mJointStates.reserve(mJointMotionList->getNumJointMotions());
+
// don't forget to allocate joint states
- mJointStates = new LLJointState[mJointMotionList->mNumJointMotions];
-
// set up joint states to point to character joints
- for(U32 i = 0; i < mJointMotionList->mNumJointMotions; i++)
+ for(U32 i = 0; i < mJointMotionList->getNumJointMotions(); i++)
{
- if (LLJoint *jointp = mCharacter->getJoint(mJointMotionList->mJointMotionArray[i].mJointName))
+ JointMotion* joint_motion = mJointMotionList->getJointMotion(i);
+ if (LLJoint *joint = mCharacter->getJoint(joint_motion->mJointName))
+ {
+ LLPointer joint_state = new LLJointState;
+ mJointStates.push_back(joint_state);
+ joint_state->setJoint(joint);
+ joint_state->setUsage(joint_motion->mUsage);
+ joint_state->setPriority(joint_motion->mPriority);
+ }
+ else
{
- mJointStates[i].setJoint(jointp);
- mJointStates[i].setUsage(mJointMotionList->mJointMotionArray[i].mUsage);
- mJointStates[i].setPriority(joint_motion_list->mJointMotionArray[i].mPriority);
+ // add dummy joint state with no associated joint
+ mJointStates.push_back(new LLJointState);
}
}
mAssetStatus = ASSET_LOADED;
@@ -587,11 +608,12 @@ LLMotion::LLMotionInitStatus LLKeyframeMotion::onInitialize(LLCharacter *charact
BOOL LLKeyframeMotion::setupPose()
{
// add all valid joint states to the pose
- for (U32 jm=0; jmmNumJointMotions; jm++)
+ for (U32 jm=0; jmgetNumJointMotions(); jm++)
{
- if ( mJointStates[jm].getJoint() )
+ LLPointer joint_state = getJointState(jm);
+ if ( joint_state->getJoint() )
{
- addJointState( &mJointStates[jm] );
+ addJointState( joint_state );
}
}
@@ -692,13 +714,12 @@ BOOL LLKeyframeMotion::onUpdate(F32 time, U8* joint_mask)
//-----------------------------------------------------------------------------
void LLKeyframeMotion::applyKeyframes(F32 time)
{
- U32 i;
- for (i=0; imNumJointMotions; i++)
+ llassert_always (mJointMotionList->getNumJointMotions() <= mJointStates.size());
+ for (U32 i=0; igetNumJointMotions(); i++)
{
- mJointMotionList->mJointMotionArray[i].update(
- &mJointStates[i],
- time,
- mJointMotionList->mDuration );
+ mJointMotionList->getJointMotion(i)->update(mJointStates[i],
+ time,
+ mJointMotionList->mDuration );
}
LLJoint::JointPriority* pose_priority = (LLJoint::JointPriority* )mCharacter->getAnimationData("Hand Pose Priority");
@@ -793,7 +814,7 @@ void LLKeyframeMotion::initializeConstraint(JointConstraint* constraint)
S32 joint_num;
LLVector3 source_pos = mCharacter->getVolumePos(shared_data->mSourceConstraintVolume, shared_data->mSourceConstraintOffset);
- LLJoint* cur_joint = mJointStates[shared_data->mJointStateIndices[0]].getJoint();
+ LLJoint* cur_joint = getJoint(shared_data->mJointStateIndices[0]);
F32 source_pos_offset = dist_vec(source_pos, cur_joint->getWorldPosition());
@@ -802,7 +823,7 @@ void LLKeyframeMotion::initializeConstraint(JointConstraint* constraint)
// grab joint lengths
for (joint_num = 1; joint_num < shared_data->mChainLength; joint_num++)
{
- cur_joint = mJointStates[shared_data->mJointStateIndices[joint_num]].getJoint();
+ cur_joint = getJointState(shared_data->mJointStateIndices[joint_num])->getJoint();
if (!cur_joint)
{
return;
@@ -844,7 +865,7 @@ void LLKeyframeMotion::activateConstraint(JointConstraint* constraint)
for (joint_num = 1; joint_num < shared_data->mChainLength; joint_num++)
{
- LLJoint* cur_joint = mJointStates[shared_data->mJointStateIndices[joint_num]].getJoint();
+ LLJoint* cur_joint = getJoint(shared_data->mJointStateIndices[joint_num]);
constraint->mPositions[joint_num] = (cur_joint->getWorldPosition() - mPelvisp->getWorldPosition()) * ~mPelvisp->getWorldRotation();
}
@@ -884,7 +905,6 @@ void LLKeyframeMotion::applyConstraint(JointConstraint* constraint, F32 time, U8
LLVector3 velocities[MAX_CHAIN_LENGTH - 1];
LLQuaternion old_rots[MAX_CHAIN_LENGTH];
S32 joint_num;
- LLJoint* cur_joint;
if (time < shared_data->mEaseInStartTime)
{
@@ -905,7 +925,7 @@ void LLKeyframeMotion::applyConstraint(JointConstraint* constraint, F32 time, U8
activateConstraint(constraint);
}
- LLJoint* root_joint = mJointStates[shared_data->mJointStateIndices[shared_data->mChainLength]].getJoint();
+ LLJoint* root_joint = getJoint(shared_data->mJointStateIndices[shared_data->mChainLength]);
LLVector3 root_pos = root_joint->getWorldPosition();
// LLQuaternion root_rot =
root_joint->getParent()->getWorldRotation();
@@ -916,14 +936,14 @@ void LLKeyframeMotion::applyConstraint(JointConstraint* constraint, F32 time, U8
//apply underlying keyframe animation to get nominal "kinematic" joint positions
for (joint_num = 0; joint_num <= shared_data->mChainLength; joint_num++)
{
- cur_joint = mJointStates[shared_data->mJointStateIndices[joint_num]].getJoint();
+ LLJoint* cur_joint = getJoint(shared_data->mJointStateIndices[joint_num]);
if (joint_mask[cur_joint->getJointNum()] >= (0xff >> (7 - getPriority())))
{
// skip constraint
return;
}
old_rots[joint_num] = cur_joint->getRotation();
- cur_joint->setRotation(mJointStates[shared_data->mJointStateIndices[joint_num]].getRotation());
+ cur_joint->setRotation(getJointState(shared_data->mJointStateIndices[joint_num])->getRotation());
}
@@ -1007,7 +1027,7 @@ void LLKeyframeMotion::applyConstraint(JointConstraint* constraint, F32 time, U8
if (shared_data->mChainLength)
{
- LLQuaternion end_rot = mJointStates[shared_data->mJointStateIndices[0]].getJoint()->getWorldRotation();
+ LLQuaternion end_rot = getJoint(shared_data->mJointStateIndices[0])->getWorldRotation();
// slam start and end of chain to the proper positions (rest of chain stays put)
positions[0] = lerp(keyframe_source_pos, target_pos, weight);
@@ -1016,7 +1036,7 @@ void LLKeyframeMotion::applyConstraint(JointConstraint* constraint, F32 time, U8
// grab keyframe-specified positions of joints
for (joint_num = 1; joint_num < shared_data->mChainLength; joint_num++)
{
- LLVector3 kinematic_position = mJointStates[shared_data->mJointStateIndices[joint_num]].getJoint()->getWorldPosition() +
+ LLVector3 kinematic_position = getJoint(shared_data->mJointStateIndices[joint_num])->getWorldPosition() +
(source_to_target * constraint->mJointLengthFractions[joint_num]);
// convert intermediate joint positions to world coordinates
@@ -1061,9 +1081,9 @@ void LLKeyframeMotion::applyConstraint(JointConstraint* constraint, F32 time, U8
for (joint_num = shared_data->mChainLength; joint_num > 0; joint_num--)
{
- LLQuaternion parent_rot = mJointStates[shared_data->mJointStateIndices[joint_num]].getJoint()->getParent()->getWorldRotation();
- cur_joint = mJointStates[shared_data->mJointStateIndices[joint_num]].getJoint();
- LLJoint* child_joint = mJointStates[shared_data->mJointStateIndices[joint_num - 1]].getJoint();
+ LLJoint* cur_joint = getJoint(shared_data->mJointStateIndices[joint_num]);
+ LLJoint* child_joint = getJoint(shared_data->mJointStateIndices[joint_num - 1]);
+ LLQuaternion parent_rot = cur_joint->getParent()->getWorldRotation();
LLQuaternion cur_rot = cur_joint->getWorldRotation();
LLQuaternion fixup_rot;
@@ -1088,25 +1108,25 @@ void LLKeyframeMotion::applyConstraint(JointConstraint* constraint, F32 time, U8
if (weight != 1.f)
{
- LLQuaternion cur_rot = mJointStates[shared_data->mJointStateIndices[joint_num]].getRotation();
+ LLQuaternion cur_rot = getJointState(shared_data->mJointStateIndices[joint_num])->getRotation();
target_rot = nlerp(weight, cur_rot, target_rot);
}
- mJointStates[shared_data->mJointStateIndices[joint_num]].setRotation(target_rot);
+ getJointState(shared_data->mJointStateIndices[joint_num])->setRotation(target_rot);
cur_joint->setRotation(target_rot);
}
- LLJoint* end_joint = mJointStates[shared_data->mJointStateIndices[0]].getJoint();
+ LLJoint* end_joint = getJoint(shared_data->mJointStateIndices[0]);
LLQuaternion end_local_rot = end_rot * ~end_joint->getParent()->getWorldRotation();
if (weight == 1.f)
{
- mJointStates[shared_data->mJointStateIndices[0]].setRotation(end_local_rot);
+ getJointState(shared_data->mJointStateIndices[0])->setRotation(end_local_rot);
}
else
{
- LLQuaternion cur_rot = mJointStates[shared_data->mJointStateIndices[0]].getRotation();
- mJointStates[shared_data->mJointStateIndices[0]].setRotation(nlerp(weight, cur_rot, end_local_rot));
+ LLQuaternion cur_rot = getJointState(shared_data->mJointStateIndices[0])->getRotation();
+ getJointState(shared_data->mJointStateIndices[0])->setRotation(nlerp(weight, cur_rot, end_local_rot));
}
// save simulated positions in pelvis-space and calculate total fixup distance
@@ -1124,17 +1144,17 @@ void LLKeyframeMotion::applyConstraint(JointConstraint* constraint, F32 time, U8
//reset old joint rots
for (joint_num = 0; joint_num <= shared_data->mChainLength; joint_num++)
{
- mJointStates[shared_data->mJointStateIndices[joint_num]].getJoint()->setRotation(old_rots[joint_num]);
+ getJoint(shared_data->mJointStateIndices[joint_num])->setRotation(old_rots[joint_num]);
}
}
// simple positional constraint (pelvis only)
- else if (mJointStates[shared_data->mJointStateIndices[0]].getUsage() & LLJointState::POS)
+ else if (getJointState(shared_data->mJointStateIndices[0])->getUsage() & LLJointState::POS)
{
LLVector3 delta = source_to_target * weight;
- LLJointState* current_joint_statep = &mJointStates[shared_data->mJointStateIndices[0]];
- LLQuaternion parent_rot = current_joint_statep->getJoint()->getParent()->getWorldRotation();
+ LLPointer current_joint_state = getJointState(shared_data->mJointStateIndices[0]);
+ LLQuaternion parent_rot = current_joint_state->getJoint()->getParent()->getWorldRotation();
delta = delta * ~parent_rot;
- current_joint_statep->setPosition(current_joint_statep->getJoint()->getPosition() + delta);
+ current_joint_state->setPosition(current_joint_state->getJoint()->getPosition() + delta);
}
}
@@ -1145,7 +1165,6 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp)
{
BOOL old_version = FALSE;
mJointMotionList = new LLKeyframeMotion::JointMotionList;
- mJointMotionList->mNumJointMotions = 0;
//-------------------------------------------------------------------------
// get base priority
@@ -1261,40 +1280,38 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp)
//-------------------------------------------------------------------------
// get number of joint motions
//-------------------------------------------------------------------------
- if (!dp.unpackU32(mJointMotionList->mNumJointMotions, "num_joints"))
+ U32 num_motions = 0;
+ if (!dp.unpackU32(num_motions, "num_joints"))
{
llwarns << "can't read number of joints" << llendl;
return FALSE;
}
- if (mJointMotionList->mNumJointMotions == 0)
+ if (num_motions == 0)
{
llwarns << "no joints in animation" << llendl;
return FALSE;
}
- else if (mJointMotionList->mNumJointMotions > LL_CHARACTER_MAX_JOINTS)
+ else if (num_motions > LL_CHARACTER_MAX_JOINTS)
{
llwarns << "too many joints in animation" << llendl;
return FALSE;
}
- mJointMotionList->mJointMotionArray = new JointMotion[mJointMotionList->mNumJointMotions];
- mJointStates = new LLJointState[mJointMotionList->mNumJointMotions];
-
- if (!mJointMotionList->mJointMotionArray)
- {
- mJointMotionList->mDuration = 0.0f;
- mJointMotionList->mEaseInDuration = 0.0f;
- mJointMotionList->mEaseOutDuration = 0.0f;
- return FALSE;
- }
+ mJointMotionList->mJointMotionArray.clear();
+ mJointMotionList->mJointMotionArray.reserve(num_motions);
+ mJointStates.clear();
+ mJointStates.reserve(num_motions);
//-------------------------------------------------------------------------
// initialize joint motions
//-------------------------------------------------------------------------
- S32 k;
- for(U32 i=0; imNumJointMotions; ++i)
+
+ for(U32 i=0; imJointMotionArray.push_back(joint_motion);
+
std::string joint_name;
if (!dp.unpackString(joint_name, "joint_name"))
{
@@ -1316,9 +1333,12 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp)
//return FALSE;
}
- mJointMotionList->mJointMotionArray[i].mJointName = joint_name;
- mJointStates[i].setJoint( joint );
- mJointStates[i].setUsage( 0 );
+ joint_motion->mJointName = joint_name;
+
+ LLPointer joint_state = new LLJointState;
+ mJointStates.push_back(joint_state);
+ joint_state->setJoint( joint );
+ joint_state->setUsage( 0 );
//---------------------------------------------------------------------
// get joint priority
@@ -1330,36 +1350,36 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp)
return FALSE;
}
- mJointMotionList->mJointMotionArray[i].mPriority = (LLJoint::JointPriority)joint_priority;
+ joint_motion->mPriority = (LLJoint::JointPriority)joint_priority;
if (joint_priority != LLJoint::USE_MOTION_PRIORITY &&
joint_priority > mJointMotionList->mMaxPriority)
{
mJointMotionList->mMaxPriority = (LLJoint::JointPriority)joint_priority;
}
- mJointStates[i].setPriority((LLJoint::JointPriority)joint_priority);
+ joint_state->setPriority((LLJoint::JointPriority)joint_priority);
//---------------------------------------------------------------------
// scan rotation curve header
//---------------------------------------------------------------------
- if (!dp.unpackS32(mJointMotionList->mJointMotionArray[i].mRotationCurve.mNumKeys, "num_rot_keys"))
+ if (!dp.unpackS32(joint_motion->mRotationCurve.mNumKeys, "num_rot_keys"))
{
llwarns << "can't read number of rotation keys" << llendl;
return FALSE;
}
- mJointMotionList->mJointMotionArray[i].mRotationCurve.mInterpolationType = IT_LINEAR;
- if (mJointMotionList->mJointMotionArray[i].mRotationCurve.mNumKeys != 0)
+ joint_motion->mRotationCurve.mInterpolationType = IT_LINEAR;
+ if (joint_motion->mRotationCurve.mNumKeys != 0)
{
- mJointStates[i].setUsage(mJointStates[i].getUsage() | LLJointState::ROT );
+ joint_state->setUsage(joint_state->getUsage() | LLJointState::ROT );
}
//---------------------------------------------------------------------
// scan rotation curve keys
//---------------------------------------------------------------------
- RotationCurve *rCurve = &mJointMotionList->mJointMotionArray[i].mRotationCurve;
+ RotationCurve *rCurve = &joint_motion->mRotationCurve;
- for (k = 0; k < mJointMotionList->mJointMotionArray[i].mRotationCurve.mNumKeys; k++)
+ for (S32 k = 0; k < joint_motion->mRotationCurve.mNumKeys; k++)
{
F32 time;
U16 time_short;
@@ -1424,24 +1444,24 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp)
//---------------------------------------------------------------------
// scan position curve header
//---------------------------------------------------------------------
- if (!dp.unpackS32(mJointMotionList->mJointMotionArray[i].mPositionCurve.mNumKeys, "num_pos_keys"))
+ if (!dp.unpackS32(joint_motion->mPositionCurve.mNumKeys, "num_pos_keys"))
{
llwarns << "can't read number of position keys" << llendl;
return FALSE;
}
- mJointMotionList->mJointMotionArray[i].mPositionCurve.mInterpolationType = IT_LINEAR;
- if (mJointMotionList->mJointMotionArray[i].mPositionCurve.mNumKeys != 0)
+ joint_motion->mPositionCurve.mInterpolationType = IT_LINEAR;
+ if (joint_motion->mPositionCurve.mNumKeys != 0)
{
- mJointStates[i].setUsage(mJointStates[i].getUsage() | LLJointState::POS );
+ joint_state->setUsage(joint_state->getUsage() | LLJointState::POS );
}
//---------------------------------------------------------------------
// scan position curve keys
//---------------------------------------------------------------------
- PositionCurve *pCurve = &mJointMotionList->mJointMotionArray[i].mPositionCurve;
- BOOL is_pelvis = mJointMotionList->mJointMotionArray[i].mJointName == "mPelvis";
- for (k = 0; k < mJointMotionList->mJointMotionArray[i].mPositionCurve.mNumKeys; k++)
+ PositionCurve *pCurve = &joint_motion->mPositionCurve;
+ BOOL is_pelvis = joint_motion->mJointName == "mPelvis";
+ for (S32 k = 0; k < joint_motion->mPositionCurve.mNumKeys; k++)
{
U16 time_short;
PositionKey* pos_key = new PositionKey;
@@ -1501,7 +1521,7 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp)
}
}
- mJointMotionList->mJointMotionArray[i].mUsage = mJointStates[i].getUsage();
+ joint_motion->mUsage = joint_state->getUsage();
}
//-------------------------------------------------------------------------
@@ -1655,9 +1675,9 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp)
}
joint = parent;
constraintp->mJointStateIndices[i] = -1;
- for (U32 j = 0; j < mJointMotionList->mNumJointMotions; j++)
+ for (U32 j = 0; j < mJointMotionList->getNumJointMotions(); j++)
{
- if(mJointStates[j].getJoint() == joint)
+ if(getJoint(j) == joint)
{
constraintp->mJointStateIndices[i] = (S32)j;
break;
@@ -1695,11 +1715,11 @@ BOOL LLKeyframeMotion::serialize(LLDataPacker& dp) const
success &= dp.packF32(mJointMotionList->mEaseInDuration, "ease_in_duration");
success &= dp.packF32(mJointMotionList->mEaseOutDuration, "ease_out_duration");
success &= dp.packU32(mJointMotionList->mHandPose, "hand_pose");
- success &= dp.packU32(mJointMotionList->mNumJointMotions, "num_joints");
+ success &= dp.packU32(mJointMotionList->getNumJointMotions(), "num_joints");
- for (U32 i = 0; i < mJointMotionList->mNumJointMotions; i++)
+ for (U32 i = 0; i < mJointMotionList->getNumJointMotions(); i++)
{
- JointMotion* joint_motionp = &mJointMotionList->mJointMotionArray[i];
+ JointMotion* joint_motionp = mJointMotionList->getJointMotion(i);
success &= dp.packString(joint_motionp->mJointName.c_str(), "joint_name");
success &= dp.packS32(joint_motionp->mPriority, "joint_priority");
success &= dp.packS32(joint_motionp->mRotationCurve.mNumKeys, "num_rot_keys");
@@ -1806,13 +1826,14 @@ void LLKeyframeMotion::setPriority(S32 priority)
mJointMotionList->mBasePriority = (LLJoint::JointPriority)priority;
mJointMotionList->mMaxPriority = mJointMotionList->mBasePriority;
- for (U32 i = 0; i < mJointMotionList->mNumJointMotions; i++)
+ for (U32 i = 0; i < mJointMotionList->getNumJointMotions(); i++)
{
- mJointMotionList->mJointMotionArray[i].mPriority = (LLJoint::JointPriority)llclamp(
- (S32)mJointMotionList->mJointMotionArray[i].mPriority + priority_delta,
+ JointMotion* joint_motion = mJointMotionList->getJointMotion(i);
+ joint_motion->mPriority = (LLJoint::JointPriority)llclamp(
+ (S32)joint_motion->mPriority + priority_delta,
(S32)LLJoint::LOW_PRIORITY,
(S32)LLJoint::HIGHEST_PRIORITY);
- mJointStates[i].setPriority(mJointMotionList->mJointMotionArray[i].mPriority);
+ getJointState(i)->setPriority(joint_motion->mPriority);
}
}
}
@@ -1888,11 +1909,13 @@ void LLKeyframeMotion::setLoopIn(F32 in_point)
mJointMotionList->mLoopInPoint = in_point;
// set up loop keys
- for (U32 i = 0; i < mJointMotionList->mNumJointMotions; i++)
+ for (U32 i = 0; i < mJointMotionList->getNumJointMotions(); i++)
{
- PositionCurve* pos_curve = &mJointMotionList->mJointMotionArray[i].mPositionCurve;
- RotationCurve* rot_curve = &mJointMotionList->mJointMotionArray[i].mRotationCurve;
- ScaleCurve* scale_curve = &mJointMotionList->mJointMotionArray[i].mScaleCurve;
+ JointMotion* joint_motion = mJointMotionList->getJointMotion(i);
+
+ PositionCurve* pos_curve = &joint_motion->mPositionCurve;
+ RotationCurve* rot_curve = &joint_motion->mRotationCurve;
+ ScaleCurve* scale_curve = &joint_motion->mScaleCurve;
pos_curve->mLoopInKey.mTime = mJointMotionList->mLoopInPoint;
rot_curve->mLoopInKey.mTime = mJointMotionList->mLoopInPoint;
@@ -1915,11 +1938,13 @@ void LLKeyframeMotion::setLoopOut(F32 out_point)
mJointMotionList->mLoopOutPoint = out_point;
// set up loop keys
- for (U32 i = 0; i < mJointMotionList->mNumJointMotions; i++)
+ for (U32 i = 0; i < mJointMotionList->getNumJointMotions(); i++)
{
- PositionCurve* pos_curve = &mJointMotionList->mJointMotionArray[i].mPositionCurve;
- RotationCurve* rot_curve = &mJointMotionList->mJointMotionArray[i].mRotationCurve;
- ScaleCurve* scale_curve = &mJointMotionList->mJointMotionArray[i].mScaleCurve;
+ JointMotion* joint_motion = mJointMotionList->getJointMotion(i);
+
+ PositionCurve* pos_curve = &joint_motion->mPositionCurve;
+ RotationCurve* rot_curve = &joint_motion->mRotationCurve;
+ ScaleCurve* scale_curve = &joint_motion->mScaleCurve;
pos_curve->mLoopOutKey.mTime = mJointMotionList->mLoopOutPoint;
rot_curve->mLoopOutKey.mTime = mJointMotionList->mLoopOutPoint;
@@ -2020,10 +2045,10 @@ void LLKeyframeMotion::writeCAL3D(apr_file_t* fp)
//
//
- apr_file_printf(fp, "\n", getDuration(), mJointMotionList->mNumJointMotions);
- for (U32 joint_index = 0; joint_index < mJointMotionList->mNumJointMotions; joint_index++)
+ apr_file_printf(fp, "\n", getDuration(), mJointMotionList->getNumJointMotions());
+ for (U32 joint_index = 0; joint_index < mJointMotionList->getNumJointMotions(); joint_index++)
{
- JointMotion* joint_motionp = &mJointMotionList->mJointMotionArray[joint_index];
+ JointMotion* joint_motionp = mJointMotionList->getJointMotion(joint_index);
LLJoint* animated_joint = mCharacter->getJoint(joint_motionp->mJointName);
S32 joint_num = animated_joint->mJointNum + 1;
diff --git a/linden/indra/llcharacter/llkeyframemotion.h b/linden/indra/llcharacter/llkeyframemotion.h
index ef3f6dd..0ad0181 100644
--- a/linden/indra/llcharacter/llkeyframemotion.h
+++ b/linden/indra/llcharacter/llkeyframemotion.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -73,6 +73,11 @@ public:
// Destructor
virtual ~LLKeyframeMotion();
+private:
+ // private helper functions to wrap some asserts
+ LLPointer& getJointState(U32 index);
+ LLJoint* getJoint(U32 index);
+
public:
//-------------------------------------------------------------------------
// functions to support MotionController and MotionRegistry
@@ -388,7 +393,7 @@ public:
U32 mUsage;
LLJoint::JointPriority mPriority;
- void update(LLJointState *joint_state, F32 time, F32 duration);
+ void update(LLJointState* joint_state, F32 time, F32 duration);
};
//-------------------------------------------------------------------------
@@ -397,8 +402,7 @@ public:
class JointMotionList
{
public:
- U32 mNumJointMotions;
- JointMotion* mJointMotionArray;
+ std::vector mJointMotionArray;
F32 mDuration;
BOOL mLoop;
F32 mLoopInPoint;
@@ -415,6 +419,8 @@ public:
JointMotionList();
~JointMotionList();
U32 dumpDiagInfo();
+ JointMotion* getJointMotion(U32 index) const { llassert(index < mJointMotionArray.size()); return mJointMotionArray[index]; }
+ U32 getNumJointMotions() const { return mJointMotionArray.size(); }
};
@@ -425,7 +431,7 @@ protected:
// Member Data
//-------------------------------------------------------------------------
JointMotionList* mJointMotionList;
- LLJointState* mJointStates;
+ std::vector > mJointStates;
LLJoint* mPelvisp;
LLCharacter* mCharacter;
std::string mEmoteName;
diff --git a/linden/indra/llcharacter/llkeyframemotionparam.cpp b/linden/indra/llcharacter/llkeyframemotionparam.cpp
index 12b7296..2dd935c 100644
--- a/linden/indra/llcharacter/llkeyframemotionparam.cpp
+++ b/linden/indra/llcharacter/llkeyframemotionparam.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -61,7 +61,6 @@ BOOL LLKeyframeMotionParam::sortFunc(ParameterizedMotion *new_motion, Parameteri
//-----------------------------------------------------------------------------
LLKeyframeMotionParam::LLKeyframeMotionParam( const LLUUID &id) : LLMotion(id)
{
- mJointStates = NULL;
mDefaultKeyframeMotion = NULL;
mCharacter = NULL;
diff --git a/linden/indra/llcharacter/llkeyframemotionparam.h b/linden/indra/llcharacter/llkeyframemotionparam.h
index 75977ee..a5bc2cb 100644
--- a/linden/indra/llcharacter/llkeyframemotionparam.h
+++ b/linden/indra/llcharacter/llkeyframemotionparam.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -145,7 +145,6 @@ protected:
typedef LLLinkedList < ParameterizedMotion > motion_list_t;
LLAssocList mParameterizedMotions;
- LLJointState* mJointStates;
LLMotion* mDefaultKeyframeMotion;
LLCharacter* mCharacter;
LLPoseBlender mPoseBlender;
diff --git a/linden/indra/llcharacter/llkeyframestandmotion.cpp b/linden/indra/llcharacter/llkeyframestandmotion.cpp
index 9e850a4..6517681 100644
--- a/linden/indra/llcharacter/llkeyframestandmotion.cpp
+++ b/linden/indra/llcharacter/llkeyframestandmotion.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/llkeyframestandmotion.h b/linden/indra/llcharacter/llkeyframestandmotion.h
index 0fcda27..6772b6e 100644
--- a/linden/indra/llcharacter/llkeyframestandmotion.h
+++ b/linden/indra/llcharacter/llkeyframestandmotion.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -78,15 +78,15 @@ public:
BOOL mFlipFeet;
- LLJointState *mPelvisState;
+ LLPointer mPelvisState;
- LLJointState *mHipLeftState;
- LLJointState *mKneeLeftState;
- LLJointState *mAnkleLeftState;
+ LLPointer mHipLeftState;
+ LLPointer mKneeLeftState;
+ LLPointer mAnkleLeftState;
- LLJointState *mHipRightState;
- LLJointState *mKneeRightState;
- LLJointState *mAnkleRightState;
+ LLPointer mHipRightState;
+ LLPointer mKneeRightState;
+ LLPointer mAnkleRightState;
LLJoint mPelvisJoint;
diff --git a/linden/indra/llcharacter/llkeyframewalkmotion.cpp b/linden/indra/llcharacter/llkeyframewalkmotion.cpp
index 83c1c49..d5f6b81 100644
--- a/linden/indra/llcharacter/llkeyframewalkmotion.cpp
+++ b/linden/indra/llcharacter/llkeyframewalkmotion.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -143,6 +143,8 @@ LLWalkAdjustMotion::LLWalkAdjustMotion(const LLUUID &id) : LLMotion(id)
{
mLastTime = 0.f;
mName = "walk_adjust";
+
+ mPelvisState = new LLJointState;
}
//-----------------------------------------------------------------------------
@@ -155,15 +157,15 @@ LLMotion::LLMotionInitStatus LLWalkAdjustMotion::onInitialize(LLCharacter *chara
mRightAnkleJoint = mCharacter->getJoint("mAnkleRight");
mPelvisJoint = mCharacter->getJoint("mPelvis");
- mPelvisState.setJoint( mPelvisJoint );
+ mPelvisState->setJoint( mPelvisJoint );
if ( !mPelvisJoint )
{
llwarns << getName() << ": Can't get pelvis joint." << llendl;
return STATUS_FAILURE;
}
- mPelvisState.setUsage(LLJointState::POS);
- addJointState( &mPelvisState );
+ mPelvisState->setUsage(LLJointState::POS);
+ addJointState( mPelvisState );
return STATUS_SUCCESS;
}
@@ -178,7 +180,7 @@ BOOL LLWalkAdjustMotion::onActivate()
mAnimSpeed = 0.f;
mAvgSpeed = 0.f;
mRelativeDir = 1.f;
- mPelvisState.setPosition(LLVector3::zero);
+ mPelvisState->setPosition(LLVector3::zero);
// store ankle positions for next frame
mLastLeftAnklePos = mCharacter->getPosGlobalFromAgent(mLeftAnkleJoint->getWorldPosition());
mLastRightAnklePos = mCharacter->getPosGlobalFromAgent(mRightAnkleJoint->getWorldPosition());
@@ -271,7 +273,7 @@ BOOL LLWalkAdjustMotion::onUpdate(F32 time, U8* joint_mask)
// calculate ideal pelvis offset so that foot is glued to ground and damp towards it
// the amount of foot slippage this frame + the offset applied last frame
- mPelvisOffset = mPelvisState.getPosition() + lerp(LLVector3::zero, footCorrection, LLCriticalDamp::getInterpolant(0.2f));
+ mPelvisOffset = mPelvisState->getPosition() + lerp(LLVector3::zero, footCorrection, LLCriticalDamp::getInterpolant(0.2f));
// pelvis drift (along walk direction)
mAvgCorrection = lerp(mAvgCorrection, footCorrection.mV[VX] * mRelativeDir, LLCriticalDamp::getInterpolant(0.1f));
@@ -319,7 +321,7 @@ BOOL LLWalkAdjustMotion::onUpdate(F32 time, U8* joint_mask)
F32 drift_comp_max = llclamp(speed, 0.f, DRIFT_COMP_MAX_SPEED) / DRIFT_COMP_MAX_SPEED;
drift_comp_max *= DRIFT_COMP_MAX_TOTAL;
- LLVector3 currentPelvisPos = mPelvisState.getJoint()->getPosition();
+ LLVector3 currentPelvisPos = mPelvisState->getJoint()->getPosition();
// NB: this is an ADDITIVE amount that is accumulated every frame, so clamping it alone won't do the trick
// must clamp with absolute position of pelvis in mind
@@ -328,7 +330,7 @@ BOOL LLWalkAdjustMotion::onUpdate(F32 time, U8* joint_mask)
mPelvisOffset.mV[VZ] = 0.f;
// set position
- mPelvisState.setPosition(mPelvisOffset);
+ mPelvisState->setPosition(mPelvisOffset);
mCharacter->setAnimationData("Pelvis Offset", &mPelvisOffset);
@@ -344,6 +346,17 @@ void LLWalkAdjustMotion::onDeactivate()
}
//-----------------------------------------------------------------------------
+// LLFlyAdjustMotion::LLFlyAdjustMotion()
+//-----------------------------------------------------------------------------
+LLFlyAdjustMotion::LLFlyAdjustMotion(const LLUUID &id)
+ : LLMotion(id)
+{
+ mName = "fly_adjust";
+
+ mPelvisState = new LLJointState;
+}
+
+//-----------------------------------------------------------------------------
// LLFlyAdjustMotion::onInitialize()
//-----------------------------------------------------------------------------
LLMotion::LLMotionInitStatus LLFlyAdjustMotion::onInitialize(LLCharacter *character)
@@ -351,15 +364,15 @@ LLMotion::LLMotionInitStatus LLFlyAdjustMotion::onInitialize(LLCharacter *charac
mCharacter = character;
LLJoint* pelvisJoint = mCharacter->getJoint("mPelvis");
- mPelvisState.setJoint( pelvisJoint );
+ mPelvisState->setJoint( pelvisJoint );
if ( !pelvisJoint )
{
llwarns << getName() << ": Can't get pelvis joint." << llendl;
return STATUS_FAILURE;
}
- mPelvisState.setUsage(LLJointState::POS | LLJointState::ROT);
- addJointState( &mPelvisState );
+ mPelvisState->setUsage(LLJointState::POS | LLJointState::ROT);
+ addJointState( mPelvisState );
return STATUS_SUCCESS;
}
@@ -369,8 +382,8 @@ LLMotion::LLMotionInitStatus LLFlyAdjustMotion::onInitialize(LLCharacter *charac
//-----------------------------------------------------------------------------
BOOL LLFlyAdjustMotion::onActivate()
{
- mPelvisState.setPosition(LLVector3::zero);
- mPelvisState.setRotation(LLQuaternion::DEFAULT);
+ mPelvisState->setPosition(LLVector3::zero);
+ mPelvisState->setRotation(LLQuaternion::DEFAULT);
mRoll = 0.f;
return TRUE;
}
@@ -392,11 +405,11 @@ BOOL LLFlyAdjustMotion::onUpdate(F32 time, U8* joint_mask)
// llinfos << mRoll << llendl;
LLQuaternion roll(mRoll, LLVector3(0.f, 0.f, 1.f));
- mPelvisState.setRotation(roll);
+ mPelvisState->setRotation(roll);
// F32 lerp_amt = LLCriticalDamp::getInterpolant(0.2f);
//
-// LLVector3 pelvis_correction = mPelvisState.getPosition() - lerp(LLVector3::zero, mPelvisState.getJoint()->getPosition() + mPelvisState.getPosition(), lerp_amt);
-// mPelvisState.setPosition(pelvis_correction);
+// LLVector3 pelvis_correction = mPelvisState->getPosition() - lerp(LLVector3::zero, mPelvisState->getJoint()->getPosition() + mPelvisState->getPosition(), lerp_amt);
+// mPelvisState->setPosition(pelvis_correction);
return TRUE;
}
diff --git a/linden/indra/llcharacter/llkeyframewalkmotion.h b/linden/indra/llcharacter/llkeyframewalkmotion.h
index 3c5a0cb..1a4e39f 100644
--- a/linden/indra/llcharacter/llkeyframewalkmotion.h
+++ b/linden/indra/llcharacter/llkeyframewalkmotion.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -123,7 +123,7 @@ public:
LLCharacter *mCharacter;
LLJoint* mLeftAnkleJoint;
LLJoint* mRightAnkleJoint;
- LLJointState mPelvisState;
+ LLPointer mPelvisState;
LLJoint* mPelvisJoint;
LLVector3d mLastLeftAnklePos;
LLVector3d mLastRightAnklePos;
@@ -141,7 +141,7 @@ class LLFlyAdjustMotion : public LLMotion
{
public:
// Constructor
- LLFlyAdjustMotion(const LLUUID &id) : LLMotion(id) {mName = "fly_adjust";}
+ LLFlyAdjustMotion(const LLUUID &id);
public:
//-------------------------------------------------------------------------
@@ -173,7 +173,7 @@ protected:
// Member Data
//-------------------------------------------------------------------------
LLCharacter *mCharacter;
- LLJointState mPelvisState;
+ LLPointer mPelvisState;
F32 mRoll;
};
diff --git a/linden/indra/llcharacter/llmotion.cpp b/linden/indra/llcharacter/llmotion.cpp
index aa5e542..899796c 100644
--- a/linden/indra/llcharacter/llmotion.cpp
+++ b/linden/indra/llcharacter/llmotion.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -106,7 +106,7 @@ void LLMotion::fadeIn()
//-----------------------------------------------------------------------------
// addJointState()
//-----------------------------------------------------------------------------
-void LLMotion::addJointState(LLJointState* jointState)
+void LLMotion::addJointState(const LLPointer& jointState)
{
mPose.addJointState(jointState);
S32 priority = jointState->getPriority();
diff --git a/linden/indra/llcharacter/llmotion.h b/linden/indra/llcharacter/llmotion.h
index 1d21edc..188937d 100644
--- a/linden/indra/llcharacter/llmotion.h
+++ b/linden/indra/llcharacter/llmotion.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -163,7 +163,7 @@ protected:
// it will be deactivated
virtual BOOL onActivate() = 0;
- void addJointState(LLJointState* jointState);
+ void addJointState(const LLPointer& jointState);
protected:
LLPose mPose;
diff --git a/linden/indra/llcharacter/llmotioncontroller.cpp b/linden/indra/llcharacter/llmotioncontroller.cpp
index 8dc90b8..d1a2a53 100644
--- a/linden/indra/llcharacter/llmotioncontroller.cpp
+++ b/linden/indra/llcharacter/llmotioncontroller.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/llmotioncontroller.h b/linden/indra/llcharacter/llmotioncontroller.h
index 76f5c68..e66edcb 100644
--- a/linden/indra/llcharacter/llmotioncontroller.h
+++ b/linden/indra/llcharacter/llmotioncontroller.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/llmultigesture.cpp b/linden/indra/llcharacter/llmultigesture.cpp
index 080627a..02016a0 100644
--- a/linden/indra/llcharacter/llmultigesture.cpp
+++ b/linden/indra/llcharacter/llmultigesture.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/llmultigesture.h b/linden/indra/llcharacter/llmultigesture.h
index 23c9c0f..08748b7 100644
--- a/linden/indra/llcharacter/llmultigesture.h
+++ b/linden/indra/llcharacter/llmultigesture.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/llpose.cpp b/linden/indra/llcharacter/llpose.cpp
index e74517f..3a6a221 100644
--- a/linden/indra/llcharacter/llpose.cpp
+++ b/linden/indra/llcharacter/llpose.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -54,7 +54,7 @@ LLPose::~LLPose()
//-----------------------------------------------------------------------------
// getFirstJointState()
//-----------------------------------------------------------------------------
-LLJointState *LLPose::getFirstJointState()
+LLJointState* LLPose::getFirstJointState()
{
mListIter = mJointMap.begin();
if (mListIter == mJointMap.end())
@@ -86,7 +86,7 @@ LLJointState *LLPose::getNextJointState()
//-----------------------------------------------------------------------------
// addJointState()
//-----------------------------------------------------------------------------
-BOOL LLPose::addJointState(LLJointState *jointState)
+BOOL LLPose::addJointState(const LLPointer& jointState)
{
if (mJointMap.find(jointState->getJoint()->getName()) == mJointMap.end())
{
@@ -98,7 +98,7 @@ BOOL LLPose::addJointState(LLJointState *jointState)
//-----------------------------------------------------------------------------
// removeJointState()
//-----------------------------------------------------------------------------
-BOOL LLPose::removeJointState(LLJointState *jointState)
+BOOL LLPose::removeJointState(const LLPointer& jointState)
{
mJointMap.erase(jointState->getJoint()->getName());
return TRUE;
@@ -199,7 +199,7 @@ LLJointStateBlender::~LLJointStateBlender()
//-----------------------------------------------------------------------------
// addJointState()
//-----------------------------------------------------------------------------
-BOOL LLJointStateBlender::addJointState(LLJointState *joint_state, S32 priority, BOOL additive_blend)
+BOOL LLJointStateBlender::addJointState(const LLPointer& joint_state, S32 priority, BOOL additive_blend)
{
llassert(joint_state);
@@ -209,7 +209,7 @@ BOOL LLJointStateBlender::addJointState(LLJointState *joint_state, S32 priority,
for(S32 i = 0; i < JSB_NUM_JOINT_STATES; i++)
{
- if (NULL == mJointStates[i])
+ if (mJointStates[i].isNull())
{
mJointStates[i] = joint_state;
mPriorities[i] = priority;
@@ -246,7 +246,7 @@ void LLJointStateBlender::blendJointStates(BOOL apply_now)
// we need at least one joint to blend
// if there is one, it will be in slot zero according to insertion logic
// instead of resetting joint state to default, just leave it unchanged from last frame
- if (NULL == mJointStates[0])
+ if (mJointStates[0].isNull())
{
return;
}
@@ -275,7 +275,7 @@ void LLJointStateBlender::blendJointStates(BOOL apply_now)
sum_weights[SCALE_WEIGHT] = 0.f;
for(S32 joint_state_index = 0;
- joint_state_index < JSB_NUM_JOINT_STATES && mJointStates[joint_state_index] != NULL;
+ joint_state_index < JSB_NUM_JOINT_STATES && mJointStates[joint_state_index].notNull();
joint_state_index++)
{
LLJointState* jsp = mJointStates[joint_state_index];
@@ -468,7 +468,7 @@ BOOL LLPoseBlender::addMotion(LLMotion* motion)
{
LLPose* pose = motion->getPose();
- for(LLJointState *jsp = pose->getFirstJointState(); jsp; jsp = pose->getNextJointState())
+ for(LLJointState* jsp = pose->getFirstJointState(); jsp; jsp = pose->getNextJointState())
{
LLJoint *jointp = jsp->getJoint();
LLJointStateBlender* joint_blender;
diff --git a/linden/indra/llcharacter/llpose.h b/linden/indra/llcharacter/llpose.h
index 5ea586f..f67a26b 100644
--- a/linden/indra/llcharacter/llpose.h
+++ b/linden/indra/llcharacter/llpose.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -52,7 +52,7 @@ class LLPose
{
friend class LLPoseBlender;
protected:
- typedef std::map joint_map;
+ typedef std::map > joint_map;
typedef joint_map::iterator joint_map_iterator;
typedef joint_map::value_type joint_map_value_type;
@@ -61,19 +61,19 @@ protected:
joint_map_iterator mListIter;
public:
// Iterate through jointStates
- LLJointState *getFirstJointState();
- LLJointState *getNextJointState();
- LLJointState *findJointState(LLJoint *joint);
- LLJointState *findJointState(const std::string &name);
+ LLJointState* getFirstJointState();
+ LLJointState* getNextJointState();
+ LLJointState* findJointState(LLJoint *joint);
+ LLJointState* findJointState(const std::string &name);
public:
// Constructor
LLPose() : mWeight(0.f) {}
// Destructor
~LLPose();
// add a joint state in this pose
- BOOL addJointState(LLJointState *jointState);
+ BOOL addJointState(const LLPointer& jointState);
// remove a joint state from this pose
- BOOL removeJointState(LLJointState *jointState);
+ BOOL removeJointState(const LLPointer& jointState);
// removes all joint states from this pose
BOOL removeAllJointStates();
// set weight for all joint states in this pose
@@ -89,14 +89,14 @@ const S32 JSB_NUM_JOINT_STATES = 6;
class LLJointStateBlender
{
protected:
- LLJointState* mJointStates[JSB_NUM_JOINT_STATES];
+ LLPointer mJointStates[JSB_NUM_JOINT_STATES];
S32 mPriorities[JSB_NUM_JOINT_STATES];
BOOL mAdditiveBlends[JSB_NUM_JOINT_STATES];
public:
LLJointStateBlender();
~LLJointStateBlender();
void blendJointStates(BOOL apply_now = TRUE);
- BOOL addJointState(LLJointState *joint_state, S32 priority, BOOL additive_blend);
+ BOOL addJointState(const LLPointer& joint_state, S32 priority, BOOL additive_blend);
void interpolate(F32 u);
void clear();
void resetCachedJoint();
diff --git a/linden/indra/llcharacter/llstatemachine.cpp b/linden/indra/llcharacter/llstatemachine.cpp
index 47cdfff..eab6e7f 100644
--- a/linden/indra/llcharacter/llstatemachine.cpp
+++ b/linden/indra/llcharacter/llstatemachine.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/llstatemachine.h b/linden/indra/llcharacter/llstatemachine.h
index a4d3145..f46e4bf 100644
--- a/linden/indra/llcharacter/llstatemachine.h
+++ b/linden/indra/llcharacter/llstatemachine.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/lltargetingmotion.cpp b/linden/indra/llcharacter/lltargetingmotion.cpp
index 1676a08..0f160a4 100644
--- a/linden/indra/llcharacter/lltargetingmotion.cpp
+++ b/linden/indra/llcharacter/lltargetingmotion.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -55,6 +55,8 @@ LLTargetingMotion::LLTargetingMotion(const LLUUID &id) : LLMotion(id)
{
mCharacter = NULL;
mName = "targeting";
+
+ mTorsoState = new LLJointState;
}
@@ -87,11 +89,11 @@ LLMotion::LLMotionInitStatus LLTargetingMotion::onInitialize(LLCharacter *charac
return STATUS_FAILURE;
}
- mTorsoState.setJoint( mTorsoJoint );
+ mTorsoState->setJoint( mTorsoJoint );
// add joint states to the pose
- mTorsoState.setUsage(LLJointState::ROT);
- addJointState( &mTorsoState );
+ mTorsoState->setUsage(LLJointState::ROT);
+ addJointState( mTorsoState );
return STATUS_SUCCESS;
}
@@ -127,7 +129,7 @@ BOOL LLTargetingMotion::onUpdate(F32 time, U8* joint_mask)
}
//LLVector3 target_plane_normal = LLVector3(1.f, 0.f, 0.f) * mPelvisJoint->getWorldRotation();
- //LLVector3 torso_dir = LLVector3(1.f, 0.f, 0.f) * (mTorsoJoint->getWorldRotation() * mTorsoState.getRotation());
+ //LLVector3 torso_dir = LLVector3(1.f, 0.f, 0.f) * (mTorsoJoint->getWorldRotation() * mTorsoState->getRotation());
LLVector3 skyward(0.f, 0.f, 1.f);
LLVector3 left(skyward % target);
@@ -151,14 +153,14 @@ BOOL LLTargetingMotion::onUpdate(F32 time, U8* joint_mask)
new_torso_rot = new_torso_rot * ~cur_torso_rot;
// slerp from current additive rotation to ideal additive rotation
- new_torso_rot = nlerp(slerp_amt, mTorsoState.getRotation(), new_torso_rot);
+ new_torso_rot = nlerp(slerp_amt, mTorsoState->getRotation(), new_torso_rot);
// constraint overall torso rotation
LLQuaternion total_rot = new_torso_rot * mTorsoJoint->getRotation();
total_rot.constrain(F_PI_BY_TWO * 0.8f);
new_torso_rot = total_rot * ~mTorsoJoint->getRotation();
- mTorsoState.setRotation(new_torso_rot);
+ mTorsoState->setRotation(new_torso_rot);
return result;
}
diff --git a/linden/indra/llcharacter/lltargetingmotion.h b/linden/indra/llcharacter/lltargetingmotion.h
index 1436c21..e83fb00 100644
--- a/linden/indra/llcharacter/lltargetingmotion.h
+++ b/linden/indra/llcharacter/lltargetingmotion.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -111,7 +111,7 @@ public:
public:
LLCharacter *mCharacter;
- LLJointState mTorsoState;
+ LLPointer mTorsoState;
LLJoint* mPelvisJoint;
LLJoint* mTorsoJoint;
LLJoint* mRightHandJoint;
diff --git a/linden/indra/llcharacter/llvisualparam.cpp b/linden/indra/llcharacter/llvisualparam.cpp
index d14664e..00b1072 100644
--- a/linden/indra/llcharacter/llvisualparam.cpp
+++ b/linden/indra/llcharacter/llvisualparam.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcharacter/llvisualparam.h b/linden/indra/llcharacter/llvisualparam.h
index 177d08c..41b8a05 100644
--- a/linden/indra/llcharacter/llvisualparam.h
+++ b/linden/indra/llcharacter/llvisualparam.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/bitpack.h b/linden/indra/llcommon/bitpack.h
index 89c3752..74e1d0d 100644
--- a/linden/indra/llcommon/bitpack.h
+++ b/linden/indra/llcommon/bitpack.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/ctype_workaround.h b/linden/indra/llcommon/ctype_workaround.h
index 3d0faaf..0b9acf9 100644
--- a/linden/indra/llcommon/ctype_workaround.h
+++ b/linden/indra/llcommon/ctype_workaround.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/doublelinkedlist.h b/linden/indra/llcommon/doublelinkedlist.h
index 4e5a871..ce2493f 100644
--- a/linden/indra/llcommon/doublelinkedlist.h
+++ b/linden/indra/llcommon/doublelinkedlist.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/files.lst b/linden/indra/llcommon/files.lst
index f7bf5e3..6f03155 100644
--- a/linden/indra/llcommon/files.lst
+++ b/linden/indra/llcommon/files.lst
@@ -15,6 +15,7 @@ llcommon/llfile.cpp
llcommon/llfixedbuffer.cpp
llcommon/llformat.cpp
llcommon/llframetimer.cpp
+llcommon/lllog.cpp
llcommon/llliveappconfig.cpp
llcommon/lllivefile.cpp
llcommon/llmemory.cpp
diff --git a/linden/indra/llcommon/imageids.h b/linden/indra/llcommon/imageids.h
index 43409ba..4a1e221 100644
--- a/linden/indra/llcommon/imageids.h
+++ b/linden/indra/llcommon/imageids.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/indra_constants.h b/linden/indra/llcommon/indra_constants.h
index 75a83c6..6cb2e29 100644
--- a/linden/indra/llcommon/indra_constants.h
+++ b/linden/indra/llcommon/indra_constants.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/linden_common.h b/linden/indra/llcommon/linden_common.h
index 79c027e..01540c1 100644
--- a/linden/indra/llcommon/linden_common.h
+++ b/linden/indra/llcommon/linden_common.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/linked_lists.h b/linden/indra/llcommon/linked_lists.h
index ec168fc..5d5a707 100644
--- a/linden/indra/llcommon/linked_lists.h
+++ b/linden/indra/llcommon/linked_lists.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llagentconstants.h b/linden/indra/llcommon/llagentconstants.h
index 7c2a0ed..5757751 100644
--- a/linden/indra/llcommon/llagentconstants.h
+++ b/linden/indra/llcommon/llagentconstants.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llapp.cpp b/linden/indra/llcommon/llapp.cpp
index efb2ba6..5ae0727 100644
--- a/linden/indra/llcommon/llapp.cpp
+++ b/linden/indra/llcommon/llapp.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llapp.h b/linden/indra/llcommon/llapp.h
index 769c2b5..1a700cc 100644
--- a/linden/indra/llcommon/llapp.h
+++ b/linden/indra/llcommon/llapp.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llapr.cpp b/linden/indra/llcommon/llapr.cpp
index ca28ef0..a577cc7 100644
--- a/linden/indra/llcommon/llapr.cpp
+++ b/linden/indra/llcommon/llapr.cpp
@@ -14,12 +14,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llapr.h b/linden/indra/llcommon/llapr.h
index 0389071..695b93e 100644
--- a/linden/indra/llcommon/llapr.h
+++ b/linden/indra/llcommon/llapr.h
@@ -14,12 +14,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llares.cpp b/linden/indra/llcommon/llares.cpp
index ed42736..cf5ff18 100644
--- a/linden/indra/llcommon/llares.cpp
+++ b/linden/indra/llcommon/llares.cpp
@@ -14,12 +14,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llares.h b/linden/indra/llcommon/llares.h
index 495a215..07957f1 100644
--- a/linden/indra/llcommon/llares.h
+++ b/linden/indra/llcommon/llares.h
@@ -14,12 +14,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llassettype.cpp b/linden/indra/llcommon/llassettype.cpp
index db619b6..4b2a862 100644
--- a/linden/indra/llcommon/llassettype.cpp
+++ b/linden/indra/llcommon/llassettype.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llassettype.h b/linden/indra/llcommon/llassettype.h
index d18d509..f5ef05b 100644
--- a/linden/indra/llcommon/llassettype.h
+++ b/linden/indra/llcommon/llassettype.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llassoclist.h b/linden/indra/llcommon/llassoclist.h
index d289f03..78a332e 100644
--- a/linden/indra/llcommon/llassoclist.h
+++ b/linden/indra/llcommon/llassoclist.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llavatarconstants.h b/linden/indra/llcommon/llavatarconstants.h
index 5278b31..98ce499 100644
--- a/linden/indra/llcommon/llavatarconstants.h
+++ b/linden/indra/llcommon/llavatarconstants.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llbase32.cpp b/linden/indra/llcommon/llbase32.cpp
index 3daf7ef..0212e1f 100644
--- a/linden/indra/llcommon/llbase32.cpp
+++ b/linden/indra/llcommon/llbase32.cpp
@@ -17,12 +17,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llbase32.h b/linden/indra/llcommon/llbase32.h
index 7d4aad0..cb939d2 100644
--- a/linden/indra/llcommon/llbase32.h
+++ b/linden/indra/llcommon/llbase32.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llbase64.cpp b/linden/indra/llcommon/llbase64.cpp
index dffb953..950ce6e 100644
--- a/linden/indra/llcommon/llbase64.cpp
+++ b/linden/indra/llcommon/llbase64.cpp
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llbase64.h b/linden/indra/llcommon/llbase64.h
index c32a720..4101a23 100644
--- a/linden/indra/llcommon/llbase64.h
+++ b/linden/indra/llcommon/llbase64.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llboost.h b/linden/indra/llcommon/llboost.h
index 782c237..36f4daf 100644
--- a/linden/indra/llcommon/llboost.h
+++ b/linden/indra/llcommon/llboost.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llchat.h b/linden/indra/llcommon/llchat.h
index d8d33e7..a46b8aa 100644
--- a/linden/indra/llcommon/llchat.h
+++ b/linden/indra/llcommon/llchat.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llclickaction.h b/linden/indra/llcommon/llclickaction.h
index 2b95bae..20bfbfd 100644
--- a/linden/indra/llcommon/llclickaction.h
+++ b/linden/indra/llcommon/llclickaction.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llcommon.cpp b/linden/indra/llcommon/llcommon.cpp
index 27dd692..b21b687 100644
--- a/linden/indra/llcommon/llcommon.cpp
+++ b/linden/indra/llcommon/llcommon.cpp
@@ -11,12 +11,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llcommon.h b/linden/indra/llcommon/llcommon.h
index 61a0901..4d99c3d 100644
--- a/linden/indra/llcommon/llcommon.h
+++ b/linden/indra/llcommon/llcommon.h
@@ -11,12 +11,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llcommon.vcproj b/linden/indra/llcommon/llcommon.vcproj
index f16092b..6b4a0e8 100644
--- a/linden/indra/llcommon/llcommon.vcproj
+++ b/linden/indra/llcommon/llcommon.vcproj
@@ -214,6 +214,9 @@
RelativePath=".\lllivefile.cpp">
+
+
+
+
+
+
@@ -599,6 +603,10 @@
>
+
+
diff --git a/linden/indra/llcommon/llcommon_vc9.vcproj b/linden/indra/llcommon/llcommon_vc9.vcproj
new file mode 100644
index 0000000..752d13f
--- /dev/null
+++ b/linden/indra/llcommon/llcommon_vc9.vcproj
@@ -0,0 +1,808 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/linden/indra/llcommon/llcriticaldamp.cpp b/linden/indra/llcommon/llcriticaldamp.cpp
index 456f591..2acd133 100644
--- a/linden/indra/llcommon/llcriticaldamp.cpp
+++ b/linden/indra/llcommon/llcriticaldamp.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llcriticaldamp.h b/linden/indra/llcommon/llcriticaldamp.h
index e6f31cf..7d9256c 100644
--- a/linden/indra/llcommon/llcriticaldamp.h
+++ b/linden/indra/llcommon/llcriticaldamp.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/lldarray.h b/linden/indra/llcommon/lldarray.h
index 0068b57..9bffd63 100644
--- a/linden/indra/llcommon/lldarray.h
+++ b/linden/indra/llcommon/lldarray.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/lldarrayptr.h b/linden/indra/llcommon/lldarrayptr.h
index 8fab4b9..108b7f6 100644
--- a/linden/indra/llcommon/lldarrayptr.h
+++ b/linden/indra/llcommon/lldarrayptr.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/lldate.cpp b/linden/indra/llcommon/lldate.cpp
index 6783a80..5d36d2b 100644
--- a/linden/indra/llcommon/lldate.cpp
+++ b/linden/indra/llcommon/lldate.cpp
@@ -14,12 +14,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/lldate.h b/linden/indra/llcommon/lldate.h
index e144052..8a929d9 100644
--- a/linden/indra/llcommon/lldate.h
+++ b/linden/indra/llcommon/lldate.h
@@ -14,12 +14,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/lldefs.h b/linden/indra/llcommon/lldefs.h
index 69bfaa7..d081245 100644
--- a/linden/indra/llcommon/lldefs.h
+++ b/linden/indra/llcommon/lldefs.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -183,7 +183,15 @@ template
inline LLDATATYPE llmax(const LLDATATYPE& d1, const LLDATATYPE& d2, const LLDATATYPE& d3)
{
LLDATATYPE r = llmax(d1,d2);
- return (r > d3 ? r : d3);
+ return llmax(r, d3);
+}
+
+template
+inline LLDATATYPE llmax(const LLDATATYPE& d1, const LLDATATYPE& d2, const LLDATATYPE& d3, const LLDATATYPE& d4)
+{
+ LLDATATYPE r1 = llmax(d1,d2);
+ LLDATATYPE r2 = llmax(d3,d4);
+ return llmax(r1, r2);
}
template
@@ -200,6 +208,14 @@ inline LLDATATYPE llmin(const LLDATATYPE& d1, const LLDATATYPE& d2, const LLDATA
}
template
+inline LLDATATYPE llmin(const LLDATATYPE& d1, const LLDATATYPE& d2, const LLDATATYPE& d3, const LLDATATYPE& d4)
+{
+ LLDATATYPE r1 = llmin(d1,d2);
+ LLDATATYPE r2 = llmin(d3,d4);
+ return llmin(r1, r2);
+}
+
+template
inline LLDATATYPE llclamp(const LLDATATYPE& a, const LLDATATYPE& minval, const LLDATATYPE& maxval)
{
return llmin(llmax(a, minval), maxval);
diff --git a/linden/indra/llcommon/lldepthstack.h b/linden/indra/llcommon/lldepthstack.h
index 2be52f8..65492d2 100644
--- a/linden/indra/llcommon/lldepthstack.h
+++ b/linden/indra/llcommon/lldepthstack.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/lldlinked.h b/linden/indra/llcommon/lldlinked.h
index 108b245..7278ee4 100644
--- a/linden/indra/llcommon/lldlinked.h
+++ b/linden/indra/llcommon/lldlinked.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/lldqueueptr.h b/linden/indra/llcommon/lldqueueptr.h
index df543e8..248357e 100644
--- a/linden/indra/llcommon/lldqueueptr.h
+++ b/linden/indra/llcommon/lldqueueptr.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llendianswizzle.h b/linden/indra/llcommon/llendianswizzle.h
index 0df4d65..0b101f9 100644
--- a/linden/indra/llcommon/llendianswizzle.h
+++ b/linden/indra/llcommon/llendianswizzle.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llenum.h b/linden/indra/llcommon/llenum.h
index b73dfd3..1ec305f 100644
--- a/linden/indra/llcommon/llenum.h
+++ b/linden/indra/llcommon/llenum.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llerror.cpp b/linden/indra/llcommon/llerror.cpp
index 68383ce..d9ab57c 100644
--- a/linden/indra/llcommon/llerror.cpp
+++ b/linden/indra/llcommon/llerror.cpp
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llerror.h b/linden/indra/llcommon/llerror.h
index 16f6ad6..e1ace39 100644
--- a/linden/indra/llcommon/llerror.h
+++ b/linden/indra/llcommon/llerror.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llerrorcontrol.h b/linden/indra/llcommon/llerrorcontrol.h
index 5cd7547..2c36871 100644
--- a/linden/indra/llcommon/llerrorcontrol.h
+++ b/linden/indra/llcommon/llerrorcontrol.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llerrorlegacy.h b/linden/indra/llcommon/llerrorlegacy.h
index e6388b0..e88b09c 100644
--- a/linden/indra/llcommon/llerrorlegacy.h
+++ b/linden/indra/llcommon/llerrorlegacy.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llerrorthread.cpp b/linden/indra/llcommon/llerrorthread.cpp
index 9622628..d6fed78 100644
--- a/linden/indra/llcommon/llerrorthread.cpp
+++ b/linden/indra/llcommon/llerrorthread.cpp
@@ -11,12 +11,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llerrorthread.h b/linden/indra/llcommon/llerrorthread.h
index 09bb8a8..f0865e1 100644
--- a/linden/indra/llcommon/llerrorthread.h
+++ b/linden/indra/llcommon/llerrorthread.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llevent.cpp b/linden/indra/llcommon/llevent.cpp
index 78fb4d7..33af028 100644
--- a/linden/indra/llcommon/llevent.cpp
+++ b/linden/indra/llcommon/llevent.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llevent.h b/linden/indra/llcommon/llevent.h
index 5a24d09..83cb79f 100644
--- a/linden/indra/llcommon/llevent.h
+++ b/linden/indra/llcommon/llevent.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -179,7 +179,7 @@ public:
if (mDispatcher.notNull()) mDispatcher->removeListener(listener);
}
// Notifies the dispatcher of an event being fired.
- void fireEvent(LLPointer event, LLSD filter);
+ void fireEvent(LLPointer event, LLSD filter = LLSD());
protected:
LLPointer mDispatcher;
diff --git a/linden/indra/llcommon/lleventemitter.h b/linden/indra/llcommon/lleventemitter.h
index 0d7c84b..cdd3932 100644
--- a/linden/indra/llcommon/lleventemitter.h
+++ b/linden/indra/llcommon/lleventemitter.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llextendedstatus.h b/linden/indra/llcommon/llextendedstatus.h
index 93259da..5bd9856 100644
--- a/linden/indra/llcommon/llextendedstatus.h
+++ b/linden/indra/llcommon/llextendedstatus.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llfasttimer.cpp b/linden/indra/llcommon/llfasttimer.cpp
index 19e42e2..01db945 100644
--- a/linden/indra/llcommon/llfasttimer.cpp
+++ b/linden/indra/llcommon/llfasttimer.cpp
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llfasttimer.h b/linden/indra/llcommon/llfasttimer.h
index 62383fa..b953960 100644
--- a/linden/indra/llcommon/llfasttimer.h
+++ b/linden/indra/llcommon/llfasttimer.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llfile.cpp b/linden/indra/llcommon/llfile.cpp
index fb73b9b..38157df 100644
--- a/linden/indra/llcommon/llfile.cpp
+++ b/linden/indra/llcommon/llfile.cpp
@@ -15,12 +15,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llfile.h b/linden/indra/llcommon/llfile.h
index 6e90168..062b183 100644
--- a/linden/indra/llcommon/llfile.h
+++ b/linden/indra/llcommon/llfile.h
@@ -15,12 +15,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llfixedbuffer.cpp b/linden/indra/llcommon/llfixedbuffer.cpp
index 448846b..776de0d 100644
--- a/linden/indra/llcommon/llfixedbuffer.cpp
+++ b/linden/indra/llcommon/llfixedbuffer.cpp
@@ -11,12 +11,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llfixedbuffer.h b/linden/indra/llcommon/llfixedbuffer.h
index c044ed8..06a7f45 100644
--- a/linden/indra/llcommon/llfixedbuffer.h
+++ b/linden/indra/llcommon/llfixedbuffer.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llformat.cpp b/linden/indra/llcommon/llformat.cpp
index 8e5a549..8a8c699 100644
--- a/linden/indra/llcommon/llformat.cpp
+++ b/linden/indra/llcommon/llformat.cpp
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llformat.h b/linden/indra/llcommon/llformat.h
index a3e4f6a..52eca0b 100644
--- a/linden/indra/llcommon/llformat.h
+++ b/linden/indra/llcommon/llformat.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llframetimer.cpp b/linden/indra/llcommon/llframetimer.cpp
index af46f96..9de3be2 100644
--- a/linden/indra/llcommon/llframetimer.cpp
+++ b/linden/indra/llcommon/llframetimer.cpp
@@ -11,12 +11,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llframetimer.h b/linden/indra/llcommon/llframetimer.h
index 915f1d4..bc0d79d 100644
--- a/linden/indra/llcommon/llframetimer.h
+++ b/linden/indra/llcommon/llframetimer.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llhash.h b/linden/indra/llcommon/llhash.h
index a86a2d5..716d9df 100644
--- a/linden/indra/llcommon/llhash.h
+++ b/linden/indra/llcommon/llhash.h
@@ -12,12 +12,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llindexedqueue.h b/linden/indra/llcommon/llindexedqueue.h
index 35d30e4..d15417b 100644
--- a/linden/indra/llcommon/llindexedqueue.h
+++ b/linden/indra/llcommon/llindexedqueue.h
@@ -13,12 +13,12 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
diff --git a/linden/indra/llcommon/llkeythrottle.h b/linden/indra/llcommon/llkeythrottle.h
index 26009bb..c2dc9d2 100644
--- a/linden/indra/llcommon/llkeythrottle.h
+++ b/linden/indra/llcommon/llkeythrottle.h
@@ -1,17 +1,26 @@
/**
* @file llkeythrottle.h
- * @brief LLKeyThrottle class definition
*
- * $LicenseInfo:firstyear=2005&license=internal$
+ * $LicenseInfo:firstyear=2005&license=viewergpl$
*
* Copyright (c) 2005-2008, Linden Research, Inc.
*
- * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of
- * this source code is governed by the Linden Lab Source Code Disclosure
- * Agreement ("Agreement") previously entered between you and Linden
- * Lab. By accessing, using, copying, modifying or distributing this
- * software, you acknowledge that you have been informed of your
- * obligations under the Agreement and agree to abide by those obligations.
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
*
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
@@ -34,11 +43,16 @@
#include